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,87 @@
1
+ # Cloudflare Containers Skill Reference
2
+
3
+ **APPLIES TO: Cloudflare Containers ONLY - NOT general Cloudflare Workers**
4
+
5
+ Use when working with Cloudflare Containers: deploying containerized apps on Workers platform, configuring container-enabled Durable Objects, managing container lifecycle, or implementing stateful/stateless container patterns.
6
+
7
+ ## Beta Status
8
+
9
+ ⚠️ Containers is currently in **beta**. API may change without notice. No SLA guarantees. Custom instance types added Jan 2026.
10
+
11
+ ## Core Concepts
12
+
13
+ **Container as Durable Object:** Each container is a Durable Object with persistent identity. Accessed via `getByName(id)` or `getRandom()`.
14
+
15
+ **Image deployment:** Images pre-fetched globally. Deployments use rolling strategy (not instant like Workers).
16
+
17
+ **Lifecycle:** cold start (2-3s) → running → `sleepAfter` timeout → stopped. No autoscaling - manual load balancing via `getRandom()`.
18
+
19
+ **Persistent identity, ephemeral disk:** Container ID persists, but disk resets on stop. Use Durable Object storage for persistence.
20
+
21
+ ## Quick Start
22
+
23
+ ```typescript
24
+ import { Container } from '@cloudflare/containers'
25
+
26
+ export class MyContainer extends Container {
27
+ defaultPort = 8080
28
+ sleepAfter = '30m'
29
+ }
30
+
31
+ export default {
32
+ async fetch(request: Request, env: Env) {
33
+ const container = env.MY_CONTAINER.getByName('instance-1')
34
+ await container.startAndWaitForPorts()
35
+ return container.fetch(request)
36
+ },
37
+ }
38
+ ```
39
+
40
+ ## Reading Order
41
+
42
+ | Task | Files |
43
+ | --------------------------- | ------------------------------------ |
44
+ | Setup new container project | README → configuration.md |
45
+ | Implement container logic | README → api.md → patterns.md |
46
+ | Choose routing pattern | patterns.md (routing section) |
47
+ | Debug issues | gotchas.md |
48
+ | Production hardening | gotchas.md → patterns.md (lifecycle) |
49
+
50
+ ## Routing Decision Tree
51
+
52
+ **How should requests reach containers?**
53
+
54
+ - **Same user/session → same container:** Use `getByName(sessionId)` for session affinity
55
+ - **Stateless, spread load:** Use `getRandom()` for load balancing
56
+ - **Job per container:** Use `getByName(jobId)` + explicit lifecycle management
57
+ - **Single global instance:** Use `getByName("singleton")`
58
+
59
+ ## When to Use Containers vs Workers
60
+
61
+ **Use Containers when:**
62
+
63
+ - Need stateful, long-lived processes (sessions, WebSockets, games)
64
+ - Running existing containerized apps (Node.js, Python, custom binaries)
65
+ - Need filesystem access or specific system dependencies
66
+ - Per-user/session isolation with dedicated compute
67
+
68
+ **Use Workers when:**
69
+
70
+ - Stateless HTTP handlers
71
+ - Sub-millisecond cold starts required
72
+ - Auto-scaling to zero critical
73
+ - Simple request/response patterns
74
+
75
+ ## In This Reference
76
+
77
+ - **[configuration.md](configuration.md)** - Wrangler config, instance types, Container class properties, environment variables, account limits
78
+ - **[api.md](api.md)** - Container class API, startup methods, communication (HTTP/TCP/WebSocket), routing helpers, lifecycle hooks, scheduling, state inspection
79
+ - **[patterns.md](patterns.md)** - Routing patterns (session affinity, load balancing, singleton), WebSocket forwarding, graceful shutdown, Workflow/Queue integration
80
+ - **[gotchas.md](gotchas.md)** - Critical gotchas (WebSocket, startup methods), common errors with solutions, specific limits, beta caveats
81
+
82
+ ## See Also
83
+
84
+ - [Durable Objects](../durable-objects/) - Containers extend Durable Objects
85
+ - [Workflows](../workflows/) - Orchestrate container operations
86
+ - [Queues](../queues/) - Trigger containers from queue messages
87
+ - [Cloudflare Docs](https://developers.cloudflare.com/containers/)
@@ -0,0 +1,197 @@
1
+ ## Container Class API
2
+
3
+ ```typescript
4
+ import { Container } from '@cloudflare/containers'
5
+
6
+ export class MyContainer extends Container {
7
+ defaultPort = 8080
8
+ requiredPorts = [8080]
9
+ sleepAfter = '30m'
10
+ enableInternet = true
11
+ pingEndpoint = '/health'
12
+ envVars = {}
13
+ entrypoint = []
14
+
15
+ onStart() {
16
+ /* container started */
17
+ }
18
+ onStop() {
19
+ /* container stopping */
20
+ }
21
+ onError(error: Error) {
22
+ /* container error */
23
+ }
24
+ onActivityExpired(): boolean {
25
+ /* timeout, return true to stay alive */
26
+ }
27
+ async alarm() {
28
+ /* scheduled task */
29
+ }
30
+ }
31
+ ```
32
+
33
+ ## Routing
34
+
35
+ **getByName(id)** - Named instance for session affinity, per-user state
36
+ **getRandom()** - Random instance for load balancing stateless services
37
+
38
+ ```typescript
39
+ const container = env.MY_CONTAINER.getByName('user-123')
40
+ const container = env.MY_CONTAINER.getRandom()
41
+ ```
42
+
43
+ ## Startup Methods
44
+
45
+ ### start() - Basic start (8s timeout)
46
+
47
+ ```typescript
48
+ await container.start()
49
+ await container.start({ envVars: { KEY: 'value' } })
50
+ ```
51
+
52
+ Returns when **process starts**, NOT when ports ready. Use for fire-and-forget.
53
+
54
+ ### startAndWaitForPorts() - Recommended (20s timeout)
55
+
56
+ ```typescript
57
+ await container.startAndWaitForPorts() // Uses requiredPorts
58
+ await container.startAndWaitForPorts({ ports: [8080, 9090] })
59
+ await container.startAndWaitForPorts({
60
+ ports: [8080],
61
+ startOptions: { envVars: { KEY: 'value' } },
62
+ })
63
+ ```
64
+
65
+ Returns when **ports listening**. Use before HTTP/TCP requests.
66
+
67
+ **Port resolution:** explicit ports → requiredPorts → defaultPort → port 33
68
+
69
+ ### waitForPort() - Wait for specific port
70
+
71
+ ```typescript
72
+ await container.waitForPort(8080)
73
+ await container.waitForPort(8080, { timeout: 30000 })
74
+ ```
75
+
76
+ ## Communication
77
+
78
+ ### fetch() - HTTP with WebSocket support
79
+
80
+ ```typescript
81
+ // ✅ Supports WebSocket upgrades
82
+ const response = await container.fetch(request)
83
+ const response = await container.fetch('http://container/api', {
84
+ method: 'POST',
85
+ body: JSON.stringify({ data: 'value' }),
86
+ })
87
+ ```
88
+
89
+ **Use for:** All HTTP, especially WebSocket.
90
+
91
+ ### containerFetch() - HTTP only (no WebSocket)
92
+
93
+ ```typescript
94
+ // ❌ No WebSocket support
95
+ const response = await container.containerFetch(request)
96
+ ```
97
+
98
+ **⚠️ Critical:** Use `fetch()` for WebSocket, not `containerFetch()`.
99
+
100
+ ### TCP Connections
101
+
102
+ ```typescript
103
+ const port = this.ctx.container.getTcpPort(8080)
104
+ const conn = port.connect()
105
+ await conn.opened
106
+
107
+ if (request.body) await request.body.pipeTo(conn.writable)
108
+ return new Response(conn.readable)
109
+ ```
110
+
111
+ ### switchPort() - Change default port
112
+
113
+ ```typescript
114
+ this.switchPort(8081) // Subsequent fetch() uses this port
115
+ ```
116
+
117
+ ## Lifecycle Hooks
118
+
119
+ ### onStart()
120
+
121
+ Called when container process starts (ports may not be ready). Runs in `blockConcurrencyWhile` - no concurrent requests.
122
+
123
+ ```typescript
124
+ onStart() {
125
+ console.log("Container starting");
126
+ }
127
+ ```
128
+
129
+ ### onStop()
130
+
131
+ Called when SIGTERM received. 15 minutes until SIGKILL. Use for graceful shutdown.
132
+
133
+ ```typescript
134
+ onStop() {
135
+ // Save state, close connections, flush logs
136
+ }
137
+ ```
138
+
139
+ ### onError()
140
+
141
+ Called when container crashes or fails to start.
142
+
143
+ ```typescript
144
+ onError(error: Error) {
145
+ console.error("Container error:", error);
146
+ }
147
+ ```
148
+
149
+ ### onActivityExpired()
150
+
151
+ Called when `sleepAfter` timeout reached. Return `true` to stay alive, `false` to stop.
152
+
153
+ ```typescript
154
+ onActivityExpired(): boolean {
155
+ if (this.hasActiveConnections()) return true; // Keep alive
156
+ return false; // OK to stop
157
+ }
158
+ ```
159
+
160
+ ## Scheduling
161
+
162
+ ```typescript
163
+ export class ScheduledContainer extends Container {
164
+ async fetch(request: Request) {
165
+ await this.schedule(Date.now() + 60000) // 1 minute
166
+ await this.schedule('2026-01-28T00:00:00Z') // ISO string
167
+ return new Response('Scheduled')
168
+ }
169
+
170
+ async alarm() {
171
+ // Called when schedule fires (SQLite-backed, survives restarts)
172
+ }
173
+ }
174
+ ```
175
+
176
+ **⚠️ Don't override `alarm()` directly when using `schedule()` helper.**
177
+
178
+ ## State Inspection
179
+
180
+ ### External state check
181
+
182
+ ```typescript
183
+ const state = await container.getState()
184
+ // state.status: "starting" | "running" | "stopping" | "stopped"
185
+ ```
186
+
187
+ ### Internal state check
188
+
189
+ ```typescript
190
+ export class MyContainer extends Container {
191
+ async fetch(request: Request) {
192
+ if (this.ctx.container.running) { ... }
193
+ }
194
+ }
195
+ ```
196
+
197
+ **⚠️ Use `getState()` for external checks, `ctx.container.running` for internal.**
@@ -0,0 +1,191 @@
1
+ ## Wrangler Configuration
2
+
3
+ ### Basic Container Config
4
+
5
+ ```jsonc
6
+ {
7
+ "name": "my-worker",
8
+ "main": "src/index.ts",
9
+ "compatibility_date": "2026-01-10",
10
+ "containers": [
11
+ {
12
+ "class_name": "MyContainer",
13
+ "image": "./Dockerfile", // Path to Dockerfile or directory with Dockerfile
14
+ "instance_type": "standard-1", // Predefined or custom (see below)
15
+ "max_instances": 10,
16
+ },
17
+ ],
18
+ "durable_objects": {
19
+ "bindings": [
20
+ {
21
+ "name": "MY_CONTAINER",
22
+ "class_name": "MyContainer",
23
+ },
24
+ ],
25
+ },
26
+ "migrations": [
27
+ {
28
+ "tag": "v1",
29
+ "new_sqlite_classes": ["MyContainer"], // Must use new_sqlite_classes
30
+ },
31
+ ],
32
+ }
33
+ ```
34
+
35
+ Key config requirements:
36
+
37
+ - `image` - Path to Dockerfile or directory containing Dockerfile
38
+ - `class_name` - Must match Container class export name
39
+ - `max_instances` - Max concurrent container instances
40
+ - Must configure Durable Objects binding AND migrations
41
+
42
+ ### Instance Types
43
+
44
+ #### Predefined Types
45
+
46
+ | Type | vCPU | Memory | Disk |
47
+ | ---------- | ---- | ------- | ----- |
48
+ | lite | 1/16 | 256 MiB | 2 GB |
49
+ | basic | 1/4 | 1 GiB | 4 GB |
50
+ | standard-1 | 1/2 | 4 GiB | 8 GB |
51
+ | standard-2 | 1 | 6 GiB | 12 GB |
52
+ | standard-3 | 2 | 8 GiB | 16 GB |
53
+ | standard-4 | 4 | 12 GiB | 20 GB |
54
+
55
+ ```jsonc
56
+ {
57
+ "containers": [
58
+ {
59
+ "class_name": "MyContainer",
60
+ "image": "./Dockerfile",
61
+ "instance_type": "standard-2", // Use predefined type
62
+ },
63
+ ],
64
+ }
65
+ ```
66
+
67
+ #### Custom Types (Jan 2026 Feature)
68
+
69
+ ```jsonc
70
+ {
71
+ "containers": [
72
+ {
73
+ "class_name": "MyContainer",
74
+ "image": "./Dockerfile",
75
+ "instance_type_custom": {
76
+ "vcpu": 2, // 1-4 vCPU
77
+ "memory_mib": 8192, // 512-12288 MiB (up to 12 GiB)
78
+ "disk_mib": 16384, // 2048-20480 MiB (up to 20 GB)
79
+ },
80
+ },
81
+ ],
82
+ }
83
+ ```
84
+
85
+ **Custom type constraints:**
86
+
87
+ - Minimum 3 GiB memory per vCPU
88
+ - Maximum 2 GB disk per 1 GiB memory
89
+ - Max 4 vCPU, 12 GiB memory, 20 GB disk per container
90
+
91
+ ### Account Limits
92
+
93
+ | Resource | Limit | Notes |
94
+ | ----------------------------- | ------- | ----------------------------- |
95
+ | Total memory (all containers) | 400 GiB | Across all running containers |
96
+ | Total vCPU (all containers) | 100 | Across all running containers |
97
+ | Total disk (all containers) | 2 TB | Across all running containers |
98
+ | Image storage per account | 50 GB | Stored container images |
99
+
100
+ ### Container Class Properties
101
+
102
+ ```typescript
103
+ import { Container } from '@cloudflare/containers'
104
+
105
+ export class MyContainer extends Container {
106
+ // Port Configuration
107
+ defaultPort = 8080 // Default port for fetch() calls
108
+ requiredPorts = [8080, 9090] // Ports to wait for in startAndWaitForPorts()
109
+
110
+ // Lifecycle
111
+ sleepAfter = '30m' // Inactivity timeout (5m, 30m, 2h, etc.)
112
+
113
+ // Network
114
+ enableInternet = true // Allow outbound internet access
115
+
116
+ // Health Check
117
+ pingEndpoint = '/health' // Health check endpoint path
118
+
119
+ // Environment
120
+ envVars = {
121
+ // Environment variables passed to container
122
+ NODE_ENV: 'production',
123
+ LOG_LEVEL: 'info',
124
+ }
125
+
126
+ // Startup
127
+ entrypoint = ['/bin/start.sh'] // Override image entrypoint (optional)
128
+ }
129
+ ```
130
+
131
+ **Property details:**
132
+
133
+ - **`defaultPort`**: Port used when calling `container.fetch()` without explicit port. Falls back to port 33 if not set.
134
+
135
+ - **`requiredPorts`**: Array of ports that must be listening before `startAndWaitForPorts()` returns. First port becomes default if `defaultPort` not set.
136
+
137
+ - **`sleepAfter`**: Duration string (e.g., "5m", "30m", "2h"). Container stops after this period of inactivity. Timer resets on each request.
138
+
139
+ - **`enableInternet`**: Boolean. If `true`, container can make outbound HTTP/TCP requests.
140
+
141
+ - **`pingEndpoint`**: Path used for health checks. Should respond with 2xx status.
142
+
143
+ - **`envVars`**: Object of environment variables. Merged with runtime-provided vars (see below).
144
+
145
+ - **`entrypoint`**: Array of strings. Overrides container image's CMD/ENTRYPOINT.
146
+
147
+ ### Runtime Environment Variables
148
+
149
+ Cloudflare automatically provides these environment variables to containers:
150
+
151
+ | Variable | Description |
152
+ | ------------------------------ | ----------------------------------------- |
153
+ | `CLOUDFLARE_APPLICATION_ID` | Worker application ID |
154
+ | `CLOUDFLARE_COUNTRY_A2` | Two-letter country code of request origin |
155
+ | `CLOUDFLARE_LOCATION` | Cloudflare data center location |
156
+ | `CLOUDFLARE_REGION` | Region identifier |
157
+ | `CLOUDFLARE_DURABLE_OBJECT_ID` | Container's Durable Object ID |
158
+
159
+ Custom `envVars` from Container class are merged with these. Custom vars override runtime vars if names conflict.
160
+
161
+ ### Image Management
162
+
163
+ **Distribution model:** Images pre-fetched to all global locations before deployment. Ensures fast cold starts (2-3s typical).
164
+
165
+ **Rolling deploys:** Unlike Workers (instant), container deployments roll out gradually. Old versions continue running during rollout.
166
+
167
+ **Ephemeral disk:** Container disk is ephemeral and resets on each stop. Use Durable Object storage (`this.ctx.storage`) for persistence.
168
+
169
+ ## wrangler.toml Format
170
+
171
+ ```toml
172
+ name = "my-worker"
173
+ main = "src/index.ts"
174
+ compatibility_date = "2026-01-10"
175
+
176
+ [[containers]]
177
+ class_name = "MyContainer"
178
+ image = "./Dockerfile"
179
+ instance_type = "standard-2"
180
+ max_instances = 10
181
+
182
+ [[durable_objects.bindings]]
183
+ name = "MY_CONTAINER"
184
+ class_name = "MyContainer"
185
+
186
+ [[migrations]]
187
+ tag = "v1"
188
+ new_sqlite_classes = ["MyContainer"]
189
+ ```
190
+
191
+ Both `wrangler.jsonc` and `wrangler.toml` are supported. Use `wrangler.jsonc` for comments and better IDE support.
@@ -0,0 +1,182 @@
1
+ ## Critical Gotchas
2
+
3
+ ### ⚠️ WebSocket: fetch() vs containerFetch()
4
+
5
+ **Problem:** WebSocket connections fail silently
6
+
7
+ **Cause:** `containerFetch()` doesn't support WebSocket upgrades
8
+
9
+ **Fix:** Always use `fetch()` for WebSocket
10
+
11
+ ```typescript
12
+ // ❌ WRONG
13
+ return container.containerFetch(request)
14
+
15
+ // ✅ CORRECT
16
+ return container.fetch(request)
17
+ ```
18
+
19
+ ### ⚠️ startAndWaitForPorts() vs start()
20
+
21
+ **Problem:** "connection refused" after `start()`
22
+
23
+ **Cause:** `start()` returns when process starts, NOT when ports ready
24
+
25
+ **Fix:** Use `startAndWaitForPorts()` before requests
26
+
27
+ ```typescript
28
+ // ❌ WRONG
29
+ await container.start()
30
+ return container.fetch(request)
31
+
32
+ // ✅ CORRECT
33
+ await container.startAndWaitForPorts()
34
+ return container.fetch(request)
35
+ ```
36
+
37
+ ### ⚠️ Activity Timeout on Long Operations
38
+
39
+ **Problem:** Container stops during long work
40
+
41
+ **Cause:** `sleepAfter` based on request activity, not internal work
42
+
43
+ **Fix:** Renew timeout by touching storage
44
+
45
+ ```typescript
46
+ const interval = setInterval(() => {
47
+ this.ctx.storage.put('keepalive', Date.now())
48
+ }, 60000)
49
+
50
+ try {
51
+ await this.doLongWork(data)
52
+ } finally {
53
+ clearInterval(interval)
54
+ }
55
+ ```
56
+
57
+ ### ⚠️ blockConcurrencyWhile for Startup
58
+
59
+ **Problem:** Race conditions during initialization
60
+
61
+ **Fix:** Use `blockConcurrencyWhile` for atomic initialization
62
+
63
+ ```typescript
64
+ await this.ctx.blockConcurrencyWhile(async () => {
65
+ if (!this.initialized) {
66
+ await this.startAndWaitForPorts()
67
+ this.initialized = true
68
+ }
69
+ })
70
+ ```
71
+
72
+ ### ⚠️ Lifecycle Hooks Block Requests
73
+
74
+ **Problem:** Container unresponsive during `onStart()`
75
+
76
+ **Cause:** Hooks run in `blockConcurrencyWhile` - no concurrent requests
77
+
78
+ **Fix:** Keep hooks fast, avoid long operations
79
+
80
+ ### ⚠️ Don't Override alarm() When Using schedule()
81
+
82
+ **Problem:** Scheduled tasks don't execute
83
+
84
+ **Cause:** `schedule()` uses `alarm()` internally
85
+
86
+ **Fix:** Implement `alarm()` to handle scheduled tasks
87
+
88
+ ## Common Errors
89
+
90
+ ### "Container start timeout"
91
+
92
+ **Cause:** Container took >8s (`start()`) or >20s (`startAndWaitForPorts()`)
93
+
94
+ **Solutions:**
95
+
96
+ - Optimize image (smaller base, fewer layers)
97
+ - Check `entrypoint` correct
98
+ - Verify app listens on correct ports
99
+ - Increase timeout if needed
100
+
101
+ ### "Port not available"
102
+
103
+ **Cause:** Calling `fetch()` before port ready
104
+
105
+ **Solution:** Use `startAndWaitForPorts()`
106
+
107
+ ### "Container memory exceeded"
108
+
109
+ **Cause:** Using more memory than instance type allows
110
+
111
+ **Solutions:**
112
+
113
+ - Use larger instance type (standard-2, standard-3, standard-4)
114
+ - Optimize app memory usage
115
+ - Use custom instance type
116
+
117
+ ```jsonc
118
+ "instance_type_custom": {
119
+ "vcpu": 2,
120
+ "memory_mib": 8192
121
+ }
122
+ ```
123
+
124
+ ### "Max instances reached"
125
+
126
+ **Cause:** All `max_instances` slots in use
127
+
128
+ **Solutions:**
129
+
130
+ - Increase `max_instances`
131
+ - Implement proper `sleepAfter`
132
+ - Use `getRandom()` for distribution
133
+ - Check for instance leaks
134
+
135
+ ### "No container instance available"
136
+
137
+ **Cause:** Account capacity limits reached
138
+
139
+ **Solutions:**
140
+
141
+ - Check account limits
142
+ - Review instance types across containers
143
+ - Contact Cloudflare support
144
+
145
+ ## Limits
146
+
147
+ | Resource | Limit | Notes |
148
+ | -------------------------------- | ------- | -------------------------- |
149
+ | Cold start | 2-3s | Image pre-fetched globally |
150
+ | Graceful shutdown | 15 min | SIGTERM → SIGKILL |
151
+ | `start()` timeout | 8s | Process start |
152
+ | `startAndWaitForPorts()` timeout | 20s | Port ready |
153
+ | Max vCPU per container | 4 | standard-4 or custom |
154
+ | Max memory per container | 12 GiB | standard-4 or custom |
155
+ | Max disk per container | 20 GB | Ephemeral, resets |
156
+ | Account total memory | 400 GiB | All containers |
157
+ | Account total vCPU | 100 | All containers |
158
+ | Account total disk | 2 TB | All containers |
159
+ | Image storage | 50 GB | Per account |
160
+ | Disk persistence | None | Use DO storage |
161
+
162
+ ## Best Practices
163
+
164
+ 1. **Use `startAndWaitForPorts()` by default** - Prevents port errors
165
+ 2. **Set appropriate `sleepAfter`** - Balance resources vs cold starts
166
+ 3. **Use `fetch()` for WebSocket** - Not `containerFetch()`
167
+ 4. **Design for restarts** - Ephemeral disk, implement graceful shutdown
168
+ 5. **Monitor resources** - Stay within account limits
169
+ 6. **Keep hooks fast** - Run in `blockConcurrencyWhile`
170
+ 7. **Renew activity for long ops** - Touch storage to prevent timeout
171
+
172
+ ## Beta Caveats
173
+
174
+ ⚠️ Containers in **beta**:
175
+
176
+ - **API may change** without notice
177
+ - **No SLA** guarantees
178
+ - **Limited regions** initially
179
+ - **No autoscaling** - manual via `getRandom()`
180
+ - **Rolling deploys** only (not instant like Workers)
181
+
182
+ Plan for API changes, test thoroughly before production.