pi-cloudflare 0.1.0

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 (410) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +67 -0
  3. package/bin/setup.mjs +103 -0
  4. package/dist/auth-flow.d.ts +15 -0
  5. package/dist/auth-flow.d.ts.map +1 -0
  6. package/dist/auth-flow.js +90 -0
  7. package/dist/auth-flow.js.map +1 -0
  8. package/dist/client.d.ts +18 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/client.js +47 -0
  11. package/dist/client.js.map +1 -0
  12. package/dist/config.d.ts +13 -0
  13. package/dist/config.d.ts.map +1 -0
  14. package/dist/config.js +10 -0
  15. package/dist/config.js.map +1 -0
  16. package/dist/index.d.ts +24 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +109 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/oauth.d.ts +44 -0
  21. package/dist/oauth.d.ts.map +1 -0
  22. package/dist/oauth.js +135 -0
  23. package/dist/oauth.js.map +1 -0
  24. package/dist/proxy.d.ts +29 -0
  25. package/dist/proxy.d.ts.map +1 -0
  26. package/dist/proxy.js +39 -0
  27. package/dist/proxy.js.map +1 -0
  28. package/dist/servers.d.ts +19 -0
  29. package/dist/servers.d.ts.map +1 -0
  30. package/dist/servers.js +40 -0
  31. package/dist/servers.js.map +1 -0
  32. package/dist/token-store.d.ts +23 -0
  33. package/dist/token-store.d.ts.map +1 -0
  34. package/dist/token-store.js +47 -0
  35. package/dist/token-store.js.map +1 -0
  36. package/package.json +67 -0
  37. package/skills/agents-sdk/SKILL.md +221 -0
  38. package/skills/agents-sdk/references/browse-the-web.md +63 -0
  39. package/skills/agents-sdk/references/callable.md +92 -0
  40. package/skills/agents-sdk/references/client-sdk.md +110 -0
  41. package/skills/agents-sdk/references/codemode.md +110 -0
  42. package/skills/agents-sdk/references/configuration.md +72 -0
  43. package/skills/agents-sdk/references/durable-execution.md +51 -0
  44. package/skills/agents-sdk/references/email.md +146 -0
  45. package/skills/agents-sdk/references/human-in-the-loop.md +67 -0
  46. package/skills/agents-sdk/references/mcp.md +188 -0
  47. package/skills/agents-sdk/references/observability.md +44 -0
  48. package/skills/agents-sdk/references/queue-retries.md +79 -0
  49. package/skills/agents-sdk/references/routing.md +75 -0
  50. package/skills/agents-sdk/references/server-driven-messages.md +63 -0
  51. package/skills/agents-sdk/references/state-scheduling.md +171 -0
  52. package/skills/agents-sdk/references/streaming-chat.md +198 -0
  53. package/skills/agents-sdk/references/think.md +112 -0
  54. package/skills/agents-sdk/references/voice.md +68 -0
  55. package/skills/agents-sdk/references/webhooks-push.md +86 -0
  56. package/skills/agents-sdk/references/workflows.md +132 -0
  57. package/skills/cloudflare/SKILL.md +248 -0
  58. package/skills/cloudflare/references/agents-sdk/README.md +89 -0
  59. package/skills/cloudflare/references/agents-sdk/api.md +190 -0
  60. package/skills/cloudflare/references/agents-sdk/configuration.md +182 -0
  61. package/skills/cloudflare/references/agents-sdk/gotchas.md +158 -0
  62. package/skills/cloudflare/references/agents-sdk/patterns.md +192 -0
  63. package/skills/cloudflare/references/ai-gateway/README.md +175 -0
  64. package/skills/cloudflare/references/ai-gateway/configuration.md +111 -0
  65. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +82 -0
  66. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  67. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +114 -0
  68. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +88 -0
  69. package/skills/cloudflare/references/ai-search/README.md +138 -0
  70. package/skills/cloudflare/references/ai-search/api.md +87 -0
  71. package/skills/cloudflare/references/ai-search/configuration.md +88 -0
  72. package/skills/cloudflare/references/ai-search/gotchas.md +81 -0
  73. package/skills/cloudflare/references/ai-search/patterns.md +85 -0
  74. package/skills/cloudflare/references/analytics-engine/README.md +94 -0
  75. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  76. package/skills/cloudflare/references/analytics-engine/configuration.md +112 -0
  77. package/skills/cloudflare/references/analytics-engine/gotchas.md +85 -0
  78. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  79. package/skills/cloudflare/references/api/README.md +66 -0
  80. package/skills/cloudflare/references/api/api.md +204 -0
  81. package/skills/cloudflare/references/api/configuration.md +160 -0
  82. package/skills/cloudflare/references/api/gotchas.md +225 -0
  83. package/skills/cloudflare/references/api/patterns.md +204 -0
  84. package/skills/cloudflare/references/api-shield/README.md +44 -0
  85. package/skills/cloudflare/references/api-shield/api.md +141 -0
  86. package/skills/cloudflare/references/api-shield/configuration.md +192 -0
  87. package/skills/cloudflare/references/api-shield/gotchas.md +125 -0
  88. package/skills/cloudflare/references/api-shield/patterns.md +180 -0
  89. package/skills/cloudflare/references/argo-smart-routing/README.md +90 -0
  90. package/skills/cloudflare/references/argo-smart-routing/api.md +240 -0
  91. package/skills/cloudflare/references/argo-smart-routing/configuration.md +197 -0
  92. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +111 -0
  93. package/skills/cloudflare/references/argo-smart-routing/patterns.md +104 -0
  94. package/skills/cloudflare/references/artifacts/README.md +79 -0
  95. package/skills/cloudflare/references/artifacts/api.md +128 -0
  96. package/skills/cloudflare/references/artifacts/configuration.md +92 -0
  97. package/skills/cloudflare/references/bindings/README.md +122 -0
  98. package/skills/cloudflare/references/bindings/api.md +203 -0
  99. package/skills/cloudflare/references/bindings/configuration.md +188 -0
  100. package/skills/cloudflare/references/bindings/gotchas.md +208 -0
  101. package/skills/cloudflare/references/bindings/patterns.md +200 -0
  102. package/skills/cloudflare/references/bot-management/README.md +94 -0
  103. package/skills/cloudflare/references/bot-management/api.md +169 -0
  104. package/skills/cloudflare/references/bot-management/configuration.md +163 -0
  105. package/skills/cloudflare/references/bot-management/gotchas.md +114 -0
  106. package/skills/cloudflare/references/bot-management/patterns.md +182 -0
  107. package/skills/cloudflare/references/browser-rendering/README.md +78 -0
  108. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  109. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  110. package/skills/cloudflare/references/browser-rendering/gotchas.md +88 -0
  111. package/skills/cloudflare/references/browser-rendering/patterns.md +91 -0
  112. package/skills/cloudflare/references/c3/README.md +111 -0
  113. package/skills/cloudflare/references/c3/api.md +71 -0
  114. package/skills/cloudflare/references/c3/configuration.md +81 -0
  115. package/skills/cloudflare/references/c3/gotchas.md +92 -0
  116. package/skills/cloudflare/references/c3/patterns.md +82 -0
  117. package/skills/cloudflare/references/cache-reserve/README.md +147 -0
  118. package/skills/cloudflare/references/cache-reserve/api.md +194 -0
  119. package/skills/cloudflare/references/cache-reserve/configuration.md +169 -0
  120. package/skills/cloudflare/references/cache-reserve/gotchas.md +132 -0
  121. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  122. package/skills/cloudflare/references/containers/README.md +85 -0
  123. package/skills/cloudflare/references/containers/api.md +187 -0
  124. package/skills/cloudflare/references/containers/configuration.md +188 -0
  125. package/skills/cloudflare/references/containers/gotchas.md +178 -0
  126. package/skills/cloudflare/references/containers/patterns.md +202 -0
  127. package/skills/cloudflare/references/cron-triggers/README.md +99 -0
  128. package/skills/cloudflare/references/cron-triggers/api.md +196 -0
  129. package/skills/cloudflare/references/cron-triggers/configuration.md +180 -0
  130. package/skills/cloudflare/references/cron-triggers/gotchas.md +199 -0
  131. package/skills/cloudflare/references/cron-triggers/patterns.md +190 -0
  132. package/skills/cloudflare/references/d1/README.md +133 -0
  133. package/skills/cloudflare/references/d1/api.md +196 -0
  134. package/skills/cloudflare/references/d1/configuration.md +191 -0
  135. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  136. package/skills/cloudflare/references/d1/patterns.md +189 -0
  137. package/skills/cloudflare/references/ddos/README.md +41 -0
  138. package/skills/cloudflare/references/ddos/api.md +164 -0
  139. package/skills/cloudflare/references/ddos/configuration.md +93 -0
  140. package/skills/cloudflare/references/ddos/gotchas.md +107 -0
  141. package/skills/cloudflare/references/ddos/patterns.md +174 -0
  142. package/skills/cloudflare/references/do-storage/README.md +75 -0
  143. package/skills/cloudflare/references/do-storage/api.md +102 -0
  144. package/skills/cloudflare/references/do-storage/configuration.md +112 -0
  145. package/skills/cloudflare/references/do-storage/gotchas.md +150 -0
  146. package/skills/cloudflare/references/do-storage/patterns.md +194 -0
  147. package/skills/cloudflare/references/do-storage/testing.md +183 -0
  148. package/skills/cloudflare/references/durable-objects/README.md +185 -0
  149. package/skills/cloudflare/references/durable-objects/api.md +187 -0
  150. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  151. package/skills/cloudflare/references/durable-objects/gotchas.md +197 -0
  152. package/skills/cloudflare/references/durable-objects/patterns.md +201 -0
  153. package/skills/cloudflare/references/email-routing/README.md +89 -0
  154. package/skills/cloudflare/references/email-routing/api.md +195 -0
  155. package/skills/cloudflare/references/email-routing/configuration.md +186 -0
  156. package/skills/cloudflare/references/email-routing/gotchas.md +196 -0
  157. package/skills/cloudflare/references/email-routing/patterns.md +229 -0
  158. package/skills/cloudflare/references/email-workers/README.md +151 -0
  159. package/skills/cloudflare/references/email-workers/api.md +237 -0
  160. package/skills/cloudflare/references/email-workers/configuration.md +112 -0
  161. package/skills/cloudflare/references/email-workers/gotchas.md +125 -0
  162. package/skills/cloudflare/references/email-workers/patterns.md +102 -0
  163. package/skills/cloudflare/references/flagship/README.md +59 -0
  164. package/skills/cloudflare/references/flagship/api.md +390 -0
  165. package/skills/cloudflare/references/flagship/configuration.md +202 -0
  166. package/skills/cloudflare/references/flagship/gotchas.md +178 -0
  167. package/skills/cloudflare/references/flagship/patterns.md +469 -0
  168. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  169. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  170. package/skills/cloudflare/references/graphql-api/configuration.md +118 -0
  171. package/skills/cloudflare/references/graphql-api/gotchas.md +110 -0
  172. package/skills/cloudflare/references/graphql-api/patterns.md +225 -0
  173. package/skills/cloudflare/references/hyperdrive/README.md +82 -0
  174. package/skills/cloudflare/references/hyperdrive/api.md +143 -0
  175. package/skills/cloudflare/references/hyperdrive/configuration.md +159 -0
  176. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  177. package/skills/cloudflare/references/hyperdrive/patterns.md +190 -0
  178. package/skills/cloudflare/references/images/README.md +61 -0
  179. package/skills/cloudflare/references/images/api.md +96 -0
  180. package/skills/cloudflare/references/images/configuration.md +211 -0
  181. package/skills/cloudflare/references/images/gotchas.md +99 -0
  182. package/skills/cloudflare/references/images/patterns.md +115 -0
  183. package/skills/cloudflare/references/kv/README.md +89 -0
  184. package/skills/cloudflare/references/kv/api.md +160 -0
  185. package/skills/cloudflare/references/kv/configuration.md +144 -0
  186. package/skills/cloudflare/references/kv/gotchas.md +131 -0
  187. package/skills/cloudflare/references/kv/patterns.md +196 -0
  188. package/skills/cloudflare/references/miniflare/README.md +105 -0
  189. package/skills/cloudflare/references/miniflare/api.md +187 -0
  190. package/skills/cloudflare/references/miniflare/configuration.md +173 -0
  191. package/skills/cloudflare/references/miniflare/gotchas.md +160 -0
  192. package/skills/cloudflare/references/miniflare/patterns.md +181 -0
  193. package/skills/cloudflare/references/network-interconnect/README.md +99 -0
  194. package/skills/cloudflare/references/network-interconnect/api.md +199 -0
  195. package/skills/cloudflare/references/network-interconnect/configuration.md +114 -0
  196. package/skills/cloudflare/references/network-interconnect/gotchas.md +165 -0
  197. package/skills/cloudflare/references/network-interconnect/patterns.md +166 -0
  198. package/skills/cloudflare/references/observability/README.md +88 -0
  199. package/skills/cloudflare/references/observability/api.md +164 -0
  200. package/skills/cloudflare/references/observability/configuration.md +169 -0
  201. package/skills/cloudflare/references/observability/gotchas.md +115 -0
  202. package/skills/cloudflare/references/observability/patterns.md +105 -0
  203. package/skills/cloudflare/references/pages/README.md +88 -0
  204. package/skills/cloudflare/references/pages/api.md +204 -0
  205. package/skills/cloudflare/references/pages/configuration.md +201 -0
  206. package/skills/cloudflare/references/pages/gotchas.md +203 -0
  207. package/skills/cloudflare/references/pages/patterns.md +204 -0
  208. package/skills/cloudflare/references/pages-functions/README.md +98 -0
  209. package/skills/cloudflare/references/pages-functions/api.md +143 -0
  210. package/skills/cloudflare/references/pages-functions/configuration.md +122 -0
  211. package/skills/cloudflare/references/pages-functions/gotchas.md +94 -0
  212. package/skills/cloudflare/references/pages-functions/patterns.md +137 -0
  213. package/skills/cloudflare/references/pipelines/README.md +90 -0
  214. package/skills/cloudflare/references/pipelines/api.md +124 -0
  215. package/skills/cloudflare/references/pipelines/configuration.md +155 -0
  216. package/skills/cloudflare/references/pipelines/gotchas.md +58 -0
  217. package/skills/cloudflare/references/pipelines/patterns.md +130 -0
  218. package/skills/cloudflare/references/pulumi/README.md +100 -0
  219. package/skills/cloudflare/references/pulumi/api.md +200 -0
  220. package/skills/cloudflare/references/pulumi/configuration.md +198 -0
  221. package/skills/cloudflare/references/pulumi/gotchas.md +181 -0
  222. package/skills/cloudflare/references/pulumi/patterns.md +191 -0
  223. package/skills/cloudflare/references/queues/README.md +96 -0
  224. package/skills/cloudflare/references/queues/api.md +206 -0
  225. package/skills/cloudflare/references/queues/configuration.md +144 -0
  226. package/skills/cloudflare/references/queues/gotchas.md +206 -0
  227. package/skills/cloudflare/references/queues/patterns.md +220 -0
  228. package/skills/cloudflare/references/r2/README.md +95 -0
  229. package/skills/cloudflare/references/r2/api.md +200 -0
  230. package/skills/cloudflare/references/r2/configuration.md +165 -0
  231. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  232. package/skills/cloudflare/references/r2/patterns.md +193 -0
  233. package/skills/cloudflare/references/r2-data-catalog/README.md +75 -0
  234. package/skills/cloudflare/references/r2-data-catalog/api.md +122 -0
  235. package/skills/cloudflare/references/r2-data-catalog/configuration.md +98 -0
  236. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +55 -0
  237. package/skills/cloudflare/references/r2-data-catalog/patterns.md +122 -0
  238. package/skills/cloudflare/references/r2-sql/README.md +64 -0
  239. package/skills/cloudflare/references/r2-sql/api.md +121 -0
  240. package/skills/cloudflare/references/r2-sql/configuration.md +50 -0
  241. package/skills/cloudflare/references/r2-sql/gotchas.md +39 -0
  242. package/skills/cloudflare/references/r2-sql/patterns.md +118 -0
  243. package/skills/cloudflare/references/realtime-sfu/README.md +65 -0
  244. package/skills/cloudflare/references/realtime-sfu/api.md +158 -0
  245. package/skills/cloudflare/references/realtime-sfu/configuration.md +137 -0
  246. package/skills/cloudflare/references/realtime-sfu/gotchas.md +133 -0
  247. package/skills/cloudflare/references/realtime-sfu/patterns.md +174 -0
  248. package/skills/cloudflare/references/realtimekit/README.md +113 -0
  249. package/skills/cloudflare/references/realtimekit/api.md +212 -0
  250. package/skills/cloudflare/references/realtimekit/configuration.md +203 -0
  251. package/skills/cloudflare/references/realtimekit/gotchas.md +169 -0
  252. package/skills/cloudflare/references/realtimekit/patterns.md +223 -0
  253. package/skills/cloudflare/references/sandbox/README.md +96 -0
  254. package/skills/cloudflare/references/sandbox/api.md +198 -0
  255. package/skills/cloudflare/references/sandbox/configuration.md +143 -0
  256. package/skills/cloudflare/references/sandbox/gotchas.md +194 -0
  257. package/skills/cloudflare/references/sandbox/patterns.md +201 -0
  258. package/skills/cloudflare/references/secrets-store/README.md +74 -0
  259. package/skills/cloudflare/references/secrets-store/api.md +200 -0
  260. package/skills/cloudflare/references/secrets-store/configuration.md +185 -0
  261. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  262. package/skills/cloudflare/references/secrets-store/patterns.md +207 -0
  263. package/skills/cloudflare/references/smart-placement/README.md +138 -0
  264. package/skills/cloudflare/references/smart-placement/api.md +183 -0
  265. package/skills/cloudflare/references/smart-placement/configuration.md +196 -0
  266. package/skills/cloudflare/references/smart-placement/gotchas.md +174 -0
  267. package/skills/cloudflare/references/smart-placement/patterns.md +183 -0
  268. package/skills/cloudflare/references/snippets/README.md +68 -0
  269. package/skills/cloudflare/references/snippets/api.md +198 -0
  270. package/skills/cloudflare/references/snippets/configuration.md +227 -0
  271. package/skills/cloudflare/references/snippets/gotchas.md +86 -0
  272. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  273. package/skills/cloudflare/references/spectrum/README.md +52 -0
  274. package/skills/cloudflare/references/spectrum/api.md +181 -0
  275. package/skills/cloudflare/references/spectrum/configuration.md +194 -0
  276. package/skills/cloudflare/references/spectrum/gotchas.md +145 -0
  277. package/skills/cloudflare/references/spectrum/patterns.md +196 -0
  278. package/skills/cloudflare/references/static-assets/README.md +65 -0
  279. package/skills/cloudflare/references/static-assets/api.md +199 -0
  280. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  281. package/skills/cloudflare/references/static-assets/gotchas.md +162 -0
  282. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  283. package/skills/cloudflare/references/stream/README.md +114 -0
  284. package/skills/cloudflare/references/stream/api-live.md +195 -0
  285. package/skills/cloudflare/references/stream/api.md +199 -0
  286. package/skills/cloudflare/references/stream/configuration.md +141 -0
  287. package/skills/cloudflare/references/stream/gotchas.md +130 -0
  288. package/skills/cloudflare/references/stream/patterns.md +184 -0
  289. package/skills/cloudflare/references/tail-workers/README.md +89 -0
  290. package/skills/cloudflare/references/tail-workers/api.md +200 -0
  291. package/skills/cloudflare/references/tail-workers/configuration.md +176 -0
  292. package/skills/cloudflare/references/tail-workers/gotchas.md +192 -0
  293. package/skills/cloudflare/references/tail-workers/patterns.md +180 -0
  294. package/skills/cloudflare/references/terraform/README.md +102 -0
  295. package/skills/cloudflare/references/terraform/api.md +178 -0
  296. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  297. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  298. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  299. package/skills/cloudflare/references/tunnel/README.md +129 -0
  300. package/skills/cloudflare/references/tunnel/api.md +193 -0
  301. package/skills/cloudflare/references/tunnel/configuration.md +157 -0
  302. package/skills/cloudflare/references/tunnel/gotchas.md +147 -0
  303. package/skills/cloudflare/references/tunnel/networking.md +168 -0
  304. package/skills/cloudflare/references/tunnel/patterns.md +192 -0
  305. package/skills/cloudflare/references/turn/README.md +82 -0
  306. package/skills/cloudflare/references/turn/api.md +239 -0
  307. package/skills/cloudflare/references/turn/configuration.md +179 -0
  308. package/skills/cloudflare/references/turn/gotchas.md +231 -0
  309. package/skills/cloudflare/references/turn/patterns.md +213 -0
  310. package/skills/cloudflare/references/turnstile/README.md +99 -0
  311. package/skills/cloudflare/references/turnstile/api.md +240 -0
  312. package/skills/cloudflare/references/turnstile/configuration.md +222 -0
  313. package/skills/cloudflare/references/turnstile/gotchas.md +218 -0
  314. package/skills/cloudflare/references/turnstile/patterns.md +193 -0
  315. package/skills/cloudflare/references/vectorize/README.md +133 -0
  316. package/skills/cloudflare/references/vectorize/api.md +88 -0
  317. package/skills/cloudflare/references/vectorize/configuration.md +88 -0
  318. package/skills/cloudflare/references/vectorize/gotchas.md +76 -0
  319. package/skills/cloudflare/references/vectorize/patterns.md +90 -0
  320. package/skills/cloudflare/references/waf/README.md +113 -0
  321. package/skills/cloudflare/references/waf/api.md +202 -0
  322. package/skills/cloudflare/references/waf/configuration.md +203 -0
  323. package/skills/cloudflare/references/waf/gotchas.md +204 -0
  324. package/skills/cloudflare/references/waf/patterns.md +197 -0
  325. package/skills/cloudflare/references/web-analytics/README.md +141 -0
  326. package/skills/cloudflare/references/web-analytics/configuration.md +76 -0
  327. package/skills/cloudflare/references/web-analytics/gotchas.md +82 -0
  328. package/skills/cloudflare/references/web-analytics/integration.md +60 -0
  329. package/skills/cloudflare/references/web-analytics/patterns.md +91 -0
  330. package/skills/cloudflare/references/workerd/README.md +78 -0
  331. package/skills/cloudflare/references/workerd/api.md +185 -0
  332. package/skills/cloudflare/references/workerd/configuration.md +183 -0
  333. package/skills/cloudflare/references/workerd/gotchas.md +139 -0
  334. package/skills/cloudflare/references/workerd/patterns.md +192 -0
  335. package/skills/cloudflare/references/workers/README.md +108 -0
  336. package/skills/cloudflare/references/workers/api.md +195 -0
  337. package/skills/cloudflare/references/workers/configuration.md +185 -0
  338. package/skills/cloudflare/references/workers/frameworks.md +197 -0
  339. package/skills/cloudflare/references/workers/gotchas.md +137 -0
  340. package/skills/cloudflare/references/workers/patterns.md +198 -0
  341. package/skills/cloudflare/references/workers-ai/README.md +197 -0
  342. package/skills/cloudflare/references/workers-ai/api.md +112 -0
  343. package/skills/cloudflare/references/workers-ai/configuration.md +97 -0
  344. package/skills/cloudflare/references/workers-ai/gotchas.md +114 -0
  345. package/skills/cloudflare/references/workers-ai/patterns.md +120 -0
  346. package/skills/cloudflare/references/workers-for-platforms/README.md +89 -0
  347. package/skills/cloudflare/references/workers-for-platforms/api.md +196 -0
  348. package/skills/cloudflare/references/workers-for-platforms/configuration.md +167 -0
  349. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  350. package/skills/cloudflare/references/workers-for-platforms/patterns.md +188 -0
  351. package/skills/cloudflare/references/workers-playground/README.md +127 -0
  352. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  353. package/skills/cloudflare/references/workers-playground/configuration.md +163 -0
  354. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  355. package/skills/cloudflare/references/workers-playground/patterns.md +132 -0
  356. package/skills/cloudflare/references/workers-vpc/README.md +127 -0
  357. package/skills/cloudflare/references/workers-vpc/api.md +202 -0
  358. package/skills/cloudflare/references/workers-vpc/configuration.md +147 -0
  359. package/skills/cloudflare/references/workers-vpc/gotchas.md +167 -0
  360. package/skills/cloudflare/references/workers-vpc/patterns.md +209 -0
  361. package/skills/cloudflare/references/workflows/README.md +77 -0
  362. package/skills/cloudflare/references/workflows/api.md +218 -0
  363. package/skills/cloudflare/references/workflows/configuration.md +152 -0
  364. package/skills/cloudflare/references/workflows/gotchas.md +90 -0
  365. package/skills/cloudflare/references/workflows/patterns.md +175 -0
  366. package/skills/cloudflare/references/wrangler/README.md +135 -0
  367. package/skills/cloudflare/references/wrangler/api.md +188 -0
  368. package/skills/cloudflare/references/wrangler/configuration.md +197 -0
  369. package/skills/cloudflare/references/wrangler/gotchas.md +197 -0
  370. package/skills/cloudflare/references/wrangler/patterns.md +209 -0
  371. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
  372. package/skills/cloudflare/references/zaraz/README.md +111 -0
  373. package/skills/cloudflare/references/zaraz/api.md +112 -0
  374. package/skills/cloudflare/references/zaraz/configuration.md +90 -0
  375. package/skills/cloudflare/references/zaraz/gotchas.md +81 -0
  376. package/skills/cloudflare/references/zaraz/patterns.md +74 -0
  377. package/skills/cloudflare-email-service/SKILL.md +103 -0
  378. package/skills/cloudflare-email-service/references/cli-and-mcp.md +125 -0
  379. package/skills/cloudflare-email-service/references/deliverability.md +285 -0
  380. package/skills/cloudflare-email-service/references/rest-api.md +184 -0
  381. package/skills/cloudflare-email-service/references/routing.md +199 -0
  382. package/skills/cloudflare-email-service/references/sending.md +252 -0
  383. package/skills/cloudflare-one/SKILL.md +176 -0
  384. package/skills/cloudflare-one-migrations/SKILL.md +110 -0
  385. package/skills/durable-objects/SKILL.md +186 -0
  386. package/skills/durable-objects/references/rules.md +295 -0
  387. package/skills/durable-objects/references/testing.md +264 -0
  388. package/skills/durable-objects/references/workers.md +346 -0
  389. package/skills/sandbox-migrate-to-next/SKILL.md +185 -0
  390. package/skills/sandbox-next/SKILL.md +91 -0
  391. package/skills/sandbox-next/references/api-quick-ref.md +94 -0
  392. package/skills/sandbox-next/references/examples.md +15 -0
  393. package/skills/sandbox-stable/SKILL.md +110 -0
  394. package/skills/turnstile-spin/README.md +51 -0
  395. package/skills/turnstile-spin/SKILL.md +330 -0
  396. package/skills/turnstile-spin/references/astro.md +199 -0
  397. package/skills/turnstile-spin/references/hugo.md +114 -0
  398. package/skills/turnstile-spin/references/nextjs-app.md +261 -0
  399. package/skills/turnstile-spin/references/nextjs-pages.md +82 -0
  400. package/skills/turnstile-spin/references/sveltekit.md +191 -0
  401. package/skills/turnstile-spin/references/vanilla-html.md +157 -0
  402. package/skills/turnstile-spin/scripts/auth-probe.sh +285 -0
  403. package/skills/turnstile-spin/scripts/persist-skill.sh +114 -0
  404. package/skills/turnstile-spin/scripts/validate.sh +137 -0
  405. package/skills/turnstile-spin/scripts/widget-create.sh +121 -0
  406. package/skills/turnstile-spin/tests/validation.md +62 -0
  407. package/skills/workers-best-practices/SKILL.md +127 -0
  408. package/skills/workers-best-practices/references/review.md +174 -0
  409. package/skills/workers-best-practices/references/rules.md +467 -0
  410. package/skills/wrangler/SKILL.md +922 -0
