vibefast-cli 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (892) hide show
  1. package/2/.claude/agents/architect.md +74 -0
  2. package/2/.claude/agents/convex-reviewer.md +267 -0
  3. package/2/.claude/agents/debug-detective.md +62 -0
  4. package/2/.claude/agents/learner.md +64 -0
  5. package/2/.claude/agents/perf-optimizer.md +71 -0
  6. package/2/.claude/agents/security-researcher.md +42 -0
  7. package/2/.claude/agents/tech-researcher.md +46 -0
  8. package/2/.claude/agents/ux-designer.md +45 -0
  9. package/2/.claude/commands/create-app-design.md +279 -0
  10. package/2/.claude/commands/create-prd-interactive.md +113 -0
  11. package/2/.claude/commands/create-prd.md +111 -0
  12. package/2/.claude/commands/create-tech-stack.md +345 -0
  13. package/2/.claude/commands/update-app-design.md +298 -0
  14. package/2/.claude/commands/update-project-structure.md +14 -0
  15. package/2/.claude/commands/update-tech-stack.md +325 -0
  16. package/2/.claude/docs/CONVEX_FEATURES_PLAN.md +249 -0
  17. package/2/.claude/docs/app-design-document.md +0 -0
  18. package/2/.claude/docs/project-status.md +25 -0
  19. package/2/.claude/docs/project-structure.md +7 -0
  20. package/2/.claude/docs/tech-stack.md +157 -0
  21. package/2/.claude/scripts/tree.sh +70 -0
  22. package/2/.claude/settings.json +30 -0
  23. package/2/.cursor/commands/code-review-high.md +190 -0
  24. package/2/.cursorignore +3 -0
  25. package/2/.github/ISSUE_TEMPLATE.md +13 -0
  26. package/2/.github/PULL_REQUEST_TEMPLATE.md +23 -0
  27. package/2/.github/actions/eas-build/action.yml +85 -0
  28. package/2/.github/actions/setup-jdk-generate-apk/action.yml +48 -0
  29. package/2/.github/actions/setup-node-pnpm-install/action.yml +29 -0
  30. package/2/.github/scripts/expo-doctor.sh +26 -0
  31. package/2/.github/workflows/compress-images.yml +48 -0
  32. package/2/.github/workflows/e2e-android-eas-build.yml +111 -0
  33. package/2/.github/workflows/e2e-android-maestro.yml +52 -0
  34. package/2/.github/workflows/e2e-android.yml +119 -0
  35. package/2/.github/workflows/eas-build-prod.yml +43 -0
  36. package/2/.github/workflows/eas-build-qa.yml +47 -0
  37. package/2/.github/workflows/expo-doctor.yml +61 -0
  38. package/2/.github/workflows/lint-ts.yml +49 -0
  39. package/2/.github/workflows/new-app-version.yml +65 -0
  40. package/2/.github/workflows/new-github-release.yml +34 -0
  41. package/2/.github/workflows/stale.yml +24 -0
  42. package/2/.github/workflows/test.yml +50 -0
  43. package/2/.github/workflows/type-check.yml +54 -0
  44. package/2/.husky/commit-msg +1 -0
  45. package/2/.husky/common.sh +8 -0
  46. package/2/.husky/post-merge +18 -0
  47. package/2/.husky/pre-commit +24 -0
  48. package/2/.prettierignore +14 -0
  49. package/2/.prettierrc.json +10 -0
  50. package/2/.vibefast/README.md +59 -0
  51. package/2/.vibefast/config.json +4 -0
  52. package/2/.vibefast/journal.json +234 -0
  53. package/2/.vibefast/starter.json +5 -0
  54. package/2/AGENTS.md +48 -0
  55. package/2/LICENSE +21 -0
  56. package/2/README.md +127 -0
  57. package/2/apps/native/__mocks__/bottom-sheet.js +6 -0
  58. package/2/apps/native/__mocks__/expo-router.js +16 -0
  59. package/2/apps/native/__mocks__/react-native-gesture-handler.ts +17 -0
  60. package/2/apps/native/app-env.d.ts +2 -0
  61. package/2/apps/native/app.config.ts +167 -0
  62. package/2/apps/native/assets/adaptive-icon.png +0 -0
  63. package/2/apps/native/assets/favicon.png +0 -0
  64. package/2/apps/native/assets/features/image-analyzer/front.jpg +0 -0
  65. package/2/apps/native/assets/features/image-analyzer/side.jpg +0 -0
  66. package/2/apps/native/assets/features/image-analyzer/threeQuarter.jpg +0 -0
  67. package/2/apps/native/assets/fonts/Inter.ttf +0 -0
  68. package/2/apps/native/assets/fonts/SF-Pro-Display-Bold.otf +0 -0
  69. package/2/apps/native/assets/fonts/SF-Pro-Display-Medium.otf +0 -0
  70. package/2/apps/native/assets/fonts/SF-Pro-Display-Regular.otf +0 -0
  71. package/2/apps/native/assets/fonts/SF-Pro-Display-Semibold.otf +0 -0
  72. package/2/apps/native/assets/fonts/SpaceMono-Regular.ttf +0 -0
  73. package/2/apps/native/assets/icon.png +0 -0
  74. package/2/apps/native/assets/images/cover-image.png +0 -0
  75. package/2/apps/native/assets/lottie-animations/onboarding-1.json +6504 -0
  76. package/2/apps/native/assets/lottie-animations/onboarding-2.json +1993 -0
  77. package/2/apps/native/assets/lottie-animations/onboarding-3.json +50159 -0
  78. package/2/apps/native/assets/lottie-animations/onboarding-4.json +735 -0
  79. package/2/apps/native/assets/lottie-animations/onboarding-6.json +2167 -0
  80. package/2/apps/native/assets/splash-icon.png +0 -0
  81. package/2/apps/native/babel.config.js +39 -0
  82. package/2/apps/native/eas.json +75 -0
  83. package/2/apps/native/env.js +196 -0
  84. package/2/apps/native/global.css +51 -0
  85. package/2/apps/native/index.ts +5 -0
  86. package/2/apps/native/jest-setup.ts +7 -0
  87. package/2/apps/native/jest.config.js +72 -0
  88. package/2/apps/native/metro.config.js +85 -0
  89. package/2/apps/native/nativewind-env.d.ts +1 -0
  90. package/2/apps/native/package.json +232 -0
  91. package/2/apps/native/scripts/DRY_RUN_REPORT.md +0 -0
  92. package/2/apps/native/scripts/QUICK_START.md +76 -0
  93. package/2/apps/native/scripts/README.md +187 -0
  94. package/2/apps/native/scripts/convex-setup.js +48 -0
  95. package/2/apps/native/scripts/download-vosk-model.mjs +121 -0
  96. package/2/apps/native/scripts/genrate-apk-and-install +39 -0
  97. package/2/apps/native/scripts/i18next-syntax-validation.js +23 -0
  98. package/2/apps/native/scripts/starter-setup.mjs +246 -0
  99. package/2/apps/native/src/api-client/auth.ts +68 -0
  100. package/2/apps/native/src/api-client/chatbot.ts +83 -0
  101. package/2/apps/native/src/api-client/client.ts +4 -0
  102. package/2/apps/native/src/api-client/image-analyzer.ts +62 -0
  103. package/2/apps/native/src/api-client/image-generator.ts +34 -0
  104. package/2/apps/native/src/api-client/index.ts +27 -0
  105. package/2/apps/native/src/api-client/payments.ts +44 -0
  106. package/2/apps/native/src/api-client/reporting.ts +29 -0
  107. package/2/apps/native/src/api-client/shared.ts +43 -0
  108. package/2/apps/native/src/app/(root)/(protected)/(tabs)/_layout.tsx +166 -0
  109. package/2/apps/native/src/app/(root)/(protected)/(tabs)/index.tsx +174 -0
  110. package/2/apps/native/src/app/(root)/(protected)/(tabs)/profile.tsx +320 -0
  111. package/2/apps/native/src/app/(root)/(protected)/(tabs)/settings.tsx +344 -0
  112. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/_layout.tsx +198 -0
  113. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/accordion.tsx +60 -0
  114. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/advanced.tsx +24 -0
  115. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/avatar.tsx +154 -0
  116. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/badge-chips-toggle.tsx +81 -0
  117. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/buttons.tsx +24 -0
  118. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/charts.tsx +3 -0
  119. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/date-picker.tsx +120 -0
  120. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/file-picker.tsx +133 -0
  121. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/gallery-video.tsx +119 -0
  122. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/index.tsx +69 -0
  123. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/inputs-stepper.tsx +78 -0
  124. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/picker-dropdown.tsx +56 -0
  125. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/popover-bottomsheet.tsx +229 -0
  126. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/progress.tsx +38 -0
  127. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/searchbar.tsx +70 -0
  128. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/sliders.tsx +93 -0
  129. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/spinner.tsx +80 -0
  130. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/switch.tsx +47 -0
  131. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/table.tsx +352 -0
  132. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/tabs-timeline.tsx +122 -0
  133. package/2/apps/native/src/app/(root)/(protected)/_layout.tsx +143 -0
  134. package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/_layout.tsx +5 -0
  135. package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/analysis-options.tsx +50 -0
  136. package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/camera.tsx +2 -0
  137. package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/index.tsx +50 -0
  138. package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/loading.tsx +50 -0
  139. package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/results.tsx +2 -0
  140. package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/trait-details.tsx +3 -0
  141. package/2/apps/native/src/app/(root)/(protected)/audio-recorder/index.tsx +5 -0
  142. package/2/apps/native/src/app/(root)/(protected)/charts/index.tsx +6 -0
  143. package/2/apps/native/src/app/(root)/(protected)/chatbot/index.tsx +2 -0
  144. package/2/apps/native/src/app/(root)/(protected)/image-generator/gallery.tsx +3 -0
  145. package/2/apps/native/src/app/(root)/(protected)/image-generator/index.tsx +3 -0
  146. package/2/apps/native/src/app/(root)/(protected)/paywall/index.tsx +74 -0
  147. package/2/apps/native/src/app/(root)/(protected)/paywall/local.tsx +25 -0
  148. package/2/apps/native/src/app/(root)/(protected)/paywall/remote.tsx +23 -0
  149. package/2/apps/native/src/app/(root)/(protected)/quick-actions-demo/index.tsx +32 -0
  150. package/2/apps/native/src/app/(root)/(protected)/quiz/index.tsx +47 -0
  151. package/2/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +214 -0
  152. package/2/apps/native/src/app/(root)/(protected)/tracker-app/index.tsx +1 -0
  153. package/2/apps/native/src/app/(root)/(protected)/voice-bot/index.tsx +27 -0
  154. package/2/apps/native/src/app/(root)/(public)/(auth)/_layout.tsx +44 -0
  155. package/2/apps/native/src/app/(root)/(public)/(auth)/forgot-password.tsx +185 -0
  156. package/2/apps/native/src/app/(root)/(public)/(auth)/login.tsx +219 -0
  157. package/2/apps/native/src/app/(root)/(public)/(auth)/otp-verification.tsx +369 -0
  158. package/2/apps/native/src/app/(root)/(public)/(auth)/reset-password.tsx +247 -0
  159. package/2/apps/native/src/app/(root)/(public)/(auth)/signup.tsx +207 -0
  160. package/2/apps/native/src/app/(root)/(public)/_layout.tsx +60 -0
  161. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-one.tsx +5 -0
  162. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-two.tsx +52 -0
  163. package/2/apps/native/src/app/(root)/(public)/onboarding/index.tsx +82 -0
  164. package/2/apps/native/src/app/(root)/_layout.tsx +30 -0
  165. package/2/apps/native/src/app/+html.tsx +46 -0
  166. package/2/apps/native/src/app/[...messing].tsx +24 -0
  167. package/2/apps/native/src/app/_layout.tsx +56 -0
  168. package/2/apps/native/src/app/tsconfig.json +3 -0
  169. package/2/apps/native/src/components/advanced-ui/buttons/demo.tsx +19 -0
  170. package/2/apps/native/src/components/advanced-ui/buttons/glowing-button.tsx +366 -0
  171. package/2/apps/native/src/components/advanced-ui/chip/animated-chip.tsx +118 -0
  172. package/2/apps/native/src/components/advanced-ui/chip/chip.tsx +49 -0
  173. package/2/apps/native/src/components/advanced-ui/chip/demo.tsx +191 -0
  174. package/2/apps/native/src/components/advanced-ui/chip/types.ts +21 -0
  175. package/2/apps/native/src/components/advanced-ui/progress-bars/animated-progress-bar.tsx +182 -0
  176. package/2/apps/native/src/components/advanced-ui/progress-bars/dropdown-picker-page.tsx +124 -0
  177. package/2/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +111 -0
  178. package/2/apps/native/src/components/advanced-ui/progress-bars/progress-circle.tsx +223 -0
  179. package/2/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +203 -0
  180. package/2/apps/native/src/components/advanced-ui/sliders/swipe-slider.tsx +266 -0
  181. package/2/apps/native/src/components/advanced-ui/stepper/children/button/stepper-button.tsx +96 -0
  182. package/2/apps/native/src/components/advanced-ui/stepper/children/button/types.ts +16 -0
  183. package/2/apps/native/src/components/advanced-ui/stepper/children/content/stepper-content.tsx +19 -0
  184. package/2/apps/native/src/components/advanced-ui/stepper/children/content/types.ts +6 -0
  185. package/2/apps/native/src/components/advanced-ui/stepper/children/value/stepper-value.tsx +43 -0
  186. package/2/apps/native/src/components/advanced-ui/stepper/children/value/types.ts +25 -0
  187. package/2/apps/native/src/components/advanced-ui/stepper/context/stepper-context.ts +19 -0
  188. package/2/apps/native/src/components/advanced-ui/stepper/context/types.ts +9 -0
  189. package/2/apps/native/src/components/advanced-ui/stepper/demo.tsx +346 -0
  190. package/2/apps/native/src/components/advanced-ui/stepper/index.ts +4 -0
  191. package/2/apps/native/src/components/advanced-ui/stepper/stepper.tsx +96 -0
  192. package/2/apps/native/src/components/advanced-ui/stepper/types.ts +13 -0
  193. package/2/apps/native/src/components/advanced-ui/switch/animated-switch.tsx +312 -0
  194. package/2/apps/native/src/components/advanced-ui/switch/demo.tsx +851 -0
  195. package/2/apps/native/src/components/advanced-ui/switch/types.ts +32 -0
  196. package/2/apps/native/src/components/advanced-ui/timeline/demo.tsx +444 -0
  197. package/2/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +355 -0
  198. package/2/apps/native/src/components/advanced-ui/timeline/types.ts +31 -0
  199. package/2/apps/native/src/components/analytics/navigation-tracker.tsx +10 -0
  200. package/2/apps/native/src/components/demo/advanced-ui-components.tsx +46 -0
  201. package/2/apps/native/src/components/demo/buttons-demo.tsx +56 -0
  202. package/2/apps/native/src/components/demo/colors-demo.tsx +52 -0
  203. package/2/apps/native/src/components/demo/dropdown-picker-demo.tsx +274 -0
  204. package/2/apps/native/src/components/demo/inputs-demo.tsx +99 -0
  205. package/2/apps/native/src/components/demo/notification-demo.tsx +434 -0
  206. package/2/apps/native/src/components/demo/title-demo.tsx +16 -0
  207. package/2/apps/native/src/components/demo/toast-demo.tsx +81 -0
  208. package/2/apps/native/src/components/demo/typography-demo.tsx +28 -0
  209. package/2/apps/native/src/components/performance/render-performance-monitor.tsx +36 -0
  210. package/2/apps/native/src/components/ui/accordion.tsx +138 -0
  211. package/2/apps/native/src/components/ui/avatar.tsx +66 -0
  212. package/2/apps/native/src/components/ui/badge.tsx +68 -0
  213. package/2/apps/native/src/components/ui/bottom-sheet.tsx +61 -0
  214. package/2/apps/native/src/components/ui/colors.js +290 -0
  215. package/2/apps/native/src/components/ui/core/button.tsx +317 -0
  216. package/2/apps/native/src/components/ui/core/card.tsx +40 -0
  217. package/2/apps/native/src/components/ui/core/checkbox.tsx +264 -0
  218. package/2/apps/native/src/components/ui/core/feature-button.tsx +162 -0
  219. package/2/apps/native/src/components/ui/core/focus-aware-status-bar.tsx +21 -0
  220. package/2/apps/native/src/components/ui/core/image.tsx +30 -0
  221. package/2/apps/native/src/components/ui/core/inputs/floating-text-input.tsx +369 -0
  222. package/2/apps/native/src/components/ui/core/inputs/input-otp.tsx +304 -0
  223. package/2/apps/native/src/components/ui/core/inputs/input.tsx +373 -0
  224. package/2/apps/native/src/components/ui/core/list.tsx +60 -0
  225. package/2/apps/native/src/components/ui/core/navigation/animated-header.tsx +87 -0
  226. package/2/apps/native/src/components/ui/core/navigation/screen-footer.tsx +67 -0
  227. package/2/apps/native/src/components/ui/core/overlays/dropdown.tsx +290 -0
  228. package/2/apps/native/src/components/ui/core/overlays/full-screen-loading.tsx +15 -0
  229. package/2/apps/native/src/components/ui/core/overlays/modal-keyboard-aware-scroll-view.tsx +46 -0
  230. package/2/apps/native/src/components/ui/core/overlays/modal.tsx +247 -0
  231. package/2/apps/native/src/components/ui/core/pagination-dots.tsx +231 -0
  232. package/2/apps/native/src/components/ui/core/pressable.tsx +48 -0
  233. package/2/apps/native/src/components/ui/core/progress-bar.tsx +47 -0
  234. package/2/apps/native/src/components/ui/core/progress.tsx +149 -0
  235. package/2/apps/native/src/components/ui/core/select.tsx +261 -0
  236. package/2/apps/native/src/components/ui/core/spinner.tsx +387 -0
  237. package/2/apps/native/src/components/ui/core/text.tsx +45 -0
  238. package/2/apps/native/src/components/ui/core/toast.tsx +190 -0
  239. package/2/apps/native/src/components/ui/custom-switch.tsx +90 -0
  240. package/2/apps/native/src/components/ui/date-time-picker.tsx +268 -0
  241. package/2/apps/native/src/components/ui/debug.ts +2 -0
  242. package/2/apps/native/src/components/ui/extras/debug-credit-tester.tsx +107 -0
  243. package/2/apps/native/src/components/ui/extras/debug-mmkv-state.tsx +53 -0
  244. package/2/apps/native/src/components/ui/extras/handle-error.ts +191 -0
  245. package/2/apps/native/src/components/ui/extras/hello-wave.tsx +70 -0
  246. package/2/apps/native/src/components/ui/extras/icon.tsx +36 -0
  247. package/2/apps/native/src/components/ui/extras/network-connectivity-wrapper.tsx +36 -0
  248. package/2/apps/native/src/components/ui/extras/offline-indicator.tsx +55 -0
  249. package/2/apps/native/src/components/ui/extras/social-login-buttons.tsx +296 -0
  250. package/2/apps/native/src/components/ui/file-picker.tsx +177 -0
  251. package/2/apps/native/src/components/ui/gallery.tsx +79 -0
  252. package/2/apps/native/src/components/ui/icons/apple.tsx +19 -0
  253. package/2/apps/native/src/components/ui/icons/arrow-right.tsx +26 -0
  254. package/2/apps/native/src/components/ui/icons/camera.tsx +26 -0
  255. package/2/apps/native/src/components/ui/icons/caret-down.tsx +20 -0
  256. package/2/apps/native/src/components/ui/icons/chevron-up.tsx +21 -0
  257. package/2/apps/native/src/components/ui/icons/claude.tsx +15 -0
  258. package/2/apps/native/src/components/ui/icons/copy.tsx +27 -0
  259. package/2/apps/native/src/components/ui/icons/deepseek.tsx +15 -0
  260. package/2/apps/native/src/components/ui/icons/download.tsx +32 -0
  261. package/2/apps/native/src/components/ui/icons/feed.tsx +12 -0
  262. package/2/apps/native/src/components/ui/icons/gemini.tsx +15 -0
  263. package/2/apps/native/src/components/ui/icons/github.tsx +30 -0
  264. package/2/apps/native/src/components/ui/icons/google.tsx +24 -0
  265. package/2/apps/native/src/components/ui/icons/groq.tsx +15 -0
  266. package/2/apps/native/src/components/ui/icons/home.tsx +19 -0
  267. package/2/apps/native/src/components/ui/icons/index.tsx +26 -0
  268. package/2/apps/native/src/components/ui/icons/language.tsx +33 -0
  269. package/2/apps/native/src/components/ui/icons/llama.tsx +15 -0
  270. package/2/apps/native/src/components/ui/icons/microphone.tsx +20 -0
  271. package/2/apps/native/src/components/ui/icons/mistral.tsx +22 -0
  272. package/2/apps/native/src/components/ui/icons/nutrition.tsx +15 -0
  273. package/2/apps/native/src/components/ui/icons/openai.tsx +15 -0
  274. package/2/apps/native/src/components/ui/icons/perplexity.tsx +22 -0
  275. package/2/apps/native/src/components/ui/icons/qwen.tsx +15 -0
  276. package/2/apps/native/src/components/ui/icons/rate.tsx +24 -0
  277. package/2/apps/native/src/components/ui/icons/report.tsx +20 -0
  278. package/2/apps/native/src/components/ui/icons/send-horizontal.tsx +26 -0
  279. package/2/apps/native/src/components/ui/icons/settings.tsx +12 -0
  280. package/2/apps/native/src/components/ui/icons/share.tsx +16 -0
  281. package/2/apps/native/src/components/ui/icons/square.tsx +9 -0
  282. package/2/apps/native/src/components/ui/icons/style.tsx +22 -0
  283. package/2/apps/native/src/components/ui/icons/support.tsx +27 -0
  284. package/2/apps/native/src/components/ui/icons/trash2.tsx +42 -0
  285. package/2/apps/native/src/components/ui/icons/user.tsx +12 -0
  286. package/2/apps/native/src/components/ui/icons/website.tsx +28 -0
  287. package/2/apps/native/src/components/ui/icons/wifi-off.tsx +17 -0
  288. package/2/apps/native/src/components/ui/index.tsx +14 -0
  289. package/2/apps/native/src/components/ui/nav-item.tsx +42 -0
  290. package/2/apps/native/src/components/ui/patterns/index.ts +16 -0
  291. package/2/apps/native/src/components/ui/picker.tsx +244 -0
  292. package/2/apps/native/src/components/ui/popover.tsx +313 -0
  293. package/2/apps/native/src/components/ui/primitives/index.ts +38 -0
  294. package/2/apps/native/src/components/ui/radio-group.tsx +47 -0
  295. package/2/apps/native/src/components/ui/searchbar.tsx +118 -0
  296. package/2/apps/native/src/components/ui/sheet.tsx +93 -0
  297. package/2/apps/native/src/components/ui/switch.tsx +37 -0
  298. package/2/apps/native/src/components/ui/table.tsx +296 -0
  299. package/2/apps/native/src/components/ui/tabs.tsx +115 -0
  300. package/2/apps/native/src/components/ui/toggle.tsx +50 -0
  301. package/2/apps/native/src/components/ui/utils.tsx +34 -0
  302. package/2/apps/native/src/components/ui/video.tsx +39 -0
  303. package/2/apps/native/src/core/analytics/analytics-service.ts +94 -0
  304. package/2/apps/native/src/core/analytics/index.ts +2 -0
  305. package/2/apps/native/src/core/analytics/posthog-analytics-adapter.ts +192 -0
  306. package/2/apps/native/src/core/auth/auth-service.ts +33 -0
  307. package/2/apps/native/src/core/auth/index.ts +1 -0
  308. package/2/apps/native/src/core/cache/__tests__/cache-service.test.ts +599 -0
  309. package/2/apps/native/src/core/cache/cache-service.ts +89 -0
  310. package/2/apps/native/src/core/cache/index.ts +45 -0
  311. package/2/apps/native/src/core/config/config.service.ts +153 -0
  312. package/2/apps/native/src/core/config/index.ts +2 -0
  313. package/2/apps/native/src/core/config/telemetry.ts +38 -0
  314. package/2/apps/native/src/core/local-notifications/local-notification-manager.ts +409 -0
  315. package/2/apps/native/src/core/logging/custom-transports.ts +126 -0
  316. package/2/apps/native/src/core/logging/index.ts +1 -0
  317. package/2/apps/native/src/core/logging/logger.ts +182 -0
  318. package/2/apps/native/src/core/navigation/deep-link-handler.ts +295 -0
  319. package/2/apps/native/src/core/navigation/navigation-types.ts +53 -0
  320. package/2/apps/native/src/core/payments/index.ts +1 -0
  321. package/2/apps/native/src/core/payments/payment-service.ts +32 -0
  322. package/2/apps/native/src/core/quick-actions/index.ts +2 -0
  323. package/2/apps/native/src/core/quick-actions/quick-actions-adapter.ts +54 -0
  324. package/2/apps/native/src/core/quick-actions/types.ts +29 -0
  325. package/2/apps/native/src/core/storage/index.ts +1 -0
  326. package/2/apps/native/src/core/storage/mmkv.ts +62 -0
  327. package/2/apps/native/src/core/storage/notification-storage.ts +312 -0
  328. package/2/apps/native/src/core/types/common.ts +0 -0
  329. package/2/apps/native/src/core/utils/convex-http-api.ts +30 -0
  330. package/2/apps/native/src/features/audio-recorder/components/audio-player.tsx +301 -0
  331. package/2/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +373 -0
  332. package/2/apps/native/src/features/audio-recorder/components/audio-waveform.tsx +270 -0
  333. package/2/apps/native/src/features/audio-recorder/components/index.ts +4 -0
  334. package/2/apps/native/src/features/audio-recorder/components/recording-list.tsx +89 -0
  335. package/2/apps/native/src/features/audio-recorder/demo/audio-player-demo.tsx +66 -0
  336. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-cloud.tsx +68 -0
  337. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-interview.tsx +102 -0
  338. package/2/apps/native/src/features/audio-recorder/demo/basic.tsx +27 -0
  339. package/2/apps/native/src/features/audio-recorder/demo/index.ts +5 -0
  340. package/2/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +82 -0
  341. package/2/apps/native/src/features/authentication/components/auth-watcher.tsx +115 -0
  342. package/2/apps/native/src/features/authentication/components/login-form.tsx +85 -0
  343. package/2/apps/native/src/features/authentication/services/__tests__/convex-auth.adapter.test.ts +399 -0
  344. package/2/apps/native/src/features/authentication/services/convex-auth.adapter.ts +497 -0
  345. package/2/apps/native/src/features/authentication/services/index.ts +2 -0
  346. package/2/apps/native/src/features/charts/README.md +185 -0
  347. package/2/apps/native/src/features/charts/app/preview.tsx +226 -0
  348. package/2/apps/native/src/features/charts/components/area-chart.tsx +43 -0
  349. package/2/apps/native/src/features/charts/components/bar-chart.tsx +146 -0
  350. package/2/apps/native/src/features/charts/components/candlestick-chart.tsx +199 -0
  351. package/2/apps/native/src/features/charts/components/chart-card.tsx +68 -0
  352. package/2/apps/native/src/features/charts/components/column-chart.tsx +146 -0
  353. package/2/apps/native/src/features/charts/components/doughnut-chart.tsx +260 -0
  354. package/2/apps/native/src/features/charts/components/index.ts +13 -0
  355. package/2/apps/native/src/features/charts/components/line-chart.tsx +311 -0
  356. package/2/apps/native/src/features/charts/components/radar-chart.tsx +183 -0
  357. package/2/apps/native/src/features/charts/components/radial-bar-chart.tsx +191 -0
  358. package/2/apps/native/src/features/charts/components/stacked-area-chart.tsx +268 -0
  359. package/2/apps/native/src/features/charts/components/stacked-bar-chart.tsx +325 -0
  360. package/2/apps/native/src/features/charts/data/mock-data.ts +186 -0
  361. package/2/apps/native/src/features/charts/types/index.ts +69 -0
  362. package/2/apps/native/src/features/chatbot/app/index.tsx +303 -0
  363. package/2/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +60 -0
  364. package/2/apps/native/src/features/chatbot/components/chat-input-bar.tsx +470 -0
  365. package/2/apps/native/src/features/chatbot/components/chat-markdown.tsx +576 -0
  366. package/2/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +247 -0
  367. package/2/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +162 -0
  368. package/2/apps/native/src/features/chatbot/components/image-preview-list.tsx +116 -0
  369. package/2/apps/native/src/features/chatbot/components/markdown/code-block.tsx +166 -0
  370. package/2/apps/native/src/features/chatbot/components/markdown/index.ts +11 -0
  371. package/2/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +130 -0
  372. package/2/apps/native/src/features/chatbot/components/message-error-boundary.tsx +79 -0
  373. package/2/apps/native/src/features/chatbot/components/message-list.tsx +174 -0
  374. package/2/apps/native/src/features/chatbot/components/model-selector.tsx +284 -0
  375. package/2/apps/native/src/features/chatbot/components/report-content-modal.tsx +189 -0
  376. package/2/apps/native/src/features/chatbot/components/suggested-messages.tsx +68 -0
  377. package/2/apps/native/src/features/chatbot/constants/models.ts +21 -0
  378. package/2/apps/native/src/features/chatbot/constants/report-reasons.ts +10 -0
  379. package/2/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +144 -0
  380. package/2/apps/native/src/features/chatbot/hooks/use-chat-config.ts +665 -0
  381. package/2/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +360 -0
  382. package/2/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +90 -0
  383. package/2/apps/native/src/features/chatbot/hooks/use-conversation.ts +80 -0
  384. package/2/apps/native/src/features/chatbot/hooks/use-image-picker.ts +123 -0
  385. package/2/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +162 -0
  386. package/2/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +214 -0
  387. package/2/apps/native/src/features/chatbot/models/index.ts +87 -0
  388. package/2/apps/native/src/features/chatbot/models/models.ts +163 -0
  389. package/2/apps/native/src/features/chatbot/models/providers.ts +63 -0
  390. package/2/apps/native/src/features/chatbot/models/types.ts +41 -0
  391. package/2/apps/native/src/features/chatbot/services/file-uploader.ts +239 -0
  392. package/2/apps/native/src/features/chatbot/services/message-handler-service.ts +181 -0
  393. package/2/apps/native/src/features/chatbot/types/index.ts +61 -0
  394. package/2/apps/native/src/features/chatbot/utils/chat-telemetry.ts +92 -0
  395. package/2/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +304 -0
  396. package/2/apps/native/src/features/image-analyzer/app/camera.tsx +221 -0
  397. package/2/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +333 -0
  398. package/2/apps/native/src/features/image-analyzer/app/loading-screen.tsx +217 -0
  399. package/2/apps/native/src/features/image-analyzer/app/loading.tsx +194 -0
  400. package/2/apps/native/src/features/image-analyzer/app/results.tsx +137 -0
  401. package/2/apps/native/src/features/image-analyzer/app/trait-details.tsx +172 -0
  402. package/2/apps/native/src/features/image-analyzer/app/use-analysis-data.ts +143 -0
  403. package/2/apps/native/src/features/image-analyzer/app/use-results-screen.ts +151 -0
  404. package/2/apps/native/src/features/image-analyzer/components/results/achievement-badge.tsx +77 -0
  405. package/2/apps/native/src/features/image-analyzer/components/results/achievement-card.tsx +75 -0
  406. package/2/apps/native/src/features/image-analyzer/components/results/achievement-unlocked-modal.tsx +162 -0
  407. package/2/apps/native/src/features/image-analyzer/components/results/achievements-section.tsx +44 -0
  408. package/2/apps/native/src/features/image-analyzer/components/results/advice-list.tsx +42 -0
  409. package/2/apps/native/src/features/image-analyzer/components/results/circular-progress.tsx +233 -0
  410. package/2/apps/native/src/features/image-analyzer/components/results/content-card.tsx +38 -0
  411. package/2/apps/native/src/features/image-analyzer/components/results/error-state.tsx +42 -0
  412. package/2/apps/native/src/features/image-analyzer/components/results/index.ts +9 -0
  413. package/2/apps/native/src/features/image-analyzer/components/results/loading-state.tsx +26 -0
  414. package/2/apps/native/src/features/image-analyzer/components/results/profile-image.tsx +60 -0
  415. package/2/apps/native/src/features/image-analyzer/components/results/results-header.tsx +62 -0
  416. package/2/apps/native/src/features/image-analyzer/components/results/score-display.tsx +54 -0
  417. package/2/apps/native/src/features/image-analyzer/components/results/share-options-modal.tsx +110 -0
  418. package/2/apps/native/src/features/image-analyzer/components/results/traits-grid.tsx +74 -0
  419. package/2/apps/native/src/features/image-analyzer/config/analysis-config.ts +80 -0
  420. package/2/apps/native/src/features/image-analyzer/config/master-analysis-config.ts +157 -0
  421. package/2/apps/native/src/features/image-analyzer/hooks/index.ts +1 -0
  422. package/2/apps/native/src/features/image-analyzer/hooks/use-analysis.ts +37 -0
  423. package/2/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +202 -0
  424. package/2/apps/native/src/features/image-analyzer/services/analysis-service.ts +262 -0
  425. package/2/apps/native/src/features/image-analyzer/services/share-service.ts +176 -0
  426. package/2/apps/native/src/features/image-analyzer/services/trait-details-service.ts +289 -0
  427. package/2/apps/native/src/features/image-generator/app/_layout.tsx +26 -0
  428. package/2/apps/native/src/features/image-generator/app/gallery.tsx +217 -0
  429. package/2/apps/native/src/features/image-generator/app/index.tsx +237 -0
  430. package/2/apps/native/src/features/image-generator/components/gallery-image.tsx +25 -0
  431. package/2/apps/native/src/features/image-generator/components/image-detail-modal.tsx +215 -0
  432. package/2/apps/native/src/features/image-generator/components/image-model-selector.tsx +210 -0
  433. package/2/apps/native/src/features/image-generator/components/image-placeholder.tsx +26 -0
  434. package/2/apps/native/src/features/image-generator/hooks/use-image-gallery.ts +71 -0
  435. package/2/apps/native/src/features/image-generator/hooks/use-image-generator-settings.ts +152 -0
  436. package/2/apps/native/src/features/image-generator/hooks/use-image-generator.ts +93 -0
  437. package/2/apps/native/src/features/image-generator/models/models.ts +66 -0
  438. package/2/apps/native/src/features/image-generator/services/image-gallery-service.ts +98 -0
  439. package/2/apps/native/src/features/image-generator/services/image-save-service.ts +121 -0
  440. package/2/apps/native/src/features/onboarding/analytics/index.ts +9 -0
  441. package/2/apps/native/src/features/onboarding/components/onboarding-with-analytics.tsx +141 -0
  442. package/2/apps/native/src/features/onboarding/components/onboarding.tsx +173 -0
  443. package/2/apps/native/src/features/onboarding/config/onboarding-flow-config.ts +189 -0
  444. package/2/apps/native/src/features/onboarding/demo-one/app/index.tsx +43 -0
  445. package/2/apps/native/src/features/onboarding/demo-one/data.ts +32 -0
  446. package/2/apps/native/src/features/onboarding/hooks/use-onboarding-analytics.ts +323 -0
  447. package/2/apps/native/src/features/onboarding/services/onboarding-analytics.ts +432 -0
  448. package/2/apps/native/src/features/payments/README.md +200 -0
  449. package/2/apps/native/src/features/payments/app/local-paywall.tsx +194 -0
  450. package/2/apps/native/src/features/payments/app/remote-paywall.tsx +79 -0
  451. package/2/apps/native/src/features/payments/components/payment-initializer.tsx +95 -0
  452. package/2/apps/native/src/features/payments/components/paywall-error-state.tsx +60 -0
  453. package/2/apps/native/src/features/payments/components/paywall-local-mode.tsx +116 -0
  454. package/2/apps/native/src/features/payments/components/paywall-product-card.tsx +133 -0
  455. package/2/apps/native/src/features/payments/components/paywall-remote-mode.tsx +146 -0
  456. package/2/apps/native/src/features/payments/hooks/use-entitlement.ts +63 -0
  457. package/2/apps/native/src/features/payments/index.ts +8 -0
  458. package/2/apps/native/src/features/payments/services/revenuecat-adapter.ts +407 -0
  459. package/2/apps/native/src/features/quick-actions/components/quick-actions-demo.tsx +139 -0
  460. package/2/apps/native/src/features/quick-actions/config/default-actions.ts +83 -0
  461. package/2/apps/native/src/features/quick-actions/hooks/use-quick-actions.ts +45 -0
  462. package/2/apps/native/src/features/quick-actions/index.ts +4 -0
  463. package/2/apps/native/src/features/quick-actions/utils/quick-actions-manager.ts +105 -0
  464. package/2/apps/native/src/features/quiz/components/question.tsx +67 -0
  465. package/2/apps/native/src/features/quiz/config.ts +11 -0
  466. package/2/apps/native/src/features/quiz/index.tsx +133 -0
  467. package/2/apps/native/src/features/settings/ui/debug-info.tsx +75 -0
  468. package/2/apps/native/src/features/settings/ui/dev-tools.tsx +1 -0
  469. package/2/apps/native/src/features/settings/ui/item.tsx +45 -0
  470. package/2/apps/native/src/features/settings/ui/items-container.tsx +23 -0
  471. package/2/apps/native/src/features/settings/ui/language-item.tsx +52 -0
  472. package/2/apps/native/src/features/settings/ui/notification-item.tsx +59 -0
  473. package/2/apps/native/src/features/settings/ui/theme-item.tsx +45 -0
  474. package/2/apps/native/src/features/tracker-app/app/index.tsx +108 -0
  475. package/2/apps/native/src/features/tracker-app/components/animated-number.tsx +102 -0
  476. package/2/apps/native/src/features/tracker-app/components/calorie-card.tsx +66 -0
  477. package/2/apps/native/src/features/tracker-app/components/circular-progress.tsx +97 -0
  478. package/2/apps/native/src/features/tracker-app/components/floating-add-button.tsx +27 -0
  479. package/2/apps/native/src/features/tracker-app/components/macro-card.tsx +80 -0
  480. package/2/apps/native/src/features/tracker-app/components/promo-banner.tsx +98 -0
  481. package/2/apps/native/src/features/tracker-app/components/recently-logged.tsx +64 -0
  482. package/2/apps/native/src/features/tracker-app/components/week-calendar.tsx +68 -0
  483. package/2/apps/native/src/features/vibefast-features.ts +42 -0
  484. package/2/apps/native/src/features/voice-bot/README.md +185 -0
  485. package/2/apps/native/src/features/voice-bot/components/conversation-status.tsx +76 -0
  486. package/2/apps/native/src/features/voice-bot/components/index.ts +4 -0
  487. package/2/apps/native/src/features/voice-bot/components/message-input.tsx +98 -0
  488. package/2/apps/native/src/features/voice-bot/components/voice-bot-screen.tsx +173 -0
  489. package/2/apps/native/src/features/voice-bot/components/voice-controls.tsx +73 -0
  490. package/2/apps/native/src/features/voice-bot/index.ts +3 -0
  491. package/2/apps/native/src/features/voice-bot/services/index.ts +1 -0
  492. package/2/apps/native/src/features/voice-bot/services/use-voice-bot.ts +161 -0
  493. package/2/apps/native/src/features/voice-bot/types.ts +29 -0
  494. package/2/apps/native/src/features/wake-word/components/index.ts +1 -0
  495. package/2/apps/native/src/features/wake-word/components/wake-word-indicator.tsx +61 -0
  496. package/2/apps/native/src/features/wake-word/constants.ts +10 -0
  497. package/2/apps/native/src/features/wake-word/hooks/use-wake-word.ts +181 -0
  498. package/2/apps/native/src/features/wake-word/index.ts +22 -0
  499. package/2/apps/native/src/features/wake-word/services/audio-session.ts +40 -0
  500. package/2/apps/native/src/features/wake-word/services/event-bus.ts +31 -0
  501. package/2/apps/native/src/features/wake-word/services/keywords.ts +88 -0
  502. package/2/apps/native/src/features/wake-word/services/wake-word-manager.ts +249 -0
  503. package/2/apps/native/src/features/wake-word/types.ts +22 -0
  504. package/2/apps/native/src/lib/env.js +13 -0
  505. package/2/apps/native/src/lib/hooks/index.tsx +6 -0
  506. package/2/apps/native/src/lib/hooks/use-device-identifier.tsx +80 -0
  507. package/2/apps/native/src/lib/hooks/use-gradual-animation.ts +28 -0
  508. package/2/apps/native/src/lib/hooks/use-is-first-time.tsx +25 -0
  509. package/2/apps/native/src/lib/hooks/use-navigation-analytics.ts +44 -0
  510. package/2/apps/native/src/lib/hooks/use-navigation-options.tsx +87 -0
  511. package/2/apps/native/src/lib/hooks/use-push-notifications.ts +250 -0
  512. package/2/apps/native/src/lib/hooks/use-responsive-size.tsx +37 -0
  513. package/2/apps/native/src/lib/hooks/use-selected-theme.tsx +38 -0
  514. package/2/apps/native/src/lib/hooks/use-viewport-lazy-loading.tsx +124 -0
  515. package/2/apps/native/src/lib/i18n/index.tsx +30 -0
  516. package/2/apps/native/src/lib/i18n/react-i18next.d.ts +9 -0
  517. package/2/apps/native/src/lib/i18n/resources.ts +25 -0
  518. package/2/apps/native/src/lib/i18n/types.ts +23 -0
  519. package/2/apps/native/src/lib/i18n/utils.tsx +112 -0
  520. package/2/apps/native/src/lib/index.tsx +3 -0
  521. package/2/apps/native/src/lib/state/auth-client-slice.ts +34 -0
  522. package/2/apps/native/src/lib/state/index.ts +1 -0
  523. package/2/apps/native/src/lib/storage.tsx +7 -0
  524. package/2/apps/native/src/lib/test-utils.tsx +43 -0
  525. package/2/apps/native/src/lib/use-theme-config.tsx +108 -0
  526. package/2/apps/native/src/lib/utils.ts +29 -0
  527. package/2/apps/native/src/polyfills.ts +61 -0
  528. package/2/apps/native/src/providers/convex-provider.tsx +31 -0
  529. package/2/apps/native/src/providers/index.tsx +6 -0
  530. package/2/apps/native/src/providers/notification-provider.tsx +168 -0
  531. package/2/apps/native/src/providers/posthog-provider.tsx +47 -0
  532. package/2/apps/native/src/providers/root-providers.tsx +46 -0
  533. package/2/apps/native/src/providers/sentry-provider.tsx +62 -0
  534. package/2/apps/native/src/providers/splash-screen-provider.tsx +122 -0
  535. package/2/apps/native/src/providers/theme-provider.tsx +67 -0
  536. package/2/apps/native/src/translations/ar.json +394 -0
  537. package/2/apps/native/src/translations/de.json +394 -0
  538. package/2/apps/native/src/translations/en.json +394 -0
  539. package/2/apps/native/src/translations/es.json +394 -0
  540. package/2/apps/native/src/translations/fr.json +394 -0
  541. package/2/apps/native/src/types/flash-list.d.ts +3 -0
  542. package/2/apps/native/src/types/index.ts +3 -0
  543. package/2/apps/native/src/types/react-native-reanimated.d.ts +5 -0
  544. package/2/apps/native/tailwind.config.js +57 -0
  545. package/2/apps/native/targets/widget/AppIntent.swift +46 -0
  546. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
  547. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
  548. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
  549. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
  550. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
  551. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
  552. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
  553. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
  554. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
  555. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
  556. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
  557. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
  558. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
  559. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
  560. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +122 -0
  561. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
  562. package/2/apps/native/targets/widget/CalorieTrackerWidget.swift +424 -0
  563. package/2/apps/native/targets/widget/HabitTrackerWidget.swift +305 -0
  564. package/2/apps/native/targets/widget/Info.plist +11 -0
  565. package/2/apps/native/targets/widget/WidgetLiveActivity.swift +75 -0
  566. package/2/apps/native/targets/widget/expo-target.config.js +10 -0
  567. package/2/apps/native/targets/widget/generated.entitlements +5 -0
  568. package/2/apps/native/targets/widget/index.swift +18 -0
  569. package/2/apps/native/targets/widget/widgets.swift +96 -0
  570. package/2/apps/native/tsconfig.json +88 -0
  571. package/2/apps/native/vitest.config.mts +14 -0
  572. package/2/apps/web/README.md +36 -0
  573. package/2/apps/web/app/favicon.ico +0 -0
  574. package/2/apps/web/app/globals.css +122 -0
  575. package/2/apps/web/app/layout.tsx +38 -0
  576. package/2/apps/web/app/page.tsx +35 -0
  577. package/2/apps/web/app/users/page.tsx +301 -0
  578. package/2/apps/web/components/AdminDashboard.tsx +336 -0
  579. package/2/apps/web/components/AppleLogo.tsx +15 -0
  580. package/2/apps/web/components/GitHubLogo.tsx +11 -0
  581. package/2/apps/web/components/GoogleLogo.tsx +23 -0
  582. package/2/apps/web/components/Layout.tsx +77 -0
  583. package/2/apps/web/components/ThemeToggle.tsx +23 -0
  584. package/2/apps/web/components/UserMenu.tsx +66 -0
  585. package/2/apps/web/components/auth/CodeInput.tsx +24 -0
  586. package/2/apps/web/components/auth/ResetPasswordWithEmailCode.tsx +85 -0
  587. package/2/apps/web/components/auth/SignInFormEmailCode.tsx +72 -0
  588. package/2/apps/web/components/auth/SignInFormEmailLink.tsx +81 -0
  589. package/2/apps/web/components/auth/SignInFormPassword.tsx +17 -0
  590. package/2/apps/web/components/auth/SignInFormPasswordAndCustomField.tsx +42 -0
  591. package/2/apps/web/components/auth/SignInFormPasswordAndResetViaCode.tsx +32 -0
  592. package/2/apps/web/components/auth/SignInFormPasswordAndVerifyViaCode.tsx +86 -0
  593. package/2/apps/web/components/auth/SignInFormPhoneCode.tsx +89 -0
  594. package/2/apps/web/components/auth/SignInFormsShowcase.tsx +64 -0
  595. package/2/apps/web/components/auth/SignInMethodDivider.tsx +17 -0
  596. package/2/apps/web/components/auth/SignInWithEmailCode.tsx +49 -0
  597. package/2/apps/web/components/auth/SignInWithOAuth.tsx +16 -0
  598. package/2/apps/web/components/auth/SignInWithPassword.tsx +100 -0
  599. package/2/apps/web/components/auth/oauth/SignInWithApple.tsx +27 -0
  600. package/2/apps/web/components/auth/oauth/SignInWithGitHub.tsx +27 -0
  601. package/2/apps/web/components/auth/oauth/SignInWithGoogle.tsx +27 -0
  602. package/2/apps/web/components/ui/button.tsx +60 -0
  603. package/2/apps/web/components/ui/card.tsx +92 -0
  604. package/2/apps/web/components/ui/dialog.tsx +143 -0
  605. package/2/apps/web/components/ui/dropdown-menu.tsx +257 -0
  606. package/2/apps/web/components/ui/input-otp.tsx +77 -0
  607. package/2/apps/web/components/ui/input.tsx +21 -0
  608. package/2/apps/web/components/ui/skeleton.tsx +13 -0
  609. package/2/apps/web/components/ui/tabs.tsx +66 -0
  610. package/2/apps/web/components/ui/toast.tsx +130 -0
  611. package/2/apps/web/components/ui/toaster.tsx +36 -0
  612. package/2/apps/web/components/ui/toggle-group.tsx +83 -0
  613. package/2/apps/web/components/ui/toggle.tsx +47 -0
  614. package/2/apps/web/components/ui/use-toast.ts +192 -0
  615. package/2/apps/web/components.json +22 -0
  616. package/2/apps/web/eslint.config.mjs +18 -0
  617. package/2/apps/web/lib/convex-provider.tsx +18 -0
  618. package/2/apps/web/lib/utils.ts +6 -0
  619. package/2/apps/web/next.config.ts +7 -0
  620. package/2/apps/web/package.json +46 -0
  621. package/2/apps/web/postcss.config.mjs +7 -0
  622. package/2/apps/web/public/file.svg +1 -0
  623. package/2/apps/web/public/globe.svg +1 -0
  624. package/2/apps/web/public/next.svg +1 -0
  625. package/2/apps/web/public/vercel.svg +1 -0
  626. package/2/apps/web/public/window.svg +1 -0
  627. package/2/apps/web/tsconfig.json +34 -0
  628. package/2/bts.jsonc +21 -0
  629. package/2/commitlint.config.js +1 -0
  630. package/2/eslint.config.mjs +182 -0
  631. package/2/lint-staged.config.js +16 -0
  632. package/2/package.json +64 -0
  633. package/2/packages/backend/.env.example +20 -0
  634. package/2/packages/backend/convex/README.md +90 -0
  635. package/2/packages/backend/convex/_generated/api.d.ts +2599 -0
  636. package/2/packages/backend/convex/_generated/api.js +23 -0
  637. package/2/packages/backend/convex/_generated/dataModel.d.ts +60 -0
  638. package/2/packages/backend/convex/_generated/server.d.ts +149 -0
  639. package/2/packages/backend/convex/_generated/server.js +90 -0
  640. package/2/packages/backend/convex/agents.ts +116 -0
  641. package/2/packages/backend/convex/auth.config.ts +8 -0
  642. package/2/packages/backend/convex/auth.ts +103 -0
  643. package/2/packages/backend/convex/authCustomEmailOtpProvider.ts +175 -0
  644. package/2/packages/backend/convex/authOtp.ts +144 -0
  645. package/2/packages/backend/convex/authPasswordReset.ts +367 -0
  646. package/2/packages/backend/convex/authPasswordResetActions.ts +150 -0
  647. package/2/packages/backend/convex/chatbot/index.ts +30 -0
  648. package/2/packages/backend/convex/chatbotAgent.ts +1085 -0
  649. package/2/packages/backend/convex/chatbotHistory.ts +307 -0
  650. package/2/packages/backend/convex/convex.config.ts +13 -0
  651. package/2/packages/backend/convex/deviceGrants.ts +58 -0
  652. package/2/packages/backend/convex/grantFunctions.ts +444 -0
  653. package/2/packages/backend/convex/http.ts +8 -0
  654. package/2/packages/backend/convex/imageAnalysis/index.ts +18 -0
  655. package/2/packages/backend/convex/imageAnalysisFunctions.ts +325 -0
  656. package/2/packages/backend/convex/imageGeneration/index.ts +12 -0
  657. package/2/packages/backend/convex/imageGeneratorFunctions.ts +290 -0
  658. package/2/packages/backend/convex/lib/ai/analysisConfigs.ts +257 -0
  659. package/2/packages/backend/convex/lib/ai/config.ts +71 -0
  660. package/2/packages/backend/convex/lib/ai/geminiAdapter.ts +43 -0
  661. package/2/packages/backend/convex/lib/ai/imageAnalysisAdapter.ts +200 -0
  662. package/2/packages/backend/convex/lib/ai/openaiAdapter.ts +43 -0
  663. package/2/packages/backend/convex/lib/ai/schemas.ts +79 -0
  664. package/2/packages/backend/convex/lib/config.ts +111 -0
  665. package/2/packages/backend/convex/lib/rateLimit.ts +100 -0
  666. package/2/packages/backend/convex/lib/telemetry.ts +29 -0
  667. package/2/packages/backend/convex/paymentFunctions.ts +119 -0
  668. package/2/packages/backend/convex/payments/index.ts +13 -0
  669. package/2/packages/backend/convex/pushNotificationFunctions.ts +342 -0
  670. package/2/packages/backend/convex/ragKnowledge.ts +714 -0
  671. package/2/packages/backend/convex/rateLimit.ts +13 -0
  672. package/2/packages/backend/convex/recordingFunctions.ts +98 -0
  673. package/2/packages/backend/convex/reportFunctions.ts +344 -0
  674. package/2/packages/backend/convex/reporting/index.ts +9 -0
  675. package/2/packages/backend/convex/router.ts +81 -0
  676. package/2/packages/backend/convex/schema.ts +237 -0
  677. package/2/packages/backend/convex/shared/email.ts +172 -0
  678. package/2/packages/backend/convex/shared/files.ts +96 -0
  679. package/2/packages/backend/convex/shared/index.ts +17 -0
  680. package/2/packages/backend/convex/shared/templates/PasswordResetEmail.tsx +72 -0
  681. package/2/packages/backend/convex/shared/templates/VerificationCodeEmail.tsx +65 -0
  682. package/2/packages/backend/convex/sharedUsers.ts +48 -0
  683. package/2/packages/backend/convex/tools/index.ts +18 -0
  684. package/2/packages/backend/convex/tools/knowledgeRetrieval.ts +92 -0
  685. package/2/packages/backend/convex/tools/tavilySearch.ts +83 -0
  686. package/2/packages/backend/convex/tools/userProfile.ts +72 -0
  687. package/2/packages/backend/convex/tsconfig.json +25 -0
  688. package/2/packages/backend/convex/users.ts +54 -0
  689. package/2/packages/backend/index.ts +20 -0
  690. package/2/packages/backend/package.json +32 -0
  691. package/2/packages/ui/README.md +63 -0
  692. package/2/packages/ui/index.ts +1 -0
  693. package/2/packages/ui/package.json +21 -0
  694. package/2/packages/ui/src/components/SharedButton.tsx +31 -0
  695. package/2/packages/ui/src/components/SharedCard.tsx +48 -0
  696. package/2/packages/ui/src/components/index.ts +2 -0
  697. package/2/packages/ui/tsconfig.json +10 -0
  698. package/2/pnpm-lock.yaml +23292 -0
  699. package/2/pnpm-workspace.yaml +3 -0
  700. package/2/scripts/i18next-syntax-validation.js +1 -0
  701. package/2/tsconfig.json +43 -0
  702. package/2/turbo.json +33 -0
  703. package/2/vercel.json +6 -0
  704. package/2/vf-agent/agent-teams/team-vibefast.yaml +14 -0
  705. package/2/vf-agent/agents/analyst.md +53 -0
  706. package/2/vf-agent/agents/architect.md +105 -0
  707. package/2/vf-agent/agents/dev.md +40 -0
  708. package/2/vf-agent/agents/orchestrator.md +181 -0
  709. package/2/vf-agent/agents/pm.md +48 -0
  710. package/2/vf-agent/agents/po.md +38 -0
  711. package/2/vf-agent/agents/qa.md +30 -0
  712. package/2/vf-agent/agents/sm.md +38 -0
  713. package/2/vf-agent/agents/ux-expert.md +33 -0
  714. package/2/vf-agent/checklists/po-master-checklist.md +73 -0
  715. package/2/vf-agent/checklists/story-dod-checklist.md +37 -0
  716. package/2/vf-agent/core-config.yaml +43 -0
  717. package/2/vf-agent/data/knowledge_base/backend/convex-advanced.md +43 -0
  718. package/2/vf-agent/data/knowledge_base/backend/convex-database.md +53 -0
  719. package/2/vf-agent/data/knowledge_base/backend/convex-main.md +65 -0
  720. package/2/vf-agent/data/knowledge_base/backend/full-guidelines.md +795 -0
  721. package/2/vf-agent/data/knowledge_base/coding-standards.md +253 -0
  722. package/2/vf-agent/data/knowledge_base/frontend/full-guidelines.md +254 -0
  723. package/2/vf-agent/data/knowledge_base/frontend/image-handling.md +48 -0
  724. package/2/vf-agent/data/knowledge_base/frontend/react-native-main.md +24 -0
  725. package/2/vf-agent/data/knowledge_base/frontend/ui-and-styling.md +169 -0
  726. package/2/vf-agent/data/knowledge_base/general-principles.md +26 -0
  727. package/2/vf-agent/data/knowledge_base/master-rulebook.md +42 -0
  728. package/2/vf-agent/data/knowledge_base/starter-docs/audio-recorder-reference.md +98 -0
  729. package/2/vf-agent/data/knowledge_base/starter-docs/authentication-reference.md +155 -0
  730. package/2/vf-agent/data/knowledge_base/starter-docs/charts-reference.md +149 -0
  731. package/2/vf-agent/data/knowledge_base/starter-docs/chatbot-reference.md +123 -0
  732. package/2/vf-agent/data/knowledge_base/starter-docs/feature-reference-index.md +211 -0
  733. package/2/vf-agent/data/knowledge_base/starter-docs/features-overview.md +221 -0
  734. package/2/vf-agent/data/knowledge_base/starter-docs/image-analyzer-reference.md +118 -0
  735. package/2/vf-agent/data/knowledge_base/starter-docs/image-generator-reference.md +110 -0
  736. package/2/vf-agent/data/knowledge_base/starter-docs/index.md +28 -0
  737. package/2/vf-agent/data/knowledge_base/starter-docs/onboarding-reference.md +96 -0
  738. package/2/vf-agent/data/knowledge_base/starter-docs/payments-reference.md +148 -0
  739. package/2/vf-agent/data/knowledge_base/starter-docs/prd.md +82 -0
  740. package/2/vf-agent/data/knowledge_base/starter-docs/push-notifications-reference.md +453 -0
  741. package/2/vf-agent/data/knowledge_base/starter-docs/quick-actions-reference.md +253 -0
  742. package/2/vf-agent/data/knowledge_base/starter-docs/quiz-reference.md +169 -0
  743. package/2/vf-agent/data/knowledge_base/starter-docs/settings-reference.md +146 -0
  744. package/2/vf-agent/data/knowledge_base/starter-docs/tech-stack.md +159 -0
  745. package/2/vf-agent/data/knowledge_base/starter-docs/tracker-app-reference.md +150 -0
  746. package/2/vf-agent/data/knowledge_base/starter-docs/unified-project-structure.md +98 -0
  747. package/2/vf-agent/data/knowledge_base/testing/backend-testing.md +54 -0
  748. package/2/vf-agent/data/knowledge_base/testing/frontend-testing.md +71 -0
  749. package/2/vf-agent/data/knowledge_base/testing/testing-strategy.md +31 -0
  750. package/2/vf-agent/tasks/advanced-elicitation.md +117 -0
  751. package/2/vf-agent/tasks/brownfield-create-epic.md +160 -0
  752. package/2/vf-agent/tasks/create-deep-research-prompt.md +278 -0
  753. package/2/vf-agent/tasks/create-doc.md +42 -0
  754. package/2/vf-agent/tasks/create-story.md +43 -0
  755. package/2/vf-agent/tasks/document-project.md +343 -0
  756. package/2/vf-agent/tasks/facilitate-brainstorming-session.md +136 -0
  757. package/2/vf-agent/tasks/index-docs.md +173 -0
  758. package/2/vf-agent/tasks/kb-mode-interaction.md +75 -0
  759. package/2/vf-agent/tasks/review-story.md +154 -0
  760. package/2/vf-agent/tasks/shard-doc.md +185 -0
  761. package/2/vf-agent/tasks/troubleshoot-issue.md +65 -0
  762. package/2/vf-agent/tasks/validate-next-story.md +47 -0
  763. package/2/vf-agent/templates/brainstorming-output-tmpl.yaml +156 -0
  764. package/2/vf-agent/templates/brownfield-architecture-tmpl.yaml +111 -0
  765. package/2/vf-agent/templates/brownfield-prd-tmpl.yaml +247 -0
  766. package/2/vf-agent/templates/competitor-analysis-tmpl.yaml +293 -0
  767. package/2/vf-agent/templates/market-research-tmpl.yaml +252 -0
  768. package/2/vf-agent/templates/project-brief-tmpl.yaml +221 -0
  769. package/2/vf-agent/templates/story-tmpl.yaml +143 -0
  770. package/BEFORE-AFTER.md +327 -0
  771. package/CHANGELOG.md +73 -0
  772. package/CLI-ROADMAP.md +415 -0
  773. package/COMMAND-REFERENCE.md +341 -0
  774. package/IMPLEMENTATION-STATUS.md +316 -0
  775. package/MANUAL-TEST-CHECKLIST.md +264 -0
  776. package/OPTIONS-GLOSSARY.md +308 -0
  777. package/PHASE-1-2-3-COMPLETE.md +435 -0
  778. package/PHASE-1-2-IMPLEMENTATION.md +280 -0
  779. package/PHASE-1-2-SUMMARY.md +183 -0
  780. package/QUICK-START.md +352 -0
  781. package/RECIPES-GUIDE.md +325 -0
  782. package/RELEASE-CHECKLIST.md +269 -0
  783. package/VF-INIT-FLOW.md +446 -0
  784. package/dist/commands/add.d.ts.map +1 -1
  785. package/dist/commands/add.js +328 -66
  786. package/dist/commands/add.js.map +1 -1
  787. package/dist/commands/checklist.d.ts.map +1 -1
  788. package/dist/commands/checklist.js +69 -5
  789. package/dist/commands/checklist.js.map +1 -1
  790. package/dist/commands/env.d.ts +3 -0
  791. package/dist/commands/env.d.ts.map +1 -0
  792. package/dist/commands/env.js +130 -0
  793. package/dist/commands/env.js.map +1 -0
  794. package/dist/commands/health.d.ts +3 -0
  795. package/dist/commands/health.d.ts.map +1 -0
  796. package/dist/commands/health.js +214 -0
  797. package/dist/commands/health.js.map +1 -0
  798. package/dist/commands/init.d.ts +3 -0
  799. package/dist/commands/init.d.ts.map +1 -0
  800. package/dist/commands/init.js +310 -0
  801. package/dist/commands/init.js.map +1 -0
  802. package/dist/commands/list.d.ts.map +1 -1
  803. package/dist/commands/list.js +36 -16
  804. package/dist/commands/list.js.map +1 -1
  805. package/dist/commands/login.d.ts.map +1 -1
  806. package/dist/commands/login.js +5 -0
  807. package/dist/commands/login.js.map +1 -1
  808. package/dist/commands/remove.d.ts.map +1 -1
  809. package/dist/commands/remove.js +11 -0
  810. package/dist/commands/remove.js.map +1 -1
  811. package/dist/core/__tests__/detect.test.d.ts +2 -0
  812. package/dist/core/__tests__/detect.test.d.ts.map +1 -0
  813. package/dist/core/__tests__/detect.test.js +73 -0
  814. package/dist/core/__tests__/detect.test.js.map +1 -0
  815. package/dist/core/detect.d.ts +10 -0
  816. package/dist/core/detect.d.ts.map +1 -0
  817. package/dist/core/detect.js +58 -0
  818. package/dist/core/detect.js.map +1 -0
  819. package/dist/core/env.d.ts +24 -0
  820. package/dist/core/env.d.ts.map +1 -0
  821. package/dist/core/env.js +83 -0
  822. package/dist/core/env.js.map +1 -0
  823. package/dist/core/errors.d.ts +13 -0
  824. package/dist/core/errors.d.ts.map +1 -0
  825. package/dist/core/errors.js +111 -0
  826. package/dist/core/errors.js.map +1 -0
  827. package/dist/core/prompt.d.ts +46 -2
  828. package/dist/core/prompt.d.ts.map +1 -1
  829. package/dist/core/prompt.js +179 -15
  830. package/dist/core/prompt.js.map +1 -1
  831. package/dist/core/prompts.d.ts +23 -0
  832. package/dist/core/prompts.d.ts.map +1 -0
  833. package/dist/core/prompts.js +85 -0
  834. package/dist/core/prompts.js.map +1 -0
  835. package/dist/core/recipes.d.ts +31 -0
  836. package/dist/core/recipes.d.ts.map +1 -0
  837. package/dist/core/recipes.js +138 -0
  838. package/dist/core/recipes.js.map +1 -0
  839. package/dist/core/spinner.d.ts +20 -0
  840. package/dist/core/spinner.d.ts.map +1 -0
  841. package/dist/core/spinner.js +72 -0
  842. package/dist/core/spinner.js.map +1 -0
  843. package/dist/core/vosk.d.ts +7 -0
  844. package/dist/core/vosk.d.ts.map +1 -0
  845. package/dist/core/vosk.js +94 -0
  846. package/dist/core/vosk.js.map +1 -0
  847. package/dist/index.js +40 -0
  848. package/dist/index.js.map +1 -1
  849. package/package.json +6 -1
  850. package/recipes/README.md +156 -0
  851. package/recipes/image-analysis/recipe.json +61 -0
  852. package/recipes/image-analysis@latest.zip +0 -0
  853. package/recipes/image-generator/recipe.json +7 -12
  854. package/recipes/posthog.json +46 -0
  855. package/recipes/revenuecat.json +43 -0
  856. package/recipes/sentry.json +46 -0
  857. package/recipes/voice-bot/recipe.json +10 -7
  858. package/recipes/wake-word/apps/native/assets/vosk-model/README.md +103 -0
  859. package/recipes/wake-word/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +216 -0
  860. package/recipes/wake-word/apps/native/src/features/wake-word/components/index.ts +1 -0
  861. package/recipes/wake-word/apps/native/src/features/wake-word/components/wake-word-indicator.tsx +61 -0
  862. package/recipes/wake-word/apps/native/src/features/wake-word/constants.ts +10 -0
  863. package/recipes/wake-word/apps/native/src/features/wake-word/hooks/use-wake-word.ts +181 -0
  864. package/recipes/wake-word/apps/native/src/features/wake-word/index.ts +22 -0
  865. package/recipes/wake-word/apps/native/src/features/wake-word/services/audio-session.ts +40 -0
  866. package/recipes/wake-word/apps/native/src/features/wake-word/services/event-bus.ts +31 -0
  867. package/recipes/wake-word/apps/native/src/features/wake-word/services/keywords.ts +88 -0
  868. package/recipes/wake-word/apps/native/src/features/wake-word/services/wake-word-manager.ts +249 -0
  869. package/recipes/wake-word/apps/native/src/features/wake-word/types.ts +22 -0
  870. package/recipes/wake-word/recipe.json +50 -0
  871. package/recipes/wake-word/scripts/download-vosk-model.mjs +121 -0
  872. package/recipes/wake-word@latest.zip +0 -0
  873. package/scripts/sync-recipes.js +93 -0
  874. package/src/commands/add.ts +401 -68
  875. package/src/commands/checklist.ts +81 -6
  876. package/src/commands/env.ts +163 -0
  877. package/src/commands/health.ts +225 -0
  878. package/src/commands/init.ts +390 -0
  879. package/src/commands/list.ts +42 -16
  880. package/src/commands/login.ts +6 -0
  881. package/src/commands/remove.ts +12 -0
  882. package/src/core/__tests__/detect.test.ts +91 -0
  883. package/src/core/detect.ts +60 -0
  884. package/src/core/env.ts +109 -0
  885. package/src/core/errors.ts +122 -0
  886. package/src/core/prompt.ts +227 -16
  887. package/src/core/prompts.ts +115 -0
  888. package/src/core/recipes.ts +152 -0
  889. package/src/core/spinner.ts +87 -0
  890. package/src/core/vosk.ts +111 -0
  891. package/src/index.ts +50 -0
  892. package/test-locally.sh +145 -0
