@muskanmeet/invoicing-design-system 0.1.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 (695) hide show
  1. package/.cache/replit/env/latest +78 -0
  2. package/.cache/replit/env/latest.json +1 -0
  3. package/.cache/replit/modules/nodejs-20.res +1 -0
  4. package/.cache/replit/modules/python-3.11.res +1 -0
  5. package/.cache/replit/modules/replit-rtld-loader.res +1 -0
  6. package/.cache/replit/modules/replit.res +1 -0
  7. package/.cache/replit/modules.stamp +0 -0
  8. package/.cache/replit/nix/dotreplitenv.json +1 -0
  9. package/.cache/replit/toolchain.json +1 -0
  10. package/.cache/typescript/5.9/package-lock.json +50 -0
  11. package/.cache/typescript/5.9/package.json +1 -0
  12. package/.config/nextjs-nodejs/config.json +7 -0
  13. package/.eslintrc.json +3 -0
  14. package/.local/.commit_message +31 -0
  15. package/.local/secondary_skills/LICENSE.txt +21 -0
  16. package/.local/secondary_skills/ad-creative/.fingerprint +1 -0
  17. package/.local/secondary_skills/ad-creative/SKILL.md +872 -0
  18. package/.local/secondary_skills/ai-recruiter/.fingerprint +1 -0
  19. package/.local/secondary_skills/ai-recruiter/SKILL.md +1087 -0
  20. package/.local/secondary_skills/ai-sdr/.fingerprint +1 -0
  21. package/.local/secondary_skills/ai-sdr/SKILL.md +204 -0
  22. package/.local/secondary_skills/ai-secretary/.fingerprint +1 -0
  23. package/.local/secondary_skills/ai-secretary/SKILL.md +1132 -0
  24. package/.local/secondary_skills/branding-generator/.fingerprint +1 -0
  25. package/.local/secondary_skills/branding-generator/SKILL.md +286 -0
  26. package/.local/secondary_skills/competitive-analysis/.fingerprint +1 -0
  27. package/.local/secondary_skills/competitive-analysis/SKILL.md +429 -0
  28. package/.local/secondary_skills/content-machine/.fingerprint +1 -0
  29. package/.local/secondary_skills/content-machine/SKILL.md +321 -0
  30. package/.local/secondary_skills/deep-research/.fingerprint +1 -0
  31. package/.local/secondary_skills/deep-research/SKILL.md +517 -0
  32. package/.local/secondary_skills/design-thinker/.fingerprint +1 -0
  33. package/.local/secondary_skills/design-thinker/SKILL.md +327 -0
  34. package/.local/secondary_skills/excel-generator/.fingerprint +1 -0
  35. package/.local/secondary_skills/excel-generator/SKILL.md +954 -0
  36. package/.local/secondary_skills/excel-generator/financial-models.md +289 -0
  37. package/.local/secondary_skills/file-converter/.fingerprint +1 -0
  38. package/.local/secondary_skills/file-converter/SKILL.md +823 -0
  39. package/.local/secondary_skills/flashcard-generator/.fingerprint +1 -0
  40. package/.local/secondary_skills/flashcard-generator/SKILL.md +233 -0
  41. package/.local/secondary_skills/geo/.fingerprint +1 -0
  42. package/.local/secondary_skills/geo/SKILL.md +378 -0
  43. package/.local/secondary_skills/geo/references/content-patterns.md +158 -0
  44. package/.local/secondary_skills/geo/references/platform-notes.md +128 -0
  45. package/.local/secondary_skills/geo/references/scorecard.md +113 -0
  46. package/.local/secondary_skills/geo/references/technical-checklist.md +257 -0
  47. package/.local/secondary_skills/github-solution-finder/.fingerprint +1 -0
  48. package/.local/secondary_skills/github-solution-finder/SKILL.md +174 -0
  49. package/.local/secondary_skills/infographic-builder/.fingerprint +1 -0
  50. package/.local/secondary_skills/infographic-builder/SKILL.md +317 -0
  51. package/.local/secondary_skills/infographic-builder/antv-syntax.md +470 -0
  52. package/.local/secondary_skills/infographic-builder/react-fallback.md +210 -0
  53. package/.local/secondary_skills/insurance-optimizer/.fingerprint +1 -0
  54. package/.local/secondary_skills/insurance-optimizer/SKILL.md +209 -0
  55. package/.local/secondary_skills/interview-prep/.fingerprint +1 -0
  56. package/.local/secondary_skills/interview-prep/SKILL.md +349 -0
  57. package/.local/secondary_skills/invoice-generator/.fingerprint +1 -0
  58. package/.local/secondary_skills/invoice-generator/SKILL.md +527 -0
  59. package/.local/secondary_skills/legal-contract/.fingerprint +1 -0
  60. package/.local/secondary_skills/legal-contract/SKILL.md +977 -0
  61. package/.local/secondary_skills/meal-planner/.fingerprint +1 -0
  62. package/.local/secondary_skills/meal-planner/SKILL.md +517 -0
  63. package/.local/secondary_skills/personal-shopper/.fingerprint +1 -0
  64. package/.local/secondary_skills/personal-shopper/SKILL.md +361 -0
  65. package/.local/secondary_skills/photo-editor/.fingerprint +1 -0
  66. package/.local/secondary_skills/photo-editor/SKILL.md +605 -0
  67. package/.local/secondary_skills/podcast-generator/.fingerprint +1 -0
  68. package/.local/secondary_skills/podcast-generator/SKILL.md +560 -0
  69. package/.local/secondary_skills/podcast-marketing/.fingerprint +1 -0
  70. package/.local/secondary_skills/podcast-marketing/SKILL.md +550 -0
  71. package/.local/secondary_skills/podcast-marketing/audio-processing.md +530 -0
  72. package/.local/secondary_skills/podcast-marketing/content-atoms.md +253 -0
  73. package/.local/secondary_skills/podcast-marketing/content-calendar.md +318 -0
  74. package/.local/secondary_skills/podcast-marketing/content-templates.md +325 -0
  75. package/.local/secondary_skills/podcast-marketing/quote-cards.md +238 -0
  76. package/.local/secondary_skills/podcast-marketing/rss-and-batch.md +359 -0
  77. package/.local/secondary_skills/podcast-marketing/video-clips.md +660 -0
  78. package/.local/secondary_skills/podcast-marketing/youtube-processing.md +328 -0
  79. package/.local/secondary_skills/product-manager/.fingerprint +1 -0
  80. package/.local/secondary_skills/product-manager/SKILL.md +272 -0
  81. package/.local/secondary_skills/programmatic-seo/.fingerprint +1 -0
  82. package/.local/secondary_skills/programmatic-seo/SKILL.md +1207 -0
  83. package/.local/secondary_skills/real-estate-analyzer/.fingerprint +1 -0
  84. package/.local/secondary_skills/real-estate-analyzer/SKILL.md +786 -0
  85. package/.local/secondary_skills/recipe-creator/.fingerprint +1 -0
  86. package/.local/secondary_skills/recipe-creator/SKILL.md +259 -0
  87. package/.local/secondary_skills/recreate-screenshot/.fingerprint +1 -0
  88. package/.local/secondary_skills/recreate-screenshot/SKILL.md +215 -0
  89. package/.local/secondary_skills/replit-migration-guardrails/.fingerprint +1 -0
  90. package/.local/secondary_skills/replit-migration-guardrails/SKILL.md +55 -0
  91. package/.local/secondary_skills/replit-migration-guardrails/references/base44.md +47 -0
  92. package/.local/secondary_skills/replit-migration-guardrails/references/vercel.md +78 -0
  93. package/.local/secondary_skills/resume-maker/.fingerprint +1 -0
  94. package/.local/secondary_skills/resume-maker/SKILL.md +790 -0
  95. package/.local/secondary_skills/seo-auditor/.fingerprint +1 -0
  96. package/.local/secondary_skills/seo-auditor/SKILL.md +448 -0
  97. package/.local/secondary_skills/skill-creator/.fingerprint +1 -0
  98. package/.local/secondary_skills/skill-creator/SKILL.md +214 -0
  99. package/.local/secondary_skills/skill-finder/.fingerprint +1 -0
  100. package/.local/secondary_skills/skill-finder/SKILL.md +299 -0
  101. package/.local/secondary_skills/stock-analyzer/.fingerprint +1 -0
  102. package/.local/secondary_skills/stock-analyzer/SKILL.md +798 -0
  103. package/.local/secondary_skills/storyboard/.fingerprint +1 -0
  104. package/.local/secondary_skills/storyboard/SKILL.md +558 -0
  105. package/.local/secondary_skills/supplier-research/.fingerprint +1 -0
  106. package/.local/secondary_skills/supplier-research/SKILL.md +213 -0
  107. package/.local/secondary_skills/tax-reviewer/.fingerprint +1 -0
  108. package/.local/secondary_skills/tax-reviewer/SKILL.md +131 -0
  109. package/.local/secondary_skills/travel-assistant/.fingerprint +1 -0
  110. package/.local/secondary_skills/travel-assistant/SKILL.md +667 -0
  111. package/.local/secondary_skills/video-editing/.fingerprint +1 -0
  112. package/.local/secondary_skills/video-editing/SKILL.md +705 -0
  113. package/.local/secondary_skills/video-editing/dead-space-and-chunking.md +1081 -0
  114. package/.local/secondary_skills/video-editing/operations.md +1719 -0
  115. package/.local/secondary_skills/video-editing/virality-scoring.md +1212 -0
  116. package/.local/secondary_skills/video-editing/voiceover.md +788 -0
  117. package/.local/secondary_skills/website-cloning/.fingerprint +1 -0
  118. package/.local/secondary_skills/website-cloning/SKILL.md +544 -0
  119. package/.local/secondary_skills/website-cloning/extraction.md +1207 -0
  120. package/.local/secondary_skills/website-cloning/pitfalls.md +297 -0
  121. package/.local/skills/LICENSE.txt +21 -0
  122. package/.local/skills/agent-inbox/.fingerprint +1 -0
  123. package/.local/skills/agent-inbox/SKILL.md +128 -0
  124. package/.local/skills/artifacts/.fingerprint +1 -0
  125. package/.local/skills/artifacts/SKILL.md +21 -0
  126. package/.local/skills/artifacts/artifacts/automation/artifact.yaml +40 -0
  127. package/.local/skills/artifacts/artifacts/automation/files/package.json.template +47 -0
  128. package/.local/skills/artifacts/artifacts/automation/files/scripts/build.sh +6 -0
  129. package/.local/skills/artifacts/artifacts/automation/files/scripts/inngest.sh +18 -0
  130. package/.local/skills/artifacts/artifacts/automation/files/src/global.d.ts +1 -0
  131. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/agents/agent.ts +89 -0
  132. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/index.ts +212 -0
  133. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/client.ts +17 -0
  134. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/index.ts +214 -0
  135. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/storage/index.ts +8 -0
  136. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/tools/exampleTool.ts +71 -0
  137. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/workflows/workflow.ts +203 -0
  138. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/cronTriggers.ts +61 -0
  139. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/exampleConnectorTrigger.ts +153 -0
  140. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/slackTriggers.ts +638 -0
  141. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/telegramTriggers.ts +94 -0
  142. package/.local/skills/artifacts/artifacts/automation/files/tests/testCronAutomation.ts +86 -0
  143. package/.local/skills/artifacts/artifacts/automation/files/tests/testWebhookAutomation.ts +118 -0
  144. package/.local/skills/artifacts/artifacts/automation/files/tsconfig.json +26 -0
  145. package/.local/skills/artifacts/artifacts/data-visualization/artifact.yaml +48 -0
  146. package/.local/skills/artifacts/artifacts/expo/OWNERS +2 -0
  147. package/.local/skills/artifacts/artifacts/expo/artifact.yaml +47 -0
  148. package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/_layout.tsx +86 -0
  149. package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/index.tsx +28 -0
  150. package/.local/skills/artifacts/artifacts/expo/files/app/+not-found.tsx +45 -0
  151. package/.local/skills/artifacts/artifacts/expo/files/app/_layout.tsx +60 -0
  152. package/.local/skills/artifacts/artifacts/expo/files/app.json.template +38 -0
  153. package/.local/skills/artifacts/artifacts/expo/files/assets/images/icon.png +0 -0
  154. package/.local/skills/artifacts/artifacts/expo/files/babel.config.js +6 -0
  155. package/.local/skills/artifacts/artifacts/expo/files/components/ErrorBoundary.tsx +54 -0
  156. package/.local/skills/artifacts/artifacts/expo/files/components/ErrorFallback.tsx +278 -0
  157. package/.local/skills/artifacts/artifacts/expo/files/components/KeyboardAwareScrollViewCompat.tsx +29 -0
  158. package/.local/skills/artifacts/artifacts/expo/files/constants/colors.ts +59 -0
  159. package/.local/skills/artifacts/artifacts/expo/files/hooks/useColors.ts +24 -0
  160. package/.local/skills/artifacts/artifacts/expo/files/metro.config.js +3 -0
  161. package/.local/skills/artifacts/artifacts/expo/files/package.json.template +58 -0
  162. package/.local/skills/artifacts/artifacts/expo/files/scripts/build.js +573 -0
  163. package/.local/skills/artifacts/artifacts/expo/files/server/serve.js +135 -0
  164. package/.local/skills/artifacts/artifacts/expo/files/server/templates/landing-page.html +460 -0
  165. package/.local/skills/artifacts/artifacts/expo/files/tsconfig.json +23 -0
  166. package/.local/skills/artifacts/artifacts/mockup-sandbox/artifact.yaml +15 -0
  167. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/components.json +21 -0
  168. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/index.html +31 -0
  169. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/mockupPreviewPlugin.ts +199 -0
  170. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/package.json.template +75 -0
  171. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/public/favicon.svg +3 -0
  172. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/.generated/mockup-components.ts +3 -0
  173. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/App.tsx +146 -0
  174. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/accordion.tsx +55 -0
  175. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert-dialog.tsx +139 -0
  176. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert.tsx +59 -0
  177. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/aspect-ratio.tsx +5 -0
  178. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/avatar.tsx +50 -0
  179. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/badge.tsx +43 -0
  180. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/breadcrumb.tsx +115 -0
  181. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button-group.tsx +83 -0
  182. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button.tsx +65 -0
  183. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/calendar.tsx +213 -0
  184. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/card.tsx +76 -0
  185. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/carousel.tsx +260 -0
  186. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/chart.tsx +367 -0
  187. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/checkbox.tsx +28 -0
  188. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/collapsible.tsx +11 -0
  189. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/command.tsx +153 -0
  190. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/context-menu.tsx +198 -0
  191. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dialog.tsx +120 -0
  192. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/drawer.tsx +116 -0
  193. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dropdown-menu.tsx +201 -0
  194. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/empty.tsx +104 -0
  195. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/field.tsx +244 -0
  196. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/form.tsx +176 -0
  197. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/hover-card.tsx +27 -0
  198. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-group.tsx +168 -0
  199. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-otp.tsx +69 -0
  200. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input.tsx +22 -0
  201. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/item.tsx +193 -0
  202. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/kbd.tsx +28 -0
  203. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/label.tsx +26 -0
  204. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/menubar.tsx +254 -0
  205. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/navigation-menu.tsx +128 -0
  206. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/pagination.tsx +117 -0
  207. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/popover.tsx +31 -0
  208. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/progress.tsx +28 -0
  209. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/radio-group.tsx +42 -0
  210. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/resizable.tsx +45 -0
  211. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/scroll-area.tsx +46 -0
  212. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/select.tsx +159 -0
  213. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/separator.tsx +29 -0
  214. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sheet.tsx +140 -0
  215. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sidebar.tsx +727 -0
  216. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/skeleton.tsx +15 -0
  217. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/slider.tsx +26 -0
  218. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sonner.tsx +31 -0
  219. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/spinner.tsx +16 -0
  220. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/switch.tsx +27 -0
  221. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/table.tsx +120 -0
  222. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tabs.tsx +53 -0
  223. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/textarea.tsx +22 -0
  224. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toast.tsx +127 -0
  225. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toaster.tsx +33 -0
  226. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle-group.tsx +61 -0
  227. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle.tsx +43 -0
  228. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tooltip.tsx +32 -0
  229. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-mobile.tsx +19 -0
  230. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-toast.ts +189 -0
  231. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/index.css +158 -0
  232. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/lib/utils.ts +6 -0
  233. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/main.tsx +5 -0
  234. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/tsconfig.json +20 -0
  235. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/vite.config.ts +72 -0
  236. package/.local/skills/artifacts/artifacts/react-vite/artifact.yaml +41 -0
  237. package/.local/skills/artifacts/artifacts/react-vite/files/components.json +20 -0
  238. package/.local/skills/artifacts/artifacts/react-vite/files/index.html.template +24 -0
  239. package/.local/skills/artifacts/artifacts/react-vite/files/package.json.template +77 -0
  240. package/.local/skills/artifacts/artifacts/react-vite/files/public/favicon.svg +3 -0
  241. package/.local/skills/artifacts/artifacts/react-vite/files/public/robots.txt +2 -0
  242. package/.local/skills/artifacts/artifacts/react-vite/files/src/App.tsx +42 -0
  243. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/accordion.tsx +55 -0
  244. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert-dialog.tsx +139 -0
  245. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert.tsx +59 -0
  246. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/aspect-ratio.tsx +5 -0
  247. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/avatar.tsx +50 -0
  248. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/badge.tsx +43 -0
  249. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/breadcrumb.tsx +115 -0
  250. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button-group.tsx +83 -0
  251. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button.tsx +65 -0
  252. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/calendar.tsx +213 -0
  253. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/card.tsx +76 -0
  254. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/carousel.tsx +260 -0
  255. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/chart.tsx +367 -0
  256. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/checkbox.tsx +28 -0
  257. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/collapsible.tsx +11 -0
  258. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/command.tsx +153 -0
  259. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/context-menu.tsx +198 -0
  260. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dialog.tsx +120 -0
  261. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/drawer.tsx +116 -0
  262. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dropdown-menu.tsx +201 -0
  263. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/empty.tsx +104 -0
  264. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/field.tsx +244 -0
  265. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/form.tsx +176 -0
  266. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/hover-card.tsx +27 -0
  267. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-group.tsx +168 -0
  268. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-otp.tsx +69 -0
  269. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input.tsx +22 -0
  270. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/item.tsx +193 -0
  271. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/kbd.tsx +28 -0
  272. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/label.tsx +26 -0
  273. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/menubar.tsx +254 -0
  274. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/navigation-menu.tsx +128 -0
  275. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/pagination.tsx +117 -0
  276. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/popover.tsx +31 -0
  277. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/progress.tsx +28 -0
  278. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/radio-group.tsx +42 -0
  279. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/resizable.tsx +45 -0
  280. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/scroll-area.tsx +46 -0
  281. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/select.tsx +159 -0
  282. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/separator.tsx +29 -0
  283. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sheet.tsx +140 -0
  284. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sidebar.tsx +727 -0
  285. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/skeleton.tsx +15 -0
  286. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/slider.tsx +26 -0
  287. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sonner.tsx +31 -0
  288. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/spinner.tsx +16 -0
  289. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/switch.tsx +27 -0
  290. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/table.tsx +120 -0
  291. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tabs.tsx +53 -0
  292. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/textarea.tsx +22 -0
  293. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toast.tsx +127 -0
  294. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toaster.tsx +33 -0
  295. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle-group.tsx +61 -0
  296. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle.tsx +43 -0
  297. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tooltip.tsx +32 -0
  298. package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-mobile.tsx +19 -0
  299. package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-toast.ts +191 -0
  300. package/.local/skills/artifacts/artifacts/react-vite/files/src/index.css +393 -0
  301. package/.local/skills/artifacts/artifacts/react-vite/files/src/lib/utils.ts +6 -0
  302. package/.local/skills/artifacts/artifacts/react-vite/files/src/main.tsx +5 -0
  303. package/.local/skills/artifacts/artifacts/react-vite/files/src/pages/not-found.tsx +21 -0
  304. package/.local/skills/artifacts/artifacts/react-vite/files/tsconfig.json +22 -0
  305. package/.local/skills/artifacts/artifacts/react-vite/files/vite.config.ts +75 -0
  306. package/.local/skills/artifacts/artifacts/slides/artifact.yaml +33 -0
  307. package/.local/skills/artifacts/artifacts/slides/files/index.html.template +46 -0
  308. package/.local/skills/artifacts/artifacts/slides/files/package.json.template +30 -0
  309. package/.local/skills/artifacts/artifacts/slides/files/public/favicon.svg +3 -0
  310. package/.local/skills/artifacts/artifacts/slides/files/scripts/validate-slides.ts +193 -0
  311. package/.local/skills/artifacts/artifacts/slides/files/src/App.tsx +251 -0
  312. package/.local/skills/artifacts/artifacts/slides/files/src/data/slides-manifest.json +1 -0
  313. package/.local/skills/artifacts/artifacts/slides/files/src/data/slidesManifestSchema.ts +33 -0
  314. package/.local/skills/artifacts/artifacts/slides/files/src/index.css +48 -0
  315. package/.local/skills/artifacts/artifacts/slides/files/src/main.tsx +14 -0
  316. package/.local/skills/artifacts/artifacts/slides/files/src/slideLoader.ts +51 -0
  317. package/.local/skills/artifacts/artifacts/slides/files/tsconfig.json +17 -0
  318. package/.local/skills/artifacts/artifacts/slides/files/vite.config.ts +74 -0
  319. package/.local/skills/artifacts/artifacts/video-js/artifact.yaml +38 -0
  320. package/.local/skills/artifacts/artifacts/video-js/files/index.html.template +27 -0
  321. package/.local/skills/artifacts/artifacts/video-js/files/package.json.template +36 -0
  322. package/.local/skills/artifacts/artifacts/video-js/files/public/favicon.svg +3 -0
  323. package/.local/skills/artifacts/artifacts/video-js/files/scripts/validate-recording.sh +38 -0
  324. package/.local/skills/artifacts/artifacts/video-js/files/src/App.tsx +5 -0
  325. package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/ReplitLoadingScene.tsx +105 -0
  326. package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/VideoTemplate.tsx +30 -0
  327. package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/index.ts +1 -0
  328. package/.local/skills/artifacts/artifacts/video-js/files/src/hooks/use-mobile.tsx +19 -0
  329. package/.local/skills/artifacts/artifacts/video-js/files/src/index.css +50 -0
  330. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/utils.ts +6 -0
  331. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/animations.ts +239 -0
  332. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/hooks.ts +104 -0
  333. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/index.ts +19 -0
  334. package/.local/skills/artifacts/artifacts/video-js/files/src/main.tsx +5 -0
  335. package/.local/skills/artifacts/artifacts/video-js/files/tsconfig.json +16 -0
  336. package/.local/skills/artifacts/artifacts/video-js/files/vite.config.ts +79 -0
  337. package/.local/skills/artifacts/bootstrap-legacy.js +115 -0
  338. package/.local/skills/artifacts/bootstrap.js +118 -0
  339. package/.local/skills/artifacts/references/multi-artifact-creation.md +94 -0
  340. package/.local/skills/canvas/.fingerprint +1 -0
  341. package/.local/skills/canvas/SKILL.md +534 -0
  342. package/.local/skills/canvas/__init__.py +1 -0
  343. package/.local/skills/code_review/.fingerprint +1 -0
  344. package/.local/skills/code_review/SKILL.md +82 -0
  345. package/.local/skills/database/.fingerprint +1 -0
  346. package/.local/skills/database/SKILL.md +351 -0
  347. package/.local/skills/database/references/database-migrations-on-publish.md +57 -0
  348. package/.local/skills/delegation/.fingerprint +1 -0
  349. package/.local/skills/delegation/SKILL.md +200 -0
  350. package/.local/skills/deployment/.fingerprint +1 -0
  351. package/.local/skills/deployment/SKILL.md +261 -0
  352. package/.local/skills/deployment/references/deployment-failure-debugging.md +243 -0
  353. package/.local/skills/deployment/references/deployment-logs.md +147 -0
  354. package/.local/skills/design/.fingerprint +1 -0
  355. package/.local/skills/design/SKILL.md +235 -0
  356. package/.local/skills/design-exploration/.fingerprint +1 -0
  357. package/.local/skills/design-exploration/SKILL.md +95 -0
  358. package/.local/skills/diagnostics/.fingerprint +1 -0
  359. package/.local/skills/diagnostics/SKILL.md +122 -0
  360. package/.local/skills/environment-secrets/.fingerprint +1 -0
  361. package/.local/skills/environment-secrets/SKILL.md +201 -0
  362. package/.local/skills/expo/.fingerprint +1 -0
  363. package/.local/skills/expo/OWNERS +2 -0
  364. package/.local/skills/expo/SKILL.md +298 -0
  365. package/.local/skills/expo/references/design_and_aesthetics.md +141 -0
  366. package/.local/skills/expo/references/device_features_and_permissions.md +48 -0
  367. package/.local/skills/expo/references/first_build.md +114 -0
  368. package/.local/skills/expo/references/react_context.md +54 -0
  369. package/.local/skills/external_apis/.fingerprint +1 -0
  370. package/.local/skills/external_apis/SKILL.md +25 -0
  371. package/.local/skills/external_apis/references/brave.md +116 -0
  372. package/.local/skills/external_apis/references/elevenlabs.md +44 -0
  373. package/.local/skills/external_apis/references/exa.md +34 -0
  374. package/.local/skills/external_apis/references/firecrawl.md +37 -0
  375. package/.local/skills/external_apis/references/nano_banana.md +33 -0
  376. package/.local/skills/follow-up-tasks/.fingerprint +1 -0
  377. package/.local/skills/follow-up-tasks/SKILL.md +80 -0
  378. package/.local/skills/image-search/.fingerprint +1 -0
  379. package/.local/skills/image-search/SKILL.md +150 -0
  380. package/.local/skills/integrations/.fingerprint +1 -0
  381. package/.local/skills/integrations/SKILL.md +205 -0
  382. package/.local/skills/media-generation/.fingerprint +1 -0
  383. package/.local/skills/media-generation/SKILL.md +170 -0
  384. package/.local/skills/media-generation/audio_generation.md +138 -0
  385. package/.local/skills/media-generation/video_generation.md +82 -0
  386. package/.local/skills/mockup-extract/.fingerprint +1 -0
  387. package/.local/skills/mockup-extract/SKILL.md +123 -0
  388. package/.local/skills/mockup-graduate/.fingerprint +1 -0
  389. package/.local/skills/mockup-graduate/SKILL.md +97 -0
  390. package/.local/skills/mockup-sandbox/.fingerprint +1 -0
  391. package/.local/skills/mockup-sandbox/SKILL.md +750 -0
  392. package/.local/skills/package-management/.fingerprint +1 -0
  393. package/.local/skills/package-management/SKILL.md +264 -0
  394. package/.local/skills/post_merge_setup/.fingerprint +1 -0
  395. package/.local/skills/post_merge_setup/SKILL.md +102 -0
  396. package/.local/skills/project_tasks/.fingerprint +1 -0
  397. package/.local/skills/project_tasks/SKILL.md +361 -0
  398. package/.local/skills/query-integration-data/.fingerprint +1 -0
  399. package/.local/skills/query-integration-data/SKILL.md +385 -0
  400. package/.local/skills/react-vite/.fingerprint +1 -0
  401. package/.local/skills/react-vite/SKILL.md +110 -0
  402. package/.local/skills/react-vite/references/frontend_general_rules.md +66 -0
  403. package/.local/skills/react-vite/references/seo.md +158 -0
  404. package/.local/skills/remove-image-background/.fingerprint +1 -0
  405. package/.local/skills/remove-image-background/SKILL.md +55 -0
  406. package/.local/skills/repl_setup/.fingerprint +1 -0
  407. package/.local/skills/repl_setup/SKILL.md +90 -0
  408. package/.local/skills/repl_setup/references/angular.md +103 -0
  409. package/.local/skills/repl_setup/references/react_vite.md +121 -0
  410. package/.local/skills/repl_setup/references/vue.md +102 -0
  411. package/.local/skills/replit-docs/.fingerprint +1 -0
  412. package/.local/skills/replit-docs/SKILL.md +81 -0
  413. package/.local/skills/revenuecat/.fingerprint +1 -0
  414. package/.local/skills/revenuecat/SKILL.md +133 -0
  415. package/.local/skills/revenuecat/references/initial-setup.md +566 -0
  416. package/.local/skills/revenuecat/references/replit-revenuecat-sdk-docs.md +279 -0
  417. package/.local/skills/revenuecat/references/subsequent-management.md +63 -0
  418. package/.local/skills/security_scan/.fingerprint +1 -0
  419. package/.local/skills/security_scan/SKILL.md +51 -0
  420. package/.local/skills/skill-authoring/.fingerprint +1 -0
  421. package/.local/skills/skill-authoring/SKILL.md +99 -0
  422. package/.local/skills/slides/.fingerprint +1 -0
  423. package/.local/skills/slides/SKILL.md +523 -0
  424. package/.local/skills/slides/references/brand_research.md +86 -0
  425. package/.local/skills/slides/references/export_failures.md +36 -0
  426. package/.local/skills/slides/references/exporting.md +49 -0
  427. package/.local/skills/slides/references/importing.md +40 -0
  428. package/.local/skills/slides/references/visual_qa.md +121 -0
  429. package/.local/skills/slides/templates/90s-board-deck.md +285 -0
  430. package/.local/skills/slides/templates/academic-lecture.md +437 -0
  431. package/.local/skills/slides/templates/adventure-outdoor.md +845 -0
  432. package/.local/skills/slides/templates/analytics-dashboard.md +407 -0
  433. package/.local/skills/slides/templates/annual-report-cover.md +592 -0
  434. package/.local/skills/slides/templates/apple-minimal.md +570 -0
  435. package/.local/skills/slides/templates/architecture-studio.md +339 -0
  436. package/.local/skills/slides/templates/arctic-expedition.md +582 -0
  437. package/.local/skills/slides/templates/arctic-minimal.md +364 -0
  438. package/.local/skills/slides/templates/art-deco.md +308 -0
  439. package/.local/skills/slides/templates/artisan-ceramics.md +659 -0
  440. package/.local/skills/slides/templates/artisan-food.md +709 -0
  441. package/.local/skills/slides/templates/artisanal-chalkboard.md +623 -0
  442. package/.local/skills/slides/templates/astronomy-log.md +562 -0
  443. package/.local/skills/slides/templates/aurora-expedition.md +754 -0
  444. package/.local/skills/slides/templates/automotive-electric.md +339 -0
  445. package/.local/skills/slides/templates/bauhaus-avant-garde.md +443 -0
  446. package/.local/skills/slides/templates/bioluminescent-sea.md +814 -0
  447. package/.local/skills/slides/templates/biophilic-urban.md +565 -0
  448. package/.local/skills/slides/templates/blackboard-chalk.md +517 -0
  449. package/.local/skills/slides/templates/blueprint.md +478 -0
  450. package/.local/skills/slides/templates/botanical-index.md +822 -0
  451. package/.local/skills/slides/templates/botanical-wellness.md +611 -0
  452. package/.local/skills/slides/templates/brand-book-page.md +466 -0
  453. package/.local/skills/slides/templates/brutalist-concrete.md +362 -0
  454. package/.local/skills/slides/templates/brutalist-studio.md +325 -0
  455. package/.local/skills/slides/templates/brutalist-web-punk.md +591 -0
  456. package/.local/skills/slides/templates/celestial-observatory.md +453 -0
  457. package/.local/skills/slides/templates/ceramics-artisan.md +740 -0
  458. package/.local/skills/slides/templates/cinema-verite.md +415 -0
  459. package/.local/skills/slides/templates/claymorphism.md +737 -0
  460. package/.local/skills/slides/templates/collage-zine.md +357 -0
  461. package/.local/skills/slides/templates/copper-sage.md +325 -0
  462. package/.local/skills/slides/templates/coral-reef.md +508 -0
  463. package/.local/skills/slides/templates/corporate-grid.md +331 -0
  464. package/.local/skills/slides/templates/corporate-memphis-flat.md +938 -0
  465. package/.local/skills/slides/templates/cosmos-explorer.md +998 -0
  466. package/.local/skills/slides/templates/cpg-coffee.md +850 -0
  467. package/.local/skills/slides/templates/craft-coffee-roast.md +693 -0
  468. package/.local/skills/slides/templates/creative-agency.md +244 -0
  469. package/.local/skills/slides/templates/creative-director.md +875 -0
  470. package/.local/skills/slides/templates/culinary-brand.md +698 -0
  471. package/.local/skills/slides/templates/de-stijl-construct.md +320 -0
  472. package/.local/skills/slides/templates/desert-dunes-photo.md +483 -0
  473. package/.local/skills/slides/templates/desert-mirror.md +577 -0
  474. package/.local/skills/slides/templates/desert-modernism.md +439 -0
  475. package/.local/skills/slides/templates/developer-api-docs.md +654 -0
  476. package/.local/skills/slides/templates/editorial-magazine.md +694 -0
  477. package/.local/skills/slides/templates/engineering-blueprint.md +730 -0
  478. package/.local/skills/slides/templates/executive-mono.md +363 -0
  479. package/.local/skills/slides/templates/expedition-peak.md +298 -0
  480. package/.local/skills/slides/templates/fashion-campaign.md +681 -0
  481. package/.local/skills/slides/templates/fashion-editorial.md +497 -0
  482. package/.local/skills/slides/templates/figma-geometric.md +420 -0
  483. package/.local/skills/slides/templates/film-noir.md +857 -0
  484. package/.local/skills/slides/templates/fitness-athletics.md +663 -0
  485. package/.local/skills/slides/templates/flat-vector.md +912 -0
  486. package/.local/skills/slides/templates/fluid-luxe.md +665 -0
  487. package/.local/skills/slides/templates/furniture-brand.md +505 -0
  488. package/.local/skills/slides/templates/gallery-modern.md +436 -0
  489. package/.local/skills/slides/templates/gaming-esports.md +410 -0
  490. package/.local/skills/slides/templates/geodesic-future.md +368 -0
  491. package/.local/skills/slides/templates/glass-artisan.md +666 -0
  492. package/.local/skills/slides/templates/glassmorphism.md +320 -0
  493. package/.local/skills/slides/templates/greenhouse-botanical.md +662 -0
  494. package/.local/skills/slides/templates/healthcare-clarity.md +468 -0
  495. package/.local/skills/slides/templates/holographic-drop.md +663 -0
  496. package/.local/skills/slides/templates/hospitality-resort.md +608 -0
  497. package/.local/skills/slides/templates/hypercar-launch.md +557 -0
  498. package/.local/skills/slides/templates/infographic-title.md +306 -0
  499. package/.local/skills/slides/templates/ink-wash.md +244 -0
  500. package/.local/skills/slides/templates/investor-memo.md +509 -0
  501. package/.local/skills/slides/templates/isometric-data.md +703 -0
  502. package/.local/skills/slides/templates/ivory-boardroom.md +439 -0
  503. package/.local/skills/slides/templates/japanese-minimal.md +308 -0
  504. package/.local/skills/slides/templates/jazz-blue-note.md +478 -0
  505. package/.local/skills/slides/templates/kinetic-type.md +206 -0
  506. package/.local/skills/slides/templates/lagoon-luxury.md +320 -0
  507. package/.local/skills/slides/templates/lavender-pastoral.md +577 -0
  508. package/.local/skills/slides/templates/linear-precise.md +460 -0
  509. package/.local/skills/slides/templates/lineart-sketch.md +930 -0
  510. package/.local/skills/slides/templates/lost-temple.md +689 -0
  511. package/.local/skills/slides/templates/luxury-fashion.md +269 -0
  512. package/.local/skills/slides/templates/luxury-watch.md +678 -0
  513. package/.local/skills/slides/templates/marble-elegance.md +673 -0
  514. package/.local/skills/slides/templates/mediterranean-travel.md +811 -0
  515. package/.local/skills/slides/templates/memphis-design.md +426 -0
  516. package/.local/skills/slides/templates/midnight-jazz.md +260 -0
  517. package/.local/skills/slides/templates/minimalist-poster.md +538 -0
  518. package/.local/skills/slides/templates/molten-craft.md +743 -0
  519. package/.local/skills/slides/templates/moroccan-tile.md +738 -0
  520. package/.local/skills/slides/templates/motorsport.md +782 -0
  521. package/.local/skills/slides/templates/mountain-drift.md +311 -0
  522. package/.local/skills/slides/templates/music-label.md +641 -0
  523. package/.local/skills/slides/templates/neo-tokyo.md +637 -0
  524. package/.local/skills/slides/templates/neobrutalism.md +334 -0
  525. package/.local/skills/slides/templates/newspaper-broadsheet.md +687 -0
  526. package/.local/skills/slides/templates/noir-fragrance.md +672 -0
  527. package/.local/skills/slides/templates/non-profit-impact.md +320 -0
  528. package/.local/skills/slides/templates/ocean-breeze.md +398 -0
  529. package/.local/skills/slides/templates/origami-couture.md +636 -0
  530. package/.local/skills/slides/templates/origami-paper.md +308 -0
  531. package/.local/skills/slides/templates/pastel-playground.md +1114 -0
  532. package/.local/skills/slides/templates/perfume-noir.md +646 -0
  533. package/.local/skills/slides/templates/prairie-storm.md +625 -0
  534. package/.local/skills/slides/templates/private-equity-dark.md +506 -0
  535. package/.local/skills/slides/templates/renaissance-florals.md +225 -0
  536. package/.local/skills/slides/templates/retro-print.md +880 -0
  537. package/.local/skills/slides/templates/retro-vinyl-sleeve.md +229 -0
  538. package/.local/skills/slides/templates/riso-zine.md +1094 -0
  539. package/.local/skills/slides/templates/risograph.md +1151 -0
  540. package/.local/skills/slides/templates/saas-product-launch.md +972 -0
  541. package/.local/skills/slides/templates/scandinavian.md +372 -0
  542. package/.local/skills/slides/templates/skater-culture.md +583 -0
  543. package/.local/skills/slides/templates/slate-modern.md +469 -0
  544. package/.local/skills/slides/templates/sneaker-drop.md +1006 -0
  545. package/.local/skills/slides/templates/social-campaign.md +321 -0
  546. package/.local/skills/slides/templates/stained-glass.md +574 -0
  547. package/.local/skills/slides/templates/strategy-one-pager.md +508 -0
  548. package/.local/skills/slides/templates/street-drop.md +677 -0
  549. package/.local/skills/slides/templates/street-mural.md +588 -0
  550. package/.local/skills/slides/templates/studio-noir.md +466 -0
  551. package/.local/skills/slides/templates/sustainability-esg.md +686 -0
  552. package/.local/skills/slides/templates/swiss-archive.md +648 -0
  553. package/.local/skills/slides/templates/swiss-typographic.md +364 -0
  554. package/.local/skills/slides/templates/tea-ceremony.md +456 -0
  555. package/.local/skills/slides/templates/tech-earbuds.md +870 -0
  556. package/.local/skills/slides/templates/terracotta-studio.md +235 -0
  557. package/.local/skills/slides/templates/thesis-defense.md +390 -0
  558. package/.local/skills/slides/templates/travel-aerial.md +648 -0
  559. package/.local/skills/slides/templates/treasury-policy.md +475 -0
  560. package/.local/skills/slides/templates/tropical-lush.md +332 -0
  561. package/.local/skills/slides/templates/underwater-dream.md +627 -0
  562. package/.local/skills/slides/templates/urban-golden.md +342 -0
  563. package/.local/skills/slides/templates/vintage-apothecary.md +552 -0
  564. package/.local/skills/slides/templates/vintage-ticket-stub.md +637 -0
  565. package/.local/skills/slides/templates/vinyl-crate.md +550 -0
  566. package/.local/skills/slides/templates/vision-editorial.md +612 -0
  567. package/.local/skills/slides/templates/volcanic-edge.md +347 -0
  568. package/.local/skills/slides/templates/watercolor-city.md +827 -0
  569. package/.local/skills/slides/templates/wine-spirits.md +203 -0
  570. package/.local/skills/slides/templates/wireframe-prototype.md +718 -0
  571. package/.local/skills/slides/templates/workspace-design.md +782 -0
  572. package/.local/skills/slides/templates/workspace-modern.md +406 -0
  573. package/.local/skills/slides/templates/zen-meditation.md +284 -0
  574. package/.local/skills/slides/templates/zen-void.md +244 -0
  575. package/.local/skills/stripe/.fingerprint +1 -0
  576. package/.local/skills/stripe/SKILL.md +455 -0
  577. package/.local/skills/stripe/references/code-templates.md +588 -0
  578. package/.local/skills/threat_modeling/.fingerprint +1 -0
  579. package/.local/skills/threat_modeling/SKILL.md +240 -0
  580. package/.local/skills/validation/.fingerprint +1 -0
  581. package/.local/skills/validation/SKILL.md +237 -0
  582. package/.local/skills/video-js/.fingerprint +1 -0
  583. package/.local/skills/video-js/SKILL.md +793 -0
  584. package/.local/skills/video-js/references/audio.md +237 -0
  585. package/.local/skills/video-js/references/finalize_playback.md +16 -0
  586. package/.local/skills/video-js/references/first_build.md +87 -0
  587. package/.local/skills/video-js/references/scene_selectors.md +428 -0
  588. package/.local/skills/web-search/.fingerprint +1 -0
  589. package/.local/skills/web-search/SKILL.md +110 -0
  590. package/.local/skills/whop/.fingerprint +1 -0
  591. package/.local/skills/whop/SKILL.md +104 -0
  592. package/.local/skills/whop/references/code-templates.md +66 -0
  593. package/.local/skills/whop/references/whop-api.mjs +22 -0
  594. package/.local/skills/whop/references/whop-mcp.mjs +40 -0
  595. package/.local/skills/whop/references/whopClient.ts +54 -0
  596. package/.local/skills/workflows/.fingerprint +1 -0
  597. package/.local/skills/workflows/SKILL.md +245 -0
  598. package/.local/state/replit/agent/.agent_state_037313043e76b5c652f276153ea014a68570e145.bin +0 -0
  599. package/.local/state/replit/agent/.agent_state_0f5361c2a53ab324b2a941a797f6494891be084c.bin +0 -0
  600. package/.local/state/replit/agent/.agent_state_4272443827dc90eac8c5b1963a34ee86da70bb99.bin +0 -0
  601. package/.local/state/replit/agent/.agent_state_4f14655950cbd611b228b4f0e1f664b66a56af24.bin +0 -0
  602. package/.local/state/replit/agent/.agent_state_ce28955a30856aa3d095b3568c322c8ec098993f.bin +0 -0
  603. package/.local/state/replit/agent/.agent_state_ec5347d04ebfbf6cf850fe04e15590d423e96d1d.bin +0 -0
  604. package/.local/state/replit/agent/.agent_state_f68f8c104d815ccc387290f0fba2c87c818d29f1.bin +0 -0
  605. package/.local/state/replit/agent/.agent_state_f87c1803a179510408c57c7a380c26f5c2197a30.bin +0 -0
  606. package/.local/state/replit/agent/.agent_state_main.bin +0 -0
  607. package/.local/state/replit/agent/.latest.json +1 -0
  608. package/.local/state/replit/agent/repl_state.bin +0 -0
  609. package/.local/state/scribe/scribe.db +0 -0
  610. package/.local/state/scribe/scribe.db-shm +0 -0
  611. package/.local/state/scribe/scribe.db-wal +0 -0
  612. package/.local/state/workflow-logs/2tfQP52ibxJTy4lpZ7_JX/start_application.shell.exec.0 +27 -0
  613. package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.external.managed.0 +31 -0
  614. package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.json +1 -0
  615. package/.local/state/workflow-logs/85n-z_SHy4JSGaUeJIcxy/start_application.shell.exec.0 +18 -0
  616. package/.local/state/workflow-logs/GIL2Ql5124lrEqGrfRO4k/start_application.shell.exec.0 +222 -0
  617. package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.external.managed.0 +45 -0
  618. package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.json +1 -0
  619. package/.local/state/workflow-logs/OKp1t-fEO5U_zQi1SKOQ-/start_application.shell.exec.0 +10 -0
  620. package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.external.managed.0 +43 -0
  621. package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.json +1 -0
  622. package/.local/state/workflow-logs/UDYycRqPV-N4B7whZP-yX/start_application.shell.exec.0 +252 -0
  623. package/.local/state/workflow-logs/V8Anmvz-HuvAztflZ8yCo/start_application.shell.exec.0 +87 -0
  624. package/.local/state/workflow-logs/a5fMnjr9tCwoaFY93pYuN/start_application.shell.exec.0 +2519 -0
  625. package/.local/state/workflow-logs/ggFzYcdHfIlW0owP2pb0U/start_application.shell.exec.0 +28 -0
  626. package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.external.managed.0 +41 -0
  627. package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.json +1 -0
  628. package/.local/state/workflow-logs/nbLvtuGJXB0wPmnruB3BE/start_application.shell.exec.0 +199 -0
  629. package/.local/state/workflow-logs/uDhN6S0ypUEh0MphXaFGY/start_application.shell.exec.0 +73 -0
  630. package/.local/state/workflow-logs/xZqU5CdTivcY6KEDEcVmD/start_application.shell.exec.0 +17 -0
  631. package/.local/tasks/breadcrumb-component.md +89 -0
  632. package/.local/tasks/calendar-component.md +93 -0
  633. package/.local/tasks/invoicing-design-system-app.md +39 -0
  634. package/.local/tasks/task-1.md +42 -0
  635. package/.local/tasks/task-7.md +92 -0
  636. package/.local/tasks/task-8.md +96 -0
  637. package/.replit +34 -0
  638. package/.upm/store.json +1 -0
  639. package/README.md +121 -0
  640. package/app/dashboard/page.tsx +10 -0
  641. package/app/design-system/page.tsx +802 -0
  642. package/app/invoices/page.tsx +10 -0
  643. package/app/layout.tsx +28 -0
  644. package/app/login/page.tsx +5 -0
  645. package/app/page.tsx +93 -0
  646. package/app/signup/page.tsx +5 -0
  647. package/attached_assets/Colors_1779781016394.png +0 -0
  648. package/attached_assets/Navy_1779781016404.png +0 -0
  649. package/attached_assets/Orange_1779781016405.png +0 -0
  650. package/attached_assets/Screenshot_2026-05-26_at_1.14.29_PM_1779781472515.png +0 -0
  651. package/attached_assets/Screenshot_2026-05-26_at_11.28.20_AM_1779775171071.png +0 -0
  652. package/attached_assets/Screenshot_2026-05-26_at_2.04.42_PM_1779784485318.png +0 -0
  653. package/attached_assets/Typography_1779781016406.png +0 -0
  654. package/design-system/components/avatar.tsx +46 -0
  655. package/design-system/components/badge.tsx +34 -0
  656. package/design-system/components/breadcrumb.tsx +149 -0
  657. package/design-system/components/button.tsx +57 -0
  658. package/design-system/components/calendar.tsx +77 -0
  659. package/design-system/components/card.tsx +62 -0
  660. package/design-system/components/checkbox.tsx +27 -0
  661. package/design-system/components/date-picker.tsx +153 -0
  662. package/design-system/components/dialog.tsx +106 -0
  663. package/design-system/components/dropdown-menu.tsx +88 -0
  664. package/design-system/components/form-field.tsx +78 -0
  665. package/design-system/components/input.tsx +25 -0
  666. package/design-system/components/label.tsx +25 -0
  667. package/design-system/components/popover.tsx +30 -0
  668. package/design-system/components/radio-group.tsx +35 -0
  669. package/design-system/components/select.tsx +84 -0
  670. package/design-system/components/separator.tsx +24 -0
  671. package/design-system/components/switch.tsx +28 -0
  672. package/design-system/components/table.tsx +80 -0
  673. package/design-system/components/tabs.tsx +54 -0
  674. package/design-system/components/textarea.tsx +25 -0
  675. package/design-system/components/toast.tsx +118 -0
  676. package/design-system/components/toaster.tsx +38 -0
  677. package/design-system/components/tooltip.tsx +27 -0
  678. package/design-system/hooks/index.ts +2 -0
  679. package/design-system/hooks/use-media-query.ts +27 -0
  680. package/design-system/hooks/use-toast.ts +91 -0
  681. package/design-system/index.ts +36 -0
  682. package/design-system/lib/cn.ts +6 -0
  683. package/design-system/styles.css +142 -0
  684. package/design-system/tokens/tokens.css +149 -0
  685. package/design-system/tokens/tokens.ts +190 -0
  686. package/next.config.mjs +6 -0
  687. package/package.json +46 -0
  688. package/postcss.config.mjs +6 -0
  689. package/screens/_shared/app-shell.tsx +145 -0
  690. package/screens/auth/auth-screen.tsx +156 -0
  691. package/screens/dashboard/dashboard-screen.tsx +207 -0
  692. package/screens/index.ts +17 -0
  693. package/screens/invoices/invoices-screen.tsx +317 -0
  694. package/tailwind.config.ts +110 -0
  695. package/tsconfig.json +26 -0
