pi-cloudflare 0.1.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 (410) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +67 -0
  3. package/bin/setup.mjs +103 -0
  4. package/dist/auth-flow.d.ts +15 -0
  5. package/dist/auth-flow.d.ts.map +1 -0
  6. package/dist/auth-flow.js +90 -0
  7. package/dist/auth-flow.js.map +1 -0
  8. package/dist/client.d.ts +18 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/client.js +47 -0
  11. package/dist/client.js.map +1 -0
  12. package/dist/config.d.ts +13 -0
  13. package/dist/config.d.ts.map +1 -0
  14. package/dist/config.js +10 -0
  15. package/dist/config.js.map +1 -0
  16. package/dist/index.d.ts +24 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +109 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/oauth.d.ts +44 -0
  21. package/dist/oauth.d.ts.map +1 -0
  22. package/dist/oauth.js +135 -0
  23. package/dist/oauth.js.map +1 -0
  24. package/dist/proxy.d.ts +29 -0
  25. package/dist/proxy.d.ts.map +1 -0
  26. package/dist/proxy.js +39 -0
  27. package/dist/proxy.js.map +1 -0
  28. package/dist/servers.d.ts +19 -0
  29. package/dist/servers.d.ts.map +1 -0
  30. package/dist/servers.js +40 -0
  31. package/dist/servers.js.map +1 -0
  32. package/dist/token-store.d.ts +23 -0
  33. package/dist/token-store.d.ts.map +1 -0
  34. package/dist/token-store.js +47 -0
  35. package/dist/token-store.js.map +1 -0
  36. package/package.json +67 -0
  37. package/skills/agents-sdk/SKILL.md +221 -0
  38. package/skills/agents-sdk/references/browse-the-web.md +63 -0
  39. package/skills/agents-sdk/references/callable.md +92 -0
  40. package/skills/agents-sdk/references/client-sdk.md +110 -0
  41. package/skills/agents-sdk/references/codemode.md +110 -0
  42. package/skills/agents-sdk/references/configuration.md +72 -0
  43. package/skills/agents-sdk/references/durable-execution.md +51 -0
  44. package/skills/agents-sdk/references/email.md +146 -0
  45. package/skills/agents-sdk/references/human-in-the-loop.md +67 -0
  46. package/skills/agents-sdk/references/mcp.md +188 -0
  47. package/skills/agents-sdk/references/observability.md +44 -0
  48. package/skills/agents-sdk/references/queue-retries.md +79 -0
  49. package/skills/agents-sdk/references/routing.md +75 -0
  50. package/skills/agents-sdk/references/server-driven-messages.md +63 -0
  51. package/skills/agents-sdk/references/state-scheduling.md +171 -0
  52. package/skills/agents-sdk/references/streaming-chat.md +198 -0
  53. package/skills/agents-sdk/references/think.md +112 -0
  54. package/skills/agents-sdk/references/voice.md +68 -0
  55. package/skills/agents-sdk/references/webhooks-push.md +86 -0
  56. package/skills/agents-sdk/references/workflows.md +132 -0
  57. package/skills/cloudflare/SKILL.md +248 -0
  58. package/skills/cloudflare/references/agents-sdk/README.md +89 -0
  59. package/skills/cloudflare/references/agents-sdk/api.md +190 -0
  60. package/skills/cloudflare/references/agents-sdk/configuration.md +182 -0
  61. package/skills/cloudflare/references/agents-sdk/gotchas.md +158 -0
  62. package/skills/cloudflare/references/agents-sdk/patterns.md +192 -0
  63. package/skills/cloudflare/references/ai-gateway/README.md +175 -0
  64. package/skills/cloudflare/references/ai-gateway/configuration.md +111 -0
  65. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +82 -0
  66. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  67. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +114 -0
  68. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +88 -0
  69. package/skills/cloudflare/references/ai-search/README.md +138 -0
  70. package/skills/cloudflare/references/ai-search/api.md +87 -0
  71. package/skills/cloudflare/references/ai-search/configuration.md +88 -0
  72. package/skills/cloudflare/references/ai-search/gotchas.md +81 -0
  73. package/skills/cloudflare/references/ai-search/patterns.md +85 -0
  74. package/skills/cloudflare/references/analytics-engine/README.md +94 -0
  75. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  76. package/skills/cloudflare/references/analytics-engine/configuration.md +112 -0
  77. package/skills/cloudflare/references/analytics-engine/gotchas.md +85 -0
  78. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  79. package/skills/cloudflare/references/api/README.md +66 -0
  80. package/skills/cloudflare/references/api/api.md +204 -0
  81. package/skills/cloudflare/references/api/configuration.md +160 -0
  82. package/skills/cloudflare/references/api/gotchas.md +225 -0
  83. package/skills/cloudflare/references/api/patterns.md +204 -0
  84. package/skills/cloudflare/references/api-shield/README.md +44 -0
  85. package/skills/cloudflare/references/api-shield/api.md +141 -0
  86. package/skills/cloudflare/references/api-shield/configuration.md +192 -0
  87. package/skills/cloudflare/references/api-shield/gotchas.md +125 -0
  88. package/skills/cloudflare/references/api-shield/patterns.md +180 -0
  89. package/skills/cloudflare/references/argo-smart-routing/README.md +90 -0
  90. package/skills/cloudflare/references/argo-smart-routing/api.md +240 -0
  91. package/skills/cloudflare/references/argo-smart-routing/configuration.md +197 -0
  92. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +111 -0
  93. package/skills/cloudflare/references/argo-smart-routing/patterns.md +104 -0
  94. package/skills/cloudflare/references/artifacts/README.md +79 -0
  95. package/skills/cloudflare/references/artifacts/api.md +128 -0
  96. package/skills/cloudflare/references/artifacts/configuration.md +92 -0
  97. package/skills/cloudflare/references/bindings/README.md +122 -0
  98. package/skills/cloudflare/references/bindings/api.md +203 -0
  99. package/skills/cloudflare/references/bindings/configuration.md +188 -0
  100. package/skills/cloudflare/references/bindings/gotchas.md +208 -0
  101. package/skills/cloudflare/references/bindings/patterns.md +200 -0
  102. package/skills/cloudflare/references/bot-management/README.md +94 -0
  103. package/skills/cloudflare/references/bot-management/api.md +169 -0
  104. package/skills/cloudflare/references/bot-management/configuration.md +163 -0
  105. package/skills/cloudflare/references/bot-management/gotchas.md +114 -0
  106. package/skills/cloudflare/references/bot-management/patterns.md +182 -0
  107. package/skills/cloudflare/references/browser-rendering/README.md +78 -0
  108. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  109. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  110. package/skills/cloudflare/references/browser-rendering/gotchas.md +88 -0
  111. package/skills/cloudflare/references/browser-rendering/patterns.md +91 -0
  112. package/skills/cloudflare/references/c3/README.md +111 -0
  113. package/skills/cloudflare/references/c3/api.md +71 -0
  114. package/skills/cloudflare/references/c3/configuration.md +81 -0
  115. package/skills/cloudflare/references/c3/gotchas.md +92 -0
  116. package/skills/cloudflare/references/c3/patterns.md +82 -0
  117. package/skills/cloudflare/references/cache-reserve/README.md +147 -0
  118. package/skills/cloudflare/references/cache-reserve/api.md +194 -0
  119. package/skills/cloudflare/references/cache-reserve/configuration.md +169 -0
  120. package/skills/cloudflare/references/cache-reserve/gotchas.md +132 -0
  121. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  122. package/skills/cloudflare/references/containers/README.md +85 -0
  123. package/skills/cloudflare/references/containers/api.md +187 -0
  124. package/skills/cloudflare/references/containers/configuration.md +188 -0
  125. package/skills/cloudflare/references/containers/gotchas.md +178 -0
  126. package/skills/cloudflare/references/containers/patterns.md +202 -0
  127. package/skills/cloudflare/references/cron-triggers/README.md +99 -0
  128. package/skills/cloudflare/references/cron-triggers/api.md +196 -0
  129. package/skills/cloudflare/references/cron-triggers/configuration.md +180 -0
  130. package/skills/cloudflare/references/cron-triggers/gotchas.md +199 -0
  131. package/skills/cloudflare/references/cron-triggers/patterns.md +190 -0
  132. package/skills/cloudflare/references/d1/README.md +133 -0
  133. package/skills/cloudflare/references/d1/api.md +196 -0
  134. package/skills/cloudflare/references/d1/configuration.md +191 -0
  135. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  136. package/skills/cloudflare/references/d1/patterns.md +189 -0
  137. package/skills/cloudflare/references/ddos/README.md +41 -0
  138. package/skills/cloudflare/references/ddos/api.md +164 -0
  139. package/skills/cloudflare/references/ddos/configuration.md +93 -0
  140. package/skills/cloudflare/references/ddos/gotchas.md +107 -0
  141. package/skills/cloudflare/references/ddos/patterns.md +174 -0
  142. package/skills/cloudflare/references/do-storage/README.md +75 -0
  143. package/skills/cloudflare/references/do-storage/api.md +102 -0
  144. package/skills/cloudflare/references/do-storage/configuration.md +112 -0
  145. package/skills/cloudflare/references/do-storage/gotchas.md +150 -0
  146. package/skills/cloudflare/references/do-storage/patterns.md +194 -0
  147. package/skills/cloudflare/references/do-storage/testing.md +183 -0
  148. package/skills/cloudflare/references/durable-objects/README.md +185 -0
  149. package/skills/cloudflare/references/durable-objects/api.md +187 -0
  150. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  151. package/skills/cloudflare/references/durable-objects/gotchas.md +197 -0
  152. package/skills/cloudflare/references/durable-objects/patterns.md +201 -0
  153. package/skills/cloudflare/references/email-routing/README.md +89 -0
  154. package/skills/cloudflare/references/email-routing/api.md +195 -0
  155. package/skills/cloudflare/references/email-routing/configuration.md +186 -0
  156. package/skills/cloudflare/references/email-routing/gotchas.md +196 -0
  157. package/skills/cloudflare/references/email-routing/patterns.md +229 -0
  158. package/skills/cloudflare/references/email-workers/README.md +151 -0
  159. package/skills/cloudflare/references/email-workers/api.md +237 -0
  160. package/skills/cloudflare/references/email-workers/configuration.md +112 -0
  161. package/skills/cloudflare/references/email-workers/gotchas.md +125 -0
  162. package/skills/cloudflare/references/email-workers/patterns.md +102 -0
  163. package/skills/cloudflare/references/flagship/README.md +59 -0
  164. package/skills/cloudflare/references/flagship/api.md +390 -0
  165. package/skills/cloudflare/references/flagship/configuration.md +202 -0
  166. package/skills/cloudflare/references/flagship/gotchas.md +178 -0
  167. package/skills/cloudflare/references/flagship/patterns.md +469 -0
  168. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  169. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  170. package/skills/cloudflare/references/graphql-api/configuration.md +118 -0
  171. package/skills/cloudflare/references/graphql-api/gotchas.md +110 -0
  172. package/skills/cloudflare/references/graphql-api/patterns.md +225 -0
  173. package/skills/cloudflare/references/hyperdrive/README.md +82 -0
  174. package/skills/cloudflare/references/hyperdrive/api.md +143 -0
  175. package/skills/cloudflare/references/hyperdrive/configuration.md +159 -0
  176. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  177. package/skills/cloudflare/references/hyperdrive/patterns.md +190 -0
  178. package/skills/cloudflare/references/images/README.md +61 -0
  179. package/skills/cloudflare/references/images/api.md +96 -0
  180. package/skills/cloudflare/references/images/configuration.md +211 -0
  181. package/skills/cloudflare/references/images/gotchas.md +99 -0
  182. package/skills/cloudflare/references/images/patterns.md +115 -0
  183. package/skills/cloudflare/references/kv/README.md +89 -0
  184. package/skills/cloudflare/references/kv/api.md +160 -0
  185. package/skills/cloudflare/references/kv/configuration.md +144 -0
  186. package/skills/cloudflare/references/kv/gotchas.md +131 -0
  187. package/skills/cloudflare/references/kv/patterns.md +196 -0
  188. package/skills/cloudflare/references/miniflare/README.md +105 -0
  189. package/skills/cloudflare/references/miniflare/api.md +187 -0
  190. package/skills/cloudflare/references/miniflare/configuration.md +173 -0
  191. package/skills/cloudflare/references/miniflare/gotchas.md +160 -0
  192. package/skills/cloudflare/references/miniflare/patterns.md +181 -0
  193. package/skills/cloudflare/references/network-interconnect/README.md +99 -0
  194. package/skills/cloudflare/references/network-interconnect/api.md +199 -0
  195. package/skills/cloudflare/references/network-interconnect/configuration.md +114 -0
  196. package/skills/cloudflare/references/network-interconnect/gotchas.md +165 -0
  197. package/skills/cloudflare/references/network-interconnect/patterns.md +166 -0
  198. package/skills/cloudflare/references/observability/README.md +88 -0
  199. package/skills/cloudflare/references/observability/api.md +164 -0
  200. package/skills/cloudflare/references/observability/configuration.md +169 -0
  201. package/skills/cloudflare/references/observability/gotchas.md +115 -0
  202. package/skills/cloudflare/references/observability/patterns.md +105 -0
  203. package/skills/cloudflare/references/pages/README.md +88 -0
  204. package/skills/cloudflare/references/pages/api.md +204 -0
  205. package/skills/cloudflare/references/pages/configuration.md +201 -0
  206. package/skills/cloudflare/references/pages/gotchas.md +203 -0
  207. package/skills/cloudflare/references/pages/patterns.md +204 -0
  208. package/skills/cloudflare/references/pages-functions/README.md +98 -0
  209. package/skills/cloudflare/references/pages-functions/api.md +143 -0
  210. package/skills/cloudflare/references/pages-functions/configuration.md +122 -0
  211. package/skills/cloudflare/references/pages-functions/gotchas.md +94 -0
  212. package/skills/cloudflare/references/pages-functions/patterns.md +137 -0
  213. package/skills/cloudflare/references/pipelines/README.md +90 -0
  214. package/skills/cloudflare/references/pipelines/api.md +124 -0
  215. package/skills/cloudflare/references/pipelines/configuration.md +155 -0
  216. package/skills/cloudflare/references/pipelines/gotchas.md +58 -0
  217. package/skills/cloudflare/references/pipelines/patterns.md +130 -0
  218. package/skills/cloudflare/references/pulumi/README.md +100 -0
  219. package/skills/cloudflare/references/pulumi/api.md +200 -0
  220. package/skills/cloudflare/references/pulumi/configuration.md +198 -0
  221. package/skills/cloudflare/references/pulumi/gotchas.md +181 -0
  222. package/skills/cloudflare/references/pulumi/patterns.md +191 -0
  223. package/skills/cloudflare/references/queues/README.md +96 -0
  224. package/skills/cloudflare/references/queues/api.md +206 -0
  225. package/skills/cloudflare/references/queues/configuration.md +144 -0
  226. package/skills/cloudflare/references/queues/gotchas.md +206 -0
  227. package/skills/cloudflare/references/queues/patterns.md +220 -0
  228. package/skills/cloudflare/references/r2/README.md +95 -0
  229. package/skills/cloudflare/references/r2/api.md +200 -0
  230. package/skills/cloudflare/references/r2/configuration.md +165 -0
  231. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  232. package/skills/cloudflare/references/r2/patterns.md +193 -0
  233. package/skills/cloudflare/references/r2-data-catalog/README.md +75 -0
  234. package/skills/cloudflare/references/r2-data-catalog/api.md +122 -0
  235. package/skills/cloudflare/references/r2-data-catalog/configuration.md +98 -0
  236. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +55 -0
  237. package/skills/cloudflare/references/r2-data-catalog/patterns.md +122 -0
  238. package/skills/cloudflare/references/r2-sql/README.md +64 -0
  239. package/skills/cloudflare/references/r2-sql/api.md +121 -0
  240. package/skills/cloudflare/references/r2-sql/configuration.md +50 -0
  241. package/skills/cloudflare/references/r2-sql/gotchas.md +39 -0
  242. package/skills/cloudflare/references/r2-sql/patterns.md +118 -0
  243. package/skills/cloudflare/references/realtime-sfu/README.md +65 -0
  244. package/skills/cloudflare/references/realtime-sfu/api.md +158 -0
  245. package/skills/cloudflare/references/realtime-sfu/configuration.md +137 -0
  246. package/skills/cloudflare/references/realtime-sfu/gotchas.md +133 -0
  247. package/skills/cloudflare/references/realtime-sfu/patterns.md +174 -0
  248. package/skills/cloudflare/references/realtimekit/README.md +113 -0
  249. package/skills/cloudflare/references/realtimekit/api.md +212 -0
  250. package/skills/cloudflare/references/realtimekit/configuration.md +203 -0
  251. package/skills/cloudflare/references/realtimekit/gotchas.md +169 -0
  252. package/skills/cloudflare/references/realtimekit/patterns.md +223 -0
  253. package/skills/cloudflare/references/sandbox/README.md +96 -0
  254. package/skills/cloudflare/references/sandbox/api.md +198 -0
  255. package/skills/cloudflare/references/sandbox/configuration.md +143 -0
  256. package/skills/cloudflare/references/sandbox/gotchas.md +194 -0
  257. package/skills/cloudflare/references/sandbox/patterns.md +201 -0
  258. package/skills/cloudflare/references/secrets-store/README.md +74 -0
  259. package/skills/cloudflare/references/secrets-store/api.md +200 -0
  260. package/skills/cloudflare/references/secrets-store/configuration.md +185 -0
  261. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  262. package/skills/cloudflare/references/secrets-store/patterns.md +207 -0
  263. package/skills/cloudflare/references/smart-placement/README.md +138 -0
  264. package/skills/cloudflare/references/smart-placement/api.md +183 -0
  265. package/skills/cloudflare/references/smart-placement/configuration.md +196 -0
  266. package/skills/cloudflare/references/smart-placement/gotchas.md +174 -0
  267. package/skills/cloudflare/references/smart-placement/patterns.md +183 -0
  268. package/skills/cloudflare/references/snippets/README.md +68 -0
  269. package/skills/cloudflare/references/snippets/api.md +198 -0
  270. package/skills/cloudflare/references/snippets/configuration.md +227 -0
  271. package/skills/cloudflare/references/snippets/gotchas.md +86 -0
  272. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  273. package/skills/cloudflare/references/spectrum/README.md +52 -0
  274. package/skills/cloudflare/references/spectrum/api.md +181 -0
  275. package/skills/cloudflare/references/spectrum/configuration.md +194 -0
  276. package/skills/cloudflare/references/spectrum/gotchas.md +145 -0
  277. package/skills/cloudflare/references/spectrum/patterns.md +196 -0
  278. package/skills/cloudflare/references/static-assets/README.md +65 -0
  279. package/skills/cloudflare/references/static-assets/api.md +199 -0
  280. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  281. package/skills/cloudflare/references/static-assets/gotchas.md +162 -0
  282. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  283. package/skills/cloudflare/references/stream/README.md +114 -0
  284. package/skills/cloudflare/references/stream/api-live.md +195 -0
  285. package/skills/cloudflare/references/stream/api.md +199 -0
  286. package/skills/cloudflare/references/stream/configuration.md +141 -0
  287. package/skills/cloudflare/references/stream/gotchas.md +130 -0
  288. package/skills/cloudflare/references/stream/patterns.md +184 -0
  289. package/skills/cloudflare/references/tail-workers/README.md +89 -0
  290. package/skills/cloudflare/references/tail-workers/api.md +200 -0
  291. package/skills/cloudflare/references/tail-workers/configuration.md +176 -0
  292. package/skills/cloudflare/references/tail-workers/gotchas.md +192 -0
  293. package/skills/cloudflare/references/tail-workers/patterns.md +180 -0
  294. package/skills/cloudflare/references/terraform/README.md +102 -0
  295. package/skills/cloudflare/references/terraform/api.md +178 -0
  296. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  297. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  298. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  299. package/skills/cloudflare/references/tunnel/README.md +129 -0
  300. package/skills/cloudflare/references/tunnel/api.md +193 -0
  301. package/skills/cloudflare/references/tunnel/configuration.md +157 -0
  302. package/skills/cloudflare/references/tunnel/gotchas.md +147 -0
  303. package/skills/cloudflare/references/tunnel/networking.md +168 -0
  304. package/skills/cloudflare/references/tunnel/patterns.md +192 -0
  305. package/skills/cloudflare/references/turn/README.md +82 -0
  306. package/skills/cloudflare/references/turn/api.md +239 -0
  307. package/skills/cloudflare/references/turn/configuration.md +179 -0
  308. package/skills/cloudflare/references/turn/gotchas.md +231 -0
  309. package/skills/cloudflare/references/turn/patterns.md +213 -0
  310. package/skills/cloudflare/references/turnstile/README.md +99 -0
  311. package/skills/cloudflare/references/turnstile/api.md +240 -0
  312. package/skills/cloudflare/references/turnstile/configuration.md +222 -0
  313. package/skills/cloudflare/references/turnstile/gotchas.md +218 -0
  314. package/skills/cloudflare/references/turnstile/patterns.md +193 -0
  315. package/skills/cloudflare/references/vectorize/README.md +133 -0
  316. package/skills/cloudflare/references/vectorize/api.md +88 -0
  317. package/skills/cloudflare/references/vectorize/configuration.md +88 -0
  318. package/skills/cloudflare/references/vectorize/gotchas.md +76 -0
  319. package/skills/cloudflare/references/vectorize/patterns.md +90 -0
  320. package/skills/cloudflare/references/waf/README.md +113 -0
  321. package/skills/cloudflare/references/waf/api.md +202 -0
  322. package/skills/cloudflare/references/waf/configuration.md +203 -0
  323. package/skills/cloudflare/references/waf/gotchas.md +204 -0
  324. package/skills/cloudflare/references/waf/patterns.md +197 -0
  325. package/skills/cloudflare/references/web-analytics/README.md +141 -0
  326. package/skills/cloudflare/references/web-analytics/configuration.md +76 -0
  327. package/skills/cloudflare/references/web-analytics/gotchas.md +82 -0
  328. package/skills/cloudflare/references/web-analytics/integration.md +60 -0
  329. package/skills/cloudflare/references/web-analytics/patterns.md +91 -0
  330. package/skills/cloudflare/references/workerd/README.md +78 -0
  331. package/skills/cloudflare/references/workerd/api.md +185 -0
  332. package/skills/cloudflare/references/workerd/configuration.md +183 -0
  333. package/skills/cloudflare/references/workerd/gotchas.md +139 -0
  334. package/skills/cloudflare/references/workerd/patterns.md +192 -0
  335. package/skills/cloudflare/references/workers/README.md +108 -0
  336. package/skills/cloudflare/references/workers/api.md +195 -0
  337. package/skills/cloudflare/references/workers/configuration.md +185 -0
  338. package/skills/cloudflare/references/workers/frameworks.md +197 -0
  339. package/skills/cloudflare/references/workers/gotchas.md +137 -0
  340. package/skills/cloudflare/references/workers/patterns.md +198 -0
  341. package/skills/cloudflare/references/workers-ai/README.md +197 -0
  342. package/skills/cloudflare/references/workers-ai/api.md +112 -0
  343. package/skills/cloudflare/references/workers-ai/configuration.md +97 -0
  344. package/skills/cloudflare/references/workers-ai/gotchas.md +114 -0
  345. package/skills/cloudflare/references/workers-ai/patterns.md +120 -0
  346. package/skills/cloudflare/references/workers-for-platforms/README.md +89 -0
  347. package/skills/cloudflare/references/workers-for-platforms/api.md +196 -0
  348. package/skills/cloudflare/references/workers-for-platforms/configuration.md +167 -0
  349. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  350. package/skills/cloudflare/references/workers-for-platforms/patterns.md +188 -0
  351. package/skills/cloudflare/references/workers-playground/README.md +127 -0
  352. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  353. package/skills/cloudflare/references/workers-playground/configuration.md +163 -0
  354. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  355. package/skills/cloudflare/references/workers-playground/patterns.md +132 -0
  356. package/skills/cloudflare/references/workers-vpc/README.md +127 -0
  357. package/skills/cloudflare/references/workers-vpc/api.md +202 -0
  358. package/skills/cloudflare/references/workers-vpc/configuration.md +147 -0
  359. package/skills/cloudflare/references/workers-vpc/gotchas.md +167 -0
  360. package/skills/cloudflare/references/workers-vpc/patterns.md +209 -0
  361. package/skills/cloudflare/references/workflows/README.md +77 -0
  362. package/skills/cloudflare/references/workflows/api.md +218 -0
  363. package/skills/cloudflare/references/workflows/configuration.md +152 -0
  364. package/skills/cloudflare/references/workflows/gotchas.md +90 -0
  365. package/skills/cloudflare/references/workflows/patterns.md +175 -0
  366. package/skills/cloudflare/references/wrangler/README.md +135 -0
  367. package/skills/cloudflare/references/wrangler/api.md +188 -0
  368. package/skills/cloudflare/references/wrangler/configuration.md +197 -0
  369. package/skills/cloudflare/references/wrangler/gotchas.md +197 -0
  370. package/skills/cloudflare/references/wrangler/patterns.md +209 -0
  371. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
  372. package/skills/cloudflare/references/zaraz/README.md +111 -0
  373. package/skills/cloudflare/references/zaraz/api.md +112 -0
  374. package/skills/cloudflare/references/zaraz/configuration.md +90 -0
  375. package/skills/cloudflare/references/zaraz/gotchas.md +81 -0
  376. package/skills/cloudflare/references/zaraz/patterns.md +74 -0
  377. package/skills/cloudflare-email-service/SKILL.md +103 -0
  378. package/skills/cloudflare-email-service/references/cli-and-mcp.md +125 -0
  379. package/skills/cloudflare-email-service/references/deliverability.md +285 -0
  380. package/skills/cloudflare-email-service/references/rest-api.md +184 -0
  381. package/skills/cloudflare-email-service/references/routing.md +199 -0
  382. package/skills/cloudflare-email-service/references/sending.md +252 -0
  383. package/skills/cloudflare-one/SKILL.md +176 -0
  384. package/skills/cloudflare-one-migrations/SKILL.md +110 -0
  385. package/skills/durable-objects/SKILL.md +186 -0
  386. package/skills/durable-objects/references/rules.md +295 -0
  387. package/skills/durable-objects/references/testing.md +264 -0
  388. package/skills/durable-objects/references/workers.md +346 -0
  389. package/skills/sandbox-migrate-to-next/SKILL.md +185 -0
  390. package/skills/sandbox-next/SKILL.md +91 -0
  391. package/skills/sandbox-next/references/api-quick-ref.md +94 -0
  392. package/skills/sandbox-next/references/examples.md +15 -0
  393. package/skills/sandbox-stable/SKILL.md +110 -0
  394. package/skills/turnstile-spin/README.md +51 -0
  395. package/skills/turnstile-spin/SKILL.md +330 -0
  396. package/skills/turnstile-spin/references/astro.md +199 -0
  397. package/skills/turnstile-spin/references/hugo.md +114 -0
  398. package/skills/turnstile-spin/references/nextjs-app.md +261 -0
  399. package/skills/turnstile-spin/references/nextjs-pages.md +82 -0
  400. package/skills/turnstile-spin/references/sveltekit.md +191 -0
  401. package/skills/turnstile-spin/references/vanilla-html.md +157 -0
  402. package/skills/turnstile-spin/scripts/auth-probe.sh +285 -0
  403. package/skills/turnstile-spin/scripts/persist-skill.sh +114 -0
  404. package/skills/turnstile-spin/scripts/validate.sh +137 -0
  405. package/skills/turnstile-spin/scripts/widget-create.sh +121 -0
  406. package/skills/turnstile-spin/tests/validation.md +62 -0
  407. package/skills/workers-best-practices/SKILL.md +127 -0
  408. package/skills/workers-best-practices/references/review.md +174 -0
  409. package/skills/workers-best-practices/references/rules.md +467 -0
  410. package/skills/wrangler/SKILL.md +922 -0
