constellai 0.3.6 → 0.3.8

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 (477) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -3
  3. package/.next/build-manifest.json +6 -6
  4. package/.next/next-minimal-server.js.nft.json +1 -1
  5. package/.next/next-server.js.nft.json +1 -1
  6. package/.next/prerender-manifest.json +3 -3
  7. package/.next/react-loadable-manifest.json +6 -6
  8. package/.next/server/app/(app)/activity/page.js +2 -2
  9. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  10. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
  12. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/code/page.js +2 -2
  15. package/.next/server/app/(app)/code/page.js.nft.json +1 -1
  16. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(app)/config/page.js +2 -2
  18. package/.next/server/app/(app)/config/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/costs/page.js +2 -2
  21. package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/cron/page.js +2 -2
  24. package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/dashboard/page.js +2 -2
  27. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/design/page.js +53 -53
  30. package/.next/server/app/(app)/design/page.js.nft.json +1 -1
  31. package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/(app)/docs/[id]/page.js +2 -2
  33. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
  34. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(app)/docs/page.js +2 -2
  36. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  37. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/(app)/github/page.js +2 -2
  39. package/.next/server/app/(app)/github/page.js.nft.json +1 -1
  40. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/(app)/goals/page.js +2 -2
  42. package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
  43. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/(app)/inbox/page.js +2 -2
  45. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  46. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/(app)/knowledge/page.js +3 -3
  48. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
  49. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/(app)/models/page.js +2 -2
  51. package/.next/server/app/(app)/models/page.js.nft.json +1 -1
  52. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
  53. package/.next/server/app/(app)/notifications/page.js +2 -2
  54. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
  55. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/(app)/org/page.js +4 -4
  57. package/.next/server/app/(app)/org/page.js.nft.json +1 -1
  58. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/(app)/organizations/page.js +2 -2
  60. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
  61. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/(app)/page.js +3 -3
  63. package/.next/server/app/(app)/page.js.nft.json +1 -1
  64. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/(app)/planner/page.js +3 -3
  66. package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
  67. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/(app)/plugins/page.js +2 -2
  69. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
  70. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/(app)/pm/page.js +2 -2
  72. package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
  73. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/(app)/prepare-deploy/page.js +3 -3
  75. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
  76. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/(app)/profile/page.js +2 -2
  78. package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
  79. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/(app)/pulse/page.js +2 -2
  81. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
  82. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/(app)/reports/[id]/page.js +3 -3
  84. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
  85. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/(app)/reports/page.js +3 -3
  87. package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
  88. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/(app)/routines/page.js +2 -2
  90. package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
  91. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/(app)/search/page.js +2 -2
  93. package/.next/server/app/(app)/search/page.js.nft.json +1 -1
  94. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/(app)/security/page.js +2 -2
  96. package/.next/server/app/(app)/security/page.js.nft.json +1 -1
  97. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/(app)/skills/page.js +3 -3
  99. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  100. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/(app)/tasks/page.js +2 -2
  102. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
  103. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/(app)/test-dev/page.js +2 -2
  105. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
  106. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/(app)/update/page.js +3 -3
  108. package/.next/server/app/(app)/update/page.js.nft.json +1 -1
  109. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/(auth)/login/page.js +2 -2
  111. package/.next/server/app/(auth)/login/page.js.nft.json +1 -1
  112. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  113. package/.next/server/app/(auth)/onboarding/page.js +2 -2
  114. package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -1
  115. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/_global-error/page.js +3 -3
  117. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  118. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/_global-error.html +1 -1
  120. package/.next/server/app/_global-error.rsc +8 -8
  121. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  122. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  123. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
  124. package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  125. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
  126. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  127. package/.next/server/app/_not-found/page.js +2 -2
  128. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  129. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/auth/[...all]/route.js +1 -1
  131. package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
  132. package/.next/server/app/api/cron/tick/route.js +5 -5
  133. package/.next/server/app/api/cron/tick/route.js.nft.json +1 -1
  134. package/.next/server/app/api/health/route.js +1 -1
  135. package/.next/server/app/api/health/route.js.nft.json +1 -1
  136. package/.next/server/app/api/locks/acquire/route.js +1 -1
  137. package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -1
  138. package/.next/server/app/api/models/progress/route.js +1 -1
  139. package/.next/server/app/api/models/progress/route.js.nft.json +1 -1
  140. package/.next/server/app/api/passkey/authenticate/options/route.js +1 -1
  141. package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -1
  142. package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -1
  143. package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -1
  144. package/.next/server/app/api/passkey/register/options/route.js +1 -1
  145. package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -1
  146. package/.next/server/app/api/passkey/register/verify/route.js +1 -1
  147. package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -1
  148. package/.next/server/app/api/stream/route.js +2 -2
  149. package/.next/server/app/api/stream/route.js.nft.json +1 -1
  150. package/.next/server/app/api/sync/file/route.js +2 -2
  151. package/.next/server/app/api/sync/file/route.js.nft.json +1 -1
  152. package/.next/server/app/api/telegram/poll/route.js +19 -19
  153. package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -1
  154. package/.next/server/app/api/upload/route.js +1 -1
  155. package/.next/server/app/api/upload/route.js.nft.json +1 -1
  156. package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
  157. package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -1
  158. package/.next/server/app-paths-manifest.json +3 -3
  159. package/.next/server/chunks/1033.js +14 -0
  160. package/.next/server/chunks/1243.js +1 -0
  161. package/.next/server/chunks/{6719.js → 1304.js} +1 -1
  162. package/.next/server/chunks/1678.js +417 -0
  163. package/.next/server/chunks/1952.js +1 -0
  164. package/.next/server/chunks/{8561.js → 1986.js} +2 -2
  165. package/.next/server/chunks/2118.js +869 -0
  166. package/.next/server/chunks/2323.js +1 -0
  167. package/.next/server/chunks/{7336.js → 2392.js} +1 -1
  168. package/.next/server/chunks/2559.js +479 -0
  169. package/.next/server/chunks/26.js +1 -0
  170. package/.next/server/chunks/{5278.js → 3140.js} +1 -1
  171. package/.next/server/chunks/{6479.js → 3172.js} +1 -1
  172. package/.next/server/chunks/3205.js +1 -0
  173. package/.next/server/chunks/3392.js +1 -0
  174. package/.next/server/chunks/{4979.js → 3987.js} +5 -5
  175. package/.next/server/chunks/404.js +1 -0
  176. package/.next/server/chunks/415.js +1 -0
  177. package/.next/server/chunks/4288.js +1 -0
  178. package/.next/server/chunks/{2599.js → 4411.js} +1 -1
  179. package/.next/server/chunks/{7912.js → 4561.js} +1 -1
  180. package/.next/server/chunks/4587.js +1 -0
  181. package/.next/server/chunks/4679.js +462 -1
  182. package/.next/server/chunks/4769.js +1 -0
  183. package/.next/server/chunks/4882.js +2 -0
  184. package/.next/server/chunks/4897.js +15 -0
  185. package/.next/server/chunks/5015.js +15 -0
  186. package/.next/server/chunks/{658.js → 5361.js} +3 -3
  187. package/.next/server/chunks/5557.js +1 -0
  188. package/.next/server/chunks/{2517.js → 5593.js} +1 -1
  189. package/.next/server/chunks/5661.js +1 -0
  190. package/.next/server/chunks/5802.js +1 -0
  191. package/.next/server/chunks/5878.js +1 -0
  192. package/.next/server/chunks/5911.js +18 -0
  193. package/.next/server/chunks/6083.js +1 -0
  194. package/.next/server/chunks/{4302.js → 6121.js} +13 -13
  195. package/.next/server/chunks/6309.js +1 -0
  196. package/.next/server/chunks/6538.js +4 -0
  197. package/.next/server/chunks/6585.js +1 -0
  198. package/.next/server/chunks/{3243.js → 6778.js} +2 -2
  199. package/.next/server/chunks/6807.js +1 -0
  200. package/.next/server/chunks/{1388.js → 6948.js} +1 -1
  201. package/.next/server/chunks/{1591.js → 699.js} +2 -2
  202. package/.next/server/chunks/7109.js +1 -0
  203. package/.next/server/chunks/714.js +1 -0
  204. package/.next/server/chunks/7474.js +1 -0
  205. package/.next/server/chunks/{7037.js → 7677.js} +1 -1
  206. package/.next/server/chunks/77.js +3 -0
  207. package/.next/server/chunks/7727.js +1 -0
  208. package/.next/server/chunks/7867.js +22 -0
  209. package/.next/server/chunks/{259.js → 7905.js} +5 -5
  210. package/.next/server/chunks/{3609.js → 7911.js} +1 -1
  211. package/.next/server/chunks/{2867.js → 8134.js} +2 -2
  212. package/.next/server/chunks/{9783.js → 8211.js} +2 -2
  213. package/.next/server/chunks/8224.js +1 -0
  214. package/.next/server/chunks/8237.js +12 -0
  215. package/.next/server/chunks/8498.js +1 -0
  216. package/.next/server/chunks/{8823.js → 907.js} +10 -10
  217. package/.next/server/chunks/{7778.js → 9099.js} +1 -1
  218. package/.next/server/chunks/912.js +1 -0
  219. package/.next/server/chunks/9180.js +1 -0
  220. package/.next/server/chunks/9344.js +910 -0
  221. package/.next/server/chunks/9374.js +1 -0
  222. package/.next/server/chunks/939.js +1 -0
  223. package/.next/server/chunks/9419.js +1 -0
  224. package/.next/server/chunks/9426.js +188 -0
  225. package/.next/server/chunks/9677.js +17 -0
  226. package/.next/server/chunks/978.js +1 -0
  227. package/.next/server/chunks/9795.js +21 -0
  228. package/.next/server/instrumentation.js +1 -1
  229. package/.next/server/instrumentation.js.nft.json +1 -1
  230. package/.next/server/middleware-build-manifest.js +1 -1
  231. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  232. package/.next/server/middleware.js +6 -6
  233. package/.next/server/middleware.js.nft.json +1 -1
  234. package/.next/server/pages/500.html +1 -1
  235. package/.next/server/server-reference-manifest.js +1 -1
  236. package/.next/server/server-reference-manifest.json +1 -1
  237. package/.next/static/chunks/171-2a8b8f61f7ab0828.js +1 -0
  238. package/.next/static/chunks/{23550918-ff694f70f4b0648c.js → 1ceccf25-731706dbe95504b9.js} +1 -1
  239. package/.next/static/chunks/3556-dbb9200143640484.js +1 -0
  240. package/.next/static/chunks/{2320-fc8b39380e69d465.js → 3703-b09be945970ea475.js} +1 -1
  241. package/.next/static/chunks/5452-d0ce3b51601a5815.js +1 -0
  242. package/.next/static/chunks/5523-9c369c915ee6d9c9.js +1 -0
  243. package/.next/static/chunks/7066-c10959874b2315bf.js +32 -0
  244. package/.next/static/chunks/717-1d1163010e3b541d.js +1 -0
  245. package/.next/static/chunks/7218-21f40f9caef5d658.js +12 -0
  246. package/.next/static/chunks/7363-b9ebe28fed23b997.js +1 -0
  247. package/.next/static/chunks/7621-87d8d0d0568de3ca.js +4 -0
  248. package/.next/static/chunks/{5920.6451a68b63918988.js → 7790.b648690cf25f29eb.js} +1 -1
  249. package/.next/static/chunks/{7509.721cd47a931c5518.js → 8251.6fedb7dc4d720bab.js} +1 -1
  250. package/.next/static/chunks/9279-467412113ad55642.js +1 -0
  251. package/.next/static/chunks/928-6dec8198101bc3e6.js +1 -0
  252. package/.next/static/chunks/9874-dc2fbf114916382b.js +1 -0
  253. package/.next/static/chunks/app/(app)/activity/page-ce3fc6003368f592.js +1 -0
  254. package/.next/static/chunks/app/(app)/agents/[handle]/page-236e13b8edadd480.js +1 -0
  255. package/.next/static/chunks/app/(app)/code/page-18ae765c81a2c709.js +1 -0
  256. package/.next/static/chunks/app/(app)/config/page-8a6fcf6c04337210.js +1 -0
  257. package/.next/static/chunks/app/(app)/costs/page-230b0ef03a2024b0.js +1 -0
  258. package/.next/static/chunks/app/(app)/cron/page-ca89769e2522191d.js +1 -0
  259. package/.next/static/chunks/app/(app)/dashboard/page-6237c3a35cce55ce.js +1 -0
  260. package/.next/static/chunks/app/(app)/design/{page-f48c0487d240248e.js → page-5997054187e59e74.js} +3 -3
  261. package/.next/static/chunks/app/(app)/docs/[id]/page-3362d323e0f4dada.js +1 -0
  262. package/.next/static/chunks/app/(app)/docs/page-d7d8018a7884a4b4.js +1 -0
  263. package/.next/static/chunks/app/(app)/error-f9a3caa63e064a7e.js +1 -0
  264. package/.next/static/chunks/app/(app)/github/page-f5c1cae725d080fb.js +1 -0
  265. package/.next/static/chunks/app/(app)/goals/page-95e85ce115ed9ff3.js +1 -0
  266. package/.next/static/chunks/app/(app)/inbox/page-474c3f0a181bbbd3.js +12 -0
  267. package/.next/static/chunks/app/(app)/knowledge/page-08596428ca34b620.js +1 -0
  268. package/.next/static/chunks/app/(app)/layout-720a1171f7152d86.js +1 -0
  269. package/.next/static/chunks/app/(app)/models/page-fa1eb257e6911c9a.js +1 -0
  270. package/.next/static/chunks/app/(app)/notifications/page-31f2a041bdb497b9.js +12 -0
  271. package/.next/static/chunks/app/(app)/org/page-666438930ddc4639.js +12 -0
  272. package/.next/static/chunks/app/(app)/organizations/page-0de7da829c9b2249.js +1 -0
  273. package/.next/static/chunks/app/(app)/page-bfcf3d25f468240f.js +1 -0
  274. package/.next/static/chunks/app/(app)/planner/page-0fc0ebe2d338769a.js +1 -0
  275. package/.next/static/chunks/app/(app)/plugins/page-ad369fbfec6f3d1c.js +1 -0
  276. package/.next/static/chunks/app/(app)/pm/page-bb39c9d9a4f0d597.js +1 -0
  277. package/.next/static/chunks/app/(app)/prepare-deploy/page-f182991e68b159c1.js +1 -0
  278. package/.next/static/chunks/app/(app)/profile/page-cf5fe16bfad2a7ba.js +1 -0
  279. package/.next/static/chunks/app/(app)/pulse/page-03877c467c491e8a.js +1 -0
  280. package/.next/static/chunks/app/(app)/reports/[id]/page-ca89769e2522191d.js +1 -0
  281. package/.next/static/chunks/app/(app)/reports/page-7741b6a25e582791.js +1 -0
  282. package/.next/static/chunks/app/(app)/routines/page-ea83e6337e7502c2.js +1 -0
  283. package/.next/static/chunks/app/(app)/search/page-5e7f7cf0cc51b76f.js +1 -0
  284. package/.next/static/chunks/app/(app)/security/page-410144cdc35e19cc.js +1 -0
  285. package/.next/static/chunks/app/(app)/skills/page-90e5d8a24920c275.js +1 -0
  286. package/.next/static/chunks/app/(app)/tasks/page-4d535f34ae9c44ca.js +1 -0
  287. package/.next/static/chunks/app/(app)/test-dev/page-782c8cadd8a10feb.js +1 -0
  288. package/.next/static/chunks/app/(app)/update/page-decdb0ece526b50f.js +1 -0
  289. package/.next/static/chunks/app/(auth)/login/page-147a9be880c44d42.js +1 -0
  290. package/.next/static/chunks/app/(auth)/onboarding/page-8548be7e3ab3659e.js +1 -0
  291. package/.next/static/chunks/app/_global-error/{page-eacef2b697bd0982.js → page-ffc45e65538b6024.js} +1 -1
  292. package/.next/static/chunks/app/_not-found/page-405e53afca481eab.js +1 -0
  293. package/.next/static/chunks/app/api/auth/[...all]/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  294. package/.next/static/chunks/app/api/cron/tick/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  295. package/.next/static/chunks/app/api/health/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  296. package/.next/static/chunks/app/api/locks/acquire/route-ffc45e65538b6024.js +1 -0
  297. package/.next/static/chunks/app/api/models/progress/route-ffc45e65538b6024.js +1 -0
  298. package/.next/static/chunks/app/api/passkey/authenticate/options/route-ffc45e65538b6024.js +1 -0
  299. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-ffc45e65538b6024.js +1 -0
  300. package/.next/static/chunks/app/api/passkey/register/options/route-ffc45e65538b6024.js +1 -0
  301. package/.next/static/chunks/app/api/passkey/register/verify/route-ffc45e65538b6024.js +1 -0
  302. package/.next/static/chunks/app/api/stream/route-ffc45e65538b6024.js +1 -0
  303. package/.next/static/chunks/app/api/sync/file/route-ffc45e65538b6024.js +1 -0
  304. package/.next/static/chunks/app/api/telegram/poll/route-ffc45e65538b6024.js +1 -0
  305. package/.next/static/chunks/app/api/upload/route-ffc45e65538b6024.js +1 -0
  306. package/.next/static/chunks/app/api/v1/[[...path]]/route-ffc45e65538b6024.js +1 -0
  307. package/.next/static/chunks/app/error-e128df085a794b38.js +1 -0
  308. package/.next/static/chunks/app/global-error-339c61c4184d384a.js +1 -0
  309. package/.next/static/chunks/app/layout-c717657a60a7f62c.js +1 -0
  310. package/.next/static/chunks/main-143b6dbf9c5dc129.js +5 -0
  311. package/.next/static/chunks/main-app-8ce4eaae11d4f233.js +1 -0
  312. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ffc45e65538b6024.js +1 -0
  313. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ffc45e65538b6024.js +1 -0
  314. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ffc45e65538b6024.js +1 -0
  315. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ffc45e65538b6024.js +1 -0
  316. package/.next/static/chunks/webpack-0e63b9ea83aeb0a2.js +1 -0
  317. package/.next/trace-build +1 -1
  318. package/CHANGELOG.md +45 -1
  319. package/README.md +1 -1
  320. package/README.pt-BR.md +1 -1
  321. package/THIRD_PARTY_LICENSES.md +64 -0
  322. package/docs/UPDATE.md +17 -3
  323. package/docs/en/AI_ARCHITECTURE.md +2 -2
  324. package/docs/en/CHAT_COMMANDS.md +1 -1
  325. package/docs/en/CONFIGURATION.md +1 -1
  326. package/docs/en/DESIGN.md +1 -1
  327. package/docs/en/FAQ.md +3 -3
  328. package/docs/en/GOALS_SPECS_ISSUES.md +1 -1
  329. package/docs/en/MCP.md +2 -2
  330. package/docs/en/PLUGINS.md +2 -2
  331. package/docs/en/PORTABLE_MODE.md +1 -1
  332. package/docs/en/PUBLISHING.md +14 -15
  333. package/docs/en/README.md +1 -1
  334. package/docs/en/SECURITY.md +3 -3
  335. package/docs/en/START_MODE.md +1 -1
  336. package/docs/en/TELEGRAM.md +1 -1
  337. package/docs/en/TROUBLESHOOTING.md +1 -1
  338. package/docs/en/VPS_MODE.md +2 -2
  339. package/docs/pt/AI_ARCHITECTURE.md +2 -2
  340. package/docs/pt/CHAT_COMMANDS.md +1 -1
  341. package/docs/pt/CONFIGURATION.md +1 -1
  342. package/docs/pt/DESIGN.md +1 -1
  343. package/docs/pt/FAQ.md +3 -3
  344. package/docs/pt/GOALS_SPECS_ISSUES.md +1 -1
  345. package/docs/pt/MCP.md +1 -1
  346. package/docs/pt/PLUGINS.md +2 -2
  347. package/docs/pt/PORTABLE_MODE.md +1 -1
  348. package/docs/pt/PUBLISHING.md +6 -7
  349. package/docs/pt/README.md +1 -1
  350. package/docs/pt/SECURITY.md +3 -3
  351. package/docs/pt/START_MODE.md +1 -1
  352. package/docs/pt/TELEGRAM.md +1 -1
  353. package/docs/pt/TROUBLESHOOTING.md +2 -2
  354. package/docs/pt/VPS_MODE.md +1 -1
  355. package/package.json +10 -9
  356. package/scripts/publish-public.mjs +21 -16
  357. package/.next/server/chunks/1249.js +0 -910
  358. package/.next/server/chunks/1572.js +0 -1
  359. package/.next/server/chunks/158.js +0 -21
  360. package/.next/server/chunks/1619.js +0 -188
  361. package/.next/server/chunks/162.js +0 -1
  362. package/.next/server/chunks/1765.js +0 -1
  363. package/.next/server/chunks/1845.js +0 -462
  364. package/.next/server/chunks/2341.js +0 -1
  365. package/.next/server/chunks/2495.js +0 -1
  366. package/.next/server/chunks/260.js +0 -1
  367. package/.next/server/chunks/288.js +0 -1
  368. package/.next/server/chunks/2960.js +0 -14
  369. package/.next/server/chunks/3050.js +0 -18
  370. package/.next/server/chunks/3056.js +0 -1
  371. package/.next/server/chunks/3131.js +0 -1
  372. package/.next/server/chunks/3234.js +0 -869
  373. package/.next/server/chunks/3266.js +0 -15
  374. package/.next/server/chunks/3550.js +0 -1
  375. package/.next/server/chunks/4467.js +0 -12
  376. package/.next/server/chunks/4616.js +0 -479
  377. package/.next/server/chunks/4619.js +0 -1
  378. package/.next/server/chunks/4804.js +0 -1
  379. package/.next/server/chunks/4832.js +0 -2
  380. package/.next/server/chunks/5060.js +0 -1
  381. package/.next/server/chunks/535.js +0 -1
  382. package/.next/server/chunks/5614.js +0 -1
  383. package/.next/server/chunks/6431.js +0 -1
  384. package/.next/server/chunks/6658.js +0 -1
  385. package/.next/server/chunks/6706.js +0 -1
  386. package/.next/server/chunks/683.js +0 -1
  387. package/.next/server/chunks/6873.js +0 -1
  388. package/.next/server/chunks/7225.js +0 -4
  389. package/.next/server/chunks/73.js +0 -17
  390. package/.next/server/chunks/7514.js +0 -1
  391. package/.next/server/chunks/7589.js +0 -22
  392. package/.next/server/chunks/7622.js +0 -1
  393. package/.next/server/chunks/7949.js +0 -1
  394. package/.next/server/chunks/7971.js +0 -1
  395. package/.next/server/chunks/7989.js +0 -1
  396. package/.next/server/chunks/8497.js +0 -1
  397. package/.next/server/chunks/850.js +0 -1
  398. package/.next/server/chunks/8623.js +0 -1
  399. package/.next/server/chunks/8719.js +0 -417
  400. package/.next/server/chunks/8762.js +0 -15
  401. package/.next/server/chunks/9676.js +0 -1
  402. package/.next/server/chunks/9680.js +0 -1
  403. package/.next/server/chunks/9969.js +0 -3
  404. package/.next/static/chunks/2831-d7f6495bf43f4f9d.js +0 -4
  405. package/.next/static/chunks/3219-486bddbf87074d04.js +0 -1
  406. package/.next/static/chunks/3775-82dcdf23109aa5bf.js +0 -1
  407. package/.next/static/chunks/4263-adecb5b466380b6e.js +0 -1
  408. package/.next/static/chunks/6834-4759af1ce7d95fb6.js +0 -32
  409. package/.next/static/chunks/6836-341614c5418e2aa4.js +0 -1
  410. package/.next/static/chunks/7555-d2209e697b0a798e.js +0 -1
  411. package/.next/static/chunks/8306-7418693cd7fd5861.js +0 -1
  412. package/.next/static/chunks/8370-8b3e7106703024ce.js +0 -12
  413. package/.next/static/chunks/9219-4a39a98b5502d9d1.js +0 -1
  414. package/.next/static/chunks/9562-4b50b4e408bc0a42.js +0 -1
  415. package/.next/static/chunks/9690-ea874aec65263b9d.js +0 -1
  416. package/.next/static/chunks/app/(app)/activity/page-cf8d67941440bdce.js +0 -1
  417. package/.next/static/chunks/app/(app)/agents/[handle]/page-7baa24f1ae8bc400.js +0 -1
  418. package/.next/static/chunks/app/(app)/code/page-b342d74807e8b914.js +0 -1
  419. package/.next/static/chunks/app/(app)/config/page-1e68ba8d20215d67.js +0 -1
  420. package/.next/static/chunks/app/(app)/costs/page-a58d759eec6048df.js +0 -1
  421. package/.next/static/chunks/app/(app)/cron/page-cc7f4e3d8ab5618f.js +0 -1
  422. package/.next/static/chunks/app/(app)/dashboard/page-7757c33acf751c4c.js +0 -1
  423. package/.next/static/chunks/app/(app)/docs/[id]/page-95c52cf457d869ef.js +0 -1
  424. package/.next/static/chunks/app/(app)/docs/page-fbc50cd357d5e2ca.js +0 -1
  425. package/.next/static/chunks/app/(app)/error-988cd28480809861.js +0 -1
  426. package/.next/static/chunks/app/(app)/github/page-dac138256ed91e65.js +0 -1
  427. package/.next/static/chunks/app/(app)/goals/page-f87d40f6832d63b3.js +0 -1
  428. package/.next/static/chunks/app/(app)/inbox/page-49c1293e0d98874f.js +0 -12
  429. package/.next/static/chunks/app/(app)/knowledge/page-18fca436883ed5cc.js +0 -1
  430. package/.next/static/chunks/app/(app)/layout-c9778f98c0103f74.js +0 -1
  431. package/.next/static/chunks/app/(app)/models/page-030c085cd7767495.js +0 -1
  432. package/.next/static/chunks/app/(app)/notifications/page-12af3fee8b36a00e.js +0 -12
  433. package/.next/static/chunks/app/(app)/org/page-576001ff4a820744.js +0 -12
  434. package/.next/static/chunks/app/(app)/organizations/page-b973e1eee6e56baf.js +0 -1
  435. package/.next/static/chunks/app/(app)/page-cef52fc5f4fd4418.js +0 -1
  436. package/.next/static/chunks/app/(app)/planner/page-da2db56914346192.js +0 -1
  437. package/.next/static/chunks/app/(app)/plugins/page-3b78b76ecb21d616.js +0 -1
  438. package/.next/static/chunks/app/(app)/pm/page-78303379c1ea5dc5.js +0 -1
  439. package/.next/static/chunks/app/(app)/prepare-deploy/page-98b1bd3bf712bb60.js +0 -1
  440. package/.next/static/chunks/app/(app)/profile/page-de24af53de0ef2b2.js +0 -1
  441. package/.next/static/chunks/app/(app)/pulse/page-db7fd63369c01fa2.js +0 -1
  442. package/.next/static/chunks/app/(app)/reports/[id]/page-cc7f4e3d8ab5618f.js +0 -1
  443. package/.next/static/chunks/app/(app)/reports/page-97ab95e6f8b77b62.js +0 -1
  444. package/.next/static/chunks/app/(app)/routines/page-cf6a3331775ca11b.js +0 -1
  445. package/.next/static/chunks/app/(app)/search/page-3960825f66b05606.js +0 -1
  446. package/.next/static/chunks/app/(app)/security/page-53b0770355cf7aa4.js +0 -1
  447. package/.next/static/chunks/app/(app)/skills/page-809a73b94861f8b8.js +0 -1
  448. package/.next/static/chunks/app/(app)/tasks/page-b2497927d127f7aa.js +0 -1
  449. package/.next/static/chunks/app/(app)/test-dev/page-93ec5d89e2afb612.js +0 -1
  450. package/.next/static/chunks/app/(app)/update/page-a23322af4e59a93c.js +0 -1
  451. package/.next/static/chunks/app/(auth)/login/page-446681bfb762cb05.js +0 -1
  452. package/.next/static/chunks/app/(auth)/onboarding/page-2b8cb3e0b024c995.js +0 -1
  453. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +0 -1
  454. package/.next/static/chunks/app/api/locks/acquire/route-eacef2b697bd0982.js +0 -1
  455. package/.next/static/chunks/app/api/models/progress/route-eacef2b697bd0982.js +0 -1
  456. package/.next/static/chunks/app/api/passkey/authenticate/options/route-eacef2b697bd0982.js +0 -1
  457. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-eacef2b697bd0982.js +0 -1
  458. package/.next/static/chunks/app/api/passkey/register/options/route-eacef2b697bd0982.js +0 -1
  459. package/.next/static/chunks/app/api/passkey/register/verify/route-eacef2b697bd0982.js +0 -1
  460. package/.next/static/chunks/app/api/stream/route-eacef2b697bd0982.js +0 -1
  461. package/.next/static/chunks/app/api/sync/file/route-eacef2b697bd0982.js +0 -1
  462. package/.next/static/chunks/app/api/telegram/poll/route-eacef2b697bd0982.js +0 -1
  463. package/.next/static/chunks/app/api/upload/route-eacef2b697bd0982.js +0 -1
  464. package/.next/static/chunks/app/api/v1/[[...path]]/route-eacef2b697bd0982.js +0 -1
  465. package/.next/static/chunks/app/error-09899a13c38b6e89.js +0 -1
  466. package/.next/static/chunks/app/global-error-c2ea8fef715f226d.js +0 -1
  467. package/.next/static/chunks/app/layout-e6008e66aea1a849.js +0 -1
  468. package/.next/static/chunks/main-722e16032e7764d1.js +0 -5
  469. package/.next/static/chunks/main-app-761880af2b6f1962.js +0 -1
  470. package/.next/static/chunks/next/dist/client/components/builtin/app-error-eacef2b697bd0982.js +0 -1
  471. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-eacef2b697bd0982.js +0 -1
  472. package/.next/static/chunks/next/dist/client/components/builtin/not-found-eacef2b697bd0982.js +0 -1
  473. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-eacef2b697bd0982.js +0 -1
  474. package/.next/static/chunks/webpack-222e3894b78c67db.js +0 -1
  475. package/docs/assets/blackhole.svg +0 -37
  476. /package/.next/static/{fb-rRThu8P8AXEQQBbLgT → ehoxBsPzAtE_FyZ2VpMF0}/_buildManifest.js +0 -0
  477. /package/.next/static/{fb-rRThu8P8AXEQQBbLgT → ehoxBsPzAtE_FyZ2VpMF0}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=5060,exports.ids=[5060],exports.modules={1890:(a,b,c)=>{c.r(b),c.d(b,{account:()=>m,activity:()=>Z,agent:()=>r,agentSkill:()=>u,backlogItem:()=>$,blockProposal:()=>af,budget:()=>J,channelRead:()=>I,chatSession:()=>M,costEntry:()=>K,cronJob:()=>T,cronRun:()=>U,decision:()=>Q,deployRun:()=>O,designComment:()=>an,designPage:()=>al,designSession:()=>ak,designVersion:()=>am,docIndex:()=>aa,event:()=>N,file:()=>R,fileLock:()=>ac,finding:()=>V,goal:()=>z,goalFile:()=>A,inboxItem:()=>W,issue:()=>E,kbEntry:()=>ab,kbQueryLog:()=>ad,localModel:()=>y,member:()=>p,message:()=>L,messageSummary:()=>P,notification:()=>H,notificationPref:()=>ag,organization:()=>o,passkey:()=>aj,personalAccessToken:()=>ah,plan:()=>F,plugin:()=>X,provider:()=>v,providerModel:()=>x,pulse:()=>s,ragChunk:()=>_,report:()=>G,routine:()=>S,session:()=>l,skill:()=>t,spec:()=>D,syncedBlock:()=>ae,task:()=>B,taskStep:()=>C,testRun:()=>Y,twoFactor:()=>ai,user:()=>k,vault:()=>w,verification:()=>n,workspace:()=>q});var d=c(29175),e=c(42496),f=c(86737),g=c(25101),h=c(45439),i=c(21998),j=c(93167);let k=(0,d.D)("user",{id:(0,e.Qq)("id").primaryKey(),name:(0,e.Qq)("name").notNull(),email:(0,e.Qq)("email").notNull().unique(),emailVerified:(0,f.nd)("email_verified",{mode:"boolean"}).notNull().default(!1),image:(0,e.Qq)("image"),twoFactorEnabled:(0,f.nd)("two_factor_enabled",{mode:"boolean"}).notNull().default(!1),addressAs:(0,e.Qq)("address_as").notNull().default(""),lang:(0,e.Qq)("lang").notNull().default("English (US)"),tz:(0,e.Qq)("tz").notNull().default("UTC"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)}),l=(0,d.D)("session",{id:(0,e.Qq)("id").primaryKey(),userId:(0,e.Qq)("user_id").notNull().references(()=>k.id,{onDelete:"cascade"}),token:(0,e.Qq)("token").notNull().unique(),expiresAt:(0,f.nd)("expires_at",{mode:"timestamp"}).notNull(),ipAddress:(0,e.Qq)("ip_address"),userAgent:(0,e.Qq)("user_agent"),activeOrgId:(0,e.Qq)("active_org_id"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)}),m=(0,d.D)("account",{id:(0,e.Qq)("id").primaryKey(),userId:(0,e.Qq)("user_id").notNull().references(()=>k.id,{onDelete:"cascade"}),accountId:(0,e.Qq)("account_id").notNull(),providerId:(0,e.Qq)("provider_id").notNull(),accessToken:(0,e.Qq)("access_token"),refreshToken:(0,e.Qq)("refresh_token"),password:(0,e.Qq)("password"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)}),n=(0,d.D)("verification",{id:(0,e.Qq)("id").primaryKey(),identifier:(0,e.Qq)("identifier").notNull(),value:(0,e.Qq)("value").notNull(),expiresAt:(0,f.nd)("expires_at",{mode:"timestamp"}).notNull(),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)}),o=(0,d.D)("organization",{id:(0,e.Qq)("id").primaryKey(),name:(0,e.Qq)("name").notNull(),ownerId:(0,e.Qq)("owner_id").notNull().references(()=>k.id,{onDelete:"cascade"}),runMode:(0,e.Qq)("run_mode",{enum:["start","auth","vps","portable"]}).notNull().default("start"),archived:(0,f.nd)("archived",{mode:"boolean"}).notNull().default(!1),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)}),p=(0,d.D)("member",{id:(0,e.Qq)("id").primaryKey(),orgId:(0,e.Qq)("org_id").notNull().references(()=>o.id,{onDelete:"cascade"}),userId:(0,e.Qq)("user_id").notNull().references(()=>k.id,{onDelete:"cascade"}),role:(0,e.Qq)("role",{enum:["owner","admin","member"]}).notNull().default("owner")}),q=(0,d.D)("workspace",{id:(0,e.Qq)("id").primaryKey(),orgId:(0,e.Qq)("org_id").notNull().references(()=>o.id,{onDelete:"cascade"}),slug:(0,e.Qq)("slug").notNull().unique(),name:(0,e.Qq)("name").notNull(),mission:(0,e.Qq)("mission").notNull().default(""),objective:(0,e.Qq)("objective").notNull().default(""),stack:(0,e.Qq)("stack",{mode:"json"}).$type().notNull().default({}),runMode:(0,e.Qq)("run_mode",{enum:["off","start","auth","vps","portable"]}).notNull().default("start"),bootstrap:(0,e.Qq)("bootstrap",{enum:["pending","template-only","enriching","done"]}).notNull().default("template-only"),settings:(0,e.Qq)("settings",{mode:"json"}).$type(),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)}),r=(0,d.D)("agent",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),handle:(0,e.Qq)("handle").notNull(),name:(0,e.Qq)("name").notNull(),role:(0,e.Qq)("role").notNull(),color:(0,e.Qq)("color").notNull().default("#e0a44e"),image:(0,e.Qq)("image"),adapter:(0,e.Qq)("adapter").notNull().default("cli_claude_code"),model:(0,e.Qq)("model").notNull().default("sonnet"),temperature:(0,g.x)("temperature").notNull().default(.4),dailyCapUsd:(0,g.x)("daily_cap_usd").notNull().default(25),tierFloor:(0,e.Qq)("tier_floor",{enum:["light","heavy","critical"]}).notNull().default("heavy"),reportsTo:(0,e.Qq)("reports_to"),status:(0,e.Qq)("status",{enum:["idle","working","review","blocked"]}).notNull().default("idle"),health:(0,e.Qq)("health",{enum:["alive","stale","down"]}).notNull().default("alive"),lastPulse:(0,f.nd)("last_pulse",{mode:"timestamp"}),persona:(0,e.Qq)("persona",{mode:"json"}).$type(),rag:(0,e.Qq)("rag",{mode:"json"}).$type(),orgX:(0,g.x)("org_x"),orgY:(0,g.x)("org_y")},a=>({wsIdx:(0,h.Pe)("agent_ws_idx").on(a.workspaceId)})),s=(0,d.D)("pulse",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),agentId:(0,e.Qq)("agent_id").notNull().references(()=>r.id,{onDelete:"cascade"}),at:(0,f.nd)("at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),ok:(0,f.nd)("ok",{mode:"boolean"}).notNull().default(!0),latencyMs:(0,f.nd)("latency_ms").notNull().default(0),note:(0,e.Qq)("note").notNull().default("")},a=>({agentIdx:(0,h.Pe)("pulse_agent_idx").on(a.agentId)})),t=(0,d.D)("skill",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),name:(0,e.Qq)("name").notNull(),summary:(0,e.Qq)("summary").notNull().default(""),instructions:(0,e.Qq)("instructions").notNull().default(""),trigger:(0,e.Qq)("trigger").notNull().default(""),native:(0,f.nd)("native",{mode:"boolean"}).notNull().default(!1),provisional:(0,f.nd)("provisional",{mode:"boolean"}).notNull().default(!1),indexed:(0,e.Qq)("indexed",{enum:["pending","indexed"]}).notNull().default("pending"),proposedRole:(0,e.Qq)("proposed_role")},a=>({wsIdx:(0,h.Pe)("skill_ws_idx").on(a.workspaceId)})),u=(0,d.D)("agent_skill",{agentId:(0,e.Qq)("agent_id").notNull().references(()=>r.id,{onDelete:"cascade"}),skillId:(0,e.Qq)("skill_id").notNull().references(()=>t.id,{onDelete:"cascade"}),auto:(0,f.nd)("auto",{mode:"boolean"}).notNull().default(!0)},a=>({pk:(0,i.ie)({columns:[a.agentId,a.skillId]})})),v=(0,d.D)("provider",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),catalogId:(0,e.Qq)("catalog_id").notNull(),adapter:(0,e.Qq)("adapter").notNull(),kind:(0,e.Qq)("kind",{enum:["cloud","cli","local"]}).notNull().default("cloud"),auth:(0,e.Qq)("auth",{enum:["api_key","oauth","cli","local","none"]}).notNull().default("api_key"),status:(0,e.Qq)("status",{enum:["connected","needs_sync","error"]}).notNull().default("needs_sync"),syncStatus:(0,e.Qq)("sync_status",{enum:["implemented","manual","not_implemented"]}).notNull().default("not_implemented"),modelCount:(0,f.nd)("model_count").notNull().default(0),lastSync:(0,f.nd)("last_sync",{mode:"timestamp"}),cliVersion:(0,e.Qq)("cli_version"),defaultModel:(0,e.Qq)("default_model"),authState:(0,e.Qq)("auth_state")},a=>({wsIdx:(0,h.Pe)("provider_ws_idx").on(a.workspaceId)})),w=(0,d.D)("vault",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),providerId:(0,e.Qq)("provider_id").references(()=>v.id,{onDelete:"cascade"}),ref:(0,e.Qq)("ref").notNull(),ciphertext:(0,e.Qq)("ciphertext").notNull(),iv:(0,e.Qq)("iv").notNull()}),x=(0,d.D)("provider_model",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),providerId:(0,e.Qq)("provider_id").notNull().references(()=>v.id,{onDelete:"cascade"}),catalogId:(0,e.Qq)("catalog_id").notNull(),modelId:(0,e.Qq)("model_id").notNull(),name:(0,e.Qq)("name").notNull().default(""),context:(0,f.nd)("context").notNull().default(0),outputLimit:(0,f.nd)("output_limit").notNull().default(0),inputCost:(0,g.x)("input_cost").notNull().default(0),outputCost:(0,g.x)("output_cost").notNull().default(0),caps:(0,e.Qq)("caps",{mode:"json"}).$type(),released:(0,e.Qq)("released").notNull().default(""),isDefault:(0,f.nd)("is_default",{mode:"boolean"}).notNull().default(!1),lastSeen:(0,f.nd)("last_seen",{mode:"timestamp"}).$defaultFn(()=>new Date)},a=>({provIdx:(0,h.Pe)("provider_model_prov_idx").on(a.providerId)})),y=(0,d.D)("local_model",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),name:(0,e.Qq)("name").notNull(),file:(0,e.Qq)("file").notNull(),quant:(0,e.Qq)("quant").notNull().default("Q4_K_M"),params:(0,e.Qq)("params").notNull().default(""),sizeBytes:(0,f.nd)("size_bytes").notNull().default(0),sha256:(0,e.Qq)("sha256").notNull().default(""),bind:(0,e.Qq)("bind").notNull().default("127.0.0.1:8080"),loaded:(0,f.nd)("loaded",{mode:"boolean"}).notNull().default(!1)}),z=(0,d.D)("goal",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),title:(0,e.Qq)("title").notNull(),description:(0,e.Qq)("description").notNull().default(""),ownerId:(0,e.Qq)("owner_id").references(()=>r.id),progress:(0,f.nd)("progress").notNull().default(0),parentId:(0,e.Qq)("parent_id"),status:(0,e.Qq)("status",{enum:["active","cancelled","archived","done"]}).notNull().default("active"),specId:(0,e.Qq)("spec_id"),archivePath:(0,e.Qq)("archive_path").notNull().default(""),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date).$onUpdateFn(()=>new Date),doneAt:(0,f.nd)("done_at",{mode:"timestamp"}),cancelledAt:(0,f.nd)("cancelled_at",{mode:"timestamp"}),archivedAt:(0,f.nd)("archived_at",{mode:"timestamp"}),reopenedAt:(0,f.nd)("reopened_at",{mode:"timestamp"})},a=>({wsIdx:(0,h.Pe)("goal_ws_idx").on(a.workspaceId)})),A=(0,d.D)("goal_file",{workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),goalId:(0,e.Qq)("goal_id").notNull(),path:(0,e.Qq)("path").notNull(),op:(0,e.Qq)("op").notNull().default("edit"),at:(0,f.nd)("at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({pk:(0,i.ie)({columns:[a.goalId,a.path]})})),B=(0,d.D)("task",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),key:(0,e.Qq)("key").notNull(),title:(0,e.Qq)("title").notNull(),description:(0,e.Qq)("description").notNull().default(""),col:(0,e.Qq)("col",{enum:["triage","todo","doing","blocked","review","done"]}).notNull().default("triage"),prio:(0,e.Qq)("prio",{enum:["low","med","high"]}).notNull().default("med"),assigneeId:(0,e.Qq)("assignee_id").references(()=>r.id),goalId:(0,e.Qq)("goal_id").references(()=>z.id),issueId:(0,e.Qq)("issue_id").references(()=>E.id),createdBy:(0,e.Qq)("created_by",{enum:["operator","agent"]}).notNull().default("operator"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date).$onUpdateFn(()=>new Date)},a=>({wsIdx:(0,h.Pe)("task_ws_idx").on(a.workspaceId)})),C=(0,d.D)("task_step",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),taskId:(0,e.Qq)("task_id").notNull().references(()=>B.id,{onDelete:"cascade"}),text:(0,e.Qq)("text").notNull(),done:(0,f.nd)("done",{mode:"boolean"}).notNull().default(!1),active:(0,f.nd)("active",{mode:"boolean"}).notNull().default(!1),ord:(0,f.nd)("ord").notNull().default(0),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date).$onUpdateFn(()=>new Date)},a=>({taskIdx:(0,h.Pe)("task_step_idx").on(a.taskId)})),D=(0,d.D)("spec",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),key:(0,e.Qq)("key").notNull(),title:(0,e.Qq)("title").notNull(),summary:(0,e.Qq)("summary").notNull().default(""),authorId:(0,e.Qq)("author_id").references(()=>r.id),body:(0,e.Qq)("body").notNull().default(""),approved:(0,f.nd)("approved",{mode:"boolean"}).notNull().default(!1),goalId:(0,e.Qq)("goal_id"),status:(0,e.Qq)("status",{enum:["active","cancelled","archived"]}).notNull().default("active"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date).$onUpdateFn(()=>new Date)}),E=(0,d.D)("issue",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),specId:(0,e.Qq)("spec_id").references(()=>D.id,{onDelete:"cascade"}),goalId:(0,e.Qq)("goal_id"),key:(0,e.Qq)("key").notNull(),title:(0,e.Qq)("title").notNull(),prio:(0,e.Qq)("prio",{enum:["low","med","high"]}).notNull().default("med"),col:(0,e.Qq)("col",{enum:["todo","doing","blocked","review","done"]}).notNull().default("todo"),moscow:(0,e.Qq)("moscow",{enum:["Must","Should","Could","Won't"]}),points:(0,f.nd)("points").notNull().default(0),assigneeId:(0,e.Qq)("assignee_id").references(()=>r.id),approved:(0,f.nd)("approved",{mode:"boolean"}).notNull().default(!1),status:(0,e.Qq)("status",{enum:["active","cancelled","archived"]}).notNull().default("active"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date).$onUpdateFn(()=>new Date)}),F=(0,d.D)("plan",{workspaceId:(0,e.Qq)("workspace_id").primaryKey().references(()=>q.id,{onDelete:"cascade"}),approved:(0,f.nd)("approved",{mode:"boolean"}).notNull().default(!1),auto247:(0,f.nd)("auto_247",{mode:"boolean"}).notNull().default(!1),stage:(0,f.nd)("stage").notNull().default(4),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date).$onUpdateFn(()=>new Date)}),G=(0,d.D)("report",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),title:(0,e.Qq)("title").notNull(),type:(0,e.Qq)("type").notNull().default("Report"),authorId:(0,e.Qq)("author_id").references(()=>r.id),body:(0,e.Qq)("body").notNull().default(""),goalId:(0,e.Qq)("goal_id"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)}),H=(0,d.D)("notification",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),kind:(0,e.Qq)("kind").notNull().default("info"),text:(0,e.Qq)("text").notNull(),detail:(0,e.Qq)("detail").notNull().default(""),agentId:(0,e.Qq)("agent_id").references(()=>r.id),messageId:(0,e.Qq)("message_id"),channel:(0,e.Qq)("channel").notNull().default(""),read:(0,f.nd)("read",{mode:"boolean"}).notNull().default(!1),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("notif_ws_idx").on(a.workspaceId)})),I=(0,d.D)("channel_read",{workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),channel:(0,e.Qq)("channel").notNull(),lastReadAt:(0,f.nd)("last_read_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({pk:(0,i.ie)({columns:[a.workspaceId,a.channel]})})),J=(0,d.D)("budget",{workspaceId:(0,e.Qq)("workspace_id").primaryKey().references(()=>q.id,{onDelete:"cascade"}),monthlyCapUsd:(0,g.x)("monthly_cap_usd").notNull().default(400),monthlySpentUsd:(0,g.x)("monthly_spent_usd").notNull().default(0)}),K=(0,d.D)("cost_entry",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),agentId:(0,e.Qq)("agent_id").references(()=>r.id),provider:(0,e.Qq)("provider"),model:(0,e.Qq)("model"),channel:(0,e.Qq)("channel"),usd:(0,g.x)("usd").notNull().default(0),tokens:(0,f.nd)("tokens").notNull().default(0),at:(0,f.nd)("at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("cost_ws_idx").on(a.workspaceId)})),L=(0,d.D)("message",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),channel:(0,e.Qq)("channel").notNull().default("room"),fromKind:(0,e.Qq)("from_kind",{enum:["operator","agent"]}).notNull(),fromHandle:(0,e.Qq)("from_handle"),text:(0,e.Qq)("text").notNull(),sources:(0,e.Qq)("sources",{mode:"json"}).$type(),attachments:(0,e.Qq)("attachments",{mode:"json"}).$type(),sessionId:(0,e.Qq)("session_id"),taskId:(0,e.Qq)("task_id"),kind:(0,e.Qq)("kind"),blocks:(0,e.Qq)("blocks",{mode:"json"}).$type(),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsChanIdx:(0,h.Pe)("msg_ws_chan_idx").on(a.workspaceId,a.channel)})),M=(0,d.D)("chat_session",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),channel:(0,e.Qq)("channel").notNull(),title:(0,e.Qq)("title").notNull().default("Session"),active:(0,f.nd)("active",{mode:"boolean"}).notNull().default(!1),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date)},a=>({wsChanIdx:(0,h.Pe)("chat_session_ws_chan_idx").on(a.workspaceId,a.channel)})),N=(0,d.D)("event",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),runId:(0,e.Qq)("run_id").notNull(),channel:(0,e.Qq)("channel").notNull().default("room"),agentId:(0,e.Qq)("agent_id").references(()=>r.id),seq:(0,f.nd)("seq").notNull(),kind:(0,e.Qq)("kind").notNull(),target:(0,e.Qq)("target").notNull().default(""),detail:(0,e.Qq)("detail").notNull().default(""),at:(0,f.nd)("at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({chanIdx:(0,h.Pe)("event_chan_seq_idx").on(a.workspaceId,a.channel,a.seq),runIdx:(0,h.Pe)("event_run_idx").on(a.runId)})),O=(0,d.D)("deploy_run",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),status:(0,e.Qq)("status").notNull().default("idle"),runId:(0,e.Qq)("run_id").notNull().default(""),steps:(0,e.Qq)("steps").notNull().default("[]"),summary:(0,e.Qq)("summary").notNull().default(""),buildLog:(0,e.Qq)("build_log").notNull().default(""),checklist:(0,e.Qq)("checklist").notNull().default("[]"),lastExport:(0,e.Qq)("last_export"),startedAt:(0,f.nd)("started_at",{mode:"timestamp"}),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("deploy_run_ws_idx").on(a.workspaceId)})),P=(0,d.D)("message_summary",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),channel:(0,e.Qq)("channel").notNull(),sessionId:(0,e.Qq)("session_id"),summary:(0,e.Qq)("summary").notNull().default(""),throughId:(0,e.Qq)("through_id").notNull().default(""),msgCount:(0,f.nd)("msg_count").notNull().default(0),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsChanIdx:(0,h.Pe)("msgsum_ws_chan_idx").on(a.workspaceId,a.channel)})),Q=(0,d.D)("decision",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),goalId:(0,e.Qq)("goal_id"),text:(0,e.Qq)("text").notNull(),rationale:(0,e.Qq)("rationale").notNull().default(""),by:(0,e.Qq)("by").notNull().default(""),source:(0,e.Qq)("source").notNull().default(""),refKey:(0,e.Qq)("ref_key").notNull().default(""),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("decision_ws_idx").on(a.workspaceId,a.createdAt)})),R=(0,d.D)("file",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),path:(0,e.Qq)("path").notNull(),lang:(0,e.Qq)("lang").notNull().default("ts"),content:(0,e.Qq)("content").notNull().default(""),gitStatus:(0,e.Qq)("git_status",{enum:["","M","A","U","D"]}).notNull().default("")},a=>({wsPathIdx:(0,h.Pe)("file_ws_path_idx").on(a.workspaceId,a.path)})),S=(0,d.D)("routine",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),name:(0,e.Qq)("name").notNull(),agentId:(0,e.Qq)("agent_id").references(()=>r.id),cmd:(0,e.Qq)("cmd").notNull().default(""),freq:(0,e.Qq)("freq").notNull().default("Daily"),enabled:(0,f.nd)("enabled",{mode:"boolean"}).notNull().default(!0)}),T=(0,d.D)("cron_job",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),task:(0,e.Qq)("task").notNull(),agentId:(0,e.Qq)("agent_id").references(()=>r.id),at:(0,e.Qq)("at").notNull().default("00:00")}),U=(0,d.D)("cron_run",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),task:(0,e.Qq)("task").notNull(),agentId:(0,e.Qq)("agent_id").references(()=>r.id),at:(0,f.nd)("at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),ok:(0,f.nd)("ok",{mode:"boolean"}).notNull().default(!0)}),V=(0,d.D)("finding",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),sev:(0,e.Qq)("sev",{enum:["high","med","low"]}).notNull().default("med"),title:(0,e.Qq)("title").notNull(),file:(0,e.Qq)("file").notNull().default(""),suggestion:(0,e.Qq)("suggestion").notNull().default(""),status:(0,e.Qq)("status",{enum:["open","fixed"]}).notNull().default("open")}),W=(0,d.D)("inbox_item",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),kind:(0,e.Qq)("kind",{enum:["approval","budget","question","review","block","validation"]}).notNull().default("approval"),title:(0,e.Qq)("title").notNull(),detail:(0,e.Qq)("detail").notNull().default(""),fromAgentId:(0,e.Qq)("from_agent_id").references(()=>r.id),resolved:(0,f.nd)("resolved",{mode:"boolean"}).notNull().default(!1),refType:(0,e.Qq)("ref_type"),refId:(0,e.Qq)("ref_id"),goalId:(0,e.Qq)("goal_id"),channel:(0,e.Qq)("channel"),messageId:(0,e.Qq)("message_id"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date)}),X=(0,d.D)("plugin",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),name:(0,e.Qq)("name").notNull(),description:(0,e.Qq)("description").notNull().default(""),enabled:(0,f.nd)("enabled",{mode:"boolean"}).notNull().default(!1),native:(0,f.nd)("native",{mode:"boolean"}).notNull().default(!1)}),Y=(0,d.D)("test_run",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),goalId:(0,e.Qq)("goal_id"),issueId:(0,e.Qq)("issue_id"),status:(0,e.Qq)("status",{enum:["running","pass","fail","inconclusive"]}).notNull().default("running"),summary:(0,e.Qq)("summary").notNull().default(""),findings:(0,e.Qq)("findings").notNull().default("[]"),by:(0,e.Qq)("by",{enum:["operator","agent"]}).notNull().default("operator"),startedAt:(0,f.nd)("started_at",{mode:"timestamp"}).$defaultFn(()=>new Date),finishedAt:(0,f.nd)("finished_at",{mode:"timestamp"})},a=>({wsIdx:(0,h.Pe)("test_run_ws_idx").on(a.workspaceId)})),Z=(0,d.D)("activity",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),agentId:(0,e.Qq)("agent_id").references(()=>r.id),action:(0,e.Qq)("action").notNull(),target:(0,e.Qq)("target").notNull().default(""),at:(0,f.nd)("at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("activity_ws_idx").on(a.workspaceId)})),$=(0,d.D)("backlog_item",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),title:(0,e.Qq)("title").notNull(),moscow:(0,e.Qq)("moscow",{enum:["Must","Should","Could","Won't"]}).notNull().default("Should"),points:(0,f.nd)("points").notNull().default(0),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("backlog_ws_idx").on(a.workspaceId)})),_=(0,d.D)("rag_chunk",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),path:(0,e.Qq)("path").notNull(),chunk:(0,e.Qq)("chunk").notNull(),vector:(0,e.Qq)("vector"),kbEntryId:(0,e.Qq)("kb_entry_id"),obsolete:(0,f.nd)("obsolete",{mode:"boolean"}).notNull().default(!1),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("rag_ws_idx").on(a.workspaceId,a.path)})),aa=(0,d.D)("doc_index",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),kind:(0,e.Qq)("kind",{enum:["docs","po"]}).notNull(),path:(0,e.Qq)("path").notNull(),title:(0,e.Qq)("title").notNull().default(""),summary:(0,e.Qq)("summary").notNull().default(""),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("docidx_ws_path_idx").on(a.workspaceId,a.path)})),ab=(0,d.D)("kb_entry",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),type:(0,e.Qq)("type").notNull().default("note"),title:(0,e.Qq)("title").notNull(),summary:(0,e.Qq)("summary").notNull().default(""),body:(0,e.Qq)("body").notNull().default(""),status:(0,e.Qq)("status",{enum:["active","superseded","obsolete","archived"]}).notNull().default("active"),goalId:(0,e.Qq)("goal_id"),specId:(0,e.Qq)("spec_id"),issueId:(0,e.Qq)("issue_id"),taskId:(0,e.Qq)("task_id"),module:(0,e.Qq)("module").notNull().default(""),paths:(0,e.Qq)("paths",{mode:"json"}).$type(),agentHandle:(0,e.Qq)("agent_handle").notNull().default(""),sourceKind:(0,e.Qq)("source_kind").notNull().default(""),sourceRef:(0,e.Qq)("source_ref").notNull().default(""),supersedesId:(0,e.Qq)("supersedes_id"),hash:(0,e.Qq)("hash").notNull().default(""),confidence:(0,f.nd)("confidence").notNull().default(70),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsTypeIdx:(0,h.Pe)("kb_ws_type_idx").on(a.workspaceId,a.type),wsGoalIdx:(0,h.Pe)("kb_ws_goal_idx").on(a.workspaceId,a.goalId)})),ac=(0,d.D)("file_lock",{workspaceId:(0,e.Qq)("workspace_id").notNull(),path:(0,e.Qq)("path").notNull(),taskId:(0,e.Qq)("task_id").notNull().default(""),agentId:(0,e.Qq)("agent_id").notNull().default(""),agentHandle:(0,e.Qq)("agent_handle").notNull().default(""),acquiredAt:(0,f.nd)("acquired_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),heartbeatAt:(0,f.nd)("heartbeat_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({pk:(0,i.ie)({columns:[a.workspaceId,a.path]})})),ad=(0,d.D)("kb_query_log",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),agentHandle:(0,e.Qq)("agent_handle").notNull().default(""),query:(0,e.Qq)("query").notNull().default(""),hits:(0,f.nd)("hits").notNull().default(0),mode:(0,e.Qq)("mode").notNull().default(""),refs:(0,e.Qq)("refs",{mode:"json"}).$type(),answeredAt:(0,f.nd)("answered_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("kb_query_ws_idx").on(a.workspaceId,a.answeredAt)})),ae=(0,d.D)("synced_block",{workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),slug:(0,e.Qq)("slug").notNull(),kind:(0,e.Qq)("kind").notNull().default("note"),title:(0,e.Qq)("title").notNull().default(""),body:(0,e.Qq)("body").notNull().default(""),version:(0,f.nd)("version").notNull().default(1),updatedBy:(0,e.Qq)("updated_by").notNull().default(""),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({pk:(0,i.ie)({columns:[a.workspaceId,a.slug]})})),af=(0,d.D)("block_proposal",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),slug:(0,e.Qq)("slug").notNull(),kind:(0,e.Qq)("kind").notNull().default("note"),title:(0,e.Qq)("title").notNull().default(""),body:(0,e.Qq)("body").notNull().default(""),byAgentHandle:(0,e.Qq)("by_agent_handle").notNull().default(""),status:(0,e.Qq)("status",{enum:["pending","merged","rejected"]}).notNull().default("pending"),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),decidedAt:(0,f.nd)("decided_at",{mode:"timestamp"}),decidedBy:(0,e.Qq)("decided_by").notNull().default("")},a=>({wsIdx:(0,h.Pe)("block_prop_ws_idx").on(a.workspaceId,a.status)})),ag=(0,d.D)("notification_pref",{userId:(0,e.Qq)("user_id").primaryKey().references(()=>k.id,{onDelete:"cascade"}),email:(0,f.nd)("email",{mode:"boolean"}).notNull().default(!0),telegram:(0,f.nd)("telegram",{mode:"boolean"}).notNull().default(!0),inapp:(0,f.nd)("inapp",{mode:"boolean"}).notNull().default(!0),weekly:(0,f.nd)("weekly",{mode:"boolean"}).notNull().default(!1),reducedMotion:(0,f.nd)("reduced_motion",{mode:"boolean"}).notNull().default(!1)}),ah=(0,d.D)("personal_access_token",{id:(0,e.Qq)("id").primaryKey(),userId:(0,e.Qq)("user_id").notNull().references(()=>k.id,{onDelete:"cascade"}),name:(0,e.Qq)("name").notNull(),scope:(0,e.Qq)("scope").notNull().default("read"),tokenHash:(0,e.Qq)("token_hash").notNull(),prefix:(0,e.Qq)("prefix").notNull(),lastUsedAt:(0,f.nd)("last_used_at",{mode:"timestamp"}),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({userIdx:(0,h.Pe)("pat_user_idx").on(a.userId)})),ai=(0,d.D)("two_factor",{id:(0,e.Qq)("id").primaryKey(),secret:(0,e.Qq)("secret").notNull(),backupCodes:(0,e.Qq)("backup_codes").notNull(),userId:(0,e.Qq)("user_id").notNull().references(()=>k.id,{onDelete:"cascade"})},a=>({userIdx:(0,h.Pe)("twofactor_user_idx").on(a.userId)})),aj=(0,d.D)("passkey",{id:(0,e.Qq)("id").primaryKey(),userId:(0,e.Qq)("user_id").notNull().references(()=>k.id,{onDelete:"cascade"}),name:(0,e.Qq)("name").notNull().default("Passkey"),credentialId:(0,e.Qq)("credential_id").notNull().unique(),publicKey:(0,e.Qq)("public_key").notNull(),counter:(0,f.nd)("counter").notNull().default(0),deviceType:(0,e.Qq)("device_type").notNull().default(""),backedUp:(0,f.nd)("backed_up",{mode:"boolean"}).notNull().default(!1),transports:(0,e.Qq)("transports").notNull().default(""),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({userIdx:(0,h.Pe)("passkey_user_idx").on(a.userId)})),ak=(0,d.D)("design_session",{id:(0,e.Qq)("id").primaryKey(),workspaceId:(0,e.Qq)("workspace_id").notNull().references(()=>q.id,{onDelete:"cascade"}),title:(0,e.Qq)("title").notNull().default("Design session"),status:(0,e.Qq)("status",{enum:["building","approved"]}).notNull().default("building"),tokens:(0,e.Qq)("tokens",{mode:"json"}).$type().notNull().default({}),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`),updatedAt:(0,f.nd)("updated_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({wsIdx:(0,h.Pe)("design_session_ws_idx").on(a.workspaceId,a.createdAt)})),al=(0,d.D)("design_page",{id:(0,e.Qq)("id").primaryKey(),sessionId:(0,e.Qq)("session_id").notNull().references(()=>ak.id,{onDelete:"cascade"}),key:(0,e.Qq)("key").notNull(),name:(0,e.Qq)("name").notNull(),tree:(0,e.Qq)("tree",{mode:"json"})},a=>({sessIdx:(0,h.Pe)("design_page_sess_idx").on(a.sessionId)})),am=(0,d.D)("design_version",{id:(0,e.Qq)("id").primaryKey(),sessionId:(0,e.Qq)("session_id").notNull().references(()=>ak.id,{onDelete:"cascade"}),label:(0,e.Qq)("label").notNull(),note:(0,e.Qq)("note").notNull().default(""),patch:(0,e.Qq)("patch",{mode:"json"}),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({sessIdx:(0,h.Pe)("design_version_sess_idx").on(a.sessionId,a.createdAt)})),an=(0,d.D)("design_comment",{id:(0,e.Qq)("id").primaryKey(),sessionId:(0,e.Qq)("session_id").notNull().references(()=>ak.id,{onDelete:"cascade"}),pageKey:(0,e.Qq)("page_key").notNull(),xp:(0,g.x)("xp").notNull(),yp:(0,g.x)("yp").notNull(),body:(0,e.Qq)("body").notNull(),reply:(0,e.Qq)("reply").notNull().default(""),selection:(0,e.Qq)("selection",{mode:"json"}),createdAt:(0,f.nd)("created_at",{mode:"timestamp"}).notNull().default((0,j.ll)`(unixepoch())`)},a=>({sessIdx:(0,h.Pe)("design_comment_sess_idx").on(a.sessionId)}))},30043:(a,b,c)=>{c.d(b,{Y:()=>g,v:()=>f});var d=c(76760);let e=!1;function f(){let a=process.cwd();return!process.env.INIT_CWD&&!e&&/[\\/]\.next[\\/]standalone/.test(a)&&(e=!0,console.warn("[runtime-root] INIT_CWD unset and cwd is inside .next/standalone — relative DATABASE_URL/CONSTELLA_HOME will resolve UNDER the standalone dir (separate DB!). Set absolute paths or launch via `pnpm start` (which sets INIT_CWD).")),process.env.INIT_CWD||a}function g(a){return(0,d.isAbsolute)(a)?a:(0,d.resolve)(f(),a)}},37296:(a,b,c)=>{c.d(b,{j2:()=>o});var d=c(77060),e=c(15111),f=c(73092),g=c(65705),h=c(1890);let i=process.env.BETTER_AUTH_URL??"http://localhost:3000";function j(a){return a?.split(",")[0]?.trim()||null}function k(a){if(!a)return null;try{return new URL(a).origin}catch{return null}}function l(a,b){let c=k(b?.trim());c&&a.add(c)}let m=(()=>{let a=new Set;for(let b of[i,process.env.BETTER_AUTH_URL,process.env.NEXT_PUBLIC_BETTER_AUTH_URL,...(process.env.CONSTELLA_TRUSTED_ORIGINS??"").split(",")])l(a,b);return[...a]})();process.env.BETTER_AUTH_SECRET||console.error("[auth] FATAL: BETTER_AUTH_SECRET is required (sessions would be forgeable). Set it in your environment.");let n={};process.env.GITHUB_CLIENT_ID&&process.env.GITHUB_CLIENT_SECRET&&(n.github={clientId:process.env.GITHUB_CLIENT_ID,clientSecret:process.env.GITHUB_CLIENT_SECRET,scope:["repo","read:user"]}),process.env.GOOGLE_CLIENT_ID&&process.env.GOOGLE_CLIENT_SECRET&&(n.google={clientId:process.env.GOOGLE_CLIENT_ID,clientSecret:process.env.GOOGLE_CLIENT_SECRET}),Object.keys(n);let o=(0,d.l)({baseURL:i,trustedOrigins:function(a){let b=new Set(m);l(b,a?.url);let c=function(a){let b=a?.headers,c=j(b?.get("x-forwarded-host"))??j(b?.get("host"));if(!c)return null;let d=(j(b?.get("x-forwarded-proto"))??(i.startsWith("https://")?"https":"http")).replace(/:$/,"");return/^[a-z][a-z0-9+.-]*$/i.test(d)?k(`${d}://${c}`):null}(a);return c&&b.add(c),[...b]},secret:process.env.BETTER_AUTH_SECRET,database:(0,e.y)(g.db,{provider:"sqlite",schema:{user:h.user,session:h.session,account:h.account,verification:h.verification,twoFactor:h.twoFactor}}),emailAndPassword:{enabled:!0,autoSignIn:!0,requireEmailVerification:!1},socialProviders:n,account:{accountLinking:{enabled:!0,trustedProviders:["github","google"]}},session:{expiresIn:2592e3,additionalFields:{activeOrgId:{type:"string",required:!1}}},plugins:[(0,f.d)()],advanced:{useSecureCookies:i.startsWith("https://")}})},43526:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(4374);let e={files:(0,d.jsx)("path",{d:"M3 3.5h5l1.5 2H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4.5a1 1 0 0 1 1-1z"}),search:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.2"}),(0,d.jsx)("path",{d:"M10.2 10.2 14 14"})]}),git:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"4",cy:"4",r:"1.8"}),(0,d.jsx)("circle",{cx:"4",cy:"12",r:"1.8"}),(0,d.jsx)("circle",{cx:"12",cy:"9.5",r:"1.8"}),(0,d.jsx)("path",{d:"M4 5.8v4.4M5.8 4H9a2 2 0 0 1 2 2v1.6"})]}),debug:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8.5",r:"3.5"}),(0,d.jsx)("path",{d:"M8 5V3M4.5 8.5H2m12 0h-2.5M4.8 11.8 3.4 13M11.2 11.8l1.4 1.2M5.2 5 3.8 3.6M10.8 5l1.4-1.4"})]}),ext:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("path",{d:"M9 11.2h4.5M11.2 9v4.5"})]}),settings:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2.2"}),(0,d.jsx)("path",{d:"M8 1.5v2M8 12.5v2M14.5 8h-2M3.5 8h-2M12.6 3.4l-1.4 1.4M4.8 11.2l-1.4 1.4M12.6 12.6l-1.4-1.4M4.8 4.8 3.4 3.4"})]}),account:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"5.5",r:"2.8"}),(0,d.jsx)("path",{d:"M2.8 14c0-2.8 2.3-4.5 5.2-4.5s5.2 1.7 5.2 4.5"})]}),chevronRight:(0,d.jsx)("path",{d:"M6 4l4 4-4 4"}),chevronDown:(0,d.jsx)("path",{d:"M4 6l4 4 4-4"}),chevronUp:(0,d.jsx)("path",{d:"M4 10l4-4 4 4"}),close:(0,d.jsx)("path",{d:"M4 4l8 8M12 4l-8 8"}),add:(0,d.jsx)("path",{d:"M8 3v10M3 8h10"}),newFile:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,d.jsx)("path",{d:"M9 2v4h4M8 8v4M6 10h4"})]}),newFolder:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M2 5.5a1 1 0 0 1 1-1h3l1.2 1.5H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5.5z"}),(0,d.jsx)("path",{d:"M8 8v3M6.5 9.5h3"})]}),refresh:(0,d.jsx)("path",{d:"M13 8a5 5 0 1 1-1.5-3.5M13 2.5V5h-2.5"}),collapse:(0,d.jsx)("path",{d:"M3 5h6M3 8h6M3 11h6M12 6l-1.5 1.5L12 9"}),more:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"3.5",cy:"8",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"8",r:"1"}),(0,d.jsx)("circle",{cx:"12.5",cy:"8",r:"1"})]}),split:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1"}),(0,d.jsx)("path",{d:"M8 3v10"})]}),terminal:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M4.5 6.5 6.5 8l-2 1.5M8 10h3.5"})]}),panelBottom:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M2 10h12"})]}),sidebarIcon:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M6 3v10"})]}),bell:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M8 2a3.5 3.5 0 0 0-3.5 3.5c0 3-1.3 4-1.3 4h9.6s-1.3-1-1.3-4A3.5 3.5 0 0 0 8 2z"}),(0,d.jsx)("path",{d:"M6.7 12a1.4 1.4 0 0 0 2.6 0"})]}),check:(0,d.jsx)("path",{d:"M3 8.5 6.5 12 13 4"}),error:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("path",{d:"M8 5v4M8 11h.01"})]}),warn:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M8 2.5 14.5 13.5h-13z"}),(0,d.jsx)("path",{d:"M8 7v3M8 12h.01"})]}),branch:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"4",cy:"4",r:"1.6"}),(0,d.jsx)("circle",{cx:"4",cy:"12",r:"1.6"}),(0,d.jsx)("circle",{cx:"12",cy:"9",r:"1.6"}),(0,d.jsx)("path",{d:"M4 5.6v4.8M5.6 4H9a1.8 1.8 0 0 1 1.8 1.8v1.6"})]}),sync:(0,d.jsx)("path",{d:"M3 6a5 5 0 0 1 8.5-2M13 10a5 5 0 0 1-8.5 2M11.5 2.5V4h-1.5M4.5 13.5V12h1.5"}),command:(0,d.jsx)("path",{d:"M5.5 3.5A1.5 1.5 0 1 1 4 5h8a1.5 1.5 0 1 1-1.5 1.5v3A1.5 1.5 0 1 1 12 11H4a1.5 1.5 0 1 1 1.5-1.5v-3z"}),goto:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M3 8h8M7.5 4.5 11 8l-3.5 3.5"}),(0,d.jsx)("path",{d:"M13 3v10"})]}),sun:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,d.jsx)("path",{d:"M8 1.5v1.5M8 13v1.5M14.5 8H13M3 8H1.5M12.6 3.4l-1 1M4.4 11.6l-1 1M12.6 12.6l-1-1M4.4 4.4l-1-1"})]}),moon:(0,d.jsx)("path",{d:"M13 9.2A5.5 5.5 0 0 1 6.8 3 5.5 5.5 0 1 0 13 9.2z"}),play:(0,d.jsx)("path",{d:"M5 3.5v9l7-4.5z"}),trash:(0,d.jsx)("path",{d:"M3.5 4.5h9M6 4.5V3h4v1.5M5 4.5l.5 8.5h5l.5-8.5"}),dot:(0,d.jsx)("circle",{cx:"8",cy:"8",r:"3"}),fileTs:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,d.jsx)("path",{d:"M9 2v4h4"})]}),arrowUp:(0,d.jsx)("path",{d:"M8 13V3M4 7l4-4 4 4"}),arrowDown:(0,d.jsx)("path",{d:"M8 3v10M4 9l4 4 4-4"}),agents:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"5.5",cy:"6",r:"2.2"}),(0,d.jsx)("circle",{cx:"11",cy:"6.5",r:"1.8"}),(0,d.jsx)("path",{d:"M2 13c0-2 1.6-3.2 3.5-3.2S9 11 9 13M9.5 12.5c.2-1.6 1.3-2.5 2.8-2.5 1.3 0 2.4.8 2.4 2.3"})]}),bot:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"3",y:"5.5",width:"10",height:"7",rx:"2"}),(0,d.jsx)("path",{d:"M8 3v2.5M5.8 9h.01M10.2 9h.01M6 12h4"}),(0,d.jsx)("circle",{cx:"8",cy:"3",r:"1"})]}),send:(0,d.jsx)("path",{d:"M14 2 7 9M14 2l-4.5 12-2.5-5L2 6.5z"}),at:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,d.jsx)("path",{d:"M11 8v1.2a1.8 1.8 0 0 0 3.5.6A6.5 6.5 0 1 0 11 13.2"})]}),chevronLeft:(0,d.jsx)("path",{d:"M10 4 6 8l4 4"}),dockRight:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M10 3v10"}),(0,d.jsx)("rect",{x:"10.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),dockLeft:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M6 3v10"}),(0,d.jsx)("rect",{x:"2.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),chat:(0,d.jsx)("path",{d:"M3 4.5h10a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H7l-3 2.5V11.5H3a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1z"}),grid:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"4.5",height:"4.5",rx:"1"})]}),inbox:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M2 9h3l1 2h4l1-2h3"}),(0,d.jsx)("path",{d:"M2.5 9 4 3.5h8L13.5 9v3.5a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1z"})]}),calendar:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M2.5 6.5h11M5.5 2v3M10.5 2v3"})]}),repeat:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M3 6a4 4 0 0 1 7-2.5L12 5M13 10a4 4 0 0 1-7 2.5L4 11"}),(0,d.jsx)("path",{d:"M12 2v3H9M4 14v-3h3"})]}),doc:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M9 2H4.5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V5.5L9 2z"}),(0,d.jsx)("path",{d:"M9 2v3.5h3.5M6 8.5h4M6 11h4"})]}),skill:(0,d.jsx)("path",{d:"M8 2.5l1.4 3.1 3.4.4-2.5 2.3.7 3.3L8 9.9 5 11.6l.7-3.3L3.2 6l3.4-.4z"}),pulse:(0,d.jsx)("path",{d:"M2 8h3l1.5-4 2.5 8 1.5-4H14"}),coins:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("ellipse",{cx:"6",cy:"4.5",rx:"3.5",ry:"1.8"}),(0,d.jsx)("path",{d:"M2.5 4.5v3c0 1 1.6 1.8 3.5 1.8s3.5-.8 3.5-1.8v-3"}),(0,d.jsx)("ellipse",{cx:"10",cy:"9.5",rx:"3.5",ry:"1.8"}),(0,d.jsx)("path",{d:"M6.5 9.5c.4.9 1.8 1.5 3.5 1.5s3.5-.8 3.5-1.8v-1.2"})]}),cpu:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"8",height:"8",rx:"1.5"}),(0,d.jsx)("rect",{x:"6.3",y:"6.3",width:"3.4",height:"3.4",rx:".5"}),(0,d.jsx)("path",{d:"M6 2v2M10 2v2M6 12v2M10 12v2M2 6h2M2 10h2M12 6h2M12 10h2"})]}),shield:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M8 2 3 4v4c0 3 2.2 5 5 6 2.8-1 5-3 5-6V4z"}),(0,d.jsx)("path",{d:"M5.8 8 7.3 9.5 10.4 6.3"})]}),target:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"5.5"}),(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2.4"})]}),selectParent:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"2.5",width:"12",height:"11",rx:"1.5"}),(0,d.jsx)("path",{d:"M8 11V6.5M5.5 9 8 6.5l2.5 2.5"})]})};function f({name:a,size:b=16,className:c="",strokeWidth:g=1.4,style:h}){let i=e[a];return i?(0,d.jsx)("svg",{width:b,height:b,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:g,strokeLinecap:"round",strokeLinejoin:"round",className:c,style:h,children:"play"===a||"dot"===a?(0,d.jsx)("g",{fill:"currentColor",stroke:"none",children:i}):i}):null}},65705:(a,b,c)=>{c.d(b,{F:()=>k,db:()=>l});var d=c(1217),e=c(87550),f=c.n(e),g=c(73024),h=c(76760),i=c(1890);let j=(0,c(30043).Y)((process.env.DATABASE_URL??"file:./.constella/constella.db").replace(/^file:/,""));(0,g.mkdirSync)((0,h.dirname)(j),{recursive:!0});let k=new(f())(j);k.pragma("journal_mode = WAL"),k.pragma("foreign_keys = ON");let l=(0,d.f)(k,{schema:i})},93542:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(4374);function e({size:a=34,rx:b=9}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 100 100",style:{display:"block",flex:`0 0 ${a}px`},"aria-label":"Constella",children:[(0,d.jsx)("rect",{x:"1",y:"1",width:"98",height:"98",rx:b,fill:"var(--cs-bg)",stroke:"var(--cs-border)",strokeWidth:"1.5"}),(0,d.jsx)("path",{d:"M66.06 27.06 L42.75 22.95 L24.62 38.17 L24.62 61.83 L42.75 77.05 L66.06 72.94",fill:"none",stroke:"var(--cs-line)",strokeWidth:"2.1",strokeLinecap:"round",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M48 50 L42.75 22.95 M48 50 L24.62 50 M48 50 L42.75 77.05",fill:"none",stroke:"var(--cs-line)",strokeWidth:"1.2",strokeLinecap:"round",opacity:"0.55"}),[[66.06,27.06],[42.75,22.95],[24.62,38.17],[24.62,61.83],[42.75,77.05],[66.06,72.94]].map((a,b)=>(0,d.jsx)("circle",{cx:a[0],cy:a[1],r:"3.1",fill:"var(--cs-node)"},b)),(0,d.jsx)("circle",{cx:"48",cy:"50",r:"8.5",fill:"var(--cs-glow)",opacity:"0.4"}),(0,d.jsx)("circle",{cx:"48",cy:"50",r:"4.3",fill:"var(--cs-core)"})]})}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=535,exports.ids=[535,7336],exports.modules={4719:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(62060).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},5323:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(61576),e=c(1308),f=c(4719);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}},9842:(a,b,c)=>{c.d(b,{IZ:()=>k,Ix:()=>j,ZF:()=>m,h6:()=>n,w1:()=>l});var d=c(1782),e=c(76760),f=c(80280),g=c(25533),h=c(18612),i=c(54033);function j(a,b){if(!b)return null;let c=(0,h.HZ)(a),d=((0,e.isAbsolute)(b)?(0,e.relative)(c,b):b).replace(/\\/g,"/");return!d||d.startsWith("..")||d.startsWith(".git/")||d.startsWith(".claude/")||d.startsWith("archives/")?null:d}async function k(a,b,c){let e=(0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.path,b)),[h]=await f.db.select().from(g.fileLock).where(e);if(h){let a=!!c.taskId&&h.taskId===c.taskId,b=!h.taskId&&!!c.agentId&&h.agentId===c.agentId;return a||b?(await f.db.update(g.fileLock).set({heartbeatAt:new Date}).where(e),{ok:!0}):{ok:!1,heldBy:{handle:h.agentHandle,taskId:h.taskId}}}try{return await f.db.insert(g.fileLock).values({workspaceId:a,path:b,taskId:c.taskId||"",agentId:c.agentId||"",agentHandle:c.handle||"",acquiredAt:new Date,heartbeatAt:new Date}),{ok:!0}}catch{let[a]=await f.db.select().from(g.fileLock).where(e);if(a&&(a.taskId===c.taskId||a.agentId===c.agentId))return{ok:!0};return{ok:!1,heldBy:a?{handle:a.agentHandle,taskId:a.taskId}:void 0}}}async function l(a,b){if(b)try{let c=await f.db.select({path:g.fileLock.path}).from(g.fileLock).where((0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.taskId,b)));for(let e of(await f.db.delete(g.fileLock).where((0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.taskId,b))),c))await (0,i.W_)(a,"task",`lock:${e.path}`)}catch{}}async function m(a=3e5){try{await f.db.delete(g.fileLock).where((0,d.lt)(g.fileLock.heartbeatAt,new Date(Date.now()-a)))}catch{}}async function n(a){try{return await f.db.select({path:g.fileLock.path,agentHandle:g.fileLock.agentHandle,taskId:g.fileLock.taskId}).from(g.fileLock).where((0,d.eq)(g.fileLock.workspaceId,a))}catch{return[]}}},47336:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(30043);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},51221:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(4374),e=c(43526),f=c(48442),g=c(31819);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},52932:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(6866),e=c(53993),f=c(30043),g=c(64567),h=c(30170);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(47336),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(57086);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(97603),t=c(65705),u=c(1890),v=c(10245);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(74252).D)([x,y,z,A,B]),(0,d.A)(x,"40aca5e636733f4a71e30c5ee0da0e058892463f10",null),(0,d.A)(y,"40c4dec4c26a6ed0bdf72098c743c4c2cb18ed1cd1",null),(0,d.A)(z,"00f52218f5d83e696e1dc0d0c5d065efe7965bf187",null),(0,d.A)(A,"00a23e99d4e912da3ad1b266a22b1a141df6bc8b94",null),(0,d.A)(B,"001e9ef8a66d3ec2113043b24ab8849578169f7b7f",null)},64567:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},65879:(a,b,c)=>{c.d(b,{O:()=>e});var d=c(2910);let e=(0,d.createServerReference)("0018beb06b15d253498af2e1d83c7efb58ba1235f1",d.callServer,void 0,d.findSourceMapURL,"curateKbAction")},67949:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(79676),e=c(75785);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}},82658:(a,b,c)=>{c.r(b),c.d(b,{"0009ce734653f91e0152ed870ffea99c48e8be1273":()=>j.f,"0018beb06b15d253498af2e1d83c7efb58ba1235f1":()=>j.O,"001e9ef8a66d3ec2113043b24ab8849578169f7b7f":()=>n.eU,"0030de7d84721074ca2c38fb96d3e99e7adbe2b115":()=>e.y_,"004502b97d8e3fe943f13c3b5ade91831b1f1e77aa":()=>d.bt,"0045398aceb661eaa7517a21a9c934e25c61817872":()=>i.V,"006719bab2c5093e448a5b60a38be68998349f13c8":()=>k.io,"00716b109ea97d20c9f19b65b246d9ef7ef16cbddf":()=>h.x7,"0083d8bd1fd660d07c4a32afdfbaf0d4ce78f74b81":()=>k.dj,"008623b8f1ea7a05b1a03f35024e64deff3c76f40f":()=>k.eg,"00a23e99d4e912da3ad1b266a22b1a141df6bc8b94":()=>n.PG,"00a77165f7dac9a25c366aaf49ac70c5ed0cb6a63d":()=>h.Mp,"00a782e5d3c8dd68f47e067a435acd0c8fe0089219":()=>e.PE,"00a8998940c2cf6566eea709d291cf65481f19b54b":()=>e.GK,"00ab9927a86440472b5cf26fdd4def0f285a68079c":()=>e.KO,"00ad3ff5b743f7808199b27e76248692706b96f718":()=>d.xU,"00f52218f5d83e696e1dc0d0c5d065efe7965bf187":()=>n.pM,"40167414a2e3f5a222b12781ff743cf8b6ee9ad2c6":()=>g.p,"4017b268da6934678c723b13073665577f1ce75125":()=>d.VL,"40196d281dfd92714d0ecb5e9aba74dea1bee6bc80":()=>d.rd,"4022a1ccf1ac607c0265da4f487775990a4b8caded":()=>h.lR,"402e9c60aa3c6a6a0e19a64a54ffb83bac076adb9c":()=>i.F,"402fdcfeddf17de5709d551eccb08d8356339ea521":()=>k.De,"40337f5cf82830e51248818527fcc51ef672eb9a3e":()=>d.Wu,"4037371c47b3e43e6b878942db9705b7d9c6962e8a":()=>d.H7,"4063c93f1ee771828f6137bb585d64b60ae5977ed5":()=>e.jc,"4065b972fc53cae281adf85572f2891eab399b9ff9":()=>i.E_,"406ea9546f1236fb07b7a24e792f794a0bbfb38d1b":()=>h.sE,"407582551cfcbf2ac958cbe9bb798c5ab9b4596935":()=>e.RG,"408cb072e3f25c139043774855c69d936ddfb60fd8":()=>i.VJ,"408ccd7908d2b134a54b0e8d4b0d16b030de6e0632":()=>d.gg,"409578e833742438f85eca112f74f4d631356f1cf7":()=>e.lJ,"409af259de44b27f92082eefeb0efe223bff8594fa":()=>g.L,"409ea47becd1f3f5c10a03dfe397bddcea7c125f30":()=>e.S,"40a067d42212349997f6b7b49b9b48eb75e87fe55a":()=>m.y,"40aca5e636733f4a71e30c5ee0da0e058892463f10":()=>n.Kg,"40afa32b6c37457e72bff11c25b8cb3acfad4e3d2d":()=>d.GW,"40bf46adf5ba85892bebf71f92748ed2bcbfecf292":()=>e.ey,"40c4dec4c26a6ed0bdf72098c743c4c2cb18ed1cd1":()=>n.lP,"40c85820def5803f3a9d54d933eb918b15d90b838a":()=>e.r7,"40ef945934daa47611bdb93b4cbc8906eb0f5ad253":()=>l.IL,"40f10406b426a9c38439a687284a721ddbf811f921":()=>i.zS,"40f7b5622fafa7f742d8cc68158fcbfd9b1ce99871":()=>l.q4,"40f7fd7992a8b9392597609349e63fb2460027c08a":()=>l.TX,"602483e14c0bdc4b5eb30468c3ef23b28e28b0df97":()=>e.q$,"604b3f96e4b0483edec3ec9f2f6daeac4fcdc8bbb1":()=>e.AA,"606af24aba1c9b79ec8a417abc29b49313f2de6b86":()=>l.Jp,"60736041a12fa374b1b47fa833b667d9d2d0997de2":()=>l.bk,"60761f3f2a77c81adf9da9b9d32b82e6d23912ccb9":()=>d.Fu,"6095694ef9c93f4af4573c8b78ab38c64e22c7215f":()=>l.bV,"60a238957762b5625582695c05d90f75b394483f2c":()=>f.I,"60b2447c6f65739ea8d93d715725c1f01851420aff":()=>e.LZ,"60b839ac7ca9a330595b14f8e699f9d128893bea16":()=>d.ME,"60bdbc934306dcff3e399beddf0cac16ca1290c000":()=>d.rm,"60da28e0e8059b61b3e22ba0d80a0bc367b5f79ae2":()=>d.n4,"60dba9908002f3000f3e7e8a0a7750d94f4e462c3d":()=>f.k,"60f9632ed57030592852ca206eb7d314c4bd1c4650":()=>d.jw,"705bb57bae647e5b0983590ed14a5926a22e285733":()=>d._z,"70c7731b108f014faf75e2ba778682d83c81ad6646":()=>e.M8});var d=c(97140),e=c(15487),f=c(79505),g=c(51605),h=c(46363),i=c(46282),j=c(387),k=c(13604),l=c(7482),m=c(58169),n=c(52932)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=5614,exports.ids=[5614],exports.modules={55614:(a,b,c)=>{c.d(b,{kH:()=>e});let d=Object.fromEntries([{id:"anthropic",displayName:"Anthropic",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_anthropic",baseUrl:"https://api.anthropic.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Claude family. Model list mapped from provider capabilities."},{id:"openai",displayName:"OpenAI",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_openai",baseUrl:"https://api.openai.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"GPT-4o/o-series + DALL\xb7E + Whisper."},{id:"google_gemini",displayName:"Google AI / Gemini",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_google",baseUrl:"https://generativelanguage.googleapis.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Gemini 1.5/2.x via AI Studio API key."},{id:"xai_grok",displayName:"xAI / Grok",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_xai",baseUrl:"https://api.x.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"OpenAI-compatible REST. Grok-2/3."},{id:"deepseek",displayName:"DeepSeek",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_deepseek",baseUrl:"https://api.deepseek.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"deepseek-chat / deepseek-reasoner."},{id:"cohere",displayName:"Cohere",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_cohere",baseUrl:"https://api.cohere.com/v2",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Command R/R+ and strong rerank/embeddings."},{id:"ai21",displayName:"AI21",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_ai21",baseUrl:"https://api.ai21.com/studio/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"perplexity",displayName:"Perplexity",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_perplexity",baseUrl:"https://api.perplexity.ai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"groq",displayName:"Groq",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_groq",baseUrl:"https://api.groq.com/openai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Ultra-low-latency LPU inference, OpenAI-compatible."},{id:"nvidia_nim",displayName:"NVIDIA / NIM",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"NIM microservices, OpenAI-compatible."},{id:"together",displayName:"Together AI",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_together",baseUrl:"https://api.together.xyz/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available"},{id:"fireworks",displayName:"Fireworks AI",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available"},{id:"cerebras",displayName:"Cerebras",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_cerebras",baseUrl:"https://api.cerebras.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"available",notes:"Wafer-scale fast inference."},{id:"huggingface",displayName:"Hugging Face",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_hf",baseUrl:"https://api-inference.huggingface.co",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"replicate",displayName:"Replicate",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_replicate",baseUrl:"https://api.replicate.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"anyscale",displayName:"Anyscale",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_anyscale",baseUrl:"https://api.endpoints.anyscale.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Endpoints product changing — adapter pending."},{id:"databricks",displayName:"Databricks",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_databricks",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"requires_setup"},{id:"stability",displayName:"Stability AI",category:"image",connectionTypes:["api_key"],defaultAdapter:"http_stability",baseUrl:"https://api.stability.ai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"elevenlabs",displayName:"ElevenLabs",category:"audio",connectionTypes:["api_key"],defaultAdapter:"http_elevenlabs",baseUrl:"https://api.elevenlabs.io/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"available",notes:"TTS / voice."},{id:"voyage",displayName:"Voyage AI",category:"embedding",connectionTypes:["api_key"],defaultAdapter:"http_voyage",baseUrl:"https://api.voyageai.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"jina",displayName:"Jina AI",category:"embedding",connectionTypes:["api_key"],defaultAdapter:"http_jina",baseUrl:"https://api.jina.ai/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"runpod",displayName:"RunPod",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_runpod",baseUrl:"https://api.runpod.ai/v2",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"lambda",displayName:"Lambda Labs",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_lambda",baseUrl:"https://api.lambdalabs.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"modal",displayName:"Modal",category:"cloud_api",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"http_modal",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"baseten",displayName:"Baseten",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_baseten",baseUrl:"https://inference.baseten.co/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"openrouter",displayName:"OpenRouter",category:"router",connectionTypes:["api_key","oauth"],defaultAdapter:"http_openrouter",baseUrl:"https://openrouter.ai/api/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Aggregates 300+ models across providers — full live list."},{id:"omnirouter",displayName:"OmniRouter",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_omnirouter",baseUrl:"https://api.omnirouter.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental",notes:"OpenAI-compatible multi-provider router."},{id:"litellm",displayName:"LiteLLM",category:"openai_compatible",connectionTypes:["api_key","openai_compatible","custom_endpoint"],defaultAdapter:"http_litellm",baseUrl:"http://localhost:4000",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Self-hosted proxy; unifies 100+ providers."},{id:"portkey",displayName:"Portkey",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_portkey",baseUrl:"https://api.portkey.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Gateway with virtual keys."},{id:"helicone",displayName:"Helicone",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_helicone",baseUrl:"https://oai.helicone.ai/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental",notes:"Observability proxy in front of OpenAI-compatible providers."},{id:"openai_compatible",displayName:"OpenAI-compatible endpoint",category:"openai_compatible",connectionTypes:["openai_compatible","api_key","custom_endpoint"],defaultAdapter:"http_openai_compat",baseUrl:"https://",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Any server exposing /v1/chat/completions + /v1/models."},{id:"lmstudio_server",displayName:"LM Studio (OpenAI server)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:1234/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"Local OpenAI-compatible server from LM Studio."},{id:"ollama_openai",displayName:"Ollama (OpenAI endpoint)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:11434/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Ollama's OpenAI-compatible surface."},{id:"vllm_server",displayName:"vLLM (OpenAI server)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8000/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"High-throughput self-hosted serving."},{id:"tgi",displayName:"Text Generation Inference",category:"openai_compatible",connectionTypes:["openai_compatible","local","custom_endpoint"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8080/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental",notes:"HF TGI with OpenAI route."},{id:"localai",displayName:"LocalAI",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8080/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"Drop-in OpenAI replacement, fully local."},{id:"azure_openai",displayName:"Azure OpenAI",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_azure_openai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"requires_setup"},{id:"aws_bedrock",displayName:"AWS Bedrock",category:"cloud_platform",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"sdk_bedrock",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"requires_setup",notes:"SigV4 auth; multi-vendor models."},{id:"vertex_ai",displayName:"Google Vertex AI",category:"cloud_platform",connectionTypes:["oauth","api_key"],defaultAdapter:"sdk_vertex",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"requires_setup",notes:"GCP service-account / ADC."},{id:"cloudflare",displayName:"Cloudflare Workers AI",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_cloudflare",baseUrl:"https://api.cloudflare.com/client/v4",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"oci_genai",displayName:"Oracle OCI Generative AI",category:"cloud_platform",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"sdk_oci",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"OCI SDK signing — adapter pending."},{id:"watsonx",displayName:"IBM watsonx",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_watsonx",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"requires_setup"},{id:"dashscope",displayName:"Alibaba DashScope / Qwen",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_dashscope",baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"experimental",notes:"Qwen models, OpenAI-compatible mode."},{id:"qianfan",displayName:"Baidu Qianfan",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_qianfan",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"planned",notes:"ERNIE; access-token auth — adapter pending."},{id:"hunyuan",displayName:"Tencent Hunyuan",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_hunyuan",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"TC3-HMAC signing — adapter pending."},{id:"zhipu",displayName:"Zhipu AI (GLM)",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_zhipu",baseUrl:"https://open.bigmodel.cn/api/paas/v4",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"experimental"},{id:"moonshot",displayName:"Moonshot AI / Kimi",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_moonshot",baseUrl:"https://api.moonshot.cn/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenAI-compatible; long context."},{id:"minimax",displayName:"MiniMax",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_minimax",baseUrl:"https://api.minimax.chat/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Group-id + key auth — adapter pending."},{id:"ollama",displayName:"Ollama",category:"local_runtime",connectionTypes:["local","cli"],defaultAdapter:"local_ollama",baseUrl:"http://localhost:11434",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"Pulls + serves local models; live /api/tags list."},{id:"llamacpp",displayName:"llama.cpp",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_llamacpp",baseUrl:"http://127.0.0.1:8082",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"GGUF models, SHA-256 verified, bound to 127.0.0.1."},{id:"lmstudio",displayName:"LM Studio",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_lmstudio",baseUrl:"http://localhost:1234",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsVision:!0,status:"available",notes:"Desktop runtime + local server."},{id:"vllm",displayName:"vLLM",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_vllm",baseUrl:"http://localhost:8000",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"GPU serving engine."},{id:"localai_rt",displayName:"LocalAI",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_localai",baseUrl:"http://localhost:8080",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available"},{id:"gpt4all",displayName:"GPT4All",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_gpt4all",baseUrl:"http://localhost:4891/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"koboldcpp",displayName:"KoboldCpp",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_kobold",baseUrl:"http://localhost:5001",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"jan",displayName:"Jan",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_jan",baseUrl:"http://localhost:1337/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"anythingllm",displayName:"AnythingLLM (local)",category:"local_runtime",connectionTypes:["local","api_key"],defaultAdapter:"local_anythingllm",baseUrl:"http://localhost:3001/api",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Workspace API — adapter pending."},{id:"openwebui",displayName:"Open WebUI (backend)",category:"local_runtime",connectionTypes:["local","openai_compatible"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:3000/api",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"claude_code",displayName:"Claude Code",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_claude_code",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"available",notes:"Drives the local Claude Code CLI / agent."},{id:"codex_cli",displayName:"Codex CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_codex",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenAI Codex CLI agent."},{id:"openclaw",displayName:"OpenClaw",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_openclaw",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenClaw CLI — headless `openclaw infer model run --json` (provider-routed). No token/cost reported."},{id:"hermes_cli",displayName:"Hermes (Nous Research)",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_hermes",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Hermes agent CLI — headless `hermes -z`. Configure providers via `hermes model`."},{id:"gemini_cli",displayName:"Gemini CLI",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_gemini",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"experimental"},{id:"aider",displayName:"Aider",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_aider",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `aider --message --yes-always`; provider-routed via its own env keys. Model list from `aider --list-models`. No token/cost reported."},{id:"opencode",displayName:"OpenCode",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_opencode",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `opencode run`; providers via `opencode auth login`. Model list from `opencode models`. No token/cost reported."},{id:"copilot_cli",displayName:"GitHub Copilot CLI",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_copilot",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"experimental",notes:"Headless `copilot -p --allow-all-tools`; sign in with the Copilot CLI. No token/cost reported."},{id:"cursor_cli",displayName:"Cursor CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_cursor",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `cursor-agent -p --output-format json`; sign in via `cursor-agent login`. `-p` can hang → bounded timeout. No token/cost reported."},{id:"cline_cli",displayName:"Cline CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_cline",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `cline --json -y`; provider-routed via its own config. No token/cost reported."},{id:"kilo_code",displayName:"Kilo Code CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_kilo",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `kilocode --yes`; provider-routed via its own config. No token/cost reported."},{id:"openai_cli",displayName:"OpenAI CLI",category:"cli",connectionTypes:["cli","api_key"],defaultAdapter:"cli_openai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Thin CLI over the API — adapter pending."},{id:"ollama_cli",displayName:"Ollama CLI",category:"cli",connectionTypes:["cli","local"],defaultAdapter:"cli_ollama",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"`ollama run/list` driven."},{id:"custom_cli",displayName:"Custom CLI provider",category:"cli",connectionTypes:["cli","custom_endpoint"],defaultAdapter:"cli_custom",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,status:"requires_setup",notes:"Define your own command + arg template."}].map(a=>[a.id,a])),e=a=>d[a]}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6431,exports.ids=[6431,7336],exports.modules={4719:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(62060).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},5323:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(61576),e=c(1308),f=c(4719);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}},25228:(a,b,c)=>{c.d(b,{e:()=>e});var d=c(61576);function e({name:a,color:b,size:c=24,health:f,image:g}){let h=Math.max(6,Math.round(.3*c)),i=Math.round(.28*c),j=g?/^(data:|https?:|\/)/.test(g)?g:`/api/upload?path=${encodeURIComponent(g)}`:null;return(0,d.jsxs)("span",{style:{position:"relative",width:c,height:c,flex:`0 0 ${c}px`,display:"inline-block"},children:[j?(0,d.jsx)("img",{src:j,alt:a,width:c,height:c,style:{width:c,height:c,borderRadius:i,objectFit:"cover",display:"block"}}):(0,d.jsx)("span",{style:{width:c,height:c,borderRadius:i,background:b,color:"#fff",display:"grid",placeItems:"center",fontSize:Math.round(.42*c),fontWeight:700},children:(a[0]||"?").toUpperCase()}),f&&(0,d.jsx)("span",{style:{position:"absolute",right:-1,bottom:-1,width:h,height:h,borderRadius:"50%",background:"alive"===f?"var(--sx-string)":"stale"===f?"var(--sx-number)":"var(--text-faint)",border:"1.5px solid var(--bg-elevated)"}})]})}},47336:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(30043);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},51221:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(4374),e=c(43526),f=c(48442),g=c(31819);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},52932:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(6866),e=c(53993),f=c(30043),g=c(64567),h=c(30170);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(47336),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(57086);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(97603),t=c(65705),u=c(1890),v=c(10245);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(74252).D)([x,y,z,A,B]),(0,d.A)(x,"40aca5e636733f4a71e30c5ee0da0e058892463f10",null),(0,d.A)(y,"40c4dec4c26a6ed0bdf72098c743c4c2cb18ed1cd1",null),(0,d.A)(z,"00f52218f5d83e696e1dc0d0c5d065efe7965bf187",null),(0,d.A)(A,"00a23e99d4e912da3ad1b266a22b1a141df6bc8b94",null),(0,d.A)(B,"001e9ef8a66d3ec2113043b24ab8849578169f7b7f",null)},64567:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},67949:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(79676),e=c(75785);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6658,exports.ids=[6658],exports.modules={7856:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},36658:(a,b,c)=>{c.d(b,{BunSqliteDialect:()=>n});var d=c(7856),e=c(6228),f=c(80185),g=c(24607),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columnNames.length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6706,exports.ids=[6706],exports.modules={7856:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},26706:(a,b,c)=>{c.d(b,{NodeSqliteDialect:()=>n});var d=c(7856),e=c(6228),f=c(80185),g=c(24607),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columns().length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=683,exports.ids=[683],exports.modules={683:(a,b,c)=>{c.d(b,{NodeSqliteDialect:()=>n});var d=c(16775),e=c(99408),f=c(37906),g=c(88183),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columns().length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}},16775:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6873,exports.ids=[6873],exports.modules={6873:(a,b,c)=>{c.d(b,{IT:()=>t,AQ:()=>s,Cg:()=>o,qg:()=>p,et:()=>u,BC:()=>r});var d=c(73024),e=c(76760),f=c(28430);let g={TypeScript:"typescript",JavaScript:"javascript",Python:"python",Go:"go",Rust:"rust",Java:"java",Kotlin:"kotlin","C#":"csharp",Ruby:"ruby",PHP:"php",Elixir:"elixir",Swift:"swift","C++":"cpp",Scala:"scala",Dart:"dart",C:"c",Clojure:"clojure",Haskell:"haskell",Lua:"lua","Objective-C":"objectivec",Erlang:"erlang","Node.js":"node",Bun:"bun",Deno:"deno","Python 3":"python3",PyPy:"pypy",JVM:"jvm",".NET":"dotnet","BEAM (Erlang VM)":"beam",React:"react",Vue:"vue",Svelte:"svelte",Angular:"angular",SolidJS:"solidjs",Preact:"preact",Qwik:"qwik",Lit:"lit","Alpine.js":"alpine","Next.js":"nextjs",Nuxt:"nuxt",Remix:"remix",SvelteKit:"sveltekit",Astro:"astro",Gatsby:"gatsby","Vite (SPA)":"vite",NestJS:"nestjs",Fastify:"fastify",Express:"express",Hono:"hono",Koa:"koa",Django:"django",Flask:"flask",FastAPI:"fastapi","Spring Boot":"spring-boot",Spring:"spring",Laravel:"laravel",Symfony:"symfony","Ruby on Rails":"rails",Gin:"gin",Fiber:"fiber",Actix:"actix",Phoenix:"phoenix","ASP.NET Core":"aspnet-core",AdonisJS:"adonisjs","React Native":"react-native",Flutter:"flutter",PostgreSQL:"postgresql",MySQL:"mysql",MariaDB:"mariadb",SQLite:"sqlite",MongoDB:"mongodb",Redis:"redis",Supabase:"supabase",Prisma:"prisma",Drizzle:"drizzle",TypeORM:"typeorm",Sequelize:"sequelize",SQLAlchemy:"sqlalchemy","Django ORM":"django-orm",Mongoose:"mongoose",GORM:"gorm","Tailwind CSS":"tailwind","CSS Modules":"css-modules","styled-components":"styled-components",Sass:"sass",Jest:"jest",Vitest:"vitest",Cypress:"cypress",Playwright:"playwright",Docker:"docker",Podman:"podman",BullMQ:"bullmq",RabbitMQ:"rabbitmq",Kafka:"kafka",Celery:"celery","Auth.js":"authjs",Keycloak:"keycloak",R:"r",Ember:"ember",Backbone:"backbone",Hugo:"hugo",Jekyll:"jekyll",Eleventy:"eleventy",Docusaurus:"docusaurus",CodeIgniter:"codeigniter",GraphQL:"graphql",Nginx:"nginx",Android:"android",Ionic:"ionic",Xamarin:"xamarin",NativeScript:"nativescript",Bootstrap:"bootstrap",Bulma:"bulma",Vuetify:"vuetify",Selenium:"selenium",Mocha:"mocha",Jasmine:"jasmine",Puppeteer:"puppeteer",TensorFlow:"tensorflow",PyTorch:"pytorch","scikit-learn":"scikit-learn",Keras:"keras",Pandas:"pandas",NumPy:"numpy",Jupyter:"jupyter",D3:"d3","Chart.js":"chart-js",Grafana:"grafana",Plotly:"plotly",Azure:"azure",Jenkins:"jenkins",CircleCI:"circleci",Terraform:"terraform",Ansible:"ansible",Vagrant:"vagrant",Firebase:"firebase",Appwrite:"appwrite",Amplify:"amplify",Heroku:"heroku"},h=[{match:/\bceo\b|chief exec/i,profile:{stackPrefixes:[],allPrefixes:["process/","design/","front-end/","engineering/architecture/"],core:["app-planning","requirements-to-specs","specs-to-issues","architecture-before-code"]}},{match:/product owner|\bpo\b|product manager/i,profile:{stackPrefixes:[],allPrefixes:["process/"],core:["product-discovery","requirements-to-specs","specs-to-issues","prioritization-moscow-rice"]}},{match:/\bcto\b|chief tech|tech lead|architect/i,profile:{stackPrefixes:["stacks/"],allPrefixes:["engineering/architecture/","engineering/security/","engineering/performance/","process/architecture-before-code","process/adr-technical-decisions"],core:["system-design-fundamentals","software-architecture-patterns","architecture-before-code","api-design-rest-graphql"]}},{match:/front\s?end|\bui\b|\bux\b|web designer/i,profile:{stackPrefixes:["stacks/frontend/","stacks/styling/","stacks/meta/","stacks/mobile/","stacks/testing/"],allPrefixes:["design/","front-end/","engineering/frontend/","engineering/performance/web-performance-core-vitals"],core:["design-systems","ui-ux-principles","responsive-layout","color-and-typography","accessibility-wcag"]}},{match:/back\s?end|server|\bapi\b/i,profile:{stackPrefixes:["stacks/backend/","stacks/database/","stacks/orm/","stacks/queue/","stacks/runtime/","stacks/baas/","stacks/auth/"],allPrefixes:["engineering/backend/","engineering/architecture/","engineering/performance/"],core:["backend-fundamentals","api-design-rest-graphql","data-modeling","auth-and-authorization"]}},{match:/cyber\s?sec|security|appsec|\bsec\b/i,profile:{stackPrefixes:["stacks/auth/"],allPrefixes:["engineering/security/","process/security-by-design","process/review-code-perf-security"],core:["owasp-top-10","owasp-asvs","secrets-management","secure-auth-sessions"]}},{match:/\bqa\b|quality|test/i,profile:{stackPrefixes:["stacks/testing/"],allPrefixes:["engineering/testing/","process/testing-before-done"],core:["testing-strategy-pyramid","tdd-and-coverage","unit-integration-e2e"]}},{match:/devops|\bops\b|infra|platform|sre|deploy/i,profile:{stackPrefixes:["stacks/infra/","stacks/container/","stacks/runtime/"],allPrefixes:["engineering/architecture/scalability-reliability","engineering/security/secrets-management"],core:["scalability-reliability","secrets-management"]}},{match:/\bdocs?\b|documentation|technical writer/i,profile:{stackPrefixes:["stacks/"],allPrefixes:["process/readme-generation"],core:["readme-generation"]}}],i={stackPrefixes:["stacks/"],allPrefixes:["process/","engineering/practices/"],core:[]};var j=c(85509);function k(){let a=[process.env.CONSTELLA_PKG_ROOT,(0,f.v)(),process.cwd()].filter(Boolean).map(a=>(0,e.join)(a,"skills"));for(let b of a)try{if((0,d.statSync)(b).isDirectory())return b}catch{}return a[0]??(0,e.join)((0,f.v)(),"skills")}function l(a,b){let c=a.match(RegExp(`^${b}:\\s*(.+)$`,"m"));return c?c[1].trim().replace(/^["']|["']$/g,"").trim():""}function m(a,b){let c=a.match(RegExp(`(?:^|\\n)${b}:\\s*\\n([\\s\\S]*?)(?=\\n\\S|$)`));return c?c[1].split("\n").map(a=>a.match(/^\s*-\s+(.+?)\s*$/)?.[1]?.replace(/^["']|["']$/g,"").trim()).filter(a=>!!a):[]}let n=null;function o(){if(n)return n;let a=k(),b=new Map;try{(0,d.statSync)(a).isDirectory()&&function c(f,g){let h;if(!(g>8)){try{h=(0,d.readdirSync)(f,{withFileTypes:!0})}catch{return}for(let i of h){let h=(0,e.join)(f,i.name);if(i.isDirectory()){c(h,g+1);continue}if("SKILL.md"!==i.name)continue;let j="";try{j=(0,d.readFileSync)(h,"utf8")}catch{continue}let k=j.match(/^---\n([\s\S]*?)\n---/),n=k?.[1]??"",o=h.split(/[\\/]/).slice(-2,-1)[0]||l(n,"name");if(!o||b.has(o))continue;let p=h.slice(a.length).replace(/^[\\/]+/,"").replace(/\\/g,"/");b.set(o,{name:o,relPath:p,description:l(n,"description")||`${o} skill.`,domain:l(n,"domain")||p.split("/")[0]||"",category:l(n,"category")||"",sources:m(n,"official_sources"),tags:function(a,b){let c=a.match(RegExp(`^${b}:\\s*\\[(.*?)\\]\\s*$`,"m"));return c?c[1].split(",").map(a=>a.trim().replace(/^["']|["']$/g,"")).filter(Boolean):m(a,b)}(n,"tags")})}}}(a,0)}catch{}return n=b,b}function p(a){let b=o().get(a)??null;if(!b)return null;try{return(0,d.readFileSync)((0,e.join)(k(),b.relPath),"utf8")}catch{return null}}let q=["clean-code","git-workflow","code-review-practices","refactoring","code-optimization","owasp-top-10","secrets-management","appsec-fundamentals","testing-strategy-pyramid","tdd-and-coverage","unit-integration-e2e","ui-ux-principles","responsive-layout","accessibility-wcag","architecture-before-code","requirements-to-specs","specs-to-issues","testing-before-done","security-by-design","review-code-perf-security","research-official-docs","authoring-agent-skills","readme-generation"];function r(a){return a.replace(/^---\n[\s\S]*?\n---\n?/,"").trim()}function s(a){let b=o(),c=[...q];for(let b of Object.values(a??{}))for(let a of(0,j.jX)(b)){let b=g[a];b&&c.push(b)}return[...new Set(c)].filter(a=>b.has(a))}function t(a,b){let c=o(),d=function(a){let b=(a??"").trim();for(let a of h)if(a.match.test(b))return a.profile;return i}(b),e=new Set(s(a)),f=new Set(d.core.filter(a=>c.has(a)));for(let[a,b]of c)d.stackPrefixes.some(a=>b.relPath.startsWith(a))&&e.has(a)&&f.add(a);return[...f]}function u(a){let b=o(),c=new Set;for(let d of s(a))for(let a of b.get(d)?.sources??[])try{c.add(new URL(a).host.toLowerCase())}catch{}return[...c]}},85509:(a,b,c)=>{c.d(b,{jX:()=>d});function d(a){return a?a.split(",").map(a=>a.trim()).filter(Boolean):[]}}};
@@ -1,4 +0,0 @@
1
- "use strict";exports.id=7225,exports.ids=[7225,7336],exports.modules={4719:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(62060).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},5323:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(61576),e=c(1308),f=c(4719);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}},26787:(a,b,c)=>{c.r(b),c.d(b,{"0009ce734653f91e0152ed870ffea99c48e8be1273":()=>j.f,"0018beb06b15d253498af2e1d83c7efb58ba1235f1":()=>j.O,"001e9ef8a66d3ec2113043b24ab8849578169f7b7f":()=>y.eU,"0030de7d84721074ca2c38fb96d3e99e7adbe2b115":()=>e.y_,"004502b97d8e3fe943f13c3b5ade91831b1f1e77aa":()=>d.bt,"0045398aceb661eaa7517a21a9c934e25c61817872":()=>i.V,"006719bab2c5093e448a5b60a38be68998349f13c8":()=>k.io,"00716b109ea97d20c9f19b65b246d9ef7ef16cbddf":()=>h.x7,"0083b5532945c137cd38a880d23dc3459bf06a26dd":()=>x,"0083d8bd1fd660d07c4a32afdfbaf0d4ce78f74b81":()=>k.dj,"008623b8f1ea7a05b1a03f35024e64deff3c76f40f":()=>k.eg,"00a23e99d4e912da3ad1b266a22b1a141df6bc8b94":()=>y.PG,"00a77165f7dac9a25c366aaf49ac70c5ed0cb6a63d":()=>h.Mp,"00a782e5d3c8dd68f47e067a435acd0c8fe0089219":()=>e.PE,"00a8998940c2cf6566eea709d291cf65481f19b54b":()=>e.GK,"00ab9927a86440472b5cf26fdd4def0f285a68079c":()=>e.KO,"00ad3ff5b743f7808199b27e76248692706b96f718":()=>d.xU,"00f52218f5d83e696e1dc0d0c5d065efe7965bf187":()=>y.pM,"40167414a2e3f5a222b12781ff743cf8b6ee9ad2c6":()=>g.p,"4017b268da6934678c723b13073665577f1ce75125":()=>d.VL,"40196d281dfd92714d0ecb5e9aba74dea1bee6bc80":()=>d.rd,"4022a1ccf1ac607c0265da4f487775990a4b8caded":()=>h.lR,"402e9c60aa3c6a6a0e19a64a54ffb83bac076adb9c":()=>i.F,"402fdcfeddf17de5709d551eccb08d8356339ea521":()=>k.De,"40337f5cf82830e51248818527fcc51ef672eb9a3e":()=>d.Wu,"4037371c47b3e43e6b878942db9705b7d9c6962e8a":()=>d.H7,"4063c93f1ee771828f6137bb585d64b60ae5977ed5":()=>e.jc,"4065b972fc53cae281adf85572f2891eab399b9ff9":()=>i.E_,"406ea9546f1236fb07b7a24e792f794a0bbfb38d1b":()=>h.sE,"407582551cfcbf2ac958cbe9bb798c5ab9b4596935":()=>e.RG,"408cb072e3f25c139043774855c69d936ddfb60fd8":()=>i.VJ,"408ccd7908d2b134a54b0e8d4b0d16b030de6e0632":()=>d.gg,"409578e833742438f85eca112f74f4d631356f1cf7":()=>e.lJ,"409af259de44b27f92082eefeb0efe223bff8594fa":()=>g.L,"409ea47becd1f3f5c10a03dfe397bddcea7c125f30":()=>e.S,"40a067d42212349997f6b7b49b9b48eb75e87fe55a":()=>m.y,"40aca5e636733f4a71e30c5ee0da0e058892463f10":()=>y.Kg,"40afa32b6c37457e72bff11c25b8cb3acfad4e3d2d":()=>d.GW,"40bf46adf5ba85892bebf71f92748ed2bcbfecf292":()=>e.ey,"40c4dec4c26a6ed0bdf72098c743c4c2cb18ed1cd1":()=>y.lP,"40c85820def5803f3a9d54d933eb918b15d90b838a":()=>e.r7,"40ef945934daa47611bdb93b4cbc8906eb0f5ad253":()=>l.IL,"40f10406b426a9c38439a687284a721ddbf811f921":()=>i.zS,"40f7b5622fafa7f742d8cc68158fcbfd9b1ce99871":()=>l.q4,"40f7fd7992a8b9392597609349e63fb2460027c08a":()=>l.TX,"602483e14c0bdc4b5eb30468c3ef23b28e28b0df97":()=>e.q$,"604b3f96e4b0483edec3ec9f2f6daeac4fcdc8bbb1":()=>e.AA,"606af24aba1c9b79ec8a417abc29b49313f2de6b86":()=>l.Jp,"60736041a12fa374b1b47fa833b667d9d2d0997de2":()=>l.bk,"60761f3f2a77c81adf9da9b9d32b82e6d23912ccb9":()=>d.Fu,"608b2ddb7f4b98eb35892f6d78ac9b43ff2b5f3d81":()=>w,"6095694ef9c93f4af4573c8b78ab38c64e22c7215f":()=>l.bV,"60a238957762b5625582695c05d90f75b394483f2c":()=>f.I,"60b2447c6f65739ea8d93d715725c1f01851420aff":()=>e.LZ,"60b839ac7ca9a330595b14f8e699f9d128893bea16":()=>d.ME,"60bdbc934306dcff3e399beddf0cac16ca1290c000":()=>d.rm,"60da28e0e8059b61b3e22ba0d80a0bc367b5f79ae2":()=>d.n4,"60dba9908002f3000f3e7e8a0a7750d94f4e462c3d":()=>f.k,"60f9632ed57030592852ca206eb7d314c4bd1c4650":()=>d.jw,"705bb57bae647e5b0983590ed14a5926a22e285733":()=>d._z,"70c7731b108f014faf75e2ba778682d83c81ad6646":()=>e.M8});var d=c(97140),e=c(15487),f=c(79505),g=c(51605),h=c(46363),i=c(46282),j=c(387),k=c(13604),l=c(7482),m=c(58169),n=c(6866),o=c(77598),p=c(97603),q=c(65705),r=c(1890),s=c(53993),t=c(83963),u=c(70149),v=c(24701);async function w(a,b){let{org:c,workspace:d}=await (0,s.nP)(),[e]=await q.db.select().from(r.docIndex).where((0,p.Uo)((0,p.eq)(r.docIndex.id,a),(0,p.eq)(r.docIndex.workspaceId,d.id)));return e?(await (0,t.g)(c.id,e.path,b),{ok:!0}):{ok:!1}}async function x(){let{org:a,workspace:b}=await (0,s.nP)(),c=await q.db.select().from(r.agent).where((0,p.eq)(r.agent.workspaceId,b.id)),d=c.find(a=>"barbara"===a.handle)??c.find(a=>/docs|writer/i.test(a.role))??c[0];if(!d)return{ok:!1,error:"no docs agent"};let e=(0,u.hW)(d.adapter,d.model),f="claude"===e?d.model.includes("opus")?"opus":d.model.includes("haiku")?"haiku":"sonnet":void 0,g=`You are ${d.name} (@${d.handle}), ${d.role} at ${b.name}.
2
- Review the current state of this workspace directory (code, specs, structure) and write or refresh a single piece of project documentation in GitHub-flavoured Markdown.
3
- Begin with one H1 title line. Cover what exists, how it is organised, and how to work with it. Be specific and truthful — describe only what the files actually show; do not invent features.
4
- Output ONLY the Markdown document (no code fences).`,h=await (0,u.JN)(g,{orgId:a.id,binary:e,model:f,timeoutMs:24e4});(h.usd>0||h.inputTokens+h.outputTokens>0)&&await q.db.insert(r.costEntry).values({id:(0,o.randomUUID)(),workspaceId:b.id,agentId:d.id,provider:h.binary,model:h.model??d.model,usd:h.usd,tokens:h.inputTokens+h.outputTokens,at:new Date});let i=h.text.trim();if(!h.ok||!i)return await (0,v.I)(b.id,{kind:"info",text:"Docs generation failed",detail:(h.error??"no output").slice(0,300),agentId:d.id}),{ok:!1,error:h.error};let j=(i.split("\n").find(a=>a.trim())??"Documentation").replace(/^#+\s*/,"").slice(0,120)||"Documentation",k=j.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,60)||"doc",l=`DOCS/${k}.md`;return await (0,t.g)(a.id,l,i),await (0,v.I)(b.id,{kind:"done",text:`${d.name} updated the docs: ${j}`,detail:`Saved to ${l}`,agentId:d.id}),{ok:!0,path:l}}(0,c(74252).D)([w,x]),(0,n.A)(w,"608b2ddb7f4b98eb35892f6d78ac9b43ff2b5f3d81",null),(0,n.A)(x,"0083b5532945c137cd38a880d23dc3459bf06a26dd",null);var y=c(52932)},47336:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(30043);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},51221:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(4374),e=c(43526),f=c(48442),g=c(31819);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},52932:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(6866),e=c(53993),f=c(30043),g=c(64567),h=c(30170);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(47336),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(57086);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(97603),t=c(65705),u=c(1890),v=c(10245);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(74252).D)([x,y,z,A,B]),(0,d.A)(x,"40aca5e636733f4a71e30c5ee0da0e058892463f10",null),(0,d.A)(y,"40c4dec4c26a6ed0bdf72098c743c4c2cb18ed1cd1",null),(0,d.A)(z,"00f52218f5d83e696e1dc0d0c5d065efe7965bf187",null),(0,d.A)(A,"00a23e99d4e912da3ad1b266a22b1a141df6bc8b94",null),(0,d.A)(B,"001e9ef8a66d3ec2113043b24ab8849578169f7b7f",null)},64567:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},67949:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(79676),e=c(75785);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}}};
@@ -1,17 +0,0 @@
1
- "use strict";exports.id=73,exports.ids=[73],exports.modules={19881:(a,b,c)=>{c.d(b,{W:()=>h});var d=c(4374),e=c(74679);let f={anthropic:"anthropic",claude_code:"claude",openai:"openai",codex_cli:"openai",google:"google",google_gemini:"gemini",gemini_cli:"gemini",vertex_ai:"vertexai",mistral:"mistral",deepseek:"deepseek",cohere:"cohere",perplexity:"perplexity",xai_grok:"grok",groq:"groq",ai21:"ai21",nvidia_nim:"nvidia",huggingface:"huggingface",replicate:"replicate",azure_openai:"azure",aws_bedrock:"bedrock",cloudflare:"cloudflare",dashscope:"qwen",zhipu:"zhipu",moonshot:"moonshot",minimax:"minimax",together:"together",openrouter:"openrouter",fireworks:"fireworks",cerebras:"cerebras",ollama:"ollama",ollama_cli:"ollama",lmstudio:"lmstudio",vllm:"vllm",localai:"localai",elevenlabs:"elevenlabs",stability:"stability",jina:"jina",voyage:"voyage"},g={anthropic:["#d97757","An"],openai:["#10a37f","AI"],google_gemini:["#4285f4","G"],google:["#4285f4","G"],mistral:["#fa520f","Mi"],xai_grok:["#1a1a1a","X"],deepseek:["#4d6bfe","DS"],cohere:["#39594d","Co"],ai21:["#e8488a","A2"],perplexity:["#20808d","Px"],groq:["#f55036","Gq"],nvidia_nim:["#76b900","NV"],together:["#0f6fff","To"],fireworks:["#5019c5","Fw"],cerebras:["#f25733","Cb"],huggingface:["#ff9d00","HF"],replicate:["#1a1a1a","Rp"],openrouter:["#6566f1","OR"],litellm:["#00b8a3","LL"],portkey:["#3b5bdb","Pk"],azure_openai:["#0078d4","Az"],aws_bedrock:["#ff9900","Br"],vertex_ai:["#4285f4","Vx"],cloudflare:["#f38020","Cf"],dashscope:["#ff6a00","Qw"],zhipu:["#3859ff","GL"],moonshot:["#16162a","Ki"],minimax:["#e1342c","MM"],ollama:["#0c0c0c","Ol"],llamacpp:["#7a4ddb","Lc"],lmstudio:["#4a5cff","LM"],vllm:["#1668dc","vL"],localai:["#2e7d32","La"],gpt4all:["#5b6cff","G4"],jan:["#1a1a1a","Jn"],claude_code:["#d97757","CC"],codex_cli:["#10a37f","Cx"],gemini_cli:["#4285f4","Gc"],aider:["#14b8a6","Ad"],ollama_cli:["#0c0c0c","Oc"],openclaw:["#e8590c","OC"],hermes_cli:["#6d28d9","Hm"],opencode:["#1a1a1a","Oc"],copilot_cli:["#1f2328","Co"],cursor_cli:["#1a1a1a","Cu"],cline_cli:["#2563eb","Cl"],kilo_code:["#7c3aed","Ki"],voyage:["#5b21b6","Vo"],jina:["#ec4899","Ji"],stability:["#a855f7","St"],elevenlabs:["#1a1a1a","El"]};function h({id:a,size:b=34,radius:c}){let i,j=g[a],k=j?j[0]:"#5b6378",l=j?j[1]:(a||"?").slice(0,2).replace(/[^a-z0-9]/gi,"").toUpperCase(),m=(i=f[a])?`https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg/icons/${i}.svg`:null,[n,o]=(0,e.useState)(!1),p=null!=c?c:Math.round(.28*b),q=m&&!n,r=Math.round(.66*b);return(0,d.jsx)("span",{className:"prov-glyph",style:{width:b,height:b,flex:"0 0 "+b+"px",borderRadius:p,background:q?"#fff":"linear-gradient(150deg, "+k+", color-mix(in srgb, "+k+" 70%, #000))",color:"#fff",display:"grid",placeItems:"center",overflow:"hidden",fontSize:Math.round(.4*b),fontWeight:800,letterSpacing:"-.5px",boxShadow:q?"inset 0 0 0 1px rgba(0,0,0,.08)":"inset 0 1px 0 rgba(255,255,255,.18)"},children:q?(0,d.jsx)("img",{src:m,alt:"",width:r,height:r,loading:"lazy",onError:()=>o(!0),style:{width:r,height:r,objectFit:"contain",display:"block"}}):l})}},45758:(a,b,c)=>{c.d(b,{X6:()=>m,er:()=>l});var d=c(77598),e=c(1782),f=c(80280),g=c(25533);let h=!1;function i(){h||(h=!0,f.F.exec(`
2
- CREATE TABLE IF NOT EXISTS deploy_run (
3
- id TEXT PRIMARY KEY,
4
- workspace_id TEXT NOT NULL REFERENCES workspace(id) ON DELETE CASCADE,
5
- status TEXT NOT NULL DEFAULT 'idle',
6
- run_id TEXT NOT NULL DEFAULT '',
7
- steps TEXT NOT NULL DEFAULT '[]',
8
- summary TEXT NOT NULL DEFAULT '',
9
- build_log TEXT NOT NULL DEFAULT '',
10
- checklist TEXT NOT NULL DEFAULT '[]',
11
- last_export TEXT,
12
- started_at INTEGER,
13
- created_at INTEGER NOT NULL DEFAULT (unixepoch()),
14
- updated_at INTEGER NOT NULL DEFAULT (unixepoch())
15
- );
16
- CREATE UNIQUE INDEX IF NOT EXISTS deploy_run_ws_uq ON deploy_run (workspace_id);
17
- `))}function j(a,b){if(!a)return b;try{return JSON.parse(a)}catch{return b}}let k={status:"idle",runId:"",steps:[],summary:"",buildLog:"",checklist:[],lastExport:null,startedAt:null,updatedAt:0};async function l(a){i();let[b]=await f.db.select().from(g.deployRun).where((0,e.eq)(g.deployRun.workspaceId,a));return b?{status:b.status||"idle",runId:b.runId,steps:j(b.steps,[]),summary:b.summary,buildLog:b.buildLog,checklist:j(b.checklist,[]),lastExport:b.lastExport?j(b.lastExport,null):null,startedAt:b.startedAt?b.startedAt.getTime():null,updatedAt:b.updatedAt?b.updatedAt.getTime():0}:{...k}}async function m(a,b){i();let c={updatedAt:new Date};void 0!==b.status&&(c.status=b.status),void 0!==b.runId&&(c.runId=b.runId),void 0!==b.steps&&(c.steps=JSON.stringify(b.steps)),void 0!==b.summary&&(c.summary=b.summary),void 0!==b.buildLog&&(c.buildLog=b.buildLog),void 0!==b.checklist&&(c.checklist=JSON.stringify(b.checklist)),void 0!==b.lastExport&&(c.lastExport=null===b.lastExport?null:JSON.stringify(b.lastExport)),void 0!==b.startedAt&&(c.startedAt=null===b.startedAt?null:new Date(b.startedAt));let[h]=await f.db.select({id:g.deployRun.id}).from(g.deployRun).where((0,e.eq)(g.deployRun.workspaceId,a));h?await f.db.update(g.deployRun).set(c).where((0,e.eq)(g.deployRun.workspaceId,a)):await f.db.insert(g.deployRun).values({id:(0,d.randomUUID)(),workspaceId:a,...c})}},71898:(a,b,c)=>{c.d(b,{m:()=>i});var d=c(4374),e=c(74679),f=c(43526),g=c(19881),h=c(31819);function i({value:a,options:b,onChange:c,placeholder:j,mono:k,glyph:l,disabled:m,searchable:n}){let o=(0,h.k)(),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(""),t=(0,e.useRef)(null),u=(0,e.useRef)(null),v=(0,e.useMemo)(()=>(b||[]).map(a=>"string"==typeof a?{value:a,label:a}:a),[b]),w=v.find(b=>b.value===a),x=(n??v.length>8)&&!m,y=r.trim().toLowerCase(),z=x&&y?v.filter(a=>(a.label+" "+a.value+" "+(a.sub||"")).toLowerCase().includes(y)):v;return(0,d.jsxs)("div",{className:"dd"+(p?" open":"")+(m?" disabled":""),ref:t,children:[(0,d.jsxs)("button",{type:"button",className:"dd-btn"+(k?" mono":""),onClick:()=>!m&&q(a=>!a),children:[l&&w&&(0,d.jsx)(g.W,{id:w.glyphId||w.value,size:20}),(0,d.jsx)("span",{className:"dd-val",children:w?w.label:(0,d.jsx)("span",{className:"dd-ph",children:j||o("common.selectEllipsis")})}),(0,d.jsx)(f.I,{name:"chevronDown",size:14})]}),p&&(0,d.jsxs)("div",{className:"dd-menu scroll",children:[x&&(0,d.jsxs)("div",{style:{position:"sticky",top:0,zIndex:1,display:"flex",alignItems:"center",gap:6,padding:"6px 8px",margin:"-4px -4px 4px",background:"var(--bg-elev, var(--bg-active))",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)(f.I,{name:"search",size:13}),(0,d.jsx)("input",{ref:u,value:r,placeholder:o("common.searchEllipsis"),onChange:a=>s(a.target.value),onKeyDown:a=>{"Enter"===a.key&&z[0]?(c(z[0].value),q(!1)):"Escape"===a.key&&r&&(a.stopPropagation(),s(""))},className:k?"mono":void 0,style:{flex:1,minWidth:0,background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12.5,fontFamily:k?"var(--mono-font)":"inherit"}}),r&&(0,d.jsx)("button",{type:"button",title:o("common.clear"),onClick:()=>{s(""),u.current?.focus()},style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",display:"flex",padding:0},children:(0,d.jsx)(f.I,{name:"close",size:12})})]}),0===v.length&&(0,d.jsx)("div",{className:"dd-empty",children:o("common.noOptions")}),v.length>0&&0===z.length&&(0,d.jsx)("div",{className:"dd-empty",children:o("dropdown.noMatch",{q:r})}),z.map(b=>(0,d.jsxs)("button",{type:"button",className:"dd-opt"+(b.value===a?" on":""),onClick:()=>{c(b.value),q(!1)},children:[l&&(0,d.jsx)(g.W,{id:b.glyphId||b.value,size:22}),(0,d.jsxs)("span",{className:"dd-opt-main",children:[(0,d.jsx)("span",{className:"dd-opt-label"+(k?" mono":""),children:b.label}),b.sub&&(0,d.jsx)("span",{className:"dd-opt-sub",children:b.sub})]}),b.tag&&(0,d.jsx)("span",{className:"dd-opt-tag",children:b.tag}),b.value===a&&(0,d.jsx)(f.I,{name:"check",size:13})]},b.value))]})]})}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7514,exports.ids=[7514],exports.modules={7856:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},47514:(a,b,c)=>{c.d(b,{D1SqliteDialect:()=>l});var d=c(7856),e=c(57077),f=c(88891),g=class extends e.U{},h=class{#a;#b;constructor(a){this.#a={...a}}async init(){this.#b=new i(this.#a.database),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#b)}async acquireConnection(){return this.#b}async beginTransaction(){throw Error("D1 does not support interactive transactions. Use the D1 batch() API instead.")}async commitTransaction(){throw Error("D1 does not support interactive transactions. Use the D1 batch() API instead.")}async rollbackTransaction(){throw Error("D1 does not support interactive transactions. Use the D1 batch() API instead.")}async releaseConnection(){}async destroy(){}},i=class{#c;constructor(a){this.#c=a}async executeQuery(a){let b=await this.#c.prepare(a.sql).bind(...a.parameters).all(),c=null!=b.meta.changes?BigInt(b.meta.changes):void 0;return{insertId:void 0===b.meta.last_row_id||null===b.meta.last_row_id?void 0:BigInt(b.meta.last_row_id),rows:b?.results||[],numAffectedRows:c}}async *streamQuery(){throw Error("D1 does not support streaming queries.")}},j=class{#c;#d;constructor(a,b){this.#c=a,this.#d=b}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_master").where("type","in",["table","view"]).where("name","not like","sqlite_%").where("name","not like","_cf_%").select(["name","type","sql"]).$castTo();a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t));let c=await b.execute();if(0===c.length)return[];let e=c.map(a=>this.#d.prepare("SELECT * FROM pragma_table_info(?)").bind(a.name)),f=await this.#d.batch(e);return c.map((a,b)=>{let c=f[b]?.results??[],d=a.sql?.split(/[(),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.filter(Boolean)?.[0]?.replace(/["`]/g,"");if(!d){let a=c.filter(a=>a.pk>0),b=1===a.length?a[0]:void 0;b&&"integer"===b.type.toLowerCase()&&(d=b.name)}return{name:a.name,isView:"view"===a.type,isForeign:!1,columns:c.map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===d,hasDefaultValue:null!=a.dflt_value}))}})}},k=class extends f.s{},l=class{#a;constructor(a){this.#a={...a}}createDriver(){return new h(this.#a)}createQueryCompiler(){return new k}createAdapter(){return new g}createIntrospector(a){return new j(a,this.#a.database)}}}};
@@ -1,22 +0,0 @@
1
- "use strict";exports.id=7589,exports.ids=[7589],exports.modules={13002:(a,b,c)=>{c.d(b,{T1:()=>l,YL:()=>k,hP:()=>m});var d=c(83999),e=c(87414);let f={TypeScript:"js",JavaScript:"js",Python:"py",Go:"go",Rust:"rust",Java:"jvm",Kotlin:"jvm",Scala:"jvm","C#":"dotnet",Ruby:"ruby",PHP:"php",Elixir:"elixir",Swift:"other","C++":"other",Dart:"other"},g={"Node.js":"js",Bun:"js",Deno:"js","Python 3":"py",PyPy:"py",JVM:"jvm",".NET":"dotnet","BEAM (Erlang VM)":"elixir"},h={NestJS:"js",Fastify:"js",Express:"js",Hono:"js",Koa:"js",AdonisJS:"js",Django:"py",Flask:"py",FastAPI:"py","Spring Boot":"jvm",Spring:"jvm",Laravel:"php",Symfony:"php",CodeIgniter:"php","Ruby on Rails":"ruby",Gin:"go",Fiber:"go",Actix:"rust",Phoenix:"elixir","ASP.NET Core":"dotnet"},i={Prisma:"js",Drizzle:"js",TypeORM:"js",Sequelize:"js",Knex:"js",Mongoose:"js",SQLAlchemy:"py","Django ORM":"py",GORM:"go",Diesel:"rust"},j={js:"JavaScript/TypeScript",py:"Python",jvm:"JVM",dotnet:".NET",go:"Go",rust:"Rust",php:"PHP",ruby:"Ruby",elixir:"Elixir",other:"this"};function k(a,b,c){let e=f[(0,d.BT)(a.language)],k=(0,d.jX)(a.database),l=(0,d.jX)(a.backend);if("runtime"===b){let a=g[c];if(e&&a&&a!==e)return`Needs a ${j[a]} language`}if("backend"===b){let a=h[c];if(e&&a&&a!==e)return`Requires a ${j[a]} language`}if("orm"===b){let a=i[c];if(e&&a&&a!==e)return`${j[a]} only`;if("Mongoose"===c&&k.length>0&&!k.includes("MongoDB"))return"Mongoose needs MongoDB";if("Django ORM"===c&&!l.includes("Django"))return"Only with Django";if(l.includes("Django")&&"Django ORM"!==c&&"None"!==c)return"Django already ships its own ORM"}return null}function l(a){let b={...a},c=[],f=!0,g=0;for(;f&&g++<20;)for(let a of(f=!1,e.z)){let e=(0,d.jX)(b[a.key]);if(!e.length)continue;let g=[];for(let d of e){let e="None"===d?null:k(b,a.key,d);e?(c.push({cat:a.key,opt:d,reason:e}),f=!0):g.push(d)}g.length!==e.length&&(b={...b,[a.key]:(0,d.He)(g)})}return{stack:b,removed:c}}function m(a){let b=(0,d.jX)(a.orm).filter(a=>!["Django ORM","None"].includes(a));return(0,d.jX)(a.backend).includes("Django")&&b.length>0?`Django includes its own ORM — a second ORM (${b.join(", ")}) is usually redundant.`:null}},64567:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},65300:(a,b,c)=>{function d(a,b,c){let d=a.match(/^---\n([\s\S]*?)\n---/);if(!d)return a;let e=d[1].split("\n"),f=!1,g=e.map(a=>a.startsWith(b+":")?(f=!0,`${b}: ${c}`):a);return f||g.push(`${b}: ${c}`),a.replace(/^---\n[\s\S]*?\n---/,()=>`---
2
- ${g.join("\n")}
3
- ---`)}function e(a,b,c){let d=RegExp(`(\\*\\*${b}:\\*\\*\\s*).*`);return d.test(a)?a.replace(d,(a,b)=>`${b}${c}`):a}function f(a,b,c){let d=RegExp(`(^|\\n)##\\s+${b}\\s*\\n[\\s\\S]*?(?=\\n##\\s|$)`);return d.test(a)?a.replace(d,(a,d)=>`${d}## ${b}
4
- ${c}`):a.replace(/\s*$/,"")+`
5
-
6
- ## ${b}
7
- ${c}
8
- `}c.d(b,{a$:()=>e,c4:()=>f,tT:()=>d})},83999:(a,b,c)=>{function d(a){return a?a.split(",").map(a=>a.trim()).filter(Boolean):[]}function e(a){return a.join(", ")}function f(a){return d(a)[0]??""}function g(a,b){return d(a).includes(b)}function h(a,b){let c=d(a);return"None"===b?c.includes("None")?"":"None":e(c.includes(b)?c.filter(a=>a!==b):[...c.filter(a=>"None"!==a),b])}c.d(b,{BT:()=>f,He:()=>e,Hn:()=>g,P_:()=>h,jX:()=>d})},87414:(a,b,c)=>{c.d(b,{f:()=>f,z:()=>d});let d=[{key:"language",label:"Language",opts:["TypeScript","JavaScript","Python","Go","Rust","Java","Kotlin","C#","Ruby","PHP","Elixir","Swift","C++","C","Scala","Dart","Clojure","Haskell","Lua","R","Objective-C","Erlang","None"]},{key:"runtime",label:"Runtime",opts:["Node.js","Bun","Deno","Python 3","PyPy","JVM",".NET","BEAM (Erlang VM)","None"]},{key:"frontend",label:"Frontend",opts:["React","Vue","Svelte","Angular","SolidJS","Preact","Qwik","Lit","HTMX","Alpine.js","Ember","Backbone","HTML/CSS","Vanilla JS","None"]},{key:"meta",label:"Meta-framework / SSG",opts:["Next.js","Nuxt","Remix","SvelteKit","Astro","Gatsby","Vite (SPA)","Hugo","Jekyll","Eleventy","Docusaurus","Static (no framework)","None"]},{key:"backend",label:"Backend framework",opts:["NestJS","Fastify","Express","Hono","Koa","Django","Flask","FastAPI","Spring Boot","Spring","Laravel","Symfony","CodeIgniter","Ruby on Rails","Gin","Fiber","Actix","Phoenix","ASP.NET Core","AdonisJS","GraphQL","Nginx","None"]},{key:"mobile",label:"Mobile",opts:["React Native","Flutter","Android","Ionic","Xamarin","NativeScript","None"]},{key:"database",label:"Database",opts:["PostgreSQL","MySQL","MariaDB","SQLite","MongoDB","Redis","CockroachDB","Cassandra","DynamoDB","Supabase","PlanetScale","Neon","None"]},{key:"orm",label:"ORM / Data layer",opts:["Prisma","Drizzle","TypeORM","Sequelize","SQLAlchemy","Django ORM","Mongoose","Knex","Diesel","GORM","None"]},{key:"styling",label:"Styling / UI",opts:["Tailwind CSS","Plain CSS","CSS Modules","styled-components","Sass","Vanilla Extract","UnoCSS","shadcn/ui","MUI","Bootstrap","Bulma","Vuetify","Chakra UI","None"]},{key:"testing",label:"Testing",opts:["Jest","Vitest","Cypress","Playwright","Selenium","Mocha","Jasmine","Puppeteer","None"]},{key:"aiml",label:"AI / ML",opts:["TensorFlow","PyTorch","scikit-learn","Keras","Pandas","NumPy","Jupyter","None"]},{key:"dataviz",label:"Data viz",opts:["D3","Chart.js","Grafana","Plotly","None"]},{key:"container",label:"Container",opts:["Docker","Podman","containerd","None"]},{key:"infra",label:"Infra / DevOps",opts:["Tailscale","Cloudflare","Vercel","Netlify","Fly.io","Railway","AWS","GCP","Azure","Kubernetes","Jenkins","CircleCI","Terraform","Ansible","Vagrant","None"]},{key:"baas",label:"Backend-as-a-service",opts:["Firebase","Appwrite","Amplify","Heroku","Supabase","None"]},{key:"queue",label:"Queue / Cache",opts:["Redis","BullMQ","RabbitMQ","Kafka","NATS","Celery","None"]},{key:"auth",label:"Auth",opts:["Auth.js","Clerk","Lucia","Supabase Auth","Keycloak","Auth0","Passport","None"]}],e={"HTML/CSS":"Plain HTML5 markup + CSS — a simple static page, no framework.","Vanilla JS":"Plain JavaScript in the browser — no framework or build step.","Static (no framework)":"A static site built from plain HTML/CSS/JS — no meta-framework.","Plain CSS":"Hand-written CSS stylesheets — no preprocessor or utility framework.",TypeScript:"Typed superset of JavaScript — the default for full-stack web.",JavaScript:"Dynamic language of the web; runs everywhere a runtime exists.",Python:"Batteries-included language for backends, data, AI and automation.",Go:"Compiled, concurrent language for fast, simple network services.",Rust:"Memory-safe systems language for high-performance services.","Node.js":"The standard JS/TS server runtime with the largest ecosystem.",Bun:"Fast all-in-one JS/TS runtime, bundler and package manager.",Deno:"Secure JS/TS runtime with built-in tooling and web APIs.","Python 3":"CPython runtime for Python backends, workers and AI services.",React:"Component UI library; the most widely-used frontend.",Vue:"Approachable reactive UI framework with great DX.",Svelte:"Compiler-first UI framework with minimal runtime.","Next.js":"React meta-framework: routing, SSR/RSC, API routes.",Nuxt:"Vue meta-framework with SSR and file-based routing.",Remix:"React meta-framework focused on web fundamentals and forms.",SvelteKit:"Svelte meta-framework with SSR and routing.",NestJS:"Opinionated TypeScript backend framework (DI, modules).",Fastify:"Fast, low-overhead Node.js HTTP framework.",Express:"Minimal, ubiquitous Node.js web framework.",Hono:"Tiny, fast web framework for edge/Node/Bun/Deno.",Django:"Full-featured Python web framework — ORM, admin, auth, APIs and structured server-side systems in one. It already covers most backend concerns.",Flask:"Minimal Python web microframework — bring your own pieces.",FastAPI:"Modern async Python API framework with typed validation.","Spring Boot":"Convention-over-configuration JVM backend framework.",Laravel:"Full-featured PHP web framework (ORM, auth, queues).","Ruby on Rails":"Convention-driven full-stack Ruby framework.",PostgreSQL:"Robust relational database; the safe default for most apps.",MySQL:"Popular relational database, widely supported.",SQLite:"Embedded, file-based SQL database — zero-ops, great for local.",MongoDB:"Document database for flexible, schema-less data.",Redis:"In-memory store for cache, queues and sessions.",Supabase:"Hosted Postgres + auth + storage + realtime.",Prisma:"Type-safe TS/JS ORM with migrations and a schema DSL.",Drizzle:"Lightweight TS-first SQL ORM, close to the SQL.",TypeORM:"Decorator-based TS/JS ORM for SQL databases.",Sequelize:"Mature JS/TS ORM for SQL databases.",SQLAlchemy:"The de-facto Python ORM / SQL toolkit.","Django ORM":"Django's built-in ORM — only with Django.",Mongoose:"ODM for MongoDB (JS/TS).",GORM:"The standard ORM for Go.",Diesel:"Type-safe ORM/query builder for Rust.","Tailwind CSS":"Utility-first CSS framework for fast, consistent UI.","shadcn/ui":"Copy-in React components built on Tailwind + Radix.",MUI:"Material-UI React component library.",Docker:"Containerize the app for reproducible builds and deploys.",Podman:"Daemonless, rootless container engine (Docker-compatible).",Tailscale:"Zero-config private network (WireGuard) for services.",Vercel:"Managed hosting optimized for Next.js and frontends.",Kubernetes:"Container orchestration for scaling services.",BullMQ:"Redis-backed job queue for Node.js.",RabbitMQ:"Message broker for reliable async work.",Kafka:"Distributed event streaming platform at scale.",Celery:"Distributed task queue for Python.","Auth.js":"Framework-agnostic auth for JS/TS apps (NextAuth).",Clerk:"Hosted auth + user management with prebuilt UI.",Lucia:"Lightweight, framework-agnostic TS auth library.",Auth0:"Hosted identity platform (OAuth/OIDC).",C:"Low-level systems language; portable and fast.",Clojure:"Modern Lisp on the JVM — functional, immutable by default.",Haskell:"Pure functional language with a strong static type system.",Lua:"Tiny embeddable scripting language.",R:"Statistics + data-analysis language.","Objective-C":"Apple's pre-Swift language for iOS/macOS.",Erlang:"Concurrent, fault-tolerant language on the BEAM VM.",Ember:"Convention-driven framework for ambitious web apps.",Backbone:"Minimal MV* structure for JS apps.",Hugo:"Blazing-fast static site generator in Go.",Jekyll:"Ruby static site generator (GitHub Pages default).",Eleventy:"Simple, flexible JavaScript static site generator.",Docusaurus:"React-based docs site generator.",Spring:"JVM application framework (DI, web, data).",Symfony:"Mature PHP framework with reusable components.",CodeIgniter:"Lightweight PHP MVC framework.",GraphQL:"Query language + runtime for typed APIs.",Nginx:"High-performance web server / reverse proxy.","React Native":"Build native iOS/Android apps with React.",Flutter:"Google's cross-platform UI toolkit (Dart).",Android:"Native Android development (Kotlin/Java).",Ionic:"Hybrid mobile apps with web tech.",Xamarin:"Cross-platform .NET mobile apps.",NativeScript:"Native mobile apps with JS/TS frameworks.",Bootstrap:"The classic responsive CSS component framework.",Bulma:"Modern CSS framework based on flexbox.",Vuetify:"Material Design component library for Vue.",Jest:"Batteries-included JS testing framework.",Vitest:"Fast Vite-native unit test runner.",Cypress:"End-to-end testing in a real browser.",Playwright:"Reliable cross-browser E2E automation.",Selenium:"Browser automation across languages.",Mocha:"Flexible JS test framework.",Jasmine:"Behavior-driven JS testing.",Puppeteer:"Headless Chrome automation.",TensorFlow:"End-to-end ML platform (Google).",PyTorch:"Research-friendly deep-learning framework.","scikit-learn":"Classic ML algorithms for Python.",Keras:"High-level neural-network API.",Pandas:"Data analysis + manipulation for Python.",NumPy:"Numerical computing foundation for Python.",Jupyter:"Interactive notebooks for data/AI work.",D3:"Low-level data-driven document visualization.","Chart.js":"Simple, popular JS charting library.",Grafana:"Dashboards + observability for metrics.",Plotly:"Interactive scientific charts.",Azure:"Microsoft's cloud platform.",Jenkins:"Self-hosted CI/CD automation server.",CircleCI:"Hosted CI/CD pipelines.",Terraform:"Infrastructure as code across clouds.",Ansible:"Agentless configuration management.",Vagrant:"Reproducible dev environments.",Firebase:"Google's app backend (auth, DB, hosting).",Appwrite:"Open-source backend server for web/mobile.",Amplify:"AWS toolkit for full-stack app backends.",Heroku:"Managed app platform (push to deploy).",None:"Skip this category."};function f(a,b){if(e[b])return e[b];let c=d.find(b=>b.key===a)?.label??"technology";return`${b} — ${c.toLowerCase()} option.`}},96094:(a,b,c)=>{c.d(b,{L8:()=>H,fG:()=>D,LX:()=>I,Zi:()=>G});var d=c(6866),e=c(77598),f=c(84988),g=c(65705),h=c(1890),i=c(53993),j=c(64567),k=c(10133),l=c(56267),m=c(73024),n=c(76760),o=c(48161),p=c(57086),q=c(70149);let r=/(^|[\\/])(\.env(\.local|\.development|\.production)?|\.DS_Store|\.gitignore|\.gitattributes)$/i;function s(a){let b=[],c="";try{c=(0,m.readFileSync)((0,n.join)(a,".gitignore"),"utf8")}catch{}for(let a of c.split(/\r?\n/)){if(!(a=a.trim())||a.startsWith("#")||a.startsWith("!"))continue;let c=a.startsWith("/")||a.replace(/\/$/,"").includes("/"),d=a.replace(/^\//,"").replace(/\/$/,"");d&&b.push({anchored:c,re:function(a){let b="";for(let c of a)"*"===c?b+="[^/]*":"?"===c?b+="[^/]":b+=c.replace(/[.+^${}()|[\]\\]/g,"\\$&");return RegExp("^"+b+"$")}(d)})}return b.length?(a,c)=>{let d=a.split("/");for(let c of b)if(c.anchored){if(c.re.test(a))return!0}else if(d.some(a=>c.re.test(a)))return!0;return!1}:()=>!1}function t(a,b,c){let d=[],e=[a];for(;e.length&&d.length<b;){let f,g=e.pop();try{f=(0,m.readdirSync)(g,{withFileTypes:!0})}catch{continue}for(let h of f){let f=(0,n.join)(g,h.name),i=(0,n.relative)(a,f).split(n.sep).join("/");if(h.isDirectory()){if(p.xZ.has(h.name)||c(i,!0))continue;e.push(f)}else if(h.isFile()){if(c(i,!1))continue;if(d.push(f),d.length>=b)break}}}return d}async function u(a,b,c,d){let f=b.trim().replace(/^https?:\/\/github\.com\//i,"").replace(/\.git$/,"");if(!/^[\w.-]+\/[\w.-]+$/.test(f))return{ok:!1,error:"Use the form owner/repo."};let g=a=>c?a.split(c).join("***"):a,h=(0,p.HZ)(a),i=(0,n.join)((0,o.tmpdir)(),"constella-clone-"+(0,e.randomUUID)()),j=`https://x-access-token:${c}@github.com/${f}.git`;try{let b=["clone","--depth","1","--single-branch",...d?["--branch",d]:[],j,i],c=await (0,q.d1)("git",b,{cwd:(0,o.tmpdir)(),timeoutMs:18e4});if(0!==c.code){try{(0,m.rmSync)(i,{recursive:!0,force:!0})}catch{}return{ok:!1,error:g((c.stderr||"git clone failed").slice(-300))}}let{copied:e}=function(a,b){let c=(void 0)??4e3,d=(void 0)??524288,e=0,f=0,g=0,h=[];for(let i of t(b,c+200,s(b))){let j;if(e>=c)break;let k=(0,n.relative)(b,i).split(n.sep).join("/");if(!k||k.startsWith("..")||r.test(k)){f++;continue}try{j=(0,m.readFileSync)(i)}catch{f++;continue}if(j.length>d||function(a){let b=Math.min(a.length,8192);for(let c=0;c<b;c++)if(0===a[c])return!0;return!1}(j)){f++;continue}try{(0,p.dx)(a,k,j.toString("utf8")),e++,g+=j.length,h.length<8&&h.push(k)}catch{f++}}return{copied:e,skipped:f,bytes:g,sample:h}}(a,i);try{(0,m.rmSync)(i,{recursive:!0,force:!0})}catch{}let k=`https://github.com/${f}.git`;(0,m.existsSync)((0,n.join)(h,".git"))||await (0,q.d1)("git",["init","-b","main"],{cwd:h});let l=await (0,q.d1)("git",["remote","get-url","origin"],{cwd:h});return await (0,q.d1)("git",["remote",0===l.code?"set-url":"add","origin",k],{cwd:h}),{ok:!0,copied:e}}catch(a){try{(0,m.rmSync)(i,{recursive:!0,force:!0})}catch{}return{ok:!1,error:g(String(a instanceof Error?a.message:a))}}}var v=c(24701),w=c(65300),x=c(38926),y=c(29803),z=c(93571),A=c(76158),B=c(97603),C=c(74252);async function D(){let a=await (0,i.Ht)();return!!a&&(await (0,i.O5)(a.user.id)).length>0}let E=[["open-pr","Branch, commit, open a PR with a test plan and request CTO review.","When a work product is ready to merge",!1],["run-suite","Detect the package manager, run the test task and gate sign-off on red.","Before any sign-off",!1],["secret-scan","Scan for plaintext keys, verify vault references and flag log leaks.","On every adapter change",!1],["telegram-notify","Format a digest and POST it to the Telegram Bot API.","When a routine completes",!0],["moscow-prioritise","Score backlog items and re-order them with the MoSCoW method.","During backlog grooming",!1],["gguf-validate","Pull a GGUF, verify SHA-256 and bind to loopback.","When installing a local model",!0]],F=[["ada","Ada","CEO","#e0a44e",null,15,"critical"],["linus","Linus","CTO","#9a5cff","ada",40,"critical"],["donald","Donald","Product Owner","#4fc9b0","ada",20,"heavy"],["margaret","Margaret","Backend","#3fb98f","linus",50,"heavy"],["grace","Grace","Frontend","#5b8def","linus",45,"heavy"],["edsger","Edsger","QA","#e8688f","linus",25,"heavy"],["werner","Werner","DevOps","#f0a35e","linus",20,"heavy"],["barbara","Barbara","Docs","#b3d97a","ada",15,"light"],["whitfield","Whitfield","CyberSec","#c4a0ff","linus",30,"critical"],["vannevar","Vannevar","Knowledge","#7ac5e0","ada",10,"light"]];async function G(a){return await (0,i.Ht)()?function(a){let b,c,d,e=(a||"").trim();if(!e)return{ok:!1,error:"Enter a directory path."};if(!(0,n.isAbsolute)(e))return{ok:!1,error:"Use an absolute path (e.g. C:\\Users\\you\\project)."};try{b=(0,m.statSync)(e)}catch{return{ok:!1,error:"Path not found."}}if(!b.isDirectory())return{ok:!1,error:"That path is a file, not a directory."};let f=t(e,6e3,s(e));if(0===f.length)return{ok:!1,error:"No importable source files found (only dependencies, build output or git-ignored files)."};let g=f.slice(0,8).map(a=>(0,n.relative)(e,a).split(n.sep).join("/"));return{ok:!0,fileCount:f.length,sample:g,stack:(c=new Set(f.map(a=>(0,n.relative)(e,a).split(n.sep).join("/").toLowerCase())),(d=a=>c.has(a)||[...c].some(b=>b.endsWith("/"+a)))("manage.py")?"Django (Python)":d("pyproject.toml")||d("requirements.txt")||[...c].some(a=>a.endsWith(".py"))?"Python":d("next.config.js")||d("next.config.mjs")||d("next.config.ts")?"Next.js":d("nuxt.config.ts")||d("nuxt.config.js")?"Nuxt":d("vite.config.js")||d("vite.config.ts")?"Vite":[...c].some(a=>a.endsWith(".vue"))?"Vue":d("angular.json")?"Angular":d("go.mod")?"Go":d("cargo.toml")?"Rust":d("composer.json")?"PHP":d("gemfile")?"Ruby":d("pom.xml")||d("build.gradle")?"JVM":d("package.json")?"Node":void 0)}}(a):{ok:!1,error:"Not signed in."}}async function H(a){let b=await (0,i.Ht)();b||(0,f.redirect)("/login");let c=b.user.id;a.stack=(0,k.T1)(a.stack??{}).stack;let d=(0,e.randomUUID)(),m=(0,e.randomUUID)(),n=(0,i.Yv)(a.company)+"-"+Math.random().toString(36).slice(2,8),o=(0,j.T)();if(g.db.insert(h.organization).values({id:d,name:a.company,ownerId:c,runMode:o}).run(),delete process.env.CONSTELLA_FORCE_ONBOARDING,g.db.insert(h.member).values({id:(0,e.randomUUID)(),orgId:d,userId:c,role:"owner"}).run(),g.db.insert(h.workspace).values({id:m,orgId:d,slug:n,name:a.company,mission:a.mission,objective:a.objective,stack:a.stack}).run(),a.providerCatalogId){let b=(0,y.kH)(a.providerCatalogId);if(b){let c=(0,e.randomUUID)();g.db.insert(h.provider).values({id:c,workspaceId:m,catalogId:b.id,adapter:b.defaultAdapter,kind:"cli"===b.category?"cli":"local_runtime"===b.category?"local":"cloud",auth:a.providerKey?"api_key":b.connectionTypes[0],status:"needs_sync",syncStatus:b.supportsModelSync?"implemented":"manual"}).run(),a.providerKey&&await (0,x.IW)(m,`${b.id}_api_key`,a.providerKey,c)}}let q={type:"new"},r=null,s=a.source;if(s?.type==="github")try{let a=await u(d,s.repoFull,s.pat,s.branch);a.ok?(await (0,x.IW)(m,"github_pat",s.pat),q={type:"github",repo:s.repoFull,branch:s.branch,importedAt:Date.now(),fileCount:a.copied},r={login:s.login,repo:s.repoFull,defaultBranch:s.branch??"main"}):console.error("[onboarding] github import failed:",a.error)}catch(a){console.error("[onboarding] github import threw:",a)}else if(s?.type==="local"){let a=0;try{for(let b of(s.files??[]).slice(0,6e3)){let c=b.path.replace(/\\/g,"/").replace(/^\/+/,"").replace(/\.\.+/g,".");if(!(!c||c.endsWith("/")))try{(0,p.dx)(d,c,b.content),a++}catch{}}}catch(a){console.error("[onboarding] local import failed:",a)}q={type:"local",localPath:s.rootName||"imported project",importedAt:Date.now(),fileCount:a}}let t=!!a.mockFiles?.length;"new"===q.type&&t&&(q={type:"mock",importedAt:Date.now()});let C="new"!==q.type||t,D=null!=(0,p.sL)(d,"README.md");try{(0,l.GA)(d,{company:a.company,mission:a.mission,objective:a.objective,stack:a.stack,slug:n,runMode:o,preserveReadme:D})}catch(a){console.error("[onboarding] scaffold failed:",a)}if(!C)try{(0,l.tt)({orgId:d,slug:n,company:a.company,mission:a.mission,objective:a.objective,stack:a.stack,runMode:o})}catch(a){console.error("[onboarding] starter scaffold failed:",a)}g.db.update(h.workspace).set({settings:{...r?{github:r}:{},source:{...q,analyzed:!1}}}).where((0,B.eq)(h.workspace.id,m)).run();let G={};for(let[a]of F)G[a]=(0,e.randomUUID)();for(let[a,b,c,d,e,f,i]of F)g.db.insert(h.agent).values({id:G[a],workspaceId:m,handle:a,name:b,role:c,color:d,reportsTo:e,dailyCapUsd:f,tierFloor:i,status:"idle",lastPulse:new Date,health:"alive"}).run();if(a.provider||a.model||a.systemPrompt){let b=G.ada,c={};a.provider&&(c.adapter=a.provider),a.model&&(c.model=a.model),a.systemPrompt?.trim()&&(c.persona={identity:"",ritual:"",tone:"",systemPrompt:a.systemPrompt.trim()}),Object.keys(c).length&&g.db.update(h.agent).set(c).where((0,B.eq)(h.agent.id,b)).run();let e=".claude/agents/ada/Agent.md",f=(0,p.sL)(d,e)??"";f&&(a.provider&&(f=(0,w.tT)(f,"provider",a.provider)),a.model&&(f=(0,w.tT)(f,"model",a.model)),a.systemPrompt?.trim()&&(f=(0,w.c4)(f,"System prompt",a.systemPrompt.trim())),(0,p.dx)(d,e,f))}if(a.briefText?.trim()&&(0,p.dx)(d,".claude/BRIEF.md",`# Project brief${a.briefName?` — ${a.briefName}`:""}
9
-
10
- ${a.briefText.trim()}
11
- `),a.mockFiles?.length){let b="";for(let c of a.mockFiles.slice(0,200)){let a=("mock/"+c.path).replace(/\.\.+/g,".").replace(/\/+/g,"/");(0,p.dx)(d,a,c.content),b+=`- ${c.path}
12
- `}(0,p.dx)(d,"mock/README.md",`# Attached mock / prototype
13
-
14
- _The operator attached this visual prototype at onboarding. Agents must read these files and match the product to them precisely._
15
-
16
- ## Files
17
- ${b}`);try{for(let b of a.mockFiles.slice(0,200)){let a=("design-mock/import/"+b.path).replace(/\.\.+/g,".").replace(/\/+/g,"/");(0,p.dx)(d,a,b.content)}(0,p.dx)(d,"design-mock/import/README.md",`# Imported from the onboarding mock
18
-
19
- _These files were attached at onboarding and copied here as the Design module's starting point. The frontend agent uses them to build or improve the prototype before the CEO Planner generates the plan._
20
-
21
- ## Files
22
- ${b}`)}catch(a){console.error("[onboarding] design-mock seed failed:",a)}try{await (0,v.I)(m,{kind:"design-review",text:`Mock imported — ${a.company||"your project"}`,detail:`${a.mockFiles.length} file(s) imported into the Design module. Open Design — Grace will reconstruct the mock on the canvas to prototype + approve before planning.`,tg:!0})}catch{}}g.db.insert(h.budget).values({workspaceId:m,monthlyCapUsd:400,monthlySpentUsd:0}).run(),g.db.insert(h.plan).values({workspaceId:m,stage:4}).run();let H=[];for(let[a,b,c,d]of E){let f=(0,e.randomUUID)();if(H.push(f),g.db.insert(h.skill).values({id:f,workspaceId:m,name:a,summary:b,trigger:c,native:!0,provisional:d,indexed:d?"pending":"indexed"}).run(),!d)for(let a of Object.keys(G))g.db.insert(h.agentSkill).values({agentId:G[a],skillId:f}).run()}try{(0,A.fR)({orgId:d,wsId:m,names:(0,z.Ws)(),agentIds:G,linkNames:[]}),(0,A.J$)(m)}catch(a){console.error("[onboarding] library skill seed failed:",a)}for(let[a,b,c]of[["GitHub","Commit, push & open PRs from the workspace.",!0],["Telegram","Route reports and alerts to a channel.",!0],["Vault","Encrypted secret storage for provider keys.",!0],["Web Search","Let agents look things up while planning.",!0]])g.db.insert(h.plugin).values({id:(0,e.randomUUID)(),workspaceId:m,name:a,description:b,enabled:c,native:!0}).run();return g.db.update(h.session).set({activeOrgId:d}).where((0,B.eq)(h.session.userId,c)).run(),{ok:!0}}async function I(){let{workspace:a}=await (0,i.nP)(),b=a.settings??{},c=b.source;return c?.type&&"new"!==c.type?(g.db.update(h.workspace).set({settings:{...b,source:{...c,analyzed:!1}}}).where((0,B.eq)(h.workspace.id,a.id)).run(),{ok:!0}):{ok:!1}}(0,C.D)([D,G,H,I]),(0,d.A)(D,"00536887303acc0e3e97ebf762573d54c8b90c22ac",null),(0,d.A)(G,"40d1c7d07e18a0c68e0da467c8d686b3fbd482314d",null),(0,d.A)(H,"40634c805da9328a750493c980590c2cc920b3c463",null),(0,d.A)(I,"0012c7f27136f3d1a39d8b01ca56de8dc491177ccd",null)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7622,exports.ids=[7622],exports.modules={44842:(a,b,c)=>{c.d(b,{Lh:()=>t,NF:()=>v,PT:()=>w,jL:()=>u,ot:()=>q,yR:()=>r});var d=c(73024),e=c(76760),f=c(60547),g=c.n(f),h=c(97603),i=c(65705),j=c(1890),k=c(57086),l=c(70149),m=c(437),n=c(84903),o=c(77558),p=c(24701);async function q(a,b){let[c]=await i.db.select().from(j.goal).where((0,h.Uo)((0,h.eq)(j.goal.id,b),(0,h.eq)(j.goal.workspaceId,a)));return c}function r(a){return(a||"work").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40)||"work"}async function s(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b)))))(0,l.KD)(c.id),("todo"===c.col||"doing"===c.col)&&(await i.db.update(j.task).set({col:"blocked"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"blocked"}).where((0,h.eq)(j.issue.id,c.issueId))),c.assigneeId&&await i.db.update(j.agent).set({status:"idle"}).where((0,h.eq)(j.agent.id,c.assigneeId))}async function t(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b),(0,h.eq)(j.task.col,"blocked")))))await i.db.update(j.task).set({col:"todo"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"todo"}).where((0,h.eq)(j.issue.id,c.issueId))}async function u(a,b,c){await i.db.update(j.spec).set({status:c}).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,a),(0,h.eq)(j.spec.goalId,b))),await i.db.update(j.issue).set({status:c}).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,a),(0,h.eq)(j.issue.goalId,b)))}async function v(a,b){let c=await q(a,b);return c?(await i.db.update(j.goal).set({status:"cancelled",cancelledAt:new Date}).where((0,h.eq)(j.goal.id,b)),await u(a,b,"cancelled"),await (0,o.TC)(a,b),await s(a,b),await (0,n.j)(a,{text:`Cancelled goal: ${c.title}`,by:"operator",source:"operator-instruction",goalId:b}),await (0,p.I)(a,{kind:"info",text:`Goal cancelled — ${c.title}`,detail:"Execution stopped; state preserved. Reopen to resume."}),{ok:!0,title:c.title}):{ok:!1}}async function w(a,b,c){let f=await q(b,c);if(!f)return{ok:!1};let l=(0,k.HZ)(a),[t,v,w,x,y]=await Promise.all([i.db.select().from(j.spec).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,b),(0,h.eq)(j.spec.goalId,c))),i.db.select().from(j.issue).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,b),(0,h.eq)(j.issue.goalId,c))),i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,b),(0,h.eq)(j.task.goalId,c))),i.db.select().from(j.decision).where((0,h.Uo)((0,h.eq)(j.decision.workspaceId,b),(0,h.eq)(j.decision.goalId,c))),i.db.select().from(j.report).where((0,h.Uo)((0,h.eq)(j.report.workspaceId,b),(0,h.eq)(j.report.goalId,c)))]),z=w.map(a=>a.id),A=z.length?await i.db.select().from(j.taskStep).where((0,h.RV)(j.taskStep.taskId,z)):[],B=await (0,m.Y)(b,c),C=new(g()),D=0;for(let a of B){let b=(0,e.join)(l,a);if((0,d.existsSync)(b))try{C.addFile("files/"+a,(0,d.readFileSync)(b)),D++}catch{}}let E={goal:f,specs:t,issues:v,tasks:w,taskSteps:A,decisions:x,reports:y,fileCount:D,archivedAt:new Date().toISOString()},F=[`# Archived work — ${f.title}`,"",`Status at archive: ${f.status} \xb7 progress ${f.progress}%`,"",`## Specs (${t.length})`,...t.map(a=>`- ${a.key} ${a.title}`),"",`## Issues (${v.length})`,...v.map(a=>`- ${a.key} [${a.col}] ${a.title}`),"",`## Decisions (${x.length})`,...x.map(a=>`- ${a.text} (${a.by})`),"",`## Source files (${D})`,...B.map(a=>`- ${a}`),""].join("\n");C.addFile("MANIFEST.json",Buffer.from(JSON.stringify(E,null,2))),C.addFile("MANIFEST.md",Buffer.from(F));let G=(0,e.join)(l,"archives");(0,d.mkdirSync)(G,{recursive:!0});let H=`archives/${r(f.title)}-${new Date().toISOString().slice(0,10)}-${c.slice(0,6)}.zip`;try{C.writeZip((0,e.join)(l,H))}catch(a){return console.error("[archiveGoalFor] zip failed:",a),{ok:!1}}return await i.db.update(j.goal).set({status:"archived",archivePath:H,archivedAt:new Date}).where((0,h.eq)(j.goal.id,c)),await u(b,c,"archived"),await (0,o.TC)(b,c),await s(b,c),await (0,n.j)(b,{text:`Archived goal: ${f.title} → ${H}`,by:"operator",source:"operator-instruction",goalId:c}),await (0,p.I)(b,{kind:"info",text:`Goal archived — ${f.title}`,detail:`${D} files + manifest zipped to ${H}.`}),{ok:!0,path:H,title:f.title}}},47622:(a,b,c)=>{c.d(b,{mirrorToTelegram:()=>f}),c(77598),c(73024),c(76760),c(65705),c(1890),c(57086);var d=c(88007);c(71352),c(33644),c(13328),c(44842),c(23297),c(90259),c(56338);var e=c(48503);async function f(a,b){if(!b?.trim())return;let c=await (0,d._9)(a);c&&await (0,d.vH)(c.botToken,c.chatId,(0,e.Z)(b,[c.botToken]))}}};