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,206 @@
1
+ ## Common Use Cases
2
+
3
+ ### 1. SSH Server Protection
4
+
5
+ **Terraform:**
6
+
7
+ ```hcl
8
+ resource "cloudflare_spectrum_application" "ssh" {
9
+ zone_id = var.zone_id
10
+ protocol = "tcp/22"
11
+
12
+ dns {
13
+ type = "CNAME"
14
+ name = "ssh.example.com"
15
+ }
16
+
17
+ origin_direct = ["tcp://10.0.1.5:22"]
18
+ ip_firewall = true
19
+ argo_smart_routing = true
20
+ }
21
+ ```
22
+
23
+ **Benefits:** Hide origin IP, DDoS protection, IP firewall, Argo reduces latency
24
+
25
+ ### 2. Game Server
26
+
27
+ **TypeScript (Minecraft):**
28
+
29
+ ```typescript
30
+ const app = await client.spectrum.apps.create({
31
+ zone_id: 'your-zone-id',
32
+ protocol: 'tcp/25565',
33
+ dns: { type: 'CNAME', name: 'mc.example.com' },
34
+ origin_direct: ['tcp://192.168.1.10:25565'],
35
+ proxy_protocol: 'v1', // Preserves player IPs
36
+ argo_smart_routing: true,
37
+ })
38
+ ```
39
+
40
+ **Benefits:** DDoS protection, hide origin IP, Proxy Protocol for player IPs/bans, Argo reduces latency
41
+
42
+ ### 3. MQTT Broker
43
+
44
+ IoT device communication.
45
+
46
+ **TypeScript:**
47
+
48
+ ```typescript
49
+ const mqttApp = await client.spectrum.apps.create({
50
+ zone_id: 'your-zone-id',
51
+ protocol: 'tcp/8883', // Use 1883 for plain MQTT
52
+ dns: { type: 'CNAME', name: 'mqtt.example.com' },
53
+ origin_direct: ['tcp://mqtt-broker.internal:8883'],
54
+ tls: 'full', // Use 'off' for plain MQTT
55
+ })
56
+ ```
57
+
58
+ **Benefits:** DDoS protection, hide broker IP, TLS termination at edge
59
+
60
+ ### 4. SMTP Relay
61
+
62
+ Email submission (port 587). **WARNING**: See [gotchas.md](gotchas.md#smtp-reverse-dns)
63
+
64
+ **Terraform:**
65
+
66
+ ```hcl
67
+ resource "cloudflare_spectrum_application" "smtp" {
68
+ zone_id = var.zone_id
69
+ protocol = "tcp/587"
70
+
71
+ dns {
72
+ type = "CNAME"
73
+ name = "smtp.example.com"
74
+ }
75
+
76
+ origin_direct = ["tcp://mail-server.internal:587"]
77
+ tls = "full" # STARTTLS support
78
+ }
79
+ ```
80
+
81
+ **Limitations:**
82
+
83
+ - Spectrum IPs lack reverse DNS (PTR records)
84
+ - Many mail servers reject without valid rDNS
85
+ - Best for internal/trusted relay only
86
+
87
+ ### 5. Database Proxy
88
+
89
+ MySQL/PostgreSQL. **Use with caution** - security critical.
90
+
91
+ **PostgreSQL:**
92
+
93
+ ```typescript
94
+ const postgresApp = await client.spectrum.apps.create({
95
+ zone_id: 'your-zone-id',
96
+ protocol: 'tcp/5432',
97
+ dns: { type: 'CNAME', name: 'postgres.example.com' },
98
+ origin_dns: { name: 'db-primary.internal.example.com' },
99
+ origin_port: 5432,
100
+ tls: 'strict', // REQUIRED
101
+ ip_firewall: true, // REQUIRED
102
+ })
103
+ ```
104
+
105
+ **MySQL:**
106
+
107
+ ```hcl
108
+ resource "cloudflare_spectrum_application" "mysql" {
109
+ zone_id = var.zone_id
110
+ protocol = "tcp/3306"
111
+
112
+ dns {
113
+ type = "CNAME"
114
+ name = "mysql.example.com"
115
+ }
116
+
117
+ origin_dns {
118
+ name = "mysql-primary.internal.example.com"
119
+ }
120
+
121
+ origin_port = 3306
122
+ tls = "strict"
123
+ ip_firewall = true
124
+ }
125
+ ```
126
+
127
+ **Security:**
128
+
129
+ - ALWAYS use `tls: "strict"`
130
+ - ALWAYS use `ip_firewall: true`
131
+ - Restrict to known IPs via zone firewall
132
+ - Use strong DB authentication
133
+ - Consider VPN or Cloudflare Access instead
134
+
135
+ ### 6. RDP (Remote Desktop)
136
+
137
+ **Requires IP firewall.**
138
+
139
+ **Terraform:**
140
+
141
+ ```hcl
142
+ resource "cloudflare_spectrum_application" "rdp" {
143
+ zone_id = var.zone_id
144
+ protocol = "tcp/3389"
145
+
146
+ dns {
147
+ type = "CNAME"
148
+ name = "rdp.example.com"
149
+ }
150
+
151
+ origin_direct = ["tcp://windows-server.internal:3389"]
152
+ tls = "off" # RDP has own encryption
153
+ ip_firewall = true # REQUIRED
154
+ }
155
+ ```
156
+
157
+ **Security:** ALWAYS `ip_firewall: true`, whitelist admin IPs, RDP is DDoS/brute-force target
158
+
159
+ ### 7. Multi-Origin Failover
160
+
161
+ High availability with load balancer.
162
+
163
+ **Terraform:**
164
+
165
+ ```hcl
166
+ resource "cloudflare_load_balancer" "database_lb" {
167
+ zone_id = var.zone_id
168
+ name = "db-lb.example.com"
169
+ default_pool_ids = [cloudflare_load_balancer_pool.db_primary.id]
170
+ fallback_pool_id = cloudflare_load_balancer_pool.db_secondary.id
171
+ }
172
+
173
+ resource "cloudflare_load_balancer_pool" "db_primary" {
174
+ name = "db-primary-pool"
175
+ origins { name = "db-1"; address = "192.0.2.1" }
176
+ monitor = cloudflare_load_balancer_monitor.postgres_monitor.id
177
+ }
178
+
179
+ resource "cloudflare_load_balancer_pool" "db_secondary" {
180
+ name = "db-secondary-pool"
181
+ origins { name = "db-2"; address = "192.0.2.2" }
182
+ monitor = cloudflare_load_balancer_monitor.postgres_monitor.id
183
+ }
184
+
185
+ resource "cloudflare_load_balancer_monitor" "postgres_monitor" {
186
+ type = "tcp"; port = 5432; interval = 30; timeout = 5
187
+ }
188
+
189
+ resource "cloudflare_spectrum_application" "postgres_ha" {
190
+ zone_id = var.zone_id
191
+ protocol = "tcp/5432"
192
+ dns { type = "CNAME"; name = "postgres.example.com" }
193
+ origin_dns { name = cloudflare_load_balancer.database_lb.name }
194
+ origin_port = 5432
195
+ tls = "strict"
196
+ ip_firewall = true
197
+ }
198
+ ```
199
+
200
+ **Benefits:** Automatic failover, health monitoring, traffic distribution, zero-downtime deployments
201
+
202
+ ## See Also
203
+
204
+ - [configuration.md](configuration.md) - Origin type setup
205
+ - [gotchas.md](gotchas.md) - Protocol limitations
206
+ - [api.md](api.md) - SDK reference
@@ -0,0 +1,65 @@
1
+ # Cloudflare Static Assets Skill Reference
2
+
3
+ Expert guidance for deploying and configuring static assets with Cloudflare Workers. This skill covers configuration patterns, routing architectures, asset binding usage, and best practices for SPAs, SSG sites, and full-stack applications.
4
+
5
+ ## Quick Start
6
+
7
+ ```jsonc
8
+ // wrangler.jsonc
9
+ {
10
+ "name": "my-app",
11
+ "main": "src/index.ts",
12
+ "compatibility_date": "2025-01-01",
13
+ "assets": {
14
+ "directory": "./dist",
15
+ },
16
+ }
17
+ ```
18
+
19
+ ```typescript
20
+ // src/index.ts
21
+ export default {
22
+ async fetch(request: Request, env: Env): Promise<Response> {
23
+ return env.ASSETS.fetch(request)
24
+ },
25
+ }
26
+ ```
27
+
28
+ Deploy: `wrangler deploy`
29
+
30
+ ## When to Use Workers Static Assets vs Pages
31
+
32
+ | Factor | Workers Static Assets | Cloudflare Pages |
33
+ | ------------------- | ---------------------------------- | ------------------------ |
34
+ | **Use case** | Hybrid apps (static + dynamic API) | Static sites, SSG |
35
+ | **Worker control** | Full control over routing | Limited (Functions) |
36
+ | **Configuration** | Code-first, flexible | Git-based, opinionated |
37
+ | **Dynamic routing** | Worker-first patterns | Functions (\_functions/) |
38
+ | **Best for** | Full-stack apps, SPAs with APIs | Jamstack, static docs |
39
+
40
+ **Decision tree:**
41
+
42
+ - Need custom routing logic? → Workers Static Assets
43
+ - Pure static site or SSG? → Pages
44
+ - API routes + SPA? → Workers Static Assets
45
+ - Framework (Next, Nuxt, Remix)? → Pages
46
+
47
+ ## Reading Order
48
+
49
+ 1. **configuration.md** - Setup, wrangler.jsonc options, routing patterns
50
+ 2. **api.md** - ASSETS binding API, request/response handling
51
+ 3. **patterns.md** - Common patterns (SPA, API routes, auth, A/B testing)
52
+ 4. **gotchas.md** - Limits, errors, performance tips
53
+
54
+ ## In This Reference
55
+
56
+ - **[configuration.md](configuration.md)** - Setup, deployment, configuration
57
+ - **[api.md](api.md)** - API endpoints, methods, interfaces
58
+ - **[patterns.md](patterns.md)** - Common patterns, use cases, examples
59
+ - **[gotchas.md](gotchas.md)** - Troubleshooting, best practices, limitations
60
+
61
+ ## See Also
62
+
63
+ - [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
64
+ - [Static Assets Docs](https://developers.cloudflare.com/workers/static-assets/)
65
+ - [Cloudflare Pages](https://developers.cloudflare.com/pages/)
@@ -0,0 +1,201 @@
1
+ # API Reference
2
+
3
+ ## ASSETS Binding
4
+
5
+ The `ASSETS` binding provides access to static assets via the `Fetcher` interface.
6
+
7
+ ### Type Definition
8
+
9
+ ```typescript
10
+ interface Env {
11
+ ASSETS: Fetcher
12
+ }
13
+
14
+ interface Fetcher {
15
+ fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>
16
+ }
17
+ ```
18
+
19
+ ### Method Signatures
20
+
21
+ ```typescript
22
+ // 1. Forward entire request
23
+ await env.ASSETS.fetch(request)
24
+
25
+ // 2. String path (hostname ignored, only path matters)
26
+ await env.ASSETS.fetch('https://any-host/path/to/asset.png')
27
+
28
+ // 3. URL object
29
+ await env.ASSETS.fetch(new URL('/index.html', request.url))
30
+
31
+ // 4. Constructed Request object
32
+ await env.ASSETS.fetch(
33
+ new Request(new URL('/logo.png', request.url), {
34
+ method: 'GET',
35
+ headers: request.headers,
36
+ })
37
+ )
38
+ ```
39
+
40
+ **Key behaviors:**
41
+
42
+ - Host/origin is ignored for string/URL inputs (only path is used)
43
+ - Method must be GET (others return 405)
44
+ - Request headers pass through (affects response)
45
+ - Returns standard `Response` object
46
+
47
+ ## Request Handling
48
+
49
+ ### Path Resolution
50
+
51
+ ```typescript
52
+ // All resolve to same asset:
53
+ env.ASSETS.fetch('https://example.com/logo.png')
54
+ env.ASSETS.fetch('https://ignored.host/logo.png')
55
+ env.ASSETS.fetch('/logo.png')
56
+ ```
57
+
58
+ Assets are resolved relative to configured `assets.directory`.
59
+
60
+ ### Headers
61
+
62
+ Request headers that affect response:
63
+
64
+ | Header | Effect |
65
+ | ------------------- | ----------------------------------------- |
66
+ | `Accept-Encoding` | Controls compression (gzip, brotli) |
67
+ | `Range` | Enables partial content (206 responses) |
68
+ | `If-None-Match` | Conditional request via ETag |
69
+ | `If-Modified-Since` | Conditional request via modification date |
70
+
71
+ Custom headers pass through but don't affect asset serving.
72
+
73
+ ### Method Support
74
+
75
+ | Method | Supported | Response |
76
+ | ------------------- | --------- | ---------------------- |
77
+ | `GET` | ✅ Yes | Asset content |
78
+ | `HEAD` | ✅ Yes | Headers only, no body |
79
+ | `POST`, `PUT`, etc. | ❌ No | 405 Method Not Allowed |
80
+
81
+ ## Response Behavior
82
+
83
+ ### Content-Type Inference
84
+
85
+ Automatically set based on file extension:
86
+
87
+ | Extension | Content-Type |
88
+ | --------------- | -------------------------- |
89
+ | `.html` | `text/html; charset=utf-8` |
90
+ | `.css` | `text/css` |
91
+ | `.js` | `application/javascript` |
92
+ | `.json` | `application/json` |
93
+ | `.png` | `image/png` |
94
+ | `.jpg`, `.jpeg` | `image/jpeg` |
95
+ | `.svg` | `image/svg+xml` |
96
+ | `.woff2` | `font/woff2` |
97
+
98
+ ### Default Headers
99
+
100
+ Responses include:
101
+
102
+ ```
103
+ Content-Type: <inferred>
104
+ ETag: "<hash>"
105
+ Cache-Control: public, max-age=3600
106
+ Content-Encoding: br (if supported and beneficial)
107
+ ```
108
+
109
+ **Cache-Control defaults:**
110
+
111
+ - 1 hour (`max-age=3600`) for most assets
112
+ - Override via Worker response transformation (see patterns.md:27-35)
113
+
114
+ ### Compression
115
+
116
+ Automatic compression based on `Accept-Encoding`:
117
+
118
+ - **Brotli** (`br`): Preferred, best compression
119
+ - **Gzip** (`gzip`): Fallback
120
+ - **None**: If client doesn't support or asset too small
121
+
122
+ ### ETag Generation
123
+
124
+ ETags are content-based hashes:
125
+
126
+ ```
127
+ ETag: "a3b2c1d4e5f6..."
128
+ ```
129
+
130
+ Used for conditional requests (`If-None-Match`). Returns `304 Not Modified` if match.
131
+
132
+ ## Error Responses
133
+
134
+ | Status | Condition | Behavior |
135
+ | ------ | -------------------- | ------------------------------------------- |
136
+ | `404` | Asset not found | Body depends on `not_found_handling` config |
137
+ | `405` | Non-GET/HEAD method | `{ "error": "Method not allowed" }` |
138
+ | `416` | Invalid Range header | Range not satisfiable |
139
+
140
+ ### 404 Handling
141
+
142
+ Depends on configuration (see configuration.md:45-52):
143
+
144
+ ```typescript
145
+ // not_found_handling: "single-page-application"
146
+ // Returns /index.html with 200 status
147
+
148
+ // not_found_handling: "404-page"
149
+ // Returns /404.html if exists, else 404 response
150
+
151
+ // not_found_handling: "none"
152
+ // Returns 404 response
153
+ ```
154
+
155
+ ## Advanced Usage
156
+
157
+ ### Modifying Responses
158
+
159
+ ```typescript
160
+ const response = await env.ASSETS.fetch(request)
161
+
162
+ // Clone and modify
163
+ return new Response(response.body, {
164
+ status: response.status,
165
+ headers: {
166
+ ...Object.fromEntries(response.headers),
167
+ 'Cache-Control': 'public, max-age=31536000',
168
+ 'X-Custom': 'value',
169
+ },
170
+ })
171
+ ```
172
+
173
+ See patterns.md:27-35 for full example.
174
+
175
+ ### Error Handling
176
+
177
+ ```typescript
178
+ const response = await env.ASSETS.fetch(request)
179
+
180
+ if (!response.ok) {
181
+ // Asset not found or error
182
+ return new Response('Custom error page', { status: 404 })
183
+ }
184
+
185
+ return response
186
+ ```
187
+
188
+ ### Conditional Serving
189
+
190
+ ```typescript
191
+ const url = new URL(request.url)
192
+
193
+ // Serve different assets based on conditions
194
+ if (url.pathname === '/') {
195
+ return env.ASSETS.fetch('/index.html')
196
+ }
197
+
198
+ return env.ASSETS.fetch(request)
199
+ ```
200
+
201
+ See patterns.md for complete patterns.
@@ -0,0 +1,186 @@
1
+ ## Configuration
2
+
3
+ ### Basic Setup
4
+
5
+ Minimal configuration requires only `assets.directory`:
6
+
7
+ ```jsonc
8
+ {
9
+ "name": "my-worker",
10
+ "compatibility_date": "2025-01-01", // Use current date for new projects
11
+ "assets": {
12
+ "directory": "./dist",
13
+ },
14
+ }
15
+ ```
16
+
17
+ ### Full Configuration Options
18
+
19
+ ```jsonc
20
+ {
21
+ "name": "my-worker",
22
+ "main": "src/index.ts",
23
+ "compatibility_date": "2025-01-01",
24
+ "assets": {
25
+ "directory": "./dist",
26
+ "binding": "ASSETS",
27
+ "not_found_handling": "single-page-application",
28
+ "html_handling": "auto-trailing-slash",
29
+ "run_worker_first": ["/api/*", "!/api/docs/*"],
30
+ },
31
+ }
32
+ ```
33
+
34
+ **Configuration keys:**
35
+
36
+ - `directory` (string, required): Path to assets folder (e.g. `./dist`, `./public`, `./build`)
37
+ - `binding` (string, optional): Name to access assets in Worker code (e.g. `env.ASSETS`). Default: `"ASSETS"`
38
+ - `not_found_handling` (string, optional): Behavior when asset not found
39
+ - `"single-page-application"`: Serve `/index.html` for non-asset paths (default for SPAs)
40
+ - `"404-page"`: Serve `/404.html` if present, otherwise 404
41
+ - `"none"`: Return 404 for missing assets
42
+ - `html_handling` (string, optional): URL trailing slash behavior
43
+ - `run_worker_first` (boolean | string[], optional): Routes that invoke Worker before checking assets
44
+
45
+ ### not_found_handling Modes
46
+
47
+ | Mode | Behavior | Use Case |
48
+ | --------------------------- | ------------------------------------------ | ----------------------------------- |
49
+ | `"single-page-application"` | Serve `/index.html` for non-asset requests | React, Vue, Angular SPAs |
50
+ | `"404-page"` | Serve `/404.html` if exists, else 404 | Static sites with custom error page |
51
+ | `"none"` | Return 404 for missing assets | API-first or custom routing |
52
+
53
+ ### html_handling Modes
54
+
55
+ Controls trailing slash behavior for HTML files:
56
+
57
+ | Mode | `/page` | `/page/` | Use Case |
58
+ | ------------------------ | ------------------------------------------------- | ------------------------ | --------------------------- |
59
+ | `"auto-trailing-slash"` | Redirect to `/page/` if `/page/index.html` exists | Serve `/page/index.html` | Default, SEO-friendly |
60
+ | `"force-trailing-slash"` | Always redirect to `/page/` | Serve if exists | Consistent trailing slashes |
61
+ | `"drop-trailing-slash"` | Serve if exists | Redirect to `/page` | Cleaner URLs |
62
+ | `"none"` | No modification | No modification | Custom routing logic |
63
+
64
+ **Default:** `"auto-trailing-slash"`
65
+
66
+ ### run_worker_first Configuration
67
+
68
+ Controls which requests invoke Worker before checking assets.
69
+
70
+ **Boolean syntax:**
71
+
72
+ ```jsonc
73
+ {
74
+ "assets": {
75
+ "run_worker_first": true, // ALL requests invoke Worker
76
+ },
77
+ }
78
+ ```
79
+
80
+ **Array syntax (recommended):**
81
+
82
+ ```jsonc
83
+ {
84
+ "assets": {
85
+ "run_worker_first": [
86
+ "/api/*", // Positive pattern: match API routes
87
+ "/admin/*", // Match admin routes
88
+ "!/admin/assets/*", // Negative pattern: exclude admin assets
89
+ ],
90
+ },
91
+ }
92
+ ```
93
+
94
+ **Pattern rules:**
95
+
96
+ - Glob patterns: `*` (any chars), `**` (any path segments)
97
+ - Negative patterns: Prefix with `!` to exclude
98
+ - Precedence: Negative patterns override positive patterns
99
+ - Default: `false` (assets served directly)
100
+
101
+ **Decision guidance:**
102
+
103
+ - Use `true` for API-first apps (few static assets)
104
+ - Use array patterns for hybrid apps (APIs + static assets)
105
+ - Use `false` for static-first sites (minimal dynamic routes)
106
+
107
+ ### .assetsignore File
108
+
109
+ Exclude files from upload using `.assetsignore` (same syntax as `.gitignore`):
110
+
111
+ ```
112
+ # .assetsignore
113
+ _worker.js
114
+ *.map
115
+ *.md
116
+ node_modules/
117
+ .git/
118
+ ```
119
+
120
+ **Common patterns:**
121
+
122
+ - `_worker.js` - Exclude Worker code from assets
123
+ - `*.map` - Exclude source maps
124
+ - `*.md` - Exclude markdown files
125
+ - Development artifacts
126
+
127
+ ### Vite Plugin Integration
128
+
129
+ For Vite-based projects, use `@cloudflare/vite-plugin`:
130
+
131
+ ```typescript
132
+ // vite.config.ts
133
+ import { defineConfig } from 'vite'
134
+ import { cloudflare } from '@cloudflare/vite-plugin'
135
+
136
+ export default defineConfig({
137
+ plugins: [
138
+ cloudflare({
139
+ assets: {
140
+ directory: './dist',
141
+ binding: 'ASSETS',
142
+ },
143
+ }),
144
+ ],
145
+ })
146
+ ```
147
+
148
+ **Features:**
149
+
150
+ - Automatic asset detection during dev
151
+ - Hot module replacement for assets
152
+ - Production build integration
153
+ - Requires: Wrangler 4.0.0+, `@cloudflare/vite-plugin` 1.0.0+
154
+
155
+ ### Key Compatibility Dates
156
+
157
+ | Date | Feature | Impact |
158
+ | ------------ | ------------------------------- | ----------------------------------------------- |
159
+ | `2025-04-01` | Navigation request optimization | SPAs skip Worker for navigation, reducing costs |
160
+
161
+ Use current date for new projects. See [Compatibility Dates](https://developers.cloudflare.com/workers/configuration/compatibility-dates/) for full list.
162
+
163
+ ### Environment-Specific Configuration
164
+
165
+ Use `wrangler.jsonc` environments for different configs:
166
+
167
+ ```jsonc
168
+ {
169
+ "name": "my-worker",
170
+ "assets": { "directory": "./dist" },
171
+ "env": {
172
+ "staging": {
173
+ "assets": {
174
+ "not_found_handling": "404-page",
175
+ },
176
+ },
177
+ "production": {
178
+ "assets": {
179
+ "not_found_handling": "single-page-application",
180
+ },
181
+ },
182
+ },
183
+ }
184
+ ```
185
+
186
+ Deploy with: `wrangler deploy --env staging`