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,220 @@
1
+ ---
2
+ title: Creating Custom Tools
3
+ impact: MEDIUM
4
+ description: Build standalone and toolkit-based custom tools with proper authentication and validation
5
+ tags: [custom-tools, extensibility, authentication, zod, development]
6
+ ---
7
+
8
+ # Creating Custom Tools
9
+
10
+ Create your own tools that integrate with Composio:
11
+ - **Standalone tools** - No external authentication required
12
+ - **Toolkit-based tools** - Use toolkit credentials for API requests
13
+
14
+ > **⚠️ IMPORTANT:** When creating toolkit-based tools, do NOT make up or guess toolkit slugs. Always verify:
15
+ > - Use `composio manage toolkits list` to discover and `composio manage toolkits info "..."` to view toolkit details and auth schemes (CLI)
16
+ > - Use `composio.toolkits.get()` to discover toolkits programmatically (SDK)
17
+ >
18
+ > See [Composio CLI Reference](./composio-cli.md) for discovery commands.
19
+
20
+ ## Standalone Tools
21
+
22
+ For tools that don't need external authentication:
23
+
24
+ ```typescript
25
+ import { z } from 'zod';
26
+
27
+ const tool = await composio.tools.createCustomTool({
28
+ slug: 'CALCULATE_SQUARE',
29
+ name: 'Calculate Square',
30
+ description: 'Calculates the square of a number',
31
+ inputParams: z.object({
32
+ number: z.number().describe('The number to calculate the square of'),
33
+ }),
34
+ execute: async (input) => {
35
+ return {
36
+ data: { result: input.number * input.number },
37
+ error: null,
38
+ successful: true,
39
+ };
40
+ },
41
+ });
42
+ ```
43
+
44
+ **Use for:** Math, string operations, data transformations, internal logic.
45
+
46
+ ## Toolkit-Based Tools
47
+
48
+ For tools that call authenticated APIs.
49
+
50
+ ### Using executeToolRequest (Recommended)
51
+
52
+ Automatically handles authentication and baseURL:
53
+
54
+ ```typescript
55
+ const tool = await composio.tools.createCustomTool({
56
+ slug: 'GITHUB_STAR_REPOSITORY',
57
+ name: 'Star GitHub Repository',
58
+ toolkitSlug: 'github',
59
+ description: 'Star a repository under composiohq',
60
+ inputParams: z.object({
61
+ repository: z.string().describe('Repository name'),
62
+ page: z.number().optional().describe('Page number'),
63
+ }),
64
+ execute: async (input, connectionConfig, executeToolRequest) => {
65
+ return await executeToolRequest({
66
+ endpoint: `/user/starred/composiohq/${input.repository}`,
67
+ method: 'PUT',
68
+ parameters: [
69
+ {
70
+ name: 'page',
71
+ value: input.page?.toString() || '1',
72
+ in: 'query', // Adds ?page=1
73
+ },
74
+ ],
75
+ });
76
+ },
77
+ });
78
+ ```
79
+
80
+ ### Using connectionConfig (Direct API Calls)
81
+
82
+ For custom HTTP requests:
83
+
84
+ ```typescript
85
+ const tool = await composio.tools.createCustomTool({
86
+ slug: 'GITHUB_DIRECT_API',
87
+ name: 'Direct GitHub API',
88
+ toolkitSlug: 'github',
89
+ inputParams: z.object({
90
+ repo: z.string().describe('Repository name'),
91
+ }),
92
+ execute: async (input, connectionConfig) => {
93
+ const response = await fetch(`https://api.github.com/repos/${input.repo}`, {
94
+ headers: {
95
+ Authorization: `Bearer ${connectionConfig.val?.access_token}`,
96
+ },
97
+ });
98
+
99
+ const data = await response.json();
100
+
101
+ return {
102
+ data: data,
103
+ error: response.ok ? null : 'API request failed',
104
+ successful: response.ok,
105
+ };
106
+ },
107
+ });
108
+ ```
109
+
110
+ ## Input Validation with Zod
111
+
112
+ Define and validate parameters using Zod:
113
+
114
+ ```typescript
115
+ inputParams: z.object({
116
+ // Required string
117
+ name: z.string().describe('User name'),
118
+
119
+ // Optional with default
120
+ count: z.number().optional().default(10).describe('Number of items'),
121
+
122
+ // With validation
123
+ email: z.string().email().describe('Email address'),
124
+
125
+ // Enum
126
+ status: z.enum(['active', 'inactive']).describe('Status'),
127
+
128
+ // Array
129
+ tags: z.array(z.string()).describe('Tags'),
130
+
131
+ // Nested object
132
+ metadata: z.object({
133
+ key: z.string(),
134
+ value: z.string(),
135
+ }).optional().describe('Metadata'),
136
+ })
137
+ ```
138
+
139
+ **Always use `.describe()`** - helps AI understand parameter purpose.
140
+
141
+ ## Headers and Query Parameters
142
+
143
+ Add headers and query params via `parameters` array:
144
+
145
+ ```typescript
146
+ execute: async (input, connectionConfig, executeToolRequest) => {
147
+ return await executeToolRequest({
148
+ endpoint: '/search/repositories',
149
+ method: 'GET',
150
+ parameters: [
151
+ // Query parameters
152
+ {
153
+ name: 'q',
154
+ value: input.query,
155
+ in: 'query', // ?q=value
156
+ },
157
+ // Headers
158
+ {
159
+ name: 'Accept',
160
+ value: 'application/vnd.github.v3+json',
161
+ in: 'header',
162
+ },
163
+ ],
164
+ });
165
+ }
166
+ ```
167
+
168
+ ## Executing Custom Tools
169
+
170
+ ```typescript
171
+ // Standalone tool
172
+ await composio.tools.execute('CALCULATE_SQUARE', {
173
+ userId: 'default',
174
+ arguments: { number: 5 },
175
+ });
176
+
177
+ // Toolkit-based tool (uses userId to find account)
178
+ await composio.tools.execute('GITHUB_STAR_REPOSITORY', {
179
+ userId: 'user_123',
180
+ arguments: { repository: 'composio' },
181
+ });
182
+
183
+ // With explicit connected account
184
+ await composio.tools.execute('GITHUB_STAR_REPOSITORY', {
185
+ userId: 'user_123',
186
+ connectedAccountId: 'conn_abc123',
187
+ arguments: { repository: 'composio' },
188
+ });
189
+ ```
190
+
191
+ ## Error Handling
192
+
193
+ Always return structured responses:
194
+
195
+ ```typescript
196
+ execute: async (input) => {
197
+ try {
198
+ const result = performOperation(input);
199
+ return {
200
+ data: result,
201
+ error: null,
202
+ successful: true,
203
+ };
204
+ } catch (error) {
205
+ return {
206
+ data: null,
207
+ error: error.message,
208
+ successful: false,
209
+ };
210
+ }
211
+ }
212
+ ```
213
+
214
+ ## Key Points
215
+
216
+ - **Naming:** Use `TOOLKIT_ACTION_DESCRIPTION` format for slugs
217
+ - **Prefer executeToolRequest:** Handles auth and baseURL automatically
218
+ - **Describe parameters:** AI agents need clear descriptions
219
+ - **Not persisted:** Custom tools exist in memory only, recreate on restart
220
+ - **Single toolkit scope:** executeToolRequest only works within same toolkit
@@ -0,0 +1,202 @@
1
+ ---
2
+ title: Direct Tool Execution for Applications
3
+ impact: HIGH
4
+ description: Core patterns for manually executing Composio tools in applications without agent frameworks
5
+ tags: [tools, execute, execution, apps, manual]
6
+ ---
7
+
8
+ # Direct Tool Execution for Applications
9
+
10
+ When building applications without agent frameworks, use `composio.tools.execute()` to manually execute tools.
11
+
12
+ ## Basic Execution
13
+
14
+ ```typescript
15
+ // Execute with a specific version (REQUIRED)
16
+ const result = await composio.tools.execute('GITHUB_GET_ISSUES', {
17
+ userId: 'default',
18
+ arguments: { owner: 'composio', repo: 'sdk' },
19
+ version: '12082025_00', // Specific version required
20
+ });
21
+ ```
22
+
23
+ ## Discovering Available Tools
24
+
25
+ > **⚠️ IMPORTANT:** Do NOT make up or guess tool or toolkit names/versions. Always verify slugs before using them:
26
+ > - Use `composio manage tools list --toolkits "..."` to discover and `composio manage tools info "..."` to view tool schema (CLI)
27
+ > - Use `composio.tools.get()` to discover available tools programmatically (SDK)
28
+ >
29
+ > See [Composio CLI Reference](./composio-cli.md) for discovery commands.
30
+
31
+ ```typescript
32
+ // Get all available tools in a toolkit
33
+ const githubTools = await composio.tools.get('default', {
34
+ toolkits: ['github'],
35
+ limit: 100 // Set appropriate limit
36
+ });
37
+
38
+ console.log('Available GitHub tools:', githubTools.map(t => t.name));
39
+ ```
40
+
41
+ ```python
42
+ # Get all available tools in a toolkit
43
+ github_tools = composio.tools.get(
44
+ user_id="default",
45
+ toolkits=["github"],
46
+ limit=100 # Set appropriate limit
47
+ )
48
+
49
+ print("Available GitHub tools:", [t.name for t in github_tools])
50
+ ```
51
+
52
+ ## Version Management
53
+
54
+ **CRITICAL**: When manually executing tools (especially in workflows), a **specific version is required**. Using `'latest'` will throw an error.
55
+
56
+ **How to discover available versions:**
57
+ Use `composio.toolkits.get()` to see available versions for a toolkit:
58
+
59
+ ```typescript
60
+ // Get toolkit information to see available versions
61
+ const githubToolkit = await composio.toolkits.get('github');
62
+ console.log('Available versions:', githubToolkit.versions);
63
+ // e.g., ["12082025_00", "10082025_01", "08082025_00"]
64
+ console.log('Current version:', githubToolkit.version); // e.g., "12082025_00"
65
+
66
+ // ✅ DO: Pin to a specific version string for stability
67
+ const result = await composio.tools.execute('GITHUB_GET_ISSUES', {
68
+ userId: 'user_123',
69
+ arguments: { owner: 'composio', repo: 'sdk' },
70
+ version: '12082025_00', // Pinned version string
71
+ });
72
+ ```
73
+
74
+ ```python
75
+ # Get toolkit information to see available versions
76
+ github_toolkit = composio.toolkits.get("github")
77
+ print(f"Available versions: {github_toolkit.versions}")
78
+ # e.g., ["12082025_00", "10082025_01", "08082025_00"]
79
+ print(f"Current version: {github_toolkit.version}") # e.g., "12082025_00"
80
+
81
+ # ✅ DO: Pin to a specific version string for stability
82
+ result = composio.tools.execute(
83
+ tool="GITHUB_GET_ISSUES",
84
+ user_id="user_123",
85
+ arguments={"owner": "composio", "repo": "sdk"},
86
+ version="12082025_00" # Pinned version string
87
+ )
88
+ ```
89
+
90
+ **Why version pinning is required:**
91
+ - Tool argument schemas can change between versions
92
+ - Using `'latest'` in workflows can cause runtime errors when tools are updated
93
+ - Pinned versions ensure workflow stability and predictability
94
+ - Version validation prevents production issues from schema mismatches
95
+ - **Don't use `githubToolkit.version` dynamically** - this always returns the latest version, defeating the purpose of pinning
96
+
97
+ See [Tool Version Management](app-tool-versions.md) for detailed version strategies.
98
+
99
+ ## Parameters
100
+
101
+ ### ExecuteParams Object
102
+
103
+ ```typescript
104
+ {
105
+ userId: string, // User ID for connected account lookup
106
+ arguments: object, // Tool-specific input parameters
107
+ version?: string, // Toolkit version (required for manual execution)
108
+ dangerouslySkipVersionCheck?: boolean // Bypass version validation (NOT recommended)
109
+ }
110
+ ```
111
+
112
+ ### Execution Modifiers
113
+
114
+ Transform requests and responses with modifiers:
115
+
116
+ ```typescript
117
+ const result = await composio.tools.execute(
118
+ 'GITHUB_GET_ISSUES',
119
+ {
120
+ userId: 'default',
121
+ arguments: { owner: 'composio', repo: 'sdk' },
122
+ version: '12082025_00',
123
+ },
124
+ {
125
+ beforeExecute: ({ toolSlug, toolkitSlug, params }) => {
126
+ // Modify params before execution
127
+ console.log('Executing:', toolSlug);
128
+ return {
129
+ ...params,
130
+ arguments: {
131
+ ...params.arguments,
132
+ per_page: 100 // Add default parameter
133
+ }
134
+ };
135
+ },
136
+ afterExecute: ({ toolSlug, toolkitSlug, result }) => {
137
+ // Transform result after execution
138
+ console.log('Completed:', toolSlug);
139
+ return {
140
+ ...result,
141
+ timestamp: new Date().toISOString()
142
+ };
143
+ },
144
+ }
145
+ );
146
+ ```
147
+
148
+ ## Response Format
149
+
150
+ ```typescript
151
+ interface ToolExecuteResponse {
152
+ data: any; // Tool-specific response data
153
+ error: string | null; // Error message if execution failed
154
+ successful: boolean; // Whether execution succeeded
155
+ }
156
+ ```
157
+
158
+ ## Error Handling
159
+
160
+ ```typescript
161
+ try {
162
+ const result = await composio.tools.execute('GITHUB_GET_ISSUES', {
163
+ userId: 'user_123',
164
+ arguments: { owner: 'composio', repo: 'sdk' },
165
+ version: '12082025_00',
166
+ });
167
+
168
+ if (!result.successful) {
169
+ console.error('Tool execution failed:', result.error);
170
+ // Handle error case
171
+ return;
172
+ }
173
+
174
+ // Process successful result
175
+ console.log('Issues:', result.data);
176
+ } catch (error) {
177
+ if (error.name === 'ComposioToolNotFoundError') {
178
+ console.error('Tool not found');
179
+ } else if (error.name === 'ComposioToolExecutionError') {
180
+ console.error('Execution error:', error.message);
181
+ } else {
182
+ console.error('Unexpected error:', error);
183
+ }
184
+ }
185
+ ```
186
+
187
+ ## Common Error Types
188
+
189
+ - `ComposioCustomToolsNotInitializedError`: Custom tools instance not initialized
190
+ - `ComposioToolNotFoundError`: Tool with the given slug not found
191
+ - `ComposioToolExecutionError`: Error during tool execution
192
+ - Version validation errors: Thrown when version is missing or `'latest'` is used
193
+
194
+ ## Best Practices
195
+
196
+ 1. **Always specify versions**: Use explicit versions or configure at initialization
197
+ 2. **Handle errors gracefully**: Check `successful` flag and handle `error` field
198
+ 3. **Validate arguments**: Ensure all required parameters are provided
199
+ 4. **Use modifiers sparingly**: Only add modifiers when necessary for transformation
200
+ 5. **Log execution details**: Track which tools are executed for debugging
201
+ 6. **Test with real data**: Validate execution with actual connected accounts
202
+ 7. **Handle authentication errors**: User may not have connected account for toolkit
@@ -0,0 +1,292 @@
1
+ ---
2
+ title: Fetching Tools for Applications
3
+ impact: HIGH
4
+ description: Essential patterns for discovering and retrieving tools from Composio for direct execution in applications
5
+ tags: [tools, fetch, discovery, apps, providers]
6
+ ---
7
+
8
+ # Fetching Tools for Applications
9
+
10
+ When building applications (non-agent workflows), use direct tool fetching methods to discover and retrieve tools from Composio.
11
+
12
+ > **⚠️ IMPORTANT:** Do NOT make up or guess tool or toolkit names. Always verify slugs before using them:
13
+ > - Use `composio manage toolkits list` / `composio manage toolkits info "..."` and `composio manage tools list --toolkits "..."` / `composio manage tools info "..."` (CLI)
14
+ > - Use `composio.tools.get()` to discover available tools programmatically (SDK)
15
+ >
16
+ > See [Composio CLI Reference](./composio-cli.md) for discovery commands.
17
+
18
+ ## Methods Overview
19
+
20
+ - **`tools.get()`** - Use when working with a provider (OpenAI, Vercel, etc.). Returns tools wrapped in provider-specific format.
21
+ - **`tools.getRawComposioTools()`** - Use for standalone applications and building UIs. Returns raw tool metadata without provider wrapping.
22
+
23
+ ### 1. tools.get() - For Provider-Based Applications
24
+
25
+ Use `tools.get()` when you're using Composio with a provider like OpenAI, Vercel AI SDK, or LangChain. This method wraps tools in the format expected by your provider.
26
+
27
+ **Get tools from a toolkit:**
28
+ ```typescript
29
+ // Get important tools only (auto-applies important filter)
30
+ const importantGithubTools = await composio.tools.get('default', {
31
+ toolkits: ['github']
32
+ });
33
+
34
+ // Get a limited number of tools (does NOT auto-apply important filter)
35
+ const githubTools = await composio.tools.get('default', {
36
+ toolkits: ['github'],
37
+ limit: 10
38
+ });
39
+ ```
40
+
41
+ **Get a specific tool by slug:**
42
+ ```typescript
43
+ const tool = await composio.tools.get('default', 'GITHUB_GET_REPO');
44
+ ```
45
+
46
+ ### 2. tools.getRawComposioTools() - For Standalone Applications & UIs
47
+
48
+ Use `getRawComposioTools()` for standalone applications and building UIs. This method returns raw tool metadata without provider-specific wrapping, making it ideal for:
49
+ - Building tool selection UIs
50
+ - Creating tool catalogs or documentation
51
+ - Direct tool execution workflows (without providers)
52
+ - Custom tool management interfaces
53
+
54
+ ```typescript
55
+ // Get important tools (auto-applies important filter)
56
+ const importantTools = await composio.tools.getRawComposioTools({
57
+ toolkits: ['github']
58
+ });
59
+
60
+ // Get specific tools by slug
61
+ const specificTools = await composio.tools.getRawComposioTools({
62
+ tools: ['GITHUB_GET_REPOS', 'SLACK_SEND_MESSAGE']
63
+ });
64
+
65
+ // Get limited tools (does NOT auto-apply important)
66
+ const limitedTools = await composio.tools.getRawComposioTools({
67
+ toolkits: ['slack'],
68
+ limit: 5
69
+ });
70
+ ```
71
+
72
+ ## Important Filter Behavior
73
+
74
+ The `important` filter auto-applies to show only the most commonly used tools.
75
+
76
+ **Auto-applies when:**
77
+ - Only `toolkits` filter is provided (no other filters)
78
+
79
+ **Does NOT auto-apply when:**
80
+ - `limit` is specified
81
+ - `search` is used
82
+ - `tools` (specific slugs) are provided
83
+ - `tags` are specified
84
+ - `important` is explicitly set to `false`
85
+
86
+ ```typescript
87
+ // Auto-applies important=true
88
+ await composio.tools.get('default', { toolkits: ['github'] });
89
+
90
+ // Does NOT auto-apply important (limit specified)
91
+ await composio.tools.get('default', { toolkits: ['github'], limit: 10 });
92
+
93
+ // Does NOT auto-apply important (search used)
94
+ await composio.tools.get('default', { search: 'repo' });
95
+
96
+ // Explicitly disable important filter
97
+ await composio.tools.get('default', { toolkits: ['github'], important: false });
98
+ ```
99
+
100
+ ## Filter Parameters
101
+
102
+ Available filters for both `tools.get()` and `tools.getRawComposioTools()`:
103
+
104
+ - `toolkits`: Array of toolkit names (e.g., `['github', 'slack']`)
105
+ - `tools`: Array of specific tool slugs (e.g., `['GITHUB_GET_REPO']`)
106
+ - `search`: Search string for tool names/descriptions
107
+ - `limit`: Maximum number of tools to return
108
+ - `tags`: Array of tags to filter by
109
+ - `scopes`: Array of scopes to filter by
110
+ - `authConfigIds`: Array of auth config IDs to filter tools by specific auth configs
111
+ - `important`: Boolean to explicitly control important filter (auto-applies in some cases)
112
+
113
+ **Note:** You cannot use `tools` and `toolkits` filters together.
114
+
115
+ ## Schema Modification
116
+
117
+ Customize tool schemas at fetch time:
118
+
119
+ ```typescript
120
+ const customizedTools = await composio.tools.get('default', {
121
+ toolkits: ['github']
122
+ }, {
123
+ modifySchema: ({ toolSlug, toolkitSlug, schema }) => {
124
+ return { ...schema, description: 'Custom description' };
125
+ }
126
+ });
127
+ ```
128
+
129
+ ## Best Practices
130
+
131
+ 1. **Choose the right method:**
132
+ - Use `tools.get()` when working with providers (OpenAI, Vercel, LangChain)
133
+ - Use `tools.getRawComposioTools()` for standalone apps, UIs, and catalogs
134
+
135
+ 2. **Use important filter for UIs**: Show important tools first, then allow users to discover all tools
136
+
137
+ 3. **Cache tool metadata**: Tools don't change frequently, cache the results
138
+
139
+ 4. **Filter by toolkit**: Group tools by toolkit for better organization
140
+
141
+ 5. **Don't mix tools and toolkits filters**: Cannot use both filters together
142
+
143
+ ## Complete Discovery Workflow
144
+
145
+ Here's the recommended workflow for discovering and using tools:
146
+
147
+ ```typescript
148
+ // Step 1: Get toolkit information (to discover available versions)
149
+ const githubToolkit = await composio.toolkits.get('github');
150
+ console.log('Toolkit:', githubToolkit.name);
151
+ console.log('Available versions:', githubToolkit.versions);
152
+ console.log('Current version:', githubToolkit.version);
153
+ console.log('Description:', githubToolkit.description);
154
+
155
+ // Step 2: Discover all available tools in the toolkit
156
+ const allGithubTools = await composio.tools.get('default', {
157
+ toolkits: ['github'],
158
+ limit: 100 // Adjust based on your needs
159
+ });
160
+
161
+ console.log('\nAvailable tools:');
162
+ allGithubTools.forEach(tool => {
163
+ console.log(`- ${tool.name}: ${tool.description}`);
164
+ });
165
+
166
+ // Step 3: Find the tool you need
167
+ const repoTool = allGithubTools.find(t => t.name === 'GITHUB_GET_REPO');
168
+ if (!repoTool) {
169
+ throw new Error('Tool not found');
170
+ }
171
+
172
+ // Step 4: Execute the tool with a pinned version string
173
+ const result = await composio.tools.execute('GITHUB_GET_REPO', {
174
+ userId: 'user_123',
175
+ arguments: { owner: 'composio', repo: 'sdk' },
176
+ version: '12082025_00' // ✅ Pinned version string for stability
177
+ });
178
+ ```
179
+
180
+ ```python
181
+ # Step 1: Get toolkit information (to discover available versions)
182
+ github_toolkit = composio.toolkits.get("github")
183
+ print(f"Toolkit: {github_toolkit.name}")
184
+ print(f"Available versions: {github_toolkit.versions}")
185
+ print(f"Current version: {github_toolkit.version}")
186
+ print(f"Description: {github_toolkit.description}")
187
+
188
+ # Step 2: Discover all available tools in the toolkit
189
+ all_github_tools = composio.tools.get(
190
+ user_id="default",
191
+ toolkits=["github"],
192
+ limit=100 # Adjust based on your needs
193
+ )
194
+
195
+ print("\nAvailable tools:")
196
+ for tool in all_github_tools:
197
+ print(f"- {tool.name}: {tool.description}")
198
+
199
+ # Step 3: Find the tool you need
200
+ repo_tool = next((t for t in all_github_tools if t.name == "GITHUB_GET_REPO"), None)
201
+ if not repo_tool:
202
+ raise Exception("Tool not found")
203
+
204
+ # Step 4: Execute the tool with a pinned version string
205
+ result = composio.tools.execute(
206
+ tool="GITHUB_GET_REPO",
207
+ user_id="user_123",
208
+ arguments={"owner": "composio", "repo": "sdk"},
209
+ version="12082025_00" # ✅ Pinned version string for stability
210
+ )
211
+ ```
212
+
213
+ ## ❌ Common Mistakes
214
+
215
+ ```typescript
216
+ // DON'T: Guess or make up tool names
217
+ const result = await composio.tools.execute('GITHUB_GET_REPOSITORY', { // ❌ Wrong name
218
+ userId: 'user_123',
219
+ arguments: { repo: 'sdk' },
220
+ version: '12082025_00'
221
+ });
222
+
223
+ // DON'T: Use hardcoded versions without checking
224
+ const result = await composio.tools.execute('GITHUB_GET_REPO', {
225
+ userId: 'user_123',
226
+ arguments: { owner: 'composio', repo: 'sdk' },
227
+ version: '12082025_00' // ❌ This might be outdated, use `composio manage toolkits info "github"` to get the latest version
228
+ });
229
+ ```
230
+
231
+ ```python
232
+ # DON'T: Guess or make up tool names
233
+ result = composio.tools.execute(
234
+ tool="GITHUB_GET_REPOSITORY", # ❌ Wrong name
235
+ user_id="user_123",
236
+ arguments={"repo": "sdk"},
237
+ version="12082025_00"
238
+ )
239
+
240
+ # DON'T: Use hardcoded versions without checking
241
+ result = composio.tools.execute(
242
+ tool="GITHUB_GET_REPO",
243
+ user_id="user_123",
244
+ arguments={"owner": "composio", "repo": "sdk"},
245
+ version="12082025_00" # ❌ This might be outdated
246
+ )
247
+ ```
248
+
249
+ ## ✅ Best Practices
250
+
251
+ ```typescript
252
+ // DO: Discover available versions and tools first
253
+ const toolkit = await composio.toolkits.get('github');
254
+ console.log('Available versions:', toolkit.versions);
255
+
256
+ const tools = await composio.tools.get('default', {
257
+ toolkits: ['github'],
258
+ limit: 100
259
+ });
260
+
261
+ // DO: Use discovered tool names and pin to a specific version string
262
+ const toolName = tools.find(t => t.description.includes('repository'))?.name;
263
+ if (toolName) {
264
+ const result = await composio.tools.execute(toolName, {
265
+ userId: 'user_123',
266
+ arguments: { owner: 'composio', repo: 'sdk' },
267
+ version: '12082025_00' // ✅ Pinned version string for stability
268
+ });
269
+ }
270
+ ```
271
+
272
+ ```python
273
+ # DO: Discover available versions and tools first
274
+ toolkit = composio.toolkits.get("github")
275
+ print(f"Available versions: {toolkit.versions}")
276
+
277
+ tools = composio.tools.get(
278
+ user_id="default",
279
+ toolkits=["github"],
280
+ limit=100
281
+ )
282
+
283
+ # DO: Use discovered tool names and pin to a specific version string
284
+ tool_name = next((t.name for t in tools if "repository" in t.description), None)
285
+ if tool_name:
286
+ result = composio.tools.execute(
287
+ tool=tool_name,
288
+ user_id="user_123",
289
+ arguments={"owner": "composio", "repo": "sdk"},
290
+ version="12082025_00" # ✅ Pinned version string for stability
291
+ )
292
+ ```