constella 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (747) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +53 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/diagnostics/build-diagnostics.json +6 -0
  5. package/.next/diagnostics/framework.json +1 -0
  6. package/.next/export-marker.json +6 -0
  7. package/.next/images-manifest.json +68 -0
  8. package/.next/next-minimal-server.js.nft.json +1 -0
  9. package/.next/next-server.js.nft.json +1 -0
  10. package/.next/package.json +1 -0
  11. package/.next/prerender-manifest.json +36 -0
  12. package/.next/react-loadable-manifest.json +14 -0
  13. package/.next/required-server-files.js +343 -0
  14. package/.next/required-server-files.json +343 -0
  15. package/.next/routes-manifest.json +362 -0
  16. package/.next/server/app/(app)/activity/page.js +2 -0
  17. package/.next/server/app/(app)/activity/page.js.nft.json +1 -0
  18. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/(app)/agents/[handle]/page.js +18 -0
  20. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -0
  21. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -0
  22. package/.next/server/app/(app)/code/page.js +2 -0
  23. package/.next/server/app/(app)/code/page.js.nft.json +1 -0
  24. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -0
  25. package/.next/server/app/(app)/config/page.js +2 -0
  26. package/.next/server/app/(app)/config/page.js.nft.json +1 -0
  27. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -0
  28. package/.next/server/app/(app)/costs/page.js +2 -0
  29. package/.next/server/app/(app)/costs/page.js.nft.json +1 -0
  30. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -0
  31. package/.next/server/app/(app)/cron/page.js +2 -0
  32. package/.next/server/app/(app)/cron/page.js.nft.json +1 -0
  33. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -0
  34. package/.next/server/app/(app)/dashboard/page.js +2 -0
  35. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -0
  36. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -0
  37. package/.next/server/app/(app)/docs/[id]/page.js +2 -0
  38. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -0
  39. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -0
  40. package/.next/server/app/(app)/docs/page.js +2 -0
  41. package/.next/server/app/(app)/docs/page.js.nft.json +1 -0
  42. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -0
  43. package/.next/server/app/(app)/github/page.js +2 -0
  44. package/.next/server/app/(app)/github/page.js.nft.json +1 -0
  45. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -0
  46. package/.next/server/app/(app)/goals/page.js +2 -0
  47. package/.next/server/app/(app)/goals/page.js.nft.json +1 -0
  48. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -0
  49. package/.next/server/app/(app)/inbox/page.js +2 -0
  50. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
  51. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
  52. package/.next/server/app/(app)/knowledge/page.js +3 -0
  53. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -0
  54. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -0
  55. package/.next/server/app/(app)/models/page.js +2 -0
  56. package/.next/server/app/(app)/models/page.js.nft.json +1 -0
  57. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -0
  58. package/.next/server/app/(app)/notifications/page.js +2 -0
  59. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -0
  60. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -0
  61. package/.next/server/app/(app)/org/page.js +2 -0
  62. package/.next/server/app/(app)/org/page.js.nft.json +1 -0
  63. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -0
  64. package/.next/server/app/(app)/organizations/page.js +2 -0
  65. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -0
  66. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -0
  67. package/.next/server/app/(app)/page.js +3 -0
  68. package/.next/server/app/(app)/page.js.nft.json +1 -0
  69. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -0
  70. package/.next/server/app/(app)/planner/page.js +2 -0
  71. package/.next/server/app/(app)/planner/page.js.nft.json +1 -0
  72. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -0
  73. package/.next/server/app/(app)/plugins/page.js +2 -0
  74. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -0
  75. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
  76. package/.next/server/app/(app)/pm/page.js +2 -0
  77. package/.next/server/app/(app)/pm/page.js.nft.json +1 -0
  78. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -0
  79. package/.next/server/app/(app)/prepare-deploy/page.js +19 -0
  80. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -0
  81. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -0
  82. package/.next/server/app/(app)/profile/page.js +2 -0
  83. package/.next/server/app/(app)/profile/page.js.nft.json +1 -0
  84. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -0
  85. package/.next/server/app/(app)/pulse/page.js +2 -0
  86. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -0
  87. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -0
  88. package/.next/server/app/(app)/reports/[id]/page.js +3 -0
  89. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -0
  90. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -0
  91. package/.next/server/app/(app)/reports/page.js +5 -0
  92. package/.next/server/app/(app)/reports/page.js.nft.json +1 -0
  93. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -0
  94. package/.next/server/app/(app)/routines/page.js +2 -0
  95. package/.next/server/app/(app)/routines/page.js.nft.json +1 -0
  96. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -0
  97. package/.next/server/app/(app)/search/page.js +2 -0
  98. package/.next/server/app/(app)/search/page.js.nft.json +1 -0
  99. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -0
  100. package/.next/server/app/(app)/security/page.js +2 -0
  101. package/.next/server/app/(app)/security/page.js.nft.json +1 -0
  102. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -0
  103. package/.next/server/app/(app)/skills/page.js +18 -0
  104. package/.next/server/app/(app)/skills/page.js.nft.json +1 -0
  105. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -0
  106. package/.next/server/app/(app)/tasks/page.js +2 -0
  107. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -0
  108. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -0
  109. package/.next/server/app/(app)/test-dev/page.js +2 -0
  110. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -0
  111. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -0
  112. package/.next/server/app/(app)/update/page.js +2 -0
  113. package/.next/server/app/(app)/update/page.js.nft.json +1 -0
  114. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -0
  115. package/.next/server/app/(auth)/login/page.js +2 -0
  116. package/.next/server/app/(auth)/login/page.js.nft.json +1 -0
  117. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -0
  118. package/.next/server/app/(auth)/onboarding/page.js +18 -0
  119. package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -0
  120. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -0
  121. package/.next/server/app/_global-error/page.js +32 -0
  122. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  123. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  124. package/.next/server/app/_global-error.html +1 -0
  125. package/.next/server/app/_global-error.meta +16 -0
  126. package/.next/server/app/_global-error.rsc +15 -0
  127. package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
  128. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  129. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  130. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  131. package/.next/server/app/_global-error.segments/_index.segment.rsc +6 -0
  132. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  133. package/.next/server/app/_not-found/page.js +2 -0
  134. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  135. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/auth/[...all]/route.js +1 -0
  137. package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -0
  138. package/.next/server/app/api/auth/[...all]/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/api/cron/tick/route.js +52 -0
  140. package/.next/server/app/api/cron/tick/route.js.nft.json +1 -0
  141. package/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -0
  142. package/.next/server/app/api/dev-login/route.js +1 -0
  143. package/.next/server/app/api/dev-login/route.js.nft.json +1 -0
  144. package/.next/server/app/api/dev-login/route_client-reference-manifest.js +1 -0
  145. package/.next/server/app/api/locks/acquire/route.js +1 -0
  146. package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -0
  147. package/.next/server/app/api/locks/acquire/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/models/progress/route.js +1 -0
  149. package/.next/server/app/api/models/progress/route.js.nft.json +1 -0
  150. package/.next/server/app/api/models/progress/route_client-reference-manifest.js +1 -0
  151. package/.next/server/app/api/passkey/authenticate/options/route.js +1 -0
  152. package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -0
  153. package/.next/server/app/api/passkey/authenticate/options/route_client-reference-manifest.js +1 -0
  154. package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -0
  155. package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -0
  156. package/.next/server/app/api/passkey/authenticate/verify/route_client-reference-manifest.js +1 -0
  157. package/.next/server/app/api/passkey/register/options/route.js +1 -0
  158. package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -0
  159. package/.next/server/app/api/passkey/register/options/route_client-reference-manifest.js +1 -0
  160. package/.next/server/app/api/passkey/register/verify/route.js +1 -0
  161. package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -0
  162. package/.next/server/app/api/passkey/register/verify/route_client-reference-manifest.js +1 -0
  163. package/.next/server/app/api/stream/route.js +4 -0
  164. package/.next/server/app/api/stream/route.js.nft.json +1 -0
  165. package/.next/server/app/api/stream/route_client-reference-manifest.js +1 -0
  166. package/.next/server/app/api/sync/file/route.js +2 -0
  167. package/.next/server/app/api/sync/file/route.js.nft.json +1 -0
  168. package/.next/server/app/api/sync/file/route_client-reference-manifest.js +1 -0
  169. package/.next/server/app/api/telegram/poll/route.js +15 -0
  170. package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -0
  171. package/.next/server/app/api/telegram/poll/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/api/upload/route.js +1 -0
  173. package/.next/server/app/api/upload/route.js.nft.json +1 -0
  174. package/.next/server/app/api/upload/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/v1/[[...path]]/route.js +1 -0
  176. package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -0
  177. package/.next/server/app/api/v1/[[...path]]/route_client-reference-manifest.js +1 -0
  178. package/.next/server/app-paths-manifest.json +53 -0
  179. package/.next/server/chunks/1003.js +1 -0
  180. package/.next/server/chunks/127.js +26 -0
  181. package/.next/server/chunks/1388.js +1 -0
  182. package/.next/server/chunks/1408.js +21 -0
  183. package/.next/server/chunks/1572.js +1 -0
  184. package/.next/server/chunks/1591.js +24 -0
  185. package/.next/server/chunks/1619.js +188 -0
  186. package/.next/server/chunks/162.js +1 -0
  187. package/.next/server/chunks/1881.js +1 -0
  188. package/.next/server/chunks/1968.js +1 -0
  189. package/.next/server/chunks/2297.js +348 -0
  190. package/.next/server/chunks/2341.js +1 -0
  191. package/.next/server/chunks/2517.js +1 -0
  192. package/.next/server/chunks/2549.js +1 -0
  193. package/.next/server/chunks/259.js +14 -0
  194. package/.next/server/chunks/2599.js +1 -0
  195. package/.next/server/chunks/260.js +1 -0
  196. package/.next/server/chunks/2867.js +147 -0
  197. package/.next/server/chunks/3018.js +1 -0
  198. package/.next/server/chunks/3050.js +18 -0
  199. package/.next/server/chunks/3085.js +12 -0
  200. package/.next/server/chunks/3131.js +1 -0
  201. package/.next/server/chunks/3242.js +1 -0
  202. package/.next/server/chunks/3266.js +15 -0
  203. package/.next/server/chunks/3524.js +1 -0
  204. package/.next/server/chunks/3527.js +479 -0
  205. package/.next/server/chunks/3533.js +869 -0
  206. package/.next/server/chunks/3550.js +1 -0
  207. package/.next/server/chunks/3609.js +2 -0
  208. package/.next/server/chunks/3667.js +462 -0
  209. package/.next/server/chunks/3760.js +4 -0
  210. package/.next/server/chunks/4679.js +1 -0
  211. package/.next/server/chunks/4804.js +1 -0
  212. package/.next/server/chunks/4832.js +2 -0
  213. package/.next/server/chunks/4853.js +1 -0
  214. package/.next/server/chunks/4979.js +67 -0
  215. package/.next/server/chunks/5060.js +1 -0
  216. package/.next/server/chunks/5278.js +1 -0
  217. package/.next/server/chunks/5614.js +1 -0
  218. package/.next/server/chunks/5818.js +1 -0
  219. package/.next/server/chunks/6479.js +1 -0
  220. package/.next/server/chunks/6658.js +1 -0
  221. package/.next/server/chunks/6706.js +1 -0
  222. package/.next/server/chunks/6719.js +1 -0
  223. package/.next/server/chunks/678.js +1 -0
  224. package/.next/server/chunks/683.js +1 -0
  225. package/.next/server/chunks/6862.js +1 -0
  226. package/.next/server/chunks/6882.js +1 -0
  227. package/.next/server/chunks/7037.js +1 -0
  228. package/.next/server/chunks/7107.js +741 -0
  229. package/.next/server/chunks/73.js +17 -0
  230. package/.next/server/chunks/7327.js +1 -0
  231. package/.next/server/chunks/7514.js +1 -0
  232. package/.next/server/chunks/7622.js +1 -0
  233. package/.next/server/chunks/7778.js +1 -0
  234. package/.next/server/chunks/7912.js +1 -0
  235. package/.next/server/chunks/7949.js +1 -0
  236. package/.next/server/chunks/7971.js +1 -0
  237. package/.next/server/chunks/7989.js +1 -0
  238. package/.next/server/chunks/842.js +22 -0
  239. package/.next/server/chunks/8762.js +15 -0
  240. package/.next/server/chunks/8823.js +77 -0
  241. package/.next/server/chunks/9146.js +4 -0
  242. package/.next/server/chunks/9676.js +1 -0
  243. package/.next/server/chunks/9783.js +22 -0
  244. package/.next/server/chunks/9969.js +3 -0
  245. package/.next/server/functions-config-manifest.json +18 -0
  246. package/.next/server/instrumentation.js +1 -0
  247. package/.next/server/instrumentation.js.nft.json +1 -0
  248. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  249. package/.next/server/middleware-build-manifest.js +1 -0
  250. package/.next/server/middleware-manifest.json +6 -0
  251. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  252. package/.next/server/middleware.js +18 -0
  253. package/.next/server/middleware.js.nft.json +1 -0
  254. package/.next/server/next-font-manifest.js +1 -0
  255. package/.next/server/next-font-manifest.json +1 -0
  256. package/.next/server/pages/500.html +1 -0
  257. package/.next/server/pages-manifest.json +3 -0
  258. package/.next/server/prefetch-hints.json +1 -0
  259. package/.next/server/server-reference-manifest.js +1 -0
  260. package/.next/server/server-reference-manifest.json +1 -0
  261. package/.next/server/webpack-runtime.js +1 -0
  262. package/.next/static/chunks/1858-339516f78a4b00da.js +1 -0
  263. package/.next/static/chunks/2320-fc8b39380e69d465.js +2 -0
  264. package/.next/static/chunks/23550918-ff694f70f4b0648c.js +1 -0
  265. package/.next/static/chunks/3219-ebb3c23be38c838d.js +1 -0
  266. package/.next/static/chunks/4263-adecb5b466380b6e.js +1 -0
  267. package/.next/static/chunks/5479-0cceab68cd0ca9c7.js +1 -0
  268. package/.next/static/chunks/5701-665b927b06158b76.js +1 -0
  269. package/.next/static/chunks/5920.6451a68b63918988.js +1 -0
  270. package/.next/static/chunks/6575-5c9139720bb0f5bf.js +4 -0
  271. package/.next/static/chunks/6834-4759af1ce7d95fb6.js +32 -0
  272. package/.next/static/chunks/7509.721cd47a931c5518.js +1 -0
  273. package/.next/static/chunks/8264-1ca011989ee2b231.js +1 -0
  274. package/.next/static/chunks/9219-4a39a98b5502d9d1.js +1 -0
  275. package/.next/static/chunks/9690-53d5222618cbeddb.js +1 -0
  276. package/.next/static/chunks/app/(app)/activity/page-3973534281ecea81.js +1 -0
  277. package/.next/static/chunks/app/(app)/agents/[handle]/page-83662a175c098282.js +1 -0
  278. package/.next/static/chunks/app/(app)/code/page-33979545192cd137.js +1 -0
  279. package/.next/static/chunks/app/(app)/config/page-9933aed1ca8a85c1.js +1 -0
  280. package/.next/static/chunks/app/(app)/costs/page-131c4dc580efcc19.js +1 -0
  281. package/.next/static/chunks/app/(app)/cron/page-53ea1aff998a87ca.js +1 -0
  282. package/.next/static/chunks/app/(app)/dashboard/page-deed83aaa9d0d447.js +1 -0
  283. package/.next/static/chunks/app/(app)/docs/[id]/page-38c993d73c0eab4f.js +1 -0
  284. package/.next/static/chunks/app/(app)/docs/page-bf463b55d0554e86.js +1 -0
  285. package/.next/static/chunks/app/(app)/error-988cd28480809861.js +1 -0
  286. package/.next/static/chunks/app/(app)/github/page-62678b4e82dfecb6.js +1 -0
  287. package/.next/static/chunks/app/(app)/goals/page-4adb426fe1c96106.js +1 -0
  288. package/.next/static/chunks/app/(app)/inbox/page-e347dc55ab467310.js +1 -0
  289. package/.next/static/chunks/app/(app)/knowledge/page-65393a045b4349be.js +1 -0
  290. package/.next/static/chunks/app/(app)/layout-7f65675705b011d8.js +1 -0
  291. package/.next/static/chunks/app/(app)/models/page-e01f1dd7e49a2951.js +1 -0
  292. package/.next/static/chunks/app/(app)/notifications/page-56548ac87aef00da.js +1 -0
  293. package/.next/static/chunks/app/(app)/org/page-699e6a6dc0db7d81.js +1 -0
  294. package/.next/static/chunks/app/(app)/organizations/page-36051a380a7e8eb7.js +1 -0
  295. package/.next/static/chunks/app/(app)/page-7d1011a566f81520.js +1 -0
  296. package/.next/static/chunks/app/(app)/planner/page-dab7ced94083373a.js +1 -0
  297. package/.next/static/chunks/app/(app)/plugins/page-5b5a1f53389be42e.js +1 -0
  298. package/.next/static/chunks/app/(app)/pm/page-0de5c08c0b227bb0.js +1 -0
  299. package/.next/static/chunks/app/(app)/prepare-deploy/page-e426038552df8d41.js +1 -0
  300. package/.next/static/chunks/app/(app)/profile/page-608dfcaf8aae0a69.js +1 -0
  301. package/.next/static/chunks/app/(app)/pulse/page-309ccaca91de1faa.js +1 -0
  302. package/.next/static/chunks/app/(app)/reports/[id]/page-53ea1aff998a87ca.js +1 -0
  303. package/.next/static/chunks/app/(app)/reports/page-68cdc6dcfa472d86.js +1 -0
  304. package/.next/static/chunks/app/(app)/routines/page-bcc55550b197a9fa.js +1 -0
  305. package/.next/static/chunks/app/(app)/search/page-5c5f67558d0dbf0d.js +1 -0
  306. package/.next/static/chunks/app/(app)/security/page-a7d41e36aa366b45.js +1 -0
  307. package/.next/static/chunks/app/(app)/skills/page-c5b21e89593b8336.js +1 -0
  308. package/.next/static/chunks/app/(app)/tasks/page-08ae079e3e54d2ce.js +1 -0
  309. package/.next/static/chunks/app/(app)/test-dev/page-633f82dfd9c3ce23.js +1 -0
  310. package/.next/static/chunks/app/(app)/update/page-4be019054351bfac.js +1 -0
  311. package/.next/static/chunks/app/(auth)/login/page-6e85d3377062acae.js +1 -0
  312. package/.next/static/chunks/app/(auth)/onboarding/page-ebb10c175abf3b85.js +1 -0
  313. package/.next/static/chunks/app/_global-error/page-23fe50a6bf589c97.js +1 -0
  314. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
  315. package/.next/static/chunks/app/api/auth/[...all]/route-23fe50a6bf589c97.js +1 -0
  316. package/.next/static/chunks/app/api/cron/tick/route-23fe50a6bf589c97.js +1 -0
  317. package/.next/static/chunks/app/api/dev-login/route-23fe50a6bf589c97.js +1 -0
  318. package/.next/static/chunks/app/api/locks/acquire/route-23fe50a6bf589c97.js +1 -0
  319. package/.next/static/chunks/app/api/models/progress/route-23fe50a6bf589c97.js +1 -0
  320. package/.next/static/chunks/app/api/passkey/authenticate/options/route-23fe50a6bf589c97.js +1 -0
  321. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-23fe50a6bf589c97.js +1 -0
  322. package/.next/static/chunks/app/api/passkey/register/options/route-23fe50a6bf589c97.js +1 -0
  323. package/.next/static/chunks/app/api/passkey/register/verify/route-23fe50a6bf589c97.js +1 -0
  324. package/.next/static/chunks/app/api/stream/route-23fe50a6bf589c97.js +1 -0
  325. package/.next/static/chunks/app/api/sync/file/route-23fe50a6bf589c97.js +1 -0
  326. package/.next/static/chunks/app/api/telegram/poll/route-23fe50a6bf589c97.js +1 -0
  327. package/.next/static/chunks/app/api/upload/route-23fe50a6bf589c97.js +1 -0
  328. package/.next/static/chunks/app/api/v1/[[...path]]/route-23fe50a6bf589c97.js +1 -0
  329. package/.next/static/chunks/app/error-09899a13c38b6e89.js +1 -0
  330. package/.next/static/chunks/app/global-error-b8050d4d886f448c.js +1 -0
  331. package/.next/static/chunks/app/layout-ab9deed1e7e2e9df.js +1 -0
  332. package/.next/static/chunks/framework-4b2c6b6043dd203f.js +1 -0
  333. package/.next/static/chunks/main-722e16032e7764d1.js +5 -0
  334. package/.next/static/chunks/main-app-761880af2b6f1962.js +1 -0
  335. package/.next/static/chunks/next/dist/client/components/builtin/app-error-23fe50a6bf589c97.js +1 -0
  336. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-23fe50a6bf589c97.js +1 -0
  337. package/.next/static/chunks/next/dist/client/components/builtin/not-found-23fe50a6bf589c97.js +1 -0
  338. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-23fe50a6bf589c97.js +1 -0
  339. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  340. package/.next/static/chunks/webpack-222e3894b78c67db.js +1 -0
  341. package/.next/static/css/0a9b5805594444e3.css +1 -0
  342. package/.next/static/yztMvBwyrWWkSqP6jfXoa/_buildManifest.js +1 -0
  343. package/.next/static/yztMvBwyrWWkSqP6jfXoa/_ssgManifest.js +1 -0
  344. package/.next/trace-build +1 -0
  345. package/.next/types/app/(app)/activity/page.ts +87 -0
  346. package/.next/types/app/(app)/agents/[handle]/page.ts +87 -0
  347. package/.next/types/app/(app)/code/page.ts +87 -0
  348. package/.next/types/app/(app)/config/page.ts +87 -0
  349. package/.next/types/app/(app)/costs/page.ts +87 -0
  350. package/.next/types/app/(app)/cron/page.ts +87 -0
  351. package/.next/types/app/(app)/dashboard/page.ts +87 -0
  352. package/.next/types/app/(app)/docs/[id]/page.ts +87 -0
  353. package/.next/types/app/(app)/docs/page.ts +87 -0
  354. package/.next/types/app/(app)/github/page.ts +87 -0
  355. package/.next/types/app/(app)/goals/page.ts +87 -0
  356. package/.next/types/app/(app)/inbox/page.ts +87 -0
  357. package/.next/types/app/(app)/knowledge/page.ts +87 -0
  358. package/.next/types/app/(app)/models/page.ts +87 -0
  359. package/.next/types/app/(app)/notifications/page.ts +87 -0
  360. package/.next/types/app/(app)/org/page.ts +87 -0
  361. package/.next/types/app/(app)/organizations/page.ts +87 -0
  362. package/.next/types/app/(app)/page.ts +87 -0
  363. package/.next/types/app/(app)/planner/page.ts +87 -0
  364. package/.next/types/app/(app)/plugins/page.ts +87 -0
  365. package/.next/types/app/(app)/pm/page.ts +87 -0
  366. package/.next/types/app/(app)/prepare-deploy/page.ts +87 -0
  367. package/.next/types/app/(app)/profile/page.ts +87 -0
  368. package/.next/types/app/(app)/pulse/page.ts +87 -0
  369. package/.next/types/app/(app)/reports/[id]/page.ts +87 -0
  370. package/.next/types/app/(app)/reports/page.ts +87 -0
  371. package/.next/types/app/(app)/routines/page.ts +87 -0
  372. package/.next/types/app/(app)/search/page.ts +87 -0
  373. package/.next/types/app/(app)/security/page.ts +87 -0
  374. package/.next/types/app/(app)/skills/page.ts +87 -0
  375. package/.next/types/app/(app)/tasks/page.ts +87 -0
  376. package/.next/types/app/(app)/test-dev/page.ts +87 -0
  377. package/.next/types/app/(app)/update/page.ts +87 -0
  378. package/.next/types/app/(auth)/login/page.ts +87 -0
  379. package/.next/types/app/(auth)/onboarding/page.ts +87 -0
  380. package/.next/types/app/api/auth/[...all]/route.ts +351 -0
  381. package/.next/types/app/api/cron/tick/route.ts +351 -0
  382. package/.next/types/app/api/dev-login/route.ts +351 -0
  383. package/.next/types/app/api/locks/acquire/route.ts +351 -0
  384. package/.next/types/app/api/models/progress/route.ts +351 -0
  385. package/.next/types/app/api/passkey/authenticate/options/route.ts +351 -0
  386. package/.next/types/app/api/passkey/authenticate/verify/route.ts +351 -0
  387. package/.next/types/app/api/passkey/register/options/route.ts +351 -0
  388. package/.next/types/app/api/passkey/register/verify/route.ts +351 -0
  389. package/.next/types/app/api/stream/route.ts +351 -0
  390. package/.next/types/app/api/sync/file/route.ts +351 -0
  391. package/.next/types/app/api/telegram/poll/route.ts +351 -0
  392. package/.next/types/app/api/upload/route.ts +351 -0
  393. package/.next/types/app/api/v1/[[...path]]/route.ts +351 -0
  394. package/.next/types/cache-life.d.ts +145 -0
  395. package/.next/types/link.d.ts +210 -0
  396. package/.next/types/package.json +1 -0
  397. package/.next/types/routes.d.ts +120 -0
  398. package/.next/types/validator.ts +511 -0
  399. package/CHANGELOG.md +312 -0
  400. package/LICENSE +21 -0
  401. package/README.md +382 -0
  402. package/README.pt-BR.md +391 -0
  403. package/bin/constella.mjs +329 -0
  404. package/bin/guard-hook.mjs +44 -0
  405. package/bin/lock-hook.mjs +49 -0
  406. package/bin/worker.mjs +142 -0
  407. package/docs/assets/arch-orbit.svg +56 -0
  408. package/docs/assets/blackhole.svg +37 -0
  409. package/docs/assets/divider-orbit.svg +23 -0
  410. package/docs/assets/hero-constella.svg +72 -0
  411. package/docs/en/AGENTS.md +279 -0
  412. package/docs/en/AI_ARCHITECTURE.md +373 -0
  413. package/docs/en/ARCHITECTURE.md +334 -0
  414. package/docs/en/AUTH_MODE.md +247 -0
  415. package/docs/en/CHAT_COMMANDS.md +305 -0
  416. package/docs/en/CONFIGURATION.md +340 -0
  417. package/docs/en/DEPLOY.md +331 -0
  418. package/docs/en/DM.md +297 -0
  419. package/docs/en/FAQ.md +258 -0
  420. package/docs/en/GITHUB.md +341 -0
  421. package/docs/en/GOALS_SPECS_ISSUES.md +303 -0
  422. package/docs/en/INBOX.md +340 -0
  423. package/docs/en/INSTALLATION.md +329 -0
  424. package/docs/en/KB_AGENT.md +305 -0
  425. package/docs/en/KB_RAG.md +356 -0
  426. package/docs/en/MCP.md +313 -0
  427. package/docs/en/MEMORY_RAG.md +289 -0
  428. package/docs/en/MODELS.md +341 -0
  429. package/docs/en/ONBOARDING.md +327 -0
  430. package/docs/en/PLUGINS.md +290 -0
  431. package/docs/en/PORTABLE_MODE.md +387 -0
  432. package/docs/en/PO_AGENT.md +379 -0
  433. package/docs/en/PREPARE_DEPLOY.md +308 -0
  434. package/docs/en/PROJECT_STACKS.md +258 -0
  435. package/docs/en/PUBLIC_API.md +315 -0
  436. package/docs/en/PUBLISHING.md +343 -0
  437. package/docs/en/README.md +95 -0
  438. package/docs/en/SECURITY.md +280 -0
  439. package/docs/en/SKILLS.md +349 -0
  440. package/docs/en/START_MODE.md +340 -0
  441. package/docs/en/SYNCED_BLOCKS.md +320 -0
  442. package/docs/en/TEAM_ROOM.md +285 -0
  443. package/docs/en/TELEGRAM.md +294 -0
  444. package/docs/en/TEST_DEV.md +321 -0
  445. package/docs/en/TROUBLESHOOTING.md +294 -0
  446. package/docs/en/UPDATE.md +301 -0
  447. package/docs/en/VPS_MODE.md +334 -0
  448. package/docs/en/WORKFLOW.md +321 -0
  449. package/docs/pt/AGENTS.md +279 -0
  450. package/docs/pt/AI_ARCHITECTURE.md +373 -0
  451. package/docs/pt/ARCHITECTURE.md +334 -0
  452. package/docs/pt/AUTH_MODE.md +247 -0
  453. package/docs/pt/CHAT_COMMANDS.md +307 -0
  454. package/docs/pt/CONFIGURATION.md +340 -0
  455. package/docs/pt/DEPLOY.md +331 -0
  456. package/docs/pt/DM.md +297 -0
  457. package/docs/pt/FAQ.md +258 -0
  458. package/docs/pt/GITHUB.md +341 -0
  459. package/docs/pt/GOALS_SPECS_ISSUES.md +303 -0
  460. package/docs/pt/INBOX.md +340 -0
  461. package/docs/pt/INSTALLATION.md +329 -0
  462. package/docs/pt/KB_AGENT.md +305 -0
  463. package/docs/pt/KB_RAG.md +356 -0
  464. package/docs/pt/MCP.md +313 -0
  465. package/docs/pt/MEMORY_RAG.md +289 -0
  466. package/docs/pt/MODELS.md +341 -0
  467. package/docs/pt/ONBOARDING.md +327 -0
  468. package/docs/pt/PLUGINS.md +290 -0
  469. package/docs/pt/PORTABLE_MODE.md +387 -0
  470. package/docs/pt/PO_AGENT.md +379 -0
  471. package/docs/pt/PREPARE_DEPLOY.md +308 -0
  472. package/docs/pt/PROJECT_STACKS.md +258 -0
  473. package/docs/pt/PUBLIC_API.md +315 -0
  474. package/docs/pt/PUBLISHING.md +343 -0
  475. package/docs/pt/README.md +95 -0
  476. package/docs/pt/SECURITY.md +280 -0
  477. package/docs/pt/SKILLS.md +349 -0
  478. package/docs/pt/START_MODE.md +340 -0
  479. package/docs/pt/SYNCED_BLOCKS.md +320 -0
  480. package/docs/pt/TEAM_ROOM.md +285 -0
  481. package/docs/pt/TELEGRAM.md +294 -0
  482. package/docs/pt/TEST_DEV.md +321 -0
  483. package/docs/pt/TROUBLESHOOTING.md +294 -0
  484. package/docs/pt/UPDATE.md +301 -0
  485. package/docs/pt/VPS_MODE.md +334 -0
  486. package/docs/pt/WORKFLOW.md +321 -0
  487. package/drizzle/0000_regular_nightshade.sql +644 -0
  488. package/drizzle/0001_mixed_zombie.sql +106 -0
  489. package/drizzle/meta/0000_snapshot.json +4650 -0
  490. package/drizzle/meta/0001_snapshot.json +5418 -0
  491. package/drizzle/meta/_journal.json +20 -0
  492. package/drizzle.config.mjs +16 -0
  493. package/next.config.mjs +18 -0
  494. package/package.json +130 -0
  495. package/scripts/clean-repo.mjs +20 -0
  496. package/scripts/dev-all.mjs +46 -0
  497. package/scripts/i18n-parity.mjs +57 -0
  498. package/scripts/mcp-server.mjs +100 -0
  499. package/scripts/postbuild.mjs +11 -0
  500. package/scripts/publish-public.mjs +116 -0
  501. package/scripts/start-all.mjs +45 -0
  502. package/scripts/trim-next.mjs +23 -0
  503. package/scripts/vps-install.sh +39 -0
  504. package/skills/CONTRIBUTING.md +122 -0
  505. package/skills/COVERAGE.md +129 -0
  506. package/skills/INDEX.json +3443 -0
  507. package/skills/README.md +57 -0
  508. package/skills/design/animation-motion/SKILL.md +60 -0
  509. package/skills/design/color-and-typography/SKILL.md +60 -0
  510. package/skills/design/css-techniques/SKILL.md +58 -0
  511. package/skills/design/design-systems/SKILL.md +60 -0
  512. package/skills/design/gradients/SKILL.md +59 -0
  513. package/skills/design/graphic-design-basics/SKILL.md +55 -0
  514. package/skills/design/microinteractions/SKILL.md +58 -0
  515. package/skills/design/responsive-layout/SKILL.md +59 -0
  516. package/skills/design/ui-ux-principles/SKILL.md +58 -0
  517. package/skills/engineering/architecture/api-design-rest-graphql/SKILL.md +67 -0
  518. package/skills/engineering/architecture/caching-strategies/SKILL.md +59 -0
  519. package/skills/engineering/architecture/data-modeling/SKILL.md +64 -0
  520. package/skills/engineering/architecture/message-queues-async/SKILL.md +58 -0
  521. package/skills/engineering/architecture/scalability-reliability/SKILL.md +62 -0
  522. package/skills/engineering/architecture/software-architecture-patterns/SKILL.md +56 -0
  523. package/skills/engineering/architecture/system-design-fundamentals/SKILL.md +56 -0
  524. package/skills/engineering/backend/auth-and-authorization/SKILL.md +62 -0
  525. package/skills/engineering/backend/backend-fundamentals/SKILL.md +65 -0
  526. package/skills/engineering/backend/observability-logging/SKILL.md +60 -0
  527. package/skills/engineering/frontend/accessibility-wcag/SKILL.md +57 -0
  528. package/skills/engineering/frontend/frontend-architecture/SKILL.md +65 -0
  529. package/skills/engineering/frontend/rendering-strategies-ssr-csr/SKILL.md +60 -0
  530. package/skills/engineering/frontend/state-management/SKILL.md +69 -0
  531. package/skills/engineering/performance/backend-performance/SKILL.md +69 -0
  532. package/skills/engineering/performance/database-query-optimization/SKILL.md +64 -0
  533. package/skills/engineering/performance/profiling-and-benchmarking/SKILL.md +60 -0
  534. package/skills/engineering/performance/web-performance-core-vitals/SKILL.md +72 -0
  535. package/skills/engineering/practices/clean-code/SKILL.md +61 -0
  536. package/skills/engineering/practices/code-optimization/SKILL.md +60 -0
  537. package/skills/engineering/practices/code-review-practices/SKILL.md +58 -0
  538. package/skills/engineering/practices/git-workflow/SKILL.md +62 -0
  539. package/skills/engineering/practices/refactoring/SKILL.md +58 -0
  540. package/skills/engineering/security/appsec-fundamentals/SKILL.md +70 -0
  541. package/skills/engineering/security/dependency-supply-chain/SKILL.md +77 -0
  542. package/skills/engineering/security/owasp-asvs/SKILL.md +54 -0
  543. package/skills/engineering/security/owasp-top-10/SKILL.md +63 -0
  544. package/skills/engineering/security/secrets-management/SKILL.md +58 -0
  545. package/skills/engineering/security/secure-auth-sessions/SKILL.md +56 -0
  546. package/skills/engineering/testing/tdd-and-coverage/SKILL.md +62 -0
  547. package/skills/engineering/testing/testing-strategy-pyramid/SKILL.md +56 -0
  548. package/skills/engineering/testing/unit-integration-e2e/SKILL.md +75 -0
  549. package/skills/languages/c/SKILL.md +74 -0
  550. package/skills/languages/clojure/SKILL.md +73 -0
  551. package/skills/languages/cpp/SKILL.md +75 -0
  552. package/skills/languages/csharp/SKILL.md +75 -0
  553. package/skills/languages/dart/SKILL.md +82 -0
  554. package/skills/languages/elixir/SKILL.md +74 -0
  555. package/skills/languages/erlang/SKILL.md +76 -0
  556. package/skills/languages/go/SKILL.md +83 -0
  557. package/skills/languages/haskell/SKILL.md +70 -0
  558. package/skills/languages/java/SKILL.md +71 -0
  559. package/skills/languages/javascript/SKILL.md +62 -0
  560. package/skills/languages/kotlin/SKILL.md +68 -0
  561. package/skills/languages/lua/SKILL.md +79 -0
  562. package/skills/languages/objectivec/SKILL.md +83 -0
  563. package/skills/languages/php/SKILL.md +74 -0
  564. package/skills/languages/python/SKILL.md +68 -0
  565. package/skills/languages/r/SKILL.md +70 -0
  566. package/skills/languages/ruby/SKILL.md +67 -0
  567. package/skills/languages/rust/SKILL.md +72 -0
  568. package/skills/languages/scala/SKILL.md +73 -0
  569. package/skills/languages/swift/SKILL.md +73 -0
  570. package/skills/languages/typescript/SKILL.md +69 -0
  571. package/skills/meta/authoring-agent-skills/SKILL.md +73 -0
  572. package/skills/meta/progressive-disclosure/SKILL.md +65 -0
  573. package/skills/meta/skill-frontmatter-spec/SKILL.md +65 -0
  574. package/skills/process/adr-technical-decisions/SKILL.md +59 -0
  575. package/skills/process/app-planning/SKILL.md +63 -0
  576. package/skills/process/architecture-before-code/SKILL.md +52 -0
  577. package/skills/process/breaking-work-into-sprints/SKILL.md +53 -0
  578. package/skills/process/idea-to-product/SKILL.md +50 -0
  579. package/skills/process/mocks-and-screen-flows/SKILL.md +52 -0
  580. package/skills/process/prioritization-moscow-rice/SKILL.md +64 -0
  581. package/skills/process/problem-framing/SKILL.md +51 -0
  582. package/skills/process/product-discovery/SKILL.md +53 -0
  583. package/skills/process/readme-generation/SKILL.md +90 -0
  584. package/skills/process/requirements-to-specs/SKILL.md +53 -0
  585. package/skills/process/research-official-docs/SKILL.md +58 -0
  586. package/skills/process/review-code-perf-security/SKILL.md +65 -0
  587. package/skills/process/security-by-design/SKILL.md +68 -0
  588. package/skills/process/specs-to-issues/SKILL.md +53 -0
  589. package/skills/process/testing-before-done/SKILL.md +61 -0
  590. package/skills/process/validating-ux-navigation/SKILL.md +63 -0
  591. package/skills/references/ai-attachments-ui/SKILL.md +66 -0
  592. package/skills/references/ai-in-browser-webllm/SKILL.md +74 -0
  593. package/skills/references/ai-tool-ui-patterns/SKILL.md +63 -0
  594. package/skills/references/component-patterns-gallery/SKILL.md +62 -0
  595. package/skills/references/gradient-resources/SKILL.md +66 -0
  596. package/skills/references/react-component-libraries/SKILL.md +61 -0
  597. package/skills/references/saas-landing-patterns/SKILL.md +67 -0
  598. package/skills/references/shadcn-tailwind-theming/SKILL.md +74 -0
  599. package/skills/references/vercel-ai-sdk-elements/SKILL.md +66 -0
  600. package/skills/references/web-animation-codrops/SKILL.md +68 -0
  601. package/skills/stacks/aiml/jupyter/SKILL.md +68 -0
  602. package/skills/stacks/aiml/keras/SKILL.md +77 -0
  603. package/skills/stacks/aiml/numpy/SKILL.md +69 -0
  604. package/skills/stacks/aiml/pandas/SKILL.md +72 -0
  605. package/skills/stacks/aiml/pytorch/SKILL.md +77 -0
  606. package/skills/stacks/aiml/scikit-learn/SKILL.md +74 -0
  607. package/skills/stacks/aiml/tensorflow/SKILL.md +79 -0
  608. package/skills/stacks/auth/auth0/SKILL.md +63 -0
  609. package/skills/stacks/auth/authjs/SKILL.md +69 -0
  610. package/skills/stacks/auth/clerk/SKILL.md +72 -0
  611. package/skills/stacks/auth/keycloak/SKILL.md +63 -0
  612. package/skills/stacks/auth/lucia/SKILL.md +56 -0
  613. package/skills/stacks/auth/passport/SKILL.md +70 -0
  614. package/skills/stacks/auth/supabase-auth/SKILL.md +66 -0
  615. package/skills/stacks/baas/amplify/SKILL.md +71 -0
  616. package/skills/stacks/baas/appwrite/SKILL.md +79 -0
  617. package/skills/stacks/baas/firebase/SKILL.md +73 -0
  618. package/skills/stacks/baas/heroku/SKILL.md +71 -0
  619. package/skills/stacks/backend/actix/SKILL.md +77 -0
  620. package/skills/stacks/backend/adonisjs/SKILL.md +65 -0
  621. package/skills/stacks/backend/aspnet-core/SKILL.md +75 -0
  622. package/skills/stacks/backend/codeigniter/SKILL.md +76 -0
  623. package/skills/stacks/backend/django/SKILL.md +62 -0
  624. package/skills/stacks/backend/express/SKILL.md +65 -0
  625. package/skills/stacks/backend/fastapi/SKILL.md +64 -0
  626. package/skills/stacks/backend/fastify/SKILL.md +64 -0
  627. package/skills/stacks/backend/fiber/SKILL.md +68 -0
  628. package/skills/stacks/backend/flask/SKILL.md +71 -0
  629. package/skills/stacks/backend/gin/SKILL.md +68 -0
  630. package/skills/stacks/backend/graphql/SKILL.md +70 -0
  631. package/skills/stacks/backend/hono/SKILL.md +64 -0
  632. package/skills/stacks/backend/koa/SKILL.md +63 -0
  633. package/skills/stacks/backend/laravel/SKILL.md +73 -0
  634. package/skills/stacks/backend/nestjs/SKILL.md +70 -0
  635. package/skills/stacks/backend/nginx/SKILL.md +77 -0
  636. package/skills/stacks/backend/phoenix/SKILL.md +68 -0
  637. package/skills/stacks/backend/rails/SKILL.md +67 -0
  638. package/skills/stacks/backend/spring/SKILL.md +70 -0
  639. package/skills/stacks/backend/spring-boot/SKILL.md +70 -0
  640. package/skills/stacks/backend/symfony/SKILL.md +77 -0
  641. package/skills/stacks/container/containerd/SKILL.md +75 -0
  642. package/skills/stacks/container/docker/SKILL.md +90 -0
  643. package/skills/stacks/container/podman/SKILL.md +93 -0
  644. package/skills/stacks/database/cassandra/SKILL.md +74 -0
  645. package/skills/stacks/database/cockroachdb/SKILL.md +69 -0
  646. package/skills/stacks/database/dynamodb/SKILL.md +62 -0
  647. package/skills/stacks/database/mariadb/SKILL.md +71 -0
  648. package/skills/stacks/database/mongodb/SKILL.md +71 -0
  649. package/skills/stacks/database/mysql/SKILL.md +72 -0
  650. package/skills/stacks/database/neon/SKILL.md +68 -0
  651. package/skills/stacks/database/planetscale/SKILL.md +70 -0
  652. package/skills/stacks/database/postgresql/SKILL.md +81 -0
  653. package/skills/stacks/database/redis/SKILL.md +78 -0
  654. package/skills/stacks/database/sqlite/SKILL.md +70 -0
  655. package/skills/stacks/database/supabase/SKILL.md +79 -0
  656. package/skills/stacks/dataviz/chart-js/SKILL.md +72 -0
  657. package/skills/stacks/dataviz/d3/SKILL.md +77 -0
  658. package/skills/stacks/dataviz/grafana/SKILL.md +69 -0
  659. package/skills/stacks/dataviz/plotly/SKILL.md +71 -0
  660. package/skills/stacks/frontend/alpine/SKILL.md +75 -0
  661. package/skills/stacks/frontend/angular/SKILL.md +75 -0
  662. package/skills/stacks/frontend/backbone/SKILL.md +82 -0
  663. package/skills/stacks/frontend/ember/SKILL.md +85 -0
  664. package/skills/stacks/frontend/htmx/SKILL.md +73 -0
  665. package/skills/stacks/frontend/lit/SKILL.md +76 -0
  666. package/skills/stacks/frontend/preact/SKILL.md +74 -0
  667. package/skills/stacks/frontend/qwik/SKILL.md +65 -0
  668. package/skills/stacks/frontend/react/SKILL.md +77 -0
  669. package/skills/stacks/frontend/solidjs/SKILL.md +75 -0
  670. package/skills/stacks/frontend/svelte/SKILL.md +70 -0
  671. package/skills/stacks/frontend/vue/SKILL.md +69 -0
  672. package/skills/stacks/infra/ansible/SKILL.md +76 -0
  673. package/skills/stacks/infra/aws/SKILL.md +66 -0
  674. package/skills/stacks/infra/azure/SKILL.md +72 -0
  675. package/skills/stacks/infra/circleci/SKILL.md +78 -0
  676. package/skills/stacks/infra/cloudflare/SKILL.md +65 -0
  677. package/skills/stacks/infra/fly-io/SKILL.md +63 -0
  678. package/skills/stacks/infra/gcp/SKILL.md +66 -0
  679. package/skills/stacks/infra/jenkins/SKILL.md +73 -0
  680. package/skills/stacks/infra/kubernetes/SKILL.md +64 -0
  681. package/skills/stacks/infra/netlify/SKILL.md +60 -0
  682. package/skills/stacks/infra/railway/SKILL.md +63 -0
  683. package/skills/stacks/infra/tailscale/SKILL.md +65 -0
  684. package/skills/stacks/infra/terraform/SKILL.md +75 -0
  685. package/skills/stacks/infra/vagrant/SKILL.md +70 -0
  686. package/skills/stacks/infra/vercel/SKILL.md +60 -0
  687. package/skills/stacks/meta/astro/SKILL.md +64 -0
  688. package/skills/stacks/meta/docusaurus/SKILL.md +71 -0
  689. package/skills/stacks/meta/eleventy/SKILL.md +69 -0
  690. package/skills/stacks/meta/gatsby/SKILL.md +63 -0
  691. package/skills/stacks/meta/hugo/SKILL.md +73 -0
  692. package/skills/stacks/meta/jekyll/SKILL.md +70 -0
  693. package/skills/stacks/meta/nextjs/SKILL.md +62 -0
  694. package/skills/stacks/meta/nuxt/SKILL.md +66 -0
  695. package/skills/stacks/meta/remix/SKILL.md +67 -0
  696. package/skills/stacks/meta/sveltekit/SKILL.md +70 -0
  697. package/skills/stacks/meta/vite/SKILL.md +63 -0
  698. package/skills/stacks/mobile/android/SKILL.md +77 -0
  699. package/skills/stacks/mobile/flutter/SKILL.md +77 -0
  700. package/skills/stacks/mobile/ionic/SKILL.md +72 -0
  701. package/skills/stacks/mobile/nativescript/SKILL.md +71 -0
  702. package/skills/stacks/mobile/react-native/SKILL.md +75 -0
  703. package/skills/stacks/mobile/xamarin/SKILL.md +73 -0
  704. package/skills/stacks/orm/diesel/SKILL.md +72 -0
  705. package/skills/stacks/orm/django-orm/SKILL.md +58 -0
  706. package/skills/stacks/orm/drizzle/SKILL.md +67 -0
  707. package/skills/stacks/orm/gorm/SKILL.md +73 -0
  708. package/skills/stacks/orm/knex/SKILL.md +64 -0
  709. package/skills/stacks/orm/mongoose/SKILL.md +64 -0
  710. package/skills/stacks/orm/prisma/SKILL.md +64 -0
  711. package/skills/stacks/orm/sequelize/SKILL.md +65 -0
  712. package/skills/stacks/orm/sqlalchemy/SKILL.md +71 -0
  713. package/skills/stacks/orm/typeorm/SKILL.md +70 -0
  714. package/skills/stacks/queue/bullmq/SKILL.md +69 -0
  715. package/skills/stacks/queue/celery/SKILL.md +68 -0
  716. package/skills/stacks/queue/kafka/SKILL.md +66 -0
  717. package/skills/stacks/queue/nats/SKILL.md +66 -0
  718. package/skills/stacks/queue/rabbitmq/SKILL.md +64 -0
  719. package/skills/stacks/queue/redis/SKILL.md +66 -0
  720. package/skills/stacks/runtime/beam/SKILL.md +72 -0
  721. package/skills/stacks/runtime/bun/SKILL.md +80 -0
  722. package/skills/stacks/runtime/deno/SKILL.md +74 -0
  723. package/skills/stacks/runtime/dotnet/SKILL.md +64 -0
  724. package/skills/stacks/runtime/jvm/SKILL.md +66 -0
  725. package/skills/stacks/runtime/node/SKILL.md +70 -0
  726. package/skills/stacks/runtime/pypy/SKILL.md +69 -0
  727. package/skills/stacks/runtime/python3/SKILL.md +70 -0
  728. package/skills/stacks/styling/bootstrap/SKILL.md +74 -0
  729. package/skills/stacks/styling/bulma/SKILL.md +80 -0
  730. package/skills/stacks/styling/chakra-ui/SKILL.md +61 -0
  731. package/skills/stacks/styling/css-modules/SKILL.md +54 -0
  732. package/skills/stacks/styling/mui/SKILL.md +60 -0
  733. package/skills/stacks/styling/sass/SKILL.md +63 -0
  734. package/skills/stacks/styling/shadcn-ui/SKILL.md +58 -0
  735. package/skills/stacks/styling/styled-components/SKILL.md +62 -0
  736. package/skills/stacks/styling/tailwind/SKILL.md +59 -0
  737. package/skills/stacks/styling/unocss/SKILL.md +64 -0
  738. package/skills/stacks/styling/vanilla-extract/SKILL.md +64 -0
  739. package/skills/stacks/styling/vuetify/SKILL.md +89 -0
  740. package/skills/stacks/testing/cypress/SKILL.md +68 -0
  741. package/skills/stacks/testing/jasmine/SKILL.md +67 -0
  742. package/skills/stacks/testing/jest/SKILL.md +67 -0
  743. package/skills/stacks/testing/mocha/SKILL.md +71 -0
  744. package/skills/stacks/testing/playwright/SKILL.md +68 -0
  745. package/skills/stacks/testing/puppeteer/SKILL.md +70 -0
  746. package/skills/stacks/testing/selenium/SKILL.md +70 -0
  747. package/skills/stacks/testing/vitest/SKILL.md +68 -0
