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,221 @@
1
+ ---
2
+ name: agents-sdk
3
+ description: Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, chat applications, voice agents, or browser automation. Covers Agent class, state management, callable RPC, Workflows, durable execution, queues, retries, observability, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
4
+ ---
5
+
6
+ # Cloudflare Agents SDK
7
+
8
+ Your knowledge of the Agents SDK may be outdated. **Prefer retrieval over pre-training** for any Agents SDK task.
9
+
10
+ ## Retrieval Sources
11
+
12
+ Cloudflare docs: https://developers.cloudflare.com/agents/
13
+
14
+ | Topic | Docs URL | Use for |
15
+ |-------|----------|---------|
16
+ | Getting started | [Quick start](https://developers.cloudflare.com/agents/getting-started/quick-start/) | First agent, project setup |
17
+ | Adding to existing project | [Add to existing project](https://developers.cloudflare.com/agents/getting-started/add-to-existing-project/) | Install into existing Workers app |
18
+ | Configuration | [Configuration](https://developers.cloudflare.com/agents/api-reference/configuration/) | `wrangler.jsonc`, bindings, assets, deployment |
19
+ | Agent class | [Agents API](https://developers.cloudflare.com/agents/api-reference/agents-api/) | Agent lifecycle, patterns, pitfalls |
20
+ | State | [Store and sync state](https://developers.cloudflare.com/agents/api-reference/store-and-sync-state/) | `setState`, `validateStateChange`, persistence |
21
+ | Routing | [Routing](https://developers.cloudflare.com/agents/api-reference/routing/) | URL patterns, `routeAgentRequest` |
22
+ | Callable methods | [Callable methods](https://developers.cloudflare.com/agents/api-reference/callable-methods/) | `@callable`, RPC, streaming, timeouts |
23
+ | Scheduling | [Schedule tasks](https://developers.cloudflare.com/agents/api-reference/schedule-tasks/) | `schedule()`, `scheduleEvery()`, cron |
24
+ | Workflows | [Run workflows](https://developers.cloudflare.com/agents/api-reference/run-workflows/) | `AgentWorkflow`, durable multi-step tasks |
25
+ | HTTP/WebSockets | [WebSockets](https://developers.cloudflare.com/agents/api-reference/websockets/) | Lifecycle hooks, hibernation |
26
+ | Chat agents | [Chat agents](https://developers.cloudflare.com/agents/api-reference/chat-agents/) | `AIChatAgent`, streaming, tools, persistence |
27
+ | Client SDK | [Client SDK](https://developers.cloudflare.com/agents/api-reference/client-sdk/) | `useAgent`, `useAgentChat`, React hooks |
28
+ | Client tools | [Client tools](https://developers.cloudflare.com/agents/api-reference/client-tools/) | Client-side tools, `autoContinueAfterToolResult` |
29
+ | Server-driven messages | [Trigger patterns](https://developers.cloudflare.com/agents/api-reference/trigger-patterns/) | `saveMessages`, `waitUntilStable`, server-initiated turns |
30
+ | Resumable streaming | [Resumable streaming](https://developers.cloudflare.com/agents/api-reference/resumable-streaming/) | Stream recovery on disconnect |
31
+ | Email | [Email](https://developers.cloudflare.com/agents/api-reference/email/) | Email routing, secure reply resolver |
32
+ | MCP client | [MCP client](https://developers.cloudflare.com/agents/api-reference/mcp-client-api/) | Connecting to MCP servers |
33
+ | MCP server | [MCP server](https://developers.cloudflare.com/agents/api-reference/mcp-agent-api/) | Building MCP servers with `McpAgent` |
34
+ | MCP transports | [MCP transports](https://developers.cloudflare.com/agents/api-reference/mcp-transports/) | Streamable HTTP, SSE, RPC transport options |
35
+ | Securing MCP servers | [Securing MCP](https://developers.cloudflare.com/agents/api-reference/securing-mcp-servers/) | OAuth, proxy MCP, hardening |
36
+ | Human-in-the-loop | [Human-in-the-loop](https://developers.cloudflare.com/agents/concepts/human-in-the-loop/) | Approval flows, `needsApproval`, workflows |
37
+ | Durable execution | [Durable execution](https://developers.cloudflare.com/agents/api-reference/durable-execution/) | `runFiber()`, `stash()`, surviving DO eviction |
38
+ | Queue | [Queue](https://developers.cloudflare.com/agents/api-reference/queue-tasks/) | Built-in FIFO queue, `queue()` |
39
+ | Retries | [Retries](https://developers.cloudflare.com/agents/api-reference/retries/) | `this.retry()`, backoff/jitter |
40
+ | Observability | [Observability](https://developers.cloudflare.com/agents/api-reference/observability/) | Diagnostics-channel events |
41
+ | Push notifications | [Push notifications](https://developers.cloudflare.com/agents/api-reference/push-notifications/) | Web Push + VAPID from agents |
42
+ | Webhooks | [Webhooks](https://developers.cloudflare.com/agents/api-reference/webhooks/) | Receiving external webhooks |
43
+ | Cross-domain auth | [Cross-domain auth](https://developers.cloudflare.com/agents/api-reference/cross-domain-authentication/) | WebSocket auth, tokens, CORS |
44
+ | Readonly connections | [Readonly](https://developers.cloudflare.com/agents/api-reference/readonly-connections/) | `shouldConnectionBeReadonly` |
45
+ | Voice | [Voice](https://developers.cloudflare.com/agents/api-reference/voice/) | Experimental STT/TTS, `withVoice` |
46
+ | Browse the web | [Browser tools](https://developers.cloudflare.com/agents/api-reference/browse-the-web/) | Experimental CDP browser automation |
47
+ | Think | [Think](https://developers.cloudflare.com/agents/api-reference/think/) | Experimental higher-level chat agent class |
48
+ | Migrations | [AI SDK v5](https://developers.cloudflare.com/agents/guides/migration-to-ai-sdk-v5/), [AI SDK v6](https://developers.cloudflare.com/agents/guides/migration-to-ai-sdk-v6/) | Upgrading `@cloudflare/ai-chat` |
49
+
50
+ ## Capabilities
51
+
52
+ The Agents SDK provides:
53
+
54
+ - **Persistent state** — SQLite-backed, auto-synced to clients via `setState`
55
+ - **Callable RPC** — `@callable()` methods invoked over WebSocket
56
+ - **Scheduling** — One-time, recurring (`scheduleEvery`), and cron tasks
57
+ - **Workflows** — Durable multi-step background processing via `AgentWorkflow`
58
+ - **Durable execution** — `runFiber()` / `stash()` for work that survives DO eviction
59
+ - **Queue** — Built-in FIFO queue with retries via `queue()`
60
+ - **Retries** — `this.retry()` with exponential backoff and jitter
61
+ - **MCP integration** — Connect to MCP servers or build your own with `McpAgent`
62
+ - **Email handling** — Receive and reply to emails with secure routing
63
+ - **Streaming chat** — `AIChatAgent` with resumable streams, message persistence, tools
64
+ - **Server-driven messages** — `saveMessages`, `waitUntilStable` for proactive agent turns
65
+ - **React hooks** — `useAgent`, `useAgentChat` for client apps
66
+ - **Observability** — `diagnostics_channel` events for state, RPC, schedule, lifecycle
67
+ - **Push notifications** — Web Push + VAPID delivery from agents
68
+ - **Webhooks** — Receive and verify external webhooks
69
+ - **Voice** (experimental) — STT/TTS via `@cloudflare/voice`
70
+ - **Browser tools** (experimental) — CDP-powered browsing via `agents/browser`
71
+ - **Think** (experimental) — Higher-level chat agent via `@cloudflare/think`
72
+
73
+ ## FIRST: Verify Installation
74
+
75
+ ```bash
76
+ npm ls agents # Should show agents package
77
+ ```
78
+
79
+ If not installed:
80
+ ```bash
81
+ npm install agents
82
+ ```
83
+
84
+ For chat agents:
85
+ ```bash
86
+ npm install agents @cloudflare/ai-chat ai @ai-sdk/react
87
+ ```
88
+
89
+ ## Wrangler Configuration
90
+
91
+ ```jsonc
92
+ {
93
+ "compatibility_flags": ["nodejs_compat"],
94
+ "durable_objects": {
95
+ "bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }]
96
+ },
97
+ "migrations": [{ "tag": "v1", "new_sqlite_classes": ["MyAgent"] }]
98
+ }
99
+ ```
100
+
101
+ **Gotchas:**
102
+ - Do NOT enable `experimentalDecorators` in tsconfig (breaks `@callable`)
103
+ - Never edit old migrations — always add new tags
104
+ - Each agent class needs its own DO binding + migration entry
105
+ - Add `"ai": { "binding": "AI" }` for Workers AI
106
+
107
+ ## Agent Class
108
+
109
+ ```typescript
110
+ import { Agent, routeAgentRequest, callable } from "agents";
111
+
112
+ type State = { count: number };
113
+
114
+ export class Counter extends Agent<Env, State> {
115
+ initialState = { count: 0 };
116
+
117
+ validateStateChange(nextState: State, source: Connection | "server") {
118
+ if (nextState.count < 0) throw new Error("Count cannot be negative");
119
+ }
120
+
121
+ onStateUpdate(state: State, source: Connection | "server") {
122
+ console.log("State updated:", state);
123
+ }
124
+
125
+ @callable()
126
+ increment() {
127
+ this.setState({ count: this.state.count + 1 });
128
+ return this.state.count;
129
+ }
130
+ }
131
+
132
+ export default {
133
+ fetch: (req, env) => routeAgentRequest(req, env) ?? new Response("Not found", { status: 404 })
134
+ };
135
+ ```
136
+
137
+ ## Routing
138
+
139
+ Requests route to `/agents/{agent-name}/{instance-name}`:
140
+
141
+ | Class | URL |
142
+ |-------|-----|
143
+ | `Counter` | `/agents/counter/user-123` |
144
+ | `ChatRoom` | `/agents/chat-room/lobby` |
145
+
146
+ Client: `useAgent({ agent: "Counter", name: "user-123" })`
147
+
148
+ Custom routing: use `getAgentByName(env.MyAgent, "instance-id")` then `agent.fetch(request)`.
149
+
150
+ ## Core APIs
151
+
152
+ | Task | API |
153
+ |------|-----|
154
+ | Read state | `this.state.count` |
155
+ | Write state | `this.setState({ count: 1 })` |
156
+ | SQL query | `` this.sql`SELECT * FROM users WHERE id = ${id}` `` |
157
+ | Schedule (delay) | `await this.schedule(60, "task", payload)` |
158
+ | Schedule (cron) | `await this.schedule("0 * * * *", "task", payload)` |
159
+ | Schedule (interval) | `await this.scheduleEvery(30, "poll")` |
160
+ | RPC method | `@callable() myMethod() { ... }` |
161
+ | Streaming RPC | `@callable({ streaming: true }) stream(res) { ... }` |
162
+ | Start workflow | `await this.runWorkflow("ProcessingWorkflow", params)` |
163
+ | Durable fiber | `await this.runFiber("name", async (ctx) => { ... })` |
164
+ | Enqueue work | `this.queue("handler", payload)` |
165
+ | Retry with backoff | `await this.retry(fn, { maxAttempts: 5 })` |
166
+ | Broadcast to clients | `this.broadcast(message)` |
167
+ | Get connections | `this.getConnections(tag?)` |
168
+
169
+ ## React Client
170
+
171
+ ```tsx
172
+ import { useAgent } from "agents/react";
173
+
174
+ function App() {
175
+ const [state, setLocalState] = useState({ count: 0 });
176
+
177
+ const agent = useAgent({
178
+ agent: "Counter",
179
+ name: "my-instance",
180
+ onStateUpdate: (newState) => setLocalState(newState),
181
+ onIdentity: (name, agentType) => console.log(`Connected to ${name}`)
182
+ });
183
+
184
+ return (
185
+ <button onClick={() => agent.setState({ count: state.count + 1 })}>
186
+ Count: {state.count}
187
+ </button>
188
+ );
189
+ }
190
+ ```
191
+
192
+ ## References
193
+
194
+ ### Core
195
+ - **[references/state-scheduling.md](references/state-scheduling.md)** — State persistence, scheduling, SQL
196
+ - **[references/callable.md](references/callable.md)** — RPC methods, streaming, timeouts
197
+ - **[references/routing.md](references/routing.md)** — URL patterns, custom routing, `getAgentByName`
198
+ - **[references/configuration.md](references/configuration.md)** — Wrangler config, bindings, Vite setup
199
+
200
+ ### Chat & Streaming
201
+ - **[references/streaming-chat.md](references/streaming-chat.md)** — AIChatAgent, resumable streams, tools
202
+ - **[references/client-sdk.md](references/client-sdk.md)** — `useAgent`, `useAgentChat`, `AgentClient`
203
+ - **[references/server-driven-messages.md](references/server-driven-messages.md)** — Trigger patterns, `saveMessages`
204
+ - **[references/human-in-the-loop.md](references/human-in-the-loop.md)** — Approval flows, `needsApproval`
205
+
206
+ ### Background Processing
207
+ - **[references/workflows.md](references/workflows.md)** — Durable Workflows integration
208
+ - **[references/durable-execution.md](references/durable-execution.md)** — `runFiber`, `stash`, surviving eviction
209
+ - **[references/queue-retries.md](references/queue-retries.md)** — Built-in queue, retry with backoff
210
+
211
+ ### Integrations
212
+ - **[references/mcp.md](references/mcp.md)** — MCP client and server, transports, securing
213
+ - **[references/email.md](references/email.md)** — Email routing and handling
214
+ - **[references/webhooks-push.md](references/webhooks-push.md)** — Webhooks, push notifications
215
+ - **[references/observability.md](references/observability.md)** — Diagnostics-channel events
216
+
217
+ ### Experimental
218
+ - **[references/think.md](references/think.md)** — `@cloudflare/think` higher-level chat agent
219
+ - **[references/voice.md](references/voice.md)** — `@cloudflare/voice` STT/TTS
220
+ - **[references/codemode.md](references/codemode.md)** — Code Mode for tool orchestration
221
+ - **[references/browse-the-web.md](references/browse-the-web.md)** — CDP browser tools
@@ -0,0 +1,63 @@
1
+ # Browse the Web (Experimental)
2
+
3
+ Fetch https://developers.cloudflare.com/agents/api-reference/browse-the-web/ for complete documentation.
4
+
5
+ CDP-powered browser tools that let agents scrape, screenshot, and interact with web pages.
6
+
7
+ ## Setup
8
+
9
+ ```jsonc
10
+ // wrangler.jsonc
11
+ {
12
+ "browser": { "binding": "BROWSER" },
13
+ "worker_loaders": [{ "binding": "LOADER" }],
14
+ "compatibility_flags": ["nodejs_compat"]
15
+ }
16
+ ```
17
+
18
+ ## Usage with AI SDK
19
+
20
+ ```typescript
21
+ import { createBrowserTools } from "agents/browser/ai";
22
+
23
+ export class MyAgent extends AIChatAgent<Env> {
24
+ async onChatMessage(onFinish) {
25
+ const browserTools = createBrowserTools({
26
+ browser: this.env.BROWSER,
27
+ loader: this.env.LOADER
28
+ });
29
+
30
+ const result = streamText({
31
+ model: openai("gpt-4o"),
32
+ messages: await convertToModelMessages(this.messages),
33
+ tools: { ...myTools, ...browserTools },
34
+ onFinish
35
+ });
36
+ return result.toUIMessageStreamResponse();
37
+ }
38
+ }
39
+ ```
40
+
41
+ ## Available Tools
42
+
43
+ | Tool | Purpose |
44
+ |------|---------|
45
+ | `browser_search` | Search the web and return results |
46
+ | `browser_execute` | Navigate to URL, execute JS, return results |
47
+
48
+ The LLM writes async JavaScript IIFEs that run in a fresh browser session.
49
+
50
+ ## When to Use
51
+
52
+ - Need a real browser (JS rendering, screenshots, interaction) → browser tools
53
+ - Just need HTML/API data → use `fetch()` instead (faster, cheaper)
54
+
55
+ ## Low-Level API
56
+
57
+ ```typescript
58
+ import { connectBrowser, CdpSession } from "agents/browser";
59
+
60
+ const browser = await connectBrowser(this.env.BROWSER);
61
+ const cdp = new CdpSession(browser);
62
+ await cdp.send("Page.navigate", { url: "https://example.com" });
63
+ ```
@@ -0,0 +1,92 @@
1
+ # Callable Methods
2
+
3
+ Fetch https://developers.cloudflare.com/agents/api-reference/callable-methods/ for complete documentation.
4
+
5
+ ## Overview
6
+
7
+ `@callable()` exposes agent methods to clients via WebSocket RPC.
8
+
9
+ ```typescript
10
+ import { Agent, callable } from "agents";
11
+
12
+ export class MyAgent extends Agent<Env, State> {
13
+ @callable()
14
+ async greet(name: string): Promise<string> {
15
+ return `Hello, ${name}!`;
16
+ }
17
+
18
+ @callable()
19
+ async processData(data: unknown): Promise<Result> {
20
+ // Long-running work
21
+ return result;
22
+ }
23
+ }
24
+ ```
25
+
26
+ ## Client Usage
27
+
28
+ ```typescript
29
+ // Basic call
30
+ const greeting = await agent.call("greet", ["World"]);
31
+
32
+ // With timeout
33
+ const result = await agent.call("processData", [data], {
34
+ timeout: 5000 // 5 second timeout
35
+ });
36
+ ```
37
+
38
+ ## Streaming Responses
39
+
40
+ ```typescript
41
+ import { Agent, callable, StreamingResponse } from "agents";
42
+
43
+ export class MyAgent extends Agent<Env, State> {
44
+ @callable({ streaming: true })
45
+ async streamResults(stream: StreamingResponse, query: string) {
46
+ for await (const item of fetchResults(query)) {
47
+ stream.send(JSON.stringify(item));
48
+ }
49
+ stream.close();
50
+ }
51
+
52
+ @callable({ streaming: true })
53
+ async streamWithError(stream: StreamingResponse) {
54
+ try {
55
+ // ... work
56
+ } catch (error) {
57
+ stream.error(error.message); // Signal error to client
58
+ return;
59
+ }
60
+ stream.close();
61
+ }
62
+ }
63
+ ```
64
+
65
+ Client with streaming:
66
+
67
+ ```typescript
68
+ await agent.call("streamResults", ["search term"], {
69
+ stream: {
70
+ onChunk: (data) => console.log("Chunk:", data),
71
+ onDone: () => console.log("Complete"),
72
+ onError: (error) => console.error("Error:", error)
73
+ }
74
+ });
75
+ ```
76
+
77
+ ## Introspection
78
+
79
+ ```typescript
80
+ // Get list of callable methods on an agent
81
+ const methods = await agent.call("getCallableMethods", []);
82
+ // Returns: ["greet", "processData", "streamResults", ...]
83
+ ```
84
+
85
+ ## When to Use
86
+
87
+ | Scenario | Use |
88
+ |----------|-----|
89
+ | Browser/mobile calling agent | `@callable()` |
90
+ | External service calling agent | `@callable()` |
91
+ | Worker calling agent (same codebase) | DO RPC directly |
92
+ | Agent calling another agent | `getAgentByName()` + DO RPC |
@@ -0,0 +1,110 @@
1
+ # Client SDK
2
+
3
+ Fetch https://developers.cloudflare.com/agents/api-reference/client-sdk/ for complete documentation.
4
+
5
+ ## React: `useAgent`
6
+
7
+ ```tsx
8
+ import { useAgent } from "agents/react";
9
+
10
+ function App() {
11
+ const [state, setState] = useState({ count: 0 });
12
+
13
+ const agent = useAgent({
14
+ agent: "Counter",
15
+ name: "my-instance",
16
+ onStateUpdate: (newState) => setState(newState),
17
+ onIdentity: (name, agentType) => console.log(`Connected to ${name}`)
18
+ });
19
+
20
+ return <button onClick={() => agent.setState({ count: state.count + 1 })}>
21
+ {state.count}
22
+ </button>;
23
+ }
24
+ ```
25
+
26
+ ### Typed RPC via `stub`
27
+
28
+ ```tsx
29
+ const agent = useAgent<typeof MyAgent>({
30
+ agent: "MyAgent",
31
+ name: "default"
32
+ });
33
+
34
+ const result = await agent.stub.myMethod(arg1, arg2);
35
+ ```
36
+
37
+ ### Auth via Query Params
38
+
39
+ ```tsx
40
+ useAgent({
41
+ agent: "MyAgent",
42
+ name: "default",
43
+ query: async () => `token=${await getToken()}`,
44
+ queryDeps: [tokenVersion]
45
+ });
46
+ ```
47
+
48
+ ## React: `useAgentChat`
49
+
50
+ ```tsx
51
+ import { useAgent } from "agents/react";
52
+ import { useAgentChat } from "@cloudflare/ai-chat/react";
53
+
54
+ function Chat() {
55
+ const agent = useAgent({ agent: "ChatAgent", name: "session-1" });
56
+
57
+ const { messages, input, handleInputChange, handleSubmit, status } =
58
+ useAgentChat({ agent });
59
+
60
+ return (
61
+ <div>
62
+ {messages.map((m) => <div key={m.id}>{m.role}: {m.content}</div>)}
63
+ <form onSubmit={handleSubmit}>
64
+ <input value={input} onChange={handleInputChange} />
65
+ </form>
66
+ </div>
67
+ );
68
+ }
69
+ ```
70
+
71
+ ## Vanilla JS: `AgentClient`
72
+
73
+ ```typescript
74
+ import { AgentClient } from "agents/client";
75
+
76
+ const client = new AgentClient({
77
+ agent: "MyAgent",
78
+ name: "default",
79
+ host: "https://my-worker.workers.dev"
80
+ });
81
+
82
+ client.addEventListener("stateUpdate", (e) => console.log(e.state));
83
+ const result = await client.call("myMethod", [arg]);
84
+ client.close();
85
+ ```
86
+
87
+ ## `agentFetch` for HTTP-only
88
+
89
+ ```typescript
90
+ import { agentFetch } from "agents/client";
91
+
92
+ const response = await agentFetch({
93
+ agent: "MyAgent",
94
+ name: "default",
95
+ host: "https://my-worker.workers.dev",
96
+ path: "/api/data"
97
+ });
98
+ ```
99
+
100
+ ## Streaming RPC
101
+
102
+ ```typescript
103
+ await agent.call("streamResults", ["query"], {
104
+ stream: {
105
+ onChunk: (data) => console.log(data),
106
+ onDone: () => console.log("done"),
107
+ onError: (err) => console.error(err)
108
+ }
109
+ });
110
+ ```
@@ -0,0 +1,110 @@
1
+ # Codemode (Experimental)
2
+
3
+ Fetch https://developers.cloudflare.com/agents/api-reference/codemode/ for complete documentation.
4
+
5
+ Codemode lets LLMs write and execute code that orchestrates your tools, instead of calling them one at a time. The LLM gets a single "write code" tool; generated JavaScript runs in an isolated Worker sandbox.
6
+
7
+ ## When to Use
8
+
9
+ | Scenario | Use Codemode? |
10
+ |----------|---------------|
11
+ | Single tool call | No — standard tool calling is simpler |
12
+ | Chained tool calls with logic | Yes |
13
+ | Conditional logic across tools | Yes |
14
+ | MCP multi-server workflows | Yes |
15
+ | Simple Q&A chat | No |
16
+
17
+ ## Setup
18
+
19
+ ### Wrangler Config
20
+
21
+ ```jsonc
22
+ {
23
+ "worker_loaders": [{ "binding": "LOADER" }],
24
+ "compatibility_flags": ["nodejs_compat"]
25
+ }
26
+ ```
27
+
28
+ ### Install
29
+
30
+ ```bash
31
+ npm install @cloudflare/codemode ai zod
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ```typescript
37
+ import { createCodeTool } from "@cloudflare/codemode/ai";
38
+ import { DynamicWorkerExecutor } from "@cloudflare/codemode";
39
+ import { streamText, tool, convertToModelMessages } from "ai";
40
+ import { z } from "zod";
41
+
42
+ const tools = {
43
+ getWeather: tool({
44
+ description: "Get weather for a location",
45
+ inputSchema: z.object({ location: z.string() }),
46
+ execute: async ({ location }) => `Weather: ${location} 72°F`
47
+ }),
48
+ sendEmail: tool({
49
+ description: "Send an email",
50
+ inputSchema: z.object({ to: z.string(), subject: z.string(), body: z.string() }),
51
+ execute: async ({ to, subject, body }) => `Email sent to ${to}`
52
+ })
53
+ };
54
+
55
+ export class MyAgent extends Agent<Env, State> {
56
+ async onChatMessage() {
57
+ const executor = new DynamicWorkerExecutor({
58
+ loader: this.env.LOADER
59
+ });
60
+
61
+ const codemode = createCodeTool({ tools, executor });
62
+
63
+ const result = streamText({
64
+ model,
65
+ system: "You are a helpful assistant.",
66
+ messages: await convertToModelMessages(this.messages),
67
+ tools: { codemode }
68
+ });
69
+
70
+ return result.toUIMessageStreamResponse();
71
+ }
72
+ }
73
+ ```
74
+
75
+ ## With MCP Tools
76
+
77
+ ```typescript
78
+ const codemode = createCodeTool({
79
+ tools: {
80
+ ...myTools,
81
+ ...this.mcp.getAITools()
82
+ },
83
+ executor
84
+ });
85
+ ```
86
+
87
+ ## How It Works
88
+
89
+ 1. `createCodeTool` generates TypeScript type definitions from your tools
90
+ 2. The LLM writes an async arrow function calling `codemode.toolName(args)`
91
+ 3. Code runs in an isolated Worker sandbox via `DynamicWorkerExecutor`
92
+ 4. Tool calls route back to the host via Workers RPC
93
+ 5. External `fetch()` is blocked by default — sandbox can only call your tools
94
+
95
+ ## Network Isolation
96
+
97
+ ```typescript
98
+ const executor = new DynamicWorkerExecutor({
99
+ loader: env.LOADER,
100
+ globalOutbound: null // default — fully isolated
101
+ // globalOutbound: env.MY_SERVICE // route through a Fetcher
102
+ });
103
+ ```
104
+
105
+ ## Limitations
106
+
107
+ - Experimental — API may change
108
+ - `needsApproval` tools execute immediately in sandbox (no approval pause yet)
109
+ - JavaScript execution only
110
+ - Requires `worker_loaders` binding
@@ -0,0 +1,72 @@
1
+ # Configuration
2
+
3
+ Fetch https://developers.cloudflare.com/agents/api-reference/configuration/ for complete documentation.
4
+
5
+ ## Wrangler Config (`wrangler.jsonc`)
6
+
7
+ ```jsonc
8
+ {
9
+ "name": "my-agent",
10
+ "main": "src/index.ts",
11
+ "compatibility_date": "2025-01-28",
12
+ "compatibility_flags": ["nodejs_compat"],
13
+ "durable_objects": {
14
+ "bindings": [
15
+ { "name": "MyAgent", "class_name": "MyAgent" },
16
+ { "name": "ChatAgent", "class_name": "ChatAgent" }
17
+ ]
18
+ },
19
+ "migrations": [
20
+ { "tag": "v1", "new_sqlite_classes": ["MyAgent", "ChatAgent"] }
21
+ ],
22
+ "ai": { "binding": "AI" },
23
+ "assets": {
24
+ "directory": "./dist/client",
25
+ "binding": "ASSETS",
26
+ "not_found_handling": "single-page-application",
27
+ "run_worker_first": true
28
+ }
29
+ }
30
+ ```
31
+
32
+ ## Key Rules
33
+
34
+ - Every agent class needs a DO binding AND a `new_sqlite_classes` migration entry
35
+ - `nodejs_compat` is required
36
+ - Never edit old migrations — add a new tag (e.g. `v2`) for new classes
37
+ - Do NOT enable `experimentalDecorators` in tsconfig — it breaks `@callable`
38
+ - For Workers AI locally, set `"ai": { "binding": "AI", "remote": true }` in `.dev.vars` or config
39
+ - Use `wrangler secret put` for secrets, never hardcode them
40
+
41
+ ## Vite Setup
42
+
43
+ ```typescript
44
+ import { defineConfig } from "vite";
45
+ import react from "@vitejs/plugin-react";
46
+ import { cloudflare } from "@cloudflare/vite-plugin";
47
+ import { agents } from "agents/vite";
48
+
49
+ export default defineConfig({
50
+ plugins: [react(), cloudflare(), agents()]
51
+ });
52
+ ```
53
+
54
+ ## Type Generation
55
+
56
+ ```bash
57
+ npx wrangler types
58
+ ```
59
+
60
+ This generates `env.d.ts` with typed bindings. Regenerate after changing `wrangler.jsonc`.
61
+
62
+ ## tsconfig
63
+
64
+ Extend the agents tsconfig for correct settings:
65
+
66
+ ```jsonc
67
+ {
68
+ "extends": ["agents/tsconfig"],
69
+ "include": ["src/**/*.ts", "src/**/*.tsx"],
70
+ "compilerOptions": { "paths": { "~/*": ["./src/*"] } }
71
+ }
72
+ ```