agentvibes 2.0.20 → 2.0.22

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 (233) hide show
  1. package/.claude/agents/health-coach.md +154 -0
  2. package/.claude/agents/motivator.md +171 -0
  3. package/.claude/agents/negotiator.md +97 -0
  4. package/.claude/commands/agent-vibes/agent-health-coach.md +15 -0
  5. package/.claude/commands/agent-vibes/agent-motivator.md +15 -0
  6. package/.claude/commands/agent-vibes/agent-negotiator.md +15 -0
  7. package/.claude/commands/agent-vibes/agent.md +79 -0
  8. package/.claude/commands/agent-vibes/commands.json +4 -0
  9. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -0
  10. package/.claude/github-star-reminder.txt +1 -1
  11. package/.claude/hooks/download-extra-voices.sh +244 -0
  12. package/.claude/hooks/personality-manager.sh +81 -0
  13. package/.claude/hooks/piper-download-voices.sh +3 -93
  14. package/.claude/hooks/piper-multispeaker-registry.sh +165 -0
  15. package/.claude/hooks/play-tts-elevenlabs.sh +5 -3
  16. package/.claude/hooks/play-tts-piper.sh +27 -44
  17. package/.claude/hooks/provider-manager.sh +24 -5
  18. package/.claude/hooks/speed-manager.sh +10 -12
  19. package/.claude/hooks/voice-manager.sh +94 -56
  20. package/README.md +0 -3
  21. package/RELEASE_NOTES.md +40 -247
  22. package/docs/agents.md +485 -0
  23. package/docs/commands.md +1 -21
  24. package/docs/extra-voices-implementation-summary.md +235 -0
  25. package/docs/voice-registration-fix.md +254 -0
  26. package/fix-vscode-colors.sh +88 -0
  27. package/fixcolors +88 -0
  28. package/generate-all-agent-voices.sh +174 -0
  29. package/generate-missing-elevenlabs-complete.sh +236 -0
  30. package/generate-missing-elevenlabs.sh +110 -0
  31. package/generate-new-voices.sh +108 -0
  32. package/generate-piper-agent-intros.sh +85 -0
  33. package/generate-provider-and-agent-intros.sh +136 -0
  34. package/logo/fav_icon_128x128.png +0 -0
  35. package/logo/fav_icon_128x128.png:Zone.Identifier +4 -0
  36. package/logo/logo1.webp +0 -0
  37. package/logo/logo1.webp:Zone.Identifier +4 -0
  38. package/logo/social.png +0 -0
  39. package/logo/social.png:Zone.Identifier +4 -0
  40. package/mcp-server/agentvibes.db +0 -0
  41. package/mcp-server/server.py +47 -14
  42. package/package.json +3 -3
  43. package/regenerate-agent-voices.sh +79 -0
  44. package/test/unit/provider-manager.bats +8 -5
  45. package/test/unit/speed-manager.bats +4 -4
  46. package/agentvibes.org/.claude/audio/tts-padded-1760744118.mp3 +0 -0
  47. package/agentvibes.org/.claude/audio/tts-padded-1760748535.mp3 +0 -0
  48. package/agentvibes.org/.claude/audio/tts-padded-1760748676.mp3 +0 -0
  49. package/agentvibes.org/.claude/audio/tts-padded-1760750748.mp3 +0 -0
  50. package/agentvibes.org/.claude/audio/tts-padded-1760750947.mp3 +0 -0
  51. package/agentvibes.org/.claude/audio/tts-padded-1760752718.mp3 +0 -0
  52. package/agentvibes.org/.claude/audio/tts-padded-1760752907.mp3 +0 -0
  53. package/agentvibes.org/.claude/audio/tts-padded-1760753017.mp3 +0 -0
  54. package/agentvibes.org/.claude/audio/tts-padded-1760753045.mp3 +0 -0
  55. package/agentvibes.org/.claude/audio/tts-padded-1760753241.mp3 +0 -0
  56. package/agentvibes.org/.claude/audio/tts-padded-1760753315.mp3 +0 -0
  57. package/agentvibes.org/.claude/audio/tts-padded-1760753382.mp3 +0 -0
  58. package/agentvibes.org/.claude/audio/tts-padded-1760753408.mp3 +0 -0
  59. package/agentvibes.org/.claude/audio/tts-padded-1760753426.mp3 +0 -0
  60. package/agentvibes.org/.claude/audio/tts-padded-1760753446.mp3 +0 -0
  61. package/agentvibes.org/.claude/audio/tts-padded-1760753541.mp3 +0 -0
  62. package/agentvibes.org/.claude/audio/tts-padded-1760753553.mp3 +0 -0
  63. package/agentvibes.org/.claude/audio/tts-padded-1760753577.mp3 +0 -0
  64. package/agentvibes.org/.claude/commands/agent-vibes/add.md +0 -21
  65. package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +0 -68
  66. package/agentvibes.org/.claude/commands/agent-vibes/bmad.md +0 -196
  67. package/agentvibes.org/.claude/commands/agent-vibes/commands.json +0 -77
  68. package/agentvibes.org/.claude/commands/agent-vibes/get.md +0 -9
  69. package/agentvibes.org/.claude/commands/agent-vibes/language.md +0 -23
  70. package/agentvibes.org/.claude/commands/agent-vibes/learn.md +0 -67
  71. package/agentvibes.org/.claude/commands/agent-vibes/list.md +0 -13
  72. package/agentvibes.org/.claude/commands/agent-vibes/personality.md +0 -79
  73. package/agentvibes.org/.claude/commands/agent-vibes/preview.md +0 -17
  74. package/agentvibes.org/.claude/commands/agent-vibes/provider.md +0 -54
  75. package/agentvibes.org/.claude/commands/agent-vibes/replay-target.md +0 -14
  76. package/agentvibes.org/.claude/commands/agent-vibes/replay.md +0 -19
  77. package/agentvibes.org/.claude/commands/agent-vibes/sample.md +0 -12
  78. package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +0 -52
  79. package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +0 -47
  80. package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +0 -65
  81. package/agentvibes.org/.claude/commands/agent-vibes/set-speed.md +0 -41
  82. package/agentvibes.org/.claude/commands/agent-vibes/switch.md +0 -53
  83. package/agentvibes.org/.claude/commands/agent-vibes/target-voice.md +0 -26
  84. package/agentvibes.org/.claude/commands/agent-vibes/target.md +0 -30
  85. package/agentvibes.org/.claude/commands/agent-vibes/update.md +0 -20
  86. package/agentvibes.org/.claude/commands/agent-vibes/version.md +0 -10
  87. package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +0 -7
  88. package/agentvibes.org/.claude/hooks/bmad-tts-injector.sh +0 -386
  89. package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +0 -375
  90. package/agentvibes.org/.claude/hooks/check-output-style.sh +0 -60
  91. package/agentvibes.org/.claude/hooks/github-star-reminder.sh +0 -94
  92. package/agentvibes.org/.claude/hooks/language-manager.sh +0 -360
  93. package/agentvibes.org/.claude/hooks/learn-manager.sh +0 -443
  94. package/agentvibes.org/.claude/hooks/personality-manager.sh +0 -324
  95. package/agentvibes.org/.claude/hooks/piper-download-voices.sh +0 -133
  96. package/agentvibes.org/.claude/hooks/piper-installer.sh +0 -144
  97. package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +0 -227
  98. package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +0 -376
  99. package/agentvibes.org/.claude/hooks/play-tts-piper.sh +0 -281
  100. package/agentvibes.org/.claude/hooks/play-tts.sh +0 -69
  101. package/agentvibes.org/.claude/hooks/provider-commands.sh +0 -505
  102. package/agentvibes.org/.claude/hooks/provider-manager.sh +0 -248
  103. package/agentvibes.org/.claude/hooks/replay-target-audio.sh +0 -64
  104. package/agentvibes.org/.claude/hooks/sentiment-manager.sh +0 -163
  105. package/agentvibes.org/.claude/hooks/speed-manager.sh +0 -259
  106. package/agentvibes.org/.claude/hooks/voice-manager.sh +0 -477
  107. package/agentvibes.org/.claude/hooks/voices-config.sh +0 -33
  108. package/agentvibes.org/.claude/journal/2025-10-07.html +0 -373
  109. package/agentvibes.org/.claude/journal/index.html +0 -91
  110. package/agentvibes.org/.claude/output-styles/agent-vibes.md +0 -203
  111. package/agentvibes.org/.claude/personalities/angry.md +0 -17
  112. package/agentvibes.org/.claude/personalities/annoying.md +0 -17
  113. package/agentvibes.org/.claude/personalities/crass.md +0 -17
  114. package/agentvibes.org/.claude/personalities/dramatic.md +0 -17
  115. package/agentvibes.org/.claude/personalities/dry-humor.md +0 -53
  116. package/agentvibes.org/.claude/personalities/flirty.md +0 -23
  117. package/agentvibes.org/.claude/personalities/funny.md +0 -17
  118. package/agentvibes.org/.claude/personalities/grandpa.md +0 -35
  119. package/agentvibes.org/.claude/personalities/millennial.md +0 -17
  120. package/agentvibes.org/.claude/personalities/moody.md +0 -17
  121. package/agentvibes.org/.claude/personalities/normal.md +0 -19
  122. package/agentvibes.org/.claude/personalities/pirate.md +0 -17
  123. package/agentvibes.org/.claude/personalities/poetic.md +0 -17
  124. package/agentvibes.org/.claude/personalities/professional.md +0 -17
  125. package/agentvibes.org/.claude/personalities/robot.md +0 -17
  126. package/agentvibes.org/.claude/personalities/sarcastic.md +0 -41
  127. package/agentvibes.org/.claude/personalities/sassy.md +0 -17
  128. package/agentvibes.org/.claude/personalities/surfer-dude.md +0 -17
  129. package/agentvibes.org/.claude/personalities/zen.md +0 -17
  130. package/agentvibes.org/.claude/piper-voices-dir.txt +0 -1
  131. package/agentvibes.org/.claude/plugins/bmad-voices.md +0 -42
  132. package/agentvibes.org/.claude/tts-provider.txt +0 -1
  133. package/agentvibes.org/.mcp-minimal.json +0 -60
  134. package/agentvibes.org/CHANGELOG.md +0 -56
  135. package/agentvibes.org/README.md +0 -93
  136. package/agentvibes.org/app/(auth)/layout.tsx +0 -15
  137. package/agentvibes.org/app/(auth)/reset-password/page.tsx +0 -45
  138. package/agentvibes.org/app/(auth)/signin/page.tsx +0 -82
  139. package/agentvibes.org/app/(auth)/signup/page.tsx +0 -104
  140. package/agentvibes.org/app/(default)/blog/[slug]/page.tsx +0 -128
  141. package/agentvibes.org/app/(default)/blog/page.tsx +0 -95
  142. package/agentvibes.org/app/(default)/layout.tsx +0 -31
  143. package/agentvibes.org/app/(default)/page.tsx +0 -20
  144. package/agentvibes.org/app/api/hello/route.ts +0 -3
  145. package/agentvibes.org/app/css/additional-styles/theme.css +0 -82
  146. package/agentvibes.org/app/css/additional-styles/utility-patterns.css +0 -55
  147. package/agentvibes.org/app/css/style.css +0 -100
  148. package/agentvibes.org/app/layout.tsx +0 -63
  149. package/agentvibes.org/components/code-block.tsx +0 -27
  150. package/agentvibes.org/components/cta.tsx +0 -58
  151. package/agentvibes.org/components/features.tsx +0 -256
  152. package/agentvibes.org/components/hero-home.tsx +0 -133
  153. package/agentvibes.org/components/mdx-components.tsx +0 -128
  154. package/agentvibes.org/components/modal-video.tsx +0 -137
  155. package/agentvibes.org/components/page-illustration.tsx +0 -55
  156. package/agentvibes.org/components/spotlight.tsx +0 -77
  157. package/agentvibes.org/components/testimonials.tsx +0 -282
  158. package/agentvibes.org/components/ui/footer.tsx +0 -82
  159. package/agentvibes.org/components/ui/header.tsx +0 -68
  160. package/agentvibes.org/components/ui/logo.tsx +0 -10
  161. package/agentvibes.org/components/workflows.tsx +0 -176
  162. package/agentvibes.org/content/blog/discovering-new-piper-voices.mdx +0 -253
  163. package/agentvibes.org/content/blog/getting-started-agentvibes.mdx +0 -228
  164. package/agentvibes.org/content/blog/introducing-agentvibes-v2.mdx +0 -250
  165. package/agentvibes.org/content/blog/language-learning-with-agentvibes.mdx +0 -142
  166. package/agentvibes.org/content/blog/voice-personalities-guide.mdx +0 -119
  167. package/agentvibes.org/lib/blog.ts +0 -73
  168. package/agentvibes.org/next.config.js +0 -6
  169. package/agentvibes.org/package-lock.json +0 -4285
  170. package/agentvibes.org/package.json +0 -40
  171. package/agentvibes.org/pnpm-lock.yaml +0 -1141
  172. package/agentvibes.org/postcss.config.js +0 -5
  173. package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
  174. package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
  175. package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
  176. package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
  177. package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
  178. package/agentvibes.org/public/audio/piper-voices/speaker_0_Cori_Samuel.wav +0 -0
  179. package/agentvibes.org/public/audio/piper-voices/speaker_10_Steve_C.wav +0 -0
  180. package/agentvibes.org/public/audio/piper-voices/speaker_11_Owlivia.wav +0 -0
  181. package/agentvibes.org/public/audio/piper-voices/speaker_12_Paul_Hampton.wav +0 -0
  182. package/agentvibes.org/public/audio/piper-voices/speaker_13_Jennifer_Dorr.wav +0 -0
  183. package/agentvibes.org/public/audio/piper-voices/speaker_14_Emily_Cripps.wav +0 -0
  184. package/agentvibes.org/public/audio/piper-voices/speaker_15_Martin_Clifton.wav +0 -0
  185. package/agentvibes.org/public/audio/piper-voices/speaker_1_Kara_Shallenberg.wav +0 -0
  186. package/agentvibes.org/public/audio/piper-voices/speaker_2_Kristin_Hughes.wav +0 -0
  187. package/agentvibes.org/public/audio/piper-voices/speaker_3_Maria_Kasper.wav +0 -0
  188. package/agentvibes.org/public/audio/piper-voices/speaker_4_Mike_Pelton.wav +0 -0
  189. package/agentvibes.org/public/audio/piper-voices/speaker_5_Mark_Nelson.wav +0 -0
  190. package/agentvibes.org/public/audio/piper-voices/speaker_6_Michael_Scherer.wav +0 -0
  191. package/agentvibes.org/public/audio/piper-voices/speaker_7_James_K_White.wav +0 -0
  192. package/agentvibes.org/public/audio/piper-voices/speaker_8_Rose_Ibex.wav +0 -0
  193. package/agentvibes.org/public/audio/piper-voices/speaker_9_progressingamerica.wav +0 -0
  194. package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
  195. package/agentvibes.org/public/favicon.ico +0 -0
  196. package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
  197. package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
  198. package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
  199. package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
  200. package/agentvibes.org/public/images/blurred-shape-gray.svg +0 -1
  201. package/agentvibes.org/public/images/blurred-shape.svg +0 -1
  202. package/agentvibes.org/public/images/client-logo-01.svg +0 -1
  203. package/agentvibes.org/public/images/client-logo-02.svg +0 -1
  204. package/agentvibes.org/public/images/client-logo-03.svg +0 -1
  205. package/agentvibes.org/public/images/client-logo-04.svg +0 -1
  206. package/agentvibes.org/public/images/client-logo-05.svg +0 -1
  207. package/agentvibes.org/public/images/client-logo-06.svg +0 -1
  208. package/agentvibes.org/public/images/client-logo-07.svg +0 -1
  209. package/agentvibes.org/public/images/client-logo-08.svg +0 -1
  210. package/agentvibes.org/public/images/client-logo-09.svg +0 -1
  211. package/agentvibes.org/public/images/features.png +0 -0
  212. package/agentvibes.org/public/images/footer-illustration.svg +0 -1
  213. package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
  214. package/agentvibes.org/public/images/logo.svg +0 -1
  215. package/agentvibes.org/public/images/page-illustration.svg +0 -1
  216. package/agentvibes.org/public/images/secondary-illustration.svg +0 -1
  217. package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
  218. package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
  219. package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
  220. package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
  221. package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
  222. package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
  223. package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
  224. package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
  225. package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
  226. package/agentvibes.org/public/images/workflow-01.png +0 -0
  227. package/agentvibes.org/public/images/workflow-02.png +0 -0
  228. package/agentvibes.org/public/images/workflow-03.png +0 -0
  229. package/agentvibes.org/public/videos/video.mp4 +0 -0
  230. package/agentvibes.org/tsconfig.json +0 -28
  231. package/agentvibes.org/utils/useMasonry.tsx +0 -67
  232. package/agentvibes.org/utils/useMousePosition.tsx +0 -27
  233. package/docs/bryce-beattie-voice-licensing.md +0 -131
