vibefast-cli 0.7.0 → 0.7.2

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 (907) hide show
  1. package/dist/__tests__/recipes.test.js +5 -5
  2. package/dist/__tests__/recipes.test.js.map +1 -1
  3. package/dist/commands/add.d.ts.map +1 -1
  4. package/dist/commands/add.js +136 -48
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +106 -89
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/remove.js +1 -1
  10. package/dist/commands/remove.js.map +1 -1
  11. package/dist/core/__tests__/fsx.test.js +6 -3
  12. package/dist/core/__tests__/fsx.test.js.map +1 -1
  13. package/dist/core/__tests__/prompt.test.js +12 -12
  14. package/dist/core/__tests__/prompt.test.js.map +1 -1
  15. package/dist/core/__tests__/validate.test.js +4 -3
  16. package/dist/core/__tests__/validate.test.js.map +1 -1
  17. package/dist/core/auth.d.ts.map +1 -1
  18. package/dist/core/auth.js +8 -0
  19. package/dist/core/auth.js.map +1 -1
  20. package/dist/core/codemod.d.ts +13 -0
  21. package/dist/core/codemod.d.ts.map +1 -1
  22. package/dist/core/codemod.js +50 -0
  23. package/dist/core/codemod.js.map +1 -1
  24. package/dist/core/errors.js +1 -1
  25. package/dist/core/fsx.js +1 -1
  26. package/dist/core/fsx.js.map +1 -1
  27. package/dist/core/recipes.d.ts.map +1 -1
  28. package/dist/core/recipes.js +65 -10
  29. package/dist/core/recipes.js.map +1 -1
  30. package/package.json +1 -1
  31. package/recipes/animated-chip/recipe.json +15 -0
  32. package/recipes/animated-chip@latest.zip +0 -0
  33. package/recipes/animated-switch/recipe.json +15 -0
  34. package/recipes/animated-switch@latest.zip +0 -0
  35. package/recipes/audio-recorder/recipe.json +2 -2
  36. package/recipes/audio-recorder@latest.zip +0 -0
  37. package/recipes/charts/apps/native/src/app/charts/index.tsx +3 -3
  38. package/recipes/charts/apps/native/src/features/charts/app/preview.tsx +3 -3
  39. package/recipes/charts/apps/native/src/features/charts/components/area-chart.tsx +3 -3
  40. package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -3
  41. package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +3 -3
  42. package/recipes/charts/apps/native/src/features/charts/components/chart-card.tsx +3 -3
  43. package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -3
  44. package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +32 -21
  45. package/recipes/charts/apps/native/src/features/charts/components/index.ts +3 -3
  46. package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +3 -3
  47. package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +3 -3
  48. package/recipes/charts/apps/native/src/features/charts/components/radial-bar-chart.tsx +3 -3
  49. package/recipes/charts/apps/native/src/features/charts/components/stacked-area-chart.tsx +3 -3
  50. package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +3 -3
  51. package/recipes/charts/apps/native/src/features/charts/data/mock-data.ts +3 -3
  52. package/recipes/charts/apps/native/src/features/charts/types/index.ts +3 -3
  53. package/recipes/charts/recipe.json +2 -2
  54. package/recipes/charts@latest.zip +0 -0
  55. package/recipes/chatbot/apps/native/src/app/chatbot/index.tsx +1 -1
  56. package/recipes/chatbot/apps/native/src/features/chatbot/app/index.tsx +1 -1
  57. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +1 -1
  58. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-input-bar.tsx +1 -1
  59. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +1 -1
  60. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +1 -1
  61. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +1 -1
  62. package/recipes/chatbot/apps/native/src/features/chatbot/components/image-preview-list.tsx +1 -1
  63. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +1 -1
  64. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/index.ts +1 -1
  65. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +1 -1
  66. package/recipes/chatbot/apps/native/src/features/chatbot/components/message-error-boundary.tsx +1 -1
  67. package/recipes/chatbot/apps/native/src/features/chatbot/components/message-list.tsx +2 -2
  68. package/recipes/chatbot/apps/native/src/features/chatbot/components/model-selector.tsx +1 -1
  69. package/recipes/chatbot/apps/native/src/features/chatbot/components/report-content-modal.tsx +1 -1
  70. package/recipes/chatbot/apps/native/src/features/chatbot/components/suggested-messages.tsx +1 -1
  71. package/recipes/chatbot/apps/native/src/features/chatbot/constants/models.ts +1 -1
  72. package/recipes/chatbot/apps/native/src/features/chatbot/constants/report-reasons.ts +1 -1
  73. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +1 -1
  74. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-config.ts +1 -1
  75. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +1 -1
  76. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +1 -1
  77. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-conversation.ts +1 -1
  78. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-image-picker.ts +1 -1
  79. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +1 -1
  80. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +7 -1
  81. package/recipes/chatbot/apps/native/src/features/chatbot/models/index.ts +1 -1
  82. package/recipes/chatbot/apps/native/src/features/chatbot/models/models.ts +1 -1
  83. package/recipes/chatbot/apps/native/src/features/chatbot/models/providers.ts +1 -1
  84. package/recipes/chatbot/apps/native/src/features/chatbot/models/types.ts +1 -1
  85. package/recipes/chatbot/apps/native/src/features/chatbot/services/file-uploader.ts +1 -1
  86. package/recipes/chatbot/apps/native/src/features/chatbot/services/message-handler-service.ts +1 -1
  87. package/recipes/chatbot/apps/native/src/features/chatbot/types/index.ts +1 -1
  88. package/recipes/chatbot/apps/native/src/features/chatbot/utils/chat-telemetry.ts +1 -1
  89. package/recipes/chatbot/recipe.json +22 -6
  90. package/recipes/chatbot@latest.zip +0 -0
  91. package/recipes/glowing-button@latest.zip +0 -0
  92. package/recipes/image-analysis/recipe.json +38 -21
  93. package/recipes/image-analysis@latest.zip +0 -0
  94. package/recipes/image-generator/apps/native/src/features/image-generator/app/_layout.tsx +1 -0
  95. package/recipes/image-generator/apps/native/src/features/image-generator/app/gallery.tsx +1 -1
  96. package/recipes/image-generator/apps/native/src/features/image-generator/components/gallery-image.tsx +2 -3
  97. package/recipes/image-generator/recipe.json +8 -6
  98. package/recipes/image-generator@latest.zip +0 -0
  99. package/recipes/ios-widget/recipe.json +24 -0
  100. package/recipes/ios-widget@latest.zip +0 -0
  101. package/recipes/number-stepper/recipe.json +15 -0
  102. package/recipes/number-stepper@latest.zip +0 -0
  103. package/recipes/payments/recipe.json +30 -0
  104. package/recipes/payments@latest.zip +0 -0
  105. package/recipes/posthog.json +2 -1
  106. package/recipes/progress-circle/recipe.json +15 -0
  107. package/recipes/progress-circle@latest.zip +0 -0
  108. package/recipes/quiz/recipe.json +2 -2
  109. package/recipes/quiz@latest.zip +0 -0
  110. package/recipes/sentry.json +2 -1
  111. package/recipes/swipe-slider/recipe.json +15 -0
  112. package/recipes/swipe-slider@latest.zip +0 -0
  113. package/recipes/{0 → timeline}/recipe.json +3 -6
  114. package/recipes/timeline@latest.zip +0 -0
  115. package/recipes/tracker-app/recipe.json +2 -2
  116. package/recipes/tracker-app@latest.zip +0 -0
  117. package/recipes/upload-all.sh +14 -3
  118. package/recipes/voice-bot/recipe.json +16 -3
  119. package/recipes/voice-bot@latest.zip +0 -0
  120. package/recipes/wake-word/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +0 -2
  121. package/recipes/wake-word/recipe.json +2 -2
  122. package/recipes/wake-word@latest.zip +0 -0
  123. package/src/__tests__/recipes.test.ts +5 -5
  124. package/src/commands/add.ts +230 -54
  125. package/src/commands/init.ts +118 -102
  126. package/src/commands/remove.ts +1 -1
  127. package/src/core/__tests__/fsx.test.ts +6 -3
  128. package/src/core/__tests__/prompt.test.ts +12 -12
  129. package/src/core/__tests__/validate.test.ts +4 -3
  130. package/src/core/auth.ts +8 -0
  131. package/src/core/codemod.ts +66 -0
  132. package/src/core/errors.ts +1 -1
  133. package/src/core/fsx.ts +1 -1
  134. package/src/core/recipes.ts +67 -11
  135. package/2/.claude/agents/architect.md +0 -74
  136. package/2/.claude/agents/convex-reviewer.md +0 -267
  137. package/2/.claude/agents/debug-detective.md +0 -62
  138. package/2/.claude/agents/learner.md +0 -64
  139. package/2/.claude/agents/perf-optimizer.md +0 -71
  140. package/2/.claude/agents/security-researcher.md +0 -42
  141. package/2/.claude/agents/tech-researcher.md +0 -46
  142. package/2/.claude/agents/ux-designer.md +0 -45
  143. package/2/.claude/commands/create-app-design.md +0 -279
  144. package/2/.claude/commands/create-prd-interactive.md +0 -113
  145. package/2/.claude/commands/create-prd.md +0 -111
  146. package/2/.claude/commands/create-tech-stack.md +0 -345
  147. package/2/.claude/commands/update-app-design.md +0 -298
  148. package/2/.claude/commands/update-project-structure.md +0 -14
  149. package/2/.claude/commands/update-tech-stack.md +0 -325
  150. package/2/.claude/docs/CONVEX_FEATURES_PLAN.md +0 -249
  151. package/2/.claude/docs/app-design-document.md +0 -0
  152. package/2/.claude/docs/project-status.md +0 -25
  153. package/2/.claude/docs/project-structure.md +0 -7
  154. package/2/.claude/docs/tech-stack.md +0 -157
  155. package/2/.claude/scripts/tree.sh +0 -70
  156. package/2/.claude/settings.json +0 -30
  157. package/2/.cursor/commands/code-review-high.md +0 -190
  158. package/2/.cursorignore +0 -3
  159. package/2/.github/ISSUE_TEMPLATE.md +0 -13
  160. package/2/.github/PULL_REQUEST_TEMPLATE.md +0 -23
  161. package/2/.github/actions/eas-build/action.yml +0 -85
  162. package/2/.github/actions/setup-jdk-generate-apk/action.yml +0 -48
  163. package/2/.github/actions/setup-node-pnpm-install/action.yml +0 -29
  164. package/2/.github/scripts/expo-doctor.sh +0 -26
  165. package/2/.github/workflows/compress-images.yml +0 -48
  166. package/2/.github/workflows/e2e-android-eas-build.yml +0 -111
  167. package/2/.github/workflows/e2e-android-maestro.yml +0 -52
  168. package/2/.github/workflows/e2e-android.yml +0 -119
  169. package/2/.github/workflows/eas-build-prod.yml +0 -43
  170. package/2/.github/workflows/eas-build-qa.yml +0 -47
  171. package/2/.github/workflows/expo-doctor.yml +0 -61
  172. package/2/.github/workflows/lint-ts.yml +0 -49
  173. package/2/.github/workflows/new-app-version.yml +0 -65
  174. package/2/.github/workflows/new-github-release.yml +0 -34
  175. package/2/.github/workflows/stale.yml +0 -24
  176. package/2/.github/workflows/test.yml +0 -50
  177. package/2/.github/workflows/type-check.yml +0 -54
  178. package/2/.husky/commit-msg +0 -1
  179. package/2/.husky/common.sh +0 -8
  180. package/2/.husky/post-merge +0 -18
  181. package/2/.husky/pre-commit +0 -24
  182. package/2/.prettierignore +0 -14
  183. package/2/.prettierrc.json +0 -10
  184. package/2/.vibefast/README.md +0 -59
  185. package/2/.vibefast/config.json +0 -4
  186. package/2/.vibefast/journal.json +0 -234
  187. package/2/.vibefast/starter.json +0 -5
  188. package/2/AGENTS.md +0 -48
  189. package/2/LICENSE +0 -21
  190. package/2/README.md +0 -127
  191. package/2/apps/native/__mocks__/bottom-sheet.js +0 -6
  192. package/2/apps/native/__mocks__/expo-router.js +0 -16
  193. package/2/apps/native/__mocks__/react-native-gesture-handler.ts +0 -17
  194. package/2/apps/native/app-env.d.ts +0 -2
  195. package/2/apps/native/app.config.ts +0 -167
  196. package/2/apps/native/assets/adaptive-icon.png +0 -0
  197. package/2/apps/native/assets/favicon.png +0 -0
  198. package/2/apps/native/assets/fonts/Inter.ttf +0 -0
  199. package/2/apps/native/assets/fonts/SF-Pro-Display-Bold.otf +0 -0
  200. package/2/apps/native/assets/fonts/SF-Pro-Display-Medium.otf +0 -0
  201. package/2/apps/native/assets/fonts/SF-Pro-Display-Regular.otf +0 -0
  202. package/2/apps/native/assets/fonts/SF-Pro-Display-Semibold.otf +0 -0
  203. package/2/apps/native/assets/fonts/SpaceMono-Regular.ttf +0 -0
  204. package/2/apps/native/assets/icon.png +0 -0
  205. package/2/apps/native/assets/images/cover-image.png +0 -0
  206. package/2/apps/native/assets/lottie-animations/onboarding-1.json +0 -6504
  207. package/2/apps/native/assets/lottie-animations/onboarding-2.json +0 -1993
  208. package/2/apps/native/assets/lottie-animations/onboarding-3.json +0 -50159
  209. package/2/apps/native/assets/lottie-animations/onboarding-4.json +0 -735
  210. package/2/apps/native/assets/lottie-animations/onboarding-6.json +0 -2167
  211. package/2/apps/native/assets/splash-icon.png +0 -0
  212. package/2/apps/native/babel.config.js +0 -39
  213. package/2/apps/native/eas.json +0 -75
  214. package/2/apps/native/env.js +0 -196
  215. package/2/apps/native/global.css +0 -51
  216. package/2/apps/native/index.ts +0 -5
  217. package/2/apps/native/jest-setup.ts +0 -7
  218. package/2/apps/native/jest.config.js +0 -72
  219. package/2/apps/native/metro.config.js +0 -85
  220. package/2/apps/native/nativewind-env.d.ts +0 -1
  221. package/2/apps/native/package.json +0 -232
  222. package/2/apps/native/scripts/DRY_RUN_REPORT.md +0 -0
  223. package/2/apps/native/scripts/QUICK_START.md +0 -76
  224. package/2/apps/native/scripts/README.md +0 -187
  225. package/2/apps/native/scripts/convex-setup.js +0 -48
  226. package/2/apps/native/scripts/genrate-apk-and-install +0 -39
  227. package/2/apps/native/scripts/i18next-syntax-validation.js +0 -23
  228. package/2/apps/native/scripts/starter-setup.mjs +0 -246
  229. package/2/apps/native/src/api-client/auth.ts +0 -68
  230. package/2/apps/native/src/api-client/chatbot.ts +0 -83
  231. package/2/apps/native/src/api-client/client.ts +0 -4
  232. package/2/apps/native/src/api-client/image-generator.ts +0 -34
  233. package/2/apps/native/src/api-client/index.ts +0 -27
  234. package/2/apps/native/src/api-client/payments.ts +0 -44
  235. package/2/apps/native/src/api-client/reporting.ts +0 -29
  236. package/2/apps/native/src/api-client/shared.ts +0 -43
  237. package/2/apps/native/src/app/(root)/(protected)/(tabs)/_layout.tsx +0 -166
  238. package/2/apps/native/src/app/(root)/(protected)/(tabs)/index.tsx +0 -174
  239. package/2/apps/native/src/app/(root)/(protected)/(tabs)/profile.tsx +0 -320
  240. package/2/apps/native/src/app/(root)/(protected)/(tabs)/settings.tsx +0 -344
  241. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/_layout.tsx +0 -198
  242. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/accordion.tsx +0 -60
  243. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/advanced.tsx +0 -24
  244. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/avatar.tsx +0 -154
  245. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/badge-chips-toggle.tsx +0 -81
  246. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/buttons.tsx +0 -24
  247. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/charts.tsx +0 -3
  248. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/date-picker.tsx +0 -120
  249. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/file-picker.tsx +0 -133
  250. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/gallery-video.tsx +0 -119
  251. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/index.tsx +0 -69
  252. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/inputs-stepper.tsx +0 -78
  253. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/picker-dropdown.tsx +0 -56
  254. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/popover-bottomsheet.tsx +0 -229
  255. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/progress.tsx +0 -38
  256. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/searchbar.tsx +0 -70
  257. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/sliders.tsx +0 -93
  258. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/spinner.tsx +0 -80
  259. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/switch.tsx +0 -47
  260. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/table.tsx +0 -352
  261. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/tabs-timeline.tsx +0 -122
  262. package/2/apps/native/src/app/(root)/(protected)/_layout.tsx +0 -143
  263. package/2/apps/native/src/app/(root)/(protected)/audio-recorder/index.tsx +0 -5
  264. package/2/apps/native/src/app/(root)/(protected)/charts/index.tsx +0 -6
  265. package/2/apps/native/src/app/(root)/(protected)/chatbot/index.tsx +0 -2
  266. package/2/apps/native/src/app/(root)/(protected)/image-generator/gallery.tsx +0 -3
  267. package/2/apps/native/src/app/(root)/(protected)/image-generator/index.tsx +0 -3
  268. package/2/apps/native/src/app/(root)/(protected)/paywall/index.tsx +0 -74
  269. package/2/apps/native/src/app/(root)/(protected)/paywall/local.tsx +0 -25
  270. package/2/apps/native/src/app/(root)/(protected)/paywall/remote.tsx +0 -23
  271. package/2/apps/native/src/app/(root)/(protected)/quick-actions-demo/index.tsx +0 -32
  272. package/2/apps/native/src/app/(root)/(protected)/quiz/index.tsx +0 -47
  273. package/2/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +0 -214
  274. package/2/apps/native/src/app/(root)/(protected)/tracker-app/index.tsx +0 -1
  275. package/2/apps/native/src/app/(root)/(protected)/voice-bot/index.tsx +0 -27
  276. package/2/apps/native/src/app/(root)/(public)/(auth)/_layout.tsx +0 -44
  277. package/2/apps/native/src/app/(root)/(public)/(auth)/forgot-password.tsx +0 -185
  278. package/2/apps/native/src/app/(root)/(public)/(auth)/login.tsx +0 -219
  279. package/2/apps/native/src/app/(root)/(public)/(auth)/otp-verification.tsx +0 -369
  280. package/2/apps/native/src/app/(root)/(public)/(auth)/reset-password.tsx +0 -247
  281. package/2/apps/native/src/app/(root)/(public)/(auth)/signup.tsx +0 -207
  282. package/2/apps/native/src/app/(root)/(public)/_layout.tsx +0 -60
  283. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-one.tsx +0 -5
  284. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-two.tsx +0 -52
  285. package/2/apps/native/src/app/(root)/(public)/onboarding/index.tsx +0 -82
  286. package/2/apps/native/src/app/(root)/_layout.tsx +0 -30
  287. package/2/apps/native/src/app/+html.tsx +0 -46
  288. package/2/apps/native/src/app/[...messing].tsx +0 -24
  289. package/2/apps/native/src/app/_layout.tsx +0 -56
  290. package/2/apps/native/src/app/tsconfig.json +0 -3
  291. package/2/apps/native/src/components/advanced-ui/buttons/glowing-button.tsx +0 -366
  292. package/2/apps/native/src/components/analytics/navigation-tracker.tsx +0 -10
  293. package/2/apps/native/src/components/demo/advanced-ui-components.tsx +0 -46
  294. package/2/apps/native/src/components/demo/buttons-demo.tsx +0 -56
  295. package/2/apps/native/src/components/demo/colors-demo.tsx +0 -52
  296. package/2/apps/native/src/components/demo/dropdown-picker-demo.tsx +0 -274
  297. package/2/apps/native/src/components/demo/inputs-demo.tsx +0 -99
  298. package/2/apps/native/src/components/demo/notification-demo.tsx +0 -434
  299. package/2/apps/native/src/components/demo/title-demo.tsx +0 -16
  300. package/2/apps/native/src/components/demo/toast-demo.tsx +0 -81
  301. package/2/apps/native/src/components/demo/typography-demo.tsx +0 -28
  302. package/2/apps/native/src/components/performance/render-performance-monitor.tsx +0 -36
  303. package/2/apps/native/src/components/ui/accordion.tsx +0 -138
  304. package/2/apps/native/src/components/ui/avatar.tsx +0 -66
  305. package/2/apps/native/src/components/ui/badge.tsx +0 -68
  306. package/2/apps/native/src/components/ui/bottom-sheet.tsx +0 -61
  307. package/2/apps/native/src/components/ui/colors.js +0 -290
  308. package/2/apps/native/src/components/ui/core/button.tsx +0 -317
  309. package/2/apps/native/src/components/ui/core/card.tsx +0 -40
  310. package/2/apps/native/src/components/ui/core/checkbox.tsx +0 -264
  311. package/2/apps/native/src/components/ui/core/feature-button.tsx +0 -162
  312. package/2/apps/native/src/components/ui/core/focus-aware-status-bar.tsx +0 -21
  313. package/2/apps/native/src/components/ui/core/image.tsx +0 -30
  314. package/2/apps/native/src/components/ui/core/inputs/floating-text-input.tsx +0 -369
  315. package/2/apps/native/src/components/ui/core/inputs/input-otp.tsx +0 -304
  316. package/2/apps/native/src/components/ui/core/inputs/input.tsx +0 -373
  317. package/2/apps/native/src/components/ui/core/list.tsx +0 -60
  318. package/2/apps/native/src/components/ui/core/navigation/animated-header.tsx +0 -87
  319. package/2/apps/native/src/components/ui/core/navigation/screen-footer.tsx +0 -67
  320. package/2/apps/native/src/components/ui/core/overlays/dropdown.tsx +0 -290
  321. package/2/apps/native/src/components/ui/core/overlays/full-screen-loading.tsx +0 -15
  322. package/2/apps/native/src/components/ui/core/overlays/modal-keyboard-aware-scroll-view.tsx +0 -46
  323. package/2/apps/native/src/components/ui/core/overlays/modal.tsx +0 -247
  324. package/2/apps/native/src/components/ui/core/pagination-dots.tsx +0 -231
  325. package/2/apps/native/src/components/ui/core/pressable.tsx +0 -48
  326. package/2/apps/native/src/components/ui/core/progress-bar.tsx +0 -47
  327. package/2/apps/native/src/components/ui/core/progress.tsx +0 -149
  328. package/2/apps/native/src/components/ui/core/select.tsx +0 -261
  329. package/2/apps/native/src/components/ui/core/spinner.tsx +0 -387
  330. package/2/apps/native/src/components/ui/core/text.tsx +0 -45
  331. package/2/apps/native/src/components/ui/core/toast.tsx +0 -190
  332. package/2/apps/native/src/components/ui/custom-switch.tsx +0 -90
  333. package/2/apps/native/src/components/ui/date-time-picker.tsx +0 -268
  334. package/2/apps/native/src/components/ui/debug.ts +0 -2
  335. package/2/apps/native/src/components/ui/extras/debug-credit-tester.tsx +0 -107
  336. package/2/apps/native/src/components/ui/extras/debug-mmkv-state.tsx +0 -53
  337. package/2/apps/native/src/components/ui/extras/handle-error.ts +0 -191
  338. package/2/apps/native/src/components/ui/extras/hello-wave.tsx +0 -70
  339. package/2/apps/native/src/components/ui/extras/icon.tsx +0 -36
  340. package/2/apps/native/src/components/ui/extras/network-connectivity-wrapper.tsx +0 -36
  341. package/2/apps/native/src/components/ui/extras/offline-indicator.tsx +0 -55
  342. package/2/apps/native/src/components/ui/extras/social-login-buttons.tsx +0 -296
  343. package/2/apps/native/src/components/ui/file-picker.tsx +0 -177
  344. package/2/apps/native/src/components/ui/gallery.tsx +0 -79
  345. package/2/apps/native/src/components/ui/icons/apple.tsx +0 -19
  346. package/2/apps/native/src/components/ui/icons/arrow-right.tsx +0 -26
  347. package/2/apps/native/src/components/ui/icons/camera.tsx +0 -26
  348. package/2/apps/native/src/components/ui/icons/caret-down.tsx +0 -20
  349. package/2/apps/native/src/components/ui/icons/chevron-up.tsx +0 -21
  350. package/2/apps/native/src/components/ui/icons/claude.tsx +0 -15
  351. package/2/apps/native/src/components/ui/icons/copy.tsx +0 -27
  352. package/2/apps/native/src/components/ui/icons/deepseek.tsx +0 -15
  353. package/2/apps/native/src/components/ui/icons/download.tsx +0 -32
  354. package/2/apps/native/src/components/ui/icons/feed.tsx +0 -12
  355. package/2/apps/native/src/components/ui/icons/gemini.tsx +0 -15
  356. package/2/apps/native/src/components/ui/icons/github.tsx +0 -30
  357. package/2/apps/native/src/components/ui/icons/google.tsx +0 -24
  358. package/2/apps/native/src/components/ui/icons/groq.tsx +0 -15
  359. package/2/apps/native/src/components/ui/icons/home.tsx +0 -19
  360. package/2/apps/native/src/components/ui/icons/index.tsx +0 -26
  361. package/2/apps/native/src/components/ui/icons/language.tsx +0 -33
  362. package/2/apps/native/src/components/ui/icons/llama.tsx +0 -15
  363. package/2/apps/native/src/components/ui/icons/microphone.tsx +0 -20
  364. package/2/apps/native/src/components/ui/icons/mistral.tsx +0 -22
  365. package/2/apps/native/src/components/ui/icons/nutrition.tsx +0 -15
  366. package/2/apps/native/src/components/ui/icons/openai.tsx +0 -15
  367. package/2/apps/native/src/components/ui/icons/perplexity.tsx +0 -22
  368. package/2/apps/native/src/components/ui/icons/qwen.tsx +0 -15
  369. package/2/apps/native/src/components/ui/icons/rate.tsx +0 -24
  370. package/2/apps/native/src/components/ui/icons/report.tsx +0 -20
  371. package/2/apps/native/src/components/ui/icons/send-horizontal.tsx +0 -26
  372. package/2/apps/native/src/components/ui/icons/settings.tsx +0 -12
  373. package/2/apps/native/src/components/ui/icons/share.tsx +0 -16
  374. package/2/apps/native/src/components/ui/icons/square.tsx +0 -9
  375. package/2/apps/native/src/components/ui/icons/style.tsx +0 -22
  376. package/2/apps/native/src/components/ui/icons/support.tsx +0 -27
  377. package/2/apps/native/src/components/ui/icons/trash2.tsx +0 -42
  378. package/2/apps/native/src/components/ui/icons/user.tsx +0 -12
  379. package/2/apps/native/src/components/ui/icons/website.tsx +0 -28
  380. package/2/apps/native/src/components/ui/icons/wifi-off.tsx +0 -17
  381. package/2/apps/native/src/components/ui/index.tsx +0 -14
  382. package/2/apps/native/src/components/ui/nav-item.tsx +0 -42
  383. package/2/apps/native/src/components/ui/patterns/index.ts +0 -16
  384. package/2/apps/native/src/components/ui/picker.tsx +0 -244
  385. package/2/apps/native/src/components/ui/popover.tsx +0 -313
  386. package/2/apps/native/src/components/ui/primitives/index.ts +0 -38
  387. package/2/apps/native/src/components/ui/radio-group.tsx +0 -47
  388. package/2/apps/native/src/components/ui/searchbar.tsx +0 -118
  389. package/2/apps/native/src/components/ui/sheet.tsx +0 -93
  390. package/2/apps/native/src/components/ui/switch.tsx +0 -37
  391. package/2/apps/native/src/components/ui/table.tsx +0 -296
  392. package/2/apps/native/src/components/ui/tabs.tsx +0 -115
  393. package/2/apps/native/src/components/ui/toggle.tsx +0 -50
  394. package/2/apps/native/src/components/ui/utils.tsx +0 -34
  395. package/2/apps/native/src/components/ui/video.tsx +0 -39
  396. package/2/apps/native/src/core/analytics/analytics-service.ts +0 -94
  397. package/2/apps/native/src/core/analytics/index.ts +0 -2
  398. package/2/apps/native/src/core/analytics/posthog-analytics-adapter.ts +0 -192
  399. package/2/apps/native/src/core/auth/auth-service.ts +0 -33
  400. package/2/apps/native/src/core/auth/index.ts +0 -1
  401. package/2/apps/native/src/core/cache/__tests__/cache-service.test.ts +0 -599
  402. package/2/apps/native/src/core/cache/cache-service.ts +0 -89
  403. package/2/apps/native/src/core/cache/index.ts +0 -45
  404. package/2/apps/native/src/core/config/config.service.ts +0 -153
  405. package/2/apps/native/src/core/config/index.ts +0 -2
  406. package/2/apps/native/src/core/config/telemetry.ts +0 -38
  407. package/2/apps/native/src/core/local-notifications/local-notification-manager.ts +0 -409
  408. package/2/apps/native/src/core/logging/custom-transports.ts +0 -126
  409. package/2/apps/native/src/core/logging/index.ts +0 -1
  410. package/2/apps/native/src/core/logging/logger.ts +0 -182
  411. package/2/apps/native/src/core/navigation/deep-link-handler.ts +0 -295
  412. package/2/apps/native/src/core/navigation/navigation-types.ts +0 -53
  413. package/2/apps/native/src/core/payments/index.ts +0 -1
  414. package/2/apps/native/src/core/payments/payment-service.ts +0 -32
  415. package/2/apps/native/src/core/quick-actions/index.ts +0 -2
  416. package/2/apps/native/src/core/quick-actions/quick-actions-adapter.ts +0 -54
  417. package/2/apps/native/src/core/quick-actions/types.ts +0 -29
  418. package/2/apps/native/src/core/storage/index.ts +0 -1
  419. package/2/apps/native/src/core/storage/mmkv.ts +0 -62
  420. package/2/apps/native/src/core/storage/notification-storage.ts +0 -312
  421. package/2/apps/native/src/core/types/common.ts +0 -0
  422. package/2/apps/native/src/core/utils/convex-http-api.ts +0 -30
  423. package/2/apps/native/src/features/audio-recorder/components/audio-player.tsx +0 -301
  424. package/2/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +0 -373
  425. package/2/apps/native/src/features/audio-recorder/components/audio-waveform.tsx +0 -270
  426. package/2/apps/native/src/features/audio-recorder/components/index.ts +0 -4
  427. package/2/apps/native/src/features/audio-recorder/components/recording-list.tsx +0 -89
  428. package/2/apps/native/src/features/audio-recorder/demo/audio-player-demo.tsx +0 -66
  429. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-cloud.tsx +0 -68
  430. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-interview.tsx +0 -102
  431. package/2/apps/native/src/features/audio-recorder/demo/basic.tsx +0 -27
  432. package/2/apps/native/src/features/audio-recorder/demo/index.ts +0 -5
  433. package/2/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +0 -82
  434. package/2/apps/native/src/features/authentication/components/auth-watcher.tsx +0 -115
  435. package/2/apps/native/src/features/authentication/components/login-form.tsx +0 -85
  436. package/2/apps/native/src/features/authentication/services/__tests__/convex-auth.adapter.test.ts +0 -399
  437. package/2/apps/native/src/features/authentication/services/convex-auth.adapter.ts +0 -497
  438. package/2/apps/native/src/features/authentication/services/index.ts +0 -2
  439. package/2/apps/native/src/features/charts/README.md +0 -185
  440. package/2/apps/native/src/features/charts/app/preview.tsx +0 -226
  441. package/2/apps/native/src/features/charts/components/area-chart.tsx +0 -43
  442. package/2/apps/native/src/features/charts/components/bar-chart.tsx +0 -146
  443. package/2/apps/native/src/features/charts/components/candlestick-chart.tsx +0 -199
  444. package/2/apps/native/src/features/charts/components/chart-card.tsx +0 -68
  445. package/2/apps/native/src/features/charts/components/column-chart.tsx +0 -146
  446. package/2/apps/native/src/features/charts/components/doughnut-chart.tsx +0 -260
  447. package/2/apps/native/src/features/charts/components/index.ts +0 -13
  448. package/2/apps/native/src/features/charts/components/line-chart.tsx +0 -311
  449. package/2/apps/native/src/features/charts/components/radar-chart.tsx +0 -183
  450. package/2/apps/native/src/features/charts/components/radial-bar-chart.tsx +0 -191
  451. package/2/apps/native/src/features/charts/components/stacked-area-chart.tsx +0 -268
  452. package/2/apps/native/src/features/charts/components/stacked-bar-chart.tsx +0 -325
  453. package/2/apps/native/src/features/charts/data/mock-data.ts +0 -186
  454. package/2/apps/native/src/features/charts/types/index.ts +0 -69
  455. package/2/apps/native/src/features/chatbot/app/index.tsx +0 -303
  456. package/2/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +0 -60
  457. package/2/apps/native/src/features/chatbot/components/chat-input-bar.tsx +0 -470
  458. package/2/apps/native/src/features/chatbot/components/chat-markdown.tsx +0 -576
  459. package/2/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +0 -247
  460. package/2/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +0 -162
  461. package/2/apps/native/src/features/chatbot/components/image-preview-list.tsx +0 -116
  462. package/2/apps/native/src/features/chatbot/components/markdown/code-block.tsx +0 -166
  463. package/2/apps/native/src/features/chatbot/components/markdown/index.ts +0 -11
  464. package/2/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +0 -130
  465. package/2/apps/native/src/features/chatbot/components/message-error-boundary.tsx +0 -79
  466. package/2/apps/native/src/features/chatbot/components/message-list.tsx +0 -174
  467. package/2/apps/native/src/features/chatbot/components/model-selector.tsx +0 -284
  468. package/2/apps/native/src/features/chatbot/components/report-content-modal.tsx +0 -189
  469. package/2/apps/native/src/features/chatbot/components/suggested-messages.tsx +0 -68
  470. package/2/apps/native/src/features/chatbot/constants/models.ts +0 -21
  471. package/2/apps/native/src/features/chatbot/constants/report-reasons.ts +0 -10
  472. package/2/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +0 -144
  473. package/2/apps/native/src/features/chatbot/hooks/use-chat-config.ts +0 -665
  474. package/2/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +0 -360
  475. package/2/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +0 -90
  476. package/2/apps/native/src/features/chatbot/hooks/use-conversation.ts +0 -80
  477. package/2/apps/native/src/features/chatbot/hooks/use-image-picker.ts +0 -123
  478. package/2/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +0 -162
  479. package/2/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +0 -214
  480. package/2/apps/native/src/features/chatbot/models/index.ts +0 -87
  481. package/2/apps/native/src/features/chatbot/models/models.ts +0 -163
  482. package/2/apps/native/src/features/chatbot/models/providers.ts +0 -63
  483. package/2/apps/native/src/features/chatbot/models/types.ts +0 -41
  484. package/2/apps/native/src/features/chatbot/services/file-uploader.ts +0 -239
  485. package/2/apps/native/src/features/chatbot/services/message-handler-service.ts +0 -181
  486. package/2/apps/native/src/features/chatbot/types/index.ts +0 -61
  487. package/2/apps/native/src/features/chatbot/utils/chat-telemetry.ts +0 -92
  488. package/2/apps/native/src/features/image-generator/app/_layout.tsx +0 -26
  489. package/2/apps/native/src/features/image-generator/app/gallery.tsx +0 -217
  490. package/2/apps/native/src/features/image-generator/app/index.tsx +0 -237
  491. package/2/apps/native/src/features/image-generator/components/gallery-image.tsx +0 -25
  492. package/2/apps/native/src/features/image-generator/components/image-detail-modal.tsx +0 -215
  493. package/2/apps/native/src/features/image-generator/components/image-model-selector.tsx +0 -210
  494. package/2/apps/native/src/features/image-generator/components/image-placeholder.tsx +0 -26
  495. package/2/apps/native/src/features/image-generator/hooks/use-image-gallery.ts +0 -71
  496. package/2/apps/native/src/features/image-generator/hooks/use-image-generator-settings.ts +0 -152
  497. package/2/apps/native/src/features/image-generator/hooks/use-image-generator.ts +0 -93
  498. package/2/apps/native/src/features/image-generator/models/models.ts +0 -66
  499. package/2/apps/native/src/features/image-generator/services/image-gallery-service.ts +0 -98
  500. package/2/apps/native/src/features/image-generator/services/image-save-service.ts +0 -121
  501. package/2/apps/native/src/features/onboarding/analytics/index.ts +0 -9
  502. package/2/apps/native/src/features/onboarding/components/onboarding-with-analytics.tsx +0 -141
  503. package/2/apps/native/src/features/onboarding/components/onboarding.tsx +0 -173
  504. package/2/apps/native/src/features/onboarding/config/onboarding-flow-config.ts +0 -189
  505. package/2/apps/native/src/features/onboarding/demo-one/app/index.tsx +0 -43
  506. package/2/apps/native/src/features/onboarding/demo-one/data.ts +0 -32
  507. package/2/apps/native/src/features/onboarding/hooks/use-onboarding-analytics.ts +0 -323
  508. package/2/apps/native/src/features/onboarding/services/onboarding-analytics.ts +0 -432
  509. package/2/apps/native/src/features/payments/README.md +0 -200
  510. package/2/apps/native/src/features/payments/app/local-paywall.tsx +0 -194
  511. package/2/apps/native/src/features/payments/app/remote-paywall.tsx +0 -79
  512. package/2/apps/native/src/features/payments/components/payment-initializer.tsx +0 -95
  513. package/2/apps/native/src/features/payments/components/paywall-error-state.tsx +0 -60
  514. package/2/apps/native/src/features/payments/components/paywall-local-mode.tsx +0 -116
  515. package/2/apps/native/src/features/payments/components/paywall-product-card.tsx +0 -133
  516. package/2/apps/native/src/features/payments/components/paywall-remote-mode.tsx +0 -146
  517. package/2/apps/native/src/features/payments/hooks/use-entitlement.ts +0 -63
  518. package/2/apps/native/src/features/payments/index.ts +0 -8
  519. package/2/apps/native/src/features/payments/services/revenuecat-adapter.ts +0 -407
  520. package/2/apps/native/src/features/quick-actions/components/quick-actions-demo.tsx +0 -139
  521. package/2/apps/native/src/features/quick-actions/config/default-actions.ts +0 -83
  522. package/2/apps/native/src/features/quick-actions/hooks/use-quick-actions.ts +0 -45
  523. package/2/apps/native/src/features/quick-actions/index.ts +0 -4
  524. package/2/apps/native/src/features/quick-actions/utils/quick-actions-manager.ts +0 -105
  525. package/2/apps/native/src/features/quiz/components/question.tsx +0 -67
  526. package/2/apps/native/src/features/quiz/config.ts +0 -11
  527. package/2/apps/native/src/features/quiz/index.tsx +0 -133
  528. package/2/apps/native/src/features/settings/ui/debug-info.tsx +0 -75
  529. package/2/apps/native/src/features/settings/ui/dev-tools.tsx +0 -1
  530. package/2/apps/native/src/features/settings/ui/item.tsx +0 -45
  531. package/2/apps/native/src/features/settings/ui/items-container.tsx +0 -23
  532. package/2/apps/native/src/features/settings/ui/language-item.tsx +0 -52
  533. package/2/apps/native/src/features/settings/ui/notification-item.tsx +0 -59
  534. package/2/apps/native/src/features/settings/ui/theme-item.tsx +0 -45
  535. package/2/apps/native/src/features/tracker-app/app/index.tsx +0 -108
  536. package/2/apps/native/src/features/tracker-app/components/animated-number.tsx +0 -102
  537. package/2/apps/native/src/features/tracker-app/components/calorie-card.tsx +0 -66
  538. package/2/apps/native/src/features/tracker-app/components/circular-progress.tsx +0 -97
  539. package/2/apps/native/src/features/tracker-app/components/floating-add-button.tsx +0 -27
  540. package/2/apps/native/src/features/tracker-app/components/macro-card.tsx +0 -80
  541. package/2/apps/native/src/features/tracker-app/components/promo-banner.tsx +0 -98
  542. package/2/apps/native/src/features/tracker-app/components/recently-logged.tsx +0 -64
  543. package/2/apps/native/src/features/tracker-app/components/week-calendar.tsx +0 -68
  544. package/2/apps/native/src/features/vibefast-features.ts +0 -42
  545. package/2/apps/native/src/features/voice-bot/README.md +0 -185
  546. package/2/apps/native/src/features/voice-bot/components/conversation-status.tsx +0 -76
  547. package/2/apps/native/src/features/voice-bot/components/index.ts +0 -4
  548. package/2/apps/native/src/features/voice-bot/components/message-input.tsx +0 -98
  549. package/2/apps/native/src/features/voice-bot/components/voice-bot-screen.tsx +0 -173
  550. package/2/apps/native/src/features/voice-bot/components/voice-controls.tsx +0 -73
  551. package/2/apps/native/src/features/voice-bot/index.ts +0 -3
  552. package/2/apps/native/src/features/voice-bot/services/index.ts +0 -1
  553. package/2/apps/native/src/features/voice-bot/services/use-voice-bot.ts +0 -161
  554. package/2/apps/native/src/features/voice-bot/types.ts +0 -29
  555. package/2/apps/native/src/features/wake-word/components/index.ts +0 -1
  556. package/2/apps/native/src/features/wake-word/components/wake-word-indicator.tsx +0 -61
  557. package/2/apps/native/src/features/wake-word/constants.ts +0 -10
  558. package/2/apps/native/src/features/wake-word/hooks/use-wake-word.ts +0 -181
  559. package/2/apps/native/src/features/wake-word/index.ts +0 -22
  560. package/2/apps/native/src/features/wake-word/services/audio-session.ts +0 -40
  561. package/2/apps/native/src/features/wake-word/services/event-bus.ts +0 -31
  562. package/2/apps/native/src/features/wake-word/services/keywords.ts +0 -88
  563. package/2/apps/native/src/features/wake-word/services/wake-word-manager.ts +0 -249
  564. package/2/apps/native/src/features/wake-word/types.ts +0 -22
  565. package/2/apps/native/src/lib/env.js +0 -13
  566. package/2/apps/native/src/lib/hooks/index.tsx +0 -6
  567. package/2/apps/native/src/lib/hooks/use-device-identifier.tsx +0 -80
  568. package/2/apps/native/src/lib/hooks/use-gradual-animation.ts +0 -28
  569. package/2/apps/native/src/lib/hooks/use-is-first-time.tsx +0 -25
  570. package/2/apps/native/src/lib/hooks/use-navigation-analytics.ts +0 -44
  571. package/2/apps/native/src/lib/hooks/use-navigation-options.tsx +0 -87
  572. package/2/apps/native/src/lib/hooks/use-push-notifications.ts +0 -250
  573. package/2/apps/native/src/lib/hooks/use-responsive-size.tsx +0 -37
  574. package/2/apps/native/src/lib/hooks/use-selected-theme.tsx +0 -38
  575. package/2/apps/native/src/lib/hooks/use-viewport-lazy-loading.tsx +0 -124
  576. package/2/apps/native/src/lib/i18n/index.tsx +0 -30
  577. package/2/apps/native/src/lib/i18n/react-i18next.d.ts +0 -9
  578. package/2/apps/native/src/lib/i18n/resources.ts +0 -25
  579. package/2/apps/native/src/lib/i18n/types.ts +0 -23
  580. package/2/apps/native/src/lib/i18n/utils.tsx +0 -112
  581. package/2/apps/native/src/lib/index.tsx +0 -3
  582. package/2/apps/native/src/lib/state/auth-client-slice.ts +0 -34
  583. package/2/apps/native/src/lib/state/index.ts +0 -1
  584. package/2/apps/native/src/lib/storage.tsx +0 -7
  585. package/2/apps/native/src/lib/test-utils.tsx +0 -43
  586. package/2/apps/native/src/lib/use-theme-config.tsx +0 -108
  587. package/2/apps/native/src/lib/utils.ts +0 -29
  588. package/2/apps/native/src/polyfills.ts +0 -61
  589. package/2/apps/native/src/providers/convex-provider.tsx +0 -31
  590. package/2/apps/native/src/providers/index.tsx +0 -6
  591. package/2/apps/native/src/providers/notification-provider.tsx +0 -168
  592. package/2/apps/native/src/providers/posthog-provider.tsx +0 -47
  593. package/2/apps/native/src/providers/root-providers.tsx +0 -46
  594. package/2/apps/native/src/providers/sentry-provider.tsx +0 -62
  595. package/2/apps/native/src/providers/splash-screen-provider.tsx +0 -122
  596. package/2/apps/native/src/providers/theme-provider.tsx +0 -67
  597. package/2/apps/native/src/translations/ar.json +0 -394
  598. package/2/apps/native/src/translations/de.json +0 -394
  599. package/2/apps/native/src/translations/en.json +0 -394
  600. package/2/apps/native/src/translations/es.json +0 -394
  601. package/2/apps/native/src/translations/fr.json +0 -394
  602. package/2/apps/native/src/types/flash-list.d.ts +0 -3
  603. package/2/apps/native/src/types/index.ts +0 -3
  604. package/2/apps/native/src/types/react-native-reanimated.d.ts +0 -5
  605. package/2/apps/native/tailwind.config.js +0 -57
  606. package/2/apps/native/targets/widget/AppIntent.swift +0 -46
  607. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
  608. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
  609. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
  610. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
  611. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
  612. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
  613. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
  614. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
  615. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
  616. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
  617. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
  618. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
  619. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
  620. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
  621. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -122
  622. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
  623. package/2/apps/native/targets/widget/CalorieTrackerWidget.swift +0 -424
  624. package/2/apps/native/targets/widget/HabitTrackerWidget.swift +0 -305
  625. package/2/apps/native/targets/widget/Info.plist +0 -11
  626. package/2/apps/native/targets/widget/WidgetLiveActivity.swift +0 -75
  627. package/2/apps/native/targets/widget/expo-target.config.js +0 -10
  628. package/2/apps/native/targets/widget/generated.entitlements +0 -5
  629. package/2/apps/native/targets/widget/index.swift +0 -18
  630. package/2/apps/native/targets/widget/widgets.swift +0 -96
  631. package/2/apps/native/tsconfig.json +0 -88
  632. package/2/apps/native/vitest.config.mts +0 -14
  633. package/2/apps/web/README.md +0 -36
  634. package/2/apps/web/app/favicon.ico +0 -0
  635. package/2/apps/web/app/globals.css +0 -122
  636. package/2/apps/web/app/layout.tsx +0 -38
  637. package/2/apps/web/app/page.tsx +0 -35
  638. package/2/apps/web/app/users/page.tsx +0 -301
  639. package/2/apps/web/components/AdminDashboard.tsx +0 -336
  640. package/2/apps/web/components/AppleLogo.tsx +0 -15
  641. package/2/apps/web/components/GitHubLogo.tsx +0 -11
  642. package/2/apps/web/components/GoogleLogo.tsx +0 -23
  643. package/2/apps/web/components/Layout.tsx +0 -77
  644. package/2/apps/web/components/ThemeToggle.tsx +0 -23
  645. package/2/apps/web/components/UserMenu.tsx +0 -66
  646. package/2/apps/web/components/auth/CodeInput.tsx +0 -24
  647. package/2/apps/web/components/auth/ResetPasswordWithEmailCode.tsx +0 -85
  648. package/2/apps/web/components/auth/SignInFormEmailCode.tsx +0 -72
  649. package/2/apps/web/components/auth/SignInFormEmailLink.tsx +0 -81
  650. package/2/apps/web/components/auth/SignInFormPassword.tsx +0 -17
  651. package/2/apps/web/components/auth/SignInFormPasswordAndCustomField.tsx +0 -42
  652. package/2/apps/web/components/auth/SignInFormPasswordAndResetViaCode.tsx +0 -32
  653. package/2/apps/web/components/auth/SignInFormPasswordAndVerifyViaCode.tsx +0 -86
  654. package/2/apps/web/components/auth/SignInFormPhoneCode.tsx +0 -89
  655. package/2/apps/web/components/auth/SignInFormsShowcase.tsx +0 -64
  656. package/2/apps/web/components/auth/SignInMethodDivider.tsx +0 -17
  657. package/2/apps/web/components/auth/SignInWithEmailCode.tsx +0 -49
  658. package/2/apps/web/components/auth/SignInWithOAuth.tsx +0 -16
  659. package/2/apps/web/components/auth/SignInWithPassword.tsx +0 -100
  660. package/2/apps/web/components/auth/oauth/SignInWithApple.tsx +0 -27
  661. package/2/apps/web/components/auth/oauth/SignInWithGitHub.tsx +0 -27
  662. package/2/apps/web/components/auth/oauth/SignInWithGoogle.tsx +0 -27
  663. package/2/apps/web/components/ui/button.tsx +0 -60
  664. package/2/apps/web/components/ui/card.tsx +0 -92
  665. package/2/apps/web/components/ui/dialog.tsx +0 -143
  666. package/2/apps/web/components/ui/dropdown-menu.tsx +0 -257
  667. package/2/apps/web/components/ui/input-otp.tsx +0 -77
  668. package/2/apps/web/components/ui/input.tsx +0 -21
  669. package/2/apps/web/components/ui/skeleton.tsx +0 -13
  670. package/2/apps/web/components/ui/tabs.tsx +0 -66
  671. package/2/apps/web/components/ui/toast.tsx +0 -130
  672. package/2/apps/web/components/ui/toaster.tsx +0 -36
  673. package/2/apps/web/components/ui/toggle-group.tsx +0 -83
  674. package/2/apps/web/components/ui/toggle.tsx +0 -47
  675. package/2/apps/web/components/ui/use-toast.ts +0 -192
  676. package/2/apps/web/components.json +0 -22
  677. package/2/apps/web/eslint.config.mjs +0 -18
  678. package/2/apps/web/lib/convex-provider.tsx +0 -18
  679. package/2/apps/web/lib/utils.ts +0 -6
  680. package/2/apps/web/next.config.ts +0 -7
  681. package/2/apps/web/package.json +0 -46
  682. package/2/apps/web/postcss.config.mjs +0 -7
  683. package/2/apps/web/public/file.svg +0 -1
  684. package/2/apps/web/public/globe.svg +0 -1
  685. package/2/apps/web/public/next.svg +0 -1
  686. package/2/apps/web/public/vercel.svg +0 -1
  687. package/2/apps/web/public/window.svg +0 -1
  688. package/2/apps/web/tsconfig.json +0 -34
  689. package/2/bts.jsonc +0 -21
  690. package/2/commitlint.config.js +0 -1
  691. package/2/eslint.config.mjs +0 -182
  692. package/2/lint-staged.config.js +0 -16
  693. package/2/package.json +0 -64
  694. package/2/packages/backend/.env.example +0 -20
  695. package/2/packages/backend/convex/README.md +0 -90
  696. package/2/packages/backend/convex/_generated/api.d.ts +0 -2599
  697. package/2/packages/backend/convex/_generated/api.js +0 -23
  698. package/2/packages/backend/convex/_generated/dataModel.d.ts +0 -60
  699. package/2/packages/backend/convex/_generated/server.d.ts +0 -149
  700. package/2/packages/backend/convex/_generated/server.js +0 -90
  701. package/2/packages/backend/convex/agents.ts +0 -116
  702. package/2/packages/backend/convex/auth.config.ts +0 -8
  703. package/2/packages/backend/convex/auth.ts +0 -103
  704. package/2/packages/backend/convex/authCustomEmailOtpProvider.ts +0 -175
  705. package/2/packages/backend/convex/authOtp.ts +0 -144
  706. package/2/packages/backend/convex/authPasswordReset.ts +0 -367
  707. package/2/packages/backend/convex/authPasswordResetActions.ts +0 -150
  708. package/2/packages/backend/convex/chatbot/index.ts +0 -30
  709. package/2/packages/backend/convex/chatbotAgent.ts +0 -1085
  710. package/2/packages/backend/convex/chatbotHistory.ts +0 -307
  711. package/2/packages/backend/convex/convex.config.ts +0 -13
  712. package/2/packages/backend/convex/deviceGrants.ts +0 -58
  713. package/2/packages/backend/convex/grantFunctions.ts +0 -444
  714. package/2/packages/backend/convex/http.ts +0 -8
  715. package/2/packages/backend/convex/imageGeneration/index.ts +0 -12
  716. package/2/packages/backend/convex/imageGeneratorFunctions.ts +0 -290
  717. package/2/packages/backend/convex/lib/ai/analysisConfigs.ts +0 -257
  718. package/2/packages/backend/convex/lib/ai/config.ts +0 -71
  719. package/2/packages/backend/convex/lib/ai/geminiAdapter.ts +0 -43
  720. package/2/packages/backend/convex/lib/ai/openaiAdapter.ts +0 -43
  721. package/2/packages/backend/convex/lib/ai/schemas.ts +0 -79
  722. package/2/packages/backend/convex/lib/config.ts +0 -111
  723. package/2/packages/backend/convex/lib/rateLimit.ts +0 -100
  724. package/2/packages/backend/convex/lib/telemetry.ts +0 -29
  725. package/2/packages/backend/convex/paymentFunctions.ts +0 -119
  726. package/2/packages/backend/convex/payments/index.ts +0 -13
  727. package/2/packages/backend/convex/pushNotificationFunctions.ts +0 -342
  728. package/2/packages/backend/convex/ragKnowledge.ts +0 -714
  729. package/2/packages/backend/convex/rateLimit.ts +0 -13
  730. package/2/packages/backend/convex/recordingFunctions.ts +0 -98
  731. package/2/packages/backend/convex/reportFunctions.ts +0 -344
  732. package/2/packages/backend/convex/reporting/index.ts +0 -9
  733. package/2/packages/backend/convex/router.ts +0 -81
  734. package/2/packages/backend/convex/schema.ts +0 -237
  735. package/2/packages/backend/convex/shared/email.ts +0 -172
  736. package/2/packages/backend/convex/shared/files.ts +0 -96
  737. package/2/packages/backend/convex/shared/index.ts +0 -17
  738. package/2/packages/backend/convex/shared/templates/PasswordResetEmail.tsx +0 -72
  739. package/2/packages/backend/convex/shared/templates/VerificationCodeEmail.tsx +0 -65
  740. package/2/packages/backend/convex/sharedUsers.ts +0 -48
  741. package/2/packages/backend/convex/tools/index.ts +0 -18
  742. package/2/packages/backend/convex/tools/knowledgeRetrieval.ts +0 -92
  743. package/2/packages/backend/convex/tools/tavilySearch.ts +0 -83
  744. package/2/packages/backend/convex/tools/userProfile.ts +0 -72
  745. package/2/packages/backend/convex/tsconfig.json +0 -25
  746. package/2/packages/backend/convex/users.ts +0 -54
  747. package/2/packages/backend/index.ts +0 -20
  748. package/2/packages/backend/package.json +0 -32
  749. package/2/packages/ui/README.md +0 -63
  750. package/2/packages/ui/index.ts +0 -1
  751. package/2/packages/ui/package.json +0 -21
  752. package/2/packages/ui/src/components/SharedButton.tsx +0 -31
  753. package/2/packages/ui/src/components/SharedCard.tsx +0 -48
  754. package/2/packages/ui/src/components/index.ts +0 -2
  755. package/2/packages/ui/tsconfig.json +0 -10
  756. package/2/pnpm-lock.yaml +0 -23292
  757. package/2/pnpm-workspace.yaml +0 -3
  758. package/2/scripts/i18next-syntax-validation.js +0 -1
  759. package/2/tsconfig.json +0 -43
  760. package/2/turbo.json +0 -33
  761. package/2/vercel.json +0 -6
  762. package/2/vf-agent/agent-teams/team-vibefast.yaml +0 -14
  763. package/2/vf-agent/agents/analyst.md +0 -53
  764. package/2/vf-agent/agents/architect.md +0 -105
  765. package/2/vf-agent/agents/dev.md +0 -40
  766. package/2/vf-agent/agents/orchestrator.md +0 -181
  767. package/2/vf-agent/agents/pm.md +0 -48
  768. package/2/vf-agent/agents/po.md +0 -38
  769. package/2/vf-agent/agents/qa.md +0 -30
  770. package/2/vf-agent/agents/sm.md +0 -38
  771. package/2/vf-agent/agents/ux-expert.md +0 -33
  772. package/2/vf-agent/checklists/po-master-checklist.md +0 -73
  773. package/2/vf-agent/checklists/story-dod-checklist.md +0 -37
  774. package/2/vf-agent/core-config.yaml +0 -43
  775. package/2/vf-agent/data/knowledge_base/backend/convex-advanced.md +0 -43
  776. package/2/vf-agent/data/knowledge_base/backend/convex-database.md +0 -53
  777. package/2/vf-agent/data/knowledge_base/backend/convex-main.md +0 -65
  778. package/2/vf-agent/data/knowledge_base/backend/full-guidelines.md +0 -795
  779. package/2/vf-agent/data/knowledge_base/coding-standards.md +0 -253
  780. package/2/vf-agent/data/knowledge_base/frontend/full-guidelines.md +0 -254
  781. package/2/vf-agent/data/knowledge_base/frontend/image-handling.md +0 -48
  782. package/2/vf-agent/data/knowledge_base/frontend/react-native-main.md +0 -24
  783. package/2/vf-agent/data/knowledge_base/frontend/ui-and-styling.md +0 -169
  784. package/2/vf-agent/data/knowledge_base/general-principles.md +0 -26
  785. package/2/vf-agent/data/knowledge_base/master-rulebook.md +0 -42
  786. package/2/vf-agent/data/knowledge_base/starter-docs/audio-recorder-reference.md +0 -98
  787. package/2/vf-agent/data/knowledge_base/starter-docs/authentication-reference.md +0 -155
  788. package/2/vf-agent/data/knowledge_base/starter-docs/charts-reference.md +0 -149
  789. package/2/vf-agent/data/knowledge_base/starter-docs/chatbot-reference.md +0 -123
  790. package/2/vf-agent/data/knowledge_base/starter-docs/feature-reference-index.md +0 -211
  791. package/2/vf-agent/data/knowledge_base/starter-docs/features-overview.md +0 -221
  792. package/2/vf-agent/data/knowledge_base/starter-docs/image-analyzer-reference.md +0 -118
  793. package/2/vf-agent/data/knowledge_base/starter-docs/image-generator-reference.md +0 -110
  794. package/2/vf-agent/data/knowledge_base/starter-docs/index.md +0 -28
  795. package/2/vf-agent/data/knowledge_base/starter-docs/onboarding-reference.md +0 -96
  796. package/2/vf-agent/data/knowledge_base/starter-docs/payments-reference.md +0 -148
  797. package/2/vf-agent/data/knowledge_base/starter-docs/prd.md +0 -82
  798. package/2/vf-agent/data/knowledge_base/starter-docs/push-notifications-reference.md +0 -453
  799. package/2/vf-agent/data/knowledge_base/starter-docs/quick-actions-reference.md +0 -253
  800. package/2/vf-agent/data/knowledge_base/starter-docs/quiz-reference.md +0 -169
  801. package/2/vf-agent/data/knowledge_base/starter-docs/settings-reference.md +0 -146
  802. package/2/vf-agent/data/knowledge_base/starter-docs/tech-stack.md +0 -159
  803. package/2/vf-agent/data/knowledge_base/starter-docs/tracker-app-reference.md +0 -150
  804. package/2/vf-agent/data/knowledge_base/starter-docs/unified-project-structure.md +0 -98
  805. package/2/vf-agent/data/knowledge_base/testing/backend-testing.md +0 -54
  806. package/2/vf-agent/data/knowledge_base/testing/frontend-testing.md +0 -71
  807. package/2/vf-agent/data/knowledge_base/testing/testing-strategy.md +0 -31
  808. package/2/vf-agent/tasks/advanced-elicitation.md +0 -117
  809. package/2/vf-agent/tasks/brownfield-create-epic.md +0 -160
  810. package/2/vf-agent/tasks/create-deep-research-prompt.md +0 -278
  811. package/2/vf-agent/tasks/create-doc.md +0 -42
  812. package/2/vf-agent/tasks/create-story.md +0 -43
  813. package/2/vf-agent/tasks/document-project.md +0 -343
  814. package/2/vf-agent/tasks/facilitate-brainstorming-session.md +0 -136
  815. package/2/vf-agent/tasks/index-docs.md +0 -173
  816. package/2/vf-agent/tasks/kb-mode-interaction.md +0 -75
  817. package/2/vf-agent/tasks/review-story.md +0 -154
  818. package/2/vf-agent/tasks/shard-doc.md +0 -185
  819. package/2/vf-agent/tasks/troubleshoot-issue.md +0 -65
  820. package/2/vf-agent/tasks/validate-next-story.md +0 -47
  821. package/2/vf-agent/templates/brainstorming-output-tmpl.yaml +0 -156
  822. package/2/vf-agent/templates/brownfield-architecture-tmpl.yaml +0 -111
  823. package/2/vf-agent/templates/brownfield-prd-tmpl.yaml +0 -247
  824. package/2/vf-agent/templates/competitor-analysis-tmpl.yaml +0 -293
  825. package/2/vf-agent/templates/market-research-tmpl.yaml +0 -252
  826. package/2/vf-agent/templates/project-brief-tmpl.yaml +0 -221
  827. package/2/vf-agent/templates/story-tmpl.yaml +0 -143
  828. package/recipes/0/apps/native/src/components/advanced-ui/timeline/demo.tsx +0 -444
  829. package/recipes/0/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +0 -355
  830. package/recipes/0/apps/native/src/components/advanced-ui/timeline/types.ts +0 -31
  831. package/recipes/wake-word/scripts/download-vosk-model.mjs +0 -121
  832. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/animated-chip.tsx +0 -0
  833. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/chip.tsx +0 -0
  834. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/demo.tsx +0 -0
  835. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/types.ts +0 -0
  836. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/animated-switch.tsx +0 -0
  837. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/demo.tsx +0 -0
  838. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/types.ts +0 -0
  839. /package/{2 → recipes/glowing-button}/apps/native/src/components/advanced-ui/buttons/demo.tsx +0 -0
  840. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/front.jpg +0 -0
  841. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/side.jpg +0 -0
  842. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/threeQuarter.jpg +0 -0
  843. /package/{2 → recipes/image-analysis}/apps/native/src/api-client/image-analyzer.ts +0 -0
  844. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/_layout.tsx +0 -0
  845. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/analysis-options.tsx +0 -0
  846. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/camera.tsx +0 -0
  847. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/index.tsx +0 -0
  848. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/loading.tsx +0 -0
  849. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/results.tsx +0 -0
  850. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/trait-details.tsx +0 -0
  851. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +0 -0
  852. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/camera.tsx +0 -0
  853. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +0 -0
  854. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/loading-screen.tsx +0 -0
  855. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/loading.tsx +0 -0
  856. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/results.tsx +0 -0
  857. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/trait-details.tsx +0 -0
  858. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/use-analysis-data.ts +0 -0
  859. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/use-results-screen.ts +0 -0
  860. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-badge.tsx +0 -0
  861. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-card.tsx +0 -0
  862. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-unlocked-modal.tsx +0 -0
  863. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievements-section.tsx +0 -0
  864. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/advice-list.tsx +0 -0
  865. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/circular-progress.tsx +0 -0
  866. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/content-card.tsx +0 -0
  867. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/error-state.tsx +0 -0
  868. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/index.ts +0 -0
  869. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/loading-state.tsx +0 -0
  870. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/profile-image.tsx +0 -0
  871. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/results-header.tsx +0 -0
  872. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/score-display.tsx +0 -0
  873. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/share-options-modal.tsx +0 -0
  874. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/traits-grid.tsx +0 -0
  875. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/config/analysis-config.ts +0 -0
  876. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/config/master-analysis-config.ts +0 -0
  877. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/index.ts +0 -0
  878. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/use-analysis.ts +0 -0
  879. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +0 -0
  880. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/analysis-service.ts +0 -0
  881. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/share-service.ts +0 -0
  882. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/trait-details-service.ts +0 -0
  883. /package/{2 → recipes/image-analysis}/packages/backend/convex/imageAnalysis/index.ts +0 -0
  884. /package/{2 → recipes/image-analysis}/packages/backend/convex/imageAnalysisFunctions.ts +0 -0
  885. /package/{2 → recipes/image-analysis}/packages/backend/convex/lib/ai/imageAnalysisAdapter.ts +0 -0
  886. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/button/stepper-button.tsx +0 -0
  887. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/button/types.ts +0 -0
  888. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/content/stepper-content.tsx +0 -0
  889. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/content/types.ts +0 -0
  890. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/value/stepper-value.tsx +0 -0
  891. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/value/types.ts +0 -0
  892. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/context/stepper-context.ts +0 -0
  893. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/context/types.ts +0 -0
  894. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/demo.tsx +0 -0
  895. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/index.ts +0 -0
  896. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/stepper.tsx +0 -0
  897. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/types.ts +0 -0
  898. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/animated-progress-bar.tsx +0 -0
  899. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/dropdown-picker-page.tsx +0 -0
  900. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +0 -0
  901. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/progress-circle.tsx +0 -0
  902. /package/{2 → recipes/swipe-slider}/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +0 -0
  903. /package/{2 → recipes/swipe-slider}/apps/native/src/components/advanced-ui/sliders/swipe-slider.tsx +0 -0
  904. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/demo.tsx +0 -0
  905. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +0 -0
  906. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/types.ts +0 -0
  907. /package/{2 → recipes/wake-word}/apps/native/scripts/download-vosk-model.mjs +0 -0
