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,70 @@
1
+ ---
2
+ name: typeorm
3
+ description: Decorator-based TS/JS ORM supporting Active Record and Data Mapper patterns across many databases; consult for entity-driven Node.js data access.
4
+ domain: stack
5
+ category: orm
6
+ tags: [orm, typescript, nodejs, decorators, database, migrations]
7
+ official_sources:
8
+ - https://typeorm.io/
9
+ - https://github.com/typeorm/typeorm
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # TypeORM
14
+
15
+ ## Overview
16
+ TypeORM is an ORM for TypeScript and JavaScript that runs on Node.js (and other platforms) and supports both the Active Record and Data Mapper patterns. You define entities as decorated classes, and TypeORM maps them to tables across PostgreSQL, MySQL/MariaDB, SQLite, SQL Server, Oracle, CockroachDB, MongoDB, and more. Read this when you prefer a class/decorator entity model influenced by Hibernate and Entity Framework.
17
+
18
+ ## Official sources
19
+ - Docs: https://typeorm.io/
20
+ - Repo: https://github.com/typeorm/typeorm
21
+ - Install / getting started: https://typeorm.io/docs/getting-started/
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npm install typeorm
26
+ npm install reflect-metadata
27
+ npm install @types/node --save-dev
28
+ ```
29
+
30
+ ## Core concepts
31
+ - **Entities**: classes decorated with `@Entity()` whose properties (`@Column`, `@PrimaryGeneratedColumn`) map to table columns.
32
+ - **DataSource**: the connection/configuration object you initialize before running any queries.
33
+ - **Repositories & EntityManager**: APIs for CRUD on entities; the Data Mapper pattern.
34
+ - **Active Record vs Data Mapper**: choose entity methods (Active Record) or repositories (Data Mapper) per project style.
35
+ - **Relations & QueryBuilder**: `@OneToMany`/`@ManyToOne` etc. for associations; `createQueryBuilder` for complex SQL.
36
+ - **Migrations**: schema versioning generated and run via the TypeORM CLI.
37
+
38
+ ## Best practices
39
+ - Import `reflect-metadata` once at app startup (a global location) as the docs require for decorators to work.
40
+ - Initialize a single `DataSource` and reuse it across the app rather than reconnecting per request.
41
+ - Prefer explicit migrations over `synchronize: true` in production to avoid unintended schema changes (per docs).
42
+ - Use `QueryBuilder` for complex queries and to control joins and selected columns.
43
+
44
+ ## Common pitfalls
45
+ - Forgetting to import `reflect-metadata` or enable `experimentalDecorators`/`emitDecoratorMetadata` in tsconfig → decorators silently fail at runtime.
46
+ - Leaving `synchronize: true` on in production → can drop or alter columns unexpectedly; use migrations instead.
47
+
48
+ ## Examples
49
+ ```ts
50
+ import 'reflect-metadata'
51
+ import { Entity, PrimaryGeneratedColumn, Column, DataSource } from 'typeorm'
52
+
53
+ @Entity()
54
+ class User {
55
+ @PrimaryGeneratedColumn() id!: number
56
+ @Column() name!: string
57
+ }
58
+
59
+ const ds = new DataSource({ type: 'postgres', url: process.env.DB_URL, entities: [User] })
60
+ await ds.initialize()
61
+ await ds.getRepository(User).save({ name: 'Ada' })
62
+ ```
63
+
64
+ ## Further reading
65
+ - https://typeorm.io/docs/entity/entities/ — entity reference
66
+ - https://typeorm.io/docs/advanced-topics/migrations/ — migrations guide
67
+
68
+ ## Related skills
69
+ - ../prisma — schema-DSL ORM alternative
70
+ - ../sequelize — mature JS/TS ORM alternative
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: bullmq
3
+ description: Redis-backed distributed job queue for Node.js; consult when adding background jobs, retries, delays, or scheduled work to a Node service.
4
+ domain: stack
5
+ category: queue
6
+ tags: [bullmq, queue, jobs, nodejs, redis, background-jobs]
7
+ official_sources:
8
+ - https://docs.bullmq.io/
9
+ - https://github.com/taskforcesh/bullmq
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # BullMQ
14
+
15
+ ## Overview
16
+ BullMQ is a fast, Redis-backed distributed queue for Node.js (with Python, Rust, and other ports) used to offload work to background workers: emails, image processing, webhooks, scheduled jobs. It provides retries, delays, priorities, rate limiting, and parent-child job dependencies with atomic, Lua-backed operations. Read this when a Node service needs reliable background processing instead of doing work inside the request cycle.
17
+
18
+ ## Official sources
19
+ - Docs: https://docs.bullmq.io/
20
+ - Repo: https://github.com/taskforcesh/bullmq
21
+ - Install / quick start: https://docs.bullmq.io/readme-1
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ npm install bullmq
26
+ ```
27
+ Requires a running Redis instance (the examples assume a local Redis on `localhost:6379`).
28
+
29
+ ## Core concepts
30
+ - **Queue**: a named queue you add jobs to (`new Queue('foo')`); producers enqueue, consumers process independently.
31
+ - **Worker**: a process that pulls jobs from a queue and runs a processor function; multiple workers scale horizontally across the same queue.
32
+ - **Job**: a unit of work with data and options (attempts, backoff, delay, priority); BullMQ tracks its lifecycle (waiting, active, completed, failed).
33
+ - **Connection**: BullMQ talks to Redis via ioredis; workers require `maxRetriesPerRequest: null` on the connection.
34
+ - **Flows (parent-child)**: jobs can depend on child jobs and only run after children complete, enabling fan-out/fan-in pipelines.
35
+ - **QueueEvents**: a separate listener stream for observing job state changes (completed, failed, progress) across processes.
36
+
37
+ ## Best practices
38
+ - Make job processors idempotent — BullMQ targets reliable delivery, and retries/replays mean the same job may run more than once.
39
+ - Configure `attempts` and `backoff` per job so transient failures retry with exponential delay instead of failing permanently.
40
+ - Reuse a single Redis connection (ioredis instance) across queues/workers where appropriate rather than opening one per object.
41
+ - Run dedicated worker processes separate from your web/API process so heavy jobs do not compete with request handling.
42
+
43
+ ## Common pitfalls
44
+ - Creating the Worker connection without `maxRetriesPerRequest: null` → BullMQ requires this and will warn/error otherwise.
45
+ - Doing long blocking work in a processor without concurrency or rate limits → set worker `concurrency` and rate limiting to control throughput against downstream systems.
46
+ - Assuming jobs run in the web process → without a separate Worker actually consuming the queue, jobs sit in "waiting" forever.
47
+
48
+ ## Examples
49
+ ```typescript
50
+ import { Queue, Worker } from 'bullmq';
51
+ import IORedis from 'ioredis';
52
+
53
+ const connection = new IORedis({ maxRetriesPerRequest: null });
54
+
55
+ const myQueue = new Queue('foo', { connection });
56
+ await myQueue.add('myJobName', { foo: 'bar' }, { attempts: 3, backoff: 5000 });
57
+
58
+ new Worker('foo', async job => {
59
+ console.log(job.data);
60
+ }, { connection });
61
+ ```
62
+
63
+ ## Further reading
64
+ - https://docs.bullmq.io/guide/workers — workers, concurrency, rate limiting
65
+ - https://docs.bullmq.io/guide/flows — parent-child job flows
66
+
67
+ ## Related skills
68
+ - ../redis — the data store BullMQ runs on; understand TTLs and persistence
69
+ - ../celery — equivalent task-queue pattern for Python services
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: celery
3
+ description: Distributed task queue for Python that runs background jobs via a broker (Redis/RabbitMQ); consult for async tasks, scheduling, and worker fan-out.
4
+ domain: stack
5
+ category: queue
6
+ tags: [celery, python, task-queue, background-jobs, redis, rabbitmq]
7
+ official_sources:
8
+ - https://docs.celeryq.dev/
9
+ - https://github.com/celery/celery
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Celery
14
+
15
+ ## Overview
16
+ Celery is a distributed task queue for Python that distributes work across processes and machines using a message broker (commonly RabbitMQ or Redis). It runs background and scheduled jobs outside the request cycle and integrates with Django, Flask, and FastAPI. Read this when a Python service needs async tasks, periodic jobs, retries, or horizontal worker scaling.
17
+
18
+ ## Official sources
19
+ - Docs: https://docs.celeryq.dev/
20
+ - Repo: https://github.com/celery/celery
21
+ - Install: https://docs.celeryq.dev/en/stable/getting-started/introduction.html#installation
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ pip install -U Celery
26
+ ```
27
+ Celery also needs a broker (e.g. RabbitMQ or Redis) running; install broker extras with bundles like `pip install "celery[redis]"`.
28
+
29
+ ## Core concepts
30
+ - **Task**: a unit of work defined with the `@app.task` decorator; called asynchronously with `.delay()` / `.apply_async()`.
31
+ - **Broker**: the message transport (RabbitMQ, Redis, SQS) that carries tasks from producers to workers; required to run Celery.
32
+ - **Worker**: a process started with `celery -A <app> worker` that consumes and executes queued tasks.
33
+ - **Result backend**: optional store (Redis, DB, etc.) that holds task return values and state when you need to retrieve results.
34
+ - **Beat (scheduler)**: a separate process that sends scheduled/periodic tasks to the broker on a cron-like schedule.
35
+ - **Routing & queues**: tasks can be routed to named queues so workers can specialize and scale independently.
36
+
37
+ ## Best practices
38
+ - Make tasks idempotent and keep them small/focused, since Celery may retry or redeliver work.
39
+ - Set explicit `acks_late` / time limits and retry policies so a crashed worker re-queues its task instead of losing it.
40
+ - Use a dedicated result backend only when you actually need results; otherwise disabling it reduces overhead.
41
+ - Run Celery Beat as a single instance to avoid duplicate scheduled-task dispatch, and route heavy tasks to dedicated queues/workers.
42
+
43
+ ## Common pitfalls
44
+ - Calling a task function directly (`add(2, 2)`) instead of `add.delay(2, 2)` → it runs synchronously in-process and never reaches a worker.
45
+ - Forgetting to start a worker or broker → tasks queue (or fail to enqueue) and never execute.
46
+ - Passing large or non-serializable objects as task arguments → arguments must serialize through the broker; pass IDs and reload inside the task.
47
+
48
+ ## Examples
49
+ ```python
50
+ from celery import Celery
51
+
52
+ app = Celery('tasks', broker='pyamqp://guest@localhost//')
53
+
54
+ @app.task
55
+ def add(x, y):
56
+ return x + y
57
+ ```
58
+ ```bash
59
+ celery -A tasks worker --loglevel=INFO
60
+ ```
61
+
62
+ ## Further reading
63
+ - https://docs.celeryq.dev/en/stable/getting-started/first-steps-with-celery.html — first steps tutorial
64
+ - https://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html — periodic tasks with Beat
65
+
66
+ ## Related skills
67
+ - ../redis — common Celery broker/result backend
68
+ - ../rabbitmq — default, fully-featured Celery broker
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: kafka
3
+ description: Distributed event streaming platform with durable, replayable logs; consult for high-throughput data pipelines, event sourcing, and stream processing.
4
+ domain: stack
5
+ category: queue
6
+ tags: [kafka, streaming, events, log, pubsub, distributed]
7
+ official_sources:
8
+ - https://kafka.apache.org/documentation/
9
+ - https://github.com/apache/kafka
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Apache Kafka
14
+
15
+ ## Overview
16
+ Apache Kafka is an open-source distributed event streaming platform used for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. Unlike a traditional broker, Kafka stores events in durable, partitioned, append-only logs that consumers replay at their own offset. Read this when you need high-throughput event ingestion, event sourcing, or stream processing across many consumers.
17
+
18
+ ## Official sources
19
+ - Docs: https://kafka.apache.org/documentation/
20
+ - Repo: https://github.com/apache/kafka
21
+ - Install / quickstart: https://kafka.apache.org/quickstart
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ tar -xzf kafka_2.13-4.3.0.tgz
26
+ cd kafka_2.13-4.3.0
27
+ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
28
+ bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties
29
+ bin/kafka-server-start.sh config/server.properties
30
+ ```
31
+
32
+ ## Core concepts
33
+ - **Topic**: a named, append-only log of events that producers write to and consumers read from.
34
+ - **Partition**: topics are split into partitions for parallelism and ordering; order is guaranteed only within a partition.
35
+ - **Offset**: each consumer tracks its position (offset) per partition, so events can be replayed and consumers progress independently.
36
+ - **Producer / Consumer**: producers publish records (optionally keyed for partition routing); consumers read them.
37
+ - **Consumer group**: consumers in a group share partitions so each partition is processed by exactly one member, enabling horizontal scaling.
38
+ - **Retention + replication**: events are retained for a configured time/size (not deleted on read) and replicated across brokers for durability.
39
+ - **KRaft**: modern Kafka manages metadata internally via KRaft, removing the legacy ZooKeeper dependency.
40
+
41
+ ## Best practices
42
+ - Choose partition counts up front based on target throughput and consumer parallelism — it dictates how many consumers can work in parallel.
43
+ - Use a meaningful record key when ordering per entity matters, since all records with the same key land in the same partition.
44
+ - Set retention deliberately; Kafka keeps events until retention expires, so consumers can replay and recover from offsets.
45
+ - Run with replication (replication factor >= 3 in production) so partition leaders can fail over without data loss.
46
+
47
+ ## Common pitfalls
48
+ - Treating Kafka like a queue where reading deletes the message → it does not; messages persist per retention and consumers advance offsets instead.
49
+ - Expecting global ordering across a topic → ordering holds only within a partition; cross-partition order is not guaranteed.
50
+ - Adding too many or too few partitions → too few caps parallelism; too many strains the cluster. Size them to throughput needs.
51
+
52
+ ## Examples
53
+ ```bash
54
+ # produce events to a topic
55
+ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
56
+ # consume from the beginning
57
+ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
58
+ ```
59
+
60
+ ## Further reading
61
+ - https://kafka.apache.org/documentation/#design — design and storage internals
62
+ - https://kafka.apache.org/documentation/streams/ — Kafka Streams processing library
63
+
64
+ ## Related skills
65
+ - ../rabbitmq — broker-style alternative when you need routing and per-message acks
66
+ - ../nats — lighter-weight streaming/messaging system (JetStream) for similar use cases
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: nats
3
+ description: Lightweight high-performance messaging system with pub/sub and JetStream persistence; consult for cloud-native, edge, and microservice messaging.
4
+ domain: stack
5
+ category: queue
6
+ tags: [nats, messaging, pubsub, jetstream, cloud-native, streaming]
7
+ official_sources:
8
+ - https://docs.nats.io/
9
+ - https://github.com/nats-io/nats-server
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # NATS
14
+
15
+ ## Overview
16
+ NATS is a simple, secure, high-performance messaging system for cloud-native applications, edge devices, and microservices, and is a CNCF project. Core NATS provides fast at-most-once pub/sub and request-reply; the JetStream layer adds persistence, replay, and stronger delivery guarantees plus key/value and object stores. Read this when you want lightweight, low-latency messaging with optional durability without operating a heavier broker.
17
+
18
+ ## Official sources
19
+ - Docs: https://docs.nats.io/
20
+ - Repo: https://github.com/nats-io/nats-server
21
+ - Install: https://docs.nats.io/running-a-nats-service/introduction/installation
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ docker pull nats:latest
26
+ docker run -p 4222:4222 -ti nats:latest
27
+ ```
28
+ ```bash
29
+ # macOS (Homebrew)
30
+ brew install nats-server
31
+ ```
32
+
33
+ ## Core concepts
34
+ - **Subjects**: hierarchical, dot-delimited addresses (e.g. `orders.us.new`) that messages are published to and subscribed against, with `*` and `>` wildcards.
35
+ - **Publish / Subscribe**: many subscribers can receive messages on a subject; Core NATS delivery is at-most-once and fire-and-forget.
36
+ - **Request-Reply**: built-in RPC pattern where a publisher gets a direct reply on a temporary inbox subject.
37
+ - **Queue groups**: subscribers sharing a queue group load-balance messages so each message goes to one member — work-queue semantics over pub/sub.
38
+ - **JetStream**: the persistence engine adding streams, durable consumers, replay, and up to exactly-once delivery on top of Core NATS.
39
+ - **KV and Object stores**: higher-level abstractions built on JetStream for key/value and large-object storage.
40
+
41
+ ## Best practices
42
+ - Design subject hierarchies intentionally and use wildcards for flexible subscriptions rather than hard-coding many concrete subjects.
43
+ - Use queue groups for scalable work distribution so adding subscribers spreads load automatically.
44
+ - Use JetStream (not Core NATS) whenever you need messages to survive subscriber downtime, replay, or acknowledgements.
45
+ - Run a clustered nats-server for high availability rather than a single node in production.
46
+
47
+ ## Common pitfalls
48
+ - Expecting Core NATS to retain messages → it is at-most-once and drops messages with no active subscriber; use JetStream for persistence.
49
+ - Forgetting to ack JetStream messages → unacked messages are redelivered per the consumer's ack policy, causing duplicate processing.
50
+ - Overly broad `>` wildcard subscriptions → can flood a subscriber with far more traffic than intended.
51
+
52
+ ## Examples
53
+ ```bash
54
+ # subscribe to a subject (NATS CLI)
55
+ nats sub "orders.>"
56
+ # publish a message
57
+ nats pub orders.us.new '{"id":99}'
58
+ ```
59
+
60
+ ## Further reading
61
+ - https://docs.nats.io/nats-concepts/jetstream — JetStream persistence concepts
62
+ - https://docs.nats.io/nats-concepts/core-nats — Core NATS messaging patterns
63
+
64
+ ## Related skills
65
+ - ../kafka — log-based streaming for very high-throughput, replay-heavy pipelines
66
+ - ../rabbitmq — broker with rich routing when you need protocol breadth and per-message acks
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: rabbitmq
3
+ description: Multi-protocol message broker (AMQP/MQTT/STOMP) for reliable async messaging; consult when decoupling services with durable queues and routing.
4
+ domain: stack
5
+ category: queue
6
+ tags: [rabbitmq, message-broker, amqp, queue, messaging, pubsub]
7
+ official_sources:
8
+ - https://www.rabbitmq.com/docs
9
+ - https://github.com/rabbitmq/rabbitmq-server
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # RabbitMQ
14
+
15
+ ## Overview
16
+ RabbitMQ is a feature-rich, multi-protocol messaging and streaming broker that decouples producers from consumers with durable queues and flexible routing. It speaks AMQP 0-9-1/1.0, MQTT, STOMP, and their WebSocket variants, making it a general-purpose broker for async workflows, task distribution, and event fan-out. Read this when services need reliable, acknowledged message delivery with routing logic rather than a simple in-memory list.
17
+
18
+ ## Official sources
19
+ - Docs: https://www.rabbitmq.com/docs
20
+ - Repo: https://github.com/rabbitmq/rabbitmq-server
21
+ - Install / download: https://www.rabbitmq.com/docs/download
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4-management
26
+ ```
27
+ Port 5672 is AMQP; 15672 serves the management UI.
28
+
29
+ ## Core concepts
30
+ - **Producer / Consumer**: producers publish messages; consumers subscribe and process them — they never communicate directly.
31
+ - **Exchange**: receives published messages and routes them to queues based on type (direct, topic, fanout, headers) and bindings.
32
+ - **Queue**: an ordered buffer that holds messages until a consumer acknowledges them; can be durable to survive broker restarts.
33
+ - **Binding + routing key**: rules connecting exchanges to queues; the routing key plus exchange type determines where a message lands.
34
+ - **Acknowledgements**: consumers ack messages after processing; unacked messages are redelivered if the consumer dies, ensuring at-least-once delivery.
35
+ - **Quorum queues**: the recommended replicated, durable queue type for data safety in clustered deployments.
36
+
37
+ ## Best practices
38
+ - Use manual acknowledgements and only ack after successful processing so crashes trigger redelivery instead of message loss.
39
+ - Declare queues and exchanges as durable and publish persistent messages when you need them to survive a broker restart.
40
+ - Prefer quorum queues over classic mirrored queues for replicated, highly-available workloads (per RabbitMQ docs).
41
+ - Set prefetch (QoS) limits so a single consumer is not flooded with unacked messages and work spreads across consumers.
42
+
43
+ ## Common pitfalls
44
+ - Auto-ack mode → messages are removed before processing completes, so a crash silently loses them; use manual ack.
45
+ - Non-durable queues / non-persistent messages → everything is lost on broker restart; mark both durable when persistence matters.
46
+ - Unbounded queues without consumers or limits → memory/disk pressure can trigger flow control and block publishers; monitor depth and apply limits.
47
+
48
+ ## Examples
49
+ ```python
50
+ import pika
51
+ conn = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
52
+ ch = conn.channel()
53
+ ch.queue_declare(queue='tasks', durable=True)
54
+ ch.basic_publish(exchange='', routing_key='tasks', body='hello',
55
+ properties=pika.BasicProperties(delivery_mode=2)) # persistent
56
+ ```
57
+
58
+ ## Further reading
59
+ - https://www.rabbitmq.com/tutorials — official protocol/usage tutorials
60
+ - https://www.rabbitmq.com/docs/quorum-queues — quorum queue reference
61
+
62
+ ## Related skills
63
+ - ../kafka — log-based streaming alternative for high-throughput event pipelines
64
+ - ../celery — Python task queue that commonly uses RabbitMQ as its broker
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: redis
3
+ description: In-memory data store used as a cache, message broker, and queue backend; consult when adding caching, pub/sub, or queue infrastructure.
4
+ domain: stack
5
+ category: queue
6
+ tags: [redis, cache, queue, pubsub, streams, in-memory]
7
+ official_sources:
8
+ - https://redis.io/docs/latest/develop/
9
+ - https://github.com/redis/redis
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Redis
14
+
15
+ ## Overview
16
+ Redis is an in-memory key-value data store used as a cache, data-structure server, message broker, and the backing store for many job-queue libraries. It keeps data in RAM for sub-millisecond access while offering optional persistence. Read this when you need fast caching, pub/sub messaging, rate limiting, or a queue substrate (BullMQ, Celery, Sidekiq all build on Redis).
17
+
18
+ ## Official sources
19
+ - Docs: https://redis.io/docs/latest/develop/
20
+ - Repo: https://github.com/redis/redis
21
+ - Install / download: https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/
22
+
23
+ ## Install / setup
24
+ ```bash
25
+ # Docker (quickest, only officially supported method on Windows)
26
+ docker run -d --name redis -p 6379:6379 redis
27
+ ```
28
+ ```bash
29
+ # macOS (Homebrew)
30
+ brew tap redis/redis
31
+ brew install --cask redis
32
+ ```
33
+
34
+ ## Core concepts
35
+ - **Data types**: strings, hashes, lists, sets, sorted sets, streams, bitmaps, hyperloglogs, and geospatial indexes — choosing the right type is the primary modeling decision.
36
+ - **Single-threaded command execution**: commands run sequentially on one main thread, so each command is atomic; long-running commands block all clients.
37
+ - **Key expiration / eviction**: keys can be given a TTL (`EXPIRE`/`SET ... EX`); when memory fills, the configured `maxmemory-policy` (e.g. `allkeys-lru`) decides what to evict — central to cache behavior.
38
+ - **Pub/Sub and Streams**: Pub/Sub is fire-and-forget fan-out; Streams are append-only logs with consumer groups for durable, replayable queue semantics.
39
+ - **Persistence (RDB + AOF)**: RDB snapshots and the append-only file give durability; Redis is in-memory first, so persistence is a configurable trade-off, not the default guarantee.
40
+ - **Transactions and Lua scripts**: `MULTI`/`EXEC` and server-side Lua scripts run atomically, which is how queue libraries implement reliable multi-key operations.
41
+
42
+ ## Best practices
43
+ - Set explicit TTLs on cache keys and choose an eviction policy that matches your workload rather than relying on unbounded growth (see Redis eviction docs).
44
+ - Prefer `SCAN` over `KEYS` in production; `KEYS` blocks the single thread across the whole keyspace.
45
+ - Use pipelining or `MULTI`/Lua to batch related operations and cut round-trips instead of issuing many sequential commands.
46
+ - For durable queues use Streams with consumer groups (acknowledge with `XACK`) rather than plain lists, so unprocessed messages survive consumer crashes.
47
+
48
+ ## Common pitfalls
49
+ - Treating Redis as a fully durable primary database → it is in-memory first; enable AOF/RDB and understand the data-loss window, or keep the system of record elsewhere.
50
+ - Running `KEYS *` or large `SMEMBERS`/`HGETALL` on big keys in production → blocks the server; use `SCAN`/cursor-based iteration and avoid giant keys.
51
+ - Forgetting `maxmemory` and eviction policy → Redis can exhaust RAM and start failing writes (or get OOM-killed) under load.
52
+
53
+ ## Examples
54
+ ```bash
55
+ SET session:42 "user-data" EX 3600 # value with a 1-hour TTL
56
+ INCR page:views # atomic counter
57
+ XADD orders '*' id 99 status new # append to a stream
58
+ ```
59
+
60
+ ## Further reading
61
+ - https://redis.io/docs/latest/develop/data-types/ — data type reference
62
+ - https://redis.io/docs/latest/develop/interact/pubsub/ — Pub/Sub guide
63
+
64
+ ## Related skills
65
+ - ../bullmq — Redis-backed job queue for Node.js built on these primitives
66
+ - ../celery — Python task queue that can use Redis as its broker
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: beam
3
+ description: The BEAM (Erlang/OTP VM) running Erlang and Elixir — built for massively scalable, fault-tolerant, soft real-time systems. Consult for concurrent/HA services.
4
+ domain: stack
5
+ category: runtime
6
+ tags: [beam, erlang, elixir, otp, concurrency, fault-tolerance]
7
+ official_sources:
8
+ - https://www.erlang.org/docs
9
+ - https://github.com/erlang/otp
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # BEAM (Erlang/OTP VM)
14
+
15
+ ## Overview
16
+ The BEAM is the virtual machine in Erlang/OTP that executes Erlang and Elixir code. Erlang is designed for building massively scalable soft real-time systems with high-availability requirements. OTP is the runtime system plus a set of libraries and design principles for building robust concurrent applications. Read this when building fault-tolerant, highly concurrent, or distributed services.
17
+
18
+ ## Official sources
19
+ - Docs: https://www.erlang.org/docs
20
+ - Repo: https://github.com/erlang/otp
21
+ - Install / download: https://www.erlang.org/downloads
22
+
23
+ ## Install / setup
24
+ Install via a package manager (commands shown on the official downloads page):
25
+
26
+ ```bash
27
+ brew install erlang # macOS (Homebrew)
28
+ apt-get install erlang # Ubuntu/Debian
29
+ ```
30
+
31
+ Or build from source per the official build instructions:
32
+
33
+ ```bash
34
+ ./configure && make && make install
35
+ ```
36
+
37
+ Verify the install by starting the shell with `erl` (the downloads page also lists version managers such as kerl, asdf, and mise).
38
+
39
+ ## Core concepts
40
+ - Lightweight processes: BEAM schedules huge numbers of isolated processes that share no memory and communicate by message passing.
41
+ - "Let it crash": processes fail fast and are restarted by supervisors rather than defensively handling every error.
42
+ - OTP behaviours (`gen_server`, supervisors, applications) encode proven patterns for concurrent, supervised systems.
43
+ - Preemptive per-process scheduling gives soft real-time, low-latency responsiveness under load.
44
+ - Built-in distribution lets nodes connect and processes communicate across machines transparently.
45
+ - Hot code loading allows updating running systems without full restarts.
46
+
47
+ ## Best practices
48
+ - Structure applications around supervision trees so failures are isolated and recovered automatically.
49
+ - Build stateful concurrency on OTP behaviours (e.g. `gen_server`) rather than ad-hoc process loops.
50
+ - Keep processes small and single-purpose to maximize isolation and fault containment.
51
+ - Prefer immutable message passing over shared state, in line with the actor model.
52
+
53
+ ## Common pitfalls
54
+ - Writing defensive try/catch everywhere instead of leveraging supervisors → adopt "let it crash" with supervision.
55
+ - Building bespoke process plumbing instead of OTP behaviours → reuse `gen_server`/supervisor patterns.
56
+ - Large messages copied between processes → keep messages small since processes do not share memory.
57
+
58
+ ## Examples
59
+ ```erlang
60
+ % Spawn a process and send it a message
61
+ Pid = spawn(fun() ->
62
+ receive Msg -> io:format("got: ~p~n", [Msg]) end
63
+ end),
64
+ Pid ! hello.
65
+ ```
66
+
67
+ ## Further reading
68
+ - OTP design principles: https://www.erlang.org/doc/system/design_principles.html
69
+ - Documentation hub: https://www.erlang.org/docs
70
+
71
+ ## Related skills
72
+ - ../jvm — alternative VM for concurrent, long-running services
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: bun
3
+ description: Bun — fast all-in-one JS/TS runtime, bundler, test runner, and package manager; a Node.js drop-in. Consult for fast JS/TS dev and tooling.
4
+ domain: stack
5
+ category: runtime
6
+ tags: [bun, javascript, typescript, runtime, bundler, package-manager]
7
+ official_sources:
8
+ - https://bun.com/docs
9
+ - https://github.com/oven-sh/bun
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Bun
14
+
15
+ ## Overview
16
+ Bun is an all-in-one toolkit for JavaScript and TypeScript apps, designed as a drop-in replacement for Node.js. It ships as a single dependency-free executable that bundles a runtime, package manager, bundler, and test runner. Written in Zig and powered by JavaScriptCore, it targets fast startup and install times. Read this when you want a single fast tool covering run, install, build, and test.
17
+
18
+ ## Official sources
19
+ - Docs: https://bun.com/docs
20
+ - Repo: https://github.com/oven-sh/bun
21
+ - Install / download: https://bun.com/docs/installation
22
+
23
+ ## Install / setup
24
+ macOS & Linux (from the official installation page):
25
+
26
+ ```bash
27
+ curl -fsSL https://bun.com/install | bash
28
+ ```
29
+
30
+ Windows (PowerShell):
31
+
32
+ ```powershell
33
+ powershell -c "irm bun.sh/install.ps1|iex"
34
+ ```
35
+
36
+ Verify the install:
37
+
38
+ ```bash
39
+ bun --version
40
+ bun --revision
41
+ ```
42
+
43
+ ## Core concepts
44
+ - Single executable provides runtime, package manager (`bun install`), bundler (`bun build`), and test runner (`bun test`).
45
+ - Native TypeScript and JSX support — run `.ts`/`.tsx` directly without a separate transpile step.
46
+ - Node.js compatibility layer aims for drop-in replacement of `node`, including many built-in modules and npm packages.
47
+ - Bun-specific APIs (e.g. `Bun.serve`, `Bun.file`) offer optimized I/O and HTTP serving.
48
+ - `bun.lockb`/lockfile and a fast, npm-compatible install resolve dependencies from the npm registry.
49
+ - The binary upgrades itself via `bun upgrade`.
50
+
51
+ ## Best practices
52
+ - Verify after install and add `~/.bun/bin` to `PATH` if `bun` is not found (per the installation docs).
53
+ - Use `bun install` to leverage the integrated, fast package manager and its lockfile.
54
+ - Pin to stable releases; canary builds are untested and upload crash reports (installation docs).
55
+ - Run TypeScript directly with `bun run` instead of adding a separate transpiler step.
56
+
57
+ ## Common pitfalls
58
+ - Assuming 100% Node.js parity → check the Node compatibility docs for unsupported APIs before migrating.
59
+ - On Linux, missing `unzip` breaks the install script → install `unzip` first (installation docs).
60
+ - Using a baseline build on a modern CPU unnecessarily → only use baseline builds when you hit "Illegal Instruction" errors.
61
+
62
+ ## Examples
63
+ ```ts
64
+ const server = Bun.serve({
65
+ port: 3000,
66
+ fetch(req) {
67
+ return new Response('Hello from Bun');
68
+ },
69
+ });
70
+
71
+ console.log(`listening on ${server.url}`);
72
+ ```
73
+
74
+ ## Further reading
75
+ - Documentation index: https://bun.com/docs
76
+ - Runtime / Node compatibility: https://bun.com/docs/runtime/nodejs-apis
77
+
78
+ ## Related skills
79
+ - ../node — the runtime Bun aims to replace
80
+ - ../deno — alternative secure JS/TS runtime