@@ -1,93 +0,0 @@
1
- # Free React / Next.js landing page template
2
-
3
- ![Open React / Next.js template preview](https://github.com/user-attachments/assets/522a5e46-2a0e-48ca-80eb-87c7fa58f3ea)
4
-
5
- **Open** is a **free React / Next.js landing page template built with Tailwind CSS** for developers/makers who want to create a quick and professional landing page for their open source projects, SaaS products, online services, and more.
6
-
7
- **UPDATE 2025-02-04** Added Tailwind v4 support!
8
-
9
- Use it for whatever you want, and be sure to reach us out on [Twitter](https://twitter.com/Cruip_com) if you build anything cool/useful with it.
10
-
11
- Created and maintained with ❤️ by [Cruip.com](https://cruip.com).
12
-
13
- _Version 1.0.0 built with the Cruip CSS is available [here](https://github.com/cruip/open-react-template/releases/tag/1.0.0)._
14
- _Version 2.0.3 built with Tailwind CSS and React + Vite is available [here](https://github.com/cruip/open-react-template/releases/tag/2.0.3)._
15
- _Version 3.3.0 (before redesign) built with Tailwind CSS and Next.js is available [here](https://github.com/cruip/open-react-template/releases/tag/3.3.0)._
16
-
17
- ## Live demo
18
-
19
- Check the live demo here 👉️ [https://open.cruip.com/](https://open.cruip.com/)
20
-
21
- ## Open PRO
22
-
23
- [![Open Pro](https://github.com/user-attachments/assets/2062c728-95f1-4d59-aa2d-d63556f625d5)](https://cruip.com/)
24
-
25
- ## Design files
26
-
27
- If you need the design files, you can download them from Figma's Community 👉 https://bit.ly/401KSUS
28
-
29
- ## Usage
30
-
31
- This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
32
-
33
- ### Getting Started
34
-
35
- First, run the development server:
36
-
37
- ```bash
38
- npm run dev
39
- # or
40
- pnpm dev (recommended)
41
- # or
42
- yarn dev
43
- ```
44
-
45
- Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
46
-
47
- You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
48
-
49
- [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
50
-
51
- The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
52
-
53
- This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
54
-
55
- ### Learn More
56
-
57
- To learn more about Next.js, take a look at the following resources:
58
-
59
- - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
60
- - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
61
-
62
- You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
63
-
64
- ### Deploy on Vercel
65
-
66
- The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
67
-
68
- Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
69
-
70
- ### Support notes
71
-
72
- This template has been developed with the App Router (`app`) and React Server Components. If you’re unfamiliar with these beta features, you can find more information about them on the Next.js beta documentation page. So, please note that any request dealing with React (e.g. extra features, customisations, et cetera) is to be considered out of the support scope.
73
-
74
- For more information about what support covers, please see our (FAQs)[https://cruip.com/faq/].
75
-
76
- ## Credits
77
-
78
- - [Nucleo](https://nucleoapp.com/)
79
-
80
- ## Terms and License
81
-
82
- - Released under the [GPL](https://www.gnu.org/licenses/gpl-3.0.html).
83
- - Copyright 2024 [Cruip](https://cruip.com/).
84
- - Use it for personal and commercial projects, but please don’t republish, redistribute, or resell the template.
85
- - Attribution is not required, although it is really appreciated.
86
-
87
- ## About Us
88
-
89
- We're an Italian developer/designer duo creating high-quality design/code resources for developers, makers, and startups.
90
-
91
- ## Stay in the loop
92
-
93
- If you would like to know when we release new resources, you can follow [@pacovitiello](https://x.com/pacovitiello) and [@DavidePacilio](https://x.com/DavidePacilio) on X, or you can subscribe to our [newsletter](https://cruip.com/newsletter/).
@@ -1,15 +0,0 @@
1
- import PageIllustration from "@/components/page-illustration";
2
-
3
- export default function AuthLayout({
4
- children,
5
- }: {
6
- children: React.ReactNode;
7
- }) {
8
- return (
9
- <main className="relative flex grow flex-col">
10
- <PageIllustration multiple />
11
-
12
- {children}
13
- </main>
14
- );
15
- }
@@ -1,45 +0,0 @@
1
- export const metadata = {
2
- title: "Reset Password - Open PRO",
3
- description: "Page description",
4
- };
5
-
6
- import Link from "next/link";
7
-
8
- export default function ResetPassword() {
9
- return (
10
- <section>
11
- <div className="mx-auto max-w-6xl px-4 sm:px-6">
12
- <div className="py-12 md:py-20">
13
- {/* Section header */}
14
- <div className="pb-12 text-center">
15
- <h1 className="animate-[gradient_6s_linear_infinite] bg-[linear-gradient(to_right,var(--color-gray-200),var(--color-indigo-200),var(--color-gray-50),var(--color-indigo-300),var(--color-gray-200))] bg-[length:200%_auto] bg-clip-text font-nacelle text-3xl font-semibold text-transparent md:text-4xl">
16
- Reset your password
17
- </h1>
18
- </div>
19
- {/* Contact form */}
20
- <form className="mx-auto max-w-[400px]">
21
- <div>
22
- <label
23
- className="mb-1 block text-sm font-medium text-indigo-200/65"
24
- htmlFor="email"
25
- >
26
- Email
27
- </label>
28
- <input
29
- id="email"
30
- type="email"
31
- className="form-input w-full"
32
- placeholder="Your email"
33
- />
34
- </div>
35
- <div className="mt-6">
36
- <button className="btn w-full bg-linear-to-t from-indigo-600 to-indigo-500 bg-[length:100%_100%] bg-[bottom] text-white shadow-[inset_0px_1px_0px_0px_--theme(--color-white/.16)] hover:bg-[length:100%_150%]">
37
- Reset Password
38
- </button>
39
- </div>
40
- </form>
41
- </div>
42
- </div>
43
- </section>
44
- );
45
- }
@@ -1,82 +0,0 @@
1
- export const metadata = {
2
- title: "Sign In - Open PRO",
3
- description: "Page description",
4
- };
5
-
6
- import Link from "next/link";
7
-
8
- export default function SignIn() {
9
- return (
10
- <section>
11
- <div className="mx-auto max-w-6xl px-4 sm:px-6">
12
- <div className="py-12 md:py-20">
13
- {/* Section header */}
14
- <div className="pb-12 text-center">
15
- <h1 className="animate-[gradient_6s_linear_infinite] bg-[linear-gradient(to_right,var(--color-gray-200),var(--color-indigo-200),var(--color-gray-50),var(--color-indigo-300),var(--color-gray-200))] bg-[length:200%_auto] bg-clip-text font-nacelle text-3xl font-semibold text-transparent md:text-4xl">
16
- Welcome back
17
- </h1>
18
- </div>
19
- {/* Contact form */}
20
- <form className="mx-auto max-w-[400px]">
21
- <div className="space-y-5">
22
- <div>
23
- <label
24
- className="mb-1 block text-sm font-medium text-indigo-200/65"
25
- htmlFor="email"
26
- >
27
- Email
28
- </label>
29
- <input
30
- id="email"
31
- type="email"
32
- className="form-input w-full"
33
- placeholder="Your email"
34
- />
35
- </div>
36
- <div>
37
- <div className="mb-1 flex items-center justify-between gap-3">
38
- <label
39
- className="block text-sm font-medium text-indigo-200/65"
40
- htmlFor="password"
41
- >
42
- Password
43
- </label>
44
- <Link
45
- className="text-sm text-gray-600 hover:underline"
46
- href="/reset-password"
47
- >
48
- Forgot?
49
- </Link>
50
- </div>
51
- <input
52
- id="password"
53
- type="password"
54
- className="form-input w-full"
55
- placeholder="Your password"
56
- />
57
- </div>
58
- </div>
59
- <div className="mt-6 space-y-5">
60
- <button className="btn w-full bg-linear-to-t from-indigo-600 to-indigo-500 bg-[length:100%_100%] bg-[bottom] text-white shadow-[inset_0px_1px_0px_0px_--theme(--color-white/.16)] hover:bg-[length:100%_150%]">
61
- Sign in
62
- </button>
63
- <div className="flex items-center gap-3 text-center text-sm italic text-gray-600 before:h-px before:flex-1 before:bg-linear-to-r before:from-transparent before:via-gray-400/25 after:h-px after:flex-1 after:bg-linear-to-r after:from-transparent after:via-gray-400/25">
64
- or
65
- </div>
66
- <button className="btn relative w-full bg-linear-to-b from-gray-800 to-gray-800/60 bg-[length:100%_100%] bg-[bottom] text-gray-300 before:pointer-events-none before:absolute before:inset-0 before:rounded-[inherit] before:border before:border-transparent before:[background:linear-gradient(to_right,var(--color-gray-800),var(--color-gray-700),var(--color-gray-800))_border-box] before:[mask-composite:exclude_!important] before:[mask:linear-gradient(white_0_0)_padding-box,_linear-gradient(white_0_0)] hover:bg-[length:100%_150%]">
67
- Sign In with Google
68
- </button>
69
- </div>
70
- </form>
71
- {/* Bottom link */}
72
- <div className="mt-6 text-center text-sm text-indigo-200/65">
73
- Don't you have an account?{" "}
74
- <Link className="font-medium text-indigo-500" href="/signup">
75
- Sign Up
76
- </Link>
77
- </div>
78
- </div>
79
- </div>
80
- </section>
81
- );
82
- }
@@ -1,104 +0,0 @@
1
- export const metadata = {
2
- title: "Sign Up - Open PRO",
3
- description: "Page description",
4
- };
5
-
6
- import Link from "next/link";
7
-
8
- export default function SignUp() {
9
- return (
10
- <section>
11
- <div className="mx-auto max-w-6xl px-4 sm:px-6">
12
- <div className="py-12 md:py-20">
13
- {/* Section header */}
14
- <div className="pb-12 text-center">
15
- <h1 className="animate-[gradient_6s_linear_infinite] bg-[linear-gradient(to_right,var(--color-gray-200),var(--color-indigo-200),var(--color-gray-50),var(--color-indigo-300),var(--color-gray-200))] bg-[length:200%_auto] bg-clip-text font-nacelle text-3xl font-semibold text-transparent md:text-4xl">
16
- Create an account
17
- </h1>
18
- </div>
19
- {/* Contact form */}
20
- <form className="mx-auto max-w-[400px]">
21
- <div className="space-y-5">
22
- <div>
23
- <label
24
- className="mb-1 block text-sm font-medium text-indigo-200/65"
25
- htmlFor="name"
26
- >
27
- Name <span className="text-red-500">*</span>
28
- </label>
29
- <input
30
- id="name"
31
- type="text"
32
- className="form-input w-full"
33
- placeholder="Your full name"
34
- required
35
- />
36
- </div>
37
- <div>
38
- <label
39
- className="mb-1 block text-sm font-medium text-indigo-200/65"
40
- htmlFor="name"
41
- >
42
- Company Name <span className="text-red-500">*</span>
43
- </label>
44
- <input
45
- id="company"
46
- type="text"
47
- className="form-input w-full"
48
- placeholder="Your company name"
49
- required
50
- />
51
- </div>
52
- <div>
53
- <label
54
- className="mb-1 block text-sm font-medium text-indigo-200/65"
55
- htmlFor="email"
56
- >
57
- Work Email <span className="text-red-500">*</span>
58
- </label>
59
- <input
60
- id="email"
61
- type="email"
62
- className="form-input w-full"
63
- placeholder="Your work email"
64
- />
65
- </div>
66
- <div>
67
- <label
68
- className="block text-sm font-medium text-indigo-200/65"
69
- htmlFor="password"
70
- >
71
- Password <span className="text-red-500">*</span>
72
- </label>
73
- <input
74
- id="password"
75
- type="password"
76
- className="form-input w-full"
77
- placeholder="Password (at least 10 characters)"
78
- />
79
- </div>
80
- </div>
81
- <div className="mt-6 space-y-5">
82
- <button className="btn w-full bg-linear-to-t from-indigo-600 to-indigo-500 bg-[length:100%_100%] bg-[bottom] text-white shadow-[inset_0px_1px_0px_0px_--theme(--color-white/.16)] hover:bg-[length:100%_150%]">
83
- Register
84
- </button>
85
- <div className="flex items-center gap-3 text-center text-sm italic text-gray-600 before:h-px before:flex-1 before:bg-linear-to-r before:from-transparent before:via-gray-400/25 after:h-px after:flex-1 after:bg-linear-to-r after:from-transparent after:via-gray-400/25">
86
- or
87
- </div>
88
- <button className="btn relative w-full bg-linear-to-b from-gray-800 to-gray-800/60 bg-[length:100%_100%] bg-[bottom] text-gray-300 before:pointer-events-none before:absolute before:inset-0 before:rounded-[inherit] before:border before:border-transparent before:[background:linear-gradient(to_right,var(--color-gray-800),var(--color-gray-700),var(--color-gray-800))_border-box] before:[mask-composite:exclude_!important] before:[mask:linear-gradient(white_0_0)_padding-box,_linear-gradient(white_0_0)] hover:bg-[length:100%_150%]">
89
- Sign In with Google
90
- </button>
91
- </div>
92
- </form>
93
- {/* Bottom link */}
94
- <div className="mt-6 text-center text-sm text-indigo-200/65">
95
- Already have an account?{" "}
96
- <Link className="font-medium text-indigo-500" href="/signin">
97
- Sign in
98
- </Link>
99
- </div>
100
- </div>
101
- </div>
102
- </section>
103
- );
104
- }
@@ -1,128 +0,0 @@
1
- import { notFound } from 'next/navigation';
2
- import Link from 'next/link';
3
- import { getPostBySlug, getAllSlugs } from '@/lib/blog';
4
- import { MDXRemote } from 'next-mdx-remote/rsc';
5
- import { MDXComponents } from '@/components/mdx-components';
6
-
7
- export async function generateStaticParams() {
8
- const slugs = getAllSlugs();
9
- return slugs.map((slug) => ({
10
- slug,
11
- }));
12
- }
13
-
14
- export async function generateMetadata({ params }: { params: Promise<{ slug: string }> }) {
15
- const { slug } = await params;
16
- const post = getPostBySlug(slug);
17
-
18
- if (!post) {
19
- return {
20
- title: 'Post Not Found',
21
- };
22
- }
23
-
24
- return {
25
- title: `${post.title} - AgentVibes Blog`,
26
- description: post.description,
27
- };
28
- }
29
-
30
- export default async function BlogPostPage({ params }: { params: Promise<{ slug: string }> }) {
31
- const { slug } = await params;
32
- const post = getPostBySlug(slug);
33
-
34
- if (!post) {
35
- notFound();
36
- }
37
-
38
- return (
39
- <div className="mx-auto max-w-4xl px-4 sm:px-6">
40
- <div className="pb-12 pt-32 md:pb-20 md:pt-40">
41
- {/* Back link */}
42
- <Link
43
- href="/blog"
44
- className="mb-8 inline-flex items-center text-sm text-indigo-400 transition-colors hover:text-indigo-300"
45
- >
46
- <svg
47
- className="mr-2 h-4 w-4"
48
- fill="none"
49
- stroke="currentColor"
50
- viewBox="0 0 24 24"
51
- >
52
- <path
53
- strokeLinecap="round"
54
- strokeLinejoin="round"
55
- strokeWidth={2}
56
- d="M15 19l-7-7 7-7"
57
- />
58
- </svg>
59
- Back to Blog
60
- </Link>
61
-
62
- {/* Article header */}
63
- <article className="prose prose-invert mx-auto max-w-none">
64
- <header className="mb-8 border-b border-gray-800 pb-8">
65
- <time className="mb-3 block text-sm text-indigo-400">
66
- {new Date(post.date).toLocaleDateString('en-US', {
67
- year: 'numeric',
68
- month: 'long',
69
- day: 'numeric',
70
- })}
71
- </time>
72
-
73
- <h1 className="mb-4 font-nacelle text-4xl font-bold text-gray-100 md:text-5xl">
74
- {post.title}
75
- </h1>
76
-
77
- <p className="text-xl text-gray-400">{post.description}</p>
78
-
79
- {/* Tags */}
80
- <div className="mt-4 flex flex-wrap gap-2">
81
- {post.tags.map((tag) => (
82
- <span
83
- key={tag}
84
- className="rounded-full bg-indigo-500/10 px-3 py-1 text-xs text-indigo-300"
85
- >
86
- {tag}
87
- </span>
88
- ))}
89
- </div>
90
-
91
- <p className="mt-4 text-sm text-gray-500">By {post.author}</p>
92
- </header>
93
-
94
- {/* Article content */}
95
- <div className="mdx-content">
96
- <MDXRemote source={post.content} components={MDXComponents} />
97
- </div>
98
- </article>
99
-
100
- {/* Footer CTA */}
101
- <div className="mt-12 rounded-2xl border border-gray-800 bg-gradient-to-b from-indigo-500/10 to-indigo-500/5 p-8 text-center">
102
- <h3 className="mb-4 font-nacelle text-2xl font-semibold text-gray-100">
103
- Ready to give your AI a voice?
104
- </h3>
105
- <p className="mb-6 text-gray-400">
106
- Install AgentVibes in seconds and start coding with personality
107
- </p>
108
- <div className="flex flex-wrap justify-center gap-4">
109
- <a
110
- href="https://github.com/paulpreibisch/AgentVibes"
111
- target="_blank"
112
- rel="noopener noreferrer"
113
- className="btn-sm bg-linear-to-t from-indigo-600 to-indigo-500 bg-[length:100%_100%] bg-[bottom] py-[5px] text-white shadow-[inset_0px_1px_0px_0px_--theme(--color-white/.16)] hover:bg-[length:100%_150%]"
114
- >
115
- Get Started
116
- </a>
117
- <Link
118
- href="/blog"
119
- className="btn-sm relative bg-linear-to-b from-gray-800 to-gray-800/60 bg-[length:100%_100%] bg-[bottom] py-[5px] text-gray-300 hover:bg-[length:100%_150%]"
120
- >
121
- Read More Posts
122
- </Link>
123
- </div>
124
- </div>
125
- </div>
126
- </div>
127
- );
128
- }
@@ -1,95 +0,0 @@
1
- import Link from 'next/link';
2
- import { getAllPosts } from '@/lib/blog';
3
-
4
- export const metadata = {
5
- title: 'Blog - AgentVibes',
6
- description: 'Latest updates, guides, and tutorials for AgentVibes - Voice-powered AI assistants',
7
- };
8
-
9
- export default function BlogPage() {
10
- const posts = getAllPosts();
11
-
12
- return (
13
- <div className="mx-auto max-w-6xl px-4 sm:px-6">
14
- <div className="pb-12 pt-32 md:pb-20 md:pt-40">
15
- {/* Page header */}
16
- <div className="pb-12 text-center md:pb-16">
17
- <h1 className="animate-[gradient_6s_linear_infinite] bg-[linear-gradient(to_right,theme(colors.gray.200),theme(colors.indigo.200),theme(colors.gray.50),theme(colors.indigo.300),theme(colors.gray.200))] bg-[length:200%_auto] bg-clip-text pb-4 font-nacelle text-3xl font-semibold text-transparent md:text-4xl">
18
- AgentVibes Blog
19
- </h1>
20
- <p className="text-lg text-gray-400">
21
- Latest updates, guides, and tutorials for voice-powered AI assistants
22
- </p>
23
- </div>
24
-
25
- {/* Blog posts grid */}
26
- <div className="grid gap-8 md:grid-cols-2 lg:grid-cols-3">
27
- {posts.map((post) => (
28
- <article
29
- key={post.slug}
30
- className="group relative flex flex-col rounded-2xl border border-gray-800 bg-gradient-to-b from-gray-800/50 to-gray-800/20 p-6 transition-all duration-300 hover:border-gray-700"
31
- >
32
- {/* Date */}
33
- <time className="mb-3 text-sm text-indigo-400">
34
- {new Date(post.date).toLocaleDateString('en-US', {
35
- year: 'numeric',
36
- month: 'long',
37
- day: 'numeric',
38
- })}
39
- </time>
40
-
41
- {/* Title */}
42
- <h2 className="mb-3 font-nacelle text-xl font-semibold text-gray-100 transition-colors group-hover:text-indigo-300">
43
- <Link href={`/blog/${post.slug}`} className="before:absolute before:inset-0">
44
- {post.title}
45
- </Link>
46
- </h2>
47
-
48
- {/* Description */}
49
- <p className="mb-4 flex-grow text-sm text-gray-400">
50
- {post.description}
51
- </p>
52
-
53
- {/* Tags */}
54
- <div className="flex flex-wrap gap-2">
55
- {post.tags.map((tag) => (
56
- <span
57
- key={tag}
58
- className="rounded-full bg-indigo-500/10 px-3 py-1 text-xs text-indigo-300"
59
- >
60
- {tag}
61
- </span>
62
- ))}
63
- </div>
64
-
65
- {/* Read more indicator */}
66
- <div className="mt-4 flex items-center text-sm text-indigo-400 transition-transform group-hover:translate-x-1">
67
- Read more
68
- <svg
69
- className="ml-1 h-4 w-4"
70
- fill="none"
71
- stroke="currentColor"
72
- viewBox="0 0 24 24"
73
- >
74
- <path
75
- strokeLinecap="round"
76
- strokeLinejoin="round"
77
- strokeWidth={2}
78
- d="M9 5l7 7-7 7"
79
- />
80
- </svg>
81
- </div>
82
- </article>
83
- ))}
84
- </div>
85
-
86
- {/* Empty state */}
87
- {posts.length === 0 && (
88
- <div className="rounded-2xl border border-gray-800 bg-gradient-to-b from-gray-800/50 to-gray-800/20 p-12 text-center">
89
- <p className="text-gray-400">No blog posts yet. Check back soon!</p>
90
- </div>
91
- )}
92
- </div>
93
- </div>
94
- );
95
- }
@@ -1,31 +0,0 @@
1
- "use client";
2
-
3
- import { useEffect } from "react";
4
-
5
- import AOS from "aos";
6
- import "aos/dist/aos.css";
7
-
8
- import Footer from "@/components/ui/footer";
9
-
10
- export default function DefaultLayout({
11
- children,
12
- }: {
13
- children: React.ReactNode;
14
- }) {
15
- useEffect(() => {
16
- AOS.init({
17
- once: true,
18
- disable: "phone",
19
- duration: 600,
20
- easing: "ease-out-sine",
21
- });
22
- });
23
-
24
- return (
25
- <>
26
- <main className="relative flex grow flex-col">{children}</main>
27
-
28
- <Footer />
29
- </>
30
- );
31
- }
@@ -1,20 +0,0 @@
1
- export const metadata = {
2
- title: "AgentVibes - Bring Your Claude Code Sessions to Life",
3
- description: "Professional text-to-speech narration for Claude Code with 150+ voices, multiple providers, and 30+ languages.",
4
- };
5
-
6
- import PageIllustration from "@/components/page-illustration";
7
- import Hero from "@/components/hero-home";
8
- import Features from "@/components/features";
9
- import Cta from "@/components/cta";
10
-
11
- export default function Home() {
12
- return (
13
- <>
14
- <PageIllustration />
15
- <Hero />
16
- <Features />
17
- <Cta />
18
- </>
19
- );
20
- }
@@ -1,3 +0,0 @@
1
- export async function GET(request: Request) {
2
- return new Response("Hello, Next.js!");
3
- }