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,210 @@
1
+ # Multi-Tenant Patterns
2
+
3
+ ## Billing by Plan
4
+
5
+ ```typescript
6
+ interface Env {
7
+ DISPATCHER: DispatchNamespace
8
+ CUSTOMERS_KV: KVNamespace
9
+ }
10
+
11
+ export default {
12
+ async fetch(request: Request, env: Env): Promise<Response> {
13
+ const userWorkerName = new URL(request.url).hostname.split('.')[0]
14
+ const customerPlan = await env.CUSTOMERS_KV.get(userWorkerName)
15
+
16
+ const plans = {
17
+ enterprise: { cpuMs: 50, subRequests: 50 },
18
+ pro: { cpuMs: 20, subRequests: 20 },
19
+ free: { cpuMs: 10, subRequests: 5 },
20
+ }
21
+ const limits = plans[customerPlan as keyof typeof plans] || plans.free
22
+
23
+ const userWorker = env.DISPATCHER.get(userWorkerName, {}, { limits })
24
+ return await userWorker.fetch(request)
25
+ },
26
+ }
27
+ ```
28
+
29
+ ## Resource Isolation
30
+
31
+ **Complete isolation:** Create unique resources per customer
32
+
33
+ - KV namespace per customer
34
+ - D1 database per customer
35
+ - R2 bucket per customer
36
+
37
+ ```typescript
38
+ const bindings = [
39
+ {
40
+ type: 'kv_namespace',
41
+ name: 'USER_KV',
42
+ namespace_id: `customer-${customerId}-kv`,
43
+ },
44
+ ]
45
+ ```
46
+
47
+ ## Hostname Routing
48
+
49
+ ### Wildcard Route (Recommended)
50
+
51
+ Configure `*/*` route on SaaS domain → dispatch Worker
52
+
53
+ **Benefits:**
54
+
55
+ - Supports subdomains + custom vanity domains
56
+ - No per-route limits (regular Workers limited to 100 routes)
57
+ - Programmatic control
58
+ - Works with any DNS proxy settings
59
+
60
+ **Setup:**
61
+
62
+ 1. Cloudflare for SaaS custom hostnames
63
+ 2. Fallback origin (dummy `A 192.0.2.0` if Worker is origin)
64
+ 3. DNS CNAME to SaaS domain
65
+ 4. `*/*` route → dispatch Worker
66
+ 5. Routing logic in dispatch Worker
67
+
68
+ ```typescript
69
+ export default {
70
+ async fetch(request: Request, env: Env): Promise<Response> {
71
+ const hostname = new URL(request.url).hostname
72
+ const hostnameData = await env.ROUTING_KV.get(`hostname:${hostname}`, { type: 'json' })
73
+
74
+ if (!hostnameData?.workerName) {
75
+ return new Response('Hostname not configured', { status: 404 })
76
+ }
77
+
78
+ const userWorker = env.DISPATCHER.get(hostnameData.workerName)
79
+ return await userWorker.fetch(request)
80
+ },
81
+ }
82
+ ```
83
+
84
+ ### Subdomain-Only
85
+
86
+ 1. Wildcard DNS: `*.saas.com` → origin
87
+ 2. Route: `*.saas.com/*` → dispatch Worker
88
+ 3. Extract subdomain for routing
89
+
90
+ ### Orange-to-Orange (O2O) Behavior
91
+
92
+ When customers use Cloudflare and CNAME to your Workers domain:
93
+
94
+ | Scenario | Behavior | Route Pattern |
95
+ | --------------------------------------- | ---------------------- | ------------------------- |
96
+ | Customer not on Cloudflare | Standard routing | `*/*` or `*.domain.com/*` |
97
+ | Customer on Cloudflare (proxied CNAME) | Invokes Worker at edge | `*/*` required |
98
+ | Customer on Cloudflare (DNS-only CNAME) | Standard routing | Any route works |
99
+
100
+ **Recommendation:** Always use `*/*` wildcard for consistent O2O behavior.
101
+
102
+ ### Custom Metadata Routing
103
+
104
+ For Cloudflare for SaaS: Store worker name in custom hostname `custom_metadata`, retrieve in dispatch worker to route requests. Requires custom hostnames as subdomains of your domain.
105
+
106
+ ## Observability
107
+
108
+ ### Logpush
109
+
110
+ - Enable on dispatch Worker → captures all user Worker logs
111
+ - Filter by `Outcome` or `Script Name`
112
+
113
+ ### Tail Workers
114
+
115
+ - Real-time logs with custom formatting
116
+ - Receives HTTP status, `console.log()`, exceptions, diagnostics
117
+
118
+ ### Analytics Engine
119
+
120
+ ```typescript
121
+ // Track violations
122
+ env.ANALYTICS.writeDataPoint({
123
+ indexes: [customerName],
124
+ blobs: ['cpu_limit_exceeded'],
125
+ })
126
+ ```
127
+
128
+ ### GraphQL
129
+
130
+ ```graphql
131
+ query {
132
+ viewer {
133
+ accounts(filter: { accountTag: $accountId }) {
134
+ workersInvocationsAdaptive(filter: { dispatchNamespaceName: "production" }) {
135
+ sum {
136
+ requests
137
+ errors
138
+ cpuTime
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ ```
145
+
146
+ ## Use Case Implementations
147
+
148
+ ### AI Code Execution
149
+
150
+ ```typescript
151
+ async function deployGeneratedCode(name: string, code: string) {
152
+ const file = new File([code], `${name}.mjs`, { type: 'application/javascript+module' })
153
+ await client.workersForPlatforms.dispatch.namespaces.scripts.update('production', name, {
154
+ account_id: accountId,
155
+ metadata: { main_module: `${name}.mjs`, tags: [name, 'ai-generated'] },
156
+ files: [file],
157
+ })
158
+ }
159
+
160
+ // Short limits for untrusted code
161
+ const userWorker = env.DISPATCHER.get(sessionId, {}, { limits: { cpuMs: 5, subRequests: 3 } })
162
+ ```
163
+
164
+ **VibeSDK:** For AI-powered code generation + deployment platforms, see [VibeSDK](https://github.com/cloudflare/vibesdk) - handles AI generation, sandbox execution, live preview, and deployment.
165
+
166
+ Reference: [AI Vibe Coding Platform Architecture](https://developers.cloudflare.com/reference-architecture/diagrams/ai/ai-vibe-coding-platform/)
167
+
168
+ ### Edge Functions Platform
169
+
170
+ ```typescript
171
+ // Route: /customer-id/function-name
172
+ const [customerId, functionName] = new URL(request.url).pathname.split('/').filter(Boolean)
173
+ const workerName = `${customerId}-${functionName}`
174
+ const userWorker = env.DISPATCHER.get(workerName)
175
+ ```
176
+
177
+ ### Website Builder
178
+
179
+ - Deploy static assets + Worker code
180
+ - See [api.md](./api.md#static-assets) for full implementation
181
+ - Salt hashes for asset isolation
182
+
183
+ ## Best Practices
184
+
185
+ ### Architecture
186
+
187
+ - One namespace per environment (production, staging)
188
+ - Platform logic in dispatch Worker (auth, rate limiting, validation)
189
+ - Isolation automatic (no shared cache, untrusted mode)
190
+
191
+ ### Routing
192
+
193
+ - Use `*/*` wildcard routes
194
+ - Store mappings in KV
195
+ - Handle missing Workers gracefully
196
+
197
+ ### Limits & Security
198
+
199
+ - Set custom limits by plan
200
+ - Track violations with Analytics Engine
201
+ - Use outbound Workers for egress control
202
+ - Sanitize responses
203
+
204
+ ### Tags
205
+
206
+ - Tag all Workers: customer ID, plan, environment
207
+ - Enable bulk operations
208
+ - Filter efficiently
209
+
210
+ See [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [gotchas.md](./gotchas.md)
@@ -0,0 +1,131 @@
1
+ # Cloudflare Workers Playground Skill Reference
2
+
3
+ ## Overview
4
+
5
+ Cloudflare Workers Playground is a browser-based sandbox for instantly experimenting with, testing, and deploying Cloudflare Workers without authentication or setup. This skill provides patterns, APIs, and best practices specifically for Workers Playground development.
6
+
7
+ **URL:** [workers.cloudflare.com/playground](https://workers.cloudflare.com/playground)
8
+
9
+ ## ⚠️ Playground Constraints
10
+
11
+ **Playground is NOT production-equivalent:**
12
+
13
+ - ✅ Real Workers runtime, instant testing, shareable URLs
14
+ - ❌ No TypeScript (JavaScript only)
15
+ - ❌ No bindings (KV, D1, R2, Durable Objects)
16
+ - ❌ No environment variables or secrets
17
+ - ❌ ES modules only (no Service Worker format)
18
+ - ⚠️ Safari broken (use Chrome/Firefox)
19
+
20
+ **For production:** Use `wrangler` CLI. Playground is for rapid prototyping.
21
+
22
+ ## Quick Start
23
+
24
+ Minimal Worker:
25
+
26
+ ```javascript
27
+ export default {
28
+ async fetch(request, env, ctx) {
29
+ return new Response('Hello World')
30
+ },
31
+ }
32
+ ```
33
+
34
+ JSON API:
35
+
36
+ ```javascript
37
+ export default {
38
+ async fetch(request, env, ctx) {
39
+ const data = { message: 'Hello', timestamp: Date.now() }
40
+ return Response.json(data)
41
+ },
42
+ }
43
+ ```
44
+
45
+ Proxy with modification:
46
+
47
+ ```javascript
48
+ export default {
49
+ async fetch(request, env, ctx) {
50
+ const response = await fetch('https://example.com')
51
+ const modified = new Response(response.body, response)
52
+ modified.headers.set('X-Custom-Header', 'added-by-worker')
53
+ return modified
54
+ },
55
+ }
56
+ ```
57
+
58
+ Import from CDN:
59
+
60
+ ```javascript
61
+ import { Hono } from 'https://esm.sh/hono@3'
62
+
63
+ export default {
64
+ async fetch(request) {
65
+ const app = new Hono()
66
+ app.get('/', (c) => c.text('Hello Hono!'))
67
+ return app.fetch(request)
68
+ },
69
+ }
70
+ ```
71
+
72
+ ## Reading Order
73
+
74
+ 1. **[configuration.md](configuration.md)** - Start here: playground setup, constraints, deployment
75
+ 2. **[api.md](api.md)** - Core APIs: Request, Response, ExecutionContext, fetch, Cache
76
+ 3. **[patterns.md](patterns.md)** - Common use cases: routing, proxying, A/B testing, multi-module code
77
+ 4. **[gotchas.md](gotchas.md)** - Troubleshooting: errors, browser issues, limits, best practices
78
+
79
+ ## In This Reference
80
+
81
+ - **[configuration.md](configuration.md)** - Setup, deployment, configuration
82
+ - **[api.md](api.md)** - API endpoints, methods, interfaces
83
+ - **[patterns.md](patterns.md)** - Common patterns, use cases, examples
84
+ - **[gotchas.md](gotchas.md)** - Troubleshooting, best practices, limitations
85
+
86
+ ## Key Features
87
+
88
+ **No Setup Required:**
89
+
90
+ - Open URL and start coding
91
+ - No CLI, no account, no config files
92
+ - Code executes in real Cloudflare Workers runtime
93
+
94
+ **Instant Preview:**
95
+
96
+ - Live preview pane with browser tab or HTTP tester
97
+ - Auto-reload on code changes
98
+ - DevTools integration (right-click → Inspect)
99
+
100
+ **Share & Deploy:**
101
+
102
+ - Copy Link generates permanent shareable URL
103
+ - Deploy button publishes to production in ~30 seconds
104
+ - Get `*.workers.dev` subdomain immediately
105
+
106
+ ## Common Use Cases
107
+
108
+ - **API development:** Test endpoints before wrangler setup
109
+ - **Learning Workers:** Experiment with APIs without local environment
110
+ - **Prototyping:** Quick POCs for edge logic
111
+ - **Sharing examples:** Generate shareable links for bug reports or demos
112
+ - **Framework testing:** Import from CDN (Hono, itty-router, etc.)
113
+
114
+ ## Limitations vs Production
115
+
116
+ | Feature | Playground | Production (wrangler) |
117
+ | ---------------- | ---------------- | ------------------------ |
118
+ | Language | JavaScript only | JS + TypeScript |
119
+ | Bindings | None | KV, D1, R2, DO, AI, etc. |
120
+ | Environment vars | None | Full support |
121
+ | Module format | ES only | ES + Service Worker |
122
+ | CPU time | 10ms (Free plan) | 10ms Free / 50ms Paid |
123
+ | Custom domains | No | Yes |
124
+ | Analytics | No | Yes |
125
+
126
+ ## See Also
127
+
128
+ - [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
129
+ - [Workers Examples](https://developers.cloudflare.com/workers/examples/)
130
+ - [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/)
131
+ - [Workers API Reference](https://developers.cloudflare.com/workers/runtime-apis/)
@@ -0,0 +1,101 @@
1
+ # Workers Playground API
2
+
3
+ ## Handler
4
+
5
+ ```javascript
6
+ export default {
7
+ async fetch(request, env, ctx) {
8
+ // request: Request, env: {} (empty in playground), ctx: ExecutionContext
9
+ return new Response('Hello')
10
+ },
11
+ }
12
+ ```
13
+
14
+ ## Request
15
+
16
+ ```javascript
17
+ const method = request.method // "GET", "POST"
18
+ const url = new URL(request.url) // Parse URL
19
+ const headers = request.headers // Headers object
20
+ const body = await request.json() // Read body (consumes stream)
21
+ const clone = request.clone() // Clone before reading body
22
+
23
+ // Query params
24
+ url.searchParams.get('page') // Single value
25
+ url.searchParams.getAll('tag') // Array
26
+
27
+ // Cloudflare metadata
28
+ request.cf.country // "US"
29
+ request.cf.colo // "SFO"
30
+ ```
31
+
32
+ ## Response
33
+
34
+ ```javascript
35
+ // Text
36
+ return new Response('Hello', { status: 200 });
37
+
38
+ // JSON
39
+ return Response.json({ data }, { status: 200, headers: {...} });
40
+
41
+ // Redirect
42
+ return Response.redirect('/new-path', 301);
43
+
44
+ // Modify existing
45
+ const modified = new Response(response.body, response);
46
+ modified.headers.set('X-Custom', 'value');
47
+ ```
48
+
49
+ ## ExecutionContext
50
+
51
+ ```javascript
52
+ // Background work (after response sent)
53
+ ctx.waitUntil(fetch('https://logs.example.com', { method: 'POST', body: '...' }))
54
+ return new Response('OK') // Returns immediately
55
+ ```
56
+
57
+ ## Fetch
58
+
59
+ ```javascript
60
+ const response = await fetch('https://api.example.com')
61
+ const data = await response.json()
62
+
63
+ // With options
64
+ await fetch(url, {
65
+ method: 'POST',
66
+ headers: { 'Content-Type': 'application/json' },
67
+ body: JSON.stringify({ name: 'Alice' }),
68
+ })
69
+ ```
70
+
71
+ ## Cache
72
+
73
+ ```javascript
74
+ const cache = caches.default
75
+
76
+ // Check cache
77
+ let response = await cache.match(request)
78
+ if (!response) {
79
+ response = await fetch(origin)
80
+ await cache.put(request, response.clone()) // Clone before put!
81
+ }
82
+ return response
83
+ ```
84
+
85
+ ## Crypto
86
+
87
+ ```javascript
88
+ crypto.randomUUID() // UUID v4
89
+ crypto.getRandomValues(new Uint8Array(16))
90
+
91
+ // SHA-256 hash
92
+ const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(data))
93
+ ```
94
+
95
+ ## Limits (Playground = Free Plan)
96
+
97
+ | Resource | Limit |
98
+ | ----------- | ------ |
99
+ | CPU time | 10ms |
100
+ | Subrequests | 50 |
101
+ | Memory | 128 MB |
@@ -0,0 +1,169 @@
1
+ # Configuration
2
+
3
+ ## Getting Started
4
+
5
+ Navigate to [workers.cloudflare.com/playground](https://workers.cloudflare.com/playground)
6
+
7
+ - **No account required** for testing
8
+ - **No CLI or local setup** needed
9
+ - Code executes in real Cloudflare Workers runtime
10
+ - Share code via URL (never expires)
11
+
12
+ ## Playground Constraints
13
+
14
+ ⚠️ **Important Limitations**
15
+
16
+ | Constraint | Playground | Production Workers |
17
+ | ------------------------- | ----------------------- | --------------------------------- |
18
+ | **Module Format** | ES modules only | ES modules or Service Worker |
19
+ | **TypeScript** | Not supported (JS only) | Supported via build step |
20
+ | **Bindings** | Not available | KV, D1, R2, Durable Objects, etc. |
21
+ | **wrangler.toml** | Not used | Required for config |
22
+ | **Environment Variables** | Not available | Full support |
23
+ | **Secrets** | Not available | Full support |
24
+ | **Custom Domains** | Not available | Full support |
25
+
26
+ **Playground is for rapid prototyping only.** For production apps, use `wrangler` CLI.
27
+
28
+ ## Code Editor
29
+
30
+ ### Syntax Requirements
31
+
32
+ Must export default object with `fetch` handler:
33
+
34
+ ```javascript
35
+ export default {
36
+ async fetch(request, env, ctx) {
37
+ return new Response('Hello World')
38
+ },
39
+ }
40
+ ```
41
+
42
+ **Key Points:**
43
+
44
+ - Must use ES modules (`export default`)
45
+ - `fetch` method receives `(request, env, ctx)`
46
+ - Must return `Response` object
47
+ - TypeScript not supported (use plain JavaScript)
48
+
49
+ ### Multi-Module Code
50
+
51
+ Import from external URLs or inline modules:
52
+
53
+ ```javascript
54
+ // Import from CDN
55
+ import { Hono } from 'https://esm.sh/hono@3'
56
+
57
+ // Or paste library code and import relatively
58
+ // (See patterns.md for multi-module examples)
59
+
60
+ export default {
61
+ async fetch(request) {
62
+ const app = new Hono()
63
+ app.get('/', (c) => c.text('Hello'))
64
+ return app.fetch(request)
65
+ },
66
+ }
67
+ ```
68
+
69
+ ## Preview Panel
70
+
71
+ ### Browser Tab
72
+
73
+ Default interactive preview with address bar:
74
+
75
+ - Enter custom URL paths
76
+ - Automatic reload on code changes
77
+ - DevTools available (right-click → Inspect)
78
+
79
+ ### HTTP Test Panel
80
+
81
+ Switch to **HTTP** tab for raw HTTP testing:
82
+
83
+ - Change HTTP method (GET, POST, PUT, DELETE, PATCH, etc.)
84
+ - Add/edit request headers
85
+ - Modify request body (JSON, form data, text)
86
+ - View response headers and body
87
+ - Test different content types
88
+
89
+ Example HTTP test:
90
+
91
+ ```
92
+ Method: POST
93
+ URL: /api/users
94
+ Headers:
95
+ Content-Type: application/json
96
+ Authorization: Bearer token123
97
+ Body:
98
+ {
99
+ "name": "Alice",
100
+ "email": "alice@example.com"
101
+ }
102
+ ```
103
+
104
+ ## Sharing Code
105
+
106
+ **Copy Link** button generates shareable URL:
107
+
108
+ - Code embedded in URL fragment
109
+ - Links never expire
110
+ - No account required
111
+ - Can be bookmarked for later
112
+
113
+ Example: `https://workers.cloudflare.com/playground#abc123...`
114
+
115
+ ## Deploying from Playground
116
+
117
+ Click **Deploy** button to move code to production:
118
+
119
+ 1. **Log in** to Cloudflare account (creates free account if needed)
120
+ 2. **Review** Worker name and code
121
+ 3. **Deploy** to global network (takes ~30 seconds)
122
+ 4. **Get URL**: Deployed to `<name>.workers.dev` subdomain
123
+ 5. **Manage** from dashboard: add bindings, custom domains, analytics
124
+
125
+ **After deploy:**
126
+
127
+ - Code runs on Cloudflare's global network (300+ cities)
128
+ - Can add KV, D1, R2, Durable Objects bindings
129
+ - Configure custom domains and routes
130
+ - View analytics and logs
131
+ - Set environment variables and secrets
132
+
133
+ **Note:** Deployed Workers are production-ready but start on Free plan (100k requests/day).
134
+
135
+ ## Browser Compatibility
136
+
137
+ | Browser | Status | Notes |
138
+ | ----------- | --------------- | ----------------------------------------- |
139
+ | Chrome/Edge | ✅ Full support | Recommended |
140
+ | Firefox | ✅ Full support | Works well |
141
+ | Safari | ⚠️ Broken | Preview fails with "PreviewRequestFailed" |
142
+
143
+ **Safari users:** Use Chrome, Firefox, or Edge for Workers Playground.
144
+
145
+ ## DevTools Integration
146
+
147
+ 1. **Open preview** in browser tab
148
+ 2. **Right-click** → Inspect Element
149
+ 3. **Console tab** shows Worker logs:
150
+ - `console.log()` output
151
+ - Uncaught errors
152
+ - Network requests (subrequests)
153
+
154
+ **Note:** DevTools show client-side console, not Worker execution logs. For production logging, use Logpush or Tail Workers.
155
+
156
+ ## Limits in Playground
157
+
158
+ Same as production Free plan:
159
+
160
+ | Resource | Limit | Notes |
161
+ | ------------- | --------- | -------------------- |
162
+ | CPU time | 10ms | Per request |
163
+ | Memory | 128 MB | Per request |
164
+ | Script size | 1 MB | After compression |
165
+ | Subrequests | 50 | Outbound fetch calls |
166
+ | Request size | 100 MB | Incoming |
167
+ | Response size | Unlimited | Outgoing (streamed) |
168
+
169
+ **Exceeding CPU time** throws error immediately. Optimize hot paths or upgrade to Paid plan (50ms CPU).
@@ -0,0 +1,88 @@
1
+ # Workers Playground Gotchas
2
+
3
+ ## Platform Limitations
4
+
5
+ | Limitation | Impact | Workaround |
6
+ | ---------------------- | -------------------- | ------------------------------ |
7
+ | Safari broken | Preview fails | Use Chrome/Firefox/Edge |
8
+ | TypeScript unsupported | TS syntax errors | Write plain JS or use JSDoc |
9
+ | No bindings | `env` always `{}` | Mock data or use external APIs |
10
+ | No env vars | Can't access secrets | Hardcode for testing |
11
+
12
+ ## Common Runtime Errors
13
+
14
+ ### "Response body already read"
15
+
16
+ ```javascript
17
+ // ❌ Body consumed twice
18
+ const body = await request.text()
19
+ await fetch(url, { body: request.body }) // Error!
20
+
21
+ // ✅ Clone first
22
+ const clone = request.clone()
23
+ const body = await request.text()
24
+ await fetch(url, { body: clone.body })
25
+ ```
26
+
27
+ ### "Worker exceeded CPU time"
28
+
29
+ **Limit:** 10ms (free), 50ms (paid)
30
+
31
+ ```javascript
32
+ // ✅ Move slow work to background
33
+ ctx.waitUntil(fetch('https://analytics.example.com', {...}));
34
+ return new Response('OK'); // Return immediately
35
+ ```
36
+
37
+ ### "Too many subrequests"
38
+
39
+ **Limit:** 50 (free), 1000 (paid)
40
+
41
+ ```javascript
42
+ // ❌ 100 individual fetches
43
+ // ✅ Batch into single API call
44
+ await fetch('https://api.example.com/batch', {
45
+ body: JSON.stringify({ ids: [...] })
46
+ });
47
+ ```
48
+
49
+ ## Best Practices
50
+
51
+ ```javascript
52
+ // Clone before caching
53
+ await cache.put(request, response.clone());
54
+ return response;
55
+
56
+ // Validate input early
57
+ if (request.method !== 'POST') return new Response('', { status: 405 });
58
+
59
+ // Handle errors
60
+ try { ... } catch (e) {
61
+ return Response.json({ error: e.message }, { status: 500 });
62
+ }
63
+ ```
64
+
65
+ ## Limits
66
+
67
+ | Resource | Free | Paid |
68
+ | ----------- | ------ | ------ |
69
+ | CPU time | 10ms | 50ms |
70
+ | Memory | 128 MB | 128 MB |
71
+ | Subrequests | 50 | 10,000 |
72
+
73
+ ## Browser Support
74
+
75
+ | Browser | Status |
76
+ | ------- | -------------- |
77
+ | Chrome | ✅ Recommended |
78
+ | Firefox | ✅ Works |
79
+ | Edge | ✅ Works |
80
+ | Safari | ❌ Broken |
81
+
82
+ ## Debugging
83
+
84
+ ```javascript
85
+ console.log('URL:', request.url) // View in browser DevTools Console
86
+ ```
87
+
88
+ **Note:** `console.log` works in playground. For production, use Logpush or Tail Workers.