@mohanscodex/spectra-code 0.4.9 → 0.5.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 (861) hide show
  1. package/README.md +42 -2
  2. package/dist/package.json +8 -5
  3. package/dist/src/agents/definitions/build.d.ts +3 -0
  4. package/dist/src/agents/definitions/build.d.ts.map +1 -0
  5. package/dist/src/agents/definitions/build.js +51 -0
  6. package/dist/src/agents/definitions/build.js.map +1 -0
  7. package/dist/src/agents/definitions/debug.d.ts +3 -0
  8. package/dist/src/agents/definitions/debug.d.ts.map +1 -0
  9. package/dist/src/agents/definitions/debug.js +45 -0
  10. package/dist/src/agents/definitions/debug.js.map +1 -0
  11. package/dist/src/agents/definitions/explore.d.ts +3 -0
  12. package/dist/src/agents/definitions/explore.d.ts.map +1 -0
  13. package/dist/src/agents/definitions/explore.js +34 -0
  14. package/dist/src/agents/definitions/explore.js.map +1 -0
  15. package/dist/src/agents/definitions/index.d.ts +5 -0
  16. package/dist/src/agents/definitions/index.d.ts.map +1 -0
  17. package/dist/src/agents/definitions/index.js +19 -0
  18. package/dist/src/agents/definitions/index.js.map +1 -0
  19. package/dist/src/agents/definitions/plan.d.ts +3 -0
  20. package/dist/src/agents/definitions/plan.d.ts.map +1 -0
  21. package/dist/src/agents/definitions/plan.js +44 -0
  22. package/dist/src/agents/definitions/plan.js.map +1 -0
  23. package/dist/src/agents/definitions/title.d.ts +3 -0
  24. package/dist/src/agents/definitions/title.d.ts.map +1 -0
  25. package/dist/src/agents/definitions/title.js +34 -0
  26. package/dist/src/agents/definitions/title.js.map +1 -0
  27. package/dist/src/agents/index.d.ts +6 -0
  28. package/dist/src/agents/index.d.ts.map +1 -0
  29. package/dist/src/agents/index.js +10 -0
  30. package/dist/src/agents/index.js.map +1 -0
  31. package/dist/src/agents/types.d.ts +15 -0
  32. package/dist/src/agents/types.d.ts.map +1 -0
  33. package/dist/src/agents/types.js +2 -0
  34. package/dist/src/agents/types.js.map +1 -0
  35. package/dist/src/cli.js +2 -2
  36. package/dist/src/cli.js.map +1 -1
  37. package/dist/src/commands/session.js +1 -1
  38. package/dist/src/commands/session.js.map +1 -1
  39. package/dist/src/integrations/acp/server.js +1 -1
  40. package/dist/src/integrations/acp/server.js.map +1 -1
  41. package/dist/src/services/prompt-history.d.ts +32 -0
  42. package/dist/src/services/prompt-history.d.ts.map +1 -0
  43. package/dist/src/services/prompt-history.js +144 -0
  44. package/dist/src/services/prompt-history.js.map +1 -0
  45. package/dist/src/services/snapshot-manager.d.ts +32 -32
  46. package/dist/src/services/snapshot-manager.d.ts.map +1 -1
  47. package/dist/src/services/snapshot-manager.js +308 -155
  48. package/dist/src/services/snapshot-manager.js.map +1 -1
  49. package/dist/src/tools/edit.d.ts.map +1 -1
  50. package/dist/src/tools/edit.js +5 -22
  51. package/dist/src/tools/edit.js.map +1 -1
  52. package/dist/src/tools/glob.d.ts.map +1 -1
  53. package/dist/src/tools/glob.js +2 -1
  54. package/dist/src/tools/glob.js.map +1 -1
  55. package/dist/src/tools/grep.js +2 -2
  56. package/dist/src/tools/grep.js.map +1 -1
  57. package/dist/src/tools/index.d.ts +5 -0
  58. package/dist/src/tools/index.d.ts.map +1 -1
  59. package/dist/src/tools/index.js +30 -1
  60. package/dist/src/tools/index.js.map +1 -1
  61. package/dist/src/tools/task.js +1 -1
  62. package/dist/src/tools/task.js.map +1 -1
  63. package/dist/src/tools/write.d.ts.map +1 -1
  64. package/dist/src/tools/write.js +7 -4
  65. package/dist/src/tools/write.js.map +1 -1
  66. package/dist/src/tui/app-constants.js +1 -1
  67. package/dist/src/tui/app-constants.js.map +1 -1
  68. package/dist/src/tui/app.d.ts.map +1 -1
  69. package/dist/src/tui/app.js +35 -15
  70. package/dist/src/tui/app.js.map +1 -1
  71. package/dist/src/tui/commands.d.ts +15 -0
  72. package/dist/src/tui/commands.d.ts.map +1 -1
  73. package/dist/src/tui/commands.js +252 -1
  74. package/dist/src/tui/commands.js.map +1 -1
  75. package/dist/src/tui/components/chat-area.d.ts.map +1 -1
  76. package/dist/src/tui/components/chat-area.js +1 -1
  77. package/dist/src/tui/components/chat-area.js.map +1 -1
  78. package/dist/src/tui/components/message.d.ts.map +1 -1
  79. package/dist/src/tui/components/message.js +79 -4
  80. package/dist/src/tui/components/message.js.map +1 -1
  81. package/dist/src/tui/hooks/use-agent.d.ts.map +1 -1
  82. package/dist/src/tui/hooks/use-agent.js +17 -4
  83. package/dist/src/tui/hooks/use-agent.js.map +1 -1
  84. package/dist/src/tui/hooks/use-app-keyboard.d.ts +4 -5
  85. package/dist/src/tui/hooks/use-app-keyboard.d.ts.map +1 -1
  86. package/dist/src/tui/hooks/use-app-keyboard.js +23 -24
  87. package/dist/src/tui/hooks/use-app-keyboard.js.map +1 -1
  88. package/dist/src/tui/hooks/use-chat-submit.d.ts +2 -2
  89. package/dist/src/tui/hooks/use-chat-submit.d.ts.map +1 -1
  90. package/dist/src/tui/hooks/use-chat-submit.js +143 -20
  91. package/dist/src/tui/hooks/use-chat-submit.js.map +1 -1
  92. package/dist/src/tui/hooks/use-revert.d.ts +3 -5
  93. package/dist/src/tui/hooks/use-revert.d.ts.map +1 -1
  94. package/dist/src/tui/hooks/use-revert.js +83 -34
  95. package/dist/src/tui/hooks/use-revert.js.map +1 -1
  96. package/dist/src/tui/hooks/use-title-agent.d.ts +13 -0
  97. package/dist/src/tui/hooks/use-title-agent.d.ts.map +1 -0
  98. package/dist/src/tui/hooks/use-title-agent.js +50 -0
  99. package/dist/src/tui/hooks/use-title-agent.js.map +1 -0
  100. package/dist/src/tui/prompt-bar.d.ts.map +1 -1
  101. package/dist/src/tui/prompt-bar.js +27 -33
  102. package/dist/src/tui/prompt-bar.js.map +1 -1
  103. package/dist/src/tui/theme.d.ts +2 -0
  104. package/dist/src/tui/theme.d.ts.map +1 -1
  105. package/dist/src/tui/theme.js +2 -0
  106. package/dist/src/tui/theme.js.map +1 -1
  107. package/dist/src/tui/types.d.ts +5 -0
  108. package/dist/src/tui/types.d.ts.map +1 -1
  109. package/dist/src/tui/ui/agent-switcher.js +1 -1
  110. package/dist/src/tui/ui/agent-switcher.js.map +1 -1
  111. package/dist/src/tui/ui/cost-dialog.d.ts +14 -0
  112. package/dist/src/tui/ui/cost-dialog.d.ts.map +1 -0
  113. package/dist/src/tui/ui/cost-dialog.js +28 -0
  114. package/dist/src/tui/ui/cost-dialog.js.map +1 -0
  115. package/dist/src/tui/ui/debug-dialog.js +1 -1
  116. package/dist/src/tui/ui/debug-dialog.js.map +1 -1
  117. package/dist/src/tui/ui/session-list.js +1 -1
  118. package/dist/src/tui/ui/session-list.js.map +1 -1
  119. package/dist/src/tui/utils/terminal-title.d.ts +3 -0
  120. package/dist/src/tui/utils/terminal-title.d.ts.map +1 -0
  121. package/dist/src/tui/utils/terminal-title.js +14 -0
  122. package/dist/src/tui/utils/terminal-title.js.map +1 -0
  123. package/dist/src/tui/utils/version.d.ts +1 -1
  124. package/dist/src/tui/utils/version.d.ts.map +1 -1
  125. package/dist/src/tui/utils/version.js +4 -22
  126. package/dist/src/tui/utils/version.js.map +1 -1
  127. package/dist/src/utils/paths.d.ts +1 -0
  128. package/dist/src/utils/paths.d.ts.map +1 -1
  129. package/dist/src/utils/paths.js +13 -0
  130. package/dist/src/utils/paths.js.map +1 -1
  131. package/package.json +9 -6
  132. package/skills/REQUESTS.md +36 -0
  133. package/skills/architecture/ABOUT.md +20 -0
  134. package/skills/architecture/preserving-productive-tensions/SKILL.md +152 -0
  135. package/skills/aspnet-core/LICENSE.txt +202 -0
  136. package/skills/aspnet-core/SKILL.md +61 -0
  137. package/skills/aspnet-core/agents/openai.yaml +5 -0
  138. package/skills/aspnet-core/assets/dotnet-logo.png +0 -0
  139. package/skills/aspnet-core/references/_sections.md +40 -0
  140. package/skills/aspnet-core/references/apis-minimal-and-controllers.md +81 -0
  141. package/skills/aspnet-core/references/data-state-and-services.md +69 -0
  142. package/skills/aspnet-core/references/program-and-pipeline.md +103 -0
  143. package/skills/aspnet-core/references/realtime-grpc-and-background-work.md +58 -0
  144. package/skills/aspnet-core/references/security-and-identity.md +75 -0
  145. package/skills/aspnet-core/references/source-map.md +43 -0
  146. package/skills/aspnet-core/references/stack-selection.md +63 -0
  147. package/skills/aspnet-core/references/testing-performance-and-operations.md +92 -0
  148. package/skills/aspnet-core/references/ui-blazor.md +53 -0
  149. package/skills/aspnet-core/references/ui-mvc.md +56 -0
  150. package/skills/aspnet-core/references/ui-razor-pages.md +55 -0
  151. package/skills/aspnet-core/references/versioning-and-upgrades.md +51 -0
  152. package/skills/chatgpt-apps/LICENSE.txt +201 -0
  153. package/skills/chatgpt-apps/SKILL.md +320 -0
  154. package/skills/chatgpt-apps/agents/openai.yaml +13 -0
  155. package/skills/chatgpt-apps/references/app-archetypes.md +132 -0
  156. package/skills/chatgpt-apps/references/apps-sdk-docs-workflow.md +135 -0
  157. package/skills/chatgpt-apps/references/interactive-state-sync-patterns.md +113 -0
  158. package/skills/chatgpt-apps/references/repo-contract-and-validation.md +93 -0
  159. package/skills/chatgpt-apps/references/search-fetch-standard.md +67 -0
  160. package/skills/chatgpt-apps/references/upstream-example-workflow.md +79 -0
  161. package/skills/chatgpt-apps/references/window-openai-patterns.md +70 -0
  162. package/skills/chatgpt-apps/scripts/scaffold_node_ext_apps.mjs +606 -0
  163. package/skills/cloudflare-deploy/LICENSE.txt +201 -0
  164. package/skills/cloudflare-deploy/SKILL.md +224 -0
  165. package/skills/cloudflare-deploy/agents/openai.yaml +6 -0
  166. package/skills/cloudflare-deploy/assets/cloudflare-small.svg +3 -0
  167. package/skills/cloudflare-deploy/assets/cloudflare.png +0 -0
  168. package/skills/cloudflare-deploy/references/agents-sdk/README.md +89 -0
  169. package/skills/cloudflare-deploy/references/agents-sdk/api.md +190 -0
  170. package/skills/cloudflare-deploy/references/agents-sdk/configuration.md +182 -0
  171. package/skills/cloudflare-deploy/references/agents-sdk/gotchas.md +158 -0
  172. package/skills/cloudflare-deploy/references/agents-sdk/patterns.md +192 -0
  173. package/skills/cloudflare-deploy/references/ai-gateway/README.md +175 -0
  174. package/skills/cloudflare-deploy/references/ai-gateway/configuration.md +111 -0
  175. package/skills/cloudflare-deploy/references/ai-gateway/dynamic-routing.md +82 -0
  176. package/skills/cloudflare-deploy/references/ai-gateway/features.md +96 -0
  177. package/skills/cloudflare-deploy/references/ai-gateway/sdk-integration.md +114 -0
  178. package/skills/cloudflare-deploy/references/ai-gateway/troubleshooting.md +88 -0
  179. package/skills/cloudflare-deploy/references/ai-search/README.md +138 -0
  180. package/skills/cloudflare-deploy/references/ai-search/api.md +87 -0
  181. package/skills/cloudflare-deploy/references/ai-search/configuration.md +88 -0
  182. package/skills/cloudflare-deploy/references/ai-search/gotchas.md +81 -0
  183. package/skills/cloudflare-deploy/references/ai-search/patterns.md +85 -0
  184. package/skills/cloudflare-deploy/references/analytics-engine/README.md +92 -0
  185. package/skills/cloudflare-deploy/references/analytics-engine/api.md +112 -0
  186. package/skills/cloudflare-deploy/references/analytics-engine/configuration.md +112 -0
  187. package/skills/cloudflare-deploy/references/analytics-engine/gotchas.md +85 -0
  188. package/skills/cloudflare-deploy/references/analytics-engine/patterns.md +83 -0
  189. package/skills/cloudflare-deploy/references/api/README.md +65 -0
  190. package/skills/cloudflare-deploy/references/api/api.md +204 -0
  191. package/skills/cloudflare-deploy/references/api/configuration.md +160 -0
  192. package/skills/cloudflare-deploy/references/api/gotchas.md +225 -0
  193. package/skills/cloudflare-deploy/references/api/patterns.md +204 -0
  194. package/skills/cloudflare-deploy/references/api-shield/README.md +44 -0
  195. package/skills/cloudflare-deploy/references/api-shield/api.md +141 -0
  196. package/skills/cloudflare-deploy/references/api-shield/configuration.md +192 -0
  197. package/skills/cloudflare-deploy/references/api-shield/gotchas.md +125 -0
  198. package/skills/cloudflare-deploy/references/api-shield/patterns.md +180 -0
  199. package/skills/cloudflare-deploy/references/argo-smart-routing/README.md +90 -0
  200. package/skills/cloudflare-deploy/references/argo-smart-routing/api.md +240 -0
  201. package/skills/cloudflare-deploy/references/argo-smart-routing/configuration.md +197 -0
  202. package/skills/cloudflare-deploy/references/argo-smart-routing/gotchas.md +111 -0
  203. package/skills/cloudflare-deploy/references/argo-smart-routing/patterns.md +104 -0
  204. package/skills/cloudflare-deploy/references/bindings/README.md +122 -0
  205. package/skills/cloudflare-deploy/references/bindings/api.md +203 -0
  206. package/skills/cloudflare-deploy/references/bindings/configuration.md +188 -0
  207. package/skills/cloudflare-deploy/references/bindings/gotchas.md +208 -0
  208. package/skills/cloudflare-deploy/references/bindings/patterns.md +200 -0
  209. package/skills/cloudflare-deploy/references/bot-management/README.md +94 -0
  210. package/skills/cloudflare-deploy/references/bot-management/api.md +169 -0
  211. package/skills/cloudflare-deploy/references/bot-management/configuration.md +163 -0
  212. package/skills/cloudflare-deploy/references/bot-management/gotchas.md +114 -0
  213. package/skills/cloudflare-deploy/references/bot-management/patterns.md +182 -0
  214. package/skills/cloudflare-deploy/references/browser-rendering/README.md +78 -0
  215. package/skills/cloudflare-deploy/references/browser-rendering/api.md +108 -0
  216. package/skills/cloudflare-deploy/references/browser-rendering/configuration.md +78 -0
  217. package/skills/cloudflare-deploy/references/browser-rendering/gotchas.md +88 -0
  218. package/skills/cloudflare-deploy/references/browser-rendering/patterns.md +91 -0
  219. package/skills/cloudflare-deploy/references/c3/README.md +111 -0
  220. package/skills/cloudflare-deploy/references/c3/api.md +71 -0
  221. package/skills/cloudflare-deploy/references/c3/configuration.md +81 -0
  222. package/skills/cloudflare-deploy/references/c3/gotchas.md +92 -0
  223. package/skills/cloudflare-deploy/references/c3/patterns.md +82 -0
  224. package/skills/cloudflare-deploy/references/cache-reserve/README.md +147 -0
  225. package/skills/cloudflare-deploy/references/cache-reserve/api.md +194 -0
  226. package/skills/cloudflare-deploy/references/cache-reserve/configuration.md +169 -0
  227. package/skills/cloudflare-deploy/references/cache-reserve/gotchas.md +132 -0
  228. package/skills/cloudflare-deploy/references/cache-reserve/patterns.md +197 -0
  229. package/skills/cloudflare-deploy/references/containers/README.md +85 -0
  230. package/skills/cloudflare-deploy/references/containers/api.md +187 -0
  231. package/skills/cloudflare-deploy/references/containers/configuration.md +188 -0
  232. package/skills/cloudflare-deploy/references/containers/gotchas.md +178 -0
  233. package/skills/cloudflare-deploy/references/containers/patterns.md +202 -0
  234. package/skills/cloudflare-deploy/references/cron-triggers/README.md +99 -0
  235. package/skills/cloudflare-deploy/references/cron-triggers/api.md +196 -0
  236. package/skills/cloudflare-deploy/references/cron-triggers/configuration.md +180 -0
  237. package/skills/cloudflare-deploy/references/cron-triggers/gotchas.md +199 -0
  238. package/skills/cloudflare-deploy/references/cron-triggers/patterns.md +190 -0
  239. package/skills/cloudflare-deploy/references/d1/README.md +133 -0
  240. package/skills/cloudflare-deploy/references/d1/api.md +196 -0
  241. package/skills/cloudflare-deploy/references/d1/configuration.md +188 -0
  242. package/skills/cloudflare-deploy/references/d1/gotchas.md +98 -0
  243. package/skills/cloudflare-deploy/references/d1/patterns.md +189 -0
  244. package/skills/cloudflare-deploy/references/ddos/README.md +41 -0
  245. package/skills/cloudflare-deploy/references/ddos/api.md +164 -0
  246. package/skills/cloudflare-deploy/references/ddos/configuration.md +93 -0
  247. package/skills/cloudflare-deploy/references/ddos/gotchas.md +107 -0
  248. package/skills/cloudflare-deploy/references/ddos/patterns.md +174 -0
  249. package/skills/cloudflare-deploy/references/do-storage/README.md +75 -0
  250. package/skills/cloudflare-deploy/references/do-storage/api.md +102 -0
  251. package/skills/cloudflare-deploy/references/do-storage/configuration.md +112 -0
  252. package/skills/cloudflare-deploy/references/do-storage/gotchas.md +150 -0
  253. package/skills/cloudflare-deploy/references/do-storage/patterns.md +182 -0
  254. package/skills/cloudflare-deploy/references/do-storage/testing.md +183 -0
  255. package/skills/cloudflare-deploy/references/durable-objects/README.md +185 -0
  256. package/skills/cloudflare-deploy/references/durable-objects/api.md +187 -0
  257. package/skills/cloudflare-deploy/references/durable-objects/configuration.md +160 -0
  258. package/skills/cloudflare-deploy/references/durable-objects/gotchas.md +197 -0
  259. package/skills/cloudflare-deploy/references/durable-objects/patterns.md +201 -0
  260. package/skills/cloudflare-deploy/references/email-routing/README.md +89 -0
  261. package/skills/cloudflare-deploy/references/email-routing/api.md +195 -0
  262. package/skills/cloudflare-deploy/references/email-routing/configuration.md +186 -0
  263. package/skills/cloudflare-deploy/references/email-routing/gotchas.md +196 -0
  264. package/skills/cloudflare-deploy/references/email-routing/patterns.md +229 -0
  265. package/skills/cloudflare-deploy/references/email-workers/README.md +151 -0
  266. package/skills/cloudflare-deploy/references/email-workers/api.md +237 -0
  267. package/skills/cloudflare-deploy/references/email-workers/configuration.md +112 -0
  268. package/skills/cloudflare-deploy/references/email-workers/gotchas.md +125 -0
  269. package/skills/cloudflare-deploy/references/email-workers/patterns.md +102 -0
  270. package/skills/cloudflare-deploy/references/hyperdrive/README.md +82 -0
  271. package/skills/cloudflare-deploy/references/hyperdrive/api.md +143 -0
  272. package/skills/cloudflare-deploy/references/hyperdrive/configuration.md +159 -0
  273. package/skills/cloudflare-deploy/references/hyperdrive/gotchas.md +77 -0
  274. package/skills/cloudflare-deploy/references/hyperdrive/patterns.md +190 -0
  275. package/skills/cloudflare-deploy/references/images/README.md +61 -0
  276. package/skills/cloudflare-deploy/references/images/api.md +96 -0
  277. package/skills/cloudflare-deploy/references/images/configuration.md +211 -0
  278. package/skills/cloudflare-deploy/references/images/gotchas.md +99 -0
  279. package/skills/cloudflare-deploy/references/images/patterns.md +115 -0
  280. package/skills/cloudflare-deploy/references/kv/README.md +89 -0
  281. package/skills/cloudflare-deploy/references/kv/api.md +160 -0
  282. package/skills/cloudflare-deploy/references/kv/configuration.md +144 -0
  283. package/skills/cloudflare-deploy/references/kv/gotchas.md +131 -0
  284. package/skills/cloudflare-deploy/references/kv/patterns.md +196 -0
  285. package/skills/cloudflare-deploy/references/miniflare/README.md +105 -0
  286. package/skills/cloudflare-deploy/references/miniflare/api.md +187 -0
  287. package/skills/cloudflare-deploy/references/miniflare/configuration.md +173 -0
  288. package/skills/cloudflare-deploy/references/miniflare/gotchas.md +160 -0
  289. package/skills/cloudflare-deploy/references/miniflare/patterns.md +181 -0
  290. package/skills/cloudflare-deploy/references/network-interconnect/README.md +99 -0
  291. package/skills/cloudflare-deploy/references/network-interconnect/api.md +199 -0
  292. package/skills/cloudflare-deploy/references/network-interconnect/configuration.md +114 -0
  293. package/skills/cloudflare-deploy/references/network-interconnect/gotchas.md +165 -0
  294. package/skills/cloudflare-deploy/references/network-interconnect/patterns.md +166 -0
  295. package/skills/cloudflare-deploy/references/observability/README.md +87 -0
  296. package/skills/cloudflare-deploy/references/observability/api.md +164 -0
  297. package/skills/cloudflare-deploy/references/observability/configuration.md +169 -0
  298. package/skills/cloudflare-deploy/references/observability/gotchas.md +115 -0
  299. package/skills/cloudflare-deploy/references/observability/patterns.md +105 -0
  300. package/skills/cloudflare-deploy/references/pages/README.md +88 -0
  301. package/skills/cloudflare-deploy/references/pages/api.md +204 -0
  302. package/skills/cloudflare-deploy/references/pages/configuration.md +201 -0
  303. package/skills/cloudflare-deploy/references/pages/gotchas.md +203 -0
  304. package/skills/cloudflare-deploy/references/pages/patterns.md +204 -0
  305. package/skills/cloudflare-deploy/references/pages-functions/README.md +98 -0
  306. package/skills/cloudflare-deploy/references/pages-functions/api.md +143 -0
  307. package/skills/cloudflare-deploy/references/pages-functions/configuration.md +122 -0
  308. package/skills/cloudflare-deploy/references/pages-functions/gotchas.md +94 -0
  309. package/skills/cloudflare-deploy/references/pages-functions/patterns.md +137 -0
  310. package/skills/cloudflare-deploy/references/pipelines/README.md +105 -0
  311. package/skills/cloudflare-deploy/references/pipelines/api.md +208 -0
  312. package/skills/cloudflare-deploy/references/pipelines/configuration.md +98 -0
  313. package/skills/cloudflare-deploy/references/pipelines/gotchas.md +80 -0
  314. package/skills/cloudflare-deploy/references/pipelines/patterns.md +87 -0
  315. package/skills/cloudflare-deploy/references/pulumi/README.md +100 -0
  316. package/skills/cloudflare-deploy/references/pulumi/api.md +200 -0
  317. package/skills/cloudflare-deploy/references/pulumi/configuration.md +198 -0
  318. package/skills/cloudflare-deploy/references/pulumi/gotchas.md +181 -0
  319. package/skills/cloudflare-deploy/references/pulumi/patterns.md +191 -0
  320. package/skills/cloudflare-deploy/references/queues/README.md +96 -0
  321. package/skills/cloudflare-deploy/references/queues/api.md +206 -0
  322. package/skills/cloudflare-deploy/references/queues/configuration.md +144 -0
  323. package/skills/cloudflare-deploy/references/queues/gotchas.md +206 -0
  324. package/skills/cloudflare-deploy/references/queues/patterns.md +220 -0
  325. package/skills/cloudflare-deploy/references/r2/README.md +95 -0
  326. package/skills/cloudflare-deploy/references/r2/api.md +200 -0
  327. package/skills/cloudflare-deploy/references/r2/configuration.md +165 -0
  328. package/skills/cloudflare-deploy/references/r2/gotchas.md +190 -0
  329. package/skills/cloudflare-deploy/references/r2/patterns.md +193 -0
  330. package/skills/cloudflare-deploy/references/r2-data-catalog/README.md +149 -0
  331. package/skills/cloudflare-deploy/references/r2-data-catalog/api.md +199 -0
  332. package/skills/cloudflare-deploy/references/r2-data-catalog/configuration.md +198 -0
  333. package/skills/cloudflare-deploy/references/r2-data-catalog/gotchas.md +170 -0
  334. package/skills/cloudflare-deploy/references/r2-data-catalog/patterns.md +191 -0
  335. package/skills/cloudflare-deploy/references/r2-sql/README.md +128 -0
  336. package/skills/cloudflare-deploy/references/r2-sql/api.md +158 -0
  337. package/skills/cloudflare-deploy/references/r2-sql/configuration.md +147 -0
  338. package/skills/cloudflare-deploy/references/r2-sql/gotchas.md +212 -0
  339. package/skills/cloudflare-deploy/references/r2-sql/patterns.md +222 -0
  340. package/skills/cloudflare-deploy/references/realtime-sfu/README.md +65 -0
  341. package/skills/cloudflare-deploy/references/realtime-sfu/api.md +158 -0
  342. package/skills/cloudflare-deploy/references/realtime-sfu/configuration.md +137 -0
  343. package/skills/cloudflare-deploy/references/realtime-sfu/gotchas.md +133 -0
  344. package/skills/cloudflare-deploy/references/realtime-sfu/patterns.md +174 -0
  345. package/skills/cloudflare-deploy/references/realtimekit/README.md +113 -0
  346. package/skills/cloudflare-deploy/references/realtimekit/api.md +212 -0
  347. package/skills/cloudflare-deploy/references/realtimekit/configuration.md +203 -0
  348. package/skills/cloudflare-deploy/references/realtimekit/gotchas.md +169 -0
  349. package/skills/cloudflare-deploy/references/realtimekit/patterns.md +223 -0
  350. package/skills/cloudflare-deploy/references/sandbox/README.md +96 -0
  351. package/skills/cloudflare-deploy/references/sandbox/api.md +198 -0
  352. package/skills/cloudflare-deploy/references/sandbox/configuration.md +143 -0
  353. package/skills/cloudflare-deploy/references/sandbox/gotchas.md +194 -0
  354. package/skills/cloudflare-deploy/references/sandbox/patterns.md +201 -0
  355. package/skills/cloudflare-deploy/references/secrets-store/README.md +74 -0
  356. package/skills/cloudflare-deploy/references/secrets-store/api.md +200 -0
  357. package/skills/cloudflare-deploy/references/secrets-store/configuration.md +185 -0
  358. package/skills/cloudflare-deploy/references/secrets-store/gotchas.md +97 -0
  359. package/skills/cloudflare-deploy/references/secrets-store/patterns.md +207 -0
  360. package/skills/cloudflare-deploy/references/smart-placement/README.md +138 -0
  361. package/skills/cloudflare-deploy/references/smart-placement/api.md +183 -0
  362. package/skills/cloudflare-deploy/references/smart-placement/configuration.md +196 -0
  363. package/skills/cloudflare-deploy/references/smart-placement/gotchas.md +174 -0
  364. package/skills/cloudflare-deploy/references/smart-placement/patterns.md +183 -0
  365. package/skills/cloudflare-deploy/references/snippets/README.md +68 -0
  366. package/skills/cloudflare-deploy/references/snippets/api.md +198 -0
  367. package/skills/cloudflare-deploy/references/snippets/configuration.md +227 -0
  368. package/skills/cloudflare-deploy/references/snippets/gotchas.md +86 -0
  369. package/skills/cloudflare-deploy/references/snippets/patterns.md +135 -0
  370. package/skills/cloudflare-deploy/references/spectrum/README.md +52 -0
  371. package/skills/cloudflare-deploy/references/spectrum/api.md +181 -0
  372. package/skills/cloudflare-deploy/references/spectrum/configuration.md +194 -0
  373. package/skills/cloudflare-deploy/references/spectrum/gotchas.md +145 -0
  374. package/skills/cloudflare-deploy/references/spectrum/patterns.md +196 -0
  375. package/skills/cloudflare-deploy/references/static-assets/README.md +65 -0
  376. package/skills/cloudflare-deploy/references/static-assets/api.md +199 -0
  377. package/skills/cloudflare-deploy/references/static-assets/configuration.md +186 -0
  378. package/skills/cloudflare-deploy/references/static-assets/gotchas.md +162 -0
  379. package/skills/cloudflare-deploy/references/static-assets/patterns.md +189 -0
  380. package/skills/cloudflare-deploy/references/stream/README.md +114 -0
  381. package/skills/cloudflare-deploy/references/stream/api-live.md +195 -0
  382. package/skills/cloudflare-deploy/references/stream/api.md +199 -0
  383. package/skills/cloudflare-deploy/references/stream/configuration.md +141 -0
  384. package/skills/cloudflare-deploy/references/stream/gotchas.md +130 -0
  385. package/skills/cloudflare-deploy/references/stream/patterns.md +184 -0
  386. package/skills/cloudflare-deploy/references/tail-workers/README.md +89 -0
  387. package/skills/cloudflare-deploy/references/tail-workers/api.md +200 -0
  388. package/skills/cloudflare-deploy/references/tail-workers/configuration.md +176 -0
  389. package/skills/cloudflare-deploy/references/tail-workers/gotchas.md +192 -0
  390. package/skills/cloudflare-deploy/references/tail-workers/patterns.md +180 -0
  391. package/skills/cloudflare-deploy/references/terraform/README.md +102 -0
  392. package/skills/cloudflare-deploy/references/terraform/api.md +178 -0
  393. package/skills/cloudflare-deploy/references/terraform/configuration.md +197 -0
  394. package/skills/cloudflare-deploy/references/terraform/gotchas.md +150 -0
  395. package/skills/cloudflare-deploy/references/terraform/patterns.md +174 -0
  396. package/skills/cloudflare-deploy/references/tunnel/README.md +129 -0
  397. package/skills/cloudflare-deploy/references/tunnel/api.md +193 -0
  398. package/skills/cloudflare-deploy/references/tunnel/configuration.md +157 -0
  399. package/skills/cloudflare-deploy/references/tunnel/gotchas.md +147 -0
  400. package/skills/cloudflare-deploy/references/tunnel/networking.md +168 -0
  401. package/skills/cloudflare-deploy/references/tunnel/patterns.md +192 -0
  402. package/skills/cloudflare-deploy/references/turn/README.md +82 -0
  403. package/skills/cloudflare-deploy/references/turn/api.md +239 -0
  404. package/skills/cloudflare-deploy/references/turn/configuration.md +179 -0
  405. package/skills/cloudflare-deploy/references/turn/gotchas.md +231 -0
  406. package/skills/cloudflare-deploy/references/turn/patterns.md +213 -0
  407. package/skills/cloudflare-deploy/references/turnstile/README.md +99 -0
  408. package/skills/cloudflare-deploy/references/turnstile/api.md +240 -0
  409. package/skills/cloudflare-deploy/references/turnstile/configuration.md +222 -0
  410. package/skills/cloudflare-deploy/references/turnstile/gotchas.md +218 -0
  411. package/skills/cloudflare-deploy/references/turnstile/patterns.md +193 -0
  412. package/skills/cloudflare-deploy/references/vectorize/README.md +133 -0
  413. package/skills/cloudflare-deploy/references/vectorize/api.md +88 -0
  414. package/skills/cloudflare-deploy/references/vectorize/configuration.md +88 -0
  415. package/skills/cloudflare-deploy/references/vectorize/gotchas.md +76 -0
  416. package/skills/cloudflare-deploy/references/vectorize/patterns.md +90 -0
  417. package/skills/cloudflare-deploy/references/waf/README.md +113 -0
  418. package/skills/cloudflare-deploy/references/waf/api.md +202 -0
  419. package/skills/cloudflare-deploy/references/waf/configuration.md +203 -0
  420. package/skills/cloudflare-deploy/references/waf/gotchas.md +204 -0
  421. package/skills/cloudflare-deploy/references/waf/patterns.md +197 -0
  422. package/skills/cloudflare-deploy/references/web-analytics/README.md +140 -0
  423. package/skills/cloudflare-deploy/references/web-analytics/configuration.md +76 -0
  424. package/skills/cloudflare-deploy/references/web-analytics/gotchas.md +82 -0
  425. package/skills/cloudflare-deploy/references/web-analytics/integration.md +60 -0
  426. package/skills/cloudflare-deploy/references/web-analytics/patterns.md +91 -0
  427. package/skills/cloudflare-deploy/references/workerd/README.md +78 -0
  428. package/skills/cloudflare-deploy/references/workerd/api.md +185 -0
  429. package/skills/cloudflare-deploy/references/workerd/configuration.md +183 -0
  430. package/skills/cloudflare-deploy/references/workerd/gotchas.md +139 -0
  431. package/skills/cloudflare-deploy/references/workerd/patterns.md +192 -0
  432. package/skills/cloudflare-deploy/references/workers/README.md +108 -0
  433. package/skills/cloudflare-deploy/references/workers/api.md +195 -0
  434. package/skills/cloudflare-deploy/references/workers/configuration.md +185 -0
  435. package/skills/cloudflare-deploy/references/workers/frameworks.md +197 -0
  436. package/skills/cloudflare-deploy/references/workers/gotchas.md +136 -0
  437. package/skills/cloudflare-deploy/references/workers/patterns.md +198 -0
  438. package/skills/cloudflare-deploy/references/workers-ai/README.md +197 -0
  439. package/skills/cloudflare-deploy/references/workers-ai/api.md +112 -0
  440. package/skills/cloudflare-deploy/references/workers-ai/configuration.md +97 -0
  441. package/skills/cloudflare-deploy/references/workers-ai/gotchas.md +114 -0
  442. package/skills/cloudflare-deploy/references/workers-ai/patterns.md +120 -0
  443. package/skills/cloudflare-deploy/references/workers-for-platforms/README.md +89 -0
  444. package/skills/cloudflare-deploy/references/workers-for-platforms/api.md +196 -0
  445. package/skills/cloudflare-deploy/references/workers-for-platforms/configuration.md +167 -0
  446. package/skills/cloudflare-deploy/references/workers-for-platforms/gotchas.md +134 -0
  447. package/skills/cloudflare-deploy/references/workers-for-platforms/patterns.md +188 -0
  448. package/skills/cloudflare-deploy/references/workers-playground/README.md +127 -0
  449. package/skills/cloudflare-deploy/references/workers-playground/api.md +101 -0
  450. package/skills/cloudflare-deploy/references/workers-playground/configuration.md +163 -0
  451. package/skills/cloudflare-deploy/references/workers-playground/gotchas.md +88 -0
  452. package/skills/cloudflare-deploy/references/workers-playground/patterns.md +132 -0
  453. package/skills/cloudflare-deploy/references/workers-vpc/README.md +127 -0
  454. package/skills/cloudflare-deploy/references/workers-vpc/api.md +202 -0
  455. package/skills/cloudflare-deploy/references/workers-vpc/configuration.md +147 -0
  456. package/skills/cloudflare-deploy/references/workers-vpc/gotchas.md +167 -0
  457. package/skills/cloudflare-deploy/references/workers-vpc/patterns.md +209 -0
  458. package/skills/cloudflare-deploy/references/workflows/README.md +69 -0
  459. package/skills/cloudflare-deploy/references/workflows/api.md +185 -0
  460. package/skills/cloudflare-deploy/references/workflows/configuration.md +151 -0
  461. package/skills/cloudflare-deploy/references/workflows/gotchas.md +97 -0
  462. package/skills/cloudflare-deploy/references/workflows/patterns.md +175 -0
  463. package/skills/cloudflare-deploy/references/wrangler/README.md +141 -0
  464. package/skills/cloudflare-deploy/references/wrangler/api.md +188 -0
  465. package/skills/cloudflare-deploy/references/wrangler/auth.md +73 -0
  466. package/skills/cloudflare-deploy/references/wrangler/configuration.md +197 -0
  467. package/skills/cloudflare-deploy/references/wrangler/gotchas.md +197 -0
  468. package/skills/cloudflare-deploy/references/wrangler/patterns.md +209 -0
  469. package/skills/cloudflare-deploy/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
  470. package/skills/cloudflare-deploy/references/zaraz/README.md +111 -0
  471. package/skills/cloudflare-deploy/references/zaraz/api.md +112 -0
  472. package/skills/cloudflare-deploy/references/zaraz/configuration.md +90 -0
  473. package/skills/cloudflare-deploy/references/zaraz/gotchas.md +81 -0
  474. package/skills/cloudflare-deploy/references/zaraz/patterns.md +74 -0
  475. package/skills/collaboration/brainstorming/SKILL.md +75 -0
  476. package/skills/collaboration/dispatching-parallel-agents/SKILL.md +184 -0
  477. package/skills/collaboration/executing-plans/SKILL.md +78 -0
  478. package/skills/collaboration/finishing-a-development-branch/SKILL.md +202 -0
  479. package/skills/collaboration/phase-prompting/SKILL.md +292 -0
  480. package/skills/collaboration/receiving-code-review/SKILL.md +211 -0
  481. package/skills/collaboration/requesting-code-review/SKILL.md +107 -0
  482. package/skills/collaboration/requesting-code-review/code-reviewer.md +146 -0
  483. package/skills/collaboration/subagent-driven-development/SKILL.md +188 -0
  484. package/skills/collaboration/using-git-worktrees/SKILL.md +215 -0
  485. package/skills/collaboration/writing-plans/SKILL.md +118 -0
  486. package/skills/debugging/defense-in-depth/SKILL.md +130 -0
  487. package/skills/debugging/root-cause-tracing/SKILL.md +177 -0
  488. package/skills/debugging/root-cause-tracing/find-polluter.sh +63 -0
  489. package/skills/debugging/systematic-debugging/SKILL.md +295 -0
  490. package/skills/debugging/systematic-debugging/test-academic.md +14 -0
  491. package/skills/debugging/systematic-debugging/test-pressure-1.md +58 -0
  492. package/skills/debugging/systematic-debugging/test-pressure-2.md +68 -0
  493. package/skills/debugging/systematic-debugging/test-pressure-3.md +69 -0
  494. package/skills/debugging/verification-before-completion/SKILL.md +142 -0
  495. package/skills/develop-web-game/LICENSE.txt +201 -0
  496. package/skills/develop-web-game/SKILL.md +149 -0
  497. package/skills/develop-web-game/agents/openai.yaml +6 -0
  498. package/skills/develop-web-game/assets/game-small.svg +4 -0
  499. package/skills/develop-web-game/assets/game.png +0 -0
  500. package/skills/develop-web-game/references/action_payloads.json +7 -0
  501. package/skills/develop-web-game/scripts/web_game_playwright_client.js +356 -0
  502. package/skills/doc/LICENSE.txt +201 -0
  503. package/skills/doc/SKILL.md +80 -0
  504. package/skills/doc/agents/openai.yaml +6 -0
  505. package/skills/doc/assets/doc-small.svg +3 -0
  506. package/skills/doc/assets/doc.png +0 -0
  507. package/skills/doc/scripts/render_docx.py +296 -0
  508. package/skills/figma/LICENSE.txt +202 -0
  509. package/skills/figma/SKILL.md +42 -0
  510. package/skills/figma/agents/openai.yaml +14 -0
  511. package/skills/figma/assets/figma-small.svg +3 -0
  512. package/skills/figma/assets/figma.png +0 -0
  513. package/skills/figma/assets/icon.svg +28 -0
  514. package/skills/figma/references/figma-mcp-config.md +35 -0
  515. package/skills/figma/references/figma-tools-and-prompts.md +34 -0
  516. package/skills/figma-implement-design/LICENSE.txt +202 -0
  517. package/skills/figma-implement-design/SKILL.md +264 -0
  518. package/skills/figma-implement-design/agents/openai.yaml +14 -0
  519. package/skills/figma-implement-design/assets/figma-small.svg +3 -0
  520. package/skills/figma-implement-design/assets/figma.png +0 -0
  521. package/skills/figma-implement-design/assets/icon.svg +28 -0
  522. package/skills/gh-address-comments/LICENSE.txt +202 -0
  523. package/skills/gh-address-comments/SKILL.md +25 -0
  524. package/skills/gh-address-comments/agents/openai.yaml +6 -0
  525. package/skills/gh-address-comments/assets/github-small.svg +3 -0
  526. package/skills/gh-address-comments/assets/github.png +0 -0
  527. package/skills/gh-address-comments/scripts/fetch_comments.py +237 -0
  528. package/skills/gh-fix-ci/LICENSE.txt +201 -0
  529. package/skills/gh-fix-ci/SKILL.md +69 -0
  530. package/skills/gh-fix-ci/agents/openai.yaml +6 -0
  531. package/skills/gh-fix-ci/assets/github-small.svg +3 -0
  532. package/skills/gh-fix-ci/assets/github.png +0 -0
  533. package/skills/gh-fix-ci/scripts/inspect_pr_checks.py +509 -0
  534. package/skills/goal-driven-project-loop/SKILL.md +217 -0
  535. package/skills/goal-driven-project-loop/references/goal-contract-template.md +42 -0
  536. package/skills/imagegen/LICENSE.txt +201 -0
  537. package/skills/imagegen/SKILL.md +174 -0
  538. package/skills/imagegen/agents/openai.yaml +6 -0
  539. package/skills/imagegen/assets/imagegen-small.svg +5 -0
  540. package/skills/imagegen/assets/imagegen.png +0 -0
  541. package/skills/imagegen/references/cli.md +132 -0
  542. package/skills/imagegen/references/codex-network.md +28 -0
  543. package/skills/imagegen/references/image-api.md +36 -0
  544. package/skills/imagegen/references/prompting.md +81 -0
  545. package/skills/imagegen/references/sample-prompts.md +384 -0
  546. package/skills/imagegen/scripts/image_gen.py +876 -0
  547. package/skills/jupyter-notebook/LICENSE.txt +201 -0
  548. package/skills/jupyter-notebook/SKILL.md +107 -0
  549. package/skills/jupyter-notebook/agents/openai.yaml +6 -0
  550. package/skills/jupyter-notebook/assets/experiment-template.ipynb +110 -0
  551. package/skills/jupyter-notebook/assets/jupyter-small.svg +3 -0
  552. package/skills/jupyter-notebook/assets/jupyter.png +0 -0
  553. package/skills/jupyter-notebook/assets/tutorial-template.ipynb +107 -0
  554. package/skills/jupyter-notebook/references/experiment-patterns.md +10 -0
  555. package/skills/jupyter-notebook/references/notebook-structure.md +17 -0
  556. package/skills/jupyter-notebook/references/quality-checklist.md +11 -0
  557. package/skills/jupyter-notebook/references/tutorial-patterns.md +9 -0
  558. package/skills/jupyter-notebook/scripts/new_notebook.py +130 -0
  559. package/skills/linear/LICENSE.txt +202 -0
  560. package/skills/linear/SKILL.md +87 -0
  561. package/skills/linear/agents/openai.yaml +14 -0
  562. package/skills/linear/assets/linear-small.svg +5 -0
  563. package/skills/linear/assets/linear.png +0 -0
  564. package/skills/netlify-deploy/LICENSE.txt +201 -0
  565. package/skills/netlify-deploy/SKILL.md +247 -0
  566. package/skills/netlify-deploy/agents/openai.yaml +6 -0
  567. package/skills/netlify-deploy/assets/netlify-small.svg +11 -0
  568. package/skills/netlify-deploy/assets/netlify.png +0 -0
  569. package/skills/netlify-deploy/references/cli-commands.md +162 -0
  570. package/skills/netlify-deploy/references/deployment-patterns.md +303 -0
  571. package/skills/netlify-deploy/references/netlify-toml.md +259 -0
  572. package/skills/notion-knowledge-capture/LICENSE.txt +7 -0
  573. package/skills/notion-knowledge-capture/SKILL.md +56 -0
  574. package/skills/notion-knowledge-capture/agents/openai.yaml +14 -0
  575. package/skills/notion-knowledge-capture/assets/notion-small.svg +11 -0
  576. package/skills/notion-knowledge-capture/assets/notion.png +0 -0
  577. package/skills/notion-knowledge-capture/evaluations/README.md +95 -0
  578. package/skills/notion-knowledge-capture/evaluations/conversation-to-wiki.json +31 -0
  579. package/skills/notion-knowledge-capture/evaluations/decision-record.json +31 -0
  580. package/skills/notion-knowledge-capture/examples/conversation-to-faq.md +226 -0
  581. package/skills/notion-knowledge-capture/examples/decision-capture.md +126 -0
  582. package/skills/notion-knowledge-capture/examples/how-to-guide.md +118 -0
  583. package/skills/notion-knowledge-capture/reference/database-best-practices.md +112 -0
  584. package/skills/notion-knowledge-capture/reference/decision-log-database.md +58 -0
  585. package/skills/notion-knowledge-capture/reference/documentation-database.md +93 -0
  586. package/skills/notion-knowledge-capture/reference/faq-database.md +57 -0
  587. package/skills/notion-knowledge-capture/reference/how-to-guide-database.md +38 -0
  588. package/skills/notion-knowledge-capture/reference/learning-database.md +35 -0
  589. package/skills/notion-knowledge-capture/reference/team-wiki-database.md +27 -0
  590. package/skills/notion-meeting-intelligence/LICENSE.txt +7 -0
  591. package/skills/notion-meeting-intelligence/SKILL.md +60 -0
  592. package/skills/notion-meeting-intelligence/agents/openai.yaml +14 -0
  593. package/skills/notion-meeting-intelligence/assets/notion-small.svg +11 -0
  594. package/skills/notion-meeting-intelligence/assets/notion.png +0 -0
  595. package/skills/notion-meeting-intelligence/evaluations/README.md +101 -0
  596. package/skills/notion-meeting-intelligence/evaluations/decision-meeting-prep.json +35 -0
  597. package/skills/notion-meeting-intelligence/evaluations/status-meeting-prep.json +35 -0
  598. package/skills/notion-meeting-intelligence/examples/customer-meeting.md +125 -0
  599. package/skills/notion-meeting-intelligence/examples/executive-review.md +78 -0
  600. package/skills/notion-meeting-intelligence/examples/project-decision.md +431 -0
  601. package/skills/notion-meeting-intelligence/examples/sprint-planning.md +80 -0
  602. package/skills/notion-meeting-intelligence/reference/brainstorming-template.md +81 -0
  603. package/skills/notion-meeting-intelligence/reference/decision-meeting-template.md +94 -0
  604. package/skills/notion-meeting-intelligence/reference/one-on-one-template.md +58 -0
  605. package/skills/notion-meeting-intelligence/reference/retrospective-template.md +58 -0
  606. package/skills/notion-meeting-intelligence/reference/sprint-planning-template.md +68 -0
  607. package/skills/notion-meeting-intelligence/reference/status-update-template.md +74 -0
  608. package/skills/notion-meeting-intelligence/reference/template-selection-guide.md +56 -0
  609. package/skills/notion-research-documentation/LICENSE.txt +7 -0
  610. package/skills/notion-research-documentation/SKILL.md +59 -0
  611. package/skills/notion-research-documentation/agents/openai.yaml +14 -0
  612. package/skills/notion-research-documentation/assets/notion-small.svg +11 -0
  613. package/skills/notion-research-documentation/assets/notion.png +0 -0
  614. package/skills/notion-research-documentation/evaluations/README.md +109 -0
  615. package/skills/notion-research-documentation/evaluations/basic-research.json +28 -0
  616. package/skills/notion-research-documentation/evaluations/research-to-database.json +29 -0
  617. package/skills/notion-research-documentation/examples/competitor-analysis.md +283 -0
  618. package/skills/notion-research-documentation/examples/market-research.md +62 -0
  619. package/skills/notion-research-documentation/examples/technical-investigation.md +233 -0
  620. package/skills/notion-research-documentation/examples/trip-planning.md +128 -0
  621. package/skills/notion-research-documentation/reference/advanced-search.md +212 -0
  622. package/skills/notion-research-documentation/reference/citations.md +190 -0
  623. package/skills/notion-research-documentation/reference/comparison-format.md +37 -0
  624. package/skills/notion-research-documentation/reference/comparison-template.md +44 -0
  625. package/skills/notion-research-documentation/reference/comprehensive-report-format.md +41 -0
  626. package/skills/notion-research-documentation/reference/comprehensive-report-template.md +64 -0
  627. package/skills/notion-research-documentation/reference/format-selection-guide.md +95 -0
  628. package/skills/notion-research-documentation/reference/quick-brief-format.md +37 -0
  629. package/skills/notion-research-documentation/reference/quick-brief-template.md +25 -0
  630. package/skills/notion-research-documentation/reference/research-summary-format.md +33 -0
  631. package/skills/notion-research-documentation/reference/research-summary-template.md +49 -0
  632. package/skills/notion-spec-to-implementation/LICENSE.txt +7 -0
  633. package/skills/notion-spec-to-implementation/SKILL.md +58 -0
  634. package/skills/notion-spec-to-implementation/agents/openai.yaml +14 -0
  635. package/skills/notion-spec-to-implementation/assets/notion-small.svg +11 -0
  636. package/skills/notion-spec-to-implementation/assets/notion.png +0 -0
  637. package/skills/notion-spec-to-implementation/evaluations/README.md +120 -0
  638. package/skills/notion-spec-to-implementation/evaluations/basic-spec-implementation.json +32 -0
  639. package/skills/notion-spec-to-implementation/evaluations/spec-to-tasks.json +35 -0
  640. package/skills/notion-spec-to-implementation/examples/api-feature.md +461 -0
  641. package/skills/notion-spec-to-implementation/examples/database-migration.md +81 -0
  642. package/skills/notion-spec-to-implementation/examples/ui-component.md +68 -0
  643. package/skills/notion-spec-to-implementation/reference/milestone-summary-template.md +27 -0
  644. package/skills/notion-spec-to-implementation/reference/progress-tracking.md +458 -0
  645. package/skills/notion-spec-to-implementation/reference/progress-update-template.md +25 -0
  646. package/skills/notion-spec-to-implementation/reference/quick-implementation-plan.md +26 -0
  647. package/skills/notion-spec-to-implementation/reference/spec-parsing.md +383 -0
  648. package/skills/notion-spec-to-implementation/reference/standard-implementation-plan.md +146 -0
  649. package/skills/notion-spec-to-implementation/reference/task-creation-template.md +34 -0
  650. package/skills/notion-spec-to-implementation/reference/task-creation.md +441 -0
  651. package/skills/openai-docs/LICENSE.txt +201 -0
  652. package/skills/openai-docs/SKILL.md +68 -0
  653. package/skills/openai-docs/agents/openai.yaml +14 -0
  654. package/skills/openai-docs/assets/openai-small.svg +3 -0
  655. package/skills/openai-docs/assets/openai.png +0 -0
  656. package/skills/openai-docs/references/gpt-5p4-prompting-guide.md +433 -0
  657. package/skills/openai-docs/references/latest-model.md +35 -0
  658. package/skills/openai-docs/references/upgrading-to-gpt-5p4.md +164 -0
  659. package/skills/pdf/LICENSE.txt +201 -0
  660. package/skills/pdf/SKILL.md +67 -0
  661. package/skills/pdf/agents/openai.yaml +5 -0
  662. package/skills/pdf/assets/pdf.png +0 -0
  663. package/skills/phase-prompting/SKILL.md +162 -0
  664. package/skills/playwright/LICENSE.txt +201 -0
  665. package/skills/playwright/NOTICE.txt +14 -0
  666. package/skills/playwright/SKILL.md +147 -0
  667. package/skills/playwright/agents/openai.yaml +6 -0
  668. package/skills/playwright/assets/playwright-small.svg +3 -0
  669. package/skills/playwright/assets/playwright.png +0 -0
  670. package/skills/playwright/references/cli.md +116 -0
  671. package/skills/playwright/references/workflows.md +95 -0
  672. package/skills/playwright/scripts/playwright_cli.sh +25 -0
  673. package/skills/playwright-interactive/LICENSE.txt +201 -0
  674. package/skills/playwright-interactive/NOTICE.txt +13 -0
  675. package/skills/playwright-interactive/SKILL.md +693 -0
  676. package/skills/playwright-interactive/agents/openai.yaml +6 -0
  677. package/skills/playwright-interactive/assets/playwright-small.svg +3 -0
  678. package/skills/playwright-interactive/assets/playwright.png +0 -0
  679. package/skills/problem-solving/ABOUT.md +40 -0
  680. package/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -0
  681. package/skills/problem-solving/inversion-exercise/SKILL.md +58 -0
  682. package/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -0
  683. package/skills/problem-solving/scale-game/SKILL.md +63 -0
  684. package/skills/problem-solving/simplification-cascades/SKILL.md +76 -0
  685. package/skills/problem-solving/when-stuck/SKILL.md +88 -0
  686. package/skills/render-deploy/LICENSE.txt +201 -0
  687. package/skills/render-deploy/SKILL.md +479 -0
  688. package/skills/render-deploy/agents/openai.yaml +14 -0
  689. package/skills/render-deploy/assets/docker.yaml +62 -0
  690. package/skills/render-deploy/assets/go-api.yaml +35 -0
  691. package/skills/render-deploy/assets/nextjs-postgres.yaml +35 -0
  692. package/skills/render-deploy/assets/node-express.yaml +25 -0
  693. package/skills/render-deploy/assets/python-django.yaml +89 -0
  694. package/skills/render-deploy/assets/render-small.svg +3 -0
  695. package/skills/render-deploy/assets/render.png +0 -0
  696. package/skills/render-deploy/assets/static-site.yaml +54 -0
  697. package/skills/render-deploy/references/blueprint-spec.md +718 -0
  698. package/skills/render-deploy/references/codebase-analysis.md +49 -0
  699. package/skills/render-deploy/references/configuration-guide.md +603 -0
  700. package/skills/render-deploy/references/deployment-details.md +224 -0
  701. package/skills/render-deploy/references/direct-creation.md +113 -0
  702. package/skills/render-deploy/references/error-patterns.md +13 -0
  703. package/skills/render-deploy/references/post-deploy-checks.md +36 -0
  704. package/skills/render-deploy/references/runtimes.md +473 -0
  705. package/skills/render-deploy/references/service-types.md +450 -0
  706. package/skills/render-deploy/references/troubleshooting-basics.md +36 -0
  707. package/skills/research/ABOUT.md +20 -0
  708. package/skills/research/tracing-knowledge-lineages/SKILL.md +203 -0
  709. package/skills/round-prompting/SKILL.md +148 -0
  710. package/skills/screenshot/LICENSE.txt +201 -0
  711. package/skills/screenshot/SKILL.md +267 -0
  712. package/skills/screenshot/agents/openai.yaml +6 -0
  713. package/skills/screenshot/assets/screenshot-small.svg +5 -0
  714. package/skills/screenshot/assets/screenshot.png +0 -0
  715. package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
  716. package/skills/screenshot/scripts/macos_display_info.swift +22 -0
  717. package/skills/screenshot/scripts/macos_permissions.swift +40 -0
  718. package/skills/screenshot/scripts/macos_window_info.swift +126 -0
  719. package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
  720. package/skills/screenshot/scripts/take_screenshot.py +585 -0
  721. package/skills/security-best-practices/LICENSE.txt +201 -0
  722. package/skills/security-best-practices/SKILL.md +86 -0
  723. package/skills/security-best-practices/agents/openai.yaml +4 -0
  724. package/skills/security-best-practices/references/golang-general-backend-security.md +826 -0
  725. package/skills/security-best-practices/references/javascript-express-web-server-security.md +1158 -0
  726. package/skills/security-best-practices/references/javascript-general-web-frontend-security.md +747 -0
  727. package/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +678 -0
  728. package/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
  729. package/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +990 -0
  730. package/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +791 -0
  731. package/skills/security-best-practices/references/python-django-web-server-security.md +882 -0
  732. package/skills/security-best-practices/references/python-fastapi-web-server-security.md +1036 -0
  733. package/skills/security-best-practices/references/python-flask-web-server-security.md +705 -0
  734. package/skills/security-ownership-map/LICENSE.txt +201 -0
  735. package/skills/security-ownership-map/SKILL.md +206 -0
  736. package/skills/security-ownership-map/agents/openai.yaml +4 -0
  737. package/skills/security-ownership-map/references/neo4j-import.md +60 -0
  738. package/skills/security-ownership-map/scripts/build_ownership_map.py +956 -0
  739. package/skills/security-ownership-map/scripts/community_maintainers.py +544 -0
  740. package/skills/security-ownership-map/scripts/query_ownership.py +483 -0
  741. package/skills/security-ownership-map/scripts/run_ownership_map.py +200 -0
  742. package/skills/security-threat-model/LICENSE.txt +201 -0
  743. package/skills/security-threat-model/SKILL.md +81 -0
  744. package/skills/security-threat-model/agents/openai.yaml +4 -0
  745. package/skills/security-threat-model/references/prompt-template.md +255 -0
  746. package/skills/security-threat-model/references/security-controls-and-assets.md +32 -0
  747. package/skills/sentry/LICENSE.txt +201 -0
  748. package/skills/sentry/SKILL.md +123 -0
  749. package/skills/sentry/agents/openai.yaml +6 -0
  750. package/skills/sentry/assets/sentry-small.svg +3 -0
  751. package/skills/sentry/assets/sentry.png +0 -0
  752. package/skills/sentry/scripts/sentry_api.py +238 -0
  753. package/skills/slides/LICENSE.txt +201 -0
  754. package/skills/slides/SKILL.md +71 -0
  755. package/skills/slides/agents/openai.yaml +6 -0
  756. package/skills/slides/assets/pptxgenjs_helpers/code.js +104 -0
  757. package/skills/slides/assets/pptxgenjs_helpers/image.js +333 -0
  758. package/skills/slides/assets/pptxgenjs_helpers/index.js +33 -0
  759. package/skills/slides/assets/pptxgenjs_helpers/latex.js +51 -0
  760. package/skills/slides/assets/pptxgenjs_helpers/layout.js +643 -0
  761. package/skills/slides/assets/pptxgenjs_helpers/layout_builders.js +358 -0
  762. package/skills/slides/assets/pptxgenjs_helpers/svg.js +36 -0
  763. package/skills/slides/assets/pptxgenjs_helpers/text.js +789 -0
  764. package/skills/slides/assets/pptxgenjs_helpers/util.js +24 -0
  765. package/skills/slides/assets/slides-small.svg +3 -0
  766. package/skills/slides/assets/slides.png +0 -0
  767. package/skills/slides/references/pptxgenjs-helpers.md +61 -0
  768. package/skills/slides/scripts/create_montage.py +300 -0
  769. package/skills/slides/scripts/detect_font.py +873 -0
  770. package/skills/slides/scripts/ensure_raster_image.py +202 -0
  771. package/skills/slides/scripts/render_slides.py +273 -0
  772. package/skills/slides/scripts/slides_test.py +201 -0
  773. package/skills/sora/LICENSE.txt +201 -0
  774. package/skills/sora/SKILL.md +153 -0
  775. package/skills/sora/agents/openai.yaml +6 -0
  776. package/skills/sora/assets/sora-small.svg +4 -0
  777. package/skills/sora/assets/sora.png +0 -0
  778. package/skills/sora/references/cinematic-shots.md +53 -0
  779. package/skills/sora/references/cli.md +248 -0
  780. package/skills/sora/references/codex-network.md +28 -0
  781. package/skills/sora/references/prompting.md +137 -0
  782. package/skills/sora/references/sample-prompts.md +95 -0
  783. package/skills/sora/references/social-ads.md +42 -0
  784. package/skills/sora/references/troubleshooting.md +58 -0
  785. package/skills/sora/references/video-api.md +45 -0
  786. package/skills/sora/scripts/sora.py +970 -0
  787. package/skills/speech/LICENSE.txt +201 -0
  788. package/skills/speech/SKILL.md +144 -0
  789. package/skills/speech/agents/openai.yaml +6 -0
  790. package/skills/speech/assets/speech-small.svg +3 -0
  791. package/skills/speech/assets/speech.png +0 -0
  792. package/skills/speech/references/accessibility.md +32 -0
  793. package/skills/speech/references/audio-api.md +31 -0
  794. package/skills/speech/references/cli.md +99 -0
  795. package/skills/speech/references/codex-network.md +28 -0
  796. package/skills/speech/references/ivr.md +32 -0
  797. package/skills/speech/references/narration.md +31 -0
  798. package/skills/speech/references/prompting.md +38 -0
  799. package/skills/speech/references/sample-prompts.md +44 -0
  800. package/skills/speech/references/voice-directions.md +80 -0
  801. package/skills/speech/references/voiceover.md +31 -0
  802. package/skills/speech/scripts/text_to_speech.py +528 -0
  803. package/skills/spreadsheet/LICENSE.txt +201 -0
  804. package/skills/spreadsheet/SKILL.md +145 -0
  805. package/skills/spreadsheet/agents/openai.yaml +6 -0
  806. package/skills/spreadsheet/assets/spreadsheet-small.svg +3 -0
  807. package/skills/spreadsheet/assets/spreadsheet.png +0 -0
  808. package/skills/spreadsheet/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
  809. package/skills/spreadsheet/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
  810. package/skills/spreadsheet/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
  811. package/skills/spreadsheet/references/examples/openpyxl/styling_spreadsheet.py +79 -0
  812. package/skills/testing/condition-based-waiting/SKILL.md +123 -0
  813. package/skills/testing/condition-based-waiting/example.ts +158 -0
  814. package/skills/testing/test-driven-development/SKILL.md +367 -0
  815. package/skills/testing/testing-anti-patterns/SKILL.md +304 -0
  816. package/skills/transcribe/LICENSE.txt +201 -0
  817. package/skills/transcribe/SKILL.md +81 -0
  818. package/skills/transcribe/agents/openai.yaml +6 -0
  819. package/skills/transcribe/assets/transcribe-small.svg +3 -0
  820. package/skills/transcribe/assets/transcribe.png +0 -0
  821. package/skills/transcribe/references/api.md +8 -0
  822. package/skills/transcribe/scripts/transcribe_diarize.py +276 -0
  823. package/skills/using-skills/SKILL.md +102 -0
  824. package/skills/using-skills/find-skills +107 -0
  825. package/skills/using-skills/skill-run +44 -0
  826. package/skills/vercel-deploy/LICENSE.txt +21 -0
  827. package/skills/vercel-deploy/SKILL.md +77 -0
  828. package/skills/vercel-deploy/agents/openai.yaml +6 -0
  829. package/skills/vercel-deploy/assets/vercel-small.svg +5 -0
  830. package/skills/vercel-deploy/assets/vercel.png +0 -0
  831. package/skills/vercel-deploy/scripts/deploy.sh +301 -0
  832. package/skills/winui-app/LICENSE.txt +202 -0
  833. package/skills/winui-app/SKILL.md +94 -0
  834. package/skills/winui-app/agents/openai.yaml +5 -0
  835. package/skills/winui-app/assets/winui.png +0 -0
  836. package/skills/winui-app/config.yaml +50 -0
  837. package/skills/winui-app/references/_sections.md +96 -0
  838. package/skills/winui-app/references/accessibility-input-and-localization.md +51 -0
  839. package/skills/winui-app/references/build-run-and-launch-verification.md +72 -0
  840. package/skills/winui-app/references/community-toolkit-controls-and-helpers.md +57 -0
  841. package/skills/winui-app/references/controls-layout-and-adaptive-ui.md +84 -0
  842. package/skills/winui-app/references/foundation-environment-audit-and-remediation.md +82 -0
  843. package/skills/winui-app/references/foundation-setup-and-project-selection.md +67 -0
  844. package/skills/winui-app/references/foundation-template-first-recovery.md +62 -0
  845. package/skills/winui-app/references/foundation-winui-app-structure.md +62 -0
  846. package/skills/winui-app/references/motion-animations-and-polish.md +45 -0
  847. package/skills/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -0
  848. package/skills/winui-app/references/sample-source-map.md +37 -0
  849. package/skills/winui-app/references/shell-navigation-and-windowing.md +67 -0
  850. package/skills/winui-app/references/styling-theming-materials-and-icons.md +71 -0
  851. package/skills/winui-app/references/testing-debugging-and-review-checklists.md +77 -0
  852. package/skills/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -0
  853. package/skills/yeet/LICENSE.txt +201 -0
  854. package/skills/yeet/SKILL.md +28 -0
  855. package/skills/yeet/agents/openai.yaml +6 -0
  856. package/skills/yeet/assets/yeet-small.svg +3 -0
  857. package/skills/yeet/assets/yeet.png +0 -0
  858. package/dist/src/agents/definitions.d.ts +0 -16
  859. package/dist/src/agents/definitions.d.ts.map +0 -1
  860. package/dist/src/agents/definitions.js +0 -148
  861. package/dist/src/agents/definitions.js.map +0 -1
