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,63 @@
1
+ ---
2
+ name: auth0
3
+ description: Auth0 — hosted identity platform built on OAuth 2.0 and OpenID Connect for adding login, SSO, and M2M auth via Universal Login and SDKs.
4
+ domain: stack
5
+ category: auth
6
+ tags: [auth, identity, oauth2, oidc, sso, universal-login, jwt, saml]
7
+ official_sources:
8
+ - https://auth0.com/docs
9
+ - https://github.com/auth0
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Auth0
14
+
15
+ ## Overview
16
+ Auth0 is a hosted identity and access management platform that adds authentication and authorization to applications using OAuth 2.0 and OpenID Connect (plus SAML). It provides Universal Login, quickstarts and SDKs for many frameworks, and supports flows for web, single-page, native, machine-to-machine, and device apps. Read this when you want a managed IdP rather than self-hosting auth.
17
+
18
+ ## Official sources
19
+ - Docs: https://auth0.com/docs
20
+ - Repo (org): https://github.com/auth0
21
+ - Install / quickstarts: https://auth0.com/docs/quickstarts
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npm install @auth0/nextjs-auth0
26
+ ```
27
+ (Auth0 publishes per-framework SDKs from its official, domain-verified GitHub org — e.g. `nextjs-auth0`, `auth0-react`, `auth0-spa-js`, `node-auth0`. Pick the SDK matching your stack from https://auth0.com/docs/quickstarts.)
28
+
29
+ ## Core concepts
30
+ - Tenant: your isolated Auth0 environment with its own users, applications, and configuration.
31
+ - Application (client): a registered app type — Single Page, Regular Web, Native, or Machine-to-Machine — each mapped to an appropriate OAuth flow.
32
+ - Universal Login: Auth0-hosted login page that centralizes authentication and enables SSO across apps.
33
+ - OAuth 2.0 / OIDC flows: Auth0 documents Authorization Code, Authorization Code with PKCE, Client Credentials (M2M), Device Authorization, and more, each suited to an app type.
34
+ - Tokens: Auth0 issues ID tokens (OIDC) and access tokens (often JWTs) that apps and APIs validate.
35
+ - APIs & scopes: protect your backend by registering it as an API with an audience and scopes/permissions.
36
+
37
+ ## Best practices
38
+ - Use Authorization Code Flow with PKCE for SPAs and native/mobile apps; Auth0 documents PKCE as the recommended public-client flow (https://auth0.com/docs/get-started/authentication-and-authorization-flow).
39
+ - Use the Client Credentials flow for machine-to-machine access, not user-facing flows.
40
+ - Prefer Universal Login over embedding login forms, to get SSO, attack protection, and consistent UX.
41
+ - Validate access tokens at your API by audience and issuer; don't trust ID tokens for API authorization.
42
+
43
+ ## Common pitfalls
44
+ - Choosing the wrong application type → mismatched flow (e.g. SPA configured as a Regular Web App) breaks token handling; pick the type that matches your app.
45
+ - Using the Resource Owner Password flow for normal logins → Auth0 marks it as not recommended and only for highly-trusted clients.
46
+ - Treating the ID token as an API access token → use the access token (with the right audience/scopes) to authorize API calls.
47
+
48
+ ## Examples
49
+ ```ts
50
+ // Next.js (App Router) with @auth0/nextjs-auth0
51
+ import { Auth0Client } from "@auth0/nextjs-auth0/server"
52
+
53
+ export const auth0 = new Auth0Client()
54
+ // Configure AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_CLIENT_SECRET, AUTH0_SECRET, APP_BASE_URL in env.
55
+ ```
56
+
57
+ ## Further reading
58
+ - https://auth0.com/docs/get-started/authentication-and-authorization-flow — choosing the right flow
59
+ - https://auth0.com/docs/quickstarts — framework quickstarts
60
+
61
+ ## Related skills
62
+ - ../keycloak — self-hosted open-source IdP alternative
63
+ - ../clerk — hosted auth with prebuilt UI components
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: authjs
3
+ description: Framework-agnostic authentication for JS/TS apps (Auth.js, formerly NextAuth.js) — consult when adding OAuth/OIDC, email, or credentials sign-in.
4
+ domain: stack
5
+ category: auth
6
+ tags: [auth, oauth, oidc, nextauth, nextjs, sveltekit, sessions]
7
+ official_sources:
8
+ - https://authjs.dev/
9
+ - https://github.com/nextauthjs/next-auth
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Auth.js (NextAuth.js)
14
+
15
+ ## Overview
16
+ Auth.js is an open-source set of packages for authentication built on standard Web APIs, usable with any framework on any JS runtime. It was formerly known as NextAuth.js; the `next-auth` package serves Next.js, while sibling packages (`@auth/sveltekit`, `@auth/express`, Qwik, etc.) target other frameworks. Read this when wiring sign-in flows, OAuth providers, or sessions into a JS/TS app.
17
+
18
+ ## Official sources
19
+ - Docs: https://authjs.dev/
20
+ - Repo: https://github.com/nextauthjs/next-auth
21
+ - Install / download: https://authjs.dev/getting-started/installation
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npm install next-auth@beta
26
+ ```
27
+ After installing, generate the required secret:
28
+ ```bash
29
+ npx auth secret
30
+ ```
31
+ (For other frameworks the official install page lists `@auth/sveltekit`, `@auth/express`, and the Qwik `qwik add auth` flow.)
32
+
33
+ ## Core concepts
34
+ - Providers: pluggable sign-in methods — OAuth/OIDC providers, email (magic link), and credentials. Configure them in the Auth.js config object.
35
+ - Sessions: Auth.js issues a session that can be a JWT (default, stateless) or database-backed via an adapter; you read it on server and client.
36
+ - Adapters: connect Auth.js to your database (Prisma, Drizzle, etc.) to persist users, accounts, and sessions.
37
+ - Callbacks: hooks (`signIn`, `jwt`, `session`, `redirect`) let you customize token contents, authorization, and redirects.
38
+ - `AUTH_SECRET`: required environment variable used to encrypt tokens and sign cookies; generated with `npx auth secret`.
39
+ - Framework packages: the core is framework-agnostic; you install the package matching your framework (`next-auth`, `@auth/sveltekit`, `@auth/express`).
40
+
41
+ ## Best practices
42
+ - Always set a strong `AUTH_SECRET` (use `npx auth secret`) and keep it out of source control. See https://authjs.dev/getting-started/installation.
43
+ - Prefer OAuth/OIDC or email providers over the Credentials provider; the docs note credentials are inherently less secure and bypass much of Auth.js's built-in protection.
44
+ - Use an adapter when you need to persist users/accounts or link multiple providers to one user.
45
+ - Restrict access using the `signIn`/`authorized` callbacks rather than ad-hoc checks scattered through your app.
46
+
47
+ ## Common pitfalls
48
+ - Installing the stable major when following current docs → the v5 (Auth.js) getting-started uses `next-auth@beta`; mixing v4 docs with v5 config breaks setup.
49
+ - Forgetting `AUTH_SECRET` in production → sign-in fails or sessions cannot be decrypted; set it in the deployment environment.
50
+ - Assuming Auth.js is Next.js-only → it is framework-agnostic; use the correct package for your framework.
51
+
52
+ ## Examples
53
+ ```ts
54
+ // auth.ts (Next.js, Auth.js v5)
55
+ import NextAuth from "next-auth"
56
+ import GitHub from "next-auth/providers/github"
57
+
58
+ export const { handlers, signIn, signOut, auth } = NextAuth({
59
+ providers: [GitHub],
60
+ })
61
+ ```
62
+
63
+ ## Further reading
64
+ - https://authjs.dev/getting-started — official getting-started guides per framework
65
+ - https://authjs.dev/getting-started/providers — provider catalog
66
+
67
+ ## Related skills
68
+ - ../auth0 — hosted OAuth/OIDC platform you can plug in as a provider
69
+ - ../clerk — alternative hosted auth with prebuilt UI
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: clerk
3
+ description: Hosted authentication and user management with prebuilt React/JS UI components — consult when adding sign-up, sign-in, and profile flows fast.
4
+ domain: stack
5
+ category: auth
6
+ tags: [auth, user-management, react, nextjs, components, sessions, mfa]
7
+ official_sources:
8
+ - https://clerk.com/docs
9
+ - https://github.com/clerk/javascript
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Clerk
14
+
15
+ ## Overview
16
+ Clerk is a hosted authentication and user-management platform that ships prebuilt, customizable UI components (sign-up, sign-in, user profile, organization switcher) plus SDKs for frameworks like Next.js and React. It handles sessions, MFA, and organizations so you don't build user storage yourself. Read this when you want production auth with minimal UI work.
17
+
18
+ ## Official sources
19
+ - Docs: https://clerk.com/docs
20
+ - Repo: https://github.com/clerk/javascript
21
+ - Install / download: https://clerk.com/docs/quickstarts/setup-clerk
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npm install @clerk/nextjs
26
+ ```
27
+ (Command from the official Next.js quickstart, https://clerk.com/docs/quickstarts/nextjs. Other frameworks use the matching `@clerk/*` package, e.g. `@clerk/clerk-react`.)
28
+
29
+ ## Core concepts
30
+ - Prebuilt components: `<SignIn />`, `<SignUp />`, `<UserButton />`, `<UserProfile />`, and `<OrganizationSwitcher />` provide drop-in, themeable auth UI.
31
+ - Application / instance: Clerk apps have a development and production instance, each with publishable and secret keys.
32
+ - Sessions & JWTs: Clerk manages user sessions and can issue JWTs/templates to authenticate requests to your backend.
33
+ - Organizations: built-in multi-tenancy — users belong to organizations with roles and memberships.
34
+ - Control components: `<SignedIn>`, `<SignedOut>`, and helpers gate UI based on auth state; middleware protects routes (e.g. `clerkMiddleware` in Next.js).
35
+ - SDK packages: the `@clerk/javascript` monorepo provides environment-specific SDKs under the `@clerk` namespace.
36
+
37
+ ## Best practices
38
+ - Keep the secret key server-side only; expose only the publishable key to the client. See https://clerk.com/docs.
39
+ - Use Clerk middleware to protect routes centrally rather than checking auth in each handler.
40
+ - Use Organizations for B2B/multi-tenant apps instead of rolling your own tenancy model.
41
+ - Customize the prebuilt components via appearance props rather than rebuilding flows from scratch.
42
+
43
+ ## Common pitfalls
44
+ - Installing the wrong SDK package → use `@clerk/nextjs` for Next.js, `@clerk/clerk-react` for plain React; mixing them breaks the integration.
45
+ - Leaking the secret key into client bundles → only the publishable key is safe client-side.
46
+ - Forgetting to wrap the app in the Clerk provider / middleware → components throw because there's no Clerk context.
47
+
48
+ ## Examples
49
+ ```tsx
50
+ // app/layout.tsx (Next.js App Router)
51
+ import { ClerkProvider, SignedIn, SignedOut, SignInButton, UserButton } from "@clerk/nextjs"
52
+
53
+ export default function RootLayout({ children }: { children: React.ReactNode }) {
54
+ return (
55
+ <ClerkProvider>
56
+ <html><body>
57
+ <SignedOut><SignInButton /></SignedOut>
58
+ <SignedIn><UserButton /></SignedIn>
59
+ {children}
60
+ </body></html>
61
+ </ClerkProvider>
62
+ )
63
+ }
64
+ ```
65
+
66
+ ## Further reading
67
+ - https://clerk.com/docs/quickstarts/nextjs — Next.js quickstart
68
+ - https://clerk.com/docs/references/nextjs/clerk-middleware — route protection
69
+
70
+ ## Related skills
71
+ - ../auth0 — alternative hosted identity platform (OAuth/OIDC focused)
72
+ - ../authjs — open-source, self-hosted alternative for JS/TS
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: keycloak
3
+ description: Keycloak — open-source identity and access management server (OIDC, OAuth 2.0, SAML) for adding SSO, federation, and user management to apps.
4
+ domain: stack
5
+ category: auth
6
+ tags: [auth, iam, sso, oidc, oauth2, saml, self-hosted, identity-provider]
7
+ official_sources:
8
+ - https://www.keycloak.org/documentation
9
+ - https://github.com/keycloak/keycloak
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Keycloak
14
+
15
+ ## Overview
16
+ Keycloak is open-source Identity and Access Management for modern applications and services. It lets you add authentication and secure services with minimal effort, so you don't store users or write login flows yourself. It is an identity provider speaking OpenID Connect, OAuth 2.0, and SAML, with built-in SSO, identity brokering, and user federation. Read this when you need a self-hosted IAM/IdP.
17
+
18
+ ## Official sources
19
+ - Docs: https://www.keycloak.org/documentation
20
+ - Repo: https://github.com/keycloak/keycloak
21
+ - Install / download: https://www.keycloak.org/getting-started/getting-started-docker
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ docker run -p 127.0.0.1:8080:8080 -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:26.6.3 start-dev
26
+ ```
27
+ (Verbatim from the official Docker getting-started page. `start-dev` runs Keycloak in development mode and creates an initial admin user `admin`/`admin`. Do not use `start-dev` in production.)
28
+
29
+ ## Core concepts
30
+ - Realm: an isolated tenant that owns its own users, clients, roles, and configuration; the `master` realm is admin-only.
31
+ - Client: an application or service registered with Keycloak that requests authentication (confidential or public).
32
+ - Protocols: Keycloak speaks OpenID Connect, OAuth 2.0, and SAML so standard apps can integrate without custom code.
33
+ - Roles & groups: authorization is modeled with realm/client roles assigned directly or via groups.
34
+ - Identity brokering & federation: Keycloak can delegate login to external IdPs (social, SAML, OIDC) and federate users from LDAP/Active Directory.
35
+ - Tokens: after login Keycloak issues ID, access, and refresh tokens (JWTs) that apps validate.
36
+
37
+ ## Best practices
38
+ - Never run `start-dev` in production — it uses dev defaults; use `start` with a production database and proper hostname/TLS config (https://www.keycloak.org/server/configuration-production).
39
+ - Create a dedicated realm per environment/tenant; don't put applications in the `master` realm.
40
+ - Use confidential clients with a secret for server-side apps and public clients with PKCE for SPAs/native apps.
41
+ - Front Keycloak with TLS and set the correct hostname so issued token issuer URLs are valid.
42
+
43
+ ## Common pitfalls
44
+ - Using `start-dev` or the bootstrap admin credentials in production → insecure defaults and no proper persistence; switch to `start` and a real DB.
45
+ - Putting client apps in the `master` realm → mixes admin and app users; create a separate realm.
46
+ - Public client without PKCE for browser/native apps → vulnerable to code interception; enable PKCE.
47
+
48
+ ## Examples
49
+ ```bash
50
+ # Start a development server (creates admin/admin), then visit http://localhost:8080
51
+ docker run -p 127.0.0.1:8080:8080 \
52
+ -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
53
+ -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
54
+ quay.io/keycloak/keycloak:26.6.3 start-dev
55
+ ```
56
+
57
+ ## Further reading
58
+ - https://www.keycloak.org/guides — task-oriented guides (server, securing apps, operator)
59
+ - https://www.keycloak.org/server/configuration-production — production configuration
60
+
61
+ ## Related skills
62
+ - ../auth0 — hosted alternative to a self-managed IdP
63
+ - ../authjs — JS/TS app library that can use Keycloak as an OIDC provider
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: lucia
3
+ description: Lucia is now a learning resource for implementing auth from scratch in JS/TS, NOT a maintained library — consult to learn session-based auth patterns.
4
+ domain: stack
5
+ category: auth
6
+ tags: [auth, sessions, learning-resource, typescript, deprecated-library, from-scratch]
7
+ official_sources:
8
+ - https://lucia-auth.com/
9
+ - https://github.com/lucia-auth/lucia
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Lucia
14
+
15
+ ## Overview
16
+ Important: Lucia is no longer a maintained authentication library. Per the official repo, "Lucia v3 will be deprecated by March 2025. Lucia is now a learning resource on implementing auth from scratch." Treat `lucia-auth.com` as an open-source guide that teaches you to implement session-based authentication in JavaScript/TypeScript yourself, copying the code into your project rather than installing a package. Read this when you want to understand and own your auth implementation.
17
+
18
+ ## Official sources
19
+ - Docs: https://lucia-auth.com/
20
+ - Repo: https://github.com/lucia-auth/lucia
21
+
22
+ ## Core concepts
23
+ - Learning resource, not a dependency: the project provides resources on implementing auth; you write/own the session code rather than depend on a maintained library.
24
+ - Sessions: the guide centers on server-side session tokens and validating them on each request, instead of relying on opaque library magic.
25
+ - Session token hashing & storage: sessions are stored in your database; the guide teaches hashing tokens and validating/expiring them yourself.
26
+ - Database ownership: you define your own user and session tables/schema — there is no enforced schema from a package.
27
+ - Deprecated v3 library: the old `lucia` package source remains in the `v3` branch for reference, but it is deprecated and should not be treated as actively maintained.
28
+
29
+ ## Best practices
30
+ - Treat Lucia as documentation to copy and adapt, not an `npm install` dependency — that is the project's stated direction (https://github.com/lucia-auth/lucia).
31
+ - Store sessions server-side and validate the session token on every request, following the guide's patterns.
32
+ - Hash session tokens before storing them and enforce expiration, as the guide teaches.
33
+
34
+ ## Common pitfalls
35
+ - Adding the deprecated `lucia` v3 package to a new production project → it is deprecated; follow the from-scratch guide or choose a maintained library instead.
36
+ - Expecting ongoing maintenance, releases, or security patches → the library is no longer maintained; only the learning content is current.
37
+
38
+ ## Examples
39
+ ```ts
40
+ // Conceptual: validate a session token (pattern from the Lucia guide).
41
+ // You implement and own this code — there is no library to import.
42
+ async function validateSession(token: string) {
43
+ const sessionId = hash(token) // hash before lookup
44
+ const session = await db.getSession(sessionId)
45
+ if (!session || session.expiresAt < new Date()) return null
46
+ return session
47
+ }
48
+ ```
49
+
50
+ ## Further reading
51
+ - https://lucia-auth.com/ — the learning resource (implementation guides)
52
+ - https://github.com/lucia-auth/lucia — repo with the deprecation notice and `v3` reference branch
53
+
54
+ ## Related skills
55
+ - ../authjs — maintained, framework-agnostic auth library for JS/TS
56
+ - ../supabase-auth — managed auth if you prefer not to implement sessions yourself
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: passport
3
+ description: Passport — Express-compatible authentication middleware for Node.js using pluggable strategies; consult when adding login to an Express/Node app.
4
+ domain: stack
5
+ category: auth
6
+ tags: [auth, nodejs, express, middleware, strategies, sessions, oauth]
7
+ official_sources:
8
+ - https://www.passportjs.org/docs/
9
+ - https://github.com/jaredhanson/passport
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Passport
14
+
15
+ ## Overview
16
+ Passport is Express-compatible authentication middleware for Node.js, designed for the singular purpose of authenticating requests. It works through an extensible plugin system of "strategies" (local username/password, OAuth, OpenID, etc.) and does not mount routes or impose a database schema, leaving you in control. Read this when adding authentication to an Express or Node.js app.
17
+
18
+ ## Official sources
19
+ - Docs: https://www.passportjs.org/docs/
20
+ - Repo: https://github.com/jaredhanson/passport
21
+
22
+ ## Install / setup
23
+ ```bash
24
+ npm install passport
25
+ ```
26
+ (Verbatim from the official repo README. Each authentication method needs its own strategy package, e.g. `npm install passport-local`.)
27
+
28
+ ## Core concepts
29
+ - Middleware: Passport is authentication middleware you plug into the Express request pipeline; it authenticates the incoming request.
30
+ - Strategies: pluggable mechanisms (e.g. `passport-local`, OAuth strategies) implement a specific way to authenticate; install one per method.
31
+ - `passport.authenticate()`: the middleware that runs a named strategy on a route to verify credentials.
32
+ - Sessions: Passport can establish a persistent login session, storing a minimal user reference in the session.
33
+ - `serializeUser` / `deserializeUser`: control what user data is stored in the session and how it is restored on later requests.
34
+ - `req.user`: once authenticated, Passport populates the authenticated user on the request object.
35
+
36
+ ## Best practices
37
+ - Install and configure one strategy per authentication method (e.g. `passport-local` for username/password); the core package alone authenticates nothing.
38
+ - Keep `serializeUser` payloads minimal (typically just an ID) and reload the full user in `deserializeUser`.
39
+ - Place `passport.initialize()` (and `passport.session()` when using sessions) in the correct middleware order before protected routes.
40
+ - Pair session-based logins with a secure session store and configured cookies; Passport does not manage session storage for you.
41
+
42
+ ## Common pitfalls
43
+ - Expecting login to work with only `passport` installed → you must also install and register a strategy package.
44
+ - Wrong middleware ordering → `passport.session()` before the session middleware, or routes before `passport.initialize()`, leaves `req.user` undefined.
45
+ - Assuming Passport provides routes or a schema → it intentionally does not; you define routes, user storage, and verification logic yourself.
46
+
47
+ ## Examples
48
+ ```js
49
+ const passport = require("passport")
50
+ const LocalStrategy = require("passport-local")
51
+
52
+ passport.use(new LocalStrategy(async (username, password, done) => {
53
+ const user = await findUser(username)
54
+ if (!user || !(await verify(user, password))) return done(null, false)
55
+ return done(null, user)
56
+ }))
57
+
58
+ passport.serializeUser((user, done) => done(null, user.id))
59
+ passport.deserializeUser(async (id, done) => done(null, await getUser(id)))
60
+
61
+ app.post("/login", passport.authenticate("local", { successRedirect: "/", failureRedirect: "/login" }))
62
+ ```
63
+
64
+ ## Further reading
65
+ - https://www.passportjs.org/concepts/authentication/strategies/ — strategies
66
+ - https://www.passportjs.org/packages/ — strategy package catalog
67
+
68
+ ## Related skills
69
+ - ../authjs — higher-level, framework-agnostic JS/TS auth library
70
+ - ../auth0 — hosted IdP you can integrate via a Passport strategy
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: supabase-auth
3
+ description: Supabase Auth — managed user authentication (password, magic link, OTP, social, SSO) that integrates with Postgres Row Level Security.
4
+ domain: stack
5
+ category: auth
6
+ tags: [auth, supabase, postgres, rls, oauth, jwt, sso, magic-link]
7
+ official_sources:
8
+ - https://supabase.com/docs/guides/auth
9
+ - https://github.com/supabase/auth
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Supabase Auth
14
+
15
+ ## Overview
16
+ Supabase Auth makes it easy to add authentication and authorization to an app via client SDKs and API endpoints for creating and managing users. It supports password, magic link, one-time password (OTP), social login, and single sign-on (SSO), and integrates tightly with the Supabase Postgres database so the auth token can drive Row Level Security. Read this when your app already uses Supabase or you want auth coupled to Postgres RLS.
17
+
18
+ ## Official sources
19
+ - Docs: https://supabase.com/docs/guides/auth
20
+ - Repo: https://github.com/supabase/auth
21
+
22
+ ## Install / setup
23
+ ```bash
24
+ npm install @supabase/supabase-js
25
+ ```
26
+ (The `@supabase/supabase-js` client provides the `auth` namespace; see https://supabase.com/docs/guides/auth. The server in github.com/supabase/auth is a Go service, originally based on Netlify's GoTrue, that Supabase runs for you.)
27
+
28
+ ## Core concepts
29
+ - Auth methods: password, magic link, OTP, social login (OAuth2/OIDC providers), phone auth, and SSO are all supported.
30
+ - JWT access token: on sign-in, Auth issues a JWT representing the user; SDK calls send it to scope access.
31
+ - Row Level Security (RLS): the auth token scopes database access row-by-row when RLS policies are enabled — this is how authorization is enforced.
32
+ - Users vs. sessions: Auth manages user records and sessions; `auth.users` lives in the database and is referenced by your tables.
33
+ - GoTrue server: the underlying server (github.com/supabase/auth) issues JWTs, handles sign-in, and manages users; it diverged from Netlify's GoTrue.
34
+ - External providers: sign in with Google, Apple, Facebook, Discord, and other OAuth providers configured per project.
35
+
36
+ ## Best practices
37
+ - Enable Row Level Security on every table holding user data and write policies against the auth token — RLS is the documented authorization mechanism (https://supabase.com/docs/guides/auth).
38
+ - Use the client SDK's `auth` methods rather than calling endpoints manually, so tokens and refresh are handled for you.
39
+ - Never expose the service-role key to the client; use the anon key client-side and the service-role key only on trusted servers.
40
+ - Configure redirect URLs / allowed origins for OAuth and magic-link flows to prevent broken or hijacked redirects.
41
+
42
+ ## Common pitfalls
43
+ - Leaving RLS disabled → any client with the anon key can read/write all rows; enable RLS and add policies.
44
+ - Using the service-role key in browser code → it bypasses RLS entirely; keep it server-side only.
45
+ - Assuming a user is authorized just because they're authenticated → authentication (who they are) is separate from RLS-based authorization (what they can touch).
46
+
47
+ ## Examples
48
+ ```ts
49
+ import { createClient } from "@supabase/supabase-js"
50
+
51
+ const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)
52
+
53
+ // Magic link sign-in
54
+ await supabase.auth.signInWithOtp({ email: "user@example.com" })
55
+
56
+ // OAuth sign-in
57
+ await supabase.auth.signInWithOAuth({ provider: "github" })
58
+ ```
59
+
60
+ ## Further reading
61
+ - https://supabase.com/docs/guides/auth/row-level-security — RLS with Auth
62
+ - https://supabase.com/docs/guides/auth/social-login — social providers
63
+
64
+ ## Related skills
65
+ - ../authjs — framework-agnostic JS/TS auth (can also use external providers)
66
+ - ../keycloak — self-hostable OIDC server you could federate as an SSO provider
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: amplify
3
+ description: AWS Amplify (Gen 2) is a TypeScript-first fullstack platform for building and hosting cloud backends on AWS (Auth via Cognito, data/GraphQL via AppSync+DynamoDB, Functions via Lambda, Storage via S3). Consult when scaffolding an Amplify backend, defining code-first cloud resources, running the sandbox, wiring auth/data/storage into a React/Next app, or deploying via Amplify Hosting.
4
+ domain: stack
5
+ category: baas
6
+ tags: [amplify, aws, baas, typescript, cognito, appsync, fullstack]
7
+ official_sources:
8
+ - https://docs.amplify.aws/
9
+ - https://github.com/aws-amplify/amplify-backend
10
+ - https://www.npmjs.com/package/create-amplify
11
+ verified: 2026-06-17
12
+ ---
13
+
14
+ # AWS Amplify
15
+
16
+ ## Overview
17
+ AWS Amplify Gen 2 is a fullstack development platform that lets you define cloud backends in TypeScript and deploy them on AWS managed services — Cognito for auth, AppSync + DynamoDB for data, Lambda for functions, and S3 for storage. The code-first model generates infrastructure (CDK under the hood) and a typed client so frontend and backend ship together. Read this when scaffolding an Amplify backend, running the cloud sandbox, or integrating auth/data/storage into a web app deployed on Amplify Hosting.
18
+
19
+ ## Official sources
20
+ - Docs: https://docs.amplify.aws/
21
+ - Repo: https://github.com/aws-amplify/amplify-backend
22
+ - Install: https://www.npmjs.com/package/create-amplify
23
+
24
+ ## Install / setup
25
+ ```bash
26
+ npm create amplify@latest
27
+ npx ampx sandbox
28
+ ```
29
+ Source: https://docs.amplify.aws/react/start/manual-installation/
30
+
31
+ ## Core concepts
32
+ - **Backend definition** — `amplify/backend.ts` composes resources via `defineBackend({ auth, data, storage })` in TypeScript.
33
+ - **Auth** — `defineAuth` provisions Amazon Cognito user pools (email/social/MFA) with typed access rules.
34
+ - **Data** — `defineData` builds an AppSync GraphQL API over DynamoDB from a typed schema with per-model authorization.
35
+ - **Functions** — `defineFunction` creates Lambda handlers triggered by data events, schedules, or auth flows.
36
+ - **Storage** — `defineStorage` provisions an S3 bucket with path-based access rules.
37
+ - **Sandbox** — `ampx sandbox` deploys an isolated per-developer cloud environment that hot-reloads on file changes.
38
+ - **amplify_outputs.json** — generated config consumed by `Amplify.configure()` to wire the frontend client.
39
+
40
+ ## Best practices
41
+ - Use per-developer cloud sandboxes for iteration, not a shared environment (https://docs.amplify.aws/react/deploy-and-host/sandbox-environments/).
42
+ - Define authorization rules in the data schema (`a.allow.*`) rather than in client code (https://docs.amplify.aws/react/build-a-backend/data/customize-authz/).
43
+ - Connect a Git branch to Amplify Hosting for fullstack CI/CD deploys per commit (https://docs.amplify.aws/react/deploy-and-host/fullstack-branching/).
44
+ - Generate a typed data client with `generateClient<Schema>()` for end-to-end type safety (https://docs.amplify.aws/react/build-a-backend/data/connect-to-API/).
45
+
46
+ ## Common pitfalls
47
+ - Confusing Gen 1 (CLI `amplify ...`) with Gen 2 (`ampx`/`create-amplify`) docs → follow Gen 2 only for new projects.
48
+ - Missing/expired AWS credentials or profile → sandbox deploy fails; configure an AWS profile first.
49
+ - Committing `amplify_outputs.json` from a teammate's sandbox → wrong endpoints; regenerate locally.
50
+
51
+ ## Examples
52
+ ```typescript
53
+ // amplify/data/resource.ts
54
+ import { a, defineData, type ClientSchema } from "@aws-amplify/backend";
55
+
56
+ const schema = a.schema({
57
+ Todo: a.model({ content: a.string() }).authorization(allow => [allow.owner()]),
58
+ });
59
+
60
+ export type Schema = ClientSchema<typeof schema>;
61
+ export const data = defineData({ schema });
62
+ ```
63
+
64
+ ## Further reading
65
+ - https://docs.amplify.aws/react/start/ — React getting-started guide
66
+ - https://docs.amplify.aws/react/build-a-backend/ — building auth/data/storage/functions
67
+ - https://aws-amplify.github.io/amplify-backend/ — Amplify Toolbox / ampx reference
68
+
69
+ ## Related skills
70
+ - ../firebase — comparable Google BaaS with auth/data/functions
71
+ - ../appwrite — open-source self-hosted BaaS alternative
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: appwrite
3
+ description: Appwrite is an open-source, self-hostable Backend-as-a-Service (Auth, Databases, Storage, Functions, Messaging, Realtime, Hosting) deployable via Docker. Consult when self-hosting a backend, adding authentication, building a document database, running serverless functions, handling file storage, or using the Appwrite CLI and client SDKs for web/mobile/Flutter apps.
4
+ domain: stack
5
+ category: baas
6
+ tags: [appwrite, baas, self-hosted, docker, open-source, auth, serverless]
7
+ official_sources:
8
+ - https://appwrite.io/docs
9
+ - https://github.com/appwrite/appwrite
10
+ - https://github.com/appwrite/sdk-for-cli
11
+ verified: 2026-06-17
12
+ ---
13
+
14
+ # Appwrite
15
+
16
+ ## Overview
17
+ Appwrite is an open-source Backend-as-a-Service that packages authentication, a document database, file storage, serverless Functions, Messaging, and Realtime behind REST/GraphQL APIs and client SDKs. It runs as a set of Docker containers you self-host (or use Appwrite Cloud), giving you a Firebase-style backend you fully control. Read this when self-hosting a backend, wiring up auth/databases/storage/functions, or scripting deployments with the Appwrite CLI.
18
+
19
+ ## Official sources
20
+ - Docs: https://appwrite.io/docs
21
+ - Repo: https://github.com/appwrite/appwrite
22
+ - Install: https://github.com/appwrite/sdk-for-cli
23
+
24
+ ## Install / setup
25
+ ```bash
26
+ docker run -it --rm \
27
+ --publish 20080:20080 \
28
+ --volume /var/run/docker.sock:/var/run/docker.sock \
29
+ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
30
+ --entrypoint="install" \
31
+ appwrite/appwrite:1.9.0
32
+ ```
33
+ Source: https://appwrite.io/docs/advanced/self-hosting/installation (CLI: `npm install -g appwrite-cli`)
34
+
35
+ ## Core concepts
36
+ - **Project** — isolated namespace holding databases, users, functions, and API keys; created in the Console.
37
+ - **Databases / Collections / Documents** — structured document store with typed attributes, indexes, and per-document permissions.
38
+ - **Authentication** — sessions and accounts supporting email/password, OAuth2, magic URL, phone, anonymous, and JWT.
39
+ - **Permissions** — role/user-scoped access (`read`, `create`, `update`, `delete`) set on collections or individual documents.
40
+ - **Functions** — serverless code in many runtimes, triggered by HTTP, events, or schedules; deployed via CLI.
41
+ - **Storage** — file buckets with encryption, antivirus scanning, and on-the-fly image transforms.
42
+ - **Realtime** — WebSocket subscriptions to channels for live document, file, and account updates.
43
+
44
+ ## Best practices
45
+ - Set collection/document permissions explicitly; default is no access until granted (https://appwrite.io/docs/advanced/platform/permissions).
46
+ - Use server SDKs with API keys for trusted backends and the lighter client SDKs in apps (https://appwrite.io/docs/sdks).
47
+ - Pin a specific Appwrite version tag and follow the updates/migrations guide between minors — install the new version, then run the Appwrite migration tool (https://appwrite.io/docs/advanced/self-hosting/production/updates).
48
+ - Configure `_APP_DOMAIN` and TLS/Traefik for production rather than localhost defaults (https://appwrite.io/docs/advanced/self-hosting).
49
+
50
+ ## Common pitfalls
51
+ - Leaving the default `.env` secrets/keys from install → insecure server; rotate `_APP_OPENSSL_KEY_V1` and API keys.
52
+ - Exposing API keys in client-side code → use scoped client SDK + permissions, keep API keys server-only.
53
+ - Forgetting to register a platform (web/Flutter) for your hostname → CORS blocks requests; add it in Console settings.
54
+
55
+ ## Examples
56
+ ```javascript
57
+ import { Client, Databases, ID } from "appwrite";
58
+
59
+ const client = new Client()
60
+ .setEndpoint("http://localhost/v1")
61
+ .setProject("YOUR_PROJECT_ID");
62
+
63
+ const db = new Databases(client);
64
+ await db.createDocument({
65
+ databaseId: "dbId",
66
+ collectionId: "messages",
67
+ documentId: ID.unique(),
68
+ data: { text: "hello" },
69
+ });
70
+ ```
71
+
72
+ ## Further reading
73
+ - https://appwrite.io/docs/advanced/self-hosting — self-hosting and production setup
74
+ - https://appwrite.io/docs/products/databases — Databases product guide
75
+ - https://github.com/appwrite/sdk-for-cli — official CLI and deployment tooling
76
+
77
+ ## Related skills
78
+ - ../firebase — proprietary Google BaaS with comparable feature set
79
+ - ../amplify — AWS fullstack BaaS alternative