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,152 @@
1
+ # R2 SQL Configuration
2
+
3
+ Setup and configuration for R2 SQL queries.
4
+
5
+ ## Prerequisites
6
+
7
+ - R2 bucket with Data Catalog enabled
8
+ - API token with R2 permissions
9
+ - Wrangler CLI installed (for CLI queries)
10
+
11
+ ## Enable R2 Data Catalog
12
+
13
+ R2 SQL queries Apache Iceberg tables in R2 Data Catalog. Must enable catalog on bucket first.
14
+
15
+ ### Via Wrangler CLI
16
+
17
+ ```bash
18
+ npx wrangler r2 bucket catalog enable <bucket-name>
19
+ ```
20
+
21
+ Output includes:
22
+
23
+ - **Warehouse name** - Typically same as bucket name
24
+ - **Catalog URI** - REST endpoint for catalog operations
25
+
26
+ Example output:
27
+
28
+ ```
29
+ Catalog enabled successfully
30
+ Warehouse: my-bucket
31
+ Catalog URI: https://abc123.r2.cloudflarestorage.com/iceberg/my-bucket
32
+ ```
33
+
34
+ ### Via Dashboard
35
+
36
+ 1. Navigate to **R2 Object Storage** → Select your bucket
37
+ 2. Click **Settings** tab
38
+ 3. Scroll to **R2 Data Catalog** section
39
+ 4. Click **Enable**
40
+ 5. Note the **Catalog URI** and **Warehouse** name
41
+
42
+ **Important:** Enabling catalog creates metadata directories in bucket but does not modify existing objects.
43
+
44
+ ## Create API Token
45
+
46
+ R2 SQL requires API token with R2 permissions.
47
+
48
+ ### Required Permission
49
+
50
+ **R2 Admin Read & Write** (includes R2 SQL Read permission)
51
+
52
+ ### Via Dashboard
53
+
54
+ 1. Navigate to **R2 Object Storage**
55
+ 2. Click **Manage API tokens** (top right)
56
+ 3. Click **Create API token**
57
+ 4. Select **Admin Read & Write** permission
58
+ 5. Click **Create API Token**
59
+ 6. **Copy token value** - shown only once
60
+
61
+ ### Permission Scope
62
+
63
+ | Permission | Grants Access To |
64
+ | --------------------- | ---------------------------------------------------------------- |
65
+ | R2 Admin Read & Write | R2 storage operations + R2 SQL queries + Data Catalog operations |
66
+ | R2 SQL Read | SQL queries only (no storage writes) |
67
+
68
+ **Note:** R2 SQL Read permission not yet available via Dashboard - use Admin Read & Write.
69
+
70
+ ## Configure Environment
71
+
72
+ ### Wrangler CLI
73
+
74
+ Set environment variable for Wrangler to use:
75
+
76
+ ```bash
77
+ export WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
78
+ ```
79
+
80
+ Or create `.env` file in project directory:
81
+
82
+ ```
83
+ WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
84
+ ```
85
+
86
+ Wrangler automatically loads `.env` file when running commands.
87
+
88
+ ### HTTP API
89
+
90
+ For programmatic access (non-Wrangler), pass token in Authorization header:
91
+
92
+ ```bash
93
+ curl -X POST https://api.cloudflare.com/client/v4/accounts/{account_id}/r2/sql/query \
94
+ -H "Authorization: Bearer <your-token>" \
95
+ -H "Content-Type: application/json" \
96
+ -d '{
97
+ "warehouse": "my-bucket",
98
+ "query": "SELECT * FROM default.my_table LIMIT 10"
99
+ }'
100
+ ```
101
+
102
+ **Note:** HTTP API endpoint URL may vary - see [patterns.md](patterns.md#http-api-query) for current endpoint.
103
+
104
+ ## Verify Setup
105
+
106
+ Test configuration by querying system tables:
107
+
108
+ ```bash
109
+ # List namespaces
110
+ npx wrangler r2 sql query "my-bucket" "SHOW DATABASES"
111
+
112
+ # List tables in namespace
113
+ npx wrangler r2 sql query "my-bucket" "SHOW TABLES IN default"
114
+ ```
115
+
116
+ If successful, returns JSON array of results.
117
+
118
+ ## Troubleshooting
119
+
120
+ ### "Token authentication failed"
121
+
122
+ **Cause:** Invalid or missing token
123
+
124
+ **Solution:**
125
+
126
+ - Verify `WRANGLER_R2_SQL_AUTH_TOKEN` environment variable set
127
+ - Check token has Admin Read & Write permission
128
+ - Create new token if expired
129
+
130
+ ### "Catalog not enabled on bucket"
131
+
132
+ **Cause:** Data Catalog not enabled
133
+
134
+ **Solution:**
135
+
136
+ - Run `npx wrangler r2 bucket catalog enable <bucket-name>`
137
+ - Or enable via Dashboard (R2 → bucket → Settings → R2 Data Catalog)
138
+
139
+ ### "Permission denied"
140
+
141
+ **Cause:** Token lacks required permissions
142
+
143
+ **Solution:**
144
+
145
+ - Verify token has **Admin Read & Write** permission
146
+ - Create new token with correct permissions
147
+
148
+ ## See Also
149
+
150
+ - [r2-data-catalog/configuration.md](../r2-data-catalog/configuration.md) - Detailed token setup and PyIceberg connection
151
+ - [patterns.md](patterns.md) - Query examples using configuration
152
+ - [gotchas.md](gotchas.md) - Common configuration errors
@@ -0,0 +1,228 @@
1
+ # R2 SQL Gotchas
2
+
3
+ Limitations, troubleshooting, and common pitfalls for R2 SQL.
4
+
5
+ ## Critical Limitations
6
+
7
+ ### No Workers Binding
8
+
9
+ **Cannot call R2 SQL from Workers/Pages code** - no binding exists.
10
+
11
+ ```typescript
12
+ // ❌ This doesn't exist
13
+ export default {
14
+ async fetch(request, env) {
15
+ const result = await env.R2_SQL.query('SELECT * FROM table') // Not possible
16
+ return Response.json(result)
17
+ },
18
+ }
19
+ ```
20
+
21
+ **Solutions:**
22
+
23
+ - HTTP API from external systems (not Workers)
24
+ - PyIceberg/Spark via r2-data-catalog REST API
25
+ - For Workers, use D1 or external databases
26
+
27
+ ### ORDER BY Limitations
28
+
29
+ Can only order by:
30
+
31
+ 1. **Partition key columns** - Always supported
32
+ 2. **Aggregation functions** - Supported via shuffle strategy
33
+
34
+ **Cannot order by** regular non-partition columns.
35
+
36
+ ```sql
37
+ -- ✅ Valid: ORDER BY partition key
38
+ SELECT * FROM logs.requests ORDER BY timestamp DESC LIMIT 100;
39
+
40
+ -- ✅ Valid: ORDER BY aggregation
41
+ SELECT region, SUM(amount) FROM sales.transactions
42
+ GROUP BY region ORDER BY SUM(amount) DESC;
43
+
44
+ -- ❌ Invalid: ORDER BY non-partition column
45
+ SELECT * FROM logs.requests ORDER BY user_id;
46
+
47
+ -- ❌ Invalid: ORDER BY alias (must repeat function)
48
+ SELECT region, SUM(amount) as total FROM sales.transactions
49
+ GROUP BY region ORDER BY total; -- Use ORDER BY SUM(amount)
50
+ ```
51
+
52
+ Check partition spec: `DESCRIBE namespace.table_name`
53
+
54
+ ## SQL Feature Limitations
55
+
56
+ | Feature | Supported | Notes |
57
+ | ------------------------------- | --------- | ------------------------- |
58
+ | SELECT, WHERE, GROUP BY, HAVING | ✅ | Standard support |
59
+ | COUNT, SUM, AVG, MIN, MAX | ✅ | Standard aggregations |
60
+ | ORDER BY partition/aggregation | ✅ | See above |
61
+ | LIMIT | ✅ | Max 10,000 |
62
+ | Column aliases | ❌ | No AS alias |
63
+ | Expressions in SELECT | ❌ | No col1 + col2 |
64
+ | ORDER BY non-partition | ❌ | Fails at runtime |
65
+ | JOINs, subqueries, CTEs | ❌ | Denormalize at write time |
66
+ | Window functions, UNION | ❌ | Use external engines |
67
+ | INSERT/UPDATE/DELETE | ❌ | Use PyIceberg/Pipelines |
68
+ | Nested columns, arrays, JSON | ❌ | Flatten at write time |
69
+
70
+ **Workarounds:**
71
+
72
+ - No JOINs: Denormalize data or use Spark/PyIceberg
73
+ - No subqueries: Split into multiple queries
74
+ - No aliases: Accept generated names, transform in app
75
+
76
+ ## Common Errors
77
+
78
+ ### "Column not found"
79
+
80
+ **Cause:** Typo, column doesn't exist, or case mismatch
81
+ **Solution:** `DESCRIBE namespace.table_name` to check schema
82
+
83
+ ### "Type mismatch"
84
+
85
+ ```sql
86
+ -- ❌ Wrong types
87
+ WHERE status = '200' -- string instead of integer
88
+ WHERE timestamp > '2025-01-01' -- missing time/timezone
89
+
90
+ -- ✅ Correct types
91
+ WHERE status = 200
92
+ WHERE timestamp > '2025-01-01T00:00:00Z'
93
+ ```
94
+
95
+ ### "ORDER BY column not in partition key"
96
+
97
+ **Cause:** Ordering by non-partition column
98
+ **Solution:** Use partition key, aggregation, or remove ORDER BY. Check: `DESCRIBE table`
99
+
100
+ ### "Token authentication failed"
101
+
102
+ ```bash
103
+ # Check/set token
104
+ echo $WRANGLER_R2_SQL_AUTH_TOKEN
105
+ export WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
106
+
107
+ # Or .env file
108
+ echo "WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>" > .env
109
+ ```
110
+
111
+ ### "Table not found"
112
+
113
+ ```sql
114
+ -- Verify catalog and tables
115
+ SHOW DATABASES;
116
+ SHOW TABLES IN namespace_name;
117
+ ```
118
+
119
+ Enable catalog: `npx wrangler r2 bucket catalog enable <bucket>`
120
+
121
+ ### "LIMIT exceeds maximum"
122
+
123
+ Max LIMIT is 10,000. For pagination, use WHERE filters with partition keys.
124
+
125
+ ### "No data returned" (unexpected)
126
+
127
+ **Debug steps:**
128
+
129
+ 1. `SELECT COUNT(*) FROM table` - verify data exists
130
+ 2. Remove WHERE filters incrementally
131
+ 3. `SELECT * FROM table LIMIT 10` - inspect actual data/types
132
+
133
+ ## Performance Issues
134
+
135
+ ### Slow Queries
136
+
137
+ **Causes:** Too many partitions, large LIMIT, no filters, small files
138
+
139
+ ```sql
140
+ -- ❌ Slow: No filters
141
+ SELECT * FROM logs.requests LIMIT 10000;
142
+
143
+ -- ✅ Fast: Filter on partition key
144
+ SELECT * FROM logs.requests
145
+ WHERE timestamp >= '2025-01-15T00:00:00Z' AND timestamp < '2025-01-16T00:00:00Z'
146
+ LIMIT 1000;
147
+
148
+ -- ✅ Faster: Multiple filters
149
+ SELECT * FROM logs.requests
150
+ WHERE timestamp >= '2025-01-15T00:00:00Z' AND status = 404 AND method = 'GET'
151
+ LIMIT 1000;
152
+ ```
153
+
154
+ **File optimization:**
155
+
156
+ - Target Parquet size: 100-500MB compressed
157
+ - Pipelines roll interval: 300+ sec (prod), 10 sec (dev)
158
+ - Run compaction to merge small files
159
+
160
+ ### Query Timeout
161
+
162
+ **Solution:** Add restrictive WHERE filters, reduce time range, query smaller intervals
163
+
164
+ ```sql
165
+ -- ❌ Times out: Year-long aggregation
166
+ SELECT status, COUNT(*) FROM logs.requests
167
+ WHERE timestamp >= '2024-01-01T00:00:00Z' GROUP BY status;
168
+
169
+ -- ✅ Faster: Month-long aggregation
170
+ SELECT status, COUNT(*) FROM logs.requests
171
+ WHERE timestamp >= '2025-01-01T00:00:00Z' AND timestamp < '2025-02-01T00:00:00Z'
172
+ GROUP BY status;
173
+ ```
174
+
175
+ ## Best Practices
176
+
177
+ ### Partitioning
178
+
179
+ - **Time-series:** Partition by day/hour on timestamp
180
+ - **Avoid:** High-cardinality keys (user_id), >10,000 partitions
181
+
182
+ ```python
183
+ from pyiceberg.partitioning import PartitionSpec, PartitionField
184
+ from pyiceberg.transforms import DayTransform
185
+
186
+ PartitionSpec(PartitionField(source_id=1, field_id=1000, transform=DayTransform(), name="day"))
187
+ ```
188
+
189
+ ### Query Writing
190
+
191
+ - **Always use LIMIT** for early termination
192
+ - **Filter on partition keys first** for pruning
193
+ - **Combine filters with AND** for more pruning
194
+
195
+ ```sql
196
+ -- Good
197
+ WHERE timestamp >= '2025-01-15T00:00:00Z' AND status = 404 AND method = 'GET' LIMIT 100
198
+ ```
199
+
200
+ ### Type Safety
201
+
202
+ - Quote strings: `'GET'` not `GET`
203
+ - RFC3339 timestamps: `'2025-01-01T00:00:00Z'` not `'2025-01-01'`
204
+ - ISO dates: `'2025-01-15'` not `'01/15/2025'`
205
+
206
+ ### Data Organization
207
+
208
+ - **Pipelines:** Dev `roll_file_time: 10`, Prod `roll_file_time: 300+`
209
+ - **Compression:** Use `zstd`
210
+ - **Maintenance:** Compaction for small files, expire old snapshots
211
+
212
+ ## Debugging Checklist
213
+
214
+ 1. `npx wrangler r2 bucket catalog enable <bucket>` - Verify catalog
215
+ 2. `echo $WRANGLER_R2_SQL_AUTH_TOKEN` - Check token
216
+ 3. `SHOW DATABASES` - List namespaces
217
+ 4. `SHOW TABLES IN namespace` - List tables
218
+ 5. `DESCRIBE namespace.table` - Check schema
219
+ 6. `SELECT COUNT(*) FROM namespace.table` - Verify data
220
+ 7. `SELECT * FROM namespace.table LIMIT 10` - Test simple query
221
+ 8. Add filters incrementally
222
+
223
+ ## See Also
224
+
225
+ - [api.md](api.md) - SQL syntax
226
+ - [patterns.md](patterns.md) - Query optimization
227
+ - [configuration.md](configuration.md) - Setup
228
+ - [Cloudflare R2 SQL Docs](https://developers.cloudflare.com/r2-sql/)
@@ -0,0 +1,230 @@
1
+ # R2 SQL Patterns
2
+
3
+ Common patterns, use cases, and integration examples for R2 SQL.
4
+
5
+ ## Wrangler CLI Query
6
+
7
+ ```bash
8
+ # Basic query
9
+ npx wrangler r2 sql query "my-bucket" "SELECT * FROM default.logs LIMIT 10"
10
+
11
+ # Multi-line query
12
+ npx wrangler r2 sql query "my-bucket" "
13
+ SELECT status, COUNT(*), AVG(response_time)
14
+ FROM logs.http_requests
15
+ WHERE timestamp >= '2025-01-01T00:00:00Z'
16
+ GROUP BY status
17
+ ORDER BY COUNT(*) DESC
18
+ LIMIT 100
19
+ "
20
+
21
+ # Use environment variable
22
+ export R2_SQL_WAREHOUSE="my-bucket"
23
+ npx wrangler r2 sql query "$R2_SQL_WAREHOUSE" "SELECT * FROM default.logs"
24
+ ```
25
+
26
+ ## HTTP API Query
27
+
28
+ For programmatic access from external systems (not Workers - see gotchas.md).
29
+
30
+ ```bash
31
+ curl -X POST https://api.cloudflare.com/client/v4/accounts/{account_id}/r2/sql/query \
32
+ -H "Authorization: Bearer <your-token>" \
33
+ -H "Content-Type: application/json" \
34
+ -d '{
35
+ "warehouse": "my-bucket",
36
+ "query": "SELECT * FROM default.my_table WHERE status = 200 LIMIT 100"
37
+ }'
38
+ ```
39
+
40
+ Response:
41
+
42
+ ```json
43
+ {
44
+ "success": true,
45
+ "result": [{ "user_id": "user_123", "timestamp": "2025-01-15T10:30:00Z", "status": 200 }],
46
+ "errors": []
47
+ }
48
+ ```
49
+
50
+ ## Pipelines Integration
51
+
52
+ Stream data to Iceberg tables via Pipelines, then query with R2 SQL.
53
+
54
+ ```bash
55
+ # Setup pipeline (select Data Catalog Table destination)
56
+ npx wrangler pipelines setup
57
+
58
+ # Key settings:
59
+ # - Destination: Data Catalog Table
60
+ # - Compression: zstd (recommended)
61
+ # - Roll file time: 300+ sec (production), 10 sec (dev)
62
+
63
+ # Send data to pipeline
64
+ curl -X POST https://{stream-id}.ingest.cloudflare.com \
65
+ -H "Content-Type: application/json" \
66
+ -d '[{"user_id": "user_123", "event_type": "purchase", "timestamp": "2025-01-15T10:30:00Z", "amount": 29.99}]'
67
+
68
+ # Query ingested data (wait for roll interval)
69
+ npx wrangler r2 sql query "my-bucket" "
70
+ SELECT event_type, COUNT(*), SUM(amount)
71
+ FROM default.events
72
+ WHERE timestamp >= '2025-01-15T00:00:00Z'
73
+ GROUP BY event_type
74
+ "
75
+ ```
76
+
77
+ See [pipelines/patterns.md](../pipelines/patterns.md) for detailed setup.
78
+
79
+ ## PyIceberg Integration
80
+
81
+ Create and populate Iceberg tables with PyIceberg, then query with R2 SQL.
82
+
83
+ ```python
84
+ from pyiceberg.catalog.rest import RestCatalog
85
+ import pyarrow as pa
86
+ import pandas as pd
87
+
88
+ # Setup catalog
89
+ catalog = RestCatalog(
90
+ name="my_catalog",
91
+ warehouse="my-bucket",
92
+ uri="https://<account-id>.r2.cloudflarestorage.com/iceberg/my-bucket",
93
+ token="<your-token>",
94
+ )
95
+ catalog.create_namespace_if_not_exists("analytics")
96
+
97
+ # Create table
98
+ schema = pa.schema([
99
+ pa.field("user_id", pa.string(), nullable=False),
100
+ pa.field("event_time", pa.timestamp("us", tz="UTC"), nullable=False),
101
+ pa.field("page_views", pa.int64(), nullable=False),
102
+ ])
103
+ table = catalog.create_table(("analytics", "user_metrics"), schema=schema)
104
+
105
+ # Append data
106
+ df = pd.DataFrame({
107
+ "user_id": ["user_1", "user_2"],
108
+ "event_time": pd.to_datetime(["2025-01-15 10:00:00", "2025-01-15 11:00:00"], utc=True),
109
+ "page_views": [10, 25],
110
+ })
111
+ table.append(pa.Table.from_pandas(df, schema=schema))
112
+ ```
113
+
114
+ Query with R2 SQL:
115
+
116
+ ```bash
117
+ npx wrangler r2 sql query "my-bucket" "
118
+ SELECT user_id, SUM(page_views)
119
+ FROM analytics.user_metrics
120
+ WHERE event_time >= '2025-01-15T00:00:00Z'
121
+ GROUP BY user_id
122
+ "
123
+ ```
124
+
125
+ See [r2-data-catalog/patterns.md](../r2-data-catalog/patterns.md) for advanced PyIceberg patterns.
126
+
127
+ ## Use Cases
128
+
129
+ ### Log Analytics
130
+
131
+ ```sql
132
+ -- Error rate by endpoint
133
+ SELECT path, COUNT(*), SUM(CASE WHEN status >= 400 THEN 1 ELSE 0 END) as errors
134
+ FROM logs.http_requests
135
+ WHERE timestamp BETWEEN '2025-01-01T00:00:00Z' AND '2025-01-31T23:59:59Z'
136
+ GROUP BY path ORDER BY errors DESC LIMIT 20;
137
+
138
+ -- Response time stats
139
+ SELECT method, MIN(response_time_ms), AVG(response_time_ms), MAX(response_time_ms)
140
+ FROM logs.http_requests WHERE timestamp >= '2025-01-15T00:00:00Z' GROUP BY method;
141
+
142
+ -- Traffic by status
143
+ SELECT status, COUNT(*) FROM logs.http_requests
144
+ WHERE timestamp >= '2025-01-15T00:00:00Z' AND method = 'GET'
145
+ GROUP BY status ORDER BY COUNT(*) DESC;
146
+ ```
147
+
148
+ ### Fraud Detection
149
+
150
+ ```sql
151
+ -- High-value transactions
152
+ SELECT location, COUNT(*), SUM(amount), AVG(amount)
153
+ FROM fraud.transactions WHERE transaction_timestamp >= '2025-01-01T00:00:00Z' AND amount > 1000.0
154
+ GROUP BY location ORDER BY SUM(amount) DESC LIMIT 20;
155
+
156
+ -- Flagged transactions
157
+ SELECT merchant_category, COUNT(*), AVG(amount) FROM fraud.transactions
158
+ WHERE is_fraud_flag = true AND transaction_timestamp >= '2025-01-01T00:00:00Z'
159
+ GROUP BY merchant_category HAVING COUNT(*) > 10 ORDER BY COUNT(*) DESC;
160
+ ```
161
+
162
+ ### Business Intelligence
163
+
164
+ ```sql
165
+ -- Sales by department
166
+ SELECT department, SUM(revenue), AVG(revenue), COUNT(*) FROM sales.transactions
167
+ WHERE sale_date >= '2024-01-01' GROUP BY department ORDER BY SUM(revenue) DESC LIMIT 10;
168
+
169
+ -- Product performance
170
+ SELECT category, COUNT(DISTINCT product_id), SUM(units_sold), SUM(revenue)
171
+ FROM sales.product_sales WHERE sale_date BETWEEN '2024-10-01' AND '2024-12-31'
172
+ GROUP BY category ORDER BY SUM(revenue) DESC;
173
+ ```
174
+
175
+ ## Connecting External Engines
176
+
177
+ R2 Data Catalog exposes Iceberg REST API. Connect Spark, Snowflake, Trino, DuckDB, etc.
178
+
179
+ ```scala
180
+ // Apache Spark example
181
+ val spark = SparkSession.builder()
182
+ .config("spark.sql.catalog.my_catalog", "org.apache.iceberg.spark.SparkCatalog")
183
+ .config("spark.sql.catalog.my_catalog.catalog-impl", "org.apache.iceberg.rest.RESTCatalog")
184
+ .config("spark.sql.catalog.my_catalog.uri", "https://<account-id>.r2.cloudflarestorage.com/iceberg/my-bucket")
185
+ .config("spark.sql.catalog.my_catalog.token", "<token>")
186
+ .getOrCreate()
187
+
188
+ spark.sql("SELECT * FROM my_catalog.default.my_table LIMIT 10").show()
189
+ ```
190
+
191
+ See [r2-data-catalog/patterns.md](../r2-data-catalog/patterns.md) for more engines.
192
+
193
+ ## Performance Optimization
194
+
195
+ ### Partitioning
196
+
197
+ - **Time-series:** day/hour on timestamp
198
+ - **Geographic:** region/country
199
+ - **Avoid:** High-cardinality keys (user_id)
200
+
201
+ ```python
202
+ from pyiceberg.partitioning import PartitionSpec, PartitionField
203
+ from pyiceberg.transforms import DayTransform
204
+
205
+ PartitionSpec(PartitionField(source_id=1, field_id=1000, transform=DayTransform(), name="day"))
206
+ ```
207
+
208
+ ### Query Optimization
209
+
210
+ - **Always use LIMIT** for early termination
211
+ - **Filter on partition keys first**
212
+ - **Multiple filters** for better pruning
213
+
214
+ ```sql
215
+ -- Better: Multiple filters on partition key
216
+ SELECT * FROM logs.requests
217
+ WHERE timestamp >= '2025-01-15T00:00:00Z' AND status = 404 AND method = 'GET' LIMIT 100;
218
+ ```
219
+
220
+ ### File Organization
221
+
222
+ - **Pipelines roll:** Dev 10-30s, Prod 300+s
223
+ - **Target Parquet:** 100-500MB compressed
224
+
225
+ ## See Also
226
+
227
+ - [api.md](api.md) - SQL syntax reference
228
+ - [gotchas.md](gotchas.md) - Limitations and troubleshooting
229
+ - [r2-data-catalog/patterns.md](../r2-data-catalog/patterns.md) - PyIceberg advanced patterns
230
+ - [pipelines/patterns.md](../pipelines/patterns.md) - Streaming ingestion patterns
@@ -0,0 +1,66 @@
1
+ # Cloudflare Realtime SFU Reference
2
+
3
+ Expert guidance for building real-time audio/video/data applications using Cloudflare Realtime SFU (Selective Forwarding Unit).
4
+
5
+ ## Reading Order
6
+
7
+ | Task | Files | ~Tokens |
8
+ | --------------------------- | ------------------------------ | ------- |
9
+ | New project | README → configuration | ~1200 |
10
+ | Implement publish/subscribe | README → api | ~1600 |
11
+ | Add PartyTracks | patterns (PartyTracks section) | ~800 |
12
+ | Build presence system | patterns (DO section) | ~800 |
13
+ | Debug connection issues | gotchas | ~700 |
14
+ | Scale to millions | patterns (Cascading section) | ~600 |
15
+ | Add simulcast | patterns (Advanced section) | ~500 |
16
+ | Configure TURN | configuration (TURN section) | ~400 |
17
+
18
+ ## In This Reference
19
+
20
+ - **[configuration.md](configuration.md)** - Setup, deployment, environment variables, Wrangler config
21
+ - **[api.md](api.md)** - Sessions, tracks, endpoints, request/response patterns
22
+ - **[patterns.md](patterns.md)** - Architecture patterns, use cases, integration examples
23
+ - **[gotchas.md](gotchas.md)** - Common issues, debugging, performance, security
24
+
25
+ ## Quick Start
26
+
27
+ Cloudflare Realtime SFU: WebRTC infrastructure on global network (310+ cities). Anycast routing, no regional constraints, pub/sub model.
28
+
29
+ **Core concepts:**
30
+
31
+ - **Sessions:** WebRTC PeerConnection to Cloudflare edge
32
+ - **Tracks:** Audio/video/data channels you publish or subscribe to
33
+ - **No rooms:** Build presence layer yourself via track sharing (see patterns.md)
34
+
35
+ **Mental model:** Your client establishes one WebRTC session, publishes tracks (audio/video), shares track IDs via your backend, others subscribe to your tracks using track IDs + your session ID.
36
+
37
+ ## Choose Your Approach
38
+
39
+ | Approach | When to Use | Complexity |
40
+ | --------------- | -------------------------------------------- | ---------------------------------------------- |
41
+ | **PartyTracks** | Production apps with device switching, React | Low - Observable-based, handles reconnections |
42
+ | **Raw API** | Custom requirements, non-browser, learning | Medium - Full control, manual WebRTC lifecycle |
43
+ | **RealtimeKit** | End-to-end SDK with UI components | Lowest - Managed state, React hooks |
44
+
45
+ **Recommendation:** Start with PartyTracks for most production applications. See patterns.md for PartyTracks examples.
46
+
47
+ ## SFU vs RealtimeKit
48
+
49
+ - **Realtime SFU:** WebRTC infrastructure (this reference). Build your own signaling, presence, UI.
50
+ - **RealtimeKit:** SDK layer on top of SFU. Includes React hooks, state management, UI components. Part of Cloudflare AI platform.
51
+
52
+ Use SFU directly when you need custom signaling or non-React framework. Use RealtimeKit for faster development with React.
53
+
54
+ ## Setup
55
+
56
+ Dashboard: https://dash.cloudflare.com/?to=/:account/calls
57
+
58
+ Get `CALLS_APP_ID` and `CALLS_APP_SECRET` from dashboard, then see configuration.md for deployment.
59
+
60
+ ## See Also
61
+
62
+ - [Orange Meets Demo](https://demo.orange.cloudflare.dev/)
63
+ - [Orange Source](https://github.com/cloudflare/orange)
64
+ - [Calls Examples](https://github.com/cloudflare/calls-examples)
65
+ - [API Reference](https://developers.cloudflare.com/api/resources/calls/)
66
+ - [RealtimeKit Docs](https://developers.cloudflare.com/workers-ai/realtimekit/)