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,107 @@
1
+ # Cloudflare Pulumi Provider
2
+
3
+ Expert guidance for Cloudflare Pulumi Provider (@pulumi/cloudflare).
4
+
5
+ ## Overview
6
+
7
+ Programmatic management of Cloudflare resources: Workers, Pages, D1, KV, R2, DNS, Queues, etc.
8
+
9
+ **Packages:**
10
+ - TypeScript/JS: `@pulumi/cloudflare`
11
+ - Python: `pulumi-cloudflare`
12
+ - Go: `github.com/pulumi/pulumi-cloudflare/sdk/v6/go/cloudflare`
13
+ - .NET: `Pulumi.Cloudflare`
14
+
15
+ **Version:** v6.x
16
+
17
+ ## Core Principles
18
+
19
+ 1. Use API tokens (not legacy API keys)
20
+ 2. Store accountId in stack config
21
+ 3. Match binding names across code/config
22
+ 4. Use `module: true` for ES modules
23
+ 5. Set `compatibilityDate` to lock behavior
24
+
25
+ ## Authentication
26
+
27
+ Three methods (mutually exclusive):
28
+
29
+ **1. API Token (Recommended)**
30
+ ```typescript
31
+ import * as cloudflare from "@pulumi/cloudflare";
32
+
33
+ const provider = new cloudflare.Provider("cf", {
34
+ apiToken: process.env.CLOUDFLARE_API_TOKEN,
35
+ });
36
+ ```
37
+ Env: `CLOUDFLARE_API_TOKEN`
38
+
39
+ **2. API Key (Legacy)**
40
+ ```typescript
41
+ const provider = new cloudflare.Provider("cf", {
42
+ apiKey: process.env.CLOUDFLARE_API_KEY,
43
+ email: process.env.CLOUDFLARE_EMAIL,
44
+ });
45
+ ```
46
+ Env: `CLOUDFLARE_API_KEY`, `CLOUDFLARE_EMAIL`
47
+
48
+ **3. API User Service Key**
49
+ ```typescript
50
+ const provider = new cloudflare.Provider("cf", {
51
+ apiUserServiceKey: process.env.CLOUDFLARE_API_USER_SERVICE_KEY,
52
+ });
53
+ ```
54
+ Env: `CLOUDFLARE_API_USER_SERVICE_KEY`
55
+
56
+ ## Setup
57
+
58
+ **Pulumi.yaml:**
59
+ ```yaml
60
+ name: my-cloudflare-app
61
+ runtime: nodejs
62
+ config:
63
+ cloudflare:apiToken:
64
+ value: ${CLOUDFLARE_API_TOKEN}
65
+ ```
66
+
67
+ **Pulumi.<stack>.yaml:**
68
+ ```yaml
69
+ config:
70
+ cloudflare:accountId: "abc123..."
71
+ ```
72
+
73
+ **index.ts:**
74
+ ```typescript
75
+ import * as pulumi from "@pulumi/pulumi";
76
+ import * as cloudflare from "@pulumi/cloudflare";
77
+
78
+ const config = new pulumi.Config("cloudflare");
79
+ const accountId = config.require("accountId");
80
+ ```
81
+
82
+ ## Essential Imports
83
+ ```typescript
84
+ import * as pulumi from "@pulumi/pulumi";
85
+ import * as cloudflare from "@pulumi/cloudflare";
86
+ ```
87
+
88
+ ## Common Resource Types
89
+ - `Provider` - Provider config
90
+ - `WorkerScript` - Worker
91
+ - `WorkersKvNamespace` - KV
92
+ - `R2Bucket` - R2
93
+ - `D1Database` - D1
94
+ - `Queue` - Queue
95
+ - `PagesProject` - Pages
96
+ - `DnsRecord` - DNS
97
+ - `WorkerRoute` - Worker route
98
+ - `WorkersDomain` - Custom domain
99
+
100
+ ## Key Properties
101
+ - `accountId` - Required for most resources
102
+ - `zoneId` - Required for DNS/domain
103
+ - `name`/`title` - Resource identifier
104
+ - `*Bindings` - Connect resources to Workers
105
+
106
+ ---
107
+ See: [configuration.md](./configuration.md), [api.md](./api.md), [patterns.md](./patterns.md), [gotchas.md](./gotchas.md)
@@ -0,0 +1,194 @@
1
+ # API & Data Sources
2
+
3
+ ## Outputs and Exports
4
+
5
+ Export resource identifiers:
6
+
7
+ ```typescript
8
+ export const kvId = kv.id;
9
+ export const bucketName = bucket.name;
10
+ export const workerUrl = worker.subdomain;
11
+ export const dbId = db.id;
12
+ ```
13
+
14
+ ## Resource Dependencies
15
+
16
+ Implicit dependencies via outputs:
17
+
18
+ ```typescript
19
+ const kv = new cloudflare.WorkersKvNamespace("kv", {
20
+ accountId: accountId,
21
+ title: "my-kv",
22
+ });
23
+
24
+ // Worker depends on KV (implicit via kv.id)
25
+ const worker = new cloudflare.WorkerScript("worker", {
26
+ accountId: accountId,
27
+ name: "my-worker",
28
+ content: code,
29
+ kvNamespaceBindings: [{name: "MY_KV", namespaceId: kv.id}], // Creates dependency
30
+ });
31
+ ```
32
+
33
+ Explicit dependencies:
34
+
35
+ ```typescript
36
+ const migration = new command.local.Command("migration", {
37
+ create: pulumi.interpolate`wrangler d1 execute ${db.name} --file ./schema.sql`,
38
+ }, {dependsOn: [db]});
39
+
40
+ const worker = new cloudflare.WorkerScript("worker", {
41
+ accountId: accountId,
42
+ name: "worker",
43
+ content: code,
44
+ d1DatabaseBindings: [{name: "DB", databaseId: db.id}],
45
+ }, {dependsOn: [migration]}); // Ensure migrations run first
46
+ ```
47
+
48
+ ## Using Outputs with API Calls
49
+
50
+ ```typescript
51
+ const db = new cloudflare.D1Database("db", {
52
+ accountId: accountId,
53
+ name: "my-db",
54
+ });
55
+
56
+ db.id.apply(async (dbId) => {
57
+ const response = await fetch(
58
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/d1/database/${dbId}/query`,
59
+ {
60
+ method: "POST",
61
+ headers: {
62
+ "Authorization": `Bearer ${apiToken}`,
63
+ "Content-Type": "application/json",
64
+ },
65
+ body: JSON.stringify({sql: "CREATE TABLE users (id INT PRIMARY KEY, name TEXT)"}),
66
+ }
67
+ );
68
+ return response.json();
69
+ });
70
+ ```
71
+
72
+ ## Custom Dynamic Providers
73
+
74
+ For resources not in provider:
75
+
76
+ ```typescript
77
+ import * as pulumi from "@pulumi/pulumi";
78
+
79
+ class D1MigrationProvider implements pulumi.dynamic.ResourceProvider {
80
+ async create(inputs: any): Promise<pulumi.dynamic.CreateResult> {
81
+ const response = await fetch(
82
+ `https://api.cloudflare.com/client/v4/accounts/${inputs.accountId}/d1/database/${inputs.databaseId}/query`,
83
+ {
84
+ method: "POST",
85
+ headers: {
86
+ "Authorization": `Bearer ${inputs.apiToken}`,
87
+ "Content-Type": "application/json",
88
+ },
89
+ body: JSON.stringify({sql: inputs.sql}),
90
+ }
91
+ );
92
+ const result = await response.json();
93
+ return {id: `${inputs.databaseId}-${Date.now()}`, outs: result};
94
+ }
95
+
96
+ async update(id: string, olds: any, news: any): Promise<pulumi.dynamic.UpdateResult> {
97
+ if (olds.sql !== news.sql) await this.create(news);
98
+ return {};
99
+ }
100
+
101
+ async delete(id: string, props: any): Promise<void> {}
102
+ }
103
+
104
+ class D1Migration extends pulumi.dynamic.Resource {
105
+ constructor(name: string, args: any, opts?: pulumi.CustomResourceOptions) {
106
+ super(new D1MigrationProvider(), name, args, opts);
107
+ }
108
+ }
109
+
110
+ // Usage
111
+ const migration = new D1Migration("migration", {
112
+ accountId: accountId,
113
+ databaseId: db.id,
114
+ apiToken: apiToken,
115
+ sql: "CREATE TABLE users (id INT PRIMARY KEY, name TEXT)",
116
+ }, {dependsOn: [db]});
117
+ ```
118
+
119
+ ## Data Sources
120
+
121
+ **Get Zone:**
122
+ ```typescript
123
+ const zone = cloudflare.getZone({name: "example.com"});
124
+ const zoneId = zone.then(z => z.id);
125
+ ```
126
+
127
+ **Get Accounts (via API):**
128
+ Use Cloudflare API directly or custom dynamic resources.
129
+
130
+ ## Import Existing Resources
131
+
132
+ ```bash
133
+ # Import worker
134
+ pulumi import cloudflare:index/workerScript:WorkerScript my-worker <account_id>/<worker_name>
135
+
136
+ # Import KV namespace
137
+ pulumi import cloudflare:index/workersKvNamespace:WorkersKvNamespace my-kv <namespace_id>
138
+
139
+ # Import R2 bucket
140
+ pulumi import cloudflare:index/r2Bucket:R2Bucket my-bucket <account_id>/<bucket_name>
141
+
142
+ # Import D1 database
143
+ pulumi import cloudflare:index/d1Database:D1Database my-db <account_id>/<database_id>
144
+
145
+ # Import DNS record
146
+ pulumi import cloudflare:index/dnsRecord:DnsRecord my-record <zone_id>/<record_id>
147
+ ```
148
+
149
+ ## Secrets Management
150
+
151
+ ```typescript
152
+ import * as pulumi from "@pulumi/pulumi";
153
+
154
+ const config = new pulumi.Config();
155
+ const apiKey = config.requireSecret("apiKey"); // Encrypted in state
156
+
157
+ const worker = new cloudflare.WorkerScript("worker", {
158
+ accountId: accountId,
159
+ name: "my-worker",
160
+ content: code,
161
+ secretTextBindings: [{name: "API_KEY", text: apiKey}],
162
+ });
163
+ ```
164
+
165
+ Store secrets:
166
+ ```bash
167
+ pulumi config set --secret apiKey "secret-value"
168
+ ```
169
+
170
+ ## Transform Pattern
171
+
172
+ Modify resource args before creation:
173
+
174
+ ```typescript
175
+ import {Transform} from "@pulumi/pulumi";
176
+
177
+ interface BucketArgs {
178
+ accountId: pulumi.Input<string>;
179
+ transform?: {bucket?: Transform<cloudflare.R2BucketArgs>};
180
+ }
181
+
182
+ function createBucket(name: string, args: BucketArgs) {
183
+ const bucketArgs: cloudflare.R2BucketArgs = {
184
+ accountId: args.accountId,
185
+ name: name,
186
+ location: "auto",
187
+ };
188
+ const finalArgs = args.transform?.bucket?.(bucketArgs) ?? bucketArgs;
189
+ return new cloudflare.R2Bucket(name, finalArgs);
190
+ }
191
+ ```
192
+
193
+ ---
194
+ See: [README.md](./README.md), [configuration.md](./configuration.md), [patterns.md](./patterns.md), [gotchas.md](./gotchas.md)
@@ -0,0 +1,216 @@
1
+ # Resource Configuration
2
+
3
+ ## Workers (cloudflare.WorkerScript)
4
+
5
+ ```typescript
6
+ import * as cloudflare from "@pulumi/cloudflare";
7
+ import * as fs from "fs";
8
+
9
+ const worker = new cloudflare.WorkerScript("my-worker", {
10
+ accountId: accountId,
11
+ name: "my-worker",
12
+ content: fs.readFileSync("./dist/worker.js", "utf8"),
13
+ module: true, // ES modules
14
+ compatibilityDate: "2024-01-01",
15
+ compatibilityFlags: ["nodejs_compat"],
16
+
17
+ // Bindings
18
+ kvNamespaceBindings: [{name: "MY_KV", namespaceId: kv.id}],
19
+ r2BucketBindings: [{name: "MY_BUCKET", bucketName: bucket.name}],
20
+ d1DatabaseBindings: [{name: "DB", databaseId: db.id}],
21
+ queueBindings: [{name: "MY_QUEUE", queue: queue.id}],
22
+ serviceBindings: [{name: "OTHER_SERVICE", service: other.name}],
23
+ plainTextBindings: [{name: "ENV_VAR", text: "value"}],
24
+ secretTextBindings: [{name: "API_KEY", text: secret}],
25
+ });
26
+ ```
27
+
28
+ ## Workers KV (cloudflare.WorkersKvNamespace)
29
+
30
+ ```typescript
31
+ const kv = new cloudflare.WorkersKvNamespace("my-kv", {
32
+ accountId: accountId,
33
+ title: "my-kv-namespace",
34
+ });
35
+
36
+ // Write values
37
+ const kvValue = new cloudflare.WorkersKvValue("config", {
38
+ accountId: accountId,
39
+ namespaceId: kv.id,
40
+ key: "config",
41
+ value: JSON.stringify({foo: "bar"}),
42
+ });
43
+ ```
44
+
45
+ ## R2 Buckets (cloudflare.R2Bucket)
46
+
47
+ ```typescript
48
+ const bucket = new cloudflare.R2Bucket("my-bucket", {
49
+ accountId: accountId,
50
+ name: "my-bucket",
51
+ location: "auto", // or "wnam", etc.
52
+ });
53
+ ```
54
+
55
+ ## D1 Databases (cloudflare.D1Database)
56
+
57
+ ```typescript
58
+ const db = new cloudflare.D1Database("my-db", {
59
+ accountId: accountId,
60
+ name: "my-database",
61
+ });
62
+
63
+ // Migrations: use command or wrangler
64
+ import * as command from "@pulumi/command";
65
+
66
+ const migration = new command.local.Command("d1-migration", {
67
+ create: pulumi.interpolate`wrangler d1 execute ${db.name} --command "CREATE TABLE users (id INT PRIMARY KEY, name TEXT)"`,
68
+ }, {dependsOn: [db]});
69
+ ```
70
+
71
+ ## Queues (cloudflare.Queue)
72
+
73
+ ```typescript
74
+ const queue = new cloudflare.Queue("my-queue", {
75
+ accountId: accountId,
76
+ name: "my-queue",
77
+ });
78
+
79
+ // Producer
80
+ const producer = new cloudflare.WorkerScript("producer", {
81
+ accountId: accountId,
82
+ name: "producer",
83
+ content: code,
84
+ queueBindings: [{name: "MY_QUEUE", queue: queue.id}],
85
+ });
86
+
87
+ // Consumer
88
+ const consumer = new cloudflare.WorkerScript("consumer", {
89
+ accountId: accountId,
90
+ name: "consumer",
91
+ content: code,
92
+ queueConsumers: [{
93
+ queue: queue.name,
94
+ maxBatchSize: 10,
95
+ maxRetries: 3,
96
+ maxWaitTimeMs: 5000,
97
+ }],
98
+ });
99
+ ```
100
+
101
+ ## Pages Projects (cloudflare.PagesProject)
102
+
103
+ ```typescript
104
+ const pages = new cloudflare.PagesProject("my-site", {
105
+ accountId: accountId,
106
+ name: "my-site",
107
+ productionBranch: "main",
108
+ buildConfig: {
109
+ buildCommand: "npm run build",
110
+ destinationDir: "dist",
111
+ rootDir: "",
112
+ },
113
+ source: {
114
+ type: "github",
115
+ config: {
116
+ owner: "my-org",
117
+ repoName: "my-repo",
118
+ productionBranch: "main",
119
+ prCommentsEnabled: true,
120
+ deploymentsEnabled: true,
121
+ },
122
+ },
123
+ deploymentConfigs: {
124
+ production: {
125
+ environmentVariables: {NODE_VERSION: "18"},
126
+ kvNamespaces: {MY_KV: kv.id},
127
+ d1Databases: {DB: db.id},
128
+ r2Buckets: {MY_BUCKET: bucket.name},
129
+ },
130
+ },
131
+ });
132
+ ```
133
+
134
+ ## DNS Records (cloudflare.DnsRecord)
135
+
136
+ ```typescript
137
+ const zone = cloudflare.getZone({name: "example.com"});
138
+
139
+ const record = new cloudflare.DnsRecord("www", {
140
+ zoneId: zone.then(z => z.id),
141
+ name: "www",
142
+ type: "A",
143
+ content: "192.0.2.1",
144
+ ttl: 3600,
145
+ proxied: true,
146
+ });
147
+
148
+ // CNAME
149
+ const cname = new cloudflare.DnsRecord("api", {
150
+ zoneId: zone.then(z => z.id),
151
+ name: "api",
152
+ type: "CNAME",
153
+ content: worker.subdomain,
154
+ proxied: true,
155
+ });
156
+ ```
157
+
158
+ ## Workers Domains/Routes
159
+
160
+ ```typescript
161
+ // Route (pattern-based)
162
+ const route = new cloudflare.WorkerRoute("my-route", {
163
+ zoneId: zoneId,
164
+ pattern: "example.com/api/*",
165
+ scriptName: worker.name,
166
+ });
167
+
168
+ // Domain (dedicated subdomain)
169
+ const domain = new cloudflare.WorkersDomain("my-domain", {
170
+ accountId: accountId,
171
+ hostname: "api.example.com",
172
+ service: worker.name,
173
+ zoneId: zoneId,
174
+ });
175
+ ```
176
+
177
+ ## Multi-Language Examples
178
+
179
+ **Python:**
180
+ ```python
181
+ import pulumi
182
+ import pulumi_cloudflare as cloudflare
183
+
184
+ config = pulumi.Config()
185
+ account_id = config.require("accountId")
186
+
187
+ kv = cloudflare.WorkersKvNamespace("my-kv", account_id=account_id, title="my-kv")
188
+ worker = cloudflare.WorkerScript("my-worker", account_id=account_id, name="my-worker",
189
+ content=open("./dist/worker.js").read(), module=True,
190
+ kv_namespace_bindings=[cloudflare.WorkerScriptKvNamespaceBindingArgs(name="MY_KV", namespace_id=kv.id)])
191
+ ```
192
+
193
+ **Go:**
194
+ ```go
195
+ import (
196
+ "github.com/pulumi/pulumi-cloudflare/sdk/v6/go/cloudflare"
197
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
198
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
199
+ )
200
+
201
+ func main() {
202
+ pulumi.Run(func(ctx *pulumi.Context) error {
203
+ cfg := config.New(ctx, "")
204
+ accountId := cfg.Require("accountId")
205
+
206
+ kv, _ := cloudflare.NewWorkersKvNamespace(ctx, "my-kv", &cloudflare.WorkersKvNamespaceArgs{
207
+ AccountId: pulumi.String(accountId),
208
+ Title: pulumi.String("my-kv"),
209
+ })
210
+ return nil
211
+ })
212
+ }
213
+ ```
214
+
215
+ ---
216
+ See: [README.md](./README.md), [api.md](./api.md), [patterns.md](./patterns.md), [gotchas.md](./gotchas.md)