constellai 0.3.7 → 0.3.9

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 (438) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +6 -6
  3. package/.next/next-minimal-server.js.nft.json +1 -1
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +6 -6
  7. package/.next/server/app/(app)/activity/page.js +2 -2
  8. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
  11. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
  12. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/(app)/code/page.js +2 -2
  14. package/.next/server/app/(app)/code/page.js.nft.json +1 -1
  15. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(app)/config/page.js +2 -2
  17. package/.next/server/app/(app)/config/page.js.nft.json +1 -1
  18. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/(app)/costs/page.js +2 -2
  20. package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
  21. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(app)/cron/page.js +2 -2
  23. package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
  24. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(app)/dashboard/page.js +2 -2
  26. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
  27. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(app)/design/page.js +14 -14
  29. package/.next/server/app/(app)/design/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(app)/docs/[id]/page.js +2 -2
  32. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
  33. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/(app)/docs/page.js +2 -2
  35. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  36. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(app)/github/page.js +2 -2
  38. package/.next/server/app/(app)/github/page.js.nft.json +1 -1
  39. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/(app)/goals/page.js +2 -2
  41. package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
  42. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/(app)/inbox/page.js +2 -2
  44. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  45. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(app)/knowledge/page.js +3 -3
  47. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
  48. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/(app)/models/page.js +2 -2
  50. package/.next/server/app/(app)/models/page.js.nft.json +1 -1
  51. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/(app)/notifications/page.js +2 -2
  53. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
  54. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/(app)/org/page.js +4 -4
  56. package/.next/server/app/(app)/org/page.js.nft.json +1 -1
  57. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/(app)/organizations/page.js +2 -2
  59. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
  60. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/(app)/page.js +3 -3
  62. package/.next/server/app/(app)/page.js.nft.json +1 -1
  63. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  64. package/.next/server/app/(app)/planner/page.js +3 -3
  65. package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
  66. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/(app)/plugins/page.js +2 -2
  68. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
  69. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/(app)/pm/page.js +2 -2
  71. package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
  72. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/(app)/prepare-deploy/page.js +3 -3
  74. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
  75. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/(app)/profile/page.js +2 -2
  77. package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
  78. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/(app)/pulse/page.js +2 -2
  80. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
  81. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/(app)/reports/[id]/page.js +3 -3
  83. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
  84. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/(app)/reports/page.js +3 -3
  86. package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
  87. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
  88. package/.next/server/app/(app)/routines/page.js +2 -2
  89. package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
  90. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
  91. package/.next/server/app/(app)/search/page.js +2 -2
  92. package/.next/server/app/(app)/search/page.js.nft.json +1 -1
  93. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/(app)/security/page.js +2 -2
  95. package/.next/server/app/(app)/security/page.js.nft.json +1 -1
  96. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  97. package/.next/server/app/(app)/skills/page.js +3 -3
  98. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  99. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/(app)/tasks/page.js +2 -2
  101. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
  102. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/(app)/test-dev/page.js +2 -2
  104. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
  105. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/(app)/update/page.js +3 -3
  107. package/.next/server/app/(app)/update/page.js.nft.json +1 -1
  108. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
  109. package/.next/server/app/(auth)/login/page.js +2 -2
  110. package/.next/server/app/(auth)/login/page.js.nft.json +1 -1
  111. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/(auth)/onboarding/page.js +2 -2
  113. package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -1
  114. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/_global-error/page.js +3 -3
  116. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  117. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  118. package/.next/server/app/_global-error.html +1 -1
  119. package/.next/server/app/_global-error.rsc +8 -8
  120. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  121. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  122. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
  123. package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  124. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
  125. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  126. package/.next/server/app/_not-found/page.js +2 -2
  127. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  128. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/auth/[...all]/route.js +1 -1
  130. package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
  131. package/.next/server/app/api/cron/tick/route.js +5 -5
  132. package/.next/server/app/api/cron/tick/route.js.nft.json +1 -1
  133. package/.next/server/app/api/health/route.js +1 -1
  134. package/.next/server/app/api/health/route.js.nft.json +1 -1
  135. package/.next/server/app/api/locks/acquire/route.js +1 -1
  136. package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -1
  137. package/.next/server/app/api/models/progress/route.js +1 -1
  138. package/.next/server/app/api/models/progress/route.js.nft.json +1 -1
  139. package/.next/server/app/api/passkey/authenticate/options/route.js +1 -1
  140. package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -1
  141. package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -1
  142. package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -1
  143. package/.next/server/app/api/passkey/register/options/route.js +1 -1
  144. package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -1
  145. package/.next/server/app/api/passkey/register/verify/route.js +1 -1
  146. package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -1
  147. package/.next/server/app/api/stream/route.js +2 -2
  148. package/.next/server/app/api/stream/route.js.nft.json +1 -1
  149. package/.next/server/app/api/sync/file/route.js +2 -2
  150. package/.next/server/app/api/sync/file/route.js.nft.json +1 -1
  151. package/.next/server/app/api/telegram/poll/route.js +19 -19
  152. package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -1
  153. package/.next/server/app/api/upload/route.js +1 -1
  154. package/.next/server/app/api/upload/route.js.nft.json +1 -1
  155. package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
  156. package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -1
  157. package/.next/server/chunks/1033.js +14 -0
  158. package/.next/server/chunks/1190.js +12 -0
  159. package/.next/server/chunks/1243.js +1 -0
  160. package/.next/server/chunks/{6719.js → 1304.js} +1 -1
  161. package/.next/server/chunks/1952.js +1 -0
  162. package/.next/server/chunks/{8561.js → 1986.js} +2 -2
  163. package/.next/server/chunks/2118.js +869 -0
  164. package/.next/server/chunks/2323.js +1 -0
  165. package/.next/server/chunks/{7336.js → 2392.js} +1 -1
  166. package/.next/server/chunks/2559.js +479 -0
  167. package/.next/server/chunks/26.js +1 -0
  168. package/.next/server/chunks/{5278.js → 3140.js} +1 -1
  169. package/.next/server/chunks/{6479.js → 3172.js} +1 -1
  170. package/.next/server/chunks/3205.js +1 -0
  171. package/.next/server/chunks/{9160.js → 3481.js} +176 -176
  172. package/.next/server/chunks/{4979.js → 3987.js} +4 -4
  173. package/.next/server/chunks/404.js +1 -0
  174. package/.next/server/chunks/415.js +1 -0
  175. package/.next/server/chunks/4288.js +1 -0
  176. package/.next/server/chunks/{2599.js → 4411.js} +1 -1
  177. package/.next/server/chunks/4435.js +1 -0
  178. package/.next/server/chunks/{7912.js → 4561.js} +1 -1
  179. package/.next/server/chunks/4587.js +1 -0
  180. package/.next/server/chunks/4679.js +462 -1
  181. package/.next/server/chunks/4732.js +1 -0
  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/6585.js +1 -0
  197. package/.next/server/chunks/{3243.js → 6778.js} +2 -2
  198. package/.next/server/chunks/6807.js +1 -0
  199. package/.next/server/chunks/{1388.js → 6948.js} +1 -1
  200. package/.next/server/chunks/{1591.js → 699.js} +2 -2
  201. package/.next/server/chunks/7109.js +1 -0
  202. package/.next/server/chunks/714.js +1 -0
  203. package/.next/server/chunks/7348.js +4 -0
  204. package/.next/server/chunks/739.js +1 -0
  205. package/.next/server/chunks/7474.js +1 -0
  206. package/.next/server/chunks/{7037.js → 7677.js} +1 -1
  207. package/.next/server/chunks/77.js +3 -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/8498.js +1 -0
  215. package/.next/server/chunks/8868.js +21 -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/9419.js +1 -0
  223. package/.next/server/chunks/9426.js +188 -0
  224. package/.next/server/chunks/9677.js +17 -0
  225. package/.next/server/chunks/978.js +1 -0
  226. package/.next/server/instrumentation.js +1 -1
  227. package/.next/server/instrumentation.js.nft.json +1 -1
  228. package/.next/server/middleware-build-manifest.js +1 -1
  229. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  230. package/.next/server/middleware.js +6 -6
  231. package/.next/server/middleware.js.nft.json +1 -1
  232. package/.next/server/pages/500.html +1 -1
  233. package/.next/server/server-reference-manifest.js +1 -1
  234. package/.next/server/server-reference-manifest.json +1 -1
  235. package/.next/static/chunks/171-2a8b8f61f7ab0828.js +1 -0
  236. package/.next/static/chunks/1738-28b6824e2a707b93.js +1 -0
  237. package/.next/static/chunks/{23550918-ff694f70f4b0648c.js → 1ceccf25-731706dbe95504b9.js} +1 -1
  238. package/.next/static/chunks/{2320-fc8b39380e69d465.js → 3703-b09be945970ea475.js} +1 -1
  239. package/.next/static/chunks/4365-c5eb5b6af7bfc653.js +4 -0
  240. package/.next/static/chunks/5452-d0ce3b51601a5815.js +1 -0
  241. package/.next/static/chunks/6871-a079ac1b4f0caec2.js +1 -0
  242. package/.next/static/chunks/7066-c10959874b2315bf.js +32 -0
  243. package/.next/static/chunks/717-1d1163010e3b541d.js +1 -0
  244. package/.next/static/chunks/7218-44d9a247cf4980fa.js +12 -0
  245. package/.next/static/chunks/7466-6d8ba01f169a6a1e.js +1 -0
  246. package/.next/static/chunks/{5920.6451a68b63918988.js → 7790.b648690cf25f29eb.js} +1 -1
  247. package/.next/static/chunks/{7509.721cd47a931c5518.js → 8251.6fedb7dc4d720bab.js} +1 -1
  248. package/.next/static/chunks/9279-467412113ad55642.js +1 -0
  249. package/.next/static/chunks/928-6dec8198101bc3e6.js +1 -0
  250. package/.next/static/chunks/9874-dc2fbf114916382b.js +1 -0
  251. package/.next/static/chunks/app/(app)/activity/page-8cf9b4c853ca9c69.js +1 -0
  252. package/.next/static/chunks/app/(app)/agents/[handle]/page-068e58bd327db429.js +1 -0
  253. package/.next/static/chunks/app/(app)/code/page-98becb790f9aeedf.js +1 -0
  254. package/.next/static/chunks/app/(app)/config/page-b5447ad490de11f7.js +1 -0
  255. package/.next/static/chunks/app/(app)/costs/page-02324b05660bad50.js +1 -0
  256. package/.next/static/chunks/app/(app)/cron/page-5c9c6fea5aee299c.js +1 -0
  257. package/.next/static/chunks/app/(app)/dashboard/page-742ac16dbfce548b.js +1 -0
  258. package/.next/static/chunks/app/(app)/design/{page-11b9cc40f32fe34f.js → page-3ff2eae843e8b7ea.js} +3 -3
  259. package/.next/static/chunks/app/(app)/docs/[id]/page-f7cc168b103da51e.js +1 -0
  260. package/.next/static/chunks/app/(app)/docs/page-bc93a2e0342c61af.js +1 -0
  261. package/.next/static/chunks/app/(app)/error-f9a3caa63e064a7e.js +1 -0
  262. package/.next/static/chunks/app/(app)/github/page-44b09f94c19f56f0.js +1 -0
  263. package/.next/static/chunks/app/(app)/goals/page-b66ec65a7221b023.js +1 -0
  264. package/.next/static/chunks/app/(app)/inbox/page-57a8ab9347276aa2.js +12 -0
  265. package/.next/static/chunks/app/(app)/knowledge/page-fb3902b3c7348818.js +1 -0
  266. package/.next/static/chunks/app/(app)/layout-98aa9e760faf2331.js +1 -0
  267. package/.next/static/chunks/app/(app)/models/page-92f957c7400497f0.js +1 -0
  268. package/.next/static/chunks/app/(app)/notifications/page-e3fcdad57e7a94fd.js +12 -0
  269. package/.next/static/chunks/app/(app)/org/page-9030d33729e45e07.js +12 -0
  270. package/.next/static/chunks/app/(app)/organizations/page-f29c3dc4b3327b8d.js +1 -0
  271. package/.next/static/chunks/app/(app)/page-0e7e7cfd98d44f59.js +1 -0
  272. package/.next/static/chunks/app/(app)/planner/page-a2c45cb14b53454a.js +1 -0
  273. package/.next/static/chunks/app/(app)/plugins/page-792b3dc0ae8571db.js +1 -0
  274. package/.next/static/chunks/app/(app)/pm/page-4624950feadad3be.js +1 -0
  275. package/.next/static/chunks/app/(app)/prepare-deploy/{page-6f0c5081caf1d013.js → page-a5d2911069317635.js} +1 -1
  276. package/.next/static/chunks/app/(app)/profile/page-10ce6fd89387a1f0.js +1 -0
  277. package/.next/static/chunks/app/(app)/pulse/page-793ce0d2074d2cd7.js +1 -0
  278. package/.next/static/chunks/app/(app)/reports/[id]/page-5c9c6fea5aee299c.js +1 -0
  279. package/.next/static/chunks/app/(app)/reports/page-cfa78938aef16acc.js +1 -0
  280. package/.next/static/chunks/app/(app)/routines/page-06df804a8db66b2d.js +1 -0
  281. package/.next/static/chunks/app/(app)/search/page-eec2f135e6af9c70.js +1 -0
  282. package/.next/static/chunks/app/(app)/security/page-23dd0b8308ee48b8.js +1 -0
  283. package/.next/static/chunks/app/(app)/skills/page-d3d63cac10ce08e1.js +1 -0
  284. package/.next/static/chunks/app/(app)/tasks/page-0750ff77f17bdd9d.js +1 -0
  285. package/.next/static/chunks/app/(app)/test-dev/page-7c09ba848265ffe6.js +1 -0
  286. package/.next/static/chunks/app/(app)/update/page-e70ac9974eb7bf03.js +1 -0
  287. package/.next/static/chunks/app/(auth)/login/page-0ee8f367460d835a.js +1 -0
  288. package/.next/static/chunks/app/(auth)/onboarding/page-1de0c42322e9f296.js +1 -0
  289. package/.next/static/chunks/app/_global-error/{page-eacef2b697bd0982.js → page-ffc45e65538b6024.js} +1 -1
  290. package/.next/static/chunks/app/_not-found/page-405e53afca481eab.js +1 -0
  291. package/.next/static/chunks/app/api/auth/[...all]/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  292. package/.next/static/chunks/app/api/cron/tick/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  293. package/.next/static/chunks/app/api/health/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  294. package/.next/static/chunks/app/api/locks/acquire/route-ffc45e65538b6024.js +1 -0
  295. package/.next/static/chunks/app/api/models/progress/route-ffc45e65538b6024.js +1 -0
  296. package/.next/static/chunks/app/api/passkey/authenticate/options/route-ffc45e65538b6024.js +1 -0
  297. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-ffc45e65538b6024.js +1 -0
  298. package/.next/static/chunks/app/api/passkey/register/options/route-ffc45e65538b6024.js +1 -0
  299. package/.next/static/chunks/app/api/passkey/register/verify/route-ffc45e65538b6024.js +1 -0
  300. package/.next/static/chunks/app/api/stream/route-ffc45e65538b6024.js +1 -0
  301. package/.next/static/chunks/app/api/sync/file/route-ffc45e65538b6024.js +1 -0
  302. package/.next/static/chunks/app/api/telegram/poll/route-ffc45e65538b6024.js +1 -0
  303. package/.next/static/chunks/app/api/upload/route-ffc45e65538b6024.js +1 -0
  304. package/.next/static/chunks/app/api/v1/[[...path]]/route-ffc45e65538b6024.js +1 -0
  305. package/.next/static/chunks/app/error-e128df085a794b38.js +1 -0
  306. package/.next/static/chunks/app/global-error-339c61c4184d384a.js +1 -0
  307. package/.next/static/chunks/app/layout-a80704c0fd0a9e29.js +1 -0
  308. package/.next/static/chunks/main-143b6dbf9c5dc129.js +5 -0
  309. package/.next/static/chunks/main-app-8ce4eaae11d4f233.js +1 -0
  310. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ffc45e65538b6024.js +1 -0
  311. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ffc45e65538b6024.js +1 -0
  312. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ffc45e65538b6024.js +1 -0
  313. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ffc45e65538b6024.js +1 -0
  314. package/.next/static/chunks/webpack-0e63b9ea83aeb0a2.js +1 -0
  315. package/.next/trace-build +1 -1
  316. package/CHANGELOG.md +31 -0
  317. package/README.md +1 -1
  318. package/README.pt-BR.md +1 -1
  319. package/docs/UPDATE.md +16 -3
  320. package/package.json +9 -9
  321. package/.next/server/chunks/1249.js +0 -910
  322. package/.next/server/chunks/1572.js +0 -1
  323. package/.next/server/chunks/1619.js +0 -188
  324. package/.next/server/chunks/162.js +0 -1
  325. package/.next/server/chunks/1845.js +0 -462
  326. package/.next/server/chunks/2341.js +0 -1
  327. package/.next/server/chunks/260.js +0 -1
  328. package/.next/server/chunks/288.js +0 -1
  329. package/.next/server/chunks/2960.js +0 -14
  330. package/.next/server/chunks/3050.js +0 -18
  331. package/.next/server/chunks/3056.js +0 -1
  332. package/.next/server/chunks/3131.js +0 -1
  333. package/.next/server/chunks/3234.js +0 -869
  334. package/.next/server/chunks/3266.js +0 -15
  335. package/.next/server/chunks/3550.js +0 -1
  336. package/.next/server/chunks/4574.js +0 -1
  337. package/.next/server/chunks/4616.js +0 -479
  338. package/.next/server/chunks/4619.js +0 -1
  339. package/.next/server/chunks/4804.js +0 -1
  340. package/.next/server/chunks/4832.js +0 -2
  341. package/.next/server/chunks/5060.js +0 -1
  342. package/.next/server/chunks/5614.js +0 -1
  343. package/.next/server/chunks/6431.js +0 -1
  344. package/.next/server/chunks/6658.js +0 -1
  345. package/.next/server/chunks/6706.js +0 -1
  346. package/.next/server/chunks/6753.js +0 -1
  347. package/.next/server/chunks/683.js +0 -1
  348. package/.next/server/chunks/6873.js +0 -1
  349. package/.next/server/chunks/7236.js +0 -4
  350. package/.next/server/chunks/73.js +0 -17
  351. package/.next/server/chunks/7514.js +0 -1
  352. package/.next/server/chunks/7589.js +0 -22
  353. package/.next/server/chunks/7621.js +0 -12
  354. package/.next/server/chunks/7622.js +0 -1
  355. package/.next/server/chunks/7949.js +0 -1
  356. package/.next/server/chunks/7971.js +0 -1
  357. package/.next/server/chunks/7989.js +0 -1
  358. package/.next/server/chunks/7993.js +0 -21
  359. package/.next/server/chunks/8497.js +0 -1
  360. package/.next/server/chunks/850.js +0 -1
  361. package/.next/server/chunks/8623.js +0 -1
  362. package/.next/server/chunks/8762.js +0 -15
  363. package/.next/server/chunks/8846.js +0 -1
  364. package/.next/server/chunks/9676.js +0 -1
  365. package/.next/server/chunks/9680.js +0 -1
  366. package/.next/server/chunks/9969.js +0 -3
  367. package/.next/static/chunks/215-18ea748d2ff2caff.js +0 -1
  368. package/.next/static/chunks/27-b49ec46cfcce75b7.js +0 -1
  369. package/.next/static/chunks/2989-2dd9a66d007a96e8.js +0 -4
  370. package/.next/static/chunks/3219-92e75397858f3f1f.js +0 -1
  371. package/.next/static/chunks/4263-adecb5b466380b6e.js +0 -1
  372. package/.next/static/chunks/4643-d0ab4088e129651f.js +0 -1
  373. package/.next/static/chunks/6834-4759af1ce7d95fb6.js +0 -32
  374. package/.next/static/chunks/7555-d2209e697b0a798e.js +0 -1
  375. package/.next/static/chunks/8370-e88907d9c72435e7.js +0 -12
  376. package/.next/static/chunks/9219-4a39a98b5502d9d1.js +0 -1
  377. package/.next/static/chunks/9562-4b50b4e408bc0a42.js +0 -1
  378. package/.next/static/chunks/9690-53d5222618cbeddb.js +0 -1
  379. package/.next/static/chunks/app/(app)/activity/page-93d4012627ea70d5.js +0 -1
  380. package/.next/static/chunks/app/(app)/agents/[handle]/page-bfe740784bdf239c.js +0 -1
  381. package/.next/static/chunks/app/(app)/code/page-5e24874f11857823.js +0 -1
  382. package/.next/static/chunks/app/(app)/config/page-12c5487a8d55c2c2.js +0 -1
  383. package/.next/static/chunks/app/(app)/costs/page-6edcec363617f5ef.js +0 -1
  384. package/.next/static/chunks/app/(app)/cron/page-f9167770757921f7.js +0 -1
  385. package/.next/static/chunks/app/(app)/dashboard/page-103f172e762911d1.js +0 -1
  386. package/.next/static/chunks/app/(app)/docs/[id]/page-eaae80c3d47e1ba7.js +0 -1
  387. package/.next/static/chunks/app/(app)/docs/page-87457e514ea7de32.js +0 -1
  388. package/.next/static/chunks/app/(app)/error-988cd28480809861.js +0 -1
  389. package/.next/static/chunks/app/(app)/github/page-ff62b7618c594632.js +0 -1
  390. package/.next/static/chunks/app/(app)/goals/page-d4d854c091020a92.js +0 -1
  391. package/.next/static/chunks/app/(app)/inbox/page-1bcfc50e9df5ed6f.js +0 -12
  392. package/.next/static/chunks/app/(app)/knowledge/page-0a55ce74e274817c.js +0 -1
  393. package/.next/static/chunks/app/(app)/layout-825ba765e8034dfb.js +0 -1
  394. package/.next/static/chunks/app/(app)/models/page-cd077c548916b8cb.js +0 -1
  395. package/.next/static/chunks/app/(app)/notifications/page-c5c7945f6f6f18d6.js +0 -12
  396. package/.next/static/chunks/app/(app)/org/page-a83804854bd0d44a.js +0 -12
  397. package/.next/static/chunks/app/(app)/organizations/page-b38db8e364e3a108.js +0 -1
  398. package/.next/static/chunks/app/(app)/page-733340fec4cd0173.js +0 -1
  399. package/.next/static/chunks/app/(app)/planner/page-06b2841d0438d92d.js +0 -1
  400. package/.next/static/chunks/app/(app)/plugins/page-535ed062643077fc.js +0 -1
  401. package/.next/static/chunks/app/(app)/pm/page-dc0296761e1af17c.js +0 -1
  402. package/.next/static/chunks/app/(app)/profile/page-cef1aa72ffc02e9c.js +0 -1
  403. package/.next/static/chunks/app/(app)/pulse/page-d4bdec1709913581.js +0 -1
  404. package/.next/static/chunks/app/(app)/reports/[id]/page-f9167770757921f7.js +0 -1
  405. package/.next/static/chunks/app/(app)/reports/page-5c37a53bbd4fd1c3.js +0 -1
  406. package/.next/static/chunks/app/(app)/routines/page-e274160cfbb3c594.js +0 -1
  407. package/.next/static/chunks/app/(app)/search/page-f0e082b9b0402981.js +0 -1
  408. package/.next/static/chunks/app/(app)/security/page-a12f04656bde8aad.js +0 -1
  409. package/.next/static/chunks/app/(app)/skills/page-583f9780fa981aa8.js +0 -1
  410. package/.next/static/chunks/app/(app)/tasks/page-7bb09650b84e0755.js +0 -1
  411. package/.next/static/chunks/app/(app)/test-dev/page-ce66efbb83b2ed21.js +0 -1
  412. package/.next/static/chunks/app/(app)/update/page-6a8082f1c1b3b762.js +0 -1
  413. package/.next/static/chunks/app/(auth)/login/page-b512c906a1566d8c.js +0 -1
  414. package/.next/static/chunks/app/(auth)/onboarding/page-8f6bf1259bb5aab5.js +0 -1
  415. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +0 -1
  416. package/.next/static/chunks/app/api/locks/acquire/route-eacef2b697bd0982.js +0 -1
  417. package/.next/static/chunks/app/api/models/progress/route-eacef2b697bd0982.js +0 -1
  418. package/.next/static/chunks/app/api/passkey/authenticate/options/route-eacef2b697bd0982.js +0 -1
  419. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-eacef2b697bd0982.js +0 -1
  420. package/.next/static/chunks/app/api/passkey/register/options/route-eacef2b697bd0982.js +0 -1
  421. package/.next/static/chunks/app/api/passkey/register/verify/route-eacef2b697bd0982.js +0 -1
  422. package/.next/static/chunks/app/api/stream/route-eacef2b697bd0982.js +0 -1
  423. package/.next/static/chunks/app/api/sync/file/route-eacef2b697bd0982.js +0 -1
  424. package/.next/static/chunks/app/api/telegram/poll/route-eacef2b697bd0982.js +0 -1
  425. package/.next/static/chunks/app/api/upload/route-eacef2b697bd0982.js +0 -1
  426. package/.next/static/chunks/app/api/v1/[[...path]]/route-eacef2b697bd0982.js +0 -1
  427. package/.next/static/chunks/app/error-09899a13c38b6e89.js +0 -1
  428. package/.next/static/chunks/app/global-error-c2ea8fef715f226d.js +0 -1
  429. package/.next/static/chunks/app/layout-e6008e66aea1a849.js +0 -1
  430. package/.next/static/chunks/main-722e16032e7764d1.js +0 -5
  431. package/.next/static/chunks/main-app-761880af2b6f1962.js +0 -1
  432. package/.next/static/chunks/next/dist/client/components/builtin/app-error-eacef2b697bd0982.js +0 -1
  433. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-eacef2b697bd0982.js +0 -1
  434. package/.next/static/chunks/next/dist/client/components/builtin/not-found-eacef2b697bd0982.js +0 -1
  435. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-eacef2b697bd0982.js +0 -1
  436. package/.next/static/chunks/webpack-222e3894b78c67db.js +0 -1
  437. /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_buildManifest.js +0 -0
  438. /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_ssgManifest.js +0 -0
