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,145 @@
1
+ ## Common Issues
2
+
3
+ ### Connection Timeouts
4
+
5
+ **Problem:** Connections fail or timeout
6
+ **Cause:** Origin firewall blocking Cloudflare IPs, origin service not running, incorrect DNS
7
+ **Solution:**
8
+ 1. Verify origin firewall allows Cloudflare IP ranges
9
+ 2. Check origin service running on correct port
10
+ 3. Ensure DNS record is CNAME (not A/AAAA)
11
+ 4. Verify origin IP/hostname is correct
12
+
13
+ ```bash
14
+ # Test connectivity
15
+ nc -zv app.example.com 22
16
+ dig app.example.com
17
+ ```
18
+
19
+ ### Client IP Showing Cloudflare IP
20
+
21
+ **Problem:** Origin logs show Cloudflare IPs not real client IPs
22
+ **Cause:** Proxy Protocol not enabled or origin not configured
23
+ **Solution:**
24
+ ```typescript
25
+ // Enable in Spectrum app
26
+ const app = await client.spectrum.apps.create({
27
+ // ...
28
+ proxy_protocol: 'v1', // TCP: v1/v2; UDP: simple
29
+ });
30
+ ```
31
+
32
+ **Origin config:**
33
+ - **nginx**: `listen 22 proxy_protocol;`
34
+ - **HAProxy**: `bind :22 accept-proxy`
35
+
36
+ ### TLS Errors
37
+
38
+ **Problem:** TLS handshake failures, 525 errors
39
+ **Cause:** TLS mode mismatch
40
+
41
+ | Error | TLS Mode | Problem | Solution |
42
+ |-------|----------|---------|----------|
43
+ | Connection refused | `full`/`strict` | Origin not TLS | Use `tls: "off"` or enable TLS |
44
+ | 525 cert invalid | `strict` | Self-signed cert | Use `tls: "full"` or valid cert |
45
+ | Handshake timeout | `flexible` | Origin expects TLS | Use `tls: "full"` |
46
+
47
+ **Debug:**
48
+ ```bash
49
+ openssl s_client -connect app.example.com:443 -showcerts
50
+ ```
51
+
52
+ ### SMTP Reverse DNS
53
+
54
+ **Problem:** Email servers reject SMTP via Spectrum
55
+ **Cause:** Spectrum IPs lack PTR (reverse DNS) records
56
+ **Impact:** Many mail servers require valid rDNS for anti-spam
57
+
58
+ **Solution:**
59
+ - Outbound SMTP: NOT recommended through Spectrum
60
+ - Inbound SMTP: Use Cloudflare Email Routing
61
+ - Internal relay: Whitelist Spectrum IPs on destination
62
+
63
+ ### Proxy Protocol Compatibility
64
+
65
+ **Problem:** Connection works but app behaves incorrectly
66
+ **Cause:** Origin doesn't support Proxy Protocol
67
+
68
+ **Solution:**
69
+ 1. Verify origin supports version (v1: widely supported, v2: HAProxy 1.5+/nginx 1.11+)
70
+ 2. Test with `proxy_protocol: 'off'` first
71
+ 3. Configure origin to parse headers
72
+
73
+ **nginx TCP:**
74
+ ```nginx
75
+ stream {
76
+ server {
77
+ listen 22 proxy_protocol;
78
+ proxy_pass backend:22;
79
+ }
80
+ }
81
+ ```
82
+
83
+ **HAProxy:**
84
+ ```
85
+ frontend ft_ssh
86
+ bind :22 accept-proxy
87
+ ```
88
+
89
+ ### Analytics Data Retention
90
+
91
+ **Problem:** Historical data not available
92
+ **Cause:** Retention varies by plan
93
+
94
+ | Plan | Real-time | Historical |
95
+ |------|-----------|------------|
96
+ | Pro | Last hour | ❌ |
97
+ | Business | Last hour | Limited |
98
+ | Enterprise | Last hour | 90+ days |
99
+
100
+ **Solution:** Query within retention window or export to external system
101
+
102
+ ### Enterprise-Only Features
103
+
104
+ **Problem:** Feature unavailable/errors
105
+ **Cause:** Requires Enterprise plan
106
+
107
+ **Enterprise-only:**
108
+ - Port ranges (`tcp/25565-25575`)
109
+ - All TCP/UDP ports (Pro/Business: selected only)
110
+ - Extended analytics retention
111
+ - Advanced load balancing
112
+
113
+ ### IPv6 Considerations
114
+
115
+ **Problem:** IPv6 clients can't connect or origin doesn't support IPv6
116
+ **Solution:** Configure `edge_ips.connectivity`
117
+
118
+ ```typescript
119
+ const app = await client.spectrum.apps.create({
120
+ // ...
121
+ edge_ips: {
122
+ type: 'dynamic',
123
+ connectivity: 'ipv4', // Options: 'all', 'ipv4', 'ipv6'
124
+ },
125
+ });
126
+ ```
127
+
128
+ **Options:**
129
+ - `all`: Dual-stack (default, requires origin support both)
130
+ - `ipv4`: IPv4 only (use if origin lacks IPv6)
131
+ - `ipv6`: IPv6 only (rare)
132
+
133
+ ## Limits
134
+
135
+ | Resource | Pro/Business | Enterprise |
136
+ |----------|--------------|------------|
137
+ | Max apps | ~10-15 | 100+ |
138
+ | Protocols | Selected | All TCP/UDP |
139
+ | Port ranges | ❌ | ✅ |
140
+ | Analytics | ~1 hour | 90+ days |
141
+
142
+ ## See Also
143
+
144
+ - [patterns.md](patterns.md) - Protocol examples
145
+ - [configuration.md](configuration.md) - TLS/Proxy setup
@@ -0,0 +1,196 @@
1
+ ## Common Use Cases
2
+
3
+ ### 1. SSH Server Protection
4
+
5
+ **Terraform:**
6
+ ```hcl
7
+ resource "cloudflare_spectrum_application" "ssh" {
8
+ zone_id = var.zone_id
9
+ protocol = "tcp/22"
10
+
11
+ dns {
12
+ type = "CNAME"
13
+ name = "ssh.example.com"
14
+ }
15
+
16
+ origin_direct = ["tcp://10.0.1.5:22"]
17
+ ip_firewall = true
18
+ argo_smart_routing = true
19
+ }
20
+ ```
21
+
22
+ **Benefits:** Hide origin IP, DDoS protection, IP firewall, Argo reduces latency
23
+
24
+ ### 2. Game Server
25
+
26
+ **TypeScript (Minecraft):**
27
+ ```typescript
28
+ const app = await client.spectrum.apps.create({
29
+ zone_id: 'your-zone-id',
30
+ protocol: 'tcp/25565',
31
+ dns: { type: 'CNAME', name: 'mc.example.com' },
32
+ origin_direct: ['tcp://192.168.1.10:25565'],
33
+ proxy_protocol: 'v1', // Preserves player IPs
34
+ argo_smart_routing: true,
35
+ });
36
+ ```
37
+
38
+ **Benefits:** DDoS protection, hide origin IP, Proxy Protocol for player IPs/bans, Argo reduces latency
39
+
40
+ ### 3. MQTT Broker
41
+
42
+ IoT device communication.
43
+
44
+ **TypeScript:**
45
+ ```typescript
46
+ const mqttApp = await client.spectrum.apps.create({
47
+ zone_id: 'your-zone-id',
48
+ protocol: 'tcp/8883', // Use 1883 for plain MQTT
49
+ dns: { type: 'CNAME', name: 'mqtt.example.com' },
50
+ origin_direct: ['tcp://mqtt-broker.internal:8883'],
51
+ tls: 'full', // Use 'off' for plain MQTT
52
+ });
53
+ ```
54
+
55
+ **Benefits:** DDoS protection, hide broker IP, TLS termination at edge
56
+
57
+ ### 4. SMTP Relay
58
+
59
+ Email submission (port 587). **WARNING**: See [gotchas.md](gotchas.md#smtp-reverse-dns)
60
+
61
+ **Terraform:**
62
+ ```hcl
63
+ resource "cloudflare_spectrum_application" "smtp" {
64
+ zone_id = var.zone_id
65
+ protocol = "tcp/587"
66
+
67
+ dns {
68
+ type = "CNAME"
69
+ name = "smtp.example.com"
70
+ }
71
+
72
+ origin_direct = ["tcp://mail-server.internal:587"]
73
+ tls = "full" # STARTTLS support
74
+ }
75
+ ```
76
+
77
+ **Limitations:**
78
+ - Spectrum IPs lack reverse DNS (PTR records)
79
+ - Many mail servers reject without valid rDNS
80
+ - Best for internal/trusted relay only
81
+
82
+ ### 5. Database Proxy
83
+
84
+ MySQL/PostgreSQL. **Use with caution** - security critical.
85
+
86
+ **PostgreSQL:**
87
+ ```typescript
88
+ const postgresApp = await client.spectrum.apps.create({
89
+ zone_id: 'your-zone-id',
90
+ protocol: 'tcp/5432',
91
+ dns: { type: 'CNAME', name: 'postgres.example.com' },
92
+ origin_dns: { name: 'db-primary.internal.example.com' },
93
+ origin_port: 5432,
94
+ tls: 'strict', // REQUIRED
95
+ ip_firewall: true, // REQUIRED
96
+ });
97
+ ```
98
+
99
+ **MySQL:**
100
+ ```hcl
101
+ resource "cloudflare_spectrum_application" "mysql" {
102
+ zone_id = var.zone_id
103
+ protocol = "tcp/3306"
104
+
105
+ dns {
106
+ type = "CNAME"
107
+ name = "mysql.example.com"
108
+ }
109
+
110
+ origin_dns {
111
+ name = "mysql-primary.internal.example.com"
112
+ }
113
+
114
+ origin_port = 3306
115
+ tls = "strict"
116
+ ip_firewall = true
117
+ }
118
+ ```
119
+
120
+ **Security:**
121
+ - ALWAYS use `tls: "strict"`
122
+ - ALWAYS use `ip_firewall: true`
123
+ - Restrict to known IPs via zone firewall
124
+ - Use strong DB authentication
125
+ - Consider VPN or Cloudflare Access instead
126
+
127
+ ### 6. RDP (Remote Desktop)
128
+
129
+ **Requires IP firewall.**
130
+
131
+ **Terraform:**
132
+ ```hcl
133
+ resource "cloudflare_spectrum_application" "rdp" {
134
+ zone_id = var.zone_id
135
+ protocol = "tcp/3389"
136
+
137
+ dns {
138
+ type = "CNAME"
139
+ name = "rdp.example.com"
140
+ }
141
+
142
+ origin_direct = ["tcp://windows-server.internal:3389"]
143
+ tls = "off" # RDP has own encryption
144
+ ip_firewall = true # REQUIRED
145
+ }
146
+ ```
147
+
148
+ **Security:** ALWAYS `ip_firewall: true`, whitelist admin IPs, RDP is DDoS/brute-force target
149
+
150
+ ### 7. Multi-Origin Failover
151
+
152
+ High availability with load balancer.
153
+
154
+ **Terraform:**
155
+ ```hcl
156
+ resource "cloudflare_load_balancer" "database_lb" {
157
+ zone_id = var.zone_id
158
+ name = "db-lb.example.com"
159
+ default_pool_ids = [cloudflare_load_balancer_pool.db_primary.id]
160
+ fallback_pool_id = cloudflare_load_balancer_pool.db_secondary.id
161
+ }
162
+
163
+ resource "cloudflare_load_balancer_pool" "db_primary" {
164
+ name = "db-primary-pool"
165
+ origins { name = "db-1"; address = "192.0.2.1" }
166
+ monitor = cloudflare_load_balancer_monitor.postgres_monitor.id
167
+ }
168
+
169
+ resource "cloudflare_load_balancer_pool" "db_secondary" {
170
+ name = "db-secondary-pool"
171
+ origins { name = "db-2"; address = "192.0.2.2" }
172
+ monitor = cloudflare_load_balancer_monitor.postgres_monitor.id
173
+ }
174
+
175
+ resource "cloudflare_load_balancer_monitor" "postgres_monitor" {
176
+ type = "tcp"; port = 5432; interval = 30; timeout = 5
177
+ }
178
+
179
+ resource "cloudflare_spectrum_application" "postgres_ha" {
180
+ zone_id = var.zone_id
181
+ protocol = "tcp/5432"
182
+ dns { type = "CNAME"; name = "postgres.example.com" }
183
+ origin_dns { name = cloudflare_load_balancer.database_lb.name }
184
+ origin_port = 5432
185
+ tls = "strict"
186
+ ip_firewall = true
187
+ }
188
+ ```
189
+
190
+ **Benefits:** Automatic failover, health monitoring, traffic distribution, zero-downtime deployments
191
+
192
+ ## See Also
193
+
194
+ - [configuration.md](configuration.md) - Origin type setup
195
+ - [gotchas.md](gotchas.md) - Protocol limitations
196
+ - [api.md](api.md) - SDK reference
@@ -0,0 +1,65 @@
1
+ # Cloudflare Static Assets Skill Reference
2
+
3
+ Expert guidance for deploying and configuring static assets with Cloudflare Workers. This skill covers configuration patterns, routing architectures, asset binding usage, and best practices for SPAs, SSG sites, and full-stack applications.
4
+
5
+ ## Quick Start
6
+
7
+ ```jsonc
8
+ // wrangler.jsonc
9
+ {
10
+ "name": "my-app",
11
+ "main": "src/index.ts",
12
+ "compatibility_date": "2025-01-01",
13
+ "assets": {
14
+ "directory": "./dist"
15
+ }
16
+ }
17
+ ```
18
+
19
+ ```typescript
20
+ // src/index.ts
21
+ export default {
22
+ async fetch(request: Request, env: Env): Promise<Response> {
23
+ return env.ASSETS.fetch(request);
24
+ }
25
+ };
26
+ ```
27
+
28
+ Deploy: `wrangler deploy`
29
+
30
+ ## When to Use Workers Static Assets vs Pages
31
+
32
+ | Factor | Workers Static Assets | Cloudflare Pages |
33
+ |--------|----------------------|------------------|
34
+ | **Use case** | Hybrid apps (static + dynamic API) | Static sites, SSG |
35
+ | **Worker control** | Full control over routing | Limited (Functions) |
36
+ | **Configuration** | Code-first, flexible | Git-based, opinionated |
37
+ | **Dynamic routing** | Worker-first patterns | Functions (_functions/) |
38
+ | **Best for** | Full-stack apps, SPAs with APIs | Jamstack, static docs |
39
+
40
+ **Decision tree:**
41
+
42
+ - Need custom routing logic? → Workers Static Assets
43
+ - Pure static site or SSG? → Pages
44
+ - API routes + SPA? → Workers Static Assets
45
+ - Framework (Next, Nuxt, Remix)? → Pages
46
+
47
+ ## Reading Order
48
+
49
+ 1. **configuration.md** - Setup, wrangler.jsonc options, routing patterns
50
+ 2. **api.md** - ASSETS binding API, request/response handling
51
+ 3. **patterns.md** - Common patterns (SPA, API routes, auth, A/B testing)
52
+ 4. **gotchas.md** - Limits, errors, performance tips
53
+
54
+ ## In This Reference
55
+
56
+ - **[configuration.md](configuration.md)** - Setup, deployment, configuration
57
+ - **[api.md](api.md)** - API endpoints, methods, interfaces
58
+ - **[patterns.md](patterns.md)** - Common patterns, use cases, examples
59
+ - **[gotchas.md](gotchas.md)** - Troubleshooting, best practices, limitations
60
+
61
+ ## See Also
62
+
63
+ - [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
64
+ - [Static Assets Docs](https://developers.cloudflare.com/workers/static-assets/)
65
+ - [Cloudflare Pages](https://developers.cloudflare.com/pages/)
@@ -0,0 +1,199 @@
1
+ # API Reference
2
+
3
+ ## ASSETS Binding
4
+
5
+ The `ASSETS` binding provides access to static assets via the `Fetcher` interface.
6
+
7
+ ### Type Definition
8
+
9
+ ```typescript
10
+ interface Env {
11
+ ASSETS: Fetcher;
12
+ }
13
+
14
+ interface Fetcher {
15
+ fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
16
+ }
17
+ ```
18
+
19
+ ### Method Signatures
20
+
21
+ ```typescript
22
+ // 1. Forward entire request
23
+ await env.ASSETS.fetch(request);
24
+
25
+ // 2. String path (hostname ignored, only path matters)
26
+ await env.ASSETS.fetch("https://any-host/path/to/asset.png");
27
+
28
+ // 3. URL object
29
+ await env.ASSETS.fetch(new URL("/index.html", request.url));
30
+
31
+ // 4. Constructed Request object
32
+ await env.ASSETS.fetch(new Request(new URL("/logo.png", request.url), {
33
+ method: "GET",
34
+ headers: request.headers
35
+ }));
36
+ ```
37
+
38
+ **Key behaviors:**
39
+
40
+ - Host/origin is ignored for string/URL inputs (only path is used)
41
+ - Method must be GET (others return 405)
42
+ - Request headers pass through (affects response)
43
+ - Returns standard `Response` object
44
+
45
+ ## Request Handling
46
+
47
+ ### Path Resolution
48
+
49
+ ```typescript
50
+ // All resolve to same asset:
51
+ env.ASSETS.fetch("https://example.com/logo.png")
52
+ env.ASSETS.fetch("https://ignored.host/logo.png")
53
+ env.ASSETS.fetch("/logo.png")
54
+ ```
55
+
56
+ Assets are resolved relative to configured `assets.directory`.
57
+
58
+ ### Headers
59
+
60
+ Request headers that affect response:
61
+
62
+ | Header | Effect |
63
+ |--------|--------|
64
+ | `Accept-Encoding` | Controls compression (gzip, brotli) |
65
+ | `Range` | Enables partial content (206 responses) |
66
+ | `If-None-Match` | Conditional request via ETag |
67
+ | `If-Modified-Since` | Conditional request via modification date |
68
+
69
+ Custom headers pass through but don't affect asset serving.
70
+
71
+ ### Method Support
72
+
73
+ | Method | Supported | Response |
74
+ |--------|-----------|----------|
75
+ | `GET` | ✅ Yes | Asset content |
76
+ | `HEAD` | ✅ Yes | Headers only, no body |
77
+ | `POST`, `PUT`, etc. | ❌ No | 405 Method Not Allowed |
78
+
79
+ ## Response Behavior
80
+
81
+ ### Content-Type Inference
82
+
83
+ Automatically set based on file extension:
84
+
85
+ | Extension | Content-Type |
86
+ |-----------|--------------|
87
+ | `.html` | `text/html; charset=utf-8` |
88
+ | `.css` | `text/css` |
89
+ | `.js` | `application/javascript` |
90
+ | `.json` | `application/json` |
91
+ | `.png` | `image/png` |
92
+ | `.jpg`, `.jpeg` | `image/jpeg` |
93
+ | `.svg` | `image/svg+xml` |
94
+ | `.woff2` | `font/woff2` |
95
+
96
+ ### Default Headers
97
+
98
+ Responses include:
99
+
100
+ ```
101
+ Content-Type: <inferred>
102
+ ETag: "<hash>"
103
+ Cache-Control: public, max-age=3600
104
+ Content-Encoding: br (if supported and beneficial)
105
+ ```
106
+
107
+ **Cache-Control defaults:**
108
+
109
+ - 1 hour (`max-age=3600`) for most assets
110
+ - Override via Worker response transformation (see patterns.md:27-35)
111
+
112
+ ### Compression
113
+
114
+ Automatic compression based on `Accept-Encoding`:
115
+
116
+ - **Brotli** (`br`): Preferred, best compression
117
+ - **Gzip** (`gzip`): Fallback
118
+ - **None**: If client doesn't support or asset too small
119
+
120
+ ### ETag Generation
121
+
122
+ ETags are content-based hashes:
123
+
124
+ ```
125
+ ETag: "a3b2c1d4e5f6..."
126
+ ```
127
+
128
+ Used for conditional requests (`If-None-Match`). Returns `304 Not Modified` if match.
129
+
130
+ ## Error Responses
131
+
132
+ | Status | Condition | Behavior |
133
+ |--------|-----------|----------|
134
+ | `404` | Asset not found | Body depends on `not_found_handling` config |
135
+ | `405` | Non-GET/HEAD method | `{ "error": "Method not allowed" }` |
136
+ | `416` | Invalid Range header | Range not satisfiable |
137
+
138
+ ### 404 Handling
139
+
140
+ Depends on configuration (see configuration.md:45-52):
141
+
142
+ ```typescript
143
+ // not_found_handling: "single-page-application"
144
+ // Returns /index.html with 200 status
145
+
146
+ // not_found_handling: "404-page"
147
+ // Returns /404.html if exists, else 404 response
148
+
149
+ // not_found_handling: "none"
150
+ // Returns 404 response
151
+ ```
152
+
153
+ ## Advanced Usage
154
+
155
+ ### Modifying Responses
156
+
157
+ ```typescript
158
+ const response = await env.ASSETS.fetch(request);
159
+
160
+ // Clone and modify
161
+ return new Response(response.body, {
162
+ status: response.status,
163
+ headers: {
164
+ ...Object.fromEntries(response.headers),
165
+ 'Cache-Control': 'public, max-age=31536000',
166
+ 'X-Custom': 'value'
167
+ }
168
+ });
169
+ ```
170
+
171
+ See patterns.md:27-35 for full example.
172
+
173
+ ### Error Handling
174
+
175
+ ```typescript
176
+ const response = await env.ASSETS.fetch(request);
177
+
178
+ if (!response.ok) {
179
+ // Asset not found or error
180
+ return new Response('Custom error page', { status: 404 });
181
+ }
182
+
183
+ return response;
184
+ ```
185
+
186
+ ### Conditional Serving
187
+
188
+ ```typescript
189
+ const url = new URL(request.url);
190
+
191
+ // Serve different assets based on conditions
192
+ if (url.pathname === '/') {
193
+ return env.ASSETS.fetch('/index.html');
194
+ }
195
+
196
+ return env.ASSETS.fetch(request);
197
+ ```
198
+
199
+ See patterns.md for complete patterns.