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,214 @@
1
+ # Snippets API Reference
2
+
3
+ ## Request Object
4
+
5
+ ### HTTP Properties
6
+
7
+ ```javascript
8
+ request.method // GET, POST, PUT, DELETE, etc.
9
+ request.url // Full URL string
10
+ request.headers // Headers object
11
+ request.body // ReadableStream (for POST/PUT)
12
+ request.cf // Cloudflare properties (see below)
13
+ ```
14
+
15
+ ### URL Operations
16
+
17
+ ```javascript
18
+ const url = new URL(request.url)
19
+ url.hostname // "example.com"
20
+ url.pathname // "/path/to/page"
21
+ url.search // "?query=value"
22
+ url.searchParams.get('q') // "value"
23
+ url.searchParams.set('q', 'new')
24
+ url.searchParams.delete('q')
25
+ ```
26
+
27
+ ### Header Operations
28
+
29
+ ```javascript
30
+ // Read headers
31
+ request.headers.get('User-Agent')
32
+ request.headers.has('Authorization')
33
+ request.headers.getSetCookie() // Get all Set-Cookie headers
34
+
35
+ // Modify headers (create new request)
36
+ const modifiedRequest = new Request(request)
37
+ modifiedRequest.headers.set('X-Custom', 'value')
38
+ modifiedRequest.headers.delete('X-Remove')
39
+ ```
40
+
41
+ ### Cloudflare Properties (`request.cf`)
42
+
43
+ Access Cloudflare-specific metadata about the request:
44
+
45
+ ```javascript
46
+ // Geolocation
47
+ request.cf.city // "San Francisco"
48
+ request.cf.continent // "NA"
49
+ request.cf.country // "US"
50
+ request.cf.region // "California" or "CA"
51
+ request.cf.regionCode // "CA"
52
+ request.cf.postalCode // "94102"
53
+ request.cf.latitude // "37.7749"
54
+ request.cf.longitude // "-122.4194"
55
+ request.cf.timezone // "America/Los_Angeles"
56
+ request.cf.metroCode // "807" (DMA code)
57
+
58
+ // Network
59
+ request.cf.colo // "SFO" (airport code of datacenter)
60
+ request.cf.asn // 13335 (ASN number)
61
+ request.cf.asOrganization // "Cloudflare, Inc."
62
+
63
+ // Bot Management (if enabled)
64
+ request.cf.botManagement.score // 1-99 (1=bot, 99=human)
65
+ request.cf.botManagement.verified_bot // true/false
66
+ request.cf.botManagement.static_resource // true/false
67
+
68
+ // TLS/HTTP version
69
+ request.cf.tlsVersion // "TLSv1.3"
70
+ request.cf.tlsCipher // "AEAD-AES128-GCM-SHA256"
71
+ request.cf.httpProtocol // "HTTP/2"
72
+
73
+ // Request metadata
74
+ request.cf.requestPriority // "weight=192;exclusive=0"
75
+ ```
76
+
77
+ **Use cases**: Geo-routing, bot detection, security decisions, analytics.
78
+
79
+ ## Response Object
80
+
81
+ ### Response Constructors
82
+
83
+ ```javascript
84
+ // Plain text
85
+ new Response('Hello', { status: 200 })
86
+
87
+ // JSON
88
+ Response.json({ key: 'value' }, { status: 200 })
89
+
90
+ // HTML
91
+ new Response('<h1>Hi</h1>', {
92
+ status: 200,
93
+ headers: { 'Content-Type': 'text/html' },
94
+ })
95
+
96
+ // Redirect
97
+ Response.redirect('https://example.com', 301) // or 302
98
+
99
+ // Stream (pass through)
100
+ new Response(response.body, response)
101
+ ```
102
+
103
+ ### Response Headers
104
+
105
+ ```javascript
106
+ // Create modified response
107
+ const newResponse = new Response(response.body, response)
108
+
109
+ // Set/modify headers
110
+ newResponse.headers.set('X-Custom', 'value')
111
+ newResponse.headers.append('Set-Cookie', 'session=abc; Path=/')
112
+ newResponse.headers.delete('Server')
113
+
114
+ // Common headers
115
+ newResponse.headers.set('Cache-Control', 'public, max-age=3600')
116
+ newResponse.headers.set('Content-Type', 'application/json')
117
+ ```
118
+
119
+ ### Response Properties
120
+
121
+ ```javascript
122
+ response.status // 200, 404, 500, etc.
123
+ response.statusText // "OK", "Not Found", etc.
124
+ response.headers // Headers object
125
+ response.body // ReadableStream
126
+ response.ok // true if status 200-299
127
+ response.redirected // true if redirected
128
+ ```
129
+
130
+ ## REST API Operations
131
+
132
+ ### List Snippets
133
+
134
+ ```bash
135
+ GET /zones/{zone_id}/snippets
136
+ ```
137
+
138
+ ### Get Snippet
139
+
140
+ ```bash
141
+ GET /zones/{zone_id}/snippets/{snippet_name}
142
+ ```
143
+
144
+ ### Create/Update Snippet
145
+
146
+ ```bash
147
+ PUT /zones/{zone_id}/snippets/{snippet_name}
148
+ Content-Type: multipart/form-data
149
+
150
+ files=@snippet.js
151
+ metadata={"main_module":"snippet.js"}
152
+ ```
153
+
154
+ ### Delete Snippet
155
+
156
+ ```bash
157
+ DELETE /zones/{zone_id}/snippets/{snippet_name}
158
+ ```
159
+
160
+ ### List Snippet Rules
161
+
162
+ ```bash
163
+ GET /zones/{zone_id}/rulesets/phases/http_request_snippets/entrypoint
164
+ ```
165
+
166
+ ### Update Snippet Rules
167
+
168
+ ```bash
169
+ PUT /zones/{zone_id}/snippets/snippet_rules
170
+ Content-Type: application/json
171
+
172
+ {
173
+ "rules": [{
174
+ "description": "Apply snippet",
175
+ "enabled": true,
176
+ "expression": "http.host eq \"example.com\"",
177
+ "snippet_name": "my_snippet"
178
+ }]
179
+ }
180
+ ```
181
+
182
+ ## Available APIs in Snippets
183
+
184
+ ### ✅ Supported
185
+
186
+ - `fetch()` - HTTP requests (2-5 subrequests per plan)
187
+ - `Request` / `Response` - Standard Web APIs
188
+ - `URL` / `URLSearchParams` - URL manipulation
189
+ - `Headers` - Header manipulation
190
+ - `TextEncoder` / `TextDecoder` - Text encoding
191
+ - `crypto.subtle` - Web Crypto API (hashing, signing)
192
+ - `crypto.randomUUID()` - UUID generation
193
+
194
+ ### ❌ Not Supported in Snippets
195
+
196
+ - `caches` API - Not available (use Workers)
197
+ - `KV`, `D1`, `R2` - Storage APIs (use Workers)
198
+ - `Durable Objects` - Stateful objects (use Workers)
199
+ - `WebSocket` - WebSocket upgrades (use Workers)
200
+ - `HTMLRewriter` - HTML parsing (use Workers)
201
+ - `import` statements - No module imports
202
+ - `addEventListener` - Use `export default { async fetch() {}` pattern
203
+
204
+ ## Snippet Structure
205
+
206
+ ```javascript
207
+ export default {
208
+ async fetch(request) {
209
+ // Your logic here
210
+ const response = await fetch(request)
211
+ return response // or modified response
212
+ },
213
+ }
214
+ ```
@@ -0,0 +1,239 @@
1
+ # Snippets Configuration Guide
2
+
3
+ ## Configuration Methods
4
+
5
+ ### 1. Dashboard (GUI)
6
+
7
+ **Best for**: Quick tests, single snippets, visual rule building
8
+
9
+ ```
10
+ 1. Go to zone → Rules → Snippets
11
+ 2. Click "Create Snippet" or select template
12
+ 3. Enter snippet name (a-z, 0-9, _ only, cannot change later)
13
+ 4. Write JavaScript code (32KB max)
14
+ 5. Configure snippet rule:
15
+ - Expression Builder (visual) or Expression Editor (text)
16
+ - Use Ruleset Engine filter expressions
17
+ 6. Test with Preview/HTTP tabs
18
+ 7. Deploy or Save as Draft
19
+ ```
20
+
21
+ ### 2. REST API
22
+
23
+ **Best for**: CI/CD, automation, programmatic management
24
+
25
+ ```bash
26
+ # Create/update snippet
27
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/$SNIPPET_NAME" \
28
+ --request PUT \
29
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
30
+ --form "files=@example.js" \
31
+ --form "metadata={\"main_module\": \"example.js\"}"
32
+
33
+ # Create snippet rule
34
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/snippet_rules" \
35
+ --request PUT \
36
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
37
+ --header "Content-Type: application/json" \
38
+ --data '{
39
+ "rules": [
40
+ {
41
+ "description": "Trigger snippet on /api paths",
42
+ "enabled": true,
43
+ "expression": "starts_with(http.request.uri.path, \"/api/\")",
44
+ "snippet_name": "api_snippet"
45
+ }
46
+ ]
47
+ }'
48
+
49
+ # List snippets
50
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets" \
51
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
52
+
53
+ # Delete snippet
54
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/$SNIPPET_NAME" \
55
+ --request DELETE \
56
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
57
+ ```
58
+
59
+ ### 3. Terraform
60
+
61
+ **Best for**: Infrastructure-as-code, multi-zone deployments
62
+
63
+ ```hcl
64
+ # Configure Terraform provider
65
+ terraform {
66
+ required_providers {
67
+ cloudflare = {
68
+ source = "cloudflare/cloudflare"
69
+ version = "~> 4.0"
70
+ }
71
+ }
72
+ }
73
+
74
+ provider "cloudflare" {
75
+ api_token = var.cloudflare_api_token
76
+ }
77
+
78
+ # Create snippet
79
+ resource "cloudflare_snippet" "security_headers" {
80
+ zone_id = var.zone_id
81
+ name = "security_headers"
82
+
83
+ main_module = "security_headers.js"
84
+ files {
85
+ name = "security_headers.js"
86
+ content = file("${path.module}/snippets/security_headers.js")
87
+ }
88
+ }
89
+
90
+ # Create snippet rule
91
+ resource "cloudflare_snippet_rules" "security_rules" {
92
+ zone_id = var.zone_id
93
+
94
+ rules {
95
+ description = "Apply security headers to all requests"
96
+ enabled = true
97
+ expression = "true"
98
+ snippet_name = cloudflare_snippet.security_headers.name
99
+ }
100
+ }
101
+ ```
102
+
103
+ ### 4. Pulumi
104
+
105
+ **Best for**: Multi-cloud IaC, TypeScript/Python/Go workflows
106
+
107
+ ```typescript
108
+ import * as cloudflare from '@pulumi/cloudflare'
109
+ import * as fs from 'fs'
110
+
111
+ // Create snippet
112
+ const securitySnippet = new cloudflare.Snippet('security-headers', {
113
+ zoneId: zoneId,
114
+ name: 'security_headers',
115
+ mainModule: 'security_headers.js',
116
+ files: [
117
+ {
118
+ name: 'security_headers.js',
119
+ content: fs.readFileSync('./snippets/security_headers.js', 'utf8'),
120
+ },
121
+ ],
122
+ })
123
+
124
+ // Create snippet rule
125
+ const snippetRule = new cloudflare.SnippetRules('security-rules', {
126
+ zoneId: zoneId,
127
+ rules: [
128
+ {
129
+ description: 'Apply security headers',
130
+ enabled: true,
131
+ expression: 'true',
132
+ snippetName: securitySnippet.name,
133
+ },
134
+ ],
135
+ })
136
+ ```
137
+
138
+ ## Filter Expressions
139
+
140
+ Snippets use Cloudflare's Ruleset Engine expression language to determine when to execute.
141
+
142
+ ### Common Expression Patterns
143
+
144
+ ```javascript
145
+ // Host matching
146
+ http.host eq "example.com"
147
+ http.host in {"example.com" "www.example.com"}
148
+ http.host contains "example"
149
+
150
+ // Path matching
151
+ http.request.uri.path eq "/api/users"
152
+ starts_with(http.request.uri.path, "/api/")
153
+ ends_with(http.request.uri.path, ".json")
154
+ matches(http.request.uri.path, "^/api/v[0-9]+/")
155
+
156
+ // Query parameters
157
+ http.request.uri.query contains "debug=true"
158
+
159
+ // Headers
160
+ http.headers["user-agent"] contains "Mobile"
161
+ http.headers["accept-language"] eq "en-US"
162
+
163
+ // Cookies
164
+ http.cookie contains "session="
165
+
166
+ // Geolocation
167
+ ip.geoip.country eq "US"
168
+ ip.geoip.continent eq "EU"
169
+
170
+ // Bot detection (requires Bot Management)
171
+ cf.bot_management.score lt 30
172
+
173
+ // Method
174
+ http.request.method eq "POST"
175
+ http.request.method in {"POST" "PUT" "PATCH"}
176
+
177
+ // Combine with logical operators
178
+ http.host eq "example.com" and starts_with(http.request.uri.path, "/api/")
179
+ ip.geoip.country eq "US" or ip.geoip.country eq "CA"
180
+ not http.headers["user-agent"] contains "bot"
181
+ ```
182
+
183
+ ### Expression Functions
184
+
185
+ | Function | Example | Description |
186
+ | --------------- | ------------------------------------------------ | -------------------- |
187
+ | `starts_with()` | `starts_with(http.request.uri.path, "/api/")` | Check prefix |
188
+ | `ends_with()` | `ends_with(http.request.uri.path, ".json")` | Check suffix |
189
+ | `contains()` | `contains(http.headers["user-agent"], "Mobile")` | Check substring |
190
+ | `matches()` | `matches(http.request.uri.path, "^/api/")` | Regex match |
191
+ | `lower()` | `lower(http.host) eq "example.com"` | Convert to lowercase |
192
+ | `upper()` | `upper(http.headers["x-api-key"])` | Convert to uppercase |
193
+ | `len()` | `len(http.request.uri.path) gt 100` | String length |
194
+
195
+ ## Deployment Workflow
196
+
197
+ ### Development
198
+
199
+ 1. Write snippet code locally
200
+ 2. Test syntax with `node snippet.js` or TypeScript compiler
201
+ 3. Deploy to Dashboard or use API with `Save as Draft`
202
+ 4. Test with Preview/HTTP tabs in Dashboard
203
+ 5. Enable rule when ready
204
+
205
+ ### Production
206
+
207
+ 1. Store snippet code in version control
208
+ 2. Use Terraform/Pulumi for reproducible deployments
209
+ 3. Deploy to staging zone first
210
+ 4. Test with real traffic (use low-traffic subdomain)
211
+ 5. Apply to production zone
212
+ 6. Monitor with Analytics/Logpush
213
+
214
+ ## Limits & Requirements
215
+
216
+ | Resource | Limit | Notes |
217
+ | ----------------- | ---------- | ------------------------------------ |
218
+ | Snippet size | 32 KB | Per snippet, compressed |
219
+ | Snippet name | 64 chars | `a-z`, `0-9`, `_` only, immutable |
220
+ | Snippets per zone | 20 | Soft limit, contact support for more |
221
+ | Rules per zone | 20 | One rule per snippet typical |
222
+ | Expression length | 4096 chars | Per rule expression |
223
+
224
+ ## Authentication
225
+
226
+ ### API Token (Recommended)
227
+
228
+ ```bash
229
+ # Create token at: https://dash.cloudflare.com/profile/api-tokens
230
+ # Required permissions: Zone.Snippets:Edit, Zone.Rules:Edit
231
+ export CLOUDFLARE_API_TOKEN="your_token_here"
232
+ ```
233
+
234
+ ### API Key (Legacy)
235
+
236
+ ```bash
237
+ export CLOUDFLARE_EMAIL="your@email.com"
238
+ export CLOUDFLARE_API_KEY="your_global_api_key"
239
+ ```
@@ -0,0 +1,104 @@
1
+ # Gotchas & Best Practices
2
+
3
+ ## Common Errors
4
+
5
+ ### 1000: "Snippet execution failed"
6
+
7
+ Runtime error or syntax error. Wrap code in try/catch:
8
+
9
+ ```javascript
10
+ try {
11
+ return await fetch(request)
12
+ } catch (error) {
13
+ return new Response(`Error: ${error.message}`, { status: 500 })
14
+ }
15
+ ```
16
+
17
+ ### 1100: "Exceeded execution limit"
18
+
19
+ Code takes >5ms CPU. Simplify logic or move to Workers.
20
+
21
+ ### 1201: "Multiple origin fetches"
22
+
23
+ Call `fetch(request)` exactly once:
24
+
25
+ ```javascript
26
+ // ❌ Multiple origin fetches
27
+ const r1 = await fetch(request)
28
+ const r2 = await fetch(request)
29
+ // ✅ Single fetch, reuse response
30
+ const response = await fetch(request)
31
+ ```
32
+
33
+ ### 1202: "Subrequest limit exceeded"
34
+
35
+ Pro: 2 subrequests, Business/Enterprise: 5. Reduce fetch calls.
36
+
37
+ ### "Cannot set property on immutable object"
38
+
39
+ Clone before modifying:
40
+
41
+ ```javascript
42
+ const modifiedRequest = new Request(request)
43
+ modifiedRequest.headers.set('X-Custom', 'value')
44
+ ```
45
+
46
+ ### "caches is not defined"
47
+
48
+ Cache API NOT available in Snippets. Use Workers.
49
+
50
+ ### "Module not found"
51
+
52
+ Snippets don't support `import`. Use inline code or Workers.
53
+
54
+ ## Best Practices
55
+
56
+ ### Performance
57
+
58
+ - Keep code <10KB (32KB limit)
59
+ - Optimize for 5ms CPU
60
+ - Clone only when modifying
61
+ - Minimize subrequests
62
+
63
+ ### Security
64
+
65
+ - Validate all inputs
66
+ - Use Web Crypto API for hashing
67
+ - Sanitize headers before origin
68
+ - Don't log secrets
69
+
70
+ ### Debugging
71
+
72
+ ```javascript
73
+ newResponse.headers.set('X-Debug-Country', request.cf.country)
74
+ ```
75
+
76
+ ```bash
77
+ curl -H "X-Test: true" https://example.com -v
78
+ ```
79
+
80
+ ## Available APIs
81
+
82
+ **✅ Available:** `fetch()`, `Request`, `Response`, `Headers`, `URL`, `crypto.subtle`, `crypto.randomUUID()`, `atob()`/`btoa()`, `JSON`
83
+
84
+ **❌ NOT Available:** `caches`, `KV`, `D1`, `R2`, `Durable Objects`, `WebSocket`, `HTMLRewriter`, `import`, Node.js APIs
85
+
86
+ ## Limits
87
+
88
+ | Resource | Limit |
89
+ | --------------------- | ------- |
90
+ | Snippet size | 32KB |
91
+ | Execution time | 5ms CPU |
92
+ | Subrequests (Pro/Biz) | 2/5 |
93
+ | Snippets/zone | 20 |
94
+
95
+ ## Performance Benchmarks
96
+
97
+ | Operation | Time |
98
+ | ----------- | ------- |
99
+ | Header set | <0.1ms |
100
+ | URL parsing | <0.2ms |
101
+ | fetch() | 1-3ms |
102
+ | SHA-256 | 0.5-1ms |
103
+
104
+ **Migrate to Workers when:** >5ms needed, >5 subrequests, need storage (KV/D1/R2), need npm packages, >32KB code
@@ -0,0 +1,135 @@
1
+ # Snippets Patterns
2
+
3
+ ## Security Headers
4
+
5
+ ```javascript
6
+ export default {
7
+ async fetch(request) {
8
+ const response = await fetch(request)
9
+ const newResponse = new Response(response.body, response)
10
+ newResponse.headers.set('X-Frame-Options', 'DENY')
11
+ newResponse.headers.set('X-Content-Type-Options', 'nosniff')
12
+ newResponse.headers.delete('X-Powered-By')
13
+ return newResponse
14
+ },
15
+ }
16
+ ```
17
+
18
+ **Rule:** `true` (all requests)
19
+
20
+ ## Geo-Based Routing
21
+
22
+ ```javascript
23
+ export default {
24
+ async fetch(request) {
25
+ const country = request.cf.country
26
+ if (['GB', 'DE', 'FR'].includes(country)) {
27
+ const url = new URL(request.url)
28
+ url.hostname = url.hostname.replace('.com', '.eu')
29
+ return Response.redirect(url.toString(), 302)
30
+ }
31
+ return fetch(request)
32
+ },
33
+ }
34
+ ```
35
+
36
+ ## A/B Testing
37
+
38
+ ```javascript
39
+ export default {
40
+ async fetch(request) {
41
+ const cookies = request.headers.get('Cookie') || ''
42
+ let variant = cookies.match(/ab_test=([AB])/)?.[1] || (Math.random() < 0.5 ? 'A' : 'B')
43
+
44
+ const req = new Request(request)
45
+ req.headers.set('X-Variant', variant)
46
+ const response = await fetch(req)
47
+
48
+ if (!cookies.includes('ab_test=')) {
49
+ const newResponse = new Response(response.body, response)
50
+ newResponse.headers.append('Set-Cookie', `ab_test=${variant}; Path=/; Secure`)
51
+ return newResponse
52
+ }
53
+ return response
54
+ },
55
+ }
56
+ ```
57
+
58
+ ## Bot Detection
59
+
60
+ ```javascript
61
+ export default {
62
+ async fetch(request) {
63
+ const botScore = request.cf.botManagement?.score
64
+ if (botScore && botScore < 30) return new Response('Denied', { status: 403 })
65
+ return fetch(request)
66
+ },
67
+ }
68
+ ```
69
+
70
+ **Requires:** Bot Management plan
71
+
72
+ ## API Auth Header Injection
73
+
74
+ ```javascript
75
+ export default {
76
+ async fetch(request) {
77
+ if (new URL(request.url).pathname.startsWith('/api/')) {
78
+ const req = new Request(request)
79
+ req.headers.set('X-Internal-Auth', 'secret_token')
80
+ req.headers.delete('Authorization')
81
+ return fetch(req)
82
+ }
83
+ return fetch(request)
84
+ },
85
+ }
86
+ ```
87
+
88
+ ## CORS Headers
89
+
90
+ ```javascript
91
+ export default {
92
+ async fetch(request) {
93
+ if (request.method === 'OPTIONS') {
94
+ return new Response(null, {
95
+ status: 204,
96
+ headers: {
97
+ 'Access-Control-Allow-Origin': '*',
98
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
99
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
100
+ },
101
+ })
102
+ }
103
+ const response = await fetch(request)
104
+ const newResponse = new Response(response.body, response)
105
+ newResponse.headers.set('Access-Control-Allow-Origin', '*')
106
+ return newResponse
107
+ },
108
+ }
109
+ ```
110
+
111
+ ## Maintenance Mode
112
+
113
+ ```javascript
114
+ export default {
115
+ async fetch(request) {
116
+ if (request.headers.get('X-Bypass-Token') === 'admin') return fetch(request)
117
+ return new Response('<h1>Maintenance</h1>', {
118
+ status: 503,
119
+ headers: { 'Content-Type': 'text/html', 'Retry-After': '3600' },
120
+ })
121
+ },
122
+ }
123
+ ```
124
+
125
+ ## Pattern Selection
126
+
127
+ | Pattern | Complexity | Use Case |
128
+ | ---------------- | ---------- | ----------------------- |
129
+ | Security Headers | Low | All sites |
130
+ | Geo-Routing | Low | Regional content |
131
+ | A/B Testing | Medium | Experiments |
132
+ | Bot Detection | Medium | Requires Bot Management |
133
+ | API Auth | Low | Backend protection |
134
+ | CORS | Low | API endpoints |
135
+ | Maintenance | Low | Deployments |