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,216 @@
1
+ # Configuration
2
+
3
+ ## wrangler.jsonc
4
+
5
+ ```jsonc
6
+ {
7
+ "name": "my-pages-project",
8
+ "pages_build_output_dir": "./dist",
9
+ "compatibility_date": "2026-01-01", // Use current date for new projects
10
+ "compatibility_flags": ["nodejs_compat"],
11
+ "placement": {
12
+ "mode": "smart", // Optional: Enable Smart Placement
13
+ },
14
+ "kv_namespaces": [{ "binding": "KV", "id": "abcd1234..." }],
15
+ "d1_databases": [
16
+ { "binding": "DB", "database_id": "xxxx-xxxx", "database_name": "production-db" },
17
+ ],
18
+ "r2_buckets": [{ "binding": "BUCKET", "bucket_name": "my-bucket" }],
19
+ "durable_objects": {
20
+ "bindings": [{ "name": "COUNTER", "class_name": "Counter", "script_name": "counter-worker" }],
21
+ },
22
+ "services": [{ "binding": "API", "service": "api-worker" }],
23
+ "queues": { "producers": [{ "binding": "QUEUE", "queue": "my-queue" }] },
24
+ "vectorize": [{ "binding": "VECTORIZE", "index_name": "my-index" }],
25
+ "ai": { "binding": "AI" },
26
+ "analytics_engine_datasets": [{ "binding": "ANALYTICS" }],
27
+ "vars": { "API_URL": "https://api.example.com", "ENVIRONMENT": "production" },
28
+ "env": {
29
+ "preview": {
30
+ "vars": { "API_URL": "https://staging-api.example.com" },
31
+ "kv_namespaces": [{ "binding": "KV", "id": "preview-namespace-id" }],
32
+ },
33
+ },
34
+ }
35
+ ```
36
+
37
+ ## Build Config
38
+
39
+ **Git deployment**: Dashboard → Project → Settings → Build settings
40
+ Set build command, output dir, env vars. Framework auto-detection configures automatically.
41
+
42
+ ## Environment Variables
43
+
44
+ ### Local (.dev.vars)
45
+
46
+ ```bash
47
+ # .dev.vars (never commit)
48
+ SECRET_KEY="local-secret-key"
49
+ API_TOKEN="dev-token-123"
50
+ ```
51
+
52
+ ### Production
53
+
54
+ ```bash
55
+ echo "secret-value" | npx wrangler pages secret put SECRET_KEY --project-name=my-project
56
+ npx wrangler pages secret list --project-name=my-project
57
+ npx wrangler pages secret delete SECRET_KEY --project-name=my-project
58
+ ```
59
+
60
+ Access: `env.SECRET_KEY`
61
+
62
+ ## Static Config Files
63
+
64
+ ### \_redirects
65
+
66
+ Place in build output (e.g., `dist/_redirects`):
67
+
68
+ ```txt
69
+ /old-page /new-page 301 # 301 redirect
70
+ /blog/* /news/:splat 301 # Splat wildcard
71
+ /users/:id /members/:id 301 # Placeholders
72
+ /api/* /api-v2/:splat 200 # Proxy (no redirect)
73
+ ```
74
+
75
+ **Limits**: 2,100 total (2,000 static + 100 dynamic), 1,000 char/line
76
+ **Note**: Functions take precedence
77
+
78
+ ### \_headers
79
+
80
+ ```txt
81
+ /secure/*
82
+ X-Frame-Options: DENY
83
+ X-Content-Type-Options: nosniff
84
+
85
+ /api/*
86
+ Access-Control-Allow-Origin: *
87
+
88
+ /static/*
89
+ Cache-Control: public, max-age=31536000, immutable
90
+ ```
91
+
92
+ **Limits**: 100 rules, 2,000 char/line
93
+ **Note**: Only static assets; Functions set headers in Response
94
+
95
+ ### \_routes.json
96
+
97
+ Controls which requests invoke Functions (auto-generated for most frameworks):
98
+
99
+ ```json
100
+ {
101
+ "version": 1,
102
+ "include": ["/*"],
103
+ "exclude": ["/build/*", "/static/*", "/assets/*", "/*.{ico,png,jpg,css,js}"]
104
+ }
105
+ ```
106
+
107
+ **Purpose**: Functions are metered; static requests are free. `exclude` takes precedence. Max 100 rules, 100 char/rule.
108
+
109
+ ## TypeScript
110
+
111
+ ```bash
112
+ npx wrangler types --path='./functions/types.d.ts'
113
+ ```
114
+
115
+ Point `types` in `functions/tsconfig.json` to generated file.
116
+
117
+ ## Smart Placement
118
+
119
+ Automatically optimizes function execution location based on request patterns.
120
+
121
+ ```jsonc
122
+ {
123
+ "placement": {
124
+ "mode": "smart", // Enable optimization (default: off)
125
+ },
126
+ }
127
+ ```
128
+
129
+ **How it works**: System analyzes traffic over hours/days and places function execution closer to:
130
+
131
+ - User clusters (e.g., regional traffic)
132
+ - Data sources (e.g., D1 database primary location)
133
+
134
+ **Benefits**:
135
+
136
+ - Lower latency for read-heavy apps with centralized databases
137
+ - Better performance for apps with regional traffic patterns
138
+
139
+ **Trade-offs**:
140
+
141
+ - Initial learning period: First requests may be slower while system optimizes
142
+ - Optimization time: Performance improves over 24-48 hours
143
+
144
+ **When to enable**: Global apps with D1/Durable Objects in specific regions, or apps with concentrated geographic traffic.
145
+
146
+ **When to skip**: Evenly distributed global traffic with no data locality constraints.
147
+
148
+ ## Remote Bindings (Local Dev)
149
+
150
+ Connect local dev server to production bindings instead of local mocks:
151
+
152
+ ```bash
153
+ # All bindings remote
154
+ npx wrangler pages dev ./dist --remote
155
+
156
+ # Specific bindings remote (others local)
157
+ npx wrangler pages dev ./dist --remote --kv=KV --d1=DB
158
+ ```
159
+
160
+ **Use cases**:
161
+
162
+ - Test against production data (read-only operations)
163
+ - Debug binding-specific behavior
164
+ - Validate changes before deployment
165
+
166
+ **⚠️ Warning**:
167
+
168
+ - Writes affect **real production data**
169
+ - Use only for read-heavy debugging or with non-production accounts
170
+ - Consider creating separate preview environments instead
171
+
172
+ **Requirements**: Must be logged in (`npx wrangler login`) with access to bindings.
173
+
174
+ ## Local Dev
175
+
176
+ ```bash
177
+ # Basic
178
+ npx wrangler pages dev ./dist
179
+
180
+ # With bindings
181
+ npx wrangler pages dev ./dist --kv KV --d1 DB=local-db-id
182
+
183
+ # Remote bindings (production data)
184
+ npx wrangler pages dev ./dist --remote
185
+
186
+ # Persistence
187
+ npx wrangler pages dev ./dist --persist-to=./.wrangler/state/v3
188
+
189
+ # Proxy mode (SSR frameworks)
190
+ npx wrangler pages dev -- npm run dev
191
+ ```
192
+
193
+ ## Limits (as of Jan 2026)
194
+
195
+ | Resource | Free | Paid |
196
+ | ---------------------- | ------------------------------- | ----------------------------- |
197
+ | **Functions Requests** | 100k/day | Unlimited (metered) |
198
+ | **Function CPU Time** | 10ms/req | 30ms/req (Workers Paid) |
199
+ | **Function Memory** | 128MB | 128MB |
200
+ | **Script Size** | 1MB compressed | 10MB compressed |
201
+ | **Deployments** | 500/month | 5,000/month |
202
+ | **Files per Deploy** | 20,000 | 20,000 |
203
+ | **File Size** | 25MB | 25MB |
204
+ | **Build Time** | 20min | 20min |
205
+ | **Redirects** | 2,100 (2k static + 100 dynamic) | Same |
206
+ | **Header Rules** | 100 | 100 |
207
+ | **Route Rules** | 100 | 100 |
208
+ | **Subrequests** | 50/request | 10,000/request (Workers Paid) |
209
+
210
+ **Notes**:
211
+
212
+ - Functions use Workers runtime; Workers Paid plan increases limits
213
+ - Free plan sufficient for most projects
214
+ - Static requests always free (not counted toward limits)
215
+
216
+ [Full limits](https://developers.cloudflare.com/pages/platform/limits/)
@@ -0,0 +1,218 @@
1
+ # Gotchas
2
+
3
+ ## Functions Not Running
4
+
5
+ **Problem**: Function endpoints return 404 or don't execute
6
+ **Causes**: `_routes.json` excludes path; wrong file extension (`.jsx`/`.tsx`); Functions dir not at output root
7
+ **Solution**: Check `_routes.json`, rename to `.ts`/`.js`, verify build output structure
8
+
9
+ ## 404 on Static Assets
10
+
11
+ **Problem**: Static files not serving
12
+ **Causes**: Build output dir misconfigured; Functions catching requests; Advanced mode missing `env.ASSETS.fetch()`
13
+ **Solution**: Verify output dir, add exclusions to `_routes.json`, call `env.ASSETS.fetch()` in `_worker.js`
14
+
15
+ ## Bindings Not Working
16
+
17
+ **Problem**: `env.BINDING` undefined or errors
18
+ **Causes**: wrangler.jsonc syntax error; wrong binding IDs; missing `.dev.vars`; out-of-sync types
19
+ **Solution**: Validate config, verify IDs, create `.dev.vars`, run `npx wrangler types`
20
+
21
+ ## Build Failures
22
+
23
+ **Problem**: Deployment fails during build
24
+ **Causes**: Wrong build command/output dir; Node version incompatibility; missing env vars; 20min timeout; OOM
25
+ **Solution**: Check Dashboard → Deployments → Build log; verify settings; add `.nvmrc`; optimize build
26
+
27
+ ## Middleware Not Running
28
+
29
+ **Problem**: Middleware doesn't execute
30
+ **Causes**: Wrong filename (not `_middleware.ts`); missing `onRequest` export; didn't call `next()`
31
+ **Solution**: Rename file with underscore prefix; export handler; call `next()` or return Response
32
+
33
+ ## Headers/Redirects Not Working
34
+
35
+ **Problem**: `_headers` or `_redirects` not applying
36
+ **Causes**: Only work for static assets; Functions override; syntax errors; exceeded limits
37
+ **Solution**: Set headers in Response object for Functions; verify syntax; check limits (100 headers, 2,100 redirects)
38
+
39
+ ## TypeScript Errors
40
+
41
+ **Problem**: Type errors in Functions code
42
+ **Causes**: Types not generated; Env interface doesn't match wrangler.jsonc
43
+ **Solution**: Run `npx wrangler types --path='./functions/types.d.ts'`; update Env interface
44
+
45
+ ## Local Dev Issues
46
+
47
+ **Problem**: Dev server errors or bindings don't work
48
+ **Causes**: Port conflict; bindings not passed; local vs HTTPS differences
49
+ **Solution**: Use `--port=3000`; pass bindings via CLI or wrangler.jsonc; account for HTTP/HTTPS differences
50
+
51
+ ## Performance Issues
52
+
53
+ **Problem**: Slow responses or CPU limit errors
54
+ **Causes**: Functions invoked for static assets; cold starts; 10ms CPU limit; large bundle
55
+ **Solution**: Exclude static via `_routes.json`; optimize hot paths; keep bundle < 1MB
56
+
57
+ ## Framework-Specific
58
+
59
+ ### ⚠️ Deprecated Frameworks
60
+
61
+ **Next.js**: Official adapter (`@cloudflare/next-on-pages`) **deprecated** and unmaintained.
62
+
63
+ - **Problem**: No updates since 2024; incompatible with Next.js 15+; missing App Router features
64
+ - **Cause**: Cloudflare discontinued official support; community fork exists but limited
65
+ - **Solutions**:
66
+ 1. **Recommended**: Use Vercel (official Next.js host)
67
+ 2. **Advanced**: Self-host on Workers using custom adapter (complex, unsupported)
68
+ 3. **Migration**: Switch to SvelteKit/Nuxt (similar DX, full Pages support)
69
+
70
+ **Remix**: Official adapter (`@remix-run/cloudflare-pages`) **deprecated**.
71
+
72
+ - **Problem**: No maintenance from Remix team; compatibility issues with Remix v2+
73
+ - **Cause**: Remix team deprecated all framework adapters
74
+ - **Solutions**:
75
+ 1. **Recommended**: Migrate to SvelteKit (similar file-based routing, better DX)
76
+ 2. **Alternative**: Use Astro (static-first with optional SSR)
77
+ 3. **Workaround**: Continue using deprecated adapter (no future support)
78
+
79
+ ### ✅ Supported Frameworks
80
+
81
+ **SvelteKit**:
82
+
83
+ - Use `@sveltejs/adapter-cloudflare`
84
+ - Access bindings via `platform.env` in server load functions
85
+ - Set `platform: 'cloudflare'` in `svelte.config.js`
86
+
87
+ **Astro**:
88
+
89
+ - Built-in Cloudflare adapter
90
+ - Access bindings via `Astro.locals.runtime.env`
91
+
92
+ **Nuxt**:
93
+
94
+ - Set `nitro.preset: 'cloudflare-pages'` in `nuxt.config.ts`
95
+ - Access bindings via `event.context.cloudflare.env`
96
+
97
+ **Qwik, Solid Start**:
98
+
99
+ - Built-in or official Cloudflare adapters available
100
+ - Check respective framework docs for binding access
101
+
102
+ ## Debugging
103
+
104
+ ```typescript
105
+ // Log request details
106
+ console.log('Request:', { method: request.method, url: request.url })
107
+ console.log('Env:', Object.keys(env))
108
+ console.log('Params:', params)
109
+ ```
110
+
111
+ **View logs**: `npx wrangler pages deployment tail --project-name=my-project`
112
+
113
+ ## Smart Placement Issues
114
+
115
+ ### Increased Cold Start Latency
116
+
117
+ **Problem**: First requests slower after enabling Smart Placement
118
+ **Cause**: Initial optimization period while system learns traffic patterns
119
+ **Solution**: Expected behavior during first 24-48 hours; monitor latency trends over time
120
+
121
+ ### Inconsistent Response Times
122
+
123
+ **Problem**: Latency varies significantly across requests during initial deployment
124
+ **Cause**: Smart Placement testing different execution locations to find optimal placement
125
+ **Solution**: Normal during learning phase; stabilizes after traffic patterns emerge (1-2 days)
126
+
127
+ ### No Performance Improvement
128
+
129
+ **Problem**: Smart Placement enabled but no latency reduction observed
130
+ **Cause**: Traffic evenly distributed globally, or no data locality constraints
131
+ **Solution**: Smart Placement most effective with centralized data (D1/DO) or regional traffic; disable if no benefit
132
+
133
+ ## Remote Bindings Issues
134
+
135
+ ### Accidentally Modified Production Data
136
+
137
+ **Problem**: Local dev with `--remote` altered production database/KV
138
+ **Cause**: Remote bindings connect directly to production resources; writes are real
139
+ **Solution**:
140
+
141
+ - Use `--remote` only for read-heavy debugging
142
+ - Create separate preview environments for testing
143
+ - Never use `--remote` for write operations during development
144
+
145
+ ### Remote Binding Auth Errors
146
+
147
+ **Problem**: `npx wrangler pages dev --remote` fails with "Unauthorized" or auth error
148
+ **Cause**: Not logged in, session expired, or insufficient account permissions
149
+ **Solution**:
150
+
151
+ 1. Run `npx wrangler login` to re-authenticate
152
+ 2. Verify account has access to project and bindings
153
+ 3. Check binding IDs match production configuration
154
+
155
+ ### Slow Local Dev with Remote Bindings
156
+
157
+ **Problem**: Local dev server slow when using `--remote`
158
+ **Cause**: Every request makes network calls to production bindings
159
+ **Solution**: Use local bindings for development; reserve `--remote` for final validation
160
+
161
+ ## Common Errors
162
+
163
+ ### "Module not found"
164
+
165
+ **Cause**: Dependencies not bundled or build output incorrect
166
+ **Solution**: Check build output directory, ensure dependencies bundled
167
+
168
+ ### "Binding not found"
169
+
170
+ **Cause**: Binding not configured or types out of sync
171
+ **Solution**: Verify wrangler.jsonc, run `npx wrangler types`
172
+
173
+ ### "Request exceeded CPU limit"
174
+
175
+ **Cause**: Code execution too slow or heavy compute
176
+ **Solution**: Optimize hot paths, upgrade to Workers Paid
177
+
178
+ ### "Script too large"
179
+
180
+ **Cause**: Bundle size exceeds limit
181
+ **Solution**: Tree-shake, use dynamic imports, code-split
182
+
183
+ ### "Too many subrequests"
184
+
185
+ **Cause**: Exceeded 50 subrequest limit
186
+ **Solution**: Batch or reduce fetch calls
187
+
188
+ ### "KV key not found"
189
+
190
+ **Cause**: Key doesn't exist or wrong namespace
191
+ **Solution**: Check namespace matches environment
192
+
193
+ ### "D1 error"
194
+
195
+ **Cause**: Wrong database_id or missing migrations
196
+ **Solution**: Verify config, run `wrangler d1 migrations list`
197
+
198
+ ## Limits Reference (Jan 2026)
199
+
200
+ | Resource | Free | Paid |
201
+ | ------------------ | --------- | ----------- |
202
+ | Functions Requests | 100k/day | Unlimited |
203
+ | CPU Time | 10ms/req | 30ms/req |
204
+ | Memory | 128MB | 128MB |
205
+ | Script Size | 1MB | 10MB |
206
+ | Subrequests | 50/req | 10,000/req |
207
+ | Deployments | 500/month | 5,000/month |
208
+
209
+ **Tip**: Hitting CPU limit? Optimize hot paths or upgrade to Workers Paid plan.
210
+
211
+ [Full limits](https://developers.cloudflare.com/pages/platform/limits/)
212
+
213
+ ## Getting Help
214
+
215
+ 1. Check [Pages Docs](https://developers.cloudflare.com/pages/)
216
+ 2. Search [Discord #functions](https://discord.com/channels/595317990191398933/910978223968518144)
217
+ 3. Review [Workers Examples](https://developers.cloudflare.com/workers/examples/)
218
+ 4. Check framework-specific docs/adapters
@@ -0,0 +1,215 @@
1
+ # Patterns
2
+
3
+ ## API Routes
4
+
5
+ ```typescript
6
+ // functions/api/todos/[id].ts
7
+ export const onRequestGet: PagesFunction<Env> = async ({ env, params }) => {
8
+ const todo = await env.DB.prepare('SELECT * FROM todos WHERE id = ?').bind(params.id).first()
9
+ if (!todo) return new Response('Not found', { status: 404 })
10
+ return Response.json(todo)
11
+ }
12
+
13
+ export const onRequestPut: PagesFunction<Env> = async ({ env, params, request }) => {
14
+ const body = await request.json()
15
+ await env.DB.prepare('UPDATE todos SET title = ?, completed = ? WHERE id = ?')
16
+ .bind(body.title, body.completed, params.id)
17
+ .run()
18
+ return Response.json({ success: true })
19
+ }
20
+ // Also: onRequestDelete, onRequestPost
21
+ ```
22
+
23
+ ## Auth Middleware
24
+
25
+ ```typescript
26
+ // functions/_middleware.ts
27
+ const auth: PagesFunction<Env> = async (context) => {
28
+ if (context.request.url.includes('/public/')) return context.next()
29
+ const authHeader = context.request.headers.get('Authorization')
30
+ if (!authHeader?.startsWith('Bearer ')) {
31
+ return new Response('Unauthorized', { status: 401 })
32
+ }
33
+
34
+ try {
35
+ const payload = await verifyJWT(authHeader.substring(7), context.env.JWT_SECRET)
36
+ context.data.user = payload
37
+ return context.next()
38
+ } catch (err) {
39
+ return new Response('Invalid token', { status: 401 })
40
+ }
41
+ }
42
+ export const onRequest = [auth]
43
+ ```
44
+
45
+ ## CORS
46
+
47
+ ```typescript
48
+ // functions/api/_middleware.ts
49
+ const corsHeaders = {
50
+ 'Access-Control-Allow-Origin': '*',
51
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
52
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
53
+ }
54
+
55
+ export const onRequest: PagesFunction = async (context) => {
56
+ if (context.request.method === 'OPTIONS') {
57
+ return new Response(null, { headers: corsHeaders })
58
+ }
59
+ const response = await context.next()
60
+ Object.entries(corsHeaders).forEach(([k, v]) => response.headers.set(k, v))
61
+ return response
62
+ }
63
+ ```
64
+
65
+ ## Form Handling
66
+
67
+ ```typescript
68
+ // functions/api/contact.ts
69
+ export const onRequestPost: PagesFunction<Env> = async ({ request, env }) => {
70
+ const formData = await request.formData()
71
+ await env.QUEUE.send({ name: formData.get('name'), email: formData.get('email') })
72
+ return new Response('<h1>Thanks!</h1>', { headers: { 'Content-Type': 'text/html' } })
73
+ }
74
+ ```
75
+
76
+ ## Background Tasks
77
+
78
+ ```typescript
79
+ export const onRequestPost: PagesFunction = async ({ request, waitUntil }) => {
80
+ const data = await request.json()
81
+ waitUntil(
82
+ fetch('https://api.example.com/webhook', {
83
+ method: 'POST',
84
+ body: JSON.stringify(data),
85
+ })
86
+ )
87
+ return Response.json({ queued: true })
88
+ }
89
+ ```
90
+
91
+ ## Error Handling
92
+
93
+ ```typescript
94
+ // functions/_middleware.ts
95
+ const errorHandler: PagesFunction = async (context) => {
96
+ try {
97
+ return await context.next()
98
+ } catch (error) {
99
+ console.error('Error:', error)
100
+ if (context.request.url.includes('/api/')) {
101
+ return Response.json({ error: error.message }, { status: 500 })
102
+ }
103
+ return new Response(`<h1>Error</h1><p>${error.message}</p>`, {
104
+ status: 500,
105
+ headers: { 'Content-Type': 'text/html' },
106
+ })
107
+ }
108
+ }
109
+ export const onRequest = [errorHandler]
110
+ ```
111
+
112
+ ## Caching
113
+
114
+ ```typescript
115
+ // functions/api/data.ts
116
+ export const onRequestGet: PagesFunction<Env> = async ({ env, request }) => {
117
+ const cacheKey = `data:${new URL(request.url).pathname}`
118
+ const cached = await env.KV.get(cacheKey, 'json')
119
+ if (cached) return Response.json(cached, { headers: { 'X-Cache': 'HIT' } })
120
+
121
+ const data = await env.DB.prepare('SELECT * FROM data').first()
122
+ await env.KV.put(cacheKey, JSON.stringify(data), { expirationTtl: 3600 })
123
+ return Response.json(data, { headers: { 'X-Cache': 'MISS' } })
124
+ }
125
+ ```
126
+
127
+ ## Smart Placement for Database Apps
128
+
129
+ Enable Smart Placement for apps with D1 or centralized data sources:
130
+
131
+ ```jsonc
132
+ // wrangler.jsonc
133
+ {
134
+ "name": "global-app",
135
+ "placement": {
136
+ "mode": "smart",
137
+ },
138
+ "d1_databases": [
139
+ {
140
+ "binding": "DB",
141
+ "database_id": "your-db-id",
142
+ },
143
+ ],
144
+ }
145
+ ```
146
+
147
+ ```typescript
148
+ // functions/api/data.ts
149
+ export const onRequestGet: PagesFunction<Env> = async ({ env }) => {
150
+ // Smart Placement optimizes execution location over time
151
+ // Balances user location vs database location
152
+ const data = await env.DB.prepare('SELECT * FROM products LIMIT 10').all()
153
+ return Response.json(data)
154
+ }
155
+ ```
156
+
157
+ **Best for**: Read-heavy apps with D1/Durable Objects in specific regions.
158
+ **Not needed**: Apps without data locality constraints or with evenly distributed traffic.
159
+
160
+ ## Framework Integration
161
+
162
+ **Supported** (2026): SvelteKit, Astro, Nuxt, Qwik, Solid Start
163
+
164
+ ```bash
165
+ npm create cloudflare@latest my-app -- --framework=svelte
166
+ ```
167
+
168
+ ### SvelteKit
169
+
170
+ ```typescript
171
+ // src/routes/+page.server.ts
172
+ export const load = async ({ platform }) => {
173
+ const todos = await platform.env.DB.prepare('SELECT * FROM todos').all()
174
+ return { todos: todos.results }
175
+ }
176
+ ```
177
+
178
+ ### Astro
179
+
180
+ ```astro
181
+ ---
182
+ const { DB } = Astro.locals.runtime.env;
183
+ const todos = await DB.prepare('SELECT * FROM todos').all();
184
+ ---
185
+ <ul>{todos.results.map(t => <li>{t.title}</li>)}</ul>
186
+ ```
187
+
188
+ ### Nuxt
189
+
190
+ ```typescript
191
+ // server/api/todos.get.ts
192
+ export default defineEventHandler(async (event) => {
193
+ const { DB } = event.context.cloudflare.env
194
+ return await DB.prepare('SELECT * FROM todos').all()
195
+ })
196
+ ```
197
+
198
+ **⚠️ Framework Status** (2026):
199
+
200
+ - ✅ **Supported**: SvelteKit, Astro, Nuxt, Qwik, Solid Start
201
+ - ❌ **Deprecated**: Next.js (`@cloudflare/next-on-pages`), Remix (`@remix-run/cloudflare-pages`)
202
+
203
+ For deprecated frameworks, see [gotchas.md](./gotchas.md#framework-specific) for migration options.
204
+
205
+ [Framework Guides](https://developers.cloudflare.com/pages/framework-guides/)
206
+
207
+ ## Monorepo
208
+
209
+ Dashboard → Settings → Build → Root directory. Set to subproject (e.g., `apps/web`).
210
+
211
+ ## Best Practices
212
+
213
+ **Performance**: Exclude static via `_routes.json`; cache with KV; keep bundle < 1MB
214
+ **Security**: Use secrets (not vars); validate inputs; rate limit with KV/DO
215
+ **Workflow**: Preview per branch; local dev with `wrangler pages dev`; instant rollbacks in Dashboard