@@ -0,0 +1,21 @@
1
+ "use strict";exports.id=8868,exports.ids=[8868],exports.modules={3825:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(26021);let e=(0,d.createServerReference)("405997874720b9369fe1d0c23affd20f712cca846f",d.callServer,void 0,d.findSourceMapURL,"listCatalogModels")},18834:(a,b,c)=>{c.d(b,{m:()=>i});var d=c(40201),e=c(98604),f=c(77758),g=c(98661),h=c(71955);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))]})]})}},26670:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(26021);let e=(0,d.createServerReference)("4093a638bbf25c217b2dcd7a60e3863af53581f4f6",d.callServer,void 0,d.findSourceMapURL,"pullModel")},43101:(a,b,c)=>{c.d(b,{aO:()=>H,AO:()=>M,EC:()=>O,uR:()=>L,Po:()=>J,iw:()=>P,xf:()=>Q,x1:()=>I,WU:()=>N});var d=c(80501),e=c(77598),f=c(73591),g=c(3770),h=c(54813),i=c(406),j=c(96405),k=c(39522),l=c(39639),m=c(81585);async function n(a,b,c=12e3){let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{let c,e=await fetch(a,{headers:b,signal:d.signal}),f=await e.text();try{c=JSON.parse(f)}catch{c=void 0}return{ok:e.ok,status:e.status,json:c,error:e.ok?void 0:f.slice(0,200)||e.statusText}}catch(a){return{ok:!1,status:0,error:a instanceof Error?a.message:String(a)}}finally{clearTimeout(e)}}function o(a){return a&&"object"==typeof a?Array.isArray(a.data)?a.data.length:Array.isArray(a.models)?a.models.length:0:0}async function p(a,b){let c=a.defaultAdapter;if(c.startsWith("cli_")){let a=(0,m.hW)(c);return await (0,m.$g)(a)?{ok:!0,count:(m.w5[c]??m.w5.cli_claude_code).length}:{ok:!1,count:0,error:`${a} CLI not found on PATH`}}if("local_ollama"===c||"ollama"===a.id||"ollama_openai"===a.id){let b=a.baseUrl||"http://127.0.0.1:11434",c=await n(b.replace(/\/$/,"")+"/api/tags",{});return c.ok?{ok:!0,count:o(c.json)}:{ok:!1,count:0,error:c.error||"Ollama not reachable at "+b}}if("local_runtime"===a.category){let c=a.baseUrl||"http://127.0.0.1:8080",d=await n(c.replace(/\/$/,"")+"/v1/models",b?{Authorization:"Bearer "+b}:{});return d.ok?{ok:!0,count:o(d.json)}:{ok:!1,count:0,error:d.error||"local runtime not reachable"}}if(!b)return{ok:!1,count:0,error:"no API key in vault — connect with a key first"};if("http_anthropic"===c||"anthropic"===a.id){let a=await n("https://api.anthropic.com/v1/models",{"x-api-key":b,"anthropic-version":"2023-06-01"});return a.ok?{ok:!0,count:o(a.json)}:{ok:!1,count:0,error:a.error||"auth failed ("+a.status+")"}}let d=(a.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),e=d.endsWith("/models")?d:d+(d.includes("/v1")?"/models":"/v1/models"),f=await n(e,{Authorization:"Bearer "+b});return f.ok?{ok:!0,count:o(f.json)}:{ok:!1,count:0,error:f.error||"auth failed ("+f.status+")"}}var q=c(73024),r=c(76760),s=c(37989);let t={anthropic:"anthropic",openai:"openai",google_gemini:"google",xai_grok:"xai",deepseek:"deepseek",cohere:"cohere",groq:"groq",nvidia_nim:"nvidia",together:"togetherai",fireworks:"fireworks-ai",cerebras:"cerebras",perplexity:"perplexity",openrouter:"openrouter",mistral:"mistral",moonshot:"moonshotai",dashscope:"alibaba",zhipu:"zhipuai",azure_openai:"azure",aws_bedrock:"amazon-bedrock",vertex_ai:"google-vertex",claude_code:"anthropic",gemini_cli:"google",codex_cli:"openai"};function u(a){return t[a]?t[a]:a.replace(/_(grok|gemini|nim|cli|openai|api|server|rt)$/g,"").replace(/_/g,"-")}let v={anthropic:["sonnet-4","sonnet","opus-4","opus"],openai:["gpt-5.2","gpt-5.1","gpt-5","gpt-4.1","o4"],google:["gemini-3-pro","gemini-3","gemini-2.5-pro","pro"],xai:["grok-4","grok-3","grok"],groq:["llama-4","llama-3.3","llama-3.1"],deepseek:["deepseek-chat","deepseek-v3","deepseek-reasoner"],mistral:["mistral-large","mistral-medium"],openrouter:["claude-sonnet","gpt-5","gemini"]},w=(a,b,c,d,e,f,g,h)=>({id:a,name:b,context:c,outputLimit:d,inputCost:e,outputCost:f,caps:{reasoning:!!g.reasoning,tools:!!g.tools,vision:!!g.vision},released:h}),x={anthropic:[w("claude-opus-4-8","Claude Opus 4.8",1e6,64e3,5,25,{reasoning:!0,tools:!0,vision:!0},"2026-02-01"),w("claude-opus-4-7","Claude Opus 4.7",1e6,64e3,5,25,{reasoning:!0,tools:!0,vision:!0},"2025-12-01"),w("claude-sonnet-4-6","Claude Sonnet 4.6",1e6,64e3,3,15,{reasoning:!0,tools:!0,vision:!0},"2026-01-15"),w("claude-haiku-4-5","Claude Haiku 4.5",2e5,32e3,1,5,{tools:!0,vision:!0},"2025-10-01")],openai:[w("gpt-5.2","GPT-5.2",4e5,128e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2026-03-01"),w("gpt-5.1","GPT-5.1",4e5,128e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2025-12-01"),w("gpt-5","GPT-5",4e5,128e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2025-08-01"),w("o4-mini","o4-mini",2e5,1e5,1.1,4.4,{reasoning:!0,tools:!0},"2025-04-01")],google:[w("gemini-3-pro","Gemini 3 Pro",2e6,64e3,2,12,{reasoning:!0,tools:!0,vision:!0},"2026-02-01"),w("gemini-3-flash","Gemini 3 Flash",1e6,64e3,.3,2.5,{tools:!0,vision:!0},"2026-02-01"),w("gemini-2.5-pro","Gemini 2.5 Pro",2e6,64e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2025-06-01")],xai:[w("grok-4.3","Grok 4.3",256e3,64e3,3,15,{reasoning:!0,tools:!0,vision:!0},"2026-02-01"),w("grok-4","Grok 4",256e3,64e3,3,15,{reasoning:!0,tools:!0,vision:!0},"2025-09-01"),w("grok-3","Grok 3",131072,32e3,3,15,{tools:!0,vision:!0},"2025-02-01")],deepseek:[w("deepseek-chat","DeepSeek Chat",128e3,8e3,.27,1.1,{tools:!0},"2025-12-01"),w("deepseek-reasoner","DeepSeek Reasoner",128e3,64e3,.55,2.19,{reasoning:!0,tools:!0},"2025-12-01")],groq:[w("llama-4-scout","Llama 4 Scout",131072,8e3,.11,.34,{tools:!0,vision:!0},"2025-04-01"),w("llama-3.3-70b","Llama 3.3 70B",131072,32e3,.59,.79,{tools:!0},"2024-12-01")]},y=null;function z(){return(0,r.join)((0,s.r$)(),"cache","models-dev.json")}async function A(){try{let a=await fetch("https://models.dev/api.json",{signal:AbortSignal.timeout(1e4),headers:{accept:"application/json"}});if(!a.ok)return null;let b=await a.json();if(!b||"object"!=typeof b)return null;let c={};for(let[a,d]of Object.entries(b)){let b=d?.models,e=function(a){if(!a||"object"!=typeof a)return[];let b=[];for(let[c,d]of Object.entries(a)){let a=d??{},e=String(a.id??c),f=e.includes("/")?e.split("/").pop():e;if(!f)continue;let g=a.modalities??{},h=Array.isArray(g.input)?g.input:[],i=a.limit??{},j=a.cost??{},k={reasoning:!0===a.reasoning,tools:!0===a.tool_call,vision:!0===a.attachment||h.includes("image")};b.push({id:f,name:String(a.name??f),context:Number(i.context??0)||0,outputLimit:Number(i.output??0)||0,inputCost:Number(j.input??0)||0,outputCost:Number(j.output??0)||0,caps:k,released:"string"==typeof a.release_date?a.release_date:""})}return b}(b);e.length&&(c[a]=e)}return Object.keys(c).length?c:null}catch{return null}}async function B(){if(y&&Date.now()-y.at<864e5)return y.data;let a=function(){try{let a=z();if(!(0,q.existsSync)(a))return null;let b=JSON.parse((0,q.readFileSync)(a,"utf8"));if(!b?.data||"object"!=typeof b.data)return null;return{at:Number(b.at??(0,q.statSync)(a).mtimeMs),data:b.data}}catch{return null}}();if(a&&Date.now()-a.at<864e5)return y=a,a.data;let b=await A();if(b){y={at:Date.now(),data:b};try{(0,q.mkdirSync)((0,r.join)((0,s.r$)(),"cache"),{recursive:!0}),(0,q.writeFileSync)(z(),JSON.stringify({at:Date.now(),data:b}),"utf8")}catch{}return b}return a?(y=a,a.data):{}}async function C(a){let b=u(a),c=await B();return c[b]?.length?c[b]:x[b]??[]}async function D(a,b,c=9e3){try{let d=await fetch(a,{headers:b,signal:AbortSignal.timeout(c)});if(!d.ok)return null;return await d.json()}catch{return null}}async function E(a){let{catalogId:b,adapter:c,baseUrl:d,apiKey:e}=a;if(c.startsWith("cli_"))return"cli_opencode"===c?(await (0,m.ZB)("opencode")).map(a=>({id:a})):"cli_aider"===c?(await (0,m.ZB)("aider")).map(a=>({id:a})):null;if(/ollama/i.test(b)||c.includes("ollama")){let a=(d||"http://127.0.0.1:11434").replace(/\/$/,"").replace(/\/v1$/,""),b=await D(`${a}/api/tags`,{});return b?(b.models??[]).map(a=>({id:String(a.name??"")})).filter(a=>a.id):[]}if(!d)return null;let f=d.replace(/\/$/,""),g="http_anthropic"===c||"anthropic"===b,h=g?"https://api.anthropic.com/v1/models":f.endsWith("/models")?f:f+(f.includes("/v1")?"/models":"/v1/models"),i=g?e?{"x-api-key":e,"anthropic-version":"2023-06-01"}:{}:e?{authorization:`Bearer ${e}`}:{},j=await D(h,i);return j?(Array.isArray(j.data)?j.data:Array.isArray(j.models)?j.models:[]).map(a=>{let b=String(a.id??a.name??"");if(!b)return null;let c={id:b};"string"==typeof a.display_name?c.name=a.display_name:"string"==typeof a.name&&(c.name=a.name),"number"==typeof a.context_length&&(c.context=a.context_length);let d=a.pricing;if(d){let a=Number(d.prompt),b=Number(d.completion);Number.isFinite(a)&&a>0&&(c.inputCost=1e6*a),Number.isFinite(b)&&b>0&&(c.outputCost=1e6*b)}return c}).filter(a=>!!a).slice(0,200):[]}async function F(){let a=await B(),b=new Map;for(let c of Object.values(a))for(let a of c){let c=a.id.toLowerCase();b.has(c)||b.set(c,a)}return b}async function G(a,b){let c=await C(a);if(!b||0===b.length)return c;let d=new Map;for(let a of c)d.set(a.id.toLowerCase(),a);let e=await F(),f=a=>{let b=a.toLowerCase(),c=a.includes("/")?a.split("/").pop().toLowerCase():b;return d.get(b)??d.get(c)??e.get(b)??e.get(c)},g=[];for(let a of b){let b=f(a.id);g.push({id:a.id,name:a.name||b?.name||a.id,context:a.context??b?.context??0,outputLimit:b?.outputLimit??0,inputCost:a.inputCost??b?.inputCost??0,outputCost:a.outputCost??b?.outputCost??0,caps:b?.caps??{reasoning:!1,tools:!1,vision:!1},released:b?.released??""})}return g}async function H(a,b){let{workspace:c}=await (0,j.nP)(),d=(0,l.kH)(a);if(!d)return;let f=(0,e.randomUUID)();await h.db.insert(i.provider).values({id:f,workspaceId:c.id,catalogId:a,adapter:d.defaultAdapter,kind:"cli"===d.category?"cli":"local_runtime"===d.category?"local":"cloud",auth:d.connectionTypes.includes("api_key")?"api_key":d.connectionTypes[0],status:"needs_sync",syncStatus:d.supportsModelSync?"implemented":"manual"}),b&&await (0,k.IW)(c.id,`${a}_api_key`,b,f),(0,g.revalidatePath)("/models"),await I(f)}async function I(a){let b,{workspace:c}=await (0,j.nP)(),[d]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,c.id)));if(!d)return{ok:!1,error:"not found"};let e=(0,l.kH)(d.catalogId);if(!e)return{ok:!1,error:"unknown provider"};let n=await (0,k.r6)(c.id,`${d.catalogId}_api_key`),o=await p(e,n),q=null;if("cli"===e.category){let a=(0,m.hW)(e.defaultAdapter);b=(q=await (0,m.$g)(a).catch(()=>null))?await (0,m.Kp)(a).catch(()=>"unknown"):"needs_login"}else b="local_runtime"===e.category?o.ok?"ready":"unknown":n&&o.ok?"ready":"needs_key";return await h.db.update(i.provider).set({status:o.ok?"connected":"error",modelCount:o.count,lastSync:new Date,cliVersion:q,authState:b}).where((0,f.eq)(i.provider.id,a)),o.ok&&await J(a).catch(()=>{}),(0,g.revalidatePath)("/models"),o}async function J(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));if(!c)return{ok:!1,count:0,error:"not found"};let d=await K(c);return(0,g.revalidatePath)("/models"),d}async function K(a){let b,c,d,g=(0,l.kH)(a.catalogId);if(!g)return{ok:!1,count:0,error:"unknown provider"};let j=await (0,k.r6)(a.workspaceId,`${a.catalogId}_api_key`),n="cli"===g.category;try{b=await E({catalogId:a.catalogId,adapter:a.adapter,baseUrl:g.baseUrl,apiKey:j})}catch{b=null}if(n){let e=(0,m.hW)(a.adapter);d=(c=await (0,m.$g)(e).catch(()=>null))?await (0,m.Kp)(e).catch(()=>"unknown"):"needs_login",null===b&&(b=(m.w5[a.adapter]??[]).filter(a=>"(default)"!==a).map(a=>({id:a})))}if(null===b)return{ok:!0,count:0};let o=await G(a.catalogId,b),p=new Date,q=o.length?function(a,b){if(!b.length)return"";let c=v[u(a)];if(c)for(let a of c){let c=b.filter(b=>b.id.toLowerCase().includes(a));if(c.length)return c.sort((a,b)=>(b.released||"").localeCompare(a.released||"")),c[0].id}let d=b.filter(a=>a.released);return d.length?(d.sort((a,b)=>b.released.localeCompare(a.released)),d[0].id):b[0].id}(a.catalogId,o):null;if(o.length)await h.db.delete(i.providerModel).where((0,f.eq)(i.providerModel.providerId,a.id)),await h.db.insert(i.providerModel).values(o.map(b=>({id:(0,e.randomUUID)(),workspaceId:a.workspaceId,providerId:a.id,catalogId:a.catalogId,modelId:b.id,name:b.name,context:b.context,outputLimit:b.outputLimit,inputCost:b.inputCost,outputCost:b.outputCost,caps:b.caps,released:b.released,isDefault:b.id===q,lastSeen:p})));else if(!n)return{ok:!1,count:0,error:"no models returned"};let r=n&&!c?"needs_sync":"connected";return await h.db.update(i.provider).set({status:r,modelCount:o.length||(n?a.modelCount:0),lastSync:p,defaultModel:q||a.defaultModel,...n?{cliVersion:c??null,authState:d??null}:{}}).where((0,f.eq)(i.provider.id,a.id)),{ok:!0,count:o.length}}async function L(a=12){let b,c=new Date(Date.now()-60*a*6e4);try{b=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.status,"connected"),(0,f.or)((0,f.kZ)(i.provider.lastSync),(0,f.lt)(i.provider.lastSync,c))))}catch{return{refreshed:0}}let d=0;for(let a of b.slice(0,50))try{let b=await K(a);b.ok&&b.count>0&&d++}catch{}return{refreshed:d}}async function M(a){let{workspace:b}=await (0,j.nP)(),c=(await h.db.select().from(i.providerModel).where((0,f.Uo)((0,f.eq)(i.providerModel.providerId,a),(0,f.eq)(i.providerModel.workspaceId,b.id)))).map(a=>({id:a.modelId,name:a.name,context:a.context,outputLimit:a.outputLimit,inputCost:a.inputCost,outputCost:a.outputCost,caps:a.caps??{reasoning:!1,tools:!1,vision:!1},released:a.released,isDefault:a.isDefault}));return c.sort((a,b)=>Number(b.isDefault)-Number(a.isDefault)||(b.released||"").localeCompare(a.released||"")||a.name.localeCompare(b.name)),{models:c}}async function N(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));if(!c)return{ok:!1,error:"not found"};let d=(0,l.kH)(c.catalogId);if(!d)return{ok:!1,error:"unknown provider"};let e=await (0,k.r6)(b.id,`${c.catalogId}_api_key`),m=await p(d,e);return await h.db.update(i.provider).set({status:m.ok?"connected":"error"}).where((0,f.eq)(i.provider.id,a)),(0,g.revalidatePath)("/models"),{ok:m.ok,error:m.error}}async function O(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));if(!c)return{models:[],error:"not found"};let d=(0,l.kH)(c.catalogId);if(!d?.baseUrl)return{models:[],error:"no public endpoint for this provider"};let e=await (0,k.r6)(b.id,`${c.catalogId}_api_key`),g=d.baseUrl.replace(/\/$/,"");try{let a=/ollama/i.test(c.catalogId)||c.adapter.includes("ollama")?`${g.replace(/\/v1$/,"")}/api/tags`:`${g}/models`,b=await fetch(a,{headers:e?{authorization:`Bearer ${e}`}:{},signal:AbortSignal.timeout(8e3)});if(!b.ok)return{models:[],error:`endpoint ${b.status}`};let d=await b.json();return{models:(d.data??d.models??[]).map(a=>a.id??a.name??"").filter(Boolean).slice(0,80)}}catch(b){let a=String(b instanceof Error?b.message:b);return{models:[],error:/abort|fetch failed|ECONN/i.test(a)?"endpoint unreachable":a}}}async function P(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));c&&await (0,k.Kh)(b.id,`${c.catalogId}_api_key`),await h.db.delete(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id))),(0,g.revalidatePath)("/models")}async function Q(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));c&&(await (0,k.Kh)(b.id,`${c.catalogId}_api_key`),await h.db.update(i.provider).set({auth:"none",status:"needs_sync",modelCount:0}).where((0,f.eq)(i.provider.id,a)),(0,g.revalidatePath)("/models"))}(0,c(64185).D)([H,I,J,L,M,N,O,P,Q]),(0,d.A)(H,"6083e8782c991e56c33bf2670e8a0c3f540168ac60",null),(0,d.A)(I,"40a9d05cb5ccd8860e0235a6edcb63d42e09a8745f",null),(0,d.A)(J,"404323bd4e9f4a2de308837b15655a8d7c9415fac5",null),(0,d.A)(L,"40640aa1e259ff39b3b64049c06bb50eda4cc87ea7",null),(0,d.A)(M,"405997874720b9369fe1d0c23affd20f712cca846f",null),(0,d.A)(N,"4085d3346869dc3e5fecc6670fc814d1b523fc29b3",null),(0,d.A)(O,"40e263de90ca0143c45b4e89eb82cbaf77fb9dc6fc",null),(0,d.A)(P,"4014593f48d8833be86e0b7dff2099b314d489d398",null),(0,d.A)(Q,"408ba223aec7ad60b6fb11bdea24afd7371255d575",null)},47255:(a,b,c)=>{c.d(b,{L2:()=>e,Ov:()=>f});let d={cli_claude_code:[{id:"opus",label:"Claude Opus",version:"4.8",note:"most capable"},{id:"sonnet",label:"Claude Sonnet",version:"4.6",note:"balanced"},{id:"haiku",label:"Claude Haiku",version:"4.5",note:"fast"}],cli_codex:[{id:"gpt-5-codex",label:"GPT-5 Codex",version:"5"},{id:"o4-mini",label:"o4-mini",version:"o4"}],cli_gemini:[{id:"gemini-2.5-pro",label:"Gemini Pro",version:"2.5"},{id:"gemini-2.5-flash",label:"Gemini Flash",version:"2.5"}],cli_openclaw:[{id:"(default)",label:"OpenClaw",version:"default",note:"configured provider"},{id:"openai/gpt-5.4",label:"GPT",version:"5.4"},{id:"anthropic/claude-sonnet-4",label:"Claude Sonnet",version:"4"}],cli_hermes:[{id:"(default)",label:"Hermes",version:"default",note:"configured provider"},{id:"anthropic/claude-sonnet-4.6",label:"Claude Sonnet",version:"4.6"},{id:"openai/gpt-5.5",label:"GPT",version:"5.5"}],cli_aider:[{id:"(default)",label:"Aider",version:"default",note:"configured provider"},{id:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet",version:"4.6"},{id:"openai/gpt-5.2",label:"GPT",version:"5.2"},{id:"deepseek/deepseek-chat",label:"DeepSeek Chat",version:""}],cli_opencode:[{id:"(default)",label:"OpenCode",version:"default",note:"configured provider"},{id:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet",version:"4.6"},{id:"openai/gpt-5.2",label:"GPT",version:"5.2"}],cli_copilot:[{id:"(default)",label:"Copilot",version:"default",note:"configured provider"},{id:"claude-sonnet-4.5",label:"Claude Sonnet",version:"4.5"},{id:"gpt-5",label:"GPT",version:"5"}],cli_cursor:[{id:"(default)",label:"Cursor",version:"default",note:"configured provider"},{id:"claude-4.5-sonnet",label:"Claude Sonnet",version:"4.5"},{id:"gpt-5",label:"GPT",version:"5"}],cli_cline:[{id:"(default)",label:"Cline",version:"default",note:"configured provider"}],cli_kilo:[{id:"(default)",label:"Kilo Code",version:"default",note:"configured provider"}]};function e(a){return d[a]??null}function f(a){if(!a)return{label:"",version:""};let b=a.replace(/[-_.\s]\d+(?:x\d+)?[bm]\b/i,""),c=b.match(/(\d+(?:[.\-]\d+){0,2})(?!.*\d)/),d=c?c[1].replace(/-/g,"."):"";return{label:(c?b.slice(0,c.index).replace(/[-_.\s]+$/,""):b).split(/[-_.\s]+/).filter(Boolean).map(a=>/^(gpt|llm|api|ai)$/i.test(a)?a.toUpperCase():a.charAt(0).toUpperCase()+a.slice(1)).join(" ")||a,version:d}}},54768:(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})},85304:(a,b,c)=>{c.d(b,{bv:()=>t,eH:()=>q,iw:()=>o,jM:()=>n,kq:()=>p,yS:()=>s,z6:()=>r});var d=c(80501),e=c(73591),f=c(3770),g=c(54813),h=c(406),i=c(96405),j=c(37989),k=c(45900),l=c(54768),m=c(41581);async function n(a,b){let{workspace:c}=await (0,i.nP)();if(a===b)return;let d=Object.fromEntries((await g.db.select().from(h.agent).where((0,e.eq)(h.agent.workspaceId,c.id))).map(a=>[a.id,a])),j=b,k=new Set;for(;j;){if(j===a)return;if(k.has(j))break;k.add(j),j=d[j]?.reportsTo??null}await g.db.update(h.agent).set({reportsTo:b}).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,c.id))),(0,f.revalidatePath)("/org")}async function o(a,b){let{workspace:c}=await (0,i.nP)();if(a===b)return;let d=Object.fromEntries((await g.db.select().from(h.agent).where((0,e.eq)(h.agent.workspaceId,c.id))).map(a=>[a.handle,a])),j=d[a];if(!j||null!==b&&!d[b])return;let k=b,l=new Set;for(;k;){if(k===a)return;if(l.has(k))break;l.add(k),k=d[k]?.reportsTo??null}await g.db.update(h.agent).set({reportsTo:b}).where((0,e.Uo)((0,e.eq)(h.agent.id,j.id),(0,e.eq)(h.agent.workspaceId,c.id))),(0,f.revalidatePath)("/org")}async function p(a,b){let{org:c,workspace:d}=await (0,i.nP)(),[n]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,d.id)));if(!n)return;await g.db.update(h.agent).set({...void 0!==b.adapter?{adapter:b.adapter}:{},...void 0!==b.model?{model:b.model}:{},...void 0!==b.temperature?{temperature:b.temperature}:{},...void 0!==b.dailyCapUsd?{dailyCapUsd:b.dailyCapUsd}:{},...void 0!==b.tierFloor?{tierFloor:b.tierFloor}:{}}).where((0,e.eq)(h.agent.id,a));let o=`.claude/agents/${n.handle}/Agent.md`,p=(0,j.sL)(c.id,o);p&&(void 0!==b.adapter&&(p=(0,l.tT)(p,"provider",b.adapter)),void 0!==b.model&&(p=(0,l.tT)(p,"model",b.model)),void 0!==b.temperature&&(p=(0,l.tT)(p,"temperature",b.temperature),p=(0,l.c4)(p,"Behavior",(0,m.T)(b.temperature))),void 0!==b.dailyCapUsd&&(p=(0,l.tT)(p,"dailyCapUsd",b.dailyCapUsd)),void 0!==b.tierFloor&&(p=(0,l.tT)(p,"tierFloor",b.tierFloor)),await (0,k.g)(c.id,o,p)),(0,f.revalidatePath)("/agents/[handle]","page")}async function q(a,b){let{org:c,workspace:d}=await (0,i.nP)(),[k]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,d.id)));if(k){if(k.image&&k.image.startsWith("uploads/")&&k.image!==b)try{(0,j.EX)(c.id,k.image.split("/").slice(0,2).join("/"))}catch{}await g.db.update(h.agent).set({image:b??null}).where((0,e.eq)(h.agent.id,a)),(0,f.revalidatePath)("/agents/[handle]","page"),(0,f.revalidatePath)("/","layout")}}async function r(a,b){let{org:c,workspace:d}=await (0,i.nP)(),[m]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,d.id)));if(!m)return;await g.db.update(h.agent).set({persona:b}).where((0,e.eq)(h.agent.id,a));let n=`.claude/agents/${m.handle}/Agent.md`,o=(0,j.sL)(c.id,n);o?(o=(0,l.a$)(o,"Identity",b.identity),o=(0,l.a$)(o,"Ritual",b.ritual),o=(0,l.c4)(o,"System prompt",b.systemPrompt)):o=`---
9
+ handle: ${m.handle}
10
+ name: ${m.name}
11
+ role: ${m.role}
12
+ ---
13
+ # ${m.name} — ${m.role}
14
+
15
+ **Identity:** ${b.identity}
16
+
17
+ **Ritual:** ${b.ritual}
18
+
19
+ ## System prompt
20
+ ${b.systemPrompt}
21
+ `,await (0,k.g)(c.id,n,o),(0,f.revalidatePath)("/agents/[handle]","page")}async function s(a,b,c){let{workspace:d}=await (0,i.nP)();await g.db.update(h.agent).set({orgX:Math.round(b),orgY:Math.round(c)}).where((0,e.Uo)((0,e.eq)(h.agent.handle,a),(0,e.eq)(h.agent.workspaceId,d.id)))}async function t(a,b){let{workspace:c}=await (0,i.nP)(),[d]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,c.id)));d&&(await g.db.update(h.agent).set({rag:b}).where((0,e.eq)(h.agent.id,a)),(0,f.revalidatePath)("/agents/[handle]","page"))}(0,c(64185).D)([n,o,p,q,r,s,t]),(0,d.A)(n,"604543199fec2a571a91382a85a61b0c241fd0eb97",null),(0,d.A)(o,"607e3496b53641b41f3bd623c3803b7ddfe678d5de",null),(0,d.A)(p,"60c6541bf6286491ad5a6e3132a34712a48aa982a5",null),(0,d.A)(q,"60b2f580e01aaa808d9c062582fc1425d838c7eb94",null),(0,d.A)(r,"6083d118144b20217b729a783e0ef76f29e877c5a0",null),(0,d.A)(s,"700f68955f11954b078f8222a6298e591273adc547",null),(0,d.A)(t,"60a0c632520396db3f167f2fccf6f544ab32fcfc0e",null)},86664:(a,b,c)=>{c.d(b,{k:()=>e});var d=c(26021);let e=(0,d.createServerReference)("60c6541bf6286491ad5a6e3132a34712a48aa982a5",d.callServer,void 0,d.findSourceMapURL,"saveAgentModel")},97187:(a,b,c)=>{c.d(b,{Y:()=>j});var d=c(40201),e=c(98604),f=c(18834),g=c(71955);let h={cli_claude_code:[{value:"opus",label:"Claude Opus \xb7 most capable"},{value:"sonnet",label:"Claude Sonnet \xb7 balanced"},{value:"haiku",label:"Claude Haiku \xb7 fast"}],cli_codex:[{value:"gpt-5-codex",label:"GPT-5 Codex"},{value:"o4-mini",label:"o4-mini"}],cli_gemini:[{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro"},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash"}],cli_openclaw:[{value:"(default)",label:"Configured default"},{value:"openai/gpt-5.4",label:"OpenAI \xb7 GPT-5.4"},{value:"anthropic/claude-sonnet-4",label:"Anthropic \xb7 Claude Sonnet 4"}],cli_hermes:[{value:"(default)",label:"Configured default"},{value:"anthropic/claude-sonnet-4.6",label:"Anthropic \xb7 Claude Sonnet 4.6"},{value:"openai/gpt-5.5",label:"OpenAI \xb7 GPT-5.5"}],cli_aider:[{value:"(default)",label:"Configured default"},{value:"anthropic/claude-sonnet-4-6",label:"Anthropic \xb7 Claude Sonnet 4.6"},{value:"openai/gpt-5.2",label:"OpenAI \xb7 GPT-5.2"},{value:"deepseek/deepseek-chat",label:"DeepSeek \xb7 Chat"}],cli_opencode:[{value:"(default)",label:"Configured default"},{value:"anthropic/claude-sonnet-4-6",label:"Anthropic \xb7 Claude Sonnet 4.6"},{value:"openai/gpt-5.2",label:"OpenAI \xb7 GPT-5.2"}],cli_copilot:[{value:"(default)",label:"Configured default"},{value:"claude-sonnet-4.5",label:"Claude Sonnet 4.5"},{value:"gpt-5",label:"GPT-5"}],cli_cursor:[{value:"(default)",label:"Configured default"},{value:"claude-4.5-sonnet",label:"Claude Sonnet 4.5"},{value:"gpt-5",label:"GPT-5"}],cli_cline:[{value:"(default)",label:"Configured default"}],cli_kilo:[{value:"(default)",label:"Configured default"}]};var i=c(47255);function j({adapter:a,value:b,onChange:c,providers:k}){let l=(0,g.k)(),m=function(a){let b=h[a]??null;if(!b)return null;let c=(0,i.L2)(a);return c?b.map(a=>{let b=c.find(b=>b.id===a.value);return b?{value:a.value,label:`${b.label} ${b.version}${b.note?" \xb7 "+b.note:""}`}:a}):b}(a),n=a.startsWith("local_"),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)("");k.find(b=>b.adapter===a);let s=n?[{value:b||"local",label:l("modelpicker.localGguf")}]:null,t=m??s??o??(b?[{value:b,label:b}]:[]),u=b&&!t.some(a=>a.value===b)?[{value:b,label:b},...t]:t;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.m,{mono:!0,value:b,options:u,placeholder:l("modelpicker.placeholder"),onChange:c}),q&&(0,d.jsx)("div",{className:"form-hint",style:{marginTop:4},children:q})]})}c(3825),c(98128)},98128:(a,b,c)=>{c.d(b,{E:()=>e});var d=c(26021);let e=(0,d.createServerReference)("40e263de90ca0143c45b4e89eb82cbaf77fb9dc6fc",d.callServer,void 0,d.findSourceMapURL,"listProviderModels")},98661:(a,b,c)=>{c.d(b,{W:()=>h});var d=c(40201),e=c(98604);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})}}};
@@ -1,10 +1,4 @@
1
- "use strict";exports.id=8823,exports.ids=[8823],exports.modules={18661:(a,b,c)=>{c.d(b,{NF:()=>t,PT:()=>u});var d=c(73024),e=c(76760),f=c(54679),g=c.n(f),h=c(1782),i=c(80280),j=c(25533),k=c(18612),l=c(3188),m=c(6404),n=c(99546),o=c(54033),p=c(90860);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}async function r(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 s(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 t(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 s(a,b,"cancelled"),await (0,o.TC)(a,b),await r(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 u(a,b,c){let f=await q(b,c);if(!f)return{ok:!1};let l=(0,k.HZ)(a),[t,u,v,w,x]=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)))]),y=v.map(a=>a.id),z=y.length?await i.db.select().from(j.taskStep).where((0,h.RV)(j.taskStep.taskId,y)):[],A=await (0,m.Y)(b,c),B=new(g()),C=0;for(let a of A){let b=(0,e.join)(l,a);if((0,d.existsSync)(b))try{B.addFile("files/"+a,(0,d.readFileSync)(b)),C++}catch{}}let D={goal:f,specs:t,issues:u,tasks:v,taskSteps:z,decisions:w,reports:x,fileCount:C,archivedAt:new Date().toISOString()},E=[`# Archived work — ${f.title}`,"",`Status at archive: ${f.status} \xb7 progress ${f.progress}%`,"",`## Specs (${t.length})`,...t.map(a=>`- ${a.key} ${a.title}`),"",`## Issues (${u.length})`,...u.map(a=>`- ${a.key} [${a.col}] ${a.title}`),"",`## Decisions (${w.length})`,...w.map(a=>`- ${a.text} (${a.by})`),"",`## Source files (${C})`,...A.map(a=>`- ${a}`),""].join("\n");B.addFile("MANIFEST.json",Buffer.from(JSON.stringify(D,null,2))),B.addFile("MANIFEST.md",Buffer.from(E));let F=(0,e.join)(l,"archives");(0,d.mkdirSync)(F,{recursive:!0});let G=`archives/${(f.title||"work").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40)||"work"}-${new Date().toISOString().slice(0,10)}-${c.slice(0,6)}.zip`;try{B.writeZip((0,e.join)(l,G))}catch(a){return console.error("[archiveGoalFor] zip failed:",a),{ok:!1}}return await i.db.update(j.goal).set({status:"archived",archivePath:G,archivedAt:new Date}).where((0,h.eq)(j.goal.id,c)),await s(b,c,"archived"),await (0,o.TC)(b,c),await r(b,c),await (0,n.j)(b,{text:`Archived goal: ${f.title} → ${G}`,by:"operator",source:"operator-instruction",goalId:c}),await (0,p.I)(b,{kind:"info",text:`Goal archived ${f.title}`,detail:`${C} files + manifest zipped to ${G}.`}),{ok:!0,path:G,title:f.title}}},55479:(a,b,c)=>{c.d(b,{PO:()=>p,TR:()=>o,mL:()=>n,mt:()=>q,wz:()=>m,yk:()=>r});var d=c(77598),e=c(1782),f=c(80280),g=c(25533),h=c(90860),i=c(99546),j=c(54033),k=c(863),l=c(26288);async function m(a,b){await f.db.update(g.plan).set({approved:!0,stage:6}).where((0,e.eq)(g.plan.workspaceId,b.id)),await f.db.update(g.issue).set({approved:!0}).where((0,e.eq)(g.issue.workspaceId,b.id)),await f.db.update(g.spec).set({approved:!0}).where((0,e.Uo)((0,e.eq)(g.spec.workspaceId,b.id),(0,e.eq)(g.spec.status,"active")));let m=await (0,l.s$)(a,b.id),n=await f.db.select().from(g.issue).where((0,e.eq)(g.issue.workspaceId,b.id));for(let a of(await f.db.delete(g.backlogItem).where((0,e.eq)(g.backlogItem.workspaceId,b.id)),n))await f.db.insert(g.backlogItem).values({id:(0,d.randomUUID)(),workspaceId:b.id,title:a.title,moscow:a.moscow??"Should",points:a.points});let o=`# Product backlog — ${b.name}
2
-
3
- _Groomed from the approved plan._
4
-
5
- ${n.map(a=>`- [ ] (${a.prio}) ${a.key} — ${a.title}`).join("\n")}
6
- `;try{await (0,k.g)(a,"PO/backlog.md",o)}catch(a){console.error("[approvePlanFor] backlog write failed:",a)}let[p]=await f.db.select().from(g.agent).where((0,e.Uo)((0,e.eq)(g.agent.workspaceId,b.id),(0,e.eq)(g.agent.handle,"ada"))),q=p??(await f.db.select().from(g.agent).where((0,e.eq)(g.agent.workspaceId,b.id)))[0];return q&&await f.db.insert(g.message).values({id:(0,d.randomUUID)(),workspaceId:b.id,channel:"room",fromKind:"agent",fromHandle:q.handle,text:`Plan approved — starting execution. ${m} task${1===m?"":"s"} queued; the team will work the board top to bottom. Turn on Run 24/7 to begin.`,createdAt:new Date}),await (0,h.I)(b.id,{kind:"done",text:"Plan approved — agents may start coding",detail:`${m} task${1===m?"":"s"} created from the plan.`}),await (0,i.j)(b.id,{text:`Plan approved — ${n.length} issues, ${m} tasks queued for execution`,by:"operator",source:"plan-approve"}),await (0,j.W_)(b.id,"plan",b.id),await (0,j.vG)(b.id,["spec","issue"]),Promise.resolve().then(c.bind(c,56053)).then(c=>c.groomBacklogFor(a,b)).catch(a=>console.error("[approvePlanFor] auto-groom failed:",a)),{made:m,issues:n.length}}async function n(a,b){await f.db.update(g.plan).set({auto247:b}).where((0,e.eq)(g.plan.workspaceId,a))}async function o(a,b){await f.db.update(g.plan).set({approved:!1,auto247:!1,stage:1}).where((0,e.eq)(g.plan.workspaceId,a)),await (0,j.W_)(a,"plan",a),await f.db.insert(g.notification).values({id:(0,d.randomUUID)(),workspaceId:a,kind:"info",text:"Plan sent back to Ada for revision",detail:b?.trim()?`Operator requested changes: ${b.trim().slice(0,280)}`:"The operator requested changes before any code is written."})}async function p(a){let[b,c,d,[h]]=await Promise.all([f.db.select({status:g.goal.status}).from(g.goal).where((0,e.eq)(g.goal.workspaceId,a.id)),f.db.select({col:g.issue.col}).from(g.issue).where((0,e.eq)(g.issue.workspaceId,a.id)),f.db.select({id:g.task.id}).from(g.task).where((0,e.Uo)((0,e.eq)(g.task.workspaceId,a.id),(0,e.eq)(g.task.col,"doing"))),f.db.select().from(g.plan).where((0,e.eq)(g.plan.workspaceId,a.id))]),i=b.filter(a=>"active"===a.status).length,j=c.filter(a=>"done"!==a.col).length,k=h?h.approved?"approved":"draft":"none";return`📊 ${a.name} — ${i} active goal(s) \xb7 ${j} open issue(s) \xb7 ${d.length} task(s) in flight \xb7 24/7 ${h?.auto247?"ON":"off"} \xb7 plan ${k}.`}async function q(a){let[b,c,d,h,[i]]=await Promise.all([f.db.select({title:g.goal.title,status:g.goal.status}).from(g.goal).where((0,e.eq)(g.goal.workspaceId,a.id)),f.db.select({status:g.spec.status}).from(g.spec).where((0,e.eq)(g.spec.workspaceId,a.id)),f.db.select({key:g.issue.key,title:g.issue.title,col:g.issue.col,prio:g.issue.prio}).from(g.issue).where((0,e.eq)(g.issue.workspaceId,a.id)),f.db.select({col:g.task.col}).from(g.task).where((0,e.eq)(g.task.workspaceId,a.id)),f.db.select().from(g.plan).where((0,e.eq)(g.plan.workspaceId,a.id))]),j=b.filter(a=>"active"===a.status),k=a=>d.filter(b=>b.col===a).length,l=h.filter(a=>"doing"===a.col).length,m=i?i.approved?"✅ approved":`📝 draft (stage ${i.stage})`:"none",n={high:3,med:2,low:1},o=d.filter(a=>"done"!==a.col).sort((a,b)=>n[b.prio]-n[a.prio]||a.key.localeCompare(b.key)).slice(0,5),p=[`📊 ${a.name} — review`,`Plan: ${m} \xb7 24/7 ${i?.auto247?"ON":"off"}`,`Goals: ${j.length} active / ${b.length} total`,`Specs: ${c.filter(a=>"active"===a.status).length} active`,`Issues: todo ${k("todo")} \xb7 doing ${k("doing")} \xb7 review ${k("review")} \xb7 blocked ${k("blocked")} \xb7 done ${k("done")} (of ${d.length})`,`Tasks in flight: ${l}`];return j[0]&&p.push(`Active goal: “${j[0].title}”`),o.length&&p.push(`Next up:
7
- ${o.map(a=>` • (${a.prio}) ${a.key} — ${a.title}`).join("\n")}`),p.join("\n").slice(0,3500)}async function r(a){let b=await f.db.select({key:g.task.key,title:g.task.title,col:g.task.col,prio:g.task.prio}).from(g.task).where((0,e.eq)(g.task.workspaceId,a.id)),c=b.filter(a=>"doing"===a.col),d=b.filter(a=>"todo"===a.col||"triage"===a.col),h=b.filter(a=>"review"===a.col),i=a=>` • ${a.key} — ${a.title}`,j=[`🗂️ ${a.name} — tasks`];return j.push(`Doing (${c.length}):${c.length?"\n"+c.slice(0,10).map(i).join("\n"):" —"}`),j.push(`In review (${h.length}):${h.length?"\n"+h.slice(0,8).map(i).join("\n"):" —"}`),j.push(`Queued (${d.length}):${d.length?"\n"+d.slice(0,10).map(i).join("\n"):" —"}`),j.join("\n").slice(0,3500)}},56053:(a,b,c)=>{c.r(b),c.d(b,{advanceIssue:()=>C,approveIssue:()=>z,approvePlan:()=>t,approveSpec:()=>x,generatePlan:()=>D,groomBacklog:()=>v,groomBacklogFor:()=>u,planFromConversation:()=>F,rejectIssue:()=>A,rejectSpec:()=>y,requestPlanChanges:()=>w,setAuto247:()=>B,startNewWork:()=>E});var d=c(52813),e=c(77598),f=c(1782),g=c(7852),h=c(83550),i=c(80280),j=c(25533),k=c(95896),l=c(3188),m=c(90860),n=c(99546),o=c(54033),p=c(18612),q=c(55479),r=c(96930),s=c(12867);async function t(){let{org:a,workspace:b}=await (0,k.nP)();await (0,q.wz)(a.id,b),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/pm"),(0,h.revalidatePath)("/tasks"),(0,h.revalidatePath)("/inbox"),(0,h.revalidatePath)("/","layout")}async function u(a,b){let c,d=await i.db.select().from(j.agent).where((0,f.eq)(j.agent.workspaceId,b.id)),h=d.find(a=>"donald"===a.handle)??d.find(a=>/product owner|\bpo\b|product manager/i.test(a.role));if(!h)return{ok:!1,error:"No Product Owner agent in this workspace."};let k=(await i.db.select().from(j.issue).where((0,f.Uo)((0,f.eq)(j.issue.workspaceId,b.id),(0,f.eq)(j.issue.status,"active")))).filter(a=>"done"!==a.col);if(!k.length)return{ok:!1,error:"No active issues to groom."};let m=(0,l.hW)(h.adapter,h.model),p="claude"===m?h.model.includes("opus")?"opus":h.model.includes("haiku")?"haiku":"sonnet":void 0,q=Object.fromEntries((await i.db.select({id:j.spec.id,summary:j.spec.summary}).from(j.spec).where((0,f.eq)(j.spec.workspaceId,b.id))).map(a=>[a.id,a.summary])),r=k.map(a=>`- ${a.key}: ${a.title}${a.specId&&q[a.specId]?` — spec: ${String(q[a.specId]).slice(0,120)}`:""} (current priority: ${a.prio})`).join("\n"),t=await (0,s.yY)(a,`product objectives, existing features and code, prior decisions, duplicate or overlapping requirements for: ${k.map(a=>a.title).slice(0,12).join("; ")}`,{agentHandle:h.handle,k:8}),u=t.context?`
1
+ "use strict";exports.id=907,exports.ids=[907],exports.modules={12529:(a,b,c)=>{c.r(b),c.d(b,{advanceIssue:()=>C,approveIssue:()=>z,approvePlan:()=>t,approveSpec:()=>x,generatePlan:()=>D,groomBacklog:()=>v,groomBacklogFor:()=>u,planFromConversation:()=>F,rejectIssue:()=>A,rejectSpec:()=>y,requestPlanChanges:()=>w,setAuto247:()=>B,startNewWork:()=>E});var d=c(36548),e=c(77598),f=c(50730),g=c(23888),h=c(5557),i=c(12940),j=c(76561),k=c(2148),l=c(55104),m=c(44440),n=c(21046),o=c(76381),p=c(66408),q=c(87355),r=c(15563),s=c(28134);async function t(){let{org:a,workspace:b}=await (0,k.nP)();await (0,q.wz)(a.id,b),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/pm"),(0,h.revalidatePath)("/tasks"),(0,h.revalidatePath)("/inbox"),(0,h.revalidatePath)("/","layout")}async function u(a,b){let c,d=await i.db.select().from(j.agent).where((0,f.eq)(j.agent.workspaceId,b.id)),h=d.find(a=>"donald"===a.handle)??d.find(a=>/product owner|\bpo\b|product manager/i.test(a.role));if(!h)return{ok:!1,error:"No Product Owner agent in this workspace."};let k=(await i.db.select().from(j.issue).where((0,f.Uo)((0,f.eq)(j.issue.workspaceId,b.id),(0,f.eq)(j.issue.status,"active")))).filter(a=>"done"!==a.col);if(!k.length)return{ok:!1,error:"No active issues to groom."};let m=(0,l.hW)(h.adapter,h.model),p="claude"===m?h.model.includes("opus")?"opus":h.model.includes("haiku")?"haiku":"sonnet":void 0,q=Object.fromEntries((await i.db.select({id:j.spec.id,summary:j.spec.summary}).from(j.spec).where((0,f.eq)(j.spec.workspaceId,b.id))).map(a=>[a.id,a.summary])),r=k.map(a=>`- ${a.key}: ${a.title}${a.specId&&q[a.specId]?` spec: ${String(q[a.specId]).slice(0,120)}`:""} (current priority: ${a.prio})`).join("\n"),t=await (0,s.yY)(a,`product objectives, existing features and code, prior decisions, duplicate or overlapping requirements for: ${k.map(a=>a.title).slice(0,12).join("; ")}`,{agentHandle:h.handle,k:8}),u=t.context?`
8
2
  Project knowledge (objectives, existing work, prior decisions — use it to avoid duplicates and spot gaps; do not contradict):
9
3
  ${t.context}`:"",v=await i.db.select({text:j.decision.text,by:j.decision.by}).from(j.decision).where((0,f.eq)(j.decision.workspaceId,b.id)).orderBy((0,g.i)(j.decision.createdAt)).limit(12),w=v.length?`
10
4
  Recent decisions:
@@ -14,7 +8,7 @@ ${r}`,`
14
8
  Output ONLY a JSON object (no prose, no markdown fences): {"estimates":[{"key":"1","points":5,"moscow":"Must","duplicateOf":"3"}],"gaps":["a missing issue the objectives need"]} — one estimate per issue above, "points" one of 1,2,3,5,8,13, "duplicateOf" optional, "gaps" optional.`].filter(Boolean).join("\n");await i.db.update(j.agent).set({status:"working"}).where((0,f.eq)(j.agent.id,h.id));try{c=await (0,l.p1)(x,{orgId:a,binary:m,model:p,timeoutMs:12e4},()=>{})}finally{try{await i.db.update(j.agent).set({status:"idle"}).where((0,f.eq)(j.agent.id,h.id))}catch{}}(c.usd>0||c.inputTokens+c.outputTokens>0)&&await i.db.insert(j.costEntry).values({id:(0,e.randomUUID)(),workspaceId:b.id,agentId:h.id,provider:c.binary,model:c.model??h.model,usd:c.usd,tokens:c.inputTokens+c.outputTokens,at:new Date});let y=[],z=[],A=c.text.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(A)try{let a=JSON.parse(A[0]);Array.isArray(a)?y=a:(y=Array.isArray(a.estimates)?a.estimates:[],z=Array.isArray(a.gaps)?a.gaps.map(String).slice(0,8):[])}catch{y=[]}if(!Array.isArray(y)||!y.length)return{ok:!1,error:"The PO returned no parseable estimates — try again."};let B=new Set([1,2,3,5,8,13]),C=new Set(["Must","Should","Could","Won't"]),D=Object.fromEntries(k.map(a=>[String(a.key),a.id])),E=0;for(let a of y){let b=D[String(a.key)];if(!b)continue;let c="number"==typeof a.points?Math.round(a.points):NaN,d=B.has(c)?c:void 0,e="string"==typeof a.moscow&&C.has(a.moscow)?a.moscow:void 0;(void 0!==d||e)&&(await i.db.update(j.issue).set({...void 0!==d?{points:d}:{},...e?{moscow:e}:{}}).where((0,f.eq)(j.issue.id,b)),E++)}if(E){for(let a of(await i.db.select().from(j.issue).where((0,f.Uo)((0,f.eq)(j.issue.workspaceId,b.id),(0,f.eq)(j.issue.status,"active")))))await i.db.update(j.backlogItem).set({points:a.points,moscow:a.moscow??"Should"}).where((0,f.Uo)((0,f.eq)(j.backlogItem.workspaceId,b.id),(0,f.eq)(j.backlogItem.title,a.title)));await i.db.insert(j.message).values({id:(0,e.randomUUID)(),workspaceId:b.id,channel:"room",fromKind:"agent",fromHandle:h.handle,text:`Backlog groomed — estimated story points + MoSCoW for ${E} issue${1===E?"":"s"}. Open the Product Manager to review.`,createdAt:new Date}),await (0,n.j)(b.id,{text:`Backlog groomed by ${h.name} — sized ${E} issue(s)`,by:h.handle,source:"po-grooming"})}let F=y.filter(a=>null!=a.duplicateOf&&D[String(a.duplicateOf)]&&D[String(a.key)]&&String(a.duplicateOf)!==String(a.key)).map(a=>`${a.key} ↔ ${a.duplicateOf}`);if(F.length||z.length){let a=[];F.length&&a.push(`Possible duplicate / overlapping issues: ${F.join(", ")}.`),z.length&&a.push(`Gaps the objectives need:
15
9
  ${z.map(a=>`- ${a}`).join("\n")}`);let c=a.join("\n\n");await i.db.insert(j.message).values({id:(0,e.randomUUID)(),workspaceId:b.id,channel:"room",fromKind:"agent",fromHandle:h.handle,text:`Backlog review — ${c}`.slice(0,4e3),createdAt:new Date}),await (0,o.vE)(b.id,{kind:"review",fromAgentId:h.id,title:`PO backlog review — ${F.length} duplicate, ${z.length} gap`,detail:c.slice(0,500)}),await (0,n.j)(b.id,{text:`PO flagged ${F.length} duplicate + ${z.length} gap during grooming`,by:h.handle,source:"po-grooming"})}return{ok:!0,groomed:E}}async function v(){let{org:a,workspace:b}=await (0,k.nP)(),c=await u(a.id,b);return(0,h.revalidatePath)("/pm"),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/","layout"),c}async function w(){let{workspace:a}=await (0,k.nP)();await (0,q.TR)(a.id),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/inbox")}async function x(a){let{workspace:b}=await (0,k.nP)();await i.db.update(j.spec).set({approved:!0}).where((0,f.Uo)((0,f.eq)(j.spec.id,a),(0,f.eq)(j.spec.workspaceId,b.id))),await (0,o.W_)(b.id,"spec",a),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/inbox")}async function y(a){let{workspace:b}=await (0,k.nP)(),[c]=await i.db.select().from(j.spec).where((0,f.Uo)((0,f.eq)(j.spec.id,a),(0,f.eq)(j.spec.workspaceId,b.id)));await i.db.update(j.spec).set({approved:!1}).where((0,f.eq)(j.spec.id,a));let d="ada",e=null;if(c?.authorId){let[a]=await i.db.select().from(j.agent).where((0,f.eq)(j.agent.id,c.authorId));a&&(d=a.handle,e=a.id)}return await (0,m.I)(b.id,{kind:"review",text:`Spec ${c?.key??""} sent back for revision`,detail:"The operator rejected this spec."}),await (0,o.vE)(b.id,{kind:"review",refType:"spec",refId:a,goalId:c?.goalId??null,fromAgentId:e,title:`Revise spec ${c?.key??""}`,detail:`Rejected — @${d} should revise “${c?.title??""}”.`}),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/inbox"),{handle:d,key:c?.key??"spec"}}async function z(a){let{org:b,workspace:c}=await (0,k.nP)(),[d]=await i.db.update(j.issue).set({approved:!0}).where((0,f.Uo)((0,f.eq)(j.issue.id,a),(0,f.eq)(j.issue.workspaceId,c.id))).returning();if(d?.key){let a=(0,p.sL)(b.id,`issues/${d.key}.md`);a&&(0,p.dx)(b.id,`issues/${d.key}.md`,a.replace(/\*\*Status:\*\* .*/m,"**Status:** approved"))}await (0,o.W_)(c.id,"issue",a),(0,h.revalidatePath)("/pm"),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/inbox")}async function A(a){let{workspace:b}=await (0,k.nP)(),[c]=await i.db.select().from(j.issue).where((0,f.Uo)((0,f.eq)(j.issue.id,a),(0,f.eq)(j.issue.workspaceId,b.id)));await i.db.update(j.issue).set({approved:!1}).where((0,f.eq)(j.issue.id,a));let d="donald",e=null;if(c?.assigneeId){let[a]=await i.db.select().from(j.agent).where((0,f.eq)(j.agent.id,c.assigneeId));a&&(d=a.handle,e=a.id)}return await (0,m.I)(b.id,{kind:"review",text:`Issue ${c?.key??""} sent back for revision`,detail:"The operator rejected this issue."}),await (0,o.vE)(b.id,{kind:"review",refType:"issue",refId:a,goalId:c?.goalId??null,fromAgentId:e,title:`Revise issue ${c?.key??""}`,detail:`Rejected — @${d} should revise “${c?.title??""}”.`}),(0,h.revalidatePath)("/pm"),(0,h.revalidatePath)("/planner"),(0,h.revalidatePath)("/inbox"),{handle:d,key:c?.key??"issue"}}async function B(a){let{workspace:b}=await (0,k.nP)();await (0,q.mL)(b.id,a),(0,h.revalidatePath)("/planner")}async function C(a){let{workspace:b}=await (0,k.nP)(),c=["todo","doing","review","done"],[d]=await i.db.select().from(j.issue).where((0,f.Uo)((0,f.eq)(j.issue.id,a),(0,f.eq)(j.issue.workspaceId,b.id)));if(!d||"done"===d.col||"blocked"===d.col)return;let e=c[c.indexOf(d.col)+1]??"done";await i.db.update(j.issue).set({col:e}).where((0,f.eq)(j.issue.id,a)),"done"===e&&await (0,m.I)(b.id,{kind:"test",text:`${d.key} merged — ${d.title}`,detail:"QA passed and the issue was merged.",tg:!0}),(0,h.revalidatePath)("/planner")}async function D(a){let{org:b,workspace:c}=await (0,k.nP)();return(0,r.generatePlanFor)(b.id,c,a)}async function E(a){let b=a.brief?.trim();return b?D({brief:b,goalTitle:a.title?.trim()||void 0}):{ok:!1,error:"Describe what you want to implement, fix or change."}}async function F(a){let{workspace:b}=await (0,k.nP)(),c=(await i.db.select().from(j.message).where((0,f.Uo)((0,f.eq)(j.message.workspaceId,b.id),(0,f.eq)(j.message.channel,a))).orderBy((0,g.Y)(j.message.createdAt))).slice(-30).map(a=>("operator"===a.fromKind?"Operator":"@"+(a.fromHandle??"agent"))+": "+a.text).join("\n");return c.trim()?D({brief:`Turn the operator's request from this chat into a delivery plan. Conversation:
16
10
 
17
- ${c}`}):{ok:!1,error:"No conversation to plan from yet."}}(0,c(29635).D)([t,u,v,w,x,y,z,A,B,C,D,E,F]),(0,d.A)(t,"002187847445622978bc55b9008235c0fa546c1928",null),(0,d.A)(u,"60d5f34d685b2d10fa8899cf3859270d2abcaea17b",null),(0,d.A)(v,"009c38f877a21345917addab2c8bef95bc47e1e56b",null),(0,d.A)(w,"00e4e634074e109e51ede5ae51e150337216174c81",null),(0,d.A)(x,"408f2adaf50869e2202aa5684ad55b7e739765297b",null),(0,d.A)(y,"40911ea817fb8869817712ed68abca3202362f67a7",null),(0,d.A)(z,"4077cdda445a2dc4096786e1b55bbe9c2aa5a764f8",null),(0,d.A)(A,"4060c1bd339b97979ac6672046624b24053d14da09",null),(0,d.A)(B,"40f66d6d6c5aacdeed470d1cc25d6929dd35ff7dee",null),(0,d.A)(C,"40850ff30c18f6278de972d397071e1806a4d04552",null),(0,d.A)(D,"404354d696dbc7dac4784ba3b3ab014333e0ad954f",null),(0,d.A)(E,"40c03a5064033cbc8a20dac06972590ead87aba54b",null),(0,d.A)(F,"40c0c6f23bb99450ea7a789d5b2ec5ce7eaba385e9",null)},96930:(a,b,c)=>{c.d(b,{generatePlanFor:()=>v,G:()=>u,startNewWorkFor:()=>w});var d=c(77598),e=c(1782),f=c(7852),g=c(83550),h=c(80280),i=c(25533),j=c(3188),k=c(20850),l=c(78848),m=c(18612);let n="specs/SUPER-SPEC.md";async function o(a){let b,{orgId:c,wsId:e,ada:f,binary:g,model:k}=a,o=`You are ${f.name}, analyzing an EXISTING project that is ALREADY present in this workspace (the current directory). Do NOT write any product code, do NOT scaffold anything — your ONLY job is to UNDERSTAND the project and write a thorough "super spec".
11
+ ${c}`}):{ok:!1,error:"No conversation to plan from yet."}}(0,c(99688).D)([t,u,v,w,x,y,z,A,B,C,D,E,F]),(0,d.A)(t,"006e3862d33640a4d6587e0d999584ac5db40cb1be",null),(0,d.A)(u,"60c5c511b8ddf434edb4df1dd8c7b74962fc2cff88",null),(0,d.A)(v,"0023c2d2a7bab3fa7022c78ac6d614acd1ba769a55",null),(0,d.A)(w,"003d491d5a9f1d5aa2c1e34df023e249b1e6a4d27b",null),(0,d.A)(x,"40795a2cee09e53a3192bb4582588b29bedfbbbfd3",null),(0,d.A)(y,"40506681298deecf587a22a58f89b00187526d839e",null),(0,d.A)(z,"40102b8d3d6f3d24e3eb5dd445242945b75511d595",null),(0,d.A)(A,"40242f4eaff43df72cf01e4c58d529b352b0844451",null),(0,d.A)(B,"40da20117d679d6fda817d86bc7ba74c80844d42bf",null),(0,d.A)(C,"405625f8452c4f8ddc1d39f88e1d25d620eba1f354",null),(0,d.A)(D,"40f40927761bc3b2be5ac04bdc8f6b2ea0a4cef554",null),(0,d.A)(E,"4042f30cd92a4ce15b57cdf3bb844ed17b123375bb",null),(0,d.A)(F,"4046fa12571497a64e108e9b450e01044d1952fc4c",null)},15563:(a,b,c)=>{c.d(b,{generatePlanFor:()=>v,G:()=>u,startNewWorkFor:()=>w});var d=c(77598),e=c(50730),f=c(23888),g=c(5557),h=c(12940),i=c(76561),j=c(55104),k=c(62323),l=c(87980),m=c(66408);let n="specs/SUPER-SPEC.md";async function o(a){let b,{orgId:c,wsId:e,ada:f,binary:g,model:k}=a,o=`You are ${f.name}, analyzing an EXISTING project that is ALREADY present in this workspace (the current directory). Do NOT write any product code, do NOT scaffold anything — your ONLY job is to UNDERSTAND the project and write a thorough "super spec".
18
12
 
19
13
  Read in THIS order, then go deeper:
20
14
  1. Docs first: README*, CHANGELOG*, docs/**, any install/setup/usage guides, CONTRIBUTING.
@@ -30,7 +24,7 @@ If the repo is large, prioritize breadth: read every manifest + entry point and
30
24
  When done, reply with a 2-3 sentence summary of the system.`,p=(0,d.randomUUID)();await (0,l.I)(e,{runId:p,channel:"planner",agentId:f.id,kind:"thinking",target:`${f.name} is reading the existing project…`});try{b=await (0,j.p1)(o,{orgId:c,binary:g,model:k,timeoutMs:6e5},a=>{(0,l.I)(e,{runId:p,channel:"planner",agentId:f.id,kind:a.kind,target:a.target,detail:a.detail})})}catch(a){return{ok:!1,bytes:0,error:String(a instanceof Error?a.message:a)}}(b.usd>0||b.inputTokens+b.outputTokens>0)&&await h.db.insert(i.costEntry).values({id:(0,d.randomUUID)(),workspaceId:e,agentId:f.id,provider:b.binary,model:b.model??k??"",usd:b.usd,tokens:b.inputTokens+b.outputTokens,at:new Date});let q=(0,m.sL)(c,n);(!q||q.trim().length<80)&&b.text.trim()&&((0,m.dx)(c,n,`# Super Spec — existing system analysis
31
25
 
32
26
  ${b.text.trim()}
33
- `),q=(0,m.sL)(c,n));let r=q?.length??0;return{ok:r>0,bytes:r}}var p=c(90860),q=c(54033),r=c(6873),s=c(78874),t=c(88639);async function u(a,b,c){let d=(await h.db.select().from(i.message).where((0,e.Uo)((0,e.eq)(i.message.workspaceId,b.id),(0,e.eq)(i.message.channel,c))).orderBy((0,f.i)(i.message.createdAt)).limit(30)).reverse().map(a=>("operator"===a.fromKind?"Operator":"@"+(a.fromHandle??"agent"))+": "+a.text).join("\n");return d.trim()?v(a,b,{brief:`Turn the operator's request from this chat into a delivery plan. Conversation:
27
+ `),q=(0,m.sL)(c,n));let r=q?.length??0;return{ok:r>0,bytes:r}}var p=c(44440),q=c(76381),r=c(96807),s=c(84534),t=c(13171);async function u(a,b,c){let d=(await h.db.select().from(i.message).where((0,e.Uo)((0,e.eq)(i.message.workspaceId,b.id),(0,e.eq)(i.message.channel,c))).orderBy((0,f.i)(i.message.createdAt)).limit(30)).reverse().map(a=>("operator"===a.fromKind?"Operator":"@"+(a.fromHandle??"agent"))+": "+a.text).join("\n");return d.trim()?v(a,b,{brief:`Turn the operator's request from this chat into a delivery plan. Conversation:
34
28
 
35
29
  ${d}`}):{ok:!1,error:"No conversation to plan from yet."}}async function v(a,b,c){let j=await h.db.select().from(i.agent).where((0,e.eq)(i.agent.workspaceId,b.id)),k=j.find(a=>"ada"===a.handle)??j.find(a=>/ceo|chief exec/i.test(a.role))??j[0];if(!k)return{ok:!1,error:"no CEO agent"};let m=b.settings??{};if(m.source?.analyzing&&Date.now()-(m.source?.analyzingAt??0)<72e4)return{ok:!0,started:!1};if("working"===k.status){let[a]=await h.db.select({seq:i.event.seq,kind:i.event.kind}).from(i.event).where((0,e.Uo)((0,e.eq)(i.event.workspaceId,b.id),(0,e.eq)(i.event.channel,"planner"))).orderBy((0,f.i)(i.event.seq)).limit(1);if(a&&"done"!==a.kind&&"error"!==a.kind&&Date.now()-a.seq<36e4)return{ok:!0,started:!1};console.warn("[planner] Ada was stuck 'working' with no live run — recovering (a prior plan job died before it reset her).")}let n=(0,d.randomUUID)();await h.db.update(i.agent).set({status:"working"}).where((0,e.eq)(i.agent.id,k.id)),await (0,l.I)(b.id,{runId:n,channel:"planner",agentId:k.id,kind:"thinking",target:`${k.name} is analyzing the brief…`});try{(0,g.revalidatePath)("/planner")}catch{}return x({orgId:a,workspace:b,ada:k,agents:j,runId:n,opts:c}).catch(a=>console.error("[planner] background plan job crashed:",a)),{ok:!0,started:!0}}async function w(a,b,c){let d=c.brief?.trim();return d?v(a,b,{brief:d,goalTitle:c.title?.trim()||void 0}):{ok:!1,error:"Describe what you want to implement, fix or change."}}async function x(a){let{orgId:b,workspace:c,ada:f,agents:n,runId:u,opts:v}=a;try{let a=a=>a?n.find(b=>b.role.toLowerCase()===a.toLowerCase())?.id??null:null,w=(0,j.hW)(f.adapter,f.model),x="claude"===w?f.model.includes("opus")?"opus":f.model.includes("haiku")?"haiku":"sonnet":void 0;(0,j.UC)(c.settings?.agents?.webResearch??null);let y=Array.from(new Set(n.map(a=>a.role))),z=!!v?.brief?.trim(),A=v?.brief?.trim()||(0,m.sL)(b,".claude/BRIEF.md")||"",B=(0,m.CS)(b).filter(a=>a.startsWith("mock/")&&"mock/README.md"!==a),C=c.stack??{},D=Object.entries(C).map(([a,b])=>`${a}: ${b}`).filter(a=>!a.endsWith(": None")).join(", "),E=!!C.frontend&&"None"!==C.frontend,F=(0,r.Cg)(),G=[...new Set([...(0,r.AQ)(C),...(0,r.IT)(C,"Frontend"),...(0,r.IT)(C,"Backend"),...(0,r.IT)(C,"CyberSec"),...(0,r.IT)(C,"CTO")])].filter(a=>F.has(a)).map(a=>`- ${a}: ${F.get(a).description}`).join("\n"),H=c.settings??{},I=H.source?.type??"new",J="new"!==I||B.length>0||!!(0,k.pp)(b),K=!!H.source?.analyzing&&Date.now()-(H.source?.analyzingAt??0)<72e4;if(!z&&J&&!H.source?.analyzed&&!K){await h.db.update(i.workspace).set({settings:{...H,source:{...H.source??{},type:I,analyzing:!0,analyzingAt:Date.now()}}}).where((0,e.eq)(i.workspace.id,c.id));try{await o({orgId:b,wsId:c.id,ada:{id:f.id,name:f.name},binary:w,model:x}),await h.db.update(i.workspace).set({settings:{...H,source:{...H.source??{},type:I,analyzed:!0,analyzing:!1}}}).where((0,e.eq)(i.workspace.id,c.id))}catch(a){console.error("[planner] project analysis failed:",a);try{await h.db.update(i.workspace).set({settings:{...H,source:{...H.source??{},type:I,analyzing:!1}}}).where((0,e.eq)(i.workspace.id,c.id))}catch{}}}let L=z?null:(0,m.sL)(b,"specs/SUPER-SPEC.md"),M=(0,m.sL)(b,"design-mock/APPROVED.md"),N=(0,t.hp)(b),O=M?N.at&&N.served?`
36
30
  APPROVED DESIGN — ALREADY PROMOTED INTO THE SOURCE. The operator approved the UI in the Design module and it was promoted into the project's REAL served frontend (\`${N.target}/\` — see design-mock/PROMOTED.md; the dev server already renders these exact screens). Read design-mock/APPROVED.md + design-mock/handoff.md IN FULL. The UI is DONE and is the source of truth — engineers must NOT rebuild, recreate or restyle it. Every frontend issue EXTENDS the promoted screens: wire real data + backend + interactivity + states ON TOP, preserving the markup/CSS exactly (zero drift). Do NOT plan any "build the UI / recreate the screens" issue. Summary:
@@ -82,4 +76,10 @@ How this organization operates. Agents follow this order; code starts only after
82
76
  `),z||await h.db.update(i.plan).set({stage:4,approved:!1}).where((0,e.eq)(i.plan.workspaceId,c.id)),await (0,l.I)(c.id,{runId:u,channel:"planner",agentId:f.id,kind:"done",target:`${Object.keys(U).length} specs \xb7 ${ab} issues drafted`}),await h.db.insert(i.message).values({id:(0,d.randomUUID)(),workspaceId:c.id,channel:"room",fromKind:"agent",fromHandle:f.handle,text:`Plan ready for review: ${Object.keys(U).length} specs and ${ab} issues drafted from the brief. Open the CEO Planner and approve to start execution.`,createdAt:new Date}),await (0,p.I)(c.id,{kind:"done",text:`${f.name} drafted ${z?"a new work plan":"the delivery plan"}`,detail:`${Object.keys(U).length} specs \xb7 ${ab} issues.`,agentId:f.id,tg:!1}),await (0,q.vE)(c.id,{kind:"approval",refType:"plan",refId:c.id,goalId:W,fromAgentId:f.id,channel:"room",title:`Approve plan — ${c.name}`,detail:`${Object.keys(U).length} spec(s) \xb7 ${ab} issue(s) drafted from the brief. Approve to start execution.`});try{let a=await (0,s._9)(c.id);a&&await (0,s.bT)(a.botToken,a.chatId,`📋 Plan ready — ${c.name}
83
77
  ${Object.keys(U).length} spec(s) \xb7 ${ab} issue(s) drafted from the brief.
84
78
 
85
- Approve to queue tasks, or Start execution to also run 24/7.`,[[{text:"✅ Approve",data:"approve_plan"},{text:"▶️ Start execution",data:"start_exec"}],[{text:"\uD83D\uDCDD Review",data:"review"},{text:"↩️ Reject",data:"reject_plan"}]])}catch(a){console.error("[planner] telegram plan-ready push failed:",a)}try{(0,g.revalidatePath)("/planner"),(0,g.revalidatePath)("/inbox"),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/goals")}catch{}}catch(a){console.error("[planner] plan job failed:",a);try{await (0,l.I)(c.id,{runId:u,channel:"planner",agentId:f.id,kind:"error",target:(a?.message??"Planning failed.").slice(0,200)})}catch{}try{await (0,p.I)(c.id,{kind:"info",text:"Planning run failed",detail:(a?.message??"").slice(0,300),agentId:f.id})}catch{}}finally{try{await h.db.update(i.agent).set({status:"idle"}).where((0,e.eq)(i.agent.id,f.id))}catch{}}}}};
79
+ Approve to queue tasks, or Start execution to also run 24/7.`,[[{text:"✅ Approve",data:"approve_plan"},{text:"▶️ Start execution",data:"start_exec"}],[{text:"\uD83D\uDCDD Review",data:"review"},{text:"↩️ Reject",data:"reject_plan"}]])}catch(a){console.error("[planner] telegram plan-ready push failed:",a)}try{(0,g.revalidatePath)("/planner"),(0,g.revalidatePath)("/inbox"),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/goals")}catch{}}catch(a){console.error("[planner] plan job failed:",a);try{await (0,l.I)(c.id,{runId:u,channel:"planner",agentId:f.id,kind:"error",target:(a?.message??"Planning failed.").slice(0,200)})}catch{}try{await (0,p.I)(c.id,{kind:"info",text:"Planning run failed",detail:(a?.message??"").slice(0,300),agentId:f.id})}catch{}}finally{try{await h.db.update(i.agent).set({status:"idle"}).where((0,e.eq)(i.agent.id,f.id))}catch{}}}},56425:(a,b,c)=>{c.d(b,{NF:()=>t,PT:()=>u});var d=c(73024),e=c(76760),f=c(91243),g=c.n(f),h=c(50730),i=c(12940),j=c(76561),k=c(66408),l=c(55104),m=c(77680),n=c(21046),o=c(76381),p=c(44440);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}async function r(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 s(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 t(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 s(a,b,"cancelled"),await (0,o.TC)(a,b),await r(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 u(a,b,c){let f=await q(b,c);if(!f)return{ok:!1};let l=(0,k.HZ)(a),[t,u,v,w,x]=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)))]),y=v.map(a=>a.id),z=y.length?await i.db.select().from(j.taskStep).where((0,h.RV)(j.taskStep.taskId,y)):[],A=await (0,m.Y)(b,c),B=new(g()),C=0;for(let a of A){let b=(0,e.join)(l,a);if((0,d.existsSync)(b))try{B.addFile("files/"+a,(0,d.readFileSync)(b)),C++}catch{}}let D={goal:f,specs:t,issues:u,tasks:v,taskSteps:z,decisions:w,reports:x,fileCount:C,archivedAt:new Date().toISOString()},E=[`# Archived work — ${f.title}`,"",`Status at archive: ${f.status} \xb7 progress ${f.progress}%`,"",`## Specs (${t.length})`,...t.map(a=>`- ${a.key} ${a.title}`),"",`## Issues (${u.length})`,...u.map(a=>`- ${a.key} [${a.col}] ${a.title}`),"",`## Decisions (${w.length})`,...w.map(a=>`- ${a.text} (${a.by})`),"",`## Source files (${C})`,...A.map(a=>`- ${a}`),""].join("\n");B.addFile("MANIFEST.json",Buffer.from(JSON.stringify(D,null,2))),B.addFile("MANIFEST.md",Buffer.from(E));let F=(0,e.join)(l,"archives");(0,d.mkdirSync)(F,{recursive:!0});let G=`archives/${(f.title||"work").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40)||"work"}-${new Date().toISOString().slice(0,10)}-${c.slice(0,6)}.zip`;try{B.writeZip((0,e.join)(l,G))}catch(a){return console.error("[archiveGoalFor] zip failed:",a),{ok:!1}}return await i.db.update(j.goal).set({status:"archived",archivePath:G,archivedAt:new Date}).where((0,h.eq)(j.goal.id,c)),await s(b,c,"archived"),await (0,o.TC)(b,c),await r(b,c),await (0,n.j)(b,{text:`Archived goal: ${f.title} → ${G}`,by:"operator",source:"operator-instruction",goalId:c}),await (0,p.I)(b,{kind:"info",text:`Goal archived — ${f.title}`,detail:`${C} files + manifest zipped to ${G}.`}),{ok:!0,path:G,title:f.title}}},87355:(a,b,c)=>{c.d(b,{PO:()=>p,TR:()=>o,mL:()=>n,mt:()=>q,wz:()=>m,yk:()=>r});var d=c(77598),e=c(50730),f=c(12940),g=c(76561),h=c(44440),i=c(21046),j=c(76381),k=c(30515),l=c(52052);async function m(a,b){await f.db.update(g.plan).set({approved:!0,stage:6}).where((0,e.eq)(g.plan.workspaceId,b.id)),await f.db.update(g.issue).set({approved:!0}).where((0,e.eq)(g.issue.workspaceId,b.id)),await f.db.update(g.spec).set({approved:!0}).where((0,e.Uo)((0,e.eq)(g.spec.workspaceId,b.id),(0,e.eq)(g.spec.status,"active")));let m=await (0,l.s$)(a,b.id),n=await f.db.select().from(g.issue).where((0,e.eq)(g.issue.workspaceId,b.id));for(let a of(await f.db.delete(g.backlogItem).where((0,e.eq)(g.backlogItem.workspaceId,b.id)),n))await f.db.insert(g.backlogItem).values({id:(0,d.randomUUID)(),workspaceId:b.id,title:a.title,moscow:a.moscow??"Should",points:a.points});let o=`# Product backlog — ${b.name}
80
+
81
+ _Groomed from the approved plan._
82
+
83
+ ${n.map(a=>`- [ ] (${a.prio}) ${a.key} — ${a.title}`).join("\n")}
84
+ `;try{await (0,k.g)(a,"PO/backlog.md",o)}catch(a){console.error("[approvePlanFor] backlog write failed:",a)}let[p]=await f.db.select().from(g.agent).where((0,e.Uo)((0,e.eq)(g.agent.workspaceId,b.id),(0,e.eq)(g.agent.handle,"ada"))),q=p??(await f.db.select().from(g.agent).where((0,e.eq)(g.agent.workspaceId,b.id)))[0];return q&&await f.db.insert(g.message).values({id:(0,d.randomUUID)(),workspaceId:b.id,channel:"room",fromKind:"agent",fromHandle:q.handle,text:`Plan approved — starting execution. ${m} task${1===m?"":"s"} queued; the team will work the board top to bottom. Turn on Run 24/7 to begin.`,createdAt:new Date}),await (0,h.I)(b.id,{kind:"done",text:"Plan approved — agents may start coding",detail:`${m} task${1===m?"":"s"} created from the plan.`}),await (0,i.j)(b.id,{text:`Plan approved — ${n.length} issues, ${m} tasks queued for execution`,by:"operator",source:"plan-approve"}),await (0,j.W_)(b.id,"plan",b.id),await (0,j.vG)(b.id,["spec","issue"]),Promise.resolve().then(c.bind(c,12529)).then(c=>c.groomBacklogFor(a,b)).catch(a=>console.error("[approvePlanFor] auto-groom failed:",a)),{made:m,issues:n.length}}async function n(a,b){await f.db.update(g.plan).set({auto247:b}).where((0,e.eq)(g.plan.workspaceId,a))}async function o(a,b){await f.db.update(g.plan).set({approved:!1,auto247:!1,stage:1}).where((0,e.eq)(g.plan.workspaceId,a)),await (0,j.W_)(a,"plan",a),await f.db.insert(g.notification).values({id:(0,d.randomUUID)(),workspaceId:a,kind:"info",text:"Plan sent back to Ada for revision",detail:b?.trim()?`Operator requested changes: ${b.trim().slice(0,280)}`:"The operator requested changes before any code is written."})}async function p(a){let[b,c,d,[h]]=await Promise.all([f.db.select({status:g.goal.status}).from(g.goal).where((0,e.eq)(g.goal.workspaceId,a.id)),f.db.select({col:g.issue.col}).from(g.issue).where((0,e.eq)(g.issue.workspaceId,a.id)),f.db.select({id:g.task.id}).from(g.task).where((0,e.Uo)((0,e.eq)(g.task.workspaceId,a.id),(0,e.eq)(g.task.col,"doing"))),f.db.select().from(g.plan).where((0,e.eq)(g.plan.workspaceId,a.id))]),i=b.filter(a=>"active"===a.status).length,j=c.filter(a=>"done"!==a.col).length,k=h?h.approved?"approved":"draft":"none";return`📊 ${a.name} — ${i} active goal(s) \xb7 ${j} open issue(s) \xb7 ${d.length} task(s) in flight \xb7 24/7 ${h?.auto247?"ON":"off"} \xb7 plan ${k}.`}async function q(a){let[b,c,d,h,[i]]=await Promise.all([f.db.select({title:g.goal.title,status:g.goal.status}).from(g.goal).where((0,e.eq)(g.goal.workspaceId,a.id)),f.db.select({status:g.spec.status}).from(g.spec).where((0,e.eq)(g.spec.workspaceId,a.id)),f.db.select({key:g.issue.key,title:g.issue.title,col:g.issue.col,prio:g.issue.prio}).from(g.issue).where((0,e.eq)(g.issue.workspaceId,a.id)),f.db.select({col:g.task.col}).from(g.task).where((0,e.eq)(g.task.workspaceId,a.id)),f.db.select().from(g.plan).where((0,e.eq)(g.plan.workspaceId,a.id))]),j=b.filter(a=>"active"===a.status),k=a=>d.filter(b=>b.col===a).length,l=h.filter(a=>"doing"===a.col).length,m=i?i.approved?"✅ approved":`📝 draft (stage ${i.stage})`:"none",n={high:3,med:2,low:1},o=d.filter(a=>"done"!==a.col).sort((a,b)=>n[b.prio]-n[a.prio]||a.key.localeCompare(b.key)).slice(0,5),p=[`📊 ${a.name} — review`,`Plan: ${m} \xb7 24/7 ${i?.auto247?"ON":"off"}`,`Goals: ${j.length} active / ${b.length} total`,`Specs: ${c.filter(a=>"active"===a.status).length} active`,`Issues: todo ${k("todo")} \xb7 doing ${k("doing")} \xb7 review ${k("review")} \xb7 blocked ${k("blocked")} \xb7 done ${k("done")} (of ${d.length})`,`Tasks in flight: ${l}`];return j[0]&&p.push(`Active goal: “${j[0].title}”`),o.length&&p.push(`Next up:
85
+ ${o.map(a=>` • (${a.prio}) ${a.key} — ${a.title}`).join("\n")}`),p.join("\n").slice(0,3500)}async function r(a){let b=await f.db.select({key:g.task.key,title:g.task.title,col:g.task.col,prio:g.task.prio}).from(g.task).where((0,e.eq)(g.task.workspaceId,a.id)),c=b.filter(a=>"doing"===a.col),d=b.filter(a=>"todo"===a.col||"triage"===a.col),h=b.filter(a=>"review"===a.col),i=a=>` • ${a.key} — ${a.title}`,j=[`🗂️ ${a.name} — tasks`];return j.push(`Doing (${c.length}):${c.length?"\n"+c.slice(0,10).map(i).join("\n"):" —"}`),j.push(`In review (${h.length}):${h.length?"\n"+h.slice(0,8).map(i).join("\n"):" —"}`),j.push(`Queued (${d.length}):${d.length?"\n"+d.slice(0,10).map(i).join("\n"):" —"}`),j.join("\n").slice(0,3500)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=7778,exports.ids=[7778],exports.modules={22362:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},27778:(a,b,c)=>{c.d(b,{BunSqliteDialect:()=>n});var d=c(22362),e=c(89207),f=c(55830),g=c(33262),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
+ "use strict";exports.id=9099,exports.ids=[9099],exports.modules={68705:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},99099:(a,b,c)=>{c.d(b,{BunSqliteDialect:()=>n});var d=c(68705),e=c(80595),f=c(41513),g=c(40892),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)}}}};
@@ -0,0 +1 @@
1
+ exports.id=912,exports.ids=[912],exports.modules={1639:()=>{},12940:(a,b,c)=>{"use strict";c.d(b,{F:()=>k,db:()=>l});var d=c(62770),e=c(87550),f=c.n(e),g=c(73024),h=c(76760),i=c(76561);let j=(0,c(45570).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})},40959:()=>{},45570:(a,b,c)=>{"use strict";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)}},76561:(a,b,c)=>{"use strict";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(61278),e=c(63907),f=c(76084),g=c(56864),h=c(34270),i=c(15765),j=c(95424);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)}))}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=9180,exports.ids=[9180],exports.modules={50086:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},69180:(a,b,c)=>{c.d(b,{D1SqliteDialect:()=>l});var d=c(50086),e=c(86785),f=c(7002),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)}}}};