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,37 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 360 360" width="360" height="360" role="img" aria-label="black hole โ€” context as gravity">
2
+ <defs>
3
+ <radialGradient id="bg" cx="50%" cy="50%" r="60%">
4
+ <stop offset="0%" stop-color="#0a0820"/>
5
+ <stop offset="100%" stop-color="#050416"/>
6
+ </radialGradient>
7
+ <radialGradient id="core" cx="50%" cy="50%" r="50%">
8
+ <stop offset="0%" stop-color="#000000"/>
9
+ <stop offset="70%" stop-color="#000000"/>
10
+ <stop offset="100%" stop-color="#1a0f3a"/>
11
+ </radialGradient>
12
+ <linearGradient id="ring" x1="0" y1="0" x2="1" y2="1">
13
+ <stop offset="0" stop-color="#e879f9"/>
14
+ <stop offset="0.4" stop-color="#a78bfa"/>
15
+ <stop offset="0.7" stop-color="#22d3ee"/>
16
+ <stop offset="1" stop-color="#f59e0b"/>
17
+ </linearGradient>
18
+ <filter id="bh" x="-40%" y="-40%" width="180%" height="180%"><feGaussianBlur stdDeviation="4"/></filter>
19
+ </defs>
20
+ <rect width="360" height="360" fill="url(#bg)"/>
21
+ <g transform="translate(180 180)">
22
+ <g filter="url(#bh)">
23
+ <ellipse rx="150" ry="44" fill="none" stroke="url(#ring)" stroke-width="10" opacity="0.85">
24
+ <animateTransform attributeName="transform" type="rotate" from="0" to="360" dur="12s" repeatCount="indefinite"/>
25
+ </ellipse>
26
+ <ellipse rx="150" ry="44" fill="none" stroke="url(#ring)" stroke-width="4" opacity="0.5" transform="rotate(60)">
27
+ <animateTransform attributeName="transform" type="rotate" from="60" to="420" dur="18s" repeatCount="indefinite"/>
28
+ </ellipse>
29
+ </g>
30
+ <circle r="62" fill="url(#core)"/>
31
+ <circle r="62" fill="none" stroke="#1a0f3a" stroke-width="2"/>
32
+ <circle r="70" fill="none" stroke="#22d3ee" stroke-width="1" opacity="0.4">
33
+ <animate attributeName="r" values="64;80;64" dur="5s" repeatCount="indefinite"/>
34
+ <animate attributeName="opacity" values="0.5;0;0.5" dur="5s" repeatCount="indefinite"/>
35
+ </circle>
36
+ </g>
37
+ </svg>
@@ -0,0 +1,23 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 28" width="1200" height="28" role="img" aria-label="orbit divider">
2
+ <defs>
3
+ <linearGradient id="dl" x1="0" y1="0" x2="1" y2="0">
4
+ <stop offset="0" stop-color="#0d0a26" stop-opacity="0"/>
5
+ <stop offset="0.2" stop-color="#60a5fa" stop-opacity="0.55"/>
6
+ <stop offset="0.5" stop-color="#22d3ee" stop-opacity="0.9"/>
7
+ <stop offset="0.8" stop-color="#a78bfa" stop-opacity="0.55"/>
8
+ <stop offset="1" stop-color="#0d0a26" stop-opacity="0"/>
9
+ </linearGradient>
10
+ <filter id="g" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="1.5"/></filter>
11
+ </defs>
12
+ <line x1="0" y1="14" x2="1200" y2="14" stroke="url(#dl)" stroke-width="1.4"/>
13
+ <g fill="#e2e8f0">
14
+ <circle cx="120" cy="14" r="1" opacity="0.6"/>
15
+ <circle cx="360" cy="14" r="1.2" opacity="0.5"/>
16
+ <circle cx="840" cy="14" r="1" opacity="0.6"/>
17
+ <circle cx="1080" cy="14" r="1.2" opacity="0.5"/>
18
+ </g>
19
+ <circle cx="0" cy="14" r="3.2" fill="#22d3ee" filter="url(#g)">
20
+ <animate attributeName="cx" values="120;1080;120" dur="9s" repeatCount="indefinite"/>
21
+ <animate attributeName="fill" values="#22d3ee;#e879f9;#22d3ee" dur="9s" repeatCount="indefinite"/>
22
+ </circle>
23
+ </svg>
@@ -0,0 +1,72 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 340" width="1200" height="340" role="img" aria-label="Constella โ€” a cosmic control plane for autonomous AI agent-companies">
2
+ <defs>
3
+ <radialGradient id="space" cx="50%" cy="38%" r="85%">
4
+ <stop offset="0%" stop-color="#1b1140"/>
5
+ <stop offset="45%" stop-color="#0d0a26"/>
6
+ <stop offset="100%" stop-color="#050416"/>
7
+ </radialGradient>
8
+ <linearGradient id="title" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="520" y2="0" spreadMethod="reflect">
9
+ <stop offset="0" stop-color="#a78bfa"/>
10
+ <stop offset="0.25" stop-color="#60a5fa"/>
11
+ <stop offset="0.5" stop-color="#22d3ee"/>
12
+ <stop offset="0.75" stop-color="#e879f9"/>
13
+ <stop offset="1" stop-color="#a78bfa"/>
14
+ <animateTransform attributeName="gradientTransform" type="translate" from="-520 0" to="520 0" dur="6s" repeatCount="indefinite"/>
15
+ </linearGradient>
16
+ <linearGradient id="orbitline" x1="0" y1="0" x2="1" y2="0">
17
+ <stop offset="0" stop-color="#22d3ee" stop-opacity="0"/>
18
+ <stop offset="0.5" stop-color="#22d3ee" stop-opacity="0.7"/>
19
+ <stop offset="1" stop-color="#a78bfa" stop-opacity="0"/>
20
+ </linearGradient>
21
+ <filter id="glow" x="-30%" y="-30%" width="160%" height="160%">
22
+ <feGaussianBlur stdDeviation="6" result="b"/>
23
+ <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
24
+ </filter>
25
+ <filter id="soft" x="-50%" y="-50%" width="200%" height="200%">
26
+ <feGaussianBlur stdDeviation="1.2"/>
27
+ </filter>
28
+ </defs>
29
+
30
+ <rect width="1200" height="340" fill="url(#space)"/>
31
+
32
+ <!-- starfield -->
33
+ <g fill="#ffffff" filter="url(#soft)">
34
+ <circle cx="80" cy="60" r="1.4" opacity="0.8"><animate attributeName="opacity" values="0.2;1;0.2" dur="3.1s" repeatCount="indefinite"/></circle>
35
+ <circle cx="180" cy="120" r="1" opacity="0.5"><animate attributeName="opacity" values="0.5;0.1;0.5" dur="2.4s" repeatCount="indefinite"/></circle>
36
+ <circle cx="260" cy="40" r="1.2" opacity="0.7"><animate attributeName="opacity" values="0.3;0.9;0.3" dur="4.2s" repeatCount="indefinite"/></circle>
37
+ <circle cx="340" cy="200" r="1" opacity="0.6"/>
38
+ <circle cx="120" cy="240" r="1.6" opacity="0.9"><animate attributeName="opacity" values="0.4;1;0.4" dur="3.7s" repeatCount="indefinite"/></circle>
39
+ <circle cx="430" cy="80" r="1" opacity="0.5"><animate attributeName="opacity" values="0.6;0.15;0.6" dur="2.9s" repeatCount="indefinite"/></circle>
40
+ <circle cx="520" cy="280" r="1.3" opacity="0.7"/>
41
+ <circle cx="700" cy="50" r="1.1" opacity="0.6"><animate attributeName="opacity" values="0.2;0.85;0.2" dur="3.3s" repeatCount="indefinite"/></circle>
42
+ <circle cx="780" cy="150" r="1" opacity="0.5"/>
43
+ <circle cx="860" cy="60" r="1.5" opacity="0.85"><animate attributeName="opacity" values="0.3;1;0.3" dur="4.6s" repeatCount="indefinite"/></circle>
44
+ <circle cx="940" cy="220" r="1.1" opacity="0.6"><animate attributeName="opacity" values="0.5;0.1;0.5" dur="2.6s" repeatCount="indefinite"/></circle>
45
+ <circle cx="1020" cy="100" r="1.3" opacity="0.7"/>
46
+ <circle cx="1100" cy="180" r="1" opacity="0.5"><animate attributeName="opacity" values="0.2;0.9;0.2" dur="3.9s" repeatCount="indefinite"/></circle>
47
+ <circle cx="1140" cy="70" r="1.5" opacity="0.85"><animate attributeName="opacity" values="0.4;1;0.4" dur="3.2s" repeatCount="indefinite"/></circle>
48
+ <circle cx="610" cy="120" r="1" opacity="0.5"/>
49
+ <circle cx="40" cy="160" r="1.1" opacity="0.6"><animate attributeName="opacity" values="0.6;0.2;0.6" dur="2.7s" repeatCount="indefinite"/></circle>
50
+ <circle cx="980" cy="40" r="1" opacity="0.5"/>
51
+ <circle cx="300" cy="290" r="1.2" opacity="0.7"><animate attributeName="opacity" values="0.3;0.95;0.3" dur="4.1s" repeatCount="indefinite"/></circle>
52
+ </g>
53
+
54
+ <!-- orbit with travelling planet -->
55
+ <g transform="translate(600 250)">
56
+ <ellipse rx="430" ry="56" fill="none" stroke="url(#orbitline)" stroke-width="1.5" opacity="0.7"/>
57
+ <circle r="5" fill="#22d3ee" filter="url(#glow)">
58
+ <animateMotion dur="14s" repeatCount="indefinite" path="M 430 0 A 430 56 0 1 1 -430 0 A 430 56 0 1 1 430 0"/>
59
+ </circle>
60
+ <circle r="3" fill="#e879f9" filter="url(#glow)">
61
+ <animateMotion dur="14s" begin="-7s" repeatCount="indefinite" path="M 430 0 A 430 56 0 1 1 -430 0 A 430 56 0 1 1 430 0"/>
62
+ </circle>
63
+ </g>
64
+
65
+ <!-- wordmark -->
66
+ <g text-anchor="middle" font-family="'Segoe UI',Helvetica,Arial,sans-serif">
67
+ <text x="600" y="150" font-size="92" font-weight="800" letter-spacing="2" fill="url(#title)" filter="url(#glow)">Constella</text>
68
+ <text x="600" y="150" font-size="92" font-weight="800" letter-spacing="2" fill="url(#title)" opacity="0.9">Constella</text>
69
+ <text x="600" y="196" font-size="21" fill="#cbd5e1" letter-spacing="3" font-weight="500">โœฆ โ‹† ๏ฝกหš A COSMIC CONTROL PLANE FOR AUTONOMOUS AI AGENT-COMPANIES หš๏ฝก โ‹† โœฆ</text>
70
+ <text x="600" y="226" font-size="15" fill="#64748b" letter-spacing="1">Real claude / codex agents that plan, build, review and ship โ€” your machine, your models, your rules.</text>
71
+ </g>
72
+ </svg>
@@ -0,0 +1,279 @@
1
+ [โ† Docs index](./README.md) ยท [๐Ÿ‡ง๐Ÿ‡ท Portuguรชs](../pt/AGENTS.md) ยท [โœฆ Constella](../../README.md)
2
+
3
+ # Agents โ€” The Roster โœฆ๐Ÿ›ฐ๏ธ
4
+
5
+ ![](../assets/divider-orbit.svg)
6
+
7
+ The ten working stars of every Constella organization. Each agent is a real `claude`/`codex` CLI process with a role, a manager, a model, a temperature, a daily budget cap and a persona on disk. Together they form the constellation that plans, builds, reviews and ships your product.
8
+
9
+ ## When to use
10
+
11
+ - You want to know **who does what** and **who reports to whom** in a freshly-onboarded organization.
12
+ - You need the exact **handle**, **role**, **model**, **daily cap** and **tier** for an agent.
13
+ - You are wiring the **Org Chart**, re-assigning a manager, or changing an agent's model/budget.
14
+ - You want to understand **persona files** (`.claude/agents/<handle>/โ€ฆ`), **status** and **health**.
15
+
16
+ ## How it works ๐ŸŒŒ
17
+
18
+ The roster is **born from code**, not typed in by a human. Three sources define and materialize it:
19
+
20
+ | Source file | Role |
21
+ |---|---|
22
+ | `src/data/scaffold.ts` (`AGENT_DEFS`) | Canonical roster definition + persona/file templates (`agentMd`, `pulseMd`, `toolsMd`, `skillsMd`). Renders the on-disk `.claude/agents/<handle>/โ€ฆ` files. |
23
+ | `src/server/onboarding.ts` (`AGENTS`) | Inserts the 10 `agent` rows into the DB at onboarding (with `tierFloor`, `dailyCapUsd`, `reportsTo`). |
24
+ | `src/server/seed-roster.ts` (`seedRosterForExistingWorkspaces`) | **Backfill** โ€” adds any `AGENT_DEFS` member missing from an already-onboarded workspace (e.g. Vannevar, added after the original 9). Idempotent; runs once per boot from `reconcileOnBoot`. |
25
+
26
+ The **directory is the source of truth**: every agent's identity lives in Markdown under `.claude/agents/<handle>/`. The `agent` DB row (`src/db/schema.ts`) indexes it for the UI and the runner. Editing the persona in the UI writes through to disk (`saveAgentPersona`, `saveAgentModel` in `src/server/agents.ts`).
27
+
28
+ > Note: the legacy `src/db/seed.ts` demo seed lists only the original **9** agents (no Vannevar). The boot backfill (`seedRosterForExistingWorkspaces`) closes that gap, so every live workspace ends up with all **10**.
29
+
30
+ ## Main flow โ€” from definition to a living agent
31
+
32
+ ```mermaid
33
+ flowchart LR
34
+ A["AGENT_DEFS<br/>(scaffold.ts)"] --> B["onboarding.ts<br/>insert agent rows"]
35
+ A --> C["agentFiles()<br/>render .claude/agents/&lt;handle&gt;/"]
36
+ B --> D[("agent table")]
37
+ C --> E["Agent.md ยท pulse.md<br/>tools.md ยท skills.md"]
38
+ D --> F["Runner / Org Chart / Studio"]
39
+ E --> G["assembleAgentPrompt<br/>(persona โ†’ CLI run)"]
40
+ H["seed-roster.ts backfill<br/>(on boot)"] -. fills gaps .-> D
41
+ H -. writes .-> E
42
+ ```
43
+
44
+ ## The 10 agents ๐Ÿช
45
+
46
+ Source of truth: `AGENT_DEFS` in `src/data/scaffold.ts` (mirrored by `AGENTS` in `src/server/onboarding.ts`).
47
+
48
+ | Name | Handle | Role | Reports to | Model | Temp | Daily cap (USD) | Tier | Color |
49
+ |---|---|---|---|---|---|---|---|---|
50
+ | Ada | `ada` | CEO | โ€” (root) | `sonnet` | 0.4 | $15 | critical | `#e0a44e` |
51
+ | Linus | `linus` | CTO | `ada` | `sonnet` | 0.3 | $40 | critical | `#9a5cff` |
52
+ | Donald | `donald` | Product Owner | `ada` | `haiku` | 0.4 | $20 | heavy | `#4fc9b0` |
53
+ | Margaret | `margaret` | Backend | `linus` | `sonnet` | 0.3 | $50 | heavy | `#3fb98f` |
54
+ | Grace | `grace` | Frontend | `linus` | `sonnet` | 0.5 | $45 | heavy | `#5b8def` |
55
+ | Edsger | `edsger` | QA | `linus` | `haiku` | 0.2 | $25 | heavy | `#e8688f` |
56
+ | Werner | `werner` | DevOps | `linus` | `haiku` | 0.3 | $20 | heavy | `#f0a35e` |
57
+ | Barbara | `barbara` | Docs | `ada` | `haiku` | 0.4 | $15 | light | `#b3d97a` |
58
+ | Whitfield | `whitfield` | CyberSec | `linus` | `opus` | 0.2 | $30 | critical | `#c4a0ff` |
59
+ | Vannevar | `vannevar` | Knowledge | `ada` | `haiku` | 0.2 | $10 | light | `#7ac5e0` |
60
+
61
+ All ten ship on `provider: cli_claude_code` by default. `model` is a real Claude Code CLI alias โ€” only `opus`, `sonnet`, `haiku` exist for that adapter (`CLI_MODELS.cli_claude_code` in `src/server/adapters/cli.ts`).
62
+
63
+ ### Identities & rituals
64
+
65
+ Each agent carries an `identity` (who it is) and a `ritual` (what it does every working cycle), straight from `AGENT_DEFS`:
66
+
67
+ | Agent | Identity | Ritual |
68
+ |---|---|---|
69
+ | Ada | Decisive, outcome-driven leader. Speaks in goals, not tasks. Protects scope and budget. | Read the company goals, decompose into epics, delegate to leads, review what shipped. |
70
+ | Linus | Systems thinker. Balances delivery speed against technical debt. | Turn epics into tickets, route work to specialists, clear blockers, review PRs. |
71
+ | Donald | Customer voice. Ruthless about priority and clarity. | Groom the backlog with MoSCoW, plan the sprint, track delivery, close with a retro. |
72
+ | Margaret | Pragmatic server engineer. Values correctness, small diffs and green tests. | Pull one ticket, read context, implement on a branch, never push without a passing suite. |
73
+ | Grace | Craft-focused UI engineer. Cares about accessibility and clean component APIs. | Read the design tokens, build the smallest component that works, typecheck before PR. |
74
+ | Edsger | Skeptical quality gate. Assumes nothing works until proven by a test. | Reproduce, cover with a test, run the suite, then gate the sign-off. |
75
+ | Werner | Reliability-minded operator. Automates the boring, guards the leases. | Build, deploy a preview, report the URL, never leave an env leased too long. |
76
+ | Barbara | Patient explainer. Turns changes into understandable docs. | Watch merges, draft docs while context is fresh, verify every link. |
77
+ | Whitfield | Adversarial reviewer. Thinks like an attacker, writes like an auditor. | Audit every change for secret handling and injection, file findings with a concrete fix. |
78
+ | Vannevar | Keeper of the company's semantic memory. Indexes every document AND conversation into embeddings. | Keep the embedding server healthy; re-index workspace docs and chat into the RAG index so retrieval stays current. |
79
+
80
+ ## Reporting tree โ€” the org chart ๐ŸŒ 
81
+
82
+ Two roots-of-orbit: **Ada (CEO)** sits at the center; **Linus (CTO)** carries the engineering constellation. `reportsTo` stores the **manager's handle** (handle-space end to end โ€” see `setReportsToByHandle`).
83
+
84
+ ```mermaid
85
+ graph TD
86
+ ada["Ada ยท CEO ยท sonnet ยท $15 ยท critical"]
87
+ linus["Linus ยท CTO ยท sonnet ยท $40 ยท critical"]
88
+ donald["Donald ยท Product Owner ยท haiku ยท $20 ยท heavy"]
89
+ barbara["Barbara ยท Docs ยท haiku ยท $15 ยท light"]
90
+ vannevar["Vannevar ยท Knowledge ยท haiku ยท $10 ยท light"]
91
+ margaret["Margaret ยท Backend ยท sonnet ยท $50 ยท heavy"]
92
+ grace["Grace ยท Frontend ยท sonnet ยท $45 ยท heavy"]
93
+ edsger["Edsger ยท QA ยท haiku ยท $25 ยท heavy"]
94
+ werner["Werner ยท DevOps ยท haiku ยท $20 ยท heavy"]
95
+ whitfield["Whitfield ยท CyberSec ยท opus ยท $30 ยท critical"]
96
+
97
+ ada --> linus
98
+ ada --> donald
99
+ ada --> barbara
100
+ ada --> vannevar
101
+ linus --> margaret
102
+ linus --> grace
103
+ linus --> edsger
104
+ linus --> werner
105
+ linus --> whitfield
106
+ ```
107
+
108
+ - **Ada's direct reports:** `linus`, `donald`, `barbara`, `vannevar`.
109
+ - **Linus's direct reports:** `margaret`, `grace`, `edsger`, `werner`, `whitfield`.
110
+ - Blocked tasks escalate to the agent's `reportsTo` (per `.claude/routing.md`).
111
+
112
+ ## Key concepts โœฆ
113
+
114
+ ### Persona files (the directory is the brain)
115
+
116
+ For every agent, `agentFiles(def, ctx)` writes **four** Markdown files under `.claude/agents/<handle>/`:
117
+
118
+ | File | Generator | Contents |
119
+ |---|---|---|
120
+ | `Agent.md` | `agentMd` | YAML front-matter (`handle`, `name`, `role`, `reportsTo`, `provider`, `model`, `temperature`, `dailyCapUsd`, `tierFloor`) + Identity, Ritual, Responsibilities, Behavior (from temperature), Decision/Execution rules, Workspace boundaries, and the **System prompt**. |
121
+ | `pulse.md` | `pulseMd` | Liveness config โ€” `intervalSec: 30`, `maxMissed: 2`, `wakeOn` (`queued_task`, `mention`), and the status/health legend. |
122
+ | `tools.md` | `toolsMd` | Role-scoped tool table (e.g. CyberSec โ†’ `secret-scan`, `review.signoff`, `fs.read`; Knowledge โ†’ `rag.reindex`, `rag.index-chat`, `embed.health`). |
123
+ | `skills.md` | `skillsMd` | The procedures linked to the agent (from `SKILL_DEFS`) + its ritual. |
124
+
125
+ `Agent.md` is **write-through**: UI edits in Agent Studio patch the front-matter and sections in place (`setFrontMatter`, `setInlineField`, `setSection`) and the DB row is updated to match. The directory wins on conflict.
126
+
127
+ ### Model & tier
128
+
129
+ - **Not Claude-only.** The seed `opus`/`sonnet`/`haiku` values are simply the defaults of the seed adapter `cli_claude_code`. Change `adapter` per agent in **Agent Studio โ†’ Model** and the **model menu changes with it** โ€” the `ModelPicker` is keyed by `adapter` (`cliModelOptions(adapter)`, `src/components/ui/model-picker.tsx`): `cli_codex` โ†’ `gpt-5-codex` / `o4-mini`; `cli_openclaw` / `cli_hermes` / `cli_aider` / `cli_opencode` / `cli_copilot` / `cli_cursor` / `cli_cline` / `cli_kilo` โ†’ their provider-routed ids; `local_*` โ†’ the loaded GGUF; HTTP/router providers โ†’ the cached model catalog. The full adapter table is in [MODELS.md](./MODELS.md).
130
+ - `model` is the configured alias. For `cli_claude_code` that is one of `opus` / `sonnet` / `haiku`.
131
+ - `tierFloor` (`light` | `heavy` | `critical`) is the agent's quality floor โ€” defaulted in `AGENT_DEFS`, persisted on the `agent` row (`tier_floor`, default `heavy`). **Tiers are provider-agnostic:** a flagship reasoning model on any provider (e.g. a top Codex/GPT at high reasoning, or a top Gemini) maps to the `critical` / Opus-class tier in power and cost, while smaller/faster models (`o4-mini`, a "flash", `haiku`) map to the `light` end.
132
+ - For quality-critical steps (code review, security, final validation) the runner can reach for the **strongest** model of the agent's provider via `strongestModelFor()` โ€” for `claude` that resolves to `opus`, and the equivalent flagship for any other provider.
133
+ - The model menu switches **automatically** when you pick a provider; the **daily cap does not** โ€” it is an independent USD budget you set (next section) to match the model's cost tier.
134
+ - `temperature` does **not** set a CLI sampling flag (the Claude Code CLI exposes none). Instead `temperatureBehavior(t)` turns the slider into a concrete **prompt instruction** injected on every run (`src/data/temperature.ts`).
135
+
136
+ ### Daily cap (budget ceiling) ๐Ÿ•ณ๏ธ
137
+
138
+ `dailyCapUsd` is a hard spend ceiling per agent per day. The runner calls `agentAtCap(agentId, dailyCapUsd)` (`src/server/runner.ts`); when reached it **pauses** the agent and pushes a `budget` inbox item ("@`<handle>` hit the daily budget cap"). Raise the cap in Agent Studio or wait for the daily reset. A cap of `0` means "no cap".
139
+
140
+ ### Status & health
141
+
142
+ Two orthogonal axes on the `agent` row:
143
+
144
+ | Axis | Column | Values | Meaning |
145
+ |---|---|---|---|
146
+ | **Status** | `status` | `idle` ยท `working` ยท `review` ยท `blocked` | What the agent is doing right now. |
147
+ | **Health** | `health` | `alive` ยท `stale` ยท `down` | Whether its executor is reachable. |
148
+
149
+ The cron tick sweep (`runner.ts`) sets health from runtime availability: if the agent's CLI binary is reachable (`runtimeOk`), health is `alive`; otherwise `stale`. Idle agents get a lightweight heartbeat touch (`lastPulse` updated, no pulse-row spam); working/review agents record a real `pulse` row via `recordPulse`. `pulse.md` documents the liveness contract: alive within `intervalSec * maxMissed`, otherwise stale; repeated failure โ†’ `down` (logged to `Reports/error-report.md`).
150
+
151
+ ## Tables ๐Ÿ›ฐ๏ธ
152
+
153
+ ### `agent` (`src/db/schema.ts`)
154
+
155
+ | Column | Type | Default | Notes |
156
+ |---|---|---|---|
157
+ | `id` | text PK | โ€” | Stable id. |
158
+ | `workspaceId` | text | โ€” | FK โ†’ `workspace` (cascade). |
159
+ | `handle` | text | โ€” | Unique short name (`ada`, `linus`, โ€ฆ). |
160
+ | `name` | text | โ€” | Display name. |
161
+ | `role` | text | โ€” | CEO / CTO / Backend / โ€ฆ |
162
+ | `color` | text | `#e0a44e` | Avatar tint (used for initials fallback). |
163
+ | `image` | text | null | Optional avatar path / data URL. |
164
+ | `adapter` | text | `cli_claude_code` | Execution runtime (CLI/HTTP/local). |
165
+ | `model` | text | `sonnet` | Model alias. |
166
+ | `temperature` | real | `0.4` | Drives the Behavior prompt band. |
167
+ | `dailyCapUsd` | real | `25` | Daily spend ceiling. |
168
+ | `tierFloor` | text enum | `heavy` | `light` / `heavy` / `critical`. |
169
+ | `reportsTo` | text | null | Manager's **handle**. |
170
+ | `status` | text enum | `idle` | `idle` / `working` / `review` / `blocked`. |
171
+ | `health` | text enum | `alive` | `alive` / `stale` / `down`. |
172
+ | `lastPulse` | timestamp | null | Last heartbeat. |
173
+ | `persona` | json | null | `{ identity, ritual, tone, systemPrompt }`. |
174
+ | `rag` | json | null | Per-agent RAG source toggles. |
175
+ | `orgX` / `orgY` | real | null | Org-chart card coordinates. |
176
+
177
+ ### `pulse` (heartbeat log)
178
+
179
+ | Column | Type | Notes |
180
+ |---|---|---|
181
+ | `id` | text PK | โ€” |
182
+ | `agentId` | text | FK โ†’ `agent`. |
183
+ | `at` | timestamp | `unixepoch()` default. |
184
+ | `ok` | boolean | Health-ping result. |
185
+ | `latencyMs` | integer | Ping latency. |
186
+ | `note` | text | e.g. `tick:working`. |
187
+
188
+ ### `agentSkill` (enablement join)
189
+
190
+ | Column | Notes |
191
+ |---|---|
192
+ | `agentId` + `skillId` | Composite PK. |
193
+ | `auto` | `true` = system-managed link (reconciled on boot/stack change); `false` = operator hand-toggled (never touched by reconcile). |
194
+
195
+ ## Step-by-step โ€” operate the roster
196
+
197
+ 1. **See the roster.** Open the Agents module (each card shows status, health, model). The Org Chart visualizes `reportsTo`.
198
+ 2. **Re-assign a manager.** Drag a card in the Org Chart canvas โ†’ `setReportsToByHandle(agentHandle, managerHandle)`. Self-loops and cycles are rejected; pass `null` to detach (becomes a root/CEO).
199
+ 3. **Change model / budget / tier.** In Agent Studio โ†’ `saveAgentModel({ adapter, model, temperature, dailyCapUsd, tierFloor })`. The DB row and `Agent.md` front-matter are updated together.
200
+ 4. **Edit persona.** `saveAgentPersona({ identity, ritual, tone, systemPrompt })` patches `Agent.md` (Identity, Ritual, System prompt) on disk.
201
+ 5. **Set an avatar.** `saveAgentImage(agentId, imagePath | null)` (data-URL avatars; legacy `uploads/<id>/` avatars are cleaned up on replace).
202
+ 6. **Add a missing agent.** On boot, `seedRosterForExistingWorkspaces()` backfills any `AGENT_DEFS` member absent from the workspace โ€” DB row, four persona files, and the non-provisional native skills.
203
+
204
+ ## Examples
205
+
206
+ Inspect an agent's persona on disk:
207
+
208
+ ```bash
209
+ cat ~/.constella/organizations/<orgId>/workspace/.claude/agents/linus/Agent.md
210
+ ```
211
+
212
+ Front-matter you will see (rendered by `agentMd`):
213
+
214
+ ```yaml
215
+ ---
216
+ handle: linus
217
+ name: Linus
218
+ role: CTO
219
+ reportsTo: ada
220
+ provider: cli_claude_code
221
+ model: sonnet
222
+ temperature: 0.3
223
+ dailyCapUsd: 40
224
+ tierFloor: critical
225
+ ---
226
+ ```
227
+
228
+ List agents and their reporting line from chat:
229
+
230
+ ```
231
+ /agents
232
+ /agent linus
233
+ ```
234
+
235
+ (`/agents` lists the roster; `/agent <handle>` shows one agent's detail โ€” see [CHAT_COMMANDS.md](./CHAT_COMMANDS.md).)
236
+
237
+ ## Possible states
238
+
239
+ | Concern | Values | Set by |
240
+ |---|---|---|
241
+ | Status | `idle` ยท `working` ยท `review` ยท `blocked` | Runner / planner as work flows. |
242
+ | Health | `alive` ยท `stale` ยท `down` | Cron tick sweep (binary reachability) + pulse sweep. |
243
+ | Budget | under cap โ†’ runs ยท at/over cap โ†’ paused (`budget` inbox item) | `agentAtCap()`. |
244
+ | Tier floor | `light` ยท `heavy` ยท `critical` | `AGENT_DEFS` default; editable in Studio. |
245
+
246
+ ## Related integrations ๐Ÿš€
247
+
248
+ - **Skills** โ€” each agent's enabled procedures (`agentSkill`, `skills.md`). See [SKILLS.md](./SKILLS.md).
249
+ - **Models** โ€” adapters and model catalog behind `adapter`/`model`. See [MODELS.md](./MODELS.md).
250
+ - **Workflow** โ€” how agents pick up Goals โ†’ Specs โ†’ Issues โ†’ Tasks. See [WORKFLOW.md](./WORKFLOW.md).
251
+ - **Team Room / DM** โ€” where agents collaborate and hand off. See [TEAM_ROOM.md](./TEAM_ROOM.md), [DM.md](./DM.md).
252
+ - **PO Agent / KB Agent** โ€” Donald's grooming and Vannevar's memory. See [PO_AGENT.md](./PO_AGENT.md), [KB_AGENT.md](./KB_AGENT.md).
253
+
254
+ ## Security ๐Ÿ•ณ๏ธ
255
+
256
+ - **Workspace jail.** Every agent runs with `cwd` set to its organization's workspace and is lexically + symlink-checked against escape; nothing outside the workspace is reachable. Boundaries are stated in `Agent.md`, `permissions.md` and enforced by the runner.
257
+ - **No inline secrets.** Personas and tools forbid plaintext keys; secrets come from the vault. Output is scrubbed before logs/KB/Telegram.
258
+ - **Budget ceilings.** A runaway agent stops at its `dailyCapUsd`; the runner will not exceed the cap.
259
+ - **Cycle/self guards.** Manager re-assignment (`setReportsTo`, `setReportsToByHandle`) rejects self-references and cycles, so the org chart can never form a loop.
260
+
261
+ ## Troubleshooting
262
+
263
+ | Symptom | Likely cause | Fix |
264
+ |---|---|---|
265
+ | An agent shows **stale/down** | Its CLI binary isn't installed/reachable (`runtimeOk` false). | Install/repair the `claude`/`codex` CLI; health recovers on the next tick. |
266
+ | Agent is **paused mid-work** | Hit its `dailyCapUsd`. | Raise the cap in Agent Studio or wait for the daily reset (see the `budget` inbox item). |
267
+ | Vannevar missing in an old org | Org onboarded before the Knowledge agent existed. | The boot backfill (`seedRosterForExistingWorkspaces`) adds it automatically on next start. |
268
+ | Manager change does nothing | Self/cycle (rejected) or manager not in this workspace. | Pick a different manager; the change is silently ignored for invalid targets. |
269
+ | Edited `Agent.md` but UI still old | Write-through/watcher lag. | The sync engine re-indexes on save; reload after a moment. |
270
+
271
+ ## Related links
272
+
273
+ - [AI_ARCHITECTURE.md](./AI_ARCHITECTURE.md) โ€” how agent runs are assembled and executed.
274
+ - [WORKFLOW.md](./WORKFLOW.md) โ€” the Goal โ†’ Spec โ†’ Issue โ†’ Done lifecycle.
275
+ - [SKILLS.md](./SKILLS.md) โ€” the skill library each agent draws on.
276
+ - [MODELS.md](./MODELS.md) โ€” adapters, model aliases and tiers.
277
+ - [PO_AGENT.md](./PO_AGENT.md) ยท [KB_AGENT.md](./KB_AGENT.md) โ€” Donald and Vannevar in depth.
278
+ - [TEAM_ROOM.md](./TEAM_ROOM.md) ยท [DM.md](./DM.md) โ€” agent collaboration.
279
+ - [CHAT_COMMANDS.md](./CHAT_COMMANDS.md) โ€” `/agents`, `/agent`, `/status`.