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,385 @@
1
+ ---
2
+ title: Treat Sessions as Short-Lived and Disposable
3
+ impact: CRITICAL
4
+ description: Create new sessions frequently for better logging, debugging, and configuration management
5
+ tags: [tool-router, session, lifecycle, best-practices, logging]
6
+ ---
7
+
8
+ # Treat Sessions as Short-Lived and Disposable
9
+
10
+ Tool Router sessions should be **short-lived and disposable**. Create new sessions frequently rather than caching or reusing them across different contexts.
11
+
12
+ ## ❌ Incorrect
13
+
14
+ ```typescript
15
+ // DON'T: Cache and reuse sessions across messages
16
+ class AgentService {
17
+ private sessionCache = new Map<string, ToolRouterSession>();
18
+
19
+ async handleMessage(userId: string, message: string) {
20
+ // BAD: Reusing cached session
21
+ let session = this.sessionCache.get(userId);
22
+
23
+ if (!session) {
24
+ session = await composio.create(userId, {
25
+ toolkits: ['gmail', 'slack']
26
+ });
27
+ this.sessionCache.set(userId, session);
28
+ }
29
+
30
+ // ❌ Configuration changes won't be reflected
31
+ // ❌ Logs mixed across different conversations
32
+ // ❌ Stale toolkit connections
33
+ const tools = await session.tools();
34
+ }
35
+ }
36
+ ```
37
+
38
+ ```python
39
+ # DON'T: Cache and reuse sessions across messages
40
+ class AgentService:
41
+ def __init__(self):
42
+ self.session_cache = {}
43
+
44
+ async def handle_message(self, user_id: str, message: str):
45
+ # BAD: Reusing cached session
46
+ if user_id not in self.session_cache:
47
+ session = composio.create(
48
+ user_id=user_id,
49
+ toolkits=["gmail", "slack"]
50
+ )
51
+ self.session_cache[user_id] = session
52
+
53
+ session = self.session_cache[user_id]
54
+
55
+ # ❌ Configuration changes won't be reflected
56
+ # ❌ Logs mixed across different conversations
57
+ # ❌ Stale toolkit connections
58
+ tools = session.tools()
59
+ ```
60
+
61
+ ## ✅ Correct - Create New Session Per Message
62
+
63
+ ```typescript
64
+ // DO: Create fresh session for each message
65
+ import { Composio } from '@composio/core';
66
+ import { VercelProvider } from '@composio/vercel';
67
+
68
+ const composio = new Composio({
69
+ provider: new VercelProvider()
70
+ });
71
+
72
+ async function handleUserMessage(
73
+ userId: string,
74
+ message: string,
75
+ config: { toolkits: string[] }
76
+ ) {
77
+ // Create new session for this message
78
+ const session = await composio.create(userId, {
79
+ toolkits: config.toolkits,
80
+ manageConnections: true
81
+ });
82
+
83
+ const tools = await session.tools();
84
+
85
+ // Use tools with agent...
86
+ const response = await runAgent(message, tools);
87
+
88
+ // ✅ Fresh configuration
89
+ // ✅ Clean logs grouped by session
90
+ // ✅ Latest connection states
91
+ return response;
92
+ }
93
+
94
+ // Each message gets a new session
95
+ await handleUserMessage('user_123', 'Check my emails', { toolkits: ['gmail'] });
96
+ await handleUserMessage('user_123', 'Send a slack message', { toolkits: ['slack'] });
97
+ ```
98
+
99
+ ```python
100
+ # DO: Create fresh session for each message
101
+ from composio import Composio
102
+ from composio_openai import OpenAIProvider
103
+
104
+ composio = Composio(provider=OpenAIProvider())
105
+
106
+ async def handle_user_message(
107
+ user_id: str,
108
+ message: str,
109
+ config: dict
110
+ ):
111
+ # Create new session for this message
112
+ session = composio.create(
113
+ user_id=user_id,
114
+ toolkits=config["toolkits"],
115
+ manage_connections=True
116
+ )
117
+
118
+ tools = session.tools()
119
+
120
+ # Use tools with agent...
121
+ response = await run_agent(message, tools)
122
+
123
+ # ✅ Fresh configuration
124
+ # ✅ Clean logs grouped by session
125
+ # ✅ Latest connection states
126
+ return response
127
+
128
+ # Each message gets a new session
129
+ await handle_user_message("user_123", "Check my emails", {"toolkits": ["gmail"]})
130
+ await handle_user_message("user_123", "Send a slack message", {"toolkits": ["slack"]})
131
+ ```
132
+
133
+ ## ✅ Correct - Single Session Per Conversation (When Config Stable)
134
+
135
+ ```typescript
136
+ // DO: Use one session for entire conversation if config doesn't change
137
+ async function handleConversation(
138
+ userId: string,
139
+ conversationId: string,
140
+ config: { toolkits: string[] }
141
+ ) {
142
+ // Create ONE session for this conversation/thread
143
+ const session = await composio.create(userId, {
144
+ toolkits: config.toolkits,
145
+ manageConnections: true
146
+ });
147
+
148
+ const tools = await session.tools();
149
+
150
+ console.log(`Session ${session.sessionId} for conversation ${conversationId}`);
151
+
152
+ // Use the same session for all messages in this conversation
153
+ for await (const message of conversationStream) {
154
+ const response = await runAgent(message, tools);
155
+
156
+ // ✅ All tool executions logged under same session
157
+ // ✅ Easy to debug entire conversation flow
158
+ // ✅ Grouped logs in monitoring tools
159
+ }
160
+ }
161
+ ```
162
+
163
+ ```python
164
+ # DO: Use one session for entire conversation if config doesn't change
165
+ async def handle_conversation(
166
+ user_id: str,
167
+ conversation_id: str,
168
+ config: dict
169
+ ):
170
+ # Create ONE session for this conversation/thread
171
+ session = composio.create(
172
+ user_id=user_id,
173
+ toolkits=config["toolkits"],
174
+ manage_connections=True
175
+ )
176
+
177
+ tools = session.tools()
178
+
179
+ print(f"Session {session.session_id} for conversation {conversation_id}")
180
+
181
+ # Use the same session for all messages in this conversation
182
+ async for message in conversation_stream:
183
+ response = await run_agent(message, tools)
184
+
185
+ # ✅ All tool executions logged under same session
186
+ # ✅ Easy to debug entire conversation flow
187
+ # ✅ Grouped logs in monitoring tools
188
+ ```
189
+
190
+ ## When to Create New Sessions
191
+
192
+ ### ✅ Always Create New Session When:
193
+
194
+ 1. **Configuration Changes**
195
+ ```typescript
196
+ // User connects new toolkit
197
+ if (userConnectedSlack) {
198
+ // Create new session with updated toolkits
199
+ const session = await composio.create(userId, {
200
+ toolkits: ['gmail', 'slack'] // Added slack
201
+ });
202
+ }
203
+ ```
204
+
205
+ 2. **Connected Accounts Change**
206
+ ```typescript
207
+ // User disconnected and reconnected Gmail
208
+ const session = await composio.create(userId, {
209
+ toolkits: ['gmail'],
210
+ // Will use latest connection
211
+ });
212
+ ```
213
+
214
+ 3. **Different Toolkit Requirements**
215
+ ```typescript
216
+ // Message needs different toolkits
217
+ const emailSession = await composio.create(userId, {
218
+ toolkits: ['gmail']
219
+ });
220
+
221
+ const codeSession = await composio.create(userId, {
222
+ toolkits: ['github', 'linear']
223
+ });
224
+ ```
225
+
226
+ 4. **New Conversation/Thread**
227
+ ```typescript
228
+ // Starting a new conversation thread
229
+ const session = await composio.create(userId, {
230
+ toolkits: config.toolkits,
231
+ // Fresh session for clean log grouping
232
+ });
233
+ ```
234
+
235
+ ### ✅ Can Reuse Session When:
236
+
237
+ 1. **Same conversation/thread**
238
+ 2. **Configuration unchanged**
239
+ 3. **No toolkit connections changed**
240
+ 4. **Actively ongoing interaction**
241
+
242
+ ## Benefits of Short-Lived Sessions
243
+
244
+ ### 1. **Clean Log Grouping**
245
+ ```typescript
246
+ // All tool executions in one session are grouped together
247
+ const session = await composio.create(userId, {
248
+ toolkits: ['gmail', 'slack']
249
+ });
250
+
251
+ // These executions are grouped under session.sessionId
252
+ await agent.run('Check emails'); // Logs: session_abc123
253
+ await agent.run('Send slack message'); // Logs: session_abc123
254
+
255
+ // Easy to trace entire conversation flow in monitoring
256
+ console.log(`View logs: /sessions/${session.sessionId}`);
257
+ ```
258
+
259
+ ### 2. **Fresh Configuration**
260
+ ```typescript
261
+ // Always get latest toolkit connections and auth states
262
+ const session = await composio.create(userId, {
263
+ toolkits: ['gmail']
264
+ });
265
+
266
+ // ✅ Uses current connected account
267
+ // ✅ Reflects any new connections user made
268
+ // ✅ Picks up toolkit updates
269
+ ```
270
+
271
+ ### 3. **Easier Debugging**
272
+ ```typescript
273
+ // Session ID becomes your debug trace ID
274
+ console.log(`Processing message in session ${session.sessionId}`);
275
+
276
+ // All logs tagged with session ID:
277
+ // [session_abc123] Executing GMAIL_FETCH_EMAILS
278
+ // [session_abc123] Executed GMAIL_FETCH_EMAILS
279
+ // [session_abc123] Executing SLACK_SEND_MESSAGE
280
+
281
+ // Filter all logs for this specific interaction
282
+ ```
283
+
284
+ ### 4. **Simplified Error Tracking**
285
+ ```typescript
286
+ try {
287
+ const session = await composio.create(userId, config);
288
+ const result = await runAgent(message, session);
289
+ } catch (error) {
290
+ // Session ID in error context
291
+ logger.error('Agent failed', {
292
+ sessionId: session.sessionId,
293
+ userId,
294
+ error
295
+ });
296
+ }
297
+ ```
298
+
299
+ ## Pattern: Per-Message Sessions
300
+
301
+ ```typescript
302
+ // Recommended pattern for most applications
303
+ export async function handleAgentRequest(
304
+ userId: string,
305
+ message: string,
306
+ toolkits: string[]
307
+ ) {
308
+ // 1. Create fresh session
309
+ const session = await composio.create(userId, {
310
+ toolkits,
311
+ manageConnections: true
312
+ });
313
+
314
+ // 2. Log session start
315
+ logger.info('Session started', {
316
+ sessionId: session.sessionId,
317
+ userId,
318
+ toolkits
319
+ });
320
+
321
+ try {
322
+ // 3. Get tools and run agent
323
+ const tools = await session.tools();
324
+ const response = await agent.run(message, tools);
325
+
326
+ // 4. Log session completion
327
+ logger.info('Session completed', {
328
+ sessionId: session.sessionId
329
+ });
330
+
331
+ return response;
332
+ } catch (error) {
333
+ // 5. Log session error
334
+ logger.error('Session failed', {
335
+ sessionId: session.sessionId,
336
+ error
337
+ });
338
+ throw error;
339
+ }
340
+ }
341
+ ```
342
+
343
+ ## Pattern: Per-Conversation Sessions
344
+
345
+ ```typescript
346
+ // For long-running conversations with stable config
347
+ export class ConversationSession {
348
+ private session: ToolRouterSession;
349
+
350
+ async start(userId: string, config: SessionConfig) {
351
+ // Create session once for conversation
352
+ this.session = await composio.create(userId, config);
353
+
354
+ logger.info('Conversation session started', {
355
+ sessionId: this.session.sessionId
356
+ });
357
+ }
358
+
359
+ async handleMessage(message: string) {
360
+ // Reuse session for all messages
361
+ const tools = await this.session.tools();
362
+ return await agent.run(message, tools);
363
+ }
364
+
365
+ async end() {
366
+ logger.info('Conversation session ended', {
367
+ sessionId: this.session.sessionId
368
+ });
369
+ }
370
+ }
371
+ ```
372
+
373
+ ## Key Principles
374
+
375
+ 1. **Don't cache sessions** - Create new ones as needed
376
+ 2. **Session = Unit of work** - One session per task or conversation
377
+ 3. **Short-lived is better** - Fresh state, clean logs, easier debugging
378
+ 4. **Session ID = Trace ID** - Use for log correlation and debugging
379
+ 5. **Create on demand** - No need to pre-create or warm up sessions
380
+
381
+ ## Reference
382
+
383
+ - [Tool Router Sessions](https://docs.composio.dev/sdk/typescript/api/tool-router#creating-sessions)
384
+ - [Session Properties](https://docs.composio.dev/sdk/typescript/api/tool-router#session-properties)
385
+ - [Best Practices](https://docs.composio.dev/sdk/typescript/api/tool-router#best-practices)
@@ -0,0 +1,135 @@
1
+ ---
2
+ title: Query Toolkit Connection States for UI
3
+ impact: MEDIUM
4
+ description: Use session.toolkits() to build connection management UIs showing which toolkits are connected
5
+ tags: [tool-router, toolkits, connections, ui]
6
+ ---
7
+
8
+ # Query Toolkit Connection States for UI
9
+
10
+ Use `session.toolkits()` to check connection status and build UIs showing which toolkits are connected. With `manageConnections: true`, agents handle missing connections automatically.
11
+
12
+ ## ❌ Incorrect
13
+
14
+ ```typescript
15
+ // DON'T: Build UI without showing connection status
16
+ async function showToolkits(session) {
17
+ // Just show toolkit names with no status
18
+ const toolkits = ['Gmail', 'Slack', 'GitHub'];
19
+
20
+ return toolkits.items.map(name => ({
21
+ name,
22
+ // Missing: connection status, auth button, etc.
23
+ }));
24
+ }
25
+ ```
26
+
27
+ ```python
28
+ # DON'T: Build UI without showing connection status
29
+ def show_toolkits(session):
30
+ # Just show toolkit names with no status
31
+ toolkits = ["Gmail", "Slack", "GitHub"]
32
+
33
+ return [{"name": name} for name in toolkits]
34
+ # Missing: connection status, auth button, etc.
35
+ ```
36
+
37
+ ## ✅ Correct
38
+
39
+ ```typescript
40
+ // DO: Query connection states to build connection UI
41
+ import { Composio } from '@composio/core';
42
+
43
+ const composio = new Composio();
44
+ const session = await composio.create('user_123', {
45
+ toolkits: ['gmail', 'slack', 'github'],
46
+ manageConnections: true // Agent handles auth automatically
47
+ });
48
+
49
+ // Get connection states for building UI
50
+ const { items } = await session.toolkits();
51
+
52
+ // Build connection management UI
53
+ const connectionUI = items.map(toolkit => ({
54
+ slug: toolkit.slug,
55
+ name: toolkit.name,
56
+ logo: toolkit.logo,
57
+ isConnected: toolkit.connection?.isActive || false,
58
+ status: toolkit.connection?.connectedAccount?.status,
59
+ // Show "Connect" button if not connected
60
+ needsAuth: !toolkit.connection?.isActive && !toolkit.isNoAuth
61
+ }));
62
+
63
+ console.log('Connection Status:', connectionUI);
64
+ // Use this to render connection cards in your UI
65
+ ```
66
+
67
+ ```python
68
+ # DO: Query connection states to build connection UI
69
+ from composio import Composio
70
+
71
+ composio = Composio()
72
+ session = composio.create(
73
+ user_id="user_123",
74
+ toolkits=["gmail", "slack", "github"],
75
+ manage_connections=True # Agent handles auth automatically
76
+ )
77
+
78
+ # Get connection states for building UI
79
+ result = session.toolkits()
80
+
81
+ # Build connection management UI
82
+ connection_ui = []
83
+ for toolkit in result.items:
84
+ connection_ui.append({
85
+ "slug": toolkit.slug,
86
+ "name": toolkit.name,
87
+ "logo": toolkit.logo,
88
+ "is_connected": toolkit.connection.is_active if toolkit.connection else False,
89
+ "status": toolkit.connection.connected_account.status if toolkit.connection.connected_account else None,
90
+ # Show "Connect" button if not connected
91
+ "needs_auth": not (toolkit.connection.is_active if toolkit.connection else False) and not toolkit.is_no_auth
92
+ })
93
+
94
+ print(f"Connection Status: {connection_ui}")
95
+ # Use this to render connection cards in your UI
96
+ ```
97
+
98
+ ## Response Structure
99
+
100
+ ```typescript
101
+ interface ToolkitConnectionState {
102
+ slug: string; // 'gmail'
103
+ name: string; // 'Gmail'
104
+ logo?: string; // 'https://...'
105
+ isNoAuth: boolean; // true if no auth needed
106
+ connection: {
107
+ isActive: boolean; // Is connection active?
108
+ authConfig?: {
109
+ id: string; // Auth config ID
110
+ mode: string; // 'OAUTH2', 'API_KEY', etc.
111
+ isComposioManaged: boolean;
112
+ };
113
+ connectedAccount?: {
114
+ id: string; // Connected account ID
115
+ status: string; // 'ACTIVE', 'INVALID', etc.
116
+ };
117
+ };
118
+ }
119
+ ```
120
+
121
+ ## Use Cases
122
+
123
+ - **Build connection UI**: Display connected/disconnected state with auth buttons
124
+ - **Settings pages**: Let users view and manage their connections
125
+ - **Onboarding flows**: Show which toolkits to connect during setup
126
+ - **Status dashboards**: Monitor connection health across toolkits
127
+
128
+ ## Important Note
129
+
130
+ With `manageConnections: true` (default), you don't need to check connections before agent execution - the agent will prompt users to authenticate when needed. Use `session.toolkits()` primarily for building user-facing connection management UIs.
131
+
132
+ ## Reference
133
+
134
+ - [session.toolkits()](https://docs.composio.dev/sdk/typescript/api/tool-router#toolkits)
135
+ - [Toolkit Connection State](https://docs.composio.dev/sdk/typescript/api/tool-router#toolkitconnectionstate)