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,132 @@
1
+ # Workflows Integration
2
+
3
+ Fetch https://developers.cloudflare.com/agents/api-reference/run-workflows/ for complete documentation.
4
+
5
+ ## Overview
6
+
7
+ Agents handle real-time communication; Workflows handle durable execution. Together they enable:
8
+
9
+ - Long-running background tasks with automatic retries
10
+ - Human-in-the-loop approval flows
11
+ - Multi-step pipelines that survive failures
12
+
13
+ | Use Case | Recommendation |
14
+ |----------|----------------|
15
+ | Chat/messaging | Agent only |
16
+ | Quick API calls (<30s) | Agent only |
17
+ | Background processing (<30s) | Agent `queue()` |
18
+ | Long-running tasks (>30s) | Agent + Workflow |
19
+ | Human approval flows | Agent + Workflow |
20
+
21
+ ## AgentWorkflow Base Class
22
+
23
+ ```typescript
24
+ import { AgentWorkflow } from "agents/workflows";
25
+ import type { AgentWorkflowEvent, AgentWorkflowStep } from "agents/workflows";
26
+
27
+ type TaskParams = { taskId: string; data: string };
28
+
29
+ export class ProcessingWorkflow extends AgentWorkflow<MyAgent, TaskParams> {
30
+ async run(event: AgentWorkflowEvent<TaskParams>, step: AgentWorkflowStep) {
31
+ const params = event.payload;
32
+
33
+ // Durable step - retries on failure
34
+ const result = await step.do("process", async () => {
35
+ return processData(params.data);
36
+ });
37
+
38
+ // Non-durable: progress reporting
39
+ await this.reportProgress({ step: "process", percent: 0.5 });
40
+
41
+ // Non-durable: broadcast to connected clients
42
+ this.broadcastToClients({ type: "update", taskId: params.taskId });
43
+
44
+ // Durable: merge state via step
45
+ await step.mergeAgentState({ lastProcessed: params.taskId });
46
+
47
+ // Durable: report completion
48
+ await step.reportComplete(result);
49
+
50
+ return result;
51
+ }
52
+ }
53
+ ```
54
+
55
+ ## Wrangler Configuration
56
+
57
+ ```jsonc
58
+ {
59
+ "workflows": [
60
+ { "name": "processing-workflow", "binding": "PROCESSING_WORKFLOW", "class_name": "ProcessingWorkflow" }
61
+ ],
62
+ "durable_objects": {
63
+ "bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }]
64
+ },
65
+ "migrations": [{ "tag": "v1", "new_sqlite_classes": ["MyAgent"] }]
66
+ }
67
+ ```
68
+
69
+ ## Agent Methods for Workflows
70
+
71
+ ```typescript
72
+ // Start a workflow
73
+ const instance = await this.runWorkflow("ProcessingWorkflow", { taskId: "123", data: "..." });
74
+
75
+ // Send event to waiting workflow
76
+ await this.sendWorkflowEvent("ProcessingWorkflow", workflowId, { type: "approve" });
77
+
78
+ // Query workflows
79
+ const workflow = await this.getWorkflow(workflowId);
80
+ const workflows = await this.getWorkflows({ status: "running" });
81
+
82
+ // Control workflows
83
+ await this.approveWorkflow(workflowId);
84
+ await this.rejectWorkflow(workflowId);
85
+ await this.terminateWorkflow(workflowId);
86
+ await this.pauseWorkflow(workflowId);
87
+ await this.resumeWorkflow(workflowId);
88
+
89
+ // Delete workflows
90
+ await this.deleteWorkflow(workflowId);
91
+ await this.deleteWorkflows({ status: "complete", before: new Date(...) });
92
+ ```
93
+
94
+ ## Lifecycle Callbacks
95
+
96
+ ```typescript
97
+ export class MyAgent extends Agent<Env, State> {
98
+ async onWorkflowProgress(workflowName: string, workflowId: string, progress: unknown) {
99
+ // Workflow reported progress via this.reportProgress()
100
+ this.broadcast({ type: "progress", workflowId, progress });
101
+ }
102
+
103
+ async onWorkflowComplete(workflowName: string, workflowId: string, result?: unknown) {
104
+ // Workflow finished successfully
105
+ }
106
+
107
+ async onWorkflowError(workflowName: string, workflowId: string, error: Error) {
108
+ // Workflow failed
109
+ }
110
+
111
+ async onWorkflowEvent(workflowName: string, workflowId: string, event: unknown) {
112
+ // Workflow received an event via sendWorkflowEvent()
113
+ }
114
+ }
115
+ ```
116
+
117
+ ## Human-in-the-Loop
118
+
119
+ ```typescript
120
+ // In workflow: wait for approval
121
+ const approved = await step.waitForEvent<{ approved: boolean }>("approval", {
122
+ timeout: "7d"
123
+ });
124
+
125
+ if (!approved.approved) {
126
+ throw new Error("Rejected");
127
+ }
128
+
129
+ // From agent: approve or reject
130
+ await this.approveWorkflow(workflowId); // Sends { approved: true }
131
+ await this.rejectWorkflow(workflowId); // Sends { approved: false }
132
+ ```
@@ -0,0 +1,248 @@
1
+ ---
2
+ name: cloudflare
3
+ description: Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), feature flags (Flagship), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
4
+ references:
5
+ - workers
6
+ - pages
7
+ - d1
8
+ - durable-objects
9
+ - workers-ai
10
+ ---
11
+
12
+ # Cloudflare Platform Skill
13
+
14
+ Consolidated skill for building on the Cloudflare platform. Use decision trees below to find the right product, then load detailed references.
15
+
16
+ Your knowledge of Cloudflare APIs, types, limits, and pricing may be outdated. **Prefer retrieval over pre-training** — the references in this skill are starting points, not source of truth.
17
+
18
+ ## Retrieval Sources
19
+
20
+ Fetch the **latest** information before citing specific numbers, API signatures, or configuration options. Do not rely on baked-in knowledge or these reference files alone.
21
+
22
+ | Source | How to retrieve | Use for |
23
+ |--------|----------------|---------|
24
+ | Cloudflare docs | Cloudflare MCP `docs` tool or `https://developers.cloudflare.com/` | Limits, pricing, API reference, compatibility dates/flags |
25
+ | Workers types | `npm pack @cloudflare/workers-types` or check `node_modules` | Type signatures, binding shapes, handler types |
26
+ | Wrangler config schema | `node_modules/wrangler/config-schema.json` | Config fields, binding shapes, allowed values |
27
+ | Product changelogs | `https://developers.cloudflare.com/changelog/` | Recent changes to limits, features, deprecations |
28
+
29
+ When a reference file and the docs disagree, **trust the docs**. This is especially important for: numeric limits, pricing tiers, type signatures, and configuration options.
30
+
31
+ ## Quick Decision Trees
32
+
33
+ ### "I need feature flags"
34
+
35
+ ```
36
+ Need feature flags?
37
+ └─ Feature toggles, targeting rules, percentage rollouts → flagship/
38
+ ├─ Evaluate in Workers → Flagship binding (env.FLAGS)
39
+ ├─ Evaluate in Node.js / browser → OpenFeature SDK (@cloudflare/flagship)
40
+ └─ Manage flags via API → Flagship REST API
41
+ ```
42
+
43
+ ### "I need to run code"
44
+
45
+ ```
46
+ Need to run code?
47
+ ├─ Serverless functions at the edge → workers/
48
+ ├─ Full-stack web app with Git deploys → pages/
49
+ ├─ Stateful coordination/real-time → durable-objects/
50
+ ├─ Long-running multi-step jobs → workflows/
51
+ ├─ Run containers → containers/
52
+ ├─ Multi-tenant (customers deploy code) → workers-for-platforms/
53
+ ├─ Scheduled tasks (cron) → cron-triggers/
54
+ ├─ Lightweight edge logic (modify HTTP) → snippets/
55
+ ├─ Process Worker execution events (logs/observability) → tail-workers/
56
+ └─ Optimize latency to backend infrastructure → smart-placement/
57
+ ```
58
+
59
+ ### "I need to store data"
60
+
61
+ ```
62
+ Need storage?
63
+ ├─ Key-value (config, sessions, cache) → kv/
64
+ ├─ Relational SQL → d1/ (SQLite) or hyperdrive/ (existing Postgres/MySQL)
65
+ ├─ Object/file storage (S3-compatible) → r2/
66
+ ├─ Versioned file trees (repos, build outputs, checkpoints) → artifacts/
67
+ ├─ Message queue (async processing) → queues/
68
+ ├─ Vector embeddings (AI/semantic search) → vectorize/
69
+ ├─ Strongly-consistent per-entity state → durable-objects/ (DO storage)
70
+ ├─ Secrets management → secrets-store/
71
+ ├─ Streaming ETL to R2 → pipelines/
72
+ ├─ Managed Apache Iceberg catalog on R2 → r2-data-catalog/
73
+ ├─ Serverless SQL analytics over Iceberg tables → r2-sql/
74
+ └─ Persistent cache (long-term retention) → cache-reserve/
75
+ ```
76
+
77
+ ### "I need AI/ML"
78
+
79
+ ```
80
+ Need AI?
81
+ ├─ Run inference (LLMs, embeddings, images) → workers-ai/
82
+ ├─ Vector database for RAG/search → vectorize/
83
+ ├─ Build stateful AI agents → agents-sdk/
84
+ ├─ Gateway for any AI provider (caching, routing) → ai-gateway/
85
+ └─ AI-powered search widget → ai-search/
86
+ ```
87
+
88
+ ### "I need networking/connectivity"
89
+
90
+ ```
91
+ Need networking?
92
+ ├─ Expose local service to internet → tunnel/
93
+ ├─ TCP/UDP proxy (non-HTTP) → spectrum/
94
+ ├─ WebRTC TURN server → turn/
95
+ ├─ Private network connectivity → network-interconnect/
96
+ ├─ Optimize routing → argo-smart-routing/
97
+ ├─ Optimize latency to backend (not user) → smart-placement/
98
+ └─ Real-time video/audio → realtimekit/ or realtime-sfu/
99
+ ```
100
+
101
+ ### "I need security"
102
+
103
+ ```
104
+ Need security?
105
+ ├─ Web Application Firewall → waf/
106
+ ├─ DDoS protection → ddos/
107
+ ├─ Bot detection/management → bot-management/
108
+ ├─ API protection → api-shield/
109
+ ├─ CAPTCHA alternative → turnstile/
110
+ └─ Credential leak detection → waf/ (managed ruleset)
111
+ ```
112
+
113
+ ### "I need media/content"
114
+
115
+ ```
116
+ Need media?
117
+ ├─ Image optimization/transformation → images/
118
+ ├─ Video streaming/encoding → stream/
119
+ ├─ Browser automation/screenshots → browser-rendering/
120
+ └─ Third-party script management → zaraz/
121
+ ```
122
+
123
+ ### "I need analytics/metrics data"
124
+
125
+ ```
126
+ Need analytics?
127
+ ├─ Query across all Cloudflare products (HTTP, Workers, DNS, etc.) → graphql-api/
128
+ ├─ Custom high-cardinality metrics from Workers → analytics-engine/
129
+ ├─ Client-side (RUM) performance data → web-analytics/
130
+ ├─ Workers Logs and real-time debugging → observability/
131
+ ├─ SQL over Iceberg data lake (logs, events) → r2-sql/ (+ pipelines/, r2-data-catalog/)
132
+ └─ Raw logs (Logpush to external tools) → Cloudflare docs
133
+ ```
134
+
135
+ ### "I need infrastructure-as-code"
136
+
137
+ ```
138
+ Need IaC? → pulumi/ (Pulumi), terraform/ (Terraform), or api/ (REST API)
139
+ ```
140
+
141
+ ## Product Index
142
+
143
+ ### Feature Flags
144
+ | Product | Reference |
145
+ |---------|-----------|
146
+ | Flagship | `references/flagship/` |
147
+
148
+ ### Compute & Runtime
149
+ | Product | Reference |
150
+ |---------|-----------|
151
+ | Workers | `references/workers/` |
152
+ | Pages | `references/pages/` |
153
+ | Pages Functions | `references/pages-functions/` |
154
+ | Durable Objects | `references/durable-objects/` |
155
+ | Workflows | `references/workflows/` |
156
+ | Containers | `references/containers/` |
157
+ | Workers for Platforms | `references/workers-for-platforms/` |
158
+ | Cron Triggers | `references/cron-triggers/` |
159
+ | Tail Workers | `references/tail-workers/` |
160
+ | Snippets | `references/snippets/` |
161
+ | Smart Placement | `references/smart-placement/` |
162
+
163
+ ### Storage & Data
164
+ | Product | Reference |
165
+ |---------|-----------|
166
+ | KV | `references/kv/` |
167
+ | D1 | `references/d1/` |
168
+ | R2 | `references/r2/` |
169
+ | Artifacts | `references/artifacts/` |
170
+ | Queues | `references/queues/` |
171
+ | Hyperdrive | `references/hyperdrive/` |
172
+ | DO Storage | `references/do-storage/` |
173
+ | Secrets Store | `references/secrets-store/` |
174
+ | Pipelines | `references/pipelines/` |
175
+ | R2 Data Catalog | `references/r2-data-catalog/` |
176
+ | R2 SQL | `references/r2-sql/` |
177
+
178
+ ### AI & Machine Learning
179
+ | Product | Reference |
180
+ |---------|-----------|
181
+ | Workers AI | `references/workers-ai/` |
182
+ | Vectorize | `references/vectorize/` |
183
+ | Agents SDK | `references/agents-sdk/` |
184
+ | AI Gateway | `references/ai-gateway/` |
185
+ | AI Search | `references/ai-search/` |
186
+
187
+ ### Networking & Connectivity
188
+ | Product | Reference |
189
+ |---------|-----------|
190
+ | Tunnel | `references/tunnel/` |
191
+ | Spectrum | `references/spectrum/` |
192
+ | TURN | `references/turn/` |
193
+ | Network Interconnect | `references/network-interconnect/` |
194
+ | Argo Smart Routing | `references/argo-smart-routing/` |
195
+ | Workers VPC | `references/workers-vpc/` |
196
+
197
+ ### Security
198
+ | Product | Reference |
199
+ |---------|-----------|
200
+ | WAF | `references/waf/` |
201
+ | DDoS Protection | `references/ddos/` |
202
+ | Bot Management | `references/bot-management/` |
203
+ | API Shield | `references/api-shield/` |
204
+ | Turnstile | `references/turnstile/` |
205
+
206
+ ### Media & Content
207
+ | Product | Reference |
208
+ |---------|-----------|
209
+ | Images | `references/images/` |
210
+ | Stream | `references/stream/` |
211
+ | Browser Rendering | `references/browser-rendering/` |
212
+ | Zaraz | `references/zaraz/` |
213
+
214
+ ### Real-Time Communication
215
+ | Product | Reference |
216
+ |---------|-----------|
217
+ | RealtimeKit | `references/realtimekit/` |
218
+ | Realtime SFU | `references/realtime-sfu/` |
219
+
220
+ ### Developer Tools
221
+ | Product | Reference |
222
+ |---------|-----------|
223
+ | Wrangler | `references/wrangler/` |
224
+ | Miniflare | `references/miniflare/` |
225
+ | C3 | `references/c3/` |
226
+ | Observability | `references/observability/` |
227
+ | GraphQL Analytics API | `references/graphql-api/` |
228
+ | Analytics Engine | `references/analytics-engine/` |
229
+ | Web Analytics | `references/web-analytics/` |
230
+ | Sandbox | `references/sandbox/` |
231
+ | Workerd | `references/workerd/` |
232
+ | Workers Playground | `references/workers-playground/` |
233
+
234
+ ### Infrastructure as Code
235
+ | Product | Reference |
236
+ |---------|-----------|
237
+ | Pulumi | `references/pulumi/` |
238
+ | Terraform | `references/terraform/` |
239
+ | API | `references/api/` |
240
+
241
+ ### Other Services
242
+ | Product | Reference |
243
+ |---------|-----------|
244
+ | Email Routing | `references/email-routing/` |
245
+ | Email Workers | `references/email-workers/` |
246
+ | Static Assets | `references/static-assets/` |
247
+ | Bindings | `references/bindings/` |
248
+ | Cache Reserve | `references/cache-reserve/` |
@@ -0,0 +1,89 @@
1
+ # Cloudflare Agents SDK
2
+
3
+ Cloudflare Agents SDK enables building AI-powered agents on Durable Objects with state, WebSockets, SQL, scheduling, and AI integration.
4
+
5
+ ## Core Value
6
+ Build stateful, globally distributed AI agents with persistent memory, real-time connections, scheduled tasks, and async workflows.
7
+
8
+ ## When to Use
9
+ - Persistent state + memory required
10
+ - Real-time WebSocket connections
11
+ - Long-running workflows (minutes/hours)
12
+ - Chat interfaces with AI models
13
+ - Scheduled/recurring tasks with state
14
+ - DB queries with agent state
15
+
16
+ ## What Type of Agent?
17
+
18
+ | Use Case | Class | Key Features |
19
+ |----------|-------|--------------|
20
+ | AI chat interface | `AIChatAgent` | Auto-streaming, tools, message history, resumable |
21
+ | MCP tool provider | `Agent` + MCP | Expose tools to AI systems |
22
+ | Custom logic/routing | `Agent` | Full control, WebSockets, email, SQL |
23
+ | Real-time collaboration | `Agent` | WebSocket state, broadcasts |
24
+ | Email processing | `Agent` | `onEmail()` handler |
25
+
26
+ ## Quick Start
27
+
28
+ **AI Chat Agent:**
29
+ ```typescript
30
+ import { AIChatAgent } from "@cloudflare/ai-chat";
31
+ import { openai } from "@ai-sdk/openai";
32
+
33
+ export class ChatAgent extends AIChatAgent<Env> {
34
+ async onChatMessage(onFinish) {
35
+ return this.streamText({
36
+ model: openai("gpt-4"),
37
+ messages: this.messages,
38
+ onFinish,
39
+ });
40
+ }
41
+ }
42
+ ```
43
+
44
+ **Base Agent:**
45
+ ```typescript
46
+ import { Agent } from "agents";
47
+
48
+ export class MyAgent extends Agent<Env> {
49
+ onStart() {
50
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY)`;
51
+ }
52
+
53
+ async onRequest(request: Request) {
54
+ return Response.json({ state: this.state });
55
+ }
56
+ }
57
+ ```
58
+
59
+ ## Reading Order
60
+
61
+ | Task | Files to Read |
62
+ |------|---------------|
63
+ | Quick start | README only |
64
+ | Build chat agent | README → api.md (AIChatAgent) → patterns.md |
65
+ | Setup project | README → configuration.md |
66
+ | Add React frontend | README → api.md (Client Hooks) → patterns.md |
67
+ | Build MCP server | api.md (MCP) → patterns.md |
68
+ | Background tasks | api.md (Scheduling, Task Queue) → patterns.md |
69
+ | Debug issues | gotchas.md |
70
+
71
+ ## Package Entry Points
72
+
73
+ | Import | Purpose |
74
+ |--------|---------|
75
+ | `agents` | Server-side Agent classes, lifecycle |
76
+ | `agents/react` | `useAgent()` hook for WebSocket connections |
77
+ | `agents/ai-react` | `useAgentChat()` hook for AI chat UIs |
78
+
79
+ ## In This Reference
80
+ - [configuration.md](./configuration.md) - SDK setup, wrangler config, routing
81
+ - [api.md](./api.md) - Agent classes, lifecycle, client hooks
82
+ - [patterns.md](./patterns.md) - Common workflows, best practices
83
+ - [gotchas.md](./gotchas.md) - Common issues, limits
84
+
85
+ ## See Also
86
+ - durable-objects - Agent infrastructure
87
+ - d1 - External database integration
88
+ - workers-ai - AI model integration
89
+ - vectorize - Vector search for RAG patterns
@@ -0,0 +1,190 @@
1
+ # API Reference
2
+
3
+ ## Agent Classes
4
+
5
+ ### AIChatAgent
6
+
7
+ For AI chat with auto-streaming, message history, tools, resumable streaming.
8
+
9
+ ```ts
10
+ import { AIChatAgent } from "@cloudflare/ai-chat";
11
+ import { openai } from "@ai-sdk/openai";
12
+
13
+ export class ChatAgent extends AIChatAgent<Env> {
14
+ async onChatMessage(onFinish) {
15
+ return this.streamText({
16
+ model: openai("gpt-4"),
17
+ messages: this.messages, // Auto-managed message history
18
+ tools: {
19
+ getWeather: {
20
+ description: "Get weather",
21
+ parameters: z.object({ city: z.string() }),
22
+ execute: async ({ city }) => `Sunny, 72°F in ${city}`
23
+ }
24
+ },
25
+ onFinish, // Persist response to this.messages
26
+ });
27
+ }
28
+ }
29
+ ```
30
+
31
+ ### Agent (Base Class)
32
+
33
+ Full control for custom logic, WebSockets, email, and SQL.
34
+
35
+ ```ts
36
+ import { Agent } from "agents";
37
+
38
+ export class MyAgent extends Agent<Env, State> {
39
+ // Lifecycle methods below
40
+ }
41
+ ```
42
+
43
+ **Type params:** `Agent<Env, State, ConnState>` - Env bindings, agent state, connection state
44
+
45
+ ## Lifecycle Hooks
46
+
47
+ ```ts
48
+ onStart() { // Init/restart
49
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT, name TEXT)`;
50
+ }
51
+
52
+ async onRequest(req: Request) { // HTTP
53
+ const {pathname} = new URL(req.url);
54
+ if (pathname === "/users") return Response.json(this.sql<{id,name}>`SELECT * FROM users`);
55
+ return new Response("Not found", {status: 404});
56
+ }
57
+
58
+ async onConnect(conn: Connection<ConnState>, ctx: ConnectionContext) { // WebSocket
59
+ conn.accept();
60
+ conn.setState({userId: ctx.request.headers.get("X-User-ID")});
61
+ conn.send(JSON.stringify({type: "connected", state: this.state}));
62
+ }
63
+
64
+ async onMessage(conn: Connection<ConnState>, msg: WSMessage) { // WS messages
65
+ const m = JSON.parse(msg as string);
66
+ this.setState({messages: [...this.state.messages, m]});
67
+ this.connections.forEach(c => c.send(JSON.stringify(m)));
68
+ }
69
+
70
+ async onEmail(email: AgentEmail) { // Email routing
71
+ this.sql`INSERT INTO emails (from_addr,subject,body) VALUES (${email.from},${email.headers.get("subject")},${await email.text()})`;
72
+ }
73
+ ```
74
+
75
+ ## State, SQL, Scheduling
76
+
77
+ ```ts
78
+ // State
79
+ this.setState({count: 42}); // Auto-syncs
80
+ this.setState({...this.state, count: this.state.count + 1});
81
+
82
+ // SQL (parameterized queries prevent injection)
83
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, name TEXT)`;
84
+ this.sql`INSERT INTO users (id,name) VALUES (${userId},${name})`;
85
+ const users = this.sql<{id,name}>`SELECT * FROM users WHERE id = ${userId}`;
86
+
87
+ // Scheduling
88
+ await this.schedule(new Date("2026-12-25"), "sendGreeting", {msg:"Hi"}); // Date
89
+ await this.schedule(60, "checkStatus", {}); // Delay (sec)
90
+ await this.schedule("0 0 * * *", "dailyCleanup", {}); // Cron
91
+ await this.cancelSchedule(scheduleId);
92
+ ```
93
+
94
+ ## RPC Methods (@callable)
95
+
96
+ ```ts
97
+ import { Agent, callable } from "agents";
98
+
99
+ export class MyAgent extends Agent<Env> {
100
+ @callable()
101
+ async processTask(input: {text: string}): Promise<{result: string}> {
102
+ return { result: await this.env.AI.run("@cf/meta/llama-3.1-8b-instruct", {prompt: input.text}) };
103
+ }
104
+ }
105
+ // Client: const result = await agent.processTask({ text: "Hello" });
106
+ // Must return JSON-serializable values
107
+ ```
108
+
109
+ ## Connections & AI
110
+
111
+ ```ts
112
+ // Connections (type: Agent<Env, State, ConnState>)
113
+ this.connections.forEach(c => c.send(JSON.stringify(msg))); // Broadcast
114
+ conn.setState({userId:"123"}); conn.close(1000, "Goodbye");
115
+
116
+ // Workers AI
117
+ const r = await this.env.AI.run("@cf/meta/llama-3.1-8b-instruct", {prompt});
118
+
119
+ // Manual streaming (prefer AIChatAgent)
120
+ const stream = await client.chat.completions.create({model: "gpt-4", messages, stream: true});
121
+ for await (const chunk of stream) conn.send(JSON.stringify({chunk: chunk.choices[0].delta.content}));
122
+ ```
123
+
124
+ **Type-safe state:** `Agent<Env, State, ConnState>` - third param types `conn.state`
125
+
126
+ ## MCP Integration
127
+
128
+ Model Context Protocol for exposing tools:
129
+
130
+ ```ts
131
+ // Register & use MCP server
132
+ await this.mcp.registerServer("github", {
133
+ url: env.MCP_SERVER_URL,
134
+ auth: { type: "oauth", clientId: env.GITHUB_CLIENT_ID, clientSecret: env.GITHUB_CLIENT_SECRET }
135
+ });
136
+ const tools = await this.mcp.getAITools(["github"]);
137
+ return this.streamText({ model: openai("gpt-4"), messages: this.messages, tools, onFinish });
138
+ ```
139
+
140
+ ## Task Queue
141
+
142
+ ```ts
143
+ await this.queue("processVideo", { videoId: "abc123" }); // Add task
144
+ const tasks = await this.dequeue(10); // Process up to 10
145
+ ```
146
+
147
+ ## Context & Cleanup
148
+
149
+ ```ts
150
+ const agent = getCurrentAgent<MyAgent>(); // Get current instance
151
+ async destroy() { /* cleanup before agent destroyed */ }
152
+ ```
153
+
154
+ ## AI Integration
155
+
156
+ ```ts
157
+ // Workers AI
158
+ const r = await this.env.AI.run("@cf/meta/llama-3.1-8b-instruct", {prompt});
159
+
160
+ // Manual streaming (prefer AIChatAgent for auto-streaming)
161
+ const stream = await client.chat.completions.create({model: "gpt-4", messages, stream: true});
162
+ for await (const chunk of stream) {
163
+ if (chunk.choices[0]?.delta?.content) conn.send(JSON.stringify({chunk: chunk.choices[0].delta.content}));
164
+ }
165
+ ```
166
+
167
+ ## Client Hooks (React)
168
+
169
+ ```ts
170
+ // useAgent() - WebSocket connection + RPC
171
+ import { useAgent } from "agents/react";
172
+ const agent = useAgent({ agent: "MyAgent", name: "user-123" }); // name for idFromName
173
+ const result = await agent.processTask({ text: "Hello" }); // Call @callable methods
174
+ // agent.readyState: 0=CONNECTING, 1=OPEN, 2=CLOSING, 3=CLOSED
175
+
176
+ // useAgentChat() - AI chat UI
177
+ import { useAgentChat } from "@cloudflare/ai-chat/react";
178
+ const agent = useAgent({ agent: "ChatAgent" });
179
+ const { messages, input, handleInputChange, handleSubmit, isLoading, stop, clearHistory } =
180
+ useAgentChat({
181
+ agent,
182
+ maxSteps: 5, // Max tool iterations
183
+ resume: true, // Auto-resume on disconnect
184
+ onToolCall: async (toolCall) => {
185
+ // Client tools (human-in-the-loop)
186
+ if (toolCall.toolName === "confirm") return { ok: window.confirm("Proceed?") };
187
+ }
188
+ });
189
+ // status: "ready" | "submitted" | "streaming" | "error"
190
+ ```