@@ -0,0 +1,187 @@
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() { /* container started */ }
16
+ onStop() { /* container stopping */ }
17
+ onError(error: Error) { /* container error */ }
18
+ onActivityExpired(): boolean { /* timeout, return true to stay alive */ }
19
+ async alarm() { /* scheduled task */ }
20
+ }
21
+ ```
22
+
23
+ ## Routing
24
+
25
+ **getByName(id)** - Named instance for session affinity, per-user state
26
+ **getRandom()** - Random instance for load balancing stateless services
27
+
28
+ ```typescript
29
+ const container = env.MY_CONTAINER.getByName("user-123");
30
+ const container = env.MY_CONTAINER.getRandom();
31
+ ```
32
+
33
+ ## Startup Methods
34
+
35
+ ### start() - Basic start (8s timeout)
36
+
37
+ ```typescript
38
+ await container.start();
39
+ await container.start({ envVars: { KEY: "value" } });
40
+ ```
41
+
42
+ Returns when **process starts**, NOT when ports ready. Use for fire-and-forget.
43
+
44
+ ### startAndWaitForPorts() - Recommended (20s timeout)
45
+
46
+ ```typescript
47
+ await container.startAndWaitForPorts(); // Uses requiredPorts
48
+ await container.startAndWaitForPorts({ ports: [8080, 9090] });
49
+ await container.startAndWaitForPorts({
50
+ ports: [8080],
51
+ startOptions: { envVars: { KEY: "value" } }
52
+ });
53
+ ```
54
+
55
+ Returns when **ports listening**. Use before HTTP/TCP requests.
56
+
57
+ **Port resolution:** explicit ports → requiredPorts → defaultPort → port 33
58
+
59
+ ### waitForPort() - Wait for specific port
60
+
61
+ ```typescript
62
+ await container.waitForPort(8080);
63
+ await container.waitForPort(8080, { timeout: 30000 });
64
+ ```
65
+
66
+ ## Communication
67
+
68
+ ### fetch() - HTTP with WebSocket support
69
+
70
+ ```typescript
71
+ // ✅ Supports WebSocket upgrades
72
+ const response = await container.fetch(request);
73
+ const response = await container.fetch("http://container/api", {
74
+ method: "POST",
75
+ body: JSON.stringify({ data: "value" })
76
+ });
77
+ ```
78
+
79
+ **Use for:** All HTTP, especially WebSocket.
80
+
81
+ ### containerFetch() - HTTP only (no WebSocket)
82
+
83
+ ```typescript
84
+ // ❌ No WebSocket support
85
+ const response = await container.containerFetch(request);
86
+ ```
87
+
88
+ **⚠️ Critical:** Use `fetch()` for WebSocket, not `containerFetch()`.
89
+
90
+ ### TCP Connections
91
+
92
+ ```typescript
93
+ const port = this.ctx.container.getTcpPort(8080);
94
+ const conn = port.connect();
95
+ await conn.opened;
96
+
97
+ if (request.body) await request.body.pipeTo(conn.writable);
98
+ return new Response(conn.readable);
99
+ ```
100
+
101
+ ### switchPort() - Change default port
102
+
103
+ ```typescript
104
+ this.switchPort(8081); // Subsequent fetch() uses this port
105
+ ```
106
+
107
+ ## Lifecycle Hooks
108
+
109
+ ### onStart()
110
+
111
+ Called when container process starts (ports may not be ready). Runs in `blockConcurrencyWhile` - no concurrent requests.
112
+
113
+ ```typescript
114
+ onStart() {
115
+ console.log("Container starting");
116
+ }
117
+ ```
118
+
119
+ ### onStop()
120
+
121
+ Called when SIGTERM received. 15 minutes until SIGKILL. Use for graceful shutdown.
122
+
123
+ ```typescript
124
+ onStop() {
125
+ // Save state, close connections, flush logs
126
+ }
127
+ ```
128
+
129
+ ### onError()
130
+
131
+ Called when container crashes or fails to start.
132
+
133
+ ```typescript
134
+ onError(error: Error) {
135
+ console.error("Container error:", error);
136
+ }
137
+ ```
138
+
139
+ ### onActivityExpired()
140
+
141
+ Called when `sleepAfter` timeout reached. Return `true` to stay alive, `false` to stop.
142
+
143
+ ```typescript
144
+ onActivityExpired(): boolean {
145
+ if (this.hasActiveConnections()) return true; // Keep alive
146
+ return false; // OK to stop
147
+ }
148
+ ```
149
+
150
+ ## Scheduling
151
+
152
+ ```typescript
153
+ export class ScheduledContainer extends Container {
154
+ async fetch(request: Request) {
155
+ await this.schedule(Date.now() + 60000); // 1 minute
156
+ await this.schedule("2026-01-28T00:00:00Z"); // ISO string
157
+ return new Response("Scheduled");
158
+ }
159
+
160
+ async alarm() {
161
+ // Called when schedule fires (SQLite-backed, survives restarts)
162
+ }
163
+ }
164
+ ```
165
+
166
+ **⚠️ Don't override `alarm()` directly when using `schedule()` helper.**
167
+
168
+ ## State Inspection
169
+
170
+ ### External state check
171
+
172
+ ```typescript
173
+ const state = await container.getState();
174
+ // state.status: "starting" | "running" | "stopping" | "stopped"
175
+ ```
176
+
177
+ ### Internal state check
178
+
179
+ ```typescript
180
+ export class MyContainer extends Container {
181
+ async fetch(request: Request) {
182
+ if (this.ctx.container.running) { ... }
183
+ }
184
+ }
185
+ ```
186
+
187
+ **⚠️ Use `getState()` for external checks, `ctx.container.running` for internal.**
@@ -0,0 +1,188 @@
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
+ - `image` - Path to Dockerfile or directory containing Dockerfile
37
+ - `class_name` - Must match Container class export name
38
+ - `max_instances` - Max concurrent container instances
39
+ - Must configure Durable Objects binding AND migrations
40
+
41
+ ### Instance Types
42
+
43
+ #### Predefined Types
44
+
45
+ | Type | vCPU | Memory | Disk |
46
+ |------|------|--------|------|
47
+ | lite | 1/16 | 256 MiB | 2 GB |
48
+ | basic | 1/4 | 1 GiB | 4 GB |
49
+ | standard-1 | 1/2 | 4 GiB | 8 GB |
50
+ | standard-2 | 1 | 6 GiB | 12 GB |
51
+ | standard-3 | 2 | 8 GiB | 16 GB |
52
+ | standard-4 | 4 | 12 GiB | 20 GB |
53
+
54
+ ```jsonc
55
+ {
56
+ "containers": [
57
+ {
58
+ "class_name": "MyContainer",
59
+ "image": "./Dockerfile",
60
+ "instance_type": "standard-2" // Use predefined type
61
+ }
62
+ ]
63
+ }
64
+ ```
65
+
66
+ #### Custom Types (Jan 2026 Feature)
67
+
68
+ ```jsonc
69
+ {
70
+ "containers": [
71
+ {
72
+ "class_name": "MyContainer",
73
+ "image": "./Dockerfile",
74
+ "instance_type_custom": {
75
+ "vcpu": 2, // 1-4 vCPU
76
+ "memory_mib": 8192, // 512-12288 MiB (up to 12 GiB)
77
+ "disk_mib": 16384 // 2048-20480 MiB (up to 20 GB)
78
+ }
79
+ }
80
+ ]
81
+ }
82
+ ```
83
+
84
+ **Custom type constraints:**
85
+ - Minimum 3 GiB memory per vCPU
86
+ - Maximum 2 GB disk per 1 GiB memory
87
+ - Max 4 vCPU, 12 GiB memory, 20 GB disk per container
88
+
89
+ ### Account Limits
90
+
91
+ | Resource | Limit | Notes |
92
+ |----------|-------|-------|
93
+ | Total memory (all containers) | 400 GiB | Across all running containers |
94
+ | Total vCPU (all containers) | 100 | Across all running containers |
95
+ | Total disk (all containers) | 2 TB | Across all running containers |
96
+ | Image storage per account | 50 GB | Stored container images |
97
+
98
+ ### Container Class Properties
99
+
100
+ ```typescript
101
+ import { Container } from "@cloudflare/containers";
102
+
103
+ export class MyContainer extends Container {
104
+ // Port Configuration
105
+ defaultPort = 8080; // Default port for fetch() calls
106
+ requiredPorts = [8080, 9090]; // Ports to wait for in startAndWaitForPorts()
107
+
108
+ // Lifecycle
109
+ sleepAfter = "30m"; // Inactivity timeout (5m, 30m, 2h, etc.)
110
+
111
+ // Network
112
+ enableInternet = true; // Allow outbound internet access
113
+
114
+ // Health Check
115
+ pingEndpoint = "/health"; // Health check endpoint path
116
+
117
+ // Environment
118
+ envVars = { // Environment variables passed to container
119
+ NODE_ENV: "production",
120
+ LOG_LEVEL: "info"
121
+ };
122
+
123
+ // Startup
124
+ entrypoint = ["/bin/start.sh"]; // Override image entrypoint (optional)
125
+ }
126
+ ```
127
+
128
+ **Property details:**
129
+
130
+ - **`defaultPort`**: Port used when calling `container.fetch()` without explicit port. Falls back to port 33 if not set.
131
+
132
+ - **`requiredPorts`**: Array of ports that must be listening before `startAndWaitForPorts()` returns. First port becomes default if `defaultPort` not set.
133
+
134
+ - **`sleepAfter`**: Duration string (e.g., "5m", "30m", "2h"). Container stops after this period of inactivity. Timer resets on each request.
135
+
136
+ - **`enableInternet`**: Boolean. If `true`, container can make outbound HTTP/TCP requests.
137
+
138
+ - **`pingEndpoint`**: Path used for health checks. Should respond with 2xx status.
139
+
140
+ - **`envVars`**: Object of environment variables. Merged with runtime-provided vars (see below).
141
+
142
+ - **`entrypoint`**: Array of strings. Overrides container image's CMD/ENTRYPOINT.
143
+
144
+ ### Runtime Environment Variables
145
+
146
+ Cloudflare automatically provides these environment variables to containers:
147
+
148
+ | Variable | Description |
149
+ |----------|-------------|
150
+ | `CLOUDFLARE_APPLICATION_ID` | Worker application ID |
151
+ | `CLOUDFLARE_COUNTRY_A2` | Two-letter country code of request origin |
152
+ | `CLOUDFLARE_LOCATION` | Cloudflare data center location |
153
+ | `CLOUDFLARE_REGION` | Region identifier |
154
+ | `CLOUDFLARE_DURABLE_OBJECT_ID` | Container's Durable Object ID |
155
+
156
+ Custom `envVars` from Container class are merged with these. Custom vars override runtime vars if names conflict.
157
+
158
+ ### Image Management
159
+
160
+ **Distribution model:** Images pre-fetched to all global locations before deployment. Ensures fast cold starts (2-3s typical).
161
+
162
+ **Rolling deploys:** Unlike Workers (instant), container deployments roll out gradually. Old versions continue running during rollout.
163
+
164
+ **Ephemeral disk:** Container disk is ephemeral and resets on each stop. Use Durable Object storage (`this.ctx.storage`) for persistence.
165
+
166
+ ## wrangler.toml Format
167
+
168
+ ```toml
169
+ name = "my-worker"
170
+ main = "src/index.ts"
171
+ compatibility_date = "2026-01-10"
172
+
173
+ [[containers]]
174
+ class_name = "MyContainer"
175
+ image = "./Dockerfile"
176
+ instance_type = "standard-2"
177
+ max_instances = 10
178
+
179
+ [[durable_objects.bindings]]
180
+ name = "MY_CONTAINER"
181
+ class_name = "MyContainer"
182
+
183
+ [[migrations]]
184
+ tag = "v1"
185
+ new_sqlite_classes = ["MyContainer"]
186
+ ```
187
+
188
+ Both `wrangler.jsonc` and `wrangler.toml` are supported. Use `wrangler.jsonc` for comments and better IDE support.
@@ -0,0 +1,178 @@
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
+ - Optimize image (smaller base, fewer layers)
96
+ - Check `entrypoint` correct
97
+ - Verify app listens on correct ports
98
+ - Increase timeout if needed
99
+
100
+ ### "Port not available"
101
+
102
+ **Cause:** Calling `fetch()` before port ready
103
+
104
+ **Solution:** Use `startAndWaitForPorts()`
105
+
106
+ ### "Container memory exceeded"
107
+
108
+ **Cause:** Using more memory than instance type allows
109
+
110
+ **Solutions:**
111
+ - Use larger instance type (standard-2, standard-3, standard-4)
112
+ - Optimize app memory usage
113
+ - Use custom instance type
114
+
115
+ ```jsonc
116
+ "instance_type_custom": {
117
+ "vcpu": 2,
118
+ "memory_mib": 8192
119
+ }
120
+ ```
121
+
122
+ ### "Max instances reached"
123
+
124
+ **Cause:** All `max_instances` slots in use
125
+
126
+ **Solutions:**
127
+ - Increase `max_instances`
128
+ - Implement proper `sleepAfter`
129
+ - Use `getRandom()` for distribution
130
+ - Check for instance leaks
131
+
132
+ ### "No container instance available"
133
+
134
+ **Cause:** Account capacity limits reached
135
+
136
+ **Solutions:**
137
+ - Check account limits
138
+ - Review instance types across containers
139
+ - Contact Cloudflare support
140
+
141
+ ## Limits
142
+
143
+ | Resource | Limit | Notes |
144
+ |----------|-------|-------|
145
+ | Cold start | 2-3s | Image pre-fetched globally |
146
+ | Graceful shutdown | 15 min | SIGTERM → SIGKILL |
147
+ | `start()` timeout | 8s | Process start |
148
+ | `startAndWaitForPorts()` timeout | 20s | Port ready |
149
+ | Max vCPU per container | 4 | standard-4 or custom |
150
+ | Max memory per container | 12 GiB | standard-4 or custom |
151
+ | Max disk per container | 20 GB | Ephemeral, resets |
152
+ | Account total memory | 400 GiB | All containers |
153
+ | Account total vCPU | 100 | All containers |
154
+ | Account total disk | 2 TB | All containers |
155
+ | Image storage | 50 GB | Per account |
156
+ | Disk persistence | None | Use DO storage |
157
+
158
+ ## Best Practices
159
+
160
+ 1. **Use `startAndWaitForPorts()` by default** - Prevents port errors
161
+ 2. **Set appropriate `sleepAfter`** - Balance resources vs cold starts
162
+ 3. **Use `fetch()` for WebSocket** - Not `containerFetch()`
163
+ 4. **Design for restarts** - Ephemeral disk, implement graceful shutdown
164
+ 5. **Monitor resources** - Stay within account limits
165
+ 6. **Keep hooks fast** - Run in `blockConcurrencyWhile`
166
+ 7. **Renew activity for long ops** - Touch storage to prevent timeout
167
+
168
+ ## Beta Caveats
169
+
170
+ ⚠️ Containers in **beta**:
171
+
172
+ - **API may change** without notice
173
+ - **No SLA** guarantees
174
+ - **Limited regions** initially
175
+ - **No autoscaling** - manual via `getRandom()`
176
+ - **Rolling deploys** only (not instant like Workers)
177
+
178
+ Plan for API changes, test thoroughly before production.