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,197 @@
1
+ # Cloudflare Workers AI
2
+
3
+ Expert guidance for Cloudflare Workers AI - serverless GPU-powered AI inference at the edge.
4
+
5
+ ## Overview
6
+
7
+ Workers AI provides:
8
+ - 50+ pre-trained models (LLMs, embeddings, image generation, speech-to-text, translation)
9
+ - Native Workers binding (no external API calls)
10
+ - Pay-per-use pricing (neurons consumed per inference)
11
+ - OpenAI-compatible REST API
12
+ - Streaming support for text generation
13
+ - Function calling with compatible models
14
+
15
+ **Architecture**: Inference runs on Cloudflare's GPU network. Models load on first request (cold start 1-3s), subsequent requests are faster.
16
+
17
+ ## Quick Start
18
+
19
+ ```typescript
20
+ interface Env {
21
+ AI: Ai;
22
+ }
23
+
24
+ export default {
25
+ async fetch(request: Request, env: Env) {
26
+ const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
27
+ messages: [{ role: 'user', content: 'What is Cloudflare?' }]
28
+ });
29
+ return Response.json(response);
30
+ }
31
+ };
32
+ ```
33
+
34
+ ```bash
35
+ # Setup - add binding to wrangler.jsonc
36
+ wrangler dev --remote # Must use --remote for AI
37
+ wrangler deploy
38
+ ```
39
+
40
+ ## Model Selection Decision Tree
41
+
42
+ ### Text Generation (Chat/Completion)
43
+
44
+ **Quality Priority**:
45
+ - **Best quality**: `@cf/meta/llama-3.1-70b-instruct` (expensive, ~2000 neurons)
46
+ - **Balanced**: `@cf/meta/llama-3.1-8b-instruct` (good quality, ~200 neurons)
47
+ - **Fastest/cheapest**: `@cf/mistral/mistral-7b-instruct-v0.1` (~50 neurons)
48
+
49
+ **Function Calling**:
50
+ - Use `@cf/meta/llama-3.1-8b-instruct` or `@cf/meta/llama-3.1-70b-instruct` (native tool support)
51
+
52
+ **Code Generation**:
53
+ - Use `@cf/deepseek-ai/deepseek-coder-6.7b-instruct` (specialized for code)
54
+
55
+ ### Embeddings (Semantic Search/RAG)
56
+
57
+ **English text**:
58
+ - **Best**: `@cf/baai/bge-large-en-v1.5` (1024 dims, highest quality)
59
+ - **Balanced**: `@cf/baai/bge-base-en-v1.5` (768 dims, good quality)
60
+ - **Fast**: `@cf/baai/bge-small-en-v1.5` (384 dims, lower quality but fast)
61
+
62
+ **Multilingual**:
63
+ - Use `@hf/sentence-transformers/paraphrase-multilingual-minilm-l12-v2`
64
+
65
+ ### Image Generation
66
+
67
+ - **Stable Diffusion**: `@cf/stabilityai/stable-diffusion-xl-base-1.0` (~10,000 neurons)
68
+ - **Portraits**: `@cf/lykon/dreamshaper-8-lcm` (optimized for faces)
69
+
70
+ ### Other Tasks
71
+
72
+ - **Speech-to-text**: `@cf/openai/whisper`
73
+ - **Translation**: `@cf/meta/m2m100-1.2b` (100 languages)
74
+ - **Image classification**: `@cf/microsoft/resnet-50`
75
+
76
+ ## SDK Approach Decision Tree
77
+
78
+ ### Native Binding (Recommended)
79
+
80
+ **When**: Building Workers/Pages with TypeScript
81
+ **Why**: Zero external dependencies, best performance, native types
82
+
83
+ ```typescript
84
+ await env.AI.run(model, input);
85
+ ```
86
+
87
+ ### REST API
88
+
89
+ **When**: External services, non-Workers environments, testing
90
+ **Why**: Standard HTTP, works anywhere
91
+
92
+ ```bash
93
+ curl https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai/run/@cf/meta/llama-3.1-8b-instruct \
94
+ -H "Authorization: Bearer <API_TOKEN>" \
95
+ -d '{"messages":[{"role":"user","content":"Hello"}]}'
96
+ ```
97
+
98
+ ### Vercel AI SDK Integration
99
+
100
+ **When**: Using Vercel AI SDK features (streaming UI, tool calling abstractions)
101
+ **Why**: Unified interface across providers
102
+
103
+ ```typescript
104
+ import { openai } from '@ai-sdk/openai';
105
+
106
+ const model = openai('model-name', {
107
+ baseURL: 'https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai/v1',
108
+ headers: { Authorization: 'Bearer <API_TOKEN>' }
109
+ });
110
+ ```
111
+
112
+ ## RAG vs Direct Generation
113
+
114
+ ### Use RAG (Vectorize + Workers AI) When:
115
+ - Answering questions about specific documents/data
116
+ - Need factual accuracy from known corpus
117
+ - Context exceeds model's window (>4K tokens)
118
+ - Building knowledge base chat
119
+
120
+ ### Use Direct Generation When:
121
+ - Creative writing, brainstorming
122
+ - General knowledge questions
123
+ - Small context fits in prompt (<4K tokens)
124
+ - Cost optimization (RAG adds embedding + vector search costs)
125
+
126
+ ## Platform Limits
127
+
128
+ | Limit | Free Tier | Paid Plans |
129
+ |-------|-----------|------------|
130
+ | Neurons/day | 10,000 | Pay per use |
131
+ | Rate limit | Varies by model | Higher (contact support) |
132
+ | Context window | Model dependent (2K-8K) | Same |
133
+ | Streaming | ✅ Supported | ✅ Supported |
134
+ | Function calling | ✅ Supported (select models) | ✅ Supported |
135
+
136
+ **Pricing**: Free 10K neurons/day, then pay per neuron consumed (varies by model)
137
+
138
+ ## Common Tasks
139
+
140
+ ```typescript
141
+ // Streaming text generation
142
+ const stream = await env.AI.run(model, { messages, stream: true });
143
+ for await (const chunk of stream) {
144
+ console.log(chunk.response);
145
+ }
146
+
147
+ // Embeddings for RAG
148
+ const { data } = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
149
+ text: ['Query text', 'Document 1', 'Document 2']
150
+ });
151
+
152
+ // Function calling
153
+ const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
154
+ messages: [{ role: 'user', content: 'What is the weather?' }],
155
+ tools: [{
156
+ type: 'function',
157
+ function: { name: 'getWeather', parameters: { ... } }
158
+ }]
159
+ });
160
+ ```
161
+
162
+ ## Development Workflow
163
+
164
+ ```bash
165
+ # Always use --remote for AI (local doesn't have models)
166
+ wrangler dev --remote
167
+
168
+ # Deploy to production
169
+ wrangler deploy
170
+
171
+ # View model catalog
172
+ # https://developers.cloudflare.com/workers-ai/models/
173
+ ```
174
+
175
+ ## Reading Order
176
+
177
+ **Start here**: Quick Start above → configuration.md (setup)
178
+
179
+ **Common tasks**:
180
+ - First time setup: configuration.md → Add binding + deploy
181
+ - Choose model: Model Selection Decision Tree (above) → api.md
182
+ - Build RAG: patterns.md → Vectorize integration
183
+ - Optimize costs: Model Selection + gotchas.md (rate limits)
184
+ - Debugging: gotchas.md → Common errors
185
+
186
+ ## In This Reference
187
+
188
+ - [configuration.md](./configuration.md) - wrangler.jsonc setup, TypeScript types, bindings, environment variables
189
+ - [api.md](./api.md) - env.AI.run(), streaming, function calling, REST API, response types
190
+ - [patterns.md](./patterns.md) - RAG with Vectorize, prompt engineering, batching, error handling, caching
191
+ - [gotchas.md](./gotchas.md) - Deprecated @cloudflare/ai package, rate limits, pricing, common errors
192
+
193
+ ## See Also
194
+
195
+ - [vectorize](../vectorize/) - Vector database for RAG patterns
196
+ - [ai-gateway](../ai-gateway/) - Caching, rate limiting, analytics for AI requests
197
+ - [workers](../workers/) - Worker runtime and fetch handler patterns
@@ -0,0 +1,112 @@
1
+ # Workers AI API Reference
2
+
3
+ ## Core Method
4
+
5
+ ```typescript
6
+ const response = await env.AI.run(model, input);
7
+ ```
8
+
9
+ ## Text Generation
10
+
11
+ ```typescript
12
+ const result = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
13
+ messages: [
14
+ { role: 'system', content: 'You are helpful' },
15
+ { role: 'user', content: 'Hello' }
16
+ ],
17
+ temperature: 0.7, // 0-1
18
+ max_tokens: 100
19
+ });
20
+ console.log(result.response);
21
+ ```
22
+
23
+ **Streaming:**
24
+ ```typescript
25
+ const stream = await env.AI.run(model, { messages, stream: true });
26
+ return new Response(stream, { headers: { 'Content-Type': 'text/event-stream' } });
27
+ ```
28
+
29
+ ## Embeddings
30
+
31
+ ```typescript
32
+ const result = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
33
+ text: ['Query', 'Doc 1', 'Doc 2'] // Batch for efficiency
34
+ });
35
+ const [queryEmbed, doc1Embed, doc2Embed] = result.data; // 768-dim vectors
36
+ ```
37
+
38
+ ## Function Calling
39
+
40
+ ```typescript
41
+ const tools = [{
42
+ type: 'function',
43
+ function: {
44
+ name: 'getWeather',
45
+ description: 'Get weather for location',
46
+ parameters: {
47
+ type: 'object',
48
+ properties: { location: { type: 'string' } },
49
+ required: ['location']
50
+ }
51
+ }
52
+ }];
53
+
54
+ const response = await env.AI.run(model, { messages, tools });
55
+ if (response.tool_calls) {
56
+ const args = JSON.parse(response.tool_calls[0].function.arguments);
57
+ // Execute function, send result back
58
+ }
59
+ ```
60
+
61
+ ## Image Generation
62
+
63
+ ```typescript
64
+ const image = await env.AI.run('@cf/stabilityai/stable-diffusion-xl-base-1.0', {
65
+ prompt: 'Mountain sunset',
66
+ num_steps: 20, // 1-20
67
+ guidance: 7.5 // 1-20
68
+ });
69
+ return new Response(image, { headers: { 'Content-Type': 'image/png' } });
70
+ ```
71
+
72
+ ## Speech Recognition
73
+
74
+ ```typescript
75
+ const audioArray = Array.from(new Uint8Array(await request.arrayBuffer()));
76
+ const result = await env.AI.run('@cf/openai/whisper', { audio: audioArray });
77
+ console.log(result.text);
78
+ ```
79
+
80
+ ## Translation
81
+
82
+ ```typescript
83
+ const result = await env.AI.run('@cf/meta/m2m100-1.2b', {
84
+ text: 'Hello',
85
+ source_lang: 'en',
86
+ target_lang: 'es'
87
+ });
88
+ console.log(result.translated_text);
89
+ ```
90
+
91
+ ## REST API
92
+
93
+ ```bash
94
+ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct \
95
+ -H "Authorization: Bearer $TOKEN" \
96
+ -d '{"messages":[{"role":"user","content":"Hello"}]}'
97
+ ```
98
+
99
+ ## Error Codes
100
+
101
+ | Code | Meaning | Fix |
102
+ |------|---------|-----|
103
+ | 7502 | Model not found | Check spelling |
104
+ | 7504 | Validation failed | Verify input schema |
105
+ | 7505 | Rate limited | Reduce rate or upgrade |
106
+ | 7506 | Context exceeded | Reduce input size |
107
+
108
+ ## Performance Tips
109
+
110
+ 1. **Batch embeddings** - single request for multiple texts
111
+ 2. **Stream long responses** - reduce perceived latency
112
+ 3. **Accept cold starts** - first request ~1-3s, subsequent ~100-500ms
@@ -0,0 +1,97 @@
1
+ # Workers AI Configuration
2
+
3
+ ## wrangler.jsonc
4
+
5
+ ```jsonc
6
+ {
7
+ "name": "my-ai-worker",
8
+ "main": "src/index.ts",
9
+ "compatibility_date": "2024-01-01",
10
+ "ai": {
11
+ "binding": "AI"
12
+ }
13
+ }
14
+ ```
15
+
16
+ ## TypeScript
17
+
18
+ ```bash
19
+ npm install --save-dev @cloudflare/workers-types
20
+ ```
21
+
22
+ ```typescript
23
+ interface Env {
24
+ AI: Ai;
25
+ }
26
+
27
+ export default {
28
+ async fetch(request: Request, env: Env) {
29
+ const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
30
+ messages: [{ role: 'user', content: 'Hello' }]
31
+ });
32
+ return Response.json(response);
33
+ }
34
+ };
35
+ ```
36
+
37
+ ## Local Development
38
+
39
+ ```bash
40
+ wrangler dev --remote # Required for AI - no local inference
41
+ ```
42
+
43
+ ## REST API
44
+
45
+ ```typescript
46
+ const response = await fetch(
47
+ `https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/ai/run/@cf/meta/llama-3.1-8b-instruct`,
48
+ {
49
+ method: 'POST',
50
+ headers: { 'Authorization': `Bearer ${API_TOKEN}` },
51
+ body: JSON.stringify({ messages: [{ role: 'user', content: 'Hello' }] })
52
+ }
53
+ );
54
+ ```
55
+
56
+ Create API token at: dash.cloudflare.com/profile/api-tokens (Workers AI - Read permission)
57
+
58
+ ## SDK Compatibility
59
+
60
+ **OpenAI SDK:**
61
+ ```typescript
62
+ import OpenAI from 'openai';
63
+ const client = new OpenAI({
64
+ apiKey: env.CLOUDFLARE_API_TOKEN,
65
+ baseURL: `https://api.cloudflare.com/client/v4/accounts/${env.ACCOUNT_ID}/ai/v1`
66
+ });
67
+ ```
68
+
69
+ ## Multi-Model Setup
70
+
71
+ ```typescript
72
+ const MODELS = {
73
+ chat: '@cf/meta/llama-3.1-8b-instruct',
74
+ embed: '@cf/baai/bge-base-en-v1.5',
75
+ image: '@cf/stabilityai/stable-diffusion-xl-base-1.0'
76
+ };
77
+ ```
78
+
79
+ ## RAG Setup (with Vectorize)
80
+
81
+ ```jsonc
82
+ {
83
+ "ai": { "binding": "AI" },
84
+ "vectorize": {
85
+ "bindings": [{ "binding": "VECTORIZE", "index_name": "embeddings-index" }]
86
+ }
87
+ }
88
+ ```
89
+
90
+ ## Troubleshooting
91
+
92
+ | Error | Fix |
93
+ |-------|-----|
94
+ | `env.AI is undefined` | Check `ai` binding in wrangler.jsonc |
95
+ | Local AI doesn't work | Use `wrangler dev --remote` |
96
+ | Type 'Ai' not found | Install `@cloudflare/workers-types` |
97
+ | @cloudflare/ai package error | Don't install - use native binding |
@@ -0,0 +1,114 @@
1
+ # Workers AI Gotchas
2
+
3
+ ## Critical: @cloudflare/ai is DEPRECATED
4
+
5
+ ```typescript
6
+ // ❌ WRONG - Don't install @cloudflare/ai
7
+ import Ai from '@cloudflare/ai';
8
+
9
+ // ✅ CORRECT - Use native binding
10
+ export default {
11
+ async fetch(request: Request, env: Env) {
12
+ await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { messages: [...] });
13
+ }
14
+ }
15
+ ```
16
+
17
+ ## Development
18
+
19
+ ### "AI inference doesn't work locally"
20
+ ```bash
21
+ # ❌ Local AI doesn't work
22
+ wrangler dev
23
+ # ✅ Use remote
24
+ wrangler dev --remote
25
+ ```
26
+
27
+ ### "env.AI is undefined"
28
+ Add binding to wrangler.jsonc:
29
+ ```jsonc
30
+ { "ai": { "binding": "AI" } }
31
+ ```
32
+
33
+ ## API Responses
34
+
35
+ ### Embedding response shape varies
36
+ ```typescript
37
+ // @cf/baai/bge-base-en-v1.5 returns: { data: [[0.1, 0.2, ...]] }
38
+ const embedding = response.data[0]; // Get first element
39
+ ```
40
+
41
+ ### Stream returns ReadableStream
42
+ ```typescript
43
+ const stream = await env.AI.run(model, { messages: [...], stream: true });
44
+ for await (const chunk of stream) { console.log(chunk.response); }
45
+ ```
46
+
47
+ ## Rate Limits & Pricing
48
+
49
+ | Model Type | Neurons/Request |
50
+ |------------|-----------------|
51
+ | Small text (7B) | ~50-200 |
52
+ | Large text (70B) | ~500-2000 |
53
+ | Embeddings | ~5-20 |
54
+ | Image gen | ~10,000+ |
55
+
56
+ **Free tier**: 10,000 neurons/day
57
+
58
+ ```typescript
59
+ // ❌ EXPENSIVE - 70B model
60
+ await env.AI.run('@cf/meta/llama-3.1-70b-instruct', ...);
61
+ // ✅ CHEAPER - Use smallest that works
62
+ await env.AI.run('@cf/meta/llama-3.1-8b-instruct', ...);
63
+ ```
64
+
65
+ ## Model-Specific
66
+
67
+ ### Function calling
68
+ Only `@cf/meta/llama-3.1-*` and `mistral-7b-instruct-v0.2` support tools.
69
+
70
+ ### Empty response
71
+ Check context limits (2K-8K tokens). Validate input structure.
72
+
73
+ ### Inconsistent responses
74
+ Set `temperature: 0` for deterministic outputs.
75
+
76
+ ### Cold start latency
77
+ First request: 1-3s. Use AI Gateway caching for frequent prompts.
78
+
79
+ ## TypeScript
80
+
81
+ ```typescript
82
+ interface Env {
83
+ AI: Ai; // From @cloudflare/workers-types
84
+ }
85
+
86
+ interface TextGenerationResponse { response: string; }
87
+ interface EmbeddingResponse { data: number[][]; shape: number[]; }
88
+ ```
89
+
90
+ ## Common Errors
91
+
92
+ ### 7502: Model not found
93
+ Check exact model name at developers.cloudflare.com/workers-ai/models/
94
+
95
+ ### 7504: Input validation failed
96
+ ```typescript
97
+ // Text gen requires messages array
98
+ await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
99
+ messages: [{ role: 'user', content: 'Hello' }] // ✅
100
+ });
101
+
102
+ // Embeddings require text
103
+ await env.AI.run('@cf/baai/bge-base-en-v1.5', { text: 'Hello' }); // ✅
104
+ ```
105
+
106
+ ## Vercel AI SDK Integration
107
+
108
+ ```typescript
109
+ import { openai } from '@ai-sdk/openai';
110
+ const model = openai('gpt-3.5-turbo', {
111
+ baseURL: 'https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai/v1',
112
+ headers: { Authorization: 'Bearer <API_TOKEN>' }
113
+ });
114
+ ```
@@ -0,0 +1,120 @@
1
+ # Workers AI Patterns
2
+
3
+ ## RAG (Retrieval-Augmented Generation)
4
+
5
+ ```typescript
6
+ // 1. Embed query
7
+ const embedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', { text: query });
8
+
9
+ // 2. Search vectors
10
+ const results = await env.VECTORIZE.query(embedding.data[0], {
11
+ topK: 5, returnMetadata: true
12
+ });
13
+
14
+ // 3. Build context
15
+ const context = results.matches.map(m => m.metadata?.text).join('\n\n');
16
+
17
+ // 4. Generate with context
18
+ const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
19
+ messages: [
20
+ { role: 'system', content: `Answer based on:\n\n${context}` },
21
+ { role: 'user', content: query }
22
+ ]
23
+ });
24
+ ```
25
+
26
+ ## Streaming (SSE)
27
+
28
+ ```typescript
29
+ const stream = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
30
+ messages, stream: true
31
+ });
32
+
33
+ const { readable, writable } = new TransformStream();
34
+ const writer = writable.getWriter();
35
+
36
+ (async () => {
37
+ for await (const chunk of stream) {
38
+ await writer.write(new TextEncoder().encode(`data: ${JSON.stringify(chunk)}\n\n`));
39
+ }
40
+ await writer.write(new TextEncoder().encode('data: [DONE]\n\n'));
41
+ await writer.close();
42
+ })();
43
+
44
+ return new Response(readable, {
45
+ headers: { 'Content-Type': 'text/event-stream' }
46
+ });
47
+ ```
48
+
49
+ ## Error Handling & Retry
50
+
51
+ ```typescript
52
+ async function runWithRetry(env, model, input, maxRetries = 3) {
53
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
54
+ try {
55
+ return await env.AI.run(model, input);
56
+ } catch (error) {
57
+ if (error.message?.includes('7505') && attempt < maxRetries - 1) {
58
+ await new Promise(r => setTimeout(r, Math.pow(2, attempt) * 1000));
59
+ continue;
60
+ }
61
+ throw error;
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ ## Model Fallback
68
+
69
+ ```typescript
70
+ try {
71
+ return await env.AI.run('@cf/meta/llama-3.1-70b-instruct', { messages });
72
+ } catch {
73
+ return await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { messages });
74
+ }
75
+ ```
76
+
77
+ ## Prompt Patterns
78
+
79
+ ```typescript
80
+ // System prompts
81
+ const PROMPTS = {
82
+ json: 'Respond with valid JSON only.',
83
+ concise: 'Keep responses brief.',
84
+ cot: 'Think step by step before answering.'
85
+ };
86
+
87
+ // Few-shot
88
+ messages: [
89
+ { role: 'system', content: 'Extract as JSON' },
90
+ { role: 'user', content: 'John bought 3 apples for $5' },
91
+ { role: 'assistant', content: '{"name":"John","item":"apples","qty":3}' },
92
+ { role: 'user', content: actualInput }
93
+ ]
94
+ ```
95
+
96
+ ## Parallel Execution
97
+
98
+ ```typescript
99
+ const [sentiment, summary, embedding] = await Promise.all([
100
+ env.AI.run('@cf/mistral/mistral-7b-instruct-v0.1', { messages: sentimentPrompt }),
101
+ env.AI.run('@cf/meta/llama-3.1-8b-instruct', { messages: summaryPrompt }),
102
+ env.AI.run('@cf/baai/bge-base-en-v1.5', { text })
103
+ ]);
104
+ ```
105
+
106
+ ## Cost Optimization
107
+
108
+ | Task | Model | Neurons |
109
+ |------|-------|---------|
110
+ | Classify | `@cf/mistral/mistral-7b-instruct-v0.1` | ~50 |
111
+ | Chat | `@cf/meta/llama-3.1-8b-instruct` | ~200 |
112
+ | Complex | `@cf/meta/llama-3.1-70b-instruct` | ~2000 |
113
+ | Embed | `@cf/baai/bge-base-en-v1.5` | ~10 |
114
+
115
+ ```typescript
116
+ // Batch embeddings
117
+ const response = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
118
+ text: textsArray // Process multiple at once
119
+ });
120
+ ```