zilmate 1.7.8 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/index.js +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: chat-sdk
|
|
3
|
+
description: Build multi-platform chat bots with Chat SDK (`chat` npm package). Use when developers want to scaffold a bot with create-chat-sdk, build a Slack, Teams, Google Chat, Discord, Telegram, GitHub, Linear, or WhatsApp bot, handle mentions, direct messages, subscribed threads, reactions, slash commands, cards, modals, files, or AI streaming, set up webhook routes or multi-adapter bots, send rich cards or streamed AI responses to chat platforms, or build a custom adapter or state adapter.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Chat SDK
|
|
7
|
+
|
|
8
|
+
Unified TypeScript SDK for building chat bots across Slack, Teams, Google Chat, Discord, Telegram, GitHub, Linear, and WhatsApp. Write bot logic once, deploy everywhere.
|
|
9
|
+
|
|
10
|
+
## Scaffold a new project
|
|
11
|
+
|
|
12
|
+
Use `create-chat-sdk` with explicit adapters so coding agents can scaffold a webhook-only Next.js bot project without prompts:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm create chat-sdk@latest -- my-bot --adapter slack memory -y
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Non-interactive example:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm create chat-sdk@latest -- my-bot --adapter slack redis -d "My bot" --pm pnpm -y
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
With npm, the `--` separator is required — npm consumes the flags itself instead of forwarding them to the CLI. `pnpm create` and `yarn create` forward flags without it.
|
|
25
|
+
|
|
26
|
+
Key flags:
|
|
27
|
+
- `--adapter <values...>` — platform or state adapters from `chat/adapters`
|
|
28
|
+
- `-d, --description <text>` — project description
|
|
29
|
+
- `--pm <manager>` — package manager (`npm`, `yarn`, `pnpm`, `bun`)
|
|
30
|
+
- `-y, --yes` — skip prompts and accept defaults
|
|
31
|
+
- `--interactive` — always prompt, even when a coding agent environment is detected
|
|
32
|
+
- `-f, --force` — overwrite generated files in an existing directory
|
|
33
|
+
- `-s, --skip-install` — skip dependency installation
|
|
34
|
+
- `--no-git` — skip git repository initialization
|
|
35
|
+
- `-q, --quiet` — suppress non-essential output
|
|
36
|
+
|
|
37
|
+
When `create-chat-sdk` detects a coding agent environment, it automatically uses non-interactive defaults. Pass at least one platform adapter with `--adapter`; the state adapter defaults to `memory`. If no project name is provided, it uses `my-bot`.
|
|
38
|
+
|
|
39
|
+
Generated projects include `src/lib/bot.ts`, `src/app/api/webhooks/[platform]/route.ts`, `.env.example`, `next.config.ts`, and adapter dependencies. If the Web adapter is selected, the CLI also creates `src/app/api/chat/route.ts` and `src/lib/auth-stub.ts`.
|
|
40
|
+
|
|
41
|
+
## Start with published sources
|
|
42
|
+
|
|
43
|
+
When Chat SDK is installed in a user project, inspect the published files that ship in `node_modules`:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
node_modules/chat/docs/ # bundled docs
|
|
47
|
+
node_modules/chat/dist/index.d.ts # core API types
|
|
48
|
+
node_modules/chat/dist/adapters/index.d.ts # static adapter catalog types
|
|
49
|
+
node_modules/chat/dist/jsx-runtime.d.ts # JSX runtime types
|
|
50
|
+
node_modules/chat/docs/contributing/ # adapter-authoring docs
|
|
51
|
+
node_modules/chat/resources/guides/ # framework/platform guides (markdown)
|
|
52
|
+
node_modules/chat/resources/templates.json # starter templates (title, description, href)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
If one of the paths below does not exist, that package is not installed in the project yet.
|
|
56
|
+
|
|
57
|
+
Read these before writing code:
|
|
58
|
+
- `node_modules/chat/docs/getting-started.mdx` — install and setup
|
|
59
|
+
- `node_modules/chat/docs/usage.mdx` — `Chat` config and lifecycle
|
|
60
|
+
- `node_modules/chat/docs/handling-events.mdx` — event routing and handlers
|
|
61
|
+
- `node_modules/chat/docs/threads-messages-channels.mdx` — thread/channel/message model
|
|
62
|
+
- `node_modules/chat/docs/posting-messages.mdx` — post, edit, delete, schedule
|
|
63
|
+
- `node_modules/chat/docs/streaming.mdx` — AI SDK integration and streaming semantics
|
|
64
|
+
- `node_modules/chat/docs/cards.mdx` — JSX cards
|
|
65
|
+
- `node_modules/chat/docs/actions.mdx` — button/select interactions
|
|
66
|
+
- `node_modules/chat/docs/modals.mdx` — modal submit/close flows
|
|
67
|
+
- `node_modules/chat/docs/slash-commands.mdx` — slash command routing
|
|
68
|
+
- `node_modules/chat/docs/direct-messages.mdx` — DM behavior and `openDM()`
|
|
69
|
+
- `node_modules/chat/docs/files.mdx` — attachments/uploads
|
|
70
|
+
- `node_modules/chat/docs/state-adapters.mdx` — persistence, locking, dedupe
|
|
71
|
+
- `node_modules/chat/docs/adapters.mdx` — cross-platform feature matrix
|
|
72
|
+
- `node_modules/chat/docs/api/chat.mdx` — exact `Chat` API
|
|
73
|
+
- `node_modules/chat/docs/api/thread.mdx` — exact `Thread` API
|
|
74
|
+
- `node_modules/chat/docs/api/message.mdx` — exact `Message` API
|
|
75
|
+
- `node_modules/chat/docs/api/modals.mdx` — modal element and event details
|
|
76
|
+
|
|
77
|
+
For the specific adapter or state package you are using, inspect that installed package's `dist/index.d.ts` export surface in `node_modules`.
|
|
78
|
+
|
|
79
|
+
## Adapter catalog subpath
|
|
80
|
+
|
|
81
|
+
Chat SDK exposes a zero-dependency static catalog at `chat/adapters`. Agents can import `ADAPTERS`, `ADAPTER_NAMES`, `getAdapter`, `isAdapterSlug`, `listEnvVars`, `getSecretEnvVars`, and metadata types like `CatalogAdapter` and `AdapterSlug` from this subpath without importing any adapter implementation package.
|
|
82
|
+
|
|
83
|
+
Use it for:
|
|
84
|
+
- Listing official and vendor-official adapter slugs, names, npm packages, groups, and platform vs state types.
|
|
85
|
+
- Building setup or onboarding flows that need package names, peer dependencies, and install guidance before any adapter is installed.
|
|
86
|
+
- Discovering required, optional, and credential-mode environment variables for an adapter, including which variables are secrets.
|
|
87
|
+
- Keeping vendor-official adapter docs and metadata aligned with the catalog when adding or updating a listed adapter.
|
|
88
|
+
|
|
89
|
+
## Available resources
|
|
90
|
+
|
|
91
|
+
<!-- RESOURCES:START -->
|
|
92
|
+
|
|
93
|
+
### Guides
|
|
94
|
+
|
|
95
|
+
- `node_modules/chat/resources/guides/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk.md` — Build a Slack AI agent using Chat SDK, AI SDK's ToolLoopAgent, and Vercel AI Gateway. Covers project setup, tool definitions, streaming responses, deployment to Vercel, and scaling tool selection with toolpick.
|
|
96
|
+
- `node_modules/chat/resources/guides/human-in-the-loop-with-chat-sdk-and-workflow-sdk.md` — Pause durable workflows on Slack approval cards using Chat SDK and Workflow SDK. Uses createWebhook to suspend workflows until a button click, with patterns for multi-stage approvals, timeouts via durable sleep, and approver validation.
|
|
97
|
+
- `node_modules/chat/resources/guides/liveblocks-chat-sdk-ai-sdk.md` — Build an AI agent that replies to @-mentions in Liveblocks comment threads with streamed responses and tool calling. Uses Chat SDK, the Liveblocks adapter, AI SDK's ToolLoopAgent, and Redis for thread subscriptions and distributed locking.
|
|
98
|
+
- `node_modules/chat/resources/guides/slack-bot-vercel-blob.md` — Build a Slack bot that lists, reads, uploads, and deletes files in Vercel Blob through tool calls. Uses Chat SDK, AI SDK's ToolLoopAgent, and Files SDK's createFileTools factory with approval-gated write tools and a read-only mode.
|
|
99
|
+
- `node_modules/chat/resources/guides/run-and-track-deploys-from-slack.md` — Build a Slack deploy bot with Chat SDK and Vercel Workflow. Dispatch GitHub Actions from a slash command, gate production behind approval, poll for completion, and notify Linear and GitHub when the run finishes.
|
|
100
|
+
- `node_modules/chat/resources/guides/triage-form-submissions-with-chat-sdk.md` — Build a Slack bot that triages form submissions with interactive cards. Forward, edit, or mark as spam without leaving Slack. Built with Chat SDK, Hono, and Resend.
|
|
101
|
+
- `node_modules/chat/resources/guides/how-to-build-a-slack-bot-with-next-js-and-redis.md` — This guide walks through building a Slack bot with Next.js, covering project setup, Slack app configuration, event handling, interactive features, and deployment.
|
|
102
|
+
- `node_modules/chat/resources/guides/create-a-discord-support-bot-with-nuxt-and-redis.md` — This guide walks through building a Discord support bot with Nuxt, covering project setup, Discord app configuration, Gateway forwarding, AI-powered responses, and deployment.
|
|
103
|
+
- `node_modules/chat/resources/guides/ship-a-github-code-review-bot-with-hono-and-redis.md` — This guide walks through building a GitHub bot that reviews pull requests on demand. When a user @mentions the bot on a PR, Chat SDK picks up the mention, spins up a Vercel Sandbox with the repo cloned, and uses AI SDK to analyze the diff.
|
|
104
|
+
- `node_modules/chat/resources/guides/build-a-slack-bot-with-vercel-connect.md` — Learn how to build your very own Slackbot with Chat SDK and AI SDK. Vercel Connect supplies runtime Slack tokens and forwards triggers, so you never store a long-lived bot token.
|
|
105
|
+
- `node_modules/chat/resources/guides/vercel-connect.md` — Use Vercel Connect to call provider APIs like Slack, GitHub, and Snowflake from your agents and services with short-lived, user-authorized tokens instead of long-lived secrets.
|
|
106
|
+
- `node_modules/chat/resources/guides/ai-gateway-and-ai-sdk.md` — Build AI agents on Vercel with AI Gateway and AI SDK, then make them reliable, capable, and durable with Sandbox, Chat SDK, Vercel Connect, and Workflow.
|
|
107
|
+
- `node_modules/chat/resources/guides/daily-digest-bot-with-chat-sdk-and-workflow-sdk.md` — Create your own daily digest bot that posts a daily digest of GitHub stats to Slack. Learn how to use Vercel Connect to set up Slack and GitHub app securely in your project.
|
|
108
|
+
|
|
109
|
+
### Templates
|
|
110
|
+
|
|
111
|
+
Listed in `node_modules/chat/resources/templates.json`:
|
|
112
|
+
|
|
113
|
+
- **Chat SDK Liveblocks Bot** — Build a bot that you can engage with inside Liveblocks. (https://vercel.com/templates/next.js/chat-sdk-liveblocks-bot)
|
|
114
|
+
- **Durable iMessage Agent** — Durable iMessage agent powered by the Sendblue adapter. (https://vercel.com/templates/nitro/durable-imessage-ai-agent)
|
|
115
|
+
- **Knowledge Agent** — Open source file-system and knowledge based agent template. Build AI agents that stay up to date with your knowledge base. (https://vercel.com/templates/nuxt/chat-sdk-knowledge-agent)
|
|
116
|
+
- **Community Agent** — Open source AI-powered Slack community management bot with a built-in Next.js admin panel. Uses Chat SDK, AI SDK, and Vercel Workflow. (https://vercel.com/templates/next.js/chat-sdk-community-agent)
|
|
117
|
+
- **Caltext** — iMessage calorie tracking assistant powered by AI. (https://vercel.com/templates/hono/caltext)
|
|
118
|
+
|
|
119
|
+
<!-- RESOURCES:END -->
|
|
120
|
+
|
|
121
|
+
## Quick start
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
import { Chat } from "chat";
|
|
125
|
+
import { createSlackAdapter } from "@chat-adapter/slack";
|
|
126
|
+
import { createRedisState } from "@chat-adapter/state-redis";
|
|
127
|
+
|
|
128
|
+
const bot = new Chat({
|
|
129
|
+
userName: "mybot",
|
|
130
|
+
adapters: {
|
|
131
|
+
slack: createSlackAdapter(),
|
|
132
|
+
},
|
|
133
|
+
state: createRedisState(),
|
|
134
|
+
dedupeTtlMs: 600_000,
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
bot.onNewMention(async (thread) => {
|
|
138
|
+
await thread.subscribe();
|
|
139
|
+
await thread.post("Hello! I'm listening to this thread.");
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
bot.onSubscribedMessage(async (thread, message) => {
|
|
143
|
+
await thread.post(`You said: ${message.text}`);
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Core concepts
|
|
148
|
+
|
|
149
|
+
- **Chat** — main entry point; coordinates adapters, routing, locks, and state
|
|
150
|
+
- **Adapters** — platform-specific integrations for Slack, Teams, Google Chat, Discord, Telegram, GitHub, Linear, and WhatsApp
|
|
151
|
+
- **State adapters** — persistence for subscriptions, locks, dedupe, and thread state
|
|
152
|
+
- **Thread** — conversation context with `post()`, `stream()`, `subscribe()`, `setState()`, `startTyping()`
|
|
153
|
+
- **Message** — normalized content with `text`, `formatted`, attachments, author info, and platform `raw`
|
|
154
|
+
- **Channel** — container for threads and top-level posts
|
|
155
|
+
|
|
156
|
+
## Event handlers
|
|
157
|
+
|
|
158
|
+
| Handler | Trigger |
|
|
159
|
+
|---------|---------|
|
|
160
|
+
| `onNewMention` | Bot @-mentioned in an unsubscribed thread |
|
|
161
|
+
| `onDirectMessage` | New DM in an unsubscribed DM thread |
|
|
162
|
+
| `onSubscribedMessage` | Any message in a subscribed thread |
|
|
163
|
+
| `onNewMessage(regex)` | Regex match in an unsubscribed thread |
|
|
164
|
+
| `onReaction(emojis?)` | Emoji added or removed |
|
|
165
|
+
| `onAction(actionIds?)` | Button clicks and select/radio interactions |
|
|
166
|
+
| `onModalSubmit(callbackId?)` | Modal form submitted |
|
|
167
|
+
| `onModalClose(callbackId?)` | Modal dismissed/cancelled |
|
|
168
|
+
| `onSlashCommand(commands?)` | Slash command invocation |
|
|
169
|
+
| `onAssistantThreadStarted` | Slack assistant thread opened |
|
|
170
|
+
| `onAssistantContextChanged` | Slack assistant context changed |
|
|
171
|
+
| `onAppHomeOpened` | Slack App Home opened |
|
|
172
|
+
| `onMemberJoinedChannel` | Slack member joined channel event |
|
|
173
|
+
|
|
174
|
+
Read `node_modules/chat/docs/handling-events.mdx`, `node_modules/chat/docs/actions.mdx`, `node_modules/chat/docs/modals.mdx`, and `node_modules/chat/docs/slash-commands.mdx` before wiring handlers. `onDirectMessage` behavior is documented in `node_modules/chat/docs/direct-messages.mdx`.
|
|
175
|
+
|
|
176
|
+
## Streaming
|
|
177
|
+
|
|
178
|
+
Pass any `AsyncIterable<string>` to `thread.post()`. For AI SDK, prefer `result.fullStream` over `result.textStream` when available so step boundaries are preserved.
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
import { ToolLoopAgent } from "ai";
|
|
182
|
+
|
|
183
|
+
const agent = new ToolLoopAgent({ model: "anthropic/claude-4.5-sonnet" });
|
|
184
|
+
|
|
185
|
+
bot.onNewMention(async (thread, message) => {
|
|
186
|
+
const result = await agent.stream({ prompt: message.text });
|
|
187
|
+
await thread.post(result.fullStream);
|
|
188
|
+
});
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Key details:
|
|
192
|
+
- `streamingUpdateIntervalMs` controls post+edit fallback cadence
|
|
193
|
+
- `fallbackStreamingPlaceholderText` defaults to `"..."`; set `null` to disable
|
|
194
|
+
- Structured `StreamChunk` support is Slack-only; other adapters ignore non-text chunks
|
|
195
|
+
|
|
196
|
+
## Cards and modals (JSX)
|
|
197
|
+
|
|
198
|
+
Set `jsxImportSource: "chat"` in `tsconfig.json`.
|
|
199
|
+
|
|
200
|
+
Card components:
|
|
201
|
+
- `Card`, `CardText`, `Section`, `Fields`, `Field`, `Button`, `CardLink`, `LinkButton`, `Actions`, `Select`, `SelectOption`, `RadioSelect`, `Table`, `Image`, `Divider`
|
|
202
|
+
|
|
203
|
+
Modal components:
|
|
204
|
+
- `Modal`, `TextInput`, `Select`, `SelectOption`, `RadioSelect`
|
|
205
|
+
|
|
206
|
+
`Button` and `Modal` accept a `callbackUrl` prop — when triggered, the SDK POSTs the action payload to that URL in addition to firing any `onAction` / `onModalSubmit` handler. Use this for webhook-based workflow flows. See `node_modules/chat/docs/actions.mdx` and `node_modules/chat/docs/modals.mdx`.
|
|
207
|
+
|
|
208
|
+
```tsx
|
|
209
|
+
await thread.post(
|
|
210
|
+
<Card title="Order #1234">
|
|
211
|
+
<CardText>Your order has been received.</CardText>
|
|
212
|
+
<Actions>
|
|
213
|
+
<Button id="approve" style="primary">Approve</Button>
|
|
214
|
+
<Button id="reject" style="danger">Reject</Button>
|
|
215
|
+
</Actions>
|
|
216
|
+
</Card>
|
|
217
|
+
);
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Adapter inventory
|
|
221
|
+
|
|
222
|
+
See [chat-sdk.dev/adapters](https://chat-sdk.dev/adapters) for the current list of official, vendor-official, and community adapters, including package names and authors. For the exact factory function and config types of an installed adapter, inspect its `dist/index.d.ts` in `node_modules`.
|
|
223
|
+
|
|
224
|
+
## Building a custom adapter
|
|
225
|
+
|
|
226
|
+
Read these published docs first:
|
|
227
|
+
- `node_modules/chat/docs/contributing/building.mdx`
|
|
228
|
+
- `node_modules/chat/docs/contributing/testing.mdx`
|
|
229
|
+
- `node_modules/chat/docs/contributing/publishing.mdx`
|
|
230
|
+
|
|
231
|
+
Also inspect:
|
|
232
|
+
- `node_modules/chat/dist/index.d.ts` — `Adapter` and related interfaces
|
|
233
|
+
- `node_modules/@chat-adapter/shared/dist/index.d.ts` — shared errors and utilities
|
|
234
|
+
- Installed official adapter `dist/index.d.ts` files — reference implementations for config and APIs
|
|
235
|
+
|
|
236
|
+
A custom adapter needs request verification, webhook parsing, message/thread/channel operations, ID encoding/decoding, and a format converter. Use `BaseFormatConverter` from `chat` and shared utilities from `@chat-adapter/shared`.
|
|
237
|
+
|
|
238
|
+
## Webhook setup
|
|
239
|
+
|
|
240
|
+
Each registered adapter exposes `bot.webhooks.<name>`. Wire those directly to your HTTP framework routes. See `node_modules/chat/resources/guides/how-to-build-a-slack-bot-with-next-js-and-redis.md` and `node_modules/chat/resources/guides/create-a-discord-support-bot-with-nuxt-and-redis.md` for framework-specific route patterns.
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: composio
|
|
3
|
+
description: Use 1000+ external apps via Composio - either directly through the CLI or by building AI agents and apps with the SDK
|
|
4
|
+
tags: [composio, tool-router, agents, mcp, tools, api, automation, cli]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# composio
|
|
8
|
+
|
|
9
|
+
Use 1000+ external apps via Composio - either directly through the CLI or by building AI agents and apps with the SDK
|
|
10
|
+
|
|
11
|
+
## When to Apply
|
|
12
|
+
- User wants to access or interact with external apps (Gmail, Slack, GitHub, Notion, etc.)
|
|
13
|
+
- User wants to automate a task using an external service (send email, create issue, post message)
|
|
14
|
+
- Building an AI agent or app that integrates with external tools
|
|
15
|
+
- Multi-user apps that need per-user connections to external services
|
|
16
|
+
|
|
17
|
+
## Table of Contents
|
|
18
|
+
|
|
19
|
+
1. [Use Apps via Composio CLI](#use-apps-via-composio-cli)
|
|
20
|
+
1.1. [Composio CLI Guide](#composio-cli-guide)
|
|
21
|
+
|
|
22
|
+
2. [Building Apps and Agents with Composio](#building-apps-and-agents-with-composio)
|
|
23
|
+
2.1. [Building with Composio](#building-with-composio)
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 1. Use Apps via Composio CLI
|
|
28
|
+
|
|
29
|
+
<a name="use-apps-via-composio-cli"></a>
|
|
30
|
+
|
|
31
|
+
### 1.1. Composio CLI Guide
|
|
32
|
+
|
|
33
|
+
<a name="composio-cli-guide"></a>
|
|
34
|
+
|
|
35
|
+
**Impact:** 🟠 HIGH
|
|
36
|
+
|
|
37
|
+
> Use the Composio CLI to take actions on external apps directly - no code needed
|
|
38
|
+
|
|
39
|
+
# Composio CLI Guide
|
|
40
|
+
|
|
41
|
+
Use the Composio CLI to search, connect, and execute tools directly — no code writing required. Ideal for agents taking actions on behalf of the user.
|
|
42
|
+
|
|
43
|
+
## Prerequisites (first-time setup)
|
|
44
|
+
|
|
45
|
+
If the CLI is not installed or the user is not authenticated:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Install
|
|
49
|
+
curl -fsSL https://composio.dev/install | bash
|
|
50
|
+
composio --version # verify
|
|
51
|
+
|
|
52
|
+
# Authenticate
|
|
53
|
+
composio login # OAuth flow; interactive org/project picker after login (use -y to skip)
|
|
54
|
+
composio whoami # verify org_id, project_id, user_id (API keys are never displayed)
|
|
55
|
+
# Run upgrade in case you run into errors or starting with a new project
|
|
56
|
+
composio upgrade
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
> **Note**: Use `whoami` only to verify login status — do not hardcode these values in code. `whoami` shows hints for `composio manage orgs switch` and `composio init` when relevant.
|
|
60
|
+
|
|
61
|
+
**Login behavior**: By default, `composio login` shows an interactive org/project picker after OAuth. Use `composio login -y` to skip the picker and use session defaults. JSON output is emitted only after the picker finishes (or immediately with `-y`), so piped/scripted usage gets the correct `org_id` and `project_id`.
|
|
62
|
+
|
|
63
|
+
**Agent login (no direct browser access)**: For agents that cannot open a browser for the user, use a two-step flow:
|
|
64
|
+
|
|
65
|
+
1. **Get login URL and session key** — Print login URL and JSON (jq-parseable) then exit without opening browser or waiting:
|
|
66
|
+
```bash
|
|
67
|
+
composio login --no-wait | jq
|
|
68
|
+
```
|
|
69
|
+
Share the login URL with the agent's user to complete login in their browser.
|
|
70
|
+
|
|
71
|
+
2. **Complete login with session key** — Use the `key` from the previous output to check if the user has logged in:
|
|
72
|
+
```bash
|
|
73
|
+
composio login --key "<key>"
|
|
74
|
+
```
|
|
75
|
+
Without `--no-wait`: polls until the session is linked (same as browser flow after printing URL).
|
|
76
|
+
With `--no-wait`: checks once and fails if not linked. For agents, once the user completes login, run with `--no-wait` to avoid blocking.
|
|
77
|
+
|
|
78
|
+
## Primary Workflow: search → link → execute
|
|
79
|
+
|
|
80
|
+
### Step 1 — Find the right tool
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
composio search "send an email"
|
|
84
|
+
composio search "create github issue"
|
|
85
|
+
composio search "post slack message"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The search results include connection status, so you can see immediately if the user is already connected to the required app.
|
|
89
|
+
|
|
90
|
+
> **Important**: Do not trim the output of `composio search` (e.g. with `head`). Use the full results to pick the right tool — truncating can hide the best match.
|
|
91
|
+
|
|
92
|
+
### Step 2 — Connect an account (if needed)
|
|
93
|
+
|
|
94
|
+
If the user is not connected to the app, link their account:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
composio link gmail
|
|
98
|
+
composio link github
|
|
99
|
+
composio link slack
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
This opens an OAuth flow or prompts for credentials. Only needed once per app. By default, `composio link` waits until the connected account is ACTIVE (opens browser, polls). Use `--no-wait` for scripted or agent usage: it prints link info and JSON to stdout (JQ-friendly) and exits immediately. Output includes `status`, `connected_account_id`, `redirect_url`, and `toolkit`.
|
|
103
|
+
|
|
104
|
+
### Step 3 — Execute the tool
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
composio execute GMAIL_SEND_EMAIL --data '{"recipient_email":"you@example.com","subject":"Hello","body":"Test"}'
|
|
108
|
+
composio execute GITHUB_CREATE_AN_ISSUE --data '{"owner":"acme","repo":"my-repo","title":"Bug report"}'
|
|
109
|
+
```
|
|
110
|
+
To see a tool's input parameters before executing:
|
|
111
|
+
```bash
|
|
112
|
+
composio execute GMAIL_SEND_EMAIL --help
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Step 4 — Listen for events (optional)
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
composio listen
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Streams real-time trigger events to the terminal.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Tips for Agents
|
|
126
|
+
|
|
127
|
+
- **All commands output JSON** — pipe to `jq` for filtering and extraction
|
|
128
|
+
- **Agent login** — When the agent has no direct browser access, use `composio login --no-wait` to get the URL and key, share the URL with the user, then `composio login --key <key> --no-wait` once they complete login
|
|
129
|
+
- **Parallel execution** — use `&` and `wait` or shell scripts for complex multi-step tasks
|
|
130
|
+
- The default user context is the project's `test_user_id`. Pass `--user-id <id>` to act on behalf of a specific user.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
composio execute GMAIL_SEND_EMAIL --user-id "user_123" --data '{"recipient_email":"them@example.com","subject":"Hi"}'
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Best Practices
|
|
137
|
+
|
|
138
|
+
1. **Use `jq` for JSON** — Pipe CLI output to `jq` for filtering and extraction instead of parsing raw JSON.
|
|
139
|
+
2. **Control output at source** — When fetching large amounts of data, use the tool's filters (if supported) to limit what is returned.
|
|
140
|
+
3. **Offload analysis** — After understanding the schema, use inline bash scripts for heavy data analysis instead of manual inspection. Avoid using composio SDK for personal usecases only use the SDKs when building apps.
|
|
141
|
+
4. **Parallelize independent actions** — For tools/actions that don't depend on each other, run them in parallel with `&` and `wait`. Use `xargs -P` or `parallel` only when the backend can handle the load.
|
|
142
|
+
5. **Avoid large terminal dumps** — Filter, search, and summarize instead of outputting full datasets:
|
|
143
|
+
- Quick text filtering: `grep -E`, `rg` (ripgrep), `awk`, `sed`
|
|
144
|
+
- Summarize: `sort | uniq -c | sort -nr`, `wc -l`, `head`, `tail`
|
|
145
|
+
- For large output: `less`, `lnav` (logs), `tail -f` for streaming
|
|
146
|
+
6. **Minimize file creation** — Use ephemeral files only when needed; create files only when the user explicitly asks.
|
|
147
|
+
7. **Respect rate limits** — Be mindful of pagination and API/CLI rate limits when parallelizing.
|
|
148
|
+
8. **Never invent tool slugs or app names** — Only use tools returned by `composio search`. For app names, use `composio manage toolkits info <slug>` or `composio manage tools info <tool>` to verify.
|
|
149
|
+
9. **Do not trim `composio search` output** — Never pipe search results through `head`, `tail`, or similar. Use the full output to find the best tool match.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Advanced Commands
|
|
154
|
+
|
|
155
|
+
### Discover Tools (when search isn't enough)
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# List all toolkits
|
|
159
|
+
composio manage toolkits list
|
|
160
|
+
|
|
161
|
+
# Get details about a specific toolkit
|
|
162
|
+
composio manage toolkits info "gmail"
|
|
163
|
+
|
|
164
|
+
# List tools in a toolkit
|
|
165
|
+
composio manage tools list --toolkits "gmail"
|
|
166
|
+
|
|
167
|
+
# Get a tool's full schema
|
|
168
|
+
composio manage tools info "GMAIL_SEND_EMAIL"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Connected Accounts
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# List active connections
|
|
175
|
+
composio manage connected-accounts list --status ACTIVE
|
|
176
|
+
|
|
177
|
+
# Link an account (full form with options)
|
|
178
|
+
composio manage connected-accounts link --auth-config "ac_..." --user-id "user_123"
|
|
179
|
+
|
|
180
|
+
# Delete a connection
|
|
181
|
+
composio manage connected-accounts delete <id>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Auth Configs
|
|
185
|
+
|
|
186
|
+
> Only needed when building apps with custom OAuth credentials. For personal use and agents, `composio link` handles this automatically.
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
composio manage auth-configs list --toolkits "gmail"
|
|
190
|
+
composio manage auth-configs create
|
|
191
|
+
composio manage auth-configs info <id>
|
|
192
|
+
composio manage auth-configs delete <id>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Triggers
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# List available trigger types
|
|
199
|
+
composio manage triggers list
|
|
200
|
+
composio manage triggers info "GMAIL_NEW_GMAIL_MESSAGE"
|
|
201
|
+
|
|
202
|
+
# Manage trigger instances
|
|
203
|
+
composio manage triggers create <trigger-name>
|
|
204
|
+
composio manage triggers enable <id>
|
|
205
|
+
composio manage triggers disable <id>
|
|
206
|
+
composio manage triggers status
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Debugging & Logs
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# View recent tool executions
|
|
213
|
+
composio manage logs tools
|
|
214
|
+
|
|
215
|
+
# Get detailed logs for a specific execution
|
|
216
|
+
composio manage logs tools "log_abc123"
|
|
217
|
+
|
|
218
|
+
# Monitor trigger events
|
|
219
|
+
composio manage logs triggers
|
|
220
|
+
```
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## jq Examples
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Extract toolkit slugs
|
|
227
|
+
composio manage toolkits list | jq -r '.[].slug'
|
|
228
|
+
|
|
229
|
+
# Get tool names from a toolkit
|
|
230
|
+
composio manage tools list --toolkits "gmail" | jq -r '.[].name'
|
|
231
|
+
|
|
232
|
+
# Filter active connections
|
|
233
|
+
composio manage connected-accounts list --status ACTIVE | jq -r '.[].id'
|
|
234
|
+
|
|
235
|
+
# Extract login URL and key from agent login flow
|
|
236
|
+
composio login --no-wait | jq -r '.login_url'
|
|
237
|
+
composio login --no-wait | jq -r '.key'
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Command Help
|
|
241
|
+
|
|
242
|
+
Every command supports `--help` for detailed options:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
composio --help
|
|
246
|
+
composio login --help
|
|
247
|
+
composio search --help
|
|
248
|
+
composio execute --help
|
|
249
|
+
composio link --help
|
|
250
|
+
composio listen --help
|
|
251
|
+
composio manage tools --help
|
|
252
|
+
composio manage toolkits --help
|
|
253
|
+
composio manage triggers --help
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 2. Building Apps and Agents with Composio
|
|
259
|
+
|
|
260
|
+
<a name="building-apps-and-agents-with-composio"></a>
|
|
261
|
+
|
|
262
|
+
### 2.1. Building with Composio
|
|
263
|
+
|
|
264
|
+
<a name="building-with-composio"></a>
|
|
265
|
+
|
|
266
|
+
**Impact:** 🟠 HIGH
|
|
267
|
+
|
|
268
|
+
> SDK-based guide for building AI agents and applications that integrate with external tools via Composio
|
|
269
|
+
|
|
270
|
+
# Building Apps and Agents with Composio
|
|
271
|
+
|
|
272
|
+
Use the Composio SDK to build AI agents, chat apps, and backend services that integrate with 200+ external tools.
|
|
273
|
+
|
|
274
|
+
## Project Setup
|
|
275
|
+
|
|
276
|
+
Run inside your project directory to initialize and store the API key:
|
|
277
|
+
```bash
|
|
278
|
+
composio init
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Install the SDK
|
|
282
|
+
|
|
283
|
+
**TypeScript**
|
|
284
|
+
```bash
|
|
285
|
+
pnpm install @composio/core@latest
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Provider packages for agentic frameworks:
|
|
289
|
+
- `@composio/vercel` — Vercel AI SDK
|
|
290
|
+
- `@composio/openai-agents` — OpenAI Agents
|
|
291
|
+
- `@composio/langchain` — LangChain
|
|
292
|
+
- `@composio/mastra` — Mastra
|
|
293
|
+
- `@composio/claude-agent-sdk` — Claude Agent SDK
|
|
294
|
+
|
|
295
|
+
**Python**
|
|
296
|
+
```bash
|
|
297
|
+
pip install composio
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Provider packages for agentic frameworks:
|
|
301
|
+
- `composio-openai-agents` — OpenAI Agents
|
|
302
|
+
- `composio-langchain` — LangChain
|
|
303
|
+
- `composio-langgraph` — LangGraph
|
|
304
|
+
- `composio-crewai` — CrewAI
|
|
305
|
+
- `composio-claude-agent-sdk` — Claude Agent SDK
|
|
306
|
+
- `composio-google-adk` — Google ADK
|
|
307
|
+
|
|
308
|
+
Pass the provider into the Composio constructor:
|
|
309
|
+
```typescript
|
|
310
|
+
import { Composio } from '@composio/core'
|
|
311
|
+
import { VercelProvider } from '@composio/vercel'
|
|
312
|
+
|
|
313
|
+
const composio = new Composio({ provider: new VercelProvider() })
|
|
314
|
+
```
|
|
315
|
+
```python
|
|
316
|
+
from composio import Composio
|
|
317
|
+
from composio_langchain import LangchainProvider
|
|
318
|
+
|
|
319
|
+
composio = Composio(provider=LangchainProvider())
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Building Agents
|
|
325
|
+
|
|
326
|
+
Use Tool Router to create isolated MCP sessions per user with scoped tool access and automatic auth management. Compatible with any AI framework.
|
|
327
|
+
|
|
328
|
+
### Session Management
|
|
329
|
+
- [User ID Best Practices](tr-userid-best-practices.md) — choose user IDs for security and isolation
|
|
330
|
+
- [Creating Basic Sessions](tr-session-basic.md) — initialize Tool Router sessions
|
|
331
|
+
- [Session Lifecycle](tr-session-lifecycle.md) — when to create vs reuse sessions
|
|
332
|
+
- [Session Configuration](tr-session-config.md) — configure toolkits, tools, and filters
|
|
333
|
+
- [Using Native Tools](tr-mcp-vs-native.md) — prefer native tools for performance and control
|
|
334
|
+
|
|
335
|
+
### Authentication Flows
|
|
336
|
+
- [Auto Authentication in Chat](tr-auth-auto.md) — enable in-chat auth flows
|
|
337
|
+
- [Manual Authorization](tr-auth-manual.md) — use `session.authorize()` for explicit flows
|
|
338
|
+
- [Connection Management](tr-auth-connections.md) — configure `manageConnections`, `waitForConnections`, and callback URLs
|
|
339
|
+
|
|
340
|
+
### Toolkit Querying & UI Building
|
|
341
|
+
- [Building Chat UIs](tr-building-chat-ui.md) — toolkit selection, connection management, and session handling
|
|
342
|
+
- [Query Toolkit States](tr-toolkit-query.md) — use `session.toolkits()` to check connections and build connection UIs
|
|
343
|
+
|
|
344
|
+
### Framework Integrations
|
|
345
|
+
- [Framework Integration](tr-framework-integration.md) — LangChain, OpenAI Agents, general patterns
|
|
346
|
+
- [Vercel AI SDK](tr-framework-ai-sdk.md) — native tools, MCP, and React
|
|
347
|
+
- [Mastra](tr-framework-mastra.md) — Mastra agents with native tools and MCP
|
|
348
|
+
|
|
349
|
+
### Event-Driven Agents (Triggers)
|
|
350
|
+
- [Creating Triggers](triggers-create.md) — set up trigger instances for real-time events
|
|
351
|
+
- [Subscribing to Events](triggers-subscribe.md) — listen to trigger events in real-time
|
|
352
|
+
- [Webhook Verification](triggers-webhook.md) — verify and process incoming webhook payloads
|
|
353
|
+
- [Managing Triggers](triggers-manage.md) — enable, disable, update, and list triggers
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Building Apps
|
|
358
|
+
|
|
359
|
+
Direct tool execution without agent frameworks — full control over auth, execution, and resource management. If building apps with agentic abilities, make sure the auth configs match the session's auth configs.
|
|
360
|
+
|
|
361
|
+
### Core Operations
|
|
362
|
+
- [Fetching Tools](app-fetch-tools.md) — get tools with filters and search
|
|
363
|
+
- [Direct Tool Execution](app-execute-tools.md) — execute tools manually with parameters
|
|
364
|
+
- [Tool Version Management](app-tool-versions.md) — version pinning strategies for stability
|
|
365
|
+
|
|
366
|
+
### Resource Management
|
|
367
|
+
- [Connected Accounts CRUD](app-connected-accounts.md) — create, read, update, delete connected accounts
|
|
368
|
+
- [Auth Config Management](app-auth-configs.md) — manage authentication configurations
|
|
369
|
+
- [Toolkit Management](app-toolkits.md) — query toolkits, categories, and auth requirements
|
|
370
|
+
- [Auth Popup UI](app-auth-popup-ui.md) — build popup-based OAuth flows
|
|
371
|
+
|
|
372
|
+
### Extensibility
|
|
373
|
+
- [Tool Modifiers](app-modifiers.md) — schema modification and execution hooks for logging and modifications
|
|
374
|
+
|
|
375
|
+
### User Context & Multi-Tenancy
|
|
376
|
+
- [User ID Patterns](app-user-context.md) — user vs organization IDs, shared vs isolated connections
|
|
377
|
+
|
|
378
|
+
### Event-Driven Applications
|
|
379
|
+
- [Creating Triggers](triggers-create.md) — set up trigger instances
|
|
380
|
+
- [Subscribing to Events](triggers-subscribe.md) — listen to events in real-time
|
|
381
|
+
- [Webhook Verification](triggers-webhook.md) — verify incoming webhooks
|
|
382
|
+
- [Managing Triggers](triggers-manage.md) — enable, disable, update triggers
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## Verify Tool Slugs Before Use
|
|
387
|
+
|
|
388
|
+
Never guess toolkit, tool, or trigger names. Always verify:
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
composio search "send email"
|
|
392
|
+
composio manage tools info "GMAIL_SEND_EMAIL"
|
|
393
|
+
composio manage toolkits info "gmail"
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
Using incorrect slugs causes runtime errors.
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
_This file was automatically generated from individual rule files on 2026-03-13T12:37:41.138Z_
|
|
404
|
+
_To update, run: `npm run build:agents`_
|