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