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,111 @@
1
+ # GraphQL Analytics API Gotchas & Troubleshooting
2
+
3
+ ## Rate Limits
4
+
5
+ | Limit | Value |
6
+ | ------------------------ | --------------------------------------------------------- |
7
+ | GraphQL queries per user | **Default 300 per 5 minutes** (max 320, at least 1/sec) |
8
+ | General API rate limit | 1200 requests per 5 minutes (shared across all API calls) |
9
+ | Zone scope per query | Up to **10 zones** |
10
+ | Account scope per query | Exactly **1 account** |
11
+
12
+ The GraphQL rate limit is separate from the general API limit. Exceeding either results in `HTTP 429` and blocks all API calls for 5 minutes. Enterprise customers can contact support to raise limits.
13
+
14
+ ### "429 Too Many Requests"
15
+
16
+ **Cause:** Exceeded rate limit.
17
+
18
+ **Solution:** Batch multiple datasets into single queries, cache results, increase intervals between queries. Use `{ viewer { budget } }` to monitor remaining budget.
19
+
20
+ ## Sampling & Data Accuracy
21
+
22
+ ### Adaptive Bit Rate (ABR) Sampling
23
+
24
+ Datasets with `Adaptive` in the name use adaptive sampling:
25
+
26
+ - Results are **statistically representative**, not exact
27
+ - Same query may return **slightly different numbers** each run
28
+ - Higher traffic = higher sampling rate = more accurate
29
+ - `sampleInterval` dimension shows the ratio (1 = no sampling, 10 = ~1-in-10 sampled)
30
+
31
+ For high-confidence numbers, use `confidence(level: 0.95)` to get estimate bounds. For exact counts, use rollup nodes (`httpRequests1hGroups`, `httpRequests1dGroups`) which are pre-aggregated without sampling.
32
+
33
+ ### Rollup vs. Adaptive
34
+
35
+ | Feature | Rollup (`*1hGroups`, `*1dGroups`) | Adaptive (`*AdaptiveGroups`) |
36
+ | ----------- | --------------------------------- | ---------------------------- |
37
+ | Sampling | No (pre-aggregated) | Yes (ABR) |
38
+ | Flexibility | Fixed time buckets | Any granularity |
39
+ | Dimensions | Fewer | Many more |
40
+ | Accuracy | Exact | Statistical estimate |
41
+
42
+ ## Common Errors
43
+
44
+ ### "Access denied" / "authentication error"
45
+
46
+ **Cause:** Token lacks required permission or wrong scope.
47
+
48
+ **Solution:** Account-scoped queries need **Account Analytics: Read**. Zone-scoped queries need **Zone Analytics: Read**. Verify: `curl -s https://api.cloudflare.com/client/v4/user/tokens/verify -H "Authorization: Bearer $TOKEN"`
49
+
50
+ ### "field not found" / "Cannot query field"
51
+
52
+ **Cause:** Wrong dataset name, nonexistent field, or wrong scope (zone vs. account).
53
+
54
+ **Solution:** Names are case-sensitive camelCase (`httpRequestsAdaptiveGroups`). Zone datasets go under `zones(...)`, account datasets under `accounts(...)`. Use introspection to verify.
55
+
56
+ ### "filter is required" / empty results
57
+
58
+ **Cause:** Missing required time range filter or incorrect zone/account tag.
59
+
60
+ **Solution:** Always include `datetime_gt` / `datetime_lt` (or `_geq` / `_leq`).
61
+
62
+ ### "limit is required" / "limit exceeds maximum"
63
+
64
+ **Cause:** Missing `limit` or exceeding node's max page size.
65
+
66
+ **Solution:** Always specify `limit`. Max varies by dataset (typically 10,000 for groups, 100 for raw events). Check via settings query.
67
+
68
+ ### "query is too complex" / "query exceeds budget"
69
+
70
+ **Cause:** Too many fields, datasets, or too broad a time range.
71
+
72
+ **Solution:** Reduce time range, request fewer dimensions/metrics, break into smaller queries. Monitor `cost` and `budget` in responses.
73
+
74
+ ### 200 Response with Errors
75
+
76
+ GraphQL returns HTTP 200 even on failures. **Always check `response.errors`:**
77
+
78
+ ```json
79
+ { "data": null, "errors": [{ "message": "filter is required for httpRequestsAdaptiveGroups" }] }
80
+ ```
81
+
82
+ ## Plan-Based Availability
83
+
84
+ Not all datasets are available on all plans. Higher plans get more datasets, longer retention (`notOlderThan`), wider time ranges (`maxDuration`), more fields, and larger page sizes.
85
+
86
+ ### "node is not available" / "node is disabled"
87
+
88
+ **Cause:** Dataset not on your plan, or product not enabled.
89
+
90
+ **Solution:** Check `settings { <nodeName> { enabled } }`. Some datasets require specific subscriptions (e.g., Network Analytics requires Magic Transit/Spectrum).
91
+
92
+ ## DateTime & Timezone Handling
93
+
94
+ - All times are **UTC only** (ISO 8601: `"2025-01-15T10:30:00Z"`)
95
+ - `Date` type: `"2025-01-15"` (used in `date_geq`/`date_leq` for storage datasets)
96
+ - `Time` type: `"2025-01-15T10:30:00Z"` (used in `datetime_gt`/`datetime_lt`)
97
+ - Filters are start-inclusive: events that start within the window are included
98
+
99
+ ## Performance Tips
100
+
101
+ - **Narrow time ranges** are faster and cheaper
102
+ - **Select only needed dimensions** — each additional dimension increases cost
103
+ - **Use rollup nodes** (`*1dGroups`) for simple daily totals without dimension breakdowns
104
+ - **Batch datasets** into one query instead of separate HTTP requests
105
+
106
+ ## See Also
107
+
108
+ - [README.md](README.md) - Overview, decision tree, dataset index
109
+ - [api.md](api.md) - Query structure, aggregation fields, filtering operators
110
+ - [configuration.md](configuration.md) - Authentication, client setup, introspection queries
111
+ - [patterns.md](patterns.md) - Common query patterns (time-series, top-N, per-product)
@@ -0,0 +1,276 @@
1
+ # GraphQL Analytics API Patterns & Best Practices
2
+
3
+ ## Time-Series Queries
4
+
5
+ Use time dimension granularity matching your range (see Best Practices below).
6
+
7
+ ```graphql
8
+ query TrafficTimeSeries($zoneTag: string!, $start: Time!, $end: Time!) {
9
+ viewer {
10
+ zones(filter: { zoneTag: $zoneTag }) {
11
+ httpRequestsAdaptiveGroups(
12
+ filter: { datetime_gt: $start, datetime_lt: $end }
13
+ limit: 1000
14
+ orderBy: [datetimeFiveMinutes_ASC] # or datetimeHour_ASC for longer ranges
15
+ ) {
16
+ count
17
+ dimensions {
18
+ datetimeFiveMinutes
19
+ }
20
+ sum {
21
+ edgeResponseBytes
22
+ }
23
+ ratio {
24
+ status4xx
25
+ status5xx
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }
31
+ ```
32
+
33
+ ## Top-N Queries
34
+
35
+ ### Top Countries by Request Count
36
+
37
+ ```graphql
38
+ query TopCountries($zoneTag: string!, $start: Time!, $end: Time!) {
39
+ viewer {
40
+ zones(filter: { zoneTag: $zoneTag }) {
41
+ httpRequestsAdaptiveGroups(
42
+ filter: { datetime_gt: $start, datetime_lt: $end }
43
+ limit: 10
44
+ orderBy: [count_DESC]
45
+ ) {
46
+ count
47
+ dimensions {
48
+ clientCountryName
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ Use `orderBy: [sum_edgeResponseBytes_DESC]` for top paths by bandwidth. Add `edgeResponseStatus_geq: 400` to the filter for top error status codes.
57
+
58
+ ## Workers Analytics
59
+
60
+ ```graphql
61
+ query WorkersOverview($accountTag: string!, $start: Time!, $end: Time!) {
62
+ viewer {
63
+ accounts(filter: { accountTag: $accountTag }) {
64
+ workersInvocationsAdaptive(
65
+ filter: { datetime_gt: $start, datetime_lt: $end }
66
+ limit: 100
67
+ orderBy: [sum_requests_DESC]
68
+ ) {
69
+ sum {
70
+ requests
71
+ errors
72
+ subrequests
73
+ wallTime
74
+ }
75
+ quantiles {
76
+ cpuTimeP50
77
+ cpuTimeP99
78
+ wallTimeP50
79
+ wallTimeP99
80
+ }
81
+ dimensions {
82
+ scriptName
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ ```
89
+
90
+ Filter by `scriptName` for a specific Worker. Add `datetimeFiveMinutes` dimension + `orderBy: [datetimeFiveMinutes_ASC]` for error rate over time.
91
+
92
+ ## Firewall / Security
93
+
94
+ ```graphql
95
+ query RecentFirewallEvents($zoneTag: string!, $start: Time!) {
96
+ viewer {
97
+ zones(filter: { zoneTag: $zoneTag }) {
98
+ firewallEventsAdaptive(filter: { datetime_gt: $start }, limit: 50, orderBy: [datetime_DESC]) {
99
+ action
100
+ source
101
+ clientIP
102
+ clientCountryName
103
+ userAgent
104
+ clientRequestHTTPHost
105
+ clientRequestPath
106
+ ruleId
107
+ datetime
108
+ }
109
+ }
110
+ }
111
+ }
112
+ ```
113
+
114
+ For aggregated firewall stats, use `firewallEventsAdaptiveGroups` with `action: "block"` filter and group by `ruleId`, `source`, `datetimeHour`.
115
+
116
+ ## DNS Analytics
117
+
118
+ ```graphql
119
+ query DNSQueryVolume($zoneTag: string!, $start: Time!, $end: Time!) {
120
+ viewer {
121
+ zones(filter: { zoneTag: $zoneTag }) {
122
+ dnsAnalyticsAdaptiveGroups(
123
+ filter: { datetime_gt: $start, datetime_lt: $end }
124
+ limit: 500
125
+ orderBy: [datetimeFiveMinutes_ASC]
126
+ ) {
127
+ count
128
+ dimensions {
129
+ datetimeFiveMinutes
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ ```
136
+
137
+ ## Storage Analytics (Account-Scoped)
138
+
139
+ R2, KV, and D1 use `date` (Date type) filters instead of `datetime` (Time type).
140
+
141
+ ```graphql
142
+ # R2 operations
143
+ r2OperationsAdaptiveGroups(filter: { date_geq: $start, date_leq: $end }, limit: 100, orderBy: [date_DESC]) {
144
+ dimensions { date bucketName actionType }
145
+ sum { requests }
146
+ }
147
+
148
+ # KV operations
149
+ kvOperationsAdaptiveGroups(filter: { date_geq: $start, date_leq: $end }, limit: 100, orderBy: [date_DESC]) {
150
+ dimensions { date actionType }
151
+ sum { requests }
152
+ }
153
+
154
+ # D1 analytics
155
+ d1AnalyticsAdaptiveGroups(filter: { date_geq: $start, date_leq: $end }, limit: 100, orderBy: [date_DESC]) {
156
+ dimensions { date databaseId }
157
+ sum { readQueries writeQueries rowsRead rowsWritten }
158
+ }
159
+ ```
160
+
161
+ ## Cache Analytics
162
+
163
+ ```graphql
164
+ query CacheStatusBreakdown($zoneTag: string!, $start: Time!, $end: Time!) {
165
+ viewer {
166
+ zones(filter: { zoneTag: $zoneTag }) {
167
+ httpRequestsAdaptiveGroups(
168
+ filter: { datetime_gt: $start, datetime_lt: $end }
169
+ limit: 20
170
+ orderBy: [count_DESC]
171
+ ) {
172
+ count
173
+ dimensions {
174
+ cacheStatus
175
+ }
176
+ sum {
177
+ edgeResponseBytes
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ ```
184
+
185
+ For cache hit ratio over time, use aliases to query the same dataset twice — once with `cacheStatus: "hit"` filter and once without — then compute the ratio client-side.
186
+
187
+ ## Multi-Dataset Queries
188
+
189
+ A single request can query multiple datasets, avoiding extra HTTP round-trips:
190
+
191
+ ```graphql
192
+ query DashboardOverview($zoneTag: string!, $start: Time!, $end: Time!) {
193
+ viewer {
194
+ zones(filter: { zoneTag: $zoneTag }) {
195
+ httpTraffic: httpRequestsAdaptiveGroups(
196
+ filter: { datetime_gt: $start, datetime_lt: $end }
197
+ limit: 1
198
+ ) {
199
+ count
200
+ sum {
201
+ edgeResponseBytes
202
+ }
203
+ ratio {
204
+ status4xx
205
+ status5xx
206
+ }
207
+ }
208
+ firewallEvents: firewallEventsAdaptiveGroups(
209
+ filter: { datetime_gt: $start, datetime_lt: $end }
210
+ limit: 5
211
+ orderBy: [count_DESC]
212
+ ) {
213
+ count
214
+ dimensions {
215
+ action
216
+ source
217
+ }
218
+ }
219
+ dnsQueries: dnsAnalyticsAdaptiveGroups(
220
+ filter: { datetime_gt: $start, datetime_lt: $end }
221
+ limit: 1
222
+ ) {
223
+ count
224
+ }
225
+ }
226
+ }
227
+ }
228
+ ```
229
+
230
+ ## AI & Gateway Analytics
231
+
232
+ ```graphql
233
+ # Workers AI inference
234
+ aiInferenceAdaptiveGroups(
235
+ filter: { datetime_gt: $start, datetime_lt: $end }, limit: 100, orderBy: [datetimeHour_DESC]
236
+ ) {
237
+ count
238
+ sum { totalInputTokens totalOutputTokens totalRequestBytesIn }
239
+ dimensions { modelId datetimeHour }
240
+ }
241
+
242
+ # AI Gateway requests
243
+ aiGatewayRequestsAdaptiveGroups(
244
+ filter: { datetime_gt: $start, datetime_lt: $end }, limit: 100, orderBy: [datetimeHour_DESC]
245
+ ) {
246
+ count
247
+ dimensions { gateway provider model datetimeHour }
248
+ sum { cachedTokensIn cachedTokensOut uncachedTokensIn uncachedTokensOut }
249
+ }
250
+ ```
251
+
252
+ Both are account-scoped — nest under `accounts(filter: { accountTag: $accountTag })`.
253
+
254
+ ## Best Practices
255
+
256
+ **Always include time filters.** Queries without time filters scan all data and are slow/expensive.
257
+
258
+ **Match time granularity to range:**
259
+
260
+ | Time Range | Recommended Dimension |
261
+ | ---------- | ------------------------------------------------- |
262
+ | < 6 hours | `datetimeMinute` or `datetimeFiveMinutes` |
263
+ | 6-48 hours | `datetimeFiveMinutes` or `datetimeFifteenMinutes` |
264
+ | 2-14 days | `datetimeHour` |
265
+ | 14+ days | `date` |
266
+
267
+ **Use aliases** for querying the same dataset with different filters in one request.
268
+
269
+ **Request only needed fields.** Extra dimensions and metrics increase query cost.
270
+
271
+ ## See Also
272
+
273
+ - [README.md](README.md) - Overview, decision tree, dataset index
274
+ - [api.md](api.md) - Query structure, aggregation fields, filtering operators
275
+ - [configuration.md](configuration.md) - Authentication, client setup, introspection queries
276
+ - [gotchas.md](gotchas.md) - Rate limits, sampling, troubleshooting
@@ -0,0 +1,84 @@
1
+ # Hyperdrive
2
+
3
+ Accelerates database queries from Workers via connection pooling, edge setup, query caching.
4
+
5
+ ## Key Features
6
+
7
+ - **Connection Pooling**: Persistent connections eliminate TCP/TLS/auth handshakes (~7 round-trips)
8
+ - **Edge Setup**: Connection negotiation at edge, pooling near origin
9
+ - **Query Caching**: Auto-cache non-mutating queries (default 60s TTL)
10
+ - **Support**: PostgreSQL, MySQL + compatibles (CockroachDB, Timescale, PlanetScale, Neon, Supabase)
11
+
12
+ ## Architecture
13
+
14
+ ```
15
+ Worker → Edge (setup) → Pool (near DB) → Origin
16
+ ↓ cached reads
17
+ Cache
18
+ ```
19
+
20
+ ## Quick Start
21
+
22
+ ```bash
23
+ # Create config
24
+ npx wrangler hyperdrive create my-db \
25
+ --connection-string="postgres://user:pass@host:5432/db"
26
+
27
+ # wrangler.jsonc
28
+ {
29
+ "compatibility_flags": ["nodejs_compat"],
30
+ "hyperdrive": [{"binding": "HYPERDRIVE", "id": "<ID>"}]
31
+ }
32
+ ```
33
+
34
+ ```typescript
35
+ import { Client } from 'pg'
36
+
37
+ export default {
38
+ async fetch(req: Request, env: Env): Promise<Response> {
39
+ const client = new Client({
40
+ connectionString: env.HYPERDRIVE.connectionString,
41
+ })
42
+ await client.connect()
43
+ const result = await client.query('SELECT * FROM users WHERE id = $1', [123])
44
+ await client.end()
45
+ return Response.json(result.rows)
46
+ },
47
+ }
48
+ ```
49
+
50
+ ## When to Use
51
+
52
+ ✅ Global access to single-region DBs, high read ratios, popular queries, connection-heavy loads
53
+ ❌ Write-heavy, real-time data (<1s), single-region apps close to DB
54
+
55
+ **💡 Pair with Smart Placement** for Workers making multiple queries - executes near DB to minimize latency.
56
+
57
+ ## Driver Choice
58
+
59
+ | Driver | Use When | Notes |
60
+ | -------------------- | ------------------------------------------------ | ------------------------------------------- |
61
+ | **pg** (recommended) | General use, TypeScript, ecosystem compatibility | Stable, widely used, works with most ORMs |
62
+ | **postgres.js** | Advanced features, template literals, streaming | Lighter than pg, `prepare: true` is default |
63
+ | **mysql2** | MySQL/MariaDB/PlanetScale | MySQL only, less mature support |
64
+
65
+ ## Reading Order
66
+
67
+ | New to Hyperdrive | Implementing | Troubleshooting |
68
+ | ----------------------------------------- | ----------------------------------------- | ------------------------------- |
69
+ | 1. README (this) | 1. [configuration.md](./configuration.md) | 1. [gotchas.md](./gotchas.md) |
70
+ | 2. [configuration.md](./configuration.md) | 2. [api.md](./api.md) | 2. [patterns.md](./patterns.md) |
71
+ | 3. [api.md](./api.md) | 3. [patterns.md](./patterns.md) | 3. [api.md](./api.md) |
72
+
73
+ ## In This Reference
74
+
75
+ - [configuration.md](./configuration.md) - Setup, wrangler config, Smart Placement
76
+ - [api.md](./api.md) - Binding APIs, query patterns, driver usage
77
+ - [patterns.md](./patterns.md) - Use cases, ORMs, multi-query optimization
78
+ - [gotchas.md](./gotchas.md) - Limits, troubleshooting, connection management
79
+
80
+ ## See Also
81
+
82
+ - [smart-placement](../smart-placement/) - Optimize multi-query Workers near databases
83
+ - [d1](../d1/) - Serverless SQLite alternative for edge-native apps
84
+ - [workers](../workers/) - Worker runtime with database bindings
@@ -0,0 +1,149 @@
1
+ # API Reference
2
+
3
+ See [README.md](./README.md) for overview, [configuration.md](./configuration.md) for setup.
4
+
5
+ ## Binding Interface
6
+
7
+ ```typescript
8
+ interface Hyperdrive {
9
+ connectionString: string // PostgreSQL
10
+ // MySQL properties:
11
+ host: string
12
+ port: number
13
+ user: string
14
+ password: string
15
+ database: string
16
+ }
17
+
18
+ interface Env {
19
+ HYPERDRIVE: Hyperdrive
20
+ }
21
+ ```
22
+
23
+ **Generate types:** `npx wrangler types` (auto-creates worker-configuration.d.ts from wrangler.jsonc)
24
+
25
+ ## PostgreSQL (node-postgres) - RECOMMENDED
26
+
27
+ ```typescript
28
+ import { Client } from 'pg' // pg@^8.17.2
29
+
30
+ export default {
31
+ async fetch(req: Request, env: Env): Promise<Response> {
32
+ const client = new Client({ connectionString: env.HYPERDRIVE.connectionString })
33
+ try {
34
+ await client.connect()
35
+ const result = await client.query('SELECT * FROM users WHERE id = $1', [123])
36
+ return Response.json(result.rows)
37
+ } finally {
38
+ await client.end()
39
+ }
40
+ },
41
+ }
42
+ ```
43
+
44
+ **⚠️ Workers connection limit: 6 per Worker invocation** - use connection pooling wisely.
45
+
46
+ ## PostgreSQL (postgres.js)
47
+
48
+ ```typescript
49
+ import postgres from 'postgres' // postgres@^3.4.8
50
+
51
+ const sql = postgres(env.HYPERDRIVE.connectionString, {
52
+ max: 5, // Limit per Worker (Workers max: 6)
53
+ prepare: true, // Enabled by default, required for caching
54
+ fetch_types: false, // Reduce latency if not using arrays
55
+ })
56
+
57
+ const users = await sql`SELECT * FROM users WHERE active = ${true} LIMIT 10`
58
+ ```
59
+
60
+ **⚠️ `prepare: true` is enabled by default and required for Hyperdrive caching.** Setting to `false` disables prepared statements + cache.
61
+
62
+ ## MySQL (mysql2)
63
+
64
+ ```typescript
65
+ import { createConnection } from 'mysql2/promise' // mysql2@^3.16.2
66
+
67
+ const conn = await createConnection({
68
+ host: env.HYPERDRIVE.host,
69
+ user: env.HYPERDRIVE.user,
70
+ password: env.HYPERDRIVE.password,
71
+ database: env.HYPERDRIVE.database,
72
+ port: env.HYPERDRIVE.port,
73
+ disableEval: true, // ⚠️ REQUIRED for Workers
74
+ })
75
+
76
+ const [results] = await conn.query('SELECT * FROM users WHERE active = ? LIMIT ?', [true, 10])
77
+ ctx.waitUntil(conn.end())
78
+ ```
79
+
80
+ **⚠️ MySQL support is less mature than PostgreSQL** - expect fewer optimizations and potential edge cases.
81
+
82
+ ## Query Caching
83
+
84
+ **Cacheable:**
85
+
86
+ ```sql
87
+ SELECT * FROM posts WHERE published = true;
88
+ SELECT COUNT(*) FROM users;
89
+ ```
90
+
91
+ **NOT cacheable:**
92
+
93
+ ```sql
94
+ -- Writes
95
+ INSERT/UPDATE/DELETE
96
+
97
+ -- Volatile functions
98
+ SELECT NOW();
99
+ SELECT random();
100
+ SELECT LASTVAL(); -- PostgreSQL
101
+ SELECT UUID(); -- MySQL
102
+ ```
103
+
104
+ **Cache config:**
105
+
106
+ - Default: `max_age=60s`, `swr=15s`
107
+ - Max `max_age`: 3600s
108
+ - Disable: `--caching-disabled=true`
109
+
110
+ **Multiple configs pattern:**
111
+
112
+ ```typescript
113
+ // Reads: cached
114
+ const sqlCached = postgres(env.HYPERDRIVE_CACHED.connectionString)
115
+ const posts = await sqlCached`SELECT * FROM posts ORDER BY views DESC LIMIT 10`
116
+
117
+ // Writes/time-sensitive: no cache
118
+ const sqlNoCache = postgres(env.HYPERDRIVE_NO_CACHE.connectionString)
119
+ const orders = await sqlNoCache`SELECT * FROM orders WHERE created_at > NOW() - INTERVAL 5 MINUTE`
120
+ ```
121
+
122
+ ## ORMs
123
+
124
+ **Drizzle:**
125
+
126
+ ```typescript
127
+ import { drizzle } from 'drizzle-orm/postgres-js' // drizzle-orm@^0.45.1
128
+ import postgres from 'postgres'
129
+
130
+ const client = postgres(env.HYPERDRIVE.connectionString, { max: 5, prepare: true })
131
+ const db = drizzle(client)
132
+ const users = await db.select().from(users).where(eq(users.active, true)).limit(10)
133
+ ```
134
+
135
+ **Kysely:**
136
+
137
+ ```typescript
138
+ import { Kysely, PostgresDialect } from 'kysely' // kysely@^0.27+
139
+ import postgres from 'postgres'
140
+
141
+ const db = new Kysely({
142
+ dialect: new PostgresDialect({
143
+ postgres: postgres(env.HYPERDRIVE.connectionString, { max: 5, prepare: true }),
144
+ }),
145
+ })
146
+ const users = await db.selectFrom('users').selectAll().where('active', '=', true).execute()
147
+ ```
148
+
149
+ See [patterns.md](./patterns.md) for use cases, [gotchas.md](./gotchas.md) for limits.