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,308 @@
|
|
|
1
|
+
# Relation Queries
|
|
2
|
+
|
|
3
|
+
Query and modify related records.
|
|
4
|
+
|
|
5
|
+
## Include Relations
|
|
6
|
+
|
|
7
|
+
Load related records:
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const user = await prisma.user.findUnique({
|
|
11
|
+
where: { id: 1 },
|
|
12
|
+
include: {
|
|
13
|
+
posts: true,
|
|
14
|
+
profile: true
|
|
15
|
+
}
|
|
16
|
+
})
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Filtered include
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
const user = await prisma.user.findUnique({
|
|
23
|
+
where: { id: 1 },
|
|
24
|
+
include: {
|
|
25
|
+
posts: {
|
|
26
|
+
where: { published: true },
|
|
27
|
+
orderBy: { createdAt: 'desc' },
|
|
28
|
+
take: 5,
|
|
29
|
+
select: { id: true, title: true }
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Nested include
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
const user = await prisma.user.findUnique({
|
|
39
|
+
where: { id: 1 },
|
|
40
|
+
include: {
|
|
41
|
+
posts: {
|
|
42
|
+
include: {
|
|
43
|
+
comments: {
|
|
44
|
+
include: { author: true }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Select Relations
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
const user = await prisma.user.findUnique({
|
|
56
|
+
where: { id: 1 },
|
|
57
|
+
select: {
|
|
58
|
+
name: true,
|
|
59
|
+
posts: {
|
|
60
|
+
select: { title: true }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Nested Writes
|
|
67
|
+
|
|
68
|
+
### Create with relations
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
const user = await prisma.user.create({
|
|
72
|
+
data: {
|
|
73
|
+
email: 'alice@prisma.io',
|
|
74
|
+
posts: {
|
|
75
|
+
create: [
|
|
76
|
+
{ title: 'Post 1' },
|
|
77
|
+
{ title: 'Post 2' }
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
profile: {
|
|
81
|
+
create: { bio: 'Hello!' }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Create or connect
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
const post = await prisma.post.create({
|
|
91
|
+
data: {
|
|
92
|
+
title: 'New Post',
|
|
93
|
+
author: {
|
|
94
|
+
connectOrCreate: {
|
|
95
|
+
where: { email: 'alice@prisma.io' },
|
|
96
|
+
create: { email: 'alice@prisma.io', name: 'Alice' }
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Connect existing
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
const post = await prisma.post.create({
|
|
107
|
+
data: {
|
|
108
|
+
title: 'New Post',
|
|
109
|
+
author: {
|
|
110
|
+
connect: { id: 1 }
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
// Shorthand for foreign key
|
|
116
|
+
const post = await prisma.post.create({
|
|
117
|
+
data: {
|
|
118
|
+
title: 'New Post',
|
|
119
|
+
authorId: 1
|
|
120
|
+
}
|
|
121
|
+
})
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Update Relations
|
|
125
|
+
|
|
126
|
+
### Update related records
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
const user = await prisma.user.update({
|
|
130
|
+
where: { id: 1 },
|
|
131
|
+
data: {
|
|
132
|
+
posts: {
|
|
133
|
+
update: {
|
|
134
|
+
where: { id: 1 },
|
|
135
|
+
data: { title: 'Updated Title' }
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
})
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Update many related
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
const user = await prisma.user.update({
|
|
146
|
+
where: { id: 1 },
|
|
147
|
+
data: {
|
|
148
|
+
posts: {
|
|
149
|
+
updateMany: {
|
|
150
|
+
where: { published: false },
|
|
151
|
+
data: { published: true }
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Upsert related
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
const user = await prisma.user.update({
|
|
162
|
+
where: { id: 1 },
|
|
163
|
+
data: {
|
|
164
|
+
profile: {
|
|
165
|
+
upsert: {
|
|
166
|
+
create: { bio: 'New bio' },
|
|
167
|
+
update: { bio: 'Updated bio' }
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
})
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Disconnect
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// 1-to-1 optional
|
|
178
|
+
const user = await prisma.user.update({
|
|
179
|
+
where: { id: 1 },
|
|
180
|
+
data: {
|
|
181
|
+
profile: { disconnect: true }
|
|
182
|
+
}
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
// Many-to-many
|
|
186
|
+
const post = await prisma.post.update({
|
|
187
|
+
where: { id: 1 },
|
|
188
|
+
data: {
|
|
189
|
+
tags: {
|
|
190
|
+
disconnect: [{ id: 1 }, { id: 2 }]
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
})
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Delete related
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
const user = await prisma.user.update({
|
|
200
|
+
where: { id: 1 },
|
|
201
|
+
data: {
|
|
202
|
+
posts: {
|
|
203
|
+
delete: { id: 1 }
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
})
|
|
207
|
+
|
|
208
|
+
// Delete many
|
|
209
|
+
const user = await prisma.user.update({
|
|
210
|
+
where: { id: 1 },
|
|
211
|
+
data: {
|
|
212
|
+
posts: {
|
|
213
|
+
deleteMany: { published: false }
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
})
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Set (replace all)
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
// Replace all related records
|
|
223
|
+
const post = await prisma.post.update({
|
|
224
|
+
where: { id: 1 },
|
|
225
|
+
data: {
|
|
226
|
+
tags: {
|
|
227
|
+
set: [{ id: 1 }, { id: 2 }]
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
})
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Relation Filters
|
|
234
|
+
|
|
235
|
+
### some
|
|
236
|
+
|
|
237
|
+
At least one matches:
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
const users = await prisma.user.findMany({
|
|
241
|
+
where: {
|
|
242
|
+
posts: { some: { published: true } }
|
|
243
|
+
}
|
|
244
|
+
})
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### every
|
|
248
|
+
|
|
249
|
+
All match:
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
const users = await prisma.user.findMany({
|
|
253
|
+
where: {
|
|
254
|
+
posts: { every: { published: true } }
|
|
255
|
+
}
|
|
256
|
+
})
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### none
|
|
260
|
+
|
|
261
|
+
None match:
|
|
262
|
+
|
|
263
|
+
```typescript
|
|
264
|
+
const users = await prisma.user.findMany({
|
|
265
|
+
where: {
|
|
266
|
+
posts: { none: { published: true } }
|
|
267
|
+
}
|
|
268
|
+
})
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### is / isNot (1-to-1)
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
const users = await prisma.user.findMany({
|
|
275
|
+
where: {
|
|
276
|
+
profile: { is: { country: 'USA' } }
|
|
277
|
+
}
|
|
278
|
+
})
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Count Relations
|
|
282
|
+
|
|
283
|
+
```typescript
|
|
284
|
+
const users = await prisma.user.findMany({
|
|
285
|
+
select: {
|
|
286
|
+
name: true,
|
|
287
|
+
_count: {
|
|
288
|
+
select: { posts: true, followers: true }
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
})
|
|
292
|
+
// { name: 'Alice', _count: { posts: 5, followers: 100 } }
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Filter counted relations
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
const users = await prisma.user.findMany({
|
|
299
|
+
select: {
|
|
300
|
+
name: true,
|
|
301
|
+
_count: {
|
|
302
|
+
select: {
|
|
303
|
+
posts: { where: { published: true } }
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
})
|
|
308
|
+
```
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Transactions
|
|
2
|
+
|
|
3
|
+
Execute multiple operations atomically.
|
|
4
|
+
|
|
5
|
+
## Sequential Transactions
|
|
6
|
+
|
|
7
|
+
Array of operations executed in order:
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const [user, post] = await prisma.$transaction([
|
|
11
|
+
prisma.user.create({ data: { email: 'alice@prisma.io' } }),
|
|
12
|
+
prisma.post.create({ data: { title: 'Hello', authorId: 1 } })
|
|
13
|
+
])
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### All or nothing
|
|
17
|
+
|
|
18
|
+
If any operation fails, all are rolled back:
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
try {
|
|
22
|
+
await prisma.$transaction([
|
|
23
|
+
prisma.user.create({ data: { email: 'alice@prisma.io' } }),
|
|
24
|
+
prisma.user.create({ data: { email: 'alice@prisma.io' } }) // Duplicate!
|
|
25
|
+
])
|
|
26
|
+
} catch (e) {
|
|
27
|
+
// Both operations rolled back
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Interactive Transactions
|
|
32
|
+
|
|
33
|
+
For complex logic and dependent operations:
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
await prisma.$transaction(async (tx) => {
|
|
37
|
+
// Decrement sender balance
|
|
38
|
+
const sender = await tx.account.update({
|
|
39
|
+
where: { id: senderId },
|
|
40
|
+
data: { balance: { decrement: amount } }
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
// Check balance
|
|
44
|
+
if (sender.balance < 0) {
|
|
45
|
+
throw new Error('Insufficient funds')
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Increment recipient balance
|
|
49
|
+
await tx.account.update({
|
|
50
|
+
where: { id: recipientId },
|
|
51
|
+
data: { balance: { increment: amount } }
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Transaction options
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
await prisma.$transaction(
|
|
60
|
+
async (tx) => {
|
|
61
|
+
// operations
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
maxWait: 5000, // Max wait to acquire lock (ms)
|
|
65
|
+
timeout: 10000, // Max transaction duration (ms)
|
|
66
|
+
isolationLevel: 'Serializable' // Isolation level
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Isolation levels
|
|
72
|
+
|
|
73
|
+
| Level | Description |
|
|
74
|
+
|-------|-------------|
|
|
75
|
+
| `ReadUncommitted` | Lowest isolation, can read uncommitted changes |
|
|
76
|
+
| `ReadCommitted` | Only read committed changes |
|
|
77
|
+
| `RepeatableRead` | Consistent reads within transaction |
|
|
78
|
+
| `Serializable` | Highest isolation, serialized execution |
|
|
79
|
+
|
|
80
|
+
## Nested Writes
|
|
81
|
+
|
|
82
|
+
Automatic transactions for nested operations:
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
// This is automatically a transaction
|
|
86
|
+
const user = await prisma.user.create({
|
|
87
|
+
data: {
|
|
88
|
+
email: 'alice@prisma.io',
|
|
89
|
+
posts: {
|
|
90
|
+
create: [
|
|
91
|
+
{ title: 'Post 1' },
|
|
92
|
+
{ title: 'Post 2' }
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
profile: {
|
|
96
|
+
create: { bio: 'Hello!' }
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Transaction Client
|
|
103
|
+
|
|
104
|
+
The `tx` parameter is a Prisma Client scoped to the transaction:
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
await prisma.$transaction(async (tx) => {
|
|
108
|
+
// Use tx instead of prisma
|
|
109
|
+
await tx.user.create({ ... })
|
|
110
|
+
await tx.post.create({ ... })
|
|
111
|
+
|
|
112
|
+
// Can call methods
|
|
113
|
+
const count = await tx.user.count()
|
|
114
|
+
})
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## OrThrow in Transactions
|
|
118
|
+
|
|
119
|
+
Use with interactive transactions:
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
await prisma.$transaction(async (tx) => {
|
|
123
|
+
// If not found, throws and rolls back entire transaction
|
|
124
|
+
const user = await tx.user.findUniqueOrThrow({
|
|
125
|
+
where: { id: 1 }
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
await tx.post.create({
|
|
129
|
+
data: { title: 'New Post', authorId: user.id }
|
|
130
|
+
})
|
|
131
|
+
})
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Best Practices
|
|
135
|
+
|
|
136
|
+
### Keep transactions short
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
// Good - only DB operations in transaction
|
|
140
|
+
const data = prepareData() // Outside transaction
|
|
141
|
+
await prisma.$transaction(async (tx) => {
|
|
142
|
+
await tx.user.create({ data })
|
|
143
|
+
})
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Handle errors
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
try {
|
|
150
|
+
await prisma.$transaction(async (tx) => {
|
|
151
|
+
// operations
|
|
152
|
+
})
|
|
153
|
+
} catch (e) {
|
|
154
|
+
if (e.code === 'P2002') {
|
|
155
|
+
// Handle unique constraint violation
|
|
156
|
+
}
|
|
157
|
+
throw e
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Use appropriate isolation
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
// Default is fine for most cases
|
|
165
|
+
await prisma.$transaction(async (tx) => {
|
|
166
|
+
// operations
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
// Use Serializable for strict consistency
|
|
170
|
+
await prisma.$transaction(
|
|
171
|
+
async (tx) => { /* operations */ },
|
|
172
|
+
{ isolationLevel: 'Serializable' }
|
|
173
|
+
)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Sequential vs Interactive
|
|
177
|
+
|
|
178
|
+
| Feature | Sequential | Interactive |
|
|
179
|
+
|---------|------------|-------------|
|
|
180
|
+
| Syntax | Array | Async function |
|
|
181
|
+
| Dependent ops | No | Yes |
|
|
182
|
+
| Conditional logic | No | Yes |
|
|
183
|
+
| Performance | Better | More flexible |
|
|
184
|
+
| Use case | Simple batch | Complex logic |
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prisma-database-setup
|
|
3
|
+
description: Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: prisma
|
|
7
|
+
version: "7.6.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Prisma Database Setup
|
|
11
|
+
|
|
12
|
+
Comprehensive guides for configuring Prisma ORM with various database providers.
|
|
13
|
+
|
|
14
|
+
## When to Apply
|
|
15
|
+
|
|
16
|
+
Reference this skill when:
|
|
17
|
+
- Initializing a new Prisma project
|
|
18
|
+
- Switching database providers
|
|
19
|
+
- Configuring connection strings and environment variables
|
|
20
|
+
- Troubleshooting database connection issues
|
|
21
|
+
- Setting up database-specific features
|
|
22
|
+
- Generating and instantiating Prisma Client
|
|
23
|
+
|
|
24
|
+
## Rule Categories by Priority
|
|
25
|
+
|
|
26
|
+
| Priority | Category | Impact | Prefix |
|
|
27
|
+
|----------|----------|--------|--------|
|
|
28
|
+
| 1 | Provider Guides | CRITICAL | provider names |
|
|
29
|
+
| 2 | Prisma Postgres | HIGH | `prisma-postgres` |
|
|
30
|
+
| 3 | Client Setup | CRITICAL | `prisma-client-setup` |
|
|
31
|
+
|
|
32
|
+
## System Prerequisites
|
|
33
|
+
|
|
34
|
+
- **Node.js 20.19.0+**
|
|
35
|
+
- **TypeScript 5.4.0+**
|
|
36
|
+
|
|
37
|
+
## Bun Runtime
|
|
38
|
+
|
|
39
|
+
If you're using Bun, run Prisma CLI commands with `bunx --bun prisma ...` so Prisma uses the Bun runtime instead of falling back to Node.js.
|
|
40
|
+
|
|
41
|
+
## Supported Databases
|
|
42
|
+
|
|
43
|
+
| Database | Provider String | Notes |
|
|
44
|
+
|----------|-----------------|-------|
|
|
45
|
+
| PostgreSQL | `postgresql` | Default, full feature support |
|
|
46
|
+
| MySQL | `mysql` | Widespread support, some JSON diffs |
|
|
47
|
+
| SQLite | `sqlite` | Local file-based, no enum/scalar lists |
|
|
48
|
+
| MongoDB | `mongodb` | Mongo-specific workflow; do not apply SQL driver-adapter guidance |
|
|
49
|
+
| SQL Server | `sqlserver` | Microsoft ecosystem |
|
|
50
|
+
| CockroachDB | `cockroachdb` | Distributed SQL, Postgres-compatible |
|
|
51
|
+
| Prisma Postgres | `postgresql` | Managed serverless database |
|
|
52
|
+
|
|
53
|
+
## Configuration Files
|
|
54
|
+
|
|
55
|
+
Your configuration shape depends on the provider and Prisma major version:
|
|
56
|
+
|
|
57
|
+
1. **All providers** use **`prisma/schema.prisma`**.
|
|
58
|
+
2. **Prisma 7 SQL setups** typically use **`prisma.config.ts`** for datasource URLs.
|
|
59
|
+
3. **MongoDB projects should stay on Prisma 6.x**, keep `url = env("DATABASE_URL")` in the schema, and continue using the classic MongoDB setup.
|
|
60
|
+
|
|
61
|
+
## Driver Adapters
|
|
62
|
+
|
|
63
|
+
The standard SQL workflow uses a driver adapter. Choose the adapter and driver for your database and pass the adapter to `PrismaClient`.
|
|
64
|
+
|
|
65
|
+
| Database | Adapter | JS Driver |
|
|
66
|
+
|----------|---------|-----------|
|
|
67
|
+
| PostgreSQL | `@prisma/adapter-pg` | `pg` |
|
|
68
|
+
| CockroachDB | `@prisma/adapter-pg` | `pg` |
|
|
69
|
+
| Prisma Postgres (Node.js) | `@prisma/adapter-pg` | `pg` |
|
|
70
|
+
| Prisma Postgres (edge/serverless) | `@prisma/adapter-ppg` | `@prisma/ppg` |
|
|
71
|
+
| MySQL / MariaDB | `@prisma/adapter-mariadb` | `mariadb` |
|
|
72
|
+
| SQLite | `@prisma/adapter-better-sqlite3` | `better-sqlite3` |
|
|
73
|
+
| SQLite (Turso/LibSQL) | `@prisma/adapter-libsql` | `@libsql/client` |
|
|
74
|
+
| SQL Server | `@prisma/adapter-mssql` | `node-mssql` |
|
|
75
|
+
|
|
76
|
+
MongoDB should not follow the Prisma 7 SQL adapter workflow. Use the latest Prisma 6.x release for MongoDB projects and do not install a SQL `@prisma/adapter-*` package for it.
|
|
77
|
+
|
|
78
|
+
Example (PostgreSQL):
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import 'dotenv/config'
|
|
82
|
+
import { PrismaClient } from '../generated/client'
|
|
83
|
+
import { PrismaPg } from '@prisma/adapter-pg'
|
|
84
|
+
|
|
85
|
+
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
|
|
86
|
+
const prisma = new PrismaClient({ adapter })
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Prisma Client Setup (Required)
|
|
90
|
+
|
|
91
|
+
Prisma Client must be installed and generated for any database.
|
|
92
|
+
|
|
93
|
+
1. Install Prisma CLI and Prisma Client:
|
|
94
|
+
```bash
|
|
95
|
+
npm install prisma --save-dev
|
|
96
|
+
npm install @prisma/client
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
1. Add a generator block (`prisma-client` requires an explicit output path):
|
|
100
|
+
```prisma
|
|
101
|
+
generator client {
|
|
102
|
+
provider = "prisma-client"
|
|
103
|
+
output = "../generated"
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
1. Generate Prisma Client:
|
|
108
|
+
```bash
|
|
109
|
+
npx prisma generate
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
1. For SQL providers, instantiate Prisma Client with the database-specific driver adapter:
|
|
113
|
+
```typescript
|
|
114
|
+
import { PrismaClient } from '../generated/client'
|
|
115
|
+
import { PrismaPg } from '@prisma/adapter-pg'
|
|
116
|
+
|
|
117
|
+
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
|
|
118
|
+
const prisma = new PrismaClient({ adapter })
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
1. Re-run `prisma generate` after every schema change.
|
|
122
|
+
|
|
123
|
+
## Quick Reference
|
|
124
|
+
|
|
125
|
+
### PostgreSQL
|
|
126
|
+
```prisma
|
|
127
|
+
datasource db {
|
|
128
|
+
provider = "postgresql"
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
generator client {
|
|
132
|
+
provider = "prisma-client"
|
|
133
|
+
output = "../generated"
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### MySQL
|
|
138
|
+
```prisma
|
|
139
|
+
datasource db {
|
|
140
|
+
provider = "mysql"
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
generator client {
|
|
144
|
+
provider = "prisma-client"
|
|
145
|
+
output = "../generated"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### SQLite
|
|
150
|
+
```prisma
|
|
151
|
+
datasource db {
|
|
152
|
+
provider = "sqlite"
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
generator client {
|
|
156
|
+
provider = "prisma-client"
|
|
157
|
+
output = "../generated"
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### MongoDB
|
|
162
|
+
```prisma
|
|
163
|
+
datasource db {
|
|
164
|
+
provider = "mongodb"
|
|
165
|
+
url = env("DATABASE_URL")
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
generator client {
|
|
169
|
+
provider = "prisma-client-js"
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
For MongoDB, stay on the latest Prisma 6.x line and keep the connection URL in `schema.prisma`. Do not move a MongoDB project to the Prisma 7 SQL adapter setup.
|
|
174
|
+
|
|
175
|
+
## Rule Files
|
|
176
|
+
|
|
177
|
+
See individual rule files for detailed setup instructions:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
references/postgresql.md
|
|
181
|
+
references/mysql.md
|
|
182
|
+
references/sqlite.md
|
|
183
|
+
references/mongodb.md
|
|
184
|
+
references/sqlserver.md
|
|
185
|
+
references/cockroachdb.md
|
|
186
|
+
references/prisma-postgres.md
|
|
187
|
+
references/prisma-client-setup.md
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## How to Use
|
|
191
|
+
|
|
192
|
+
Choose the provider reference file for your database, then apply `references/prisma-client-setup.md` to complete client generation and adapter setup. For MongoDB, use `references/mongodb.md` instead of copying the SQL adapter examples or Prisma 7 config pattern.
|