memory-journal-mcp 7.7.1 → 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-6LPTBIB6.js → chunk-MWNLAEHR.js} +309 -4332
  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 +6 -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,91 @@
1
+ # Vectorize Configuration
2
+
3
+ ## Create Index
4
+
5
+ ```bash
6
+ npx wrangler vectorize create my-index --dimensions=768 --metric=cosine
7
+ ```
8
+
9
+ **⚠️ Dimensions and metric are immutable** - cannot change after creation.
10
+
11
+ ## Worker Binding
12
+
13
+ ```jsonc
14
+ // wrangler.jsonc
15
+ {
16
+ "vectorize": [{ "binding": "VECTORIZE", "index_name": "my-index" }],
17
+ }
18
+ ```
19
+
20
+ ```typescript
21
+ interface Env {
22
+ VECTORIZE: Vectorize
23
+ }
24
+ ```
25
+
26
+ ## Metadata Indexes
27
+
28
+ **Must create BEFORE inserting vectors** - existing vectors not retroactively indexed.
29
+
30
+ ```bash
31
+ wrangler vectorize create-metadata-index my-index --property-name=category --type=string
32
+ wrangler vectorize create-metadata-index my-index --property-name=price --type=number
33
+ ```
34
+
35
+ | Type | Use For |
36
+ | --------- | ----------------------------------------- |
37
+ | `string` | Categories, tags (first 64 bytes indexed) |
38
+ | `number` | Prices, timestamps |
39
+ | `boolean` | Flags |
40
+
41
+ ## CLI Commands
42
+
43
+ ```bash
44
+ # Index management
45
+ wrangler vectorize list
46
+ wrangler vectorize info <index-name>
47
+ wrangler vectorize delete <index-name>
48
+
49
+ # Vector operations
50
+ wrangler vectorize insert <index-name> --file=embeddings.ndjson
51
+ wrangler vectorize get <index-name> --ids=id1,id2
52
+ wrangler vectorize delete-by-ids <index-name> --ids=id1,id2
53
+
54
+ # Metadata indexes
55
+ wrangler vectorize list-metadata-index <index-name>
56
+ wrangler vectorize delete-metadata-index <index-name> --property-name=field
57
+ ```
58
+
59
+ ## Bulk Upload (NDJSON)
60
+
61
+ ```json
62
+ {"id": "1", "values": [0.1, 0.2, ...], "metadata": {"category": "docs"}}
63
+ {"id": "2", "values": [0.4, 0.5, ...], "namespace": "tenant-abc"}
64
+ ```
65
+
66
+ **Limits:** 5000 vectors per file, 100 MB max
67
+
68
+ ## Cardinality Best Practice
69
+
70
+ Bucket high-cardinality data:
71
+
72
+ ```typescript
73
+ // ❌ Millisecond timestamps
74
+ metadata: {
75
+ timestamp: Date.now()
76
+ }
77
+
78
+ // ✅ 5-minute buckets
79
+ metadata: {
80
+ timestamp_bucket: Math.floor(Date.now() / 300000) * 300000
81
+ }
82
+ ```
83
+
84
+ ## Production Checklist
85
+
86
+ 1. Create index with correct dimensions
87
+ 2. Create metadata indexes FIRST
88
+ 3. Test bulk upload
89
+ 4. Configure bindings
90
+ 5. Deploy Worker
91
+ 6. Verify queries
@@ -0,0 +1,83 @@
1
+ # Vectorize Gotchas
2
+
3
+ ## Critical Warnings
4
+
5
+ ### Async Mutations
6
+
7
+ Insert/upsert/delete return immediately but vectors aren't queryable for 5-10 seconds.
8
+
9
+ ### Batch Size Limit
10
+
11
+ **Workers API: 500 vectors max per call** (undocumented, silently truncates)
12
+
13
+ ```typescript
14
+ // ✅ Chunk into 500
15
+ for (let i = 0; i < vectors.length; i += 500) {
16
+ await env.VECTORIZE.upsert(vectors.slice(i, i + 500))
17
+ }
18
+ ```
19
+
20
+ ### Metadata Truncation
21
+
22
+ `returnMetadata: "indexed"` returns only first 64 bytes of strings. Use `"all"` for complete metadata (but max topK drops to 20).
23
+
24
+ ### topK Limits
25
+
26
+ | returnMetadata | returnValues | Max topK |
27
+ | ---------------------- | ------------ | -------- |
28
+ | `"none"` / `"indexed"` | `false` | 100 |
29
+ | `"all"` | any | **20** |
30
+ | any | `true` | **20** |
31
+
32
+ ### Metadata Indexes First
33
+
34
+ Create BEFORE inserting - existing vectors not retroactively indexed.
35
+
36
+ ```bash
37
+ # ✅ Create index FIRST
38
+ wrangler vectorize create-metadata-index my-index --property-name=category --type=string
39
+ wrangler vectorize insert my-index --file=data.ndjson
40
+ ```
41
+
42
+ ### Index Config Immutable
43
+
44
+ Cannot change dimensions/metric after creation. Must create new index and migrate.
45
+
46
+ ## Limits (V2)
47
+
48
+ | Resource | Limit |
49
+ | ----------------------- | ---------------------------- |
50
+ | Vectors per index | 10,000,000 |
51
+ | Max dimensions | 1536 |
52
+ | Batch upsert (Workers) | **500** |
53
+ | Indexed string metadata | **64 bytes** |
54
+ | Metadata indexes | 10 |
55
+ | Namespaces | 50,000 (paid) / 1,000 (free) |
56
+
57
+ ## Common Mistakes
58
+
59
+ 1. **Wrong embedding shape:** Extract `result.data[0]` from Workers AI
60
+ 2. **Metadata index after data:** Re-upsert all vectors
61
+ 3. **Insert vs upsert:** `insert` ignores duplicates, `upsert` overwrites
62
+ 4. **Not batching:** Individual inserts ~1K/min, batched ~200K+/min
63
+
64
+ ## Troubleshooting
65
+
66
+ **No results?**
67
+
68
+ - Wait 5-10s after insert
69
+ - Check namespace spelling (case-sensitive)
70
+ - Verify metadata index exists
71
+ - Check dimension mismatch
72
+
73
+ **Metadata filter not working?**
74
+
75
+ - Index must exist before data insert
76
+ - Strings >64 bytes truncated
77
+ - Use dot notation for nested: `"product.category"`
78
+
79
+ ## Model Dimensions
80
+
81
+ - `@cf/baai/bge-small-en-v1.5`: 384
82
+ - `@cf/baai/bge-base-en-v1.5`: 768
83
+ - `@cf/baai/bge-large-en-v1.5`: 1024
@@ -0,0 +1,92 @@
1
+ # Vectorize Patterns
2
+
3
+ ## Workers AI Integration
4
+
5
+ ```typescript
6
+ // Generate embedding + query
7
+ const result = await env.AI.run('@cf/baai/bge-base-en-v1.5', { text: [query] })
8
+ const matches = await env.VECTORIZE.query(result.data[0], { topK: 5 }) // Pass data[0]!
9
+ ```
10
+
11
+ | Model | Dimensions |
12
+ | ---------------------------- | ----------------- |
13
+ | `@cf/baai/bge-small-en-v1.5` | 384 |
14
+ | `@cf/baai/bge-base-en-v1.5` | 768 (recommended) |
15
+ | `@cf/baai/bge-large-en-v1.5` | 1024 |
16
+
17
+ ## OpenAI Integration
18
+
19
+ ```typescript
20
+ const response = await openai.embeddings.create({ model: 'text-embedding-ada-002', input: query })
21
+ const matches = await env.VECTORIZE.query(response.data[0].embedding, { topK: 5 })
22
+ ```
23
+
24
+ ## RAG Pattern
25
+
26
+ ```typescript
27
+ // 1. Embed query
28
+ const emb = await env.AI.run('@cf/baai/bge-base-en-v1.5', { text: [query] })
29
+
30
+ // 2. Search vectors
31
+ const matches = await env.VECTORIZE.query(emb.data[0], { topK: 5, returnMetadata: 'indexed' })
32
+
33
+ // 3. Fetch full docs from R2/D1/KV
34
+ const docs = await Promise.all(
35
+ matches.matches.map((m) => env.R2.get(m.metadata.key).then((o) => o?.text()))
36
+ )
37
+
38
+ // 4. Generate with context
39
+ const answer = await env.AI.run('@cf/meta/llama-3-8b-instruct', {
40
+ prompt: `Context:\n${docs.filter(Boolean).join('\n\n')}\n\nQuestion: ${query}\n\nAnswer:`,
41
+ })
42
+ ```
43
+
44
+ ## Multi-Tenant
45
+
46
+ ### Namespaces (< 50K tenants, fastest)
47
+
48
+ ```typescript
49
+ await env.VECTORIZE.upsert([{ id: '1', values: emb, namespace: `tenant-${id}` }])
50
+ await env.VECTORIZE.query(vec, { namespace: `tenant-${id}`, topK: 10 })
51
+ ```
52
+
53
+ ### Metadata Filter (> 50K tenants)
54
+
55
+ ```bash
56
+ wrangler vectorize create-metadata-index my-index --property-name=tenantId --type=string
57
+ ```
58
+
59
+ ```typescript
60
+ await env.VECTORIZE.upsert([{ id: '1', values: emb, metadata: { tenantId: id } }])
61
+ await env.VECTORIZE.query(vec, { filter: { tenantId: id }, topK: 10 })
62
+ ```
63
+
64
+ ## Hybrid Search
65
+
66
+ ```typescript
67
+ const matches = await env.VECTORIZE.query(vec, {
68
+ topK: 20,
69
+ filter: {
70
+ category: { $in: ['tech', 'science'] },
71
+ published: { $gte: lastMonthTimestamp },
72
+ },
73
+ })
74
+ ```
75
+
76
+ ## Batch Ingestion
77
+
78
+ ```typescript
79
+ const BATCH = 500
80
+ for (let i = 0; i < vectors.length; i += BATCH) {
81
+ await env.VECTORIZE.upsert(vectors.slice(i, i + BATCH))
82
+ }
83
+ ```
84
+
85
+ ## Best Practices
86
+
87
+ 1. **Pass `data[0]`** not `data` or full response
88
+ 2. **Batch 500** vectors per upsert
89
+ 3. **Create metadata indexes** before inserting
90
+ 4. **Use namespaces** for tenant isolation (faster than filters)
91
+ 5. **`returnMetadata: "indexed"`** for best speed/data balance
92
+ 6. **Handle 5-10s mutation delay** in async operations
@@ -0,0 +1,125 @@
1
+ # Cloudflare WAF Expert Skill Reference
2
+
3
+ **Expertise**: Cloudflare Web Application Firewall (WAF) configuration, custom rules, managed rulesets, rate limiting, attack detection, and API integration
4
+
5
+ ## Overview
6
+
7
+ Cloudflare WAF protects web applications from attacks through managed rulesets and custom rules.
8
+
9
+ **Detection (Managed Rulesets)**
10
+
11
+ - Pre-configured rules maintained by Cloudflare
12
+ - CVE-based rules, OWASP Top 10 coverage
13
+ - Three main rulesets: Cloudflare Managed, OWASP CRS, Exposed Credentials
14
+ - Actions: log, block, challenge, js_challenge, managed_challenge
15
+
16
+ **Mitigation (Custom Rules & Rate Limiting)**
17
+
18
+ - Custom expressions using Wirefilter syntax
19
+ - Attack score-based blocking (`cf.waf.score`)
20
+ - Rate limiting with per-IP, per-user, or custom characteristics
21
+ - Actions: block, challenge, js_challenge, managed_challenge, log, skip
22
+
23
+ ## Quick Start
24
+
25
+ ### Deploy Cloudflare Managed Ruleset
26
+
27
+ ```typescript
28
+ import Cloudflare from 'cloudflare'
29
+
30
+ const client = new Cloudflare({ apiToken: process.env.CF_API_TOKEN })
31
+
32
+ // Deploy managed ruleset to zone
33
+ await client.rulesets.create({
34
+ zone_id: 'zone_id',
35
+ kind: 'zone',
36
+ phase: 'http_request_firewall_managed',
37
+ name: 'Deploy Cloudflare Managed Ruleset',
38
+ rules: [
39
+ {
40
+ action: 'execute',
41
+ action_parameters: {
42
+ id: 'efb7b8c949ac4650a09736fc376e9aee', // Cloudflare Managed Ruleset
43
+ },
44
+ expression: 'true',
45
+ enabled: true,
46
+ },
47
+ ],
48
+ })
49
+ ```
50
+
51
+ ### Create Custom Rule
52
+
53
+ ```typescript
54
+ // Block requests with attack score >= 40
55
+ await client.rulesets.create({
56
+ zone_id: 'zone_id',
57
+ kind: 'zone',
58
+ phase: 'http_request_firewall_custom',
59
+ name: 'Custom WAF Rules',
60
+ rules: [
61
+ {
62
+ action: 'block',
63
+ expression: 'cf.waf.score gt 40',
64
+ description: 'Block high attack scores',
65
+ enabled: true,
66
+ },
67
+ ],
68
+ })
69
+ ```
70
+
71
+ ### Create Rate Limit
72
+
73
+ ```typescript
74
+ await client.rulesets.create({
75
+ zone_id: 'zone_id',
76
+ kind: 'zone',
77
+ phase: 'http_ratelimit',
78
+ name: 'API Rate Limits',
79
+ rules: [
80
+ {
81
+ action: 'block',
82
+ expression: 'http.request.uri.path eq "/api/login"',
83
+ action_parameters: {
84
+ ratelimit: {
85
+ characteristics: ['cf.colo.id', 'ip.src'],
86
+ period: 60,
87
+ requests_per_period: 10,
88
+ mitigation_timeout: 600,
89
+ },
90
+ },
91
+ enabled: true,
92
+ },
93
+ ],
94
+ })
95
+ ```
96
+
97
+ ## Managed Ruleset Quick Reference
98
+
99
+ | Ruleset Name | ID | Coverage |
100
+ | ------------------------- | ---------------------------------- | --------------------- |
101
+ | Cloudflare Managed | `efb7b8c949ac4650a09736fc376e9aee` | OWASP Top 10, CVEs |
102
+ | OWASP Core Ruleset | `4814384a9e5d4991b9815dcfc25d2f1f` | OWASP ModSecurity CRS |
103
+ | Exposed Credentials Check | `c2e184081120413c86c3ab7e14069605` | Credential stuffing |
104
+
105
+ ## Phases
106
+
107
+ WAF rules execute in specific phases:
108
+
109
+ - `http_request_firewall_managed` - Managed rulesets
110
+ - `http_request_firewall_custom` - Custom rules
111
+ - `http_ratelimit` - Rate limiting rules
112
+ - `http_request_sbfm` - Super Bot Fight Mode (Pro+)
113
+
114
+ ## Reading Order
115
+
116
+ 1. **[api.md](api.md)** - SDK methods, expressions, actions, parameters
117
+ 2. **[configuration.md](configuration.md)** - Setup with Wrangler, Terraform, Pulumi
118
+ 3. **[patterns.md](patterns.md)** - Common patterns: deploy managed, rate limiting, skip, override
119
+ 4. **[gotchas.md](gotchas.md)** - Execution order, limits, expression errors
120
+
121
+ ## See Also
122
+
123
+ - [Cloudflare WAF Docs](https://developers.cloudflare.com/waf/)
124
+ - [Ruleset Engine](https://developers.cloudflare.com/ruleset-engine/)
125
+ - [Expression Reference](https://developers.cloudflare.com/ruleset-engine/rules-language/)
@@ -0,0 +1,203 @@
1
+ # API Reference
2
+
3
+ ## SDK Setup
4
+
5
+ ```typescript
6
+ import Cloudflare from 'cloudflare'
7
+
8
+ const client = new Cloudflare({
9
+ apiToken: process.env.CF_API_TOKEN,
10
+ })
11
+ ```
12
+
13
+ ## Core Methods
14
+
15
+ ```typescript
16
+ // List rulesets
17
+ await client.rulesets.list({ zone_id: 'zone_id', phase: 'http_request_firewall_managed' })
18
+
19
+ // Get ruleset
20
+ await client.rulesets.get({ zone_id: 'zone_id', ruleset_id: 'ruleset_id' })
21
+
22
+ // Create ruleset
23
+ await client.rulesets.create({
24
+ zone_id: 'zone_id',
25
+ kind: 'zone',
26
+ phase: 'http_request_firewall_custom',
27
+ name: 'Custom WAF Rules',
28
+ rules: [{ action: 'block', expression: 'cf.waf.score gt 40', enabled: true }],
29
+ })
30
+
31
+ // Update ruleset (include rule id to keep existing, omit id for new rules)
32
+ await client.rulesets.update({
33
+ zone_id: 'zone_id',
34
+ ruleset_id: 'ruleset_id',
35
+ rules: [
36
+ { id: 'rule_id', action: 'block', expression: 'cf.waf.score gt 40', enabled: true },
37
+ { action: 'challenge', expression: 'http.request.uri.path contains "/admin"', enabled: true },
38
+ ],
39
+ })
40
+
41
+ // Delete ruleset
42
+ await client.rulesets.delete({ zone_id: 'zone_id', ruleset_id: 'ruleset_id' })
43
+ ```
44
+
45
+ ## Actions & Phases
46
+
47
+ ### Actions by Phase
48
+
49
+ | Action | Custom | Managed | Rate Limit | Description |
50
+ | ------------------- | ------ | ------- | ---------- | ----------------------------- |
51
+ | `block` | ✅ | ❌ | ✅ | Block request with 403 |
52
+ | `challenge` | ✅ | ❌ | ✅ | Show CAPTCHA challenge |
53
+ | `js_challenge` | ✅ | ❌ | ✅ | JS-based challenge |
54
+ | `managed_challenge` | ✅ | ❌ | ✅ | Smart challenge (recommended) |
55
+ | `log` | ✅ | ❌ | ✅ | Log only, don't block |
56
+ | `skip` | ✅ | ❌ | ❌ | Skip rule evaluation |
57
+ | `execute` | ❌ | ✅ | ❌ | Deploy managed ruleset |
58
+
59
+ ### Phases (Execution Order)
60
+
61
+ 1. `http_request_firewall_custom` - Custom rules (first line of defense)
62
+ 2. `http_request_firewall_managed` - Managed rulesets (pre-configured protection)
63
+ 3. `http_ratelimit` - Rate limiting (request throttling)
64
+ 4. `http_request_sbfm` - Super Bot Fight Mode (Pro+ only)
65
+
66
+ ## Expression Syntax
67
+
68
+ ### Fields
69
+
70
+ ```typescript
71
+ // Request properties
72
+ http.request.method // GET, POST, etc.
73
+ http.request.uri.path // /api/users
74
+ http.host // example.com
75
+
76
+ // IP and Geolocation
77
+ ip.src // 192.0.2.1
78
+ ip.geoip.country // US, GB, etc.
79
+ ip.geoip.continent // NA, EU, etc.
80
+
81
+ // Attack detection
82
+ cf.waf.score // 0-100 attack score
83
+ cf.waf.score.sqli // SQL injection score
84
+ cf.waf.score.xss // XSS score
85
+
86
+ // Headers & Cookies
87
+ http.request.headers['authorization'][0]
88
+ http.request.cookies['session'][0]
89
+ lower(http.user_agent) // Lowercase user agent
90
+ ```
91
+
92
+ ### Operators
93
+
94
+ ```typescript
95
+ // Comparison
96
+ eq // Equal
97
+ ne // Not equal
98
+ lt // Less than
99
+ le // Less than or equal
100
+ gt // Greater than
101
+ ge // Greater than or equal
102
+
103
+ // String matching
104
+ contains // Substring match
105
+ matches // Regex match (use carefully)
106
+ starts_with // Prefix match
107
+ ends_with in // Suffix match
108
+ // Value in list
109
+ // List operations
110
+ not // Logical NOT
111
+ and // Logical AND
112
+ or // Logical OR
113
+ ```
114
+
115
+ ### Expression Examples
116
+
117
+ ```typescript
118
+ 'cf.waf.score gt 40' // Attack score
119
+ 'http.request.uri.path eq "/api/login" and http.request.method eq "POST"' // Path + method
120
+ 'ip.src in {192.0.2.0/24 203.0.113.0/24}' // IP blocking
121
+ 'ip.geoip.country in {"CN" "RU" "KP"}' // Country blocking
122
+ 'http.user_agent contains "bot"' // User agent
123
+ 'not http.request.headers["authorization"][0]' // Header check
124
+ '(cf.waf.score.sqli gt 20 or cf.waf.score.xss gt 20) and http.request.uri.path starts_with "/api"' // Complex
125
+ ```
126
+
127
+ ## Rate Limiting Configuration
128
+
129
+ ```typescript
130
+ {
131
+ action: 'block',
132
+ expression: 'http.request.uri.path starts_with "/api"',
133
+ action_parameters: {
134
+ ratelimit: {
135
+ // Characteristics define uniqueness: 'ip.src', 'cf.colo.id',
136
+ // 'http.request.headers["key"][0]', 'http.request.cookies["session"][0]'
137
+ characteristics: ['cf.colo.id', 'ip.src'], // Recommended: per-IP per-datacenter
138
+ period: 60, // Time window in seconds
139
+ requests_per_period: 100, // Max requests in period
140
+ mitigation_timeout: 600, // Block duration in seconds
141
+ counting_expression: 'http.request.method ne "GET"', // Optional: filter counted requests
142
+ requests_to_origin: false, // Count all requests (not just origin hits)
143
+ },
144
+ },
145
+ enabled: true,
146
+ }
147
+ ```
148
+
149
+ ## Managed Ruleset Deployment
150
+
151
+ ```typescript
152
+ {
153
+ action: 'execute',
154
+ action_parameters: {
155
+ id: 'efb7b8c949ac4650a09736fc376e9aee', // Cloudflare Managed
156
+ overrides: {
157
+ // Override specific rules
158
+ rules: [
159
+ { id: '5de7edfa648c4d6891dc3e7f84534ffa', action: 'log', enabled: true },
160
+ ],
161
+ // Override categories: 'wordpress', 'sqli', 'xss', 'rce', etc.
162
+ categories: [
163
+ { category: 'wordpress', enabled: false },
164
+ { category: 'sqli', action: 'log' },
165
+ ],
166
+ },
167
+ },
168
+ expression: 'true',
169
+ enabled: true,
170
+ }
171
+ ```
172
+
173
+ ## Skip Rules
174
+
175
+ Skip rules bypass subsequent rule evaluation. Two skip types:
176
+
177
+ **Skip current ruleset**: Skip remaining rules in current phase only
178
+
179
+ ```typescript
180
+ {
181
+ action: 'skip',
182
+ action_parameters: {
183
+ ruleset: 'current', // Skip rest of current ruleset
184
+ },
185
+ expression: 'http.request.uri.path ends_with ".jpg" or http.request.uri.path ends_with ".css"',
186
+ enabled: true,
187
+ }
188
+ ```
189
+
190
+ **Skip entire phases**: Skip one or more phases completely
191
+
192
+ ```typescript
193
+ {
194
+ action: 'skip',
195
+ action_parameters: {
196
+ phases: ['http_request_firewall_managed', 'http_ratelimit'], // Skip multiple phases
197
+ },
198
+ expression: 'ip.src in {192.0.2.0/24 203.0.113.0/24}',
199
+ enabled: true,
200
+ }
201
+ ```
202
+
203
+ **Note**: Skip rules in custom phase can skip managed/ratelimit phases, but not vice versa (execution order).