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.
Files changed (441) hide show
  1. package/.agents/skills/agent-browser/SKILL.md +55 -0
  2. package/.agents/skills/agentmail/SKILL.md +282 -0
  3. package/.agents/skills/agentmail/references/webhooks.md +220 -0
  4. package/.agents/skills/agentmail/references/websockets.md +263 -0
  5. package/.agents/skills/ai-elements/SKILL.md +160 -0
  6. package/.agents/skills/ai-elements/references/agent.md +134 -0
  7. package/.agents/skills/ai-elements/references/artifact.md +84 -0
  8. package/.agents/skills/ai-elements/references/attachments.md +190 -0
  9. package/.agents/skills/ai-elements/references/audio-player.md +134 -0
  10. package/.agents/skills/ai-elements/references/canvas.md +34 -0
  11. package/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
  12. package/.agents/skills/ai-elements/references/checkpoint.md +183 -0
  13. package/.agents/skills/ai-elements/references/code-block.md +170 -0
  14. package/.agents/skills/ai-elements/references/commit.md +177 -0
  15. package/.agents/skills/ai-elements/references/confirmation.md +262 -0
  16. package/.agents/skills/ai-elements/references/connection.md +34 -0
  17. package/.agents/skills/ai-elements/references/context.md +126 -0
  18. package/.agents/skills/ai-elements/references/controls.md +32 -0
  19. package/.agents/skills/ai-elements/references/conversation.md +224 -0
  20. package/.agents/skills/ai-elements/references/edge.md +52 -0
  21. package/.agents/skills/ai-elements/references/environment-variables.md +102 -0
  22. package/.agents/skills/ai-elements/references/file-tree.md +72 -0
  23. package/.agents/skills/ai-elements/references/image.md +146 -0
  24. package/.agents/skills/ai-elements/references/inline-citation.md +299 -0
  25. package/.agents/skills/ai-elements/references/jsx-preview.md +104 -0
  26. package/.agents/skills/ai-elements/references/message.md +237 -0
  27. package/.agents/skills/ai-elements/references/mic-selector.md +189 -0
  28. package/.agents/skills/ai-elements/references/model-selector.md +112 -0
  29. package/.agents/skills/ai-elements/references/node.md +73 -0
  30. package/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
  31. package/.agents/skills/ai-elements/references/package-info.md +95 -0
  32. package/.agents/skills/ai-elements/references/panel.md +33 -0
  33. package/.agents/skills/ai-elements/references/persona.md +166 -0
  34. package/.agents/skills/ai-elements/references/plan.md +79 -0
  35. package/.agents/skills/ai-elements/references/prompt-input.md +579 -0
  36. package/.agents/skills/ai-elements/references/queue.md +172 -0
  37. package/.agents/skills/ai-elements/references/reasoning.md +238 -0
  38. package/.agents/skills/ai-elements/references/sandbox.md +129 -0
  39. package/.agents/skills/ai-elements/references/schema-display.md +102 -0
  40. package/.agents/skills/ai-elements/references/shimmer.md +48 -0
  41. package/.agents/skills/ai-elements/references/snippet.md +64 -0
  42. package/.agents/skills/ai-elements/references/sources.md +209 -0
  43. package/.agents/skills/ai-elements/references/speech-input.md +163 -0
  44. package/.agents/skills/ai-elements/references/stack-trace.md +224 -0
  45. package/.agents/skills/ai-elements/references/suggestion.md +124 -0
  46. package/.agents/skills/ai-elements/references/task.md +222 -0
  47. package/.agents/skills/ai-elements/references/terminal.md +103 -0
  48. package/.agents/skills/ai-elements/references/test-results.md +157 -0
  49. package/.agents/skills/ai-elements/references/tool.md +285 -0
  50. package/.agents/skills/ai-elements/references/toolbar.md +32 -0
  51. package/.agents/skills/ai-elements/references/transcription.md +120 -0
  52. package/.agents/skills/ai-elements/references/voice-selector.md +241 -0
  53. package/.agents/skills/ai-elements/references/web-preview.md +200 -0
  54. package/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
  55. package/.agents/skills/ai-elements/scripts/artifact.tsx +127 -0
  56. package/.agents/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
  57. package/.agents/skills/ai-elements/scripts/attachments-list.tsx +95 -0
  58. package/.agents/skills/ai-elements/scripts/attachments.tsx +85 -0
  59. package/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
  60. package/.agents/skills/ai-elements/scripts/audio-player.tsx +68 -0
  61. package/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
  62. package/.agents/skills/ai-elements/scripts/checkpoint.tsx +110 -0
  63. package/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
  64. package/.agents/skills/ai-elements/scripts/code-block.tsx +120 -0
  65. package/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
  66. package/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
  67. package/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
  68. package/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
  69. package/.agents/skills/ai-elements/scripts/confirmation.tsx +55 -0
  70. package/.agents/skills/ai-elements/scripts/context.tsx +45 -0
  71. package/.agents/skills/ai-elements/scripts/conversation.tsx +177 -0
  72. package/.agents/skills/ai-elements/scripts/environment-variables.tsx +62 -0
  73. package/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
  74. package/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
  75. package/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
  76. package/.agents/skills/ai-elements/scripts/file-tree.tsx +42 -0
  77. package/.agents/skills/ai-elements/scripts/image.tsx +20 -0
  78. package/.agents/skills/ai-elements/scripts/inline-citation.tsx +97 -0
  79. package/.agents/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
  80. package/.agents/skills/ai-elements/scripts/message.tsx +365 -0
  81. package/.agents/skills/ai-elements/scripts/mic-selector.tsx +49 -0
  82. package/.agents/skills/ai-elements/scripts/model-selector.tsx +365 -0
  83. package/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
  84. package/.agents/skills/ai-elements/scripts/package-info.tsx +51 -0
  85. package/.agents/skills/ai-elements/scripts/persona-command.tsx +110 -0
  86. package/.agents/skills/ai-elements/scripts/persona-glint.tsx +110 -0
  87. package/.agents/skills/ai-elements/scripts/persona-halo.tsx +110 -0
  88. package/.agents/skills/ai-elements/scripts/persona-mana.tsx +110 -0
  89. package/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
  90. package/.agents/skills/ai-elements/scripts/persona-opal.tsx +110 -0
  91. package/.agents/skills/ai-elements/scripts/plan.tsx +65 -0
  92. package/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
  93. package/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
  94. package/.agents/skills/ai-elements/scripts/prompt-input.tsx +267 -0
  95. package/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
  96. package/.agents/skills/ai-elements/scripts/queue.tsx +295 -0
  97. package/.agents/skills/ai-elements/scripts/reasoning.tsx +71 -0
  98. package/.agents/skills/ai-elements/scripts/sandbox.tsx +178 -0
  99. package/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
  100. package/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
  101. package/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
  102. package/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
  103. package/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
  104. package/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
  105. package/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
  106. package/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
  107. package/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
  108. package/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
  109. package/.agents/skills/ai-elements/scripts/sources-custom.tsx +39 -0
  110. package/.agents/skills/ai-elements/scripts/sources.tsx +32 -0
  111. package/.agents/skills/ai-elements/scripts/speech-input.tsx +84 -0
  112. package/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
  113. package/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
  114. package/.agents/skills/ai-elements/scripts/stack-trace.tsx +58 -0
  115. package/.agents/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
  116. package/.agents/skills/ai-elements/scripts/suggestion.tsx +32 -0
  117. package/.agents/skills/ai-elements/scripts/task.tsx +59 -0
  118. package/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
  119. package/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
  120. package/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
  121. package/.agents/skills/ai-elements/scripts/terminal.tsx +82 -0
  122. package/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
  123. package/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
  124. package/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
  125. package/.agents/skills/ai-elements/scripts/test-results.tsx +102 -0
  126. package/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
  127. package/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
  128. package/.agents/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
  129. package/.agents/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
  130. package/.agents/skills/ai-elements/scripts/tool.tsx +222 -0
  131. package/.agents/skills/ai-elements/scripts/transcription.tsx +290 -0
  132. package/.agents/skills/ai-elements/scripts/voice-selector.tsx +245 -0
  133. package/.agents/skills/ai-elements/scripts/web-preview.tsx +115 -0
  134. package/.agents/skills/ai-sdk/SKILL.md +78 -0
  135. package/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
  136. package/.agents/skills/ai-sdk/references/common-errors.md +443 -0
  137. package/.agents/skills/ai-sdk/references/devtools.md +52 -0
  138. package/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
  139. package/.agents/skills/chat-sdk/SKILL.md +240 -0
  140. package/.agents/skills/composio/AGENTS.md +404 -0
  141. package/.agents/skills/composio/SKILL.md +55 -0
  142. package/.agents/skills/composio/rules/_template.md +38 -0
  143. package/.agents/skills/composio/rules/app-auth-configs.md +224 -0
  144. package/.agents/skills/composio/rules/app-auth-popup-ui.md +143 -0
  145. package/.agents/skills/composio/rules/app-connected-accounts.md +240 -0
  146. package/.agents/skills/composio/rules/app-custom-tools.md +220 -0
  147. package/.agents/skills/composio/rules/app-execute-tools.md +202 -0
  148. package/.agents/skills/composio/rules/app-fetch-tools.md +292 -0
  149. package/.agents/skills/composio/rules/app-modifiers.md +148 -0
  150. package/.agents/skills/composio/rules/app-tool-versions.md +343 -0
  151. package/.agents/skills/composio/rules/app-toolkits.md +184 -0
  152. package/.agents/skills/composio/rules/app-user-context.md +222 -0
  153. package/.agents/skills/composio/rules/building-with-composio.md +134 -0
  154. package/.agents/skills/composio/rules/composio-cli.md +223 -0
  155. package/.agents/skills/composio/rules/setup-api-keys.md +230 -0
  156. package/.agents/skills/composio/rules/tr-auth-auto.md +110 -0
  157. package/.agents/skills/composio/rules/tr-auth-connections.md +167 -0
  158. package/.agents/skills/composio/rules/tr-auth-manual.md +161 -0
  159. package/.agents/skills/composio/rules/tr-building-chat-ui.md +348 -0
  160. package/.agents/skills/composio/rules/tr-framework-ai-sdk.md +240 -0
  161. package/.agents/skills/composio/rules/tr-framework-integration.md +818 -0
  162. package/.agents/skills/composio/rules/tr-framework-mastra.md +185 -0
  163. package/.agents/skills/composio/rules/tr-mcp-vs-native.md +248 -0
  164. package/.agents/skills/composio/rules/tr-session-basic.md +82 -0
  165. package/.agents/skills/composio/rules/tr-session-config.md +172 -0
  166. package/.agents/skills/composio/rules/tr-session-lifecycle.md +385 -0
  167. package/.agents/skills/composio/rules/tr-toolkit-query.md +135 -0
  168. package/.agents/skills/composio/rules/tr-userid-best-practices.md +476 -0
  169. package/.agents/skills/composio/rules/triggers-create.md +246 -0
  170. package/.agents/skills/composio/rules/triggers-manage.md +275 -0
  171. package/.agents/skills/composio/rules/triggers-subscribe.md +173 -0
  172. package/.agents/skills/composio/rules/triggers-webhook.md +227 -0
  173. package/.agents/skills/create-auth-skill/SKILL.md +321 -0
  174. package/.agents/skills/design-md/README.md +34 -0
  175. package/.agents/skills/design-md/SKILL.md +172 -0
  176. package/.agents/skills/design-md/examples/DESIGN.md +154 -0
  177. package/.agents/skills/expo-tailwind-setup/SKILL.md +480 -0
  178. package/.agents/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
  179. package/.agents/skills/find-skills/SKILL.md +142 -0
  180. package/.agents/skills/firecrawl/SKILL.md +321 -0
  181. package/.agents/skills/firecrawl/rules/install.md +85 -0
  182. package/.agents/skills/firecrawl/rules/security.md +26 -0
  183. package/.agents/skills/frontend-design/LICENSE.txt +177 -0
  184. package/.agents/skills/frontend-design/SKILL.md +55 -0
  185. package/.agents/skills/linkup-search/SKILL.md +298 -0
  186. package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
  187. package/.agents/skills/mcp-builder/SKILL.md +236 -0
  188. package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
  189. package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  190. package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  191. package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  192. package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
  193. package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
  194. package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  195. package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
  196. package/.agents/skills/mobile-android-design/SKILL.md +101 -0
  197. package/.agents/skills/mobile-android-design/references/android-navigation.md +698 -0
  198. package/.agents/skills/mobile-android-design/references/compose-components.md +796 -0
  199. package/.agents/skills/mobile-android-design/references/details.md +337 -0
  200. package/.agents/skills/mobile-android-design/references/material3-theming.md +604 -0
  201. package/.agents/skills/mobile-ios-design/SKILL.md +259 -0
  202. package/.agents/skills/mobile-ios-design/references/hig-patterns.md +529 -0
  203. package/.agents/skills/mobile-ios-design/references/ios-navigation.md +556 -0
  204. package/.agents/skills/mobile-ios-design/references/swiftui-components.md +575 -0
  205. package/.agents/skills/neon-drizzle/SKILL.md +81 -0
  206. package/.agents/skills/neon-drizzle/guides/existing-project.md +398 -0
  207. package/.agents/skills/neon-drizzle/guides/new-project.md +312 -0
  208. package/.agents/skills/neon-drizzle/guides/schema-only.md +415 -0
  209. package/.agents/skills/neon-drizzle/guides/troubleshooting.md +539 -0
  210. package/.agents/skills/neon-drizzle/references/adapters.md +478 -0
  211. package/.agents/skills/neon-drizzle/references/migrations.md +652 -0
  212. package/.agents/skills/neon-drizzle/references/query-patterns.md +761 -0
  213. package/.agents/skills/neon-drizzle/scripts/generate-schema.ts +77 -0
  214. package/.agents/skills/neon-drizzle/scripts/run-migration.ts +133 -0
  215. package/.agents/skills/neon-drizzle/templates/db-http.ts +6 -0
  216. package/.agents/skills/neon-drizzle/templates/db-websocket.ts +24 -0
  217. package/.agents/skills/neon-drizzle/templates/drizzle-config.ts +96 -0
  218. package/.agents/skills/neon-drizzle/templates/schema-example.ts +231 -0
  219. package/.agents/skills/neon-postgres/SKILL.md +376 -0
  220. package/.agents/skills/next-best-practices/SKILL.md +152 -0
  221. package/.agents/skills/next-best-practices/async-patterns.md +87 -0
  222. package/.agents/skills/next-best-practices/bundling.md +180 -0
  223. package/.agents/skills/next-best-practices/data-patterns.md +297 -0
  224. package/.agents/skills/next-best-practices/debug-tricks.md +105 -0
  225. package/.agents/skills/next-best-practices/directives.md +73 -0
  226. package/.agents/skills/next-best-practices/error-handling.md +227 -0
  227. package/.agents/skills/next-best-practices/file-conventions.md +140 -0
  228. package/.agents/skills/next-best-practices/font.md +245 -0
  229. package/.agents/skills/next-best-practices/functions.md +108 -0
  230. package/.agents/skills/next-best-practices/hydration-error.md +91 -0
  231. package/.agents/skills/next-best-practices/image.md +173 -0
  232. package/.agents/skills/next-best-practices/metadata.md +301 -0
  233. package/.agents/skills/next-best-practices/parallel-routes.md +287 -0
  234. package/.agents/skills/next-best-practices/route-handlers.md +146 -0
  235. package/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
  236. package/.agents/skills/next-best-practices/runtime-selection.md +39 -0
  237. package/.agents/skills/next-best-practices/scripts.md +141 -0
  238. package/.agents/skills/next-best-practices/self-hosting.md +371 -0
  239. package/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
  240. package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
  241. package/.agents/skills/playwright-cli/SKILL.md +404 -0
  242. package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
  243. package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
  244. package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
  245. package/.agents/skills/playwright-cli/references/running-code.md +241 -0
  246. package/.agents/skills/playwright-cli/references/session-management.md +225 -0
  247. package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
  248. package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
  249. package/.agents/skills/playwright-cli/references/test-generation.md +134 -0
  250. package/.agents/skills/playwright-cli/references/tracing.md +139 -0
  251. package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
  252. package/.agents/skills/prisma-client-api/SKILL.md +216 -0
  253. package/.agents/skills/prisma-client-api/references/client-methods.md +223 -0
  254. package/.agents/skills/prisma-client-api/references/constructor.md +208 -0
  255. package/.agents/skills/prisma-client-api/references/filters.md +256 -0
  256. package/.agents/skills/prisma-client-api/references/model-queries.md +281 -0
  257. package/.agents/skills/prisma-client-api/references/query-options.md +276 -0
  258. package/.agents/skills/prisma-client-api/references/raw-queries.md +194 -0
  259. package/.agents/skills/prisma-client-api/references/relations.md +308 -0
  260. package/.agents/skills/prisma-client-api/references/transactions.md +184 -0
  261. package/.agents/skills/prisma-database-setup/SKILL.md +192 -0
  262. package/.agents/skills/prisma-database-setup/references/cockroachdb.md +89 -0
  263. package/.agents/skills/prisma-database-setup/references/mongodb.md +90 -0
  264. package/.agents/skills/prisma-database-setup/references/mysql.md +126 -0
  265. package/.agents/skills/prisma-database-setup/references/postgresql.md +92 -0
  266. package/.agents/skills/prisma-database-setup/references/prisma-client-setup.md +47 -0
  267. package/.agents/skills/prisma-database-setup/references/prisma-postgres.md +130 -0
  268. package/.agents/skills/prisma-database-setup/references/sqlite.md +106 -0
  269. package/.agents/skills/prisma-database-setup/references/sqlserver.md +94 -0
  270. package/.agents/skills/prisma-postgres/SKILL.md +127 -0
  271. package/.agents/skills/prisma-postgres/references/console-and-connections.md +67 -0
  272. package/.agents/skills/prisma-postgres/references/create-db-cli.md +136 -0
  273. package/.agents/skills/prisma-postgres/references/management-api-sdk.md +56 -0
  274. package/.agents/skills/prisma-postgres/references/management-api.md +61 -0
  275. package/.agents/skills/remotion-best-practices/SKILL.md +340 -0
  276. package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
  277. package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  278. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  279. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
  280. package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
  281. package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
  282. package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
  283. package/.agents/skills/remotion-best-practices/rules/compositions.md +133 -0
  284. package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
  285. package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +34 -0
  286. package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  287. package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  288. package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
  289. package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
  290. package/.agents/skills/remotion-best-practices/rules/google-fonts.md +72 -0
  291. package/.agents/skills/remotion-best-practices/rules/html-in-canvas.md +122 -0
  292. package/.agents/skills/remotion-best-practices/rules/images.md +71 -0
  293. package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
  294. package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
  295. package/.agents/skills/remotion-best-practices/rules/local-fonts.md +65 -0
  296. package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
  297. package/.agents/skills/remotion-best-practices/rules/maplibre.md +458 -0
  298. package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  299. package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
  300. package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
  301. package/.agents/skills/remotion-best-practices/rules/sequencing.md +144 -0
  302. package/.agents/skills/remotion-best-practices/rules/sfx.md +30 -0
  303. package/.agents/skills/remotion-best-practices/rules/silence-detection.md +71 -0
  304. package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
  305. package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
  306. package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
  307. package/.agents/skills/remotion-best-practices/rules/timing.md +136 -0
  308. package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
  309. package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
  310. package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
  311. package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
  312. package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
  313. package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
  314. package/.agents/skills/remotion-render/SKILL.md +212 -0
  315. package/.agents/skills/skill-creator/LICENSE.txt +202 -0
  316. package/.agents/skills/skill-creator/SKILL.md +485 -0
  317. package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  318. package/.agents/skills/skill-creator/agents/comparator.md +202 -0
  319. package/.agents/skills/skill-creator/agents/grader.md +223 -0
  320. package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  321. package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  322. package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  323. package/.agents/skills/skill-creator/references/schemas.md +430 -0
  324. package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  325. package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  326. package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  327. package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  328. package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  329. package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  330. package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  331. package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  332. package/.agents/skills/skill-creator/scripts/utils.py +47 -0
  333. package/.agents/skills/stripe-best-practices/SKILL.md +54 -0
  334. package/.agents/skills/stripe-best-practices/references/billing.md +58 -0
  335. package/.agents/skills/stripe-best-practices/references/connect.md +173 -0
  336. package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
  337. package/.agents/skills/stripe-best-practices/references/security.md +109 -0
  338. package/.agents/skills/stripe-best-practices/references/tax.md +37 -0
  339. package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
  340. package/.agents/skills/stripe-projects/SKILL.md +132 -0
  341. package/.agents/skills/supabase/CHANGELOG.md +35 -0
  342. package/.agents/skills/supabase/SKILL.md +135 -0
  343. package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
  344. package/.agents/skills/supabase/references/skill-feedback.md +17 -0
  345. package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
  346. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
  347. package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  348. package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  349. package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
  350. package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  351. package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  352. package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  353. package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  354. package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  355. package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  356. package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  357. package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  358. package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  359. package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  360. package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  361. package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  362. package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  363. package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  364. package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  365. package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  366. package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  367. package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  368. package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  369. package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  370. package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  371. package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  372. package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  373. package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  374. package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  375. package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  376. package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  377. package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  378. package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  379. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  380. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  381. package/.agents/skills/supermemory/LICENSE +201 -0
  382. package/.agents/skills/supermemory/README.md +221 -0
  383. package/.agents/skills/supermemory/SKILL.md +172 -0
  384. package/.agents/skills/supermemory/references/api-reference.md +591 -0
  385. package/.agents/skills/supermemory/references/architecture.md +557 -0
  386. package/.agents/skills/supermemory/references/quickstart.md +293 -0
  387. package/.agents/skills/supermemory/references/sdk-guide.md +655 -0
  388. package/.agents/skills/supermemory/references/use-cases.md +1033 -0
  389. package/.agents/skills/supermemory-cli/SKILL.md +490 -0
  390. package/.agents/skills/tdd/SKILL.md +108 -0
  391. package/.agents/skills/tdd/mocking.md +59 -0
  392. package/.agents/skills/tdd/refactoring.md +10 -0
  393. package/.agents/skills/tdd/tests.md +61 -0
  394. package/.agents/skills/ui-ux-pro-max/SKILL.md +661 -0
  395. package/.agents/skills/ui-ux-pro-max/data +1 -0
  396. package/.agents/skills/ui-ux-pro-max/scripts +1 -0
  397. package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
  398. package/.agents/skills/vercel-react-native-skills/README.md +165 -0
  399. package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
  400. package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
  401. package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
  402. package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
  403. package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
  404. package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
  405. package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
  406. package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
  407. package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
  408. package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
  409. package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
  410. package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
  411. package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
  412. package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
  413. package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
  414. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
  415. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
  416. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
  417. package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
  418. package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
  419. package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
  420. package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
  421. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
  422. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
  423. package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
  424. package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
  425. package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
  426. package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
  427. package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
  428. package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
  429. package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
  430. package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
  431. package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
  432. package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
  433. package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
  434. package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
  435. package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
  436. package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
  437. package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
  438. package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
  439. package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
  440. package/dist/index.js +1 -1
  441. package/package.json +2 -1
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Generate Schema Script
3
+ *
4
+ * Generates Drizzle migration files based on schema changes.
5
+ * Run with: npx drizzle-kit generate
6
+ *
7
+ * This creates SQL migration files in the migrations directory
8
+ * based on differences between your schema.ts and the database.
9
+ */
10
+
11
+ import { exec } from 'child_process';
12
+ import { promisify } from 'util';
13
+
14
+ const execAsync = promisify(exec);
15
+
16
+ async function generateSchema() {
17
+ console.log('🔄 Generating Drizzle migrations...\n');
18
+
19
+ try {
20
+ const { stdout, stderr } = await execAsync('npx drizzle-kit generate');
21
+
22
+ if (stdout) {
23
+ console.log('📝 Generated migrations:');
24
+ console.log(stdout);
25
+ }
26
+
27
+ if (stderr) {
28
+ console.warn('⚠️ Warnings:');
29
+ console.warn(stderr);
30
+ }
31
+
32
+ console.log('\n✅ Migration generation complete!');
33
+ console.log('\n📋 Next steps:');
34
+ console.log(' 1. Review the generated migration files in ./src/db/migrations');
35
+ console.log(' 2. Run: npx drizzle-kit migrate');
36
+ console.log(' 3. Test your application\n');
37
+
38
+ return true;
39
+ } catch (error) {
40
+ console.error('❌ Migration generation failed');
41
+ console.error((error as any).message);
42
+
43
+ console.log('\n💡 Troubleshooting:');
44
+ console.log(' • Ensure drizzle.config.ts is in your project root');
45
+ console.log(' • Check that DATABASE_URL is set correctly');
46
+ console.log(' • Verify your schema.ts file exists at the configured path');
47
+ console.log(' • Review guides/troubleshooting.md for common issues');
48
+ console.log(' • See references/migrations.md for migration patterns');
49
+
50
+ const errorMessage = (error as any).message.toLowerCase();
51
+
52
+ if (errorMessage.includes('url') || errorMessage.includes('undefined')) {
53
+ console.log('\n⚠️ Environment variable issue detected:');
54
+ console.log(' • Ensure DATABASE_URL is loaded in drizzle.config.ts');
55
+ console.log(' • Add: import { config } from "dotenv"; config({ path: ".env.local" });');
56
+ console.log(' • See guides/troubleshooting.md section: "Error: url: undefined"');
57
+ }
58
+
59
+ if (errorMessage.includes('schema') || errorMessage.includes('not found')) {
60
+ console.log('\n⚠️ Schema file issue detected:');
61
+ console.log(' • Verify schema path in drizzle.config.ts matches actual file location');
62
+ console.log(' • Default: ./src/db/schema.ts');
63
+ }
64
+
65
+ if (errorMessage.includes('enoent')) {
66
+ console.log('\n⚠️ File/directory missing:');
67
+ console.log(' • Create migrations folder: mkdir -p src/db/migrations');
68
+ console.log(' • Ensure schema file exists: src/db/schema.ts');
69
+ }
70
+
71
+ return false;
72
+ }
73
+ }
74
+
75
+ generateSchema().then((success) => {
76
+ process.exit(success ? 0 : 1);
77
+ });
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Run Migration Script
3
+ *
4
+ * Applies pending Drizzle migrations to your Neon database.
5
+ * Run with: npx ts-node run-migration.ts
6
+ *
7
+ * This script will:
8
+ * 1. Connect to your Neon database
9
+ * 2. Apply all pending migrations
10
+ * 3. Report success or failure
11
+ */
12
+
13
+ import { drizzle } from 'drizzle-orm/neon-http';
14
+ import { migrate } from 'drizzle-orm/neon-http/migrator';
15
+ import { neon } from '@neondatabase/serverless';
16
+
17
+ const DATABASE_URL = process.env.DATABASE_URL;
18
+
19
+ if (!DATABASE_URL) {
20
+ console.error('❌ DATABASE_URL environment variable is not set');
21
+ process.exit(1);
22
+ }
23
+
24
+ async function runMigrations() {
25
+ console.log('🔄 Running Drizzle migrations...\n');
26
+
27
+ try {
28
+ // Create SQL client
29
+ const sql = neon(DATABASE_URL);
30
+
31
+ // Create Drizzle instance
32
+ const db = drizzle(sql);
33
+
34
+ // Run migrations
35
+ console.log('⏳ Applying migrations...');
36
+ await migrate(db, {
37
+ migrationsFolder: './src/db/migrations',
38
+ });
39
+
40
+ console.log('✅ All migrations applied successfully!\n');
41
+
42
+ // Show migration status
43
+ console.log('📊 Migration Summary:');
44
+ console.log(' Database: ' + new URL(DATABASE_URL).pathname.slice(1));
45
+ console.log(' Migrations folder: ./src/db/migrations');
46
+ console.log(' Status: Up to date\n');
47
+
48
+ return true;
49
+ } catch (error) {
50
+ console.error('❌ Migration failed');
51
+ console.error((error as any).message);
52
+
53
+ console.log('\n💡 Troubleshooting:');
54
+ console.log(' • Ensure ./src/db/migrations directory exists');
55
+ console.log(' • Verify DATABASE_URL is correct');
56
+ console.log(' • Check that migrations are properly formatted SQL files');
57
+ console.log(' • Try running: npx drizzle-kit generate first');
58
+ console.log(' • Review guides/troubleshooting.md for common migration errors');
59
+ console.log(' • See references/migrations.md for detailed migration guide');
60
+
61
+ const errorMessage = (error as any).message.toLowerCase();
62
+
63
+ if (errorMessage.includes('connect') || errorMessage.includes('connection')) {
64
+ console.log('\n⚠️ Connection issue detected:');
65
+ console.log(' • Verify DATABASE_URL format: postgresql://user:pass@host/db?sslmode=require');
66
+ console.log(' • Ensure database is accessible');
67
+ console.log(' • Check firewall/network settings');
68
+ console.log(' • See guides/troubleshooting.md section: "Connection Errors"');
69
+ }
70
+
71
+ if (errorMessage.includes('already exists') || errorMessage.includes('duplicate')) {
72
+ console.log('\n⚠️ Migration conflict detected:');
73
+ console.log(' • Migration may have been partially applied');
74
+ console.log(' • Check database state: psql $DATABASE_URL -c "\\dt"');
75
+ console.log(' • See references/migrations.md for handling conflicts');
76
+ }
77
+
78
+ if (errorMessage.includes('not found') || errorMessage.includes('enoent')) {
79
+ console.log('\n⚠️ Migrations folder missing:');
80
+ console.log(' • Run: npx drizzle-kit generate');
81
+ console.log(' • Ensure migrations folder path matches drizzle.config.ts');
82
+ }
83
+
84
+ if (errorMessage.includes('syntax')) {
85
+ console.log('\n⚠️ SQL syntax error:');
86
+ console.log(' • Review generated migration files in ./src/db/migrations');
87
+ console.log(' • Check for manually edited migrations');
88
+ console.log(' • See references/migrations.md for safe editing practices');
89
+ }
90
+
91
+ console.log('');
92
+ return false;
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Alternative: Run migrations with WebSocket (for Node.js)
98
+ * Uncomment below if using WebSocket connections
99
+ */
100
+
101
+ /*
102
+ import { drizzle } from 'drizzle-orm/neon-serverless';
103
+ import { migrate } from 'drizzle-orm/neon-serverless/migrator';
104
+ import { Pool } from '@neondatabase/serverless';
105
+
106
+ async function runMigrationsWebSocket() {
107
+ console.log('🔄 Running Drizzle migrations (WebSocket)...\n');
108
+
109
+ const pool = new Pool({ connectionString: DATABASE_URL });
110
+
111
+ try {
112
+ const db = drizzle(pool);
113
+
114
+ console.log('⏳ Applying migrations...');
115
+ await migrate(db, {
116
+ migrationsFolder: './src/db/migrations',
117
+ });
118
+
119
+ console.log('✅ All migrations applied successfully!\n');
120
+ await pool.end();
121
+ return true;
122
+ } catch (error) {
123
+ console.error('❌ Migration failed:', (error as any).message);
124
+ await pool.end();
125
+ return false;
126
+ }
127
+ }
128
+ */
129
+
130
+ // Run migrations
131
+ runMigrations().then((success) => {
132
+ process.exit(success ? 0 : 1);
133
+ });
@@ -0,0 +1,6 @@
1
+ import { drizzle } from 'drizzle-orm/neon-http';
2
+ import { neon } from '@neondatabase/serverless';
3
+
4
+ const sql = neon(process.env.DATABASE_URL!);
5
+
6
+ export const db = drizzle(sql);
@@ -0,0 +1,24 @@
1
+ import { drizzle } from 'drizzle-orm/neon-serverless';
2
+ import { Pool, neonConfig } from '@neondatabase/serverless';
3
+ import ws from 'ws';
4
+
5
+ neonConfig.webSocketConstructor = ws;
6
+
7
+ const pool = new Pool({
8
+ connectionString: process.env.DATABASE_URL!,
9
+ max: 10,
10
+ idleTimeoutMillis: 30000,
11
+ connectionTimeoutMillis: 5000,
12
+ });
13
+
14
+ export const db = drizzle(pool);
15
+
16
+ process.on('SIGTERM', async () => {
17
+ await pool.end();
18
+ process.exit(0);
19
+ });
20
+
21
+ process.on('SIGINT', async () => {
22
+ await pool.end();
23
+ process.exit(0);
24
+ });
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Drizzle Configuration
3
+ *
4
+ * This file configures Drizzle ORM for use with Neon.
5
+ * Place this in your project root or src/ directory.
6
+ *
7
+ * Usage: Reference this in your drizzle.config.ts
8
+ */
9
+
10
+ import { config } from 'dotenv';
11
+ import type { Config } from 'drizzle-kit';
12
+
13
+ config({ path: '.env.local' });
14
+
15
+ /**
16
+ * Drizzle Configuration for Neon Postgres
17
+ *
18
+ * Supports both HTTP and WebSocket connections.
19
+ * Automatically detects which driver to use based on environment.
20
+ */
21
+
22
+ const dbUrl = process.env.DATABASE_URL;
23
+
24
+ if (!dbUrl) {
25
+ throw new Error('DATABASE_URL environment variable is not set');
26
+ }
27
+
28
+ // Determine connection type based on environment
29
+ const isServerless = process.env.RUNTIME === 'edge' ||
30
+ process.env.VERCEL_ENV === 'production';
31
+
32
+ export default {
33
+ schema: './src/db/schema.ts', // Path to your schema file
34
+ out: './src/db/migrations', // Output directory for migrations
35
+
36
+ // Database connection
37
+ dbCredentials: {
38
+ url: dbUrl,
39
+ },
40
+
41
+ // Migration options
42
+ migrations: {
43
+ prefix: 'timestamp', // or 'none'
44
+ },
45
+
46
+ // Verbose logging for debugging
47
+ verbose: process.env.DEBUG === 'true',
48
+
49
+ // Strict mode ensures all migrations are applied
50
+ strict: true,
51
+ } satisfies Config;
52
+
53
+ /**
54
+ * HTTP Connection Configuration (for Vercel Edge, etc.)
55
+ *
56
+ * export default {
57
+ * schema: './src/db/schema.ts',
58
+ * out: './src/db/migrations',
59
+ * driver: 'postgres',
60
+ * dbCredentials: {
61
+ * url: process.env.DATABASE_URL!,
62
+ * },
63
+ * } satisfies Config;
64
+ */
65
+
66
+ /**
67
+ * WebSocket Connection Configuration (for Node.js servers)
68
+ *
69
+ * export default {
70
+ * schema: './src/db/schema.ts',
71
+ * out: './src/db/migrations',
72
+ * driver: 'pg',
73
+ * dbCredentials: {
74
+ * url: process.env.DATABASE_URL!,
75
+ * },
76
+ * } satisfies Config;
77
+ */
78
+
79
+ /**
80
+ * Migration Commands
81
+ *
82
+ * # Generate migration files from schema changes
83
+ * npx drizzle-kit generate
84
+ *
85
+ * # Apply migrations to database
86
+ * npx drizzle-kit migrate
87
+ *
88
+ * # Drop all tables (careful!)
89
+ * npx drizzle-kit drop
90
+ *
91
+ * # Introspect existing database
92
+ * npx drizzle-kit introspect
93
+ *
94
+ * # Push schema changes directly (development only)
95
+ * npx drizzle-kit push
96
+ */
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Drizzle Schema Example
3
+ *
4
+ * This file demonstrates how to define database tables and relationships
5
+ * using Drizzle ORM with Neon Postgres.
6
+ *
7
+ * Usage: Import these tables in your application code for type-safe queries
8
+ */
9
+
10
+ import {
11
+ pgTable,
12
+ serial,
13
+ text,
14
+ varchar,
15
+ integer,
16
+ timestamp,
17
+ boolean,
18
+ decimal,
19
+ json,
20
+ index,
21
+ unique,
22
+ foreignKey,
23
+ } from 'drizzle-orm/pg-core';
24
+ import { relations } from 'drizzle-orm';
25
+
26
+ /**
27
+ * Users Table
28
+ *
29
+ * Stores basic user information. Can be extended with additional fields
30
+ * as needed by your application.
31
+ */
32
+ export const users = pgTable(
33
+ 'users',
34
+ {
35
+ id: serial('id').primaryKey(),
36
+ email: varchar('email', { length: 255 }).notNull().unique(),
37
+ name: varchar('name', { length: 255 }).notNull(),
38
+ password: text('password'), // If not using external auth
39
+ avatar: text('avatar'), // URL to avatar image
40
+ isActive: boolean('is_active').default(true),
41
+ createdAt: timestamp('created_at').defaultNow(),
42
+ updatedAt: timestamp('updated_at').defaultNow(),
43
+ },
44
+ (table) => ({
45
+ emailIdx: index('users_email_idx').on(table.email),
46
+ createdAtIdx: index('users_created_at_idx').on(table.createdAt),
47
+ })
48
+ );
49
+
50
+ /**
51
+ * Profiles Table
52
+ *
53
+ * Extended user information. Uses a foreign key to link with users.
54
+ */
55
+ export const profiles = pgTable('profiles', {
56
+ id: serial('id').primaryKey(),
57
+ userId: integer('user_id')
58
+ .notNull()
59
+ .references(() => users.id, { onDelete: 'cascade' }),
60
+ bio: text('bio'),
61
+ location: varchar('location', { length: 255 }),
62
+ website: varchar('website', { length: 255 }),
63
+ phone: varchar('phone', { length: 20 }),
64
+ createdAt: timestamp('created_at').defaultNow(),
65
+ updatedAt: timestamp('updated_at').defaultNow(),
66
+ });
67
+
68
+ /**
69
+ * Posts Table
70
+ *
71
+ * Blog posts created by users.
72
+ */
73
+ export const posts = pgTable(
74
+ 'posts',
75
+ {
76
+ id: serial('id').primaryKey(),
77
+ userId: integer('user_id')
78
+ .notNull()
79
+ .references(() => users.id, { onDelete: 'cascade' }),
80
+ title: varchar('title', { length: 255 }).notNull(),
81
+ slug: varchar('slug', { length: 255 }).notNull().unique(),
82
+ content: text('content').notNull(),
83
+ excerpt: text('excerpt'),
84
+ published: boolean('published').default(false),
85
+ publishedAt: timestamp('published_at'),
86
+ createdAt: timestamp('created_at').defaultNow(),
87
+ updatedAt: timestamp('updated_at').defaultNow(),
88
+ },
89
+ (table) => ({
90
+ userIdIdx: index('posts_user_id_idx').on(table.userId),
91
+ publishedIdx: index('posts_published_idx').on(table.published),
92
+ slugIdx: index('posts_slug_idx').on(table.slug),
93
+ })
94
+ );
95
+
96
+ /**
97
+ * Comments Table
98
+ *
99
+ * Comments on blog posts. Supports nested comments via parent_id.
100
+ */
101
+ export const comments = pgTable(
102
+ 'comments',
103
+ {
104
+ id: serial('id').primaryKey(),
105
+ postId: integer('post_id')
106
+ .notNull()
107
+ .references(() => posts.id, { onDelete: 'cascade' }),
108
+ userId: integer('user_id')
109
+ .notNull()
110
+ .references(() => users.id, { onDelete: 'cascade' }),
111
+ parentId: integer('parent_id').references(() => comments.id, {
112
+ onDelete: 'cascade',
113
+ }),
114
+ content: text('content').notNull(),
115
+ approved: boolean('approved').default(false),
116
+ createdAt: timestamp('created_at').defaultNow(),
117
+ updatedAt: timestamp('updated_at').defaultNow(),
118
+ },
119
+ (table) => ({
120
+ postIdIdx: index('comments_post_id_idx').on(table.postId),
121
+ userIdIdx: index('comments_user_id_idx').on(table.userId),
122
+ parentIdIdx: index('comments_parent_id_idx').on(table.parentId),
123
+ })
124
+ );
125
+
126
+ /**
127
+ * Tags Table
128
+ *
129
+ * Tags for categorizing posts.
130
+ */
131
+ export const tags = pgTable('tags', {
132
+ id: serial('id').primaryKey(),
133
+ name: varchar('name', { length: 100 }).notNull().unique(),
134
+ slug: varchar('slug', { length: 100 }).notNull().unique(),
135
+ createdAt: timestamp('created_at').defaultNow(),
136
+ });
137
+
138
+ /**
139
+ * PostTags Junction Table
140
+ *
141
+ * Many-to-many relationship between posts and tags.
142
+ */
143
+ export const postTags = pgTable(
144
+ 'post_tags',
145
+ {
146
+ postId: integer('post_id')
147
+ .notNull()
148
+ .references(() => posts.id, { onDelete: 'cascade' }),
149
+ tagId: integer('tag_id')
150
+ .notNull()
151
+ .references(() => tags.id, { onDelete: 'cascade' }),
152
+ },
153
+ (table) => ({
154
+ pk: { name: 'post_tags_pk', columns: [table.postId, table.tagId] },
155
+ postIdIdx: index('post_tags_post_id_idx').on(table.postId),
156
+ tagIdIdx: index('post_tags_tag_id_idx').on(table.tagId),
157
+ })
158
+ );
159
+
160
+ /**
161
+ * Settings Table
162
+ *
163
+ * Application-wide or user-specific settings stored as JSON.
164
+ */
165
+ export const settings = pgTable('settings', {
166
+ id: serial('id').primaryKey(),
167
+ userId: integer('user_id').references(() => users.id, {
168
+ onDelete: 'cascade',
169
+ }), // null = global settings
170
+ key: varchar('key', { length: 255 }).notNull(),
171
+ value: json('value'),
172
+ createdAt: timestamp('created_at').defaultNow(),
173
+ updatedAt: timestamp('updated_at').defaultNow(),
174
+ });
175
+
176
+ // ============================================================================
177
+ // Relations (optional but recommended for better type safety)
178
+ // ============================================================================
179
+
180
+ export const usersRelations = relations(users, ({ many, one }) => ({
181
+ profile: one(profiles),
182
+ posts: many(posts),
183
+ comments: many(comments),
184
+ }));
185
+
186
+ export const profilesRelations = relations(profiles, ({ one }) => ({
187
+ user: one(users, {
188
+ fields: [profiles.userId],
189
+ references: [users.id],
190
+ }),
191
+ }));
192
+
193
+ export const postsRelations = relations(posts, ({ one, many }) => ({
194
+ author: one(users, {
195
+ fields: [posts.userId],
196
+ references: [users.id],
197
+ }),
198
+ comments: many(comments),
199
+ tags: many(postTags),
200
+ }));
201
+
202
+ export const commentsRelations = relations(comments, ({ one, many }) => ({
203
+ post: one(posts, {
204
+ fields: [comments.postId],
205
+ references: [posts.id],
206
+ }),
207
+ author: one(users, {
208
+ fields: [comments.userId],
209
+ references: [users.id],
210
+ }),
211
+ parent: one(comments, {
212
+ fields: [comments.parentId],
213
+ references: [comments.id],
214
+ }),
215
+ replies: many(comments),
216
+ }));
217
+
218
+ export const tagsRelations = relations(tags, ({ many }) => ({
219
+ posts: many(postTags),
220
+ }));
221
+
222
+ export const postTagsRelations = relations(postTags, ({ one }) => ({
223
+ post: one(posts, {
224
+ fields: [postTags.postId],
225
+ references: [posts.id],
226
+ }),
227
+ tag: one(tags, {
228
+ fields: [postTags.tagId],
229
+ references: [tags.id],
230
+ }),
231
+ }));