@@ -0,0 +1,79 @@
1
+ # Cloudflare Artifacts
2
+
3
+ Store versioned file trees behind a repo-style interface that works from Workers, the REST API, and Git-compatible tooling.
4
+
5
+ ## Overview
6
+
7
+ Use **Artifacts** when the thing you need to store is a versioned filesystem tree rather than a single object, key, or SQL row.
8
+
9
+ Typical Artifacts use cases:
10
+ - Git-style repositories
11
+ - Per-agent, per-session, or per-task repos
12
+ - Build outputs and deployment bundles
13
+ - Checkpoints and generated assets
14
+ - Shared file trees passed between developer tools and Workers
15
+
16
+ Artifacts is a good fit when the same content needs to be addressable from **Workers**, the **REST API**, and **Git-compatible clients**.
17
+
18
+ Artifacts is especially useful for agent and automation workflows where each unit of work should have its own isolated repo and token.
19
+
20
+ **Prefer retrieval over memory** for current availability, authentication details, route shapes, limits, and pricing. Start at `https://developers.cloudflare.com/artifacts/`.
21
+
22
+ ## When to Use Artifacts
23
+
24
+ | Need | Use | Why |
25
+ |------|-----|-----|
26
+ | Versioned file trees such as repos, build outputs, checkpoints, or generated assets | Artifacts | Artifacts stores and shares **versioned filesystem content** |
27
+ | A git-compatible workflow with `clone`, `fetch`, `pull`, or `push` | Artifacts | Artifacts exposes **git-over-HTTPS remotes** and repo-scoped tokens |
28
+ | The same artifact accessible from Workers, HTTP APIs, and developer tooling | Artifacts | Artifacts is available through a **Workers binding**, **REST API**, and **git-compatible interface** |
29
+ | Large files by object key, app config by key, or relational app data | R2, KV, or D1 | Use storage products directly when you need **objects, key-value entries, or SQL rows**, not versioned file trees |
30
+
31
+ ## Recommended Workflow
32
+
33
+ - Create one repo per agent, session, user workspace, or task when work should stay isolated.
34
+ - Fork from a stable baseline when many repos need the same starter files or prompts.
35
+ - Use branches only when collaborators share the same lifecycle and need to work in one repo.
36
+ - Use namespaces to separate environments, teams, or high-rate workloads.
37
+
38
+ ## Quick Start
39
+
40
+ **From a Worker:**
41
+
42
+ ```typescript
43
+ interface Env {
44
+ ARTIFACTS: Artifacts;
45
+ }
46
+
47
+ const created = await env.ARTIFACTS.create("starter-repo");
48
+ // created.remote -> git remote URL
49
+ // created.token -> initial repo token
50
+ ```
51
+
52
+ **From the REST API:**
53
+
54
+ Use the namespace-scoped Artifacts base URL plus a gateway JWT. For imports from existing HTTPS remotes, use the REST API rather than the Workers binding.
55
+
56
+ ## Reading Order
57
+
58
+ | Task | Read |
59
+ |------|------|
60
+ | Decide whether Artifacts is the right product | README only |
61
+ | Create or manage repos from a Worker | README → configuration.md → api.md |
62
+ | Integrate Artifacts from an external system | README → api.md |
63
+ | Set up agent or sandbox workflows | README → configuration.md |
64
+ | Verify exact auth, routes, limits, or pricing | Live docs first: `https://developers.cloudflare.com/artifacts/` |
65
+
66
+ ## In This Reference
67
+
68
+ - **[api.md](api.md)** - Workers binding methods, REST routes, token and repo operations
69
+ - **[configuration.md](configuration.md)** - Wrangler binding shape, Worker typing, REST configuration guidance
70
+
71
+ ## See Also
72
+
73
+ - [Cloudflare Artifacts Docs](https://developers.cloudflare.com/artifacts/)
74
+ - [Artifacts Git Protocol Docs](https://developers.cloudflare.com/artifacts/api/git-protocol/)
75
+ - [ArtifactFS Docs](https://developers.cloudflare.com/artifacts/api/artifactfs/)
76
+ - [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
77
+ - [Cloudflare Durable Objects Docs](https://developers.cloudflare.com/durable-objects/)
78
+ - [Cloudflare R2 Docs](https://developers.cloudflare.com/r2/)
79
+ - [Cloudflare D1 Docs](https://developers.cloudflare.com/d1/)
@@ -0,0 +1,128 @@
1
+ # Artifacts API Reference
2
+
3
+ Use Artifacts through the **Workers binding**, the **REST control plane**, and **Git-compatible remotes**.
4
+
5
+ **Prefer retrieval** for exact request and response details. Verify current behavior at `https://developers.cloudflare.com/artifacts/` before relying on specific auth flows, route details, or generated binding types.
6
+
7
+ ## Workers Binding
8
+
9
+ Artifacts exposes a Worker binding on `env.ARTIFACTS`.
10
+
11
+ ### Namespace Methods
12
+
13
+ | Method | Use For |
14
+ |--------|---------|
15
+ | `create(name, opts?)` | Create a repo and receive its initial remote and token |
16
+ | `get(name)` | Resolve a repo handle for repo-scoped operations |
17
+ | `list(opts?)` | List repos in a namespace |
18
+ | `delete(name)` | Delete a repo |
19
+
20
+ ```typescript
21
+ const created = await env.ARTIFACTS.create("starter-repo", {
22
+ description: "Repository for automation experiments",
23
+ setDefaultBranch: "main"
24
+ });
25
+ const repo = await env.ARTIFACTS.get("starter-repo");
26
+ const page = await env.ARTIFACTS.list({ limit: 10 });
27
+ ```
28
+
29
+ Use the REST API when you need to import a repo from another HTTPS remote.
30
+
31
+ ### Repo Handle Methods
32
+
33
+ Use a repo handle returned by `get()` or `create()`.
34
+
35
+ | Method | Use For |
36
+ |--------|---------|
37
+ | `info()` | Read repo metadata, including the remote URL |
38
+ | `createToken(scope?, ttl?)` | Mint a repo-scoped read or write token |
39
+ | `listTokens()` | Inspect active tokens |
40
+ | `validateToken(token)` | Check whether a token is still valid |
41
+ | `revokeToken(tokenOrId)` | Revoke a token by ID or value |
42
+ | `fork(name, opts?)` | Fork one repo into another |
43
+
44
+ ```typescript
45
+ const repo = await env.ARTIFACTS.get("starter-repo");
46
+ if (!repo) throw new Error("Repo not found");
47
+
48
+ const info = await repo.info();
49
+ const token = await repo.createToken("read", 3600);
50
+ const forked = await repo.fork("starter-repo-copy", {
51
+ defaultBranchOnly: true
52
+ });
53
+ ```
54
+
55
+ ### Binding Notes
56
+
57
+ - Current docs describe the runtime binding surface as `create`, `get`, `list`, `delete`, and repo-handle methods like `info`, `createToken`, and `fork`.
58
+ - Use `npx wrangler types` in the target project and treat the generated `worker-configuration.d.ts` as the source of truth for that environment.
59
+ - If generated types appear to expose `import()` or a different `get()` shape, verify the live docs before depending on those methods.
60
+
61
+ Verify current runtime behavior in the live docs before depending on methods that are not shown in the Workers binding reference.
62
+
63
+ ## REST API
64
+
65
+ Artifacts currently documents a namespace-scoped control plane:
66
+
67
+ ```txt
68
+ https://artifacts.cloudflare.net/v1/api/namespaces/$ARTIFACTS_NAMESPACE
69
+ ```
70
+
71
+ Some deployments also expose an `/edge/v1/api/...` base path. Verify the correct base URL for your environment in the live docs.
72
+
73
+ Requests to the standard `/v1/api/...` routes use a **gateway JWT** with Bearer authentication.
74
+
75
+ Returned repo tokens authenticate **Git operations** against the repo `remote`. They do not authenticate REST control-plane requests.
76
+
77
+ Current docs show the standard Cloudflare v4 response envelope around REST results.
78
+
79
+ ### Repo Routes
80
+
81
+ | Route | Use For |
82
+ |-------|---------|
83
+ | `POST /repos` | Create a repo |
84
+ | `GET /repos` | List repos |
85
+ | `GET /repos/:name` | Read repo metadata and remote |
86
+ | `DELETE /repos/:name` | Delete a repo |
87
+ | `POST /repos/:name/fork` | Fork a repo |
88
+ | `POST /repos/:name/import` | Import a public HTTPS remote |
89
+
90
+ ```bash
91
+ curl --request POST "$ARTIFACTS_BASE_URL/repos" \
92
+ --header "Authorization: Bearer $ARTIFACTS_JWT" \
93
+ --header "Content-Type: application/json" \
94
+ --data '{"name":"starter-repo"}'
95
+ ```
96
+
97
+ Important current details from the docs draft:
98
+ - `POST /repos/:name/import` accepts a full HTTPS remote URL such as GitHub or GitLab.
99
+ - Import supports options such as `branch`, `depth`, and `read_only`.
100
+ - Repo metadata includes fields such as description, default branch, timestamps, and the Git `remote`.
101
+
102
+ ### Token Routes
103
+
104
+ | Route | Use For |
105
+ |-------|---------|
106
+ | `GET /repos/:name/tokens` | List repo tokens |
107
+ | `POST /tokens` | Create a token for a repo |
108
+ | `DELETE /tokens/:id` | Revoke a token by ID |
109
+
110
+ Current docs show list-token filtering and pagination by token state. Retrieve the exact query shape from the live docs when you need token audit or cleanup workflows.
111
+
112
+ Use **read** tokens for clone, fetch, pull, and indexing workflows. Use **write** tokens only when a workflow must push or otherwise mutate a repo.
113
+
114
+ ## Git-Compatible Access
115
+
116
+ Artifacts returns repo `remote` URLs that work with standard git-over-HTTPS tooling.
117
+
118
+ Recommended current auth pattern for local workflows:
119
+
120
+ ```bash
121
+ git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" clone "$ARTIFACTS_REMOTE" artifacts-clone
122
+ ```
123
+
124
+ Use a self-contained Basic-auth remote only for short-lived commands that need credentials embedded in the URL.
125
+
126
+ `read` tokens support `clone`, `fetch`, and `pull`. `git push` requires a `write` token.
127
+
128
+ For large repos where startup time matters more than a full clone, Artifacts also documents **ArtifactFS**. Retrieve current details from `https://developers.cloudflare.com/artifacts/` when you need mount-style access.
@@ -0,0 +1,92 @@
1
+ # Artifacts Configuration
2
+
3
+ ## Worker Binding
4
+
5
+ Configure the `artifacts` binding in your Wrangler config:
6
+
7
+ ```toml
8
+ [[artifacts]]
9
+ binding = "ARTIFACTS"
10
+ namespace = "default"
11
+ ```
12
+
13
+ This exposes Artifacts on `env.ARTIFACTS` inside your Worker.
14
+
15
+ If you authenticate with `wrangler login`, current docs say Wrangler requests `artifacts:write` by default.
16
+
17
+ ## TypeScript
18
+
19
+ Regenerate Worker types after adding the binding:
20
+
21
+ ```bash
22
+ npx wrangler types
23
+ ```
24
+
25
+ Use the generated binding type in your environment definition:
26
+
27
+ ```typescript
28
+ interface Env {
29
+ ARTIFACTS: Artifacts;
30
+ }
31
+ ```
32
+
33
+ Wrangler generates the `Artifacts` type from the binding. Treat the generated `worker-configuration.d.ts` file as the source of truth for your environment.
34
+
35
+ ## Structure Repos for Isolation
36
+
37
+ Artifacts works best when autonomous work is isolated:
38
+ - Create one repo per agent, session, sandbox, or task when work should stay separate.
39
+ - Fork from a reviewed baseline instead of copying starter files into every new repo.
40
+ - Use branches only when collaborators share the same lifecycle and need to work in one repo.
41
+ - Use namespaces to separate environments, teams, or high-rate workloads.
42
+
43
+ ## REST Configuration
44
+
45
+ For external systems, configure the namespace-scoped base URL and gateway JWT:
46
+
47
+ ```bash
48
+ export ARTIFACTS_NAMESPACE="default"
49
+ export ARTIFACTS_JWT="<YOUR_GATEWAY_JWT>"
50
+ export ARTIFACTS_BASE_URL="https://artifacts.cloudflare.net/v1/api/namespaces/$ARTIFACTS_NAMESPACE"
51
+ ```
52
+
53
+ Some environments also expose an `/edge/v1/api/...` base path. Verify the correct host and base path in the live docs for your Artifacts environment.
54
+
55
+ Use environment variables or your secret manager. Do not hardcode gateway JWTs or repo tokens.
56
+
57
+ ## Repo Tokens
58
+
59
+ Artifacts workflows usually involve repo-scoped tokens returned by `create()` or minted later through the binding or REST API.
60
+
61
+ Keep the control plane and data plane separate:
62
+ - Use the **Workers binding** or **REST API** with a gateway JWT to create repos and mint tokens.
63
+ - Use repo-scoped tokens only for **Git operations** against the returned `remote`.
64
+
65
+ Recommended handling:
66
+ - Mint the narrowest scope you need: `read` or `write`
67
+ - Prefer short-lived tokens for handoff between systems
68
+ - Revoke tokens that are no longer needed
69
+
70
+ Verify the current token behavior and auth guidance in `https://developers.cloudflare.com/artifacts/` before building long-lived automation.
71
+
72
+ ## Git Consumers
73
+
74
+ Artifacts is designed to work with standard git-over-HTTPS clients once you have a repo `remote` and an access token.
75
+
76
+ Prefer header-based auth for local tooling so the full token stays out of the remote URL:
77
+
78
+ ```bash
79
+ git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" clone "$ARTIFACTS_REMOTE" artifacts-clone
80
+ ```
81
+
82
+ Use a Basic-auth remote only for short-lived commands that need a self-contained URL.
83
+
84
+ ## Retrieval Checklist
85
+
86
+ Check the live docs before relying on:
87
+ - the current Workers binding surface
88
+ - exact token formats
89
+ - availability or product status
90
+ - route details for import, fork, and token-management flows
91
+ - the correct control-plane host or `/edge/v1` base path for your environment
92
+ - platform limits or pricing
@@ -0,0 +1,122 @@
1
+ # Cloudflare Bindings Skill Reference
2
+
3
+ Expert guidance on Cloudflare Workers Bindings - the runtime APIs that connect Workers to Cloudflare platform resources.
4
+
5
+ ## What Are Bindings?
6
+
7
+ Bindings are how Workers access Cloudflare resources (storage, compute, services) via the `env` object. They're configured in `wrangler.jsonc`, type-safe via TypeScript, and zero-overhead at runtime.
8
+
9
+ ## Reading Order
10
+
11
+ 1. **This file** - Binding catalog and selection guide
12
+ 2. **[api.md](api.md)** - TypeScript types and env access patterns
13
+ 3. **[configuration.md](configuration.md)** - Complete wrangler.jsonc examples
14
+ 4. **[patterns.md](patterns.md)** - Best practices and common patterns
15
+ 5. **[gotchas.md](gotchas.md)** - Critical pitfalls and troubleshooting
16
+
17
+ ## Binding Catalog
18
+
19
+ ### Storage Bindings
20
+
21
+ | Binding | Use Case | Access Pattern |
22
+ |---------|----------|----------------|
23
+ | **KV** | Key-value cache, CDN-backed reads | `env.MY_KV.get(key)` |
24
+ | **R2** | Object storage (S3-compatible) | `env.MY_BUCKET.get(key)` |
25
+ | **D1** | SQL database (SQLite) | `env.DB.prepare(sql).all()` |
26
+ | **Durable Objects** | Coordination, real-time state | `env.MY_DO.get(id)` |
27
+ | **Vectorize** | Vector embeddings search | `env.VECTORIZE.query(vector)` |
28
+ | **Queues** | Async message processing | `env.MY_QUEUE.send(msg)` |
29
+
30
+ ### Compute Bindings
31
+
32
+ | Binding | Use Case | Access Pattern |
33
+ |---------|----------|----------------|
34
+ | **Service** | Worker-to-Worker RPC | `env.MY_SERVICE.fetch(req)` |
35
+ | **Workers AI** | LLM inference | `env.AI.run(model, input)` |
36
+ | **Browser Rendering** | Headless Chrome | `env.BROWSER.fetch(url)` |
37
+
38
+ ### Platform Bindings
39
+
40
+ | Binding | Use Case | Access Pattern |
41
+ |---------|----------|----------------|
42
+ | **Analytics Engine** | Custom metrics | `env.ANALYTICS.writeDataPoint(data)` |
43
+ | **mTLS** | Client certificates | `env.MY_CERT` (string) |
44
+ | **Hyperdrive** | Database pooling | `env.HYPERDRIVE.connectionString` |
45
+ | **Rate Limiting** | Request throttling | `env.RATE_LIMITER.limit(id)` |
46
+ | **Workflows** | Long-running workflows | `env.MY_WORKFLOW.create()` |
47
+
48
+ ### Configuration Bindings
49
+
50
+ | Binding | Use Case | Access Pattern |
51
+ |---------|----------|----------------|
52
+ | **Environment Variables** | Non-sensitive config | `env.API_URL` (string) |
53
+ | **Secrets** | Sensitive values | `env.API_KEY` (string) |
54
+ | **Text/Data Blobs** | Static files | `env.MY_BLOB` (string) |
55
+ | **WASM** | WebAssembly modules | `env.MY_WASM` (WebAssembly.Module) |
56
+
57
+ ## Quick Selection Guide
58
+
59
+ **Need persistent storage?**
60
+ - Key-value < 25MB → **KV**
61
+ - Files/objects → **R2**
62
+ - Relational data → **D1**
63
+ - Real-time coordination → **Durable Objects**
64
+
65
+ **Need AI/compute?**
66
+ - LLM inference → **Workers AI**
67
+ - Scraping/PDFs → **Browser Rendering**
68
+ - Call another Worker → **Service binding**
69
+
70
+ **Need async processing?**
71
+ - Background jobs → **Queues**
72
+
73
+ **Need config?**
74
+ - Public values → **Environment Variables**
75
+ - Secrets → **Secrets** (never commit)
76
+
77
+ ## Quick Start
78
+
79
+ 1. **Add binding to wrangler.jsonc:**
80
+ ```jsonc
81
+ {
82
+ "kv_namespaces": [
83
+ { "binding": "MY_KV", "id": "your-kv-id" }
84
+ ]
85
+ }
86
+ ```
87
+
88
+ 2. **Generate types:**
89
+ ```bash
90
+ npx wrangler types
91
+ ```
92
+
93
+ 3. **Access in Worker:**
94
+ ```typescript
95
+ export default {
96
+ async fetch(request, env, ctx) {
97
+ await env.MY_KV.put('key', 'value');
98
+ return new Response('OK');
99
+ }
100
+ }
101
+ ```
102
+
103
+ ## Type Safety
104
+
105
+ Bindings are fully typed via `wrangler types`. See [api.md](api.md) for details.
106
+
107
+ ## Limits
108
+
109
+ - 64 bindings max per Worker (all types combined)
110
+ - See [gotchas.md](gotchas.md) for per-binding limits
111
+
112
+ ## Key Concepts
113
+
114
+ **Zero-overhead access:** Bindings compiled into Worker, no network calls to access
115
+ **Type-safe:** Full TypeScript support via `wrangler types`
116
+ **Per-environment:** Different IDs for dev/staging/production
117
+ **Secrets vs Vars:** Secrets encrypted at rest, never in config files
118
+
119
+ ## See Also
120
+
121
+ - [Cloudflare Docs: Bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/)
122
+ - [Wrangler Configuration](https://developers.cloudflare.com/workers/wrangler/configuration/)
@@ -0,0 +1,203 @@
1
+ # Bindings API Reference
2
+
3
+ ## TypeScript Types
4
+
5
+ Cloudflare generates binding types via `npx wrangler types`. This creates `.wrangler/types/runtime.d.ts` with your Env interface.
6
+
7
+ ### Generated Env Interface
8
+
9
+ After running `wrangler types`, TypeScript knows your bindings:
10
+
11
+ ```typescript
12
+ interface Env {
13
+ // From wrangler.jsonc bindings
14
+ MY_KV: KVNamespace;
15
+ MY_BUCKET: R2Bucket;
16
+ DB: D1Database;
17
+ MY_SERVICE: Fetcher;
18
+ AI: Ai;
19
+
20
+ // From vars
21
+ API_URL: string;
22
+
23
+ // From secrets (set via wrangler secret put)
24
+ API_KEY: string;
25
+ }
26
+ ```
27
+
28
+ ### Binding Types
29
+
30
+ | Config | TypeScript Type | Package |
31
+ |--------|-----------------|---------|
32
+ | `kv_namespaces` | `KVNamespace` | `@cloudflare/workers-types` |
33
+ | `r2_buckets` | `R2Bucket` | `@cloudflare/workers-types` |
34
+ | `d1_databases` | `D1Database` | `@cloudflare/workers-types` |
35
+ | `durable_objects.bindings` | `DurableObjectNamespace` | `@cloudflare/workers-types` |
36
+ | `vectorize` | `VectorizeIndex` | `@cloudflare/workers-types` |
37
+ | `queues.producers` | `Queue` | `@cloudflare/workers-types` |
38
+ | `services` | `Fetcher` | `@cloudflare/workers-types` |
39
+ | `ai` | `Ai` | `@cloudflare/workers-types` |
40
+ | `browser` | `Fetcher` | `@cloudflare/workers-types` |
41
+ | `analytics_engine_datasets` | `AnalyticsEngineDataset` | `@cloudflare/workers-types` |
42
+ | `hyperdrive` | `Hyperdrive` | `@cloudflare/workers-types` |
43
+ | `rate_limiting` | `RateLimit` | `@cloudflare/workers-types` |
44
+ | `workflows` | `Workflow` | `@cloudflare/workers-types` |
45
+ | `mtls_certificates` / `vars` / `text_blobs` / `data_blobs` | `string` | Built-in |
46
+ | `wasm_modules` | `WebAssembly.Module` | Built-in |
47
+
48
+ ## Accessing Bindings
49
+
50
+ ### Method 1: fetch() Handler (Recommended)
51
+
52
+ ```typescript
53
+ export default {
54
+ async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
55
+ const value = await env.MY_KV.get('key');
56
+ return new Response(value);
57
+ }
58
+ }
59
+ ```
60
+
61
+ **Why:** Type-safe, aligns with Workers API, supports ctx for waitUntil/passThroughOnException.
62
+
63
+ ### Method 2: Hono Framework
64
+
65
+ ```typescript
66
+ import { Hono } from 'hono';
67
+
68
+ const app = new Hono<{ Bindings: Env }>();
69
+
70
+ app.get('/', async (c) => {
71
+ const value = await c.env.MY_KV.get('key');
72
+ return c.json({ value });
73
+ });
74
+
75
+ export default app;
76
+ ```
77
+
78
+ **Why:** c.env auto-typed, ergonomic for routing-heavy apps.
79
+
80
+ ### Method 3: Module Workers (Legacy)
81
+
82
+ ```typescript
83
+ export async function handleRequest(request: Request, env: Env): Promise<Response> {
84
+ const value = await env.MY_KV.get('key');
85
+ return new Response(value);
86
+ }
87
+
88
+ addEventListener('fetch', (event) => {
89
+ // env not directly available - requires workarounds
90
+ });
91
+ ```
92
+
93
+ **Avoid:** Use fetch() handler instead (Method 1).
94
+
95
+ ## Type Generation Workflow
96
+
97
+ ### Initial Setup
98
+
99
+ ```bash
100
+ # Install wrangler
101
+ npm install -D wrangler
102
+
103
+ # Generate types from wrangler.jsonc
104
+ npx wrangler types
105
+ ```
106
+
107
+ ### After Changing Bindings
108
+
109
+ ```bash
110
+ # Added/modified binding in wrangler.jsonc
111
+ npx wrangler types
112
+
113
+ # TypeScript now sees updated Env interface
114
+ ```
115
+
116
+ **Note:** `wrangler types` outputs to `.wrangler/types/runtime.d.ts`. TypeScript picks this up automatically if `@cloudflare/workers-types` is in `tsconfig.json` `"types"` array.
117
+
118
+ ## Key Binding Methods
119
+
120
+ **KV:**
121
+ ```typescript
122
+ await env.MY_KV.get(key, { type: 'json' }); // text|json|arrayBuffer|stream
123
+ await env.MY_KV.put(key, value, { expirationTtl: 3600 });
124
+ await env.MY_KV.delete(key);
125
+ await env.MY_KV.list({ prefix: 'user:' });
126
+ ```
127
+
128
+ **R2:**
129
+ ```typescript
130
+ await env.BUCKET.get(key);
131
+ await env.BUCKET.put(key, value);
132
+ await env.BUCKET.delete(key);
133
+ await env.BUCKET.list({ prefix: 'images/' });
134
+ ```
135
+
136
+ **D1:**
137
+ ```typescript
138
+ await env.DB.prepare('SELECT * FROM users WHERE id = ?').bind(userId).first();
139
+ await env.DB.batch([stmt1, stmt2]);
140
+ ```
141
+
142
+ **Service:**
143
+ ```typescript
144
+ await env.MY_SERVICE.fetch(new Request('https://fake/path'));
145
+ ```
146
+
147
+ **Workers AI:**
148
+ ```typescript
149
+ await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { prompt: 'Hello' });
150
+ ```
151
+
152
+ **Queues:**
153
+ ```typescript
154
+ await env.MY_QUEUE.send({ userId: 123, action: 'process' });
155
+ ```
156
+
157
+ **Durable Objects:**
158
+ ```typescript
159
+ const id = env.MY_DO.idFromName('user-123');
160
+ const stub = env.MY_DO.get(id);
161
+ await stub.fetch(new Request('https://fake/increment'));
162
+ ```
163
+
164
+ ## Runtime vs Build-Time Types
165
+
166
+ | Type Source | When Generated | Use Case |
167
+ |-------------|----------------|----------|
168
+ | `@cloudflare/workers-types` | npm install | Base Workers APIs (Request, Response, etc.) |
169
+ | `wrangler types` | After config change | Your specific bindings (Env interface) |
170
+
171
+ **Install both:**
172
+ ```bash
173
+ npm install -D @cloudflare/workers-types
174
+ npx wrangler types
175
+ ```
176
+
177
+ ## Type Safety Best Practices
178
+
179
+ 1. **Never use `any` for env:**
180
+ ```typescript
181
+ // ❌ BAD
182
+ async fetch(request: Request, env: any) { }
183
+
184
+ // ✅ GOOD
185
+ async fetch(request: Request, env: Env) { }
186
+ ```
187
+
188
+ 2. **Run wrangler types after config changes:**
189
+ ```bash
190
+ # After editing wrangler.jsonc
191
+ npx wrangler types
192
+ ```
193
+
194
+ 3. **Check generated types match config:**
195
+ ```bash
196
+ # View generated Env interface
197
+ cat .wrangler/types/runtime.d.ts
198
+ ```
199
+
200
+ ## See Also
201
+
202
+ - [Workers Types Package](https://www.npmjs.com/package/@cloudflare/workers-types)
203
+ - [Wrangler Types Command](https://developers.cloudflare.com/workers/wrangler/commands/#types)