@@ -0,0 +1,137 @@
1
+ # Configuration & Deployment
2
+
3
+ ## Dashboard Setup
4
+
5
+ 1. Navigate to https://dash.cloudflare.com/?to=/:account/calls
6
+ 2. Click "Create Application" (or use existing app)
7
+ 3. Copy `CALLS_APP_ID` from dashboard
8
+ 4. Generate and copy `CALLS_APP_SECRET` (treat as sensitive credential)
9
+ 5. Use credentials in Wrangler config or environment variables below
10
+
11
+ ## Dependencies
12
+
13
+ **Backend (Workers):** Built-in fetch API, no additional packages required
14
+
15
+ **Client (PartyTracks):**
16
+ ```bash
17
+ npm install partytracks @cloudflare/calls
18
+ ```
19
+
20
+ **Client (React + PartyTracks):**
21
+ ```bash
22
+ npm install partytracks @cloudflare/calls observable-hooks
23
+ # Observable hooks: useObservableAsValue, useValueAsObservable
24
+ ```
25
+
26
+ **Client (Raw API):** Native browser WebRTC API only
27
+
28
+ ## Wrangler Setup
29
+
30
+ ```jsonc
31
+ {
32
+ "name": "my-calls-app",
33
+ "main": "src/index.ts",
34
+ "compatibility_date": "2025-01-01", // Use current date for new projects
35
+ "vars": {
36
+ "CALLS_APP_ID": "your-app-id",
37
+ "MAX_WEBCAM_BITRATE": "1200000",
38
+ "MAX_WEBCAM_FRAMERATE": "24",
39
+ "MAX_WEBCAM_QUALITY_LEVEL": "1080"
40
+ },
41
+ // Set secret: wrangler secret put CALLS_APP_SECRET
42
+ "durable_objects": {
43
+ "bindings": [
44
+ {
45
+ "name": "ROOM",
46
+ "class_name": "Room"
47
+ }
48
+ ]
49
+ }
50
+ }
51
+ ```
52
+
53
+ ## Deploy
54
+
55
+ ```bash
56
+ wrangler login
57
+ wrangler secret put CALLS_APP_SECRET
58
+ wrangler deploy
59
+ ```
60
+
61
+ ## Environment Variables
62
+
63
+ **Required:**
64
+ - `CALLS_APP_ID`: From dashboard
65
+ - `CALLS_APP_SECRET`: From dashboard (secret)
66
+
67
+ **Optional:**
68
+ - `MAX_WEBCAM_BITRATE` (default: 1200000)
69
+ - `MAX_WEBCAM_FRAMERATE` (default: 24)
70
+ - `MAX_WEBCAM_QUALITY_LEVEL` (default: 1080)
71
+ - `TURN_SERVICE_ID`: TURN service
72
+ - `TURN_SERVICE_TOKEN`: TURN auth (secret)
73
+
74
+ ## TURN Configuration
75
+
76
+ ```javascript
77
+ const pc = new RTCPeerConnection({
78
+ iceServers: [
79
+ { urls: 'stun:stun.cloudflare.com:3478' },
80
+ {
81
+ urls: [
82
+ 'turn:turn.cloudflare.com:3478?transport=udp',
83
+ 'turn:turn.cloudflare.com:3478?transport=tcp',
84
+ 'turns:turn.cloudflare.com:5349?transport=tcp'
85
+ ],
86
+ username: turnUsername,
87
+ credential: turnCredential
88
+ }
89
+ ],
90
+ bundlePolicy: 'max-bundle', // Recommended: reduces overhead
91
+ iceTransportPolicy: 'all' // Use 'relay' to force TURN (testing only)
92
+ });
93
+ ```
94
+
95
+ **Ports:** 3478 (UDP/TCP), 53 (UDP), 80 (TCP), 443 (TLS), 5349 (TLS)
96
+
97
+ **When to use TURN:** Required for restrictive corporate firewalls/networks that block UDP. ~5-10% of connections fallback to TURN. STUN works for most users.
98
+
99
+ **ICE candidate filtering:** Cloudflare handles candidate filtering automatically. No need to manually filter candidates.
100
+
101
+ ## Durable Object Boilerplate
102
+
103
+ Minimal presence system:
104
+
105
+ ```typescript
106
+ export class Room {
107
+ private sessions = new Map<string, {userId: string, tracks: string[]}>();
108
+
109
+ async fetch(req: Request) {
110
+ const {pathname} = new URL(req.url);
111
+ const body = await req.json();
112
+
113
+ if (pathname === '/join') {
114
+ this.sessions.set(body.sessionId, {userId: body.userId, tracks: []});
115
+ return Response.json({participants: this.sessions.size});
116
+ }
117
+
118
+ if (pathname === '/publish') {
119
+ this.sessions.get(body.sessionId)?.tracks.push(...body.tracks);
120
+ // Broadcast to others via WebSocket (not shown)
121
+ return new Response('OK');
122
+ }
123
+
124
+ return new Response('Not found', {status: 404});
125
+ }
126
+ }
127
+ ```
128
+
129
+ ## Environment Validation
130
+
131
+ Check credentials before first API call:
132
+
133
+ ```typescript
134
+ if (!env.CALLS_APP_ID || !env.CALLS_APP_SECRET) {
135
+ throw new Error('CALLS_APP_ID and CALLS_APP_SECRET required');
136
+ }
137
+ ```
@@ -0,0 +1,133 @@
1
+ # Gotchas & Troubleshooting
2
+
3
+ ## Common Errors
4
+
5
+ ### "Slow initial connect (~1.8s)"
6
+
7
+ **Cause:** First STUN delayed during consensus forming (normal behavior)
8
+ **Solution:** Subsequent connections are faster. CF detects DTLS ClientHello early to compensate.
9
+
10
+ ### "No media flow"
11
+
12
+ **Cause:** SDP exchange incomplete, connection not established, tracks not added before offer, browser permissions missing
13
+ **Solution:**
14
+ 1. Verify SDP exchange complete
15
+ 2. Check `pc.connectionState === 'connected'`
16
+ 3. Ensure tracks added before creating offer
17
+ 4. Confirm browser permissions granted
18
+ 5. Use `chrome://webrtc-internals` for debugging
19
+
20
+ ### "Track not receiving"
21
+
22
+ **Cause:** Track not published, track ID not shared, session IDs mismatch, `pc.ontrack` not set, renegotiation needed
23
+ **Solution:**
24
+ 1. Verify track published successfully
25
+ 2. Confirm track ID shared between peers
26
+ 3. Check session IDs match
27
+ 4. Set `pc.ontrack` handler before answer
28
+ 5. Trigger renegotiation if needed
29
+
30
+ ### "ICE connection failed"
31
+
32
+ **Cause:** Network changed, firewall blocked UDP, TURN needed, transient network issue
33
+ **Solution:**
34
+ ```typescript
35
+ pc.oniceconnectionstatechange = async () => {
36
+ if (pc.iceConnectionState === 'failed') {
37
+ console.warn('ICE failed, attempting restart');
38
+ await pc.restartIce(); // Triggers new ICE gathering
39
+
40
+ // Create new offer with ICE restart flag
41
+ const offer = await pc.createOffer({iceRestart: true});
42
+ await pc.setLocalDescription(offer);
43
+
44
+ // Send to backend → Cloudflare API
45
+ await fetch(`/api/sessions/${sessionId}/renegotiate`, {
46
+ method: 'PUT',
47
+ body: JSON.stringify({sdp: offer.sdp})
48
+ });
49
+ }
50
+ };
51
+ ```
52
+
53
+ ### "Track stuck/frozen"
54
+
55
+ **Cause:** Sender paused track, network congestion, codec mismatch, mobile browser backgrounded
56
+ **Solution:**
57
+ 1. Check `track.enabled` and `track.readyState === 'live'`
58
+ 2. Verify sender active: `pc.getSenders().find(s => s.track === track)`
59
+ 3. Check stats for packet loss/jitter (see patterns.md)
60
+ 4. On mobile: Re-acquire tracks when app foregrounded
61
+ 5. Test with different codecs if persistent
62
+
63
+ ### "Network change disconnects call"
64
+
65
+ **Cause:** Mobile switching WiFi↔cellular, laptop changing networks
66
+ **Solution:**
67
+ ```typescript
68
+ // Listen for network changes
69
+ if ('connection' in navigator) {
70
+ (navigator as any).connection.addEventListener('change', async () => {
71
+ console.log('Network changed');
72
+ await pc.restartIce(); // Use ICE restart pattern above
73
+ });
74
+ }
75
+
76
+ // Or use PartyTracks (handles automatically)
77
+ ```
78
+
79
+ ## Retry with Exponential Backoff
80
+
81
+ ```typescript
82
+ async function fetchWithRetry(url: string, options: RequestInit, maxRetries = 3) {
83
+ for (let i = 0; i < maxRetries; i++) {
84
+ try {
85
+ const res = await fetch(url, options);
86
+ if (res.ok) return res;
87
+ if (res.status >= 500) throw new Error('Server error');
88
+ return res; // Client error, don't retry
89
+ } catch (err) {
90
+ if (i === maxRetries - 1) throw err;
91
+ const delay = Math.min(1000 * 2 ** i, 10000); // Cap at 10s
92
+ await new Promise(resolve => setTimeout(resolve, delay));
93
+ }
94
+ }
95
+ }
96
+ ```
97
+
98
+ ## Debugging with chrome://webrtc-internals
99
+
100
+ 1. Open `chrome://webrtc-internals` in Chrome/Edge
101
+ 2. Find your PeerConnection in the list
102
+ 3. Check **Stats graphs** for packet loss, jitter, bandwidth
103
+ 4. Check **ICE candidate pairs**: Look for `succeeded` state, relay vs host candidates
104
+ 5. Check **getStats**: Raw metrics for inbound/outbound RTP
105
+ 6. Look for errors in **Event log**: `iceConnectionState`, `connectionState` changes
106
+ 7. Export data with "Download the PeerConnection updates and stats data" button
107
+ 8. Common issues visible here: ICE failures, high packet loss, bitrate drops
108
+
109
+ ## Limits
110
+
111
+ | Resource/Limit | Value | Notes |
112
+ |----------------|-------|-------|
113
+ | Egress (Free) | 1TB/month | Per account |
114
+ | Egress (Paid) | $0.05/GB | After free tier |
115
+ | Inbound traffic | Free | All plans |
116
+ | TURN service | Free | Included with SFU |
117
+ | Participants | No hard limit | Client bandwidth/CPU bound (typically 10-50 tracks) |
118
+ | Tracks per session | No hard limit | Client resources limited |
119
+ | Session duration | No hard limit | Production calls run for hours |
120
+ | WebRTC ports | UDP 1024-65535 | Outbound only, required for media |
121
+ | API rate limit | 600 req/min | Per app, burst allowed |
122
+
123
+ ## Security Checklist
124
+
125
+ - ✅ **Never expose** `CALLS_APP_SECRET` to client
126
+ - ✅ **Validate user identity** in backend before creating sessions
127
+ - ✅ **Implement auth tokens** for session access (JWT in custom header)
128
+ - ✅ **Rate limit** session creation endpoints
129
+ - ✅ **Expire sessions** server-side after inactivity
130
+ - ✅ **Validate track IDs** before subscribing (prevent unauthorized access)
131
+ - ✅ **Use HTTPS** for all signaling (API calls)
132
+ - ✅ **Enable DTLS-SRTP** (automatic with Cloudflare, encrypts media)
133
+ - ⚠️ **Consider E2EE** for sensitive content (implement client-side with Insertable Streams API)
@@ -0,0 +1,174 @@
1
+ # Patterns & Use Cases
2
+
3
+ ## Architecture
4
+
5
+ ```
6
+ Client (WebRTC) <---> CF Edge <---> Backend (HTTP)
7
+ |
8
+ CF Backbone (310+ DCs)
9
+ |
10
+ Other Edges <---> Other Clients
11
+ ```
12
+
13
+ Anycast: Last-mile <50ms (95%), no region select, NACK shield, distributed consensus
14
+
15
+ Cascading trees auto-scale to millions:
16
+ ```
17
+ Publisher -> Edge A -> Edge B -> Sub1
18
+ \-> Edge C -> Sub2,3
19
+ ```
20
+
21
+ ## Use Cases
22
+
23
+ **1:1:** A creates session+publishes, B creates+subscribes to A+publishes, A subscribes to B
24
+ **N:N:** All create session+publish, backend broadcasts track IDs, all subscribe to others
25
+ **1:N:** Publisher creates+publishes, viewers each create+subscribe (no fan-out limit)
26
+ **Breakout:** Same PeerConnection! Backend closes/adds tracks, no recreation
27
+
28
+ ## PartyTracks (Recommended)
29
+
30
+ Observable-based client with automatic device/network handling:
31
+
32
+ ```typescript
33
+ import {PartyTracks} from 'partytracks';
34
+
35
+ // Create client
36
+ const pt = new PartyTracks({
37
+ apiUrl: '/api/calls',
38
+ sessionId: 'my-session',
39
+ onTrack: (track, peer) => {
40
+ const video = document.getElementById(`video-${peer.id}`) as HTMLVideoElement;
41
+ video.srcObject = new MediaStream([track]);
42
+ }
43
+ });
44
+
45
+ // Publish camera (push API)
46
+ const camera = await pt.getCamera(); // Auto-requests permissions, handles device changes
47
+ await pt.publishTrack(camera, {trackName: 'my-camera'});
48
+
49
+ // Subscribe to remote track (pull API)
50
+ await pt.subscribeToTrack({trackName: 'remote-camera', sessionId: 'other-session'});
51
+
52
+ // React hook example
53
+ import {useObservableAsValue} from 'observable-hooks';
54
+
55
+ function VideoCall() {
56
+ const localTracks = useObservableAsValue(pt.localTracks$);
57
+ const remoteTracks = useObservableAsValue(pt.remoteTracks$);
58
+
59
+ return <div>{/* Render tracks */}</div>;
60
+ }
61
+
62
+ // Screenshare
63
+ const screen = await pt.getScreenshare();
64
+ await pt.publishTrack(screen, {trackName: 'my-screen'});
65
+
66
+ // Handle device changes (automatic)
67
+ // PartyTracks detects device changes (e.g., Bluetooth headset) and renegotiates
68
+ ```
69
+
70
+ ## Backend
71
+
72
+ Express:
73
+ ```js
74
+ app.post('/api/new-session', async (req, res) => {
75
+ const r = await fetch(`${CALLS_API}/apps/${process.env.CALLS_APP_ID}/sessions/new`,
76
+ {method: 'POST', headers: {'Authorization': `Bearer ${process.env.CALLS_APP_SECRET}`}});
77
+ res.json(await r.json());
78
+ });
79
+ ```
80
+
81
+ Workers: Same pattern, use `env.CALLS_APP_ID` and `env.CALLS_APP_SECRET`
82
+
83
+ DO Presence: See configuration.md for boilerplate
84
+
85
+ ## Audio Level Detection
86
+
87
+ ```typescript
88
+ // Attach analyzer to audio track
89
+ function attachAudioLevelDetector(track: MediaStreamTrack) {
90
+ const ctx = new AudioContext();
91
+ const analyzer = ctx.createAnalyser();
92
+ const src = ctx.createMediaStreamSource(new MediaStream([track]));
93
+ src.connect(analyzer);
94
+
95
+ const data = new Uint8Array(analyzer.frequencyBinCount);
96
+ const checkLevel = () => {
97
+ analyzer.getByteFrequencyData(data);
98
+ const level = data.reduce((a, b) => a + b) / data.length;
99
+ if (level > 30) console.log('Speaking:', level); // Trigger UI update
100
+ requestAnimationFrame(checkLevel);
101
+ };
102
+ checkLevel();
103
+ }
104
+ ```
105
+
106
+ ## Connection Quality Monitoring
107
+
108
+ ```typescript
109
+ pc.getStats().then(stats => {
110
+ stats.forEach(report => {
111
+ if (report.type === 'inbound-rtp' && report.kind === 'video') {
112
+ const {packetsLost, packetsReceived, jitter} = report;
113
+ const lossRate = packetsLost / (packetsLost + packetsReceived);
114
+ if (lossRate > 0.05) console.warn('High packet loss:', lossRate);
115
+ if (jitter > 100) console.warn('High jitter:', jitter);
116
+ }
117
+ });
118
+ });
119
+ ```
120
+
121
+ ## Stage Management (Limit Visible Participants)
122
+
123
+ ```typescript
124
+ // Subscribe to top 6 active speakers only
125
+ let activeSubscriptions = new Set<string>();
126
+
127
+ function updateStage(topSpeakers: string[]) {
128
+ const toAdd = topSpeakers.filter(id => !activeSubscriptions.has(id)).slice(0, 6);
129
+ const toRemove = [...activeSubscriptions].filter(id => !topSpeakers.includes(id));
130
+
131
+ toRemove.forEach(id => {
132
+ pc.getSenders().find(s => s.track?.id === id)?.track?.stop();
133
+ activeSubscriptions.delete(id);
134
+ });
135
+
136
+ toAdd.forEach(async id => {
137
+ await fetch(`/api/subscribe`, {method: 'POST', body: JSON.stringify({trackId: id})});
138
+ activeSubscriptions.add(id);
139
+ });
140
+ }
141
+ ```
142
+
143
+ ## Advanced
144
+
145
+ Bandwidth mgmt:
146
+ ```ts
147
+ const s = pc.getSenders().find(s => s.track?.kind === 'video');
148
+ const p = s.getParameters();
149
+ if (!p.encodings) p.encodings = [{}];
150
+ p.encodings[0].maxBitrate = 1200000; p.encodings[0].maxFramerate = 24;
151
+ await s.setParameters(p);
152
+ ```
153
+
154
+ Simulcast (CF auto-forwards best layer):
155
+ ```ts
156
+ pc.addTransceiver('video', {direction: 'sendonly', sendEncodings: [
157
+ {rid: 'high', maxBitrate: 1200000},
158
+ {rid: 'med', maxBitrate: 600000, scaleResolutionDownBy: 2},
159
+ {rid: 'low', maxBitrate: 200000, scaleResolutionDownBy: 4}
160
+ ]});
161
+ ```
162
+
163
+ DataChannel:
164
+ ```ts
165
+ const dc = pc.createDataChannel('chat', {ordered: true, maxRetransmits: 3});
166
+ dc.onopen = () => dc.send(JSON.stringify({type: 'chat', text: 'Hi'}));
167
+ dc.onmessage = (e) => console.log('RX:', JSON.parse(e.data));
168
+ ```
169
+
170
+ **WHIP/WHEP:** For streaming interop (OBS → SFU, SFU → video players), use WHIP (ingest) and WHEP (egress) protocols. See Cloudflare Stream integration docs.
171
+
172
+ Integrations: R2 for recording `env.R2_BUCKET.put(...)`, Queues for analytics
173
+
174
+ Perf: 100-250ms connect, ~50ms latency (95%), 200-400ms glass-to-glass, no participant limit (client: 10-50 tracks)
@@ -0,0 +1,113 @@
1
+ # Cloudflare RealtimeKit
2
+
3
+ Expert guidance for building real-time video and audio applications using **Cloudflare RealtimeKit** - a comprehensive SDK suite for adding customizable live video and voice to web or mobile applications.
4
+
5
+ ## Overview
6
+
7
+ RealtimeKit is Cloudflare's SDK suite built on Realtime SFU, abstracting WebRTC complexity with fast integration, pre-built UI components, global performance (300+ cities), and production features (recording, transcription, chat, polls).
8
+
9
+ **Use cases**: Team meetings, webinars, social video, audio calls, interactive plugins
10
+
11
+ ## Core Concepts
12
+
13
+ - **App**: Workspace grouping meetings, participants, presets, recordings. Use separate Apps for staging/production
14
+ - **Meeting**: Re-usable virtual room. Each join creates new **Session**
15
+ - **Session**: Live meeting instance. Created on first join, ends after last leave
16
+ - **Participant**: User added via REST API. Returns `authToken` for client SDK. **Do not reuse tokens**
17
+ - **Preset**: Reusable permission/UI template (permissions, meeting type, theme). Applied at participant creation
18
+ - **Peer ID** (`id`): Unique per session, changes on rejoin
19
+ - **Participant ID** (`userId`): Persistent across sessions
20
+
21
+ ## Quick Start
22
+
23
+ ### 1. Create App & Meeting (Backend)
24
+
25
+ ```bash
26
+ # Create app
27
+ curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<account_id>/realtime/kit/apps' \
28
+ -H 'Authorization: Bearer <api_token>' \
29
+ -d '{"name": "My RealtimeKit App"}'
30
+
31
+ # Create meeting
32
+ curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<account_id>/realtime/kit/<app_id>/meetings' \
33
+ -H 'Authorization: Bearer <api_token>' \
34
+ -d '{"title": "Team Standup"}'
35
+
36
+ # Add participant
37
+ curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<account_id>/realtime/kit/<app_id>/meetings/<meeting_id>/participants' \
38
+ -H 'Authorization: Bearer <api_token>' \
39
+ -d '{"name": "Alice", "preset_name": "host"}'
40
+ # Returns: { authToken }
41
+ ```
42
+
43
+ ### 2. Client Integration
44
+
45
+ **React**:
46
+ ```tsx
47
+ import { RtkMeeting } from '@cloudflare/realtimekit-react-ui';
48
+
49
+ function App() {
50
+ return <RtkMeeting authToken="<participant_auth_token>" onLeave={() => {}} />;
51
+ }
52
+ ```
53
+
54
+ **Core SDK**:
55
+ ```typescript
56
+ import RealtimeKitClient from '@cloudflare/realtimekit';
57
+
58
+ const meeting = new RealtimeKitClient({ authToken: '<token>', video: true, audio: true });
59
+ await meeting.join();
60
+ ```
61
+
62
+ ## Reading Order
63
+
64
+ | Task | Files |
65
+ |------|-------|
66
+ | Quick integration | README only |
67
+ | Custom UI | README → patterns → api |
68
+ | Backend setup | README → configuration |
69
+ | Debug issues | gotchas |
70
+ | Advanced features | patterns → api |
71
+
72
+ ## RealtimeKit vs Realtime SFU
73
+
74
+ | Choose | When |
75
+ |--------|------|
76
+ | **RealtimeKit** | Need pre-built UI, fast integration, React/Angular/HTML |
77
+ | **Realtime SFU** | Building from scratch, custom WebRTC, full control |
78
+
79
+ RealtimeKit is built on Realtime SFU but abstracts WebRTC complexity with UI components and SDKs.
80
+
81
+ ## Which Package?
82
+
83
+ Need pre-built meeting UI?
84
+ - React → `@cloudflare/realtimekit-react-ui` (`<RtkMeeting>`)
85
+ - Angular → `@cloudflare/realtimekit-angular-ui`
86
+ - HTML/Vanilla → `@cloudflare/realtimekit-ui`
87
+
88
+ Need custom UI?
89
+ - Core SDK → `@cloudflare/realtimekit` (RealtimeKitClient) - full control
90
+
91
+ Need raw WebRTC control?
92
+ - See `realtime-sfu/` reference
93
+
94
+ ## In This Reference
95
+
96
+ - [Configuration](./configuration.md) - Setup, installation, wrangler config
97
+ - [API](./api.md) - Meeting object, REST API, SDK methods
98
+ - [Patterns](./patterns.md) - Common workflows, code examples
99
+ - [Gotchas](./gotchas.md) - Common issues, troubleshooting
100
+
101
+ ## See Also
102
+
103
+ - [Workers](../workers/) - Backend integration
104
+ - [D1](../d1/) - Meeting metadata storage
105
+ - [R2](../r2/) - Recording storage
106
+ - [KV](../kv/) - Session management
107
+
108
+ ## Reference Links
109
+
110
+ - **Official Docs**: https://developers.cloudflare.com/realtime/realtimekit/
111
+ - **API Reference**: https://developers.cloudflare.com/api/resources/realtime_kit/
112
+ - **Examples**: https://github.com/cloudflare/realtimekit-web-examples
113
+ - **Dashboard**: https://dash.cloudflare.com/?to=/:account/realtime/kit