memory-journal-mcp 7.7.1 → 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-6LPTBIB6.js → chunk-MWNLAEHR.js} +309 -4332
  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 +6 -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,200 @@
1
+ # Workers Frameworks
2
+
3
+ ## Hono (Recommended)
4
+
5
+ Workers-native web framework with excellent TypeScript support and middleware ecosystem.
6
+
7
+ ```bash
8
+ npm install hono
9
+ ```
10
+
11
+ ### Basic Setup
12
+
13
+ ```typescript
14
+ import { Hono } from 'hono'
15
+
16
+ const app = new Hono()
17
+
18
+ app.get('/', (c) => c.text('Hello World!'))
19
+ app.post('/api/users', async (c) => {
20
+ const body = await c.req.json()
21
+ return c.json({ id: 1, ...body }, 201)
22
+ })
23
+
24
+ export default app
25
+ ```
26
+
27
+ ### Typed Environment
28
+
29
+ ```typescript
30
+ import type { Env } from './.wrangler/types/runtime'
31
+
32
+ const app = new Hono<{ Bindings: Env }>()
33
+
34
+ app.get('/data', async (c) => {
35
+ const value = await c.env.MY_KV.get('key') // Fully typed
36
+ return c.text(value || 'Not found')
37
+ })
38
+ ```
39
+
40
+ ### Middleware
41
+
42
+ ```typescript
43
+ import { cors } from 'hono/cors'
44
+ import { logger } from 'hono/logger'
45
+
46
+ app.use('*', logger())
47
+ app.use('/api/*', cors({ origin: '*' }))
48
+
49
+ // Custom middleware
50
+ app.use('/protected/*', async (c, next) => {
51
+ const auth = c.req.header('Authorization')
52
+ if (!auth?.startsWith('Bearer ')) return c.text('Unauthorized', 401)
53
+ await next()
54
+ })
55
+ ```
56
+
57
+ ### Request Validation (Zod)
58
+
59
+ ```typescript
60
+ import { zValidator } from '@hono/zod-validator'
61
+ import { z } from 'zod'
62
+
63
+ const schema = z.object({
64
+ name: z.string().min(1),
65
+ email: z.string().email(),
66
+ })
67
+
68
+ app.post('/users', zValidator('json', schema), async (c) => {
69
+ const validated = c.req.valid('json') // Type-safe, validated data
70
+ return c.json({ id: 1, ...validated })
71
+ })
72
+ ```
73
+
74
+ **Error handling**: Automatic 400 response with validation errors
75
+
76
+ ### Route Groups
77
+
78
+ ```typescript
79
+ const api = new Hono().basePath('/api')
80
+
81
+ api.get('/users', (c) => c.json([]))
82
+ api.post('/users', (c) => c.json({ id: 1 }))
83
+
84
+ app.route('/', api) // Mounts at /api/*
85
+ ```
86
+
87
+ ### Error Handling
88
+
89
+ ```typescript
90
+ app.onError((err, c) => {
91
+ console.error(err)
92
+ return c.json({ error: err.message }, 500)
93
+ })
94
+
95
+ app.notFound((c) => c.json({ error: 'Not Found' }, 404))
96
+ ```
97
+
98
+ ### Accessing ExecutionContext
99
+
100
+ ```typescript
101
+ export default {
102
+ fetch(request: Request, env: Env, ctx: ExecutionContext) {
103
+ return app.fetch(request, env, ctx)
104
+ },
105
+ }
106
+
107
+ // In route handlers:
108
+ app.get('/log', (c) => {
109
+ c.executionCtx.waitUntil(logRequest(c.req))
110
+ return c.text('OK')
111
+ })
112
+ ```
113
+
114
+ ### OpenAPI/Swagger (Hono OpenAPI)
115
+
116
+ ```typescript
117
+ import { OpenAPIHono, createRoute, z } from '@hono/zod-openapi'
118
+
119
+ const app = new OpenAPIHono()
120
+
121
+ const route = createRoute({
122
+ method: 'get',
123
+ path: '/users/{id}',
124
+ request: { params: z.object({ id: z.string() }) },
125
+ responses: {
126
+ 200: {
127
+ description: 'User found',
128
+ content: { 'application/json': { schema: z.object({ id: z.string() }) } },
129
+ },
130
+ },
131
+ })
132
+
133
+ app.openapi(route, (c) => {
134
+ const { id } = c.req.valid('param')
135
+ return c.json({ id })
136
+ })
137
+
138
+ app.doc('/openapi.json', { openapi: '3.0.0', info: { version: '1.0.0', title: 'API' } })
139
+ ```
140
+
141
+ ### Testing with Hono
142
+
143
+ ```typescript
144
+ import { describe, it, expect } from 'vitest'
145
+ import app from '../src/index'
146
+
147
+ describe('API', () => {
148
+ it('GET /', async () => {
149
+ const res = await app.request('/')
150
+ expect(res.status).toBe(200)
151
+ expect(await res.text()).toBe('Hello World!')
152
+ })
153
+ })
154
+ ```
155
+
156
+ ## Other Frameworks
157
+
158
+ ### itty-router (Minimalist)
159
+
160
+ ```typescript
161
+ import { Router } from 'itty-router'
162
+
163
+ const router = Router()
164
+
165
+ router.get('/users/:id', ({ params }) => new Response(params.id))
166
+
167
+ export default { fetch: router.handle }
168
+ ```
169
+
170
+ **Use case**: Tiny bundle size (~500 bytes), simple routing needs
171
+
172
+ ### Worktop (Advanced)
173
+
174
+ ```typescript
175
+ import { Router } from 'worktop'
176
+
177
+ const router = new Router()
178
+
179
+ router.add('GET', '/users/:id', (req, res) => {
180
+ res.send(200, { id: req.params.id })
181
+ })
182
+
183
+ router.listen()
184
+ ```
185
+
186
+ **Use case**: Advanced routing, built-in CORS/cache utilities
187
+
188
+ ## Framework Comparison
189
+
190
+ | Framework | Bundle Size | TypeScript | Middleware | Validation | Best For |
191
+ | ----------- | ----------- | ---------- | ---------- | ---------- | --------------- |
192
+ | Hono | ~12KB | Excellent | Rich | Zod | Production apps |
193
+ | itty-router | ~500B | Good | Basic | Manual | Minimal APIs |
194
+ | Worktop | ~8KB | Good | Advanced | Manual | Complex routing |
195
+
196
+ ## See Also
197
+
198
+ - [Patterns](./patterns.md) - Common workflows
199
+ - [API](./api.md) - Runtime APIs
200
+ - [Gotchas](./gotchas.md) - Framework-specific issues
@@ -0,0 +1,145 @@
1
+ # Workers Gotchas
2
+
3
+ ## Common Errors
4
+
5
+ ### "Too much CPU time used"
6
+
7
+ **Cause:** Worker exceeded CPU time limit (10ms standard, 30ms unbound)
8
+ **Solution:** Use `ctx.waitUntil()` for background work, offload heavy compute to Durable Objects, or consider Workers AI for ML workloads
9
+
10
+ ### "Module-Level State Lost"
11
+
12
+ **Cause:** Workers are stateless between requests; module-level variables reset unpredictably
13
+ **Solution:** Use KV, D1, or Durable Objects for persistent state; don't rely on module-level variables
14
+
15
+ ### "Body has already been used"
16
+
17
+ **Cause:** Attempting to read response body twice (bodies are streams)
18
+ **Solution:** Clone response before reading: `response.clone()` or read once and create new Response with the text
19
+
20
+ ### "Node.js module not found"
21
+
22
+ **Cause:** Node.js built-ins not available by default
23
+ **Solution:** Use Workers APIs (e.g., R2 for file storage) or enable Node.js compat with `"compatibility_flags": ["nodejs_compat_v2"]`
24
+
25
+ ### "Cannot fetch in global scope"
26
+
27
+ **Cause:** Attempting to use fetch during module initialization
28
+ **Solution:** Move fetch calls inside handler functions (fetch, scheduled, etc.) where they're allowed
29
+
30
+ ### "Subrequest depth limit exceeded"
31
+
32
+ **Cause:** Too many nested subrequests creating deep call chain
33
+ **Solution:** Flatten request chain or use service bindings for direct Worker-to-Worker communication
34
+
35
+ ### "D1 read-after-write inconsistency"
36
+
37
+ **Cause:** D1 is eventually consistent; reads may not reflect recent writes
38
+ **Solution:** Use D1 Sessions (2024+) to guarantee read-after-write consistency within a session:
39
+
40
+ ```typescript
41
+ const session = env.DB.withSession()
42
+ await session.prepare('INSERT INTO users (name) VALUES (?)').bind('Alice').run()
43
+ const user = await session.prepare('SELECT * FROM users WHERE name = ?').bind('Alice').first() // Guaranteed to see Alice
44
+ ```
45
+
46
+ **When to use sessions:** Write → Read patterns, transactions requiring consistency
47
+
48
+ ### "wrangler types not generating TypeScript definitions"
49
+
50
+ **Cause:** Type generation not configured or outdated
51
+ **Solution:** Run `npx wrangler types` after changing bindings in wrangler.jsonc:
52
+
53
+ ```bash
54
+ npx wrangler types # Generates .wrangler/types/runtime.d.ts
55
+ ```
56
+
57
+ Add to `tsconfig.json`: `"include": [".wrangler/types/**/*.ts"]`
58
+
59
+ Then import: `import type { Env } from './.wrangler/types/runtime';`
60
+
61
+ ### "Durable Object RPC errors with deprecated fetch pattern"
62
+
63
+ **Cause:** Using old `stub.fetch()` pattern instead of RPC (2024+)
64
+ **Solution:** Export methods directly, call via RPC:
65
+
66
+ ```typescript
67
+ // ❌ Old fetch pattern
68
+ export class MyDO {
69
+ async fetch(request: Request) {
70
+ const { method } = await request.json()
71
+ if (method === 'increment') return new Response(String(await this.increment()))
72
+ }
73
+ async increment() {
74
+ return ++this.value
75
+ }
76
+ }
77
+ const stub = env.DO.get(id)
78
+ const res = await stub.fetch('http://x', {
79
+ method: 'POST',
80
+ body: JSON.stringify({ method: 'increment' }),
81
+ })
82
+
83
+ // ✅ RPC pattern (type-safe, no serialization overhead)
84
+ export class MyDO {
85
+ async increment() {
86
+ return ++this.value
87
+ }
88
+ }
89
+ const stub = env.DO.get(id)
90
+ const count = await stub.increment() // Direct method call
91
+ ```
92
+
93
+ ### "WebSocket connection closes unexpectedly"
94
+
95
+ **Cause:** Worker reaches CPU limit while maintaining WebSocket connection
96
+ **Solution:** Use WebSocket hibernation (2024+) to offload idle connections:
97
+
98
+ ```typescript
99
+ export class WebSocketDO {
100
+ async webSocketMessage(ws: WebSocket, message: string) {
101
+ // Handle message
102
+ }
103
+ async webSocketClose(ws: WebSocket, code: number) {
104
+ // Cleanup
105
+ }
106
+ }
107
+ ```
108
+
109
+ Hibernation automatically suspends inactive connections, wakes on events
110
+
111
+ ### "Framework middleware not working with Workers"
112
+
113
+ **Cause:** Framework expects Node.js primitives (e.g., Express uses Node streams)
114
+ **Solution:** Use Workers-native frameworks (Hono, itty-router, Worktop) or adapt middleware:
115
+
116
+ ```typescript
117
+ // ✅ Hono (Workers-native)
118
+ import { Hono } from 'hono'
119
+ const app = new Hono()
120
+ app.use('*', async (c, next) => {
121
+ /* middleware */ await next()
122
+ })
123
+ ```
124
+
125
+ See [frameworks.md](./frameworks.md) for full patterns
126
+
127
+ ## Limits
128
+
129
+ | Limit | Value | Notes |
130
+ | ------------------- | --------- | ----------------------------- |
131
+ | Request size | 100 MB | Maximum incoming request size |
132
+ | Response size | Unlimited | Supports streaming |
133
+ | CPU time (standard) | 10ms | Standard Workers |
134
+ | CPU time (unbound) | 30ms | Unbound Workers |
135
+ | Subrequests | 10,000 | Per request |
136
+ | KV reads | 1000 | Per request |
137
+ | KV write size | 25 MB | Maximum per write |
138
+ | Environment size | 5 MB | Total size of env bindings |
139
+
140
+ ## See Also
141
+
142
+ - [Patterns](./patterns.md) - Best practices
143
+ - [API](./api.md) - Runtime APIs
144
+ - [Configuration](./configuration.md) - Setup
145
+ - [Frameworks](./frameworks.md) - Hono, routing, validation
@@ -0,0 +1,220 @@
1
+ # Workers Patterns
2
+
3
+ ## Error Handling
4
+
5
+ ```typescript
6
+ class HTTPError extends Error {
7
+ constructor(
8
+ public status: number,
9
+ message: string
10
+ ) {
11
+ super(message)
12
+ }
13
+ }
14
+
15
+ export default {
16
+ async fetch(request: Request, env: Env): Promise<Response> {
17
+ try {
18
+ return await handleRequest(request, env)
19
+ } catch (error) {
20
+ if (error instanceof HTTPError) {
21
+ return new Response(JSON.stringify({ error: error.message }), {
22
+ status: error.status,
23
+ headers: { 'Content-Type': 'application/json' },
24
+ })
25
+ }
26
+ return new Response('Internal Server Error', { status: 500 })
27
+ }
28
+ },
29
+ }
30
+ ```
31
+
32
+ ## CORS
33
+
34
+ ```typescript
35
+ const corsHeaders = {
36
+ 'Access-Control-Allow-Origin': '*',
37
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
38
+ }
39
+ if (request.method === 'OPTIONS') return new Response(null, { headers: corsHeaders })
40
+ ```
41
+
42
+ ## Routing
43
+
44
+ ```typescript
45
+ const router = { 'GET /api/users': handleGetUsers, 'POST /api/users': handleCreateUser }
46
+
47
+ const handler = router[`${request.method} ${url.pathname}`]
48
+ return handler ? handler(request, env) : new Response('Not Found', { status: 404 })
49
+ ```
50
+
51
+ **Production**: Use Hono, itty-router, or Worktop (see [frameworks.md](./frameworks.md))
52
+
53
+ ## Request Validation (Zod)
54
+
55
+ ```typescript
56
+ import { z } from 'zod'
57
+
58
+ const userSchema = z.object({
59
+ name: z.string().min(1).max(100),
60
+ email: z.string().email(),
61
+ age: z.number().int().positive().optional(),
62
+ })
63
+
64
+ async function handleCreateUser(request: Request) {
65
+ try {
66
+ const body = await request.json()
67
+ const validated = userSchema.parse(body) // Throws on invalid data
68
+ return new Response(JSON.stringify({ id: 1, ...validated }), {
69
+ status: 201,
70
+ headers: { 'Content-Type': 'application/json' },
71
+ })
72
+ } catch (err) {
73
+ if (err instanceof z.ZodError) {
74
+ return new Response(JSON.stringify({ errors: err.errors }), { status: 400 })
75
+ }
76
+ throw err
77
+ }
78
+ }
79
+ ```
80
+
81
+ **With Hono**: Use `@hono/zod-validator` for automatic validation (see [frameworks.md](./frameworks.md))
82
+
83
+ ## Performance
84
+
85
+ ```typescript
86
+ // ❌ Sequential
87
+ const user = await fetch('/api/user/1')
88
+ const posts = await fetch('/api/posts?user=1')
89
+
90
+ // ✅ Parallel
91
+ const [user, posts] = await Promise.all([fetch('/api/user/1'), fetch('/api/posts?user=1')])
92
+ ```
93
+
94
+ ## Streaming
95
+
96
+ ```typescript
97
+ const stream = new ReadableStream({
98
+ async start(controller) {
99
+ for (let i = 0; i < 1000; i++) {
100
+ controller.enqueue(new TextEncoder().encode(`Item ${i}\n`))
101
+ if (i % 100 === 0) await new Promise((r) => setTimeout(r, 0))
102
+ }
103
+ controller.close()
104
+ },
105
+ })
106
+ ```
107
+
108
+ ## Transform Streams
109
+
110
+ ```typescript
111
+ response.body
112
+ .pipeThrough(new TextDecoderStream())
113
+ .pipeThrough(
114
+ new TransformStream({
115
+ transform(chunk, c) {
116
+ c.enqueue(chunk.toUpperCase())
117
+ },
118
+ })
119
+ )
120
+ .pipeThrough(new TextEncoderStream())
121
+ ```
122
+
123
+ ## Testing
124
+
125
+ ```typescript
126
+ import { describe, it, expect } from 'vitest'
127
+ import worker from '../src/index'
128
+
129
+ describe('Worker', () => {
130
+ it('returns 200', async () => {
131
+ const req = new Request('http://localhost/')
132
+ const env = { MY_VAR: 'test' }
133
+ const ctx = { waitUntil: () => {}, passThroughOnException: () => {} }
134
+ expect((await worker.fetch(req, env, ctx)).status).toBe(200)
135
+ })
136
+ })
137
+ ```
138
+
139
+ ## Deployment
140
+
141
+ ```bash
142
+ npx wrangler deploy # production
143
+ npx wrangler deploy --env staging
144
+ npx wrangler versions upload --message "Add feature"
145
+ npx wrangler rollback
146
+ ```
147
+
148
+ ## Monitoring
149
+
150
+ ```typescript
151
+ const start = Date.now()
152
+ const response = await handleRequest(request, env)
153
+ ctx.waitUntil(
154
+ env.ANALYTICS.writeDataPoint({
155
+ doubles: [Date.now() - start],
156
+ blobs: [request.url, String(response.status)],
157
+ })
158
+ )
159
+ ```
160
+
161
+ ## Security & Rate Limiting
162
+
163
+ ```typescript
164
+ // Security headers
165
+ const security = { 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'DENY' }
166
+
167
+ // Auth
168
+ const auth = request.headers.get('Authorization')
169
+ if (!auth?.startsWith('Bearer ')) return new Response('Unauthorized', { status: 401 })
170
+
171
+ // Gradual rollouts (deterministic user bucketing)
172
+ const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(userId))
173
+ if (new Uint8Array(hash)[0] % 100 < rolloutPercent) return newFeature(request)
174
+ ```
175
+
176
+ Rate limiting: See [Durable Objects](../durable-objects/README.md)
177
+
178
+ ## R2 Multipart Upload
179
+
180
+ ```typescript
181
+ // For files > 100MB
182
+ const upload = await env.MY_BUCKET.createMultipartUpload('large-file.bin')
183
+ try {
184
+ const parts = []
185
+ for (let i = 0; i < chunks.length; i++) {
186
+ parts.push(await upload.uploadPart(i + 1, chunks[i]))
187
+ }
188
+ await upload.complete(parts)
189
+ } catch (err) {
190
+ await upload.abort()
191
+ throw err
192
+ }
193
+ ```
194
+
195
+ Parallel uploads, resume on failure, handle files > 5GB
196
+
197
+ ## Workflows (Step Orchestration)
198
+
199
+ ```typescript
200
+ import { WorkflowEntrypoint, WorkflowStep, WorkflowEvent } from 'cloudflare:workers'
201
+
202
+ export class MyWorkflow extends WorkflowEntrypoint {
203
+ async run(event: WorkflowEvent<{ userId: string }>, step: WorkflowStep) {
204
+ const user = await step.do('fetch-user', async () =>
205
+ fetch(`/api/users/${event.payload.userId}`).then((r) => r.json())
206
+ )
207
+ await step.sleep('wait', '1 hour')
208
+ await step.do('notify', async () => sendEmail(user.email))
209
+ }
210
+ }
211
+ ```
212
+
213
+ Multi-step jobs with automatic retries, state persistence, resume from failure
214
+
215
+ ## See Also
216
+
217
+ - [API](./api.md) - Runtime APIs
218
+ - [Gotchas](./gotchas.md) - Common issues
219
+ - [Configuration](./configuration.md) - Setup
220
+ - [Frameworks](./frameworks.md) - Hono, routing, validation