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,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Setting Up API Keys for Your Project
|
|
3
|
+
impact: CRITICAL
|
|
4
|
+
description: Configure Composio, OpenAI, and Anthropic API keys to enable your AI agent projects
|
|
5
|
+
tags: [setup, api-keys, configuration, environment, composio, openai, anthropic]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Setting Up API Keys for Your Project
|
|
9
|
+
|
|
10
|
+
Before building AI agents with Composio, you need to configure the necessary API keys. This includes Composio for tool access and your preferred LLM provider (OpenAI or Anthropic).
|
|
11
|
+
|
|
12
|
+
## Setting Up Composio API Key
|
|
13
|
+
|
|
14
|
+
### Step 1: Get Your Composio API Key
|
|
15
|
+
|
|
16
|
+
1. Visit [Composio Platform](https://platform.composio.dev)
|
|
17
|
+
2. Sign up or log in to your account
|
|
18
|
+
3. Select or create a project
|
|
19
|
+
4. Navigate to **Project Settings**
|
|
20
|
+
5. Switch to the **API Keys** tab
|
|
21
|
+
6. Copy your project-level API key
|
|
22
|
+
|
|
23
|
+
### Step 2: Add to Environment Variables
|
|
24
|
+
|
|
25
|
+
Create a `.env` file in your project root (if it doesn't exist) and add:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
COMPOSIO_API_KEY=your_composio_api_key_here
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Setting Up LLM Provider API Keys
|
|
32
|
+
|
|
33
|
+
### OpenAI API Key
|
|
34
|
+
|
|
35
|
+
If you're using OpenAI models (GPT-4, GPT-4o, etc.):
|
|
36
|
+
|
|
37
|
+
1. Visit [OpenAI Platform](https://platform.openai.com/api-keys)
|
|
38
|
+
2. Sign in or create an account
|
|
39
|
+
3. Navigate to API Keys section
|
|
40
|
+
4. Create a new API key or copy an existing one
|
|
41
|
+
5. Add to your `.env` file:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
OPENAI_API_KEY=your_openai_api_key_here
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Anthropic API Key
|
|
48
|
+
|
|
49
|
+
If you're using Anthropic models (Claude, Claude Sonnet, etc.):
|
|
50
|
+
|
|
51
|
+
1. Visit [Anthropic Console](https://console.anthropic.com/settings/keys)
|
|
52
|
+
2. Sign in or create an account
|
|
53
|
+
3. Navigate to API Keys section
|
|
54
|
+
4. Create a new API key or copy an existing one
|
|
55
|
+
5. Add to your `.env` file:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ANTHROPIC_API_KEY=your_anthropic_api_key_here
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## ❌ Incorrect - Hardcoding API Keys
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
// DON'T: Never hardcode API keys in your code
|
|
65
|
+
const composio = new Composio({
|
|
66
|
+
apiKey: 'sk_composio_abc123xyz' // ❌ Security risk!
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
const openai = new OpenAI({
|
|
70
|
+
apiKey: 'sk-proj-abc123' // ❌ Will be exposed in version control
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
# DON'T: Never hardcode API keys
|
|
76
|
+
composio = Composio(api_key="sk_composio_abc123xyz") # ❌ Security risk!
|
|
77
|
+
|
|
78
|
+
client = OpenAI(api_key="sk-proj-abc123") # ❌ Will be exposed in version control
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## ✅ Correct - Using Environment Variables
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
// DO: Load API keys from environment variables
|
|
85
|
+
import { Composio } from '@composio/core';
|
|
86
|
+
import { OpenAI } from 'openai';
|
|
87
|
+
|
|
88
|
+
const composio = new Composio({
|
|
89
|
+
apiKey: process.env.COMPOSIO_API_KEY // ✅ Secure
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
const openai = new OpenAI({
|
|
93
|
+
apiKey: process.env.OPENAI_API_KEY // ✅ Secure
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
# DO: Load API keys from environment variables
|
|
99
|
+
import os
|
|
100
|
+
from composio import Composio
|
|
101
|
+
from openai import OpenAI
|
|
102
|
+
|
|
103
|
+
composio = Composio(api_key=os.environ["COMPOSIO_API_KEY"]) # ✅ Secure
|
|
104
|
+
|
|
105
|
+
openai = OpenAI(api_key=os.environ["OPENAI_API_KEY"]) # ✅ Secure
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Complete .env File Example
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Composio Configuration
|
|
112
|
+
COMPOSIO_API_KEY=your_composio_api_key_here
|
|
113
|
+
|
|
114
|
+
# LLM Provider (choose one or both based on your needs)
|
|
115
|
+
OPENAI_API_KEY=your_openai_api_key_here
|
|
116
|
+
ANTHROPIC_API_KEY=your_anthropic_api_key_here
|
|
117
|
+
|
|
118
|
+
# Optional: Other configurations
|
|
119
|
+
NODE_ENV=development
|
|
120
|
+
PORT=3000
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Loading Environment Variables
|
|
124
|
+
|
|
125
|
+
### Node.js / TypeScript
|
|
126
|
+
|
|
127
|
+
Install `dotenv`:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npm install dotenv
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Load at the top of your entry file:
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
import 'dotenv/config';
|
|
137
|
+
// Or
|
|
138
|
+
require('dotenv').config();
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Python
|
|
142
|
+
|
|
143
|
+
Install `python-dotenv`:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
pip install python-dotenv
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Load in your code:
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
from dotenv import load_dotenv
|
|
153
|
+
load_dotenv()
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Security Best Practices
|
|
157
|
+
|
|
158
|
+
1. **Never commit `.env` files** - Add `.env` to your `.gitignore`:
|
|
159
|
+
```
|
|
160
|
+
# .gitignore
|
|
161
|
+
.env
|
|
162
|
+
.env.local
|
|
163
|
+
.env.*.local
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
2. **Use different keys for different environments** - Create separate API keys for development, staging, and production
|
|
167
|
+
|
|
168
|
+
3. **Rotate keys regularly** - Periodically regenerate API keys for security
|
|
169
|
+
|
|
170
|
+
4. **Restrict key permissions** - Use the minimum required permissions for each API key
|
|
171
|
+
|
|
172
|
+
5. **Use secret management in production** - Consider using services like:
|
|
173
|
+
- AWS Secrets Manager
|
|
174
|
+
- Google Cloud Secret Manager
|
|
175
|
+
- HashiCorp Vault
|
|
176
|
+
- Vercel Environment Variables
|
|
177
|
+
- Railway Environment Variables
|
|
178
|
+
|
|
179
|
+
## Verifying Your Setup
|
|
180
|
+
|
|
181
|
+
After setting up your API keys, verify they work:
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
import { Composio } from '@composio/core';
|
|
185
|
+
|
|
186
|
+
const composio = new Composio({
|
|
187
|
+
apiKey: process.env.COMPOSIO_API_KEY
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// Test the connection
|
|
191
|
+
const apps = await composio.apps.list();
|
|
192
|
+
console.log('✅ Composio API key is working!');
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
from composio import Composio
|
|
197
|
+
|
|
198
|
+
composio = Composio(api_key=os.environ["COMPOSIO_API_KEY"])
|
|
199
|
+
|
|
200
|
+
# Test the connection
|
|
201
|
+
apps = composio.apps.list()
|
|
202
|
+
print("✅ Composio API key is working!")
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Troubleshooting
|
|
206
|
+
|
|
207
|
+
### "API key not found" error
|
|
208
|
+
|
|
209
|
+
- Ensure your `.env` file is in the project root
|
|
210
|
+
- Verify you're loading environment variables before using them
|
|
211
|
+
- Check for typos in variable names (`COMPOSIO_API_KEY`, not `COMPOSIO_KEY`)
|
|
212
|
+
|
|
213
|
+
### "Invalid API key" error
|
|
214
|
+
|
|
215
|
+
- Verify you copied the complete API key
|
|
216
|
+
- Check that you're using a project-level API key from Composio
|
|
217
|
+
- Ensure the key hasn't been revoked or expired
|
|
218
|
+
|
|
219
|
+
### Environment variables not loading
|
|
220
|
+
|
|
221
|
+
- Restart your development server after modifying `.env`
|
|
222
|
+
- Ensure `dotenv` is installed and configured correctly
|
|
223
|
+
- Check that `.env` is in the correct directory
|
|
224
|
+
|
|
225
|
+
## Reference
|
|
226
|
+
|
|
227
|
+
- [Composio Platform](https://platform.composio.dev)
|
|
228
|
+
- [OpenAI API Keys](https://platform.openai.com/api-keys)
|
|
229
|
+
- [Anthropic Console](https://console.anthropic.com/settings/keys)
|
|
230
|
+
- [Composio Documentation](https://docs.composio.dev)
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Enable Auto Authentication in Chat
|
|
3
|
+
impact: HIGH
|
|
4
|
+
description: Allow users to authenticate toolkits directly within chat conversations
|
|
5
|
+
tags: [authentication, tool-router, user-experience, oauth]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Enable Auto Authentication in Chat
|
|
9
|
+
|
|
10
|
+
Enable `manageConnections` to allow users to authenticate toolkits on-demand during agent conversations.
|
|
11
|
+
|
|
12
|
+
## ❌ Incorrect
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
// DON'T: Disable connection management for interactive apps
|
|
16
|
+
const session = await composio.create('user_123', {
|
|
17
|
+
toolkits: ['gmail'],
|
|
18
|
+
manageConnections: false // User can't authenticate!
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Agent tries to use Gmail but user isn't connected
|
|
22
|
+
// Tool execution will fail with no way to fix it
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
# DON'T: Disable connection management for interactive apps
|
|
27
|
+
session = composio.create(
|
|
28
|
+
user_id="user_123",
|
|
29
|
+
toolkits=["gmail"],
|
|
30
|
+
manage_connections=False # User can't authenticate!
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Agent tries to use Gmail but user isn't connected
|
|
34
|
+
# Tool execution will fail with no way to fix it
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## ✅ Correct
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// DO: Enable connection management for interactive apps
|
|
41
|
+
import { Composio } from '@composio/core';
|
|
42
|
+
|
|
43
|
+
const composio = new Composio();
|
|
44
|
+
const session = await composio.create('user_123', {
|
|
45
|
+
toolkits: ['gmail', 'slack'],
|
|
46
|
+
manageConnections: true // Users can authenticate in chat
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// When agent needs Gmail and user isn't connected:
|
|
50
|
+
// 1. Agent calls COMPOSIO_MANAGE_CONNECTIONS tool
|
|
51
|
+
// 2. User receives auth link in chat
|
|
52
|
+
// 3. User authenticates via OAuth
|
|
53
|
+
// 4. Agent continues with Gmail access
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
# DO: Enable connection management for interactive apps
|
|
58
|
+
from composio import Composio
|
|
59
|
+
|
|
60
|
+
composio = Composio()
|
|
61
|
+
session = composio.create(
|
|
62
|
+
user_id="user_123",
|
|
63
|
+
toolkits=["gmail", "slack"],
|
|
64
|
+
manage_connections=True # Users can authenticate in chat
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
# When agent needs Gmail and user isn't connected:
|
|
68
|
+
# 1. Agent calls COMPOSIO_MANAGE_CONNECTIONS tool
|
|
69
|
+
# 2. User receives auth link in chat
|
|
70
|
+
# 3. User authenticates via OAuth
|
|
71
|
+
# 4. Agent continues with Gmail access
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Advanced: Custom Callback URL
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
// Configure custom callback for OAuth flow
|
|
78
|
+
const session = await composio.create('user_123', {
|
|
79
|
+
toolkits: ['gmail'],
|
|
80
|
+
manageConnections: {
|
|
81
|
+
enable: true,
|
|
82
|
+
callbackUrl: 'https://your-app.com/auth/callback'
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
# Configure custom callback for OAuth flow
|
|
89
|
+
session = composio.create(
|
|
90
|
+
user_id="user_123",
|
|
91
|
+
toolkits=["gmail"],
|
|
92
|
+
manage_connections={
|
|
93
|
+
"enable": True,
|
|
94
|
+
"callback_url": "https://your-app.com/auth/callback"
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## How It Works
|
|
100
|
+
|
|
101
|
+
1. Agent detects missing connection for a toolkit
|
|
102
|
+
2. Agent automatically calls meta tool `COMPOSIO_MANAGE_CONNECTIONS`
|
|
103
|
+
3. Tool returns OAuth redirect URL
|
|
104
|
+
4. User authenticates via the URL
|
|
105
|
+
5. Agent resumes with access granted
|
|
106
|
+
|
|
107
|
+
## Reference
|
|
108
|
+
|
|
109
|
+
- [Connection Management](https://docs.composio.dev/sdk/typescript/api/tool-router#manageconnections)
|
|
110
|
+
- [Authorization Flow](https://docs.composio.dev/sdk/typescript/api/tool-router#authorization-flow)
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Configure Connection Management Properly
|
|
3
|
+
impact: CRITICAL
|
|
4
|
+
description: Understand manageConnections settings to control authentication behavior in Tool Router
|
|
5
|
+
tags: [authentication, tool-router, connections, configuration]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Configure Connection Management Properly
|
|
9
|
+
|
|
10
|
+
The `manageConnections` setting determines how Tool Router handles missing toolkit connections. Configure it correctly based on your application type.
|
|
11
|
+
|
|
12
|
+
## ❌ Incorrect
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
// DON'T: Disable connections in interactive applications
|
|
16
|
+
const session = await composio.create('user_123', {
|
|
17
|
+
toolkits: ['gmail'],
|
|
18
|
+
manageConnections: false // Tools will FAIL if user not connected!
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// When agent tries to use Gmail:
|
|
22
|
+
// ❌ Error: No connected account found for gmail
|
|
23
|
+
// User has no way to authenticate
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
# DON'T: Disable connections in interactive applications
|
|
28
|
+
session = composio.create(
|
|
29
|
+
user_id="user_123",
|
|
30
|
+
toolkits=["gmail"],
|
|
31
|
+
manage_connections=False # Tools will FAIL if user not connected!
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# When agent tries to use Gmail:
|
|
35
|
+
# ❌ Error: No connected account found for gmail
|
|
36
|
+
# User has no way to authenticate
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## ✅ Correct - Enable Auto Authentication (Default)
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
// DO: Enable connection management for interactive apps
|
|
43
|
+
import { Composio } from '@composio/core';
|
|
44
|
+
|
|
45
|
+
const composio = new Composio();
|
|
46
|
+
|
|
47
|
+
// Option 1: Use default (manageConnections: true)
|
|
48
|
+
const session1 = await composio.create('user_123', {
|
|
49
|
+
toolkits: ['gmail', 'slack']
|
|
50
|
+
// manageConnections defaults to true
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// Option 2: Explicitly enable with boolean
|
|
54
|
+
const session2 = await composio.create('user_123', {
|
|
55
|
+
toolkits: ['gmail'],
|
|
56
|
+
manageConnections: true // Agent can prompt for auth
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// How it works:
|
|
60
|
+
// 1. Agent tries to use Gmail tool
|
|
61
|
+
// 2. No connection exists
|
|
62
|
+
// 3. Agent calls COMPOSIO_MANAGE_CONNECTIONS meta tool
|
|
63
|
+
// 4. User receives auth link in chat
|
|
64
|
+
// 5. User authenticates
|
|
65
|
+
// 6. Agent continues with Gmail access
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
# DO: Enable connection management for interactive apps
|
|
70
|
+
from composio import Composio
|
|
71
|
+
|
|
72
|
+
composio = Composio()
|
|
73
|
+
|
|
74
|
+
# Option 1: Use default (manage_connections: True)
|
|
75
|
+
session1 = composio.create(
|
|
76
|
+
user_id="user_123",
|
|
77
|
+
toolkits=["gmail", "slack"]
|
|
78
|
+
# manage_connections defaults to True
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
# Option 2: Explicitly enable with boolean
|
|
82
|
+
session2 = composio.create(
|
|
83
|
+
user_id="user_123",
|
|
84
|
+
toolkits=["gmail"],
|
|
85
|
+
manage_connections=True # Agent can prompt for auth
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
# How it works:
|
|
89
|
+
# 1. Agent tries to use Gmail tool
|
|
90
|
+
# 2. No connection exists
|
|
91
|
+
# 3. Agent calls COMPOSIO_MANAGE_CONNECTIONS meta tool
|
|
92
|
+
# 4. User receives auth link in chat
|
|
93
|
+
# 5. User authenticates
|
|
94
|
+
# 6. Agent continues with Gmail access
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## ✅ Correct - Advanced Configuration
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
// DO: Configure with object for fine-grained control
|
|
101
|
+
const session = await composio.create('user_123', {
|
|
102
|
+
toolkits: ['gmail', 'slack'],
|
|
103
|
+
manageConnections: {
|
|
104
|
+
enable: true, // Allow in-chat authentication
|
|
105
|
+
callbackUrl: 'https://your-app.com/auth/callback', // Custom OAuth callback
|
|
106
|
+
waitForConnections: true // Wait for user to complete auth before proceeding
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
// With waitForConnections: true
|
|
111
|
+
// Session creation waits until user completes authentication
|
|
112
|
+
// Perfect for workflows where connections are required upfront
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
# DO: Configure with object for fine-grained control
|
|
117
|
+
session = composio.create(
|
|
118
|
+
user_id="user_123",
|
|
119
|
+
toolkits=["gmail", "slack"],
|
|
120
|
+
manage_connections={
|
|
121
|
+
"enable": True, # Allow in-chat authentication
|
|
122
|
+
"callback_url": "https://your-app.com/auth/callback", # Custom OAuth callback
|
|
123
|
+
"wait_for_connections": True # Wait for user to complete auth before proceeding
|
|
124
|
+
}
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# With wait_for_connections: True
|
|
128
|
+
# Session creation waits until user completes authentication
|
|
129
|
+
# Perfect for workflows where connections are required upfront
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Configuration Options
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
manageConnections: boolean | {
|
|
136
|
+
enable?: boolean; // Enable/disable connection management (default: true)
|
|
137
|
+
callbackUrl?: string; // Custom OAuth callback URL
|
|
138
|
+
waitForConnections?: boolean; // Block until connections complete (default: false)
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## When to Use Each Setting
|
|
143
|
+
|
|
144
|
+
**`manageConnections: true` (Default)**
|
|
145
|
+
- Interactive chat applications
|
|
146
|
+
- User can authenticate on-demand
|
|
147
|
+
- Flexible, user-friendly experience
|
|
148
|
+
|
|
149
|
+
**`manageConnections: { waitForConnections: true }`**
|
|
150
|
+
- Workflows requiring connections upfront
|
|
151
|
+
- Onboarding flows
|
|
152
|
+
- Critical operations needing guaranteed access
|
|
153
|
+
|
|
154
|
+
**`manageConnections: false`**
|
|
155
|
+
- Backend automation (no user interaction)
|
|
156
|
+
- Pre-connected accounts only
|
|
157
|
+
- System-to-system integrations
|
|
158
|
+
- ⚠️ Tools WILL FAIL if connections are missing
|
|
159
|
+
|
|
160
|
+
## Key Insight
|
|
161
|
+
|
|
162
|
+
With `manageConnections: true`, **you never need to check connections before agent execution**. The agent intelligently prompts users for authentication only when needed. This creates the smoothest user experience.
|
|
163
|
+
|
|
164
|
+
## Reference
|
|
165
|
+
|
|
166
|
+
- [Connection Management](https://docs.composio.dev/sdk/typescript/api/tool-router#manageconnections)
|
|
167
|
+
- [Wait for Connections](https://docs.composio.dev/sdk/typescript/api/tool-router#wait-for-connections)
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Use Manual Authorization for Explicit Control
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
description: Control authentication flows explicitly using session.authorize() for onboarding and settings pages
|
|
5
|
+
tags: [authentication, tool-router, authorization, oauth]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Use Manual Authorization for Explicit Control
|
|
9
|
+
|
|
10
|
+
Use `session.authorize()` to explicitly control when users authenticate toolkits - perfect for onboarding flows, settings pages, or when you want authentication before starting agent workflows.
|
|
11
|
+
|
|
12
|
+
## ❌ Incorrect
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
// DON'T: Mix auto and manual auth without clear purpose
|
|
16
|
+
const session = await composio.create('user_123', {
|
|
17
|
+
toolkits: ['gmail'],
|
|
18
|
+
manageConnections: true // Agent handles auth
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Then immediately force manual auth (redundant)
|
|
22
|
+
await session.authorize('gmail');
|
|
23
|
+
// Agent could have handled this automatically
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
# DON'T: Mix auto and manual auth without clear purpose
|
|
28
|
+
session = composio.create(
|
|
29
|
+
user_id="user_123",
|
|
30
|
+
toolkits=["gmail"],
|
|
31
|
+
manage_connections=True # Agent handles auth
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Then immediately force manual auth (redundant)
|
|
35
|
+
session.authorize("gmail")
|
|
36
|
+
# Agent could have handled this automatically
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## ✅ Correct - Onboarding Flow
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
// DO: Use manual auth for onboarding before agent starts
|
|
43
|
+
import { Composio } from '@composio/core';
|
|
44
|
+
|
|
45
|
+
const composio = new Composio();
|
|
46
|
+
|
|
47
|
+
// Step 1: Create session for onboarding
|
|
48
|
+
const session = await composio.create('user_123', {
|
|
49
|
+
toolkits: ['gmail', 'slack']
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// Step 2: Explicitly connect required toolkits during onboarding
|
|
53
|
+
async function onboardUser() {
|
|
54
|
+
const requiredToolkits = ['gmail', 'slack'];
|
|
55
|
+
|
|
56
|
+
for (const toolkit of requiredToolkits) {
|
|
57
|
+
const connectionRequest = await session.authorize(toolkit, {
|
|
58
|
+
callbackUrl: 'https://your-app.com/onboarding/callback'
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
console.log(`Connect ${toolkit}:`, connectionRequest.redirectUrl);
|
|
62
|
+
|
|
63
|
+
// Wait for user to complete each connection
|
|
64
|
+
await connectionRequest.waitForConnection();
|
|
65
|
+
console.log(`✓ ${toolkit} connected`);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
console.log('Onboarding complete! All toolkits connected.');
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
# DO: Use manual auth for onboarding before agent starts
|
|
74
|
+
from composio import Composio
|
|
75
|
+
|
|
76
|
+
composio = Composio()
|
|
77
|
+
|
|
78
|
+
# Step 1: Create session for onboarding
|
|
79
|
+
session = composio.create(
|
|
80
|
+
user_id="user_123",
|
|
81
|
+
toolkits=["gmail", "slack"]
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
# Step 2: Explicitly connect required toolkits during onboarding
|
|
85
|
+
async def onboard_user():
|
|
86
|
+
required_toolkits = ["gmail", "slack"]
|
|
87
|
+
|
|
88
|
+
for toolkit in required_toolkits:
|
|
89
|
+
connection_request = session.authorize(
|
|
90
|
+
toolkit,
|
|
91
|
+
callback_url="https://your-app.com/onboarding/callback"
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
print(f"Connect {toolkit}: {connection_request.redirect_url}")
|
|
95
|
+
|
|
96
|
+
# Wait for user to complete each connection
|
|
97
|
+
connection_request.wait_for_connection()
|
|
98
|
+
print(f"✓ {toolkit} connected")
|
|
99
|
+
|
|
100
|
+
print("Onboarding complete! All toolkits connected.")
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## ✅ Correct - Settings Page
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// DO: Manual auth for connection management in settings
|
|
107
|
+
async function settingsPageHandler(userId: string, toolkit: string) {
|
|
108
|
+
const session = await composio.create(userId, {
|
|
109
|
+
toolkits: [toolkit]
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// User clicked "Connect" button in settings
|
|
113
|
+
const connectionRequest = await session.authorize(toolkit, {
|
|
114
|
+
callbackUrl: 'https://your-app.com/settings/callback'
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// Redirect user to OAuth flow
|
|
118
|
+
return { redirectUrl: connectionRequest.redirectUrl };
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
# DO: Manual auth for connection management in settings
|
|
124
|
+
async def settings_page_handler(user_id: str, toolkit: str):
|
|
125
|
+
session = composio.create(
|
|
126
|
+
user_id=user_id,
|
|
127
|
+
toolkits=[toolkit]
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
# User clicked "Connect" button in settings
|
|
131
|
+
connection_request = session.authorize(
|
|
132
|
+
toolkit,
|
|
133
|
+
callback_url="https://your-app.com/settings/callback"
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
# Redirect user to OAuth flow
|
|
137
|
+
return {"redirect_url": connection_request.redirect_url}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## When to Use Manual Authorization
|
|
141
|
+
|
|
142
|
+
**Use `session.authorize()` for:**
|
|
143
|
+
- **Onboarding flows**: Connect required toolkits before user can proceed
|
|
144
|
+
- **Settings pages**: User explicitly manages connections via UI
|
|
145
|
+
- **Pre-authentication**: Ensure critical connections exist before starting workflows
|
|
146
|
+
- **Re-authorization**: Handle expired or revoked connections
|
|
147
|
+
|
|
148
|
+
**Use `manageConnections: true` (auto) for:**
|
|
149
|
+
- **Interactive agents**: Let agent prompt for auth when needed
|
|
150
|
+
- **Flexible workflows**: User may or may not have connections
|
|
151
|
+
- **Just-in-time auth**: Only authenticate when toolkit is actually used
|
|
152
|
+
|
|
153
|
+
## Key Difference
|
|
154
|
+
|
|
155
|
+
- **Manual auth** = You control WHEN authentication happens
|
|
156
|
+
- **Auto auth** = Agent handles authentication ON-DEMAND when tools need it
|
|
157
|
+
|
|
158
|
+
## Reference
|
|
159
|
+
|
|
160
|
+
- [session.authorize()](https://docs.composio.dev/sdk/typescript/api/tool-router#authorize)
|
|
161
|
+
- [Authorization Flow](https://docs.composio.dev/sdk/typescript/api/tool-router#authorization-flow)
|