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,152 @@
1
+ # Workflow Configuration
2
+
3
+ ## wrangler.jsonc Setup
4
+
5
+ ```jsonc
6
+ {
7
+ "name": "my-worker",
8
+ "main": "src/index.ts",
9
+ "compatibility_date": "2025-01-01", // Minimum 2024-10-22 required for Workflows bindings
10
+ "observability": {
11
+ "enabled": true // Enables Workflows dashboard + structured logs
12
+ },
13
+ "workflows": [
14
+ {
15
+ "name": "my-workflow", // Workflow name
16
+ "binding": "MY_WORKFLOW", // Env binding
17
+ "class_name": "MyWorkflow", // TS class name
18
+ // "script_name": "other-worker" // For cross-script calls
19
+ // "limits": { "steps": 25000 } // Optional: max steps per instance (check docs for default/max per plan)
20
+ }
21
+ ],
22
+ "limits": {
23
+ "cpu_ms": 300000 // Check docs for default and max CPU time per plan
24
+ }
25
+ }
26
+ ```
27
+
28
+ ## Step Configuration
29
+
30
+ ```typescript
31
+ // Basic step
32
+ const data = await step.do('step name', async () => ({ result: 'value' }));
33
+
34
+ // With retry config
35
+ await step.do('api call', {
36
+ retries: {
37
+ limit: 10, // Accepts number or Infinity
38
+ delay: '10 seconds', // Accepts number (ms) or duration string
39
+ backoff: 'exponential' // constant | linear | exponential
40
+ },
41
+ timeout: '30 minutes' // Per-attempt timeout
42
+ }, async () => {
43
+ const res = await fetch('https://api.example.com/data');
44
+ if (!res.ok) throw new Error('Failed');
45
+ return res.json();
46
+ });
47
+ ```
48
+
49
+ ### Parallel Steps
50
+ ```typescript
51
+ const [user, settings] = await Promise.all([
52
+ step.do('fetch user', async () => this.env.KV.get(`user:${id}`)),
53
+ step.do('fetch settings', async () => this.env.KV.get(`settings:${id}`))
54
+ ]);
55
+ ```
56
+
57
+ ### Conditional Steps
58
+ ```typescript
59
+ const config = await step.do('fetch config', async () =>
60
+ this.env.KV.get('flags', { type: 'json' })
61
+ );
62
+
63
+ // ✅ Deterministic (based on step output)
64
+ if (config.enableEmail) {
65
+ await step.do('send email', async () => sendEmail());
66
+ }
67
+
68
+ // ❌ Non-deterministic (Date.now outside step)
69
+ if (Date.now() > deadline) { /* BAD */ }
70
+ ```
71
+
72
+ ### Dynamic Steps (Loops)
73
+ ```typescript
74
+ const files = await step.do('list files', async () =>
75
+ this.env.BUCKET.list()
76
+ );
77
+
78
+ for (const file of files.objects) {
79
+ await step.do(`process ${file.key}`, async () => {
80
+ const obj = await this.env.BUCKET.get(file.key);
81
+ return processData(await obj.arrayBuffer());
82
+ });
83
+ }
84
+ ```
85
+
86
+ ## Multiple Workflows
87
+
88
+ ```jsonc
89
+ {
90
+ "workflows": [
91
+ {"name": "user-onboarding", "binding": "USER_ONBOARDING", "class_name": "UserOnboarding"},
92
+ {"name": "data-processing", "binding": "DATA_PROCESSING", "class_name": "DataProcessing"}
93
+ ]
94
+ }
95
+ ```
96
+
97
+ Each class extends `WorkflowEntrypoint` with its own `Params` type.
98
+
99
+ ## Cross-Script Bindings
100
+
101
+ Worker A defines workflow. Worker B calls it by adding `script_name`:
102
+
103
+ ```jsonc
104
+ // Worker B (caller)
105
+ {
106
+ "workflows": [{
107
+ "name": "billing-workflow",
108
+ "binding": "BILLING",
109
+ "script_name": "billing-worker" // Points to Worker A
110
+ }]
111
+ }
112
+ ```
113
+
114
+ ## Bindings
115
+
116
+ Workflows access Cloudflare bindings via `this.env`:
117
+
118
+ ```typescript
119
+ type Env = {
120
+ MY_WORKFLOW: Workflow;
121
+ KV: KVNamespace;
122
+ DB: D1Database;
123
+ BUCKET: R2Bucket;
124
+ AI: Ai;
125
+ VECTORIZE: VectorizeIndex;
126
+ };
127
+
128
+ await step.do('use bindings', async () => {
129
+ const kv = await this.env.KV.get('key');
130
+ const db = await this.env.DB.prepare('SELECT * FROM users').first();
131
+ const file = await this.env.BUCKET.get('file.txt');
132
+ const ai = await this.env.AI.run('@cf/meta/llama-2-7b-chat-int8', { prompt: 'Hi' });
133
+ });
134
+ ```
135
+
136
+ ## Pages Functions Binding
137
+
138
+ Pages Functions can trigger Workflows via service bindings:
139
+
140
+ ```typescript
141
+ // functions/_middleware.ts
142
+ export const onRequest: PagesFunction<Env> = async ({ env, request }) => {
143
+ const instance = await env.MY_WORKFLOW.create({
144
+ params: { url: request.url }
145
+ });
146
+ return new Response(`Started ${instance.id}`);
147
+ };
148
+ ```
149
+
150
+ Configure in wrangler.jsonc under `service_bindings`.
151
+
152
+ See: [api.md](./api.md), [patterns.md](./patterns.md)
@@ -0,0 +1,90 @@
1
+ # Gotchas & Debugging
2
+
3
+ ## Common Errors
4
+
5
+ ### "Step Timeout"
6
+
7
+ **Cause:** Step execution exceeding the default or configured timeout
8
+ **Solution:** Set custom timeout with `step.do('long operation', {timeout: '30 minutes'}, async () => {...})` or increase CPU limit via `limits.cpu_ms` in wrangler.jsonc
9
+
10
+ ### "waitForEvent Timeout"
11
+
12
+ **Cause:** Event not received within timeout period (check docs for default/max)
13
+ **Solution:** Wrap in try-catch to handle timeout gracefully and proceed with default behavior
14
+
15
+ ### "Non-Deterministic Step Names"
16
+
17
+ **Cause:** Using dynamic values like `Date.now()` in step names causes replay issues
18
+ **Solution:** Use deterministic values like `event.instanceId` for step names
19
+
20
+ ### "State Lost in Variables"
21
+
22
+ **Cause:** Using module-level or local variables to store state which is lost on hibernation
23
+ **Solution:** Return values from `step.do()` which are automatically persisted: `const total = await step.do('step 1', async () => 10)`
24
+
25
+ ### "Non-Deterministic Conditionals"
26
+
27
+ **Cause:** Using non-deterministic logic (like `Date.now()`) outside steps in conditionals
28
+ **Solution:** Move non-deterministic operations inside steps: `const isLate = await step.do('check', async () => Date.now() > deadline)`
29
+
30
+ ### "Large Step Returns Exceeding Limit"
31
+
32
+ **Cause:** Returning data exceeding the per-step return size limit
33
+ **Solution:** Store large data in R2 and return only reference: `{ key: 'r2-object-key' }`. Alternatively, return a `ReadableStream<Uint8Array>` for large binary output
34
+
35
+ ### "Step Exceeded CPU Limit But Ran for a Short Time"
36
+
37
+ **Cause:** Confusion between CPU time (active compute) and wall-clock time (includes I/O waits)
38
+ **Solution:** Network requests, database queries, and sleeps don't count toward CPU. The CPU limit refers to active processing time only
39
+
40
+ ### "Idempotency Violation"
41
+
42
+ **Cause:** Step operations not idempotent, causing duplicate charges or actions on retry
43
+ **Solution:** Check if operation already completed before executing (e.g., check if customer already charged)
44
+
45
+ ### "Instance ID Collision"
46
+
47
+ **Cause:** Reusing instance IDs causing conflicts
48
+ **Solution:** Use unique IDs with timestamp: `await env.MY_WORKFLOW.create({ id: \`${userId}-${Date.now()}\`, params: {} })`
49
+
50
+ ### "Instance Data Disappeared After Completion"
51
+
52
+ **Cause:** Completed/errored instances are automatically deleted after the retention period (differs by plan)
53
+ **Solution:** Export critical data to KV/R2/D1 before workflow completes
54
+
55
+ ### "Missing await on step.do"
56
+
57
+ **Cause:** Forgetting to await step.do() causing fire-and-forget behavior
58
+ **Solution:** Always await step operations: `await step.do('task', ...)`
59
+
60
+ ### "Provided event type is invalid"
61
+
62
+ **Cause:** Using unsupported characters in `waitForEvent` type (e.g. `.`)
63
+ **Solution:** Type only supports letters, digits, `-`, and `_`. Pattern: `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$`
64
+
65
+ ## Limits & Pricing
66
+
67
+ Limits and pricing change over time. **Always fetch the latest values** from the official docs before citing specific numbers:
68
+
69
+ - **Limits:** https://developers.cloudflare.com/workflows/reference/limits/
70
+ - **Pricing:** https://developers.cloudflare.com/workflows/reference/pricing/
71
+
72
+ Key areas to check: CPU time per step, max steps per workflow, concurrent instance limits, step return size, event payload size, instance creation rate, subrequest limits, state retention period, and name/ID length constraints.
73
+
74
+ **Behavioral notes** (stable, not subject to number changes):
75
+ - `step.sleep()` and `step.waitForEvent()` don't count toward the max steps limit
76
+ - Instances in `waiting` state (sleeping, waiting for event, waiting for retry) don't count toward the concurrent instance limit
77
+ - CPU time is active processing only — network I/O, DB queries, and sleeps are wall-clock time, not CPU time
78
+ - `waitForEvent` type and workflow/instance names follow pattern `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$`
79
+
80
+ ## References
81
+
82
+ - [Official Docs](https://developers.cloudflare.com/workflows/)
83
+ - [Get Started Guide](https://developers.cloudflare.com/workflows/get-started/guide/)
84
+ - [Workers API](https://developers.cloudflare.com/workflows/build/workers-api/)
85
+ - [REST API](https://developers.cloudflare.com/api/resources/workflows/)
86
+ - [Examples](https://developers.cloudflare.com/workflows/examples/)
87
+ - [Limits](https://developers.cloudflare.com/workflows/reference/limits/)
88
+ - [Pricing](https://developers.cloudflare.com/workflows/reference/pricing/)
89
+
90
+ See: [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [patterns.md](./patterns.md)
@@ -0,0 +1,175 @@
1
+ # Workflow Patterns
2
+
3
+ ## Image Processing Pipeline
4
+
5
+ ```typescript
6
+ export class ImageProcessingWorkflow extends WorkflowEntrypoint<Env, Params> {
7
+ async run(event, step) {
8
+ const imageData = await step.do('fetch', async () => (await this.env.BUCKET.get(event.payload.imageKey)).arrayBuffer());
9
+ const description = await step.do('generate description', async () =>
10
+ await this.env.AI.run('@cf/llava-hf/llava-1.5-7b-hf', {image: Array.from(new Uint8Array(imageData)), prompt: 'Describe this image', max_tokens: 50})
11
+ );
12
+ await step.waitForEvent('await approval', { type: 'approved', timeout: '24h' });
13
+ await step.do('publish', async () => await this.env.BUCKET.put(`public/${event.payload.imageKey}`, imageData));
14
+ }
15
+ }
16
+ ```
17
+
18
+ ## User Lifecycle
19
+
20
+ ```typescript
21
+ export class UserLifecycleWorkflow extends WorkflowEntrypoint<Env, Params> {
22
+ async run(event, step) {
23
+ await step.do('welcome email', async () => await sendEmail(event.payload.email, 'Welcome!'));
24
+ await step.sleep('trial period', '7 days');
25
+ const hasConverted = await step.do('check conversion', async () => {
26
+ const user = await this.env.DB.prepare('SELECT subscription_status FROM users WHERE id = ?').bind(event.payload.userId).first();
27
+ return user.subscription_status === 'active';
28
+ });
29
+ if (!hasConverted) await step.do('trial expiration email', async () => await sendEmail(event.payload.email, 'Trial ending'));
30
+ }
31
+ }
32
+ ```
33
+
34
+ ## Data Pipeline
35
+
36
+ ```typescript
37
+ export class DataPipelineWorkflow extends WorkflowEntrypoint<Env, Params> {
38
+ async run(event, step) {
39
+ const rawData = await step.do('extract', {retries: { limit: 10, delay: '30s', backoff: 'exponential' }}, async () => {
40
+ const res = await fetch(event.payload.sourceUrl);
41
+ if (!res.ok) throw new Error('Fetch failed');
42
+ return res.json();
43
+ });
44
+ const transformed = await step.do('transform', async () =>
45
+ rawData.map(item => ({ id: item.id, normalized: normalizeData(item) }))
46
+ );
47
+ const dataRef = await step.do('store', async () => {
48
+ const key = `processed/${Date.now()}.json`;
49
+ await this.env.BUCKET.put(key, JSON.stringify(transformed));
50
+ return { key };
51
+ });
52
+ await step.do('load', async () => {
53
+ const data = await (await this.env.BUCKET.get(dataRef.key)).json();
54
+ for (let i = 0; i < data.length; i += 100) {
55
+ await this.env.DB.batch(data.slice(i, i + 100).map(item =>
56
+ this.env.DB.prepare('INSERT INTO records VALUES (?, ?)').bind(item.id, item.normalized)
57
+ ));
58
+ }
59
+ });
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## Human-in-the-Loop Approval
65
+
66
+ ```typescript
67
+ export class ApprovalWorkflow extends WorkflowEntrypoint<Env, Params> {
68
+ async run(event, step) {
69
+ await step.do('create approval', async () => await this.env.DB.prepare('INSERT INTO approvals (id, user_id, status) VALUES (?, ?, ?)').bind(event.instanceId, event.payload.userId, 'pending').run());
70
+ try {
71
+ const approval = await step.waitForEvent<{ approved: boolean }>('wait for approval', { type: 'approval-response', timeout: '48h' });
72
+ if (approval.approved) { await step.do('process approval', async () => {}); }
73
+ else { await step.do('handle rejection', async () => {}); }
74
+ } catch (e) {
75
+ await step.do('auto reject', async () => await this.env.DB.prepare('UPDATE approvals SET status = ? WHERE id = ?').bind('auto-rejected', event.instanceId).run());
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
81
+ ## Testing Workflows
82
+
83
+ ### Setup
84
+
85
+ ```typescript
86
+ // vitest.config.ts
87
+ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config';
88
+
89
+ export default defineWorkersConfig({
90
+ test: {
91
+ poolOptions: {
92
+ workers: {
93
+ wrangler: { configPath: './wrangler.jsonc' }
94
+ }
95
+ }
96
+ }
97
+ });
98
+ ```
99
+
100
+ ### Introspection API
101
+
102
+ ```typescript
103
+ import { introspectWorkflowInstance } from 'cloudflare:test';
104
+
105
+ const instance = await env.MY_WORKFLOW.create({ params: { userId: '123' } });
106
+ const introspector = await introspectWorkflowInstance(env.MY_WORKFLOW, instance.id);
107
+
108
+ // Wait for step completion
109
+ const result = await introspector.waitForStepResult({ name: 'fetch user', index: 0 });
110
+
111
+ // Mock step behavior
112
+ await introspector.modify(async (m) => {
113
+ await m.mockStepResult({ name: 'api call' }, { mocked: true });
114
+ });
115
+ ```
116
+
117
+ ## Best Practices
118
+
119
+ ### ✅ DO
120
+
121
+ 1. **Granular steps**: One API call per step (unless proving idempotency)
122
+ 2. **Idempotency**: Check-then-execute; use idempotency keys
123
+ 3. **Deterministic names**: Use static or step-output-based names
124
+ 4. **Return state**: Persist via step returns, not variables
125
+ 5. **Always await**: `await step.do()`, avoid dangling promises
126
+ 6. **Deterministic conditionals**: Base on `event.payload` or step outputs
127
+ 7. **Store large data externally**: R2/KV for data exceeding step return limit, return refs
128
+ 8. **Batch creation**: `createBatch()` for multiple instances
129
+
130
+ ### ❌ DON'T
131
+
132
+ 1. **One giant step**: Breaks durability & retry control
133
+ 2. **State outside steps**: Lost on hibernation
134
+ 3. **Mutate events**: Events immutable, return new state
135
+ 4. **Non-deterministic logic outside steps**: `Math.random()`, `Date.now()` must be in steps
136
+ 5. **Side effects outside steps**: May duplicate on restart
137
+ 6. **Non-deterministic step names**: Prevents caching
138
+ 7. **Ignore timeouts**: `waitForEvent` throws, use try-catch
139
+ 8. **Reuse instance IDs**: Must be unique within retention
140
+
141
+ ## Orchestration Patterns
142
+
143
+ ### Fan-Out (Parallel Processing)
144
+ ```typescript
145
+ const files = await step.do('list', async () => this.env.BUCKET.list());
146
+ await Promise.all(files.objects.map((file, i) => step.do(`process ${i}`, async () => processFile(await (await this.env.BUCKET.get(file.key)).arrayBuffer()))));
147
+ ```
148
+
149
+ ### Parent-Child Workflows
150
+ ```typescript
151
+ const child = await step.do('start child', async () => await this.env.CHILD_WORKFLOW.create({id: `child-${event.instanceId}`, params: { data: result.data }}));
152
+ await step.do('other work', async () => console.log(`Child started: ${child.id}`));
153
+ ```
154
+
155
+ ### Race Pattern
156
+ ```typescript
157
+ const winner = await Promise.race([
158
+ step.do('option A', async () => slowOperation()),
159
+ step.do('option B', async () => fastOperation())
160
+ ]);
161
+ ```
162
+
163
+ ### Scheduled Workflow Chain
164
+ ```typescript
165
+ export default { async scheduled(event, env) { await env.DAILY_WORKFLOW.create({id: `daily-${event.scheduledTime}`, params: { timestamp: event.scheduledTime }}); }};
166
+ export class DailyWorkflow extends WorkflowEntrypoint<Env, Params> {
167
+ async run(event, step) {
168
+ await step.do('daily task', async () => {});
169
+ await step.sleep('wait 7 days', '7 days');
170
+ await step.do('weekly followup', async () => {});
171
+ }
172
+ }
173
+ ```
174
+
175
+ See: [configuration.md](./configuration.md), [api.md](./api.md), [gotchas.md](./gotchas.md)
@@ -0,0 +1,135 @@
1
+ # Cloudflare Wrangler
2
+
3
+ Official CLI for Cloudflare Workers - develop, manage, and deploy Workers from the command line.
4
+
5
+ ## What is Wrangler?
6
+
7
+ Wrangler is the Cloudflare Developer Platform CLI that allows you to:
8
+ - Create, develop, and deploy Workers
9
+ - Manage bindings (KV, D1, R2, Durable Objects, etc.)
10
+ - Configure routing and environments
11
+ - Run local development servers
12
+ - Execute migrations and manage resources
13
+ - Perform integration testing
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ npm install wrangler --save-dev
19
+ # or globally
20
+ npm install -g wrangler
21
+ ```
22
+
23
+ Run commands: `npx wrangler <command>` (or `pnpm`/`yarn wrangler`)
24
+
25
+ ## Reading Order
26
+
27
+ | If you want to... | Start here |
28
+ |-------------------|------------|
29
+ | Create/deploy Worker quickly | Essential Commands below → [patterns.md](./patterns.md) §New Worker |
30
+ | Configure bindings (KV, D1, R2) | [configuration.md](./configuration.md) §Bindings |
31
+ | Write integration tests | [api.md](./api.md) §startWorker |
32
+ | Debug production issues | [gotchas.md](./gotchas.md) + Essential Commands §Monitoring |
33
+ | Set up multi-environment workflow | [configuration.md](./configuration.md) §Environments |
34
+
35
+ ## Essential Commands
36
+
37
+ ### Project & Development
38
+ ```bash
39
+ wrangler init [name] # Create new project
40
+ wrangler dev # Local dev server (fast, simulated)
41
+ wrangler dev --remote # Dev with remote resources (production-like)
42
+ wrangler deploy # Deploy to production
43
+ wrangler deploy --env staging # Deploy to environment
44
+ wrangler versions list # List versions
45
+ wrangler rollback [id] # Rollback deployment
46
+ wrangler login # OAuth login
47
+ wrangler whoami # Check auth status
48
+ ```
49
+
50
+ ## Resource Management
51
+
52
+ ### KV
53
+ ```bash
54
+ wrangler kv namespace create NAME
55
+ wrangler kv key put "key" "value" --namespace-id=<id>
56
+ wrangler kv key get "key" --namespace-id=<id>
57
+ ```
58
+
59
+ ### D1
60
+ ```bash
61
+ wrangler d1 create NAME
62
+ wrangler d1 execute NAME --command "SQL"
63
+ wrangler d1 migrations create NAME "description"
64
+ wrangler d1 migrations apply NAME
65
+ ```
66
+
67
+ ### R2
68
+ ```bash
69
+ wrangler r2 bucket create NAME
70
+ wrangler r2 object put BUCKET/key --file path
71
+ wrangler r2 object get BUCKET/key
72
+ ```
73
+
74
+ ### Other Resources
75
+ ```bash
76
+ wrangler queues create NAME
77
+ wrangler vectorize create NAME --dimensions N --metric cosine
78
+ wrangler hyperdrive create NAME --connection-string "..."
79
+ wrangler workflows create NAME
80
+ wrangler constellation create NAME
81
+ wrangler pages project create NAME
82
+ wrangler pages deployment create --project NAME --branch main
83
+ ```
84
+
85
+ ### Secrets
86
+ ```bash
87
+ wrangler secret put NAME # Set Worker secret
88
+ wrangler secret list # List Worker secrets
89
+ wrangler secret delete NAME # Delete Worker secret
90
+ wrangler secret bulk FILE.json # Bulk upload from JSON
91
+
92
+ # Secrets Store (centralized, reusable across Workers)
93
+ wrangler secrets-store secret create <store-id> --name SECRET_NAME --scopes workers --remote
94
+ wrangler secrets-store secret list <store-id> --remote
95
+ ```
96
+
97
+ ### Monitoring
98
+ ```bash
99
+ wrangler tail # Real-time logs
100
+ wrangler tail --env production # Tail specific env
101
+ wrangler tail --status error # Filter by status
102
+ ```
103
+
104
+ ## In This Reference
105
+
106
+ - [configuration.md](./configuration.md) - wrangler.jsonc setup, environments, bindings
107
+ - [api.md](./api.md) - Programmatic API (`startWorker`, `getPlatformProxy`, events)
108
+ - [patterns.md](./patterns.md) - Common workflows and development patterns
109
+ - [gotchas.md](./gotchas.md) - Common pitfalls, limits, and troubleshooting
110
+
111
+ ## Quick Decision Tree
112
+
113
+ ```
114
+ Need to test your Worker?
115
+ ├─ Testing full Worker with bindings → api.md §startWorker
116
+ ├─ Testing individual functions → api.md §getPlatformProxy
117
+ └─ Testing with Vitest → patterns.md §Testing with Vitest
118
+
119
+ Need to configure something?
120
+ ├─ Bindings (KV, D1, R2, etc.) → configuration.md §Bindings
121
+ ├─ Multiple environments → configuration.md §Environments
122
+ ├─ Static files → configuration.md §Workers Assets
123
+ └─ Routing → configuration.md §Routing
124
+
125
+ Development not working?
126
+ ├─ Local differs from production → Use `wrangler dev --remote`
127
+ ├─ Bindings not available → gotchas.md §Binding Not Available
128
+ └─ Auth issues → wrangler login
129
+ ```
130
+
131
+ ## See Also
132
+
133
+ - [workers](../workers/) - Workers runtime API reference
134
+ - [miniflare](../miniflare/) - Local testing with Miniflare
135
+ - [workerd](../workerd/) - Runtime that powers `wrangler dev`