@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,150 @@
1
+ ---
2
+ name: image-search
3
+ description: Find real web images, logos, and public photos for brand work, reports, and artifacts. Use when you need a few relevant results with a title and image URL you can inspect, present, or download.
4
+ ---
5
+
6
+ # Image Search
7
+
8
+ Search the public web for real images.
9
+
10
+ ## When to Use
11
+
12
+ - You need real logos, transparent PNGs, or brand assets from the web
13
+ - You need real-world photos or reference images from the public web
14
+
15
+ ## When NOT to Use
16
+
17
+ - Generating new images or illustrations (use the `media-generation` skill)
18
+ - General fact lookup or webpage text retrieval (use the `web-search` skill)
19
+ - Extracting brand colors, fonts, and other official tokens from a website (use `extractBranding` first)
20
+
21
+ ## Available Function
22
+
23
+ ### `imageSearch({ query, count })`
24
+
25
+ Search for public web images and return the raw provider response body.
26
+
27
+ **Parameters:**
28
+
29
+ - `query` (str, required): Search text for the desired images
30
+ - `count` (int, optional): Maximum number of results to return
31
+
32
+ **Returns:** Dict with optional `results` list. For each result, rely on `result.title` and `result.properties?.url`; other provider-specific fields may also be present.
33
+
34
+ **Example response:**
35
+
36
+ ```json
37
+ {
38
+ "type": "images",
39
+ "query": {
40
+ "original": "mid-century chair",
41
+ "spellcheck_off": false,
42
+ "show_strict_warning": false
43
+ },
44
+ "results": [
45
+ {
46
+ "type": "image_result",
47
+ "title": "Mid-century chair in walnut",
48
+ "url": "https://example.com/chairs",
49
+ "source": "example.com",
50
+ "page_fetched": "2026-04-17T23:51:41Z",
51
+ "thumbnail": {
52
+ "src": "https://imgs.example.com/thumb.jpg",
53
+ "width": 500,
54
+ "height": 333
55
+ },
56
+ "properties": {
57
+ "url": "https://imgs.example.com/full.jpg",
58
+ "placeholder": "https://imgs.example.com/placeholder.jpg",
59
+ "width": 1200,
60
+ "height": 800
61
+ },
62
+ "meta_url": {
63
+ "scheme": "https",
64
+ "netloc": "example.com",
65
+ "hostname": "example.com",
66
+ "favicon": "https://example.com/favicon.ico",
67
+ "path": "› chairs"
68
+ },
69
+ "confidence": "high"
70
+ }
71
+ ],
72
+ "extra": {
73
+ "might_be_offensive": false
74
+ }
75
+ }
76
+ ```
77
+
78
+ **Example:**
79
+
80
+ ```javascript
81
+ const response = await imageSearch({
82
+ query: "vintage travel posters",
83
+ count: 6,
84
+ })
85
+
86
+ const items = response.results ?? []
87
+ for (const item of items.slice(0, 4)) {
88
+ console.log(item.title, item.properties?.url)
89
+ }
90
+ ```
91
+
92
+ ## Present Results
93
+
94
+ When showing image results to the user:
95
+
96
+ 1. Pick up to 4 strong results
97
+ 2. Download each image URL into `attached_assets/image_search/`
98
+ 3. Call `presentAsset({awaitUserInput: false})` for each saved file
99
+
100
+ ```javascript
101
+ const fs = await import('node:fs/promises')
102
+ const path = await import('node:path')
103
+
104
+ const response = await imageSearch({
105
+ query: "mid-century chair",
106
+ count: 4,
107
+ })
108
+
109
+ const items = (response.results ?? []).slice(0, 4)
110
+ await fs.mkdir('attached_assets/image_search', {recursive: true})
111
+
112
+ for (const [index, item] of items.entries()) {
113
+ const imageUrl = item.properties?.url
114
+ if (!imageUrl) continue
115
+
116
+ const download = await fetch(imageUrl)
117
+ if (!download.ok) continue
118
+
119
+ const filePath = path.join(
120
+ 'attached_assets/image_search',
121
+ 'result_' + String(index + 1) + '.jpg',
122
+ )
123
+
124
+ await fs.writeFile(filePath, Buffer.from(await download.arrayBuffer()))
125
+
126
+ await presentAsset({
127
+ filePath,
128
+ title: item.title ?? 'Image search result',
129
+ awaitUserInput: false,
130
+ })
131
+ }
132
+ ```
133
+
134
+ ## When called from the slides skill
135
+
136
+ The slides skill runs `imageSearch` as part of its brand-research steps in `../slides/references/brand_research.md`. That reference owns the order (run `extractBranding` first, use `imageSearch` for the logo only when the first step's logo is missing or low quality, and use `imageSearch` for real-world photos like product / team / venue shots) and the budget (at most 4 `imageSearch` calls per deck).
137
+
138
+ **Specific real subjects have a special rule.** If `imageSearch` cannot find a clean image of a logo, a named person, a specific real product, a real team, a real venue, or a real event, leave the slot empty and surface the gap to the user. **Do NOT auto-generate a stand-in via `media-generation` without explicit user approval** — a fabricated logo or fake "real" photo for a named entity is exactly the failure mode the research steps exist to prevent. The `media-generation` fallback applies only to **generic, non-specific** visuals (abstract backgrounds, mood imagery, anonymous skylines, generic illustrations). In named-entity decks (product launches, founder profiles, company overviews) the deck subject often makes product, team, and venue slots specific — treat those as real subjects and leave them empty until the user approves a stand-in. Align with `../slides/references/brand_research.md` → "Failures".
139
+
140
+ Follow these steps rather than improvising the order — these are billable passthrough calls.
141
+
142
+ ## Best Practices
143
+
144
+ 1. Use `imageSearch`, not provider-specific passthrough callbacks, so the implementation can change underneath without changing your code.
145
+ 2. For logos, search `"<company> logo png"` or `"<company> logo transparent"` and prefer official domains, press kits, or brand asset pages.
146
+ 3. Present a small shortlist of the best results instead of dumping the full response body.
147
+ 4. Use `extractBranding` first for official brand tokens, then fall back to `imageSearch` only when the logo is missing, low quality, or clearly wrong.
148
+ 5. Keep `count` small when you are manually reviewing results. `4` to `8` is usually enough.
149
+ 6. Save chosen image URLs into `attached_assets/` before presenting or reusing them elsewhere.
150
+ 7. Remember that `count` is the maximum number of results, not the total number of results. When presenting to the user, there may be less results presented than how many you requested.
@@ -0,0 +1 @@
1
+ f6328d37bfdad99d3153f7496feb3098
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: integrations
3
+ description: Search and manage Replit integrations including blueprints, connectors, and connections. Use for authentication, databases, payments, and third-party API integrations.
4
+ ---
5
+
6
+ # Integrations Skill
7
+
8
+ Integrations allow first-class usage of Third-Party (and some First-party) technologies. If the integration exists, you can ask user to "connect" their account (Google, Linear, GitHub, Stripe, etc) to their Replit account, which critically gives you, the Replit Agent, access to new capabilities (e.g. view their Google Sheets, read their Linear issues, setup & access payment systems, etc). You must follow the steps outlined here to successfully make these "connections".
9
+
10
+ **Before asking the user for any API key, secret, or credential, always search for a Replit integration first.** Replit integrations handle OAuth and secrets securely, and many common services (Google Sheets, Linear, Stripe, GitHub, OpenAI, etc.) are already supported. Asking the user for credentials when an integration exists adds a lot of unnecessary friction. Users typically do not know about our integration system, you must proactive in suggesting it when it (and only when) it is relevant.
11
+
12
+ Integrations include blueprints (code templates), connectors (OAuth/API integrations + templates), and connections (already established integrations).
13
+
14
+ ## When to Use
15
+
16
+ Use this skill when:
17
+
18
+ - User needs authentication (login, signup, OAuth)
19
+ - User needs database connections (PostgreSQL, MongoDB, etc.)
20
+ - User needs payment processing (Stripe, etc.)
21
+ - User needs third-party API integrations (OpenAI, Notion, GitHub, Linear, etc.)
22
+ - User asks about Replit-specific features and capabilities
23
+
24
+ ## When NOT to Use
25
+
26
+ As a web search (use web-search skill if available), searching files within the project, media generation (use media-generation skill, including image generation APIs), fetching data to respond to a user's question (use query-integration-data skill).
27
+
28
+ ---
29
+
30
+ ## Integration Lifecycle
31
+
32
+ There are three types of integrations, and they represent different stages of a lifecycle:
33
+
34
+ ```text
35
+ connector (not_setup)
36
+ → user completes OAuth via proposeIntegration
37
+ → connection (not_added)
38
+ → addIntegration ← code-side wiring (npm packages, scaffolds, project registration)
39
+ → proposeIntegration ← platform-side binding (registers this Repl with connectors so the credential proxy will serve secrets)
40
+ → now it is a functioning connection (added + authorized, ready to use)
41
+
42
+ blueprint (not_installed)
43
+ → addIntegration or proposeIntegration
44
+ → blueprint (installed, code + packages added to project), ready to use
45
+ ```
46
+
47
+ ### Connectors
48
+
49
+ - An available OAuth/API integration that has **not yet been authorized** by the user
50
+ - Status: `not_setup`
51
+ - Cannot be added directly — must use `proposeIntegration` which allows the user through the OAuth flow
52
+ - Example ID: `connector:ccfg_google-sheet_E42A9F6DA6...`
53
+
54
+ ### Connections
55
+
56
+ - A connector that has **already been authorized** at the account level
57
+ - Status: `not_added` (authorized at account level but not bound to this Repl) or `added` (active in this Repl)
58
+ - Both `addIntegration` AND `proposeIntegration` are required on first setup — they do orthogonal things:
59
+ - `addIntegration` does code-side wiring (npm install, scaffolds, project registration). It does NOT touch the platform's connection-state backend.
60
+ - `proposeIntegration` does platform-side binding (registers this Repl with connectors-v2 as a permitted consumer). Without it the credential proxy at `connectors.replit.com/api/v2/connection` returns nothing for this Repl, even though the underlying credentials exist at the account level.
61
+ - Example ID: `connection:conn_linear_01MG99PAJR6MQ5...`
62
+
63
+ NOTE: You must not delay calling proposeIntegration even if it waits for the user. You will be blocked and not have access to test the feature you build because you don't have access to real data, real APIs, etc, which is even more inefficient than reaching out to the user as soon as you know you need the integration to get accepted.
64
+
65
+ ### Blueprints
66
+
67
+ - These are just code templates that install packages and scaffold integration boilerplate
68
+ - Status: `not_installed` or `previously_installed`
69
+ - Use `addIntegration` directly; if `requiresConfirmation` is True, use `proposeIntegration` instead
70
+ - Example ID: `blueprint:javascript_openai`
71
+
72
+ ---
73
+
74
+ ## Available Functions
75
+
76
+ All functions are available directly in the `code_execution` sandbox. **Always use `console.log()` on return values** — functions execute silently with no output if you don't.
77
+
78
+ ### searchIntegrations(query)
79
+
80
+ Search for available integrations. **Always run this first.** Try a few different query terms if the first search returns nothing — results depend on keyword matching.
81
+
82
+ **Returns:** Dict with:
83
+
84
+ - `integrations`: list of integration objects, each with `id`, `displayName`, `description`, `integrationType`, `status`
85
+ - `askForBlueprintConfirmation`: boolean — if True, blueprint additions in this environment will require user confirmation; expect `requiresConfirmation: True` back from `addIntegration` and be ready to call `proposeIntegration` instead
86
+
87
+ ```javascript
88
+ const results = await searchIntegrations("Google Sheets");
89
+ console.log(results);
90
+ // { integrations: [{ id: 'connector:ccfg_google-sheet_...', displayName: 'Google Sheets',
91
+ // description: '...', integrationType: 'connector', status: 'not_setup' }], ... }
92
+
93
+ // Always log — calling without console.log produces no visible output!
94
+ for (const item of results.integrations) {
95
+ console.log(`${item.id} type=${item.integrationType} status=${item.status}`);
96
+ }
97
+ ```
98
+
99
+ **Notes:**
100
+
101
+ - When the user has not explicitly requested a specific provider, at least search with a generic, capability-focused query to ensure all relevant options are returned. For example, when user asks "build an icon generating app", prefer `searchIntegrations("image generation")` instead of `searchIntegrations("OpenAI image generation")`
102
+ - If a connector has already been authorized by the user or a teammate, it will appear as a `connection` (not a `connector`) in results
103
+ - Try multiple queries if needed: `"stripe"`, `"payments"`, `"stripe payment processing"` may return different results
104
+ - The `id` field is the exact string to pass to subsequent functions
105
+
106
+ ---
107
+
108
+ ### viewIntegration(integrationId)
109
+
110
+ Fetch full details and the code snippet for an integration without adding it to the project.
111
+
112
+ **Returns:** Dict with `integrationType`, `integrationId`, `displayName`, `renderedContent`
113
+
114
+ **Note:** `addIntegration` returns the exact same `renderedContent` blob, so in most cases you don't need to call this separately — just read the result of `addIntegration`. The main reason to call `viewIntegration` first is if you want to inspect the package name, code snippet, or documentation URL before committing to the install.
115
+
116
+ ```javascript
117
+ const info = await viewIntegration("connection:conn_linear_01KG10PAJR6MQ525SQSWEB8QHC");
118
+ console.log(info.renderedContent); // Same blob you'd get from addIntegration
119
+ ```
120
+
121
+ ---
122
+
123
+ ### addIntegration(integrationId)
124
+
125
+ Add a blueprint or connection to the current project. **Do not use for connectors** (those with `integrationType: connector` and `status: not_setup`) — use `proposeIntegration` for those.
126
+
127
+ **Returns:** Dict with:
128
+
129
+ - `success`: boolean
130
+ - `requiresConfirmation`: boolean — if True, call `proposeIntegration` instead
131
+ - `connectionAlreadyAdded`: boolean — if True, the connection is already wired to this project; skip addIntegration but still call proposeIntegration to ensure the platform binding is current (tokens expire, bindings can be stale)
132
+ - `renderedContent`: same XML blob as `viewIntegration`
133
+ - `observations`: list of stringified observation objects (verbose; contains npm install output)
134
+
135
+ **Side effect:** Automatically installs required packages. This will restart or crash a running dev server — be aware if calling mid-session while the workflow is running.
136
+
137
+ ```javascript
138
+ const result = await addIntegration("connection:conn_linear_01KG10PAJR6MQ525SQSWEB8QHC");
139
+ console.log(result.success); // true
140
+ console.log(result.observations); // Contains package installation output as stringified objects
141
+
142
+ // Handle confirmation requirement
143
+ if (!result.success && result.requiresConfirmation) {
144
+ proposeIntegration("connection:conn_linear_01KG10PAJR6MQ525SQSWEB8QHC");
145
+ }
146
+ ```
147
+
148
+ **After calling addIntegration:**
149
+
150
+ - Read `renderedContent` to get the code snippet
151
+ - The snippet handles token refresh and expiry — use it as-is, don't simplify it
152
+ - Never cache the client object the snippet creates — tokens expire
153
+
154
+ ---
155
+
156
+ ### proposeIntegration(integrationId)
157
+
158
+ Propose a connector to the user. This is a **control-flow operation** — it exits the agent loop immediately and waits for the user to complete OAuth or confirm setup. Nothing after this call will execute in the current loop.
159
+
160
+ **Returns:** Dict with `success`, `displayName`, `exitLoop` (always True)
161
+
162
+ **Use for:**
163
+
164
+ - Connectors with `status: not_setup` (drives OAuth + binding)
165
+ - Connections with `status: not_added` after calling `addIntegration` (drives the binding only)
166
+ - Connections with `status: added` if runtime fails with "not connected" (re-binds / refreshes)
167
+ - Blueprints where `addIntegration` returns `requiresConfirmation: True`
168
+
169
+ ```javascript
170
+ // Always explain to the user what is about to happen before calling this
171
+ // The agent loop exits after this — no further code runs
172
+ const result = await proposeIntegration("connector:ccfg_google-sheet_E42A9F6CA62546F68A1FECA0E8");
173
+ ```
174
+
175
+ **Notes:**
176
+
177
+ - After the user completes OAuth, the connector becomes a `connection`
178
+ - On the next agent loop, call `addIntegration` with the new `connection:...` ID
179
+ - There is no user-visible message automatically shown when this exits — explain what you're doing in your chat response before calling it
180
+
181
+ ---
182
+
183
+ ## Using the Code Snippet
184
+
185
+ After `addIntegration` or `viewIntegration`, the `renderedContent` contains a code snippet. Key things to know:
186
+
187
+ 1. **It is not on the filesystem.** Copy it into a new file in your project (e.g., `server/googleSheets.ts`)
188
+ 2. **Never cache the client.** Tokens expire. The snippet exports a `getUncachable___Client()` function — call it fresh on every request
189
+ 3. **The token refresh logic is correct as-is.** Don't simplify or remove the expiry check
190
+ 4. **The snippet uses environment variables** (`REPLIT_CONNECTORS_HOSTNAME`, `REPL_IDENTITY`, `WEB_REPL_RENEWAL`) that Replit injects automatically — no setup needed
191
+
192
+ ---
193
+
194
+ ## Databricks
195
+
196
+ When the user wants to connect to Databricks, use the `databricks-m2m` connector (not the plain `databricks` connector). The `databricks-m2m` connector provides machine-to-machine access and works in all contexts. Inside a Databricks App, prefer the `databricks` (U2M) connector when available — see the `databricks-app` skill for details.
197
+
198
+ ## Common Pitfalls
199
+
200
+ - **Not logging results:** `searchIntegrations` and all other functions return silently unless you `console.log()` the output
201
+ - **Calling addIntegration on a connector:** Will fail or behave unexpectedly. Check `integrationType` first
202
+ - **Asking for API keys when a connection exists:** If `searchIntegrations` returns a `connection`, the user is already authenticated at the account level — use `addIntegration` to wire the project, then `proposeIntegration` to bind this Repl to the connection. Both steps are always required.
203
+ - **Caching the client:** The boilerplate snippet is explicit about this. Tokens expire. Always call `getUncachable___Client()` fresh
204
+ - **Package install side effects:** `addIntegration` runs package installation (e.g. npm, uv), which can crash a running dev server. Restart the workflow after adding integrations
205
+ - **Connection added but runtime still fails:** If `addIntegration` succeeds for a `connection` but the app throws "not connected" at runtime, the token may be expired or missing. Call `proposeIntegration` with the same connection ID to trigger re-authorization, then restart the workflow
@@ -0,0 +1 @@
1
+ 2045a413396b1be9a2f543199b49e281
@@ -0,0 +1,170 @@
1
+ ---
2
+ name: media-generation
3
+ description: "Generate and retrieve media including AI-generated images and stock images. Use this skill for visual content creation and retrieval. For AI video clips, read `media-generation/video_generation.md`; for music, sound effects, and text-to-speech audio, read `media-generation/audio_generation.md`"
4
+ ---
5
+
6
+ # Media Generation Skill
7
+
8
+ Generate custom images, and retrieve stock images.
9
+
10
+ ## Available Functions
11
+
12
+ ### generateImage(images, ...)
13
+
14
+ Generate custom images from text descriptions. Waits for generation to complete before returning.
15
+
16
+ **Parameters:**
17
+
18
+ - `images` (list, **required**): A list of image request objects. **This wrapper is always required — even for a single image, pass `images: [{ ... }]`**. Up to 10 images can be generated in a single call. Each dict should have:
19
+ - `prompt` (required): Text description of the desired image
20
+ - `outputPath`: File path **must end in `.png`** — this is the only accepted format. `.jpg`, `.jpeg`, `.webp`, and other extensions will cause an error. Defaults to `attached_assets/generated_images/{summary}.png`
21
+ - `aspectRatio`: Optional, defaults to "1:1". Options: "1:1", "3:4", "4:3", "9:16", "16:9"
22
+ - `negativePrompt`: Optional, description of what should NOT appear
23
+ - `summary`: Optional, short 4-5 word description for default filename
24
+ - `removeBackground`: Optional, defaults to False
25
+ - `overwrite` (bool, default True): Whether to overwrite existing files
26
+
27
+ **Returns:** Dict with `images` list (each with `filePath` and `description`) and optional `failures` list
28
+
29
+ **Common Mistakes:**
30
+
31
+ ```javascript
32
+ // WRONG — flat params without images array (causes "images field required" error)
33
+ await generateImage({ prompt: "A mountain landscape", outputPath: "hero.png" });
34
+
35
+ // CORRECT — always wrap in images: [...], even for a single image
36
+ await generateImage({ images: [{ prompt: "A mountain landscape", outputPath: "hero.png" }] });
37
+
38
+ // WRONG — .jpg extension is not supported (causes "outputPath must end with .png" error)
39
+ await generateImage({ images: [{ prompt: "A cityscape", outputPath: "city.jpg" }] });
40
+
41
+ // CORRECT — only .png is accepted
42
+ await generateImage({ images: [{ prompt: "A cityscape", outputPath: "city.png" }] });
43
+ ```
44
+
45
+ **Examples:**
46
+
47
+ ```javascript
48
+ // Single image
49
+ const result = await generateImage({
50
+ images: [
51
+ {
52
+ prompt: "A serene mountain landscape at sunset with snow-capped peaks",
53
+ outputPath: "src/assets/images/hero.png",
54
+ aspectRatio: "16:9",
55
+ negativePrompt: "blurry, low quality",
56
+ }
57
+ ]
58
+ });
59
+ console.log(`Image saved to: ${result.images[0].filePath}`);
60
+
61
+ // Multiple images at once
62
+ const result = await generateImage({
63
+ images: [
64
+ { prompt: "A red apple", outputPath: "assets/apple.png" },
65
+ { prompt: "A yellow banana", outputPath: "assets/banana.png" },
66
+ { prompt: "An orange", outputPath: "assets/orange.png", removeBackground: true },
67
+ ]
68
+ });
69
+ for (const img of result.images) {
70
+ console.log(`Generated: ${img.filePath}`);
71
+ }
72
+ ```
73
+
74
+ ### generateImageAsync(images, ...)
75
+
76
+ Generate images asynchronously. Returns immediately with a workflow ID. Same parameters as `generateImage`.
77
+
78
+ **Returns:** Dict with `workflowId`, `workflowAlias`, `status`, and `imagePaths`
79
+
80
+ **Example:**
81
+
82
+ ```javascript
83
+ const result = await generateImageAsync({
84
+ images: [
85
+ { prompt: "A complex detailed illustration", outputPath: "assets/illustration.png" },
86
+ ]
87
+ });
88
+ console.log(`Started workflow: ${result.workflowAlias}`);
89
+ console.log(`Images will be saved to: ${result.imagePaths}`);
90
+ ```
91
+
92
+ ### stockImage(description, ...)
93
+
94
+ Retrieve stock images matching a description.
95
+
96
+ **Parameters:**
97
+
98
+ - `description` (str, required): Text description of desired stock image(s)
99
+ - `summary` (str, default "stock_image"): Short description for the filename
100
+ - `limit` (int, default 1): Number of images to retrieve (1-10)
101
+ - `orientation` (str, default "horizontal"): "horizontal", "vertical", or "all"
102
+
103
+ **Returns:** Dict with `filePaths` list and `query` string
104
+
105
+ **Example:**
106
+
107
+ ```javascript
108
+ const result = await stockImage({
109
+ description: "modern office with natural lighting",
110
+ summary: "office background",
111
+ limit: 3,
112
+ orientation: "horizontal"
113
+ });
114
+ for (const path of result.filePaths) {
115
+ console.log(`Stock image saved to: ${path}`);
116
+ }
117
+ ```
118
+
119
+ ## When to Use Each Function
120
+
121
+ ### generateImage / generateImageAsync
122
+
123
+ - Custom illustrations or graphics not available elsewhere
124
+ - Specific visual concepts or designs
125
+ - Placeholder images for development
126
+ - Creative or artistic content
127
+ - Use `generateImageAsync` when images are not needed immediately
128
+
129
+ ### stockImage
130
+
131
+ - Professional photography
132
+ - Real-world scenes and people
133
+ - Business and corporate imagery
134
+ - When authenticity is more important than customization
135
+
136
+ ## Aspect Ratio Guidelines
137
+
138
+ ### Images
139
+
140
+ - **1:1** - Square, good for profile pictures, thumbnails, icons
141
+ - **3:4** - Portrait, good for mobile screens, product images
142
+ - **4:3** - Landscape, good for presentations, desktop displays
143
+ - **9:16** - Vertical, good for mobile stories, tall banners
144
+ - **16:9** - Widescreen, good for hero images, video thumbnails
145
+
146
+ ## Best Practices
147
+
148
+ 1. **Write detailed prompts**: Include style, mood, lighting, colors, and composition
149
+ 2. **Use negative prompts**: Exclude unwanted elements like "blurry", "watermark", "text"
150
+ 3. **Choose appropriate formats**: Match aspect ratio and media type to intended use
151
+ 4. **Consider stock for realism**: Use stock images when you need authentic photography
152
+ 5. **Do not over generate**: Only generate multiple images when the user explicitly asks.
153
+
154
+ ## Output Locations
155
+
156
+ - Generated images: `attached_assets/generated_images/`
157
+ - Stock images: `attached_assets/stock_images/`
158
+
159
+ ## Limitations
160
+
161
+ - Stock image availability depends on the search query
162
+ - Complex or highly specific prompts may not match exactly
163
+ - Text in generated media is not reliably rendered
164
+
165
+ ## Copyright
166
+
167
+ - Use this skill to create media assets instead of copying from websites
168
+ - Generated images are created for your use
169
+ - Stock images are licensed for use in your projects
170
+ - Do not download or copy media files from external websites
@@ -0,0 +1,138 @@
1
+ # Audio Generation
2
+
3
+ ## Available Functions
4
+
5
+ ### generateMusic({prompt, ...})
6
+
7
+ Generate original music from a text prompt and save it as an audio file.
8
+
9
+ **Parameters:**
10
+
11
+ - `prompt` (str, required): Description of the desired music
12
+ - `outputPath` (str, optional): Must end in `.mp3` for MP3 output or `.ogg` for Opus output. Defaults to `attached_assets/generated_audio/music_{summary}.mp3`
13
+ - `summary` (str, default "generated_music"): Short description for the filename
14
+ - `durationSeconds` (int, optional): 3-600 seconds. If omitted, the model chooses a length
15
+ - `forceInstrumental` (bool, default True): Generate instrumental music
16
+ - `outputFormat` (str, default "mp3_44100_128"): Audio format
17
+ - Options are alaw_8000, mp3_22050_32, mp3_24000_48, mp3_44100_128, mp3_44100_192, mp3_44100_32, mp3_44100_64, mp3_44100_96, opus_48000_128, opus_48000_192, opus_48000_32, opus_48000_64, opus_48000_96, pcm_16000, pcm_22050, pcm_24000, pcm_32000, pcm_44100, pcm_48000, pcm_8000, ulaw_8000, wav_16000, wav_22050, wav_24000, wav_32000, wav_44100, wav_48000, wav_8000
18
+ - `overwrite` (bool, default True): Whether to overwrite existing files
19
+
20
+ **Returns:** Dict with `filePath` and `description` keys
21
+
22
+ **Example:**
23
+
24
+ ```javascript
25
+ const result = await generateMusic({
26
+ prompt: "Upbeat electronic background music with warm synths and a steady pulse",
27
+ summary: "upbeat synth bed",
28
+ durationSeconds: 30,
29
+ forceInstrumental: true
30
+ });
31
+ console.log(`Music saved to: ${result.filePath}`);
32
+ ```
33
+
34
+ ### generateSoundEffect({prompt, ...})
35
+
36
+ Generate a short sound effect from a text prompt and save it as an audio file.
37
+
38
+ **Parameters:**
39
+
40
+ - `prompt` (str, required): Description of the sound effect
41
+ - `outputPath` (str, optional): Must end in `.mp3` for MP3 output or `.ogg` for Opus output. Defaults to `attached_assets/generated_audio/sound_effect_{summary}.mp3`
42
+ - `summary` (str, default "sound_effect"): Short description for the filename
43
+ - `durationSeconds` (number, optional): 0.5-30 seconds. If omitted, the model chooses a length
44
+ - `loop` (bool, default False): Create a smoothly looping sound effect
45
+ - `promptInfluence` (number, default 0.3): 0-1, higher follows the prompt more closely
46
+ - `outputFormat` (str, default "mp3_44100_128"): Audio format
47
+ - `overwrite` (bool, default True): Whether to overwrite existing files
48
+
49
+ **Returns:** Dict with `filePath` and `description` keys
50
+
51
+ **Example:**
52
+
53
+ ```javascript
54
+ const result = await generateSoundEffect({
55
+ prompt: "Soft futuristic UI confirmation chime, clean and pleasant",
56
+ summary: "ui confirmation chime",
57
+ durationSeconds: 1.5
58
+ });
59
+ console.log(`Sound effect saved to: ${result.filePath}`);
60
+ ```
61
+
62
+ ### searchVoices({search, ...})
63
+
64
+ Search available voices for text-to-speech. Use this before `textToSpeech` when you do not know the `voiceId`.
65
+
66
+ **Parameters:**
67
+
68
+ - `search` (str, optional): Search by name, description, or labels
69
+ - `pageSize` (int, default 10): Number of voices to return, 1-100
70
+ - `voiceType` (str, optional): "personal", "community", "default", "workspace", "non-default", "non-community", or "saved"
71
+ - `category` (str, optional): "premade", "cloned", "generated", or "professional"
72
+ - `sort` (str, optional): "created_at_unix" or "name"
73
+ - `sortDirection` (str, optional): "asc" or "desc"
74
+ - `nextPageToken` (str, optional): Token for pagination
75
+
76
+ **Returns:** Dict containing `voices`, `has_more`, and pagination fields.
77
+
78
+ ### textToSpeech({text, voiceId, ...})
79
+
80
+ Convert text into speech using a selected voice and save it as an audio file.
81
+
82
+ **Parameters:**
83
+
84
+ - `text` (str, required): Text to convert into speech
85
+ - `voiceId` (str, required): Voice ID from `searchVoices`
86
+ - `outputPath` (str, optional): Must end in `.mp3` for MP3 output or `.ogg` for Opus output. Defaults to `attached_assets/generated_audio/speech_{summary}.mp3`
87
+ - `summary` (str, default "speech"): Short description for the filename
88
+ - `modelId` (str, default "eleven_multilingual_v2"): Text-to-speech model ID
89
+ - `outputFormat` (str, default "mp3_44100_128"): Audio format
90
+ - `voiceSettings` (object, optional): Per-request voice settings such as `stability`, `similarity_boost`, `style`, `use_speaker_boost`, and `speed`
91
+ - `overwrite` (bool, default True): Whether to overwrite existing files
92
+
93
+ **Example:**
94
+
95
+ ```javascript
96
+ const voices = await searchVoices({ search: "warm narrator", pageSize: 5 });
97
+ const voiceId = voices.voices[0].voice_id;
98
+ const result = await textToSpeech({
99
+ text: "Welcome to a faster way to build.",
100
+ voiceId,
101
+ summary: "welcome voiceover"
102
+ });
103
+ console.log(`Speech saved to: ${result.filePath}`);
104
+ ```
105
+
106
+ ## When to Use Each Function
107
+
108
+ ### generateMusic
109
+
110
+ - Original background music, loops, jingles, and music beds
111
+ - Instrumental tracks for videos, games, presentations, or apps
112
+
113
+ ### generateSoundEffect
114
+
115
+ - UI sounds, notification tones, transitions, ambience, and game SFX
116
+ - Short audio moments for motion graphics or interactive experiences
117
+
118
+ ### searchVoices / textToSpeech
119
+
120
+ - Voiceovers, narration, read-aloud content, and character speech
121
+ - Use `searchVoices` first when the voice ID is not known
122
+
123
+ ## Best Practices
124
+
125
+ 1. **Write detailed prompts**: Include genre, mood, instrumentation, pacing, duration, and intended use
126
+
127
+ ## Output Locations
128
+
129
+ - Generated audio: `attached_assets/generated_audio/`
130
+
131
+ ## Limitations
132
+
133
+ - Generated sound effects: 30 seconds maximum
134
+ - Generated music: 600 seconds maximum
135
+
136
+ ## Copyright
137
+
138
+ - Generated music, sound effects, and speech are created for your use