memory-journal-mcp 7.7.0 → 8.0.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 (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +7 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,215 @@
1
+ # Patterns & Use Cases
2
+
3
+ ## AI Chat w/Tools
4
+
5
+ **Server (AIChatAgent):**
6
+
7
+ ```ts
8
+ import { AIChatAgent } from 'agents'
9
+ import { openai } from '@ai-sdk/openai'
10
+ import { tool } from 'ai'
11
+ import { z } from 'zod'
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
18
+ tools: {
19
+ getWeather: tool({
20
+ description: 'Get current weather',
21
+ parameters: z.object({ city: z.string() }),
22
+ execute: async ({ city }) => `Weather in ${city}: Sunny, 72°F`,
23
+ }),
24
+ searchDocs: tool({
25
+ description: 'Search documentation',
26
+ parameters: z.object({ query: z.string() }),
27
+ execute: async ({ query }) =>
28
+ JSON.stringify(
29
+ this.sql<{
30
+ title
31
+ content
32
+ }>`SELECT title, content FROM docs WHERE content LIKE ${'%' + query + '%'}`
33
+ ),
34
+ }),
35
+ },
36
+ onFinish,
37
+ })
38
+ }
39
+ }
40
+ ```
41
+
42
+ **Client (React):**
43
+
44
+ ```tsx
45
+ import { useAgent } from 'agents/react'
46
+ import { useAgentChat } from 'agents/ai-react'
47
+
48
+ function ChatUI() {
49
+ const agent = useAgent({ agent: 'ChatAgent' })
50
+ const { messages, input, handleInputChange, handleSubmit, isLoading } = useAgentChat({ agent })
51
+
52
+ return (
53
+ <div>
54
+ {messages.map((m) => (
55
+ <div key={m.id}>
56
+ {m.role}: {m.content}
57
+ </div>
58
+ ))}
59
+ <form onSubmit={handleSubmit}>
60
+ <input value={input} onChange={handleInputChange} disabled={isLoading} />
61
+ <button disabled={isLoading}>Send</button>
62
+ </form>
63
+ </div>
64
+ )
65
+ }
66
+ ```
67
+
68
+ ## Human-in-the-Loop (Client Tools)
69
+
70
+ Server defines tool, client executes:
71
+
72
+ ```ts
73
+ // Server
74
+ export class ChatAgent extends AIChatAgent<Env> {
75
+ async onChatMessage(onFinish) {
76
+ return this.streamText({
77
+ model: openai('gpt-4'),
78
+ messages: this.messages,
79
+ tools: {
80
+ confirmAction: tool({
81
+ description: 'Ask user to confirm',
82
+ parameters: z.object({ action: z.string() }),
83
+ execute: 'client', // Client-side execution
84
+ }),
85
+ },
86
+ onFinish,
87
+ })
88
+ }
89
+ }
90
+
91
+ // Client
92
+ const { messages } = useAgentChat({
93
+ agent,
94
+ onToolCall: async (toolCall) => {
95
+ if (toolCall.toolName === 'confirmAction') {
96
+ return { confirmed: window.confirm(`Confirm: ${toolCall.args.action}?`) }
97
+ }
98
+ },
99
+ })
100
+ ```
101
+
102
+ ## Task Queue & Scheduled Processing
103
+
104
+ ```ts
105
+ export class TaskAgent extends Agent<Env> {
106
+ onStart() {
107
+ this.schedule('*/5 * * * *', 'processQueue', {}) // Every 5 min
108
+ this.schedule('0 0 * * *', 'dailyCleanup', {}) // Daily
109
+ }
110
+
111
+ async onRequest(req: Request) {
112
+ await this.queue('processVideo', { videoId: (await req.json()).videoId })
113
+ return Response.json({ queued: true })
114
+ }
115
+
116
+ async processQueue() {
117
+ const tasks = await this.dequeue(10)
118
+ for (const task of tasks) {
119
+ if (task.name === 'processVideo') await this.processVideo(task.data.videoId)
120
+ }
121
+ }
122
+
123
+ async dailyCleanup() {
124
+ this.sql`DELETE FROM logs WHERE created_at < ${Date.now() - 86400000}`
125
+ }
126
+ }
127
+ ```
128
+
129
+ ## Manual WebSocket Chat
130
+
131
+ Custom protocols (non-AI):
132
+
133
+ ```ts
134
+ export class ChatAgent extends Agent<Env> {
135
+ async onConnect(conn: Connection, ctx: ConnectionContext) {
136
+ conn.accept()
137
+ conn.setState({ userId: ctx.request.headers.get('X-User-ID') || 'anon' })
138
+ conn.send(JSON.stringify({ type: 'history', messages: this.state.messages }))
139
+ }
140
+
141
+ async onMessage(conn: Connection, msg: WSMessage) {
142
+ const newMsg = {
143
+ userId: conn.state.userId,
144
+ text: JSON.parse(msg as string).text,
145
+ timestamp: Date.now(),
146
+ }
147
+ this.setState({ messages: [...this.state.messages, newMsg] })
148
+ this.connections.forEach((c) => c.send(JSON.stringify(newMsg)))
149
+ }
150
+ }
151
+ ```
152
+
153
+ ## Email Processing w/AI
154
+
155
+ ```ts
156
+ export class EmailAgent extends Agent<Env> {
157
+ async onEmail(email: AgentEmail) {
158
+ const [text, from, subject] = [
159
+ await email.text(),
160
+ email.from,
161
+ email.headers.get('subject') || '',
162
+ ]
163
+ this.sql`INSERT INTO emails (from_addr, subject, body) VALUES (${from}, ${subject}, ${text})`
164
+
165
+ const { text: summary } = await generateText({
166
+ model: openai('gpt-4o-mini'),
167
+ prompt: `Summarize: ${subject}\n\n${text}`,
168
+ })
169
+
170
+ this.connections.forEach((c) => c.send(JSON.stringify({ type: 'new_email', from, summary })))
171
+ if (summary.includes('urgent')) await this.schedule(0, 'sendAutoReply', { to: from })
172
+ }
173
+ }
174
+ ```
175
+
176
+ ## Real-time Collaboration
177
+
178
+ ```ts
179
+ export class GameAgent extends Agent<Env> {
180
+ initialState = { players: [], gameStarted: false }
181
+
182
+ async onConnect(conn: Connection, ctx: ConnectionContext) {
183
+ conn.accept()
184
+ const playerId = ctx.request.headers.get('X-Player-ID') || crypto.randomUUID()
185
+ conn.setState({ playerId })
186
+
187
+ const newPlayer = { id: playerId, score: 0 }
188
+ this.setState({ ...this.state, players: [...this.state.players, newPlayer] })
189
+ this.connections.forEach((c) =>
190
+ c.send(JSON.stringify({ type: 'player_joined', player: newPlayer }))
191
+ )
192
+ }
193
+
194
+ async onMessage(conn: Connection, msg: WSMessage) {
195
+ const m = JSON.parse(msg as string)
196
+
197
+ if (m.type === 'move') {
198
+ this.setState({
199
+ ...this.state,
200
+ players: this.state.players.map((p) =>
201
+ p.id === conn.state.playerId ? { ...p, score: p.score + m.points } : p
202
+ ),
203
+ })
204
+ this.connections.forEach((c) =>
205
+ c.send(JSON.stringify({ type: 'player_moved', playerId: conn.state.playerId }))
206
+ )
207
+ }
208
+
209
+ if (m.type === 'start' && this.state.players.length >= 2) {
210
+ this.setState({ ...this.state, gameStarted: true })
211
+ this.connections.forEach((c) => c.send(JSON.stringify({ type: 'game_started' })))
212
+ }
213
+ }
214
+ }
215
+ ```
@@ -0,0 +1,176 @@
1
+ # Cloudflare AI Gateway
2
+
3
+ Expert guidance for implementing Cloudflare AI Gateway - a universal gateway for AI model providers with analytics, caching, rate limiting, and routing capabilities.
4
+
5
+ ## When to Use This Reference
6
+
7
+ - Setting up AI Gateway for any AI provider (OpenAI, Anthropic, Workers AI, etc.)
8
+ - Implementing caching, rate limiting, or request retry/fallback
9
+ - Configuring dynamic routing with A/B testing or model fallbacks
10
+ - Managing provider API keys securely with BYOK
11
+ - Adding security features (guardrails, DLP)
12
+ - Setting up observability with logging and custom metadata
13
+ - Debugging AI Gateway requests or optimizing configurations
14
+
15
+ ## Quick Start
16
+
17
+ **What's your setup?**
18
+
19
+ - **Using Vercel AI SDK** → Pattern 1 (recommended) - see [sdk-integration.md](./sdk-integration.md)
20
+ - **Using OpenAI SDK** → Pattern 2 - see [sdk-integration.md](./sdk-integration.md)
21
+ - **Cloudflare Worker + Workers AI** → Pattern 3 - see [sdk-integration.md](./sdk-integration.md)
22
+ - **Direct HTTP (any language)** → Pattern 4 - see [configuration.md](./configuration.md)
23
+ - **Framework (LangChain, etc.)** → See [sdk-integration.md](./sdk-integration.md)
24
+
25
+ ## Pattern 1: Vercel AI SDK (Recommended)
26
+
27
+ Most modern pattern using official `ai-gateway-provider` package with automatic fallbacks.
28
+
29
+ ```typescript
30
+ import { createAiGateway } from 'ai-gateway-provider'
31
+ import { createOpenAI } from '@ai-sdk/openai'
32
+ import { generateText } from 'ai'
33
+
34
+ const gateway = createAiGateway({
35
+ accountId: process.env.CF_ACCOUNT_ID,
36
+ gateway: process.env.CF_GATEWAY_ID,
37
+ })
38
+
39
+ const openai = createOpenAI({
40
+ apiKey: process.env.OPENAI_API_KEY,
41
+ })
42
+
43
+ // Single model
44
+ const { text } = await generateText({
45
+ model: gateway(openai('gpt-4o')),
46
+ prompt: 'Hello',
47
+ })
48
+
49
+ // Automatic fallback array
50
+ const { text } = await generateText({
51
+ model: gateway([
52
+ openai('gpt-4o'), // Try first
53
+ anthropic('claude-sonnet-4-5'), // Fallback
54
+ ]),
55
+ prompt: 'Hello',
56
+ })
57
+ ```
58
+
59
+ **Install:** `npm install ai-gateway-provider ai @ai-sdk/openai @ai-sdk/anthropic`
60
+
61
+ ## Pattern 2: OpenAI SDK
62
+
63
+ Drop-in replacement for OpenAI API with multi-provider support.
64
+
65
+ ```typescript
66
+ import OpenAI from 'openai'
67
+
68
+ const client = new OpenAI({
69
+ apiKey: process.env.OPENAI_API_KEY,
70
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/compat`,
71
+ defaultHeaders: {
72
+ 'cf-aig-authorization': `Bearer ${cfToken}`, // For authenticated gateways
73
+ },
74
+ })
75
+
76
+ // Switch providers by changing model format: {provider}/{model}
77
+ const response = await client.chat.completions.create({
78
+ model: 'openai/gpt-4o', // or 'anthropic/claude-sonnet-4-5'
79
+ messages: [{ role: 'user', content: 'Hello!' }],
80
+ })
81
+ ```
82
+
83
+ ## Pattern 3: Workers AI Binding
84
+
85
+ For Cloudflare Workers using Workers AI.
86
+
87
+ ```typescript
88
+ export default {
89
+ async fetch(request, env, ctx) {
90
+ const response = await env.AI.run(
91
+ '@cf/meta/llama-3-8b-instruct',
92
+ { messages: [{ role: 'user', content: 'Hello!' }] },
93
+ {
94
+ gateway: {
95
+ id: 'my-gateway',
96
+ metadata: { userId: '123', team: 'engineering' },
97
+ },
98
+ }
99
+ )
100
+
101
+ return Response.json(response)
102
+ },
103
+ }
104
+ ```
105
+
106
+ ## Headers Quick Reference
107
+
108
+ | Header | Purpose | Example | Notes |
109
+ | ---------------------- | ---------------- | ---------------- | -------------------------------------- |
110
+ | `cf-aig-authorization` | Gateway auth | `Bearer {token}` | Required for authenticated gateways |
111
+ | `cf-aig-metadata` | Tracking | `{"userId":"x"}` | Max 5 entries, flat structure |
112
+ | `cf-aig-cache-ttl` | Cache duration | `3600` | Seconds, min 60, max 2592000 (30 days) |
113
+ | `cf-aig-skip-cache` | Bypass cache | `true` | - |
114
+ | `cf-aig-cache-key` | Custom cache key | `my-key` | Must be unique per response |
115
+ | `cf-aig-collect-log` | Skip logging | `false` | Default: true |
116
+ | `cf-aig-cache-status` | Cache hit/miss | Response only | `HIT` or `MISS` |
117
+
118
+ ## In This Reference
119
+
120
+ | File | Purpose |
121
+ | ------------------------------------------ | ------------------------------------------------------------ |
122
+ | [sdk-integration.md](./sdk-integration.md) | Vercel AI SDK, OpenAI SDK, Workers binding patterns |
123
+ | [configuration.md](./configuration.md) | Dashboard setup, wrangler, API tokens |
124
+ | [features.md](./features.md) | Caching, rate limits, guardrails, DLP, BYOK, unified billing |
125
+ | [dynamic-routing.md](./dynamic-routing.md) | Fallbacks, A/B testing, conditional routing |
126
+ | [troubleshooting.md](./troubleshooting.md) | Debugging, errors, observability, gotchas |
127
+
128
+ ## Reading Order
129
+
130
+ | Task | Files |
131
+ | ---------------- | --------------------------------------------------- |
132
+ | First-time setup | README + [configuration.md](./configuration.md) |
133
+ | SDK integration | README + [sdk-integration.md](./sdk-integration.md) |
134
+ | Enable caching | README + [features.md](./features.md) |
135
+ | Setup fallbacks | README + [dynamic-routing.md](./dynamic-routing.md) |
136
+ | Debug errors | README + [troubleshooting.md](./troubleshooting.md) |
137
+
138
+ ## Architecture
139
+
140
+ AI Gateway acts as a proxy between your application and AI providers:
141
+
142
+ ```
143
+ Your App → AI Gateway → AI Provider (OpenAI, Anthropic, etc.)
144
+
145
+ Analytics, Caching, Rate Limiting, Logging
146
+ ```
147
+
148
+ **Key URL patterns:**
149
+
150
+ - Unified API (OpenAI-compatible): `https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/compat/chat/completions`
151
+ - Provider-specific: `https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/{provider}/{endpoint}`
152
+ - Dynamic routes: Use route name instead of model: `dynamic/{route-name}`
153
+
154
+ ## Gateway Types
155
+
156
+ 1. **Unauthenticated Gateway**: Open access (not recommended for production)
157
+ 2. **Authenticated Gateway**: Requires `cf-aig-authorization` header with Cloudflare API token (recommended)
158
+
159
+ ## Provider Authentication Options
160
+
161
+ 1. **Unified Billing**: Use AI Gateway billing to pay for inference (keyless mode - no provider API key needed)
162
+ 2. **BYOK (Store Keys)**: Store provider API keys in Cloudflare dashboard
163
+ 3. **Request Headers**: Include provider API key in each request
164
+
165
+ ## Related Skills
166
+
167
+ - [Workers AI](../workers-ai/README.md) - For `env.AI.run()` details
168
+ - [Agents SDK](../agents-sdk/README.md) - For stateful AI patterns
169
+ - [Vectorize](../vectorize/README.md) - For RAG patterns with embeddings
170
+
171
+ ## Resources
172
+
173
+ - [Official Docs](https://developers.cloudflare.com/ai-gateway/)
174
+ - [API Reference](https://developers.cloudflare.com/api/resources/ai_gateway/)
175
+ - [Provider Guides](https://developers.cloudflare.com/ai-gateway/usage/providers/)
176
+ - [Discord Community](https://discord.cloudflare.com)
@@ -0,0 +1,117 @@
1
+ # Configuration & Setup
2
+
3
+ ## Creating a Gateway
4
+
5
+ ### Dashboard
6
+
7
+ AI > AI Gateway > Create Gateway > Configure (auth, caching, rate limiting, logging)
8
+
9
+ ### API
10
+
11
+ ```bash
12
+ curl -X POST https://api.cloudflare.com/client/v4/accounts/{account_id}/ai-gateway/gateways \
13
+ -H "Authorization: Bearer $CF_API_TOKEN" -H "Content-Type: application/json" \
14
+ -d '{"id":"my-gateway","cache_ttl":3600,"rate_limiting_interval":60,"rate_limiting_limit":100,"collect_logs":true}'
15
+ ```
16
+
17
+ **Naming:** lowercase alphanumeric + hyphens (e.g., `prod-api`, `dev-chat`)
18
+
19
+ ## Wrangler Integration
20
+
21
+ ```toml
22
+ [ai]
23
+ binding = "AI"
24
+
25
+ [[ai.gateway]]
26
+ id = "my-gateway"
27
+ ```
28
+
29
+ ```bash
30
+ wrangler secret put CF_API_TOKEN
31
+ wrangler secret put OPENAI_API_KEY # If not using BYOK
32
+ ```
33
+
34
+ ## Authentication
35
+
36
+ ### Gateway Auth (protects gateway access)
37
+
38
+ ```typescript
39
+ const client = new OpenAI({
40
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`,
41
+ defaultHeaders: { 'cf-aig-authorization': `Bearer ${cfToken}` },
42
+ })
43
+ ```
44
+
45
+ ### Provider Auth Options
46
+
47
+ **1. Unified Billing (keyless)** - pay through Cloudflare, no provider key:
48
+
49
+ ```typescript
50
+ const client = new OpenAI({
51
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`,
52
+ defaultHeaders: { 'cf-aig-authorization': `Bearer ${cfToken}` },
53
+ })
54
+ ```
55
+
56
+ Supports: OpenAI, Anthropic, Google AI Studio
57
+
58
+ **2. BYOK** - store keys in dashboard (Provider Keys > Add), no key in code
59
+
60
+ **3. Request Headers** - pass provider key per request:
61
+
62
+ ```typescript
63
+ const client = new OpenAI({
64
+ apiKey: process.env.OPENAI_API_KEY,
65
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`,
66
+ defaultHeaders: { 'cf-aig-authorization': `Bearer ${cfToken}` },
67
+ })
68
+ ```
69
+
70
+ ## API Token Permissions
71
+
72
+ - **Gateway management:** AI Gateway - Read + Edit
73
+ - **Gateway access:** AI Gateway - Read (minimum)
74
+
75
+ ## Gateway Management API
76
+
77
+ ```bash
78
+ # List
79
+ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/ai-gateway/gateways \
80
+ -H "Authorization: Bearer $CF_API_TOKEN"
81
+
82
+ # Get
83
+ curl .../gateways/{gateway_id}
84
+
85
+ # Update
86
+ curl -X PUT .../gateways/{gateway_id} \
87
+ -d '{"cache_ttl":7200,"rate_limiting_limit":200}'
88
+
89
+ # Delete
90
+ curl -X DELETE .../gateways/{gateway_id}
91
+ ```
92
+
93
+ ## Getting IDs
94
+
95
+ - **Account ID:** Dashboard > Overview > Copy
96
+ - **Gateway ID:** AI Gateway > Gateway name column
97
+
98
+ ## Python Example
99
+
100
+ ```python
101
+ from openai import OpenAI
102
+ import os
103
+
104
+ client = OpenAI(
105
+ api_key=os.environ.get("OPENAI_API_KEY"),
106
+ base_url=f"https://gateway.ai.cloudflare.com/v1/{os.environ['CF_ACCOUNT_ID']}/{os.environ['GATEWAY_ID']}/openai",
107
+ default_headers={"cf-aig-authorization": f"Bearer {os.environ['CF_API_TOKEN']}"}
108
+ )
109
+ ```
110
+
111
+ ## Best Practices
112
+
113
+ 1. **Always authenticate gateways in production**
114
+ 2. **Use BYOK or unified billing** - secrets out of code
115
+ 3. **Environment-specific gateways** - separate dev/staging/prod
116
+ 4. **Set rate limits** - prevent runaway costs
117
+ 5. **Enable logging** - track usage, debug issues
@@ -0,0 +1,88 @@
1
+ # Dynamic Routing
2
+
3
+ Configure complex routing in dashboard without code changes. Use route names instead of model names.
4
+
5
+ ## Usage
6
+
7
+ ```typescript
8
+ const response = await client.chat.completions.create({
9
+ model: 'dynamic/smart-chat', // Route name from dashboard
10
+ messages: [{ role: 'user', content: 'Hello!' }],
11
+ })
12
+ ```
13
+
14
+ ## Node Types
15
+
16
+ | Node | Purpose | Use Case |
17
+ | ---------------- | ------------------ | ------------------------------- |
18
+ | **Conditional** | Branch on metadata | Paid vs free users, geo routing |
19
+ | **Percentage** | A/B split traffic | Model testing, gradual rollouts |
20
+ | **Rate Limit** | Enforce quotas | Per-user/team limits |
21
+ | **Budget Limit** | Cost quotas | Per-user spending caps |
22
+ | **Model** | Call provider | Final destination |
23
+
24
+ ## Metadata
25
+
26
+ Pass via header (max 5 entries, flat only):
27
+
28
+ ```typescript
29
+ headers: {
30
+ 'cf-aig-metadata': JSON.stringify({
31
+ userId: 'user-123',
32
+ tier: 'pro',
33
+ region: 'us-east'
34
+ })
35
+ }
36
+ ```
37
+
38
+ ## Common Patterns
39
+
40
+ **Multi-model fallback:**
41
+
42
+ ```
43
+ Start → GPT-4 → On error: Claude → On error: Llama
44
+ ```
45
+
46
+ **Tiered access:**
47
+
48
+ ```
49
+ Conditional: tier == 'enterprise' → GPT-4 (no limit)
50
+ Conditional: tier == 'pro' → Rate Limit 1000/hr → GPT-4o
51
+ Conditional: tier == 'free' → Rate Limit 10/hr → GPT-4o-mini
52
+ ```
53
+
54
+ **Gradual rollout:**
55
+
56
+ ```
57
+ Percentage: 10% → New model, 90% → Old model
58
+ ```
59
+
60
+ **Cost-based fallback:**
61
+
62
+ ```
63
+ Budget Limit: $100/day per teamId
64
+ < 80%: GPT-4
65
+ >= 80%: GPT-4o-mini
66
+ >= 100%: Error
67
+ ```
68
+
69
+ ## Version Management
70
+
71
+ - Save changes as new version
72
+ - Test with `model: 'dynamic/route@v2'`
73
+ - Roll back by deploying previous version
74
+
75
+ ## Monitoring
76
+
77
+ Dashboard → Gateway → Dynamic Routes:
78
+
79
+ - Request count per path
80
+ - Success/error rates
81
+ - Latency/cost by path
82
+
83
+ ## Limitations
84
+
85
+ - Max 5 metadata entries
86
+ - Values: string/number/boolean/null only
87
+ - No nested objects
88
+ - Route names: alphanumeric + hyphens
@@ -0,0 +1,96 @@
1
+ # Features & Capabilities
2
+
3
+ ## Caching
4
+
5
+ Dashboard: Settings → Cache Responses → Enable
6
+
7
+ ```typescript
8
+ // Custom TTL (1 hour)
9
+ headers: { 'cf-aig-cache-ttl': '3600' }
10
+
11
+ // Skip cache
12
+ headers: { 'cf-aig-skip-cache': 'true' }
13
+
14
+ // Custom cache key
15
+ headers: { 'cf-aig-cache-key': 'greeting-en' }
16
+ ```
17
+
18
+ **Limits:** TTL 60s - 30 days. **Does NOT work with streaming.**
19
+
20
+ ## Rate Limiting
21
+
22
+ Dashboard: Settings → Rate-limiting → Enable
23
+
24
+ - **Fixed window:** Resets at intervals
25
+ - **Sliding window:** Rolling window (more accurate)
26
+ - Returns `429` when exceeded
27
+
28
+ ## Guardrails
29
+
30
+ Dashboard: Settings → Guardrails → Enable
31
+
32
+ Filter prompts/responses for inappropriate content. Actions: Flag (log) or Block (reject).
33
+
34
+ ## Data Loss Prevention (DLP)
35
+
36
+ Dashboard: Settings → DLP → Enable
37
+
38
+ Detect PII (emails, SSNs, credit cards). Actions: Flag, Block, or Redact.
39
+
40
+ ## Billing Modes
41
+
42
+ | Mode | Description | Setup |
43
+ | ------------------- | ---------------------------------------- | -------------------------------------- |
44
+ | **Unified Billing** | Pay through Cloudflare, no provider keys | Use `cf-aig-authorization` header only |
45
+ | **BYOK** | Store provider keys in dashboard | Add keys in Provider Keys section |
46
+ | **Pass-through** | Send provider key with each request | Include provider's auth header |
47
+
48
+ ## Zero Data Retention
49
+
50
+ Dashboard: Settings → Privacy → Zero Data Retention
51
+
52
+ No prompts/responses stored. Request counts and costs still tracked.
53
+
54
+ ## Logging
55
+
56
+ Dashboard: Settings → Logs → Enable (up to 10M logs)
57
+
58
+ Each entry: prompt, response, provider, model, tokens, cost, duration, cache status, metadata.
59
+
60
+ ```typescript
61
+ // Skip logging for request
62
+ headers: { 'cf-aig-collect-log': 'false' }
63
+ ```
64
+
65
+ **Export:** Use Logpush to S3, GCS, Datadog, Splunk, etc.
66
+
67
+ ## Custom Cost Tracking
68
+
69
+ For models not in Cloudflare's pricing database:
70
+
71
+ Dashboard: Gateway → Settings → Custom Costs
72
+
73
+ Or via API: set `model`, `input_cost`, `output_cost`.
74
+
75
+ ## Supported Providers (22+)
76
+
77
+ | Provider | Unified API | Notes |
78
+ | ---------------------------------------------------- | ----------------------------------- | ---------------- |
79
+ | OpenAI | `openai/gpt-4o` | Full support |
80
+ | Anthropic | `anthropic/claude-sonnet-4-5` | Full support |
81
+ | Google AI | `google-ai-studio/gemini-2.0-flash` | Full support |
82
+ | Workers AI | `workersai/@cf/meta/llama-3` | Native |
83
+ | Azure OpenAI | `azure-openai/*` | Deployment names |
84
+ | AWS Bedrock | Provider endpoint only | `/bedrock/*` |
85
+ | Groq | `groq/*` | Fast inference |
86
+ | Mistral, Cohere, Perplexity, xAI, DeepSeek, Cerebras | Full support | - |
87
+
88
+ ## Best Practices
89
+
90
+ 1. Enable caching for deterministic prompts
91
+ 2. Set rate limits to prevent abuse
92
+ 3. Use guardrails for user-facing AI
93
+ 4. Enable DLP for sensitive data
94
+ 5. Use unified billing or BYOK for simpler key management
95
+ 6. Enable logging for debugging
96
+ 7. Use zero data retention when privacy required