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
@@ -21,7 +21,7 @@ interface InitOptions {
21
21
  export const initCommand = new Command('init')
22
22
  .description('Initialize a new VibeFast project')
23
23
  .option('--license <key>', 'Your VibeFast license key')
24
- .option('--branch <branch>', 'Branch to clone (clean or main)')
24
+ .option('--branch <branch>', 'Branch to clone (clean or main, default: clean)')
25
25
  .option('--yes', 'Skip all prompts and use defaults')
26
26
  .option('--skip-install', 'Skip dependency installation')
27
27
  .action(async (options: InitOptions) => {
@@ -93,8 +93,12 @@ export const initCommand = new Command('init')
93
93
  log.plain('');
94
94
  }
95
95
 
96
- // Always use clean branch for cloning
97
- const branch = 'clean';
96
+ // Validate branch option and default to clean
97
+ const branch = options.branch === 'main' ? 'main' : 'clean';
98
+ if (options.branch && options.branch !== 'clean' && options.branch !== 'main') {
99
+ log.error('Invalid branch. Use "clean" or "main".');
100
+ process.exit(1);
101
+ }
98
102
 
99
103
  // Step 1.5: Choose platforms
100
104
  let platforms: string[] = ['native', 'web'];
@@ -146,6 +150,15 @@ export const initCommand = new Command('init')
146
150
  'Project name: '
147
151
  ) || defaultName;
148
152
  }
153
+ projectName = (projectName || defaultName).trim();
154
+ if (!projectName) {
155
+ projectName = defaultName;
156
+ }
157
+
158
+ if (!/^[a-zA-Z0-9_-]+$/.test(projectName)) {
159
+ log.error('Project name must use only letters, numbers, hyphens, and underscores.');
160
+ process.exit(1);
161
+ }
149
162
 
150
163
  // Validate project name