@@ -0,0 +1,67 @@
1
+ "use strict";exports.id=4979,exports.ids=[4979],exports.modules={44239:(a,b,c)=>{c.d(b,{$K:()=>m,$h:()=>q,FU:()=>t,II:()=>s,Kb:()=>u,MO:()=>o,Qu:()=>n,Vz:()=>r,dZ:()=>p});var d=c(6866),e=c(77598),f=c(19202),g=c(31371),h=c(65705),i=c(1890),j=c(53993),k=c(83963),l=c(84903);async function m(a){let{workspace:b}=await (0,j.nP)(),c=a.title.trim();c&&(await h.db.insert(i.backlogItem).values({id:(0,e.randomUUID)(),workspaceId:b.id,title:c,moscow:a.moscow??"Should",points:a.points??0}),(0,g.revalidatePath)("/pm"))}async function n(a){let{workspace:b}=await (0,j.nP)();await h.db.delete(i.backlogItem).where((0,f.Uo)((0,f.eq)(i.backlogItem.id,a),(0,f.eq)(i.backlogItem.workspaceId,b.id))),(0,g.revalidatePath)("/pm")}async function o(a,b){let c=await h.db.select().from(i.issue).where((0,f.Uo)((0,f.eq)(i.issue.workspaceId,b),(0,f.eq)(i.issue.status,"active"))),d=c.filter(a=>"done"===a.col),e=c.filter(a=>"done"!==a.col);if(!d.length)return{ok:!1,shipped:0,carried:e.length};let g=new Date().toISOString().slice(0,10),j=[`# Sprint retro — ${g}`,"",`## Shipped (${d.length})`,...d.map(a=>`- ${a.key} — ${a.title}${a.points?` (${a.points} pts)`:""}`),"",`## Carried over (${e.length})`,...e.length?e.map(a=>`- ${a.key} [${a.col}] — ${a.title}`):["- (nothing — clean sprint)"],"",`_Closed ${new Date().toISOString()} by the Product Owner._`,""].join("\n"),m=`PO/sprint-retro-${g}.md`;try{await (0,k.g)(a,m,j)}catch(a){console.error("[closeSprint] retro write failed:",a)}return await h.db.update(i.issue).set({status:"archived"}).where((0,f.Uo)((0,f.eq)(i.issue.workspaceId,b),(0,f.RV)(i.issue.id,d.map(a=>a.id)))),await (0,l.j)(b,{text:`Sprint closed — ${d.length} shipped, ${e.length} carried over; retro at ${m}`,by:"donald",source:"po-grooming"}),{ok:!0,shipped:d.length,carried:e.length,path:m}}async function p(){let{org:a,workspace:b}=await (0,j.nP)(),c=await o(a.id,b.id);return(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/","layout"),c}async function q(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.backlogItem).where((0,f.Uo)((0,f.eq)(i.backlogItem.id,a),(0,f.eq)(i.backlogItem.workspaceId,b.id)));if(!c)return;let d=(await h.db.select().from(i.issue).where((0,f.eq)(i.issue.workspaceId,b.id))).length;await h.db.insert(i.issue).values({id:(0,e.randomUUID)(),workspaceId:b.id,key:"S-"+(d+1),title:c.title,col:"todo",prio:"med",moscow:c.moscow,points:c.points}),await h.db.delete(i.backlogItem).where((0,f.eq)(i.backlogItem.id,a)),(0,g.revalidatePath)("/pm")}async function r(a,b){let{workspace:c}=await (0,j.nP)();await h.db.update(i.issue).set({col:b}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,c.id))),(0,g.revalidatePath)("/pm")}async function s(a,b){let{workspace:c}=await (0,j.nP)();await h.db.update(i.issue).set({moscow:b}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,c.id))),(0,g.revalidatePath)("/pm")}async function t(a){let{workspace:b}=await (0,j.nP)();await h.db.update(i.issue).set({col:"blocked"}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,b.id))),await h.db.update(i.task).set({col:"blocked"}).where((0,f.Uo)((0,f.eq)(i.task.issueId,a),(0,f.eq)(i.task.workspaceId,b.id))),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/tasks")}async function u(a){let{workspace:b}=await (0,j.nP)();await h.db.update(i.issue).set({col:"todo"}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,b.id)));let[c]=await h.db.update(i.task).set({col:"todo"}).where((0,f.Uo)((0,f.eq)(i.task.issueId,a),(0,f.eq)(i.task.workspaceId,b.id))).returning();c?.assigneeId&&await h.db.update(i.agent).set({status:"idle"}).where((0,f.eq)(i.agent.id,c.assigneeId)),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/tasks")}(0,c(74252).D)([m,n,o,p,q,r,s,t,u]),(0,d.A)(m,"4031dbdd21312d634958e7e5aa0528a4ecbb9e2852",null),(0,d.A)(n,"408a1e7f89baff22cb2d1c8685746d39713af90a14",null),(0,d.A)(o,"60ddf28e50d2ad7c00694ef05e4800ac32e74185df",null),(0,d.A)(p,"00d8a6fe32b3b3d922addbdb2bbfe3fce0e9bab811",null),(0,d.A)(q,"408ad9acc9fb302010d6e07222acd7c94fd9d16f41",null),(0,d.A)(r,"60da851b705ea78f566b3a002ebf2b44f2bcf76924",null),(0,d.A)(s,"60fe92c6a6ed3fdeb545982cd4d1a23270b4d7d25e",null),(0,d.A)(t,"40aee8537d63cf0e93d65ba8330c8ae7fbb984cd87",null),(0,d.A)(u,"400fe2c5a45abe18cf81bf9c5df42c8f5a09ff714c",null)},44842:(a,b,c)=>{c.d(b,{Lh:()=>t,NF:()=>v,PT:()=>w,jL:()=>u,ot:()=>q,yR:()=>r});var d=c(73024),e=c(76760),f=c(60547),g=c.n(f),h=c(19202),i=c(65705),j=c(1890),k=c(56663),l=c(70149),m=c(437),n=c(84903),o=c(77558),p=c(24701);async function q(a,b){let[c]=await i.db.select().from(j.goal).where((0,h.Uo)((0,h.eq)(j.goal.id,b),(0,h.eq)(j.goal.workspaceId,a)));return c}function r(a){return(a||"work").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40)||"work"}async function s(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b)))))(0,l.KD)(c.id),("todo"===c.col||"doing"===c.col)&&(await i.db.update(j.task).set({col:"blocked"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"blocked"}).where((0,h.eq)(j.issue.id,c.issueId))),c.assigneeId&&await i.db.update(j.agent).set({status:"idle"}).where((0,h.eq)(j.agent.id,c.assigneeId))}async function t(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b),(0,h.eq)(j.task.col,"blocked")))))await i.db.update(j.task).set({col:"todo"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"todo"}).where((0,h.eq)(j.issue.id,c.issueId))}async function u(a,b,c){await i.db.update(j.spec).set({status:c}).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,a),(0,h.eq)(j.spec.goalId,b))),await i.db.update(j.issue).set({status:c}).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,a),(0,h.eq)(j.issue.goalId,b)))}async function v(a,b){let c=await q(a,b);return c?(await i.db.update(j.goal).set({status:"cancelled",cancelledAt:new Date}).where((0,h.eq)(j.goal.id,b)),await u(a,b,"cancelled"),await (0,o.TC)(a,b),await s(a,b),await (0,n.j)(a,{text:`Cancelled goal: ${c.title}`,by:"operator",source:"operator-instruction",goalId:b}),await (0,p.I)(a,{kind:"info",text:`Goal cancelled — ${c.title}`,detail:"Execution stopped; state preserved. Reopen to resume."}),{ok:!0,title:c.title}):{ok:!1}}async function w(a,b,c){let f=await q(b,c);if(!f)return{ok:!1};let l=(0,k.HZ)(a),[t,v,w,x,y]=await Promise.all([i.db.select().from(j.spec).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,b),(0,h.eq)(j.spec.goalId,c))),i.db.select().from(j.issue).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,b),(0,h.eq)(j.issue.goalId,c))),i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,b),(0,h.eq)(j.task.goalId,c))),i.db.select().from(j.decision).where((0,h.Uo)((0,h.eq)(j.decision.workspaceId,b),(0,h.eq)(j.decision.goalId,c))),i.db.select().from(j.report).where((0,h.Uo)((0,h.eq)(j.report.workspaceId,b),(0,h.eq)(j.report.goalId,c)))]),z=w.map(a=>a.id),A=z.length?await i.db.select().from(j.taskStep).where((0,h.RV)(j.taskStep.taskId,z)):[],B=await (0,m.Y)(b,c),C=new(g()),D=0;for(let a of B){let b=(0,e.join)(l,a);if((0,d.existsSync)(b))try{C.addFile("files/"+a,(0,d.readFileSync)(b)),D++}catch{}}let E={goal:f,specs:t,issues:v,tasks:w,taskSteps:A,decisions:x,reports:y,fileCount:D,archivedAt:new Date().toISOString()},F=[`# Archived work — ${f.title}`,"",`Status at archive: ${f.status} \xb7 progress ${f.progress}%`,"",`## Specs (${t.length})`,...t.map(a=>`- ${a.key} ${a.title}`),"",`## Issues (${v.length})`,...v.map(a=>`- ${a.key} [${a.col}] ${a.title}`),"",`## Decisions (${x.length})`,...x.map(a=>`- ${a.text} (${a.by})`),"",`## Source files (${D})`,...B.map(a=>`- ${a}`),""].join("\n");C.addFile("MANIFEST.json",Buffer.from(JSON.stringify(E,null,2))),C.addFile("MANIFEST.md",Buffer.from(F));let G=(0,e.join)(l,"archives");(0,d.mkdirSync)(G,{recursive:!0});let H=`archives/${r(f.title)}-${new Date().toISOString().slice(0,10)}-${c.slice(0,6)}.zip`;try{C.writeZip((0,e.join)(l,H))}catch(a){return console.error("[archiveGoalFor] zip failed:",a),{ok:!1}}return await i.db.update(j.goal).set({status:"archived",archivePath:H,archivedAt:new Date}).where((0,h.eq)(j.goal.id,c)),await u(b,c,"archived"),await (0,o.TC)(b,c),await s(b,c),await (0,n.j)(b,{text:`Archived goal: ${f.title} → ${H}`,by:"operator",source:"operator-instruction",goalId:c}),await (0,p.I)(b,{kind:"info",text:`Goal archived — ${f.title}`,detail:`${D} files + manifest zipped to ${H}.`}),{ok:!0,path:H,title:f.title}}},60686:(a,b,c)=>{c.d(b,{Fy:()=>l,KD:()=>n,Rr:()=>k,TH:()=>p,Xu:()=>o,j0:()=>m});var d=c(6866),e=c(31371),f=c(53993),g=c(63562),h=c(70221),i=c(77558),j=c(24701);async function k(){let{org:a,workspace:b}=await (0,f.nP)(),c=await (0,g.ZF)(b.id,a.id);return(0,e.revalidatePath)("/test-dev"),c}async function l(){let{workspace:a}=await (0,f.nP)(),b=await (0,g.n9)(a.id);return(0,e.revalidatePath)("/test-dev"),b}async function m(){let{workspace:a}=await (0,f.nP)();return(0,g.CS)(a.id)}async function n(a){if(await (0,f.nP)(),!/^https?:\/\/(127\.0\.0\.1|localhost)(:\d+)?/i.test(a))return{frameable:!0};try{let b=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(3e3)}),c=(b.headers.get("x-frame-options")||"").toLowerCase(),d=(b.headers.get("content-security-policy")||"").toLowerCase(),e=/frame-ancestors\s+([^;]+)/.exec(d)?.[1]??"",f=c.includes("deny")||c.includes("sameorigin"),g=!!e&&!/(\*|localhost|127\.0\.0\.1)/.test(e);return{frameable:!(f||g)}}catch{return{frameable:!0}}}async function o(a){let{org:b,workspace:c}=await (0,f.nP)(),d=a?.issueId?await (0,h.B)(c.id,a.issueId):void 0,g=await (0,h.z)(c.id,b.id,{goalId:a?.goalId,issueId:a?.issueId,routes:d,by:"operator"});return(0,e.revalidatePath)("/test-dev"),g}async function p(a,b){let{workspace:c}=await (0,f.nP)();return await (0,i.vE)(c.id,{kind:"validation",refType:"validation",refId:a,title:`Validate ${a}`,detail:b.slice(0,500)}),await (0,j.I)(c.id,{kind:"review",text:`Validation requested — ${a}`,detail:b.slice(0,300)}),(0,e.revalidatePath)("/inbox"),{ok:!0}}(0,c(74252).D)([k,l,m,n,o,p]),(0,d.A)(k,"00b0c563b5c67d5449f700f491e1596e6f426c2354",null),(0,d.A)(l,"007fa98971d168ce08c3576549cc0d06fa63506eef",null),(0,d.A)(m,"0082b5dd6be440bdb9cd216a92521a8c8794631870",null),(0,d.A)(n,"40bdbb2b823b9fbedbdd391d49537b3ffbcc50a28a",null),(0,d.A)(o,"40849424e3b51eb0b5191ba7bc6a59960a532ba4b7",null),(0,d.A)(p,"6040fdc51a45daf78a641cd0338d30ff0c0b72a812",null)},84979:(a,b,c)=>{c.d(b,{runSlashCommand:()=>ax});var d=c(77598),e=c(19202),f=c(33068),g=c(65705),h=c(1890),i=c(56338),j=c(57300),k=c(45125),l=c(33644),m=c(13328),n=c(44842),o=c(60686),p=c(69783),q=c(6866),r=c(73024),s=c(76760),t=c(48161),u=c(31371),v=c(53993),w=c(38926),x=c(56663),y=c(70149),z=c(78161),A=c(79505),B=c(63562),C=c(3196),D=c(77558),E=c(24701);let F=!1;function G(){F||(F=!0,g.F.exec(`
2
+ CREATE TABLE IF NOT EXISTS deploy_run (
3
+ id TEXT PRIMARY KEY,
4
+ workspace_id TEXT NOT NULL REFERENCES workspace(id) ON DELETE CASCADE,
5
+ status TEXT NOT NULL DEFAULT 'idle',
6
+ run_id TEXT NOT NULL DEFAULT '',
7
+ steps TEXT NOT NULL DEFAULT '[]',
8
+ summary TEXT NOT NULL DEFAULT '',
9
+ build_log TEXT NOT NULL DEFAULT '',
10
+ checklist TEXT NOT NULL DEFAULT '[]',
11
+ last_export TEXT,
12
+ started_at INTEGER,
13
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
14
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch())
15
+ );
16
+ CREATE UNIQUE INDEX IF NOT EXISTS deploy_run_ws_uq ON deploy_run (workspace_id);
17
+ `))}function H(a,b){if(!a)return b;try{return JSON.parse(a)}catch{return b}}let I={status:"idle",runId:"",steps:[],summary:"",buildLog:"",checklist:[],lastExport:null,startedAt:null,updatedAt:0};async function J(a){G();let[b]=await g.db.select().from(h.deployRun).where((0,e.eq)(h.deployRun.workspaceId,a));return b?{status:b.status||"idle",runId:b.runId,steps:H(b.steps,[]),summary:b.summary,buildLog:b.buildLog,checklist:H(b.checklist,[]),lastExport:b.lastExport?H(b.lastExport,null):null,startedAt:b.startedAt?b.startedAt.getTime():null,updatedAt:b.updatedAt?b.updatedAt.getTime():0}:{...I}}async function K(a,b){G();let c={updatedAt:new Date};void 0!==b.status&&(c.status=b.status),void 0!==b.runId&&(c.runId=b.runId),void 0!==b.steps&&(c.steps=JSON.stringify(b.steps)),void 0!==b.summary&&(c.summary=b.summary),void 0!==b.buildLog&&(c.buildLog=b.buildLog),void 0!==b.checklist&&(c.checklist=JSON.stringify(b.checklist)),void 0!==b.lastExport&&(c.lastExport=null===b.lastExport?null:JSON.stringify(b.lastExport)),void 0!==b.startedAt&&(c.startedAt=null===b.startedAt?null:new Date(b.startedAt));let[f]=await g.db.select({id:h.deployRun.id}).from(h.deployRun).where((0,e.eq)(h.deployRun.workspaceId,a));f?await g.db.update(h.deployRun).set(c).where((0,e.eq)(h.deployRun.workspaceId,a)):await g.db.insert(h.deployRun).values({id:(0,d.randomUUID)(),workspaceId:a,...c})}var L=c(74252);let M=new Set([".claude","DOCS","PO","Reports","specs","issues","mock","uploads","archives",".testdev","node_modules",".git",".next","dist","build","out","coverage",".cache",".turbo","vendor"]),N=/(^|\/)(\.env(\.[\w.-]+)?|id_[rd]sa\w*|.*\.(pem|key|p12|pfx|keystore|jks|ppk|asc)|credentials?\.json|service[-_]?account[\w.-]*\.json|.*\.(sql|dump|bak|sqlite3?|db)|.*\.log|.*\.local)$/i,O=/\.env\.(example|sample|template|dist)$/i,P=`node_modules/
18
+ .next/
19
+ dist/
20
+ build/
21
+ out/
22
+ .turbo/
23
+ coverage/
24
+ .cache/
25
+ *.log
26
+ .env
27
+ .env.*
28
+ !.env.example
29
+ .DS_Store
30
+ `;function Q(a,b,c){if(a)try{let c=(0,s.join)(a.dir,b);if((0,r.existsSync)(c))return(0,r.readFileSync)(c,"utf8")}catch{}return(0,x.sL)(c,b)}function R(a,b){let c=Q(a,"package.json",b);if(!c)return null;try{return JSON.parse(c)}catch{return null}}function S(a){let b=(0,B.pp)(a);return!!b&&["dist","build","out",".next",".output","target/release","bin"].some(a=>{try{return(0,r.existsSync)((0,s.join)(b.dir,a))}catch{return!1}})}function T(a){return(a.stderr||a.stdout||"").replace(/\s+/g," ").trim().slice(-180)}let U=/\.(ts|tsx|js|jsx|mjs|cjs|py|go|rs|vue|svelte)$/i,V=/(?:process\.env\.([A-Z][A-Z0-9_]*)|process\.env\[['"]([A-Z][A-Z0-9_]*)['"]\]|import\.meta\.env\.([A-Z][A-Z0-9_]*)|os\.environ(?:\.get)?\(\s*['"]([A-Z][A-Z0-9_]*)['"]|os\.getenv\(\s*['"]([A-Z][A-Z0-9_]*)['"]|os\.Getenv\(\s*['"]([A-Z][A-Z0-9_]*)['"])/g,W=new Set(["NODE_ENV","PORT","HOST","PWD","HOME","PATH","CI","TZ","VERCEL","VERCEL_ENV"]);async function X(a){let b,c=(0,B.pp)(a),d=c?.kind??"unknown",e=R(c,a),f={...e?.dependencies??{},...e?.devDependencies??{}},g=function(a){if(!a)return[];let b=[];for(let c of a.split("\n")){let a=/^\s*([A-Z][A-Z0-9_]*)\s*=(.*)$/.exec(c);if(!a)continue;let d=a[2].trim().replace(/^["']|["']$/g,"");b.push({key:a[1],hasValue:d.length>0&&!/^(your[_-]|<|change[_-]?me|xxx|placeholder|example)/i.test(d)})}return b}(Q(c,".env.example",a)??Q(c,".env.sample",a)??Q(c,".env.template",a)),h=new Set(g.map(a=>a.key)),i=function(a){let b=new Set,c=0;for(let d of(0,x.CS)(a)){if(!U.test(d))continue;if(c++>1500)break;let e=(0,x.sL)(a,d);if(e&&!(e.length>524288))for(let a of e.matchAll(V)){let c=a[1]||a[2]||a[3]||a[4]||a[5]||a[6];c&&b.add(c)}}return b}(a),j=[...i].filter(a=>!h.has(a)&&!W.has(a)).sort().slice(0,40),{ports:k,hasDockerfile:l,hasCompose:m}=function(a,b){let c=new Set,d=Q(a,"Dockerfile",b);if(d)for(let a of d.matchAll(/EXPOSE\s+(\d+)/gi))c.add(Number(a[1]));let e=Q(a,"docker-compose.yml",b)??Q(a,"docker-compose.yaml",b)??Q(a,"compose.yml",b)??Q(a,"compose.yaml",b);if(e)for(let a of e.matchAll(/(\d{2,5}):\d{2,5}/g))c.add(Number(a[1]));return{ports:[...c].filter(a=>a>0&&a<65536).slice(0,12),hasDockerfile:null!=d,hasCompose:null!=e}}(c,a);return{detected:!!c,runtime:d,packageManager:"node"===d?c.runCmd:void 0,framework:"next"in f?"Next.js app":"nuxt"in f?"Nuxt app":"@remix-run/react"in f?"Remix app":"@angular/core"in f?"Angular app":"svelte"in f||"@sveltejs/kit"in f?"Svelte app":"vue"in f?"Vue app":"react"in f?"React app":"@nestjs/core"in f?"Nest API":"express"in f||"fastify"in f||"koa"in f||"@hapi/hapi"in f?"Node server":"python"===d?"Python service":"go"===d?"Go service":"rust"===d?"Rust service":"static"===d?"Static site":"node"===d?"Node app":void 0,projectName:c?.name,runLabel:c?.label,requiredEnv:g,referencedEnvCount:i.size,unsetEnvKeys:j,database:"node"===d?(b=(...a)=>a.some(a=>a in f))("pg","postgres","mysql","mysql2","better-sqlite3","sqlite3","sequelize","prisma","drizzle-orm","typeorm","knex")?"relational":b("mongodb","mongoose")?"document":b("redis","ioredis")?"key-value":"none":"none",ports:k,hasDockerfile:l,hasCompose:m,buildScript:e?.scripts?.build,startScript:e?.scripts?.start,mode:c?S(a)?"prod":"dev":"unknown"}}async function Y(){let{org:a}=await (0,v.nP)();return X(a.id)}function Z(a,b){let c=(0,x.HZ)(b),d=[],e=[],f=0;for(let g of(0,x.CS)(b))if(function(a){let b=a.replace(/\\/g,"/"),c=b.split("/")[0];return!(M.has(c)||b.startsWith(".constella")||N.test(b)&&!O.test(b))}(g))try{let b=(0,s.join)(c,g),h=(0,s.join)(a,g);(0,r.mkdirSync)((0,s.dirname)(h),{recursive:!0}),(0,r.cpSync)(b,h);let i=0;try{i=(0,r.statSync)(b).size}catch{}let j=g.replace(/\\/g,"/");d.push({path:j,size:i}),f++;let k=(j.split("/").pop()??"").toLowerCase();/^(readme|license|licence|changelog|deploy|contributing)(\.|$)/.test(k)&&e.push(j)}catch{}return(0,r.writeFileSync)((0,s.join)(a,".gitignore"),P),{copied:f,docs:e,files:d}}async function $(a){let b=(0,s.join)((0,t.tmpdir)(),"constella-preview-"+(0,d.randomUUID)());try{(0,r.mkdirSync)(b,{recursive:!0});let c=Z(b,a),d=[];c.copied>0&&(await (0,y.d1)("git",["init","-b","main"],{cwd:b}),await (0,y.d1)("git",["add","-A"],{cwd:b}),d=(await (0,C.I)(b)).findings);let e=c.files.reduce((a,b)=>a+b.size,0),f=(0,x.CS)(a).length;return{files:c.files.slice(0,500),tree:function(a){let b=new Map,c=[];for(let d of a){let a=d.path.split("/");if(1===a.length)c.push({name:a[0],kind:"file",size:d.size});else{let c=a[0],e=b.get(c)??{size:0,count:0};e.size+=d.size,e.count+=1,b.set(c,e)}}return[...[...b.entries()].map(([a,b])=>({name:a,kind:"dir",size:b.size,childCount:b.count})).sort((a,b)=>a.name.localeCompare(b.name)),...c.sort((a,b)=>a.name.localeCompare(b.name))]}(c.files),totalBytes:e,includedCount:c.copied,ignoredCount:Math.max(0,f-c.copied),docs:c.docs,hasBuild:S(a),secrets:d,blocked:d.length>0}}catch(a){return{files:[],tree:[],totalBytes:0,includedCount:0,ignoredCount:0,docs:[],hasBuild:!1,secrets:[],blocked:!1,error:String(a instanceof Error?a.message:a)}}finally{try{(0,r.rmSync)(b,{recursive:!0,force:!0})}catch{}}}async function _(){let{org:a}=await (0,v.nP)();return $(a.id)}async function aa(a,b,c,d){let e=(0,B.pp)(a),f=R(e,a),g=a=>c.steps.find(b=>b.key===a)?.status,h=b=>null!=Q(e,b,a),i=!!e&&"node"===d.runtime&&(()=>{try{return(0,r.existsSync)((0,s.join)(e.dir,"node_modules"))}catch{return!1}})(),j=!!await (0,w.r6)(b,"github_pat").catch(()=>null),k=[],l=(a,b,c,d)=>k.push({key:a,label:b,status:c,detail:d});"node"===d.runtime?l("pkg","package.json valid",f?"ok":"fail",f?void 0:"missing or invalid"):l("pkg","Project manifest present",d.detected?"ok":"todo"),l("deps","Dependencies installed","node"!==d.runtime?d.detected?"ok":"todo":i||"done"===g("deps")?"ok":"todo"),l("envExample",".env.example present",d.requiredEnv.length>0||h(".env.example")?"ok":"todo"),l("envComplete","All used env vars documented",0===d.unsetEnvKeys.length?"ok":"warn",d.unsetEnvKeys.length?`${d.unsetEnvKeys.length} undocumented`:void 0);let m=g("secrets");l("secrets","No secrets in the product","blocked"===m?"fail":"done"===m?"ok":"todo");let n=g("build");l("build","Production build runs",d.buildScript?"done"===n?"ok":"error"===n?"fail":"todo":"warn",d.buildScript?void 0:"no build script");let o=g("tests");return l("tests","Tests pass",f?.scripts?.test?"done"===o?"ok":"error"===o?"fail":"todo":"warn",f?.scripts?.test?void 0:"no test script"),l("readme","README present",h("README.md")||h("readme.md")?"ok":"todo"),l("deployDoc","Deploy docs present",h("DEPLOY.md")?"ok":"todo"),l("internalExcluded","Internal files excluded from export","ok"),l("exportRepo","Export repository configured",j?"ok":"todo",j?void 0:"connect a token"),k}async function ab(){let{org:a,workspace:b}=await (0,v.nP)(),[c,d]=await Promise.all([J(b.id),X(a.id)]);return aa(a.id,b.id,c,d)}async function ac(){let{workspace:a}=await (0,v.nP)();return J(a.id)}async function ad(a){let b=await g.db.select().from(h.agent).where((0,e.eq)(h.agent.workspaceId,a));return b.find(a=>/devops/i.test(a.role))??b.find(a=>"ada"===a.handle)??b[0]??null}async function ae(a,b,c,f,i){let j=(0,y.hW)(c.adapter,c.model),k="claude"===j?c.model.includes("opus")?"opus":c.model.includes("haiku")?"haiku":"sonnet":void 0;await g.db.update(h.agent).set({status:"working"}).where((0,e.eq)(h.agent.id,c.id));let{prompt:l}=await (0,z.s)({orgId:a,ws:b,agent:c,channel:"deploy",instruction:f}),m=await (0,y.p1)(l,{orgId:a,binary:j,model:k,timeoutMs:6e5},a=>{"done"!==a.kind&&(0,A.I)(b.id,{runId:i,channel:"deploy",agentId:c.id,kind:a.kind,target:a.target,detail:a.detail})});return await g.db.update(h.agent).set({status:"idle"}).where((0,e.eq)(h.agent.id,c.id)),(m.usd>0||m.inputTokens+m.outputTokens>0)&&await g.db.insert(h.costEntry).values({id:(0,d.randomUUID)(),workspaceId:b.id,agentId:c.id,provider:m.binary,model:m.model??c.model,usd:m.usd,tokens:m.inputTokens+m.outputTokens,at:new Date}),m}let af=[{key:"analyze",label:"Analyze the project"},{key:"deps",label:"Validate dependencies"},{key:"env",label:"Validate environment variables"},{key:"tests",label:"Run tests"},{key:"secrets",label:"Security scan"},{key:"build",label:"Production build"},{key:"validateBuild",label:"Validate build"},{key:"agent",label:"Configure env, fix & document"},{key:"package",label:"Prepare clean package"}];async function ag(){let{org:a,workspace:b}=await (0,v.nP)(),c=b.id,e=await J(c);if("running"===e.status&&e.startedAt&&Date.now()-e.startedAt<9e5)return e;let f=(0,d.randomUUID)(),g=af.map(a=>({key:a.key,label:a.label,status:"waiting"}));await K(c,{status:"running",runId:f,startedAt:Date.now(),steps:g,summary:"",buildLog:""});let h=async(a,b,d)=>{let e=g.findIndex(b=>b.key===a);e>=0&&(g[e]={...g[e],status:b,detail:d,..."running"===b?{startedAt:Date.now()}:{endedAt:Date.now()}}),await K(c,{steps:g}),(0,A.I)(c,{runId:f,channel:"deploy",agentId:null,kind:"text",target:"",detail:`${af.find(b=>b.key===a)?.label??a}${d?" — "+d:""}`})},i=(0,B.pp)(a.id),j=await X(a.id),k="",l=async(b,d)=>{let e=await aa(a.id,c,await J(c),j);return await K(c,{status:b,summary:d,checklist:e,buildLog:k}),(0,A.I)(c,{runId:f,channel:"deploy",agentId:null,kind:"failed"===b?"error":"done",target:"prep complete",detail:d.slice(0,160)}),await (0,E.I)(c,{kind:"deploy",text:"done"===b?"Production prep finished":"blocked"===b?"Prep blocked — secrets found":"Production prep failed",detail:d.slice(0,200)}),(0,u.revalidatePath)("/prepare-deploy"),J(c)};try{var m,n;if(await h("analyze","running"),!i)return await h("analyze","error","No runnable project detected."),l("failed","No runnable project detected in the workspace.");if(await h("analyze","done",`${j.framework??j.runtime}${i.label?" \xb7 "+i.label:""}`),await h("deps","running"),i.install){let a=await (0,y.d1)(i.install.cmd,i.install.args,{cwd:i.dir,timeoutMs:3e5,env:{...process.env,CI:"1"}});await h("deps",0===a.code?"done":"error",0===a.code?"dependencies installed":a.timedOut?"install timed out":T(a))}else await h("deps","done","already installed");await h("env","running"),await h("env",j.unsetEnvKeys.length?"needs-action":"done",j.unsetEnvKeys.length?`${j.unsetEnvKeys.length} var(s) missing from .env.example`:`${j.requiredEnv.length} documented`),await h("tests","running");let d=R(i,a.id);if("node"===j.runtime&&d?.scripts?.test){let a=await (0,y.d1)(i.runCmd,["test"],{cwd:i.dir,timeoutMs:3e5,env:{...process.env,CI:"1"}});await h("tests",0===a.code?"done":"error",0===a.code?"tests passing":a.timedOut?"tests timed out":T(a))}else await h("tests","needs-action","no automated test script");await h("secrets","running");let e=await $(a.id);if(e.blocked)return await h("secrets","blocked",`${e.secrets.length} potential secret(s)`),await (0,D.vE)(c,{kind:"block",refType:"task",refId:"deploy-prep",title:`Prep blocked — ${e.secrets.length} secret risk(s)`,detail:e.secrets.slice(0,5).map(a=>`${a.file}: ${a.kind}`).join("; ")}),l("blocked",`Blocked: ${e.secrets.length} potential secret(s) found in the product. Remove them and re-run.`);if(await h("secrets","done","no secrets found"),await h("build","running"),"node"===j.runtime&&j.buildScript){let a=await (0,y.d1)(i.runCmd,"npm"===i.runCmd?["run","build"]:["build"],{cwd:i.dir,timeoutMs:6e5,env:{...process.env,CI:"1"}});k=`build ${0===a.code?"OK":a.timedOut?"TIMED OUT":"FAILED ("+a.code+")"}
31
+ `+(a.stdout+a.stderr).slice(-1800),await K(c,{buildLog:k}),await h("build",0===a.code?"done":"error",0===a.code?"build succeeded":"build failed — the agent will try to fix it")}else await h("build","needs-action","node"===j.runtime?"no build script":"no build step for this stack");await h("validateBuild","running");let g=await (0,B.VX)(c,a.id);await h("validateBuild",g.ok?"done":"error",g.ok?S(a.id)?"boots \xb7 build output present":"boots":g.detail.slice(0,160)),await h("agent","running");let o=await ad(c),p="";if(o){let c,d=await ae(a.id,b,o,(m=k,c=["FINISH PREPARING THIS PROJECT FOR PRODUCTION. Dependencies, tests, the secret scan and the production build have ALREADY been run by the system — focus on the remaining gaps.","Do, in order: (1) create/refresh `.env.example` documenting EVERY required environment variable (NEVER inline real secrets/tokens — use placeholders)."+(j.unsetEnvKeys.length?` The code references these vars not yet in .env.example: ${j.unsetEnvKeys.slice(0,30).join(", ")}.`:""),"(2) if the production build failed, FIX the errors until it builds clean;","(3) write/refresh a root `README.md` (what it is, install, run, configure) and a root `DEPLOY.md` with concrete build/run/deploy steps for this project's host;","(4) finish with a SHORT operator summary + the exact next steps to deploy.","Keep the existing product and its UX; do NOT add internal/control files or a second app."],m&&c.push("Latest production build output (tail):\n"+m.slice(-1200)),c.join("\n")),f);p=(d.text||"").slice(0,800),await h("agent",d.ok?"done":"error",d.ok?"configured env, docs & fixes":d.error?.slice(0,160)||"agent run failed")}else await h("agent","needs-action","no agent available to run");await h("package","running");let q=await $(a.id);return await h("package",q.blocked?"blocked":"done",q.blocked?`${q.secrets.length} secret risk(s) in the export set`:`${q.includedCount} file(s) \xb7 ${(n=q.totalBytes)<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1024/1024).toFixed(1)} MB`}`),l(q.blocked?"blocked":"done",p||`Prepared ${q.includedCount} clean file(s) for production.`)}catch(a){return l("failed",String(a instanceof Error?a.message:a).slice(0,300))}}async function ah(a,b,c){let e=(0,d.randomUUID)();(0,A.I)(a,{runId:e,channel:"deploy",agentId:null,kind:"run",target:b});try{let d=await c();return(0,A.I)(a,{runId:e,channel:"deploy",agentId:null,kind:"done",target:b}),d}catch(c){throw(0,A.I)(a,{runId:e,channel:"deploy",agentId:null,kind:"error",target:b,detail:String(c)}),c}}async function ai(){let{org:a,workspace:b}=await (0,v.nP)(),c=(0,B.pp)(a.id),d=R(c,a.id);return c&&"node"===c.kind&&d?.scripts?.build?ah(b.id,"production build",async()=>{let a=await (0,y.d1)(c.runCmd,"npm"===c.runCmd?["run","build"]:["build"],{cwd:c.dir,timeoutMs:6e5,env:{...process.env,CI:"1"}}),d=`build ${0===a.code?"OK":a.timedOut?"TIMED OUT":"FAILED ("+a.code+")"}
32
+ `+(a.stdout+a.stderr).slice(-1800);return await K(b.id,{buildLog:d}),(0,u.revalidatePath)("/prepare-deploy"),{ok:0===a.code,log:d}}):{ok:!1,log:"No Node build script to run."}}async function aj(){let{org:a,workspace:b}=await (0,v.nP)(),c=(0,B.pp)(a.id),d=R(c,a.id);return c&&"node"===c.kind&&d?.scripts?.test?ah(b.id,"tests",async()=>{let a=await (0,y.d1)(c.runCmd,["test"],{cwd:c.dir,timeoutMs:3e5,env:{...process.env,CI:"1"}});return{ok:0===a.code,log:`tests ${0===a.code?"PASS":"FAIL"}
33
+ `+(a.stdout+a.stderr).slice(-1800)}}):{ok:!1,log:"No test script to run."}}async function ak(a){let{org:b,workspace:c}=await (0,v.nP)(),e=await ad(c.id);if(!e)return{ok:!1,summary:"No agent available."};let f=await X(b.id),g=f.framework?`
34
+ Project: ${f.framework}${f.unsetEnvKeys.length?`; undocumented env vars: ${f.unsetEnvKeys.slice(0,20).join(", ")}`:""}.`:"",h=(0,d.randomUUID)();(0,A.I)(c.id,{runId:h,channel:"deploy",agentId:e.id,kind:"run",target:"readme"===a?"generate README":"generate deploy docs"});let i=await ae(b.id,c,e,("readme"===a?"Write or refresh a clear root `README.md` for this project: what it is, prerequisites, install, run, configure (reference .env.example), and basic usage. Keep it accurate to the real code; do NOT invent features.":"Write or refresh a root `DEPLOY.md` with concrete production deploy steps for this project's stack/host: build, environment variables (reference .env.example, never real secrets), run command, and host-specific notes. Keep it accurate to the real project.")+g,h);return(0,A.I)(c.id,{runId:h,channel:"deploy",agentId:e.id,kind:"done",target:"done"}),(0,u.revalidatePath)("/prepare-deploy"),{ok:i.ok,summary:(i.text||"").slice(0,400)}}async function al(){return ak("readme")}async function am(){return ak("deploy")}async function an(a){let{org:b,workspace:c}=await (0,v.nP)(),e=(a.repo||"").trim().replace(/^https?:\/\/github\.com\//i,"").replace(/\.git$/,"");if(!/^[\w.-]+\/[\w.-]+$/.test(e))return{ok:!1,error:"Use the form owner/repo."};let f=a.token?.trim()||await (0,w.r6)(c.id,"github_pat");if(!f)return{ok:!1,error:"Provide a GitHub token (or connect one in Commit GitHub first)."};let g=a=>f?a.split(f).join("***"):a;try{let a=await fetch(`https://api.github.com/repos/${e}`,{headers:{Authorization:`Bearer ${f}`,"User-Agent":"constella",Accept:"application/vnd.github+json"},signal:AbortSignal.timeout(12e3)});if(404===a.status)return{ok:!1,error:"Repo not found, or this token can't access it."};if(!a.ok)return{ok:!1,error:`GitHub ${a.status}`}}catch{return{ok:!1,error:"Couldn't reach GitHub."}}let h=(0,s.join)((0,t.tmpdir)(),"constella-export-"+(0,d.randomUUID)()),i=a.branch?.trim()||"main";try{(0,r.mkdirSync)(h,{recursive:!0});let d=Z(h,b.id);if(0===d.copied)return{ok:!1,error:"Nothing to export yet — no clean product source files were found."};await (0,y.d1)("git",["init","-b",i],{cwd:h}),await (0,y.d1)("git",["add","-A"],{cwd:h});let j=await (0,C.I)(h);if(j.findings.length)return await (0,D.vE)(c.id,{kind:"block",refType:"task",refId:`export-${e}`,title:`Export blocked — ${j.findings.length} secret risk(s)`,detail:j.findings.slice(0,5).map(a=>`${a.file}: ${a.kind}`).join("; ")}),await (0,E.I)(c.id,{kind:"security",text:`Clean export blocked — ${j.findings.length} secret risk(s)`,detail:`Resolve before exporting to ${e}.`}),(0,u.revalidatePath)("/prepare-deploy"),(0,u.revalidatePath)("/inbox"),{ok:!1,blocked:!0,secrets:j.findings,error:`Blocked: ${j.findings.length} potential secret(s) in the export set.`};await (0,y.d1)("git",["-c","user.email=agents@constella.dev","-c","user.name=Constella Agents","commit","-m",a.message?.trim()||"chore: export clean source"],{cwd:h});let k=(await (0,y.d1)("git",["rev-parse","HEAD"],{cwd:h})).stdout.trim().slice(0,7),l=`https://x-access-token:${f}@github.com/${e}.git`,m=await (0,y.d1)("git",["push","-f",l,`HEAD:${i}`],{cwd:h,timeoutMs:12e4});if(0!==m.code)return{ok:!1,error:g((m.stderr||"git push failed").slice(-300))};return await K(c.id,{lastExport:{ok:!0,sha:k,copied:d.copied,repo:e,branch:i,at:Date.now()}}),(0,u.revalidatePath)("/prepare-deploy"),{ok:!0,pushed:!0,sha:k,copied:d.copied}}catch(a){return{ok:!1,error:g(String(a instanceof Error?a.message:a))}}finally{try{(0,r.rmSync)(h,{recursive:!0,force:!0})}catch{}}}(0,L.D)([Y,_,ab,ac,ag,ai,aj,al,am,an]),(0,q.A)(Y,"00d92e12c0f9722c47634ed35318003a224c62384f",null),(0,q.A)(_,"001a4f8dece96f2292c6df52d8dc19a28f9e6bc1b6",null),(0,q.A)(ab,"00b7f931c3bd01dd22dbf3ccc600a4e3f72ce47868",null),(0,q.A)(ac,"007dec10ee03d9993a8699c11fad53871c4ab372eb",null),(0,q.A)(ag,"008833f61c552eb8dad854b7b3f3bc8aeb29adc406",null),(0,q.A)(ai,"00367eb06c10175f2e1ef100106d6058357a21c0fd",null),(0,q.A)(aj,"00049dd926ff74ddfdb91de094958319207e44cfd3",null),(0,q.A)(al,"00324c5b49fef52299916a951f58a23b29407771cb",null),(0,q.A)(am,"00230340133712b5ff2155541766363fcd5c4e4df3",null),(0,q.A)(an,"40d76c48fbe4f27f01bc814af6c4a06bddb9ab04a7",null);var ao=c(88007),ap=c(31578),aq=c(93571),ar=c(10335),as=c(23297),at=c(44239);let au=`Available commands:
35
+ - /help — this list
36
+ - /kb <question> (alias /ask-kb) — ask the Knowledge Base; answers with references
37
+ - /status — active goals, open issues, tasks in flight
38
+ - /agents — the team roster
39
+ - /agent <handle> — inspect one agent + link to Agent Studio
40
+ - /new-goal <brief> (alias /new-work) — start new work (the CEO drafts specs → issues → plan)
41
+ - /new-issue <title> \xb7 /new-spec <title> — create a single issue/spec on the board
42
+ - /approve — approve the pending plan (queues tasks)
43
+ - /run-247 (alias /resume) \xb7 /pause — turn 24/7 autonomous execution on / off
44
+ - /reject <reason> — send the plan back to the CEO
45
+ - /cancel \xb7 /archive — cancel / archive the active goal
46
+ - /search <q> — search the Knowledge Base
47
+ - /graph <key> — show the knowledge graph (connections) for a spec/issue/goal
48
+ - /reindex — rebuild the RAG/KB index now
49
+ - /curate — run Vannevar's KB curation pass (dedup / retire / summarise / gaps)
50
+ - /clear — wipe this conversation (asks you to confirm first)
51
+ - /test-dev — run the Test Dev validation gate \xb7 /review — ask the reviewer to review recent changes
52
+ - /github — refresh the repository status \xb7 /prepare-deploy — run the production-prep pipeline
53
+ - /export-source <repo> — export the clean product source \xb7 /generate-plan <brief> — draft a plan
54
+ - /assign <issue> <@agent> — assign an issue \xb7 /telegram — Telegram integration status
55
+ - /models — local model status \xb7 /skills — the skills library \xb7 /locks — file locks held
56
+ - /close-sprint — archive what shipped + write a sprint retro
57
+ Mention a teammate with @handle to talk to them directly.`;async function av(a,b,c,e){await g.db.insert(h.message).values({id:(0,d.randomUUID)(),workspaceId:a,channel:b,fromKind:"operator",text:c.slice(0,4e3),sessionId:e})}async function aw(a,b,c,e,f,i){await g.db.insert(h.message).values({id:(0,d.randomUUID)(),workspaceId:a,channel:b,fromKind:"agent",fromHandle:c,text:e.slice(0,4e3),createdAt:new Date,sessionId:f,kind:i?.kind??null,sources:i?.sources?.length?i.sources:null})}async function ax(a,b,c,q,r){let s=await (0,k.xF)(b,q),t=r.indexOf(" "),u=(-1===t?r:r.slice(0,t)).toLowerCase(),v=(-1===t?"":r.slice(t+1)).trim(),w=(a=[])=>((0,l.r)(b),{handled:!0,responders:a});switch(u){case"/help":return await av(b,q,r,s),await aw(b,q,"system",au,s),w();case"/kb":case"/ask-kb":{if(await av(b,q,r,s),!v)return await aw(b,q,"vannevar","Ask a question, e.g. `/kb how does the calculation engine work?`",s),w();let c=await (0,i.ed)(a,v);return await aw(b,q,"vannevar",c.text,s,{kind:"overview"===c.mode?"kb-card":void 0,sources:c.sources}),(0,j.PD)(a),w()}case"/reindex":{await av(b,q,r,s);let c=await (0,j.xV)(a);return await aw(b,q,"vannevar",`Reindexed the knowledge base — ${c.chunks} chunk(s)${c.embedded?" (semantic)":" (keyword fallback — embed server down)"}.`,s),w()}case"/curate":{await av(b,q,r,s);let c=await (0,i.aE)(a),d=c.merged+c.retired+c.summarized;return await aw(b,q,"vannevar",c.ok||d>0?`Curated the KB — merged ${c.merged}, retired ${c.retired}, re-summarised ${c.summarized}, ${c.gaps} gap(s). Details in Reports/kb-health.md.`:"Nothing to curate right now (needs a few entries + available budget).",s),w()}case"/clear":{if(await av(b,q,r,s),!/^(confirm|yes|sim)$/i.test(v))return await aw(b,q,"system","⚠️ **/clear** permanently deletes EVERY message in this conversation — the full history, the compacted context summary and the run events. The agents lose this conversation's context (your board work, goals, specs and the Knowledge Base are NOT affected). Type `/clear confirm` to proceed.",s),w();let a=(await g.db.select({id:h.message.id}).from(h.message).where((0,e.Uo)((0,e.eq)(h.message.workspaceId,b),(0,e.eq)(h.message.channel,q)))).length;return await g.db.delete(h.message).where((0,e.Uo)((0,e.eq)(h.message.workspaceId,b),(0,e.eq)(h.message.channel,q))),await g.db.delete(h.messageSummary).where((0,e.Uo)((0,e.eq)(h.messageSummary.workspaceId,b),(0,e.eq)(h.messageSummary.channel,q))),await g.db.delete(h.event).where((0,e.Uo)((0,e.eq)(h.event.workspaceId,b),(0,e.eq)(h.event.channel,q))),await aw(b,q,"system",`✓ Conversation cleared — ${a} message(s) removed.`,s,{kind:"cleared"}),w()}case"/status":{await av(b,q,r,s);let[a,c,d]=await Promise.all([g.db.select({status:h.goal.status}).from(h.goal).where((0,e.eq)(h.goal.workspaceId,b)),g.db.select({col:h.issue.col}).from(h.issue).where((0,e.eq)(h.issue.workspaceId,b)),g.db.select({id:h.task.id}).from(h.task).where((0,e.Uo)((0,e.eq)(h.task.workspaceId,b),(0,e.eq)(h.task.col,"doing")))]),f=a.filter(a=>"active"===a.status).length,i=c.filter(a=>"done"!==a.col).length;return await aw(b,q,"system",`Status — ${f} active goal(s) \xb7 ${i} open issue(s) \xb7 ${d.length} task(s) in flight.`,s),w()}case"/agents":{await av(b,q,r,s);let a=c.map(a=>`@${a.handle} — ${a.name} (${a.role}, ${a.status})`).join("\n");return await aw(b,q,"system",`Team:
58
+ ${a||"(none)"}`,s),w()}case"/agent":{await av(b,q,r,s);let a=v.replace(/^@/,"").trim().toLowerCase();if(!a)return await aw(b,q,"system","Usage: `/agent <handle>` - e.g. `/agent ada`.",s),w();let d=c.find(b=>b.handle.toLowerCase()===a);if(!d)return await aw(b,q,"system",`No agent @${a} on the roster. Use \`/agents\` to see the team.`,s),w();let e=[d.adapter||"unknown adapter",d.model||""].filter(Boolean).join(" / "),f=d.health?` / health: ${d.health}`:"";return await aw(b,q,d.handle,`**${d.name}** (@${d.handle})
59
+ Role: ${d.role}
60
+ Status: ${d.status}${f}
61
+ Runtime: ${e}
62
+
63
+ [Open in Agent Studio](/agents/${d.handle})`,s,{kind:"agent-card"}),w()}case"/new-goal":case"/new-work":if(!v)return await av(b,q,r,s),await aw(b,q,"system","Describe the work, e.g. `/new-goal a billing page with Stripe checkout`.",s),w();return await av(b,q,`@ada ${v}`,s),(0,j.PD)(a),w(["ada"]);case"/approve":{await av(b,q,r,s);let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.id,b));if(!c)return await aw(b,q,"system","No workspace found.",s),w();let d=await (0,m.wz)(a,c);return await aw(b,q,"system",`✅ Plan approved — ${d.made} task(s) queued. Use \`/run-247\` to start autonomous execution.`,s),w()}case"/reject":return await av(b,q,r,s),await (0,m.TR)(b,v||void 0),await aw(b,q,"system",v?"↩️ Plan sent back to the CEO — reason recorded.":"↩️ Plan sent back to the CEO for revision.",s),w();case"/run-247":case"/resume":return await av(b,q,r,s),await (0,m.mL)(b,!0),await aw(b,q,"system","▶️ 24/7 autonomous execution is ON — the team will work the board.",s),w();case"/pause":return await av(b,q,r,s),await (0,m.mL)(b,!1),await aw(b,q,"system","⏸ 24/7 autonomous execution paused.",s),w();case"/cancel":case"/archive":{await av(b,q,r,s);let[c]=await g.db.select({id:h.goal.id,title:h.goal.title}).from(h.goal).where((0,e.Uo)((0,e.eq)(h.goal.workspaceId,b),(0,e.eq)(h.goal.status,"active"))).orderBy((0,f.i)(h.goal.createdAt)).limit(1);if(!c)return await aw(b,q,"system",`No active goal to ${"/cancel"===u?"cancel":"archive"}.`,s),w();if("/cancel"===u){let a=await (0,n.NF)(b,c.id);await aw(b,q,"system",a.ok?`🛑 Cancelled — ${a.title}. Execution stopped; reopen it in Goals to resume.`:"Couldn't cancel the goal.",s)}else{let d=await (0,n.PT)(a,b,c.id);await aw(b,q,"system",d.ok?`📦 Archived — ${d.title} → ${d.path}.`:"Couldn't archive the goal.",s)}return w()}case"/new-issue":{if(await av(b,q,r,s),!v)return await aw(b,q,"system","Give a title, e.g. `/new-issue add a logout button`.",s),w();let a=String((await g.db.select({id:h.issue.id}).from(h.issue).where((0,e.eq)(h.issue.workspaceId,b))).length+1);return await g.db.insert(h.issue).values({id:(0,d.randomUUID)(),workspaceId:b,key:a,title:v.slice(0,200),col:"todo",prio:"med"}),await aw(b,q,"system",`📝 Issue #${a} created — ${v.slice(0,120)}. Open the Product Manager to size + assign it.`,s),w()}case"/new-spec":{if(await av(b,q,r,s),!v)return await aw(b,q,"system","Give a title, e.g. `/new-spec billing architecture`.",s),w();let a=(await g.db.select({id:h.spec.id}).from(h.spec).where((0,e.eq)(h.spec.workspaceId,b))).length,c=`SPEC-${String(a+1).padStart(2,"0")}`;return await g.db.insert(h.spec).values({id:(0,d.randomUUID)(),workspaceId:b,key:c,title:v.slice(0,200)}),await aw(b,q,"system",`📄 Spec ${c} created — ${v.slice(0,120)}.`,s),w()}case"/search":{if(await av(b,q,r,s),!v)return await aw(b,q,"vannevar","Search what? e.g. `/search how does auth work`.",s),w();let c=await (0,i.ed)(a,v);return await aw(b,q,"vannevar",c.text,s,{kind:"overview"===c.mode?"kb-card":void 0,sources:c.sources}),(0,j.PD)(a),w()}case"/graph":{if(await av(b,q,r,s),!v)return await aw(b,q,"vannevar","Give a spec/issue key or a goal title, e.g. `/graph SPEC-01`.",s),w();let[c]=await g.db.select({id:h.spec.id}).from(h.spec).where((0,e.Uo)((0,e.eq)(h.spec.workspaceId,b),(0,e.eq)(h.spec.key,v))),[d]=c?[void 0]:await g.db.select({id:h.issue.id}).from(h.issue).where((0,e.Uo)((0,e.eq)(h.issue.workspaceId,b),(0,e.eq)(h.issue.key,v))),[f]=c||d?[void 0]:await g.db.select({id:h.goal.id}).from(h.goal).where((0,e.Uo)((0,e.eq)(h.goal.workspaceId,b),(0,e.mj)(h.goal.title,`%${v}%`))),j=c?{specId:c.id}:d?{issueId:d.id}:f?{goalId:f.id}:null;if(!j)return await aw(b,q,"vannevar",`No goal / spec / issue matches \`${v}\`.`,s),w();let k=await (0,i.Mn)(a,j);if(!k||!k.nodes.length)return await aw(b,q,"vannevar",`No connected knowledge for \`${v}\` yet — it grows as the team works.`,s),w();let l=Object.entries(k.byType).map(([a,b])=>`**${a}** (${b.length})
64
+ ${b.slice(0,8).map(a=>`- ${a.title}`).join("\n")}`).join("\n\n");return await aw(b,q,"vannevar",`🕸️ Connections for \`${v}\` — ${k.nodes.length} related item(s):
65
+
66
+ ${l}`,s,{kind:"kb-card"}),w()}case"/test-dev":{await av(b,q,r,s),await aw(b,q,"edsger","\uD83E\uDDEA Running the Test Dev validation gate…",s);let a=await (0,o.Xu)();return await aw(b,q,"edsger",`Test Dev — **${a.status}**.${a.summary?` ${a.summary}`:""}`,s),w()}case"/github":{await av(b,q,r,s);let a=await (0,p.Iq)();return await aw(b,q,"werner",a.ok?`🐙 GitHub — ${a.changed} changed file(s) detected. Open the GitHub module to commit + push.`:"\uD83D\uDC19 GitHub — couldn't read the repository status (is this a git repo?).",s),w()}case"/assign":{await av(b,q,r,s);let a=v.match(/^(\S+)\s+@?(\S+)$/);if(!a)return await aw(b,q,"system","Usage: `/assign <issue-key> <@agent>` — e.g. `/assign 3 @margaret`.",s),w();let[,c,d]=a,[f]=await g.db.select({id:h.issue.id}).from(h.issue).where((0,e.Uo)((0,e.eq)(h.issue.workspaceId,b),(0,e.eq)(h.issue.key,c)));if(!f)return await aw(b,q,"system",`No issue #${c} on the board.`,s),w();let[i]=await g.db.select({id:h.agent.id,name:h.agent.name}).from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.workspaceId,b),(0,e.eq)(h.agent.handle,d.toLowerCase())));if(!i)return await aw(b,q,"system",`No agent @${d.toLowerCase()} on the roster.`,s),w();return await g.db.update(h.issue).set({assigneeId:i.id}).where((0,e.eq)(h.issue.id,f.id)),await aw(b,q,"system",`👤 Issue #${c} assigned to ${i.name} (@${d.toLowerCase()}).`,s),w()}case"/review":{let a=c.find(a=>/cybersec|security|qa/i.test(a.role))??c.find(a=>"whitfield"===a.handle);if(!a)return await av(b,q,r,s),await aw(b,q,"system","No reviewer agent (CyberSec/QA) on the roster.",s),w();return await av(b,q,`@${a.handle} review the recent changes on the board${v?`: ${v}`:""}.`,s),w([a.handle])}case"/prepare-deploy":{await av(b,q,r,s),await aw(b,q,"werner","\uD83D\uDE80 Running the Prepare-Deploy pipeline — this can take a minute; live progress is in the Prepare Deploy module.",s);let a=await ag();return await aw(b,q,"werner",`Prepare-Deploy — **${a.status}**.${a.summary?` ${a.summary}`:""}`,s),w()}case"/export-source":{if(await av(b,q,r,s),!v)return await aw(b,q,"system","Usage: `/export-source <github-repo>` — e.g. `/export-source myorg/constella-public`.",s),w();let a=await an({repo:v.split(/\s+/)[0]});return await aw(b,q,"werner",a.ok?`📦 Exported the clean source${a.sha?` (${a.sha.slice(0,7)})`:""}${a.copied?` — ${a.copied} file(s)`:""}.`:a.blocked?`🛑 Export blocked — ${a.secrets?.length??0} secret finding(s). Resolve them first.`:`Export failed${a.error?` — ${a.error}`:""}.`,s),w()}case"/telegram":{await av(b,q,r,s);let a=await (0,ao._9)(b);return await aw(b,q,"system",a?`📲 Telegram is configured — bot connected, alerts route to the allowlisted chat${a.allowedName?` (${a.allowedName})`:""}.`:"\uD83D\uDCF2 Telegram is not configured. Add a bot token + chat id in Settings → Integrations.",s),w()}case"/models":{await av(b,q,r,s);let[a,c]=await Promise.all([(0,ap.VH)(),(0,ap.LU)()]),d=[c.up?`llama.cpp: up${c.model?` (${c.model})`:""}`:"llama.cpp: down",a.up?`Ollama: up — ${a.models.length} model(s)${a.models.length?`: ${a.models.slice(0,6).map(a=>a.name).join(", ")}`:""}`:"Ollama: not running"];return await aw(b,q,"system",`🧠 Local models — ${d.join(" \xb7 ")}. Browse + download in the Models module.`,s),w()}case"/skills":{await av(b,q,r,s);let a=(0,aq.Ws)();return await aw(b,q,"system",`📚 Skills library — ${a.length} skill(s). Sample: ${a.slice(0,12).join(", ")}${a.length>12?" …":""}. Enable/disable per agent in Agent Studio → Skills.`,s),w()}case"/locks":{await av(b,q,r,s);let a=await (0,ar.h6)(b);return await aw(b,q,"system",a.length?`🔒 ${a.length} file lock(s) held:
67
+ ${a.slice(0,15).map(a=>`- \`${a.path}\` — @${a.agentHandle}`).join("\n")}`:"\uD83D\uDD13 No file locks held right now.",s),w()}case"/generate-plan":{await av(b,q,r,s);let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.id,b));if(!c)return await aw(b,q,"system","No workspace found.",s),w();let d=await (0,as.ui)(a,c,v?{brief:v}:void 0);return await aw(b,q,"ada",d.ok?"\uD83E\uDDED Plan generation started — drafting specs → issues → TODOs; it'll appear in the CEO Planner for your approval.":`Couldn't start plan generation${d.error?` — ${d.error}`:""}.`,s),w()}case"/close-sprint":{await av(b,q,r,s);let c=await (0,at.MO)(a,b);return await aw(b,q,"donald",c.ok?`🏁 Sprint closed — ${c.shipped} shipped, ${c.carried} carried over. Retro written to \`${c.path}\`.`:"Nothing to close — no issues are in Done yet.",s),w()}default:return await av(b,q,r,s),await aw(b,q,"system",`Unknown command \`${u}\`. Try \`/help\`.`,s),w()}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5060,exports.ids=[5060],exports.modules={1890:(a,b,c)=>{c.r(b),c.d(b,{account:()=>m,activity:()=>Z,agent:()=>r,agentSkill:()=>u,backlogItem:()=>$,blockProposal:()=>af,budget:()=>J,channelRead:()=>I,chatSession:()=>M,costEntry:()=>K,cronJob:()=>T,cronRun:()=>U,decision:()=>Q,deployRun:()=>O,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(15198),e=c(81757),f=c(37578),g=c(46320),h=c(63584),i=c(30159),j=c(34974);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"),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)}))},30043:(a,b,c)=>{c.d(b,{Y:()=>g,v:()=>f});var d=c(76760);let e=!1;function f(){let a=process.cwd();return!process.env.INIT_CWD&&!e&&/[\\/]\.next[\\/]standalone/.test(a)&&(e=!0,console.warn("[runtime-root] INIT_CWD unset and cwd is inside .next/standalone — relative DATABASE_URL/CONSTELLA_HOME will resolve UNDER the standalone dir (separate DB!). Set absolute paths or launch via `pnpm start` (which sets INIT_CWD).")),process.env.INIT_CWD||a}function g(a){return(0,d.isAbsolute)(a)?a:(0,d.resolve)(f(),a)}},37296:(a,b,c)=>{c.d(b,{j2:()=>m});var d=c(95482),e=c(95388),f=c(94042),g=c(49644),h=c(65705),i=c(1890);let j=(0,c(64567).TQ)(),k=process.env.BETTER_AUTH_URL??"http://localhost:3000";"start"===j||process.env.BETTER_AUTH_SECRET||console.error(`[auth] FATAL: BETTER_AUTH_SECRET is required in '${j}' mode (sessions would be forgeable). Set it in your environment.`);let l={};process.env.GITHUB_CLIENT_ID&&process.env.GITHUB_CLIENT_SECRET&&(l.github={clientId:process.env.GITHUB_CLIENT_ID,clientSecret:process.env.GITHUB_CLIENT_SECRET,scope:["repo","read:user"]}),process.env.GOOGLE_CLIENT_ID&&process.env.GOOGLE_CLIENT_SECRET&&(l.google={clientId:process.env.GOOGLE_CLIENT_ID,clientSecret:process.env.GOOGLE_CLIENT_SECRET}),Object.keys(l);let m=(0,d.l)({baseURL:k,secret:process.env.BETTER_AUTH_SECRET,database:(0,e.y)(h.db,{provider:"sqlite",schema:{user:i.user,session:i.session,account:i.account,verification:i.verification,twoFactor:i.twoFactor}}),emailAndPassword:{enabled:!0,autoSignIn:!0,requireEmailVerification:!1},socialProviders:l,account:{accountLinking:{enabled:!0,trustedProviders:["github","google"]}},session:{expiresIn:2592e3,additionalFields:{activeOrgId:{type:"string",required:!1}}},plugins:[(0,f.AI)(),(0,g.d)()],advanced:{useSecureCookies:k.startsWith("https://")}})},43526:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(4374);let e={files:(0,d.jsx)("path",{d:"M3 3.5h5l1.5 2H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4.5a1 1 0 0 1 1-1z"}),search:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.2"}),(0,d.jsx)("path",{d:"M10.2 10.2 14 14"})]}),git:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"4",cy:"4",r:"1.8"}),(0,d.jsx)("circle",{cx:"4",cy:"12",r:"1.8"}),(0,d.jsx)("circle",{cx:"12",cy:"9.5",r:"1.8"}),(0,d.jsx)("path",{d:"M4 5.8v4.4M5.8 4H9a2 2 0 0 1 2 2v1.6"})]}),debug:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8.5",r:"3.5"}),(0,d.jsx)("path",{d:"M8 5V3M4.5 8.5H2m12 0h-2.5M4.8 11.8 3.4 13M11.2 11.8l1.4 1.2M5.2 5 3.8 3.6M10.8 5l1.4-1.4"})]}),ext:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("path",{d:"M9 11.2h4.5M11.2 9v4.5"})]}),settings:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2.2"}),(0,d.jsx)("path",{d:"M8 1.5v2M8 12.5v2M14.5 8h-2M3.5 8h-2M12.6 3.4l-1.4 1.4M4.8 11.2l-1.4 1.4M12.6 12.6l-1.4-1.4M4.8 4.8 3.4 3.4"})]}),account:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"5.5",r:"2.8"}),(0,d.jsx)("path",{d:"M2.8 14c0-2.8 2.3-4.5 5.2-4.5s5.2 1.7 5.2 4.5"})]}),chevronRight:(0,d.jsx)("path",{d:"M6 4l4 4-4 4"}),chevronDown:(0,d.jsx)("path",{d:"M4 6l4 4 4-4"}),close:(0,d.jsx)("path",{d:"M4 4l8 8M12 4l-8 8"}),add:(0,d.jsx)("path",{d:"M8 3v10M3 8h10"}),newFile:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,d.jsx)("path",{d:"M9 2v4h4M8 8v4M6 10h4"})]}),newFolder:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M2 5.5a1 1 0 0 1 1-1h3l1.2 1.5H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5.5z"}),(0,d.jsx)("path",{d:"M8 8v3M6.5 9.5h3"})]}),refresh:(0,d.jsx)("path",{d:"M13 8a5 5 0 1 1-1.5-3.5M13 2.5V5h-2.5"}),collapse:(0,d.jsx)("path",{d:"M3 5h6M3 8h6M3 11h6M12 6l-1.5 1.5L12 9"}),more:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"3.5",cy:"8",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"8",r:"1"}),(0,d.jsx)("circle",{cx:"12.5",cy:"8",r:"1"})]}),split:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1"}),(0,d.jsx)("path",{d:"M8 3v10"})]}),terminal:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M4.5 6.5 6.5 8l-2 1.5M8 10h3.5"})]}),panelBottom:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M2 10h12"})]}),sidebarIcon:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M6 3v10"})]}),bell:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M8 2a3.5 3.5 0 0 0-3.5 3.5c0 3-1.3 4-1.3 4h9.6s-1.3-1-1.3-4A3.5 3.5 0 0 0 8 2z"}),(0,d.jsx)("path",{d:"M6.7 12a1.4 1.4 0 0 0 2.6 0"})]}),check:(0,d.jsx)("path",{d:"M3 8.5 6.5 12 13 4"}),error:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("path",{d:"M8 5v4M8 11h.01"})]}),warn:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M8 2.5 14.5 13.5h-13z"}),(0,d.jsx)("path",{d:"M8 7v3M8 12h.01"})]}),branch:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"4",cy:"4",r:"1.6"}),(0,d.jsx)("circle",{cx:"4",cy:"12",r:"1.6"}),(0,d.jsx)("circle",{cx:"12",cy:"9",r:"1.6"}),(0,d.jsx)("path",{d:"M4 5.6v4.8M5.6 4H9a1.8 1.8 0 0 1 1.8 1.8v1.6"})]}),sync:(0,d.jsx)("path",{d:"M3 6a5 5 0 0 1 8.5-2M13 10a5 5 0 0 1-8.5 2M11.5 2.5V4h-1.5M4.5 13.5V12h1.5"}),command:(0,d.jsx)("path",{d:"M5.5 3.5A1.5 1.5 0 1 1 4 5h8a1.5 1.5 0 1 1-1.5 1.5v3A1.5 1.5 0 1 1 12 11H4a1.5 1.5 0 1 1 1.5-1.5v-3z"}),goto:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M3 8h8M7.5 4.5 11 8l-3.5 3.5"}),(0,d.jsx)("path",{d:"M13 3v10"})]}),sun:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,d.jsx)("path",{d:"M8 1.5v1.5M8 13v1.5M14.5 8H13M3 8H1.5M12.6 3.4l-1 1M4.4 11.6l-1 1M12.6 12.6l-1-1M4.4 4.4l-1-1"})]}),moon:(0,d.jsx)("path",{d:"M13 9.2A5.5 5.5 0 0 1 6.8 3 5.5 5.5 0 1 0 13 9.2z"}),play:(0,d.jsx)("path",{d:"M5 3.5v9l7-4.5z"}),trash:(0,d.jsx)("path",{d:"M3.5 4.5h9M6 4.5V3h4v1.5M5 4.5l.5 8.5h5l.5-8.5"}),dot:(0,d.jsx)("circle",{cx:"8",cy:"8",r:"3"}),fileTs:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,d.jsx)("path",{d:"M9 2v4h4"})]}),arrowUp:(0,d.jsx)("path",{d:"M8 13V3M4 7l4-4 4 4"}),arrowDown:(0,d.jsx)("path",{d:"M8 3v10M4 9l4 4 4-4"}),agents:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"5.5",cy:"6",r:"2.2"}),(0,d.jsx)("circle",{cx:"11",cy:"6.5",r:"1.8"}),(0,d.jsx)("path",{d:"M2 13c0-2 1.6-3.2 3.5-3.2S9 11 9 13M9.5 12.5c.2-1.6 1.3-2.5 2.8-2.5 1.3 0 2.4.8 2.4 2.3"})]}),bot:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"3",y:"5.5",width:"10",height:"7",rx:"2"}),(0,d.jsx)("path",{d:"M8 3v2.5M5.8 9h.01M10.2 9h.01M6 12h4"}),(0,d.jsx)("circle",{cx:"8",cy:"3",r:"1"})]}),send:(0,d.jsx)("path",{d:"M14 2 7 9M14 2l-4.5 12-2.5-5L2 6.5z"}),at:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,d.jsx)("path",{d:"M11 8v1.2a1.8 1.8 0 0 0 3.5.6A6.5 6.5 0 1 0 11 13.2"})]}),chevronLeft:(0,d.jsx)("path",{d:"M10 4 6 8l4 4"}),dockRight:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M10 3v10"}),(0,d.jsx)("rect",{x:"10.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),dockLeft:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M6 3v10"}),(0,d.jsx)("rect",{x:"2.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),chat:(0,d.jsx)("path",{d:"M3 4.5h10a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H7l-3 2.5V11.5H3a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1z"}),grid:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"4.5",height:"4.5",rx:"1"})]}),inbox:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M2 9h3l1 2h4l1-2h3"}),(0,d.jsx)("path",{d:"M2.5 9 4 3.5h8L13.5 9v3.5a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1z"})]}),calendar:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M2.5 6.5h11M5.5 2v3M10.5 2v3"})]}),repeat:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M3 6a4 4 0 0 1 7-2.5L12 5M13 10a4 4 0 0 1-7 2.5L4 11"}),(0,d.jsx)("path",{d:"M12 2v3H9M4 14v-3h3"})]}),doc:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M9 2H4.5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V5.5L9 2z"}),(0,d.jsx)("path",{d:"M9 2v3.5h3.5M6 8.5h4M6 11h4"})]}),skill:(0,d.jsx)("path",{d:"M8 2.5l1.4 3.1 3.4.4-2.5 2.3.7 3.3L8 9.9 5 11.6l.7-3.3L3.2 6l3.4-.4z"}),pulse:(0,d.jsx)("path",{d:"M2 8h3l1.5-4 2.5 8 1.5-4H14"}),coins:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("ellipse",{cx:"6",cy:"4.5",rx:"3.5",ry:"1.8"}),(0,d.jsx)("path",{d:"M2.5 4.5v3c0 1 1.6 1.8 3.5 1.8s3.5-.8 3.5-1.8v-3"}),(0,d.jsx)("ellipse",{cx:"10",cy:"9.5",rx:"3.5",ry:"1.8"}),(0,d.jsx)("path",{d:"M6.5 9.5c.4.9 1.8 1.5 3.5 1.5s3.5-.8 3.5-1.8v-1.2"})]}),cpu:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"8",height:"8",rx:"1.5"}),(0,d.jsx)("rect",{x:"6.3",y:"6.3",width:"3.4",height:"3.4",rx:".5"}),(0,d.jsx)("path",{d:"M6 2v2M10 2v2M6 12v2M10 12v2M2 6h2M2 10h2M12 6h2M12 10h2"})]}),shield:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M8 2 3 4v4c0 3 2.2 5 5 6 2.8-1 5-3 5-6V4z"}),(0,d.jsx)("path",{d:"M5.8 8 7.3 9.5 10.4 6.3"})]}),target:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"5.5"}),(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2.4"})]})};function f({name:a,size:b=16,className:c="",strokeWidth:g=1.4,style:h}){let i=e[a];return i?(0,d.jsx)("svg",{width:b,height:b,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:g,strokeLinecap:"round",strokeLinejoin:"round",className:c,style:h,children:"play"===a||"dot"===a?(0,d.jsx)("g",{fill:"currentColor",stroke:"none",children:i}):i}):null}},64567:(a,b,c)=>{c.d(b,{TQ:()=>e});let d={start:{label:"Start",requiresLogin:!1,note:"Local auto-created account \xb7 always signed in."},auth:{label:"Auth",requiresLogin:!0,note:"Email + password required each session."},vps:{label:"VPS",requiresLogin:!0,note:"Access over your Tailscale tailnet; runs in Docker."},portable:{label:"Portable",requiresLogin:!0,note:"USB drive mounted as root across machines."}};function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&a in d?a:"start"}},65705:(a,b,c)=>{c.d(b,{F:()=>k,db:()=>l});var d=c(74408),e=c(87550),f=c.n(e),g=c(73024),h=c(76760),i=c(1890);let j=(0,c(30043).Y)((process.env.DATABASE_URL??"file:./.constella/constella.db").replace(/^file:/,""));(0,g.mkdirSync)((0,h.dirname)(j),{recursive:!0});let k=new(f())(j);k.pragma("journal_mode = WAL"),k.pragma("foreign_keys = ON");let l=(0,d.f)(k,{schema:i})},93542:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(4374);function e({size:a=34,rx:b=9}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 100 100",style:{display:"block",flex:`0 0 ${a}px`},"aria-label":"Constella",children:[(0,d.jsx)("rect",{x:"1",y:"1",width:"98",height:"98",rx:b,fill:"var(--cs-bg)",stroke:"var(--cs-border)",strokeWidth:"1.5"}),(0,d.jsx)("path",{d:"M66.06 27.06 L42.75 22.95 L24.62 38.17 L24.62 61.83 L42.75 77.05 L66.06 72.94",fill:"none",stroke:"var(--cs-line)",strokeWidth:"2.1",strokeLinecap:"round",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M48 50 L42.75 22.95 M48 50 L24.62 50 M48 50 L42.75 77.05",fill:"none",stroke:"var(--cs-line)",strokeWidth:"1.2",strokeLinecap:"round",opacity:"0.55"}),[[66.06,27.06],[42.75,22.95],[24.62,38.17],[24.62,61.83],[42.75,77.05],[66.06,72.94]].map((a,b)=>(0,d.jsx)("circle",{cx:a[0],cy:a[1],r:"3.1",fill:"var(--cs-node)"},b)),(0,d.jsx)("circle",{cx:"48",cy:"50",r:"8.5",fill:"var(--cs-glow)",opacity:"0.4"}),(0,d.jsx)("circle",{cx:"48",cy:"50",r:"4.3",fill:"var(--cs-core)"})]})}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5278,exports.ids=[5278],exports.modules={22362:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},85278:(a,b,c)=>{c.d(b,{NodeSqliteDialect:()=>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.columns().length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5614,exports.ids=[5614],exports.modules={55614:(a,b,c)=>{c.d(b,{kH:()=>e});let d=Object.fromEntries([{id:"anthropic",displayName:"Anthropic",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_anthropic",baseUrl:"https://api.anthropic.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Claude family. Model list mapped from provider capabilities."},{id:"openai",displayName:"OpenAI",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_openai",baseUrl:"https://api.openai.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"GPT-4o/o-series + DALL\xb7E + Whisper."},{id:"google_gemini",displayName:"Google AI / Gemini",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_google",baseUrl:"https://generativelanguage.googleapis.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Gemini 1.5/2.x via AI Studio API key."},{id:"xai_grok",displayName:"xAI / Grok",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_xai",baseUrl:"https://api.x.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"OpenAI-compatible REST. Grok-2/3."},{id:"deepseek",displayName:"DeepSeek",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_deepseek",baseUrl:"https://api.deepseek.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"deepseek-chat / deepseek-reasoner."},{id:"cohere",displayName:"Cohere",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_cohere",baseUrl:"https://api.cohere.com/v2",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Command R/R+ and strong rerank/embeddings."},{id:"ai21",displayName:"AI21",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_ai21",baseUrl:"https://api.ai21.com/studio/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"perplexity",displayName:"Perplexity",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_perplexity",baseUrl:"https://api.perplexity.ai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"groq",displayName:"Groq",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_groq",baseUrl:"https://api.groq.com/openai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Ultra-low-latency LPU inference, OpenAI-compatible."},{id:"nvidia_nim",displayName:"NVIDIA / NIM",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"NIM microservices, OpenAI-compatible."},{id:"together",displayName:"Together AI",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_together",baseUrl:"https://api.together.xyz/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available"},{id:"fireworks",displayName:"Fireworks AI",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available"},{id:"cerebras",displayName:"Cerebras",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_cerebras",baseUrl:"https://api.cerebras.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"available",notes:"Wafer-scale fast inference."},{id:"huggingface",displayName:"Hugging Face",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_hf",baseUrl:"https://api-inference.huggingface.co",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"replicate",displayName:"Replicate",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_replicate",baseUrl:"https://api.replicate.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"anyscale",displayName:"Anyscale",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_anyscale",baseUrl:"https://api.endpoints.anyscale.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Endpoints product changing — adapter pending."},{id:"databricks",displayName:"Databricks",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_databricks",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"requires_setup"},{id:"stability",displayName:"Stability AI",category:"image",connectionTypes:["api_key"],defaultAdapter:"http_stability",baseUrl:"https://api.stability.ai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"elevenlabs",displayName:"ElevenLabs",category:"audio",connectionTypes:["api_key"],defaultAdapter:"http_elevenlabs",baseUrl:"https://api.elevenlabs.io/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"available",notes:"TTS / voice."},{id:"voyage",displayName:"Voyage AI",category:"embedding",connectionTypes:["api_key"],defaultAdapter:"http_voyage",baseUrl:"https://api.voyageai.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"jina",displayName:"Jina AI",category:"embedding",connectionTypes:["api_key"],defaultAdapter:"http_jina",baseUrl:"https://api.jina.ai/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"runpod",displayName:"RunPod",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_runpod",baseUrl:"https://api.runpod.ai/v2",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"lambda",displayName:"Lambda Labs",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_lambda",baseUrl:"https://api.lambdalabs.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"modal",displayName:"Modal",category:"cloud_api",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"http_modal",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"baseten",displayName:"Baseten",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_baseten",baseUrl:"https://inference.baseten.co/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"openrouter",displayName:"OpenRouter",category:"router",connectionTypes:["api_key","oauth"],defaultAdapter:"http_openrouter",baseUrl:"https://openrouter.ai/api/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Aggregates 300+ models across providers — full live list."},{id:"omnirouter",displayName:"OmniRouter",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_omnirouter",baseUrl:"https://api.omnirouter.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental",notes:"OpenAI-compatible multi-provider router."},{id:"litellm",displayName:"LiteLLM",category:"openai_compatible",connectionTypes:["api_key","openai_compatible","custom_endpoint"],defaultAdapter:"http_litellm",baseUrl:"http://localhost:4000",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Self-hosted proxy; unifies 100+ providers."},{id:"portkey",displayName:"Portkey",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_portkey",baseUrl:"https://api.portkey.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Gateway with virtual keys."},{id:"helicone",displayName:"Helicone",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_helicone",baseUrl:"https://oai.helicone.ai/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental",notes:"Observability proxy in front of OpenAI-compatible providers."},{id:"openai_compatible",displayName:"OpenAI-compatible endpoint",category:"openai_compatible",connectionTypes:["openai_compatible","api_key","custom_endpoint"],defaultAdapter:"http_openai_compat",baseUrl:"https://",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Any server exposing /v1/chat/completions + /v1/models."},{id:"lmstudio_server",displayName:"LM Studio (OpenAI server)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:1234/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"Local OpenAI-compatible server from LM Studio."},{id:"ollama_openai",displayName:"Ollama (OpenAI endpoint)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:11434/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Ollama's OpenAI-compatible surface."},{id:"vllm_server",displayName:"vLLM (OpenAI server)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8000/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"High-throughput self-hosted serving."},{id:"tgi",displayName:"Text Generation Inference",category:"openai_compatible",connectionTypes:["openai_compatible","local","custom_endpoint"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8080/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental",notes:"HF TGI with OpenAI route."},{id:"localai",displayName:"LocalAI",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8080/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"Drop-in OpenAI replacement, fully local."},{id:"azure_openai",displayName:"Azure OpenAI",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_azure_openai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"requires_setup"},{id:"aws_bedrock",displayName:"AWS Bedrock",category:"cloud_platform",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"sdk_bedrock",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"requires_setup",notes:"SigV4 auth; multi-vendor models."},{id:"vertex_ai",displayName:"Google Vertex AI",category:"cloud_platform",connectionTypes:["oauth","api_key"],defaultAdapter:"sdk_vertex",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"requires_setup",notes:"GCP service-account / ADC."},{id:"cloudflare",displayName:"Cloudflare Workers AI",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_cloudflare",baseUrl:"https://api.cloudflare.com/client/v4",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"oci_genai",displayName:"Oracle OCI Generative AI",category:"cloud_platform",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"sdk_oci",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"OCI SDK signing — adapter pending."},{id:"watsonx",displayName:"IBM watsonx",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_watsonx",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"requires_setup"},{id:"dashscope",displayName:"Alibaba DashScope / Qwen",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_dashscope",baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"experimental",notes:"Qwen models, OpenAI-compatible mode."},{id:"qianfan",displayName:"Baidu Qianfan",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_qianfan",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"planned",notes:"ERNIE; access-token auth — adapter pending."},{id:"hunyuan",displayName:"Tencent Hunyuan",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_hunyuan",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"TC3-HMAC signing — adapter pending."},{id:"zhipu",displayName:"Zhipu AI (GLM)",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_zhipu",baseUrl:"https://open.bigmodel.cn/api/paas/v4",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"experimental"},{id:"moonshot",displayName:"Moonshot AI / Kimi",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_moonshot",baseUrl:"https://api.moonshot.cn/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenAI-compatible; long context."},{id:"minimax",displayName:"MiniMax",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_minimax",baseUrl:"https://api.minimax.chat/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Group-id + key auth — adapter pending."},{id:"ollama",displayName:"Ollama",category:"local_runtime",connectionTypes:["local","cli"],defaultAdapter:"local_ollama",baseUrl:"http://localhost:11434",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"Pulls + serves local models; live /api/tags list."},{id:"llamacpp",displayName:"llama.cpp",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_llamacpp",baseUrl:"http://127.0.0.1:8082",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"GGUF models, SHA-256 verified, bound to 127.0.0.1."},{id:"lmstudio",displayName:"LM Studio",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_lmstudio",baseUrl:"http://localhost:1234",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsVision:!0,status:"available",notes:"Desktop runtime + local server."},{id:"vllm",displayName:"vLLM",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_vllm",baseUrl:"http://localhost:8000",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"GPU serving engine."},{id:"localai_rt",displayName:"LocalAI",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_localai",baseUrl:"http://localhost:8080",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available"},{id:"gpt4all",displayName:"GPT4All",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_gpt4all",baseUrl:"http://localhost:4891/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"koboldcpp",displayName:"KoboldCpp",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_kobold",baseUrl:"http://localhost:5001",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"jan",displayName:"Jan",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_jan",baseUrl:"http://localhost:1337/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"anythingllm",displayName:"AnythingLLM (local)",category:"local_runtime",connectionTypes:["local","api_key"],defaultAdapter:"local_anythingllm",baseUrl:"http://localhost:3001/api",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Workspace API — adapter pending."},{id:"openwebui",displayName:"Open WebUI (backend)",category:"local_runtime",connectionTypes:["local","openai_compatible"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:3000/api",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"claude_code",displayName:"Claude Code",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_claude_code",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"available",notes:"Drives the local Claude Code CLI / agent."},{id:"codex_cli",displayName:"Codex CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_codex",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenAI Codex CLI agent."},{id:"openclaw",displayName:"OpenClaw",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_openclaw",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenClaw CLI — headless `openclaw infer model run --json` (provider-routed). No token/cost reported."},{id:"hermes_cli",displayName:"Hermes (Nous Research)",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_hermes",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Hermes agent CLI — headless `hermes -z`. Configure providers via `hermes model`."},{id:"gemini_cli",displayName:"Gemini CLI",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_gemini",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"experimental"},{id:"aider",displayName:"Aider",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_aider",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `aider --message --yes-always`; provider-routed via its own env keys. Model list from `aider --list-models`. No token/cost reported."},{id:"opencode",displayName:"OpenCode",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_opencode",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `opencode run`; providers via `opencode auth login`. Model list from `opencode models`. No token/cost reported."},{id:"copilot_cli",displayName:"GitHub Copilot CLI",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_copilot",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"experimental",notes:"Headless `copilot -p --allow-all-tools`; sign in with the Copilot CLI. No token/cost reported."},{id:"cursor_cli",displayName:"Cursor CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_cursor",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `cursor-agent -p --output-format json`; sign in via `cursor-agent login`. `-p` can hang → bounded timeout. No token/cost reported."},{id:"cline_cli",displayName:"Cline CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_cline",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `cline --json -y`; provider-routed via its own config. No token/cost reported."},{id:"kilo_code",displayName:"Kilo Code CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_kilo",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `kilocode --yes`; provider-routed via its own config. No token/cost reported."},{id:"openai_cli",displayName:"OpenAI CLI",category:"cli",connectionTypes:["cli","api_key"],defaultAdapter:"cli_openai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Thin CLI over the API — adapter pending."},{id:"ollama_cli",displayName:"Ollama CLI",category:"cli",connectionTypes:["cli","local"],defaultAdapter:"cli_ollama",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"`ollama run/list` driven."},{id:"custom_cli",displayName:"Custom CLI provider",category:"cli",connectionTypes:["cli","custom_endpoint"],defaultAdapter:"cli_custom",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,status:"requires_setup",notes:"Define your own command + arg template."}].map(a=>[a.id,a])),e=a=>d[a]}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5818,exports.ids=[5818],exports.modules={45818:(a,b,c)=>{c.d(b,{checkForUpdate:()=>i});var d=c(60950);let e=null,f=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0);async function g(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function h(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function i(a=!1){let b,c,j=(0,d.Y)(),k=`npm install -g ${d.r}@latest`;if(!a&&e&&Date.now()-e.at<216e5)return e.info;let l=await g(`https://registry.npmjs.org/${d.r}/latest`),m=l?.version??null,n=!!m&&function(a,b){let c=f(a),d=f(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))break}return!1}(m,j),o=null;if(n&&m){let a=await h("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");o=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,m):null}let p={current:j,latest:m,updateAvailable:n,type:m?(b=f(m),c=f(j),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]?"patch":null):null,command:k,changelog:o};return e={at:Date.now(),info:p},p}},60950:(a,b,c)=>{c.d(b,{Y:()=>h,r:()=>g});var d=c(73024),e=c(76760),f=c(30043);let g="constella";function h(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6479,exports.ids=[6479],exports.modules={16775:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},66479:(a,b,c)=>{c.d(b,{BunSqliteDialect:()=>n});var d=c(16775),e=c(99408),f=c(37906),g=c(88183),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.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
+ "use strict";exports.id=6658,exports.ids=[6658],exports.modules={7856:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},36658:(a,b,c)=>{c.d(b,{BunSqliteDialect:()=>n});var d=c(7856),e=c(6228),f=c(80185),g=c(24607),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columnNames.length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6706,exports.ids=[6706],exports.modules={7856:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},26706:(a,b,c)=>{c.d(b,{NodeSqliteDialect:()=>n});var d=c(7856),e=c(6228),f=c(80185),g=c(24607),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columns().length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}}};
@@ -0,0 +1 @@
1
+ exports.id=6719,exports.ids=[6719],exports.modules={16719:a=>{(()=>{"use strict";let b,c,d,e,f;var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}const b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"<failed to generate stacktrace>";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){const b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a<c.length;a++)this[c[a].n]=function(a){return function(...b){if(console){let c=console[a];if("function"!=typeof c&&(c=console.log),"function"==typeof c)return c.apply(console,b)}}}(c[a].c)}}b.DiagConsoleLogger=d},912:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return a<d.DiagLogLevel.NONE?a=d.DiagLogLevel.NONE:a>d.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,(c=b.DiagLogLevel||(b.DiagLogLevel={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL"},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,(c=b.ValueType||(b.ValueType={}))[c.INT=0]="INT",c[c.DOUBLE=1]="DOUBLE"},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,(c=b.SamplingDecision||(b.SamplingDecision={}))[c.NOT_RECORD=0]="NOT_RECORD",c[c.RECORD=1]="RECORD",c[c.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,(c=b.SpanKind||(b.SpanKind={}))[c.INTERNAL=0]="INTERNAL",c[c.SERVER=1]="SERVER",c[c.CLIENT=2]="CLIENT",c[c.PRODUCER=3]="PRODUCER",c[c.CONSUMER=4]="CONSUMER"},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,(c=b.SpanStatusCode||(b.SpanStatusCode={}))[c.UNSET=0]="UNSET",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR"},475:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,(c=b.TraceFlags||(b.TraceFlags={}))[c.NONE=0]="NONE",c[c.SAMPLED=1]="SAMPLED"},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},x={};function y(a){var b=x[a];if(void 0!==b)return b.exports;var c=x[a]={exports:{}},d=!0;try{w[a].call(c.exports,c,c.exports,y),d=!1}finally{d&&delete x[a]}return c.exports}y.ab=__dirname+"/";var z={};Object.defineProperty(z,"__esModule",{value:!0}),z.trace=z.propagation=z.metrics=z.diag=z.context=z.INVALID_SPAN_CONTEXT=z.INVALID_TRACEID=z.INVALID_SPANID=z.isValidSpanId=z.isValidTraceId=z.isSpanContextValid=z.createTraceState=z.TraceFlags=z.SpanStatusCode=z.SpanKind=z.SamplingDecision=z.ProxyTracerProvider=z.ProxyTracer=z.defaultTextMapSetter=z.defaultTextMapGetter=z.ValueType=z.createNoopMeter=z.DiagLogLevel=z.DiagConsoleLogger=z.ROOT_CONTEXT=z.createContextKey=z.baggageEntryMetadataFromString=void 0,g=y(369),Object.defineProperty(z,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return g.baggageEntryMetadataFromString}}),h=y(780),Object.defineProperty(z,"createContextKey",{enumerable:!0,get:function(){return h.createContextKey}}),Object.defineProperty(z,"ROOT_CONTEXT",{enumerable:!0,get:function(){return h.ROOT_CONTEXT}}),i=y(972),Object.defineProperty(z,"DiagConsoleLogger",{enumerable:!0,get:function(){return i.DiagConsoleLogger}}),j=y(957),Object.defineProperty(z,"DiagLogLevel",{enumerable:!0,get:function(){return j.DiagLogLevel}}),k=y(102),Object.defineProperty(z,"createNoopMeter",{enumerable:!0,get:function(){return k.createNoopMeter}}),l=y(901),Object.defineProperty(z,"ValueType",{enumerable:!0,get:function(){return l.ValueType}}),m=y(194),Object.defineProperty(z,"defaultTextMapGetter",{enumerable:!0,get:function(){return m.defaultTextMapGetter}}),Object.defineProperty(z,"defaultTextMapSetter",{enumerable:!0,get:function(){return m.defaultTextMapSetter}}),n=y(125),Object.defineProperty(z,"ProxyTracer",{enumerable:!0,get:function(){return n.ProxyTracer}}),o=y(846),Object.defineProperty(z,"ProxyTracerProvider",{enumerable:!0,get:function(){return o.ProxyTracerProvider}}),p=y(996),Object.defineProperty(z,"SamplingDecision",{enumerable:!0,get:function(){return p.SamplingDecision}}),q=y(357),Object.defineProperty(z,"SpanKind",{enumerable:!0,get:function(){return q.SpanKind}}),r=y(847),Object.defineProperty(z,"SpanStatusCode",{enumerable:!0,get:function(){return r.SpanStatusCode}}),s=y(475),Object.defineProperty(z,"TraceFlags",{enumerable:!0,get:function(){return s.TraceFlags}}),t=y(98),Object.defineProperty(z,"createTraceState",{enumerable:!0,get:function(){return t.createTraceState}}),u=y(139),Object.defineProperty(z,"isSpanContextValid",{enumerable:!0,get:function(){return u.isSpanContextValid}}),Object.defineProperty(z,"isValidTraceId",{enumerable:!0,get:function(){return u.isValidTraceId}}),Object.defineProperty(z,"isValidSpanId",{enumerable:!0,get:function(){return u.isValidSpanId}}),v=y(476),Object.defineProperty(z,"INVALID_SPANID",{enumerable:!0,get:function(){return v.INVALID_SPANID}}),Object.defineProperty(z,"INVALID_TRACEID",{enumerable:!0,get:function(){return v.INVALID_TRACEID}}),Object.defineProperty(z,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return v.INVALID_SPAN_CONTEXT}}),b=y(67),Object.defineProperty(z,"context",{enumerable:!0,get:function(){return b.context}}),c=y(506),Object.defineProperty(z,"diag",{enumerable:!0,get:function(){return c.diag}}),d=y(886),Object.defineProperty(z,"metrics",{enumerable:!0,get:function(){return d.metrics}}),e=y(939),Object.defineProperty(z,"propagation",{enumerable:!0,get:function(){return e.propagation}}),f=y(845),Object.defineProperty(z,"trace",{enumerable:!0,get:function(){return f.trace}}),z.default={context:b.context,diag:c.diag,metrics:d.metrics,propagation:e.propagation,trace:f.trace},a.exports=z})()}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=678,exports.ids=[678,5818],exports.modules={4719:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(62060).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},5323:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(61576),e=c(1308),f=c(4719);function g({title:a,sub:b,right:c,icon:h,children:i}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,children:i})]})}},45818:(a,b,c)=>{c.d(b,{checkForUpdate:()=>i});var d=c(60950);let e=null,f=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0);async function g(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function h(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function i(a=!1){let b,c,j=(0,d.Y)(),k=`npm install -g ${d.r}@latest`;if(!a&&e&&Date.now()-e.at<216e5)return e.info;let l=await g(`https://registry.npmjs.org/${d.r}/latest`),m=l?.version??null,n=!!m&&function(a,b){let c=f(a),d=f(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))break}return!1}(m,j),o=null;if(n&&m){let a=await h("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");o=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,m):null}let p={current:j,latest:m,updateAvailable:n,type:m?(b=f(m),c=f(j),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]?"patch":null):null,command:k,changelog:o};return e={at:Date.now(),info:p},p}},51221:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(4374),e=c(43526),f=c(48442),g=c(31819);function h({title:a,sub:b,right:c,icon:i,children:j}){let k=(0,g.k)(),l=f.e.find(b=>b.title===a),m=i??l?.icon,n=l?k(`mod.${l.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[m&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:m,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:n}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",children:j})]})}},60950:(a,b,c)=>{c.d(b,{Y:()=>h,r:()=>g});var d=c(73024),e=c(76760),f=c(30043);let g="constella";function h(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}},67949:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(79676),e=c(75785);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}},73134:(a,b,c)=>{c.d(b,{AgentRunLive:()=>j});var d=c(4374),e=c(74679),f=c(47104),g=c(43526);c(4137);var h=c(31819);let i=["read","create","edit","run","search","thinking","done","error"];function j({channel:a,resume:b=!1,sinceSeq:c=0,onFinish:k}){let l=(0,h.k)();(0,f.useRouter)();let[m,n]=(0,e.useState)(b),[o,p]=(0,e.useState)([]),[q,r]=(0,e.useState)(0);if((0,e.useRef)(b?c:0),(0,e.useRef)(!1),(0,e.useRef)(0),!m&&0===o.length)return null;let s=function(a){let b=[];for(let c of a)if("text"===c.kind){let a=(c.detail||"").replace(/\s+/g," ").trim();if(!a)continue;let d=b[b.length-1];d&&"text"===d.kind?d.content=(d.content+" "+a).slice(-600):b.push({id:c.id,kind:"text",content:a})}else if("thinking"===c.kind){let a=(c.detail||c.target||"").replace(/\s+/g," ").trim();a&&b.push({id:c.id,kind:"thinking",content:a})}else b.push({id:c.id,kind:c.kind,content:function(a){if(!a)return"";let b=a.split(/[\\/]/);return b.length>1?b.slice(-2).join("/"):a}(c.target)||c.detail||""});return b}(o),t=s.slice(-5),u=s.length-t.length,v=o.some(a=>"done"===a.kind||"error"===a.kind),w=o.some(a=>"error"===a.kind),x=String(Math.floor(q/60)).padStart(2,"0"),y=String(q%60).padStart(2,"0");return(0,d.jsxs)("div",{className:"card live-stream",style:{marginBottom:16,borderColor:w?"var(--sx-keyword)":"var(--accent)"},children:[(0,d.jsxs)("div",{className:"set-desc",style:{marginBottom:8,display:"flex",alignItems:"center",gap:7},children:[m?(0,d.jsx)("span",{className:"dotpulse"}):(0,d.jsx)(g.I,{name:w?"close":"check",size:13,style:{color:w?"var(--sx-keyword)":"var(--sx-string)"}}),m?l("agent.run.working"):w?l("agent.run.failed"):l("agent.run.finished"),s.length>0&&(0,d.jsxs)("span",{style:{color:"var(--text-faint)"},children:["\xb7 ",l(1===s.length?"agent.run.steps.one":"agent.run.steps.other",{n:s.length})]}),(0,d.jsxs)("span",{className:"live-elapsed",style:{marginLeft:"auto"},children:[x,":",y]})]}),0===t.length?(0,d.jsxs)("div",{className:"muted",style:{fontSize:12,display:"flex",alignItems:"center",gap:7},children:[(0,d.jsx)("span",{className:"sync-spin",children:(0,d.jsx)(g.I,{name:"refresh",size:12})})," ",l("agent.run.reading")]}):(0,d.jsxs)(d.Fragment,{children:[u>0&&(0,d.jsx)("div",{className:"live-more",children:l(1===u?"agent.run.earlier.one":"agent.run.earlier.other",{n:u})}),(0,d.jsx)("div",{className:"live-stream-lines",children:t.map(a=>(0,d.jsxs)("div",{className:"live-line "+a.kind,children:["text"!==a.kind&&(0,d.jsx)("span",{className:"ll-k",children:i.includes(a.kind)?l(`agent.verb.${a.kind}`):a.kind}),(0,d.jsxs)("span",{className:"ll-c",children:[a.content,!v&&a===t[t.length-1]&&"text"===a.kind&&(0,d.jsx)("span",{className:"ll-caret"})]})]},a.id))})]})]})}},79305:(a,b,c)=>{c.d(b,{pM:()=>t,Kg:()=>s,eU:()=>v,PG:()=>u});var d=c(6866),e=c(53993),f=c(73024),g=c(30043),h=c(64567),i=c(30170);function j(){return(0,i.n)()?"dev":"vps"===(0,h.TQ)()||(0,f.existsSync)("/.dockerenv")?"vps":"portable"===(0,h.TQ)()?"portable":/[\\/]_npx[\\/]/.test((0,g.v)())?"npx":"global"}var k=c(45818),l=c(76760),m=c(31421),n=c(56663),o=c(60950);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,n.r$)(),"backups","last-update.json");async function r(){let a=await (0,k.checkForUpdate)(!0),b=j(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,n.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,f.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,f.existsSync)(d))try{(0,f.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constella@latest"};if("vps"===b)return{ok:!1,context:b,command:"docker compose pull && docker compose up -d",backupDir:d,needsRestart:!0,message:"On a VPS, update with Docker: docker compose pull && docker compose up -d"};if("portable"===b)return{ok:!1,context:b,command:c,backupDir:d,needsRestart:!0,message:"Portable: ensure free space, back up the drive, then run: "+c};try{return(0,f.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()})),(0,m.spawn)(process.execPath,["-e",'const cp=require("child_process"),fs=require("fs");const pkg=process.argv[1],to=process.argv[2],rf=process.argv[3];const r=cp.spawnSync("npm",["install","-g",pkg+"@latest"],{stdio:"ignore",shell:true});fs.writeFileSync(rf,JSON.stringify({status:r.status===0?"done":"error",to,code:r.status,at:new Date().toISOString()}));',o.r,a.latest??"latest",q()],{detached:!0,stdio:"ignore"}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} in the background — restart Constella when it completes.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}async function s(a=!1){return(0,k.checkForUpdate)(a)}async function t(){return j()}async function u(){return await (0,e.nP)(),r()}async function v(){try{return JSON.parse((0,f.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(74252).D)([s,t,u,v]),(0,d.A)(s,"400149cd096ac1354f913c071f900a64d2862dbfb3",null),(0,d.A)(t,"007ff97c9d0582db863b5d669e6f345feb6748cce1",null),(0,d.A)(u,"0046edb455941a37d0b57062ac17b267c1a6bbe6c8",null),(0,d.A)(v,"0044541af0e954d2792e712c54dea0fce2040c4cf7",null)}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=683,exports.ids=[683],exports.modules={683:(a,b,c)=>{c.d(b,{NodeSqliteDialect:()=>n});var d=c(16775),e=c(99408),f=c(37906),g=c(88183),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columns().length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}},16775:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6862,exports.ids=[6862],exports.modules={64619:(a,b,c)=>{c.d(b,{E6:()=>q,Nm:()=>A,PD:()=>w,SH:()=>y,U_:()=>r,hu:()=>u,sw:()=>s,xV:()=>t});var d=c(77598),e=c(63933),f=c(5443),g=c(80280),h=c(25533),i=c(78698);let j=process.env.OLLAMA_URL??"http://127.0.0.1:11434",k=process.env.CONSTELLA_EMBED_MODEL??"nomic-embed-text",l=/nomic/i.test(k),m=(a,b)=>`search_${b}: ${a}`,n=process.env.CONSTELLA_EMBED_URL??"http://127.0.0.1:8083",o=[".claude","DOCS","PO","Reports","specs","issues"];function p(a){let b=a.replace(/\\/g,"/");return!(b.startsWith(".claude/kb/")||b.startsWith(".claude/skills/"))&&(b.startsWith("mock/")?/\.(md|html?|css|jsx?|tsx?|txt|json)$/i.test(b):b.endsWith(".md")&&o.some(a=>b===`${a}.md`||b.startsWith(`${a}/`)))}async function q(a,b="document"){try{let c=await fetch(`${j}/api/embeddings`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({model:k,prompt:l?m(a,b):a}),signal:AbortSignal.timeout(8e3)});if(c.ok){let a=await c.json();if(Array.isArray(a.embedding)&&a.embedding.length)return a.embedding}}catch{}try{let c=await fetch(`${n}/v1/embeddings`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({input:m(a,b),model:"nomic-embed"}),signal:AbortSignal.timeout(8e3)});if(c.ok){let a=await c.json(),b=a?.data?.[0]?.embedding;if(Array.isArray(b)&&b.length)return b}}catch{}return null}function r(a){let b=a.split(/\n(?=#{1,3}\s)/).map(a=>a.trim()).filter(Boolean),c=[];for(let d of b.length?b:[a])if(d)if(d.length<=1200)c.push(d);else for(let a=0;a<d.length;a+=1200)c.push(d.slice(a,a+1200));return c.slice(0,40)}function s(a,b){let c=0,d=0,e=0,f=Math.min(a.length,b.length);for(let g=0;g<f;g++)c+=a[g]*b[g],d+=a[g]*a[g],e+=b[g]*b[g];return d&&e?c/(Math.sqrt(d)*Math.sqrt(e)):0}async function t(a){let[b]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));if(!b)return{ok:!1,chunks:0,embedded:!1};let c=(0,i.CS)(a).filter(p);await g.db.delete(h.ragChunk).where((0,e.eq)(h.ragChunk.workspaceId,b.id));let f=0,j=!1;for(let e of c)for(let c of r((0,i.sL)(a,e)??"")){let a=await q(c);a&&(j=!0),await g.db.insert(h.ragChunk).values({id:(0,d.randomUUID)(),workspaceId:b.id,path:e,chunk:c,vector:a?JSON.stringify(a):null}),f++}return{ok:!0,chunks:f+=await u(a),embedded:j}}async function u(a){let[b]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));if(!b)return 0;await g.db.delete(h.ragChunk).where((0,e.Uo)((0,e.eq)(h.ragChunk.workspaceId,b.id),(0,e.mj)(h.ragChunk.path,"chat/%")));let c=await g.db.select().from(h.message).where((0,e.eq)(h.message.workspaceId,b.id)).orderBy((0,f.Y)(h.message.createdAt)),i=new Map;for(let a of c){let b=(a.text??"").replace(/\s+/g," ").trim();if(!b)continue;let c="operator"===a.fromKind?"Operator":"@"+(a.fromHandle??"agent"),d=i.get(a.channel);d||(d=[],i.set(a.channel,d)),d.push(`${c}: ${b}`)}let j=0;for(let[a,c]of i)for(let e of r(c.slice(-400).join("\n"))){let c=await q(e);await g.db.insert(h.ragChunk).values({id:(0,d.randomUUID)(),workspaceId:b.id,path:`chat/${a}`,chunk:e,vector:c?JSON.stringify(c):null}),j++}return j}let v=new Map;function w(a){let b=v.get(a);b&&clearTimeout(b),v.set(a,setTimeout(()=>{v.delete(a),u(a).catch(()=>{})},6e3))}async function x(a,b){if(!p(b))return;let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));if(c)for(let f of(await g.db.delete(h.ragChunk).where((0,e.Uo)((0,e.eq)(h.ragChunk.workspaceId,c.id),(0,e.eq)(h.ragChunk.path,b))),r((0,i.sL)(a,b)??""))){let a=await q(f);await g.db.insert(h.ragChunk).values({id:(0,d.randomUUID)(),workspaceId:c.id,path:b,chunk:f,vector:a?JSON.stringify(a):null})}}async function y(a,b){if(!p(b))return;let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));c&&await g.db.delete(h.ragChunk).where((0,e.Uo)((0,e.eq)(h.ragChunk.workspaceId,c.id),(0,e.eq)(h.ragChunk.path,b)))}let z=new Map;function A(a,b){if(!p(b))return;let c=a+"::"+b,d=z.get(c);d&&clearTimeout(d),z.set(c,setTimeout(()=>{z.delete(c),x(a,b).catch(()=>{})},2500))}},76862:(a,b,c)=>{c.d(b,{LV:()=>v,eA:()=>w,mg:()=>x});var d=c(52813),e=c(77598),f=c(63933),g=c(83550),h=c(80280),i=c(25533),j=c(95896),k=c(78698),l=c(64619);function m(a,b){let c=RegExp(`##\\s+${b}\\s*\\n([\\s\\S]*?)(?:\\n##\\s|$)`,"i");return a.match(c)?.[1].trim()??""}function n(a){return a.split("\n").find(a=>a.trim()&&!a.startsWith("#")&&!a.startsWith("**")&&!a.startsWith("---")&&!a.startsWith("|"))?.trim()??""}function o(a,b){let c=a.split("\n").find(a=>a.startsWith("# "));return c?c.slice(2).trim():b}async function p(a){let[b]=await h.db.select().from(i.workspace).where((0,f.eq)(i.workspace.orgId,a));return b??null}async function q(a,b,c){let d=(0,k.sL)(b,`.claude/skills/${c}.md`)??"",g=n(d),j=(d.match(/\*\*Trigger:\*\*\s*(.+)/)?.[1]??"").trim(),l=m(d,"Procedure")||"",[o]=await h.db.select().from(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,a),(0,f.eq)(i.skill.name,c)));o?await h.db.update(i.skill).set({summary:g,trigger:j,...l?{instructions:l}:{},indexed:"indexed"}).where((0,f.eq)(i.skill.id,o.id)):await h.db.insert(i.skill).values({id:(0,e.randomUUID)(),workspaceId:a,name:c,summary:g,trigger:j,instructions:l,native:!0,provisional:!1,indexed:"indexed"})}async function r(a,b,c){let d=(0,k.sL)(b,`.claude/agents/${c}/Agent.md`)??"";if(!d)return;let[e]=await h.db.select().from(i.agent).where((0,f.Uo)((0,f.eq)(i.agent.workspaceId,a),(0,f.eq)(i.agent.handle,c)));if(!e)return;let g=function(a){let b=a.match(/^---\n([\s\S]*?)\n---/);if(!b)return{};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");b>0&&(c[a.slice(0,b).trim()]=a.slice(b+1).trim())}return c}(d),j={identity:(d.match(/\*\*Identity:\*\*\s*(.+)/)?.[1]??"").trim(),ritual:(d.match(/\*\*Ritual:\*\*\s*(.+)/)?.[1]??"").trim(),tone:(d.match(/\*\*Tone:\*\*\s*(.+)/)?.[1]??"").trim()||(e.persona?.tone??""),systemPrompt:m(d,"System prompt")},l={...g.provider?{adapter:g.provider}:{},...g.model?{model:g.model}:{},...g.temperature?{temperature:parseFloat(g.temperature)}:{},...g.dailyCapUsd?{dailyCapUsd:parseFloat(g.dailyCapUsd)}:{},...g.tierFloor?{tierFloor:g.tierFloor}:{},...g.reportsTo&&"null"!==g.reportsTo?{reportsTo:g.reportsTo}:{},persona:j};for(let d of(await h.db.update(i.agent).set(l).where((0,f.eq)(i.agent.id,e.id)),[...((0,k.sL)(b,`.claude/agents/${c}/skills.md`)??"").matchAll(/`([a-z0-9-]+)`/g)].map(a=>a[1]))){let[b]=await h.db.select().from(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,a),(0,f.eq)(i.skill.name,d)));b&&await h.db.insert(i.agentSkill).values({agentId:e.id,skillId:b.id}).onConflictDoNothing()}}async function s(a,b,c){let d=c.split("/").pop()??c;if("README.md"===d)return;let g=(0,k.sL)(b,c)??"",j=o(g,d),[l]=await h.db.select().from(i.report).where((0,f.Uo)((0,f.eq)(i.report.workspaceId,a),(0,f.eq)(i.report.title,j)));l?await h.db.update(i.report).set({body:g}).where((0,f.eq)(i.report.id,l.id)):await h.db.insert(i.report).values({id:(0,e.randomUUID)(),workspaceId:a,title:j,type:"Report",body:g})}async function t(a,b,c,d){let g=(0,k.sL)(b,c)??"",j=o(g,c.split("/").pop()??c),l=n(g),[m]=await h.db.select().from(i.docIndex).where((0,f.Uo)((0,f.eq)(i.docIndex.workspaceId,a),(0,f.eq)(i.docIndex.path,c)));m?await h.db.update(i.docIndex).set({title:j,summary:l,updatedAt:new Date}).where((0,f.eq)(i.docIndex.id,m.id)):await h.db.insert(i.docIndex).values({id:(0,e.randomUUID)(),workspaceId:a,kind:d,path:c,title:j,summary:l})}function u(a){(a.startsWith(".claude/skills")||a.endsWith("/skills.md"))&&(0,g.revalidatePath)("/skills"),a.startsWith(".claude/agents")&&(0,g.revalidatePath)("/agents/[handle]","page"),a.startsWith("DOCS")&&(0,g.revalidatePath)("/docs"),a.startsWith("PO")&&(0,g.revalidatePath)("/pm"),a.startsWith("Reports")&&(0,g.revalidatePath)("/reports"),(0,g.revalidatePath)("/code")}async function v(a,b,c=!0){let d,e=await p(a);if(!e)return{ok:!1};let f=e.id;if((0,l.Nm)(a,b),d=b.match(/^\.claude\/skills\/(.+)\.md$/))await q(f,a,d[1]);else if(d=b.match(/^\.claude\/agents\/([^/]+)\/(?:Agent|skills)\.md$/))await r(f,a,d[1]);else if(/^Reports\/.+\.md$/.test(b))await s(f,a,b);else if(/^DOCS\/.+\.md$/.test(b))await t(f,a,b,"docs");else{if(!/^PO\/.+\.md$/.test(b))return{ok:!0};await t(f,a,b,"po")}return c&&u(b),{ok:!0}}async function w(a,b){let c,d=await p(a);if(!d)return{ok:!1};let e=d.id;return(0,l.SH)(a,b).catch(()=>{}),(c=b.match(/^\.claude\/skills\/(.+)\.md$/))?await h.db.delete(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,e),(0,f.eq)(i.skill.name,c[1]))):/^(?:DOCS|PO)\/.+\.md$/.test(b)&&await h.db.delete(i.docIndex).where((0,f.Uo)((0,f.eq)(i.docIndex.workspaceId,e),(0,f.eq)(i.docIndex.path,b))),u(b),{ok:!0}}async function x(a=!0){let{org:b}=await (0,j.nP)(),c=b.id;for(let a of(0,k.Ci)(c,".claude/skills"))!a.isDir&&a.name.endsWith(".md")&&await v(c,a.path,!1);for(let a of(0,k.Ci)(c,".claude/agents"))a.isDir&&await v(c,`${a.path}/Agent.md`,!1);for(let a of["DOCS","PO","Reports"])for(let b of(0,k.Ci)(c,a))!b.isDir&&b.name.endsWith(".md")&&await v(c,b.path,!1);return a&&(0,g.revalidatePath)("/","layout"),{ok:!0}}(0,c(29635).D)([v,w,x]),(0,d.A)(v,"70a46437d24a869b795096850f1c425b6a005ed18d",null),(0,d.A)(w,"6093a9352b08d51ca6703d0f62ffba3775e442c3d4",null),(0,d.A)(x,"401995b3fc3b6a1a216db6da852e8c4f490c594646",null)}};