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,206 @@
1
+ # RealtimeKit Gotchas & Troubleshooting
2
+
3
+ ## Common Errors
4
+
5
+ ### "Cannot connect to meeting"
6
+
7
+ **Cause:** Auth token invalid/expired, API credentials lack permissions, or network blocks WebRTC
8
+ **Solution:**
9
+ Verify token validity, check API token has **Realtime / Realtime Admin** permissions, enable TURN service for restrictive networks
10
+
11
+ ### "No video/audio tracks"
12
+
13
+ **Cause:** Browser permissions not granted, video/audio not enabled, device in use, or device unavailable
14
+ **Solution:**
15
+ Request browser permissions explicitly, verify initialization config, use `meeting.self.getAllDevices()` to debug, close other apps using device
16
+
17
+ ### "Participant count mismatched"
18
+
19
+ **Cause:** `meeting.participants` doesn't include `meeting.self`
20
+ **Solution:** Total count = `meeting.participants.joined.size() + 1`
21
+
22
+ ### "Events not firing"
23
+
24
+ **Cause:** Listeners registered after actions, incorrect event name, or wrong namespace
25
+ **Solution:**
26
+ Register listeners before calling `meeting.join()`, check event names against docs, verify correct namespace
27
+
28
+ ### "CORS errors in API calls"
29
+
30
+ **Cause:** Making REST API calls from client-side
31
+ **Solution:** All REST API calls **must** be server-side (Workers, backend). Never expose API tokens to clients.
32
+
33
+ ### "Preset not applying"
34
+
35
+ **Cause:** Preset doesn't exist, name mismatch (case-sensitive), or participant created before preset
36
+ **Solution:**
37
+ Verify preset exists via Dashboard or API, check exact spelling and case, create preset before adding participants
38
+
39
+ ### "Token reuse error"
40
+
41
+ **Cause:** Reusing participant tokens across sessions
42
+ **Solution:** Generate fresh token per session. Use refresh endpoint if token expires during session.
43
+
44
+ ### "Video quality poor"
45
+
46
+ **Cause:** Insufficient bandwidth, resolution/bitrate too high, or CPU overload
47
+ **Solution:**
48
+ Lower `mediaConfiguration.video` resolution/frameRate, monitor network conditions, reduce participant count or grid size
49
+
50
+ ### "Echo or audio feedback"
51
+
52
+ **Cause:** Multiple devices picking up same audio source
53
+ **Solution:**
54
+
55
+ - Lower `mediaConfiguration.video` resolution/frameRate
56
+ - Monitor network conditions
57
+ - Reduce participant count or grid size
58
+
59
+ ### Issue: Echo or audio feedback
60
+
61
+ **Cause**: Multiple devices picking up same audio source
62
+
63
+ **Solutions**:
64
+ Enable `echoCancellation: true` in `mediaConfiguration.audio`, use headphones, mute when not speaking
65
+
66
+ ### "Screen share not working"
67
+
68
+ **Cause:** Browser doesn't support screen sharing API, permission denied, or wrong `displaySurface` config
69
+ **Solution:**
70
+ Use Chrome/Edge/Firefox (Safari limited support), check browser permissions, try different `displaySurface` values ('window', 'monitor', 'browser')
71
+
72
+ ### "How do I schedule meetings?"
73
+
74
+ **Cause:** RealtimeKit has no built-in scheduling system
75
+ **Solution:**
76
+ Store meeting IDs in your database with timestamps. Generate participant tokens only when user should join. Example:
77
+
78
+ ```typescript
79
+ // Store in DB
80
+ { meetingId: 'abc123', scheduledFor: '2026-02-15T10:00:00Z', userId: 'user456' }
81
+
82
+ // Generate token when user clicks "Join" near scheduled time
83
+ const response = await fetch('/api/join-meeting', {
84
+ method: 'POST',
85
+ body: JSON.stringify({ meetingId: 'abc123' })
86
+ });
87
+ const { authToken } = await response.json();
88
+ ```
89
+
90
+ ### "Recording not starting"
91
+
92
+ **Cause:** Preset lacks recording permissions, no active session, or API call from client
93
+ **Solution:**
94
+ Verify preset has `canRecord: true` and `canStartStopRecording: true`, ensure session is active (at least one participant), make recording API calls server-side only
95
+
96
+ ## Limits
97
+
98
+ | Resource | Limit |
99
+ | ------------------------------- | ------------------ |
100
+ | Max participants per session | 100 |
101
+ | Max concurrent sessions per App | 1000 |
102
+ | Max recording duration | 6 hours |
103
+ | Max meeting duration | 24 hours |
104
+ | Max chat message length | 4000 characters |
105
+ | Max preset name length | 64 characters |
106
+ | Max meeting title length | 256 characters |
107
+ | Max participant name length | 256 characters |
108
+ | Token expiration | 24 hours (default) |
109
+ | WebRTC ports required | UDP 1024-65535 |
110
+
111
+ ## Network Requirements
112
+
113
+ ### Firewall Rules
114
+
115
+ Allow outbound UDP/TCP to:
116
+
117
+ - `*.cloudflare.com` ports 443, 80
118
+ - UDP ports 1024-65535 (WebRTC media)
119
+
120
+ ### TURN Service
121
+
122
+ Enable for users behind restrictive firewalls/proxies:
123
+
124
+ ```jsonc
125
+ // wrangler.jsonc
126
+ {
127
+ "vars": {
128
+ "TURN_SERVICE_ID": "your_turn_service_id",
129
+ },
130
+ // Set secret: wrangler secret put TURN_SERVICE_TOKEN
131
+ }
132
+ ```
133
+
134
+ TURN automatically configured in SDK when enabled in account.
135
+
136
+ ## Debugging Tips
137
+
138
+ ```typescript
139
+ // Check devices
140
+ const devices = await meeting.self.getAllDevices()
141
+ meeting.self.on('deviceListUpdate', ({ added, removed, devices }) =>
142
+ console.log('Devices:', { added, removed, devices })
143
+ )
144
+
145
+ // Monitor participants
146
+ meeting.participants.joined.on('participantJoined', (p) =>
147
+ console.log(`${p.name} joined:`, {
148
+ id: p.id,
149
+ userId: p.userId,
150
+ audioEnabled: p.audioEnabled,
151
+ videoEnabled: p.videoEnabled,
152
+ })
153
+ )
154
+
155
+ // Check room state
156
+ meeting.self.on('roomJoined', () =>
157
+ console.log('Room:', {
158
+ meetingId: meeting.meta.meetingId,
159
+ meetingTitle: meeting.meta.meetingTitle,
160
+ participantCount: meeting.participants.joined.size() + 1,
161
+ audioEnabled: meeting.self.audioEnabled,
162
+ videoEnabled: meeting.self.videoEnabled,
163
+ })
164
+ )
165
+
166
+ // Log all events
167
+ ;[
168
+ 'roomJoined',
169
+ 'audioUpdate',
170
+ 'videoUpdate',
171
+ 'screenShareUpdate',
172
+ 'deviceUpdate',
173
+ 'deviceListUpdate',
174
+ ].forEach((event) => meeting.self.on(event, (data) => console.log(`[self] ${event}:`, data)))
175
+ ;['participantJoined', 'participantLeft'].forEach((event) =>
176
+ meeting.participants.joined.on(event, (data) => console.log(`[participants] ${event}:`, data))
177
+ )
178
+ meeting.chat.on('chatUpdate', (data) => console.log('[chat] chatUpdate:', data))
179
+ ```
180
+
181
+ ## Security & Performance
182
+
183
+ ### Security: Do NOT
184
+
185
+ - Expose `CLOUDFLARE_API_TOKEN` in client code, hardcode credentials in frontend
186
+ - Reuse participant tokens, store tokens in localStorage without encryption
187
+ - Allow client-side meeting creation
188
+
189
+ ### Security: DO
190
+
191
+ - Generate tokens server-side only, use HTTPS, implement rate limiting
192
+ - Validate user auth before generating tokens, use `custom_participant_id` to map to your user system
193
+ - Set appropriate preset permissions per user role, rotate API tokens regularly
194
+
195
+ ### Performance
196
+
197
+ - **CPU**: Lower video resolution/frameRate, disable video for audio-only, use `meeting.participants.active` for large meetings, implement virtual scrolling
198
+ - **Bandwidth**: Set max resolution in `mediaConfiguration`, disable screenshare audio if unneeded, use audio-only mode, implement adaptive bitrate
199
+ - **Memory**: Clean up event listeners on unmount, call `meeting.leave()` when done, don't store large participant arrays
200
+
201
+ ## In This Reference
202
+
203
+ - [README.md](README.md) - Overview, core concepts, quick start
204
+ - [configuration.md](configuration.md) - SDK config, presets, wrangler setup
205
+ - [api.md](api.md) - Client SDK APIs, REST endpoints
206
+ - [patterns.md](patterns.md) - Common patterns, React hooks, backend integration
@@ -0,0 +1,240 @@
1
+ # RealtimeKit Patterns
2
+
3
+ ## UI Kit (Minimal Code)
4
+
5
+ ```tsx
6
+ // React
7
+ import { RtkMeeting } from '@cloudflare/realtimekit-react-ui';
8
+ <RtkMeeting authToken="<token>" onLeave={() => console.log('Left')} />
9
+
10
+ // Angular
11
+ @Component({ template: `<rtk-meeting [authToken]="authToken" (rtkLeave)="onLeave($event)"></rtk-meeting>` })
12
+ export class AppComponent { authToken = '<token>'; onLeave(event: unknown) {} }
13
+
14
+ // HTML/Web Components
15
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@cloudflare/realtimekit-ui/dist/realtimekit-ui/realtimekit-ui.esm.js"></script>
16
+ <rtk-meeting id="meeting"></rtk-meeting>
17
+ <script>document.getElementById('meeting').authToken = '<token>';</script>
18
+ ```
19
+
20
+ ## UI Components
21
+
22
+ RealtimeKit provides 133+ pre-built Stencil.js Web Components with framework wrappers:
23
+
24
+ ### Layout Components
25
+
26
+ - `<RtkMeeting>` - Full meeting UI (all-in-one)
27
+ - `<RtkHeader>`, `<RtkStage>`, `<RtkControlbar>` - Layout sections
28
+ - `<RtkSidebar>` - Chat/participants sidebar
29
+ - `<RtkGrid>` - Adaptive video grid
30
+
31
+ ### Control Components
32
+
33
+ - `<RtkMicToggle>`, `<RtkCameraToggle>` - Media controls
34
+ - `<RtkScreenShareToggle>` - Screen sharing
35
+ - `<RtkLeaveButton>` - Leave meeting
36
+ - `<RtkSettingsModal>` - Device settings
37
+
38
+ ### Grid Variants
39
+
40
+ - `<RtkSpotlightGrid>` - Active speaker focus
41
+ - `<RtkAudioGrid>` - Audio-only mode
42
+ - `<RtkPaginatedGrid>` - Paginated layout
43
+
44
+ **See full catalog**: https://docs.realtime.cloudflare.com/ui-kit
45
+
46
+ ## Core SDK Patterns
47
+
48
+ ### Basic Setup
49
+
50
+ ```typescript
51
+ import RealtimeKitClient from '@cloudflare/realtimekit'
52
+
53
+ const meeting = new RealtimeKitClient({ authToken, video: true, audio: true })
54
+ meeting.self.on('roomJoined', () => console.log('Joined:', meeting.meta.meetingTitle))
55
+ meeting.participants.joined.on('participantJoined', (p) => console.log(`${p.name} joined`))
56
+ await meeting.join()
57
+ ```
58
+
59
+ ### Video Grid & Device Selection
60
+
61
+ ```typescript
62
+ // Video grid
63
+ function VideoGrid({ meeting }) {
64
+ const [participants, setParticipants] = useState([]);
65
+ useEffect(() => {
66
+ const update = () => setParticipants(meeting.participants.joined.toArray());
67
+ meeting.participants.joined.on('participantJoined', update);
68
+ meeting.participants.joined.on('participantLeft', update);
69
+ update();
70
+ return () => { meeting.participants.joined.off('participantJoined', update); meeting.participants.joined.off('participantLeft', update); };
71
+ }, [meeting]);
72
+ return <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))' }}>
73
+ {participants.map(p => <VideoTile key={p.id} participant={p} />)}
74
+ </div>;
75
+ }
76
+
77
+ function VideoTile({ participant }) {
78
+ const videoRef = useRef<HTMLVideoElement>(null);
79
+ useEffect(() => {
80
+ if (videoRef.current && participant.videoTrack) videoRef.current.srcObject = new MediaStream([participant.videoTrack]);
81
+ }, [participant.videoTrack]);
82
+ return <div><video ref={videoRef} autoPlay playsInline muted /><div>{participant.name}</div></div>;
83
+ }
84
+
85
+ // Device selection
86
+ const devices = await meeting.self.getAllDevices();
87
+ const switchCamera = (deviceId: string) => {
88
+ const device = devices.find(d => d.deviceId === deviceId);
89
+ if (device) await meeting.self.setDevice(device);
90
+ };
91
+ ```
92
+
93
+ ## React Hooks (Official)
94
+
95
+ ```typescript
96
+ import { useRealtimeKitClient, useRealtimeKitSelector } from '@cloudflare/realtimekit-react-ui';
97
+
98
+ function MyComponent() {
99
+ const [meeting, initMeeting] = useRealtimeKitClient();
100
+ const audioEnabled = useRealtimeKitSelector(m => m.self.audioEnabled);
101
+ const participantCount = useRealtimeKitSelector(m => m.participants.joined.size());
102
+
103
+ useEffect(() => { initMeeting({ authToken: '<token>' }); }, []);
104
+
105
+ return <div>
106
+ <button onClick={() => meeting?.self.enableAudio()}>{audioEnabled ? 'Mute' : 'Unmute'}</button>
107
+ <span>{participantCount} participants</span>
108
+ </div>;
109
+ }
110
+ ```
111
+
112
+ **Benefits:** Automatic re-renders, memoized selectors, type-safe
113
+
114
+ ## Waitlist Handling
115
+
116
+ ```typescript
117
+ // Monitor waitlist
118
+ meeting.participants.waitlisted.on('participantJoined', (participant) => {
119
+ console.log(`${participant.name} is waiting`)
120
+ // Show admin UI to approve/reject
121
+ })
122
+
123
+ // Approve from waitlist (backend only)
124
+ await fetch(
125
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/realtime/kit/${appId}/meetings/${meetingId}/active-session/waitlist/approve`,
126
+ {
127
+ method: 'POST',
128
+ headers: { Authorization: `Bearer ${apiToken}` },
129
+ body: JSON.stringify({ user_ids: [participant.userId] }),
130
+ }
131
+ )
132
+
133
+ // Client receives automatic transition when approved
134
+ meeting.self.on('roomJoined', () => console.log('Approved and joined'))
135
+ ```
136
+
137
+ ## Audio-Only Mode
138
+
139
+ ```typescript
140
+ const meeting = new RealtimeKitClient({
141
+ authToken: '<token>',
142
+ video: false, // Disable video
143
+ audio: true,
144
+ mediaConfiguration: {
145
+ audio: {
146
+ echoCancellation: true,
147
+ noiseSuppression: true,
148
+ autoGainControl: true
149
+ }
150
+ }
151
+ });
152
+
153
+ // Use audio grid component
154
+ import { RtkAudioGrid } from '@cloudflare/realtimekit-react-ui';
155
+ <RtkAudioGrid meeting={meeting} />
156
+ ```
157
+
158
+ ## Addon System
159
+
160
+ ```typescript
161
+ // List available addons
162
+ meeting.plugins.all.forEach((plugin) => {
163
+ console.log(plugin.id, plugin.name, plugin.active)
164
+ })
165
+
166
+ // Activate collaborative app
167
+ await meeting.plugins.activate('whiteboard-addon-id')
168
+
169
+ // Listen for activations
170
+ meeting.plugins.on('pluginActivated', ({ plugin }) => {
171
+ console.log(`${plugin.name} activated`)
172
+ })
173
+
174
+ // Deactivate
175
+ await meeting.plugins.deactivate()
176
+ ```
177
+
178
+ ## Backend Integration
179
+
180
+ ### Token Generation (Workers)
181
+
182
+ ```typescript
183
+ export interface Env {
184
+ CLOUDFLARE_API_TOKEN: string
185
+ CLOUDFLARE_ACCOUNT_ID: string
186
+ REALTIMEKIT_APP_ID: string
187
+ }
188
+
189
+ export default {
190
+ async fetch(request: Request, env: Env): Promise<Response> {
191
+ const url = new URL(request.url)
192
+
193
+ if (url.pathname === '/api/join-meeting') {
194
+ const { meetingId, userName, presetName } = await request.json()
195
+ const response = await fetch(
196
+ `https://api.cloudflare.com/client/v4/accounts/${env.CLOUDFLARE_ACCOUNT_ID}/realtime/kit/${env.REALTIMEKIT_APP_ID}/meetings/${meetingId}/participants`,
197
+ {
198
+ method: 'POST',
199
+ headers: {
200
+ 'Content-Type': 'application/json',
201
+ Authorization: `Bearer ${env.CLOUDFLARE_API_TOKEN}`,
202
+ },
203
+ body: JSON.stringify({ name: userName, preset_name: presetName }),
204
+ }
205
+ )
206
+ const data = await response.json()
207
+ return Response.json({ authToken: data.result.authToken })
208
+ }
209
+
210
+ return new Response('Not found', { status: 404 })
211
+ },
212
+ }
213
+ ```
214
+
215
+ ## Best Practices
216
+
217
+ ### Security
218
+
219
+ 1. **Never expose API tokens client-side** - Generate participant tokens server-side only
220
+ 2. **Don't reuse participant tokens** - Generate fresh token per session, use refresh endpoint if expired
221
+ 3. **Use custom participant IDs** - Map to your user system for cross-session tracking
222
+
223
+ ### Performance
224
+
225
+ 1. **Event-driven updates** - Listen to events, don't poll. Use `toArray()` only when needed
226
+ 2. **Media quality constraints** - Set appropriate resolution/bitrate limits based on network conditions
227
+ 3. **Device management** - Enable `autoSwitchAudioDevice` for better UX, handle device list updates
228
+
229
+ ### Architecture
230
+
231
+ 1. **Separate Apps for environments** - staging vs production to prevent data mixing
232
+ 2. **Preset strategy** - Create presets at App level, reuse across meetings
233
+ 3. **Token management** - Backend generates tokens, frontend receives via authenticated endpoint
234
+
235
+ ## In This Reference
236
+
237
+ - [README.md](README.md) - Overview, core concepts, quick start
238
+ - [configuration.md](configuration.md) - SDK config, presets, wrangler setup
239
+ - [api.md](api.md) - Client SDK APIs, REST endpoints
240
+ - [gotchas.md](gotchas.md) - Common issues, troubleshooting, limits
@@ -0,0 +1,104 @@
1
+ # Cloudflare Sandbox SDK
2
+
3
+ Secure isolated code execution in containers on Cloudflare's edge. Run untrusted code, manage files, expose services, integrate with AI agents.
4
+
5
+ **Use cases**: AI code execution, interactive dev environments, data analysis, CI/CD, code interpreters, multi-tenant execution.
6
+
7
+ ## Architecture
8
+
9
+ - Each sandbox = Durable Object + Container
10
+ - Persistent across requests (same ID = same sandbox)
11
+ - Isolated filesystem/processes/network
12
+ - Configurable sleep/wake for cost optimization
13
+
14
+ ## Quick Start
15
+
16
+ ```typescript
17
+ import { getSandbox, proxyToSandbox, type Sandbox } from '@cloudflare/sandbox'
18
+ export { Sandbox } from '@cloudflare/sandbox'
19
+
20
+ type Env = { Sandbox: DurableObjectNamespace<Sandbox> }
21
+
22
+ export default {
23
+ async fetch(request: Request, env: Env): Promise<Response> {
24
+ // CRITICAL: proxyToSandbox MUST be called first for preview URLs
25
+ const proxyResponse = await proxyToSandbox(request, env)
26
+ if (proxyResponse) return proxyResponse
27
+
28
+ const sandbox = getSandbox(env.Sandbox, 'my-sandbox')
29
+ const result = await sandbox.exec('python3 -c "print(2 + 2)"')
30
+ return Response.json({ output: result.stdout })
31
+ },
32
+ }
33
+ ```
34
+
35
+ **wrangler.jsonc**:
36
+
37
+ ```jsonc
38
+ {
39
+ "name": "my-sandbox-worker",
40
+ "main": "src/index.ts",
41
+ "compatibility_date": "2025-01-01", // Use current date for new projects
42
+
43
+ "containers": [
44
+ {
45
+ "class_name": "Sandbox",
46
+ "image": "./Dockerfile",
47
+ "instance_type": "lite", // lite | standard | heavy
48
+ "max_instances": 5,
49
+ },
50
+ ],
51
+
52
+ "durable_objects": {
53
+ "bindings": [{ "class_name": "Sandbox", "name": "Sandbox" }],
54
+ },
55
+
56
+ "migrations": [
57
+ {
58
+ "tag": "v1",
59
+ "new_sqlite_classes": ["Sandbox"],
60
+ },
61
+ ],
62
+ }
63
+ ```
64
+
65
+ **Dockerfile**:
66
+
67
+ ```dockerfile
68
+ FROM docker.io/cloudflare/sandbox:latest
69
+ RUN pip3 install --no-cache-dir pandas numpy matplotlib
70
+ EXPOSE 8080 3000 # Required for wrangler dev
71
+ ```
72
+
73
+ ## Core APIs
74
+
75
+ - `getSandbox(namespace, id, options?)` → Get/create sandbox
76
+ - `sandbox.exec(command, options?)` → Execute command
77
+ - `sandbox.readFile(path)` / `writeFile(path, content)` → File ops
78
+ - `sandbox.startProcess(command, options)` → Background process
79
+ - `sandbox.exposePort(port, options)` → Get preview URL
80
+ - `sandbox.createSession(options)` → Isolated session
81
+ - `sandbox.wsConnect(request, port)` → WebSocket proxy
82
+ - `sandbox.destroy()` → Terminate container
83
+ - `sandbox.mountBucket(bucket, path, options)` → Mount S3 storage
84
+
85
+ ## Critical Rules
86
+
87
+ - ALWAYS call `proxyToSandbox()` first
88
+ - Same ID = reuse sandbox
89
+ - Use `/workspace` for persistent files
90
+ - `normalizeId: true` for preview URLs
91
+ - Retry on `CONTAINER_NOT_READY`
92
+
93
+ ## In This Reference
94
+
95
+ - [configuration.md](./configuration.md) - Config, CLI, environment setup
96
+ - [api.md](./api.md) - Programmatic API, testing patterns
97
+ - [patterns.md](./patterns.md) - Common workflows, CI/CD integration
98
+ - [gotchas.md](./gotchas.md) - Issues, limits, best practices
99
+
100
+ ## See Also
101
+
102
+ - [durable-objects](../durable-objects/) - Sandbox runs on DO infrastructure
103
+ - [containers](../containers/) - Container runtime fundamentals
104
+ - [workers](../workers/) - Entry point for sandbox requests