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,211 @@
1
+ # Queues API Reference
2
+
3
+ ## Producer: Send Messages
4
+
5
+ ```typescript
6
+ // Basic send
7
+ await env.MY_QUEUE.send({ url: request.url, timestamp: Date.now() })
8
+
9
+ // Options: delay (max 43200s), contentType (json|text|bytes|v8)
10
+ await env.MY_QUEUE.send(message, { delaySeconds: 600 })
11
+ await env.MY_QUEUE.send(message, { delaySeconds: 0 }) // Override queue default
12
+
13
+ // Batch (up to 100 msgs or 256 KB)
14
+ await env.MY_QUEUE.sendBatch([
15
+ { body: 'msg1' },
16
+ { body: 'msg2' },
17
+ { body: 'msg3', options: { delaySeconds: 300 } },
18
+ ])
19
+
20
+ // Non-blocking with ctx.waitUntil - send continues after response
21
+ ctx.waitUntil(env.MY_QUEUE.send({ data: 'async' }))
22
+
23
+ // Background tasks in queue consumer
24
+ export default {
25
+ async queue(batch: MessageBatch, env: Env, ctx: ExecutionContext): Promise<void> {
26
+ for (const msg of batch.messages) {
27
+ await processMessage(msg.body)
28
+
29
+ // Fire-and-forget analytics (doesn't block ack)
30
+ ctx.waitUntil(env.ANALYTICS_QUEUE.send({ messageId: msg.id, processedAt: Date.now() }))
31
+
32
+ msg.ack()
33
+ }
34
+ },
35
+ }
36
+ ```
37
+
38
+ ## Consumer: Push-based (Worker)
39
+
40
+ ```typescript
41
+ // Type-safe handler with ExportedHandler
42
+ interface Env {
43
+ MY_QUEUE: Queue
44
+ DB: D1Database
45
+ }
46
+
47
+ export default {
48
+ async queue(batch: MessageBatch<MessageBody>, env: Env, ctx: ExecutionContext): Promise<void> {
49
+ // batch.queue, batch.messages.length
50
+ for (const msg of batch.messages) {
51
+ // msg.id, msg.body, msg.timestamp, msg.attempts
52
+ try {
53
+ await processMessage(msg.body)
54
+ msg.ack()
55
+ } catch (error) {
56
+ msg.retry({ delaySeconds: 600 })
57
+ }
58
+ }
59
+ },
60
+ } satisfies ExportedHandler<Env>
61
+ ```
62
+
63
+ **CRITICAL WARNINGS:**
64
+
65
+ 1. **Messages not explicitly ack'd or retry'd will auto-retry indefinitely** until `max_retries` is reached. Always call `msg.ack()` or `msg.retry()` for each message.
66
+
67
+ 2. **Throwing uncaught errors retries the ENTIRE batch**, not just the failed message. Always wrap individual message processing in try/catch and call `msg.retry()` explicitly per message.
68
+
69
+ ```typescript
70
+ // ❌ BAD: Uncaught error retries entire batch
71
+ async queue(batch: MessageBatch): Promise<void> {
72
+ for (const msg of batch.messages) {
73
+ await riskyOperation(msg.body); // If this throws, entire batch retries
74
+ msg.ack();
75
+ }
76
+ }
77
+
78
+ // ✅ GOOD: Catch per message, handle individually
79
+ async queue(batch: MessageBatch): Promise<void> {
80
+ for (const msg of batch.messages) {
81
+ try {
82
+ await riskyOperation(msg.body);
83
+ msg.ack();
84
+ } catch (error) {
85
+ msg.retry({ delaySeconds: 60 });
86
+ }
87
+ }
88
+ }
89
+ ```
90
+
91
+ ## Ack/Retry Precedence Rules
92
+
93
+ 1. **Per-message calls take precedence**: If you call both `msg.ack()` and `msg.retry()`, last call wins
94
+ 2. **Batch calls don't override**: `batch.ackAll()` only affects messages without explicit ack/retry
95
+ 3. **No action = automatic retry**: Messages with no explicit action retry with configured delay
96
+
97
+ ```typescript
98
+ async queue(batch: MessageBatch): Promise<void> {
99
+ for (const msg of batch.messages) {
100
+ msg.ack(); // Message marked for ack
101
+ msg.retry(); // Overrides ack - message will retry
102
+ }
103
+
104
+ batch.ackAll(); // Only affects messages not explicitly handled above
105
+ }
106
+ ```
107
+
108
+ ## Batch Operations
109
+
110
+ ```typescript
111
+ // Acknowledge entire batch
112
+ try {
113
+ await bulkProcess(batch.messages)
114
+ batch.ackAll()
115
+ } catch (error) {
116
+ batch.retryAll({ delaySeconds: 300 })
117
+ }
118
+ ```
119
+
120
+ ## Exponential Backoff
121
+
122
+ ```typescript
123
+ async queue(batch: MessageBatch, env: Env): Promise<void> {
124
+ for (const msg of batch.messages) {
125
+ try {
126
+ await processMessage(msg.body);
127
+ msg.ack();
128
+ } catch (error) {
129
+ // 30s, 60s, 120s, 240s, 480s, ... up to 12h max
130
+ const delay = Math.min(30 * (2 ** msg.attempts), 43200);
131
+ msg.retry({ delaySeconds: delay });
132
+ }
133
+ }
134
+ }
135
+ ```
136
+
137
+ ## Multiple Queues, Single Consumer
138
+
139
+ ```typescript
140
+ export default {
141
+ async queue(batch: MessageBatch, env: Env): Promise<void> {
142
+ switch (batch.queue) {
143
+ case 'high-priority':
144
+ await processUrgent(batch.messages)
145
+ break
146
+ case 'low-priority':
147
+ await processDeferred(batch.messages)
148
+ break
149
+ case 'email':
150
+ await sendEmails(batch.messages)
151
+ break
152
+ default:
153
+ batch.retryAll()
154
+ }
155
+ },
156
+ }
157
+ ```
158
+
159
+ ## Consumer: Pull-based (HTTP)
160
+
161
+ ```typescript
162
+ // Pull messages
163
+ const response = await fetch(
164
+ `https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/queues/${QUEUE_ID}/messages/pull`,
165
+ {
166
+ method: 'POST',
167
+ headers: { authorization: `Bearer ${API_TOKEN}`, 'content-type': 'application/json' },
168
+ body: JSON.stringify({ visibility_timeout_ms: 6000, batch_size: 50 }),
169
+ }
170
+ )
171
+
172
+ const data = await response.json()
173
+
174
+ // Acknowledge
175
+ await fetch(
176
+ `https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/queues/${QUEUE_ID}/messages/ack`,
177
+ {
178
+ method: 'POST',
179
+ headers: { authorization: `Bearer ${API_TOKEN}`, 'content-type': 'application/json' },
180
+ body: JSON.stringify({
181
+ acks: [{ lease_id: msg.lease_id }],
182
+ retries: [{ lease_id: msg2.lease_id, delay_seconds: 600 }],
183
+ }),
184
+ }
185
+ )
186
+ ```
187
+
188
+ ## Interfaces
189
+
190
+ ```typescript
191
+ interface MessageBatch<Body = unknown> {
192
+ readonly queue: string
193
+ readonly messages: Message<Body>[]
194
+ ackAll(): void
195
+ retryAll(options?: QueueRetryOptions): void
196
+ }
197
+
198
+ interface Message<Body = unknown> {
199
+ readonly id: string
200
+ readonly timestamp: Date
201
+ readonly body: Body
202
+ readonly attempts: number
203
+ ack(): void
204
+ retry(options?: QueueRetryOptions): void
205
+ }
206
+
207
+ interface QueueSendOptions {
208
+ contentType?: 'text' | 'bytes' | 'json' | 'v8'
209
+ delaySeconds?: number // 0-43200
210
+ }
211
+ ```
@@ -0,0 +1,151 @@
1
+ # Queues Configuration
2
+
3
+ ## Create Queue
4
+
5
+ ```bash
6
+ wrangler queues create my-queue
7
+ wrangler queues create my-queue --retention-period-hours=336 # 14 days
8
+ wrangler queues create my-queue --delivery-delay-secs=300
9
+ ```
10
+
11
+ ## Producer Binding
12
+
13
+ **wrangler.jsonc:**
14
+
15
+ ```jsonc
16
+ {
17
+ "queues": {
18
+ "producers": [
19
+ {
20
+ "queue": "my-queue-name",
21
+ "binding": "MY_QUEUE",
22
+ "delivery_delay": 60, // Optional: default delay in seconds
23
+ },
24
+ ],
25
+ },
26
+ }
27
+ ```
28
+
29
+ ## Consumer Configuration (Push-based)
30
+
31
+ **wrangler.jsonc:**
32
+
33
+ ```jsonc
34
+ {
35
+ "queues": {
36
+ "consumers": [
37
+ {
38
+ "queue": "my-queue-name",
39
+ "max_batch_size": 10, // 1-100, default 10
40
+ "max_batch_timeout": 5, // 0-60s, default 5
41
+ "max_retries": 3, // default 3, max 100
42
+ "dead_letter_queue": "my-dlq", // optional
43
+ "retry_delay": 300, // optional: delay retries in seconds
44
+ },
45
+ ],
46
+ },
47
+ }
48
+ ```
49
+
50
+ ## Consumer Configuration (Pull-based)
51
+
52
+ **wrangler.jsonc:**
53
+
54
+ ```jsonc
55
+ {
56
+ "queues": {
57
+ "consumers": [
58
+ {
59
+ "queue": "my-queue-name",
60
+ "type": "http_pull",
61
+ "visibility_timeout_ms": 5000, // default 30000, max 12h
62
+ "max_retries": 5,
63
+ "dead_letter_queue": "my-dlq",
64
+ },
65
+ ],
66
+ },
67
+ }
68
+ ```
69
+
70
+ ## TypeScript Types
71
+
72
+ ```typescript
73
+ interface Env {
74
+ MY_QUEUE: Queue<MessageBody>
75
+ ANALYTICS_QUEUE: Queue<AnalyticsEvent>
76
+ }
77
+
78
+ interface MessageBody {
79
+ id: string
80
+ action: 'create' | 'update' | 'delete'
81
+ data: Record<string, any>
82
+ }
83
+
84
+ export default {
85
+ async queue(batch: MessageBatch<MessageBody>, env: Env): Promise<void> {
86
+ for (const msg of batch.messages) {
87
+ console.log(msg.body.action)
88
+ msg.ack()
89
+ }
90
+ },
91
+ } satisfies ExportedHandler<Env>
92
+ ```
93
+
94
+ ## Content Type Selection
95
+
96
+ Choose content type based on consumer type and data requirements:
97
+
98
+ | Content Type | Use When | Readable By | Supports | Size |
99
+ | ------------ | ---------------------------------------------------- | ------------------------- | ------------------------------------ | -------- |
100
+ | `json` | Pull consumers, dashboard visibility, simple objects | All (push/pull/dashboard) | JSON-serializable types only | Medium |
101
+ | `v8` | Push consumers only, complex JS objects | Push consumers only | Date, Map, Set, BigInt, typed arrays | Small |
102
+ | `text` | String-only payloads | All | Strings only | Smallest |
103
+ | `bytes` | Binary data (images, files) | All | ArrayBuffer, Uint8Array | Variable |
104
+
105
+ **Decision tree:**
106
+
107
+ 1. Need to view in dashboard or use pull consumer? → Use `json`
108
+ 2. Need Date, Map, Set, or other V8 types? → Use `v8` (push consumers only)
109
+ 3. Just strings? → Use `text`
110
+ 4. Binary data? → Use `bytes`
111
+
112
+ ```typescript
113
+ // JSON: Good for simple objects, pull consumers, dashboard visibility
114
+ await env.QUEUE.send({ id: 123, name: 'test' }, { contentType: 'json' })
115
+
116
+ // V8: Good for Date, Map, Set (push consumers only)
117
+ await env.QUEUE.send(
118
+ {
119
+ created: new Date(),
120
+ tags: new Set(['a', 'b']),
121
+ },
122
+ { contentType: 'v8' }
123
+ )
124
+
125
+ // Text: Simple strings
126
+ await env.QUEUE.send('process-user-123', { contentType: 'text' })
127
+
128
+ // Bytes: Binary data
129
+ await env.QUEUE.send(imageBuffer, { contentType: 'bytes' })
130
+ ```
131
+
132
+ **Default behavior:** If not specified, Cloudflare auto-selects `json` for JSON-serializable objects and `v8` for complex types.
133
+
134
+ **IMPORTANT:** `v8` messages cannot be read by pull consumers or viewed in the dashboard. Use `json` if you need visibility or pull-based consumption.
135
+
136
+ ## CLI Commands
137
+
138
+ ```bash
139
+ # Consumer management
140
+ wrangler queues consumer add my-queue my-worker --batch-size=50 --max-retries=5
141
+ wrangler queues consumer http add my-queue
142
+ wrangler queues consumer worker remove my-queue my-worker
143
+ wrangler queues consumer http remove my-queue
144
+
145
+ # Queue operations
146
+ wrangler queues list
147
+ wrangler queues pause my-queue
148
+ wrangler queues resume my-queue
149
+ wrangler queues purge my-queue
150
+ wrangler queues delete my-queue
151
+ ```
@@ -0,0 +1,210 @@
1
+ # Queues Gotchas & Troubleshooting
2
+
3
+ ## CRITICAL: Top Production Mistakes
4
+
5
+ ### 1. "Entire Batch Retried After Single Error"
6
+
7
+ **Problem:** Throwing uncaught error in queue handler retries the entire batch, not just the failed message
8
+ **Cause:** Uncaught exceptions propagate to the runtime, triggering batch-level retry
9
+ **Solution:** Always wrap individual message processing in try/catch and call `msg.retry()` explicitly
10
+
11
+ ```typescript
12
+ // ❌ BAD: Throws error, retries entire batch
13
+ async queue(batch: MessageBatch): Promise<void> {
14
+ for (const msg of batch.messages) {
15
+ await riskyOperation(msg.body); // If this throws, entire batch retries
16
+ msg.ack();
17
+ }
18
+ }
19
+
20
+ // ✅ GOOD: Catch per message, handle individually
21
+ async queue(batch: MessageBatch): Promise<void> {
22
+ for (const msg of batch.messages) {
23
+ try {
24
+ await riskyOperation(msg.body);
25
+ msg.ack();
26
+ } catch (error) {
27
+ msg.retry({ delaySeconds: 60 });
28
+ }
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### 2. "Messages Retry Forever"
34
+
35
+ **Problem:** Messages not explicitly ack'd or retry'd will auto-retry indefinitely
36
+ **Cause:** Runtime default behavior retries unhandled messages until `max_retries` reached
37
+ **Solution:** Always call `msg.ack()` or `msg.retry()` for each message. Never leave messages unhandled.
38
+
39
+ ```typescript
40
+ // ❌ BAD: Skipped messages auto-retry forever
41
+ async queue(batch: MessageBatch): Promise<void> {
42
+ for (const msg of batch.messages) {
43
+ if (shouldProcess(msg.body)) {
44
+ await process(msg.body);
45
+ msg.ack();
46
+ }
47
+ // Missing: msg.ack() for skipped messages - they will retry!
48
+ }
49
+ }
50
+
51
+ // ✅ GOOD: Explicitly handle all messages
52
+ async queue(batch: MessageBatch): Promise<void> {
53
+ for (const msg of batch.messages) {
54
+ if (shouldProcess(msg.body)) {
55
+ await process(msg.body);
56
+ msg.ack();
57
+ } else {
58
+ msg.ack(); // Explicitly ack even if not processing
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## Common Errors
65
+
66
+ ### "Duplicate Message Processing"
67
+
68
+ **Problem:** Same message processed multiple times
69
+ **Cause:** At-least-once delivery guarantee means duplicates are possible during retries
70
+ **Solution:** Design consumers to be idempotent by tracking processed message IDs in KV with expiration TTL
71
+
72
+ ```typescript
73
+ async queue(batch: MessageBatch, env: Env): Promise<void> {
74
+ for (const msg of batch.messages) {
75
+ const processed = await env.PROCESSED_KV.get(msg.id);
76
+ if (processed) {
77
+ msg.ack();
78
+ continue;
79
+ }
80
+
81
+ await processMessage(msg.body);
82
+ await env.PROCESSED_KV.put(msg.id, '1', { expirationTtl: 86400 });
83
+ msg.ack();
84
+ }
85
+ }
86
+ ```
87
+
88
+ ### "Pull Consumer Can't Decode Messages"
89
+
90
+ **Problem:** Pull consumer or dashboard shows unreadable message bodies
91
+ **Cause:** Messages sent with `v8` content type are only decodable by Workers push consumers
92
+ **Solution:** Use `json` content type for pull consumers or dashboard visibility
93
+
94
+ ```typescript
95
+ // Use json for pull consumers
96
+ await env.MY_QUEUE.send(data, { contentType: 'json' })
97
+
98
+ // Use v8 only for push consumers with complex JS types
99
+ await env.MY_QUEUE.send({ date: new Date(), tags: new Set() }, { contentType: 'v8' })
100
+ ```
101
+
102
+ ### "Messages Not Being Delivered"
103
+
104
+ **Problem:** Messages sent but consumer not processing
105
+ **Cause:** Queue paused, consumer not configured, or consumer errors
106
+ **Solution:** Check queue status with `wrangler queues list`, verify consumer configured with `wrangler queues consumer add`, and check logs with `wrangler tail`
107
+
108
+ ### "High Dead Letter Queue Rate"
109
+
110
+ **Problem:** Many messages ending up in DLQ
111
+ **Cause:** Consumer repeatedly failing to process messages after max retries
112
+ **Solution:** Review consumer error logs, check external dependency availability, verify message format matches expectations, or increase retry delay
113
+
114
+ ## Error Classification Patterns
115
+
116
+ Classify errors to decide whether to retry or DLQ:
117
+
118
+ ```typescript
119
+ async queue(batch: MessageBatch, env: Env): Promise<void> {
120
+ for (const msg of batch.messages) {
121
+ try {
122
+ await processMessage(msg.body);
123
+ msg.ack();
124
+ } catch (error) {
125
+ // Transient errors: retry with backoff
126
+ if (isRetryable(error)) {
127
+ const delay = Math.min(30 * (2 ** msg.attempts), 43200);
128
+ msg.retry({ delaySeconds: delay });
129
+ }
130
+ // Permanent errors: ack to avoid infinite retries
131
+ else {
132
+ console.error('Permanent error, sending to DLQ:', error);
133
+ await env.ERROR_LOG.put(msg.id, JSON.stringify({ msg: msg.body, error: String(error) }));
134
+ msg.ack(); // Prevent further retries
135
+ }
136
+ }
137
+ }
138
+ }
139
+
140
+ function isRetryable(error: unknown): boolean {
141
+ if (error instanceof Response) {
142
+ // Retry: rate limits, timeouts, server errors
143
+ return error.status === 429 || error.status >= 500;
144
+ }
145
+ if (error instanceof Error) {
146
+ // Don't retry: validation, auth, not found
147
+ return !error.message.includes('validation') &&
148
+ !error.message.includes('unauthorized') &&
149
+ !error.message.includes('not found');
150
+ }
151
+ return false; // Unknown errors don't retry
152
+ }
153
+ ```
154
+
155
+ ### "CPU Time Exceeded in Consumer"
156
+
157
+ **Problem:** Consumer fails with CPU time limit exceeded
158
+ **Cause:** Consumer processing exceeding 30s default CPU time limit
159
+ **Solution:** Increase CPU limit in wrangler.jsonc: `{ "limits": { "cpu_ms": 300000 } }` (5 minutes max)
160
+
161
+ ## Content Type Decision Guide
162
+
163
+ **When to use each content type:**
164
+
165
+ | Content Type | Use When | Readable By | Supports |
166
+ | ---------------- | ---------------------------------------------------- | ------------------------- | ------------------------------------ |
167
+ | `json` (default) | Pull consumers, dashboard visibility, simple objects | All (push/pull/dashboard) | JSON-serializable types only |
168
+ | `v8` | Push consumers only, complex JS objects | Push consumers only | Date, Map, Set, BigInt, typed arrays |
169
+ | `text` | String-only payloads | All | Strings only |
170
+ | `bytes` | Binary data (images, files) | All | ArrayBuffer, Uint8Array |
171
+
172
+ **Decision tree:**
173
+
174
+ 1. Need to view in dashboard or use pull consumer? → Use `json`
175
+ 2. Need Date, Map, Set, or other V8 types? → Use `v8` (push consumers only)
176
+ 3. Just strings? → Use `text`
177
+ 4. Binary data? → Use `bytes`
178
+
179
+ ```typescript
180
+ // Dashboard/pull: use json
181
+ await env.QUEUE.send({ id: 123, name: 'test' }, { contentType: 'json' })
182
+
183
+ // Complex JS types (push only): use v8
184
+ await env.QUEUE.send(
185
+ {
186
+ created: new Date(),
187
+ tags: new Set(['a', 'b']),
188
+ },
189
+ { contentType: 'v8' }
190
+ )
191
+ ```
192
+
193
+ ## Limits
194
+
195
+ | Limit | Value | Notes |
196
+ | ---------------------- | ------------------------- | ------------------------------------ |
197
+ | Max queues | 10,000 | Per account |
198
+ | Message size | 128 KB | Maximum per message |
199
+ | Batch size (consumer) | 100 messages | Maximum messages per batch |
200
+ | Batch size (sendBatch) | 100 msgs or 256 KB | Whichever limit reached first |
201
+ | Throughput | 5,000 msgs/sec | Per queue |
202
+ | Retention | 4-14 days | Configurable retention period |
203
+ | Max backlog | 25 GB | Maximum queue backlog size |
204
+ | Max delay | 12 hours (43,200s) | Maximum message delay |
205
+ | Max retries | 100 | Maximum retry attempts |
206
+ | CPU time default | 30s | Per consumer invocation |
207
+ | CPU time max | 300s (5 min) | Configurable via `limits.cpu_ms` |
208
+ | Operations per message | 3 (write + read + delete) | Base cost per message |
209
+ | Pricing | $0.40 per 1M operations | After 1M free operations |
210
+ | Message charging | Per 64 KB chunk | Messages charged in 64 KB increments |