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,112 @@
1
+ # Email Workers Configuration
2
+
3
+ ## wrangler.jsonc
4
+
5
+ ```jsonc
6
+ {
7
+ "name": "email-worker",
8
+ "main": "src/index.ts",
9
+ "compatibility_date": "2025-01-27",
10
+ "send_email": [
11
+ { "name": "EMAIL" }, // Unrestricted
12
+ { "name": "EMAIL_LOGS", "destination_address": "logs@example.com" }, // Single dest
13
+ { "name": "EMAIL_TEAM", "allowed_destination_addresses": ["a@ex.com", "b@ex.com"] },
14
+ { "name": "EMAIL_NOREPLY", "allowed_sender_addresses": ["noreply@ex.com"] }
15
+ ],
16
+ "kv_namespaces": [{ "binding": "ARCHIVE", "id": "xxx" }],
17
+ "r2_buckets": [{ "binding": "ATTACHMENTS", "bucket_name": "email-attachments" }],
18
+ "vars": { "WEBHOOK_URL": "https://hooks.example.com" }
19
+ }
20
+ ```
21
+
22
+ ## TypeScript Types
23
+
24
+ ```typescript
25
+ interface Env {
26
+ EMAIL: SendEmail;
27
+ ARCHIVE: KVNamespace;
28
+ ATTACHMENTS: R2Bucket;
29
+ WEBHOOK_URL: string;
30
+ }
31
+
32
+ export default {
33
+ async email(message: ForwardableEmailMessage, env: Env, ctx: ExecutionContext) {}
34
+ };
35
+ ```
36
+
37
+ ## Dependencies
38
+
39
+ ```bash
40
+ npm install postal-mime mimetext
41
+ npm install -D @cloudflare/workers-types wrangler typescript
42
+ ```
43
+
44
+ Use postal-mime v2.x, mimetext v3.x.
45
+
46
+ ## tsconfig.json
47
+
48
+ ```json
49
+ {
50
+ "compilerOptions": {
51
+ "target": "ES2022", "module": "ES2022", "lib": ["ES2022"],
52
+ "types": ["@cloudflare/workers-types"],
53
+ "moduleResolution": "bundler", "strict": true
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## Local Development
59
+
60
+ ```bash
61
+ npx wrangler dev
62
+
63
+ # Test receiving
64
+ curl --request POST 'http://localhost:8787/cdn-cgi/handler/email' \
65
+ --url-query 'from=sender@example.com' --url-query 'to=recipient@example.com' \
66
+ --header 'Content-Type: text/plain' --data-raw 'Subject: Test\n\nHello'
67
+ ```
68
+
69
+ Sent emails write to local `.eml` files.
70
+
71
+ ## Deployment Checklist
72
+
73
+ - [ ] Enable Email Routing in dashboard
74
+ - [ ] Verify destination addresses
75
+ - [ ] Configure DMARC/SPF/DKIM for sending
76
+ - [ ] Create KV/R2 resources if needed
77
+ - [ ] Update wrangler.jsonc with production IDs
78
+
79
+ ```bash
80
+ npx wrangler deploy
81
+ npx wrangler deployments list
82
+ ```
83
+
84
+ ## Dashboard Setup
85
+
86
+ 1. **Email Routing:** Domain → Email → Enable Email Routing
87
+ 2. **Verify addresses:** Email → Destination addresses → Add & verify
88
+ 3. **Bind Worker:** Email → Email Workers → Create route → Select pattern & Worker
89
+ 4. **DMARC:** Add TXT `_dmarc.domain.com`: `v=DMARC1; p=quarantine;`
90
+
91
+ ## Secrets
92
+
93
+ ```bash
94
+ npx wrangler secret put API_KEY
95
+ # Access: env.API_KEY
96
+ ```
97
+
98
+ ## Monitoring
99
+
100
+ ```bash
101
+ npx wrangler tail
102
+ npx wrangler tail --status error
103
+ npx wrangler tail --format json
104
+ ```
105
+
106
+ ## Troubleshooting
107
+
108
+ | Error | Fix |
109
+ |-------|-----|
110
+ | "Binding not found" | Check `send_email` name matches code |
111
+ | "Invalid destination" | Verify in Email Routing dashboard |
112
+ | Type errors | Install `@cloudflare/workers-types` |
@@ -0,0 +1,125 @@
1
+ # Email Workers Gotchas
2
+
3
+ ## Critical Issues
4
+
5
+ ### ReadableStream Single-Use
6
+
7
+ ```typescript
8
+ // ❌ WRONG: Stream consumed twice
9
+ const email = await PostalMime.parse(await new Response(message.raw).arrayBuffer());
10
+ const rawText = await new Response(message.raw).text(); // EMPTY!
11
+
12
+ // ✅ CORRECT: Buffer first
13
+ const buffer = await new Response(message.raw).arrayBuffer();
14
+ const email = await PostalMime.parse(buffer);
15
+ const rawText = new TextDecoder().decode(buffer);
16
+ ```
17
+
18
+ ### ctx.waitUntil() Errors Silent
19
+
20
+ ```typescript
21
+ // ❌ Errors dropped silently
22
+ ctx.waitUntil(fetch(webhookUrl, { method: 'POST', body: data }));
23
+
24
+ // ✅ Catch and log
25
+ ctx.waitUntil(
26
+ fetch(webhookUrl, { method: 'POST', body: data })
27
+ .catch(err => env.ERROR_LOG.put(`error:${Date.now()}`, err.message))
28
+ );
29
+ ```
30
+
31
+ ## Security
32
+
33
+ ### Envelope vs Header From (Spoofing)
34
+
35
+ ```typescript
36
+ const envelopeFrom = message.from; // SMTP MAIL FROM (trusted)
37
+ const headerFrom = (await PostalMime.parse(buffer)).from?.address; // (untrusted)
38
+ // Use envelope for security decisions
39
+ ```
40
+
41
+ ### Input Validation
42
+
43
+ ```typescript
44
+ if (message.rawSize > 5_000_000) { message.setReject('Too large'); return; }
45
+ if ((message.headers.get('Subject') || '').length > 1000) {
46
+ message.setReject('Invalid subject'); return;
47
+ }
48
+ ```
49
+
50
+ ### DMARC for Replies
51
+
52
+ Replies fail silently without DMARC. Verify: `dig TXT _dmarc.example.com`
53
+
54
+ ## Parsing
55
+
56
+ ### Address Parsing
57
+
58
+ ```typescript
59
+ const email = await PostalMime.parse(buffer);
60
+ const fromAddress = email.from?.address || 'unknown';
61
+ const toAddresses = Array.isArray(email.to) ? email.to.map(t => t.address) : [email.to?.address];
62
+ ```
63
+
64
+ ### Character Encoding
65
+
66
+ Let postal-mime handle decoding - `email.subject`, `email.text`, `email.html` are UTF-8.
67
+
68
+ ## API Behavior
69
+
70
+ ### setReject() vs throw
71
+
72
+ ```typescript
73
+ // setReject() for SMTP rejection
74
+ if (blockList.includes(message.from)) { message.setReject('Blocked'); return; }
75
+
76
+ // throw for worker errors
77
+ if (!env.KV) throw new Error('KV not configured');
78
+ ```
79
+
80
+ ### forward() Only X-* Headers
81
+
82
+ ```typescript
83
+ headers.set('X-Processed-By', 'worker'); // ✅ Works
84
+ headers.set('Subject', 'Modified'); // ❌ Dropped
85
+ ```
86
+
87
+ ### Reply Requires Verified Domain
88
+
89
+ ```typescript
90
+ // Use same domain as receiving address
91
+ const receivingDomain = message.to.split('@')[1];
92
+ await message.reply(new EmailMessage(`noreply@${receivingDomain}`, message.from, rawMime));
93
+ ```
94
+
95
+ ## Performance
96
+
97
+ ### CPU Limit
98
+
99
+ ```typescript
100
+ // Skip parsing large emails
101
+ if (message.rawSize > 5_000_000) {
102
+ await message.forward('inbox@example.com');
103
+ return;
104
+ }
105
+ ```
106
+
107
+ Monitor: `npx wrangler tail`
108
+
109
+ ## Limits
110
+
111
+ | Limit | Value |
112
+ |-------|-------|
113
+ | Max message size | 25 MiB |
114
+ | Max rules/zone | 200 |
115
+ | CPU time (free/paid) | 10ms / 30s default, 5min max |
116
+ | Reply References | 100 |
117
+
118
+ ## Common Errors
119
+
120
+ | Error | Fix |
121
+ |-------|-----|
122
+ | "Address not verified" | Add in Email Routing dashboard |
123
+ | "Exceeded CPU time" | Use `ctx.waitUntil()` or upgrade |
124
+ | "Stream is locked" | Buffer `message.raw` first |
125
+ | Silent reply failure | Check DMARC records |
@@ -0,0 +1,102 @@
1
+ # Email Workers Patterns
2
+
3
+ ## Parse Email
4
+
5
+ ```typescript
6
+ import PostalMime from 'postal-mime';
7
+
8
+ export default {
9
+ async email(message, env, ctx) {
10
+ const buffer = await new Response(message.raw).arrayBuffer();
11
+ const email = await PostalMime.parse(buffer);
12
+ console.log(email.from, email.subject, email.text, email.attachments.length);
13
+ await message.forward('inbox@example.com');
14
+ }
15
+ };
16
+ ```
17
+
18
+ ## Filtering
19
+
20
+ ```typescript
21
+ // Allowlist from KV
22
+ const allowList = await env.ALLOWED_SENDERS.get('list', 'json') || [];
23
+ if (!allowList.includes(message.from)) {
24
+ message.setReject('Not allowed');
25
+ return;
26
+ }
27
+
28
+ // Size check (avoid parsing large emails)
29
+ if (message.rawSize > 5_000_000) {
30
+ await message.forward('inbox@example.com'); // Forward without parsing
31
+ return;
32
+ }
33
+ ```
34
+
35
+ ## Auto-Reply with Threading
36
+
37
+ ```typescript
38
+ import { EmailMessage } from 'cloudflare:email';
39
+ import { createMimeMessage } from 'mimetext';
40
+
41
+ const msg = createMimeMessage();
42
+ msg.setSender({ addr: 'support@example.com' });
43
+ msg.setRecipient(message.from);
44
+ msg.setSubject(`Re: ${message.headers.get('Subject')}`);
45
+ msg.setHeader('In-Reply-To', message.headers.get('Message-ID') || '');
46
+ msg.addMessage({ contentType: 'text/plain', data: 'Thank you. We will respond.' });
47
+
48
+ await message.reply(new EmailMessage('support@example.com', message.from, msg.asRaw()));
49
+ ```
50
+
51
+ ## Rate-Limited Auto-Reply
52
+
53
+ ```typescript
54
+ const rateKey = `rate:${message.from}`;
55
+ if (!await env.RATE_LIMIT.get(rateKey)) {
56
+ // Send reply...
57
+ ctx.waitUntil(env.RATE_LIMIT.put(rateKey, '1', { expirationTtl: 3600 }));
58
+ }
59
+ ```
60
+
61
+ ## Subject-Based Routing
62
+
63
+ ```typescript
64
+ const subject = (message.headers.get('Subject') || '').toLowerCase();
65
+ if (subject.includes('billing')) await message.forward('billing@example.com');
66
+ else if (subject.includes('support')) await message.forward('support@example.com');
67
+ else await message.forward('general@example.com');
68
+ ```
69
+
70
+ ## Multi-Tenant Routing
71
+
72
+ ```typescript
73
+ // support+tenant123@example.com → tenant123
74
+ const tenantId = message.to.split('@')[0].match(/\+(.+)$/)?.[1] || 'default';
75
+ const config = await env.TENANT_CONFIG.get(tenantId, 'json');
76
+ config?.forwardTo ? await message.forward(config.forwardTo) : message.setReject('Unknown');
77
+ ```
78
+
79
+ ## Archive & Extract Attachments
80
+
81
+ ```typescript
82
+ // Archive to KV
83
+ ctx.waitUntil(env.ARCHIVE.put(`email:${Date.now()}`, JSON.stringify({
84
+ from: message.from, subject: email.subject
85
+ })));
86
+
87
+ // Attachments to R2
88
+ for (const att of email.attachments) {
89
+ ctx.waitUntil(env.R2.put(`${Date.now()}-${att.filename}`, att.content));
90
+ }
91
+ ```
92
+
93
+ ## Webhook Integration
94
+
95
+ ```typescript
96
+ ctx.waitUntil(
97
+ fetch(env.WEBHOOK_URL, {
98
+ method: 'POST',
99
+ body: JSON.stringify({ from: message.from, subject: message.headers.get('Subject') })
100
+ }).catch(err => console.error(err))
101
+ );
102
+ ```
@@ -0,0 +1,59 @@
1
+ # Cloudflare Flagship
2
+
3
+ Feature flag service for controlling feature visibility without redeploying code. Define flags with targeting rules and percentage-based rollouts, then evaluate them in Workers via a native binding or from any JavaScript runtime via the OpenFeature SDK.
4
+
5
+ ## When to Use
6
+
7
+ | Need | Use Flagship? | Alternative |
8
+ |------|--------------|-------------|
9
+ | Feature toggles (on/off) | Yes | — |
10
+ | Gradual rollouts (percentage-based) | Yes | — |
11
+ | A/B testing with attribute targeting | Yes | — |
12
+ | Multi-variant configuration delivery | Yes | — |
13
+ | Environment-specific config (dev/staging/prod) | Consider | Wrangler environments, secrets |
14
+ | Static config that never changes | No | `wrangler.jsonc` vars |
15
+ | Per-request rate limiting | No | Rate Limiting rules |
16
+
17
+ ## Key Concepts
18
+
19
+ - **Apps** — Top-level organizational unit. Maps to a project or service. Each account can have multiple apps.
20
+ - **Flags** — Named feature toggles with a key, variations, targeting rules, and enabled/disabled state.
21
+ - **Variations** — Possible values a flag returns. Types: boolean, string, number, JSON object. All variations on a flag must share the same type.
22
+ - **Targeting rules** — Sequential, priority-ordered conditions that determine which variation to serve. First match wins; no match returns the default.
23
+ - **Evaluation context** — Key-value attributes (`userId`, `country`, `plan`, etc.) passed at evaluation time for rule matching and rollout bucketing.
24
+ - **Percentage rollouts** — Gradually release to a fraction of users. Consistent hashing on a configurable attribute ensures sticky bucketing.
25
+
26
+ ## Two Evaluation Paths
27
+
28
+ | Path | Runtime | Package | Latency | Auth |
29
+ |------|---------|---------|---------|------|
30
+ | **Binding** (`env.FLAGS`) | Workers only | `@cloudflare/workers-types` | Lowest (no HTTP) | Automatic via binding |
31
+ | **OpenFeature SDK** | Workers, Node.js, browser | `@cloudflare/flagship` + `@openfeature/server-sdk` or `@openfeature/web-sdk` | HTTP per eval (server) or prefetch (client) | API token or binding passthrough |
32
+
33
+ **Recommendation:** Use the binding inside Workers. Use the SDK when running outside Workers or when you need OpenFeature vendor-neutrality.
34
+
35
+ ## Reading Order
36
+
37
+ | Task | Read |
38
+ |------|------|
39
+ | Set up Flagship in a Worker | `configuration.md` → `api.md` |
40
+ | Evaluate flags in code | `configuration.md` → `patterns.md` |
41
+ | Manage flags via REST API | `api.md` → `patterns.md` |
42
+ | Design targeting rules & rollouts | `patterns.md` → `gotchas.md` |
43
+ | Debug flag evaluation issues | `gotchas.md` → `api.md` |
44
+
45
+ REST API note: management endpoints use Cloudflare v4 envelopes (`result`, `result_info`, `errors`) and snake_case fields. The `/evaluate` endpoint is the exception: it is not enveloped and returns OpenFeature-style camelCase.
46
+
47
+ ## In This Reference
48
+
49
+ - **[api.md](./api.md)** — REST API endpoints, binding methods, OpenFeature SDK, schemas
50
+ - **[configuration.md](./configuration.md)** — Wrangler binding setup, SDK installation, TypeScript types
51
+ - **[patterns.md](./patterns.md)** — Flag CRUD via API, targeting rules, rollouts, OpenFeature usage
52
+ - **[gotchas.md](./gotchas.md)** — Common errors, limits, anti-patterns, troubleshooting
53
+
54
+ ## See Also
55
+
56
+ - **[Flagship API reference](https://developers.cloudflare.com/api/resources/flagship/)** — Source of truth for REST API paths, envelopes, and response fields
57
+ - **[../workers/](../workers/)** — Workers runtime (Flagship runs inside Workers)
58
+ - **[../kv/](../kv/)** — KV storage (Flagship uses KV infrastructure for flag delivery)
59
+ - **[../wrangler/](../wrangler/)** — Wrangler CLI for deployment and config