zilmate 1.7.8 → 1.8.1

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 (446) hide show
  1. package/.agents/skills/agent-browser/SKILL.md +55 -0
  2. package/.agents/skills/agentmail/SKILL.md +282 -0
  3. package/.agents/skills/agentmail/references/webhooks.md +220 -0
  4. package/.agents/skills/agentmail/references/websockets.md +263 -0
  5. package/.agents/skills/ai-elements/SKILL.md +160 -0
  6. package/.agents/skills/ai-elements/references/agent.md +134 -0
  7. package/.agents/skills/ai-elements/references/artifact.md +84 -0
  8. package/.agents/skills/ai-elements/references/attachments.md +190 -0
  9. package/.agents/skills/ai-elements/references/audio-player.md +134 -0
  10. package/.agents/skills/ai-elements/references/canvas.md +34 -0
  11. package/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
  12. package/.agents/skills/ai-elements/references/checkpoint.md +183 -0
  13. package/.agents/skills/ai-elements/references/code-block.md +170 -0
  14. package/.agents/skills/ai-elements/references/commit.md +177 -0
  15. package/.agents/skills/ai-elements/references/confirmation.md +262 -0
  16. package/.agents/skills/ai-elements/references/connection.md +34 -0
  17. package/.agents/skills/ai-elements/references/context.md +126 -0
  18. package/.agents/skills/ai-elements/references/controls.md +32 -0
  19. package/.agents/skills/ai-elements/references/conversation.md +224 -0
  20. package/.agents/skills/ai-elements/references/edge.md +52 -0
  21. package/.agents/skills/ai-elements/references/environment-variables.md +102 -0
  22. package/.agents/skills/ai-elements/references/file-tree.md +72 -0
  23. package/.agents/skills/ai-elements/references/image.md +146 -0
  24. package/.agents/skills/ai-elements/references/inline-citation.md +299 -0
  25. package/.agents/skills/ai-elements/references/jsx-preview.md +104 -0
  26. package/.agents/skills/ai-elements/references/message.md +237 -0
  27. package/.agents/skills/ai-elements/references/mic-selector.md +189 -0
  28. package/.agents/skills/ai-elements/references/model-selector.md +112 -0
  29. package/.agents/skills/ai-elements/references/node.md +73 -0
  30. package/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
  31. package/.agents/skills/ai-elements/references/package-info.md +95 -0
  32. package/.agents/skills/ai-elements/references/panel.md +33 -0
  33. package/.agents/skills/ai-elements/references/persona.md +166 -0
  34. package/.agents/skills/ai-elements/references/plan.md +79 -0
  35. package/.agents/skills/ai-elements/references/prompt-input.md +579 -0
  36. package/.agents/skills/ai-elements/references/queue.md +172 -0
  37. package/.agents/skills/ai-elements/references/reasoning.md +238 -0
  38. package/.agents/skills/ai-elements/references/sandbox.md +129 -0
  39. package/.agents/skills/ai-elements/references/schema-display.md +102 -0
  40. package/.agents/skills/ai-elements/references/shimmer.md +48 -0
  41. package/.agents/skills/ai-elements/references/snippet.md +64 -0
  42. package/.agents/skills/ai-elements/references/sources.md +209 -0
  43. package/.agents/skills/ai-elements/references/speech-input.md +163 -0
  44. package/.agents/skills/ai-elements/references/stack-trace.md +224 -0
  45. package/.agents/skills/ai-elements/references/suggestion.md +124 -0
  46. package/.agents/skills/ai-elements/references/task.md +222 -0
  47. package/.agents/skills/ai-elements/references/terminal.md +103 -0
  48. package/.agents/skills/ai-elements/references/test-results.md +157 -0
  49. package/.agents/skills/ai-elements/references/tool.md +285 -0
  50. package/.agents/skills/ai-elements/references/toolbar.md +32 -0
  51. package/.agents/skills/ai-elements/references/transcription.md +120 -0
  52. package/.agents/skills/ai-elements/references/voice-selector.md +241 -0
  53. package/.agents/skills/ai-elements/references/web-preview.md +200 -0
  54. package/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
  55. package/.agents/skills/ai-elements/scripts/artifact.tsx +127 -0
  56. package/.agents/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
  57. package/.agents/skills/ai-elements/scripts/attachments-list.tsx +95 -0
  58. package/.agents/skills/ai-elements/scripts/attachments.tsx +85 -0
  59. package/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
  60. package/.agents/skills/ai-elements/scripts/audio-player.tsx +68 -0
  61. package/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
  62. package/.agents/skills/ai-elements/scripts/checkpoint.tsx +110 -0
  63. package/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
  64. package/.agents/skills/ai-elements/scripts/code-block.tsx +120 -0
  65. package/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
  66. package/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
  67. package/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
  68. package/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
  69. package/.agents/skills/ai-elements/scripts/confirmation.tsx +55 -0
  70. package/.agents/skills/ai-elements/scripts/context.tsx +45 -0
  71. package/.agents/skills/ai-elements/scripts/conversation.tsx +177 -0
  72. package/.agents/skills/ai-elements/scripts/environment-variables.tsx +62 -0
  73. package/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
  74. package/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
  75. package/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
  76. package/.agents/skills/ai-elements/scripts/file-tree.tsx +42 -0
  77. package/.agents/skills/ai-elements/scripts/image.tsx +20 -0
  78. package/.agents/skills/ai-elements/scripts/inline-citation.tsx +97 -0
  79. package/.agents/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
  80. package/.agents/skills/ai-elements/scripts/message.tsx +365 -0
  81. package/.agents/skills/ai-elements/scripts/mic-selector.tsx +49 -0
  82. package/.agents/skills/ai-elements/scripts/model-selector.tsx +365 -0
  83. package/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
  84. package/.agents/skills/ai-elements/scripts/package-info.tsx +51 -0
  85. package/.agents/skills/ai-elements/scripts/persona-command.tsx +110 -0
  86. package/.agents/skills/ai-elements/scripts/persona-glint.tsx +110 -0
  87. package/.agents/skills/ai-elements/scripts/persona-halo.tsx +110 -0
  88. package/.agents/skills/ai-elements/scripts/persona-mana.tsx +110 -0
  89. package/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
  90. package/.agents/skills/ai-elements/scripts/persona-opal.tsx +110 -0
  91. package/.agents/skills/ai-elements/scripts/plan.tsx +65 -0
  92. package/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
  93. package/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
  94. package/.agents/skills/ai-elements/scripts/prompt-input.tsx +267 -0
  95. package/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
  96. package/.agents/skills/ai-elements/scripts/queue.tsx +295 -0
  97. package/.agents/skills/ai-elements/scripts/reasoning.tsx +71 -0
  98. package/.agents/skills/ai-elements/scripts/sandbox.tsx +178 -0
  99. package/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
  100. package/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
  101. package/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
  102. package/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
  103. package/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
  104. package/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
  105. package/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
  106. package/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
  107. package/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
  108. package/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
  109. package/.agents/skills/ai-elements/scripts/sources-custom.tsx +39 -0
  110. package/.agents/skills/ai-elements/scripts/sources.tsx +32 -0
  111. package/.agents/skills/ai-elements/scripts/speech-input.tsx +84 -0
  112. package/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
  113. package/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
  114. package/.agents/skills/ai-elements/scripts/stack-trace.tsx +58 -0
  115. package/.agents/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
  116. package/.agents/skills/ai-elements/scripts/suggestion.tsx +32 -0
  117. package/.agents/skills/ai-elements/scripts/task.tsx +59 -0
  118. package/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
  119. package/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
  120. package/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
  121. package/.agents/skills/ai-elements/scripts/terminal.tsx +82 -0
  122. package/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
  123. package/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
  124. package/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
  125. package/.agents/skills/ai-elements/scripts/test-results.tsx +102 -0
  126. package/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
  127. package/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
  128. package/.agents/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
  129. package/.agents/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
  130. package/.agents/skills/ai-elements/scripts/tool.tsx +222 -0
  131. package/.agents/skills/ai-elements/scripts/transcription.tsx +290 -0
  132. package/.agents/skills/ai-elements/scripts/voice-selector.tsx +245 -0
  133. package/.agents/skills/ai-elements/scripts/web-preview.tsx +115 -0
  134. package/.agents/skills/ai-sdk/SKILL.md +78 -0
  135. package/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
  136. package/.agents/skills/ai-sdk/references/common-errors.md +443 -0
  137. package/.agents/skills/ai-sdk/references/devtools.md +52 -0
  138. package/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
  139. package/.agents/skills/chat-sdk/SKILL.md +240 -0
  140. package/.agents/skills/composio/AGENTS.md +404 -0
  141. package/.agents/skills/composio/SKILL.md +55 -0
  142. package/.agents/skills/composio/rules/_template.md +38 -0
  143. package/.agents/skills/composio/rules/app-auth-configs.md +224 -0
  144. package/.agents/skills/composio/rules/app-auth-popup-ui.md +143 -0
  145. package/.agents/skills/composio/rules/app-connected-accounts.md +240 -0
  146. package/.agents/skills/composio/rules/app-custom-tools.md +220 -0
  147. package/.agents/skills/composio/rules/app-execute-tools.md +202 -0
  148. package/.agents/skills/composio/rules/app-fetch-tools.md +292 -0
  149. package/.agents/skills/composio/rules/app-modifiers.md +148 -0
  150. package/.agents/skills/composio/rules/app-tool-versions.md +343 -0
  151. package/.agents/skills/composio/rules/app-toolkits.md +184 -0
  152. package/.agents/skills/composio/rules/app-user-context.md +222 -0
  153. package/.agents/skills/composio/rules/building-with-composio.md +134 -0
  154. package/.agents/skills/composio/rules/composio-cli.md +223 -0
  155. package/.agents/skills/composio/rules/setup-api-keys.md +230 -0
  156. package/.agents/skills/composio/rules/tr-auth-auto.md +110 -0
  157. package/.agents/skills/composio/rules/tr-auth-connections.md +167 -0
  158. package/.agents/skills/composio/rules/tr-auth-manual.md +161 -0
  159. package/.agents/skills/composio/rules/tr-building-chat-ui.md +348 -0
  160. package/.agents/skills/composio/rules/tr-framework-ai-sdk.md +240 -0
  161. package/.agents/skills/composio/rules/tr-framework-integration.md +818 -0
  162. package/.agents/skills/composio/rules/tr-framework-mastra.md +185 -0
  163. package/.agents/skills/composio/rules/tr-mcp-vs-native.md +248 -0
  164. package/.agents/skills/composio/rules/tr-session-basic.md +82 -0
  165. package/.agents/skills/composio/rules/tr-session-config.md +172 -0
  166. package/.agents/skills/composio/rules/tr-session-lifecycle.md +385 -0
  167. package/.agents/skills/composio/rules/tr-toolkit-query.md +135 -0
  168. package/.agents/skills/composio/rules/tr-userid-best-practices.md +476 -0
  169. package/.agents/skills/composio/rules/triggers-create.md +246 -0
  170. package/.agents/skills/composio/rules/triggers-manage.md +275 -0
  171. package/.agents/skills/composio/rules/triggers-subscribe.md +173 -0
  172. package/.agents/skills/composio/rules/triggers-webhook.md +227 -0
  173. package/.agents/skills/create-auth-skill/SKILL.md +321 -0
  174. package/.agents/skills/design-md/README.md +34 -0
  175. package/.agents/skills/design-md/SKILL.md +172 -0
  176. package/.agents/skills/design-md/examples/DESIGN.md +154 -0
  177. package/.agents/skills/expo-tailwind-setup/SKILL.md +480 -0
  178. package/.agents/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
  179. package/.agents/skills/find-skills/SKILL.md +142 -0
  180. package/.agents/skills/firecrawl/SKILL.md +321 -0
  181. package/.agents/skills/firecrawl/rules/install.md +85 -0
  182. package/.agents/skills/firecrawl/rules/security.md +26 -0
  183. package/.agents/skills/frontend-design/LICENSE.txt +177 -0
  184. package/.agents/skills/frontend-design/SKILL.md +55 -0
  185. package/.agents/skills/linkup-search/SKILL.md +298 -0
  186. package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
  187. package/.agents/skills/mcp-builder/SKILL.md +236 -0
  188. package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
  189. package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  190. package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  191. package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  192. package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
  193. package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
  194. package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  195. package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
  196. package/.agents/skills/mobile-android-design/SKILL.md +101 -0
  197. package/.agents/skills/mobile-android-design/references/android-navigation.md +698 -0
  198. package/.agents/skills/mobile-android-design/references/compose-components.md +796 -0
  199. package/.agents/skills/mobile-android-design/references/details.md +337 -0
  200. package/.agents/skills/mobile-android-design/references/material3-theming.md +604 -0
  201. package/.agents/skills/mobile-ios-design/SKILL.md +259 -0
  202. package/.agents/skills/mobile-ios-design/references/hig-patterns.md +529 -0
  203. package/.agents/skills/mobile-ios-design/references/ios-navigation.md +556 -0
  204. package/.agents/skills/mobile-ios-design/references/swiftui-components.md +575 -0
  205. package/.agents/skills/neon-drizzle/SKILL.md +81 -0
  206. package/.agents/skills/neon-drizzle/guides/existing-project.md +398 -0
  207. package/.agents/skills/neon-drizzle/guides/new-project.md +312 -0
  208. package/.agents/skills/neon-drizzle/guides/schema-only.md +415 -0
  209. package/.agents/skills/neon-drizzle/guides/troubleshooting.md +539 -0
  210. package/.agents/skills/neon-drizzle/references/adapters.md +478 -0
  211. package/.agents/skills/neon-drizzle/references/migrations.md +652 -0
  212. package/.agents/skills/neon-drizzle/references/query-patterns.md +761 -0
  213. package/.agents/skills/neon-drizzle/scripts/generate-schema.ts +77 -0
  214. package/.agents/skills/neon-drizzle/scripts/run-migration.ts +133 -0
  215. package/.agents/skills/neon-drizzle/templates/db-http.ts +6 -0
  216. package/.agents/skills/neon-drizzle/templates/db-websocket.ts +24 -0
  217. package/.agents/skills/neon-drizzle/templates/drizzle-config.ts +96 -0
  218. package/.agents/skills/neon-drizzle/templates/schema-example.ts +231 -0
  219. package/.agents/skills/neon-postgres/SKILL.md +376 -0
  220. package/.agents/skills/next-best-practices/SKILL.md +152 -0
  221. package/.agents/skills/next-best-practices/async-patterns.md +87 -0
  222. package/.agents/skills/next-best-practices/bundling.md +180 -0
  223. package/.agents/skills/next-best-practices/data-patterns.md +297 -0
  224. package/.agents/skills/next-best-practices/debug-tricks.md +105 -0
  225. package/.agents/skills/next-best-practices/directives.md +73 -0
  226. package/.agents/skills/next-best-practices/error-handling.md +227 -0
  227. package/.agents/skills/next-best-practices/file-conventions.md +140 -0
  228. package/.agents/skills/next-best-practices/font.md +245 -0
  229. package/.agents/skills/next-best-practices/functions.md +108 -0
  230. package/.agents/skills/next-best-practices/hydration-error.md +91 -0
  231. package/.agents/skills/next-best-practices/image.md +173 -0
  232. package/.agents/skills/next-best-practices/metadata.md +301 -0
  233. package/.agents/skills/next-best-practices/parallel-routes.md +287 -0
  234. package/.agents/skills/next-best-practices/route-handlers.md +146 -0
  235. package/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
  236. package/.agents/skills/next-best-practices/runtime-selection.md +39 -0
  237. package/.agents/skills/next-best-practices/scripts.md +141 -0
  238. package/.agents/skills/next-best-practices/self-hosting.md +371 -0
  239. package/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
  240. package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
  241. package/.agents/skills/playwright-cli/SKILL.md +404 -0
  242. package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
  243. package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
  244. package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
  245. package/.agents/skills/playwright-cli/references/running-code.md +241 -0
  246. package/.agents/skills/playwright-cli/references/session-management.md +225 -0
  247. package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
  248. package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
  249. package/.agents/skills/playwright-cli/references/test-generation.md +134 -0
  250. package/.agents/skills/playwright-cli/references/tracing.md +139 -0
  251. package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
  252. package/.agents/skills/prisma-client-api/SKILL.md +216 -0
  253. package/.agents/skills/prisma-client-api/references/client-methods.md +223 -0
  254. package/.agents/skills/prisma-client-api/references/constructor.md +208 -0
  255. package/.agents/skills/prisma-client-api/references/filters.md +256 -0
  256. package/.agents/skills/prisma-client-api/references/model-queries.md +281 -0
  257. package/.agents/skills/prisma-client-api/references/query-options.md +276 -0
  258. package/.agents/skills/prisma-client-api/references/raw-queries.md +194 -0
  259. package/.agents/skills/prisma-client-api/references/relations.md +308 -0
  260. package/.agents/skills/prisma-client-api/references/transactions.md +184 -0
  261. package/.agents/skills/prisma-database-setup/SKILL.md +192 -0
  262. package/.agents/skills/prisma-database-setup/references/cockroachdb.md +89 -0
  263. package/.agents/skills/prisma-database-setup/references/mongodb.md +90 -0
  264. package/.agents/skills/prisma-database-setup/references/mysql.md +126 -0
  265. package/.agents/skills/prisma-database-setup/references/postgresql.md +92 -0
  266. package/.agents/skills/prisma-database-setup/references/prisma-client-setup.md +47 -0
  267. package/.agents/skills/prisma-database-setup/references/prisma-postgres.md +130 -0
  268. package/.agents/skills/prisma-database-setup/references/sqlite.md +106 -0
  269. package/.agents/skills/prisma-database-setup/references/sqlserver.md +94 -0
  270. package/.agents/skills/prisma-postgres/SKILL.md +127 -0
  271. package/.agents/skills/prisma-postgres/references/console-and-connections.md +67 -0
  272. package/.agents/skills/prisma-postgres/references/create-db-cli.md +136 -0
  273. package/.agents/skills/prisma-postgres/references/management-api-sdk.md +56 -0
  274. package/.agents/skills/prisma-postgres/references/management-api.md +61 -0
  275. package/.agents/skills/remotion-best-practices/SKILL.md +340 -0
  276. package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
  277. package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  278. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  279. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
  280. package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
  281. package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
  282. package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
  283. package/.agents/skills/remotion-best-practices/rules/compositions.md +133 -0
  284. package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
  285. package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +34 -0
  286. package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  287. package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  288. package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
  289. package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
  290. package/.agents/skills/remotion-best-practices/rules/google-fonts.md +72 -0
  291. package/.agents/skills/remotion-best-practices/rules/html-in-canvas.md +122 -0
  292. package/.agents/skills/remotion-best-practices/rules/images.md +71 -0
  293. package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
  294. package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
  295. package/.agents/skills/remotion-best-practices/rules/local-fonts.md +65 -0
  296. package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
  297. package/.agents/skills/remotion-best-practices/rules/maplibre.md +458 -0
  298. package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  299. package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
  300. package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
  301. package/.agents/skills/remotion-best-practices/rules/sequencing.md +144 -0
  302. package/.agents/skills/remotion-best-practices/rules/sfx.md +30 -0
  303. package/.agents/skills/remotion-best-practices/rules/silence-detection.md +71 -0
  304. package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
  305. package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
  306. package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
  307. package/.agents/skills/remotion-best-practices/rules/timing.md +136 -0
  308. package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
  309. package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
  310. package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
  311. package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
  312. package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
  313. package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
  314. package/.agents/skills/remotion-render/SKILL.md +212 -0
  315. package/.agents/skills/skill-creator/LICENSE.txt +202 -0
  316. package/.agents/skills/skill-creator/SKILL.md +485 -0
  317. package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  318. package/.agents/skills/skill-creator/agents/comparator.md +202 -0
  319. package/.agents/skills/skill-creator/agents/grader.md +223 -0
  320. package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  321. package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  322. package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  323. package/.agents/skills/skill-creator/references/schemas.md +430 -0
  324. package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  325. package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  326. package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  327. package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  328. package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  329. package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  330. package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  331. package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  332. package/.agents/skills/skill-creator/scripts/utils.py +47 -0
  333. package/.agents/skills/stripe-best-practices/SKILL.md +54 -0
  334. package/.agents/skills/stripe-best-practices/references/billing.md +58 -0
  335. package/.agents/skills/stripe-best-practices/references/connect.md +173 -0
  336. package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
  337. package/.agents/skills/stripe-best-practices/references/security.md +109 -0
  338. package/.agents/skills/stripe-best-practices/references/tax.md +37 -0
  339. package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
  340. package/.agents/skills/stripe-projects/SKILL.md +132 -0
  341. package/.agents/skills/supabase/CHANGELOG.md +35 -0
  342. package/.agents/skills/supabase/SKILL.md +135 -0
  343. package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
  344. package/.agents/skills/supabase/references/skill-feedback.md +17 -0
  345. package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
  346. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
  347. package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  348. package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  349. package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
  350. package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  351. package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  352. package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  353. package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  354. package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  355. package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  356. package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  357. package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  358. package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  359. package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  360. package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  361. package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  362. package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  363. package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  364. package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  365. package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  366. package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  367. package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  368. package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  369. package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  370. package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  371. package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  372. package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  373. package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  374. package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  375. package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  376. package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  377. package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  378. package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  379. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  380. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  381. package/.agents/skills/supermemory/LICENSE +201 -0
  382. package/.agents/skills/supermemory/README.md +221 -0
  383. package/.agents/skills/supermemory/SKILL.md +172 -0
  384. package/.agents/skills/supermemory/references/api-reference.md +591 -0
  385. package/.agents/skills/supermemory/references/architecture.md +557 -0
  386. package/.agents/skills/supermemory/references/quickstart.md +293 -0
  387. package/.agents/skills/supermemory/references/sdk-guide.md +655 -0
  388. package/.agents/skills/supermemory/references/use-cases.md +1033 -0
  389. package/.agents/skills/supermemory-cli/SKILL.md +490 -0
  390. package/.agents/skills/tdd/SKILL.md +108 -0
  391. package/.agents/skills/tdd/mocking.md +59 -0
  392. package/.agents/skills/tdd/refactoring.md +10 -0
  393. package/.agents/skills/tdd/tests.md +61 -0
  394. package/.agents/skills/ui-ux-pro-max/SKILL.md +661 -0
  395. package/.agents/skills/ui-ux-pro-max/data +1 -0
  396. package/.agents/skills/ui-ux-pro-max/scripts +1 -0
  397. package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
  398. package/.agents/skills/vercel-react-native-skills/README.md +165 -0
  399. package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
  400. package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
  401. package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
  402. package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
  403. package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
  404. package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
  405. package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
  406. package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
  407. package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
  408. package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
  409. package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
  410. package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
  411. package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
  412. package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
  413. package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
  414. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
  415. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
  416. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
  417. package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
  418. package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
  419. package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
  420. package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
  421. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
  422. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
  423. package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
  424. package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
  425. package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
  426. package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
  427. package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
  428. package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
  429. package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
  430. package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
  431. package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
  432. package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
  433. package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
  434. package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
  435. package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
  436. package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
  437. package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
  438. package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
  439. package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
  440. package/dist/cli/update.d.ts.map +1 -1
  441. package/dist/cli/update.js +19 -4
  442. package/dist/cli/update.js.map +1 -1
  443. package/dist/index.js +1 -1
  444. package/dist/tools/daytona-browser.tool.js +1 -1
  445. package/dist/tools/daytona-browser.tool.js.map +1 -1
  446. package/package.json +3 -2
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: composio
3
+ description: Use 1000+ external apps via Composio - either directly through the CLI or by building AI agents and apps with the SDK
4
+ tags: [composio, tool-router, agents, mcp, tools, api, automation, cli]
5
+ ---
6
+
7
+ ## When to Apply
8
+
9
+ - User wants to access or interact with external apps (Gmail, Slack, GitHub, Notion, etc.)
10
+ - User wants to automate a task using an external service (send email, create issue, post message)
11
+ - Building an AI agent or app that integrates with external tools
12
+ - Multi-user apps that need per-user connections to external services
13
+
14
+ ## Setup
15
+
16
+ Check if the CLI is installed; if not, install it:
17
+ ```bash
18
+ curl -fsSL https://composio.dev/install | bash
19
+ ```
20
+
21
+ After installation, restart your terminal or source your shell config, then authenticate:
22
+ ```bash
23
+ composio login # OAuth; interactive org/project picker (use -y to skip)
24
+ composio whoami # verify org_id, project_id, user_id
25
+ ```
26
+ For agents without direct browser access: `composio login --no-wait | jq` to get URL/key, share URL with user, then `composio login --key <cli_key> --no-wait` once they complete login.
27
+
28
+ ---
29
+
30
+ ### 1. Use Apps via Composio CLI
31
+
32
+ **Use this when:** The user wants to take action on an external app directly — no code writing needed. The agent uses the CLI to search, connect, and execute tools on behalf of the user.
33
+
34
+ Key commands (new top-level aliases):
35
+ - `composio search "<query>"` — find tools by use case
36
+ - `composio execute "<TOOL_SLUG>" -d '{...<input params>}'` — execute a tool
37
+ - `composio link [toolkit]` — connect a user account to an app (agents: always use `--no-wait` for non-interactive mode)
38
+ - `composio listen` — listen for real-time trigger events
39
+
40
+ Typical workflow: **search → link (if needed) → execute**
41
+
42
+ > Full reference: [Composio CLI Guide](rules/composio-cli.md)
43
+
44
+ ---
45
+
46
+ ### 2. Building Apps and Agents with Composio
47
+
48
+ **Use this when:** Writing code — an AI agent, app, or backend service that integrates with external tools via the Composio SDK.
49
+
50
+ Run this first inside the project directory to set up the API key:
51
+ ```bash
52
+ composio init
53
+ ```
54
+
55
+ > Full reference: [Building with Composio](rules/building-with-composio.md)
@@ -0,0 +1,38 @@
1
+ ---
2
+ title: Rule Title Here
3
+ impact: CRITICAL | HIGH | MEDIUM | LOW
4
+ description: One sentence describing what this rule prevents or improves
5
+ tags: [tag1, tag2, tag3]
6
+ ---
7
+
8
+ # Rule Title
9
+
10
+ Brief explanation of why this pattern is important (1-2 sentences).
11
+
12
+ ## ❌ Incorrect
13
+
14
+ ```typescript
15
+ // Explain why this is wrong
16
+ const bad = 'example';
17
+ ```
18
+
19
+ ```python
20
+ # Explain why this is wrong
21
+ bad = "example"
22
+ ```
23
+
24
+ ## ✅ Correct
25
+
26
+ ```typescript
27
+ // Explain why this is correct
28
+ const good = 'example';
29
+ ```
30
+
31
+ ```python
32
+ # Explain why this is correct
33
+ good = "example"
34
+ ```
35
+
36
+ ## Reference
37
+
38
+ - [Relevant documentation](https://docs.composio.dev)
@@ -0,0 +1,224 @@
1
+ ---
2
+ title: Auth Config Management
3
+ impact: MEDIUM
4
+ description: Advanced programmatic management of authentication configurations for multi-tenant applications
5
+ tags: [auth-config, authentication, oauth, api-key, advanced]
6
+ ---
7
+
8
+ # Auth Config Management
9
+
10
+ > **Note:** This is an **advanced use case**. Most users should create and manage auth configs through the Composio dashboard at [platform.composio.dev](https://platform.composio.dev). Use the SDK methods below only when you need programmatic auth config management.
11
+
12
+ > **Using Tool Router?** If you're using Tool Router, you can use `session.toolkits()` to view the auth configs and connected accounts being used by the Tool Router. You only need to use the methods below if you're creating custom auth configs to be used with Tool Router.
13
+
14
+ Auth configs define how authentication works for a toolkit. They specify the authentication scheme (OAuth2, API Key, etc.) and control which tools can be accessed.
15
+
16
+ ## When to Use the SDK
17
+
18
+ Use these methods when you need to:
19
+ - Programmatically create auth configs for multi-tenant applications
20
+ - Dynamically manage auth configs based on user actions
21
+ - Automate auth config creation in CI/CD pipelines
22
+
23
+ For most cases, **use the dashboard** instead.
24
+
25
+ ## Read Auth Configs
26
+
27
+ ### List auth configs
28
+
29
+ ```typescript
30
+ // List all auth configs
31
+ const configs = await composio.authConfigs.list();
32
+
33
+ // List for a specific toolkit
34
+ const githubConfigs = await composio.authConfigs.list({
35
+ toolkit: 'github',
36
+ });
37
+
38
+ // Filter by Composio-managed
39
+ const managedConfigs = await composio.authConfigs.list({
40
+ isComposioManaged: true,
41
+ });
42
+ ```
43
+
44
+ ### Get a specific auth config
45
+
46
+ ```typescript
47
+ const authConfig = await composio.authConfigs.get('auth_config_123');
48
+ console.log(authConfig.name);
49
+ console.log(authConfig.authScheme); // 'OAUTH2', 'API_KEY', etc.
50
+ console.log(authConfig.toolkit.slug);
51
+ ```
52
+
53
+ ## Create Auth Configs
54
+
55
+ ### Composio-Managed Authentication (Recommended)
56
+
57
+ Use Composio's OAuth credentials (simplest option):
58
+
59
+ ```typescript
60
+ const authConfig = await composio.authConfigs.create('github', {
61
+ type: 'use_composio_managed_auth',
62
+ name: 'GitHub Auth Config',
63
+ });
64
+ ```
65
+
66
+ ### Custom OAuth Credentials
67
+
68
+ Use your own OAuth app credentials:
69
+
70
+ ```typescript
71
+ const authConfig = await composio.authConfigs.create('slack', {
72
+ type: 'use_custom_auth',
73
+ name: 'My Slack Auth',
74
+ authScheme: 'OAUTH2',
75
+ credentials: {
76
+ client_id: 'your_client_id',
77
+ client_secret: 'your_client_secret',
78
+ }
79
+ });
80
+ ```
81
+
82
+ ### Custom API Key Authentication
83
+
84
+ For services using API keys:
85
+
86
+ ```typescript
87
+ const authConfig = await composio.authConfigs.create('openai', {
88
+ type: 'use_custom_auth',
89
+ name: 'OpenAI API Key Auth',
90
+ authScheme: 'API_KEY',
91
+ credentials: {
92
+ api_key: 'your_api_key',
93
+ }
94
+ });
95
+ ```
96
+
97
+ ## Update Auth Configs
98
+
99
+ ### Update custom auth credentials
100
+
101
+ ```typescript
102
+ const updated = await composio.authConfigs.update('auth_config_123', {
103
+ type: 'custom',
104
+ credentials: {
105
+ client_id: 'new_client_id',
106
+ client_secret: 'new_client_secret',
107
+ }
108
+ });
109
+ ```
110
+
111
+ ### Update OAuth scopes
112
+
113
+ ```typescript
114
+ const updated = await composio.authConfigs.update('auth_config_456', {
115
+ type: 'default',
116
+ scopes: 'read:user,repo'
117
+ });
118
+ ```
119
+
120
+ ### Restrict tools (for security)
121
+
122
+ ```typescript
123
+ const restricted = await composio.authConfigs.update('auth_config_789', {
124
+ type: 'custom',
125
+ credentials: { /* ... */ },
126
+ toolAccessConfig: {
127
+ toolsAvailableForExecution: ['SLACK_SEND_MESSAGE', 'SLACK_GET_CHANNEL']
128
+ }
129
+ });
130
+ ```
131
+
132
+ ## Enable/Disable Auth Configs
133
+
134
+ ```typescript
135
+ // Enable an auth config
136
+ await composio.authConfigs.enable('auth_config_123');
137
+
138
+ // Disable an auth config
139
+ await composio.authConfigs.disable('auth_config_123');
140
+ ```
141
+
142
+ ## Delete Auth Configs
143
+
144
+ ```typescript
145
+ await composio.authConfigs.delete('auth_config_123');
146
+ ```
147
+
148
+ **Warning:** Deleting an auth config will affect all connected accounts using it.
149
+
150
+ ## Available Parameters
151
+
152
+ ### List Parameters
153
+
154
+ - `toolkit` (string) - Filter by toolkit slug
155
+ - `isComposioManaged` (boolean) - Filter Composio-managed vs custom
156
+ - `limit` (number) - Results per page
157
+ - `cursor` (string) - Pagination cursor
158
+
159
+ ### Create Parameters
160
+
161
+ **For `use_composio_managed_auth`:**
162
+ - `type`: `'use_composio_managed_auth'`
163
+ - `name` (optional): Display name
164
+ - `credentials` (optional): Object with `scopes` field
165
+ - `toolAccessConfig` (optional): Tool restrictions
166
+ - `isEnabledForToolRouter` (optional): Enable for Tool Router
167
+
168
+ **For `use_custom_auth`:**
169
+ - `type`: `'use_custom_auth'`
170
+ - `authScheme`: `'OAUTH2'`, `'API_KEY'`, `'BASIC_AUTH'`, etc.
171
+ - `name` (optional): Display name
172
+ - `credentials`: Object with auth-specific fields (client_id, client_secret, api_key, etc.)
173
+ - `toolAccessConfig` (optional): Tool restrictions
174
+ - `isEnabledForToolRouter` (optional): Enable for Tool Router
175
+
176
+ ### Update Parameters
177
+
178
+ **For custom type:**
179
+ ```typescript
180
+ {
181
+ type: 'custom',
182
+ credentials: { /* auth fields */ },
183
+ toolAccessConfig: {
184
+ toolsAvailableForExecution: ['TOOL_SLUG_1', 'TOOL_SLUG_2']
185
+ }
186
+ }
187
+ ```
188
+
189
+ **For default type:**
190
+ ```typescript
191
+ {
192
+ type: 'default',
193
+ scopes: 'scope1,scope2',
194
+ toolAccessConfig: {
195
+ toolsAvailableForExecution: ['TOOL_SLUG_1', 'TOOL_SLUG_2']
196
+ }
197
+ }
198
+ ```
199
+
200
+ ## Best Practices
201
+
202
+ 1. **Use the dashboard for manual setup**
203
+ - Easier to configure
204
+ - Visual interface for OAuth setup
205
+ - Less error-prone
206
+
207
+ 2. **Use SDK for automation only**
208
+ - Multi-tenant app provisioning
209
+ - CI/CD integration
210
+ - Dynamic configuration
211
+
212
+ 3. **Prefer Composio-managed auth**
213
+ - No OAuth app setup required
214
+ - Maintained by Composio
215
+ - Works out of the box
216
+
217
+ 4. **Restrict tools for security**
218
+ - Limit `toolsAvailableForExecution`
219
+ - Implements least privilege
220
+ - Reduces risk
221
+
222
+ 5. **Name configs clearly**
223
+ - Include environment: "Production GitHub", "Staging Slack"
224
+ - Makes debugging easier
@@ -0,0 +1,143 @@
1
+ ---
2
+ title: Building Popup Connection UI
3
+ impact: MEDIUM
4
+ description: Build a popup-based Composio auth-link UI with dedicated callback page handling and parent-window polling
5
+ tags: [connected-accounts, auth-link, popup, callback-page, ui]
6
+ ---
7
+
8
+ # Building Popup Connection UI
9
+
10
+ Use this pattern when you want to open Composio auth links in a popup window and handle completion in the parent window.
11
+
12
+ > This is a **general Composio auth link handler**, not an OAuth-only pattern. It works for any Composio hosted auth link that redirects back with URL params.
13
+
14
+ ## Flow Overview
15
+
16
+ 1. Parent app requests a Composio auth link (`redirectUrl`)
17
+ 2. Parent opens popup with that `redirectUrl`
18
+ 3. Popup completes auth and lands on a dedicated callback page in your app
19
+ 4. Parent polls popup URL, detects success/error params, closes popup, resolves state
20
+
21
+ ## Why Use a Dedicated Callback Page
22
+
23
+ Always route popup completion to a dedicated page like `/auth/composio/callback` to:
24
+ - show clear success/failure states
25
+ - provide a stable URL shape for parameter parsing
26
+ - prevent exposing auth-link query params in unrelated pages
27
+ - keep popup close/cleanup logic predictable
28
+
29
+ ## Parent Window Handler
30
+
31
+ Use a helper that opens the popup, polls URL params, and closes automatically when done:
32
+
33
+ ```typescript
34
+ export const initiateComposioAuthFlow = (
35
+ url: string,
36
+ successParam: string = 'status'
37
+ ): Promise<Record<string, string>> => {
38
+ const width = 600;
39
+ const height = 840;
40
+ const leftPosition = (window.innerWidth - width) / 2;
41
+ const topPosition = (window.innerHeight - height) / 2;
42
+
43
+ return new Promise((resolve, reject) => {
44
+ const popup = window.open(
45
+ url,
46
+ 'composio-auth-popup',
47
+ `width=${width},height=${height},left=${leftPosition},top=${topPosition}`
48
+ );
49
+
50
+ if (!popup) {
51
+ reject(new Error('Popup blocked by browser'));
52
+ return;
53
+ }
54
+
55
+ popup.focus();
56
+
57
+ const popupChecker = setInterval(() => {
58
+ if (popup.closed) {
59
+ clearInterval(popupChecker);
60
+ reject(new Error('Popup closed before completion'));
61
+ return;
62
+ }
63
+
64
+ let popupUrl: URL | null = null;
65
+ try {
66
+ popupUrl = new URL(popup.location.href);
67
+ } catch {
68
+ // Cross-origin while Composio page is open; ignore until redirected back to your domain.
69
+ }
70
+
71
+ if (!popupUrl) {
72
+ return;
73
+ }
74
+
75
+ const successValue = popupUrl.searchParams.get(successParam);
76
+ const errorValue = popupUrl.searchParams.get('error');
77
+
78
+ if (errorValue) {
79
+ clearInterval(popupChecker);
80
+ popup.close();
81
+ reject(new Error(String(errorValue)));
82
+ return;
83
+ }
84
+
85
+ if (successValue !== null) {
86
+ const allParams: Record<string, string> = {};
87
+ popupUrl.searchParams.forEach((value, key) => {
88
+ allParams[key] = value;
89
+ });
90
+
91
+ clearInterval(popupChecker);
92
+ popup.close();
93
+ resolve(allParams);
94
+ }
95
+ }, 500);
96
+ });
97
+ };
98
+ ```
99
+
100
+ ## Dedicated Callback Page
101
+
102
+ Create a small callback page in your app to handle the end state:
103
+ - show "Connection successful" or "Connection failed"
104
+ - optionally show a "You can close this window" fallback
105
+ - keep query params intact so parent polling can read them
106
+
107
+ Example route path:
108
+ - `https://your-app.com/auth/composio/callback`
109
+
110
+ ## Example Integration with `connectedAccounts.link()` or `session.authorize()`
111
+
112
+ ```typescript
113
+ // in the backend
114
+ const connectionRequest = await composio.connectedAccounts.link(
115
+ userId,
116
+ authConfigId,
117
+ { callbackUrl: 'https://your-app.com/auth/composio/callback' }
118
+ );
119
+
120
+ // in the frontend
121
+ const params = await initiateComposioAuthFlow(
122
+ connectionRequest.redirectUrl,
123
+ 'status'
124
+ );
125
+ ```
126
+
127
+ You can also destructure all returned query params directly:
128
+
129
+ ```typescript
130
+ const { status, connected_account_id } = await initiateComposioAuthFlow(
131
+ authLink,
132
+ 'status'
133
+ );
134
+ ```
135
+
136
+ ## Best Practices
137
+
138
+ - Use popup only on user gesture (`onClick`) to avoid popup blockers
139
+ - Keep polling interval small (`300-700ms`) for responsive close
140
+ - Capture both success and error query params
141
+ - Always clear interval on every exit path
142
+ - Reject immediately if popup cannot be opened
143
+ - Use a stable callback URL path across environments
@@ -0,0 +1,240 @@
1
+ ---
2
+ title: Connected Accounts Management
3
+ impact: HIGH
4
+ description: Comprehensive guide to CRUD operations on connected accounts with emphasis on secure authentication flows
5
+ tags: [connected-accounts, authentication, oauth, crud, security]
6
+ ---
7
+
8
+ # Connected Accounts Management
9
+
10
+ > **Using Sessions/Tool Router?** If you're using Tool Router Sessions, you can use `session.toolkits()` to view the auth configs and connected accounts being used by the Tool Router. You only need to use the methods below if you're managing connected accounts outside of Tool Router.
11
+ > When using sessions, only use authConfigs listed via session.toolkit(), or use session.authorize() for toolkits which does not have authConfigs
12
+
13
+ Connected accounts store authentication tokens for external services. Use the `connectedAccounts` API for CRUD operations.
14
+
15
+ ## Create Connected Accounts
16
+
17
+ ### Recommended: link() - Composio-Hosted Authentication
18
+
19
+ Use `link()` for most flows. Composio handles security, OAuth, and form rendering.
20
+
21
+ ```typescript
22
+ const connectionRequest = await composio.connectedAccounts.link(
23
+ 'user_123',
24
+ 'auth_config_123',
25
+ { callbackUrl: 'https://your-app.com/callback' }
26
+ );
27
+
28
+ // Redirect user to authentication page
29
+ window.location.href = connectionRequest.redirectUrl;
30
+
31
+ // IMPORTANT: if building web applications, look for `status=success&connectedAccountId=*******` query params in the callback url. Setup a dedicated route to handle the callback if opening via popus, to show success and failure states.
32
+
33
+ // Only use the below for simpler single user application/CLIs etc.
34
+ const account = await connectionRequest.waitForConnection();
35
+ ```
36
+
37
+ While building popup-based authentication flows using Composio links, follow [Building Popup Connection UI](./app-auth-popup-ui.md).
38
+
39
+
40
+ **Why use link():**
41
+ - Handles OAuth security and form UI
42
+ - Works with 200+ services
43
+ - Whitelabel with your app name/logo (Project Settings on dashboard)
44
+ - No custom UI needed
45
+
46
+ ### Advanced: initiate() - Custom Authentication UI
47
+
48
+ Only use when building custom auth interfaces:
49
+
50
+ ```typescript
51
+ // API Key (custom form)
52
+ const connection = await composio.connectedAccounts.initiate(
53
+ 'user_123',
54
+ 'auth_config_456',
55
+ {
56
+ config: AuthScheme.ApiKey({ api_key: apiKey }),
57
+ }
58
+ );
59
+
60
+ // OAuth with extra params (Zendesk, PostHog, etc.)
61
+ const connection = await composio.connectedAccounts.initiate(
62
+ 'user_123',
63
+ 'zendesk_config',
64
+ {
65
+ config: AuthScheme.OAuth2({ subdomain: "your_subdomain" })
66
+ }
67
+ );
68
+ window.location.href = connection.redirectUrl;
69
+ ```
70
+
71
+ **AuthScheme helpers:**
72
+ - `AuthScheme.OAuth2({ subdomain: 'example' })`
73
+ - `AuthScheme.ApiKey({ api_key: 'key123' })`
74
+ - `AuthScheme.Basic({ username: 'user', password: 'pass' })`
75
+ - `AuthScheme.BearerToken({ token: 'token123' })`
76
+
77
+ **Use initiate() only when:**
78
+ - Building custom authentication UI
79
+ - Handling credentials directly in backend
80
+ - OAuth requires extra parameters before redirect
81
+
82
+ ## Read Connected Accounts
83
+
84
+ ```typescript
85
+ // List all
86
+ const allAccounts = await composio.connectedAccounts.list();
87
+
88
+ // Filter by user
89
+ const userAccounts = await composio.connectedAccounts.list({
90
+ userIds: ['user_123'],
91
+ });
92
+
93
+ // Filter by toolkit
94
+ const githubAccounts = await composio.connectedAccounts.list({
95
+ toolkitSlugs: ['github'],
96
+ });
97
+
98
+ // Filter by status
99
+ const activeAccounts = await composio.connectedAccounts.list({
100
+ statuses: ['ACTIVE']
101
+ });
102
+
103
+ // Filter by auth config
104
+ const configAccounts = await composio.connectedAccounts.list({
105
+ authConfigIds: ['auth_config_123']
106
+ });
107
+
108
+ // Combine filters
109
+ const filtered = await composio.connectedAccounts.list({
110
+ userIds: ['user_123'],
111
+ toolkitSlugs: ['github', 'slack'],
112
+ statuses: ['ACTIVE']
113
+ });
114
+
115
+ // Get specific account
116
+ const account = await composio.connectedAccounts.get('conn_abc123');
117
+ ```
118
+
119
+ **Available filters:**
120
+ - `userIds` - Filter by user IDs
121
+ - `toolkitSlugs` - Filter by toolkit slugs
122
+ - `statuses` - Filter by connection statuses (see below for values)
123
+ - `authConfigIds` - Filter by auth config IDs
124
+ - `limit` - Results per page
125
+ - `cursor` - Pagination cursor
126
+ - `orderBy` - 'created_at' or 'updated_at'
127
+
128
+ ## Update Connected Accounts
129
+
130
+ ```typescript
131
+ // Enable/disable
132
+ await composio.connectedAccounts.enable('conn_abc123');
133
+ await composio.connectedAccounts.disable('conn_abc123');
134
+
135
+ // Refresh credentials (expired OAuth tokens)
136
+ await composio.connectedAccounts.refresh('conn_abc123');
137
+ ```
138
+
139
+ ## Delete Connected Accounts
140
+
141
+ ```typescript
142
+ await composio.connectedAccounts.delete('conn_abc123');
143
+ ```
144
+
145
+ **Warning:** Permanent deletion. User must re-authenticate.
146
+
147
+ ## Wait for Connection Completion
148
+
149
+ For async OAuth flows:
150
+
151
+ ```typescript
152
+ // Default timeout (60 seconds)
153
+ const account = await composio.connectedAccounts.waitForConnection('conn_123');
154
+
155
+ // Custom timeout (2 minutes)
156
+ const account = await composio.connectedAccounts.waitForConnection('conn_123', 120000);
157
+ ```
158
+
159
+ **Errors:**
160
+ - `ComposioConnectedAccountNotFoundError` - Account doesn't exist
161
+ - `ConnectionRequestFailedError` - Connection failed/expired
162
+ - `ConnectionRequestTimeoutError` - Timeout exceeded
163
+
164
+ ## Common Patterns
165
+
166
+ ### OAuth Flow
167
+
168
+ ```typescript
169
+ // Create connection
170
+ async function connectUser(userId, authConfigId) {
171
+ const request = await composio.connectedAccounts.link(
172
+ userId,
173
+ authConfigId,
174
+ { callbackUrl: 'https://app.com/callback' }
175
+ );
176
+ return { redirectUrl: request.redirectUrl };
177
+ }
178
+
179
+ // Handle callback
180
+ async function handleCallback(connectionId) {
181
+ try {
182
+ const account = await composio.connectedAccounts.waitForConnection(
183
+ connectionId,
184
+ 180000
185
+ );
186
+ return { success: true, account };
187
+ } catch (error) {
188
+ if (error.name === 'ConnectionRequestTimeoutError') {
189
+ return { error: 'Timeout. Please try again.' };
190
+ }
191
+ throw error;
192
+ }
193
+ }
194
+ ```
195
+
196
+ ### Check Active Connections
197
+
198
+ ```typescript
199
+ // Filter by status using statuses parameter
200
+ async function getUserActiveConnections(userId) {
201
+ const accounts = await composio.connectedAccounts.list({
202
+ userIds: [userId],
203
+ statuses: ['ACTIVE']
204
+ });
205
+ return accounts.items;
206
+ }
207
+
208
+ // Check multiple statuses
209
+ async function getUserConnectionsByStatus(userId) {
210
+ const accounts = await composio.connectedAccounts.list({
211
+ userIds: [userId],
212
+ statuses: ['ACTIVE', 'EXPIRED', 'FAILED']
213
+ });
214
+ return accounts.items;
215
+ }
216
+
217
+ async function isToolkitConnected(userId, toolkit) {
218
+ const accounts = await composio.connectedAccounts.list({
219
+ userIds: [userId],
220
+ toolkitSlugs: [toolkit],
221
+ statuses: ['ACTIVE']
222
+ });
223
+ return accounts.items.length > 0;
224
+ }
225
+ ```
226
+
227
+ **Available statuses:**
228
+ - `INITIALIZING` - Connection being set up
229
+ - `INITIATED` - Connection initiated, awaiting completion
230
+ - `ACTIVE` - Connection active and ready to use
231
+ - `FAILED` - Connection failed
232
+ - `EXPIRED` - Credentials expired
233
+ - `INACTIVE` - Connection disabled
234
+
235
+ ## Key Points
236
+
237
+ - **Prefer link()** - Security, UI, and whitelabeling handled
238
+ - **Store account IDs** - Save in your database, associate with users
239
+ - **Check status** - Verify ACTIVE before use, refresh on errors
240
+ - **Handle lifecycle** - Disable instead of delete when possible