constella 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (747) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +53 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/diagnostics/build-diagnostics.json +6 -0
  5. package/.next/diagnostics/framework.json +1 -0
  6. package/.next/export-marker.json +6 -0
  7. package/.next/images-manifest.json +68 -0
  8. package/.next/next-minimal-server.js.nft.json +1 -0
  9. package/.next/next-server.js.nft.json +1 -0
  10. package/.next/package.json +1 -0
  11. package/.next/prerender-manifest.json +36 -0
  12. package/.next/react-loadable-manifest.json +14 -0
  13. package/.next/required-server-files.js +343 -0
  14. package/.next/required-server-files.json +343 -0
  15. package/.next/routes-manifest.json +362 -0
  16. package/.next/server/app/(app)/activity/page.js +2 -0
  17. package/.next/server/app/(app)/activity/page.js.nft.json +1 -0
  18. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/(app)/agents/[handle]/page.js +18 -0
  20. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -0
  21. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -0
  22. package/.next/server/app/(app)/code/page.js +2 -0
  23. package/.next/server/app/(app)/code/page.js.nft.json +1 -0
  24. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -0
  25. package/.next/server/app/(app)/config/page.js +2 -0
  26. package/.next/server/app/(app)/config/page.js.nft.json +1 -0
  27. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -0
  28. package/.next/server/app/(app)/costs/page.js +2 -0
  29. package/.next/server/app/(app)/costs/page.js.nft.json +1 -0
  30. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -0
  31. package/.next/server/app/(app)/cron/page.js +2 -0
  32. package/.next/server/app/(app)/cron/page.js.nft.json +1 -0
  33. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -0
  34. package/.next/server/app/(app)/dashboard/page.js +2 -0
  35. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -0
  36. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -0
  37. package/.next/server/app/(app)/docs/[id]/page.js +2 -0
  38. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -0
  39. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -0
  40. package/.next/server/app/(app)/docs/page.js +2 -0
  41. package/.next/server/app/(app)/docs/page.js.nft.json +1 -0
  42. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -0
  43. package/.next/server/app/(app)/github/page.js +2 -0
  44. package/.next/server/app/(app)/github/page.js.nft.json +1 -0
  45. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -0
  46. package/.next/server/app/(app)/goals/page.js +2 -0
  47. package/.next/server/app/(app)/goals/page.js.nft.json +1 -0
  48. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -0
  49. package/.next/server/app/(app)/inbox/page.js +2 -0
  50. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
  51. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
  52. package/.next/server/app/(app)/knowledge/page.js +3 -0
  53. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -0
  54. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -0
  55. package/.next/server/app/(app)/models/page.js +2 -0
  56. package/.next/server/app/(app)/models/page.js.nft.json +1 -0
  57. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -0
  58. package/.next/server/app/(app)/notifications/page.js +2 -0
  59. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -0
  60. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -0
  61. package/.next/server/app/(app)/org/page.js +2 -0
  62. package/.next/server/app/(app)/org/page.js.nft.json +1 -0
  63. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -0
  64. package/.next/server/app/(app)/organizations/page.js +2 -0
  65. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -0
  66. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -0
  67. package/.next/server/app/(app)/page.js +3 -0
  68. package/.next/server/app/(app)/page.js.nft.json +1 -0
  69. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -0
  70. package/.next/server/app/(app)/planner/page.js +2 -0
  71. package/.next/server/app/(app)/planner/page.js.nft.json +1 -0
  72. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -0
  73. package/.next/server/app/(app)/plugins/page.js +2 -0
  74. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -0
  75. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
  76. package/.next/server/app/(app)/pm/page.js +2 -0
  77. package/.next/server/app/(app)/pm/page.js.nft.json +1 -0
  78. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -0
  79. package/.next/server/app/(app)/prepare-deploy/page.js +19 -0
  80. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -0
  81. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -0
  82. package/.next/server/app/(app)/profile/page.js +2 -0
  83. package/.next/server/app/(app)/profile/page.js.nft.json +1 -0
  84. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -0
  85. package/.next/server/app/(app)/pulse/page.js +2 -0
  86. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -0
  87. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -0
  88. package/.next/server/app/(app)/reports/[id]/page.js +3 -0
  89. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -0
  90. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -0
  91. package/.next/server/app/(app)/reports/page.js +5 -0
  92. package/.next/server/app/(app)/reports/page.js.nft.json +1 -0
  93. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -0
  94. package/.next/server/app/(app)/routines/page.js +2 -0
  95. package/.next/server/app/(app)/routines/page.js.nft.json +1 -0
  96. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -0
  97. package/.next/server/app/(app)/search/page.js +2 -0
  98. package/.next/server/app/(app)/search/page.js.nft.json +1 -0
  99. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -0
  100. package/.next/server/app/(app)/security/page.js +2 -0
  101. package/.next/server/app/(app)/security/page.js.nft.json +1 -0
  102. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -0
  103. package/.next/server/app/(app)/skills/page.js +18 -0
  104. package/.next/server/app/(app)/skills/page.js.nft.json +1 -0
  105. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -0
  106. package/.next/server/app/(app)/tasks/page.js +2 -0
  107. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -0
  108. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -0
  109. package/.next/server/app/(app)/test-dev/page.js +2 -0
  110. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -0
  111. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -0
  112. package/.next/server/app/(app)/update/page.js +2 -0
  113. package/.next/server/app/(app)/update/page.js.nft.json +1 -0
  114. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -0
  115. package/.next/server/app/(auth)/login/page.js +2 -0
  116. package/.next/server/app/(auth)/login/page.js.nft.json +1 -0
  117. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -0
  118. package/.next/server/app/(auth)/onboarding/page.js +18 -0
  119. package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -0
  120. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -0
  121. package/.next/server/app/_global-error/page.js +32 -0
  122. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  123. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  124. package/.next/server/app/_global-error.html +1 -0
  125. package/.next/server/app/_global-error.meta +16 -0
  126. package/.next/server/app/_global-error.rsc +15 -0
  127. package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
  128. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  129. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  130. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  131. package/.next/server/app/_global-error.segments/_index.segment.rsc +6 -0
  132. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  133. package/.next/server/app/_not-found/page.js +2 -0
  134. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  135. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/auth/[...all]/route.js +1 -0
  137. package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -0
  138. package/.next/server/app/api/auth/[...all]/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/api/cron/tick/route.js +52 -0
  140. package/.next/server/app/api/cron/tick/route.js.nft.json +1 -0
  141. package/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -0
  142. package/.next/server/app/api/dev-login/route.js +1 -0
  143. package/.next/server/app/api/dev-login/route.js.nft.json +1 -0
  144. package/.next/server/app/api/dev-login/route_client-reference-manifest.js +1 -0
  145. package/.next/server/app/api/locks/acquire/route.js +1 -0
  146. package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -0
  147. package/.next/server/app/api/locks/acquire/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/models/progress/route.js +1 -0
  149. package/.next/server/app/api/models/progress/route.js.nft.json +1 -0
  150. package/.next/server/app/api/models/progress/route_client-reference-manifest.js +1 -0
  151. package/.next/server/app/api/passkey/authenticate/options/route.js +1 -0
  152. package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -0
  153. package/.next/server/app/api/passkey/authenticate/options/route_client-reference-manifest.js +1 -0
  154. package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -0
  155. package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -0
  156. package/.next/server/app/api/passkey/authenticate/verify/route_client-reference-manifest.js +1 -0
  157. package/.next/server/app/api/passkey/register/options/route.js +1 -0
  158. package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -0
  159. package/.next/server/app/api/passkey/register/options/route_client-reference-manifest.js +1 -0
  160. package/.next/server/app/api/passkey/register/verify/route.js +1 -0
  161. package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -0
  162. package/.next/server/app/api/passkey/register/verify/route_client-reference-manifest.js +1 -0
  163. package/.next/server/app/api/stream/route.js +4 -0
  164. package/.next/server/app/api/stream/route.js.nft.json +1 -0
  165. package/.next/server/app/api/stream/route_client-reference-manifest.js +1 -0
  166. package/.next/server/app/api/sync/file/route.js +2 -0
  167. package/.next/server/app/api/sync/file/route.js.nft.json +1 -0
  168. package/.next/server/app/api/sync/file/route_client-reference-manifest.js +1 -0
  169. package/.next/server/app/api/telegram/poll/route.js +15 -0
  170. package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -0
  171. package/.next/server/app/api/telegram/poll/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/api/upload/route.js +1 -0
  173. package/.next/server/app/api/upload/route.js.nft.json +1 -0
  174. package/.next/server/app/api/upload/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/v1/[[...path]]/route.js +1 -0
  176. package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -0
  177. package/.next/server/app/api/v1/[[...path]]/route_client-reference-manifest.js +1 -0
  178. package/.next/server/app-paths-manifest.json +53 -0
  179. package/.next/server/chunks/1003.js +1 -0
  180. package/.next/server/chunks/127.js +26 -0
  181. package/.next/server/chunks/1388.js +1 -0
  182. package/.next/server/chunks/1408.js +21 -0
  183. package/.next/server/chunks/1572.js +1 -0
  184. package/.next/server/chunks/1591.js +24 -0
  185. package/.next/server/chunks/1619.js +188 -0
  186. package/.next/server/chunks/162.js +1 -0
  187. package/.next/server/chunks/1881.js +1 -0
  188. package/.next/server/chunks/1968.js +1 -0
  189. package/.next/server/chunks/2297.js +348 -0
  190. package/.next/server/chunks/2341.js +1 -0
  191. package/.next/server/chunks/2517.js +1 -0
  192. package/.next/server/chunks/2549.js +1 -0
  193. package/.next/server/chunks/259.js +14 -0
  194. package/.next/server/chunks/2599.js +1 -0
  195. package/.next/server/chunks/260.js +1 -0
  196. package/.next/server/chunks/2867.js +147 -0
  197. package/.next/server/chunks/3018.js +1 -0
  198. package/.next/server/chunks/3050.js +18 -0
  199. package/.next/server/chunks/3085.js +12 -0
  200. package/.next/server/chunks/3131.js +1 -0
  201. package/.next/server/chunks/3242.js +1 -0
  202. package/.next/server/chunks/3266.js +15 -0
  203. package/.next/server/chunks/3524.js +1 -0
  204. package/.next/server/chunks/3527.js +479 -0
  205. package/.next/server/chunks/3533.js +869 -0
  206. package/.next/server/chunks/3550.js +1 -0
  207. package/.next/server/chunks/3609.js +2 -0
  208. package/.next/server/chunks/3667.js +462 -0
  209. package/.next/server/chunks/3760.js +4 -0
  210. package/.next/server/chunks/4679.js +1 -0
  211. package/.next/server/chunks/4804.js +1 -0
  212. package/.next/server/chunks/4832.js +2 -0
  213. package/.next/server/chunks/4853.js +1 -0
  214. package/.next/server/chunks/4979.js +67 -0
  215. package/.next/server/chunks/5060.js +1 -0
  216. package/.next/server/chunks/5278.js +1 -0
  217. package/.next/server/chunks/5614.js +1 -0
  218. package/.next/server/chunks/5818.js +1 -0
  219. package/.next/server/chunks/6479.js +1 -0
  220. package/.next/server/chunks/6658.js +1 -0
  221. package/.next/server/chunks/6706.js +1 -0
  222. package/.next/server/chunks/6719.js +1 -0
  223. package/.next/server/chunks/678.js +1 -0
  224. package/.next/server/chunks/683.js +1 -0
  225. package/.next/server/chunks/6862.js +1 -0
  226. package/.next/server/chunks/6882.js +1 -0
  227. package/.next/server/chunks/7037.js +1 -0
  228. package/.next/server/chunks/7107.js +741 -0
  229. package/.next/server/chunks/73.js +17 -0
  230. package/.next/server/chunks/7327.js +1 -0
  231. package/.next/server/chunks/7514.js +1 -0
  232. package/.next/server/chunks/7622.js +1 -0
  233. package/.next/server/chunks/7778.js +1 -0
  234. package/.next/server/chunks/7912.js +1 -0
  235. package/.next/server/chunks/7949.js +1 -0
  236. package/.next/server/chunks/7971.js +1 -0
  237. package/.next/server/chunks/7989.js +1 -0
  238. package/.next/server/chunks/842.js +22 -0
  239. package/.next/server/chunks/8762.js +15 -0
  240. package/.next/server/chunks/8823.js +77 -0
  241. package/.next/server/chunks/9146.js +4 -0
  242. package/.next/server/chunks/9676.js +1 -0
  243. package/.next/server/chunks/9783.js +22 -0
  244. package/.next/server/chunks/9969.js +3 -0
  245. package/.next/server/functions-config-manifest.json +18 -0
  246. package/.next/server/instrumentation.js +1 -0
  247. package/.next/server/instrumentation.js.nft.json +1 -0
  248. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  249. package/.next/server/middleware-build-manifest.js +1 -0
  250. package/.next/server/middleware-manifest.json +6 -0
  251. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  252. package/.next/server/middleware.js +18 -0
  253. package/.next/server/middleware.js.nft.json +1 -0
  254. package/.next/server/next-font-manifest.js +1 -0
  255. package/.next/server/next-font-manifest.json +1 -0
  256. package/.next/server/pages/500.html +1 -0
  257. package/.next/server/pages-manifest.json +3 -0
  258. package/.next/server/prefetch-hints.json +1 -0
  259. package/.next/server/server-reference-manifest.js +1 -0
  260. package/.next/server/server-reference-manifest.json +1 -0
  261. package/.next/server/webpack-runtime.js +1 -0
  262. package/.next/static/chunks/1858-339516f78a4b00da.js +1 -0
  263. package/.next/static/chunks/2320-fc8b39380e69d465.js +2 -0
  264. package/.next/static/chunks/23550918-ff694f70f4b0648c.js +1 -0
  265. package/.next/static/chunks/3219-ebb3c23be38c838d.js +1 -0
  266. package/.next/static/chunks/4263-adecb5b466380b6e.js +1 -0
  267. package/.next/static/chunks/5479-0cceab68cd0ca9c7.js +1 -0
  268. package/.next/static/chunks/5701-665b927b06158b76.js +1 -0
  269. package/.next/static/chunks/5920.6451a68b63918988.js +1 -0
  270. package/.next/static/chunks/6575-5c9139720bb0f5bf.js +4 -0
  271. package/.next/static/chunks/6834-4759af1ce7d95fb6.js +32 -0
  272. package/.next/static/chunks/7509.721cd47a931c5518.js +1 -0
  273. package/.next/static/chunks/8264-1ca011989ee2b231.js +1 -0
  274. package/.next/static/chunks/9219-4a39a98b5502d9d1.js +1 -0
  275. package/.next/static/chunks/9690-53d5222618cbeddb.js +1 -0
  276. package/.next/static/chunks/app/(app)/activity/page-3973534281ecea81.js +1 -0
  277. package/.next/static/chunks/app/(app)/agents/[handle]/page-83662a175c098282.js +1 -0
  278. package/.next/static/chunks/app/(app)/code/page-33979545192cd137.js +1 -0
  279. package/.next/static/chunks/app/(app)/config/page-9933aed1ca8a85c1.js +1 -0
  280. package/.next/static/chunks/app/(app)/costs/page-131c4dc580efcc19.js +1 -0
  281. package/.next/static/chunks/app/(app)/cron/page-53ea1aff998a87ca.js +1 -0
  282. package/.next/static/chunks/app/(app)/dashboard/page-deed83aaa9d0d447.js +1 -0
  283. package/.next/static/chunks/app/(app)/docs/[id]/page-38c993d73c0eab4f.js +1 -0
  284. package/.next/static/chunks/app/(app)/docs/page-bf463b55d0554e86.js +1 -0
  285. package/.next/static/chunks/app/(app)/error-988cd28480809861.js +1 -0
  286. package/.next/static/chunks/app/(app)/github/page-62678b4e82dfecb6.js +1 -0
  287. package/.next/static/chunks/app/(app)/goals/page-4adb426fe1c96106.js +1 -0
  288. package/.next/static/chunks/app/(app)/inbox/page-e347dc55ab467310.js +1 -0
  289. package/.next/static/chunks/app/(app)/knowledge/page-65393a045b4349be.js +1 -0
  290. package/.next/static/chunks/app/(app)/layout-7f65675705b011d8.js +1 -0
  291. package/.next/static/chunks/app/(app)/models/page-e01f1dd7e49a2951.js +1 -0
  292. package/.next/static/chunks/app/(app)/notifications/page-56548ac87aef00da.js +1 -0
  293. package/.next/static/chunks/app/(app)/org/page-699e6a6dc0db7d81.js +1 -0
  294. package/.next/static/chunks/app/(app)/organizations/page-36051a380a7e8eb7.js +1 -0
  295. package/.next/static/chunks/app/(app)/page-7d1011a566f81520.js +1 -0
  296. package/.next/static/chunks/app/(app)/planner/page-dab7ced94083373a.js +1 -0
  297. package/.next/static/chunks/app/(app)/plugins/page-5b5a1f53389be42e.js +1 -0
  298. package/.next/static/chunks/app/(app)/pm/page-0de5c08c0b227bb0.js +1 -0
  299. package/.next/static/chunks/app/(app)/prepare-deploy/page-e426038552df8d41.js +1 -0
  300. package/.next/static/chunks/app/(app)/profile/page-608dfcaf8aae0a69.js +1 -0
  301. package/.next/static/chunks/app/(app)/pulse/page-309ccaca91de1faa.js +1 -0
  302. package/.next/static/chunks/app/(app)/reports/[id]/page-53ea1aff998a87ca.js +1 -0
  303. package/.next/static/chunks/app/(app)/reports/page-68cdc6dcfa472d86.js +1 -0
  304. package/.next/static/chunks/app/(app)/routines/page-bcc55550b197a9fa.js +1 -0
  305. package/.next/static/chunks/app/(app)/search/page-5c5f67558d0dbf0d.js +1 -0
  306. package/.next/static/chunks/app/(app)/security/page-a7d41e36aa366b45.js +1 -0
  307. package/.next/static/chunks/app/(app)/skills/page-c5b21e89593b8336.js +1 -0
  308. package/.next/static/chunks/app/(app)/tasks/page-08ae079e3e54d2ce.js +1 -0
  309. package/.next/static/chunks/app/(app)/test-dev/page-633f82dfd9c3ce23.js +1 -0
  310. package/.next/static/chunks/app/(app)/update/page-4be019054351bfac.js +1 -0
  311. package/.next/static/chunks/app/(auth)/login/page-6e85d3377062acae.js +1 -0
  312. package/.next/static/chunks/app/(auth)/onboarding/page-ebb10c175abf3b85.js +1 -0
  313. package/.next/static/chunks/app/_global-error/page-23fe50a6bf589c97.js +1 -0
  314. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
  315. package/.next/static/chunks/app/api/auth/[...all]/route-23fe50a6bf589c97.js +1 -0
  316. package/.next/static/chunks/app/api/cron/tick/route-23fe50a6bf589c97.js +1 -0
  317. package/.next/static/chunks/app/api/dev-login/route-23fe50a6bf589c97.js +1 -0
  318. package/.next/static/chunks/app/api/locks/acquire/route-23fe50a6bf589c97.js +1 -0
  319. package/.next/static/chunks/app/api/models/progress/route-23fe50a6bf589c97.js +1 -0
  320. package/.next/static/chunks/app/api/passkey/authenticate/options/route-23fe50a6bf589c97.js +1 -0
  321. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-23fe50a6bf589c97.js +1 -0
  322. package/.next/static/chunks/app/api/passkey/register/options/route-23fe50a6bf589c97.js +1 -0
  323. package/.next/static/chunks/app/api/passkey/register/verify/route-23fe50a6bf589c97.js +1 -0
  324. package/.next/static/chunks/app/api/stream/route-23fe50a6bf589c97.js +1 -0
  325. package/.next/static/chunks/app/api/sync/file/route-23fe50a6bf589c97.js +1 -0
  326. package/.next/static/chunks/app/api/telegram/poll/route-23fe50a6bf589c97.js +1 -0
  327. package/.next/static/chunks/app/api/upload/route-23fe50a6bf589c97.js +1 -0
  328. package/.next/static/chunks/app/api/v1/[[...path]]/route-23fe50a6bf589c97.js +1 -0
  329. package/.next/static/chunks/app/error-09899a13c38b6e89.js +1 -0
  330. package/.next/static/chunks/app/global-error-b8050d4d886f448c.js +1 -0
  331. package/.next/static/chunks/app/layout-ab9deed1e7e2e9df.js +1 -0
  332. package/.next/static/chunks/framework-4b2c6b6043dd203f.js +1 -0
  333. package/.next/static/chunks/main-722e16032e7764d1.js +5 -0
  334. package/.next/static/chunks/main-app-761880af2b6f1962.js +1 -0
  335. package/.next/static/chunks/next/dist/client/components/builtin/app-error-23fe50a6bf589c97.js +1 -0
  336. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-23fe50a6bf589c97.js +1 -0
  337. package/.next/static/chunks/next/dist/client/components/builtin/not-found-23fe50a6bf589c97.js +1 -0
  338. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-23fe50a6bf589c97.js +1 -0
  339. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  340. package/.next/static/chunks/webpack-222e3894b78c67db.js +1 -0
  341. package/.next/static/css/0a9b5805594444e3.css +1 -0
  342. package/.next/static/yztMvBwyrWWkSqP6jfXoa/_buildManifest.js +1 -0
  343. package/.next/static/yztMvBwyrWWkSqP6jfXoa/_ssgManifest.js +1 -0
  344. package/.next/trace-build +1 -0
  345. package/.next/types/app/(app)/activity/page.ts +87 -0
  346. package/.next/types/app/(app)/agents/[handle]/page.ts +87 -0
  347. package/.next/types/app/(app)/code/page.ts +87 -0
  348. package/.next/types/app/(app)/config/page.ts +87 -0
  349. package/.next/types/app/(app)/costs/page.ts +87 -0
  350. package/.next/types/app/(app)/cron/page.ts +87 -0
  351. package/.next/types/app/(app)/dashboard/page.ts +87 -0
  352. package/.next/types/app/(app)/docs/[id]/page.ts +87 -0
  353. package/.next/types/app/(app)/docs/page.ts +87 -0
  354. package/.next/types/app/(app)/github/page.ts +87 -0
  355. package/.next/types/app/(app)/goals/page.ts +87 -0
  356. package/.next/types/app/(app)/inbox/page.ts +87 -0
  357. package/.next/types/app/(app)/knowledge/page.ts +87 -0
  358. package/.next/types/app/(app)/models/page.ts +87 -0
  359. package/.next/types/app/(app)/notifications/page.ts +87 -0
  360. package/.next/types/app/(app)/org/page.ts +87 -0
  361. package/.next/types/app/(app)/organizations/page.ts +87 -0
  362. package/.next/types/app/(app)/page.ts +87 -0
  363. package/.next/types/app/(app)/planner/page.ts +87 -0
  364. package/.next/types/app/(app)/plugins/page.ts +87 -0
  365. package/.next/types/app/(app)/pm/page.ts +87 -0
  366. package/.next/types/app/(app)/prepare-deploy/page.ts +87 -0
  367. package/.next/types/app/(app)/profile/page.ts +87 -0
  368. package/.next/types/app/(app)/pulse/page.ts +87 -0
  369. package/.next/types/app/(app)/reports/[id]/page.ts +87 -0
  370. package/.next/types/app/(app)/reports/page.ts +87 -0
  371. package/.next/types/app/(app)/routines/page.ts +87 -0
  372. package/.next/types/app/(app)/search/page.ts +87 -0
  373. package/.next/types/app/(app)/security/page.ts +87 -0
  374. package/.next/types/app/(app)/skills/page.ts +87 -0
  375. package/.next/types/app/(app)/tasks/page.ts +87 -0
  376. package/.next/types/app/(app)/test-dev/page.ts +87 -0
  377. package/.next/types/app/(app)/update/page.ts +87 -0
  378. package/.next/types/app/(auth)/login/page.ts +87 -0
  379. package/.next/types/app/(auth)/onboarding/page.ts +87 -0
  380. package/.next/types/app/api/auth/[...all]/route.ts +351 -0
  381. package/.next/types/app/api/cron/tick/route.ts +351 -0
  382. package/.next/types/app/api/dev-login/route.ts +351 -0
  383. package/.next/types/app/api/locks/acquire/route.ts +351 -0
  384. package/.next/types/app/api/models/progress/route.ts +351 -0
  385. package/.next/types/app/api/passkey/authenticate/options/route.ts +351 -0
  386. package/.next/types/app/api/passkey/authenticate/verify/route.ts +351 -0
  387. package/.next/types/app/api/passkey/register/options/route.ts +351 -0
  388. package/.next/types/app/api/passkey/register/verify/route.ts +351 -0
  389. package/.next/types/app/api/stream/route.ts +351 -0
  390. package/.next/types/app/api/sync/file/route.ts +351 -0
  391. package/.next/types/app/api/telegram/poll/route.ts +351 -0
  392. package/.next/types/app/api/upload/route.ts +351 -0
  393. package/.next/types/app/api/v1/[[...path]]/route.ts +351 -0
  394. package/.next/types/cache-life.d.ts +145 -0
  395. package/.next/types/link.d.ts +210 -0
  396. package/.next/types/package.json +1 -0
  397. package/.next/types/routes.d.ts +120 -0
  398. package/.next/types/validator.ts +511 -0
  399. package/CHANGELOG.md +312 -0
  400. package/LICENSE +21 -0
  401. package/README.md +382 -0
  402. package/README.pt-BR.md +391 -0
  403. package/bin/constella.mjs +329 -0
  404. package/bin/guard-hook.mjs +44 -0
  405. package/bin/lock-hook.mjs +49 -0
  406. package/bin/worker.mjs +142 -0
  407. package/docs/assets/arch-orbit.svg +56 -0
  408. package/docs/assets/blackhole.svg +37 -0
  409. package/docs/assets/divider-orbit.svg +23 -0
  410. package/docs/assets/hero-constella.svg +72 -0
  411. package/docs/en/AGENTS.md +279 -0
  412. package/docs/en/AI_ARCHITECTURE.md +373 -0
  413. package/docs/en/ARCHITECTURE.md +334 -0
  414. package/docs/en/AUTH_MODE.md +247 -0
  415. package/docs/en/CHAT_COMMANDS.md +305 -0
  416. package/docs/en/CONFIGURATION.md +340 -0
  417. package/docs/en/DEPLOY.md +331 -0
  418. package/docs/en/DM.md +297 -0
  419. package/docs/en/FAQ.md +258 -0
  420. package/docs/en/GITHUB.md +341 -0
  421. package/docs/en/GOALS_SPECS_ISSUES.md +303 -0
  422. package/docs/en/INBOX.md +340 -0
  423. package/docs/en/INSTALLATION.md +329 -0
  424. package/docs/en/KB_AGENT.md +305 -0
  425. package/docs/en/KB_RAG.md +356 -0
  426. package/docs/en/MCP.md +313 -0
  427. package/docs/en/MEMORY_RAG.md +289 -0
  428. package/docs/en/MODELS.md +341 -0
  429. package/docs/en/ONBOARDING.md +327 -0
  430. package/docs/en/PLUGINS.md +290 -0
  431. package/docs/en/PORTABLE_MODE.md +387 -0
  432. package/docs/en/PO_AGENT.md +379 -0
  433. package/docs/en/PREPARE_DEPLOY.md +308 -0
  434. package/docs/en/PROJECT_STACKS.md +258 -0
  435. package/docs/en/PUBLIC_API.md +315 -0
  436. package/docs/en/PUBLISHING.md +343 -0
  437. package/docs/en/README.md +95 -0
  438. package/docs/en/SECURITY.md +280 -0
  439. package/docs/en/SKILLS.md +349 -0
  440. package/docs/en/START_MODE.md +340 -0
  441. package/docs/en/SYNCED_BLOCKS.md +320 -0
  442. package/docs/en/TEAM_ROOM.md +285 -0
  443. package/docs/en/TELEGRAM.md +294 -0
  444. package/docs/en/TEST_DEV.md +321 -0
  445. package/docs/en/TROUBLESHOOTING.md +294 -0
  446. package/docs/en/UPDATE.md +301 -0
  447. package/docs/en/VPS_MODE.md +334 -0
  448. package/docs/en/WORKFLOW.md +321 -0
  449. package/docs/pt/AGENTS.md +279 -0
  450. package/docs/pt/AI_ARCHITECTURE.md +373 -0
  451. package/docs/pt/ARCHITECTURE.md +334 -0
  452. package/docs/pt/AUTH_MODE.md +247 -0
  453. package/docs/pt/CHAT_COMMANDS.md +307 -0
  454. package/docs/pt/CONFIGURATION.md +340 -0
  455. package/docs/pt/DEPLOY.md +331 -0
  456. package/docs/pt/DM.md +297 -0
  457. package/docs/pt/FAQ.md +258 -0
  458. package/docs/pt/GITHUB.md +341 -0
  459. package/docs/pt/GOALS_SPECS_ISSUES.md +303 -0
  460. package/docs/pt/INBOX.md +340 -0
  461. package/docs/pt/INSTALLATION.md +329 -0
  462. package/docs/pt/KB_AGENT.md +305 -0
  463. package/docs/pt/KB_RAG.md +356 -0
  464. package/docs/pt/MCP.md +313 -0
  465. package/docs/pt/MEMORY_RAG.md +289 -0
  466. package/docs/pt/MODELS.md +341 -0
  467. package/docs/pt/ONBOARDING.md +327 -0
  468. package/docs/pt/PLUGINS.md +290 -0
  469. package/docs/pt/PORTABLE_MODE.md +387 -0
  470. package/docs/pt/PO_AGENT.md +379 -0
  471. package/docs/pt/PREPARE_DEPLOY.md +308 -0
  472. package/docs/pt/PROJECT_STACKS.md +258 -0
  473. package/docs/pt/PUBLIC_API.md +315 -0
  474. package/docs/pt/PUBLISHING.md +343 -0
  475. package/docs/pt/README.md +95 -0
  476. package/docs/pt/SECURITY.md +280 -0
  477. package/docs/pt/SKILLS.md +349 -0
  478. package/docs/pt/START_MODE.md +340 -0
  479. package/docs/pt/SYNCED_BLOCKS.md +320 -0
  480. package/docs/pt/TEAM_ROOM.md +285 -0
  481. package/docs/pt/TELEGRAM.md +294 -0
  482. package/docs/pt/TEST_DEV.md +321 -0
  483. package/docs/pt/TROUBLESHOOTING.md +294 -0
  484. package/docs/pt/UPDATE.md +301 -0
  485. package/docs/pt/VPS_MODE.md +334 -0
  486. package/docs/pt/WORKFLOW.md +321 -0
  487. package/drizzle/0000_regular_nightshade.sql +644 -0
  488. package/drizzle/0001_mixed_zombie.sql +106 -0
  489. package/drizzle/meta/0000_snapshot.json +4650 -0
  490. package/drizzle/meta/0001_snapshot.json +5418 -0
  491. package/drizzle/meta/_journal.json +20 -0
  492. package/drizzle.config.mjs +16 -0
  493. package/next.config.mjs +18 -0
  494. package/package.json +130 -0
  495. package/scripts/clean-repo.mjs +20 -0
  496. package/scripts/dev-all.mjs +46 -0
  497. package/scripts/i18n-parity.mjs +57 -0
  498. package/scripts/mcp-server.mjs +100 -0
  499. package/scripts/postbuild.mjs +11 -0
  500. package/scripts/publish-public.mjs +116 -0
  501. package/scripts/start-all.mjs +45 -0
  502. package/scripts/trim-next.mjs +23 -0
  503. package/scripts/vps-install.sh +39 -0
  504. package/skills/CONTRIBUTING.md +122 -0
  505. package/skills/COVERAGE.md +129 -0
  506. package/skills/INDEX.json +3443 -0
  507. package/skills/README.md +57 -0
  508. package/skills/design/animation-motion/SKILL.md +60 -0
  509. package/skills/design/color-and-typography/SKILL.md +60 -0
  510. package/skills/design/css-techniques/SKILL.md +58 -0
  511. package/skills/design/design-systems/SKILL.md +60 -0
  512. package/skills/design/gradients/SKILL.md +59 -0
  513. package/skills/design/graphic-design-basics/SKILL.md +55 -0
  514. package/skills/design/microinteractions/SKILL.md +58 -0
  515. package/skills/design/responsive-layout/SKILL.md +59 -0
  516. package/skills/design/ui-ux-principles/SKILL.md +58 -0
  517. package/skills/engineering/architecture/api-design-rest-graphql/SKILL.md +67 -0
  518. package/skills/engineering/architecture/caching-strategies/SKILL.md +59 -0
  519. package/skills/engineering/architecture/data-modeling/SKILL.md +64 -0
  520. package/skills/engineering/architecture/message-queues-async/SKILL.md +58 -0
  521. package/skills/engineering/architecture/scalability-reliability/SKILL.md +62 -0
  522. package/skills/engineering/architecture/software-architecture-patterns/SKILL.md +56 -0
  523. package/skills/engineering/architecture/system-design-fundamentals/SKILL.md +56 -0
  524. package/skills/engineering/backend/auth-and-authorization/SKILL.md +62 -0
  525. package/skills/engineering/backend/backend-fundamentals/SKILL.md +65 -0
  526. package/skills/engineering/backend/observability-logging/SKILL.md +60 -0
  527. package/skills/engineering/frontend/accessibility-wcag/SKILL.md +57 -0
  528. package/skills/engineering/frontend/frontend-architecture/SKILL.md +65 -0
  529. package/skills/engineering/frontend/rendering-strategies-ssr-csr/SKILL.md +60 -0
  530. package/skills/engineering/frontend/state-management/SKILL.md +69 -0
  531. package/skills/engineering/performance/backend-performance/SKILL.md +69 -0
  532. package/skills/engineering/performance/database-query-optimization/SKILL.md +64 -0
  533. package/skills/engineering/performance/profiling-and-benchmarking/SKILL.md +60 -0
  534. package/skills/engineering/performance/web-performance-core-vitals/SKILL.md +72 -0
  535. package/skills/engineering/practices/clean-code/SKILL.md +61 -0
  536. package/skills/engineering/practices/code-optimization/SKILL.md +60 -0
  537. package/skills/engineering/practices/code-review-practices/SKILL.md +58 -0
  538. package/skills/engineering/practices/git-workflow/SKILL.md +62 -0
  539. package/skills/engineering/practices/refactoring/SKILL.md +58 -0
  540. package/skills/engineering/security/appsec-fundamentals/SKILL.md +70 -0
  541. package/skills/engineering/security/dependency-supply-chain/SKILL.md +77 -0
  542. package/skills/engineering/security/owasp-asvs/SKILL.md +54 -0
  543. package/skills/engineering/security/owasp-top-10/SKILL.md +63 -0
  544. package/skills/engineering/security/secrets-management/SKILL.md +58 -0
  545. package/skills/engineering/security/secure-auth-sessions/SKILL.md +56 -0
  546. package/skills/engineering/testing/tdd-and-coverage/SKILL.md +62 -0
  547. package/skills/engineering/testing/testing-strategy-pyramid/SKILL.md +56 -0
  548. package/skills/engineering/testing/unit-integration-e2e/SKILL.md +75 -0
  549. package/skills/languages/c/SKILL.md +74 -0
  550. package/skills/languages/clojure/SKILL.md +73 -0
  551. package/skills/languages/cpp/SKILL.md +75 -0
  552. package/skills/languages/csharp/SKILL.md +75 -0
  553. package/skills/languages/dart/SKILL.md +82 -0
  554. package/skills/languages/elixir/SKILL.md +74 -0
  555. package/skills/languages/erlang/SKILL.md +76 -0
  556. package/skills/languages/go/SKILL.md +83 -0
  557. package/skills/languages/haskell/SKILL.md +70 -0
  558. package/skills/languages/java/SKILL.md +71 -0
  559. package/skills/languages/javascript/SKILL.md +62 -0
  560. package/skills/languages/kotlin/SKILL.md +68 -0
  561. package/skills/languages/lua/SKILL.md +79 -0
  562. package/skills/languages/objectivec/SKILL.md +83 -0
  563. package/skills/languages/php/SKILL.md +74 -0
  564. package/skills/languages/python/SKILL.md +68 -0
  565. package/skills/languages/r/SKILL.md +70 -0
  566. package/skills/languages/ruby/SKILL.md +67 -0
  567. package/skills/languages/rust/SKILL.md +72 -0
  568. package/skills/languages/scala/SKILL.md +73 -0
  569. package/skills/languages/swift/SKILL.md +73 -0
  570. package/skills/languages/typescript/SKILL.md +69 -0
  571. package/skills/meta/authoring-agent-skills/SKILL.md +73 -0
  572. package/skills/meta/progressive-disclosure/SKILL.md +65 -0
  573. package/skills/meta/skill-frontmatter-spec/SKILL.md +65 -0
  574. package/skills/process/adr-technical-decisions/SKILL.md +59 -0
  575. package/skills/process/app-planning/SKILL.md +63 -0
  576. package/skills/process/architecture-before-code/SKILL.md +52 -0
  577. package/skills/process/breaking-work-into-sprints/SKILL.md +53 -0
  578. package/skills/process/idea-to-product/SKILL.md +50 -0
  579. package/skills/process/mocks-and-screen-flows/SKILL.md +52 -0
  580. package/skills/process/prioritization-moscow-rice/SKILL.md +64 -0
  581. package/skills/process/problem-framing/SKILL.md +51 -0
  582. package/skills/process/product-discovery/SKILL.md +53 -0
  583. package/skills/process/readme-generation/SKILL.md +90 -0
  584. package/skills/process/requirements-to-specs/SKILL.md +53 -0
  585. package/skills/process/research-official-docs/SKILL.md +58 -0
  586. package/skills/process/review-code-perf-security/SKILL.md +65 -0
  587. package/skills/process/security-by-design/SKILL.md +68 -0
  588. package/skills/process/specs-to-issues/SKILL.md +53 -0
  589. package/skills/process/testing-before-done/SKILL.md +61 -0
  590. package/skills/process/validating-ux-navigation/SKILL.md +63 -0
  591. package/skills/references/ai-attachments-ui/SKILL.md +66 -0
  592. package/skills/references/ai-in-browser-webllm/SKILL.md +74 -0
  593. package/skills/references/ai-tool-ui-patterns/SKILL.md +63 -0
  594. package/skills/references/component-patterns-gallery/SKILL.md +62 -0
  595. package/skills/references/gradient-resources/SKILL.md +66 -0
  596. package/skills/references/react-component-libraries/SKILL.md +61 -0
  597. package/skills/references/saas-landing-patterns/SKILL.md +67 -0
  598. package/skills/references/shadcn-tailwind-theming/SKILL.md +74 -0
  599. package/skills/references/vercel-ai-sdk-elements/SKILL.md +66 -0
  600. package/skills/references/web-animation-codrops/SKILL.md +68 -0
  601. package/skills/stacks/aiml/jupyter/SKILL.md +68 -0
  602. package/skills/stacks/aiml/keras/SKILL.md +77 -0
  603. package/skills/stacks/aiml/numpy/SKILL.md +69 -0
  604. package/skills/stacks/aiml/pandas/SKILL.md +72 -0
  605. package/skills/stacks/aiml/pytorch/SKILL.md +77 -0
  606. package/skills/stacks/aiml/scikit-learn/SKILL.md +74 -0
  607. package/skills/stacks/aiml/tensorflow/SKILL.md +79 -0
  608. package/skills/stacks/auth/auth0/SKILL.md +63 -0
  609. package/skills/stacks/auth/authjs/SKILL.md +69 -0
  610. package/skills/stacks/auth/clerk/SKILL.md +72 -0
  611. package/skills/stacks/auth/keycloak/SKILL.md +63 -0
  612. package/skills/stacks/auth/lucia/SKILL.md +56 -0
  613. package/skills/stacks/auth/passport/SKILL.md +70 -0
  614. package/skills/stacks/auth/supabase-auth/SKILL.md +66 -0
  615. package/skills/stacks/baas/amplify/SKILL.md +71 -0
  616. package/skills/stacks/baas/appwrite/SKILL.md +79 -0
  617. package/skills/stacks/baas/firebase/SKILL.md +73 -0
  618. package/skills/stacks/baas/heroku/SKILL.md +71 -0
  619. package/skills/stacks/backend/actix/SKILL.md +77 -0
  620. package/skills/stacks/backend/adonisjs/SKILL.md +65 -0
  621. package/skills/stacks/backend/aspnet-core/SKILL.md +75 -0
  622. package/skills/stacks/backend/codeigniter/SKILL.md +76 -0
  623. package/skills/stacks/backend/django/SKILL.md +62 -0
  624. package/skills/stacks/backend/express/SKILL.md +65 -0
  625. package/skills/stacks/backend/fastapi/SKILL.md +64 -0
  626. package/skills/stacks/backend/fastify/SKILL.md +64 -0
  627. package/skills/stacks/backend/fiber/SKILL.md +68 -0
  628. package/skills/stacks/backend/flask/SKILL.md +71 -0
  629. package/skills/stacks/backend/gin/SKILL.md +68 -0
  630. package/skills/stacks/backend/graphql/SKILL.md +70 -0
  631. package/skills/stacks/backend/hono/SKILL.md +64 -0
  632. package/skills/stacks/backend/koa/SKILL.md +63 -0
  633. package/skills/stacks/backend/laravel/SKILL.md +73 -0
  634. package/skills/stacks/backend/nestjs/SKILL.md +70 -0
  635. package/skills/stacks/backend/nginx/SKILL.md +77 -0
  636. package/skills/stacks/backend/phoenix/SKILL.md +68 -0
  637. package/skills/stacks/backend/rails/SKILL.md +67 -0
  638. package/skills/stacks/backend/spring/SKILL.md +70 -0
  639. package/skills/stacks/backend/spring-boot/SKILL.md +70 -0
  640. package/skills/stacks/backend/symfony/SKILL.md +77 -0
  641. package/skills/stacks/container/containerd/SKILL.md +75 -0
  642. package/skills/stacks/container/docker/SKILL.md +90 -0
  643. package/skills/stacks/container/podman/SKILL.md +93 -0
  644. package/skills/stacks/database/cassandra/SKILL.md +74 -0
  645. package/skills/stacks/database/cockroachdb/SKILL.md +69 -0
  646. package/skills/stacks/database/dynamodb/SKILL.md +62 -0
  647. package/skills/stacks/database/mariadb/SKILL.md +71 -0
  648. package/skills/stacks/database/mongodb/SKILL.md +71 -0
  649. package/skills/stacks/database/mysql/SKILL.md +72 -0
  650. package/skills/stacks/database/neon/SKILL.md +68 -0
  651. package/skills/stacks/database/planetscale/SKILL.md +70 -0
  652. package/skills/stacks/database/postgresql/SKILL.md +81 -0
  653. package/skills/stacks/database/redis/SKILL.md +78 -0
  654. package/skills/stacks/database/sqlite/SKILL.md +70 -0
  655. package/skills/stacks/database/supabase/SKILL.md +79 -0
  656. package/skills/stacks/dataviz/chart-js/SKILL.md +72 -0
  657. package/skills/stacks/dataviz/d3/SKILL.md +77 -0
  658. package/skills/stacks/dataviz/grafana/SKILL.md +69 -0
  659. package/skills/stacks/dataviz/plotly/SKILL.md +71 -0
  660. package/skills/stacks/frontend/alpine/SKILL.md +75 -0
  661. package/skills/stacks/frontend/angular/SKILL.md +75 -0
  662. package/skills/stacks/frontend/backbone/SKILL.md +82 -0
  663. package/skills/stacks/frontend/ember/SKILL.md +85 -0
  664. package/skills/stacks/frontend/htmx/SKILL.md +73 -0
  665. package/skills/stacks/frontend/lit/SKILL.md +76 -0
  666. package/skills/stacks/frontend/preact/SKILL.md +74 -0
  667. package/skills/stacks/frontend/qwik/SKILL.md +65 -0
  668. package/skills/stacks/frontend/react/SKILL.md +77 -0
  669. package/skills/stacks/frontend/solidjs/SKILL.md +75 -0
  670. package/skills/stacks/frontend/svelte/SKILL.md +70 -0
  671. package/skills/stacks/frontend/vue/SKILL.md +69 -0
  672. package/skills/stacks/infra/ansible/SKILL.md +76 -0
  673. package/skills/stacks/infra/aws/SKILL.md +66 -0
  674. package/skills/stacks/infra/azure/SKILL.md +72 -0
  675. package/skills/stacks/infra/circleci/SKILL.md +78 -0
  676. package/skills/stacks/infra/cloudflare/SKILL.md +65 -0
  677. package/skills/stacks/infra/fly-io/SKILL.md +63 -0
  678. package/skills/stacks/infra/gcp/SKILL.md +66 -0
  679. package/skills/stacks/infra/jenkins/SKILL.md +73 -0
  680. package/skills/stacks/infra/kubernetes/SKILL.md +64 -0
  681. package/skills/stacks/infra/netlify/SKILL.md +60 -0
  682. package/skills/stacks/infra/railway/SKILL.md +63 -0
  683. package/skills/stacks/infra/tailscale/SKILL.md +65 -0
  684. package/skills/stacks/infra/terraform/SKILL.md +75 -0
  685. package/skills/stacks/infra/vagrant/SKILL.md +70 -0
  686. package/skills/stacks/infra/vercel/SKILL.md +60 -0
  687. package/skills/stacks/meta/astro/SKILL.md +64 -0
  688. package/skills/stacks/meta/docusaurus/SKILL.md +71 -0
  689. package/skills/stacks/meta/eleventy/SKILL.md +69 -0
  690. package/skills/stacks/meta/gatsby/SKILL.md +63 -0
  691. package/skills/stacks/meta/hugo/SKILL.md +73 -0
  692. package/skills/stacks/meta/jekyll/SKILL.md +70 -0
  693. package/skills/stacks/meta/nextjs/SKILL.md +62 -0
  694. package/skills/stacks/meta/nuxt/SKILL.md +66 -0
  695. package/skills/stacks/meta/remix/SKILL.md +67 -0
  696. package/skills/stacks/meta/sveltekit/SKILL.md +70 -0
  697. package/skills/stacks/meta/vite/SKILL.md +63 -0
  698. package/skills/stacks/mobile/android/SKILL.md +77 -0
  699. package/skills/stacks/mobile/flutter/SKILL.md +77 -0
  700. package/skills/stacks/mobile/ionic/SKILL.md +72 -0
  701. package/skills/stacks/mobile/nativescript/SKILL.md +71 -0
  702. package/skills/stacks/mobile/react-native/SKILL.md +75 -0
  703. package/skills/stacks/mobile/xamarin/SKILL.md +73 -0
  704. package/skills/stacks/orm/diesel/SKILL.md +72 -0
  705. package/skills/stacks/orm/django-orm/SKILL.md +58 -0
  706. package/skills/stacks/orm/drizzle/SKILL.md +67 -0
  707. package/skills/stacks/orm/gorm/SKILL.md +73 -0
  708. package/skills/stacks/orm/knex/SKILL.md +64 -0
  709. package/skills/stacks/orm/mongoose/SKILL.md +64 -0
  710. package/skills/stacks/orm/prisma/SKILL.md +64 -0
  711. package/skills/stacks/orm/sequelize/SKILL.md +65 -0
  712. package/skills/stacks/orm/sqlalchemy/SKILL.md +71 -0
  713. package/skills/stacks/orm/typeorm/SKILL.md +70 -0
  714. package/skills/stacks/queue/bullmq/SKILL.md +69 -0
  715. package/skills/stacks/queue/celery/SKILL.md +68 -0
  716. package/skills/stacks/queue/kafka/SKILL.md +66 -0
  717. package/skills/stacks/queue/nats/SKILL.md +66 -0
  718. package/skills/stacks/queue/rabbitmq/SKILL.md +64 -0
  719. package/skills/stacks/queue/redis/SKILL.md +66 -0
  720. package/skills/stacks/runtime/beam/SKILL.md +72 -0
  721. package/skills/stacks/runtime/bun/SKILL.md +80 -0
  722. package/skills/stacks/runtime/deno/SKILL.md +74 -0
  723. package/skills/stacks/runtime/dotnet/SKILL.md +64 -0
  724. package/skills/stacks/runtime/jvm/SKILL.md +66 -0
  725. package/skills/stacks/runtime/node/SKILL.md +70 -0
  726. package/skills/stacks/runtime/pypy/SKILL.md +69 -0
  727. package/skills/stacks/runtime/python3/SKILL.md +70 -0
  728. package/skills/stacks/styling/bootstrap/SKILL.md +74 -0
  729. package/skills/stacks/styling/bulma/SKILL.md +80 -0
  730. package/skills/stacks/styling/chakra-ui/SKILL.md +61 -0
  731. package/skills/stacks/styling/css-modules/SKILL.md +54 -0
  732. package/skills/stacks/styling/mui/SKILL.md +60 -0
  733. package/skills/stacks/styling/sass/SKILL.md +63 -0
  734. package/skills/stacks/styling/shadcn-ui/SKILL.md +58 -0
  735. package/skills/stacks/styling/styled-components/SKILL.md +62 -0
  736. package/skills/stacks/styling/tailwind/SKILL.md +59 -0
  737. package/skills/stacks/styling/unocss/SKILL.md +64 -0
  738. package/skills/stacks/styling/vanilla-extract/SKILL.md +64 -0
  739. package/skills/stacks/styling/vuetify/SKILL.md +89 -0
  740. package/skills/stacks/testing/cypress/SKILL.md +68 -0
  741. package/skills/stacks/testing/jasmine/SKILL.md +67 -0
  742. package/skills/stacks/testing/jest/SKILL.md +67 -0
  743. package/skills/stacks/testing/mocha/SKILL.md +71 -0
  744. package/skills/stacks/testing/playwright/SKILL.md +68 -0
  745. package/skills/stacks/testing/puppeteer/SKILL.md +70 -0
  746. package/skills/stacks/testing/selenium/SKILL.md +70 -0
  747. package/skills/stacks/testing/vitest/SKILL.md +68 -0
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: ai-attachments-ui
3
+ description: Attachment UI patterns for AI chat using AI Elements' Attachments component; consult when showing files/sources in prompts and messages.
4
+ domain: reference
5
+ category: reference
6
+ tags: [ai-elements, attachments, file-upload, ai-ui, shadcn, react]
7
+ official_sources:
8
+ - https://elements.ai-sdk.dev/components/attachments
9
+ - https://github.com/vercel/ai-elements
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # AI Attachments UI
14
+
15
+ ## Overview
16
+ The Attachments component from Vercel's AI Elements provides a unified way to display file attachments and source documents in AI chat UIs, with grid, inline, and list layout variants. It is a set of composable sub-components that render previews, file info, and a remove control, and it accepts AI SDK `FileUIPart` / `SourceDocumentUIPart` data. Read this when building file-upload affordances in a prompt input or showing attached/source files inside messages.
17
+
18
+ ## Official sources
19
+ - Docs: https://elements.ai-sdk.dev/components/attachments
20
+ - Repo: https://github.com/vercel/ai-elements
21
+ - Setup: https://elements.ai-sdk.dev/docs/setup
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npx ai-elements@latest add attachments
26
+ ```
27
+ Requires shadcn/ui initialized and Tailwind CSS Variables mode (per AI Elements setup).
28
+
29
+ ## Core concepts
30
+ - `<Attachments />` is the container and takes a `variant` of `"grid" | "inline" | "list"` to control layout.
31
+ - `<Attachment />` wraps a single item and accepts `data` (a `FileUIPart` or `SourceDocumentUIPart` with an id) plus an `onRemove` callback.
32
+ - Composable sub-parts: `<AttachmentPreview />` (image/video/icon), `<AttachmentInfo />` (filename + media type), `<AttachmentRemove />` (remove button), `<AttachmentHoverCard />` (hover preview), `<AttachmentEmpty />` (empty state).
33
+ - `AttachmentInfo` exposes `showMediaType`, and `AttachmentRemove` accepts a custom `label` for accessibility.
34
+ - Designed to map directly over AI SDK file/source-document parts, so it pairs naturally with Prompt Input and Message.
35
+
36
+ ## Best practices
37
+ - Choose the layout `variant` to match context: `grid` for galleries, `inline` for compact prompt-bar chips, `list` for detailed/source views.
38
+ - Provide an accessible `label` on `AttachmentRemove` so screen-reader users understand the remove action.
39
+ - Render attachments by mapping AI SDK `FileUIPart` data rather than inventing a parallel attachment shape.
40
+ - Use `AttachmentEmpty` to communicate the empty state instead of rendering nothing.
41
+
42
+ ## Common pitfalls
43
+ - Passing data without a stable `id` → each attachment's `data` should carry an id so list rendering and removal stay correct.
44
+ - Building custom remove buttons → use `AttachmentRemove` with `onRemove` so behavior and a11y are handled.
45
+ - Forgetting media-type cues → enable `showMediaType` / previews so users can tell files apart at a glance.
46
+
47
+ ## Examples
48
+ ```tsx
49
+ <Attachments variant="grid">
50
+ {files.map((file) => (
51
+ <Attachment key={file.id} data={file} onRemove={() => remove(file.id)}>
52
+ <AttachmentPreview />
53
+ <AttachmentInfo showMediaType />
54
+ <AttachmentRemove label="Remove attachment" />
55
+ </Attachment>
56
+ ))}
57
+ </Attachments>
58
+ ```
59
+
60
+ ## Further reading
61
+ - Prompt Input component: https://elements.ai-sdk.dev/
62
+ - AI SDK docs: https://ai-sdk.dev/
63
+
64
+ ## Related skills
65
+ - ../vercel-ai-sdk-elements — the parent AI Elements library
66
+ - ../ai-tool-ui-patterns — rendering tool results in chat
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: ai-in-browser-webllm
3
+ description: Run LLMs fully in-browser/locally with WebLLM via WebGPU; consult for client-side inference, offline AI, and OpenAI-style chat without a server.
4
+ domain: reference
5
+ category: reference
6
+ tags: [webllm, llm, webgpu, in-browser, mlc, local-inference]
7
+ official_sources:
8
+ - https://webllm.mlc.ai/docs/
9
+ - https://github.com/mlc-ai/web-llm
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # WebLLM — In-Browser LLM Inference
14
+
15
+ ## Overview
16
+ WebLLM is a high-performance, in-browser LLM inference engine from the MLC project. It runs open models (Llama 3, Phi 3, Gemma, Mistral, Qwen, and more) entirely on the client using WebGPU for hardware acceleration, with no server-side processing. It exposes an OpenAI-compatible API (streaming, JSON mode), making it useful for privacy-preserving, offline-capable, or zero-backend AI features. Read this when you need client-side inference in a web app.
17
+
18
+ ## Official sources
19
+ - Docs: https://webllm.mlc.ai/docs/
20
+ - Repo: https://github.com/mlc-ai/web-llm
21
+ - Getting started: https://webllm.mlc.ai/docs/user/get_started.html
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npm install @mlc-ai/web-llm
26
+ ```
27
+ yarn and pnpm equivalents are documented:
28
+ ```bash
29
+ yarn add @mlc-ai/web-llm
30
+ pnpm install @mlc-ai/web-llm
31
+ ```
32
+
33
+ ## Core concepts
34
+ - `MLCEngine` is the core interface for model loading, chat completions, and embeddings; create it with the `CreateMLCEngine` factory or `new MLCEngine()` then `engine.reload(model)`.
35
+ - Models load asynchronously; pass an `initProgressCallback` to surface download/compile progress to users (first load can be large).
36
+ - WebGPU is the acceleration backend — runs entirely in-browser with no server support required.
37
+ - OpenAI-compatible chat completion API, including streaming and structured JSON-mode output.
38
+ - Built-in model registry plus support for custom MLC-format models compiled via MLC LLM.
39
+ - Cache backends for model weights: Cache API, IndexedDB, OPFS, and Cross-Origin Storage; optional SRI integrity verification.
40
+
41
+ ## Best practices
42
+ - Offload generation to a Web Worker or Service Worker so heavy compute does not block the main UI thread (documented in Advanced Use Cases).
43
+ - Reuse a single loaded engine instance and persist weights in a cache backend to avoid re-downloading on every visit.
44
+ - Always wire `initProgressCallback` so users see progress during the first (potentially large) model download.
45
+ - Pick the smallest model that meets quality needs; in-browser memory and download size are real constraints.
46
+
47
+ ## Common pitfalls
48
+ - Assuming it works everywhere → WebGPU support is required; gate the feature and provide a fallback when the browser/device lacks it.
49
+ - Loading the model on the main thread → use a Web Worker / Service Worker to keep the UI responsive.
50
+ - Treating first load as instant → weights must download and compile; cache them and show progress.
51
+
52
+ ## Examples
53
+ ```javascript
54
+ import { CreateMLCEngine } from "@mlc-ai/web-llm";
55
+
56
+ const engine = await CreateMLCEngine(
57
+ "Llama-3.1-8B-Instruct-q4f32_1-MLC",
58
+ { initProgressCallback: (p) => console.log(p) }
59
+ );
60
+
61
+ const reply = await engine.chat.completions.create({
62
+ messages: [{ role: "user", content: "Hello!" }],
63
+ });
64
+ console.log(reply.choices[0].message.content);
65
+ ```
66
+
67
+ ## Further reading
68
+ - Basic Usage: https://webllm.mlc.ai/docs/user/basic_usage.html
69
+ - API Reference: https://webllm.mlc.ai/docs/user/api_reference.html
70
+ - Advanced Use Cases (Web Worker): https://webllm.mlc.ai/docs/user/advanced_usage.html
71
+
72
+ ## Related skills
73
+ - ../vercel-ai-sdk-elements — UI components for AI-native apps
74
+ - ../ai-tool-ui-patterns — rendering tool-call results in chat UIs
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: ai-tool-ui-patterns
3
+ description: UI patterns for AI tool-calls and results — turn tool JSON into typed, validated components; consult when rendering tool outputs in chat.
4
+ domain: reference
5
+ category: reference
6
+ tags: [tool-ui, ai-ui, tool-calling, zod, shadcn, assistant-ui]
7
+ official_sources:
8
+ - https://www.tool-ui.com/docs/overview
9
+ - https://github.com/assistant-ui/tool-ui
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # AI Tool UI Patterns
14
+
15
+ ## Overview
16
+ When a model calls a tool, most apps dump raw JSON into the conversation. Tool UI (by the assistant-ui project) is an open-source component library where each component turns a specific kind of tool output — a card, table, option list, chart, approval, form, or media card — into real, interactive UI so users can understand and act without leaving the chat. It is JSON-native, typed (Zod schemas), accessible, and built on Tailwind, Radix, and shadcn/ui. Read this when designing how tool-call results render and how users approve or respond to them.
17
+
18
+ ## Official sources
19
+ - Docs: https://www.tool-ui.com/docs/overview
20
+ - Repo: https://github.com/assistant-ui/tool-ui
21
+ - Quick start: https://www.tool-ui.com/docs/quick-start
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npx shadcn@latest add @tool-ui/link-preview
26
+ ```
27
+ Components use the shadcn copy/paste model — they live in your codebase with no dependency lock-in; swap `link-preview` for any component name.
28
+
29
+ ## Core concepts
30
+ - Each component maps one kind of tool output to UI (table, chart, option list, approval, form, media card), instead of showing raw JSON.
31
+ - Copy/paste model (like shadcn/ui): components live in your repo, so there is no dependency lock-in.
32
+ - Every component ships a colocated `schema.ts` Zod schema; tool output is validated, rendered when valid, and fails safely when not.
33
+ - A three-part flow: backend tool defines input/output via AI SDK + Zod, the schema validates on server and client, and a frontend `toolkit` maps tool names to components.
34
+ - Built on Tailwind, Radix, and shadcn/ui, so it inherits accessible primitives and your theme.
35
+
36
+ ## Best practices
37
+ - Validate tool output against the component's Zod schema on both server and client before rendering.
38
+ - Maintain a `toolkit` mapping of backend tool names to frontend components so the runtime can pick the right renderer.
39
+ - Prefer interactive surfaces (approvals, forms) over read-only JSON dumps for actions the user must take.
40
+ - Since components are copied into your repo, version and customize them deliberately rather than expecting upstream updates.
41
+
42
+ ## Common pitfalls
43
+ - Rendering unvalidated tool JSON → parse against the Zod schema and fail safely when it does not match.
44
+ - Hard-coding which component renders a tool → use the `toolkit` name→component map so new tools are easy to wire.
45
+ - Treating it like an installed npm package → it is copy/paste; you own the code and its updates.
46
+
47
+ ## Examples
48
+ ```ts
49
+ // Register tools -> components so the runtime knows what to render.
50
+ const toolkit = {
51
+ getMetrics: MetricsTable,
52
+ deployPlan: ApprovalCard,
53
+ linkPreview: LinkPreview,
54
+ };
55
+ ```
56
+
57
+ ## Further reading
58
+ - Quick start: https://www.tool-ui.com/docs/quick-start
59
+ - assistant-ui project: https://github.com/assistant-ui
60
+
61
+ ## Related skills
62
+ - ../vercel-ai-sdk-elements — AI Elements (includes a Tool component)
63
+ - ../ai-attachments-ui — attachment UI patterns
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: component-patterns-gallery
3
+ description: Canonical UI component anatomy, naming, and patterns; consult to name, structure, and document components consistently with real design systems.
4
+ domain: reference
5
+ category: reference
6
+ tags: [components, design-system, ui-patterns, anatomy, accessibility]
7
+ official_sources:
8
+ - https://component.gallery/
9
+ - https://alignui.com/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Component Patterns & Anatomy Gallery
14
+
15
+ ## Overview
16
+ When you build a UI component you face two recurring questions: what is this thing actually called, and what parts does it have. The Component Gallery (component.gallery) answers the first by cataloging interface components from real-world design systems — each entry lists the component, its alternate names, a description, and links to how many systems implement it. AlignUI (alignui.com) answers the second as a production design system with React + Tailwind components and a synced Figma kit. Consult this skill before naming or structuring a component so your vocabulary and anatomy match established conventions instead of ad-hoc invention.
17
+
18
+ ## Official sources
19
+ - The Component Gallery: https://component.gallery/
20
+ - Components index: https://component.gallery/components/
21
+ - Design systems index: https://component.gallery/design-systems/
22
+ - AlignUI: https://alignui.com/
23
+
24
+ ## Core concepts
25
+ - **Component anatomy.** Most components decompose into named parts (e.g. a card has container, media, header, body, actions; a dialog has overlay, container, title, description, close, footer). Naming the parts is the foundation of an API and of accessible markup.
26
+ - **Canonical naming and aliases.** The same pattern goes by different names across systems (Accordion vs. Disclosure vs. Expander; Snackbar vs. Toast; Combobox vs. Autocomplete). The Component Gallery surfaces these aliases so you pick a recognizable name.
27
+ - **Compare-across-systems.** For any component you can see how multiple mature design systems solved the same interaction/layout problem, which exposes the variants, props, and states worth supporting.
28
+ - **States and variants.** Components are defined as much by their states (default, hover, focus, active, disabled, loading, error, selected) and variants (size, emphasis, intent) as by their static look.
29
+ - **Design-to-code parity.** Systems like AlignUI keep a Figma kit and a coded library in sync; treat the design tokens and component contracts as a single source of truth across both.
30
+
31
+ ## Best practices
32
+ - Use the canonical component name (and document its aliases) so designers, engineers, and future agents share one vocabulary — look it up in The Component Gallery rather than coining a new term.
33
+ - Model the component's full state matrix (hover/focus/active/disabled/loading/error) up front; missing states are where UIs feel unfinished.
34
+ - Build interactive components on accessible primitives (correct roles, keyboard support, focus management) — study how reference systems handle ARIA for the pattern before rolling your own.
35
+ - Expose variation through a small, named prop API (size, variant/intent, emphasis) rather than many one-off boolean flags.
36
+ - Keep design tokens (color, spacing, radius, typography) as the shared layer so Figma and code stay in parity.
37
+
38
+ ## Common pitfalls
39
+ - Inventing a bespoke name for a well-known pattern → confuses collaborators and search; reuse the established name and list aliases.
40
+ - Shipping only the happy-path visual and forgetting focus/disabled/loading/error states → incomplete, inaccessible component.
41
+ - Cloning a screenshot's pixels but skipping keyboard and ARIA semantics → looks right, fails real use; reference how design systems implement the role and interactions.
42
+
43
+ ## Examples
44
+ ```text
45
+ Dialog (aliases: Modal)
46
+ - Overlay (scrim, click-to-dismiss optional)
47
+ - Container (focus-trapped, role="dialog", aria-modal="true")
48
+ - Title (aria-labelledby target)
49
+ - Description (aria-describedby target)
50
+ - Content
51
+ - Footer (primary + secondary actions)
52
+ - Close button (aria-label)
53
+ States: open / closed; initial focus + focus return on close
54
+ ```
55
+
56
+ ## Further reading
57
+ - component.gallery component pages for per-pattern anatomy, aliases, and cross-system examples.
58
+ - AlignUI docs for a concrete React + Tailwind implementation of these patterns.
59
+
60
+ ## Related skills
61
+ - ../shadcn-tailwind-theming — implement these patterns as themeable shadcn/Tailwind components.
62
+ - ../react-component-libraries — prebuilt implementations of common components.
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: gradient-resources
3
+ description: CSS gradient functions plus generators for static and animated/shader gradients; consult when crafting backgrounds, accents, or hero visuals.
4
+ domain: reference
5
+ category: reference
6
+ tags: [gradient, css, background, webgl, color, design]
7
+ official_sources:
8
+ - https://developer.mozilla.org/en-US/docs/Web/CSS/gradient
9
+ - https://craft-gradients.artcreativecode.com/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Gradient Resources & CSS Techniques
14
+
15
+ ## Overview
16
+ Gradients are the workhorse of modern backgrounds, buttons, and hero visuals. The MDN `<gradient>` reference (developer.mozilla.org) is the canonical, standards-aligned source for the CSS gradient functions and their syntax, color stops, and color-space interpolation. For richer or animated looks, Craft Gradients (craft-gradients.artcreativecode.com) is an interactive WebGL/shader gradient generator with presets you can record, embed, and export. Read this skill when you need correct CSS gradient syntax or a generator for static and animated gradient visuals.
17
+
18
+ ## Official sources
19
+ - MDN CSS `<gradient>`: https://developer.mozilla.org/en-US/docs/Web/CSS/gradient
20
+ - MDN `linear-gradient()`: https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient
21
+ - Craft Gradients (WebGL generator): https://craft-gradients.artcreativecode.com/
22
+
23
+ ## Core concepts
24
+ - **`<gradient>` is an `<image>`.** Per MDN, a gradient is a CSS `<image>` with no intrinsic size; it scales to its container and is used wherever an image is valid (e.g. `background-image`).
25
+ - **Three base functions + repeating variants.** `linear-gradient()` (along a line/angle), `radial-gradient()` (from a center outward), and `conic-gradient()` (around a center) — each with a `repeating-` counterpart for banded/striped patterns.
26
+ - **Color stops and positions.** Stops define where colors sit (`red 0%, blue 100%`); hard stops (two stops at the same position) create crisp bands; hints control the midpoint of a transition.
27
+ - **Color-space interpolation.** Gradients interpolate in a chosen color space (sRGB, oklab, lch, display-p3, etc.) and use alpha-premultiplied math to avoid muddy grays when fading to transparent — choosing `in oklch`/`in oklab` often yields more even, vivid transitions than sRGB.
28
+ - **Static CSS vs. animated WebGL.** CSS gradients are static (animatable only indirectly, e.g. moving `background-position`); shader/WebGL generators like Craft Gradients produce genuinely animated, organic gradients exported as embeds or recordings.
29
+
30
+ ## Best practices
31
+ - Layer multiple gradients in one `background` (comma-separated) to build depth — e.g. a radial highlight over a linear base — instead of stacking extra DOM elements.
32
+ - Choose a perceptual color space (`in oklch` / `in oklab`) for smoother, more uniform transitions, and use alpha-aware fades to avoid the gray-band artifact when fading to transparent. (See MDN interpolation notes.)
33
+ - For "animated" CSS gradients, animate `background-position` on an oversized `background-size` rather than re-rendering colors, keeping it compositor-friendly.
34
+ - Use hard color stops to create flat color blocks, stripes, or geometric backgrounds from a single gradient declaration.
35
+ - Reach for a WebGL generator (Craft Gradients) only when you need living, organic motion; export and lazy-load it, and provide a static CSS fallback.
36
+
37
+ ## Common pitfalls
38
+ - Fading a color to fully transparent and getting an unexpected gray band → the default sRGB transparent is `rgb(0 0 0 / 0)`; fade to the same color at 0 alpha (e.g. `rgba(255,0,0,0)`) or rely on the alpha-premultiplied/oklab interpolation MDN describes.
39
+ - Expecting CSS gradients to animate their colors directly → CSS can't tween gradient color stops; animate `background-position` or use a shader/JS approach.
40
+ - Heavy full-screen WebGL gradient on every page load → costs performance and battery; prefer CSS where it suffices and lazy-load shader backgrounds.
41
+
42
+ ## Examples
43
+ ```css
44
+ /* Layered static gradient with a perceptual color space */
45
+ .hero {
46
+ background:
47
+ radial-gradient(60% 60% at 50% 0%, rgba(99,102,241,.35), transparent 70%),
48
+ linear-gradient(in oklch to bottom, #0f172a, #1e293b);
49
+ }
50
+
51
+ /* "Animated" gradient via background-position (compositor-friendly) */
52
+ .animated {
53
+ background: linear-gradient(120deg, #6366f1, #ec4899, #6366f1);
54
+ background-size: 200% 200%;
55
+ animation: pan 8s ease-in-out infinite;
56
+ }
57
+ @keyframes pan { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
58
+ ```
59
+
60
+ ## Further reading
61
+ - MDN pages for `radial-gradient()` and `conic-gradient()` for their full parameter syntax.
62
+ - Craft Gradients to design, record, and embed animated shader gradients.
63
+
64
+ ## Related skills
65
+ - ../shadcn-tailwind-theming — apply gradients as themed backgrounds/accents via CSS variables.
66
+ - ../web-animation-codrops — combine gradients with motion for hero effects.
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: react-component-libraries
3
+ description: Curated React component sources for modern animated UI; consult to find prebuilt components, blocks, and effects instead of building from scratch.
4
+ domain: reference
5
+ category: reference
6
+ tags: [react, components, tailwind, animation, framer-motion, shadcn]
7
+ official_sources:
8
+ - https://magicui.design/
9
+ - https://reactbits.dev/
10
+ - https://21st.dev/
11
+ verified: 2026-06-16
12
+ ---
13
+
14
+ # React Component Libraries (Modern UI)
15
+
16
+ ## Overview
17
+ For modern React UIs you rarely need to hand-build hero sections, animated text, marquees, or backgrounds — several curated sources provide them ready to drop in. Magic UI (magicui.design) offers 150+ free, open-source animated components built with React, TypeScript, Tailwind, and Motion, positioned as a companion to shadcn/ui. React Bits (reactbits.dev) is an open collection of 100+ animated, interactive components (text, backgrounds, effects) available in JS/TS and CSS/Tailwind variants. 21st.dev is a community registry of shadcn/Tailwind components and marketing blocks, with an AI "Magic" MCP that generates them inside IDEs. Read this skill to pick the right source for animated or prebuilt UI.
18
+
19
+ ## Official sources
20
+ - Magic UI: https://magicui.design/
21
+ - React Bits: https://reactbits.dev/
22
+ - 21st.dev: https://21st.dev/
23
+ - 21st Magic MCP (repo): https://github.com/21st-dev/magic-mcp
24
+
25
+ ## Core concepts
26
+ - **Distribution by copy-paste, not just npm.** These sources favor copying component source into your project (often via a CLI like shadcn or jsrepo) so you own and can edit the code, mirroring the shadcn model.
27
+ - **Animated/effect components.** Magic UI and React Bits specialize in motion: animated text, shimmer/marquee/border effects, particle and gradient backgrounds, built on Motion/Framer Motion or plain CSS.
28
+ - **Variant flavors.** React Bits ships each component in JS or TS and CSS or Tailwind, so you match your stack without rewrites.
29
+ - **Blocks vs. components.** 21st.dev separates page-level blocks (heroes, pricing, testimonials, CTAs) from atomic UI components (buttons, inputs, modals) — blocks accelerate landing pages, components fill gaps in a design system.
30
+ - **AI generation via MCP.** 21st.dev's Magic MCP server lets IDE agents (Cursor, Windsurf, VS Code/Cline, Claude) generate and write components from natural-language prompts, drawing on the 21st.dev library.
31
+
32
+ ## Best practices
33
+ - Prefer these as a companion to shadcn/ui (Magic UI explicitly positions itself this way): use shadcn for primitives and these libraries for animated flourishes and marketing blocks.
34
+ - Install via the official CLI/registry path (shadcn or jsrepo where offered) so dependencies and file placement are handled correctly, then customize the copied source.
35
+ - Match the component flavor to your stack (TS + Tailwind vs. JS + CSS) at copy time to avoid post-hoc conversion — React Bits offers all four combinations.
36
+ - Treat copied components as your code: review, prune unused props, and align them to your theme tokens rather than leaving them as opaque imports.
37
+ - Gate heavy animated backgrounds/effects behind `prefers-reduced-motion` and lazy-loading to protect performance and accessibility.
38
+
39
+ ## Common pitfalls
40
+ - Assuming everything is an npm package → many components are copy-paste/CLI-installed source you own; check the source's install method.
41
+ - Layering many simultaneous animated effects (particles + marquee + gradient + parallax) → visual noise and jank; use motion sparingly and purposefully.
42
+ - Pasting components without theming them → they clash with your design tokens; remap colors/spacing to your variables.
43
+ - Pulling a component without checking its license/attribution requirements → verify the source's license before shipping.
44
+
45
+ ## Examples
46
+ ```bash
47
+ # Typical install paths (verify the exact command on each source's docs):
48
+ # Magic UI / 21st.dev components often add via the shadcn CLI registry:
49
+ npx shadcn@latest add "<registry-component-url>"
50
+
51
+ # React Bits supports CLI install via shadcn or jsrepo, or plain copy-paste of the JSX.
52
+ ```
53
+
54
+ ## Further reading
55
+ - magicui.design and reactbits.dev component galleries for the full catalogs.
56
+ - 21st.dev Magic MCP repo (github.com/21st-dev/magic-mcp) for AI-in-IDE component generation.
57
+
58
+ ## Related skills
59
+ - ../shadcn-tailwind-theming — theme these components consistently via CSS variables.
60
+ - ../web-animation-codrops — understand the motion techniques these components implement.
61
+ - ../saas-landing-patterns — assemble blocks into a converting landing page.
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: saas-landing-patterns
3
+ description: Proven SaaS landing-page structure, sections, copy and conversion patterns; consult when building or critiquing a marketing/landing page.
4
+ domain: reference
5
+ category: reference
6
+ tags: [landing-page, saas, conversion, marketing, ux]
7
+ official_sources:
8
+ - https://saaslandingpage.com/
9
+ - https://saaslandingpage.com/templates/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # SaaS Landing-Page Patterns
14
+
15
+ ## Overview
16
+ A SaaS landing page exists to convert a visitor into a signup, trial, or demo. There is a well-worn, repeatable section order that high-performing SaaS sites converge on. SaaS Landing Page (saaslandingpage.com) is a curated gallery of hundreds of real, shipped landing pages from SaaS companies and startups, organized by section, technology, and template, that lets you study what real teams actually do. Read this skill when you need to scaffold, populate, or audit a landing page rather than inventing structure from scratch.
17
+
18
+ ## Official sources
19
+ - Gallery: https://saaslandingpage.com/
20
+ - Features-page examples: https://saaslandingpage.com/features/
21
+ - Templates: https://saaslandingpage.com/templates/
22
+
23
+ ## Core concepts
24
+ - **Canonical section order.** The dominant pattern is: hero (headline + subhead + primary CTA + product visual) → social proof (logo wall) → problem/value proposition → features/benefits → how-it-works → deeper social proof (testimonials, case studies, metrics) → pricing → FAQ → final CTA → footer. Order may flex, but the hero and a final CTA are non-negotiable bookends.
25
+ - **Hero clarity over cleverness.** The headline must state what the product does and for whom within seconds. A subhead expands the value; one unmistakable primary CTA dominates; a product screenshot, demo loop, or illustration anchors the visual.
26
+ - **Benefits vs. features.** Features are what the product has; benefits are the outcome the user gets. Effective pages lead each feature block with the benefit, then back it with the mechanism.
27
+ - **Social proof as trust currency.** Logo walls, named testimonials, star ratings, customer counts, and quantified results ("saved 8 hrs/week") de-risk the decision and are placed near CTAs and the hero.
28
+ - **One conversion goal per page.** A landing page funnels toward a single primary action (start trial / book demo / sign up). Competing CTAs dilute conversion.
29
+
30
+ ## Best practices
31
+ - Repeat the primary CTA at natural decision points (after hero, after features, after pricing, in the footer) so the visitor never has to scroll back up to act. (Pattern observed across the saaslandingpage.com gallery.)
32
+ - Place a logo wall or short testimonial immediately below the hero — early social proof lifts perceived credibility before the user reads features.
33
+ - Make pricing legible: name tiers, show what each includes, highlight the recommended plan, and answer billing objections inline (cancel anytime, no card required).
34
+ - Design mobile-first; a large share of SaaS traffic is mobile, so the hero, CTA, and pricing must work in a single column before desktop refinements.
35
+ - Pair every feature claim with a concrete visual (screenshot, GIF, or annotated UI) rather than abstract iconography alone.
36
+
37
+ ## Common pitfalls
38
+ - Vague hero copy ("Reimagine your workflow") that never says what the product is → state the job-to-be-done plainly in the first line.
39
+ - Burying or omitting pricing → a missing or hidden pricing section forces visitors to bounce to find it; show it or explain why ("contact sales") explicitly.
40
+ - Multiple competing CTAs of equal weight (signup + demo + docs + newsletter) → pick one primary action and demote the rest to secondary styling.
41
+ - Wall-of-text feature lists with no visuals or hierarchy → chunk into benefit-led blocks with supporting imagery.
42
+
43
+ ## Examples
44
+ ```text
45
+ Hero
46
+ H1: <verb-led outcome — what it does, for whom>
47
+ Sub: <one sentence expanding the value>
48
+ [ Start free trial ] (primary) [ Book a demo ] (secondary)
49
+ <product screenshot / looping demo>
50
+ Logo wall: "Trusted by <brands>"
51
+ Value prop / problem→solution
52
+ Features (benefit-led, each with a visual)
53
+ How it works (3 steps)
54
+ Testimonials + metrics
55
+ Pricing (tiers, recommended plan highlighted)
56
+ FAQ
57
+ Final CTA (repeat primary action)
58
+ Footer
59
+ ```
60
+
61
+ ## Further reading
62
+ - Section-specific galleries on saaslandingpage.com (features pages, pricing pages) for live structural references.
63
+ - ../web-animation-codrops — motion and scroll interactions that elevate landing-page hero and section transitions.
64
+
65
+ ## Related skills
66
+ - ../component-patterns-gallery — anatomy of the buttons, cards, pricing tables, and nav used on landing pages.
67
+ - ../react-component-libraries — prebuilt hero/pricing/CTA blocks to assemble pages quickly.
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: shadcn-tailwind-theming
3
+ description: Theme and generate shadcn/ui + Tailwind components via CSS variables and theme editors; consult when styling or scaffolding a shadcn-based UI.
4
+ domain: reference
5
+ category: reference
6
+ tags: [shadcn, tailwind, theming, css-variables, design-tokens]
7
+ official_sources:
8
+ - https://ui.shadcn.com/
9
+ - https://ui.shadcn.com/docs/theming
10
+ - https://tweakcn.com/
11
+ verified: 2026-06-16
12
+ ---
13
+
14
+ # shadcn/ui + Tailwind Theming
15
+
16
+ ## Overview
17
+ shadcn/ui (ui.shadcn.com) is not a dependency you install and import — it is a set of accessible, Radix-based components styled with Tailwind that you copy into your codebase via a CLI and then own and customize. Theming runs entirely through CSS custom properties mapped to Tailwind, so one set of variables restyles every component and powers light/dark modes. Tools like tweakcn (tweakcn.com) and Magic UI Pro (pro.magicui.design) let you generate those variables visually or buy prebuilt blocks. Read this skill when you need to scaffold, theme, or recolor a shadcn-based interface.
18
+
19
+ ## Official sources
20
+ - Docs: https://ui.shadcn.com/
21
+ - Theming guide: https://ui.shadcn.com/docs/theming
22
+ - CLI: https://ui.shadcn.com/docs/cli
23
+ - Theme editor (tweakcn): https://tweakcn.com/
24
+ - Premium blocks/templates (Magic UI Pro): https://pro.magicui.design/
25
+
26
+ ## Core concepts
27
+ - **Copy-in, you-own-it model.** The CLI writes component source into your project (e.g. `components/ui/`). You edit the files directly; there is no black-box package to fight, and updates are deliberate copy-ins, not version bumps.
28
+ - **CSS-variable theming.** Colors are defined as CSS custom properties (background, foreground, primary, secondary, muted, accent, destructive, border, ring, etc.) and consumed by Tailwind. Restyling means changing the variables, not editing each component.
29
+ - **Light/dark via variable swap.** Dark mode is a second block of the same variables under a `.dark` selector (or media query); components don't change, only the values do.
30
+ - **Registry / "Build Your Own".** Components and blocks are distributed through a registry the CLI can pull from, which extends to community registries and prebuilt block collections.
31
+ - **Visual theme generation.** tweakcn provides a GUI to tune the palette, radius, and typography and export the exact CSS-variable block to paste into your stylesheet — faster and less error-prone than hand-tuning HSL values.
32
+
33
+ ## Best practices
34
+ - Initialize with the official CLI and let it configure paths, Tailwind, and the base color, rather than copying files manually. (See the CLI docs.)
35
+ - Theme by editing the CSS-variable layer (and its `.dark` counterpart), not by hardcoding colors inside components — this keeps every component consistent and re-themeable.
36
+ - Keep semantic token names (primary, muted, destructive) and map brand colors onto them, so swapping brands is a one-place change.
37
+ - Use a generator like tweakcn to produce a coherent, accessible palette and copy its exported variables verbatim, then commit them as your theme source of truth.
38
+ - Define both light and dark variable sets together so contrast is verified in both modes before shipping.
39
+
40
+ ## Common pitfalls
41
+ - Treating shadcn/ui like an npm component library and trying to `npm install` the components → it is a copy-in CLI distribution; run the CLI to add components.
42
+ - Hardcoding hex/HSL colors inside individual components → breaks theming and dark mode; reference the CSS variables instead.
43
+ - Forgetting the `.dark` variable block, so dark mode inherits light values → define both sets.
44
+ - Pasting a generated palette without checking contrast on text/background pairs → run a contrast check before committing.
45
+
46
+ ## Examples
47
+ ```css
48
+ /* app globals.css — semantic theme tokens consumed by Tailwind */
49
+ :root {
50
+ --background: 0 0% 100%;
51
+ --foreground: 240 10% 3.9%;
52
+ --primary: 240 5.9% 10%;
53
+ --primary-foreground: 0 0% 98%;
54
+ --border: 240 5.9% 90%;
55
+ --ring: 240 5.9% 10%;
56
+ }
57
+ .dark {
58
+ --background: 240 10% 3.9%;
59
+ --foreground: 0 0% 98%;
60
+ --primary: 0 0% 98%;
61
+ --primary-foreground: 240 5.9% 10%;
62
+ --border: 240 3.7% 15.9%;
63
+ --ring: 240 4.9% 83.9%;
64
+ }
65
+ ```
66
+
67
+ ## Further reading
68
+ - ui.shadcn.com/docs/theming for the full variable list and conventions.
69
+ - tweakcn.com to generate and export a custom theme's variable block.
70
+
71
+ ## Related skills
72
+ - ../component-patterns-gallery — anatomy and naming for the components you theme.
73
+ - ../react-component-libraries — Magic UI and others that compose with shadcn.
74
+ - ../gradient-resources — gradient backgrounds and accents to layer onto themed UIs.
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: vercel-ai-sdk-elements
3
+ description: AI Elements — composable shadcn/ui components for AI-native apps (chat, reasoning, tools); consult when building AI SDK chat/agent UIs.
4
+ domain: reference
5
+ category: reference
6
+ tags: [ai-sdk, ai-elements, vercel, shadcn, react, ai-ui]
7
+ official_sources:
8
+ - https://elements.ai-sdk.dev/
9
+ - https://github.com/vercel/ai-elements
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Vercel AI SDK — AI Elements
14
+
15
+ ## Overview
16
+ AI Elements is Vercel's component library and custom registry built on top of shadcn/ui to help you build AI-native applications faster. It ships composable, focused pieces (Conversation, Message, Prompt Input, Reasoning, Sources, Tool, Attachments, and more) with deep AI SDK integration — streaming, status states, and type safety built in. Because it follows shadcn/ui conventions, your existing theme applies automatically. Read this when building chat, agent, or generative UIs on the AI SDK.
17
+
18
+ ## Official sources
19
+ - Docs: https://elements.ai-sdk.dev/
20
+ - Repo: https://github.com/vercel/ai-elements
21
+ - Setup: https://elements.ai-sdk.dev/docs/setup
22
+ - AI SDK: https://ai-sdk.dev/
23
+
24
+ ## Install / setup
25
+ ```bash
26
+ npx ai-elements@latest
27
+ ```
28
+ Add individual components:
29
+ ```bash
30
+ npx ai-elements@latest add message
31
+ ```
32
+ pnpm/bun equivalents are documented (`pnpm dlx ai-elements@latest`, `bunx --bun ai-elements@latest`); the AI Elements CLI auto-initializes shadcn/ui if it is not already present.
33
+
34
+ ## Core concepts
35
+ - Built on shadcn/ui as a custom registry — components are added into your codebase (copy/own model), not hidden behind a dependency.
36
+ - Deep AI SDK integration: streaming, status states, and type safety are built into the components.
37
+ - Fully composable: small, focused primitives combine into custom chat/agent UIs rather than one monolithic widget.
38
+ - Component families span Chatbot (Conversation, Message, Prompt Input, Reasoning, Sources, Tool, Attachments), Code, Voice, and Workflow.
39
+ - CSS Variables mode only — relies on shadcn/ui's CSS-variable theming, so your tokens style the components.
40
+
41
+ ## Best practices
42
+ - Initialize shadcn/ui and configure Tailwind CSS Variables mode before adding Elements (the CLI can set up shadcn/ui automatically).
43
+ - Run the CLI with your project's package runner (npx/pnpm dlx/bunx) so dependencies match your package manager.
44
+ - Compose primitives (Message + Reasoning + Sources + Tool) instead of building bespoke chat markup, so streaming and status handling come for free.
45
+ - Theme through shadcn/ui CSS variables so Elements inherit your brand automatically.
46
+
47
+ ## Common pitfalls
48
+ - Expecting it to work without shadcn/ui or Tailwind → AI Elements requires shadcn/ui initialized and Tailwind configured (CSS Variables mode).
49
+ - Treating it as an npm UI dependency → components are added into your repo via the registry; you own and customize the code.
50
+ - Skipping the AI SDK wiring → Elements expect AI SDK message/streaming shapes; pair them with the SDK's hooks.
51
+
52
+ ## Examples
53
+ ```bash
54
+ # Add a chat conversation surface and prompt input
55
+ npx ai-elements@latest add conversation
56
+ npx ai-elements@latest add prompt-input
57
+ ```
58
+
59
+ ## Further reading
60
+ - Components index: https://elements.ai-sdk.dev/
61
+ - AI SDK UI docs: https://ai-sdk.dev/
62
+
63
+ ## Related skills
64
+ - ../ai-attachments-ui — attachment UI patterns in AI Elements
65
+ - ../ai-tool-ui-patterns — rendering tool-call results
66
+ - ../shadcn-tailwind-theming — theming the underlying shadcn/ui layer