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,110 @@
1
+ # AI Gateway SDK Integration
2
+
3
+ ## Vercel AI SDK (Recommended)
4
+
5
+ ```typescript
6
+ import { createAiGateway } from 'ai-gateway-provider'
7
+ import { createOpenAI } from '@ai-sdk/openai'
8
+ import { generateText } from 'ai'
9
+
10
+ const gateway = createAiGateway({
11
+ accountId: process.env.CF_ACCOUNT_ID,
12
+ gateway: process.env.CF_GATEWAY_ID,
13
+ apiKey: process.env.CF_API_TOKEN, // Optional for auth gateways
14
+ })
15
+
16
+ const openai = createOpenAI({ apiKey: process.env.OPENAI_API_KEY })
17
+
18
+ // Single model
19
+ const { text } = await generateText({
20
+ model: gateway(openai('gpt-4o')),
21
+ prompt: 'Hello',
22
+ })
23
+
24
+ // Automatic fallback array
25
+ const { text } = await generateText({
26
+ model: gateway([openai('gpt-4o'), anthropic('claude-sonnet-4-5'), openai('gpt-4o-mini')]),
27
+ prompt: 'Complex task',
28
+ })
29
+ ```
30
+
31
+ ### Options
32
+
33
+ ```typescript
34
+ model: gateway(openai('gpt-4o'), {
35
+ cacheKey: 'my-key',
36
+ cacheTtl: 3600,
37
+ metadata: { userId: 'u123', team: 'eng' }, // Max 5 entries
38
+ retries: { maxAttempts: 3, backoff: 'exponential' },
39
+ })
40
+ ```
41
+
42
+ ## OpenAI SDK
43
+
44
+ ```typescript
45
+ const client = new OpenAI({
46
+ apiKey: process.env.OPENAI_API_KEY,
47
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`,
48
+ defaultHeaders: { 'cf-aig-authorization': `Bearer ${cfToken}` },
49
+ })
50
+
51
+ // Unified API - switch providers via model name
52
+ model: 'openai/gpt-4o' // or 'anthropic/claude-sonnet-4-5'
53
+ ```
54
+
55
+ ## Anthropic SDK
56
+
57
+ ```typescript
58
+ const client = new Anthropic({
59
+ apiKey: process.env.ANTHROPIC_API_KEY,
60
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/anthropic`,
61
+ defaultHeaders: { 'cf-aig-authorization': `Bearer ${cfToken}` },
62
+ })
63
+ ```
64
+
65
+ ## Workers AI Binding
66
+
67
+ ```toml
68
+ # wrangler.toml
69
+ [ai]
70
+ binding = "AI"
71
+ [[ai.gateway]]
72
+ id = "my-gateway"
73
+ ```
74
+
75
+ ```typescript
76
+ await env.AI.run('@cf/meta/llama-3-8b-instruct',
77
+ { messages: [...] },
78
+ { gateway: { id: 'my-gateway', metadata: { userId: '123' } } }
79
+ );
80
+ ```
81
+
82
+ ## LangChain / LlamaIndex
83
+
84
+ ```typescript
85
+ // Use OpenAI SDK pattern with custom baseURL
86
+ new ChatOpenAI({
87
+ configuration: {
88
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`,
89
+ },
90
+ })
91
+ ```
92
+
93
+ ## HTTP / cURL
94
+
95
+ ```bash
96
+ curl https://gateway.ai.cloudflare.com/v1/{account}/{gateway}/openai/chat/completions \
97
+ -H "Authorization: Bearer $OPENAI_KEY" \
98
+ -H "cf-aig-authorization: Bearer $CF_TOKEN" \
99
+ -H "cf-aig-metadata: {\"userId\":\"123\"}" \
100
+ -d '{"model":"gpt-4o","messages":[...]}'
101
+ ```
102
+
103
+ ## Headers Reference
104
+
105
+ | Header | Purpose |
106
+ | ---------------------- | ------------------------ |
107
+ | `cf-aig-authorization` | Gateway auth token |
108
+ | `cf-aig-metadata` | JSON object (max 5 keys) |
109
+ | `cf-aig-cache-ttl` | Cache TTL in seconds |
110
+ | `cf-aig-skip-cache` | `true` to bypass cache |
@@ -0,0 +1,90 @@
1
+ # AI Gateway Troubleshooting
2
+
3
+ ## Common Errors
4
+
5
+ | Error | Cause | Fix |
6
+ | ----- | ------------------------------------- | ----------------------------------- |
7
+ | 401 | Missing `cf-aig-authorization` header | Add header with CF API token |
8
+ | 403 | Invalid provider key / BYOK expired | Check provider key in dashboard |
9
+ | 429 | Rate limit exceeded | Increase limit or implement backoff |
10
+
11
+ ### 401 Fix
12
+
13
+ ```typescript
14
+ const client = new OpenAI({
15
+ baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`,
16
+ defaultHeaders: { 'cf-aig-authorization': `Bearer ${CF_API_TOKEN}` },
17
+ })
18
+ ```
19
+
20
+ ### 429 Retry Pattern
21
+
22
+ ```typescript
23
+ async function requestWithRetry(fn, maxRetries = 3) {
24
+ for (let i = 0; i < maxRetries; i++) {
25
+ try {
26
+ return await fn()
27
+ } catch (e) {
28
+ if (e.status === 429 && i < maxRetries - 1) {
29
+ await new Promise((r) => setTimeout(r, Math.pow(2, i) * 1000))
30
+ continue
31
+ }
32
+ throw e
33
+ }
34
+ }
35
+ }
36
+ ```
37
+
38
+ ## Gotchas
39
+
40
+ | Issue | Reality |
41
+ | ------------------------ | ------------------------------------------------------------ |
42
+ | Metadata limits | Max 5 entries, flat only (no nesting) |
43
+ | Cache key collision | Use unique keys per expected response |
44
+ | BYOK + Unified Billing | Mutually exclusive |
45
+ | Rate limit scope | Per-gateway, not per-user (use dynamic routing for per-user) |
46
+ | Log delay | 30-60 seconds normal |
47
+ | Streaming + caching | **Incompatible** |
48
+ | Model name (unified API) | Prefix required: `openai/gpt-4o`, not `gpt-4o` |
49
+
50
+ ## Cache Not Working
51
+
52
+ **Causes:**
53
+
54
+ - Different request params (temperature, etc.)
55
+ - Streaming enabled
56
+ - Caching disabled in settings
57
+
58
+ **Check:** `response.headers.get('cf-aig-cache-status')` → HIT or MISS
59
+
60
+ ## Logs Not Appearing
61
+
62
+ 1. Check logging enabled: Dashboard → Gateway → Settings
63
+ 2. Remove `cf-aig-collect-log: false` header
64
+ 3. Wait 30-60 seconds
65
+ 4. Check log limit (10M default)
66
+
67
+ ## Debugging
68
+
69
+ ```bash
70
+ # Test connectivity
71
+ curl -v https://gateway.ai.cloudflare.com/v1/{account}/{gateway}/openai/models \
72
+ -H "Authorization: Bearer $OPENAI_KEY" \
73
+ -H "cf-aig-authorization: Bearer $CF_TOKEN"
74
+ ```
75
+
76
+ ```typescript
77
+ // Check response headers
78
+ console.log('Cache:', response.headers.get('cf-aig-cache-status'))
79
+ console.log('Request ID:', response.headers.get('cf-ray'))
80
+ ```
81
+
82
+ ## Analytics
83
+
84
+ Dashboard → AI Gateway → Select gateway
85
+
86
+ **Metrics:** Requests, tokens, latency (p50/p95/p99), cache hit rate, costs
87
+
88
+ **Log filters:** `status: error`, `provider: openai`, `cost > 0.01`, `duration > 1000`
89
+
90
+ **Export:** Logpush to S3/GCS/Datadog/Splunk
@@ -0,0 +1,145 @@
1
+ # Cloudflare AI Search Reference
2
+
3
+ Expert guidance for implementing Cloudflare AI Search (formerly AutoRAG), Cloudflare's managed semantic search and RAG service.
4
+
5
+ ## Overview
6
+
7
+ **AI Search** is a managed RAG (Retrieval-Augmented Generation) pipeline that combines:
8
+
9
+ - Automatic semantic indexing of your content
10
+ - Vector similarity search
11
+ - Built-in LLM generation
12
+
13
+ **Key value propositions:**
14
+
15
+ - **Zero vector management** - No manual embedding, indexing, or storage
16
+ - **Auto-indexing** - Content automatically re-indexed every 6 hours
17
+ - **Built-in generation** - Optional AI response generation from retrieved context
18
+ - **Multi-source** - Index from R2 buckets or website crawls
19
+
20
+ **Data source options:**
21
+
22
+ - **R2 bucket** - Index files from Cloudflare R2 (supports MD, TXT, HTML, PDF, DOC, CSV, JSON)
23
+ - **Website** - Crawl and index website content (requires Cloudflare-hosted domain)
24
+
25
+ **Indexing lifecycle:**
26
+
27
+ - Automatic 6-hour refresh cycle
28
+ - Manual "Force Sync" available (30s rate limit)
29
+ - Not designed for real-time updates
30
+
31
+ ## Quick Start
32
+
33
+ **1. Create AI Search instance in dashboard:**
34
+
35
+ - Go to Cloudflare Dashboard → AI Search → Create
36
+ - Choose data source (R2 or website)
37
+ - Configure instance name and settings
38
+
39
+ **2. Configure Worker:**
40
+
41
+ ```jsonc
42
+ // wrangler.jsonc
43
+ {
44
+ "ai": {
45
+ "binding": "AI",
46
+ },
47
+ }
48
+ ```
49
+
50
+ **3. Use in Worker:**
51
+
52
+ ```typescript
53
+ export default {
54
+ async fetch(request, env) {
55
+ const answer = await env.AI.autorag('my-search-instance').aiSearch({
56
+ query: 'How do I configure caching?',
57
+ model: '@cf/meta/llama-3.3-70b-instruct-fp8-fast',
58
+ })
59
+
60
+ return Response.json({ answer: answer.response })
61
+ },
62
+ }
63
+ ```
64
+
65
+ ## When to Use AI Search
66
+
67
+ ### AI Search vs Vectorize
68
+
69
+ | Factor | AI Search | Vectorize |
70
+ | ---------------- | -------------------------------- | ------------------------------ |
71
+ | **Management** | Fully managed | Manual embedding + indexing |
72
+ | **Use when** | Want zero-ops RAG pipeline | Need custom embeddings/control |
73
+ | **Indexing** | Automatic (6hr cycle) | Manual via API |
74
+ | **Generation** | Built-in optional | Bring your own LLM |
75
+ | **Data sources** | R2 or website | Manual insert |
76
+ | **Best for** | Docs, support, enterprise search | Custom ML pipelines, real-time |
77
+
78
+ ### AI Search vs Direct Workers AI
79
+
80
+ | Factor | AI Search | Workers AI (direct) |
81
+ | ------------ | ---------------------------- | ---------------------------- |
82
+ | **Context** | Automatic retrieval | Manual context building |
83
+ | **Use when** | Need RAG (search + generate) | Simple generation tasks |
84
+ | **Indexing** | Built-in | Not applicable |
85
+ | **Best for** | Knowledge bases, docs | Simple chat, transformations |
86
+
87
+ ### search() vs aiSearch()
88
+
89
+ | Method | Returns | Use When |
90
+ | ------------ | --------------------- | --------------------------------------- |
91
+ | `search()` | Search results only | Building custom UI, need raw chunks |
92
+ | `aiSearch()` | AI response + results | Need ready-to-use answer (chatbot, Q&A) |
93
+
94
+ ### Real-time Updates Consideration
95
+
96
+ **AI Search is NOT ideal if:**
97
+
98
+ - Need real-time content updates (<6 hours)
99
+ - Content changes multiple times per hour
100
+ - Strict freshness requirements
101
+
102
+ **AI Search IS ideal if:**
103
+
104
+ - Content relatively stable (docs, policies, knowledge bases)
105
+ - 6-hour refresh acceptable
106
+ - Prefer zero-ops over real-time
107
+
108
+ ## Platform Limits
109
+
110
+ | Limit | Value |
111
+ | ------------------------- | ------------------- |
112
+ | Max instances per account | 10 |
113
+ | Max files per instance | 100,000 |
114
+ | Max file size | 4 MB |
115
+ | Index frequency | Every 6 hours |
116
+ | Force Sync rate limit | Once per 30 seconds |
117
+ | Filter nesting depth | 2 levels |
118
+ | Filters per compound | 10 |
119
+ | Score threshold range | 0.0 - 1.0 |
120
+
121
+ ## Reading Order
122
+
123
+ Navigate these references based on your task:
124
+
125
+ | Task | Read | Est. Time |
126
+ | -------------------------- | ----------------------------- | --------- |
127
+ | **Understand AI Search** | README only | 5 min |
128
+ | **Implement basic search** | README → api.md | 10 min |
129
+ | **Configure data source** | README → configuration.md | 10 min |
130
+ | **Production patterns** | patterns.md | 15 min |
131
+ | **Debug issues** | gotchas.md | 10 min |
132
+ | **Full implementation** | README → api.md → patterns.md | 30 min |
133
+
134
+ ## In This Reference
135
+
136
+ - **[api.md](api.md)** - API endpoints, methods, TypeScript interfaces
137
+ - **[configuration.md](configuration.md)** - Setup, data sources, wrangler config
138
+ - **[patterns.md](patterns.md)** - Common patterns, decision guidance, code examples
139
+ - **[gotchas.md](gotchas.md)** - Troubleshooting, code-level gotchas, limits
140
+
141
+ ## See Also
142
+
143
+ - [Cloudflare AI Search Docs](https://developers.cloudflare.com/ai-search/)
144
+ - [Workers AI Docs](https://developers.cloudflare.com/workers-ai/)
145
+ - [Vectorize Docs](https://developers.cloudflare.com/vectorize/)
@@ -0,0 +1,87 @@
1
+ # AI Search API Reference
2
+
3
+ ## Workers Binding
4
+
5
+ ```typescript
6
+ const answer = await env.AI.autorag('instance-name').aiSearch(options)
7
+ const results = await env.AI.autorag('instance-name').search(options)
8
+ const instances = await env.AI.autorag('_').listInstances()
9
+ ```
10
+
11
+ ## aiSearch() Options
12
+
13
+ ```typescript
14
+ interface AiSearchOptions {
15
+ query: string // User query
16
+ model: string // Workers AI model ID
17
+ system_prompt?: string // LLM instructions
18
+ rewrite_query?: boolean // Fix typos (default: false)
19
+ max_num_results?: number // Max chunks (default: 10)
20
+ ranking_options?: { score_threshold?: number } // 0.0-1.0 (default: 0.3)
21
+ reranking?: { enabled: boolean; model: string }
22
+ stream?: boolean // Stream response (default: false)
23
+ filters?: Filter // Metadata filters
24
+ page?: string // Pagination token
25
+ }
26
+ ```
27
+
28
+ ## Response
29
+
30
+ ```typescript
31
+ interface AiSearchResponse {
32
+ search_query: string // Query used (rewritten if enabled)
33
+ response: string // AI-generated answer
34
+ data: SearchResult[] // Retrieved chunks
35
+ has_more: boolean
36
+ next_page?: string
37
+ }
38
+
39
+ interface SearchResult {
40
+ id: string
41
+ score: number
42
+ content: string
43
+ metadata: { filename: string; folder: string; timestamp: number }
44
+ }
45
+ ```
46
+
47
+ ## Filters
48
+
49
+ ```typescript
50
+ // Comparison
51
+ { column: "folder", operator: "gte", value: "docs/" }
52
+
53
+ // Compound
54
+ { operator: "and", filters: [
55
+ { column: "folder", operator: "gte", value: "docs/" },
56
+ { column: "timestamp", operator: "gte", value: 1704067200 }
57
+ ]}
58
+ ```
59
+
60
+ **Operators:** `eq`, `ne`, `gt`, `gte`, `lt`, `lte`
61
+
62
+ **Built-in metadata:** `filename`, `folder`, `timestamp` (Unix seconds)
63
+
64
+ ## Streaming
65
+
66
+ ```typescript
67
+ const stream = await env.AI.autorag('docs').aiSearch({ query, model, stream: true })
68
+ return new Response(stream, { headers: { 'Content-Type': 'text/event-stream' } })
69
+ ```
70
+
71
+ ## Error Types
72
+
73
+ | Error | Cause |
74
+ | -------------------------- | ---------------------- |
75
+ | `AutoRAGNotFoundError` | Instance doesn't exist |
76
+ | `AutoRAGUnauthorizedError` | Invalid/missing token |
77
+ | `AutoRAGValidationError` | Invalid parameters |
78
+
79
+ ## REST API
80
+
81
+ ```bash
82
+ curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/autorag/rags/{NAME}/ai-search \
83
+ -H "Authorization: Bearer {TOKEN}" \
84
+ -d '{"query": "...", "model": "@cf/meta/llama-3.3-70b-instruct-fp8-fast"}'
85
+ ```
86
+
87
+ Requires Service API token with "AI Search - Read" permission.
@@ -0,0 +1,91 @@
1
+ # AI Search Configuration
2
+
3
+ ## Worker Setup
4
+
5
+ ```jsonc
6
+ // wrangler.jsonc
7
+ {
8
+ "ai": { "binding": "AI" },
9
+ }
10
+ ```
11
+
12
+ ```typescript
13
+ interface Env {
14
+ AI: Ai
15
+ }
16
+
17
+ const answer = await env.AI.autorag('my-instance').aiSearch({
18
+ query: 'How do I configure caching?',
19
+ model: '@cf/meta/llama-3.3-70b-instruct-fp8-fast',
20
+ })
21
+ ```
22
+
23
+ ## Data Sources
24
+
25
+ ### R2 Bucket
26
+
27
+ Dashboard: AI Search → Create Instance → Select R2 bucket
28
+
29
+ **Supported formats:** `.md`, `.txt`, `.html`, `.pdf`, `.doc`, `.docx`, `.csv`, `.json`
30
+
31
+ **Auto-indexed metadata:** `filename`, `folder`, `timestamp`
32
+
33
+ ### Website Crawler
34
+
35
+ Requirements:
36
+
37
+ - Domain on Cloudflare
38
+ - `sitemap.xml` at root
39
+ - Bot protection must allow `CloudflareAISearch` user agent
40
+
41
+ ## Path Filtering (R2)
42
+
43
+ ```
44
+ docs/**/*.md # All .md in docs/ recursively
45
+ **/*.draft.md # Exclude (use in exclude patterns)
46
+ ```
47
+
48
+ ## Indexing
49
+
50
+ - **Automatic:** Every 6 hours
51
+ - **Force Sync:** Dashboard button (30s rate limit between syncs)
52
+ - **Pause:** Settings → Pause Indexing (existing index remains searchable)
53
+
54
+ ## Service API Token
55
+
56
+ Dashboard: AI Search → Instance → Use AI Search → API → Create Token
57
+
58
+ Permissions:
59
+
60
+ - **Read** - search operations
61
+ - **Edit** - instance management
62
+
63
+ Store securely:
64
+
65
+ ```bash
66
+ wrangler secret put AI_SEARCH_TOKEN
67
+ ```
68
+
69
+ ## Multi-Environment
70
+
71
+ ```toml
72
+ # wrangler.toml
73
+ [env.production.vars]
74
+ AI_SEARCH_INSTANCE = "prod-docs"
75
+
76
+ [env.staging.vars]
77
+ AI_SEARCH_INSTANCE = "staging-docs"
78
+ ```
79
+
80
+ ```typescript
81
+ const answer = await env.AI.autorag(env.AI_SEARCH_INSTANCE).aiSearch({ query })
82
+ ```
83
+
84
+ ## Monitoring
85
+
86
+ ```typescript
87
+ const instances = await env.AI.autorag('_').listInstances()
88
+ console.log(instances.find((i) => i.name === 'docs'))
89
+ ```
90
+
91
+ Dashboard shows: files indexed, status, last index time, storage usage.
@@ -0,0 +1,92 @@
1
+ # AI Search Gotchas
2
+
3
+ ## Type Safety
4
+
5
+ **Timestamp precision:** Use seconds (10-digit), not milliseconds.
6
+
7
+ ```typescript
8
+ const nowInSeconds = Math.floor(Date.now() / 1000) // Correct
9
+ ```
10
+
11
+ **Folder prefix matching:** Use `gte` for "starts with" on paths.
12
+
13
+ ```typescript
14
+ filters: { column: "folder", operator: "gte", value: "docs/api/" } // Matches nested
15
+ ```
16
+
17
+ ## Filter Limitations
18
+
19
+ | Limit | Value |
20
+ | -------------------- | ---------------------- |
21
+ | Max nesting depth | 2 levels |
22
+ | Filters per compound | 10 |
23
+ | `or` operator | Same column, `eq` only |
24
+
25
+ **OR restriction example:**
26
+
27
+ ```typescript
28
+ // ✅ Valid: same column, eq only
29
+ { operator: "or", filters: [
30
+ { column: "folder", operator: "eq", value: "docs/" },
31
+ { column: "folder", operator: "eq", value: "guides/" }
32
+ ]}
33
+ ```
34
+
35
+ ## Indexing Issues
36
+
37
+ | Problem | Cause | Solution |
38
+ | ----------------- | -------------------------- | -------------------------------------------------- |
39
+ | File not indexed | Unsupported format or >4MB | Check format (.md/.txt/.html/.pdf/.doc/.csv/.json) |
40
+ | Index out of sync | 6-hour index cycle | Wait or use "Force Sync" (30s rate limit) |
41
+ | Empty results | Index incomplete | Check dashboard for indexing status |
42
+
43
+ ## Auth Errors
44
+
45
+ | Error | Cause | Fix |
46
+ | -------------------------- | --------------------- | --------------------------------------------------- |
47
+ | `AutoRAGUnauthorizedError` | Invalid/missing token | Create Service API token with AI Search permissions |
48
+ | `AutoRAGNotFoundError` | Wrong instance name | Verify exact name from dashboard |
49
+
50
+ ## Performance
51
+
52
+ **Slow responses (>3s):**
53
+
54
+ ```typescript
55
+ // Add score threshold + limit results
56
+ ranking_options: { score_threshold: 0.5 },
57
+ max_num_results: 10
58
+ ```
59
+
60
+ **Empty results debug:**
61
+
62
+ 1. Remove filters, test basic query
63
+ 2. Lower `score_threshold` to 0.1
64
+ 3. Check index is populated
65
+
66
+ ## Limits
67
+
68
+ | Resource | Limit |
69
+ | --------------------- | ------- |
70
+ | Instances per account | 10 |
71
+ | Files per instance | 100,000 |
72
+ | Max file size | 4 MB |
73
+ | Index frequency | 6 hours |
74
+
75
+ ## Anti-Patterns
76
+
77
+ **Use env vars for instance names:**
78
+
79
+ ```typescript
80
+ const answer = await env.AI.autorag(env.AI_SEARCH_INSTANCE).aiSearch({...});
81
+ ```
82
+
83
+ **Handle specific error types:**
84
+
85
+ ```typescript
86
+ if (error instanceof AutoRAGNotFoundError) {
87
+ /* 404 */
88
+ }
89
+ if (error instanceof AutoRAGUnauthorizedError) {
90
+ /* 401 */
91
+ }
92
+ ```
@@ -0,0 +1,87 @@
1
+ # AI Search Patterns
2
+
3
+ ## search() vs aiSearch()
4
+
5
+ | Use | Method | Returns |
6
+ | -------------------- | ------------ | ---------------------------------- |
7
+ | Custom UI, analytics | `search()` | Raw chunks only (~100-300ms) |
8
+ | Chatbots, Q&A | `aiSearch()` | AI response + chunks (~500-2000ms) |
9
+
10
+ ## rewrite_query
11
+
12
+ | Setting | Use When |
13
+ | ------- | ----------------------------------------- |
14
+ | `true` | User input (typos, vague queries) |
15
+ | `false` | LLM-generated queries (already optimized) |
16
+
17
+ ## Multitenancy (Folder-Based)
18
+
19
+ ```typescript
20
+ const answer = await env.AI.autorag('saas-docs').aiSearch({
21
+ query: 'refund policy',
22
+ model: '@cf/meta/llama-3.3-70b-instruct-fp8-fast',
23
+ filters: {
24
+ column: 'folder',
25
+ operator: 'gte', // "starts with" pattern
26
+ value: `tenants/${tenantId}/`,
27
+ },
28
+ })
29
+ ```
30
+
31
+ ## Streaming
32
+
33
+ ```typescript
34
+ const stream = await env.AI.autorag('docs').aiSearch({
35
+ query,
36
+ model: '@cf/meta/llama-3.3-70b-instruct-fp8-fast',
37
+ stream: true,
38
+ })
39
+ return new Response(stream, { headers: { 'Content-Type': 'text/event-stream' } })
40
+ ```
41
+
42
+ ## Score Threshold
43
+
44
+ | Threshold | Use |
45
+ | ------------- | --------------------------------- |
46
+ | 0.3 (default) | Broad recall, exploratory |
47
+ | 0.5 | Balanced, production default |
48
+ | 0.7 | High precision, critical accuracy |
49
+
50
+ ## System Prompt Template
51
+
52
+ ```typescript
53
+ const systemPrompt = `You are a documentation assistant.
54
+ - Answer ONLY based on provided context
55
+ - If context doesn't contain answer, say "I don't have information"
56
+ - Include code examples from context`
57
+ ```
58
+
59
+ ## Compound Filters
60
+
61
+ ```typescript
62
+ // OR: Multiple folders
63
+ filters: {
64
+ operator: "or",
65
+ filters: [
66
+ { column: "folder", operator: "gte", value: "docs/api/" },
67
+ { column: "folder", operator: "gte", value: "docs/auth/" }
68
+ ]
69
+ }
70
+
71
+ // AND: Folder + date
72
+ filters: {
73
+ operator: "and",
74
+ filters: [
75
+ { column: "folder", operator: "gte", value: "docs/" },
76
+ { column: "timestamp", operator: "gte", value: oneWeekAgoSeconds }
77
+ ]
78
+ }
79
+ ```
80
+
81
+ ## Reranking
82
+
83
+ Enable for high-stakes use cases (adds ~300ms latency):
84
+
85
+ ```typescript
86
+ reranking: { enabled: true, model: "@cf/baai/bge-reranker-base" }
87
+ ```