151
164
  if (existsSync(projectName)) {
@@ -165,13 +178,13 @@ export const initCommand = new Command('init')
165
178
  const repoUrl = 'https://github.com/mzafarr/vibefast-pro.git';
166
179
 
167
180
  await withSpinner(
168
- `Cloning VibeFast monorepo (clean starter)...`,
181
+ `Cloning VibeFast monorepo (${branch} branch)...`,
169
182
  async () => {
170
183
  const git = simpleGit();
171
184
  const cloneOptions = ['--depth', '1'];
172
185
 
173
- // Always use clean branch
174
- cloneOptions.unshift('--branch', 'clean', '--single-branch');
186
+ // Use selected branch (default: clean)
187
+ cloneOptions.unshift('--branch', branch, '--single-branch');
175
188
 
176
189
  try {
177
190
  await git.clone(repoUrl, projectName, cloneOptions);
@@ -430,109 +443,112 @@ export const initCommand = new Command('init')
430
443
  log.plain('');
431
444
 
432
445
  // We need to be in the project directory for feature installation
446
+ const originalCwd = process.cwd();
433
447
  process.chdir(projectPath);
434
448
 
435
- for (const featureName of selectedFeatures) {
436
- try {
437
- log.plain('');
438
- log.plain(''.repeat(60));
439
- log.info(`Installing ${featureName}...`);
440
- log.plain('');
441
-
442
- // Import and use the add command logic
443
- const { getToken } = await import('../core/auth.js');
444
- const { fetchRecipe, downloadZip } = await import('../core/http.js');
445
- const { extractZipSafe } = await import('../core/archive.js');
446
- const { copyTree, readFileContent } = await import('../core/fsx.js');
447
- const { addEntry } = await import('../core/journal.js');
448
- const { hashFiles } = await import('../core/hash.js');
449
- const { insertNavLinkNative } = await import('../core/codemod.js');
450
- const { getDeviceInfo } = await import('../core/auth.js');
451
- const { validateSignature } = await import('../core/validate.js');
452
- const { getPaths } = await import('../core/paths.js');
453
-
454
- const paths = getPaths();
455
- const token = await getToken();
456
- const device = await getDeviceInfo();
457
- const config = await validateSignature(paths.signatureFile);
458
-
459
- // Fetch recipe
460
- const response = await fetchRecipe({
461
- token: token!,
462
- device,
463
- feature: featureName,
464
- target: 'native',
465
- starter: { name: config.name, version: config.version },
466
- });
467
-
468
- if (!response.ok || (!response.signedUrl && !response.zipData)) {
469
- log.warn(`⚠ Could not fetch ${featureName}: ${response.error || 'Unknown error'}`);
449
+ try {
450
+ for (const featureName of selectedFeatures) {
451
+ try {
452
+ log.plain('');
453
+ log.plain('━'.repeat(60));
454
+ log.info(`Installing ${featureName}...`);
455
+ log.plain('');
456
+
457
+ // Import and use the add command logic
458
+ const { getToken } = await import('../core/auth.js');
459
+ const { fetchRecipe, downloadZip } = await import('../core/http.js');
460
+ const { extractZipSafe } = await import('../core/archive.js');
461
+ const { copyTree, readFileContent } = await import('../core/fsx.js');
462
+ const { addEntry } = await import('../core/journal.js');
463
+ const { hashFiles } = await import('../core/hash.js');
464
+ const { insertNavLinkNative } = await import('../core/codemod.js');
465
+ const { getDeviceInfo } = await import('../core/auth.js');
466
+ const { validateSignature } = await import('../core/validate.js');
467
+ const { getPaths } = await import('../core/paths.js');
468
+
469
+ const paths = getPaths();
470
+ const token = await getToken();
471
+ const device = await getDeviceInfo();
472
+ const config = await validateSignature(paths.signatureFile);
473
+
474
+ // Fetch recipe
475
+ const response = await fetchRecipe({
476
+ token: token!,
477
+ device,
478
+ feature: featureName,
479
+ target: 'native',
480
+ starter: { name: config.name, version: config.version },
481
+ });
482
+
483
+ if (!response.ok || (!response.signedUrl && !response.zipData)) {
484
+ log.warn(`⚠ Could not fetch ${featureName}: ${response.error || 'Unknown error'}`);
485
+ log.info(`You can install it later with: vf add ${featureName}`);
486
+ continue;
487
+ }
488
+
489
+ // Download and extract
490
+ const zipPath = response.zipData
491
+ ? await downloadZip(response.zipData, true)
492
+ : await downloadZip(response.signedUrl!);
493
+
494
+ const extractDir = zipPath.replace('.zip', '');
495
+ await extractZipSafe(zipPath, extractDir);
496
+
497
+ // Read manifest
498
+ const manifestPath = join(extractDir, 'recipe.json');
499
+ const manifestContent = await readFileContent(manifestPath);
500
+ const manifest = JSON.parse(manifestContent);
501
+
502
+ // Copy files
503
+ const copiedFiles: string[] = [];
504
+ const { resolve: resolvePath } = await import('path');
505
+ for (const copySpec of manifest.copy) {
506
+ const srcPath = resolvePath(extractDir, copySpec.from);
507
+ const destPath = resolvePath(projectPath, copySpec.to);
508
+ const result = await copyTree(srcPath, destPath, { force: true });
509
+ copiedFiles.push(...result.files);
510
+ }
511
+
512
+ // Add navigation
513
+ let navInserted = false;
514
+ if (manifest.nav) {
515
+ navInserted = await insertNavLinkNative(paths.nativeNavFile, manifest.nav, {});
516
+ }
517
+
518
+ // Hash and journal
519
+ const fileHashes = await hashFiles(copiedFiles);
520
+ const fileEntries = Array.from(fileHashes.entries()).map(([path, hash]) => ({
521
+ path,
522
+ hash,
523
+ }));
524
+
525
+ await addEntry(paths.journalFile, {
526
+ feature: manifest.name,
527
+ target: manifest.target,
528
+ files: fileEntries,
529
+ insertedNav: navInserted,
530
+ navHref: manifest.nav?.href,
531
+ navLabel: manifest.nav?.label,
532
+ ts: Date.now(),
533
+ manifest: {
534
+ version: manifest.version,
535
+ manualSteps: manifest.manualSteps,
536
+ env: manifest.env,
537
+ },
538
+ });
539
+
540
+ log.success(`✓ ${featureName} installed successfully!`);
541
+
542
+ } catch (error: any) {
543
+ log.warn(`⚠ Failed to install ${featureName}: ${error.message}`);
470
544
  log.info(`You can install it later with: vf add ${featureName}`);
471
- continue;
472
- }
473
-
474
- // Download and extract
475
- const zipPath = response.zipData
476
- ? await downloadZip(response.zipData, true)
477
- : await downloadZip(response.signedUrl!);
478
-
479
- const extractDir = zipPath.replace('.zip', '');
480
- await extractZipSafe(zipPath, extractDir);
481
-
482
- // Read manifest
483
- const manifestPath = join(extractDir, 'recipe.json');
484
- const manifestContent = await readFileContent(manifestPath);
485
- const manifest = JSON.parse(manifestContent);
486
-
487
- // Copy files
488
- const copiedFiles: string[] = [];
489
- const { resolve: resolvePath } = await import('path');
490
- for (const copySpec of manifest.copy) {
491
- const srcPath = resolvePath(extractDir, copySpec.from);
492
- const destPath = resolvePath(projectPath, copySpec.to);
493
- const result = await copyTree(srcPath, destPath, { force: true });
494
- copiedFiles.push(...result.files);
495
- }
496
-
497
- // Add navigation
498
- let navInserted = false;
499
- if (manifest.nav) {
500
- navInserted = await insertNavLinkNative(paths.nativeNavFile, manifest.nav, {});
501
545
  }
502
-
503
- // Hash and journal
504
- const fileHashes = await hashFiles(copiedFiles);
505
- const fileEntries = Array.from(fileHashes.entries()).map(([path, hash]) => ({
506
- path,
507
- hash,
508
- }));
509
-
510
- await addEntry(paths.journalFile, {
511
- feature: manifest.name,
512
- target: manifest.target,
513
- files: fileEntries,
514
- insertedNav: navInserted,
515
- navHref: manifest.nav?.href,
516
- navLabel: manifest.nav?.label,
517
- ts: Date.now(),
518
- manifest: {
519
- version: manifest.version,
520
- manualSteps: manifest.manualSteps,
521
- env: manifest.env,
522
- },
523
- });
524
-
525
- log.success(`✓ ${featureName} installed successfully!`);
526
-
527
- } catch (error: any) {
528
- log.warn(`⚠ Failed to install ${featureName}: ${error.message}`);
529
- log.info(`You can install it later with: vf add ${featureName}`);
530
546
  }
547
+ } finally {
548
+ // Go back to original directory even if installation fails
549
+ process.chdir(originalCwd);
531
550
  }
532
551
 
533
- // Go back to original directory
534
- process.chdir('..');
535
-
536
552
  log.plain('');
537
553
  log.plain('━'.repeat(60));
538
554
  log.success(`✓ Installed ${selectedFeatures.length} feature(s)`);
@@ -123,7 +123,7 @@ export const removeCommand = new Command('remove')
123
123
  log.plain('');
124
124
 
125
125
  if (!options.yes) {
126
- const shouldContinue = promptYesNo(
126
+ const shouldContinue = await promptYesNo(
127
127
  'Continue with removal? (y/N): ',
128
128
  false
129
129
  );
@@ -3,19 +3,20 @@ import { copyTree, exists } from '../fsx.js';
3
3
  import { writeFile, mkdir, rm } from 'fs/promises';
4
4
  import { join } from 'path';
5
5
  import { tmpdir } from 'os';
6
+ import { randomUUID } from 'crypto';
6
7
 
7
- describe('fsx', () => {
8
+ describe.sequential('fsx', () => {
8
9
  let testDir: string;
9
10
  let srcDir: string;
10
11
  let destDir: string;
11
12
 
12
13
  beforeEach(async () => {
13
- testDir = join(tmpdir(), `vibefast-test-${Date.now()}`);
14
+ testDir = join(tmpdir(), `vibefast-test-${Date.now()}-${randomUUID()}`);
14
15
  srcDir = join(testDir, 'src');
15
16
  destDir = join(testDir, 'dest');
16
17
 
17
18
  await mkdir(srcDir, { recursive: true });
18
- await mkdir(destDir, { recursive: true });
19
+ // Don't create destDir - let copyTree create it
19
20
  });
20
21
 
21
22
  afterEach(async () => {
@@ -45,6 +46,7 @@ describe('fsx', () => {
45
46
  const destFile = join(destDir, 'file.txt');
46
47
 
47
48
  await writeFile(srcFile, 'new content');
49
+ await mkdir(destDir, { recursive: true });
48
50
  await writeFile(destFile, 'existing content');
49
51
 
50
52
  try {
@@ -60,6 +62,7 @@ describe('fsx', () => {
60
62
  await writeFile(join(srcDir, 'file.txt'), 'new content');
61
63
 
62
64
  // Create existing destination file
65
+ await mkdir(destDir, { recursive: true });
63
66
  await writeFile(join(destDir, 'file.txt'), 'existing content');
64
67
 
65
68
  const result = await copyTree(srcDir, destDir, { force: true });
@@ -22,48 +22,48 @@ describe('prompt', () => {
22
22
  });
23
23
 
24
24
  describe('promptYesNo', () => {
25
- it('should return default value in non-TTY environment', () => {
25
+ it('should return default value in non-TTY environment', async () => {
26
26
  (process.stdin as any).isTTY = false;
27
27
 
28
- const result = promptYesNo('Continue?', true);
28
+ const result = await promptYesNo('Continue?', true);
29
29
  expect(result).toBe(true);
30
30
 
31
- const result2 = promptYesNo('Continue?', false);
31
+ const result2 = await promptYesNo('Continue?', false);
32
32
  expect(result2).toBe(false);
33
33
  });
34
34
 
35
- it('should return default value in CI environment', () => {
35
+ it('should return default value in CI environment', async () => {
36
36
  process.env.CI = 'true';
37
37
 
38
- const result = promptYesNo('Continue?', true);
38
+ const result = await promptYesNo('Continue?', true);
39
39
  expect(result).toBe(true);
40
40
 
41
- const result2 = promptYesNo('Continue?', false);
41
+ const result2 = await promptYesNo('Continue?', false);
42
42
  expect(result2).toBe(false);
43
43
  });
44
44
 
45
- it('should detect GitHub Actions', () => {
45
+ it('should detect GitHub Actions', async () => {
46
46
  process.env.GITHUB_ACTIONS = 'true';
47
47
 
48
- const result = promptYesNo('Continue?', false);
48
+ const result = await promptYesNo('Continue?', false);
49
49
  expect(result).toBe(false);
50
50
 
51
51
  delete process.env.GITHUB_ACTIONS;
52
52
  });
53
53
 
54
- it('should detect GitLab CI', () => {
54
+ it('should detect GitLab CI', async () => {
55
55
  process.env.GITLAB_CI = 'true';
56
56
 
57
- const result = promptYesNo('Continue?', false);
57
+ const result = await promptYesNo('Continue?', false);
58
58
  expect(result).toBe(false);
59
59
 
60
60
  delete process.env.GITLAB_CI;
61
61
  });
62
62
 
63
- it('should detect CircleCI', () => {
63
+ it('should detect CircleCI', async () => {
64
64
  process.env.CIRCLECI = 'true';
65
65
 
66
- const result = promptYesNo('Continue?', false);
66
+ const result = await promptYesNo('Continue?', false);
67
67
  expect(result).toBe(false);
68
68
 
69
69
  delete process.env.CIRCLECI;
@@ -37,11 +37,12 @@ describe('validate', () => {
37
37
  await expect(validateSignature(signaturePath)).rejects.toThrow('Not a VibeFast repo');
38
38
  });
39
39
 
40
- it('should throw if name is wrong', async () => {
41
- const config = { name: 'wrong', version: '1.0.0', targets: ['native'] };
40
+ it('should accept any valid name', async () => {
41
+ const config = { name: 'custom-starter', version: '1.0.0', targets: ['native'] };
42
42
  await writeFileContent(signaturePath, JSON.stringify(config));
43
43
 
44
- await expect(validateSignature(signaturePath)).rejects.toThrow('Invalid starter name');
44
+ const result = await validateSignature(signaturePath);
45
+ expect(result.name).toBe('custom-starter');
45
46
  });
46
47
 
47
48
  it('should throw if targets empty', async () => {
package/src/core/auth.ts CHANGED
@@ -34,6 +34,14 @@ export async function saveToken(token: string): Promise<void> {
34
34
  }
35
35
 
36
36
  await writeFileContent(configPath, JSON.stringify(config, null, 2), { force: true });
37
+
38
+ // Set restrictive permissions (owner read/write only)
39
+ try {
40
+ const { chmod } = await import('fs/promises');
41
+ await chmod(configPath, 0o600);
42
+ } catch {
43
+ // Ignore on Windows or if chmod fails
44
+ }
37
45
  }
38
46
 
39
47
  export async function getToken(): Promise<string | null> {
@@ -5,6 +5,17 @@ const NATIVE_END = '// --- @vibefast:features:end ---';
5
5
  const WEB_START = '{/* @vibefast:nav:start */}';
6
6
  const WEB_END = '{/* @vibefast:nav:end */}';
7
7
 
8
+ export const ENV_CONSTANTS_START = '// --- @vibefast:env:constants:start ---';
9
+ export const ENV_CONSTANTS_END = '// --- @vibefast:env:constants:end ---';
10
+ export const ENV_CLIENT_SCHEMA_START = '// --- @vibefast:env:client-schema:start ---';
11
+ export const ENV_CLIENT_SCHEMA_END = '// --- @vibefast:env:client-schema:end ---';
12
+ export const ENV_CLIENT_ENV_START = '// --- @vibefast:env:client-env:start ---';
13
+ export const ENV_CLIENT_ENV_END = '// --- @vibefast:env:client-env:end ---';
14
+ export const ENV_BUILD_TIME_SCHEMA_START = '// --- @vibefast:env:buildtime-schema:start ---';
15
+ export const ENV_BUILD_TIME_SCHEMA_END = '// --- @vibefast:env:buildtime-schema:end ---';
16
+ export const ENV_BUILD_TIME_ENV_START = '// --- @vibefast:env:buildtime-env:start ---';
17
+ export const ENV_BUILD_TIME_ENV_END = '// --- @vibefast:env:buildtime-env:end ---';
18
+
8
19
  function escapeTsLiteral(value: string): string {
9
20
  return value
10
21
  .replace(/\\/g, '\\\\')
@@ -209,3 +220,58 @@ export async function removeNavLinkWeb(
209
220
 
210
221
  return true;
211
222
  }
223
+
224
+ function normalizeSnippet(snippet: string): string {
225
+ return snippet.trim();
226
+ }
227
+
228
+ function hasSnippet(content: string, snippet: string): boolean {
229
+ const normalized = normalizeSnippet(snippet);
230
+ if (!normalized) return false;
231
+ return content.includes(normalized);
232
+ }
233
+
234
+ export async function insertEnvSnippets(
235
+ filePath: string,
236
+ startMarker: string,
237
+ endMarker: string,
238
+ snippets: string[],
239
+ options?: { dryRun?: boolean }
240
+ ): Promise<boolean> {
241
+ if (!snippets.length) {
242
+ return false;
243
+ }
244
+
245
+ const content = await readFileContent(filePath);
246
+ if (!content.includes(startMarker) || !content.includes(endMarker)) {
247
+ throw new Error(`Missing env markers ${startMarker} or ${endMarker} in ${filePath}`);
248
+ }
249
+
250
+ const toInsert: string[] = [];
251
+ for (const snippet of snippets) {
252
+ if (hasSnippet(content, snippet)) {
253
+ continue;
254
+ }
255
+ toInsert.push(snippet);
256
+ }
257
+
258
+ if (toInsert.length === 0) {
259
+ return false;
260
+ }
261
+
262
+ const normalizedLines = toInsert
263
+ .map(line => line.endsWith('\n') ? line : `${line}\n`)
264
+ .join('');
265
+
266
+ const insertPosition = content.indexOf(endMarker);
267
+ const before = content.slice(0, insertPosition);
268
+ const after = content.slice(insertPosition);
269
+ const addition = `\n${normalizedLines}`;
270
+ const newContent = `${before}${addition}${after}`;
271
+
272
+ if (!options?.dryRun) {
273
+ await writeFileContent(filePath, newContent, { force: true });
274
+ }
275
+
276
+ return true;
277
+ }
@@ -61,7 +61,7 @@ export function showCommandHint(command: string, missingArg?: string) {
61
61
 
62
62
  Options:
63
63
  --license <key> Your VibeFast license key
64
- --branch <branch> Branch to clone (clean or main, default: main)
64
+ --branch <branch> Branch to clone (clean or main, default: clean)
65
65
  --yes Skip all prompts
66
66
  --skip-install Skip dependency installation
67
67
  --help Show help`,
package/src/core/fsx.ts CHANGED
@@ -88,7 +88,7 @@ export async function copyTree(
88
88
  // If interactive and not dry-run, ask user
89
89
  if (options?.interactive && !options?.dryRun) {
90
90
  const { promptYesNo } = await import('./prompt.js');
91
- const shouldOverwrite = promptYesNo(
91
+ const shouldOverwrite = await promptYesNo(
92
92
  `Overwrite ${destPath}? (y/N): `,
93
93
  false
94
94
  );
@@ -37,7 +37,7 @@ export const RECIPES: RecipeInfo[] = [
37
37
  {
38
38
  name: 'image-analysis',
39
39
  category: 'feature',
40
- description: 'AI-powered image analysis with trait detection',
40
+ description: 'AI image analyzer flows (face/dashboard)',
41
41
  icon: '🔍',
42
42
  },
43
43
  {
@@ -46,6 +46,18 @@ export const RECIPES: RecipeInfo[] = [
46
46
  description: 'AI-powered image generation',
47
47
  icon: '🎨',
48
48
  },
49
+ {
50
+ name: 'ios-widget',
51
+ category: 'feature',
52
+ description: 'iOS Home Screen widgets with Live Activities',
53
+ icon: '📱',
54
+ },
55
+ {
56
+ name: 'payments',
57
+ category: 'feature',
58
+ description: 'In-app purchases and subscriptions with RevenueCat',
59
+ icon: '💳',
60
+ },
49
61
  {
50
62
  name: 'quiz',
51
63
  category: 'feature',
@@ -70,26 +82,70 @@ export const RECIPES: RecipeInfo[] = [
70
82
  description: 'Wake word detection with Vosk',
71
83
  icon: '🎙️',
72
84
  },
85
+
86
+ // Advanced UI
73
87
  {
74
- name: 'ios-widget',
75
- category: 'feature',
76
- description: 'iOS Home Screen widgets with Live Activities',
77
- icon: '📱',
88
+ name: 'animated-chip',
89
+ category: 'advanced-ui',
90
+ description: 'Interactive filter chips with animation',
91
+ icon: '🏷️',
78
92
  },
79
93
  {
80
- name: 'payments',
81
- category: 'feature',
82
- description: 'In-app purchases and subscriptions with RevenueCat',
83
- icon: '💳',
94
+ name: 'animated-switch',
95
+ category: 'advanced-ui',
96
+ description: 'Animated switch control',
97
+ icon: '🎚️',
84
98
  },
85
-
86
- // Advanced UI
87
99
  {
88
100
  name: 'glowing-button',
89
101
  category: 'advanced-ui',
90
102
  description: 'Animated glowing button with presets',
91
103
  icon: '✨',
92
104
  },
105
+ {
106
+ name: 'number-stepper',
107
+ category: 'advanced-ui',
108
+ description: 'Stepped numeric input with gestures',
109
+ icon: '🔢',
110
+ },
111
+ {
112
+ name: 'progress-circle',
113
+ category: 'advanced-ui',
114
+ description: 'Animated progress circle + variants',
115
+ icon: '⭕',
116
+ },
117
+ {
118
+ name: 'swipe-slider',
119
+ category: 'advanced-ui',
120
+ description: 'Swipeable slider interactions',
121
+ icon: '🌀',
122
+ },
123
+ {
124
+ name: 'timeline',
125
+ category: 'advanced-ui',
126
+ description: 'Scrollable timeline UI',
127
+ icon: '🗓️',
128
+ },
129
+
130
+ // Integrations
131
+ {
132
+ name: 'posthog',
133
+ category: 'integration',
134
+ description: 'Product analytics hooks',
135
+ icon: '📈',
136
+ },
137
+ {
138
+ name: 'revenuecat',
139
+ category: 'integration',
140
+ description: 'RevenueCat config checklist',
141
+ icon: '💰',
142
+ },
143
+ {
144
+ name: 'sentry',
145
+ category: 'integration',
146
+ description: 'Sentry error tracking setup',
147
+ icon: '🛡️',
148
+ },
93
149
  ];
94
150
 
95
151
  /**