@@ -0,0 +1,385 @@
1
+ ---
2
+ name: query-integration-data
3
+ description: Query and modify data in any connected integration (Linear, GitHub, HubSpot, Slack, Google services, etc.) or connected data warehouse (Databricks, Snowflake, BigQuery). Use listConnections() in the code_execution sandbox to get credentials, then call APIs directly. Supports read operations (queries, counts, exports) and write operations (create, update, delete).
4
+ ---
5
+
6
+ # Query Integration Data Skill
7
+
8
+ Connect to any Replit-supported integration to read or write data — query issues, create tickets, send messages, update contacts, manage files, etc. This also includes querying supported data warehouse integrations like Databricks, Snowflake, and BigQuery.
9
+
10
+ All code runs inline in the `code_execution` sandbox — no script files needed.
11
+
12
+ ## When to Use
13
+
14
+ Use this skill when the user asks you a **question in chat** that requires data from external services to answer, or when they need to perform data operations without building a visual interface.
15
+
16
+ - **Answer questions**: Query data to respond to user questions in the conversation (e.g., "How many issues were created this week?")
17
+ - **Fetch and export data**: Export data to CSV/JSON for later use or analysis
18
+ - **Write operations**: Create, update, delete, or modify data in a service
19
+ - **Ad-hoc queries**: One-time data lookups or investigations
20
+ - **Automate tasks**: Perform multi-step operations across the API
21
+
22
+ **Key point:** Use this skill when the output is an answer or data file, NOT when building a dashboard or visualization interface.
23
+
24
+ ## When NOT to Use
25
+
26
+ - **The user wants to create a dashboard, visualization, or analytics interface** - use the `data-visualization` skill (it handles data fetching internally)
27
+ - **The user asks to "build", "create", or "make" a dashboard/app with data** - use the `data-visualization` skill
28
+ - The user needs to add an integration to their app (use the `integrations` skill)
29
+ - Production database operations (use the database pane directly)
30
+ - Asks to check deployment or server logs (use the `deployment` skill)
31
+
32
+ ## File Structure
33
+
34
+ ```text
35
+ .agents/
36
+ └── outputs/ # Generated artifacts (CSV, JSON, etc.)
37
+ ```
38
+
39
+ Code runs inline in the `code_execution` sandbox — no script files are needed.
40
+
41
+ ## Workflow
42
+
43
+ ```text
44
+ 1. CHECK → listConnections(connectorName) to get existing credentials
45
+ ├─ connections exist → EXECUTE → OUTPUT
46
+ └─ empty array → SEARCH → LEARN → CLARIFY → setup via `integrations` skill → EXECUTE → OUTPUT
47
+ ```
48
+
49
+ - **CHECK**: Call `listConnections(connectorName)` in the `code_execution` sandbox. If it returns connections, you already have credentials — skip straight to EXECUTE.
50
+ - **SEARCH → CONNECT** (only when no connections exist): Use `searchIntegrations`, `proposeIntegration`, and `addIntegration` to set up a new connection. See the `integrations` skill for the full lifecycle details.
51
+ - **EXECUTE**: Write and run code in the `code_execution` sandbox.
52
+ - **OUTPUT**: Return the answer or confirmation to the user.
53
+
54
+ ## Getting Connection Credentials
55
+
56
+ ### Primary: `listConnections(connectorName)`
57
+
58
+ This is the main way to get credentials. It's a pre-registered function in the `code_execution` sandbox.
59
+
60
+ ```javascript
61
+ const conns = await listConnections('linear');
62
+ console.log(conns.map(c => ({ id: c.id, displayName: c.displayName, status: c.status })));
63
+ ```
64
+
65
+ Each connection object has:
66
+
67
+ - `id`, `connectorConfigId`, `status`, `displayName`, `metadata`, `environment`
68
+ - `settings` — credentials dict (access tokens, API keys, etc.)
69
+ - `getClient()` — returns the `settings` object for constructing SDK clients
70
+
71
+ Returns an empty array when no connections are configured.
72
+
73
+ ```javascript
74
+ const conns = await listConnections('linear');
75
+ if (conns.length > 0) {
76
+ const token = conns[0].settings.access_token;
77
+ const { LinearClient } = await import('@linear/sdk');
78
+ const client = new LinearClient({ accessToken: token });
79
+ // Ready to query
80
+ }
81
+ ```
82
+
83
+ ### Fallback: Setting Up a New Connection
84
+
85
+ If `listConnections` returns an empty array, the user hasn't connected the service yet. Use `searchIntegrations` to find the connector, then follow the `integrations` skill to walk the user through setup (`addIntegration` and `proposeIntegration` — order depends on integration type). After the connection is established, `listConnections` will return it.
86
+
87
+ ### Browse the Documentation
88
+
89
+ **Always browse `public_documentation_link`** before writing code, especially for write operations. This helps you understand:
90
+
91
+ - Required vs optional fields for creating resources
92
+ - Valid values for enums (status, priority, type, etc.)
93
+ - Relationships between resources (e.g., issues belong to projects)
94
+ - Rate limits and best practices
95
+
96
+ ## Clarifying Questions
97
+
98
+ **Before write operations, gather required information.** Many APIs require IDs or specific values that the user may not know.
99
+
100
+ ### When to Ask
101
+
102
+ Ask clarifying questions when the user's request requires:
103
+
104
+ - **Entity selection**: "Which project should this issue be created in?"
105
+ - **User assignment**: "Who should be assigned? Let me list the team members..."
106
+ - **Required fields**: "What priority - urgent, high, medium, or low?"
107
+ - **Ambiguous references**: "I found 3 projects matching 'backend'. Which one?"
108
+
109
+ ### Pattern: Fetch Options First
110
+
111
+ For write operations, often run a read query first to get valid options:
112
+
113
+ ```javascript
114
+ // User says: "Create a Linear ticket assigned to John"
115
+ // Problem: Need John's user ID, not just name
116
+
117
+ const conns = await listConnections('linear');
118
+ const { LinearClient } = await import('@linear/sdk');
119
+ const client = new LinearClient({ accessToken: conns[0].settings.access_token });
120
+
121
+ // Step 1: List users to find John's ID
122
+ const users = await client.users();
123
+ const john = users.nodes.find(u => u.name.includes('John'));
124
+
125
+ // Step 2: If ambiguous, ASK the user
126
+ // "I found John Smith and John Doe. Which one?"
127
+
128
+ // Step 3: Create with correct ID
129
+ await client.createIssue({ assigneeId: john.id, ... });
130
+ ```
131
+
132
+ ### Common Multi-Step Patterns
133
+
134
+ | Action | First fetch... |
135
+ | -------------------------- | ------------------------- |
136
+ | Create issue with assignee | List team members |
137
+ | Create issue in project | List projects |
138
+ | Set status/priority | Get valid workflow states |
139
+ | Add to channel | List channels |
140
+ | Assign to team | List teams |
141
+
142
+ ## Running Code in the Sandbox
143
+
144
+ All code runs in the `code_execution` sandbox. State persists across calls (notebook-style), so variables from one call are available in subsequent calls.
145
+
146
+ ### Read Operations
147
+
148
+ Query data and return results:
149
+
150
+ ```javascript
151
+ const conns = await listConnections('linear');
152
+ const { LinearClient } = await import('@linear/sdk');
153
+ const client = new LinearClient({ accessToken: conns[0].settings.access_token });
154
+
155
+ const issues = await client.issues({ first: 10 });
156
+ console.log(`Found ${issues.nodes.length} issues`);
157
+ for (const issue of issues.nodes) {
158
+ console.log(`${issue.identifier}: ${issue.title} [${issue.state?.name}]`);
159
+ }
160
+ ```
161
+
162
+ ### Write Operations
163
+
164
+ Create, update, or delete data:
165
+
166
+ ```javascript
167
+ const conns = await listConnections('linear');
168
+ const { LinearClient } = await import('@linear/sdk');
169
+ const client = new LinearClient({ accessToken: conns[0].settings.access_token });
170
+
171
+ // Create
172
+ const created = await client.createIssue({ teamId: team.id, title: "Fix login bug" });
173
+ console.log(`Created: ${created.issue?.identifier}`);
174
+
175
+ // Update
176
+ await client.updateIssue(issueId, { stateId: doneState.id });
177
+ console.log(`Updated: ${issueId}`);
178
+
179
+ // Delete
180
+ await client.deleteIssue(issueId);
181
+ console.log(`Deleted: ${issueId}`);
182
+ ```
183
+
184
+ ### Multi-Step Operations
185
+
186
+ Variables persist across `code_execution` calls, enabling multi-step workflows:
187
+
188
+ ```javascript
189
+ // Call 1: Get credentials and list teams
190
+ const conns = await listConnections('linear');
191
+ const { LinearClient } = await import('@linear/sdk');
192
+ const client = new LinearClient({ accessToken: conns[0].settings.access_token });
193
+
194
+ const teams = await client.teams();
195
+ const team = teams.nodes[0];
196
+ console.log(`Using team: ${team.name}`);
197
+
198
+ const users = await client.users();
199
+ const assignee = users.nodes.find(u => u.name === 'John');
200
+ console.log(`Found assignee: ${assignee?.name}`);
201
+ ```
202
+
203
+ ```javascript
204
+ // Call 2: Variables from Call 1 are still available
205
+ const issue = await client.createIssue({
206
+ teamId: team.id,
207
+ assigneeId: assignee?.id,
208
+ title: 'New feature request',
209
+ description: 'Details here...',
210
+ });
211
+ console.log(`Created ${issue.issue?.identifier}: New feature request`);
212
+ ```
213
+
214
+ ## Databricks
215
+
216
+ When the user wants to connect to Databricks, use the `databricks-m2m` connector (not the plain `databricks` connector).
217
+
218
+ ## Warehouse Data Exploration
219
+
220
+ When querying data warehouses (BigQuery, Snowflake, Databricks), large schemas can make serial exploration slow (7-10s per query round-trip). Use the parallel subagent pattern to explore schemas faster.
221
+
222
+ ### CRITICAL: Warehouse queries are billed per byte scanned
223
+
224
+ Warehouse targets (`bigquery`, `databricks`, `snowflake`) cost real money per query — a
225
+ careless `SELECT *` over a fact table can cost tens of dollars and a dashboard that
226
+ re-runs queries every few seconds can burn thousands of dollars per day. Before writing
227
+ any warehouse query (via `executeSql` or `executeSql({target: "bigquery"})`) follow
228
+ these rules:
229
+
230
+ - **Project exact columns** — never `SELECT *` on wide tables.
231
+ - **Always `LIMIT`** when exploring; `LIMIT 5`–`LIMIT 100` is plenty for a sample.
232
+ - **Scope by partition / cluster** — add `WHERE event_date >= ...` (or the table's
233
+ clustering column) so the warehouse prunes data and you are billed for a tiny slice.
234
+ - **Prefer pre-aggregated tables** (e.g. `_daily`, `_summary`) over raw event tables.
235
+ - **Diff-only reads** for anything incremental — `WHERE updated_at > :last_seen` and
236
+ persist `last_seen` so subsequent queries only scan the delta.
237
+ - **Cache repeated results locally** — if you run the same exploration query twice in
238
+ the same session, store the first result in a variable or `.agents/outputs/*.csv`
239
+ and reuse it instead of re-running the query.
240
+ - **Don't power a data app from this skill** — if the user is building a dashboard,
241
+ report, or explorer, hand off to the `data-visualization` skill so the app's API
242
+ server can cache results (15-min TTL). The `query-integration-data` skill is for
243
+ answering questions in chat, not for powering a live UI.
244
+
245
+ ### When to Use Parallel Exploration
246
+
247
+ Use this pattern when ALL of the following are true:
248
+
249
+ - The target is a **warehouse** connection (`bigquery`, `snowflake`, or `databricks`)
250
+ - The initial INFORMATION_SCHEMA query returns **15+ tables**
251
+ - The user's question is **not about a specific known table** (e.g., they're asking a broad question like "what's our revenue trend?" or "show me customer data")
252
+
253
+ If the schema has fewer than 15 tables, serial exploration is fast enough — just query tables one-by-one.
254
+
255
+ ### 4-Step Parallel Workflow
256
+
257
+ **Step 1: Schema Discovery** — Run a single `executeSql` call to get the full table list.
258
+
259
+ ```javascript
260
+ // BigQuery
261
+ const tables = await executeSql({ sqlQuery: `SELECT table_schema, table_name, row_count FROM \`project.region-us\`.INFORMATION_SCHEMA.TABLES WHERE table_schema NOT IN ('INFORMATION_SCHEMA') ORDER BY table_schema, table_name`, target: "bigquery" });
262
+
263
+ // Snowflake
264
+ const tables = await executeSql({ sqlQuery: `SELECT TABLE_SCHEMA, TABLE_NAME, ROW_COUNT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA') ORDER BY TABLE_SCHEMA, TABLE_NAME`, target: "snowflake" });
265
+
266
+ // Databricks
267
+ const tables = await executeSql({ sqlQuery: `SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema NOT IN ('information_schema') ORDER BY table_schema, table_name`, target: "databricks" });
268
+ ```
269
+
270
+ `INFORMATION_SCHEMA.TABLES` is a metadata read and is essentially free. Sampling rows
271
+ from the tables it returns is **not** free — see the next step.
272
+
273
+ **Step 2: Group Tables** — Partition the table list into 2-4 clusters:
274
+
275
+ - By schema/dataset name (e.g., `analytics.*`, `sales.*`, `marketing.*`)
276
+ - By name prefix (e.g., `dim_*`, `fact_*`, `stg_*`)
277
+ - By estimated relevance to the user's question (most-likely-relevant tables first)
278
+
279
+ **Step 3: Launch Parallel Subagents** — Start one `SMALL_TASK` subagent per group:
280
+
281
+ ```javascript
282
+ const group1 = await startAsyncSubagent({
283
+ task: `Explore these warehouse tables to answer: "${userQuestion}"
284
+
285
+ Connection: Use executeSql({ sqlQuery: "...", target: "bigquery" }) — always pass target.
286
+ Dialect: BigQuery (use backtick quoting for project.dataset.table)
287
+
288
+ Tables to explore:
289
+ - analytics.events
290
+ - analytics.sessions
291
+ - analytics.conversions
292
+
293
+ For each table:
294
+ 1. Run: SELECT column_name, data_type, is_partitioning_column FROM \`project.dataset\`.INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'TABLE_NAME'
295
+ 2. Identify the partition / cluster column from step 1 (e.g. event_date, _PARTITIONTIME).
296
+ 3. Sample rows — project exact columns, scope by partition, and LIMIT.
297
+ NEVER \`SELECT *\` on a fact table on a billed warehouse — \`LIMIT 5\` does not
298
+ undo the bytes scanned by selecting every column.
299
+ Pattern: SELECT <subset of columns from step 1>
300
+ FROM \`project.dataset.TABLE_NAME\`
301
+ WHERE <partition_col> >= CURRENT_DATE() - 7
302
+ LIMIT 5
303
+
304
+ Return your findings in this exact format:
305
+
306
+ ## Table Relevance
307
+ | Table | Relevant? | Why |
308
+ |-------|-----------|-----|
309
+ | ... | Yes/No | Brief reason |
310
+
311
+ ## Column Details (relevant tables only)
312
+ | Table | Column | Type | Notes |
313
+ |-------|--------|------|-------|
314
+ | ... | ... | ... | Key field, foreign key, metric, etc. |
315
+
316
+ ## Suggested Join Conditions
317
+ - table_a.id = table_b.a_id (describe relationship)
318
+
319
+ ## Key Findings
320
+ - Bullet points about data patterns, date ranges, notable values`,
321
+ specialization: 'SMALL_TASK',
322
+ relevantFiles: ['.local/skills/database/SKILL.md']
323
+ });
324
+
325
+ // Launch additional subagents for other groups (2-4 total)
326
+ const group2 = await startAsyncSubagent({ /* same pattern, different tables */ });
327
+ ```
328
+
329
+ **Step 4: Synthesize and Query** — Use the `wait_for_background_tasks` tool to wait for the schema-discovery subagents. Once they complete, read their outputs, combine the relevant tables/columns, and write the final SQL query.
330
+
331
+ ### Dialect-Specific Notes
332
+
333
+ | Dialect | Table Quoting | INFORMATION_SCHEMA Path | Sample Query (project columns + partition + LIMIT) |
334
+ |---------|--------------|------------------------|------------------------------------------------------|
335
+ | BigQuery | `` `project.dataset.table` `` | `` `project.dataset`.INFORMATION_SCHEMA.COLUMNS `` | `` SELECT col_a, col_b FROM `p.d.t` WHERE event_date >= CURRENT_DATE() - 7 LIMIT 5 `` |
336
+ | Snowflake | `"DATABASE"."SCHEMA"."TABLE"` | `DATABASE.INFORMATION_SCHEMA.COLUMNS` | `SELECT col_a, col_b FROM "DB"."SCH"."TBL" WHERE event_date >= DATEADD(day, -7, CURRENT_DATE) LIMIT 5` |
337
+ | Databricks | `` `catalog.schema.table` `` | `catalog.information_schema.columns` | `` SELECT col_a, col_b FROM `c.s.t` WHERE event_date >= current_date() - INTERVAL 7 DAY LIMIT 5 `` |
338
+
339
+ **Do NOT** use `SELECT *` in the sample query column above. `LIMIT 5` does not undo
340
+ the cost of reading every column for the matched rows on a billed warehouse.
341
+
342
+ ### Tips
343
+
344
+ - Each subagent should run 3-6 SQL queries (column metadata + sample data per table)
345
+ - Keep subagent count to 2-4 — more than 4 has diminishing returns
346
+ - The structured markdown output format ensures consistent, scannable results
347
+ - After synthesis, write a single well-commented SQL query that answers the user's question
348
+
349
+ ## Output Guidelines
350
+
351
+ - **Simple answers** (counts, scalar values, short lists of < 20 records): Print directly with `console.log()`
352
+ - **Complex results** (tabular results): Write to `.agents/outputs/<filename>.csv` and summarize
353
+ - **Write confirmations**: Print what was created/updated/deleted with IDs
354
+ - **Errors**: Print clear error messages
355
+
356
+ ```javascript
357
+ const fs = await import('fs');
358
+
359
+ // Simple
360
+ console.log(`Answer: 42 issues created this week`);
361
+
362
+ // Tabular results - write CSV to .agents/outputs/
363
+ fs.mkdirSync('.agents/outputs', { recursive: true });
364
+ fs.writeFileSync('.agents/outputs/results.csv', csvContent);
365
+ console.log(`Exported 500 records to .agents/outputs/results.csv`);
366
+
367
+ // Write
368
+ console.log(`Created issue ENG-123: "Fix login bug"`);
369
+ console.log(`Updated 5 contacts`);
370
+ console.log(`Deleted message ID abc123`);
371
+ ```
372
+
373
+ ## Key Points
374
+
375
+ - **Use `listConnections(connectorName)`** as the primary way to get credentials
376
+ - **Fall back to search → propose → add** when no connections exist (see `integrations` skill)
377
+ - **All code runs in the `code_execution` sandbox** — no script files needed
378
+ - **Use `console.log()`** to see output — functions execute silently without it (but never log credentials)
379
+ - **Use `await import(...)`** for packages (dynamic imports only)
380
+ - **State persists** across `code_execution` calls — reuse `conns`, clients, and extracted credentials instead of re-fetching (unless expired).
381
+ - **Browse `public_documentation_link`** to understand the API before coding
382
+ - **Ask clarifying questions** before write operations that need specific IDs or values
383
+ - **Fetch options first** when the user references something by name (users, projects, etc.)
384
+ - **Don't cache clients** — access tokens expire; re-create clients from `listConnections` when needed
385
+ - **Write large outputs to `.agents/outputs/`** as CSV or JSON
@@ -0,0 +1 @@
1
+ d7a214633b60b119837131a7b3202e38
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: react-vite
3
+ description: Guidelines for building React + Vite web apps in the pnpm monorepo with design subagent delegation.
4
+ ---
5
+
6
+ Always follow these guidelines when building a React + Vite web application:
7
+
8
+ ## Architecture
9
+
10
+ - Follow modern web application patterns and best-practices.
11
+ - If the app is complex and requires functionality that can't be done in a single request, it is okay to stub out the backend and implement the frontend first.
12
+
13
+ ## Frontend
14
+
15
+ - Load the `design` skill and start an async design subagent to build the frontend. Do not give the subagent any recommendation or advice on how it should build the frontend unless requested by the user. For example, do not talk about color, font, layout, etc. the design subagent has much better taste than you
16
+
17
+ ## First Build
18
+
19
+ **You must use the design subagent for every react-vite first build — no exceptions.** This applies regardless of app size, complexity, or whether a backend is needed. "No backend" means skip OpenAPI/codegen, not skip the design subagent. "Simple app" means the subagent gets a simpler brief, not that you build the frontend yourself. Never build the frontend yourself to save time — the design subagent is the fast path.
20
+
21
+ ### Step 1: Classify the app
22
+
23
+ Before building, classify the app to decide how you and the DESIGN subagent split work. **The design subagent is always used** — the question is how much it owns.
24
+
25
+ - **Presentation-first** (landing pages, fan sites, portfolios, brand microsites, marketing sites): DESIGN subagent owns almost everything. No backend needed. Skip to the presentation-first workflow below.
26
+ - **Personal utility** (notes, journals, habit trackers, personal finance, mood trackers, reading lists): These are personal tools, not business tools. Treat like consumer/lifestyle — personality encouraged, micro-interactions expected. Information-density-first does NOT apply.
27
+ - **CRUD / dashboards / admin tools** (CRMs, inventory tools, internal tools, analytics dashboards): Parent agent owns product surface and backend. DESIGN subagent owns the entire frontend visual layer.
28
+ - **Logic-heavy / backend-coupled** (real-time collaboration, workflow engines, devtools, infra tools, scheduling systems): Parent agent leads backend and systems logic. DESIGN subagent still builds the frontend — it handles UI shells, components, pages, and polish.
29
+ - **Interactive visual experiences / casual games** (browser games, playful interactive scenes): DESIGN subagent strongly influences frontend, animation, and visual assets. Parent agent owns game rules, persistence, and systems logic.
30
+
31
+ ### Step 2: Plan the API surface
32
+
33
+ The difference between a boring app and a great app is usually 3-5 extra endpoints in the spec. Before codegen, spend an extra minute adding safe wow endpoints beyond flat CRUD — lightweight read-only endpoints that make the app feel polished:
34
+
35
+ - Dashboard summaries (totals, grouped counts, pipeline values)
36
+ - Recent activity / timeline feeds
37
+ - Status/stage breakdowns and domain-specific aggregates
38
+ - Top/trending/pinned item queries
39
+
40
+ Skip speculative expensive features (recommendations, anomaly detection, forecasting, complex real-time presence).
41
+
42
+ This way the design subagent has real hooks for both the core app and the wow surfaces, and integration is minimal.
43
+
44
+ ### Step 3: Build with maximum parallelism
45
+
46
+ Use the `pnpm-workspace` skill as the source of truth for shared monorepo rules. When you touch backend code, follow the `pnpm-workspace` skill's references:
47
+
48
+ - `references/openapi.md` for contract-first OpenAPI + codegen
49
+ - `references/server.md` for `artifacts/api-server/src/routes/` conventions
50
+ - `references/db.md` for `lib/db/src/schema/` and Drizzle guidance
51
+
52
+ #### For apps with a backend
53
+
54
+ **The design subagent is the bottleneck — everything is ordered to get it running ASAP.**
55
+
56
+ **The database is NOT a prerequisite for the design subagent.** Even when the app clearly needs a DB, do not provision a database, write schema, run migrations, or seed before launching the subagent. The design subagent depends only on the generated API client (OpenAPI → codegen → hooks) — it does not care whether the DB exists yet. All DB work happens AFTER the subagent is spawned, in parallel with its run (see step 5). Calling `createDatabase()` or any DB tool before step 4 directly delays first output for zero benefit.
57
+
58
+ 1. Create the artifact.
59
+ 2. Write the OpenAPI spec in `lib/api-spec/openapi.yaml` — include both core CRUD and the safe wow endpoints from Step 2. This is the **critical path** because it gates codegen which gates the design subagent.
60
+ 3. Run codegen (`pnpm run --filter @workspace/api-spec codegen`)
61
+ 4. Grep the exact generated exports and launch the design subagent (async), following the `design` skill's delegation rules:
62
+ - Run `grep "^export " lib/api-client-react/src/generated/*.ts | grep -E "function use|const use|QueryKey"` and include the full list in the task description so the subagent does not guess names.
63
+ - Pass the generated client files, the main CSS/theme file, `src/App.tsx`, `package.json`, and `.local/skills/react-vite/references/frontend_general_rules.md` via `relevantFiles` so the subagent can import and use real API hooks without wasting time exploring.
64
+ - Pass **all** implementation skills you've read via `relevantSkills` — use the full path from the skills view for each one. Any skill with integration details (auth, storage, payments, etc.) must be forwarded so the subagent builds correctly.
65
+ - Keep the task description SHORT: app purpose (1-2 sentences), page routes with one-line purposes, data types with fields, and the API hooks list.
66
+ - Tell the subagent to use ALL the provided hooks. The product surface has been planned; the subagent should express it beautifully, not invent net-new features.
67
+ 5. While the design subagent runs, do backend work in parallel:
68
+ - Run `grep "^export " lib/api-zod/src/generated/api.ts` to capture the exact Zod schema names (e.g. `ListNotesQueryParams`, `CreateNoteBody`, `GetNoteParams`). Use the real names when writing routes instead of guessing based on Orval's naming conventions.
69
+ - Provision a database if the app needs one.
70
+ - Write DB schema in `lib/db/src/schema/`, then run `pnpm --filter @workspace/db run push`.
71
+ - Implement API routes in `artifacts/api-server/src/routes/`, importing the exact Zod schema names from the grep above (do not guess — Orval names vary by parameter location: `QueryParams`, `Params`, `Body`).
72
+ - Seed a small amount of example data (1-3 rows per table) so the app isn't empty on first load. Do not over-seed.
73
+ - For seed data images that don't come from a real API, use `generate_image` instead of placeholder services (DiceBear, Boring Avatars, Unsplash, Lorem Picsum, etc.). Real API image URLs (e.g. PokéAPI sprites, TMDB posters) are fine. It's okay not to seed object storage.
74
+ - You can also ask the design subagent to generate images/video as part of its task — it has access to `generate_image`, `generate_video`, and `stock_image`.
75
+ **Note: All DB schema/definition/seeding and backend development work MUST happen only after the design subagent has been spawned. Do not front-load any of it.**
76
+ 6. After your backend development process is done. wait for the design subagent to finish.
77
+ Note: Do not restart the frontend workflow until the design subagent is done otherwise it will show a broken app, you can restart the API one if needed.
78
+ 7. Fix any integration issues (restart workflow and refresh logs).
79
+ 8. Present the artifact — show it to the user.
80
+ 9. Call `suggestDeploy()` — prompt the user to publish their app so it's live and accessible.
81
+
82
+ #### For presentation-first apps (no backend)
83
+
84
+ No OpenAPI, no codegen. Launch the design subagent immediately.
85
+
86
+ If the user is creating a site for a real company, or wants to match an existing company/site, gather context before launching the design subagent: use `extractBranding` for brand tokens, fall back to `imageSearch` via the `image-search` skill when you need a cleaner or missing logo, use `webFetch` on the homepage, about page, or key product pages for real messaging, and use external-URL `screenshot` when the visual feel of the source site matters. Pass the distilled brand and product context into the brief, not raw tool output. When passing brand context, include colors, typography, and images.
87
+ If `extractBranding` and/or `imageSearch` gave you images, download each usable image into the workspace before launching the design subagent. Pass the local file paths via `relevantFiles` and include a `Brand assets` block in the task that labels each file (logo, favicon, OG image, etc.), where it came from, and what it should be used for.
88
+ Never pass image URLs or vague references as the only handoff; if an image is not downloaded to a workspace file and identified in the task, treat it as unavailable.
89
+
90
+ 1. Create the artifact and read the `design` skill
91
+ 2. Launch the design subagent (async) immediately — no codegen step needed. Follow the `design` skill's presentation-heavy delegation rules:
92
+ - Pass the main CSS/theme file, `src/App.tsx`, branding images, and `package.json` via `relevantFiles`.
93
+ - Provide a vivid brand identity, the pages to build, and any downloaded brand asset labels and local paths.
94
+ 3. Present the artifact when the subagent finishes.
95
+ 4. Call `suggestDeploy()`.
96
+
97
+ ### Important notes
98
+
99
+ - The design subagent will be a bottleneck — it takes time to build the frontend so launch it as soon as codegen is complete
100
+ - After the frontend build finishes, if this is part of a multi-artifact project, extract the design tokens from the generated `src/index.css` (colors, fonts, radius) and store them for use in subsequent artifacts (expo, slides, etc.). This ensures all artifacts share the same visual identity. See `multi-artifact-creation.md` "Visual Consistency" section.
101
+ - Do not read unnecessary files. When building this artifact, you are not building the frontend so reading the generated react hooks is a waste of time and context
102
+ - After presenting the artifact, call `suggestDeploy()` so the user knows their app is ready to publish
103
+ - Follow the service access and routing rules from the `pnpm-workspace` skill.
104
+ - If the app is being transitioned from a mockup the user made using the canvas, use what the user created to build the react-vite application directly
105
+ - **WebSocket proxy path**: If the app uses WebSockets, the WS path (e.g. `/ws`) must be listed in `artifact.toml`'s `paths` array alongside the REST API path. The proxy only forwards explicitly listed paths — unlisted WS paths are silently dropped and the server never sees the connection.
106
+ - After each OpenAPI spec change, re-run codegen before using the updated types.
107
+
108
+ ## SEO
109
+
110
+ There is a full SEO implementation guide in `.local/skills/react-vite/references/seo.md`. Read it when building or optimizing pages for search engine visibility. At minimum, ensure every page has a unique title tag, meta description, and Open Graph tags.
@@ -0,0 +1,66 @@
1
+ ## Frontend
2
+
3
+ - Use `wouter` for routing on the frontend.
4
+ - If you need to add a new page, add them to the `src/pages` directory and register them in `src/App.tsx`.
5
+ - If there are multiple pages, use a sidebar for navigation. Use the `Link` component or the `useLocation` hook from `wouter` instead of modifying the window directly.
6
+ - For forms, always use shadcn's `useForm` hook and `Form` component from `@/components/ui/form` which wraps `react-hook-form`.
7
+ - When appropriate, use the `zodResolver` from `@hookform/resolvers/zod` to validate form data.
8
+ - Use `.extend` to add validation rules to the schema.
9
+ - Remember that the form component is controlled, ensure you pass default values to the `useForm` hook.
10
+ - Use the Orval-generated hooks from `@workspace/api-client-react` for all API calls. Do not write raw `fetch` or manual TanStack Query hooks when generated hooks exist.
11
+ - Generated query hooks return `T` directly — NOT wrapped in `{ data: T }`.
12
+ - When passing options like `enabled`, you MUST also pass `queryKey`:
13
+
14
+ ```typescript
15
+ const { data } = useGetNote(noteId, { query: { enabled: !!noteId, queryKey: getGetNoteQueryKey(noteId) } });
16
+ ```
17
+
18
+ - For mutations, `onSuccess` receives `T` directly:
19
+
20
+ ```typescript
21
+ createRoom.mutate({ data: { name } }, {
22
+ onSuccess: (room) => { setLocation(`/room/${room.id}`); }
23
+ });
24
+ ```
25
+
26
+ - Invalidate related queries after mutations using the generated queryKey helpers.
27
+ - Show a loading or skeleton state while queries (via `.isLoading`) or mutations (via `.isPending`) are being made.
28
+ - Common pitfalls to avoid:
29
+ - The `useToast` hook is exported from `@/hooks/use-toast`.
30
+ - If a form is failing to submit, try logging out `form.formState.errors` to see if there are form validation errors for fields that might not have associated form fields.
31
+ - DO NOT explicitly import React as the existing Vite setup has a JSX transformer that does it automatically.
32
+ - Use `import.meta.env.<ENV_VAR>` to access environment variables on the frontend instead of `process.env.<ENV_VAR>`. Note that variables must be prefixed with `VITE_` in order for the env vars to be available on the frontend.
33
+ - `<SelectItem>` will throw an error if it has no value prop. Provide a value prop like this `<SelectItem value="option1">`.
34
+ - NEVER import something you don't use — TypeScript will fail the build on unused imports.
35
+ - Always import React hooks (`useState`, `useEffect`, `useRef`, `useCallback`, `useMemo`) from `"react"` — never from a router library like `"wouter"`.
36
+ - Add a `data-testid` attribute to every HTML element that users can interact with (buttons, inputs, links, etc.) and to elements displaying meaningful information (user data, status messages, dynamic content, key values).
37
+ - Use unique, descriptive identifiers following this pattern:
38
+ - Interactive elements: `{action}-{target}` (e.g., `button-submit`, `input-email`, `link-profile`)
39
+ - Display elements: `{type}-{content}` (e.g., `text-username`, `img-avatar`, `status-payment`)
40
+ - For dynamically generated elements (lists, grids, repeated components), append a unique identifier at the end: `{type}-{description}-{id}`
41
+ - Examples: `card-product-${productId}`, `row-user-${index}`, `text-price-${itemId}`
42
+ - The dynamic identifier can be any unique value (database ID, index, key) as long as it's unique within that group
43
+ - Keep test IDs stable and descriptive of the element's purpose rather than its appearance or implementation details.
44
+
45
+ ## Styling and Theming
46
+
47
+ - CSS custom properties use space-separated HSL values (no `hsl()` wrapper):
48
+
49
+ ```css
50
+ :root { --primary: 221 83% 53%; }
51
+ ```
52
+
53
+ Usage: `background-color: hsl(var(--primary));`
54
+ - The scaffold's `index.css` ships with every CSS custom property set to `red` as a placeholder. Rewrite the `:root` and `.dark` blocks with a cohesive theme palette before writing any components. If any `red` values remain, the page will render with red backgrounds, borders, and text.
55
+ - When adding Google Fonts or any `@import url(...)` to index.css, it MUST be the very first line of the file — before `@import "tailwindcss"` and all other statements. PostCSS will fail silently if any `@import url(...)` appears after other CSS rules.
56
+ - Use the `@`-prefixed paths to import shadcn components and hooks.
57
+ - Use icons from `lucide-react` to signify actions and provide visual cues. Use `react-icons/si` for company logos.
58
+ - User may attach assets (images, etc.) in their request.
59
+ - If the user asks you to include attached assets in the app, you can reference them in the frontend with the `@assets/...` import syntax.
60
+ - For example, if the user attached asset is at `attached_assets/example.png`, you can reference it in the frontend with `import examplePngPath from "@assets/example.png"`.
61
+
62
+ ## Dark Mode
63
+
64
+ 1. Set `darkMode: ["class"]` in tailwind.config.ts and define color variables in `:root` and `.dark` CSS classes
65
+ 2. Create ThemeProvider with useState("light"), useEffect to toggle "dark" class on document.documentElement, and localStorage sync
66
+ 3. When not using utility class names configured in `tailwind.config.ts`, always use explicit light/dark variants for ALL visual properties: `className="bg-white dark:bg-black text-black dark:text-white"`. When using utility classes configured in tailwind config, you can assume these already been configured to automatically adapt to dark mode.