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.
- package/.agents/skills/agent-browser/SKILL.md +55 -0
- package/.agents/skills/agentmail/SKILL.md +282 -0
- package/.agents/skills/agentmail/references/webhooks.md +220 -0
- package/.agents/skills/agentmail/references/websockets.md +263 -0
- package/.agents/skills/ai-elements/SKILL.md +160 -0
- package/.agents/skills/ai-elements/references/agent.md +134 -0
- package/.agents/skills/ai-elements/references/artifact.md +84 -0
- package/.agents/skills/ai-elements/references/attachments.md +190 -0
- package/.agents/skills/ai-elements/references/audio-player.md +134 -0
- package/.agents/skills/ai-elements/references/canvas.md +34 -0
- package/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
- package/.agents/skills/ai-elements/references/checkpoint.md +183 -0
- package/.agents/skills/ai-elements/references/code-block.md +170 -0
- package/.agents/skills/ai-elements/references/commit.md +177 -0
- package/.agents/skills/ai-elements/references/confirmation.md +262 -0
- package/.agents/skills/ai-elements/references/connection.md +34 -0
- package/.agents/skills/ai-elements/references/context.md +126 -0
- package/.agents/skills/ai-elements/references/controls.md +32 -0
- package/.agents/skills/ai-elements/references/conversation.md +224 -0
- package/.agents/skills/ai-elements/references/edge.md +52 -0
- package/.agents/skills/ai-elements/references/environment-variables.md +102 -0
- package/.agents/skills/ai-elements/references/file-tree.md +72 -0
- package/.agents/skills/ai-elements/references/image.md +146 -0
- package/.agents/skills/ai-elements/references/inline-citation.md +299 -0
- package/.agents/skills/ai-elements/references/jsx-preview.md +104 -0
- package/.agents/skills/ai-elements/references/message.md +237 -0
- package/.agents/skills/ai-elements/references/mic-selector.md +189 -0
- package/.agents/skills/ai-elements/references/model-selector.md +112 -0
- package/.agents/skills/ai-elements/references/node.md +73 -0
- package/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
- package/.agents/skills/ai-elements/references/package-info.md +95 -0
- package/.agents/skills/ai-elements/references/panel.md +33 -0
- package/.agents/skills/ai-elements/references/persona.md +166 -0
- package/.agents/skills/ai-elements/references/plan.md +79 -0
- package/.agents/skills/ai-elements/references/prompt-input.md +579 -0
- package/.agents/skills/ai-elements/references/queue.md +172 -0
- package/.agents/skills/ai-elements/references/reasoning.md +238 -0
- package/.agents/skills/ai-elements/references/sandbox.md +129 -0
- package/.agents/skills/ai-elements/references/schema-display.md +102 -0
- package/.agents/skills/ai-elements/references/shimmer.md +48 -0
- package/.agents/skills/ai-elements/references/snippet.md +64 -0
- package/.agents/skills/ai-elements/references/sources.md +209 -0
- package/.agents/skills/ai-elements/references/speech-input.md +163 -0
- package/.agents/skills/ai-elements/references/stack-trace.md +224 -0
- package/.agents/skills/ai-elements/references/suggestion.md +124 -0
- package/.agents/skills/ai-elements/references/task.md +222 -0
- package/.agents/skills/ai-elements/references/terminal.md +103 -0
- package/.agents/skills/ai-elements/references/test-results.md +157 -0
- package/.agents/skills/ai-elements/references/tool.md +285 -0
- package/.agents/skills/ai-elements/references/toolbar.md +32 -0
- package/.agents/skills/ai-elements/references/transcription.md +120 -0
- package/.agents/skills/ai-elements/references/voice-selector.md +241 -0
- package/.agents/skills/ai-elements/references/web-preview.md +200 -0
- package/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
- package/.agents/skills/ai-elements/scripts/artifact.tsx +127 -0
- package/.agents/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
- package/.agents/skills/ai-elements/scripts/attachments-list.tsx +95 -0
- package/.agents/skills/ai-elements/scripts/attachments.tsx +85 -0
- package/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
- package/.agents/skills/ai-elements/scripts/audio-player.tsx +68 -0
- package/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/checkpoint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
- package/.agents/skills/ai-elements/scripts/code-block.tsx +120 -0
- package/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
- package/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
- package/.agents/skills/ai-elements/scripts/confirmation.tsx +55 -0
- package/.agents/skills/ai-elements/scripts/context.tsx +45 -0
- package/.agents/skills/ai-elements/scripts/conversation.tsx +177 -0
- package/.agents/skills/ai-elements/scripts/environment-variables.tsx +62 -0
- package/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
- package/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
- package/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
- package/.agents/skills/ai-elements/scripts/file-tree.tsx +42 -0
- package/.agents/skills/ai-elements/scripts/image.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/inline-citation.tsx +97 -0
- package/.agents/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
- package/.agents/skills/ai-elements/scripts/message.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/mic-selector.tsx +49 -0
- package/.agents/skills/ai-elements/scripts/model-selector.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
- package/.agents/skills/ai-elements/scripts/package-info.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/persona-command.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-glint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-halo.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-mana.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-opal.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/plan.tsx +65 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/prompt-input.tsx +267 -0
- package/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
- package/.agents/skills/ai-elements/scripts/queue.tsx +295 -0
- package/.agents/skills/ai-elements/scripts/reasoning.tsx +71 -0
- package/.agents/skills/ai-elements/scripts/sandbox.tsx +178 -0
- package/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
- package/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
- package/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
- package/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
- package/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
- package/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
- package/.agents/skills/ai-elements/scripts/sources-custom.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/sources.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/speech-input.tsx +84 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
- package/.agents/skills/ai-elements/scripts/stack-trace.tsx +58 -0
- package/.agents/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
- package/.agents/skills/ai-elements/scripts/suggestion.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/task.tsx +59 -0
- package/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
- package/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
- package/.agents/skills/ai-elements/scripts/terminal.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
- package/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/test-results.tsx +102 -0
- package/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
- package/.agents/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
- package/.agents/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/tool.tsx +222 -0
- package/.agents/skills/ai-elements/scripts/transcription.tsx +290 -0
- package/.agents/skills/ai-elements/scripts/voice-selector.tsx +245 -0
- package/.agents/skills/ai-elements/scripts/web-preview.tsx +115 -0
- package/.agents/skills/ai-sdk/SKILL.md +78 -0
- package/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
- package/.agents/skills/ai-sdk/references/common-errors.md +443 -0
- package/.agents/skills/ai-sdk/references/devtools.md +52 -0
- package/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
- package/.agents/skills/chat-sdk/SKILL.md +240 -0
- package/.agents/skills/composio/AGENTS.md +404 -0
- package/.agents/skills/composio/SKILL.md +55 -0
- package/.agents/skills/composio/rules/_template.md +38 -0
- package/.agents/skills/composio/rules/app-auth-configs.md +224 -0
- package/.agents/skills/composio/rules/app-auth-popup-ui.md +143 -0
- package/.agents/skills/composio/rules/app-connected-accounts.md +240 -0
- package/.agents/skills/composio/rules/app-custom-tools.md +220 -0
- package/.agents/skills/composio/rules/app-execute-tools.md +202 -0
- package/.agents/skills/composio/rules/app-fetch-tools.md +292 -0
- package/.agents/skills/composio/rules/app-modifiers.md +148 -0
- package/.agents/skills/composio/rules/app-tool-versions.md +343 -0
- package/.agents/skills/composio/rules/app-toolkits.md +184 -0
- package/.agents/skills/composio/rules/app-user-context.md +222 -0
- package/.agents/skills/composio/rules/building-with-composio.md +134 -0
- package/.agents/skills/composio/rules/composio-cli.md +223 -0
- package/.agents/skills/composio/rules/setup-api-keys.md +230 -0
- package/.agents/skills/composio/rules/tr-auth-auto.md +110 -0
- package/.agents/skills/composio/rules/tr-auth-connections.md +167 -0
- package/.agents/skills/composio/rules/tr-auth-manual.md +161 -0
- package/.agents/skills/composio/rules/tr-building-chat-ui.md +348 -0
- package/.agents/skills/composio/rules/tr-framework-ai-sdk.md +240 -0
- package/.agents/skills/composio/rules/tr-framework-integration.md +818 -0
- package/.agents/skills/composio/rules/tr-framework-mastra.md +185 -0
- package/.agents/skills/composio/rules/tr-mcp-vs-native.md +248 -0
- package/.agents/skills/composio/rules/tr-session-basic.md +82 -0
- package/.agents/skills/composio/rules/tr-session-config.md +172 -0
- package/.agents/skills/composio/rules/tr-session-lifecycle.md +385 -0
- package/.agents/skills/composio/rules/tr-toolkit-query.md +135 -0
- package/.agents/skills/composio/rules/tr-userid-best-practices.md +476 -0
- package/.agents/skills/composio/rules/triggers-create.md +246 -0
- package/.agents/skills/composio/rules/triggers-manage.md +275 -0
- package/.agents/skills/composio/rules/triggers-subscribe.md +173 -0
- package/.agents/skills/composio/rules/triggers-webhook.md +227 -0
- package/.agents/skills/create-auth-skill/SKILL.md +321 -0
- package/.agents/skills/design-md/README.md +34 -0
- package/.agents/skills/design-md/SKILL.md +172 -0
- package/.agents/skills/design-md/examples/DESIGN.md +154 -0
- package/.agents/skills/expo-tailwind-setup/SKILL.md +480 -0
- package/.agents/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/firecrawl/SKILL.md +321 -0
- package/.agents/skills/firecrawl/rules/install.md +85 -0
- package/.agents/skills/firecrawl/rules/security.md +26 -0
- package/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/.agents/skills/frontend-design/SKILL.md +55 -0
- package/.agents/skills/linkup-search/SKILL.md +298 -0
- package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
- package/.agents/skills/mcp-builder/SKILL.md +236 -0
- package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
- package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.agents/skills/mobile-android-design/SKILL.md +101 -0
- package/.agents/skills/mobile-android-design/references/android-navigation.md +698 -0
- package/.agents/skills/mobile-android-design/references/compose-components.md +796 -0
- package/.agents/skills/mobile-android-design/references/details.md +337 -0
- package/.agents/skills/mobile-android-design/references/material3-theming.md +604 -0
- package/.agents/skills/mobile-ios-design/SKILL.md +259 -0
- package/.agents/skills/mobile-ios-design/references/hig-patterns.md +529 -0
- package/.agents/skills/mobile-ios-design/references/ios-navigation.md +556 -0
- package/.agents/skills/mobile-ios-design/references/swiftui-components.md +575 -0
- package/.agents/skills/neon-drizzle/SKILL.md +81 -0
- package/.agents/skills/neon-drizzle/guides/existing-project.md +398 -0
- package/.agents/skills/neon-drizzle/guides/new-project.md +312 -0
- package/.agents/skills/neon-drizzle/guides/schema-only.md +415 -0
- package/.agents/skills/neon-drizzle/guides/troubleshooting.md +539 -0
- package/.agents/skills/neon-drizzle/references/adapters.md +478 -0
- package/.agents/skills/neon-drizzle/references/migrations.md +652 -0
- package/.agents/skills/neon-drizzle/references/query-patterns.md +761 -0
- package/.agents/skills/neon-drizzle/scripts/generate-schema.ts +77 -0
- package/.agents/skills/neon-drizzle/scripts/run-migration.ts +133 -0
- package/.agents/skills/neon-drizzle/templates/db-http.ts +6 -0
- package/.agents/skills/neon-drizzle/templates/db-websocket.ts +24 -0
- package/.agents/skills/neon-drizzle/templates/drizzle-config.ts +96 -0
- package/.agents/skills/neon-drizzle/templates/schema-example.ts +231 -0
- package/.agents/skills/neon-postgres/SKILL.md +376 -0
- package/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/.agents/skills/next-best-practices/async-patterns.md +87 -0
- package/.agents/skills/next-best-practices/bundling.md +180 -0
- package/.agents/skills/next-best-practices/data-patterns.md +297 -0
- package/.agents/skills/next-best-practices/debug-tricks.md +105 -0
- package/.agents/skills/next-best-practices/directives.md +73 -0
- package/.agents/skills/next-best-practices/error-handling.md +227 -0
- package/.agents/skills/next-best-practices/file-conventions.md +140 -0
- package/.agents/skills/next-best-practices/font.md +245 -0
- package/.agents/skills/next-best-practices/functions.md +108 -0
- package/.agents/skills/next-best-practices/hydration-error.md +91 -0
- package/.agents/skills/next-best-practices/image.md +173 -0
- package/.agents/skills/next-best-practices/metadata.md +301 -0
- package/.agents/skills/next-best-practices/parallel-routes.md +287 -0
- package/.agents/skills/next-best-practices/route-handlers.md +146 -0
- package/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
- package/.agents/skills/next-best-practices/runtime-selection.md +39 -0
- package/.agents/skills/next-best-practices/scripts.md +141 -0
- package/.agents/skills/next-best-practices/self-hosting.md +371 -0
- package/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
- package/.agents/skills/playwright-cli/SKILL.md +404 -0
- package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
- package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
- package/.agents/skills/playwright-cli/references/running-code.md +241 -0
- package/.agents/skills/playwright-cli/references/session-management.md +225 -0
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
- package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
- package/.agents/skills/playwright-cli/references/test-generation.md +134 -0
- package/.agents/skills/playwright-cli/references/tracing.md +139 -0
- package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
- package/.agents/skills/prisma-client-api/SKILL.md +216 -0
- package/.agents/skills/prisma-client-api/references/client-methods.md +223 -0
- package/.agents/skills/prisma-client-api/references/constructor.md +208 -0
- package/.agents/skills/prisma-client-api/references/filters.md +256 -0
- package/.agents/skills/prisma-client-api/references/model-queries.md +281 -0
- package/.agents/skills/prisma-client-api/references/query-options.md +276 -0
- package/.agents/skills/prisma-client-api/references/raw-queries.md +194 -0
- package/.agents/skills/prisma-client-api/references/relations.md +308 -0
- package/.agents/skills/prisma-client-api/references/transactions.md +184 -0
- package/.agents/skills/prisma-database-setup/SKILL.md +192 -0
- package/.agents/skills/prisma-database-setup/references/cockroachdb.md +89 -0
- package/.agents/skills/prisma-database-setup/references/mongodb.md +90 -0
- package/.agents/skills/prisma-database-setup/references/mysql.md +126 -0
- package/.agents/skills/prisma-database-setup/references/postgresql.md +92 -0
- package/.agents/skills/prisma-database-setup/references/prisma-client-setup.md +47 -0
- package/.agents/skills/prisma-database-setup/references/prisma-postgres.md +130 -0
- package/.agents/skills/prisma-database-setup/references/sqlite.md +106 -0
- package/.agents/skills/prisma-database-setup/references/sqlserver.md +94 -0
- package/.agents/skills/prisma-postgres/SKILL.md +127 -0
- package/.agents/skills/prisma-postgres/references/console-and-connections.md +67 -0
- package/.agents/skills/prisma-postgres/references/create-db-cli.md +136 -0
- package/.agents/skills/prisma-postgres/references/management-api-sdk.md +56 -0
- package/.agents/skills/prisma-postgres/references/management-api.md +61 -0
- package/.agents/skills/remotion-best-practices/SKILL.md +340 -0
- package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
- package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
- package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
- package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
- package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
- package/.agents/skills/remotion-best-practices/rules/compositions.md +133 -0
- package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
- package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
- package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
- package/.agents/skills/remotion-best-practices/rules/google-fonts.md +72 -0
- package/.agents/skills/remotion-best-practices/rules/html-in-canvas.md +122 -0
- package/.agents/skills/remotion-best-practices/rules/images.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/.agents/skills/remotion-best-practices/rules/local-fonts.md +65 -0
- package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/maplibre.md +458 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
- package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
- package/.agents/skills/remotion-best-practices/rules/sequencing.md +144 -0
- package/.agents/skills/remotion-best-practices/rules/sfx.md +30 -0
- package/.agents/skills/remotion-best-practices/rules/silence-detection.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/.agents/skills/remotion-best-practices/rules/timing.md +136 -0
- package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
- package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
- package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
- package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
- package/.agents/skills/remotion-render/SKILL.md +212 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/stripe-best-practices/SKILL.md +54 -0
- package/.agents/skills/stripe-best-practices/references/billing.md +58 -0
- package/.agents/skills/stripe-best-practices/references/connect.md +173 -0
- package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
- package/.agents/skills/stripe-best-practices/references/security.md +109 -0
- package/.agents/skills/stripe-best-practices/references/tax.md +37 -0
- package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
- package/.agents/skills/stripe-projects/SKILL.md +132 -0
- package/.agents/skills/supabase/CHANGELOG.md +35 -0
- package/.agents/skills/supabase/SKILL.md +135 -0
- package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/.agents/skills/supabase/references/skill-feedback.md +17 -0
- package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/.agents/skills/supermemory/LICENSE +201 -0
- package/.agents/skills/supermemory/README.md +221 -0
- package/.agents/skills/supermemory/SKILL.md +172 -0
- package/.agents/skills/supermemory/references/api-reference.md +591 -0
- package/.agents/skills/supermemory/references/architecture.md +557 -0
- package/.agents/skills/supermemory/references/quickstart.md +293 -0
- package/.agents/skills/supermemory/references/sdk-guide.md +655 -0
- package/.agents/skills/supermemory/references/use-cases.md +1033 -0
- package/.agents/skills/supermemory-cli/SKILL.md +490 -0
- package/.agents/skills/tdd/SKILL.md +108 -0
- package/.agents/skills/tdd/mocking.md +59 -0
- package/.agents/skills/tdd/refactoring.md +10 -0
- package/.agents/skills/tdd/tests.md +61 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +661 -0
- package/.agents/skills/ui-ux-pro-max/data +1 -0
- package/.agents/skills/ui-ux-pro-max/scripts +1 -0
- package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
- package/.agents/skills/vercel-react-native-skills/README.md +165 -0
- package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
- package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
- package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
- package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +19 -4
- package/dist/cli/update.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tools/daytona-browser.tool.js +1 -1
- package/dist/tools/daytona-browser.tool.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Tool Modifiers
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
description: Advanced patterns for customizing tool behavior with schema modifications and execution hooks
|
|
5
|
+
tags: [modifiers, hooks, customization, schema, execution]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tool Modifiers
|
|
9
|
+
|
|
10
|
+
Modifiers customize tool behavior through schema transformations, pre-execution hooks, and post-execution hooks.
|
|
11
|
+
|
|
12
|
+
## Schema Modification
|
|
13
|
+
|
|
14
|
+
Customize tool descriptions or parameters at fetch time:
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
const tools = await composio.tools.get(
|
|
18
|
+
'default',
|
|
19
|
+
{ toolkits: ['github'] },
|
|
20
|
+
{
|
|
21
|
+
modifySchema: ({ toolSlug, toolkitSlug, schema }) => {
|
|
22
|
+
// Enhance descriptions for AI
|
|
23
|
+
schema.description = `[Enhanced] ${schema.description}`;
|
|
24
|
+
|
|
25
|
+
// Customize specific parameters
|
|
26
|
+
if (toolSlug === 'GITHUB_GET_REPO') {
|
|
27
|
+
schema.inputParameters.properties.owner.description =
|
|
28
|
+
'GitHub organization or user name (e.g., "composio")';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return schema;
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Pre-Execution Hooks (beforeExecute)
|
|
38
|
+
|
|
39
|
+
Modify parameters before execution:
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
const result = await composio.tools.execute(
|
|
43
|
+
'GITHUB_GET_REPO',
|
|
44
|
+
{
|
|
45
|
+
userId: 'default',
|
|
46
|
+
arguments: { owner: 'Composio', repo: 'sdk' },
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
beforeExecute: ({ toolSlug, params }) => {
|
|
50
|
+
// Normalize inputs
|
|
51
|
+
params.arguments.owner = params.arguments.owner.toLowerCase();
|
|
52
|
+
|
|
53
|
+
// Add defaults
|
|
54
|
+
params.arguments.branch = params.arguments.branch || 'main';
|
|
55
|
+
|
|
56
|
+
return params;
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Common uses:**
|
|
63
|
+
- Parameter validation and normalization
|
|
64
|
+
- Adding default values
|
|
65
|
+
- Logging and tracing
|
|
66
|
+
|
|
67
|
+
## Post-Execution Hooks (afterExecute)
|
|
68
|
+
|
|
69
|
+
Transform outputs after execution:
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
const result = await composio.tools.execute(
|
|
73
|
+
'GITHUB_GET_REPO',
|
|
74
|
+
{
|
|
75
|
+
userId: 'default',
|
|
76
|
+
arguments: { owner: 'composio', repo: 'sdk' },
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
afterExecute: ({ result }) => {
|
|
80
|
+
if (result.successful) {
|
|
81
|
+
// Remove sensitive data
|
|
82
|
+
delete result.data.token;
|
|
83
|
+
|
|
84
|
+
// Add metadata
|
|
85
|
+
result.data.fetchedAt = new Date().toISOString();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return result;
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Common uses:**
|
|
95
|
+
- Filtering sensitive data
|
|
96
|
+
- Data transformation and formatting
|
|
97
|
+
- Adding metadata
|
|
98
|
+
|
|
99
|
+
## Common Patterns
|
|
100
|
+
|
|
101
|
+
### Sensitive Data Filtering
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
const filterSensitive = ({ result }) => {
|
|
105
|
+
if (result.successful) {
|
|
106
|
+
['token', 'secret', 'password', 'api_key'].forEach(field => {
|
|
107
|
+
delete result.data[field];
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
};
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Logging & Monitoring
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
const monitor = {
|
|
118
|
+
beforeExecute: ({ toolSlug, params }) => {
|
|
119
|
+
console.log(`[START] ${toolSlug}`, params.arguments);
|
|
120
|
+
return params;
|
|
121
|
+
},
|
|
122
|
+
afterExecute: ({ toolSlug, result }) => {
|
|
123
|
+
console.log(`[END] ${toolSlug} - Success: ${result.successful}`);
|
|
124
|
+
return result;
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Reusable Modifiers
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
const addTimestamps = ({ result }) => {
|
|
133
|
+
if (result.successful) result.data.executedAt = new Date().toISOString();
|
|
134
|
+
return result;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// Use in multiple executions
|
|
138
|
+
await composio.tools.execute('GITHUB_GET_REPO', { ... }, {
|
|
139
|
+
afterExecute: addTimestamps
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Key Points
|
|
144
|
+
|
|
145
|
+
- Schema modifiers apply at fetch time, execution modifiers at runtime
|
|
146
|
+
- Always return modified object (don't just mutate)
|
|
147
|
+
- Modifiers are synchronous - keep operations lightweight
|
|
148
|
+
- Must pass modifiers to each execute() call (not persisted)
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Tool Version Management
|
|
3
|
+
impact: HIGH
|
|
4
|
+
description: Critical strategies for version pinning to ensure workflow stability and prevent runtime errors in production
|
|
5
|
+
tags: [tools, versions, stability, production, pinning]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tool Version Management
|
|
9
|
+
|
|
10
|
+
> **⚠️ CRITICAL:** Never assume or make up toolkit names or version numbers. Always verify before using:
|
|
11
|
+
> - Use `composio manage toolkits list` / `composio manage toolkits info "..."` to discover toolkits (CLI) or `composio.toolkits.get()` (SDK)
|
|
12
|
+
> - Use `composio manage toolkits info "..."` to view available versions (CLI) or `composio.toolkits.get('toolkit_name')` (SDK) or check the [dashboard](https://platform.composio.dev)
|
|
13
|
+
> - Using non-existent toolkit slugs or versions will cause runtime errors
|
|
14
|
+
>
|
|
15
|
+
> See [Composio CLI Reference](./composio-cli.md) for discovery commands.
|
|
16
|
+
|
|
17
|
+
Tool versions are critical for workflow stability. When manually executing tools, a specific version is **required** to prevent argument mismatches when tool schemas change.
|
|
18
|
+
|
|
19
|
+
## Why Version Pinning Matters
|
|
20
|
+
|
|
21
|
+
- **Tool schemas evolve**: Tool argument schemas can change between versions
|
|
22
|
+
- **Prevent runtime errors**: Using `'latest'` in workflows causes errors when tools update
|
|
23
|
+
- **Workflow stability**: Pinned versions ensure predictable behavior
|
|
24
|
+
- **Production safety**: Version validation prevents schema mismatch issues
|
|
25
|
+
|
|
26
|
+
## Three Version Management Strategies
|
|
27
|
+
|
|
28
|
+
### Strategy 1: Explicit Version in Execute Call (Recommended for One-off Executions)
|
|
29
|
+
|
|
30
|
+
Specify the version directly in the execute call:
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
const result = await composio.tools.execute('GITHUB_GET_ISSUES', {
|
|
34
|
+
userId: 'default',
|
|
35
|
+
arguments: { owner: 'composio', repo: 'sdk' },
|
|
36
|
+
version: '12082025_00', // Explicit version for this tool
|
|
37
|
+
});
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Pros:**
|
|
41
|
+
- Clear version visibility at execution point
|
|
42
|
+
- Different versions for different tools
|
|
43
|
+
- Easy to update individual tool versions
|
|
44
|
+
|
|
45
|
+
**Cons:**
|
|
46
|
+
- Repetitive if executing same tool multiple times
|
|
47
|
+
- Version scattered across codebase
|
|
48
|
+
|
|
49
|
+
**Use when:**
|
|
50
|
+
- One-off tool executions
|
|
51
|
+
- Testing different tool versions
|
|
52
|
+
- Tool versions need to differ within the same app
|
|
53
|
+
|
|
54
|
+
### Strategy 2: Configure Toolkit Versions at Initialization (Recommended for Production)
|
|
55
|
+
|
|
56
|
+
Configure versions once at SDK initialization:
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const composio = new Composio({
|
|
60
|
+
toolkitVersions: {
|
|
61
|
+
github: '12082025_00',
|
|
62
|
+
slack: '10082025_01',
|
|
63
|
+
gmail: '15082025_02'
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// Execute without version parameter - uses pinned version from config
|
|
68
|
+
const result = await composio.tools.execute('GITHUB_GET_ISSUES', {
|
|
69
|
+
userId: 'default',
|
|
70
|
+
arguments: { owner: 'composio', repo: 'sdk' },
|
|
71
|
+
// Uses github: '12082025_00' from initialization
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Pros:**
|
|
76
|
+
- Centralized version management
|
|
77
|
+
- Clean execution calls
|
|
78
|
+
- Easy to update all tools from a toolkit
|
|
79
|
+
- Best for production environments
|
|
80
|
+
|
|
81
|
+
**Cons:**
|
|
82
|
+
- All tools from a toolkit use the same version
|
|
83
|
+
- Requires initialization configuration
|
|
84
|
+
|
|
85
|
+
**Use when:**
|
|
86
|
+
- Building production applications
|
|
87
|
+
- Managing multiple tools from the same toolkit
|
|
88
|
+
- Want centralized version control
|
|
89
|
+
|
|
90
|
+
### Strategy 3: dangerouslySkipVersionCheck (NOT Recommended for Production)
|
|
91
|
+
|
|
92
|
+
Bypass version validation entirely:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
const result = await composio.tools.execute('GITHUB_GET_ISSUES', {
|
|
96
|
+
userId: 'default',
|
|
97
|
+
arguments: { owner: 'composio', repo: 'sdk' },
|
|
98
|
+
dangerouslySkipVersionCheck: true, // Uses 'latest' version
|
|
99
|
+
});
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**⚠️ Warning:** This bypasses version validation and uses `'latest'` version. Can lead to:
|
|
103
|
+
- Unexpected behavior when tool schemas change
|
|
104
|
+
- Argument mismatches in production
|
|
105
|
+
- Runtime errors when tools are updated
|
|
106
|
+
- Workflow breakage without notice
|
|
107
|
+
|
|
108
|
+
**Only use for:**
|
|
109
|
+
- Development and testing
|
|
110
|
+
- Prototyping
|
|
111
|
+
- When you explicitly want to test latest versions
|
|
112
|
+
|
|
113
|
+
**NEVER use in:**
|
|
114
|
+
- Production environments
|
|
115
|
+
- Critical workflows
|
|
116
|
+
- User-facing applications
|
|
117
|
+
|
|
118
|
+
## Version Format
|
|
119
|
+
|
|
120
|
+
Versions follow the format: `DDMMYYYY_XX`
|
|
121
|
+
|
|
122
|
+
Examples:
|
|
123
|
+
- `12082025_00` - August 12, 2025, revision 00
|
|
124
|
+
- `10082025_01` - August 10, 2025, revision 01
|
|
125
|
+
- `15082025_02` - August 15, 2025, revision 02
|
|
126
|
+
|
|
127
|
+
## Finding Available Versions
|
|
128
|
+
|
|
129
|
+
**⚠️ CRITICAL: Never assume or guess version numbers. Always verify that a version exists before using it.**
|
|
130
|
+
|
|
131
|
+
### Method 1: Use SDK to List Available Versions
|
|
132
|
+
|
|
133
|
+
Fetch toolkit metadata to see all available versions:
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
// Get available versions for a specific toolkit
|
|
137
|
+
const toolkit = await composio.toolkits.get('github');
|
|
138
|
+
console.log('Available versions:', toolkit.versions);
|
|
139
|
+
console.log('Latest version:', toolkit.latestVersion);
|
|
140
|
+
|
|
141
|
+
// For Gmail
|
|
142
|
+
const gmailToolkit = await composio.toolkits.get('gmail');
|
|
143
|
+
console.log('Gmail versions:', gmailToolkit.versions);
|
|
144
|
+
|
|
145
|
+
// For Slack
|
|
146
|
+
const slackToolkit = await composio.toolkits.get('slack');
|
|
147
|
+
console.log('Slack versions:', slackToolkit.versions);
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Method 2: Check Dashboard
|
|
151
|
+
|
|
152
|
+
View versions and changelog on the [Composio dashboard](https://platform.composio.dev):
|
|
153
|
+
- Navigate to Toolkits section
|
|
154
|
+
- Select the specific toolkit (e.g., GitHub, Gmail, Slack)
|
|
155
|
+
- View available versions and their changes
|
|
156
|
+
|
|
157
|
+
### How to Use Versions Correctly
|
|
158
|
+
|
|
159
|
+
Once you've found available versions, choose a specific version to test, then pin it in your configuration:
|
|
160
|
+
|
|
161
|
+
**Step 1: List available versions**
|
|
162
|
+
```typescript
|
|
163
|
+
const githubToolkit = await composio.toolkits.get('github');
|
|
164
|
+
console.log('Available versions:', githubToolkit.versions);
|
|
165
|
+
// Example output: ['12082025_00', '10082025_01', '08082025_00']
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Step 2: Choose and test a specific version**
|
|
169
|
+
```typescript
|
|
170
|
+
// Test with a specific version from the list
|
|
171
|
+
const composio = new Composio({
|
|
172
|
+
toolkitVersions: {
|
|
173
|
+
github: '12082025_00', // Choose a specific version to test
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Step 3: Pin the tested version in production**
|
|
179
|
+
```typescript
|
|
180
|
+
// After testing, pin the version in your production config
|
|
181
|
+
const composio = new Composio({
|
|
182
|
+
toolkitVersions: {
|
|
183
|
+
github: '12082025_00', // Pinned version that you've tested
|
|
184
|
+
slack: '10082025_01', // Pinned version that you've tested
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Using Environment Variables
|
|
190
|
+
|
|
191
|
+
You can also set toolkit versions using environment variables:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Set specific versions for individual toolkits
|
|
195
|
+
export COMPOSIO_TOOLKIT_VERSION_GITHUB=12082025_00
|
|
196
|
+
export COMPOSIO_TOOLKIT_VERSION_SLACK=10082025_01
|
|
197
|
+
export COMPOSIO_TOOLKIT_VERSION_GMAIL=15082025_00
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Then initialize Composio without specifying `toolkitVersions`:
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
const composio = new Composio({
|
|
204
|
+
apiKey: 'your-api-key'
|
|
205
|
+
// Will automatically use environment variables
|
|
206
|
+
});
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### IMPORTANT: Don't Auto-Use Latest Version
|
|
210
|
+
|
|
211
|
+
❌ **DON'T DO THIS:**
|
|
212
|
+
```typescript
|
|
213
|
+
// This defeats the purpose of version pinning!
|
|
214
|
+
const githubToolkit = await composio.toolkits.get('github');
|
|
215
|
+
const composio = new Composio({
|
|
216
|
+
toolkitVersions: {
|
|
217
|
+
github: githubToolkit.latestVersion, // Always uses latest - no pinning!
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
// Never use made-up version numbers either!
|
|
222
|
+
const composio = new Composio({
|
|
223
|
+
toolkitVersions: {
|
|
224
|
+
github: '01012025_00', // Random version - might not exist!
|
|
225
|
+
slack: '25122024_99', // Made up version - will fail!
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
✅ **DO THIS:**
|
|
231
|
+
```typescript
|
|
232
|
+
// 1. List available versions to find valid options
|
|
233
|
+
const githubToolkit = await composio.toolkits.get('github');
|
|
234
|
+
console.log('Available versions:', githubToolkit.versions);
|
|
235
|
+
|
|
236
|
+
// 2. Choose and test a specific version from the list
|
|
237
|
+
// 3. Pin that tested version in your code or environment variables
|
|
238
|
+
const composio = new Composio({
|
|
239
|
+
toolkitVersions: {
|
|
240
|
+
github: '12082025_00', // Specific tested version
|
|
241
|
+
slack: '10082025_01', // Specific tested version
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Why this matters:**
|
|
247
|
+
- Automatically using `latestVersion` means your app always uses the newest version, defeating the purpose of pinning
|
|
248
|
+
- Version pinning is about locking to a specific, tested version for stability
|
|
249
|
+
- When you're ready to upgrade, you explicitly choose and test a new version before deploying
|
|
250
|
+
|
|
251
|
+
## Version Migration Strategy
|
|
252
|
+
|
|
253
|
+
When updating tool versions:
|
|
254
|
+
|
|
255
|
+
1. **Test in development first**
|
|
256
|
+
```typescript
|
|
257
|
+
// Dev environment
|
|
258
|
+
const devComposio = new Composio({
|
|
259
|
+
toolkitVersions: { github: '20082025_00' } // New version
|
|
260
|
+
});
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
2. **Validate schema changes**
|
|
264
|
+
```typescript
|
|
265
|
+
const oldTool = await composio.tools.get('default', 'GITHUB_GET_ISSUES');
|
|
266
|
+
const newTool = await composio.tools.get('default', 'GITHUB_GET_ISSUES');
|
|
267
|
+
// Compare schemas before migrating
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
3. **Update gradually**
|
|
271
|
+
- Update one toolkit at a time
|
|
272
|
+
- Monitor for errors
|
|
273
|
+
- Roll back if issues occur
|
|
274
|
+
|
|
275
|
+
4. **Update production**
|
|
276
|
+
```typescript
|
|
277
|
+
// Production environment
|
|
278
|
+
const prodComposio = new Composio({
|
|
279
|
+
toolkitVersions: { github: '20082025_00' } // Deploy new version
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## Best Practices
|
|
284
|
+
|
|
285
|
+
1. **Always pin versions in production**: Never use `'latest'` or skip version checks
|
|
286
|
+
2. **Use initialization-level config**: Centralize version management for maintainability
|
|
287
|
+
3. **Document version choices**: Comment why specific versions are used
|
|
288
|
+
4. **Test version updates**: Validate in dev before deploying to production
|
|
289
|
+
5. **Monitor after updates**: Watch for errors after version changes
|
|
290
|
+
6. **Keep versions consistent**: Use same version across environments when possible
|
|
291
|
+
7. **Version control your config**: Track toolkit versions in your repository
|
|
292
|
+
|
|
293
|
+
## Common Patterns
|
|
294
|
+
|
|
295
|
+
### Environment-based version config
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
const toolkitVersions = {
|
|
299
|
+
development: {
|
|
300
|
+
github: '12082025_00',
|
|
301
|
+
slack: '10082025_01',
|
|
302
|
+
},
|
|
303
|
+
production: {
|
|
304
|
+
github: '10082025_00', // Older stable version
|
|
305
|
+
slack: '08082025_00',
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
const composio = new Composio({
|
|
310
|
+
toolkitVersions: toolkitVersions[process.env.NODE_ENV]
|
|
311
|
+
});
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Override version for specific execution
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
// Use global config version by default
|
|
318
|
+
const composio = new Composio({
|
|
319
|
+
toolkitVersions: { github: '12082025_00' }
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
// Override for specific execution
|
|
323
|
+
const result = await composio.tools.execute('GITHUB_GET_ISSUES', {
|
|
324
|
+
userId: 'default',
|
|
325
|
+
arguments: { owner: 'composio', repo: 'sdk' },
|
|
326
|
+
version: '15082025_00', // Override global version
|
|
327
|
+
});
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Version validation helper
|
|
331
|
+
|
|
332
|
+
```typescript
|
|
333
|
+
function validateToolVersion(version: string): boolean {
|
|
334
|
+
// Check format: DDMMYYYY_XX
|
|
335
|
+
const versionRegex = /^\d{8}_\d{2}$/;
|
|
336
|
+
return versionRegex.test(version);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
const version = '12082025_00';
|
|
340
|
+
if (!validateToolVersion(version)) {
|
|
341
|
+
throw new Error('Invalid version format');
|
|
342
|
+
}
|
|
343
|
+
```
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Toolkit Management
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
description: Discover and query toolkits, categories, and authentication requirements for application integration
|
|
5
|
+
tags: [toolkits, discovery, metadata, categories, apps]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Toolkit Management
|
|
9
|
+
|
|
10
|
+
Toolkits are collections of related tools (GitHub, Gmail, Slack). Use the `toolkits` API to discover and query toolkit metadata.
|
|
11
|
+
|
|
12
|
+
**Important:** `toolkits.get()` returns an **array**, not an object with `.items`. Access directly: `toolkits[0]`, `toolkits.length`, etc.
|
|
13
|
+
|
|
14
|
+
## Get Toolkit Metadata
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Get specific toolkit
|
|
18
|
+
const github = await composio.toolkits.get('github');
|
|
19
|
+
console.log(github.name); // GitHub
|
|
20
|
+
console.log(github.authConfigDetails); // Auth details
|
|
21
|
+
console.log(github.meta.toolsCount); // Number of tools
|
|
22
|
+
console.log(github.meta.triggersCount); // Number of triggers
|
|
23
|
+
|
|
24
|
+
// Get all toolkits
|
|
25
|
+
const all = await composio.toolkits.get();
|
|
26
|
+
console.log(all.length); // Number of toolkits
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Toolkit properties:**
|
|
30
|
+
- `name`, `slug` - Display name and identifier
|
|
31
|
+
- `meta` - toolsCount, triggersCount, createdAt, updatedAt
|
|
32
|
+
- `authConfigDetails` - Available auth schemes and required fields
|
|
33
|
+
- `composioManagedAuthSchemes` - Composio-managed auth
|
|
34
|
+
- `baseUrl` - API base URL
|
|
35
|
+
- `getCurrentUserEndpoint` - User info endpoint
|
|
36
|
+
|
|
37
|
+
## Query Parameters
|
|
38
|
+
|
|
39
|
+
All available filters for `toolkits.get()`:
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
const toolkits = await composio.toolkits.get({
|
|
43
|
+
category: 'developer-tools', // Filter by category ID
|
|
44
|
+
managedBy: 'composio', // 'all' | 'composio' | 'project'
|
|
45
|
+
sortBy: 'usage', // 'usage' | 'alphabetically'
|
|
46
|
+
limit: 10, // Results per page
|
|
47
|
+
cursor: 'next_page_cursor', // Pagination
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Examples
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// Composio-managed only
|
|
55
|
+
const composio = await composio.toolkits.get({ managedBy: 'composio' });
|
|
56
|
+
|
|
57
|
+
// By category
|
|
58
|
+
const devTools = await composio.toolkits.get({ category: 'developer-tools' });
|
|
59
|
+
|
|
60
|
+
// Popular toolkits
|
|
61
|
+
const popular = await composio.toolkits.get({ sortBy: 'usage', limit: 10 });
|
|
62
|
+
|
|
63
|
+
// Paginated
|
|
64
|
+
const page1 = await composio.toolkits.get({ limit: 10 });
|
|
65
|
+
const page2 = await composio.toolkits.get({ limit: 10, cursor: page1Cursor });
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## List Categories
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
const categories = await composio.toolkits.listCategories();
|
|
72
|
+
console.log(categories.items);
|
|
73
|
+
// [
|
|
74
|
+
// { id: 'developer-tools', name: 'Developer Tools' },
|
|
75
|
+
// { id: 'communication', name: 'Communication' },
|
|
76
|
+
// { id: 'productivity', name: 'Productivity' },
|
|
77
|
+
// ]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Auth Requirements
|
|
81
|
+
|
|
82
|
+
### Get Auth Config Creation Fields
|
|
83
|
+
|
|
84
|
+
Find fields needed to create custom auth config:
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
// All fields for GitHub OAuth2
|
|
88
|
+
const fields = await composio.toolkits.getAuthConfigCreationFields(
|
|
89
|
+
'github',
|
|
90
|
+
'OAUTH2'
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
// Only required fields
|
|
94
|
+
const required = await composio.toolkits.getAuthConfigCreationFields(
|
|
95
|
+
'github',
|
|
96
|
+
'OAUTH2',
|
|
97
|
+
{ requiredOnly: true }
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
console.log(fields);
|
|
101
|
+
// [
|
|
102
|
+
// { name: 'client_id', displayName: 'Client ID', type: 'string', required: true },
|
|
103
|
+
// { name: 'client_secret', displayName: 'Client Secret', type: 'string', required: true },
|
|
104
|
+
// { name: 'scopes', displayName: 'Scopes', type: 'string', default: 'repo,user', required: false }
|
|
105
|
+
// ]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Get Connected Account Initiation Fields
|
|
109
|
+
|
|
110
|
+
Find fields needed when calling `initiate()` with custom auth:
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
const fields = await composio.toolkits.getConnectedAccountInitiationFields(
|
|
114
|
+
'zendesk',
|
|
115
|
+
'OAUTH2'
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
// Only required fields
|
|
119
|
+
const required = await composio.toolkits.getConnectedAccountInitiationFields(
|
|
120
|
+
'zendesk',
|
|
121
|
+
'OAUTH2',
|
|
122
|
+
{ requiredOnly: true }
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
console.log(fields);
|
|
126
|
+
// [
|
|
127
|
+
// { name: 'subdomain', displayName: 'Subdomain', type: 'string', required: true }
|
|
128
|
+
// ]
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Use case:** Some services (Zendesk, PostHog) require extra parameters during OAuth. These fields tell you what's needed.
|
|
132
|
+
|
|
133
|
+
## Common Patterns
|
|
134
|
+
|
|
135
|
+
### Build Toolkit Selection UI
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
const toolkits = await composio.toolkits.get({
|
|
139
|
+
sortBy: 'alphabetically'
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
const toolkitOptions = toolkits.items.map(tk => ({
|
|
143
|
+
value: tk.slug,
|
|
144
|
+
label: tk.name,
|
|
145
|
+
toolCount: tk.meta.toolsCount,
|
|
146
|
+
authSchemes: tk.composioManagedAuthSchemes,
|
|
147
|
+
}));
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Check If OAuth Requires Extra Fields
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
async function needsExtraParams(toolkit: string, authScheme: string) {
|
|
154
|
+
const fields = await composio.toolkits.getConnectedAccountInitiationFields(
|
|
155
|
+
toolkit,
|
|
156
|
+
authScheme
|
|
157
|
+
);
|
|
158
|
+
return fields.length > 0;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Usage
|
|
162
|
+
if (await needsExtraParams('zendesk', 'OAUTH2')) {
|
|
163
|
+
// Show form to collect subdomain
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Filter Toolkits by Category
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
async function getToolkitsByCategory(categoryId: string) {
|
|
171
|
+
return await composio.toolkits.get({
|
|
172
|
+
category: categoryId,
|
|
173
|
+
sortBy: 'usage',
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Key Points
|
|
179
|
+
|
|
180
|
+
- **Returns array** - Not `.items`, access directly
|
|
181
|
+
- **managedBy filter** - 'all', 'composio', or 'project'
|
|
182
|
+
- **sortBy options** - 'usage' or 'alphabetically'
|
|
183
|
+
- **Auth field queries** - Know what's required before creating configs
|
|
184
|
+
- **Extra OAuth params** - Some services need subdomain, region, etc.
|