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,166 @@
1
+ # Configuration
2
+
3
+ See [README.md](./README.md) for overview.
4
+
5
+ ## Create Config
6
+
7
+ **PostgreSQL:**
8
+
9
+ ```bash
10
+ # Basic
11
+ npx wrangler hyperdrive create my-db \
12
+ --connection-string="postgres://user:pass@host:5432/db"
13
+
14
+ # Custom cache
15
+ npx wrangler hyperdrive create my-db \
16
+ --connection-string="postgres://..." \
17
+ --max-age=120 --swr=30
18
+
19
+ # No cache
20
+ npx wrangler hyperdrive create my-db \
21
+ --connection-string="postgres://..." \
22
+ --caching-disabled=true
23
+ ```
24
+
25
+ **MySQL:**
26
+
27
+ ```bash
28
+ npx wrangler hyperdrive create my-db \
29
+ --connection-string="mysql://user:pass@host:3306/db"
30
+ ```
31
+
32
+ ## wrangler.jsonc
33
+
34
+ ```jsonc
35
+ {
36
+ "compatibility_date": "2025-01-01", // Use latest for new projects
37
+ "compatibility_flags": ["nodejs_compat"],
38
+ "hyperdrive": [
39
+ {
40
+ "binding": "HYPERDRIVE",
41
+ "id": "<HYPERDRIVE_ID>",
42
+ "localConnectionString": "postgres://user:pass@localhost:5432/dev",
43
+ },
44
+ ],
45
+ }
46
+ ```
47
+
48
+ **Generate TypeScript types:** Run `npx wrangler types` to auto-generate `worker-configuration.d.ts` from your wrangler.jsonc.
49
+
50
+ **Multiple configs:**
51
+
52
+ ```jsonc
53
+ {
54
+ "hyperdrive": [
55
+ { "binding": "HYPERDRIVE_CACHED", "id": "<ID1>" },
56
+ { "binding": "HYPERDRIVE_NO_CACHE", "id": "<ID2>" },
57
+ ],
58
+ }
59
+ ```
60
+
61
+ ## Management
62
+
63
+ ```bash
64
+ npx wrangler hyperdrive list
65
+ npx wrangler hyperdrive get <ID>
66
+ npx wrangler hyperdrive update <ID> --max-age=180
67
+ npx wrangler hyperdrive delete <ID>
68
+ ```
69
+
70
+ ## Config Options
71
+
72
+ Hyperdrive create/update CLI flags:
73
+
74
+ | Option | Default | Notes |
75
+ | --------------------------- | --------- | ---------------------- |
76
+ | `--caching-disabled` | `false` | Disable caching |
77
+ | `--max-age` | `60` | Cache TTL (max 3600s) |
78
+ | `--swr` | `15` | Stale-while-revalidate |
79
+ | `--origin-connection-limit` | 20/100 | Free/paid |
80
+ | `--access-client-id` | - | Tunnel auth |
81
+ | `--access-client-secret` | - | Tunnel auth |
82
+ | `--sslmode` | `require` | PostgreSQL only |
83
+
84
+ ## Smart Placement Integration
85
+
86
+ For Workers making **multiple queries** per request, enable Smart Placement to execute near your database:
87
+
88
+ ```jsonc
89
+ {
90
+ "compatibility_date": "2025-01-01",
91
+ "compatibility_flags": ["nodejs_compat"],
92
+ "placement": {
93
+ "mode": "smart",
94
+ },
95
+ "hyperdrive": [
96
+ {
97
+ "binding": "HYPERDRIVE",
98
+ "id": "<HYPERDRIVE_ID>",
99
+ },
100
+ ],
101
+ }
102
+ ```
103
+
104
+ **Benefits:** Multi-query Workers run closer to DB, reducing round-trip latency. See [patterns.md](./patterns.md) for examples.
105
+
106
+ ## Private DB via Tunnel
107
+
108
+ ```
109
+ Worker → Hyperdrive → Access → Tunnel → Private Network → DB
110
+ ```
111
+
112
+ **Setup:**
113
+
114
+ ```bash
115
+ # 1. Create tunnel
116
+ cloudflared tunnel create my-db-tunnel
117
+
118
+ # 2. Configure hostname in Zero Trust dashboard
119
+ # Domain: db-tunnel.example.com
120
+ # Service: TCP -> localhost:5432
121
+
122
+ # 3. Create service token (Zero Trust > Service Auth)
123
+ # Save Client ID/Secret
124
+
125
+ # 4. Create Access app (db-tunnel.example.com)
126
+ # Policy: Service Auth token from step 3
127
+
128
+ # 5. Create Hyperdrive
129
+ npx wrangler hyperdrive create my-private-db \
130
+ --host=db-tunnel.example.com \
131
+ --user=dbuser --password=dbpass --database=prod \
132
+ --access-client-id=<ID> --access-client-secret=<SECRET>
133
+ ```
134
+
135
+ **⚠️ Don't specify `--port` with Tunnel** - port configured in tunnel service settings.
136
+
137
+ ## Local Dev
138
+
139
+ **Option 1: Local (RECOMMENDED):**
140
+
141
+ ```bash
142
+ # Env var (takes precedence)
143
+ export CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE="postgres://user:pass@localhost:5432/dev"
144
+ npx wrangler dev
145
+
146
+ # wrangler.jsonc
147
+ {"hyperdrive": [{"binding": "HYPERDRIVE", "localConnectionString": "postgres://..."}]}
148
+ ```
149
+
150
+ **Remote DB locally:**
151
+
152
+ ```bash
153
+ # PostgreSQL
154
+ export CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE="postgres://user:pass@remote:5432/db?sslmode=require"
155
+
156
+ # MySQL
157
+ export CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE="mysql://user:pass@remote:3306/db?sslMode=REQUIRED"
158
+ ```
159
+
160
+ **Option 2: Remote execution:**
161
+
162
+ ```bash
163
+ npx wrangler dev --remote # Uses deployed config, affects production
164
+ ```
165
+
166
+ See [api.md](./api.md), [patterns.md](./patterns.md), [gotchas.md](./gotchas.md).
@@ -0,0 +1,77 @@
1
+ # Gotchas
2
+
3
+ See [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [patterns.md](./patterns.md).
4
+
5
+ ## Common Errors
6
+
7
+ ### "Too many open connections" / "Connection limit exceeded"
8
+
9
+ **Cause:** Workers have a hard limit of **6 concurrent connections per invocation**
10
+ **Solution:** Set `max: 5` in driver config, reuse connections, ensure proper cleanup with `client.end()` or `ctx.waitUntil(conn.end())`
11
+
12
+ ### "Failed to acquire a connection (Pool exhausted)"
13
+
14
+ **Cause:** All connections in pool are in use, often due to long-running transactions
15
+ **Solution:** Reduce transaction duration, avoid queries >60s, don't hold connections during external calls, or upgrade to paid plan for more connections
16
+
17
+ ### "connection_refused"
18
+
19
+ **Cause:** Database refusing connections due to firewall, connection limits, or service down
20
+ **Solution:** Check firewall allows Cloudflare IPs, verify DB listening on port, confirm service running, and validate credentials
21
+
22
+ ### "Query timeout (deadline exceeded)"
23
+
24
+ **Cause:** Query execution exceeding 60s timeout limit
25
+ **Solution:** Optimize with indexes, reduce dataset with LIMIT, break into smaller queries, or use async processing
26
+
27
+ ### "password authentication failed"
28
+
29
+ **Cause:** Invalid credentials in Hyperdrive configuration
30
+ **Solution:** Check username and password in Hyperdrive config match database credentials
31
+
32
+ ### "SSL/TLS connection error"
33
+
34
+ **Cause:** SSL/TLS configuration mismatch between Hyperdrive and database
35
+ **Solution:** Add `sslmode=require` (Postgres) or `sslMode=REQUIRED` (MySQL), upload CA cert if self-signed, verify DB has SSL enabled, and check cert expiry
36
+
37
+ ### "Queries not being cached"
38
+
39
+ **Cause:** Query is mutating (INSERT/UPDATE/DELETE), contains volatile functions (NOW(), RANDOM()), or caching disabled
40
+ **Solution:** Verify query is non-mutating SELECT, avoid volatile functions, confirm caching enabled, use `wrangler dev --remote` to test, and set `prepare=true` for postgres.js
41
+
42
+ ### "Slow multi-query Workers despite Hyperdrive"
43
+
44
+ **Cause:** Worker executing at edge, each query round-trips to DB region
45
+ **Solution:** Enable Smart Placement (`"placement": {"mode": "smart"}` in wrangler.jsonc) to execute Worker near DB. See [patterns.md](./patterns.md) Multi-Query pattern.
46
+
47
+ ### "Local database connection failed"
48
+
49
+ **Cause:** `localConnectionString` incorrect or database not running
50
+ **Solution:** Verify `localConnectionString` correct, check DB running, confirm env var name matches binding, and test with psql/mysql client
51
+
52
+ ### "Environment variable not working"
53
+
54
+ **Cause:** Environment variable format incorrect or not exported
55
+ **Solution:** Use format `CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING>`, ensure binding matches wrangler.jsonc, export variable in shell, and restart wrangler dev
56
+
57
+ ## Limits
58
+
59
+ | Limit | Free | Paid | Notes |
60
+ | ---------------------- | -------- | -------- | ------------------------------------------------ |
61
+ | Max configs | 10 | 25 | Hyperdrive configurations per account |
62
+ | Worker connections | 6 | 6 | Max concurrent connections per Worker invocation |
63
+ | Username/DB name | 63 bytes | 63 bytes | Maximum length |
64
+ | Connection timeout | 15s | 15s | Time to establish connection |
65
+ | Idle timeout | 10 min | 10 min | Connection idle timeout |
66
+ | Max origin connections | ~20 | ~100 | Connections to origin database |
67
+ | Query duration max | 60s | 60s | Queries >60s terminated |
68
+ | Cached response max | 50 MB | 50 MB | Responses >50MB returned but not cached |
69
+
70
+ ## Resources
71
+
72
+ - [Docs](https://developers.cloudflare.com/hyperdrive/)
73
+ - [Getting Started](https://developers.cloudflare.com/hyperdrive/get-started/)
74
+ - [Wrangler Reference](https://developers.cloudflare.com/hyperdrive/reference/wrangler-commands/)
75
+ - [Supported DBs](https://developers.cloudflare.com/hyperdrive/reference/supported-databases-and-features/)
76
+ - [Discord #hyperdrive](https://discord.cloudflare.com)
77
+ - [Limit Increase Form](https://forms.gle/ukpeZVLWLnKeixDu7)
@@ -0,0 +1,203 @@
1
+ # Patterns
2
+
3
+ See [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md).
4
+
5
+ ## High-Traffic Read-Heavy
6
+
7
+ ```typescript
8
+ const sql = postgres(env.HYPERDRIVE.connectionString, { max: 5, prepare: true })
9
+
10
+ // Cacheable: popular content
11
+ const posts = await sql`SELECT * FROM posts WHERE published = true ORDER BY views DESC LIMIT 20`
12
+
13
+ // Cacheable: user profiles
14
+ const [user] = await sql`SELECT id, username, bio FROM users WHERE id = ${userId}`
15
+ ```
16
+
17
+ **Benefits:** Trending/profiles cached (60s), connection pooling handles spikes.
18
+
19
+ ## Mixed Read/Write
20
+
21
+ ```typescript
22
+ interface Env {
23
+ HYPERDRIVE_CACHED: Hyperdrive // max_age=120
24
+ HYPERDRIVE_REALTIME: Hyperdrive // caching disabled
25
+ }
26
+
27
+ // Reads: cached
28
+ if (req.method === 'GET') {
29
+ const sql = postgres(env.HYPERDRIVE_CACHED.connectionString, { prepare: true })
30
+ const products = await sql`SELECT * FROM products WHERE category = ${cat}`
31
+ }
32
+
33
+ // Writes: no cache (immediate consistency)
34
+ if (req.method === 'POST') {
35
+ const sql = postgres(env.HYPERDRIVE_REALTIME.connectionString, { prepare: true })
36
+ await sql`INSERT INTO orders ${sql(data)}`
37
+ }
38
+ ```
39
+
40
+ ## Analytics Dashboard
41
+
42
+ ```typescript
43
+ const client = new Client({ connectionString: env.HYPERDRIVE.connectionString })
44
+ await client.connect()
45
+
46
+ // Aggregate queries cached (use fixed timestamps for caching)
47
+ const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString()
48
+ const dailyStats = await client.query(
49
+ `
50
+ SELECT DATE(created_at) as date, COUNT(*) as orders, SUM(amount) as revenue
51
+ FROM orders WHERE created_at >= $1
52
+ GROUP BY DATE(created_at) ORDER BY date DESC
53
+ `,
54
+ [thirtyDaysAgo]
55
+ )
56
+
57
+ const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()
58
+ const topProducts = await client.query(
59
+ `
60
+ SELECT p.name, COUNT(oi.id) as count, SUM(oi.quantity * oi.price) as revenue
61
+ FROM order_items oi JOIN products p ON oi.product_id = p.id
62
+ WHERE oi.created_at >= $1
63
+ GROUP BY p.id, p.name ORDER BY revenue DESC LIMIT 10
64
+ `,
65
+ [sevenDaysAgo]
66
+ )
67
+ ```
68
+
69
+ **Benefits:** Expensive aggregations cached (avoid NOW() for cacheability), dashboard instant, reduced DB load.
70
+
71
+ ## Multi-Tenant
72
+
73
+ ```typescript
74
+ const tenantId = req.headers.get('X-Tenant-ID')
75
+ const sql = postgres(env.HYPERDRIVE.connectionString, { prepare: true })
76
+
77
+ // Tenant-scoped queries cached separately
78
+ const docs = await sql`
79
+ SELECT * FROM documents
80
+ WHERE tenant_id = ${tenantId} AND deleted_at IS NULL
81
+ ORDER BY updated_at DESC LIMIT 50
82
+ `
83
+ ```
84
+
85
+ **Benefits:** Per-tenant caching, shared connection pool, protects DB from multi-tenant load.
86
+
87
+ ## Geographically Distributed
88
+
89
+ ```typescript
90
+ // Worker runs at edge nearest user
91
+ // Connection setup at edge (fast), pooling near DB (efficient)
92
+ const sql = postgres(env.HYPERDRIVE.connectionString, { prepare: true })
93
+ const [user] = await sql`SELECT * FROM users WHERE id = ${userId}`
94
+
95
+ return Response.json({
96
+ user,
97
+ serverRegion: req.cf?.colo, // Edge location
98
+ })
99
+ ```
100
+
101
+ **Benefits:** Edge setup + DB pooling = global → single-region DB without replication.
102
+
103
+ ## Multi-Query + Smart Placement
104
+
105
+ For Workers making **multiple queries** per request, enable Smart Placement to execute near DB:
106
+
107
+ ```jsonc
108
+ // wrangler.jsonc
109
+ {
110
+ "placement": { "mode": "smart" },
111
+ "hyperdrive": [{ "binding": "HYPERDRIVE", "id": "<ID>" }],
112
+ }
113
+ ```
114
+
115
+ ```typescript
116
+ const sql = postgres(env.HYPERDRIVE.connectionString, { prepare: true })
117
+
118
+ // Multiple queries benefit from Smart Placement
119
+ const [user] = await sql`SELECT * FROM users WHERE id = ${userId}`
120
+ const orders =
121
+ await sql`SELECT * FROM orders WHERE user_id = ${userId} ORDER BY created_at DESC LIMIT 10`
122
+ const stats =
123
+ await sql`SELECT COUNT(*) as total, SUM(amount) as spent FROM orders WHERE user_id = ${userId}`
124
+
125
+ return Response.json({ user, orders, stats })
126
+ ```
127
+
128
+ **Benefits:** Worker executes near DB → reduces latency for each query. Without Smart Placement, each query round-trips from edge.
129
+
130
+ ## Connection Pooling
131
+
132
+ Operates in **transaction mode**: connection acquired per transaction, `RESET` on return.
133
+
134
+ **SET statements:**
135
+
136
+ ```typescript
137
+ // ✅ Within transaction
138
+ await client.query('BEGIN')
139
+ await client.query("SET work_mem = '256MB'")
140
+ await client.query('SELECT * FROM large_table') // Uses SET
141
+ await client.query('COMMIT') // RESET after
142
+
143
+ // ✅ Single statement
144
+ await client.query("SET work_mem = '256MB'; SELECT * FROM large_table")
145
+
146
+ // ❌ Across queries (may get different connection)
147
+ await client.query("SET work_mem = '256MB'")
148
+ await client.query('SELECT * FROM large_table') // SET not applied
149
+ ```
150
+
151
+ **Best practices:**
152
+
153
+ ```typescript
154
+ // ❌ Long transactions block pooling
155
+ await client.query('BEGIN')
156
+ await processThousands() // Connection held entire time
157
+ await client.query('COMMIT')
158
+
159
+ // ✅ Short transactions
160
+ await client.query('BEGIN')
161
+ await client.query('UPDATE users SET status = $1 WHERE id = $2', [status, id])
162
+ await client.query('COMMIT')
163
+
164
+ // ✅ SET LOCAL within transaction
165
+ await client.query('BEGIN')
166
+ await client.query("SET LOCAL work_mem = '256MB'")
167
+ await client.query('SELECT * FROM large_table')
168
+ await client.query('COMMIT')
169
+ ```
170
+
171
+ ## Performance Tips
172
+
173
+ **Enable prepared statements (required for caching):**
174
+
175
+ ```typescript
176
+ const sql = postgres(connectionString, { prepare: true }) // Default, enables caching
177
+ ```
178
+
179
+ **Optimize connection settings:**
180
+
181
+ ```typescript
182
+ const sql = postgres(connectionString, {
183
+ max: 5, // Stay under Workers' 6 connection limit
184
+ fetch_types: false, // Reduce latency if not using arrays
185
+ idle_timeout: 60, // Match Worker lifetime
186
+ })
187
+ ```
188
+
189
+ **Write cache-friendly queries:**
190
+
191
+ ```typescript
192
+ // ✅ Cacheable (deterministic)
193
+ await sql`SELECT * FROM products WHERE category = 'electronics' LIMIT 10`
194
+
195
+ // ❌ Not cacheable (volatile NOW())
196
+ await sql`SELECT * FROM logs WHERE created_at > NOW()`
197
+
198
+ // ✅ Cacheable (parameterized timestamp)
199
+ const ts = Date.now()
200
+ await sql`SELECT * FROM logs WHERE created_at > ${ts}`
201
+ ```
202
+
203
+ See [gotchas.md](./gotchas.md) for limits, troubleshooting.
@@ -0,0 +1,65 @@
1
+ # Cloudflare Images Skill Reference
2
+
3
+ **Cloudflare Images** is an end-to-end image management solution providing storage, transformation, optimization, and delivery at scale via Cloudflare's global network.
4
+
5
+ ## Quick Decision Tree
6
+
7
+ **Need to:**
8
+
9
+ - **Transform in Worker?** → [api.md](api.md#workers-binding-api-2026-primary-method) (Workers Binding API)
10
+ - **Upload from Worker?** → [api.md](api.md#upload-from-worker) (REST API)
11
+ - **Upload from client?** → [patterns.md](patterns.md#upload-from-client-direct-creator-upload) (Direct Creator Upload)
12
+ - **Set up variants?** → [configuration.md](configuration.md#variants-configuration)
13
+ - **Serve responsive images?** → [patterns.md](patterns.md#responsive-images)
14
+ - **Add watermarks?** → [patterns.md](patterns.md#watermarking)
15
+ - **Fix errors?** → [gotchas.md](gotchas.md#common-errors)
16
+
17
+ ## Reading Order
18
+
19
+ **For building image upload/transform feature:**
20
+
21
+ 1. [configuration.md](configuration.md) - Setup Workers binding
22
+ 2. [api.md](api.md#workers-binding-api-2026-primary-method) - Learn transform API
23
+ 3. [patterns.md](patterns.md#upload-from-client-direct-creator-upload) - Direct upload pattern
24
+ 4. [gotchas.md](gotchas.md) - Check limits and errors
25
+
26
+ **For URL-based transforms:**
27
+
28
+ 1. [configuration.md](configuration.md#variants-configuration) - Create variants
29
+ 2. [api.md](api.md#url-transform-api) - URL syntax
30
+ 3. [patterns.md](patterns.md#responsive-images) - Responsive patterns
31
+
32
+ **For troubleshooting:**
33
+
34
+ 1. [gotchas.md](gotchas.md#common-errors) - Error messages
35
+ 2. [gotchas.md](gotchas.md#limits) - Size/format limits
36
+
37
+ ## Core Methods
38
+
39
+ | Method | Use Case | Location |
40
+ | -------------------------------- | --------------------- | -------------------- |
41
+ | `env.IMAGES.input().transform()` | Transform in Worker | [api.md:11](api.md) |
42
+ | REST API `/images/v1` | Upload images | [api.md:57](api.md) |
43
+ | Direct Creator Upload | Client-side upload | [api.md:127](api.md) |
44
+ | URL transforms | Static image delivery | [api.md:112](api.md) |
45
+
46
+ ## In This Reference
47
+
48
+ - **[api.md](api.md)** - Complete API: Workers binding, REST endpoints, URL transforms
49
+ - **[configuration.md](configuration.md)** - Setup: wrangler.toml, variants, auth, signed URLs
50
+ - **[patterns.md](patterns.md)** - Patterns: responsive images, watermarks, format negotiation, caching
51
+ - **[gotchas.md](gotchas.md)** - Troubleshooting: limits, errors, best practices
52
+
53
+ ## Key Features
54
+
55
+ - **Automatic Optimization** - AVIF/WebP format negotiation
56
+ - **On-the-fly Transforms** - Resize, crop, blur, sharpen via URL or API
57
+ - **Workers Binding** - Transform images in Workers (2026 primary method)
58
+ - **Direct Upload** - Secure client-side uploads without backend proxy
59
+ - **Global Delivery** - Cached at 300+ Cloudflare data centers
60
+ - **Watermarking** - Overlay images programmatically
61
+
62
+ ## See Also
63
+
64
+ - [Official Docs](https://developers.cloudflare.com/images/)
65
+ - [Workers Examples](https://developers.cloudflare.com/images/tutorials/)
@@ -0,0 +1,101 @@
1
+ # API Reference
2
+
3
+ ## Workers Binding API
4
+
5
+ ```toml
6
+ # wrangler.toml
7
+ [images]
8
+ binding = "IMAGES"
9
+ ```
10
+
11
+ ### Transform Images
12
+
13
+ ```typescript
14
+ const imageResponse = await env.IMAGES.input(fileBuffer)
15
+ .transform({ width: 800, height: 600, fit: 'cover', quality: 85, format: 'avif' })
16
+ .output()
17
+ return imageResponse.response()
18
+ ```
19
+
20
+ ### Transform Options
21
+
22
+ ```typescript
23
+ interface TransformOptions {
24
+ width?: number
25
+ height?: number
26
+ fit?: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad'
27
+ quality?: number // 1-100
28
+ format?: 'avif' | 'webp' | 'jpeg' | 'png'
29
+ dpr?: number // 1-3
30
+ gravity?: 'auto' | 'left' | 'right' | 'top' | 'bottom' | 'face' | string
31
+ sharpen?: number // 0-10
32
+ blur?: number // 1-250
33
+ rotate?: 90 | 180 | 270
34
+ background?: string // CSS color for pad
35
+ metadata?: 'none' | 'copyright' | 'keep'
36
+ brightness?: number
37
+ contrast?: number
38
+ gamma?: number // 0-2
39
+ }
40
+ ```
41
+
42
+ ### Draw/Watermark
43
+
44
+ ```typescript
45
+ await env.IMAGES.input(baseImage)
46
+ .draw(env.IMAGES.input(watermark).transform({ width: 100 }), { top: 10, left: 10, opacity: 0.8 })
47
+ .output()
48
+ ```
49
+
50
+ ## REST API
51
+
52
+ ### Upload Image
53
+
54
+ ```bash
55
+ curl -X POST https://api.cloudflare.com/client/v4/accounts/{account_id}/images/v1 \
56
+ -H "Authorization: Bearer {token}" -F file=@image.jpg -F metadata='{"key":"value"}'
57
+ ```
58
+
59
+ ### Other Operations
60
+
61
+ ```bash
62
+ GET /accounts/{account_id}/images/v1/{image_id} # Get details
63
+ DELETE /accounts/{account_id}/images/v1/{image_id} # Delete
64
+ GET /accounts/{account_id}/images/v1?page=1 # List
65
+ ```
66
+
67
+ ## URL Transform API
68
+
69
+ ```
70
+ https://imagedelivery.net/{hash}/{id}/width=800,height=600,fit=cover,format=avif
71
+ ```
72
+
73
+ **Params:** `w=`, `h=`, `fit=`, `q=`, `f=`, `dpr=`, `gravity=`, `sharpen=`, `blur=`, `rotate=`, `background=`, `metadata=`
74
+
75
+ ## Direct Creator Upload
76
+
77
+ ```typescript
78
+ // 1. Get upload URL (backend)
79
+ const { result } = await fetch(
80
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/images/v2/direct_upload`,
81
+ {
82
+ method: 'POST',
83
+ headers: { Authorization: `Bearer ${token}` },
84
+ body: JSON.stringify({ requireSignedURLs: false }),
85
+ }
86
+ ).then((r) => r.json())
87
+
88
+ // 2. Client uploads to result.uploadURL
89
+ const formData = new FormData()
90
+ formData.append('file', file)
91
+ await fetch(result.uploadURL, { method: 'POST', body: formData })
92
+ ```
93
+
94
+ ## Error Codes
95
+
96
+ | Code | Message | Solution |
97
+ | ---- | ----------------- | ------------------------ |
98
+ | 5400 | Invalid format | Use JPEG, PNG, GIF, WebP |
99
+ | 5401 | Too large | Max 100MB |
100
+ | 5403 | Invalid transform | Check params |
101
+ | 9413 | Rate limit | Implement backoff |