memory-journal-mcp 7.7.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +7 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,95 @@
1
+ # Cloudflare Workers for Platforms
2
+
3
+ Multi-tenant platform with isolated customer code execution at scale.
4
+
5
+ ## Use Cases
6
+
7
+ - Multi-tenant SaaS running customer code
8
+ - AI-generated code execution in secure sandboxes
9
+ - Programmable platforms with isolated compute
10
+ - Edge functions/serverless platforms
11
+ - Website builders with static + dynamic content
12
+ - Unlimited app deployment at scale
13
+
14
+ **NOT for general Workers** - only for Workers for Platforms architecture.
15
+
16
+ ## Quick Start
17
+
18
+ **One-click deploy:** [Platform Starter Kit](https://github.com/cloudflare/workers-for-platforms-example) deploys complete WfP setup with dispatch namespace, dispatch worker, and user worker example.
19
+
20
+ [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/workers-for-platforms-example)
21
+
22
+ **Manual setup:** See [configuration.md](./configuration.md) for namespace creation and dispatch worker configuration.
23
+
24
+ ## Key Features
25
+
26
+ - Unlimited Workers per namespace (no script limits)
27
+ - Automatic tenant isolation
28
+ - Custom CPU/subrequest limits per customer
29
+ - Hostname routing (subdomains/vanity domains)
30
+ - Egress/ingress control
31
+ - Static assets support
32
+ - Tags for bulk operations
33
+
34
+ ## Architecture
35
+
36
+ **4 Components:**
37
+
38
+ 1. **Dispatch Namespace** - Container for unlimited customer Workers, automatic isolation (untrusted mode by default - no request.cf access, no shared cache)
39
+ 2. **Dynamic Dispatch Worker** - Entry point, routes requests, enforces platform logic (auth, limits, validation)
40
+ 3. **User Workers** - Customer code in isolated sandboxes, API-deployed, optional bindings (KV/D1/R2/DO)
41
+ 4. **Outbound Worker** (optional) - Intercepts external fetch, controls egress, logs subrequests (blocks TCP socket connect() API)
42
+
43
+ **Request Flow:**
44
+
45
+ ```
46
+ Request → Dispatch Worker → Determines user Worker → env.DISPATCHER.get("customer")
47
+ → User Worker executes (Outbound Worker for external fetch) → Response → Dispatch Worker → Client
48
+ ```
49
+
50
+ ## Decision Trees
51
+
52
+ ### When to Use Workers for Platforms
53
+
54
+ ```
55
+ Need to run code?
56
+ ├─ Your code only → Regular Workers
57
+ ├─ Customer/AI code → Workers for Platforms
58
+ └─ Untrusted code in sandbox → Workers for Platforms OR Sandbox API
59
+ ```
60
+
61
+ ### Routing Strategy Selection
62
+
63
+ ```
64
+ Hostname routing needed?
65
+ ├─ Subdomains only (*.saas.com) → `*.saas.com/*` route + subdomain extraction
66
+ ├─ Custom domains → `*/*` wildcard + Cloudflare for SaaS + KV/metadata routing
67
+ └─ Path-based (/customer/app) → Any route + path parsing
68
+ ```
69
+
70
+ ### Isolation Mode Selection
71
+
72
+ ```
73
+ Worker mode?
74
+ ├─ Running customer code → Untrusted (default)
75
+ ├─ Need request.cf geolocation → Trusted mode
76
+ ├─ Internal platform, controlled code → Trusted mode with cache key prefixes
77
+ └─ Maximum isolation → Untrusted + unique resources per customer
78
+ ```
79
+
80
+ ## In This Reference
81
+
82
+ | File | Purpose | When to Read |
83
+ | -------------------------------------- | ---------------------------------------------- | ---------------------------------- |
84
+ | [configuration.md](./configuration.md) | Namespace setup, dispatch worker config | First-time setup, changing limits |
85
+ | [api.md](./api.md) | User worker API, dispatch API, outbound worker | Deploying workers, SDK integration |
86
+ | [patterns.md](./patterns.md) | Multi-tenancy, routing, egress control | Planning architecture, scaling |
87
+ | [gotchas.md](./gotchas.md) | Limits, isolation issues, best practices | Debugging, production prep |
88
+
89
+ ## See Also
90
+
91
+ - [workers](../workers/) - Core Workers runtime documentation
92
+ - [durable-objects](../durable-objects/) - Stateful multi-tenant patterns
93
+ - [sandbox](../sandbox/) - Alternative for untrusted code execution
94
+ - [Reference Architecture: Programmable Platforms](https://developers.cloudflare.com/reference-architecture/diagrams/serverless/programmable-platforms/)
95
+ - [Reference Architecture: AI Vibe Coding Platform](https://developers.cloudflare.com/reference-architecture/diagrams/ai/ai-vibe-coding-platform/)
@@ -0,0 +1,212 @@
1
+ # API Operations
2
+
3
+ ## Deploy User Worker
4
+
5
+ ```bash
6
+ curl -X PUT \
7
+ "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/dispatch/namespaces/$NAMESPACE/scripts/$SCRIPT_NAME" \
8
+ -H "Authorization: Bearer $API_TOKEN" \
9
+ -F 'metadata={"main_module": "worker.mjs"};type=application/json' \
10
+ -F 'worker.mjs=@worker.mjs;type=application/javascript+module'
11
+ ```
12
+
13
+ ### TypeScript SDK
14
+
15
+ ```typescript
16
+ import Cloudflare from 'cloudflare'
17
+
18
+ const client = new Cloudflare({ apiToken: process.env.API_TOKEN })
19
+
20
+ const scriptFile = new File([scriptContent], `${scriptName}.mjs`, {
21
+ type: 'application/javascript+module',
22
+ })
23
+
24
+ await client.workersForPlatforms.dispatch.namespaces.scripts.update(namespace, scriptName, {
25
+ account_id: accountId,
26
+ metadata: { main_module: `${scriptName}.mjs` },
27
+ files: [scriptFile],
28
+ })
29
+ ```
30
+
31
+ ## TypeScript Types
32
+
33
+ ```typescript
34
+ import type { DispatchNamespace } from '@cloudflare/workers-types'
35
+
36
+ interface DispatchNamespace {
37
+ get(
38
+ name: string,
39
+ options?: Record<string, unknown>,
40
+ dispatchOptions?: DynamicDispatchOptions
41
+ ): Fetcher
42
+ }
43
+
44
+ interface DynamicDispatchOptions {
45
+ limits?: DynamicDispatchLimits
46
+ outbound?: Record<string, unknown>
47
+ }
48
+
49
+ interface DynamicDispatchLimits {
50
+ cpuMs?: number // Max CPU milliseconds
51
+ subRequests?: number // Max fetch() calls
52
+ }
53
+
54
+ // Usage
55
+ const userWorker = env.DISPATCHER.get(
56
+ 'customer-123',
57
+ {},
58
+ {
59
+ limits: { cpuMs: 50, subRequests: 20 },
60
+ outbound: { customerId: '123', url: request.url },
61
+ }
62
+ )
63
+ ```
64
+
65
+ ## Deploy with Bindings
66
+
67
+ ```bash
68
+ curl -X PUT ".../scripts/$SCRIPT_NAME" \
69
+ -F 'metadata={
70
+ "main_module": "worker.mjs",
71
+ "bindings": [
72
+ {"type": "kv_namespace", "name": "MY_KV", "namespace_id": "'$KV_ID'"}
73
+ ],
74
+ "tags": ["customer-123", "production"],
75
+ "compatibility_date": "2026-01-01" // Use current date for new projects
76
+ };type=application/json' \
77
+ -F 'worker.mjs=@worker.mjs;type=application/javascript+module'
78
+ ```
79
+
80
+ ## List/Delete Workers
81
+
82
+ ```bash
83
+ # List
84
+ curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/dispatch/namespaces/$NAMESPACE/scripts" \
85
+ -H "Authorization: Bearer $API_TOKEN"
86
+
87
+ # Delete by name
88
+ curl -X DELETE ".../scripts/$SCRIPT_NAME" -H "Authorization: Bearer $API_TOKEN"
89
+
90
+ # Delete by tag
91
+ curl -X DELETE ".../scripts?tags=customer-123%3Ayes" -H "Authorization: Bearer $API_TOKEN"
92
+ ```
93
+
94
+ **Pagination:** SDK supports async iteration. Manual: add `?per_page=100&page=1` query params.
95
+
96
+ ## Static Assets
97
+
98
+ **3-step process:** Create session → Upload files → Deploy Worker
99
+
100
+ ### 1. Create Upload Session
101
+
102
+ ```bash
103
+ curl -X POST ".../scripts/$SCRIPT_NAME/assets-upload-session" \
104
+ -H "Authorization: Bearer $API_TOKEN" \
105
+ -d '{
106
+ "manifest": {
107
+ "/index.html": {"hash": "08f1dfda4574284ab3c21666d1ee8c7d4", "size": 1234}
108
+ }
109
+ }'
110
+ # Returns: jwt, buckets
111
+ ```
112
+
113
+ **Hash:** SHA-256 truncated to first 16 bytes (32 hex characters)
114
+
115
+ ### 2. Upload Files
116
+
117
+ ```bash
118
+ curl -X POST ".../workers/assets/upload?base64=true" \
119
+ -H "Authorization: Bearer $UPLOAD_JWT" \
120
+ -F '08f1dfda4574284ab3c21666d1ee8c7d4=<BASE64_CONTENT>'
121
+ # Returns: completion jwt
122
+ ```
123
+
124
+ **Multiple buckets:** Upload to all returned bucket URLs (typically 2 for redundancy) using same JWT and hash.
125
+
126
+ ### 3. Deploy with Assets
127
+
128
+ ```bash
129
+ curl -X PUT ".../scripts/$SCRIPT_NAME" \
130
+ -F 'metadata={
131
+ "main_module": "index.js",
132
+ "assets": {"jwt": "<COMPLETION_TOKEN>"},
133
+ "bindings": [{"type": "assets", "name": "ASSETS"}]
134
+ };type=application/json' \
135
+ -F 'index.js=export default {...};type=application/javascript+module'
136
+ ```
137
+
138
+ **Asset Isolation:** Assets shared across namespace by default. For customer isolation, salt hash: `sha256(customerId + fileContents).slice(0, 32)`
139
+
140
+ ## Dispatch Workers
141
+
142
+ ### Subdomain Routing
143
+
144
+ ```typescript
145
+ export default {
146
+ async fetch(request: Request, env: Env): Promise<Response> {
147
+ const userWorkerName = new URL(request.url).hostname.split('.')[0]
148
+ const userWorker = env.DISPATCHER.get(userWorkerName)
149
+ return await userWorker.fetch(request)
150
+ },
151
+ }
152
+ ```
153
+
154
+ ### Path Routing
155
+
156
+ ```typescript
157
+ const pathParts = new URL(request.url).pathname.split('/').filter(Boolean)
158
+ const userWorker = env.DISPATCHER.get(pathParts[0])
159
+ return await userWorker.fetch(request)
160
+ ```
161
+
162
+ ### KV Routing
163
+
164
+ ```typescript
165
+ const hostname = new URL(request.url).hostname
166
+ const userWorkerName = await env.ROUTING_KV.get(hostname)
167
+ const userWorker = env.DISPATCHER.get(userWorkerName)
168
+ return await userWorker.fetch(request)
169
+ ```
170
+
171
+ ## Outbound Workers
172
+
173
+ Control external fetch from user Workers:
174
+
175
+ ### Configure
176
+
177
+ ```typescript
178
+ const userWorker = env.DISPATCHER.get(
179
+ workerName,
180
+ {},
181
+ { outbound: { customer_context: { customer_name: workerName, url: request.url } } }
182
+ )
183
+ ```
184
+
185
+ ### Implement
186
+
187
+ ```typescript
188
+ export default {
189
+ async fetch(request: Request, env: Env): Promise<Response> {
190
+ const customerName = env.customer_name
191
+ const url = new URL(request.url)
192
+
193
+ // Block domains
194
+ if (['malicious.com'].some((d) => url.hostname.includes(d))) {
195
+ return new Response('Blocked', { status: 403 })
196
+ }
197
+
198
+ // Inject auth
199
+ if (url.hostname === 'api.example.com') {
200
+ const headers = new Headers(request.headers)
201
+ headers.set('Authorization', `Bearer ${generateJWT(customerName)}`)
202
+ return fetch(new Request(request, { headers }))
203
+ }
204
+
205
+ return fetch(request)
206
+ },
207
+ }
208
+ ```
209
+
210
+ **Note:** Doesn't intercept DO/mTLS fetch.
211
+
212
+ See [README.md](./README.md), [configuration.md](./configuration.md), [patterns.md](./patterns.md), [gotchas.md](./gotchas.md)
@@ -0,0 +1,178 @@
1
+ # Configuration
2
+
3
+ ## Dispatch Namespace Binding
4
+
5
+ ### wrangler.jsonc
6
+
7
+ ```jsonc
8
+ {
9
+ "$schema": "./node_modules/wrangler/config-schema.json",
10
+ "dispatch_namespaces": [
11
+ {
12
+ "binding": "DISPATCHER",
13
+ "namespace": "production",
14
+ },
15
+ ],
16
+ }
17
+ ```
18
+
19
+ ## Worker Isolation Mode
20
+
21
+ Workers in a namespace run in **untrusted mode** by default for security:
22
+
23
+ - No access to `request.cf` object
24
+ - Isolated cache per Worker (no shared cache)
25
+ - `caches.default` disabled
26
+
27
+ ### Enable Trusted Mode
28
+
29
+ For internal platforms where you control all code:
30
+
31
+ ```bash
32
+ curl -X PUT \
33
+ "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/dispatch/namespaces/$NAMESPACE" \
34
+ -H "Authorization: Bearer $API_TOKEN" \
35
+ -d '{"name": "'$NAMESPACE'", "trusted_workers": true}'
36
+ ```
37
+
38
+ **Caveats:**
39
+
40
+ - Workers share cache within namespace (use cache key prefixes: `customer-${id}:${key}`)
41
+ - `request.cf` object accessible
42
+ - Redeploy existing Workers after enabling trusted mode
43
+
44
+ **When to use:** Internal platforms, A/B testing platforms, need geolocation data
45
+
46
+ ### With Outbound Worker
47
+
48
+ ```jsonc
49
+ {
50
+ "dispatch_namespaces": [
51
+ {
52
+ "binding": "DISPATCHER",
53
+ "namespace": "production",
54
+ "outbound": {
55
+ "service": "outbound-worker",
56
+ "parameters": ["customer_context"],
57
+ },
58
+ },
59
+ ],
60
+ }
61
+ ```
62
+
63
+ ## Wrangler Commands
64
+
65
+ ```bash
66
+ wrangler dispatch-namespace list
67
+ wrangler dispatch-namespace get production
68
+ wrangler dispatch-namespace create production
69
+ wrangler dispatch-namespace delete staging
70
+ wrangler dispatch-namespace rename old new
71
+ ```
72
+
73
+ ## Custom Limits
74
+
75
+ Set CPU time and subrequest limits per invocation:
76
+
77
+ ```typescript
78
+ const userWorker = env.DISPATCHER.get(
79
+ workerName,
80
+ {},
81
+ {
82
+ limits: {
83
+ cpuMs: 10, // Max CPU ms
84
+ subRequests: 5, // Max fetch() calls
85
+ },
86
+ }
87
+ )
88
+ ```
89
+
90
+ Handle limit violations:
91
+
92
+ ```typescript
93
+ try {
94
+ return await userWorker.fetch(request)
95
+ } catch (e) {
96
+ if (e.message.includes('CPU time limit')) {
97
+ return new Response('CPU limit exceeded', { status: 429 })
98
+ }
99
+ throw e
100
+ }
101
+ ```
102
+
103
+ ## Static Assets
104
+
105
+ Deploy HTML/CSS/images with Workers. See [api.md](./api.md#static-assets) for upload process.
106
+
107
+ ### Wrangler
108
+
109
+ ```jsonc
110
+ {
111
+ "name": "customer-site",
112
+ "main": "./src/index.js",
113
+ "assets": {
114
+ "directory": "./public",
115
+ "binding": "ASSETS",
116
+ },
117
+ }
118
+ ```
119
+
120
+ ```bash
121
+ npx wrangler deploy --name customer-site --dispatch-namespace production
122
+ ```
123
+
124
+ ### Dashboard Deployment
125
+
126
+ Alternative to CLI:
127
+
128
+ 1. Upload Worker file in dashboard
129
+ 2. Add `--dispatch-namespace` flag: `wrangler deploy --dispatch-namespace production`
130
+ 3. Or configure in wrangler.jsonc under `dispatch_namespaces`
131
+
132
+ See [api.md](./api.md) for programmatic deployment via REST API or SDK.
133
+
134
+ ## Tags
135
+
136
+ Organize/search Workers (max 8/script):
137
+
138
+ ```bash
139
+ # Set tags
140
+ curl -X PUT ".../tags" -d '["customer-123", "pro", "production"]'
141
+
142
+ # Filter by tag
143
+ curl ".../scripts?tags=production%3Ayes"
144
+
145
+ # Delete by tag
146
+ curl -X DELETE ".../scripts?tags=customer-123%3Ayes"
147
+ ```
148
+
149
+ Common patterns: `customer-123`, `free|pro|enterprise`, `production|staging`
150
+
151
+ ## Bindings
152
+
153
+ **Supported binding types:** 29 total including KV, D1, R2, Durable Objects, Analytics Engine, Service, Assets, Queue, Vectorize, Hyperdrive, Workflow, AI, Browser, and more.
154
+
155
+ Add via API metadata (see [api.md](./api.md#deploy-with-bindings)):
156
+
157
+ ```json
158
+ {
159
+ "bindings": [
160
+ { "type": "kv_namespace", "name": "USER_KV", "namespace_id": "..." },
161
+ { "type": "r2_bucket", "name": "STORAGE", "bucket_name": "..." },
162
+ { "type": "d1", "name": "DB", "id": "..." }
163
+ ]
164
+ }
165
+ ```
166
+
167
+ Preserve existing bindings:
168
+
169
+ ```json
170
+ {
171
+ "bindings": [{ "type": "r2_bucket", "name": "STORAGE", "bucket_name": "new" }],
172
+ "keep_bindings": ["kv_namespace", "d1"] // Preserves existing bindings of these types
173
+ }
174
+ ```
175
+
176
+ For complete binding type reference, see [bindings](../bindings/) documentation
177
+
178
+ See [README.md](./README.md), [api.md](./api.md), [patterns.md](./patterns.md), [gotchas.md](./gotchas.md)
@@ -0,0 +1,134 @@
1
+ # Gotchas & Limits
2
+
3
+ ## Common Errors
4
+
5
+ ### "Worker not found"
6
+
7
+ **Cause:** Attempting to get Worker that doesn't exist in namespace
8
+ **Solution:** Catch error and return 404:
9
+
10
+ ```typescript
11
+ try {
12
+ const userWorker = env.DISPATCHER.get(workerName)
13
+ return userWorker.fetch(request)
14
+ } catch (e) {
15
+ if (e.message.startsWith('Worker not found')) {
16
+ return new Response('Worker not found', { status: 404 })
17
+ }
18
+ throw e // Re-throw unexpected errors
19
+ }
20
+ ```
21
+
22
+ ### "CPU time limit exceeded"
23
+
24
+ **Cause:** User Worker exceeded configured CPU time limit
25
+ **Solution:** Track violations in Analytics Engine and return 429 response; consider adjusting limits per customer tier
26
+
27
+ ### "Hostname Routing Issues"
28
+
29
+ **Cause:** DNS proxy settings causing routing problems
30
+ **Solution:** Use `*/*` wildcard route which works regardless of proxy settings for orange-to-orange routing
31
+
32
+ ### "Bindings Lost on Update"
33
+
34
+ **Cause:** Not using `keep_bindings` flag when updating Worker
35
+ **Solution:** Use `keep_bindings: true` in API requests to preserve existing bindings during updates
36
+
37
+ ### "Tag Filtering Not Working"
38
+
39
+ **Cause:** Special characters not URL encoded in tag filters
40
+ **Solution:** URL encode tags (e.g., `tags=production%3Ayes`) and avoid special chars like `,` and `&`
41
+
42
+ ### "Deploy Failures with ES Modules"
43
+
44
+ **Cause:** Incorrect upload format for ES modules
45
+ **Solution:** Use multipart form upload, specify `main_module` in metadata, and set file type to `application/javascript+module`
46
+
47
+ ### "Static Asset Upload Failed"
48
+
49
+ **Cause:** Invalid hash format, expired token, or incorrect encoding
50
+ **Solution:** Hash must be first 16 bytes (32 hex chars) of SHA-256, upload within 1 hour of session creation, deploy within 1 hour of upload completion, and Base64 encode file contents
51
+
52
+ ### "Outbound Worker Not Intercepting Calls"
53
+
54
+ **Cause:** Outbound Workers don't intercept Durable Object or mTLS binding fetch
55
+ **Solution:** Plan egress control accordingly; not all fetch calls are intercepted
56
+
57
+ ### "TCP Socket Connection Failed"
58
+
59
+ **Cause:** Outbound Worker enabled blocks `connect()` API for TCP sockets
60
+ **Solution:** Outbound Workers only intercept `fetch()` calls; TCP socket connections unavailable when outbound configured. Remove outbound if TCP needed, or use proxy pattern.
61
+
62
+ ### "API Rate Limit Exceeded"
63
+
64
+ **Cause:** Exceeded Cloudflare API rate limits (1200 requests per 5 minutes per account, 200 requests per second per IP)
65
+ **Solution:** Implement exponential backoff:
66
+
67
+ ```typescript
68
+ async function deployWithBackoff(deploy: () => Promise<void>, maxRetries = 3) {
69
+ for (let i = 0; i < maxRetries; i++) {
70
+ try {
71
+ return await deploy()
72
+ } catch (e) {
73
+ if (e.status === 429 && i < maxRetries - 1) {
74
+ await new Promise((r) => setTimeout(r, Math.pow(2, i) * 1000))
75
+ continue
76
+ }
77
+ throw e
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ ### "Gradual Deployment Not Supported"
84
+
85
+ **Cause:** Attempted to use gradual deployments with user Workers
86
+ **Solution:** Gradual deployments not supported for Workers in dispatch namespaces. Use all-at-once deployment with staged rollout via dispatch worker logic (feature flags, percentage-based routing).
87
+
88
+ ### "Asset Session Expired"
89
+
90
+ **Cause:** Upload JWT expired (1 hour validity) or completion token expired (1 hour after upload)
91
+ **Solution:** Complete asset upload within 1 hour of session creation, and deploy Worker within 1 hour of upload completion. For large uploads, batch files or increase upload parallelism.
92
+
93
+ ## Platform Limits
94
+
95
+ | Limit | Value | Notes |
96
+ | ------------------------- | ---------------------- | ------------------------------------------ |
97
+ | Workers per namespace | Unlimited | Unlike regular Workers (500 per account) |
98
+ | Namespaces per account | Unlimited | Best practice: 1 production + 1 staging |
99
+ | Max tags per Worker | 8 | For filtering and organization |
100
+ | Worker mode | Untrusted (default) | No `request.cf` access unless trusted mode |
101
+ | Cache isolation | Per-Worker (untrusted) | Shared in trusted mode with key prefixes |
102
+ | Durable Object namespaces | Unlimited | No per-account limit for WfP |
103
+ | Gradual Deployments | Not supported | All-at-once only |
104
+ | `caches.default` | Disabled (untrusted) | Use Cache API with custom keys |
105
+
106
+ ## Asset Upload Limits
107
+
108
+ | Limit | Value | Notes |
109
+ | --------------------------- | ---------------------- | ----------------------------------------- |
110
+ | Upload session JWT validity | 1 hour | Must complete upload within this time |
111
+ | Completion token validity | 1 hour | Must deploy within this time after upload |
112
+ | Asset hash format | First 16 bytes SHA-256 | 32 hex characters |
113
+ | Base64 encoding | Required | For binary files |
114
+
115
+ ## API Rate Limits
116
+
117
+ | Limit Type | Value | Scope |
118
+ | ---------- | --------------------- | ---------------- |
119
+ | Client API | 1200 requests / 5 min | Per account |
120
+ | Client API | 200 requests / sec | Per IP address |
121
+ | GraphQL | Varies by query cost | Query complexity |
122
+
123
+ See [Cloudflare API Rate Limits](https://developers.cloudflare.com/fundamentals/api/reference/limits/) for details.
124
+
125
+ ## Operational Limits
126
+
127
+ | Operation | Limit | Notes |
128
+ | --------------------------- | --------------------------- | ------------------------------------- |
129
+ | CPU time (custom limits) | Up to Workers plan limit | Set per-invocation in dispatch worker |
130
+ | Subrequests (custom limits) | Up to Workers plan limit | Set per-invocation in dispatch worker |
131
+ | Outbound Worker subrequests | Not intercepted for DO/mTLS | Only regular fetch() calls |
132
+ | TCP sockets with outbound | Disabled | `connect()` API unavailable |
133
+
134
+ See [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [patterns.md](./patterns.md)