@@ -0,0 +1,247 @@
1
+ template:
2
+ id: brownfield-prd-template-v2
3
+ name: Product Requirements Document
4
+ version: 2.0
5
+ output:
6
+ format: markdown
7
+ filename: docs/prd.md
8
+ title: '{{project_name}} Product Requirements Document (PRD)'
9
+
10
+ workflow:
11
+ mode: interactive
12
+ elicitation: advanced-elicitation
13
+
14
+ sections:
15
+ - id: goals-context
16
+ title: Goals and Background Context
17
+ instruction: |
18
+ Ask if Project Brief document is available. If NO Project Brief exists, STRONGLY recommend creating one first using project-brief-tmpl (it provides essential foundation: problem statement, target users, success metrics, MVP scope, constraints). If user insists on PRD without brief, gather this information during Goals section. If Project Brief exists, review and use it to populate Goals (bullet list of desired outcomes) and Background Context (1-2 paragraphs on what this solves and why) so we can determine what is and is not in scope for PRD mvp. Either way this is critical to determine the requirements. Include Change Log table.
19
+ sections:
20
+ - id: goals
21
+ title: Goals
22
+ type: bullet-list
23
+ instruction: Bullet list of 1 line desired outcomes the PRD will deliver if successful - user and project desires
24
+ - id: background
25
+ title: Background Context
26
+ type: paragraphs
27
+ instruction: 1-2 short paragraphs summarizing the background context, such as what we learned in the brief without being redundant with the goals, what and why this solves a problem, what the current landscape or need is
28
+ - id: changelog
29
+ title: Change Log
30
+ type: table
31
+ columns: [Date, Version, Description, Author]
32
+ instruction: Track document versions and changes
33
+
34
+ - id: existing-feature-integration
35
+ title: Existing Feature Integration
36
+ instruction: |
37
+ CRITICAL: Before defining new requirements, you must first analyze the VibeFast starter kit's built-in features. Consult `starter-docs/feature-reference-index.md`. In this section, create a list of all existing features (e.g., Authentication, Payments, AI Chatbot) that will be used, configured, or leveraged to meet the goals of this PRD. This prevents re-planning work that is already done.
38
+ elicit: true
39
+ type: bullet-list
40
+ template: "- **{{feature_name}}:** {{how_it_will_be_used}}"
41
+
42
+ - id: requirements
43
+ title: Requirements
44
+ instruction: Draft the list of functional and non functional requirements under the two child sections
45
+ elicit: true
46
+ sections:
47
+ - id: functional
48
+ title: Functional
49
+ type: numbered-list
50
+ prefix: FR
51
+ instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with FR
52
+ examples:
53
+ - 'FR6: The Todo List uses AI to detect and warn against potentially duplicate todo items that are worded differently.'
54
+ - id: non-functional
55
+ title: Non Functional
56
+ type: numbered-list
57
+ prefix: NFR
58
+ instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with NFR
59
+ examples:
60
+ - 'NFR1: AWS service usage must aim to stay within free-tier limits where feasible.'
61
+
62
+ - id: ui-goals
63
+ title: User Interface Design Goals
64
+ condition: PRD has UX/UI requirements
65
+ instruction: |
66
+ Capture high-level UI/UX vision to guide Design Architect and to inform story creation. Steps:
67
+
68
+ 1. Pre-fill all subsections with educated guesses based on project context
69
+ 2. Present the complete rendered section to user
70
+ 3. Clearly let the user know where assumptions were made
71
+ 4. Ask targeted questions for unclear/missing elements or areas needing more specification
72
+ 5. This is NOT detailed UI spec - focus on product vision and user goals
73
+ elicit: true
74
+ choices:
75
+ accessibility: [None, WCAG AA, WCAG AAA]
76
+ platforms: [Web Responsive, Mobile Only, Desktop Only, Cross-Platform]
77
+ sections:
78
+ - id: ux-vision
79
+ title: Overall UX Vision
80
+ - id: interaction-paradigms
81
+ title: Key Interaction Paradigms
82
+ - id: core-screens
83
+ title: Core Screens and Views
84
+ instruction: From a product perspective, what are the most critical screens or views necessary to deliver the the PRD values and goals? This is meant to be Conceptual High Level to Drive Rough Epic or User Stories
85
+ examples:
86
+ - 'Login Screen'
87
+ - 'Main Dashboard'
88
+ - 'Item Detail Page'
89
+ - 'Settings Page'
90
+ - id: accessibility
91
+ title: 'Accessibility: {None|WCAG AA|WCAG AAA|Custom Requirements}'
92
+ - id: branding
93
+ title: Branding
94
+ instruction: Any known branding elements or style guides that must be incorporated?
95
+ examples:
96
+ - 'Replicate the look and feel of early 1900s black and white cinema, including animated effects replicating film damage or projector glitches during page or state transitions.'
97
+ - 'Attached is the full color pallet and tokens for our corporate branding.'
98
+ - id: target-platforms
99
+ title: 'Target Device and Platforms: {Web Responsive|Mobile Only|Desktop Only|Cross-Platform}'
100
+ examples:
101
+ - 'Web Responsive, and all mobile platforms'
102
+ - 'iPhone Only'
103
+ - 'ASCII Windows Desktop'
104
+
105
+ - id: technical-assumptions
106
+ title: Technical Assumptions
107
+ instruction: |
108
+ Gather technical decisions that will guide the Architect. Steps:
109
+
110
+ 1. Check if {root}/data/technical-preferences.yaml or an attached technical-preferences file exists - use it to pre-populate choices
111
+ 2. Ask user about: languages, frameworks, starter templates, libraries, APIs, deployment targets
112
+ 3. For unknowns, offer guidance based on project goals and MVP scope
113
+ 4. Document ALL technical choices with rationale (why this choice fits the project)
114
+ 5. These become constraints for the Architect - be specific and complete
115
+ elicit: true
116
+ choices:
117
+ repository: [Monorepo, Polyrepo]
118
+ architecture: [Monolith, Microservices, Serverless]
119
+ testing: [Unit Only, Unit + Integration, Full Testing Pyramid]
120
+ sections:
121
+ - id: repository-structure
122
+ title: 'Repository Structure: {Monorepo|Polyrepo|Multi-repo}'
123
+ - id: service-architecture
124
+ title: Service Architecture
125
+ instruction: 'CRITICAL DECISION - Document the high-level service architecture (e.g., Monolith, Microservices, Serverless functions within a Monorepo).'
126
+ - id: testing-requirements
127
+ title: Testing Requirements
128
+ instruction: 'CRITICAL DECISION - Document the testing requirements, unit only, integration, e2e, manual, need for manual testing convenience methods).'
129
+ - id: additional-assumptions
130
+ title: Additional Technical Assumptions and Requests
131
+ instruction: Throughout the entire process of drafting this document, if any other technical assumptions are raised or discovered appropriate for the architect, add them here as additional bulleted items
132
+
133
+ - id: core-app-structure
134
+ title: Core Application Structure
135
+ instruction: |
136
+ CRITICAL FOR SCAFFOLDING: Define the foundational structure of your new application. This will be used to automatically clean up the starter kit and set up your project.
137
+ 1. **Primary Navigation Tabs:** List the main tabs for your app's bottom navigation bar.
138
+ 2. **Core Features:** List the names of the main new features you will be building. These will become the top-level folders in `src/features/`.
139
+ 3. **Starter Features to Keep:** List any of the VibeFast demo features (e.g., "Chatbot", "Image Generator") that you want to KEEP in your final application. Any feature not listed here will be deleted.
140
+ elicit: true
141
+ sections:
142
+ - id: primary-navigation
143
+ title: Primary Navigation Tabs
144
+ type: numbered-list
145
+ instruction: List the primary tabs for the bottom navigator (e.g., "Dashboard", "Log Food", "Profile").
146
+ examples:
147
+ - 'Dashboard'
148
+ - 'Log Food'
149
+ - 'History'
150
+ - 'Profile'
151
+ - id: core-features
152
+ title: Core App Features
153
+ type: numbered-list
154
+ instruction: List the main feature domains of your new app (e.g., "food-logging", "user-dashboard", "recipe-browser").
155
+ examples:
156
+ - 'dashboard'
157
+ - 'food-logging'
158
+ - 'user-profile'
159
+ - 'recipe-browser'
160
+ - id: starter-features-to-keep
161
+ title: Starter Features to Keep
162
+ type: numbered-list
163
+ instruction: List ONLY the VibeFast demo features you want to keep (e.g., "Chatbot"). If none, leave blank.
164
+ examples:
165
+ - 'Chatbot'
166
+ - 'Image Analyzer'
167
+
168
+ - id: epic-list
169
+ title: Epic List
170
+ instruction: |
171
+ Present a high-level list of all epics for user approval. Each epic should have a title and a short (1 sentence) goal statement. This allows the user to review the overall structure before diving into details.
172
+
173
+ CRITICAL: Epics MUST be logically sequential following agile best practices:
174
+
175
+ - **Epic 1 (Foundation & Application Transformation):** This first epic is non-negotiable. It MUST include stories to:
176
+ 1. Establish foundational project infrastructure (CI/CD, etc.).
177
+ 2. **Decommission and remove the starter kit's demo home screen.**
178
+ 3. **Create the new, application-specific home screen** that provides immediate value to the end-user (e.g., a dashboard, a primary call-to-action).
179
+ 4. Implement the core authentication flow for the new app.
180
+ - Each subsequent epic builds upon this new foundation...
181
+ - Not every project needs multiple epics, an epic needs to deliver value. For example, an API completed can deliver value even if a UI is not complete and planned for a separate epic.
182
+ - Err on the side of less epics, but let the user know your rationale and offer options for splitting them if it seems some are too large or focused on disparate things.
183
+ - Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.
184
+ elicit: true
185
+ examples:
186
+ - 'Epic 1: Foundation & App Rebranding: Establish project setup, replace demo home screen, and implement basic user authentication.'
187
+ - 'Epic 2: Core Feature - [Feature Name]: Implement the primary business logic and UI for the core feature.'
188
+ - 'Epic 3: User Workflows & Interactions: Enable key user journeys and business processes.'
189
+
190
+ - id: epic-details
191
+ title: Epic {{epic_number}} {{epic_title}}
192
+ repeatable: true
193
+ instruction: |
194
+ After the epic list is approved, present each epic with all its stories and acceptance criteria as a complete review unit.
195
+
196
+ For each epic provide expanded goal (2-3 sentences describing the objective and value all the stories will achieve).
197
+
198
+ CRITICAL STORY SEQUENCING REQUIREMENTS:
199
+
200
+ - Stories within each epic MUST be logically sequential
201
+ - Each story should be a "vertical slice" delivering complete functionality aside from early enabler stories for project foundation
202
+ - No story should depend on work from a later story or epic
203
+ - Identify and note any direct prerequisite stories
204
+ - Focus on "what" and "why" not "how" (leave technical implementation to Architect) yet be precise enough to support a logical sequential order of operations from story to story.
205
+ - Ensure each story delivers clear user or business value, try to avoid enablers and build them into stories that deliver value.
206
+ - Size stories for AI agent execution: Each story must be completable by a single AI agent in one focused session without context overflow
207
+ - Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
208
+ - If a story seems complex, break it down further as long as it can deliver a vertical slice
209
+ elicit: true
210
+ template: '{{epic_goal}}'
211
+ sections:
212
+ - id: story
213
+ title: Story {{epic_number}}.{{story_number}} {{story_title}}
214
+ repeatable: true
215
+ template: |
216
+ As a {{user_type}},
217
+ I want {{action}},
218
+ so that {{benefit}}.
219
+ sections:
220
+ - id: acceptance-criteria
221
+ title: Acceptance Criteria
222
+ type: numbered-list
223
+ item_template: '{{criterion_number}}: {{criteria}}'
224
+ repeatable: true
225
+ instruction: |
226
+ Define clear, comprehensive, and testable acceptance criteria that:
227
+
228
+ - Precisely define what "done" means from a functional perspective
229
+ - Are unambiguous and serve as basis for verification
230
+ - Include any critical non-functional requirements from the PRD
231
+ - Consider local testability for backend/data components
232
+ - Specify UI/UX requirements and framework adherence where applicable
233
+ - Avoid cross-cutting concerns that should be in other stories or PRD sections
234
+
235
+ - id: checklist-results
236
+ title: Checklist Results Report
237
+ instruction: Before running the checklist and drafting the prompts, offer to output the full updated PRD. If outputting it, confirm with the user that you will be proceeding to run the checklist and produce the report. Once the user confirms, execute the pm-checklist and populate the results in this section.
238
+
239
+ - id: next-steps
240
+ title: Next Steps
241
+ sections:
242
+ - id: ux-expert-prompt
243
+ title: UX Expert Prompt
244
+ instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
245
+ - id: architect-prompt
246
+ title: Architect Prompt
247
+ instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
@@ -0,0 +1,293 @@
1
+ template:
2
+ id: competitor-analysis-template-v2
3
+ name: Competitive Analysis Report
4
+ version: 2.0
5
+ output:
6
+ format: markdown
7
+ filename: docs/competitor-analysis.md
8
+ title: "Competitive Analysis Report: {{project_product_name}}"
9
+
10
+ workflow:
11
+ mode: interactive
12
+ elicitation: advanced-elicitation
13
+ custom_elicitation:
14
+ title: "Competitive Analysis Elicitation Actions"
15
+ options:
16
+ - "Deep dive on a specific competitor's strategy"
17
+ - "Analyze competitive dynamics in a specific segment"
18
+ - "War game competitive responses to your moves"
19
+ - "Explore partnership vs. competition scenarios"
20
+ - "Stress test differentiation claims"
21
+ - "Analyze disruption potential (yours or theirs)"
22
+ - "Compare to competition in adjacent markets"
23
+ - "Generate win/loss analysis insights"
24
+ - "If only we had known about [competitor X's plan]..."
25
+ - "Proceed to next section"
26
+
27
+ sections:
28
+ - id: executive-summary
29
+ title: Executive Summary
30
+ instruction: Provide high-level competitive insights, main threats and opportunities, and recommended strategic actions. Write this section LAST after completing all analysis.
31
+
32
+ - id: analysis-scope
33
+ title: Analysis Scope & Methodology
34
+ instruction: This template guides comprehensive competitor analysis. Start by understanding the user's competitive intelligence needs and strategic objectives. Help them identify and prioritize competitors before diving into detailed analysis.
35
+ sections:
36
+ - id: analysis-purpose
37
+ title: Analysis Purpose
38
+ instruction: |
39
+ Define the primary purpose:
40
+ - New market entry assessment
41
+ - Product positioning strategy
42
+ - Feature gap analysis
43
+ - Pricing strategy development
44
+ - Partnership/acquisition targets
45
+ - Competitive threat assessment
46
+ - id: competitor-categories
47
+ title: Competitor Categories Analyzed
48
+ instruction: |
49
+ List categories included:
50
+ - Direct Competitors: Same product/service, same target market
51
+ - Indirect Competitors: Different product, same need/problem
52
+ - Potential Competitors: Could enter market easily
53
+ - Substitute Products: Alternative solutions
54
+ - Aspirational Competitors: Best-in-class examples
55
+ - id: research-methodology
56
+ title: Research Methodology
57
+ instruction: |
58
+ Describe approach:
59
+ - Information sources used
60
+ - Analysis timeframe
61
+ - Confidence levels
62
+ - Limitations
63
+
64
+ - id: competitive-landscape
65
+ title: Competitive Landscape Overview
66
+ sections:
67
+ - id: market-structure
68
+ title: Market Structure
69
+ instruction: |
70
+ Describe the competitive environment:
71
+ - Number of active competitors
72
+ - Market concentration (fragmented/consolidated)
73
+ - Competitive dynamics
74
+ - Recent market entries/exits
75
+ - id: prioritization-matrix
76
+ title: Competitor Prioritization Matrix
77
+ instruction: |
78
+ Help categorize competitors by market share and strategic threat level
79
+
80
+ Create a 2x2 matrix:
81
+ - Priority 1 (Core Competitors): High Market Share + High Threat
82
+ - Priority 2 (Emerging Threats): Low Market Share + High Threat
83
+ - Priority 3 (Established Players): High Market Share + Low Threat
84
+ - Priority 4 (Monitor Only): Low Market Share + Low Threat
85
+
86
+ - id: competitor-profiles
87
+ title: Individual Competitor Profiles
88
+ instruction: Create detailed profiles for each Priority 1 and Priority 2 competitor. For Priority 3 and 4, create condensed profiles.
89
+ repeatable: true
90
+ sections:
91
+ - id: competitor
92
+ title: "{{competitor_name}} - Priority {{priority_level}}"
93
+ sections:
94
+ - id: company-overview
95
+ title: Company Overview
96
+ template: |
97
+ - **Founded:** {{year_founders}}
98
+ - **Headquarters:** {{location}}
99
+ - **Company Size:** {{employees_revenue}}
100
+ - **Funding:** {{total_raised_investors}}
101
+ - **Leadership:** {{key_executives}}
102
+ - id: business-model
103
+ title: Business Model & Strategy
104
+ template: |
105
+ - **Revenue Model:** {{revenue_model}}
106
+ - **Target Market:** {{customer_segments}}
107
+ - **Value Proposition:** {{value_promise}}
108
+ - **Go-to-Market Strategy:** {{gtm_approach}}
109
+ - **Strategic Focus:** {{current_priorities}}
110
+ - id: product-analysis
111
+ title: Product/Service Analysis
112
+ template: |
113
+ - **Core Offerings:** {{main_products}}
114
+ - **Key Features:** {{standout_capabilities}}
115
+ - **User Experience:** {{ux_assessment}}
116
+ - **Technology Stack:** {{tech_stack}}
117
+ - **Pricing:** {{pricing_model}}
118
+ - id: strengths-weaknesses
119
+ title: Strengths & Weaknesses
120
+ sections:
121
+ - id: strengths
122
+ title: Strengths
123
+ type: bullet-list
124
+ template: "- {{strength}}"
125
+ - id: weaknesses
126
+ title: Weaknesses
127
+ type: bullet-list
128
+ template: "- {{weakness}}"
129
+ - id: market-position
130
+ title: Market Position & Performance
131
+ template: |
132
+ - **Market Share:** {{market_share_estimate}}
133
+ - **Customer Base:** {{customer_size_notables}}
134
+ - **Growth Trajectory:** {{growth_trend}}
135
+ - **Recent Developments:** {{key_news}}
136
+
137
+ - id: comparative-analysis
138
+ title: Comparative Analysis
139
+ sections:
140
+ - id: feature-comparison
141
+ title: Feature Comparison Matrix
142
+ instruction: Create a detailed comparison table of key features across competitors
143
+ type: table
144
+ columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"]
145
+ rows:
146
+ - category: "Core Functionality"
147
+ items:
148
+ - ["Feature A", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
149
+ - ["Feature B", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
150
+ - category: "User Experience"
151
+ items:
152
+ - ["Mobile App", "{{rating}}", "{{rating}}", "{{rating}}", "{{rating}}"]
153
+ - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
154
+ - category: "Integration & Ecosystem"
155
+ items:
156
+ - ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"]
157
+ - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
158
+ - category: "Pricing & Plans"
159
+ items:
160
+ - ["Starting Price", "{{price}}", "{{price}}", "{{price}}", "{{price}}"]
161
+ - ["Free Tier", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}"]
162
+ - id: swot-comparison
163
+ title: SWOT Comparison
164
+ instruction: Create SWOT analysis for your solution vs. top competitors
165
+ sections:
166
+ - id: your-solution
167
+ title: Your Solution
168
+ template: |
169
+ - **Strengths:** {{strengths}}
170
+ - **Weaknesses:** {{weaknesses}}
171
+ - **Opportunities:** {{opportunities}}
172
+ - **Threats:** {{threats}}
173
+ - id: vs-competitor
174
+ title: "vs. {{main_competitor}}"
175
+ template: |
176
+ - **Competitive Advantages:** {{your_advantages}}
177
+ - **Competitive Disadvantages:** {{their_advantages}}
178
+ - **Differentiation Opportunities:** {{differentiation}}
179
+ - id: positioning-map
180
+ title: Positioning Map
181
+ instruction: |
182
+ Describe competitor positions on key dimensions
183
+
184
+ Create a positioning description using 2 key dimensions relevant to the market, such as:
185
+ - Price vs. Features
186
+ - Ease of Use vs. Power
187
+ - Specialization vs. Breadth
188
+ - Self-Serve vs. High-Touch
189
+
190
+ - id: strategic-analysis
191
+ title: Strategic Analysis
192
+ sections:
193
+ - id: competitive-advantages
194
+ title: Competitive Advantages Assessment
195
+ sections:
196
+ - id: sustainable-advantages
197
+ title: Sustainable Advantages
198
+ instruction: |
199
+ Identify moats and defensible positions:
200
+ - Network effects
201
+ - Switching costs
202
+ - Brand strength
203
+ - Technology barriers
204
+ - Regulatory advantages
205
+ - id: vulnerable-points
206
+ title: Vulnerable Points
207
+ instruction: |
208
+ Where competitors could be challenged:
209
+ - Weak customer segments
210
+ - Missing features
211
+ - Poor user experience
212
+ - High prices
213
+ - Limited geographic presence
214
+ - id: blue-ocean
215
+ title: Blue Ocean Opportunities
216
+ instruction: |
217
+ Identify uncontested market spaces
218
+
219
+ List opportunities to create new market space:
220
+ - Underserved segments
221
+ - Unaddressed use cases
222
+ - New business models
223
+ - Geographic expansion
224
+ - Different value propositions
225
+
226
+ - id: strategic-recommendations
227
+ title: Strategic Recommendations
228
+ sections:
229
+ - id: differentiation-strategy
230
+ title: Differentiation Strategy
231
+ instruction: |
232
+ How to position against competitors:
233
+ - Unique value propositions to emphasize
234
+ - Features to prioritize
235
+ - Segments to target
236
+ - Messaging and positioning
237
+ - id: competitive-response
238
+ title: Competitive Response Planning
239
+ sections:
240
+ - id: offensive-strategies
241
+ title: Offensive Strategies
242
+ instruction: |
243
+ How to gain market share:
244
+ - Target competitor weaknesses
245
+ - Win competitive deals
246
+ - Capture their customers
247
+ - id: defensive-strategies
248
+ title: Defensive Strategies
249
+ instruction: |
250
+ How to protect your position:
251
+ - Strengthen vulnerable areas
252
+ - Build switching costs
253
+ - Deepen customer relationships
254
+ - id: partnership-ecosystem
255
+ title: Partnership & Ecosystem Strategy
256
+ instruction: |
257
+ Potential collaboration opportunities:
258
+ - Complementary players
259
+ - Channel partners
260
+ - Technology integrations
261
+ - Strategic alliances
262
+
263
+ - id: monitoring-plan
264
+ title: Monitoring & Intelligence Plan
265
+ sections:
266
+ - id: key-competitors
267
+ title: Key Competitors to Track
268
+ instruction: Priority list with rationale
269
+ - id: monitoring-metrics
270
+ title: Monitoring Metrics
271
+ instruction: |
272
+ What to track:
273
+ - Product updates
274
+ - Pricing changes
275
+ - Customer wins/losses
276
+ - Funding/M&A activity
277
+ - Market messaging
278
+ - id: intelligence-sources
279
+ title: Intelligence Sources
280
+ instruction: |
281
+ Where to gather ongoing intelligence:
282
+ - Company websites/blogs
283
+ - Customer reviews
284
+ - Industry reports
285
+ - Social media
286
+ - Patent filings
287
+ - id: update-cadence
288
+ title: Update Cadence
289
+ instruction: |
290
+ Recommended review schedule:
291
+ - Weekly: {{weekly_items}}
292
+ - Monthly: {{monthly_items}}
293
+ - Quarterly: {{quarterly_analysis}}