memory-journal-mcp 7.7.0 → 8.0.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 (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +7 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,184 @@
1
+ # Cache Reserve API
2
+
3
+ ## Workers Integration
4
+
5
+ ```
6
+ ┌────────────────────────────────────────────────────────────────┐
7
+ │ CRITICAL: Workers Cache API ≠ Cache Reserve │
8
+ │ │
9
+ │ • Workers caches.default / cache.put() → edge cache ONLY │
10
+ │ • Cache Reserve → zone-level setting, automatic, no per-req │
11
+ │ • You CANNOT selectively write to Cache Reserve from Workers │
12
+ │ • Cache Reserve works with standard fetch(), not cache.put() │
13
+ └────────────────────────────────────────────────────────────────┘
14
+ ```
15
+
16
+ Cache Reserve is a **zone-level configuration**, not a per-request API. It works automatically when enabled for the zone:
17
+
18
+ ### Standard Fetch (Recommended)
19
+
20
+ ```typescript
21
+ // Cache Reserve works automatically via standard fetch
22
+ export default {
23
+ async fetch(request: Request, env: Env): Promise<Response> {
24
+ // Standard fetch uses Cache Reserve automatically
25
+ return await fetch(request)
26
+ },
27
+ }
28
+ ```
29
+
30
+ ### Cache API Limitations
31
+
32
+ **IMPORTANT**: `cache.put()` is **NOT compatible** with Cache Reserve or Tiered Cache.
33
+
34
+ ```typescript
35
+ // ❌ WRONG: cache.put() bypasses Cache Reserve
36
+ const cache = caches.default
37
+ let response = await cache.match(request)
38
+ if (!response) {
39
+ response = await fetch(request)
40
+ await cache.put(request, response.clone()) // Bypasses Cache Reserve!
41
+ }
42
+
43
+ // ✅ CORRECT: Use standard fetch for Cache Reserve compatibility
44
+ return await fetch(request)
45
+
46
+ // ✅ CORRECT: Use Cache API only for custom cache namespaces
47
+ const customCache = await caches.open('my-custom-cache')
48
+ let response = await customCache.match(request)
49
+ if (!response) {
50
+ response = await fetch(request)
51
+ await customCache.put(request, response.clone()) // Custom cache OK
52
+ }
53
+ ```
54
+
55
+ ## Purging and Cache Management
56
+
57
+ ### Purge by URL (Instant)
58
+
59
+ ```typescript
60
+ // Purge specific URL from Cache Reserve immediately
61
+ const purgeCacheReserveByURL = async (zoneId: string, apiToken: string, urls: string[]) => {
62
+ const response = await fetch(`https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache`, {
63
+ method: 'POST',
64
+ headers: {
65
+ Authorization: `Bearer ${apiToken}`,
66
+ 'Content-Type': 'application/json',
67
+ },
68
+ body: JSON.stringify({ files: urls }),
69
+ })
70
+ return await response.json()
71
+ }
72
+
73
+ // Example usage
74
+ await purgeCacheReserveByURL('zone123', 'token456', [
75
+ 'https://example.com/image.jpg',
76
+ 'https://example.com/video.mp4',
77
+ ])
78
+ ```
79
+
80
+ ### Purge by Tag/Host/Prefix (Revalidation)
81
+
82
+ ```typescript
83
+ // Purge by cache tag - forces revalidation, not immediate removal
84
+ await fetch(`https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache`, {
85
+ method: 'POST',
86
+ headers: { Authorization: `Bearer ${apiToken}`, 'Content-Type': 'application/json' },
87
+ body: JSON.stringify({ tags: ['tag1', 'tag2'] }),
88
+ })
89
+ ```
90
+
91
+ **Purge behavior:**
92
+
93
+ - **By URL**: Immediate removal from Cache Reserve + edge cache
94
+ - **By tag/host/prefix**: Revalidation only, assets remain in storage (costs continue)
95
+
96
+ ### Clear All Cache Reserve Data
97
+
98
+ ```typescript
99
+ // Requires Cache Reserve OFF first
100
+ await fetch(`https://api.cloudflare.com/client/v4/zones/${zoneId}/cache/cache_reserve_clear`, {
101
+ method: 'POST',
102
+ headers: { Authorization: `Bearer ${apiToken}` },
103
+ })
104
+
105
+ // Check status: GET same endpoint returns { state: "In-progress" | "Completed" }
106
+ ```
107
+
108
+ **Process**: Disable Cache Reserve → Call clear endpoint → Wait up to 24hr → Re-enable
109
+
110
+ ## Monitoring and Analytics
111
+
112
+ ### Dashboard Analytics
113
+
114
+ Navigate to **Caching > Cache Reserve** to view:
115
+
116
+ - **Egress Savings**: Total bytes served from Cache Reserve vs origin egress cost saved
117
+ - **Requests Served**: Cache Reserve hits vs misses breakdown
118
+ - **Storage Used**: Current GB stored in Cache Reserve (billed monthly)
119
+ - **Operations**: Class A (writes) and Class B (reads) operation counts
120
+ - **Cost Tracking**: Estimated monthly costs based on current usage
121
+
122
+ ### Logpush Integration
123
+
124
+ ```typescript
125
+ // Logpush field: CacheReserveUsed (boolean) - filter for Cache Reserve hits
126
+ // Query Cache Reserve hits in analytics
127
+ const logpushQuery = `
128
+ SELECT
129
+ ClientRequestHost,
130
+ COUNT(*) as requests,
131
+ SUM(EdgeResponseBytes) as bytes_served,
132
+ COUNT(CASE WHEN CacheReserveUsed = true THEN 1 END) as cache_reserve_hits,
133
+ COUNT(CASE WHEN CacheReserveUsed = false THEN 1 END) as cache_reserve_misses
134
+ FROM http_requests
135
+ WHERE Timestamp >= NOW() - INTERVAL '24 hours'
136
+ GROUP BY ClientRequestHost
137
+ ORDER BY requests DESC
138
+ `
139
+
140
+ // Filter only Cache Reserve hits
141
+ const crHitsQuery = `
142
+ SELECT ClientRequestHost, COUNT(*) as requests, SUM(EdgeResponseBytes) as bytes
143
+ FROM http_requests
144
+ WHERE CacheReserveUsed = true AND Timestamp >= NOW() - INTERVAL '7 days'
145
+ GROUP BY ClientRequestHost
146
+ ORDER BY bytes DESC
147
+ `
148
+ ```
149
+
150
+ ### GraphQL Analytics
151
+
152
+ ```graphql
153
+ query CacheReserveAnalytics($zoneTag: string, $since: string, $until: string) {
154
+ viewer {
155
+ zones(filter: { zoneTag: $zoneTag }) {
156
+ httpRequests1dGroups(filter: { datetime_geq: $since, datetime_leq: $until }, limit: 1000) {
157
+ dimensions {
158
+ date
159
+ }
160
+ sum {
161
+ cachedBytes
162
+ cachedRequests
163
+ bytes
164
+ requests
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ ```
171
+
172
+ ## Pricing
173
+
174
+ ```typescript
175
+ // Storage: $0.015/GB-month | Class A (writes): $4.50/M | Class B (reads): $0.36/M
176
+ // Cache miss: 1A + 1B | Cache hit: 1B | Assets >1GB: proportionally more ops
177
+ ```
178
+
179
+ ## See Also
180
+
181
+ - [README](./README.md) - Overview and core concepts
182
+ - [Configuration](./configuration.md) - Setup and Cache Rules
183
+ - [Patterns](./patterns.md) - Best practices and optimization
184
+ - [Gotchas](./gotchas.md) - Common issues and troubleshooting
@@ -0,0 +1,170 @@
1
+ # Cache Reserve Configuration
2
+
3
+ ## Dashboard Setup
4
+
5
+ **Minimum steps to enable:**
6
+
7
+ ```bash
8
+ # Navigate to dashboard
9
+ https://dash.cloudflare.com/caching/cache-reserve
10
+
11
+ # Click "Enable Storage Sync" or "Purchase" button
12
+ ```
13
+
14
+ **Prerequisites:**
15
+
16
+ - Paid Cache Reserve plan or Smart Shield Advanced required
17
+ - Tiered Cache **required** for Cache Reserve to function optimally
18
+
19
+ ## API Configuration
20
+
21
+ ### REST API
22
+
23
+ ```bash
24
+ # Enable
25
+ curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve" \
26
+ -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" \
27
+ -d '{"value": "on"}'
28
+
29
+ # Check status
30
+ curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve" \
31
+ -H "Authorization: Bearer $API_TOKEN"
32
+ ```
33
+
34
+ ### TypeScript SDK
35
+
36
+ ```bash
37
+ npm install cloudflare
38
+ ```
39
+
40
+ ```typescript
41
+ import Cloudflare from 'cloudflare'
42
+
43
+ const client = new Cloudflare({
44
+ apiToken: process.env.CLOUDFLARE_API_TOKEN,
45
+ })
46
+
47
+ // Enable Cache Reserve
48
+ await client.cache.cacheReserve.edit({
49
+ zone_id: 'abc123',
50
+ value: 'on',
51
+ })
52
+
53
+ // Get Cache Reserve status
54
+ const status = await client.cache.cacheReserve.get({
55
+ zone_id: 'abc123',
56
+ })
57
+ console.log(status.value) // 'on' or 'off'
58
+ ```
59
+
60
+ ### Python SDK
61
+
62
+ ```bash
63
+ pip install cloudflare
64
+ ```
65
+
66
+ ```python
67
+ from cloudflare import Cloudflare
68
+
69
+ client = Cloudflare(api_token=os.environ.get("CLOUDFLARE_API_TOKEN"))
70
+
71
+ # Enable Cache Reserve
72
+ client.cache.cache_reserve.edit(
73
+ zone_id="abc123",
74
+ value="on"
75
+ )
76
+
77
+ # Get Cache Reserve status
78
+ status = client.cache.cache_reserve.get(zone_id="abc123")
79
+ print(status.value) # 'on' or 'off'
80
+ ```
81
+
82
+ ### Terraform
83
+
84
+ ```hcl
85
+ terraform {
86
+ required_providers {
87
+ cloudflare = {
88
+ source = "cloudflare/cloudflare"
89
+ version = "~> 4.0"
90
+ }
91
+ }
92
+ }
93
+
94
+ provider "cloudflare" {
95
+ api_token = var.cloudflare_api_token
96
+ }
97
+
98
+ resource "cloudflare_zone_cache_reserve" "example" {
99
+ zone_id = var.zone_id
100
+ enabled = true
101
+ }
102
+
103
+ # Tiered Cache is required for Cache Reserve
104
+ resource "cloudflare_tiered_cache" "example" {
105
+ zone_id = var.zone_id
106
+ cache_type = "smart"
107
+ }
108
+ ```
109
+
110
+ ### Pulumi
111
+
112
+ ```typescript
113
+ import * as cloudflare from '@pulumi/cloudflare'
114
+
115
+ // Enable Cache Reserve
116
+ const cacheReserve = new cloudflare.ZoneCacheReserve('example', {
117
+ zoneId: zoneId,
118
+ enabled: true,
119
+ })
120
+
121
+ // Enable Tiered Cache (required)
122
+ const tieredCache = new cloudflare.TieredCache('example', {
123
+ zoneId: zoneId,
124
+ cacheType: 'smart',
125
+ })
126
+ ```
127
+
128
+ ### Required API Token Permissions
129
+
130
+ - `Zone Settings Read`
131
+ - `Zone Settings Write`
132
+ - `Zone Read`
133
+ - `Zone Write`
134
+
135
+ ## Cache Rules Integration
136
+
137
+ Control Cache Reserve eligibility via Cache Rules:
138
+
139
+ ```typescript
140
+ // Enable for static assets
141
+ {
142
+ action: 'set_cache_settings',
143
+ action_parameters: {
144
+ cache_reserve: { eligible: true, minimum_file_ttl: 86400 },
145
+ edge_ttl: { mode: 'override_origin', default: 86400 },
146
+ cache: true
147
+ },
148
+ expression: '(http.request.uri.path matches "\\.(jpg|png|webp|pdf|zip)$")'
149
+ }
150
+
151
+ // Disable for APIs
152
+ {
153
+ action: 'set_cache_settings',
154
+ action_parameters: { cache_reserve: { eligible: false } },
155
+ expression: '(http.request.uri.path matches "^/api/")'
156
+ }
157
+
158
+ // Create via API: PUT to zones/{zone_id}/rulesets/phases/http_request_cache_settings/entrypoint
159
+ ```
160
+
161
+ ## Wrangler Integration
162
+
163
+ Cache Reserve works automatically with Workers deployed via Wrangler. No special wrangler.jsonc configuration needed - enable Cache Reserve via Dashboard or API for the zone.
164
+
165
+ ## See Also
166
+
167
+ - [README](./README.md) - Overview and core concepts
168
+ - [API Reference](./api.md) - Purging and monitoring APIs
169
+ - [Patterns](./patterns.md) - Best practices and optimization
170
+ - [Gotchas](./gotchas.md) - Common issues and troubleshooting
@@ -0,0 +1,136 @@
1
+ # Cache Reserve Gotchas
2
+
3
+ ## Common Errors
4
+
5
+ ### "Assets Not Being Cached in Cache Reserve"
6
+
7
+ **Cause:** Asset is not cacheable, TTL < 10 hours, Content-Length header missing, or blocking headers present (Set-Cookie, Vary: _)
8
+ **Solution:** Ensure minimum TTL of 10+ hours (`Cache-Control: public, max-age=36000`), add Content-Length header, remove Set-Cookie header, and set `Vary: Accept-Encoding` (not _)
9
+
10
+ ### "Range Requests Not Working" (Video Seeking Fails)
11
+
12
+ **Cause:** Cache Reserve does **NOT** support range requests (HTTP 206 Partial Content)
13
+ **Solution:** Range requests bypass Cache Reserve entirely. For video streaming with seeking:
14
+
15
+ - Use edge cache only (shorter TTLs)
16
+ - Consider R2 with direct access for range-heavy workloads
17
+ - Accept that seekable content won't benefit from Cache Reserve persistence
18
+
19
+ ### "Origin Bandwidth Higher Than Expected"
20
+
21
+ **Cause:** Cache Reserve fetches **uncompressed** content from origin, even though it serves compressed to visitors
22
+ **Solution:**
23
+
24
+ - If origin charges by bandwidth, factor in uncompressed transfer costs
25
+ - Cache Reserve compresses for visitors automatically (saves visitor bandwidth)
26
+ - Compare: origin egress savings vs higher uncompressed fetch costs
27
+
28
+ ### "Cloudflare Images Not Caching with Cache Reserve"
29
+
30
+ **Cause:** Cloudflare Images with `Vary: Accept` header (format negotiation) is incompatible with Cache Reserve
31
+ **Solution:**
32
+
33
+ - Cache Reserve silently skips images with Vary for format negotiation
34
+ - Original images (non-transformed) may still be eligible
35
+ - Use Cloudflare Images variants or edge cache for transformed images
36
+
37
+ ### "High Class A Operations Costs"
38
+
39
+ **Cause:** Frequent cache misses, short TTLs, or frequent revalidation
40
+ **Solution:** Increase TTL for stable content (24+ hours), enable Tiered Cache to reduce direct Cache Reserve misses, or use stale-while-revalidate
41
+
42
+ ### "Purge Not Working as Expected"
43
+
44
+ **Cause:** Purge by tag only triggers revalidation but doesn't remove from Cache Reserve storage
45
+ **Solution:** Use purge by URL for immediate removal, or disable Cache Reserve then clear all data for complete removal
46
+
47
+ ### "O2O (Orange-to-Orange) Assets Not Caching"
48
+
49
+ **Cause:** Orange-to-Orange (proxied zone requesting another proxied zone on Cloudflare) bypasses Cache Reserve
50
+ **Solution:**
51
+
52
+ - **What is O2O**: Zone A (proxied) → Zone B (proxied), both on Cloudflare
53
+ - **Detection**: Check `cf-cache-status` for `BYPASS` and review request path
54
+ - **Workaround**: Use R2 or direct origin access instead of O2O proxy chains
55
+
56
+ ### "Cache Reserve must be OFF before clearing data"
57
+
58
+ **Cause:** Attempting to clear Cache Reserve data while it's still enabled
59
+ **Solution:** Disable Cache Reserve first, wait briefly for propagation (5s), then clear data (can take up to 24 hours)
60
+
61
+ ## Limits
62
+
63
+ | Limit | Value | Notes |
64
+ | --------------------- | ---------------------------------- | ---------------------------------------------- |
65
+ | Minimum TTL | 10 hours (36000 seconds) | Assets with shorter TTL not eligible |
66
+ | Default retention | 30 days (2592000 seconds) | Configurable |
67
+ | Maximum file size | Same as R2 limits | No practical limit |
68
+ | Purge/clear time | Up to 24 hours | Complete propagation time |
69
+ | Plan requirement | Paid Cache Reserve or Smart Shield | Not available on free plans |
70
+ | Content-Length header | Required | Must be present for eligibility |
71
+ | Set-Cookie header | Blocks caching | Must not be present (or use private directive) |
72
+ | Vary header | Cannot be \* | Can use Vary: Accept-Encoding |
73
+ | Image transformations | Variants not eligible | Original images only |
74
+ | Range requests | NOT supported | HTTP 206 bypasses Cache Reserve |
75
+ | Compression | Fetches uncompressed | Serves compressed to visitors |
76
+ | Worker control | Zone-level only | Cannot control per-request |
77
+ | O2O requests | Bypassed | Orange-to-Orange not eligible |
78
+
79
+ ## Additional Resources
80
+
81
+ - **Official Docs**: https://developers.cloudflare.com/cache/advanced-configuration/cache-reserve/
82
+ - **API Reference**: https://developers.cloudflare.com/api/resources/cache/subresources/cache_reserve/
83
+ - **Cache Rules**: https://developers.cloudflare.com/cache/how-to/cache-rules/
84
+ - **Workers Cache API**: https://developers.cloudflare.com/workers/runtime-apis/cache/
85
+ - **R2 Documentation**: https://developers.cloudflare.com/r2/
86
+ - **Smart Shield**: https://developers.cloudflare.com/smart-shield/
87
+ - **Tiered Cache**: https://developers.cloudflare.com/cache/how-to/tiered-cache/
88
+
89
+ ## Troubleshooting Flowchart
90
+
91
+ Asset not caching in Cache Reserve?
92
+
93
+ ```
94
+ 1. Is Cache Reserve enabled for zone?
95
+ → No: Enable via Dashboard or API
96
+ → Yes: Continue to step 2
97
+
98
+ 2. Is Tiered Cache enabled?
99
+ → No: Enable Tiered Cache (required!)
100
+ → Yes: Continue to step 3
101
+
102
+ 3. Does asset have TTL ≥ 10 hours?
103
+ → No: Increase via Cache Rules (edge_ttl override)
104
+ → Yes: Continue to step 4
105
+
106
+ 4. Is Content-Length header present?
107
+ → No: Fix origin to include Content-Length
108
+ → Yes: Continue to step 5
109
+
110
+ 5. Is Set-Cookie header present?
111
+ → Yes: Remove Set-Cookie or scope appropriately
112
+ → No: Continue to step 6
113
+
114
+ 6. Is Vary header set to *?
115
+ → Yes: Change to specific value (e.g., Accept-Encoding)
116
+ → No: Continue to step 7
117
+
118
+ 7. Is this a range request?
119
+ → Yes: Range requests bypass Cache Reserve (not supported)
120
+ → No: Continue to step 8
121
+
122
+ 8. Is this an O2O (Orange-to-Orange) request?
123
+ → Yes: O2O bypasses Cache Reserve
124
+ → No: Continue to step 9
125
+
126
+ 9. Check Logpush CacheReserveUsed field
127
+ → Filter logs to see if assets ever hit Cache Reserve
128
+ → Verify cf-cache-status header (should be HIT after first request)
129
+ ```
130
+
131
+ ## See Also
132
+
133
+ - [README](./README.md) - Overview and core concepts
134
+ - [Configuration](./configuration.md) - Setup and Cache Rules
135
+ - [API Reference](./api.md) - Purging and monitoring
136
+ - [Patterns](./patterns.md) - Best practices and optimization
@@ -0,0 +1,197 @@
1
+ # Cache Reserve Patterns
2
+
3
+ ## Best Practices
4
+
5
+ ### 1. Always Enable Tiered Cache
6
+
7
+ ```typescript
8
+ // Cache Reserve is designed for use WITH Tiered Cache
9
+ const configuration = {
10
+ tieredCache: 'enabled', // Required for optimal performance
11
+ cacheReserve: 'enabled', // Works best with Tiered Cache
12
+
13
+ hierarchy: [
14
+ 'Lower-Tier Cache (visitor)',
15
+ 'Upper-Tier Cache (origin region)',
16
+ 'Cache Reserve (persistent)',
17
+ 'Origin',
18
+ ],
19
+ }
20
+ ```
21
+
22
+ ### 2. Set Appropriate Cache-Control Headers
23
+
24
+ ```typescript
25
+ // Origin response headers for Cache Reserve eligibility
26
+ const originHeaders = {
27
+ 'Cache-Control': 'public, max-age=86400', // 24hr (minimum 10hr)
28
+ 'Content-Length': '1024000', // Required
29
+ 'Cache-Tag': 'images,product-123', // Optional: purging
30
+ ETag: '"abc123"', // Optional: revalidation
31
+ // Avoid: 'Set-Cookie' and 'Vary: *' prevent caching
32
+ }
33
+ ```
34
+
35
+ ### 3. Use Cache Rules for Fine-Grained Control
36
+
37
+ ```typescript
38
+ // Different TTLs for different content types
39
+ const cacheRules = [
40
+ {
41
+ description: 'Long-term cache for immutable assets',
42
+ expression: '(http.request.uri.path matches "^/static/.*\\.[a-f0-9]{8}\\.")',
43
+ action_parameters: {
44
+ cache_reserve: { eligible: true },
45
+ edge_ttl: { mode: 'override_origin', default: 2592000 }, // 30 days
46
+ cache: true,
47
+ },
48
+ },
49
+ {
50
+ description: 'Moderate cache for regular images',
51
+ expression: '(http.request.uri.path matches "\\.(jpg|png|webp)$")',
52
+ action_parameters: {
53
+ cache_reserve: { eligible: true },
54
+ edge_ttl: { mode: 'override_origin', default: 86400 }, // 24 hours
55
+ cache: true,
56
+ },
57
+ },
58
+ {
59
+ description: 'Exclude API from Cache Reserve',
60
+ expression: '(http.request.uri.path matches "^/api/")',
61
+ action_parameters: { cache_reserve: { eligible: false }, cache: false },
62
+ },
63
+ ]
64
+ ```
65
+
66
+ ### 4. Making Assets Cache Reserve Eligible from Workers
67
+
68
+ **Note**: This modifies response headers to meet eligibility criteria but does NOT directly control Cache Reserve storage (which is zone-level automatic).
69
+
70
+ ```typescript
71
+ export default {
72
+ async fetch(request: Request, env: Env): Promise<Response> {
73
+ const response = await fetch(request)
74
+ if (!response.ok) return response
75
+
76
+ const headers = new Headers(response.headers)
77
+ headers.set('Cache-Control', 'public, max-age=36000') // 10hr minimum
78
+ headers.delete('Set-Cookie') // Blocks caching
79
+
80
+ // Ensure Content-Length present
81
+ if (!headers.has('Content-Length')) {
82
+ const blob = await response.blob()
83
+ headers.set('Content-Length', blob.size.toString())
84
+ return new Response(blob, { status: response.status, headers })
85
+ }
86
+
87
+ return new Response(response.body, { status: response.status, headers })
88
+ },
89
+ }
90
+ ```
91
+
92
+ ### 5. Hostname Best Practices
93
+
94
+ Use Worker's hostname for efficient caching - avoid overriding hostname unnecessarily.
95
+
96
+ ## Architecture Patterns
97
+
98
+ ### Multi-Tier Caching + Immutable Assets
99
+
100
+ ```typescript
101
+ // Optimal: L1 (visitor) → L2 (region) → L3 (Cache Reserve) → Origin
102
+ export default {
103
+ async fetch(request: Request, env: Env): Promise<Response> {
104
+ const url = new URL(request.url)
105
+ const isImmutable = /\.[a-f0-9]{8,}\.(js|css|jpg|png|woff2)$/.test(url.pathname)
106
+ const response = await fetch(request)
107
+
108
+ if (isImmutable) {
109
+ const headers = new Headers(response.headers)
110
+ headers.set('Cache-Control', 'public, max-age=31536000, immutable')
111
+ return new Response(response.body, { status: response.status, headers })
112
+ }
113
+ return response
114
+ },
115
+ }
116
+ ```
117
+
118
+ ## Cost Optimization
119
+
120
+ ### Cost Calculator
121
+
122
+ ```typescript
123
+ interface CacheReserveEstimate {
124
+ avgAssetSizeGB: number
125
+ uniqueAssets: number
126
+ monthlyReads: number
127
+ monthlyWrites: number
128
+ originEgressCostPerGB: number // e.g., AWS: $0.09/GB
129
+ }
130
+
131
+ function estimateMonthlyCost(input: CacheReserveEstimate) {
132
+ // Cache Reserve pricing
133
+ const storageCostPerGBMonth = 0.015
134
+ const classAPerMillion = 4.5 // writes
135
+ const classBPerMillion = 0.36 // reads
136
+
137
+ // Calculate Cache Reserve costs
138
+ const totalStorageGB = input.avgAssetSizeGB * input.uniqueAssets
139
+ const storageCost = totalStorageGB * storageCostPerGBMonth
140
+ const writeCost = (input.monthlyWrites / 1_000_000) * classAPerMillion
141
+ const readCost = (input.monthlyReads / 1_000_000) * classBPerMillion
142
+
143
+ const cacheReserveCost = storageCost + writeCost + readCost
144
+
145
+ // Calculate origin egress cost (what you'd pay without Cache Reserve)
146
+ const totalTrafficGB = input.monthlyReads * input.avgAssetSizeGB
147
+ const originEgressCost = totalTrafficGB * input.originEgressCostPerGB
148
+
149
+ // Savings calculation
150
+ const savings = originEgressCost - cacheReserveCost
151
+ const savingsPercent = ((savings / originEgressCost) * 100).toFixed(1)
152
+
153
+ return {
154
+ cacheReserveCost: `$${cacheReserveCost.toFixed(2)}`,
155
+ originEgressCost: `$${originEgressCost.toFixed(2)}`,
156
+ monthlySavings: `$${savings.toFixed(2)}`,
157
+ savingsPercent: `${savingsPercent}%`,
158
+ breakdown: {
159
+ storage: `$${storageCost.toFixed(2)}`,
160
+ writes: `$${writeCost.toFixed(2)}`,
161
+ reads: `$${readCost.toFixed(2)}`,
162
+ },
163
+ }
164
+ }
165
+
166
+ // Example: Media library
167
+ const mediaLibrary = estimateMonthlyCost({
168
+ avgAssetSizeGB: 0.005, // 5MB images
169
+ uniqueAssets: 10_000,
170
+ monthlyReads: 5_000_000,
171
+ monthlyWrites: 50_000,
172
+ originEgressCostPerGB: 0.09, // AWS S3
173
+ })
174
+
175
+ console.log(mediaLibrary)
176
+ // {
177
+ // cacheReserveCost: "$9.98",
178
+ // originEgressCost: "$25.00",
179
+ // monthlySavings: "$15.02",
180
+ // savingsPercent: "60.1%",
181
+ // breakdown: { storage: "$0.75", writes: "$0.23", reads: "$9.00" }
182
+ // }
183
+ ```
184
+
185
+ ### Optimization Guidelines
186
+
187
+ - **Set appropriate TTLs**: 10hr minimum, 24hr+ optimal for stable content, 30d max cautiously
188
+ - **Cache high-value stable assets**: Images, media, fonts, archives, documentation
189
+ - **Exclude frequently changing**: APIs, user-specific content, real-time data
190
+ - **Compression note**: Cache Reserve fetches uncompressed from origin, serves compressed to visitors - factor in origin egress costs
191
+
192
+ ## See Also
193
+
194
+ - [README](./README.md) - Overview and core concepts
195
+ - [Configuration](./configuration.md) - Setup and Cache Rules
196
+ - [API Reference](./api.md) - Purging and monitoring
197
+ - [Gotchas](./gotchas.md) - Common issues and troubleshooting