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,108 @@
1
+ # Email Workers Patterns
2
+
3
+ ## Parse Email
4
+
5
+ ```typescript
6
+ import PostalMime from 'postal-mime'
7
+
8
+ export default {
9
+ async email(message, env, ctx) {
10
+ const buffer = await new Response(message.raw).arrayBuffer()
11
+ const email = await PostalMime.parse(buffer)
12
+ console.log(email.from, email.subject, email.text, email.attachments.length)
13
+ await message.forward('inbox@example.com')
14
+ },
15
+ }
16
+ ```
17
+
18
+ ## Filtering
19
+
20
+ ```typescript
21
+ // Allowlist from KV
22
+ const allowList = (await env.ALLOWED_SENDERS.get('list', 'json')) || []
23
+ if (!allowList.includes(message.from)) {
24
+ message.setReject('Not allowed')
25
+ return
26
+ }
27
+
28
+ // Size check (avoid parsing large emails)
29
+ if (message.rawSize > 5_000_000) {
30
+ await message.forward('inbox@example.com') // Forward without parsing
31
+ return
32
+ }
33
+ ```
34
+
35
+ ## Auto-Reply with Threading
36
+
37
+ ```typescript
38
+ import { EmailMessage } from 'cloudflare:email'
39
+ import { createMimeMessage } from 'mimetext'
40
+
41
+ const msg = createMimeMessage()
42
+ msg.setSender({ addr: 'support@example.com' })
43
+ msg.setRecipient(message.from)
44
+ msg.setSubject(`Re: ${message.headers.get('Subject')}`)
45
+ msg.setHeader('In-Reply-To', message.headers.get('Message-ID') || '')
46
+ msg.addMessage({ contentType: 'text/plain', data: 'Thank you. We will respond.' })
47
+
48
+ await message.reply(new EmailMessage('support@example.com', message.from, msg.asRaw()))
49
+ ```
50
+
51
+ ## Rate-Limited Auto-Reply
52
+
53
+ ```typescript
54
+ const rateKey = `rate:${message.from}`
55
+ if (!(await env.RATE_LIMIT.get(rateKey))) {
56
+ // Send reply...
57
+ ctx.waitUntil(env.RATE_LIMIT.put(rateKey, '1', { expirationTtl: 3600 }))
58
+ }
59
+ ```
60
+
61
+ ## Subject-Based Routing
62
+
63
+ ```typescript
64
+ const subject = (message.headers.get('Subject') || '').toLowerCase()
65
+ if (subject.includes('billing')) await message.forward('billing@example.com')
66
+ else if (subject.includes('support')) await message.forward('support@example.com')
67
+ else await message.forward('general@example.com')
68
+ ```
69
+
70
+ ## Multi-Tenant Routing
71
+
72
+ ```typescript
73
+ // support+tenant123@example.com → tenant123
74
+ const tenantId = message.to.split('@')[0].match(/\+(.+)$/)?.[1] || 'default'
75
+ const config = await env.TENANT_CONFIG.get(tenantId, 'json')
76
+ config?.forwardTo ? await message.forward(config.forwardTo) : message.setReject('Unknown')
77
+ ```
78
+
79
+ ## Archive & Extract Attachments
80
+
81
+ ```typescript
82
+ // Archive to KV
83
+ ctx.waitUntil(
84
+ env.ARCHIVE.put(
85
+ `email:${Date.now()}`,
86
+ JSON.stringify({
87
+ from: message.from,
88
+ subject: email.subject,
89
+ })
90
+ )
91
+ )
92
+
93
+ // Attachments to R2
94
+ for (const att of email.attachments) {
95
+ ctx.waitUntil(env.R2.put(`${Date.now()}-${att.filename}`, att.content))
96
+ }
97
+ ```
98
+
99
+ ## Webhook Integration
100
+
101
+ ```typescript
102
+ ctx.waitUntil(
103
+ fetch(env.WEBHOOK_URL, {
104
+ method: 'POST',
105
+ body: JSON.stringify({ from: message.from, subject: message.headers.get('Subject') }),
106
+ }).catch((err) => console.error(err))
107
+ )
108
+ ```
@@ -0,0 +1,147 @@
1
+ # Cloudflare GraphQL Analytics API
2
+
3
+ Query analytics data across all Cloudflare products via a single GraphQL endpoint. Covers HTTP requests, Workers metrics, DNS, Firewall events, Network Analytics, and 70+ other datasets.
4
+
5
+ ## Overview
6
+
7
+ - **Single endpoint** for all analytics: `https://api.cloudflare.com/client/v4/graphql`
8
+ - **1,400+ schema types** spanning every Cloudflare product
9
+ - **Two scopes**: zone-level (per-domain) and account-level (cross-domain)
10
+ - **Adaptive sampling** on high-traffic datasets with confidence intervals
11
+ - **No mutations** - read-only analytics (the Mutation type is a stub)
12
+ - **Cost-based rate limiting** - default 300 queries per 5 minutes per user (max 320, varies by query cost)
13
+
14
+ ## Quick Decision Tree
15
+
16
+ ```
17
+ Need analytics data from Cloudflare?
18
+ ├─ HTTP traffic (requests, bandwidth, cache) → httpRequestsAdaptiveGroups (zone or account)
19
+ ├─ Workers performance (CPU, wall time, errors) → workersInvocationsAdaptive (account)
20
+ ├─ Firewall/WAF events → firewallEventsAdaptive / firewallEventsAdaptiveGroups (zone or account)
21
+ ├─ DNS query analytics → dnsAnalyticsAdaptive / dnsAnalyticsAdaptiveGroups (zone or account)
22
+ ├─ Network layer (DDoS, Magic Transit) → *NetworkAnalyticsAdaptiveGroups (account)
23
+ ├─ Storage (R2, KV, D1, DO) → r2OperationsAdaptiveGroups / kvOperationsAdaptiveGroups / etc. (account)
24
+ ├─ AI (Workers AI, AI Gateway) → aiInferenceAdaptive / aiGatewayRequestsAdaptiveGroups (account)
25
+ ├─ Load Balancing → loadBalancingRequestsAdaptiveGroups (zone)
26
+ ├─ Custom high-cardinality metrics → Workers Analytics Engine (see ../analytics-engine/)
27
+ └─ Need raw logs, not aggregates → Logpush (see Cloudflare docs)
28
+ ```
29
+
30
+ ## Core Concepts
31
+
32
+ | Concept | Description |
33
+ | --------------------- | ----------------------------------------------------------------------------------------------- |
34
+ | **Endpoint** | `POST https://api.cloudflare.com/client/v4/graphql` |
35
+ | **Explorer** | [graphql.cloudflare.com](https://graphql.cloudflare.com/) - interactive query builder |
36
+ | **Viewer** | Root query object: `viewer { zones(...) { ... } }` or `viewer { accounts(...) { ... } }` |
37
+ | **Dataset (Node)** | A queryable table under a zone or account (e.g., `httpRequestsAdaptiveGroups`) |
38
+ | **Dimensions** | Fields to group by (time buckets, country, status code, script name, etc.) |
39
+ | **Metrics** | Aggregation fields: `count`, `sum { ... }`, `avg { ... }`, `quantiles { ... }`, `ratio { ... }` |
40
+ | **Filter** | Input object constraining results by time range, dimensions, etc. |
41
+ | **Limit** | Maximum rows returned per dataset node (required, max varies by dataset) |
42
+ | **OrderBy** | Enum-based sorting: `[field_ASC]` or `[field_DESC]` |
43
+ | **Adaptive Sampling** | Nodes with `Adaptive` in the name use ABR sampling; results are statistically representative |
44
+
45
+ ## Query Structure
46
+
47
+ Every query follows this pattern:
48
+
49
+ ```graphql
50
+ {
51
+ viewer {
52
+ # Zone-scoped
53
+ zones(filter: { zoneTag: "ZONE_ID" }) {
54
+ datasetName(
55
+ filter: { datetime_gt: "...", datetime_lt: "..." }
56
+ limit: 1000
57
+ orderBy: [datetimeFiveMinutes_DESC]
58
+ ) {
59
+ count
60
+ dimensions { ... }
61
+ sum { ... }
62
+ }
63
+ }
64
+ # Account-scoped
65
+ accounts(filter: { accountTag: "ACCOUNT_ID" }) {
66
+ datasetName(filter: { ... }, limit: 100) {
67
+ count
68
+ dimensions { ... }
69
+ sum { ... }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ ```
75
+
76
+ ## Dataset Naming Convention
77
+
78
+ Dataset names follow a consistent pattern visible in the schema:
79
+
80
+ | Pattern | Meaning | Example |
81
+ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
82
+ | `*Adaptive` | Raw rows with adaptive sampling; some (e.g., `workersInvocationsAdaptive`) also support aggregation fields (`sum`, `quantiles`, `avg`) | `httpRequestsAdaptive`, `workersInvocationsAdaptive` |
83
+ | `*AdaptiveGroups` | Aggregated data with adaptive sampling | `httpRequestsAdaptiveGroups` |
84
+ | `*1hGroups` | Hourly rollups (pre-aggregated) | `httpRequests1hGroups` |
85
+ | `*1dGroups` | Daily rollups (pre-aggregated) | `httpRequests1dGroups` |
86
+ | `*1mGroups` | Minutely rollups | `httpRequests1mGroups` |
87
+ | `Zone*` prefix | Zone-scoped dataset | `ZoneHttpRequestsAdaptiveGroups` |
88
+ | `Account*` prefix | Account-scoped dataset | `AccountWorkersInvocationsAdaptive` |
89
+
90
+ **Prefer `*AdaptiveGroups` nodes** for most use cases - they support flexible time grouping via dimension fields (`datetimeFiveMinutes`, `datetimeHour`, etc.) and are the most commonly used.
91
+
92
+ ## Key Datasets by Product
93
+
94
+ ### Zone-Scoped (per-domain)
95
+
96
+ | Dataset | Description |
97
+ | ------------------------------------------------ | ------------------------------------------------------------------- |
98
+ | `httpRequestsAdaptiveGroups` | HTTP traffic: requests, bytes, cache status, bot scores, WAF scores |
99
+ | `httpRequests1hGroups` / `1dGroups` / `1mGroups` | Pre-aggregated HTTP rollups (hourly/daily/minutely) |
100
+ | `firewallEventsAdaptiveGroups` | WAF, rate limiting, bot management, firewall rule events |
101
+ | `dnsAnalyticsAdaptiveGroups` | DNS query volumes, response codes, query types |
102
+ | `loadBalancingRequestsAdaptiveGroups` | Load Balancer origin request metrics |
103
+ | `pageShieldReportsAdaptiveGroups` | Page Shield CSP reports |
104
+
105
+ ### Account-Scoped (cross-domain)
106
+
107
+ | Dataset | Description |
108
+ | -------------------------------------------------------------- | ----------------------------------------------------------- |
109
+ | `workersInvocationsAdaptive` | Workers: requests, errors, CPU time, wall time, subrequests |
110
+ | `durableObjectsInvocationsAdaptiveGroups` | DO invocations |
111
+ | `durableObjectsStorageGroups` / `durableObjectsPeriodicGroups` | DO storage and periodic metrics |
112
+ | `d1AnalyticsAdaptiveGroups` / `d1QueriesAdaptiveGroups` | D1 database analytics |
113
+ | `r2OperationsAdaptiveGroups` / `r2StorageAdaptiveGroups` | R2 operations and storage |
114
+ | `kvOperationsAdaptiveGroups` / `kvStorageAdaptiveGroups` | KV operations and storage |
115
+ | `aiInferenceAdaptiveGroups` | Workers AI inference metrics |
116
+ | `aiGatewayRequestsAdaptiveGroups` | AI Gateway request analytics |
117
+ | `pagesFunctionsInvocationsAdaptiveGroups` | Pages Functions metrics |
118
+ | `magicTransitNetworkAnalyticsAdaptiveGroups` | Magic Transit packet/byte analytics |
119
+ | `spectrumNetworkAnalyticsAdaptiveGroups` | Spectrum TCP/UDP analytics |
120
+ | `gatewayL7RequestsAdaptiveGroups` | Zero Trust Gateway HTTP metrics |
121
+ | `gatewayResolverQueriesAdaptiveGroups` | Zero Trust Gateway DNS metrics |
122
+
123
+ ## Reading Order
124
+
125
+ | Task | Start Here | Then Read |
126
+ | ---------------------------- | ---------------------------------------------------------------------- | --------------------------------------- |
127
+ | **First query** | [configuration.md](configuration.md) (auth) -> this README (structure) | [api.md](api.md) |
128
+ | **Build a dashboard** | [patterns.md](patterns.md) (time-series, top-N) | [api.md](api.md) (aggregation fields) |
129
+ | **Debug query issues** | [gotchas.md](gotchas.md) | [api.md](api.md) (filtering) |
130
+ | **Understand sampling** | [gotchas.md](gotchas.md) (sampling section) | [api.md](api.md) (confidence intervals) |
131
+ | **Product-specific metrics** | [patterns.md](patterns.md) (per-product examples) | [api.md](api.md) (dataset reference) |
132
+
133
+ ## In This Reference
134
+
135
+ - **[api.md](api.md)** - Query structure, aggregation fields (sum/avg/quantiles/count), filtering operators, dimensions, dataset details
136
+ - **[configuration.md](configuration.md)** - Authentication, API tokens, client setup (curl, JS, Python), introspection
137
+ - **[patterns.md](patterns.md)** - Common queries: time-series, top-N, Workers metrics, HTTP analytics, firewall events, multi-zone
138
+ - **[gotchas.md](gotchas.md)** - Rate limits, sampling caveats, query cost, common errors, plan-based limits
139
+
140
+ ## See Also
141
+
142
+ - [GraphQL Analytics API Docs](https://developers.cloudflare.com/analytics/graphql-api/)
143
+ - [GraphQL API Explorer](https://graphql.cloudflare.com/)
144
+ - [Observability Reference](../observability/) - Workers Logs, Tail Workers, console logging
145
+ - [Analytics Engine Reference](../analytics-engine/) - Custom high-cardinality analytics via Workers
146
+ - [Web Analytics Reference](../web-analytics/) - Client-side (RUM) analytics
147
+ - [API Reference](../api/) - REST API, SDKs, authentication basics
@@ -0,0 +1,175 @@
1
+ # GraphQL Analytics API Reference
2
+
3
+ ## Query Root
4
+
5
+ The schema has a single entry point: `Query.viewer`. Mutations are not supported.
6
+
7
+ ```graphql
8
+ {
9
+ cost # uint64 -- query cost (returned in response)
10
+ viewer {
11
+ budget # uint64 -- remaining budget
12
+ zones(filter: { zoneTag: "..." }) { ... }
13
+ accounts(filter: { accountTag: "..." }) { ... }
14
+ }
15
+ }
16
+ ```
17
+
18
+ ## Aggregation Fields
19
+
20
+ Aggregated dataset nodes (`*Groups`) return these field categories. Not every node has all — use introspection to check.
21
+
22
+ ### count
23
+
24
+ Total events in the group. Available on `*Groups` nodes but **not** on raw `*Adaptive` nodes (e.g., `workersInvocationsAdaptive` — use `sum { requests }` instead).
25
+
26
+ ### sum
27
+
28
+ Cumulative metrics. Fields vary by dataset:
29
+
30
+ ```graphql
31
+ # HTTP requests
32
+ sum { edgeResponseBytes edgeRequestBytes visits edgeTimeToFirstByteMs originResponseDurationMs }
33
+
34
+ # Workers invocations
35
+ sum { requests errors subrequests cpuTimeUs wallTime duration responseBodySize clientDisconnects requestDuration }
36
+ ```
37
+
38
+ ### quantiles
39
+
40
+ Percentile distributions (on datasets like `workersInvocationsAdaptive`). Available percentiles: P25, P50, P75, P90, P95, P99, P999 for `cpuTime`, `wallTime`, `requestDuration`, `duration`, `responseBodySize`.
41
+
42
+ ```graphql
43
+ quantiles { cpuTimeP50 cpuTimeP99 wallTimeP50 wallTimeP99 }
44
+ ```
45
+
46
+ ### ratio, avg, uniq, confidence
47
+
48
+ ```graphql
49
+ ratio { status4xx status5xx } # float64 (0 to 1) -- HTTP datasets only
50
+ avg { sampleInterval } # useful for understanding sampling resolution
51
+ uniq { uniques } # unique IP count -- rollup datasets (*1hGroups, *1dGroups) only
52
+ confidence(level: 0.95) { # Adaptive datasets only; works on count and sum fields
53
+ count { estimate lower upper sampleSize }
54
+ }
55
+ ```
56
+
57
+ ## Dimensions
58
+
59
+ Dimensions are fields you can group by via the `dimensions` sub-selection.
60
+
61
+ ### Time Dimensions
62
+
63
+ | Dimension | Granularity |
64
+ | ------------------------ | --------------- |
65
+ | `date` | Day |
66
+ | `datetime` | Exact timestamp |
67
+ | `datetimeMinute` | 1 minute |
68
+ | `datetimeFiveMinutes` | 5 minutes |
69
+ | `datetimeFifteenMinutes` | 15 minutes |
70
+ | `datetimeHour` | 1 hour |
71
+
72
+ Workers datasets also support `datetimeSixHours`.
73
+
74
+ ### HTTP Request Dimensions (httpRequestsAdaptiveGroups)
75
+
76
+ 83 dimensions available. Key ones:
77
+
78
+ | Dimension | Description |
79
+ | ------------------------------------ | --------------------------------------- |
80
+ | `clientCountryName` | Country of origin |
81
+ | `clientRequestHTTPHost` | Requested hostname |
82
+ | `clientRequestHTTPMethodName` | HTTP method |
83
+ | `clientRequestPath` | URI path |
84
+ | `edgeResponseStatus` | Edge HTTP status code |
85
+ | `cacheStatus` | Cache status (hit, miss, dynamic, etc.) |
86
+ | `coloCode` | Cloudflare datacenter IATA code |
87
+ | `clientIP` / `clientAsn` | Client IP address / ASN |
88
+ | `botScore` / `botManagementDecision` | Bot management score (0-99) / verdict |
89
+ | `wafAttackScore` / `securityAction` | WAF score / firewall action taken |
90
+ | `ja3Hash` / `ja4` | TLS fingerprints |
91
+ | `sampleInterval` | ABR sample interval |
92
+
93
+ ### Workers Dimensions (workersInvocationsAdaptive)
94
+
95
+ `scriptName`, `scriptTag`, `scriptVersion`, `environmentName`, `status`, `usageModel`, `coloCode`, `dispatchNamespaceName`, `isDispatcher`
96
+
97
+ ### Firewall Dimensions (firewallEventsAdaptive)
98
+
99
+ `action`, `source`, `ruleId`, `clientCountryName`, `clientIP`, `clientAsn`, `userAgent`
100
+
101
+ ## Filtering
102
+
103
+ ### Scope Filters
104
+
105
+ ```graphql
106
+ zones(filter: { zoneTag: "ZONE_ID" }) # up to 10 zones
107
+ zones(filter: { zoneTag_in: ["Z1", "Z2"] })
108
+ accounts(filter: { accountTag: "ACCOUNT_ID" }) # exactly 1 account
109
+ ```
110
+
111
+ ### Dataset Filters
112
+
113
+ **Always include a time range filter.** Multiple filters at the same level are implicitly AND-ed.
114
+
115
+ ```graphql
116
+ httpRequestsAdaptiveGroups(
117
+ filter: { datetime_gt: "2025-01-01T00:00:00Z", datetime_lt: "2025-01-02T00:00:00Z", clientCountryName: "US" }
118
+ limit: 1000
119
+ )
120
+ ```
121
+
122
+ ### Filter Operators
123
+
124
+ | Operator | Meaning | Example |
125
+ | ------------------------------ | --------------------- | ------------------------------------ |
126
+ | (none) | equals | `clientCountryName: "US"` |
127
+ | `_gt` / `_lt` | greater / less than | `datetime_gt: "..."` |
128
+ | `_geq` / `_leq` | greater/less or equal | `datetime_geq: "..."` |
129
+ | `_neq` | not equal | `cacheStatus_neq: "hit"` |
130
+ | `_in` / `_notin` | in / not in list | `clientCountryName_in: ["US", "GB"]` |
131
+ | `_like` / `_notlike` | SQL LIKE with `%` | `clientRequestPath_like: "/api/%"` |
132
+ | `_has` / `_hasall` / `_hasany` | array contains | `botDetectionIds_has: "abc"` |
133
+
134
+ > `_notin` and `_notlike` are in the schema but not in official docs. Confirmed via introspection.
135
+
136
+ ### Boolean Operators (AND / OR)
137
+
138
+ ```graphql
139
+ # Explicit AND
140
+ filter: { AND: [{ datetime_gt: "..." }, { datetime_lt: "..." }, { clientCountryName: "US" }] }
141
+
142
+ # Explicit OR
143
+ filter: { datetime_gt: "...", OR: [{ edgeResponseStatus: 403 }, { edgeResponseStatus: 429 }] }
144
+ ```
145
+
146
+ ## Pagination & Sorting
147
+
148
+ No cursor-based pagination. Use `limit`, `orderBy`, and filter-based offsets:
149
+
150
+ ```graphql
151
+ # First page
152
+ httpRequestsAdaptiveGroups(filter: { datetime_gt: "..." }, limit: 100, orderBy: [datetime_ASC])
153
+
154
+ # Next page: filter by last seen value from previous page
155
+ httpRequestsAdaptiveGroups(filter: { datetime_gt: "2025-01-01T01:35:00Z" }, limit: 100, orderBy: [datetime_ASC])
156
+ ```
157
+
158
+ Sort with `orderBy: [field_ASC]` or `[field_DESC]`. Multiple sort fields supported.
159
+
160
+ ## Settings Node
161
+
162
+ Query per-node limits and availability:
163
+
164
+ ```graphql
165
+ viewer { zones(filter: { zoneTag: "..." }) { settings {
166
+ httpRequestsAdaptiveGroups { enabled maxDuration maxNumberOfFields maxPageSize notOlderThan }
167
+ } } }
168
+ ```
169
+
170
+ ## See Also
171
+
172
+ - [README.md](README.md) - Overview, decision tree, dataset index
173
+ - [configuration.md](configuration.md) - Authentication, client setup, introspection queries
174
+ - [patterns.md](patterns.md) - Common query patterns (time-series, top-N, per-product)
175
+ - [gotchas.md](gotchas.md) - Rate limits, sampling, troubleshooting
@@ -0,0 +1,151 @@
1
+ # GraphQL Analytics API Configuration
2
+
3
+ ## Authentication
4
+
5
+ ### API Token (Recommended)
6
+
7
+ | Permission | Scope | Use Case |
8
+ | ------------------------------- | ------------ | ---------------------------------------------- |
9
+ | **Account Analytics: Read** | Account-wide | Workers, R2, KV, D1, DO, AI, Network Analytics |
10
+ | **Zone Analytics: Read** | Per-zone | HTTP requests, Firewall, DNS, Load Balancing |
11
+ | **All zones - Analytics: Read** | All zones | Multi-zone HTTP/Firewall/DNS queries |
12
+
13
+ Create tokens at: [dash.cloudflare.com > Account API Tokens](https://dash.cloudflare.com/?to=/:account/api-tokens)
14
+
15
+ ```bash
16
+ # Verify token
17
+ curl -s https://api.cloudflare.com/client/v4/graphql \
18
+ -H "Authorization: Bearer $CF_API_TOKEN" \
19
+ -H "Content-Type: application/json" \
20
+ --data '{"query":"{ viewer { zones(filter: {zoneTag: \"ZONE_ID\"}) { httpRequestsAdaptiveGroups(limit: 1, filter: {datetime_gt: \"2025-01-01T00:00:00Z\"}) { count } } } }"}'
21
+ ```
22
+
23
+ ### API Key + Email (Legacy)
24
+
25
+ Not recommended. Use `X-Auth-Email` + `X-Auth-Key` headers instead of `Authorization: Bearer`.
26
+
27
+ ## Client Setup
28
+
29
+ ### curl
30
+
31
+ ```bash
32
+ curl -s https://api.cloudflare.com/client/v4/graphql \
33
+ -H "Authorization: Bearer $CF_API_TOKEN" \
34
+ -H "Content-Type: application/json" \
35
+ --data '{
36
+ "query": "query($zoneTag: string!, $start: Time!, $end: Time!) { viewer { zones(filter: {zoneTag: $zoneTag}) { httpRequestsAdaptiveGroups(filter: {datetime_gt: $start, datetime_lt: $end}, limit: 10, orderBy: [datetimeFiveMinutes_DESC]) { count dimensions { datetimeFiveMinutes } } } } }",
37
+ "variables": { "zoneTag": "ZONE_ID", "start": "2025-01-01T00:00:00Z", "end": "2025-01-02T00:00:00Z" }
38
+ }' | jq .
39
+ ```
40
+
41
+ ### TypeScript / JavaScript
42
+
43
+ ```typescript
44
+ const GRAPHQL_ENDPOINT = 'https://api.cloudflare.com/client/v4/graphql'
45
+
46
+ async function queryGraphQL<T>(query: string, variables: Record<string, unknown> = {}): Promise<T> {
47
+ const response = await fetch(GRAPHQL_ENDPOINT, {
48
+ method: 'POST',
49
+ headers: {
50
+ Authorization: `Bearer ${process.env.CF_API_TOKEN}`,
51
+ 'Content-Type': 'application/json',
52
+ },
53
+ body: JSON.stringify({ query, variables }),
54
+ })
55
+ if (!response.ok) throw new Error(`HTTP ${response.status}: ${response.statusText}`)
56
+ const json = (await response.json()) as { data: T | null; errors?: { message: string }[] }
57
+ if (json.errors?.length) throw new Error(json.errors.map((e) => e.message).join('; '))
58
+ return json.data!
59
+ }
60
+ ```
61
+
62
+ ### Python
63
+
64
+ ```python
65
+ import requests, os
66
+
67
+ def query_graphql(query: str, variables: dict = None) -> dict:
68
+ r = requests.post("https://api.cloudflare.com/client/v4/graphql",
69
+ headers={"Authorization": f"Bearer {os.environ['CF_API_TOKEN']}", "Content-Type": "application/json"},
70
+ json={"query": query, "variables": variables or {}})
71
+ r.raise_for_status()
72
+ result = r.json()
73
+ if result.get("errors"):
74
+ raise Exception("; ".join(e["message"] for e in result["errors"]))
75
+ return result["data"]
76
+ ```
77
+
78
+ ### From a Cloudflare Worker
79
+
80
+ Store the API token as a secret (`CF_API_TOKEN`). Use standard `fetch` to POST to `https://api.cloudflare.com/client/v4/graphql` with the same JSON body format as above. Always check `response.errors` — GraphQL returns 200 even on query failures.
81
+
82
+ ## GraphQL API Explorer
83
+
84
+ Interactive explorer at [graphql.cloudflare.com](https://graphql.cloudflare.com/) — provides schema docs, autocomplete, variable panel, and shareable queries. Authenticates via your Cloudflare dashboard session.
85
+
86
+ ## Schema Introspection
87
+
88
+ ```graphql
89
+ # List zone-scoped datasets
90
+ {
91
+ __type(name: "zone") {
92
+ fields {
93
+ name
94
+ description
95
+ }
96
+ }
97
+ }
98
+
99
+ # List account-scoped datasets
100
+ {
101
+ __type(name: "account") {
102
+ fields {
103
+ name
104
+ description
105
+ }
106
+ }
107
+ }
108
+
109
+ # Discover dimensions for a dataset
110
+ {
111
+ __type(name: "ZoneHttpRequestsAdaptiveGroupsDimensions") {
112
+ fields {
113
+ name
114
+ type {
115
+ name
116
+ kind
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ # Discover filter operators for a dataset
123
+ {
124
+ __type(name: "ZoneHttpRequestsAdaptiveGroupsFilter_InputObject") {
125
+ inputFields {
126
+ name
127
+ type {
128
+ name
129
+ kind
130
+ }
131
+ }
132
+ }
133
+ }
134
+ ```
135
+
136
+ ## Finding Your Zone and Account IDs
137
+
138
+ - **Zone ID**: Dashboard > select zone > Overview (right sidebar), or via API
139
+ - **Account ID**: Dashboard > Account Home URL, or via API
140
+
141
+ ```bash
142
+ curl -s https://api.cloudflare.com/client/v4/zones -H "Authorization: Bearer $CF_API_TOKEN" | jq '.result[] | {name, id}'
143
+ curl -s https://api.cloudflare.com/client/v4/accounts -H "Authorization: Bearer $CF_API_TOKEN" | jq '.result[] | {name, id}'
144
+ ```
145
+
146
+ ## See Also
147
+
148
+ - [README.md](README.md) - Overview, decision tree, dataset index
149
+ - [api.md](api.md) - Query structure, aggregation fields, filtering operators
150
+ - [patterns.md](patterns.md) - Common query patterns (time-series, top-N, per-product)
151
+ - [gotchas.md](gotchas.md) - Rate limits, sampling, troubleshooting