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,60 @@
1
+ # Framework Integration
2
+
3
+ **Web Analytics is dashboard-only** - no programmatic API. This covers beacon integration.
4
+
5
+ ## Basic HTML
6
+
7
+ ```html
8
+ <script defer src='https://static.cloudflareinsights.com/beacon.min.js'
9
+ data-cf-beacon='{"token": "YOUR_TOKEN", "spa": true}'></script>
10
+ ```
11
+
12
+ Place before closing `</body>` tag.
13
+
14
+ ## Framework Examples
15
+
16
+ | Framework | Location | Notes |
17
+ |-----------|----------|-------|
18
+ | React/Vite | `public/index.html` | Add `spa: true` |
19
+ | Next.js App Router | `app/layout.tsx` | Use `<Script strategy="afterInteractive">` |
20
+ | Next.js Pages | `pages/_document.tsx` | Use `<Script>` |
21
+ | Nuxt 3 | `app.vue` with `useHead()` | Or use plugin |
22
+ | Vue 3/Vite | `index.html` | Add `spa: true` |
23
+ | Gatsby | `gatsby-browser.js` | `onClientEntry` hook |
24
+ | SvelteKit | `src/app.html` | Before `</body>` |
25
+ | Astro | Layout component | Before `</body>` |
26
+ | Angular | `src/index.html` | Add `spa: true` |
27
+ | Docusaurus | `docusaurus.config.js` | In `scripts` array |
28
+
29
+ ## Configuration
30
+
31
+ ```json
32
+ {
33
+ "token": "YOUR_TOKEN",
34
+ "spa": true
35
+ }
36
+ ```
37
+
38
+ **Use `spa: true` for:** React Router, Vue Router, Next.js, Nuxt, Gatsby, SvelteKit, Angular
39
+
40
+ **Use `spa: false` for:** Traditional server-rendered (PHP, Django, Rails, WordPress)
41
+
42
+ ## CSP Headers
43
+
44
+ ```
45
+ script-src 'self' https://static.cloudflareinsights.com;
46
+ connect-src 'self' https://cloudflareinsights.com;
47
+ ```
48
+
49
+ ## GDPR Consent
50
+
51
+ ```typescript
52
+ // Load conditionally based on consent
53
+ if (localStorage.getItem('analytics-consent') === 'true') {
54
+ const script = document.createElement('script');
55
+ script.src = 'https://static.cloudflareinsights.com/beacon.min.js';
56
+ script.defer = true;
57
+ script.setAttribute('data-cf-beacon', '{"token": "YOUR_TOKEN", "spa": true}');
58
+ document.body.appendChild(script);
59
+ }
60
+ ```
@@ -0,0 +1,91 @@
1
+ # Web Analytics Patterns
2
+
3
+ ## Core Web Vitals Debugging
4
+
5
+ Dashboard → Core Web Vitals → Click metric → Debug View shows top 5 problematic elements.
6
+
7
+ ### LCP Fixes
8
+
9
+ ```html
10
+ <!-- Priority hints -->
11
+ <img src="hero.jpg" loading="eager" fetchpriority="high" />
12
+ <link rel="preload" as="image" href="/hero.jpg" fetchpriority="high" />
13
+ ```
14
+
15
+ ### CLS Fixes
16
+
17
+ ```css
18
+ /* Reserve space */
19
+ .ad-container { min-height: 250px; }
20
+ img { width: 400px; height: 300px; } /* Explicit dimensions */
21
+ ```
22
+
23
+ ### INP Fixes
24
+
25
+ ```typescript
26
+ // Debounce expensive operations
27
+ const handleInput = debounce(search, 300);
28
+
29
+ // Yield to main thread
30
+ await task(); await new Promise(r => setTimeout(r, 0)); await task2();
31
+
32
+ // Move to Web Worker for heavy computation
33
+ ```
34
+
35
+ | Metric | Good | Poor |
36
+ |--------|------|------|
37
+ | LCP | ≤2.5s | >4s |
38
+ | INP | ≤200ms | >500ms |
39
+ | CLS | ≤0.1 | >0.25 |
40
+
41
+ ## GDPR Consent
42
+
43
+ ```typescript
44
+ // Load beacon only after consent
45
+ const consent = localStorage.getItem('analytics-consent');
46
+ if (consent === 'accepted') {
47
+ const script = document.createElement('script');
48
+ script.src = 'https://static.cloudflareinsights.com/beacon.min.js';
49
+ script.setAttribute('data-cf-beacon', '{"token": "TOKEN", "spa": true}');
50
+ document.body.appendChild(script);
51
+ }
52
+ ```
53
+
54
+ Alternative: Dashboard → "Enable, excluding visitor data in the EU"
55
+
56
+ ## SPA Navigation
57
+
58
+ ```html
59
+ <!-- REQUIRED for React/Vue/etc routing -->
60
+ <script data-cf-beacon='{"token": "TOKEN", "spa": true}' ...></script>
61
+ ```
62
+
63
+ Without `spa: true`: only initial pageload tracked.
64
+
65
+ ## Staging/Production Separation
66
+
67
+ ```typescript
68
+ // Use env-specific tokens
69
+ const token = process.env.NEXT_PUBLIC_CF_ANALYTICS_TOKEN;
70
+ // .env.production: production token
71
+ // .env.staging: staging token (or empty to disable)
72
+ ```
73
+
74
+ ## Bot Filtering
75
+
76
+ Dashboard → Filters → "Exclude Bot Traffic"
77
+
78
+ Filters: Search crawlers, monitoring services, known bots.
79
+ Not filtered: Headless browsers (Playwright/Puppeteer).
80
+
81
+ ## Ad-Blocker Impact
82
+
83
+ ~25-40% of users may block `cloudflareinsights.com`. No official workaround.
84
+ Dashboard shows minimum baseline; use server logs for complete picture.
85
+
86
+ ## Limitations
87
+
88
+ - No UTM parameter tracking
89
+ - No webhooks/alerts/API
90
+ - No custom beacon domains
91
+ - Max 10 non-proxied sites
@@ -0,0 +1,78 @@
1
+ # Workerd Runtime
2
+
3
+ V8-based JS/Wasm runtime powering Cloudflare Workers. Use as app server, dev tool, or HTTP proxy.
4
+
5
+ ## ⚠️ IMPORTANT SECURITY NOTICE
6
+ **workerd is NOT a hardened sandbox.** Do not run untrusted code. It's designed for deploying YOUR code locally/self-hosted, not multi-tenant SaaS. Cloudflare production adds security layers not present in open-source workerd.
7
+
8
+ ## Decision Tree: When to Use What
9
+
10
+ **95% of users:** Use Wrangler
11
+ - Local development: `wrangler dev` (uses workerd internally)
12
+ - Deployment: `wrangler deploy` (deploys to Cloudflare)
13
+ - Types: `wrangler types` (generates TypeScript types)
14
+
15
+ **Use raw workerd directly only if:**
16
+ - Self-hosting Workers runtime in production
17
+ - Embedding runtime in C++ application
18
+ - Custom tooling/testing infrastructure
19
+ - Debugging workerd-specific behavior
20
+
21
+ **Never use workerd for:**
22
+ - Running untrusted/user-submitted code
23
+ - Multi-tenant isolation (not hardened)
24
+ - Production without additional security layers
25
+
26
+ ## Key Features
27
+ - **Standards-based**: Fetch API, Web Crypto, Streams, WebSocket
28
+ - **Nanoservices**: Service bindings with local call performance
29
+ - **Capability security**: Explicit bindings prevent SSRF
30
+ - **Backwards compatible**: Version = max compat date supported
31
+
32
+ ## Architecture
33
+ ```
34
+ Config (workerd.capnp)
35
+ ├── Services (workers/endpoints)
36
+ ├── Sockets (HTTP/HTTPS listeners)
37
+ └── Extensions (global capabilities)
38
+ ```
39
+
40
+ ## Quick Start
41
+ ```bash
42
+ workerd serve config.capnp
43
+ workerd compile config.capnp myConfig -o binary
44
+ workerd test config.capnp
45
+ ```
46
+
47
+ ## Platform Support & Beta Status
48
+
49
+ | Platform | Status | Notes |
50
+ |----------|--------|-------|
51
+ | Linux (x64) | Stable | Primary platform |
52
+ | macOS (x64/ARM) | Stable | Full support |
53
+ | Windows | Beta | Use WSL2 for best results |
54
+ | Linux (ARM64) | Experimental | Limited testing |
55
+
56
+ workerd is in **active development**. Breaking changes possible. Pin versions in production.
57
+
58
+ ## Core Concepts
59
+ - **Service**: Named endpoint (worker/network/disk/external)
60
+ - **Binding**: Capability-based resource access (KV/DO/R2/services)
61
+ - **Compatibility date**: Feature gate (always set!)
62
+ - **Modules**: ES modules (recommended) or service worker syntax
63
+
64
+ ## Reading Order (Progressive Disclosure)
65
+
66
+ **Start here:**
67
+ 1. This README (overview, decision tree)
68
+ 2. [patterns.md](./patterns.md) - Common workflows, framework examples
69
+
70
+ **When you need details:**
71
+ 3. [configuration.md](./configuration.md) - Config format, services, bindings
72
+ 4. [api.md](./api.md) - Runtime APIs, TypeScript types
73
+ 5. [gotchas.md](./gotchas.md) - Common errors, debugging
74
+
75
+ ## Related References
76
+ - [workers](../workers/) - Workers runtime API documentation
77
+ - [miniflare](../miniflare/) - Testing tool built on workerd
78
+ - [wrangler](../wrangler/) - CLI that uses workerd for local dev
@@ -0,0 +1,185 @@
1
+ # Workerd APIs
2
+
3
+ ## Worker Code (JS/TS)
4
+
5
+ ### ES Modules (Recommended)
6
+ ```javascript
7
+ export default {
8
+ async fetch(request, env, ctx) {
9
+ const value = await env.KV.get("key"); // Bindings in env
10
+ const response = await env.API.fetch(request); // Service binding
11
+ ctx.waitUntil(logRequest(request)); // Background task
12
+ return new Response("OK");
13
+ },
14
+ async adminApi(request, env, ctx) { /* Named entrypoint */ },
15
+ async queue(batch, env, ctx) { /* Queue consumer */ },
16
+ async scheduled(event, env, ctx) { /* Cron handler */ }
17
+ };
18
+ ```
19
+
20
+ ### TypeScript Types
21
+
22
+ **Generate from wrangler.toml (Recommended):**
23
+ ```bash
24
+ wrangler types # Output: worker-configuration.d.ts
25
+ ```
26
+
27
+ **Manual types:**
28
+ ```typescript
29
+ interface Env {
30
+ API: Fetcher;
31
+ CACHE: KVNamespace;
32
+ STORAGE: R2Bucket;
33
+ ROOMS: DurableObjectNamespace;
34
+ API_KEY: string;
35
+ }
36
+
37
+ export default {
38
+ async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
39
+ return new Response(await env.CACHE.get("key"));
40
+ }
41
+ };
42
+ ```
43
+
44
+ **Setup:**
45
+ ```bash
46
+ npm install -D @cloudflare/workers-types
47
+ ```
48
+
49
+ ```json
50
+ // tsconfig.json
51
+ {"compilerOptions": {"types": ["@cloudflare/workers-types"]}}
52
+ ```
53
+
54
+ ### Service Worker Syntax (Legacy)
55
+ ```javascript
56
+ addEventListener('fetch', event => {
57
+ event.respondWith(handleRequest(event.request));
58
+ });
59
+
60
+ async function handleRequest(request) {
61
+ const value = await KV.get("key"); // Bindings as globals
62
+ return new Response("OK");
63
+ }
64
+ ```
65
+
66
+ ### Durable Objects
67
+ ```javascript
68
+ export class Room {
69
+ constructor(state, env) { this.state = state; this.env = env; }
70
+
71
+ async fetch(request) {
72
+ const url = new URL(request.url);
73
+ if (url.pathname === "/increment") {
74
+ const value = (await this.state.storage.get("counter")) || 0;
75
+ await this.state.storage.put("counter", value + 1);
76
+ return new Response(String(value + 1));
77
+ }
78
+ return new Response("Not found", {status: 404});
79
+ }
80
+ }
81
+ ```
82
+
83
+ ### RPC Between Services
84
+ ```javascript
85
+ // Caller: env.AUTH.validateToken(token) returns structured data
86
+ const user = await env.AUTH.validateToken(request.headers.get("Authorization"));
87
+
88
+ // Callee: export methods that return data
89
+ export default {
90
+ async validateToken(token) { return {id: 123, name: "Alice"}; }
91
+ };
92
+ ```
93
+
94
+ ## Web Platform APIs
95
+
96
+ ### Fetch
97
+ - `fetch()`, `Request`, `Response`, `Headers`
98
+ - `AbortController`, `AbortSignal`
99
+
100
+ ### Streams
101
+ - `ReadableStream`, `WritableStream`, `TransformStream`
102
+ - Byte streams, BYOB readers
103
+
104
+ ### Web Crypto
105
+ - `crypto.subtle` (encrypt/decrypt/sign/verify)
106
+ - `crypto.randomUUID()`, `crypto.getRandomValues()`
107
+
108
+ ### Encoding
109
+ - `TextEncoder`, `TextDecoder`
110
+ - `atob()`, `btoa()`
111
+
112
+ ### Web Standards
113
+ - `URL`, `URLSearchParams`
114
+ - `Blob`, `File`, `FormData`
115
+ - `WebSocket`
116
+
117
+ ### Server-Sent Events (EventSource)
118
+ ```javascript
119
+ // Server-side SSE
120
+ const { readable, writable } = new TransformStream();
121
+ const writer = writable.getWriter();
122
+ writer.write(new TextEncoder().encode('data: Hello\n\n'));
123
+ return new Response(readable, {headers: {'Content-Type': 'text/event-stream'}});
124
+ ```
125
+
126
+ ### HTMLRewriter (HTML Parsing/Transformation)
127
+ ```javascript
128
+ const response = await fetch('https://example.com');
129
+ return new HTMLRewriter()
130
+ .on('a[href]', {
131
+ element(el) {
132
+ el.setAttribute('href', `/proxy?url=${encodeURIComponent(el.getAttribute('href'))}`);
133
+ }
134
+ })
135
+ .on('script', { element(el) { el.remove(); } })
136
+ .transform(response);
137
+ ```
138
+
139
+ ### TCP Sockets (Experimental)
140
+ ```javascript
141
+ const socket = await connect({ hostname: 'example.com', port: 80 });
142
+ const writer = socket.writable.getWriter();
143
+ await writer.write(new TextEncoder().encode('GET / HTTP/1.1\r\n\r\n'));
144
+ const reader = socket.readable.getReader();
145
+ const { value } = await reader.read();
146
+ return new Response(value);
147
+ ```
148
+
149
+ ### Performance
150
+ - `performance.now()`, `performance.timeOrigin`
151
+ - `setTimeout()`, `setInterval()`, `queueMicrotask()`
152
+
153
+ ### Console
154
+ - `console.log()`, `console.error()`, `console.warn()`
155
+
156
+ ### Node.js Compat (`nodejs_compat` flag)
157
+ ```javascript
158
+ import { Buffer } from 'node:buffer';
159
+ import { randomBytes } from 'node:crypto';
160
+
161
+ const buf = Buffer.from('Hello');
162
+ const random = randomBytes(16);
163
+ ```
164
+
165
+ **Available:** `node:buffer`, `node:crypto`, `node:stream`, `node:util`, `node:events`, `node:assert`, `node:path`, `node:querystring`, `node:url`
166
+ **NOT available:** `node:fs`, `node:http`, `node:net`, `node:child_process`
167
+
168
+ ## CLI Commands
169
+
170
+ ```bash
171
+ workerd serve config.capnp [constantName] # Start server
172
+ workerd serve config.capnp --socket-addr http=*:3000 --verbose
173
+ workerd compile config.capnp constantName -o binary # Compile to binary
174
+ workerd test config.capnp [--test-only=test.js] # Run tests
175
+ ```
176
+
177
+ ## Wrangler Integration
178
+
179
+ Use Wrangler for development:
180
+ ```bash
181
+ wrangler dev # Uses workerd internally
182
+ wrangler types # Generate TypeScript types from wrangler.toml
183
+ ```
184
+
185
+ See [patterns.md](./patterns.md) for usage examples, [configuration.md](./configuration.md) for config details.
@@ -0,0 +1,183 @@
1
+ # Workerd Configuration
2
+
3
+ ## Basic Structure
4
+ ```capnp
5
+ using Workerd = import "/workerd/workerd.capnp";
6
+
7
+ const config :Workerd.Config = (
8
+ services = [(name = "main", worker = .mainWorker)],
9
+ sockets = [(name = "http", address = "*:8080", http = (), service = "main")]
10
+ );
11
+
12
+ const mainWorker :Workerd.Worker = (
13
+ modules = [(name = "index.js", esModule = embed "src/index.js")],
14
+ compatibilityDate = "2024-01-15",
15
+ bindings = [...]
16
+ );
17
+ ```
18
+
19
+ ## Services
20
+ **Worker**: Run JS/Wasm code
21
+ ```capnp
22
+ (name = "api", worker = (
23
+ modules = [(name = "index.js", esModule = embed "index.js")],
24
+ compatibilityDate = "2024-01-15",
25
+ bindings = [...]
26
+ ))
27
+ ```
28
+
29
+ **Network**: Internet access
30
+ ```capnp
31
+ (name = "internet", network = (allow = ["public"], tlsOptions = (trustBrowserCas = true)))
32
+ ```
33
+
34
+ **External**: Reverse proxy
35
+ ```capnp
36
+ (name = "backend", external = (address = "api.com:443", http = (style = tls)))
37
+ ```
38
+
39
+ **Disk**: Static files
40
+ ```capnp
41
+ (name = "assets", disk = (path = "/var/www", writable = false))
42
+ ```
43
+
44
+ ## Sockets
45
+ ```capnp
46
+ (name = "http", address = "*:8080", http = (), service = "main")
47
+ (name = "https", address = "*:443", https = (options = (), tlsOptions = (keypair = (...))), service = "main")
48
+ (name = "app", address = "unix:/tmp/app.sock", http = (), service = "main")
49
+ ```
50
+
51
+ ## Worker Formats
52
+ ```capnp
53
+ # ES Modules (recommended)
54
+ modules = [(name = "index.js", esModule = embed "src/index.js"), (name = "wasm.wasm", wasm = embed "build/module.wasm")]
55
+
56
+ # Service Worker (legacy)
57
+ serviceWorkerScript = embed "worker.js"
58
+
59
+ # CommonJS
60
+ (name = "legacy.js", commonJsModule = embed "legacy.js", namedExports = ["foo"])
61
+ ```
62
+
63
+ ## Bindings
64
+ Bindings expose resources to workers. ES modules: `env.BINDING`, Service workers: globals.
65
+
66
+ ### Primitive Types
67
+ ```capnp
68
+ (name = "API_KEY", text = "secret") # String
69
+ (name = "CONFIG", json = '{"key":"val"}') # Parsed JSON
70
+ (name = "DATA", data = embed "data.bin") # ArrayBuffer
71
+ (name = "DATABASE_URL", fromEnvironment = "DB_URL") # System env var
72
+ ```
73
+
74
+ ### Service Binding
75
+ ```capnp
76
+ (name = "AUTH", service = "auth-worker") # Basic
77
+ (name = "API", service = (
78
+ name = "backend",
79
+ entrypoint = "adminApi", # Named export
80
+ props = (json = '{"role":"admin"}') # ctx.props
81
+ ))
82
+ ```
83
+
84
+ ### Storage
85
+ ```capnp
86
+ (name = "CACHE", kvNamespace = "kv-service") # KV
87
+ (name = "STORAGE", r2Bucket = "r2-service") # R2
88
+ (name = "ROOMS", durableObjectNamespace = (
89
+ serviceName = "room-service",
90
+ className = "Room"
91
+ ))
92
+ (name = "FAST", memoryCache = (
93
+ id = "cache-id",
94
+ limits = (maxKeys = 1000, maxValueSize = 1048576)
95
+ ))
96
+ ```
97
+
98
+ ### Other
99
+ ```capnp
100
+ (name = "TASKS", queue = "queue-service")
101
+ (name = "ANALYTICS", analyticsEngine = "analytics")
102
+ (name = "LOADER", workerLoader = (id = "dynamic"))
103
+ (name = "KEY", cryptoKey = (format = raw, algorithm = (name = "HMAC", hash = "SHA-256"), keyData = embed "key.bin", usages = [sign, verify], extractable = false))
104
+ (name = "TRACED", wrapped = (moduleName = "tracing", entrypoint = "makeTracer", innerBindings = [(name = "backend", service = "backend")]))
105
+ ```
106
+
107
+ ## Compatibility
108
+ ```capnp
109
+ compatibilityDate = "2024-01-15" # Always set!
110
+ compatibilityFlags = ["nodejs_compat", "streams_enable_constructors"]
111
+ ```
112
+
113
+ Version = max compat date. Update carefully after testing.
114
+
115
+ ## Parameter Bindings (Inheritance)
116
+ ```capnp
117
+ const base :Workerd.Worker = (
118
+ modules = [...], compatibilityDate = "2024-01-15",
119
+ bindings = [(name = "API_URL", parameter = (type = text)), (name = "DB", parameter = (type = service))]
120
+ );
121
+
122
+ const derived :Workerd.Worker = (
123
+ inherit = "base-service",
124
+ bindings = [(name = "API_URL", text = "https://api.com"), (name = "DB", service = "postgres")]
125
+ );
126
+ ```
127
+
128
+ ## Durable Objects Config
129
+ ```capnp
130
+ const worker :Workerd.Worker = (
131
+ modules = [...],
132
+ compatibilityDate = "2024-01-15",
133
+ bindings = [(name = "ROOMS", durableObjectNamespace = "Room")],
134
+ durableObjectNamespaces = [(className = "Room", uniqueKey = "v1")],
135
+ durableObjectStorage = (localDisk = "/var/do")
136
+ );
137
+ ```
138
+
139
+ ## Remote Bindings (Development)
140
+
141
+ Connect local workerd to production Cloudflare resources:
142
+
143
+ ```capnp
144
+ bindings = [
145
+ # Remote KV (requires API token)
146
+ (name = "PROD_KV", kvNamespace = (
147
+ remote = (
148
+ accountId = "your-account-id",
149
+ namespaceId = "your-namespace-id",
150
+ apiToken = .envVar("CF_API_TOKEN")
151
+ )
152
+ )),
153
+
154
+ # Remote R2
155
+ (name = "PROD_R2", r2Bucket = (
156
+ remote = (
157
+ accountId = "your-account-id",
158
+ bucketName = "my-bucket",
159
+ apiToken = .envVar("CF_API_TOKEN")
160
+ )
161
+ )),
162
+
163
+ # Remote Durable Object
164
+ (name = "PROD_DO", durableObjectNamespace = (
165
+ remote = (
166
+ accountId = "your-account-id",
167
+ scriptName = "my-worker",
168
+ className = "MyDO",
169
+ apiToken = .envVar("CF_API_TOKEN")
170
+ )
171
+ ))
172
+ ]
173
+ ```
174
+
175
+ **Note:** Remote bindings require network access and valid Cloudflare API credentials.
176
+
177
+ ## Logging & Debugging
178
+ ```capnp
179
+ logging = (structuredLogging = true, stdoutPrefix = "OUT: ", stderrPrefix = "ERR: ")
180
+ v8Flags = ["--expose-gc", "--max-old-space-size=2048"] # ⚠️ Unsupported in production
181
+ ```
182
+
183
+ See [patterns.md](./patterns.md) for multi-service examples, [gotchas.md](./gotchas.md) for config errors.