@@ -1,110 +0,0 @@
1
- # Image Generator Reference
2
-
3
- > Frontend paths reference the Expo workspace (`apps/native/src/...`); backend paths reference `packages/backend/convex/...`.
4
-
5
- ## Overview
6
-
7
- The Image Generator feature enables users to create images from textual prompts using AI models like OpenAI's DALL-E. The entire process, from handling user input to calling the AI service and storing the result, is managed through a clean, hook-based frontend and a secure Convex action on the backend.
8
-
9
- ### Core Technologies
10
-
11
- - **[Vercel AI SDK](https://sdk.vercel.ai):** The `experimental_generateImage` function from the AI SDK is used on the backend to interact with image generation models in a standardized way.
12
- - **[Convex Actions](https://docs.convex.dev/functions/actions):** A public Convex `action` (`generateImageAction`) serves as the secure server-side endpoint that the client calls. This is crucial because it prevents exposing API keys to the client.
13
- - **[Convex File Storage](https://docs.convex.dev/file-storage):** After an image is generated, it is automatically uploaded to Convex File Storage for persistence.
14
- - **[React Hook Form](https://react-hook-form.com/) & [Zod](https://zod.dev):** Used on the frontend for robust form state management and validation.
15
-
16
- ## Getting Started
17
-
18
- The feature is ready to use once you provide the necessary API keys in your environment variables.
19
-
20
- ### Environment Variables
21
-
22
- To enable image generation, you must add your OpenAI API key to your `.env.local` file:
23
-
24
- ```bash
25
- # For OpenAI Image Generation
26
- OPENAI_API_KEY="sk-..."
27
- ```
28
-
29
- ### Image Generation Flow
30
-
31
- 1. **User Input:** The user enters a prompt and selects a provider and model using the `ImageGeneratorForm`.
32
- 2. **Form Submission:** The `useImageGenerator` hook is called on form submission. It takes the form data and calls the `generateImageAction` Convex action.
33
- 3. **Backend Action (`generateImageAction`):**
34
- - The action authenticates the user.
35
- - It calls the Vercel AI SDK's `generateImage` function, passing the prompt and model details.
36
- - The AI service returns the generated image as a buffer or base64 string.
37
- - The action converts this into a data URI (`data:image/png;base64,...`) and returns it to the client.
38
- 4. **Display Image:** The `useImageGenerator` hook receives the data URI and updates its state, causing the `GeneratedImageDisplay` component to render the new image.
39
- 5. **Automatic Storage:**
40
- - After the image is successfully received, the `useImageGenerator` hook calls the `useImageStorage` hook's `saveImage` function.
41
- - `saveImage` fetches the image data from the data URI, converts it to a `Blob`, and uploads it to Convex File Storage using the `useUploadFile` hook.
42
- - Finally, it calls the `saveImageRecord` internal mutation to save the prompt and the new `storageId` to the `generatedImages` database table.
43
-
44
- ## Key Components & Hooks
45
-
46
- ### Core Components
47
-
48
- - `ImageGeneratorLayout`: Provides the main screen structure.
49
- - `ImageGeneratorForm`: The central component that composes the form inputs and submission button.
50
- - `GeneratedImageDisplay`: A dedicated component to display the generated image, or loading/error states.
51
- - `ImagePromptInput`, `ProviderSelector`, `ModelSelector`: Reusable and validated form input components.
52
-
53
- ### Core Hooks
54
-
55
- - `useImageGenerator`: The primary hook for the feature. It orchestrates the entire process: calling the generation action, handling loading/error states, and triggering the subsequent storage.
56
- - `useImageStorage`: A specialized hook responsible for uploading the generated image to Convex File Storage and saving its metadata to the database.
57
- - `useUploadFile` (from `@convex-dev/react-file-storage`): A low-level hook used by `useImageStorage` to handle the actual file upload.
58
-
59
- ## How-To Guides
60
-
61
- ### 1. Add a New Model (e.g., DALL-E 2)
62
-
63
- 1. **Update Frontend Component:** In `apps/native/src/features/image-generator/components/model-selector.tsx`, add the new model to the `models` object under the correct provider.
64
-
65
- ```tsx
66
- const models = {
67
- openai: [
68
- { value: 'dall-e-3', label: 'DALL-E 3' },
69
- { value: 'dall-e-2', label: 'DALL-E 2' }, // Add new model
70
- ],
71
- // ...
72
- };
73
- ```
74
-
75
- 2. **Verify Backend Support:** Ensure the model name (`dall-e-2`) is accepted by the AI provider's API. The backend code in `generateImageAction` already passes the `model` string dynamically, so no backend changes are needed if the provider supports it.
76
-
77
- ### 2. Add a New Provider (e.g., Stability AI)
78
-
79
- Adding a new provider is more involved.
80
-
81
- 1. **Install SDK:** Add the provider's official AI SDK (e.g., `@ai-sdk/stability`).
82
- 2. **Create Provider Instance:** In `packages/backend/convex/imageGeneratorFunctions.ts`, create an instance of the new provider, similar to `createOpenAI`.
83
- 3. **Update Action Logic:** Add a new `else if (provider === 'stability')` block inside the `generateImageAction`. This block will call the new provider's `generateImage` function.
84
- 4. **Update Frontend:**
85
- - Add the new provider to the `ProviderSelector` component.
86
- - Add the provider's models to the `ModelSelector` component.
87
- - Update the `ImageGeneratorSchema` in `utils/generator-schemas.ts` to include the new provider in the enum.
88
-
89
- ### 3. Change Image Size or Quality
90
-
91
- You can adjust the parameters sent to the AI model in the backend action.
92
-
93
- - Navigate to `packages/backend/convex/imageGeneratorFunctions.ts`.
94
- - In the `generateImageAction` handler, find the `generateImage` call.
95
- - Modify the parameters. For example, to change the size for DALL-E 3:
96
-
97
- ```ts
98
- const { image } = await generateImage({
99
- model: openaiProvider.image(model),
100
- size: '1792x1024', // Change size here
101
- quality: 'hd', // Add quality parameter
102
- prompt,
103
- });
104
- ```
105
-
106
- ## Backend (Convex)
107
-
108
- - **`packages/backend/convex/imageGeneratorFunctions.ts`:** This file contains all the backend logic.
109
- - `generateImageAction` (action): The public, secure endpoint that the frontend calls. It contains the logic for interacting with the AI SDK and is the main place to add or modify providers.
110
- - `saveImageRecord` (internalMutation): A secure mutation for internal use only. It's called by the `useImageStorage` hook (via the `saveImage` function which runs on the client but calls this mutation) to write the final record to the database after the image has been uploaded to file storage. This two-step process (generate -> upload -> save record) is robust and ensures no orphaned files.
@@ -1,28 +0,0 @@
1
- # VibeFast Starter Kit Documentation
2
-
3
- ## Overview
4
-
5
- This section contains all architectural and feature-reference documents for the VibeFast starter kit. These documents provide a deep dive into the technical design, patterns, and decisions that govern the codebase. They are the primary source of truth for all planning and development. Paths reference the monorepo layout (`apps/native` for the Expo app, `packages/backend` for Convex, shared packages under `packages/*`).
6
-
7
- ## 1. Core Architecture & Principles
8
-
9
- - **[Product Requirements (`prd.md`)]**: The functional and non-functional requirements of the starter kit itself.
10
- - **[Technology Stack (`tech-stack.md`)]**: The definitive list of all technologies, frameworks, and services used.
11
- - **[Unified Project Structure (`unified-project-structure.md`)]**: A complete guide to the project's file and folder organization.
12
-
13
- ## 2. Features
14
-
15
- - **[Features Overview (`features-overview.md`)]**: A high-level summary of all pre-built features and their capabilities.
16
- - **[Feature Reference Index (`feature-reference-index.md`)]**: A quick-access index to the detailed documentation for every feature.
17
-
18
- ## 3. Detailed Feature Documentation
19
-
20
- _For detailed implementation guides, see the specific files listed in the **[Feature Reference Index](./feature-reference-index.md)**._
21
-
22
- - **[Authentication](./authentication-reference.md)**
23
- - **[AI Chatbot](./chatbot-reference.md)**
24
- - **[AI Image Generator](./image-generator-reference.md)**
25
- - **[AI Image Analyzer](./image-analyzer-reference.md)**
26
- - **[Payments & Subscriptions](./payments-reference.md)**
27
- - **[Push Notifications](./push-notifications-reference.md)**
28
- - **[And many more...](./feature-reference-index.md)**
@@ -1,96 +0,0 @@
1
- # Onboarding Feature Reference
2
-
3
- > Frontend paths reference the Expo workspace (`apps/native/src/...`).
4
-
5
- ## Overview
6
-
7
- The Onboarding feature is a comprehensive, data-driven system designed to guide new users through the app. It is built around a reusable, swipeable UI component and includes a powerful, underlying analytics service to track user engagement and flow performance.
8
-
9
- ### Core Components
10
-
11
- 1. **Reusable `Onboarding` Component:** A swipeable, horizontal `FlatList` that displays a series of screens. It is highly configurable and uses Lottie for rich animations.
12
- 2. **Analytics Service:** A dedicated service (`OnboardingAnalyticsService`) and React hook (`useOnboardingAnalytics`) to track user progress through any defined onboarding flow. This allows for detailed analysis of user drop-off points, completion rates, and A/B testing of different flows.
13
- 3. **Flow Configuration:** Onboarding flows are not hardcoded. They are defined in a central configuration file (`onboarding-flow-config.ts`), allowing developers to easily create, modify, or A/B test different onboarding experiences without changing UI code.
14
-
15
- ### Core Technologies
16
-
17
- - **[React Native FlatList](https://reactnative.dev/docs/flatlist):** Used in `horizontal` and `pagingEnabled` mode to create the swipeable screen interface.
18
- - **[Lottie](https://lottiefiles.com/):** Used to render high-quality, lightweight animations on each onboarding screen.
19
- - **[Reanimated 2](https://docs.swmansion.com/react-native-reanimated/):** Used for smooth, performant animations, particularly for the scrolling pagination dots.
20
- - **[PostHog (Conceptual)](https://posthog.com/):** The analytics service is built to connect to a provider like PostHog via an adapter (`usePostHogAnalyticsAdapter`), allowing for powerful, event-based analytics.
21
-
22
- ## Getting Started
23
-
24
- The main onboarding flow is defined in `apps/native/src/features/onboarding/demo-one/`. It is triggered for first-time users via the `useIsFirstTime` hook.
25
-
26
- ### Onboarding Flow
27
-
28
- 1. **First-Time Check:** The app uses a hook like `useIsFirstTime` to determine if the user is opening the app for the first time.
29
- 2. **Render Onboarding:** If it is the user's first time, the `DemoOneOnboarding` screen is rendered.
30
- 3. **Component Display:** This screen uses the main `Onboarding` component, passing it the specific data for the main app onboarding flow (`AppOnboardingData`).
31
- 4. **User Interaction:** The user swipes through the screens or uses the "Next" button.
32
- 5. **Completion:** When the user presses "Get Started" on the final screen, the `onComplete` handler is called.
33
- 6. **Mark as Complete:** The `onComplete` handler calls `completeOnboarding()` from the `useIsFirstTime` hook, which persistently flags that the user has completed onboarding.
34
- 7. **Navigation:** The user is then navigated to the main part of the app (e.g., the login screen).
35
-
36
- ## Analytics
37
-
38
- The analytics system is a key part of this feature. It is designed to be flexible and powerful.
39
-
40
- - **`OnboardingAnalyticsService`:** A class that encapsulates all tracking logic. It manages the session, calculates durations, and sends events to the analytics provider.
41
- - **`useOnboardingAnalytics`:** A React hook that provides a clean interface to the analytics service within your components.
42
- - **`OnboardingWithAnalytics`:** An enhanced component that automatically wraps the standard `Onboarding` component with analytics tracking, making it easy to monitor a flow's performance.
43
- - **Flow Configuration (`onboarding-flow-config.ts`):** This is where you define the steps for any given onboarding flow. The analytics service uses this configuration to know what steps to track.
44
-
45
- ## How-To Guides
46
-
47
- ### 1. Modify the Main Onboarding Flow
48
-
49
- To change the screens in the default onboarding flow:
50
-
51
- 1. **Edit Data File:** Open `apps/native/src/features/onboarding/demo-one/data.ts`.
52
- 2. **Add, Remove, or Edit Items:** Modify the `AppOnboardingData` array. Each object in the array represents one screen.
53
- - To change text, edit the `title` and `description` properties.
54
- - To change the animation, replace the `lottieAnim` value with a new `require()` call to a different Lottie JSON file in `assets/lottie-animations/`.
55
-
56
- ### 2. Create a New Onboarding Flow (e.g., for a new feature)
57
-
58
- 1. **Define the Flow:** In `apps/native/src/features/onboarding/config/onboarding-flow-config.ts`, create a new configuration object for your flow.
59
-
60
- ```ts
61
- export const NEW_FEATURE_FLOW: OnboardingFlowConfig = {
62
- flowId: 'new_feature_flow',
63
- flowName: 'Onboarding for our cool new feature',
64
- version: '1.0',
65
- steps: [
66
- { id: 'step_1', name: 'Explain Feature X', index: 0 },
67
- { id: 'step_2', name: 'Show how to use it', index: 1 },
68
- ],
69
- };
70
- ```
71
-
72
- 2. **Create the Data:** Create a new data array similar to `AppOnboardingData` with the titles, descriptions, and animations for your new flow.
73
- 3. **Create a Component:** Create a new component that uses the `Onboarding` UI component and passes your new data to it. You can also wrap it with `OnboardingWithAnalytics` to track its performance.
74
-
75
- ### 3. A/B Test an Onboarding Flow
76
-
77
- The analytics configuration is already set up to support A/B testing.
78
-
79
- 1. **Define a Variant:** In `onboarding-flow-config.ts`, create a variant of an existing flow. Give it a new `flowId` and add or change steps.
80
-
81
- ```ts
82
- export const ONBOARDING_VARIANTS = {
83
- // ... existing variants
84
- demoOneExperimental: {
85
- ...DEMO_ONE_ONBOARDING_FLOW,
86
- flowId: 'demo_one_flow_experimental',
87
- variant: 'experimental',
88
- steps: [
89
- // Add, remove, or reorder steps for the test
90
- ],
91
- },
92
- };
93
- ```
94
-
95
- 2. **Implement Logic:** In your app, implement logic to decide which users see which variant (e.g., using a remote config service like Firebase Remote Config, or a simple randomizer).
96
- 3. **Track in Analytics:** The `variant` property will be automatically tracked in all analytics events, allowing you to compare the performance of the `control` and `experimental` flows in your analytics platform (e.g., PostHog).
@@ -1,148 +0,0 @@
1
- # Payments & In-App Purchases Reference
2
-
3
- > Frontend paths reference the Expo workspace (`apps/native/src/...`); backend paths reference `packages/backend/convex/...`.
4
-
5
- ## Overview
6
-
7
- The VibeFast starter kit includes a mock implementation for in-app purchases (IAP), designed to be easily integrated with a real payment provider like [RevenueCat](https://www.revenuecat.com/). The system is set up to handle consumable products (e.g., credits) and display subscription options.
8
-
9
- ### Core Technologies
10
-
11
- - **[RevenueCat (Conceptual)](https://www.revenuecat.com/):** The frontend hooks and services are structured to wrap a provider like RevenueCat. The `react-native-purchases` package is included in the service file, but the logic is currently mocked.
12
- - **[Convex Mutations & Queries](https://convex.dev):** The backend consists of Convex functions to securely record purchases made on the client and to query user credit balances and history.
13
- - **[React Native Modal](https://reactnative.dev/docs/modal):** Used to present the payment screen to the user in a non-intrusive way.
14
-
15
- ## Getting Started
16
-
17
- The feature is currently a mock. To make it fully functional, you will need to:
18
-
19
- 1. **Sign up for RevenueCat:** Create an account and configure your app, products, and entitlements in the RevenueCat dashboard.
20
- 2. **Provide API Keys:** Add your RevenueCat public API keys to the `payment-service.ts` file.
21
- 3. **Un-mock the `usePayments` hook:** Replace the mock purchase logic with actual calls to the `react-native-purchases` SDK.
22
-
23
- ### Environment & Configuration
24
-
25
- Update the API keys in `apps/native/src/features/payments/services/payment-service.ts`:
26
-
27
- ```ts
28
- // apps/native/src/features/payments/services/payment-service.ts
29
- const API_KEYS = {
30
- apple: 'your_revenuecat_apple_api_key',
31
- google: 'your_revenuecat_google_api_key',
32
- };
33
- ```
34
-
35
- ### Payments Flow (Conceptual)
36
-
37
- 1. **User Action:** The user opens the `PaymentModal` to buy more credits.
38
- 2. **Initiate Purchase:** The `usePayments` hook's `purchaseProduct` function is called. **(This is the part you need to implement).**
39
- 3. **Provider Interaction:** The `paymentService` would call `Purchases.purchasePackage()` from the RevenueCat SDK.
40
- 4. **Verification:** The RevenueCat SDK handles the platform-specific (App Store / Play Store) purchase flow and verification.
41
- 5. **Record in Convex:** Upon successful purchase verification from RevenueCat, the `purchaseProduct` hook then calls the `recordConsumablePurchase` Convex mutation.
42
- 6. **Backend Mutation (`recordConsumablePurchase`):**
43
- - Authenticates the user.
44
- - Validates the purchase details.
45
- - Increments the `credits` field on the user's document.
46
- - Creates a new document in the `purchases` table to log the transaction.
47
- 7. **UI Update:** The `useUserCredits` hook automatically fetches the new credit balance, and the UI updates to reflect the purchase.
48
-
49
- ## Key Components & Hooks
50
-
51
- ### Core Components
52
-
53
- - `PaymentModal`: A modal screen that displays available products for purchase.
54
- - `ProductCard`: A component for displaying a single consumable product (e.g., a credit pack).
55
- - `SubscriptionCard`: A component for displaying a subscription tier.
56
- - `CreditBalance`: A small component, often placed in the app header, that displays the user's current credit total.
57
- - `PurchaseHistoryList`: A screen that lists all past transactions for the current user.
58
-
59
- ### Core Hooks
60
-
61
- - `usePayments`: The primary hook for handling purchase logic. **This is currently mocked.** It's responsible for initiating the purchase with the payment provider and recording the transaction in Convex.
62
- - `useUserCredits`: A simple hook that provides a real-time query of the current user's credit balance.
63
-
64
- ## How-To Guides
65
-
66
- ### 1. Implement Real Purchases with RevenueCat
67
-
68
- The most critical step is to replace the mock logic in `usePayments`.
69
-
70
- **File to Edit:** `apps/native/src/features/payments/hooks/use-payments.ts`
71
-
72
- ```ts
73
- // apps/native/src/features/payments/hooks/use-payments.ts
74
-
75
- // ... imports
76
- import { paymentService } from '../services/payment-service';
77
-
78
- export function usePayments() {
79
- const [isPurchasing, setIsPurchasing] = useState(false);
80
- const recordPurchase = useMutation(
81
- api.paymentFunctions.recordConsumablePurchase,
82
- );
83
-
84
- const purchaseProduct = async ({ productId, quantity }: PurchaseParams) => {
85
- setIsPurchasing(true);
86
- try {
87
- // 1. Find the correct RevenueCat package based on productId
88
- const offerings = await paymentService.getOfferings();
89
- // ... logic to find the package to purchase ...
90
- const packageToPurchase = findPackageById(offerings, productId);
91
-
92
- if (!packageToPurchase) {
93
- throw new Error('Product not found.');
94
- }
95
-
96
- // 2. Call RevenueCat to initiate the purchase
97
- const customerInfo =
98
- await paymentService.purchasePackage(packageToPurchase);
99
-
100
- // 3. Check if the purchase was successful (optional, but good practice)
101
- if (customerInfo.entitlements.active['your_entitlement_id']) {
102
- // 4. On successful purchase, record it in Convex
103
- const result = await recordPurchase({ productId, quantity });
104
-
105
- if (result.success) {
106
- Toast.show(`Purchase successful!`, { type: 'success' });
107
- } else {
108
- throw new Error('Failed to record purchase in Convex.');
109
- }
110
- }
111
- } catch (error: any) {
112
- if (!error.userCancelled) {
113
- Toast.show('Purchase failed. Please try again.', { type: 'danger' });
114
- }
115
- } finally {
116
- setIsPurchasing(false);
117
- }
118
- };
119
-
120
- return { purchaseProduct, isPurchasing };
121
- }
122
- ```
123
-
124
- ### 2. Add a New Credit Product
125
-
126
- 1. **RevenueCat Dashboard:** Create the new product in RevenueCat and attach it to an offering.
127
- 2. **Update Frontend Component:** In `apps/native/src/features/payments/components/payment-modal.tsx`, add the new product to the `products` array. Ensure the `id` matches the product identifier in RevenueCat.
128
-
129
- ```tsx
130
- const products = [
131
- // ... existing products
132
- {
133
- id: 'credits_2500',
134
- name: '2500 Credits',
135
- price: '$12.99',
136
- description: 'Super pack',
137
- },
138
- ];
139
- ```
140
-
141
- 3. **Update Backend Logic (Optional):** If the new product should grant a different number of credits than its `quantity`, you can add custom logic to the `recordConsumablePurchase` mutation in `packages/backend/convex/paymentFunctions.ts`.
142
-
143
- ## Backend (Convex)
144
-
145
- - **`packages/backend/convex/paymentFunctions.ts`:** This file contains the backend logic for crediting users after a purchase is confirmed by the client.
146
- - `recordConsumablePurchase` (mutation): The core function that securely updates a user's credit balance and logs the transaction. This should only be called _after_ the payment provider has confirmed a successful payment.
147
- - `getUserCredits` (query): A simple query to fetch the current user's credit count.
148
- - `getPurchaseHistory` (query): Fetches a list of all transactions from the `purchases` table for the logged-in user.
@@ -1,82 +0,0 @@
1
- > **Note:** This document describes the requirements for the **VibeFast Starter Kit itself**, serving as a blueprint for its features. When creating a new application, this document serves as a reference for the starter's capabilities.
2
-
3
- # Product Requirements Document: VibeFast Starter Kit
4
-
5
- ## 1. Introduction
6
-
7
- This document outlines the core functional and non-functional requirements for the VibeFast starter kit. It is intended to be a technical guide for developers and AI agents, defining _what_ the system does and the architectural principles it _must_ adhere to.
8
-
9
- ## 2. Core Functional Requirements
10
-
11
- The VibeFast starter kit provides a suite of pre-built, production-ready features.
12
-
13
- ### 2.1. Authentication
14
-
15
- The system must provide a comprehensive and swappable authentication module supporting:
16
-
17
- - **Email/Password:** Standard user registration and sign-in.
18
- - **Social Logins:** Google and GitHub OAuth providers.
19
- - **Apple Sign-In:** Native integration with Apple's authentication service.
20
- - **Passwordless:** Email-based OTP verification.
21
- - **Guest Sessions:** Anonymous access for new users, with a mechanism to convert to a registered account.
22
- - **Password Reset:** A secure flow for users to reset their forgotten passwords via email.
23
-
24
- ### 2.2. Core Application Structure
25
-
26
- - **Tab Navigation:** A primary bottom tab navigator with the following screens:
27
- - **Home:** A central dashboard showcasing available features.
28
- - **Style:** A demo screen for UI components.
29
- - **Profile:** User profile information.
30
- - **Settings:** App-level settings.
31
- - **In-App Help System:** A help or documentation section that can render content from markdown files.
32
-
33
- ### 2.3. AI-Powered Feature Modules
34
-
35
- The starter kit must include the following isolated and turnkey AI feature demos:
36
-
37
- - **AI Chatbot:** A conversational interface with support for text and image-based interactions.
38
- - **Image Generator:** A feature to generate images from text prompts using AI models.
39
- - **Image Analyzer:** A feature to upload images and receive a structured analysis based on a specified configuration (e.g., facial analysis, dashboard warning check).
40
- - **Voice Notes:** A feature for recording, storing, and playing back voice memos.
41
-
42
- ### 2.4. Interactive Learning Modules
43
-
44
- - **Quiz System:** An interactive quiz feature supporting multiple question modes:
45
- - **Auto-advance Mode:** Questions automatically progress after option selection
46
- - **Manual-advance Mode:** Users control progression with continue/back buttons
47
- - **Mixed Mode Support:** Individual questions can specify their own advancement behavior
48
- - **Animated Transitions:** Smooth animations for option selection and navigation
49
- - **Progress Tracking:** Visual progress indicator and completion screens
50
- - **Configurable Behavior:** Centralized configuration for quiz appearance and functionality
51
-
52
- ### 2.5. Monetization
53
-
54
- The system must include a pre-built monetization flow powered by an adapter (e.g., RevenueCat) that supports:
55
-
56
- - **Subscriptions:** Recurring billing for premium access.
57
- - **Consumable In-App Purchases:** A "credits" or "coins" system that can be purchased and consumed.
58
- - **Paywall Screen:** A dedicated UI to present purchase options to the user.
59
-
60
- ### 2.6. User Settings & Personalization
61
-
62
- - **Theme Management:** Support for light, dark, and system themes.
63
- - **Language Selection:** Support for internationalization (i18n), with English and Arabic as default options.
64
- - **Push Notifications:** A settings toggle to enable or disable push notifications.
65
-
66
- ## 3. Key Non-Functional Requirements (Architectural Principles)
67
-
68
- These principles are critical to maintaining the quality and integrity of the starter kit.
69
-
70
- - **Modularity:** Features must be built in isolation to allow for easy removal or modification via CLI tooling. This is enforced through strict module boundaries (`eslint-plugin-boundaries`).
71
- - **Vendor Agnosticism:** External services (e.g., authentication, payments) must be implemented behind a dedicated adapter pattern, allowing them to be swapped with minimal code changes.
72
- - **Code Quality:** The codebase must adhere to the defined linting (`ESLint`) and formatting (`Prettier`) rules. All code must be strongly typed using TypeScript.
73
- - **AI-Developer Friendliness:** Code must be clear, predictable, and well-documented. Patterns should be consistent and straightforward to enable efficient contributions from both human and AI developers.
74
- - **Extensibility:** The architecture must be designed to be easily extended with new features, components, and services without requiring significant refactoring of the core structure.
75
-
76
- ## 4. Out of Scope
77
-
78
- This document explicitly excludes:
79
-
80
- - Target Audience Personas and Market Analysis.
81
- - Marketing and Go-to-Market Strategy.
82
- - Detailed Business Epics and User Stories.