cognova 0.2.11 → 0.2.13

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 (290) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{DwY7rCd_.js → -HePz7lp.js} +2 -2
  3. package/.output/public/_nuxt/{CY-cjAwJ.js → 4ALIM-zZ.js} +1 -1
  4. package/.output/public/_nuxt/{DXdwpJ-I.js → 5sUbkh_6.js} +2 -2
  5. package/.output/public/_nuxt/{_cy8R3nk.js → 6bB8Ev7a.js} +1 -1
  6. package/.output/public/_nuxt/{1zUTf4AP.js → 7rT1DCe2.js} +1 -1
  7. package/.output/public/_nuxt/{vIOxcXKR.js → 9O1MXkck.js} +1 -1
  8. package/.output/public/_nuxt/{7oCGSglN.js → 9kAKMaPC.js} +1 -1
  9. package/.output/public/_nuxt/{CVqlefTY.js → B-DMcEU9.js} +1 -1
  10. package/.output/public/_nuxt/{BS2ZNXI1.js → B0nzD8Sk.js} +1 -1
  11. package/.output/public/_nuxt/B2PqR2Vu.js +1 -0
  12. package/.output/public/_nuxt/{Db4KMnt8.js → B2wI_pYg.js} +1 -1
  13. package/.output/public/_nuxt/{zq-a1TeT.js → B5FuOh7E.js} +1 -1
  14. package/.output/public/_nuxt/B6om4MW2.js +1 -0
  15. package/.output/public/_nuxt/{Dya5oK8u.js → B7ikW4eF.js} +1 -1
  16. package/.output/public/_nuxt/{BYHCP8x7.js → B8DFEjxA.js} +1 -1
  17. package/.output/public/_nuxt/{6boMs_nF.js → B9kWNcU7.js} +1 -1
  18. package/.output/public/_nuxt/BAZ8sewA.js +1 -0
  19. package/.output/public/_nuxt/{BXuWCWsJ.js → BCPwL4ma.js} +1 -1
  20. package/.output/public/_nuxt/{DY3uK7wM.js → BCrlmHh_.js} +1 -1
  21. package/.output/public/_nuxt/{BR8bKz8h.js → BD-AFJWW.js} +1 -1
  22. package/.output/public/_nuxt/{BtHQ1T0f.js → BGcQMReV.js} +1 -1
  23. package/.output/public/_nuxt/{BDyn4ApB.js → BL1mkqgd.js} +3 -3
  24. package/.output/public/_nuxt/BNJJSRKh.js +1 -0
  25. package/.output/public/_nuxt/{D8lwrAYS.js → BNeeERBt.js} +1 -1
  26. package/.output/public/_nuxt/{CVFwOzbl.js → BSJb5amZ.js} +1 -1
  27. package/.output/public/_nuxt/{CEnSeCqn.js → BSsaE9Db.js} +1 -1
  28. package/.output/public/_nuxt/{DzA58_Lm.js → BVO3XpHT.js} +1 -1
  29. package/.output/public/_nuxt/{CuxrHsu-.js → BWuL2CzO.js} +1 -1
  30. package/.output/public/_nuxt/{0yk-pS3R.js → B_9zJTqe.js} +1 -1
  31. package/.output/public/_nuxt/{DcJbYLTp.js → B_Lr1vlV.js} +1 -1
  32. package/.output/public/_nuxt/{CZoEPC_Q.js → Bc8bTnkd.js} +3 -3
  33. package/.output/public/_nuxt/{BKXg-alD.js → BghuwIGa.js} +1 -1
  34. package/.output/public/_nuxt/{PP_4ebzl.js → BjsKx597.js} +1 -1
  35. package/.output/public/_nuxt/{DuvzM-P1.js → Bl0qBhCG.js} +1 -1
  36. package/.output/public/_nuxt/{B_wilgcd.js → Bl43dkDq.js} +1 -1
  37. package/.output/public/_nuxt/{JbHa4oXq.js → BnMTFF5R.js} +1 -1
  38. package/.output/public/_nuxt/{CY-QVcA5.js → BrX-PnSK.js} +2 -2
  39. package/.output/public/_nuxt/{DYbZBZet.js → BtV7oNn3.js} +1 -1
  40. package/.output/public/_nuxt/{apYB9dr5.js → BvFYnRMR.js} +1 -1
  41. package/.output/public/_nuxt/{x6FRJ5ac.js → BvTUBUNN.js} +1 -1
  42. package/.output/public/_nuxt/{wO6z2ugJ.js → ByLsRRoQ.js} +1 -1
  43. package/.output/public/_nuxt/{DC4idAGt.js → C1LcEMwB.js} +1 -1
  44. package/.output/public/_nuxt/{YX8avsvq.js → C2IiXp9N.js} +2 -2
  45. package/.output/public/_nuxt/{fbyIeNkc.js → C6OSRpRd.js} +1 -1
  46. package/.output/public/_nuxt/{3jQMk_5H.js → C796kFT9.js} +1 -1
  47. package/.output/public/_nuxt/{DEd2xVbS.js → C7m9zGMG.js} +1 -1
  48. package/.output/public/_nuxt/C8AtdrMH.js +1 -0
  49. package/.output/public/_nuxt/CAWbHTgy.js +1 -0
  50. package/.output/public/_nuxt/{ixlNW2So.js → CFmvNggn.js} +1 -1
  51. package/.output/public/_nuxt/{gTrVszwd.js → CGplHfmR.js} +1 -1
  52. package/.output/public/_nuxt/CJPrV25_.js +1 -0
  53. package/.output/public/_nuxt/{U1MWjQMi.js → CKKEWapF.js} +1 -1
  54. package/.output/public/_nuxt/{C6qKcgOY.js → CLkkdThv.js} +22 -22
  55. package/.output/public/_nuxt/CNjv28J2.js +1 -0
  56. package/.output/public/_nuxt/{BLnYhy_t.js → CRRw0Thu.js} +1 -1
  57. package/.output/public/_nuxt/{10_wwHSz.js → CT8s4rqa.js} +1 -1
  58. package/.output/public/_nuxt/{C27WoGNZ.js → CZSOrxUy.js} +1 -1
  59. package/.output/public/_nuxt/{DNP5E1bC.js → CaNEL9JC.js} +5 -5
  60. package/.output/public/_nuxt/{DhuOKJda.js → CbTLg9oX.js} +1 -1
  61. package/.output/public/_nuxt/CfCXpVn5.js +1 -0
  62. package/.output/public/_nuxt/{C9WIgRRL.js → ChmNlvWR.js} +1 -1
  63. package/.output/public/_nuxt/{t8aDAkZ5.js → CiNxIhaq.js} +1 -1
  64. package/.output/public/_nuxt/{E3rXPwU8.js → Ck0QYdxe.js} +1 -1
  65. package/.output/public/_nuxt/{DUVzIl3o.js → Ckb0pu4-.js} +1 -1
  66. package/.output/public/_nuxt/{vScW1Zgm.js → CkwPRs1D.js} +1 -1
  67. package/.output/public/_nuxt/CmEJg8C6.js +2 -0
  68. package/.output/public/_nuxt/{CTCcEJU3.js → CmL_vMJD.js} +1 -1
  69. package/.output/public/_nuxt/{Bciqk4dX.js → Cq8zPxkT.js} +1 -1
  70. package/.output/public/_nuxt/{D8M722pn.js → CseYuM6E.js} +1 -1
  71. package/.output/public/_nuxt/{D0ifH682.js → CxRnB4NC.js} +1 -1
  72. package/.output/public/_nuxt/{CVdCqaby.js → D0zMyG8n.js} +1 -1
  73. package/.output/public/_nuxt/{DhI5cA_n.js → D12qPplu.js} +1 -1
  74. package/.output/public/_nuxt/{Beom-INj.js → D1XYB283.js} +1 -1
  75. package/.output/public/_nuxt/{BUghTae1.js → D2NxqyzW.js} +1 -1
  76. package/.output/public/_nuxt/{CZRnNmU8.js → D5xyrvFu.js} +1 -1
  77. package/.output/public/_nuxt/{2dNDtTiv.js → D6tVZcRs.js} +3 -3
  78. package/.output/public/_nuxt/{EgKnQnf-.js → D7N3EZ-I.js} +1 -1
  79. package/.output/public/_nuxt/{C5R5QaCA.js → D8iBB0Py.js} +1 -1
  80. package/.output/public/_nuxt/{XCjS70z4.js → D8oIH8m1.js} +1 -1
  81. package/.output/public/_nuxt/{BA_pRWwX.js → DB2zZev7.js} +1 -1
  82. package/.output/public/_nuxt/{Cl-LOSDV.js → DBrOAqkm.js} +1 -1
  83. package/.output/public/_nuxt/{DO9SFIh1.js → DDXDFweK.js} +1 -1
  84. package/.output/public/_nuxt/{B93pdGAW.js → DFZkCmLQ.js} +1 -1
  85. package/.output/public/_nuxt/{CLfF6dSn.js → DFpmIy6J.js} +1 -1
  86. package/.output/public/_nuxt/{BfcLZ_fC.js → DKZmgHNU.js} +1 -1
  87. package/.output/public/_nuxt/{CPutXj8l.js → DNcOC5zj.js} +1 -1
  88. package/.output/public/_nuxt/{BHtY0l0l.js → DQhm-UPG.js} +1 -1
  89. package/.output/public/_nuxt/{C2FxZbO_.js → DR8tGJhL.js} +1 -1
  90. package/.output/public/_nuxt/{D4UJwDQJ.js → DVAEVTjy.js} +1 -1
  91. package/.output/public/_nuxt/{2nOqGUPr.js → DVqrPkCJ.js} +1 -1
  92. package/.output/public/_nuxt/DWZ9ieYa.js +1 -0
  93. package/.output/public/_nuxt/{nnQqD5pb.js → DWj6VsZv.js} +1 -1
  94. package/.output/public/_nuxt/{C2vq6Te8.js → DXJ9PxCv.js} +1 -1
  95. package/.output/public/_nuxt/{CobqYwkp.js → D_ziPROx.js} +1 -1
  96. package/.output/public/_nuxt/{GtEM7xVU.js → Da2vwoYG.js} +1 -1
  97. package/.output/public/_nuxt/{Cc-2ziaZ.js → Ddz3HcBB.js} +1 -1
  98. package/.output/public/_nuxt/{Di-Nc75e.js → DgYei0bK.js} +1 -1
  99. package/.output/public/_nuxt/{DQh6I9z9.js → Di_3GV_R.js} +1 -1
  100. package/.output/public/_nuxt/{ByYh0uRg.js → Djog1f_e.js} +1 -1
  101. package/.output/public/_nuxt/{C4mwL7SE.js → Dkap2-Pj.js} +2 -2
  102. package/.output/public/_nuxt/{D5q8SnqE.js → DlJe_sHk.js} +1 -1
  103. package/.output/public/_nuxt/DlPOQpH_.js +1 -0
  104. package/.output/public/_nuxt/{DTGenhcA.js → DmYWMtVA.js} +1 -1
  105. package/.output/public/_nuxt/DmxKU7sH.js +1 -0
  106. package/.output/public/_nuxt/{DtjjnHnt.js → DowkFZ2V.js} +1 -1
  107. package/.output/public/_nuxt/{0NJ3PaRM.js → DsodHRrQ.js} +1 -1
  108. package/.output/public/_nuxt/{Bk6JUtIo.js → DuzpliIL.js} +1 -1
  109. package/.output/public/_nuxt/DvHS7_h2.js +1 -0
  110. package/.output/public/_nuxt/DwSY6_2U.js +1 -0
  111. package/.output/public/_nuxt/{Djs0Tlpa.js → DypJaSm-.js} +1 -1
  112. package/.output/public/_nuxt/{C71_a1IX.js → DzKaXH6P.js} +1 -1
  113. package/.output/public/_nuxt/{CBTkrk2M.js → FK-jSuOT.js} +1 -1
  114. package/.output/public/_nuxt/{ILEvizzp.js → Fc2JsQt4.js} +1 -1
  115. package/.output/public/_nuxt/{BIXrSYwR.js → IYCBGuRS.js} +1 -1
  116. package/.output/public/_nuxt/{JX1oqJI9.js → LRO7YHoH.js} +1 -1
  117. package/.output/public/_nuxt/{Kw0zy3FG.js → NrRzUJNY.js} +1 -1
  118. package/.output/public/_nuxt/{DJTCT0bl.js → OeVS0Rsb.js} +1 -1
  119. package/.output/public/_nuxt/{BmOtR1wX.js → OlF0QnKF.js} +1 -1
  120. package/.output/public/_nuxt/{DTAStixR.js → QuAoqY7t.js} +1 -1
  121. package/.output/public/_nuxt/{8q5NepGW.js → RlXHkmOd.js} +2 -2
  122. package/.output/public/_nuxt/{rfGRTJJW.js → TxMdabnL.js} +1 -1
  123. package/.output/public/_nuxt/{CZVzFlpI.js → WZnvL9Dh.js} +1 -1
  124. package/.output/public/_nuxt/ZvG7a1W3.js +1 -0
  125. package/.output/public/_nuxt/{N5XtbYVD.js → aPNZBVrG.js} +1 -1
  126. package/.output/public/_nuxt/builds/latest.json +1 -1
  127. package/.output/public/_nuxt/builds/meta/495aca73-bfa5-456e-b96a-f02e009c72d3.json +1 -0
  128. package/.output/public/_nuxt/entry.C_udkZt9.css +1 -0
  129. package/.output/public/_nuxt/{D_4LPm1U.js → evY81hM3.js} +1 -1
  130. package/.output/public/_nuxt/{DzGy77Vr.js → h_bXa-f2.js} +1 -1
  131. package/.output/public/_nuxt/{D9nmzBAw.js → i6QBzaEi.js} +1 -1
  132. package/.output/public/_nuxt/{BGgwYWjH.js → iTVKJ1kw.js} +1 -1
  133. package/.output/public/_nuxt/{Um1vPiAz.js → j92uR3uR.js} +1 -1
  134. package/.output/public/_nuxt/jdUkeAj_.js +1 -0
  135. package/.output/public/_nuxt/{BmVLxnDU.js → jeRvcMHU.js} +1 -1
  136. package/.output/public/_nuxt/{SrncdpaW.js → kuv0zpKq.js} +1 -1
  137. package/.output/public/_nuxt/{DfF81NlA.js → l3lKQs7b.js} +1 -1
  138. package/.output/public/_nuxt/{4K03TkGA.js → pdYvpiud.js} +3 -3
  139. package/.output/public/_nuxt/{C39dQ88F.js → qIgZ7OXa.js} +1 -1
  140. package/.output/public/_nuxt/{DS2wStH1.js → qcVwZv8e.js} +1 -1
  141. package/.output/public/_nuxt/{g5MjDvm5.js → ru8fqqWs.js} +1 -1
  142. package/.output/public/_nuxt/{CQqCBrXj.js → sBzyvWMJ.js} +1 -1
  143. package/.output/public/_nuxt/{D3AZaldL.js → sgmhgpCS.js} +1 -1
  144. package/.output/public/_nuxt/{ChcO9s3o.js → y2jv0da-.js} +1 -1
  145. package/.output/public/_nuxt/{Dn5a-guE.js → yyS4-kAX.js} +1 -1
  146. package/.output/public/_nuxt/zIoBLBHF.js +1 -0
  147. package/.output/public/_nuxt/zpazwPgx.js +1 -0
  148. package/.output/server/chunks/build/CodeIcon-CWD5HcV7.mjs +1 -1
  149. package/.output/server/chunks/build/DropdownMenu-BBrV9nXz.mjs +1 -1
  150. package/.output/server/chunks/build/EditorToolbar-DIfb5arC.mjs +1 -1
  151. package/.output/server/chunks/build/Img-CWLmvN1t.mjs +1 -1
  152. package/.output/server/chunks/build/MDC-Dx0YPDhe.mjs +1 -1
  153. package/.output/server/chunks/build/Select-BB1oLrCD.mjs +1 -1
  154. package/.output/server/chunks/build/SelectMenu-DPssg6zD.mjs +1 -1
  155. package/.output/server/chunks/build/Table-DCwTlhCj.mjs +1 -1
  156. package/.output/server/chunks/build/Tooltip-TRyl6dje.mjs +1 -1
  157. package/.output/server/chunks/build/Tree-DUhXKd8y.mjs +1 -1
  158. package/.output/server/chunks/build/_uuid_-DfJaumTE.mjs +1 -1
  159. package/.output/server/chunks/build/{chat-CR3JIVEq.mjs → chat-m4-n9vC6.mjs} +516 -14
  160. package/.output/server/chunks/build/chat-m4-n9vC6.mjs.map +1 -0
  161. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  162. package/.output/server/chunks/build/cookie-C_iulBi6.mjs +1 -1
  163. package/.output/server/chunks/build/dashboard-CiVTAZuF.mjs +1 -1
  164. package/.output/server/chunks/build/docs-ChGwOPg5.mjs +1 -1
  165. package/.output/server/chunks/build/fetch-BB7Qzkwe.mjs +1 -1
  166. package/.output/server/chunks/build/index-CxDxc9fm.mjs +1 -1
  167. package/.output/server/chunks/build/server.mjs +2 -2
  168. package/.output/server/chunks/build/settings-B2KXoGcz.mjs +1 -1
  169. package/.output/server/chunks/build/useNotificationBus-BG5JNQf1.mjs +1 -1
  170. package/.output/server/chunks/build/view-n2sYa4Zh.mjs +1 -1
  171. package/.output/server/chunks/nitro/nitro.mjs +882 -866
  172. package/.output/server/chunks/routes/_ws/chat.mjs +40 -6
  173. package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
  174. package/.output/server/chunks/routes/api/bridges/_id/contacts.get.mjs +84 -0
  175. package/.output/server/chunks/routes/api/bridges/_id/contacts.get.mjs.map +1 -0
  176. package/.output/server/chunks/routes/api/bridges/_id/send.post.mjs +70 -0
  177. package/.output/server/chunks/routes/api/bridges/_id/send.post.mjs.map +1 -0
  178. package/.output/server/chunks/routes/api/bridges/context.get.mjs +19 -18
  179. package/.output/server/chunks/routes/api/bridges/context.get.mjs.map +1 -1
  180. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +1 -1
  181. package/.output/server/chunks/routes/api/conversations/_id_.get.mjs +1 -1
  182. package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +1 -1
  183. package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -1
  184. package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -1
  185. package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -1
  186. package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -1
  187. package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -1
  188. package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -1
  189. package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -1
  190. package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -1
  191. package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -1
  192. package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -1
  193. package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -1
  194. package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -1
  195. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/home.get.mjs +1 -1
  197. package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -1
  198. package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -1
  199. package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -1
  200. package/.output/server/chunks/routes/api/index.get10.mjs +1 -1
  201. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  202. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  203. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  204. package/.output/server/chunks/routes/api/index.get6.mjs +1 -1
  205. package/.output/server/chunks/routes/api/index.get7.mjs +1 -1
  206. package/.output/server/chunks/routes/api/index.get8.mjs +1 -1
  207. package/.output/server/chunks/routes/api/index.get9.mjs +1 -1
  208. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  209. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  210. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  211. package/.output/server/chunks/routes/api/index.put.mjs +1 -1
  212. package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -1
  213. package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -1
  214. package/.output/server/chunks/routes/api/memory/extract.post.mjs +1 -1
  215. package/.output/server/chunks/routes/api/memory/search.get.mjs +1 -1
  216. package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -1
  217. package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -1
  218. package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -1
  219. package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -1
  220. package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -1
  221. package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -1
  222. package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -1
  223. package/.output/server/chunks/routes/api/skills/_name/delete.post.mjs +1 -1
  224. package/.output/server/chunks/routes/api/skills/_name/export.get.mjs +1 -1
  225. package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs +1 -1
  226. package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs +1 -1
  228. package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs +1 -1
  229. package/.output/server/chunks/routes/api/skills/_name/index.get.mjs +1 -1
  230. package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs +1 -1
  231. package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs +1 -1
  232. package/.output/server/chunks/routes/api/skills/create.post.mjs +1 -1
  233. package/.output/server/chunks/routes/api/skills/generate.post.mjs +1 -1
  234. package/.output/server/chunks/routes/api/skills/import.post.mjs +1 -1
  235. package/.output/server/chunks/routes/api/skills/index.get.mjs +1 -1
  236. package/.output/server/chunks/routes/api/skills/index.get2.mjs +1 -1
  237. package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs +1 -1
  238. package/.output/server/chunks/routes/api/skills/library/install.post.mjs +1 -1
  239. package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -1
  240. package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -1
  241. package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -1
  242. package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -1
  243. package/.output/server/chunks/routes/api/usage/stats.get.mjs +1 -1
  244. package/.output/server/chunks/routes/api/user/email.patch.mjs +1 -1
  245. package/.output/server/chunks/routes/api/webhooks/bluebubbles.post.mjs +1 -1
  246. package/.output/server/chunks/routes/api/webhooks/telegram.post.mjs +1 -1
  247. package/.output/server/chunks/routes/notifications.mjs +1 -1
  248. package/.output/server/chunks/routes/renderer.mjs +1 -1
  249. package/.output/server/chunks/routes/terminal.mjs +1 -1
  250. package/.output/server/index.mjs +1 -1
  251. package/.output/server/package.json +1 -1
  252. package/Claude/skills/_lib/api.py +3 -2
  253. package/Claude/skills/bridge/SKILL.md +25 -1
  254. package/Claude/skills/bridge/bridge.py +64 -0
  255. package/app/components/chat/ChatInput.vue +133 -5
  256. package/app/components/chat/MessageBubble.vue +188 -6
  257. package/app/composables/useAttachments.ts +196 -0
  258. package/app/composables/useChat.ts +14 -2
  259. package/app/pages/chat.vue +4 -2
  260. package/package.json +1 -1
  261. package/server/api/bridges/[id]/contacts.get.ts +57 -0
  262. package/server/api/bridges/[id]/send.post.ts +40 -0
  263. package/server/api/bridges/context.get.ts +19 -18
  264. package/server/bridge/adapters/imessage.ts +9 -2
  265. package/server/bridge/responder.ts +3 -3
  266. package/server/routes/_ws/chat.ts +61 -7
  267. package/server/utils/chat-session-manager.ts +20 -2
  268. package/shared/types/index.ts +27 -1
  269. package/.output/public/_nuxt/BH0QDWEm.js +0 -1
  270. package/.output/public/_nuxt/BK8S2ony.js +0 -1
  271. package/.output/public/_nuxt/BZrSPX0S.js +0 -1
  272. package/.output/public/_nuxt/BaZwjF8o.js +0 -1
  273. package/.output/public/_nuxt/BkfI94R8.js +0 -1
  274. package/.output/public/_nuxt/C3NST0BU.js +0 -1
  275. package/.output/public/_nuxt/CKxSHyww.js +0 -1
  276. package/.output/public/_nuxt/CSKJ-Ahh.js +0 -1
  277. package/.output/public/_nuxt/CWyMCJQH.js +0 -1
  278. package/.output/public/_nuxt/CYPO5o_C.js +0 -1
  279. package/.output/public/_nuxt/CqNwHCpo.js +0 -1
  280. package/.output/public/_nuxt/CwPdIZ9J.js +0 -1
  281. package/.output/public/_nuxt/D5jZq8b3.js +0 -1
  282. package/.output/public/_nuxt/DH4YkDAi.js +0 -1
  283. package/.output/public/_nuxt/DPklr_tJ.js +0 -2
  284. package/.output/public/_nuxt/DQM4eBdt.js +0 -1
  285. package/.output/public/_nuxt/DUAAXJ6Q.js +0 -1
  286. package/.output/public/_nuxt/DmmdPt_5.js +0 -1
  287. package/.output/public/_nuxt/H6JbrRBU.js +0 -1
  288. package/.output/public/_nuxt/builds/meta/515be38f-7222-4e4b-80cb-cef7594b1834.json +0 -1
  289. package/.output/public/_nuxt/entry.NKPfH2kE.css +0 -1
  290. package/.output/server/chunks/build/chat-CR3JIVEq.mjs.map +0 -1
@@ -1 +0,0 @@
1
- import{a as j,e as S,q as it,a2 as dt,G as c,R as s,ab as a,aj as U,ak as A,a9 as h,ae as k,U as p,C as o,ao as G,N as q,c as x,am as T,Q as b,S as l,a4 as w,a3 as D,bI as H,bg as ct,bl as rt,f as M,bJ as ut,ag as mt,T as n,_ as pt,W as ft,aa as g}from"./2dNDtTiv.js";import{_ as _t,c as vt}from"./BHtY0l0l.js";import{_ as gt}from"./rfGRTJJW.js";import{d as yt,_ as xt,u as ht}from"./BLnYhy_t.js";import{_ as bt}from"./JbHa4oXq.js";import{_ as kt}from"./YX8avsvq.js";import{_ as wt}from"./BmVLxnDU.js";import{p as Ct}from"./BDyn4ApB.js";import{u as $t}from"./DzGy77Vr.js";import{u as Ut}from"./BKXg-alD.js";import{u as Tt}from"./CVqlefTY.js";import"./Vcq4gwWv.js";import"./88opOQSr.js";import"./iik6CYzq.js";import"./t8aDAkZ5.js";import"./CqkleIqs.js";import"./DEd2xVbS.js";const zt={key:0,class:"space-y-1"},Bt=["onClick"],Ft=["onClick"],St={key:1,class:"text-sm text-dimmed italic"},At=j({__name:"ViewToc",props:{links:{}},setup(f){const i=S(null);function u(_){const d=document.getElementById(_);d&&d.scrollIntoView({behavior:"smooth",block:"start"})}return it(()=>{const _=document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]"),d=new IntersectionObserver(t=>{for(const m of t)if(m.isIntersecting){i.value=m.target.id;break}},{rootMargin:"-80px 0px -80% 0px"});_.forEach(t=>d.observe(t)),dt(()=>d.disconnect())}),(_,d)=>f.links.length?(s(),c("nav",zt,[d[0]||(d[0]=a("p",{class:"text-sm font-semibold text-muted mb-3"}," On this page ",-1)),(s(!0),c(U,null,A(f.links,t=>(s(),c(U,{key:t.id},[a("button",{type:"button",class:p(["block w-full text-left text-sm py-1 hover:text-primary transition-colors",[o(i)===t.id?"text-primary font-medium":"text-dimmed",t.depth===2&&"pl-0",t.depth===3&&"pl-4",t.depth>=4&&"pl-8"]]),onClick:m=>u(t.id)},k(t.text),11,Bt),t.children?.length?(s(!0),c(U,{key:0},A(t.children,m=>(s(),c("button",{key:m.id,type:"button",class:p(["block w-full text-left text-sm py-1 hover:text-primary transition-colors pl-4",o(i)===m.id?"text-primary font-medium":"text-dimmed"]),onClick:E=>u(m.id)},k(m.text),11,Ft))),128)):h("",!0)],64))),128))])):(s(),c("div",St," No headings found "))}}),qt=Object.assign(At,{__name:"ViewToc"}),Dt={slots:{root:"hidden overflow-y-auto lg:block lg:max-h-[calc(100vh-var(--ui-header-height))] lg:sticky lg:top-(--ui-header-height) py-8 lg:ps-4 lg:-ms-4 lg:pe-6.5",container:"relative",top:"sticky -top-8 -mt-8 pointer-events-none z-[1]",topHeader:"h-8 bg-default -mx-4 px-4",topBody:"bg-default relative pointer-events-auto flex flex-col -mx-4 px-4",topFooter:"h-8 bg-gradient-to-b from-default -mx-4 px-4"}},Et={__name:"UPageAside",props:{as:{type:null,required:!1,default:"aside"},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(f){const i=f,u=G(),_=q(),d=x(()=>T({extend:T(Dt),..._.ui?.pageAside||{}})());return(t,m)=>(s(),b(o(D),{as:f.as,"data-slot":"root",class:p(d.value.root({class:[i.ui?.root,i.class]}))},{default:l(()=>[a("div",{"data-slot":"container",class:p(d.value.container({class:i.ui?.container}))},[u.top?(s(),c("div",{key:0,"data-slot":"top",class:p(d.value.top({class:i.ui?.top}))},[a("div",{"data-slot":"topHeader",class:p(d.value.topHeader({class:i.ui?.topHeader}))},null,2),a("div",{"data-slot":"topBody",class:p(d.value.topBody({class:i.ui?.topBody}))},[w(t.$slots,"top")],2),a("div",{"data-slot":"topFooter",class:p(d.value.topFooter({class:i.ui?.topFooter}))},null,2)],2)):h("",!0),w(t.$slots,"default"),w(t.$slots,"bottom")],2)]),_:3},8,["as","class"]))}},It={base:"mt-8 pb-24 space-y-12"},Pt={__name:"UPageBody",props:{as:{type:null,required:!1},class:{type:null,required:!1}},setup(f){const i=f,u=q(),_=x(()=>T({extend:T(It),...u.ui?.pageBody||{}}));return(d,t)=>(s(),b(o(D),{as:f.as,class:p(_.value({class:i.class}))},{default:l(()=>[w(d.$slots,"default")]),_:3},8,["as","class"]))}},Lt={slots:{root:"flex flex-col lg:grid lg:grid-cols-10 lg:gap-10",left:"lg:col-span-2",center:"lg:col-span-8",right:"lg:col-span-2 order-first lg:order-last"},variants:{left:{true:""},right:{true:""}},compoundVariants:[{left:!0,right:!0,class:{center:"lg:col-span-6"}},{left:!1,right:!1,class:{center:"lg:col-span-10"}}]},Nt={__name:"UPage",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(f){const i=f,u=G(),_=q(),d=x(()=>T({extend:T(Lt),..._.ui?.page||{}})({left:!!u.left,right:!!u.right}));return(t,m)=>(s(),b(o(D),{as:f.as,"data-slot":"root",class:p(d.value.root({class:[i.ui?.root,i.class]}))},{default:l(()=>[u.left?(s(),b(o(H),{key:0,"data-slot":"left",class:p(d.value.left({class:i.ui?.left}))},{default:l(()=>[w(t.$slots,"left")]),_:3},8,["class"])):h("",!0),a("div",{"data-slot":"center",class:p(d.value.center({class:i.ui?.center}))},[w(t.$slots,"default")],2),u.right?(s(),b(o(H),{key:1,"data-slot":"right",class:p(d.value.right({class:i.ui?.right}))},{default:l(()=>[w(t.$slots,"right")]),_:3},8,["class"])):h("",!0)]),_:3},8,["as","class"]))}},Vt=vt(gt),Ot={key:0,class:"py-24 text-center"},Rt={key:1,class:"py-24 text-center"},Ht={key:2,class:"py-24 text-center"},Mt={key:3,class:"py-24 text-center"},jt={class:"flex items-center justify-between mb-4"},Gt={class:"text-2xl font-bold"},Jt={class:"flex items-center gap-2"},Qt={class:"border border-default rounded-lg overflow-hidden"},Wt={class:"flex items-center justify-between mb-4"},Kt={class:"text-2xl font-bold"},Xt={class:"flex items-center gap-2"},Yt={class:"flex flex-wrap items-center gap-4 text-sm text-dimmed mb-6"},Zt={key:0,class:"flex items-center gap-1.5"},te={class:"flex items-center gap-1.5"},ee={key:1,class:"flex items-center gap-1.5"},oe={key:2,class:"flex items-center gap-1.5"},se={class:"flex gap-1"},ae={key:0,class:"border border-default rounded-lg overflow-hidden"},ne={class:"prose prose-primary dark:prose-invert max-w-none"},we=j({__name:"[uuid]",async setup(f){let i,u;const _=ct(),d=x(()=>_.params.uuid),{data:t,error:m,status:E}=([i,u]=rt(()=>$t(`/api/documents/${d.value}/public`,"$x-U1b672rk")),i=await i,u(),i),B=S([]);M(()=>t.value?.data?.content,async r=>{if(r)try{const e=await Ct(r);B.value=e.toc?.links||[]}catch(e){console.error("Failed to parse markdown for TOC:",e),B.value=[]}},{immediate:!0});const J=x(()=>m.value?.statusCode===404),Q=x(()=>m.value?.statusCode===403),W=x(()=>t.value?.data?.document?.fileType==="markdown"),K=x(()=>t.value?.data?.document?.fileType==="text"),X=x(()=>t.value?.data?.document?.fileType==="binary"),Y=x(()=>yt(t.value?.data?.document?.path||""));ut({title:()=>t.value?.data?.document?.title||"Document",description:"Shared document from Cognova",robots:()=>t.value?.data?.document?.shareType==="public"?"index, follow":"noindex, nofollow"});const{isAuthenticated:I}=Ut(),{viewSourceMode:P}=Tt(),C=S(P.value);M(C,r=>P.value=r);const L=mt(),{copy:Z}=ht();async function N(){const r=t.value?.data?.content;if(!r)return;await Z(r)?L.add({title:"Copied to clipboard",icon:"i-lucide-check",color:"success"}):L.add({title:"Failed to copy",icon:"i-lucide-x",color:"error"})}function V(){const r=t.value?.data?.content,e=t.value?.data?.document?.path;if(!r||!e)return;const y=e.split("/").pop()||"document.txt",v=new Blob([r],{type:"text/plain;charset=utf-8"}),z=URL.createObjectURL(v),$=document.createElement("a");$.href=z,$.download=y,$.click(),URL.revokeObjectURL(z)}function O(r){return r?new Date(r).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):""}return(r,e)=>{const y=pt,v=ft,z=Vt,$=xt,R=_t,tt=bt,et=qt,ot=Et,st=kt,at=Pt,nt=Nt,lt=wt;return s(),b(lt,{class:"py-8"},{default:l(()=>[o(J)?(s(),c("div",Ot,[n(y,{name:"i-lucide-file-x",class:"size-16 mx-auto mb-4 text-dimmed"}),e[2]||(e[2]=a("h1",{class:"text-2xl font-bold mb-2"}," Document Not Found ",-1)),e[3]||(e[3]=a("p",{class:"text-dimmed mb-6"}," This document doesn't exist or has been deleted. ",-1)),n(v,{to:"/",variant:"soft"},{default:l(()=>[...e[1]||(e[1]=[g(" Go Home ",-1)])]),_:1})])):o(Q)?(s(),c("div",Rt,[n(y,{name:"i-lucide-lock",class:"size-16 mx-auto mb-4 text-dimmed"}),e[5]||(e[5]=a("h1",{class:"text-2xl font-bold mb-2"}," Access Denied ",-1)),e[6]||(e[6]=a("p",{class:"text-dimmed mb-6"}," This document is not publicly shared. ",-1)),n(v,{to:"/login",variant:"soft"},{default:l(()=>[...e[4]||(e[4]=[g(" Sign In ",-1)])]),_:1})])):o(X)&&o(t)?.data?(s(),c("div",Ht,[n(y,{name:"i-lucide-file-warning",class:"size-16 mx-auto mb-4 text-dimmed"}),e[8]||(e[8]=a("h1",{class:"text-2xl font-bold mb-2"}," Cannot Preview This File ",-1)),e[9]||(e[9]=a("p",{class:"text-dimmed mb-6"}," Binary files cannot be previewed. ",-1)),n(v,{to:"/",variant:"soft"},{default:l(()=>[...e[7]||(e[7]=[g(" Go Home ",-1)])]),_:1})])):o(E)==="pending"?(s(),c("div",Mt,[n(y,{name:"i-lucide-loader-2",class:"size-8 mx-auto animate-spin text-dimmed"})])):o(K)&&o(t)?.data?.content?(s(),c(U,{key:4},[a("div",jt,[a("h1",Gt,k(o(t).data.document.title),1),a("div",Jt,[n(v,{icon:"i-lucide-copy",variant:"ghost",size:"sm",onClick:N},{default:l(()=>[...e[10]||(e[10]=[g(" Copy ",-1)])]),_:1}),n(v,{icon:"i-lucide-download",variant:"ghost",size:"sm",onClick:V},{default:l(()=>[...e[11]||(e[11]=[g(" Download ",-1)])]),_:1}),o(I)?(s(),b(v,{key:0,icon:"i-lucide-pencil",variant:"soft",size:"sm",to:`/docs?path=${encodeURIComponent(o(t).data.document.path)}`},{default:l(()=>[...e[12]||(e[12]=[g(" Edit ",-1)])]),_:1},8,["to"])):h("",!0)])]),a("div",Qt,[n(R,null,{fallback:l(()=>[n($,{class:"h-96"})]),default:l(()=>[n(z,{"model-value":o(t).data.content,language:o(Y),"read-only":!0,class:"max-h-[80vh]"},null,8,["model-value","language"])]),_:1})])],64)):o(W)&&o(t)?.data?.content?(s(),c(U,{key:5},[a("div",Wt,[a("h1",Kt,k(o(t).data.document.title),1),a("div",Xt,[n(v,{icon:o(C)?"i-lucide-eye":"i-lucide-code",variant:"ghost",size:"sm",onClick:e[0]||(e[0]=F=>C.value=!o(C))},{default:l(()=>[g(k(o(C)?"Preview":"Source"),1)]),_:1},8,["icon"]),n(v,{icon:"i-lucide-copy",variant:"ghost",size:"sm",onClick:N},{default:l(()=>[...e[13]||(e[13]=[g(" Copy ",-1)])]),_:1}),n(v,{icon:"i-lucide-download",variant:"ghost",size:"sm",onClick:V},{default:l(()=>[...e[14]||(e[14]=[g(" Download ",-1)])]),_:1}),o(I)?(s(),b(v,{key:0,icon:"i-lucide-pencil",variant:"soft",size:"sm",to:`/docs?path=${encodeURIComponent(o(t).data.document.path)}`},{default:l(()=>[...e[15]||(e[15]=[g(" Edit ",-1)])]),_:1},8,["to"])):h("",!0)])]),a("div",Yt,[o(t).data.document.creatorName?(s(),c("div",Zt,[n(y,{name:"i-lucide-user",class:"size-4"}),a("span",null,k(o(t).data.document.creatorName),1)])):h("",!0),a("div",te,[n(y,{name:"i-lucide-calendar",class:"size-4"}),a("span",null,k(O(o(t).data.document.createdAt)),1)]),o(t).data.document.modifiedAt?(s(),c("div",ee,[n(y,{name:"i-lucide-pencil",class:"size-4"}),a("span",null,"Updated "+k(O(o(t).data.document.modifiedAt)),1)])):h("",!0),o(t).data.document.tags?.length?(s(),c("div",oe,[n(y,{name:"i-lucide-tags",class:"size-4"}),a("div",se,[(s(!0),c(U,null,A(o(t).data.document.tags,F=>(s(),b(tt,{key:F,color:"neutral",variant:"subtle",size:"sm"},{default:l(()=>[g(k(F),1)]),_:2},1024))),128))])])):h("",!0)]),o(C)?(s(),c("div",ae,[n(R,null,{fallback:l(()=>[n($,{class:"h-96"})]),default:l(()=>[n(z,{"model-value":o(t).data.content,language:"markdown","read-only":!0,class:"max-h-[80vh]"},null,8,["model-value"])]),_:1})])):(s(),b(nt,{key:1},{left:l(()=>[n(ot,null,{default:l(()=>[n(et,{links:o(B)},null,8,["links"])]),_:1})]),default:l(()=>[n(at,null,{default:l(()=>[a("div",ne,[n(st,{value:o(t).data.content},null,8,["value"])])]),_:1})]),_:1}))],64)):h("",!0)]),_:1})}}});export{we as default};
@@ -1 +0,0 @@
1
- import{X as e}from"./2dNDtTiv.js";function a(r,u="reka"){return r||`${u}-${e?.()}`}export{a as u};
@@ -1 +0,0 @@
1
- import{a0 as S,a as O,aP as P,aQ as q,e as v,a1 as x,aR as B,Q as U,R as D,S as w,T as G,C as d,a3 as M,a4 as N}from"./2dNDtTiv.js";import{u as L}from"./BIXrSYwR.js";const V="rovingFocusGroup.onEntryFocus",k={bubbles:!1,cancelable:!0},K={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Y(e,o){return o!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function J(e,o,a){const t=Y(e.key,a);if(!(o==="vertical"&&["ArrowLeft","ArrowRight"].includes(t))&&!(o==="horizontal"&&["ArrowUp","ArrowDown"].includes(t)))return K[t]}function $(e,o=!1){const a=S();for(const t of e)if(t===a||(t.focus({preventScroll:o}),S()!==a))return}function W(e,o){return e.map((a,t)=>e[(o+t)%e.length])}const[X,Q]=B("RovingFocusGroup");var j=O({__name:"RovingFocusGroup",props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["entryFocus","update:currentTabStopId"],setup(e,{expose:o,emit:a}){const t=e,g=a,{loop:I,orientation:m,dir:T}=P(t),F=L(T),f=q(t,"currentTabStopId",g,{defaultValue:t.defaultCurrentTabStopId,passive:t.currentTabStopId===void 0}),i=v(!1),l=v(!1),p=v(0),{getItems:b,CollectionSlot:A}=x({isProvider:!0});function h(r){const s=!l.value;if(r.currentTarget&&r.target===r.currentTarget&&s&&!i.value){const u=new CustomEvent(V,k);if(r.currentTarget.dispatchEvent(u),g("entryFocus",u),!u.defaultPrevented){const c=b().map(n=>n.ref).filter(n=>n.dataset.disabled!==""),E=c.find(n=>n.getAttribute("data-active")===""),R=c.find(n=>n.getAttribute("data-highlighted")===""),_=c.find(n=>n.id===f.value),y=[E,R,_,...c].filter(Boolean);$(y,t.preventScrollOnEntryFocus)}}l.value=!1}function C(){setTimeout(()=>{l.value=!1},1)}return o({getItems:b}),Q({loop:I,dir:F,orientation:m,currentTabStopId:f,onItemFocus:r=>{f.value=r},onItemShiftTab:()=>{i.value=!0},onFocusableItemAdd:()=>{p.value++},onFocusableItemRemove:()=>{p.value--}}),(r,s)=>(D(),U(d(A),null,{default:w(()=>[G(d(M),{tabindex:i.value||p.value===0?-1:0,"data-orientation":d(m),as:r.as,"as-child":r.asChild,dir:d(F),style:{outline:"none"},onMousedown:s[0]||(s[0]=u=>l.value=!0),onMouseup:C,onFocus:h,onBlur:s[1]||(s[1]=u=>i.value=!1)},{default:w(()=>[N(r.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),Z=j;export{K as M,Z as R,$ as f,J as g,X as i,W as w};
@@ -1 +0,0 @@
1
- import{u as D,a as j,_ as B,b as P}from"./D5jZq8b3.js";import{N,X as R,aC as V,c as T,G as k,R as r,ab as b,a4 as l,V as q,C as e,aj as x,am as y,U as n,Q as m,a9 as f,ao as M,T as z,S as C,aN as c,aO as g,_ as O,aa as A,ae as U,a3 as K}from"./2dNDtTiv.js";import{c as E}from"./DhI5cA_n.js";const F={slots:{root:"relative flex flex-col min-w-0 min-h-svh lg:not-last:border-e lg:not-last:border-default shrink-0",body:"flex flex-col gap-4 sm:gap-6 flex-1 overflow-y-auto p-4 sm:p-6",handle:""},variants:{size:{true:{root:"w-full lg:w-(--width)"},false:{root:"flex-1"}}}},G=["data-dragging"],L=Object.assign({inheritAttrs:!1},{__name:"UDashboardPanel",props:{class:{type:null,required:!1},ui:{type:null,required:!1},id:{type:String,required:!1},minSize:{type:Number,required:!1,default:15},maxSize:{type:Number,required:!1},defaultSize:{type:Number,required:!1},resizable:{type:Boolean,required:!1,default:!1}},setup(a){const t=a,p=N(),h=D({storageKey:"dashboard",unit:"%"}),i=`${h.storageKey}-panel-${t.id||R()}`,{el:v,size:u,isDragging:s,onMouseDown:o,onTouchStart:$,onDoubleClick:w}=j(i,V(()=>({...h,...t}))),S=T(()=>y({extend:y(F),...p.ui?.dashboardPanel||{}})({size:!!u.value}));return(d,Q)=>(r(),k(x,null,[b("div",q({id:i,ref_key:"el",ref:v},d.$attrs,{"data-dragging":e(s),"data-slot":"root",class:S.value.root({class:[t.ui?.root,t.class]}),style:[e(u)?{"--width":`${e(u)}${e(h).unit}`}:void 0]}),[l(d.$slots,"default",{},()=>[l(d.$slots,"header"),b("div",{"data-slot":"body",class:n(S.value.body({class:t.ui?.body}))},[l(d.$slots,"body")],2),l(d.$slots,"footer")])],16,G),l(d.$slots,"resize-handle",{onMouseDown:e(o),onTouchStart:e($),onDoubleClick:e(w)},()=>[a.resizable?(r(),m(B,{key:0,"aria-controls":i,"data-slot":"handle",class:n(S.value.handle({class:t.ui?.handle})),onMousedown:e(o),onTouchstart:e($),onDblclick:e(w)},null,8,["class","onMousedown","onTouchstart","onDblclick"])):f("",!0)])],64))}}),I={slots:{root:"h-(--ui-header-height) shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5",left:"flex items-center gap-1.5 min-w-0",icon:"shrink-0 size-5 self-center me-1.5",title:"flex items-center gap-1.5 font-semibold text-highlighted truncate",center:"hidden lg:flex",right:"flex items-center shrink-0 gap-1.5",toggle:""},variants:{toggleSide:{left:{toggle:""},right:{toggle:""}}}},W=Object.assign({inheritAttrs:!1},{__name:"UDashboardNavbar",props:{as:{type:null,required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},toggle:{type:[Boolean,Object],required:!1,default:!0},toggleSide:{type:String,required:!1,default:"left"},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(a){const t=a,p=M(),h=N(),i=D({}),[v,u]=E(),s=T(()=>y({extend:y(I),...h.ui?.dashboardNavbar||{}})());return(o,$)=>(r(),k(x,null,[z(e(v),null,{default:C(()=>[l(o.$slots,"toggle",c(g({...e(i),ui:s.value})),()=>[a.toggle?(r(),m(P,q({key:0},typeof a.toggle=="object"?a.toggle:{},{side:a.toggleSide,"data-slot":"toggle",class:s.value.toggle({class:t.ui?.toggle,toggleSide:a.toggleSide})}),null,16,["side","class"])):f("",!0)])]),_:3}),z(e(K),q({as:a.as},o.$attrs,{"data-slot":"root",class:s.value.root({class:[t.ui?.root,t.class]})}),{default:C(()=>[b("div",{"data-slot":"left",class:n(s.value.left({class:t.ui?.left}))},[a.toggleSide==="left"?(r(),m(e(u),{key:0})):f("",!0),l(o.$slots,"left",c(g(e(i))),()=>[l(o.$slots,"leading",c(g({...e(i),ui:s.value})),()=>[a.icon?(r(),m(O,{key:0,name:a.icon,"data-slot":"icon",class:n(s.value.icon({class:t.ui?.icon}))},null,8,["name","class"])):f("",!0)]),b("h1",{"data-slot":"title",class:n(s.value.title({class:t.ui?.title}))},[l(o.$slots,"title",{},()=>[A(U(a.title),1)])],2),l(o.$slots,"trailing",c(g({...e(i),ui:s.value})))])],2),p.default?(r(),k("div",{key:0,"data-slot":"center",class:n(s.value.center({class:t.ui?.center}))},[l(o.$slots,"default",c(g(e(i))))],2)):f("",!0),b("div",{"data-slot":"right",class:n(s.value.right({class:t.ui?.right}))},[l(o.$slots,"right",c(g(e(i)))),a.toggleSide==="right"?(r(),m(e(u),{key:0})):f("",!0)],2)]),_:3},16,["as","class"])],64))}});export{L as _,W as a};
@@ -1 +0,0 @@
1
- import{_ as oe}from"./JbHa4oXq.js";import{a as Q,c as U,G as F,R as v,ab as k,T as l,U as Z,C as s,_ as se,al as $e,Q as B,a9 as E,ae as j,S as m,aa as S,aV as ue,aj as ae,ak as le,W as J,ai as z,e as b,f as q,ah as De,bg as Ce,ag as Ue,q as Ve,n as ce}from"./2dNDtTiv.js";import{_ as Fe}from"./BUghTae1.js";import{_ as Se,a as Ie}from"./CqNwHCpo.js";import{_ as ne}from"./C3NST0BU.js";import{_ as de}from"./wO6z2ugJ.js";import{_ as Pe}from"./XCjS70z4.js";import{_ as me}from"./C2vq6Te8.js";import{_ as Ee}from"./CuxrHsu-.js";import{_ as Ae}from"./DJTCT0bl.js";import{_ as ze,a as Be}from"./C6qKcgOY.js";import{_ as Le}from"./DYbZBZet.js";import{_ as Oe}from"./DzA58_Lm.js";import{_ as Me}from"./YX8avsvq.js";import{_ as Ne}from"./B93pdGAW.js";import{_ as qe}from"./D_4LPm1U.js";import{u as He}from"./CVqlefTY.js";import"./D5jZq8b3.js";import"./DhI5cA_n.js";import"./DEd2xVbS.js";import"./BIXrSYwR.js";import"./DmmdPt_5.js";import"./apYB9dr5.js";import"./H6JbrRBU.js";import"./Db4KMnt8.js";import"./CQqCBrXj.js";import"./DUAAXJ6Q.js";import"./CWyMCJQH.js";import"./DS2wStH1.js";import"./C6Y-ieo6.js";import"./CYPO5o_C.js";import"./D8lwrAYS.js";import"./zq-a1TeT.js";import"./vScW1Zgm.js";import"./Vcq4gwWv.js";import"./Bk6JUtIo.js";import"./BA_pRWwX.js";import"./BZrSPX0S.js";import"./88opOQSr.js";import"./iik6CYzq.js";import"./t8aDAkZ5.js";import"./BHtY0l0l.js";const Re={class:"flex items-center gap-2"},Qe={class:"flex items-center flex-wrap gap-2 mt-2"},Ge={key:4,class:"text-xs text-dimmed"},We=Q({__name:"TaskCard",props:{task:{}},emits:["toggle","edit","delete","view"],setup(e,{emit:w}){const r=e,h=w,i={1:{label:"Low",color:"neutral",icon:"i-lucide-arrow-down"},2:{label:"Medium",color:"warning",icon:"i-lucide-minus"},3:{label:"High",color:"error",icon:"i-lucide-arrow-up"}},C={todo:{label:"Todo",color:"neutral",icon:"i-lucide-circle"},in_progress:{label:"In Progress",color:"info",icon:"i-lucide-clock"},done:{label:"Done",color:"success",icon:"i-lucide-check-circle"},blocked:{label:"Blocked",color:"error",icon:"i-lucide-alert-circle"}},u=U(()=>i[r.task.priority]||i[2]),g=U(()=>C[r.task.status]),_=U(()=>r.task.status==="done"),c=U(()=>!!r.task.description?.trim()),a=U(()=>!r.task.dueDate||_.value?!1:new Date(r.task.dueDate)<new Date);function p(I){return I?new Date(I).toLocaleDateString("en-US",{month:"short",day:"numeric"}):null}const $=U(()=>[[{label:"Edit",icon:"i-lucide-pencil",onSelect:()=>h("edit",r.task)},{label:"Delete",icon:"i-lucide-trash-2",color:"error",onSelect:()=>h("delete",r.task.id)}]]);return(I,A)=>{const o=se,t=oe,n=J,T=Ee;return v(),F("div",{class:Z(["group flex items-start gap-3 p-3 rounded-lg border border-default hover:bg-elevated transition-colors",{"opacity-60":s(_)}])},[k("button",{class:"mt-0.5 shrink-0",onClick:A[0]||(A[0]=$e(V=>h("toggle",e.task.id),["stop"]))},[l(o,{name:s(_)?"i-lucide-check-circle-2":"i-lucide-circle",class:Z(["size-5",s(_)?"text-success":"text-dimmed hover:text-default"])},null,8,["name","class"])]),k("button",{class:"flex-1 min-w-0 text-left",onClick:A[1]||(A[1]=V=>h("view",e.task))},[k("div",Re,[k("span",{class:Z(["font-medium",{"line-through text-dimmed":s(_)}])},j(e.task.title),3),s(c)?(v(),B(o,{key:0,name:"i-lucide-file-text",class:"size-3.5 text-dimmed shrink-0"})):E("",!0)]),k("div",Qe,[e.task.project?(v(),B(t,{key:0,variant:"subtle",color:"neutral",size:"xs"},{default:m(()=>[k("span",{class:"size-2 rounded-full mr-1",style:ue({backgroundColor:e.task.project.color})},null,4),S(" "+j(e.task.project.name),1)]),_:1})):E("",!0),e.task.priority!==2?(v(),B(t,{key:1,color:s(u).color,variant:"subtle",size:"xs"},{default:m(()=>[l(o,{name:s(u).icon,class:"size-3 mr-1"},null,8,["name"]),S(" "+j(s(u).label),1)]),_:1},8,["color"])):E("",!0),e.task.status==="in_progress"||e.task.status==="blocked"?(v(),B(t,{key:2,color:s(g).color,variant:"subtle",size:"xs"},{default:m(()=>[l(o,{name:s(g).icon,class:"size-3 mr-1"},null,8,["name"]),S(" "+j(s(g).label),1)]),_:1},8,["color"])):E("",!0),e.task.dueDate?(v(),F("span",{key:3,class:Z(["text-xs flex items-center gap-1",s(a)?"text-error":"text-dimmed"])},[l(o,{name:"i-lucide-calendar",class:"size-3"}),S(" "+j(p(e.task.dueDate)),1)],2)):E("",!0),(v(!0),F(ae,null,le(e.task.tags?.slice(0,3),V=>(v(),B(t,{key:V,variant:"subtle",color:"neutral",size:"xs"},{default:m(()=>[S(j(V),1)]),_:2},1024))),128)),e.task.tags&&e.task.tags.length>3?(v(),F("span",Ge," +"+j(e.task.tags.length-3),1)):E("",!0)])]),l(T,{items:s($)},{default:m(()=>[l(n,{icon:"i-lucide-more-vertical",color:"neutral",variant:"ghost",size:"xs",class:"opacity-0 group-hover:opacity-100 transition-opacity"})]),_:1},8,["items"])],2)}}}),Je=Object.assign(We,{__name:"TasksTaskCard"}),Ke={key:0,class:"flex items-center justify-center py-12"},Xe={class:"text-center py-8 text-dimmed"},Ye={key:2,class:"space-y-2"},Ze=Q({__name:"TaskList",props:{tasks:{},loading:{type:Boolean}},emits:["toggle","edit","delete","create","view"],setup(e,{emit:w}){const r=w;return(h,i)=>{const C=se,u=J,g=me,_=Je;return v(),F("div",null,[e.loading?(v(),F("div",Ke,[l(C,{name:"i-lucide-loader-2",class:"size-8 animate-spin text-dimmed"})])):e.tasks.length===0?(v(),B(g,{key:1},{default:m(()=>[k("div",Xe,[l(C,{name:"i-lucide-check-square",class:"size-12 mx-auto mb-2 opacity-50"}),i[5]||(i[5]=k("p",{class:"font-medium"}," No tasks yet ",-1)),i[6]||(i[6]=k("p",{class:"text-sm mt-1"}," Create your first task to get started. ",-1)),l(u,{class:"mt-4",icon:"i-lucide-plus",label:"Add Task",onClick:i[0]||(i[0]=c=>r("create"))})])]),_:1})):(v(),F("div",Ye,[(v(!0),F(ae,null,le(e.tasks,c=>(v(),B(_,{key:c.id,task:c,onToggle:i[1]||(i[1]=a=>r("toggle",a)),onEdit:i[2]||(i[2]=a=>r("edit",a)),onDelete:i[3]||(i[3]=a=>r("delete",a)),onView:i[4]||(i[4]=a=>r("view",a))},null,8,["task"]))),128))]))])}}}),et=Object.assign(Ze,{__name:"TasksTaskList"}),te="__none__",tt=Q({__name:"ProjectSelect",props:{modelValue:{},projects:{}},emits:["update:modelValue"],setup(e,{emit:w}){const r=e,h=w,i=U({get:()=>r.modelValue||te,set:u=>h("update:modelValue",u===te?null:u)}),C=U(()=>[{value:te,label:"No Project"},...r.projects.filter(u=>!u.deletedAt).map(u=>({value:u.id,label:u.name}))]);return(u,g)=>{const _=ne;return v(),B(_,{modelValue:s(i),"onUpdate:modelValue":g[0]||(g[0]=c=>z(i)?i.value=c:null),items:s(C),"value-key":"value",class:"w-full"},null,8,["modelValue","items"])}}}),ot=Object.assign(tt,{__name:"TasksProjectSelect"}),st={class:"task-form-body"},at={class:"task-form-description"},lt={class:"task-form-fields"},nt={class:"grid grid-cols-2 gap-4"},it={class:"flex justify-end gap-2 w-full"},rt=Q({__name:"TaskForm",props:{open:{type:Boolean},task:{},projects:{}},emits:["update:open","submit"],setup(e,{emit:w}){const r=e,h=w,i=U(()=>!!r.task?.id),C=U(()=>i.value?"Edit Task":"Create Task"),u=b(""),g=b(""),_=b("todo"),c=b(2),a=b(null),p=b(""),$=b([]),I=[{value:"todo",label:"Todo"},{value:"in_progress",label:"In Progress"},{value:"done",label:"Done"},{value:"blocked",label:"Blocked"}],A=[{value:1,label:"Low"},{value:2,label:"Medium"},{value:3,label:"High"}],o=[[{kind:"mark",mark:"bold",icon:"i-lucide-bold"},{kind:"mark",mark:"italic",icon:"i-lucide-italic"},{kind:"mark",mark:"code",icon:"i-lucide-code"}],[{kind:"bulletList",icon:"i-lucide-list"},{kind:"orderedList",icon:"i-lucide-list-ordered"}],[{kind:"link",icon:"i-lucide-link"}]],t=U(()=>g.value||void 0);q(()=>r.task,x=>{x?(u.value=x.title,g.value=x.description||"",_.value=x.status,c.value=x.priority,a.value=x.projectId||null,p.value=x.dueDate&&new Date(x.dueDate).toISOString().split("T")[0]||"",$.value=x.tags||[]):n()},{immediate:!0}),q(()=>r.open,x=>{x||n()});function n(){u.value="",g.value="",_.value="todo",c.value=2,a.value=null,p.value="",$.value=[]}function T(){h("update:open",!1)}function V(){if(!u.value.trim())return;const x={title:u.value.trim(),description:g.value.trim()||void 0,status:_.value,priority:c.value,projectId:a.value,dueDate:p.value||void 0,tags:$.value};h("submit",x),T()}return(x,y)=>{const K=de,M=Ae,G=ze,X=Be,O=ne,N=ot,H=Le,R=J,Y=Oe;return v(),B(Y,{open:e.open,title:s(C),"onUpdate:open":y[7]||(y[7]=D=>h("update:open",D))},{body:m(()=>[k("div",st,[l(M,{label:"Title",required:""},{default:m(()=>[l(K,{modelValue:s(u),"onUpdate:modelValue":y[0]||(y[0]=D=>z(u)?u.value=D:null),placeholder:"Task title...",autofocus:"",class:"w-full"},null,8,["modelValue"])]),_:1}),k("div",at,[y[8]||(y[8]=k("label",{class:"block text-sm font-medium text-default mb-1.5"},"Description",-1)),l(X,{"model-value":s(t),"content-type":"markdown",placeholder:"Add a description...",class:"task-editor","onUpdate:modelValue":y[1]||(y[1]=D=>g.value=D)},{default:m(({editor:D})=>[l(G,{editor:D,items:o,class:"border-b border-default"},null,8,["editor"])]),_:1},8,["model-value"])]),k("div",lt,[k("div",nt,[l(M,{label:"Status"},{default:m(()=>[l(O,{modelValue:s(_),"onUpdate:modelValue":y[2]||(y[2]=D=>z(_)?_.value=D:null),items:I,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),l(M,{label:"Priority"},{default:m(()=>[l(O,{modelValue:s(c),"onUpdate:modelValue":y[3]||(y[3]=D=>z(c)?c.value=D:null),items:A,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1})]),l(M,{label:"Project"},{default:m(()=>[l(N,{modelValue:s(a),"onUpdate:modelValue":y[4]||(y[4]=D=>z(a)?a.value=D:null),projects:e.projects,class:"w-full"},null,8,["modelValue","projects"])]),_:1}),l(M,{label:"Due Date"},{default:m(()=>[l(K,{modelValue:s(p),"onUpdate:modelValue":y[5]||(y[5]=D=>z(p)?p.value=D:null),type:"date",class:"w-full"},null,8,["modelValue"])]),_:1}),l(M,{label:"Tags"},{default:m(()=>[l(H,{modelValue:s($),"onUpdate:modelValue":y[6]||(y[6]=D=>z($)?$.value=D:null),placeholder:"Add tags...",class:"w-full"},null,8,["modelValue"])]),_:1})])])]),footer:m(()=>[k("div",it,[l(R,{color:"neutral",variant:"ghost",onClick:T},{default:m(()=>[...y[9]||(y[9]=[S(" Cancel ",-1)])]),_:1}),l(R,{disabled:!s(u).trim(),onClick:V},{default:m(()=>[S(j(s(i)?"Save Changes":"Create Task"),1)]),_:1},8,["disabled"])])]),_:1},8,["open","title"])}}}),ct=Object.assign(rt,{__name:"TasksTaskForm"}),ut={class:"flex items-start justify-between gap-4"},dt={class:"text-lg font-semibold"},mt={class:"space-y-4"},pt={class:"flex flex-wrap items-center gap-3 text-sm"},ft={key:0,class:"flex items-center gap-1.5"},kt={class:"text-dimmed"},vt={class:"flex items-center gap-1.5"},_t={key:1,class:"flex items-center gap-1.5"},gt={class:"text-dimmed"},yt={key:0,class:"flex flex-wrap gap-1.5"},bt={key:1,class:"pt-2 border-t border-default"},ht={class:"prose prose-sm dark:prose-invert max-w-none"},wt={class:"pt-2 border-t border-default text-xs text-dimmed space-y-1"},Tt={key:0},xt={key:0},jt={class:"flex justify-between"},$t={class:"flex gap-2"},Dt=Q({__name:"TaskDetail",props:{task:{}},emits:["edit","close","toggle"],setup(e,{emit:w}){const r=e,h=w,i={1:{label:"Low",color:"neutral"},2:{label:"Medium",color:"warning"},3:{label:"High",color:"error"}},C={todo:{label:"Todo",color:"neutral"},in_progress:{label:"In Progress",color:"info"},done:{label:"Done",color:"success"},blocked:{label:"Blocked",color:"error"}},u=U(()=>i[r.task.priority]||i[2]),g=U(()=>C[r.task.status]),_=U(()=>r.task.status==="done");function c(a){return a?new Date(a).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric",year:"numeric"}):null}return(a,p)=>{const $=oe,I=se,A=Me,o=J,t=me;return v(),B(t,null,{header:m(()=>[k("div",ut,[k("h3",dt,j(e.task.title),1),l($,{color:s(g).color,variant:"subtle"},{default:m(()=>[S(j(s(g).label),1)]),_:1},8,["color"])])]),footer:m(()=>[k("div",jt,[l(o,{icon:s(_)?"i-lucide-rotate-ccw":"i-lucide-check",color:s(_)?"neutral":"success",variant:s(_)?"ghost":"soft",onClick:p[0]||(p[0]=n=>h("toggle"))},{default:m(()=>[S(j(s(_)?"Mark Incomplete":"Mark Complete"),1)]),_:1},8,["icon","color","variant"]),k("div",$t,[l(o,{color:"neutral",variant:"ghost",onClick:p[1]||(p[1]=n=>h("close"))},{default:m(()=>[...p[3]||(p[3]=[S(" Close ",-1)])]),_:1}),l(o,{icon:"i-lucide-pencil",onClick:p[2]||(p[2]=n=>h("edit"))},{default:m(()=>[...p[4]||(p[4]=[S(" Edit ",-1)])]),_:1})])])]),default:m(()=>[k("div",mt,[k("div",pt,[e.task.project?(v(),F("div",ft,[k("span",{class:"size-2.5 rounded-full",style:ue({backgroundColor:e.task.project.color})},null,4),k("span",kt,j(e.task.project.name),1)])):E("",!0),k("div",vt,[l(I,{name:"i-lucide-flag",class:"size-4 text-dimmed"}),l($,{color:s(u).color,variant:"subtle",size:"xs"},{default:m(()=>[S(j(s(u).label),1)]),_:1},8,["color"])]),e.task.dueDate?(v(),F("div",_t,[l(I,{name:"i-lucide-calendar",class:"size-4 text-dimmed"}),k("span",gt,j(c(e.task.dueDate)),1)])):E("",!0)]),e.task.tags&&e.task.tags.length>0?(v(),F("div",yt,[(v(!0),F(ae,null,le(e.task.tags,n=>(v(),B($,{key:n,variant:"subtle",color:"neutral",size:"sm"},{default:m(()=>[S(j(n),1)]),_:2},1024))),128))])):E("",!0),e.task.description?(v(),F("div",bt,[k("div",ht,[l(A,{value:e.task.description},null,8,["value"])])])):E("",!0),k("div",wt,[k("p",null,[S(" Created: "+j(c(e.task.createdAt))+" ",1),e.task.creator?(v(),F("span",Tt," by "+j(e.task.creator.name),1)):E("",!0)]),e.task.completedAt?(v(),F("p",xt," Completed: "+j(c(e.task.completedAt)),1)):E("",!0)])])]),_:1})}}}),Ct=Object.assign(Dt,{__name:"TasksTaskDetail"});function Ut(){const e=b([]),w=b(!1),r=b(null),h=b([]),i=De({status:void 0,projectId:void 0,search:void 0,includeDeleted:!1});async function C(o){w.value=!0,r.value=null;const t=o||i;try{const n={};t.status&&(Array.isArray(t.status)?t.status.forEach(V=>n.status=V):n.status=t.status),t.projectId&&(n.projectId=t.projectId),t.search&&(n.search=t.search),t.includeDeleted&&(n.includeDeleted="true");const T=await $fetch("/api/tasks",{query:n});return e.value=T.data,T.data}catch(n){throw r.value="Failed to load tasks",console.error("Failed to load tasks:",n),n}finally{w.value=!1}}async function u(){try{const o=await $fetch("/api/tasks/tags");return h.value=o.data,o.data}catch(o){throw console.error("Failed to fetch tags:",o),o}}async function g(o){try{return(await $fetch(`/api/tasks/${o}`)).data}catch(t){throw console.error("Failed to get task:",t),t}}async function _(o){try{const t=await $fetch("/api/tasks",{method:"POST",body:o});return e.value=[t.data,...e.value],t.data}catch(t){throw console.error("Failed to create task:",t),t}}async function c(o,t){try{const n=await $fetch(`/api/tasks/${o}`,{method:"PUT",body:t}),T=e.value.findIndex(V=>V.id===o);return T!==-1&&(e.value[T]=n.data),n.data}catch(n){throw console.error("Failed to update task:",n),n}}async function a(o){try{const t=await $fetch(`/api/tasks/${o}`,{method:"DELETE"});return e.value=e.value.filter(n=>n.id!==o),t.data}catch(t){throw console.error("Failed to delete task:",t),t}}async function p(o){try{const t=await $fetch(`/api/tasks/${o}/restore`,{method:"POST"});return await C(),t.data}catch(t){throw console.error("Failed to restore task:",t),t}}async function $(o){const t=e.value.find(T=>T.id===o);if(!t)return;const n=t.status==="done"?"todo":"done";return c(o,{status:n})}const I=U(()=>{let o=[...e.value];if(i.status){const t=Array.isArray(i.status)?i.status:[i.status];o=o.filter(n=>t.includes(n.status))}if(i.projectId&&(o=o.filter(t=>t.projectId===i.projectId)),i.search){const t=i.search.toLowerCase();o=o.filter(n=>n.title.toLowerCase().includes(t)||n.description?.toLowerCase().includes(t))}return i.includeDeleted||(o=o.filter(t=>!t.deletedAt)),o}),A=U(()=>{const o={todo:0,in_progress:0,done:0,blocked:0,total:0};return e.value.forEach(t=>{t.deletedAt||(o[t.status]++,o.total++)}),o});return{tasks:e,filteredTasks:I,loading:w,error:r,tags:h,filters:i,taskCounts:A,fetchTasks:C,fetchTags:u,getTask:g,createTask:_,updateTask:c,deleteTask:a,restoreTask:p,toggleComplete:$}}function Vt(){const e=b([]),w=b(!1),r=b(null);async function h(c=!1){w.value=!0,r.value=null;try{const a=await $fetch("/api/projects",{query:{includeDeleted:c.toString()}});return e.value=a.data,a.data}catch(a){throw r.value="Failed to load projects",console.error("Failed to load projects:",a),a}finally{w.value=!1}}async function i(c){try{return(await $fetch(`/api/projects/${c}`)).data}catch(a){throw console.error("Failed to get project:",a),a}}async function C(c){try{const a=await $fetch("/api/projects",{method:"POST",body:c});return e.value=[...e.value,a.data],a.data}catch(a){throw console.error("Failed to create project:",a),a}}async function u(c,a){try{const p=await $fetch(`/api/projects/${c}`,{method:"PUT",body:a}),$=e.value.findIndex(I=>I.id===c);return $!==-1&&(e.value[$]=p.data),p.data}catch(p){throw console.error("Failed to update project:",p),p}}async function g(c){try{const a=await $fetch(`/api/projects/${c}`,{method:"DELETE"});return e.value=e.value.filter(p=>p.id!==c),a.data}catch(a){throw console.error("Failed to delete project:",a),a}}function _(c){if(c)return e.value.find(a=>a.id===c)}return{projects:e,loading:w,error:r,fetchProjects:h,getProject:i,createProject:C,updateProject:u,deleteProject:g,getProjectById:_}}const Ft={class:"contents"},St={class:"flex items-center gap-2 text-sm"},L="__all__",wo=Q({__name:"tasks",setup(e){const w=Ce(),r=Ue(),{filteredTasks:h,tasks:i,loading:C,filters:u,taskCounts:g,fetchTasks:_,createTask:c,updateTask:a,deleteTask:p,toggleComplete:$}=Ut(),{projects:I,fetchProjects:A}=Vt(),o=b(!1),t=b(null),n=b(!1),T=b(null),V=b(!1),x=b(null),y=b(!1),K=[{value:L,label:"All Status"},{value:"todo",label:"Todo"},{value:"in_progress",label:"In Progress"},{value:"done",label:"Done"},{value:"blocked",label:"Blocked"}],M=U(()=>[{value:L,label:"All Projects"},...I.value.filter(d=>!d.deletedAt).map(d=>({value:d.id,label:d.name}))]),{taskStatusFilter:G,taskProjectFilter:X}=He(),O=b(G.value==="all"?L:G.value),N=b(X.value||L),H=b("");q(O,d=>{u.status=d===L?void 0:d,G.value=d===L?"all":d}),q(N,d=>{u.projectId=d===L?void 0:d,X.value=d===L?null:d}),q(H,d=>{u.search=d||void 0}),O.value!==L&&(u.status=O.value),N.value!==L&&(u.projectId=N.value);function R(){t.value=null,o.value=!0}function Y(d){t.value=d,o.value=!0}function D(d){T.value=d,n.value=!0}async function pe(d){try{t.value?(await a(t.value.id,d),r.add({title:"Task updated",color:"success",icon:"i-lucide-check"})):(await c(d),r.add({title:"Task created",color:"success",icon:"i-lucide-check"})),t.value=null}catch(f){r.add({title:"Failed to save task",description:f instanceof Error?f.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}}function fe(d){x.value=d,V.value=!0}async function ke(){if(x.value){y.value=!0;try{await p(x.value),r.add({title:"Task deleted",color:"success",icon:"i-lucide-trash"}),V.value=!1,x.value=null}catch(d){r.add({title:"Failed to delete task",description:d instanceof Error?d.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}finally{y.value=!1}}}async function ie(d){try{await $(d)}catch(f){r.add({title:"Failed to update task",description:f instanceof Error?f.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}}return q([()=>w.query.selected,i],([d,f])=>{if(d&&f.length>0){const W=f.find(ee=>ee.id===d);W&&(T.value=W,n.value=!0,ce("/tasks",{replace:!0}))}},{immediate:!0}),q(()=>w.query.action,d=>{d==="new"&&(R(),ce("/tasks",{replace:!0}))},{immediate:!0}),Ve(async()=>{await Promise.all([_(),A()])}),(d,f)=>{const W=oe,ee=J,ve=Fe,_e=Ie,re=ne,ge=de,ye=Pe,be=et,he=Se,we=ct,Te=Ct,xe=Ne,je=qe;return v(),F("div",Ft,[l(he,{id:"tasks",grow:""},{header:m(()=>[l(_e,{title:"Tasks"},{left:m(()=>[k("div",St,[l(W,{color:"neutral",variant:"subtle"},{default:m(()=>[S(j(s(g).total)+" total ",1)]),_:1}),s(g).done>0?(v(),B(W,{key:0,color:"success",variant:"subtle"},{default:m(()=>[S(j(s(g).done)+" done ",1)]),_:1})):E("",!0)])]),right:m(()=>[l(ee,{icon:"i-lucide-plus",label:"Add Task",onClick:R}),l(ve)]),_:1}),l(ye,null,{left:m(()=>[l(re,{modelValue:s(O),"onUpdate:modelValue":f[0]||(f[0]=P=>z(O)?O.value=P:null),items:K,"value-key":"value",class:"w-36"},null,8,["modelValue"]),l(re,{modelValue:s(N),"onUpdate:modelValue":f[1]||(f[1]=P=>z(N)?N.value=P:null),items:s(M),"value-key":"value",class:"w-40"},null,8,["modelValue","items"])]),right:m(()=>[l(ge,{modelValue:s(H),"onUpdate:modelValue":f[2]||(f[2]=P=>z(H)?H.value=P:null),placeholder:"Search tasks...",icon:"i-lucide-search",class:"w-64"},null,8,["modelValue"])]),_:1})]),body:m(()=>[l(be,{tasks:s(h),loading:s(C),onToggle:ie,onEdit:Y,onDelete:fe,onCreate:R,onView:D},null,8,["tasks","loading"])]),_:1}),l(we,{open:s(o),"onUpdate:open":f[3]||(f[3]=P=>z(o)?o.value=P:null),task:s(t),projects:s(I),onSubmit:pe},null,8,["open","task","projects"]),l(xe,{open:s(n),"onUpdate:open":f[7]||(f[7]=P=>z(n)?n.value=P:null),title:s(T)?.title},{content:m(()=>[s(T)?(v(),B(Te,{key:0,task:s(T),onEdit:f[4]||(f[4]=P=>{Y(s(T)),n.value=!1}),onClose:f[5]||(f[5]=P=>n.value=!1),onToggle:f[6]||(f[6]=P=>{ie(s(T).id),n.value=!1})},null,8,["task"])):E("",!0)]),_:1},8,["open","title"]),l(je,{open:s(V),"onUpdate:open":f[8]||(f[8]=P=>z(V)?V.value=P:null),title:"Delete Task",description:"Are you sure you want to delete this task? This action cannot be undone.","confirm-label":"Delete","confirm-color":"error",icon:"i-lucide-trash-2",loading:s(y),onConfirm:ke,onCancel:f[9]||(f[9]=P=>x.value=null)},null,8,["open","loading"])])}}});export{wo as default};
@@ -1 +0,0 @@
1
- import{d as F}from"./DhI5cA_n.js";import{e as z,c as S,ai as C,L as B,C as d,f as O,aR as A,N as D,am as E,Q as L,R as M,S as V,a4 as $,U,a3 as I,O as N,P as j,V as H,W as P}from"./2dNDtTiv.js";import{u as G}from"./DEd2xVbS.js";const ae=(f,r={},{collapsed:o=z(!1)}={})=>{const t=z(null),e=S(()=>({side:"left",minSize:0,maxSize:100,defaultSize:0,storage:"cookie",persistent:!0,collapsible:!1,collapsedSize:0,resizable:!0,unit:"%",...C(r)?r.value:r})),{dir:h}=B(),y={size:e.value.defaultSize,collapsed:d(o)??!1},c=e.value.persistent&&(e.value.resizable||e.value.collapsible)?e.value.storage==="cookie"?G(f,{default:()=>y}):F(f,y):z(y),n=S({get:()=>c.value.collapsed,set:a=>{e.value.collapsible&&(C(o)&&(o.value=a),c.value.collapsed=a)}}),x=z(e.value.defaultSize),b=S({get:()=>c.value.size,set:a=>{c.value.size=a}}),X=S(()=>n.value?e.value.collapsedSize:b.value),q=z(!1),_=(a,l,p)=>{if(!t.value||!e.value.resizable)return;const m=t.value.parentElement?.offsetWidth||1,v=h.value==="rtl";let s;v?s=e.value.side==="left"?l-a.clientX:a.clientX-l:s=e.value.side==="left"?a.clientX-l:l-a.clientX;const u=p+s;let i;if(e.value.unit==="rem"){const w=Number.parseFloat(getComputedStyle(document.documentElement).fontSize);i=u/w}else e.value.unit==="px"?i=u:i=u/m*100;if(e.value.collapsible&&i<e.value.collapsedSize+4){g(!0);return}else n.value&&g(!1);b.value=Math.min(e.value.maxSize,Math.max(e.value.minSize,i))},k=a=>{if(!t.value||!e.value.resizable)return;a.preventDefault(),a.stopPropagation();const l=t.value.getBoundingClientRect().width;if(!l)return;const p=a.clientX,m=l;q.value=!0;const v=u=>{_(u,p,m)},s=()=>{q.value=!1,document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",s)};document.addEventListener("mousemove",v),document.addEventListener("mouseup",s)},R=(a,l,p)=>{if(!t.value||!e.value.resizable||!a.touches[0])return;const m=t.value.parentElement?.offsetWidth||1,v=h.value==="rtl";let s;v?s=e.value.side==="left"?l-a.touches[0].clientX:a.touches[0].clientX-l:s=e.value.side==="left"?a.touches[0].clientX-l:l-a.touches[0].clientX;const u=p+s;let i;if(e.value.unit==="rem"){const w=Number.parseFloat(getComputedStyle(document.documentElement).fontSize);i=u/w}else e.value.unit==="px"?i=u:i=u/m*100;if(e.value.collapsible&&i<e.value.collapsedSize+4){g(!0);return}else n.value&&g(!1);b.value=Math.min(e.value.maxSize,Math.max(e.value.minSize,i))},T=a=>{if(!t.value||!e.value.resizable||!a.touches[0])return;a.preventDefault(),a.stopPropagation();const l=t.value.getBoundingClientRect().width;if(!l)return;const p=a.touches[0].clientX,m=l;q.value=!0;const v=u=>{R(u,p,m)},s=()=>{q.value=!1,document.removeEventListener("touchmove",v),document.removeEventListener("touchend",s),document.removeEventListener("touchcancel",s)};document.addEventListener("touchmove",v,{passive:!1}),document.addEventListener("touchend",s),document.addEventListener("touchcancel",s)},W=a=>{!t.value||!e.value.resizable||(a.preventDefault(),a.stopPropagation(),n.value&&g(!1),b.value=e.value.defaultSize)},g=a=>{if(!e.value.collapsible)return;const l=a??!n.value;l&&!n.value?x.value=b.value:!l&&n.value&&(b.value=x.value),n.value=l};return C(o)&&c.value.collapsed&&(o.value=c.value.collapsed),C(o)&&O(o,a=>{e.value.collapsible&&c.value.collapsed!==a&&(c.value.collapsed=a)}),{el:t,size:X,isDragging:q,isCollapsed:n,onMouseDown:k,onTouchStart:T,onDoubleClick:W,collapse:g}},[Q,le]=A("DashboardGroup"),J={base:"hidden lg:block touch-none select-none cursor-ew-resize relative before:absolute before:inset-y-0 before:-left-1.5 before:-right-1.5 before:z-1"},te={__name:"UDashboardResizeHandle",props:{as:{type:null,required:!1},class:{type:null,required:!1}},setup(f){const r=f,o=D(),t=S(()=>E({extend:E(J),...o.ui?.dashboardResizeHandle||{}}));return(e,h)=>(M(),L(d(I),{as:f.as,role:"separator",class:U(t.value({class:r.class}))},{default:V(()=>[$(e.$slots,"default")]),_:3},8,["as","class"]))}},K={base:"lg:hidden",variants:{side:{left:"",right:""}}},se=Object.assign({inheritAttrs:!1},{__name:"UDashboardSidebarToggle",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(f){const r=f,o=N(j(r,"icon","side","class")),{t}=B(),e=D(),{sidebarOpen:h,toggleSidebar:y}=Q({sidebarOpen:z(!1),toggleSidebar:()=>{}}),c=S(()=>E({extend:E(K),...e.ui?.dashboardSidebarToggle||{}}));return(n,x)=>(M(),L(P,H({...d(o),icon:r.icon||(d(h)?d(e).ui.icons.close:d(e).ui.icons.menu),"aria-label":d(h)?d(t)("dashboardSidebarToggle.close"):d(t)("dashboardSidebarToggle.open"),...n.$attrs},{class:c.value({class:r.class,side:r.side}),onClick:d(y)}),null,16,["class","onClick"]))}});export{te as _,ae as a,se as b,le as p,Q as u};
@@ -1 +0,0 @@
1
- import{u as b}from"./CWyMCJQH.js";import{a as y,c as l,a1 as I,q as g,a2 as F,Q as S,R as C,S as u,T as K,C as r,a3 as h,a4 as w,k as T}from"./2dNDtTiv.js";import{i as q,g as R,w as B,f as k}from"./CYPO5o_C.js";var x=y({__name:"RovingFocusItem",props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(d){const n=d,a=q(),f=b(),i=l(()=>n.tabStopId||f),c=l(()=>a.currentTabStopId.value===i.value),{getItems:p,CollectionItem:m}=I();g(()=>{n.focusable&&a.onFocusableItemAdd()}),F(()=>{n.focusable&&a.onFocusableItemRemove()});function v(e){if(e.key==="Tab"&&e.shiftKey){a.onItemShiftTab();return}if(e.target!==e.currentTarget)return;const t=R(e,a.orientation.value,a.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!n.allowShiftKey&&e.shiftKey)return;e.preventDefault();let o=[...p().map(s=>s.ref).filter(s=>s.dataset.disabled!=="")];if(t==="last")o.reverse();else if(t==="prev"||t==="next"){t==="prev"&&o.reverse();const s=o.indexOf(e.currentTarget);o=a.loop.value?B(o,s+1):o.slice(s+1)}T(()=>k(o))}}return(e,t)=>(C(),S(r(m),null,{default:u(()=>[K(r(h),{tabindex:c.value?0:-1,"data-orientation":r(a).orientation.value,"data-active":e.active?"":void 0,"data-disabled":e.focusable?void 0:"",as:e.as,"as-child":e.asChild,onMousedown:t[0]||(t[0]=o=>{e.focusable?r(a).onItemFocus(i.value):o.preventDefault()}),onFocus:t[1]||(t[1]=o=>r(a).onItemFocus(i.value)),onKeydown:v},{default:u(()=>[w(e.$slots,"default")]),_:3},8,["tabindex","data-orientation","data-active","data-disabled","as","as-child"])]),_:3}))}}),M=x;export{M as R};
@@ -1,2 +0,0 @@
1
- import{a as O,e as g,c as N,G as u,R as s,ab as b,a9 as w,Q as S,T as P,C as y,ae as T,S as V,aa as J,_ as K,U as j,aj as W,ak as L,bE as Q,bF as X,ai as Y,k as Z,W as ee,r as I}from"./2dNDtTiv.js";import{_ as H}from"./YX8avsvq.js";import{_ as te}from"./JbHa4oXq.js";import{s as ne}from"./BaZwjF8o.js";const se={class:"border border-default rounded-lg my-2 overflow-hidden"},ae={class:"font-mono text-xs"},oe=O({__name:"ToolCallBlock",props:{toolName:{},result:{},isError:{type:Boolean},pending:{type:Boolean}},setup(t){const r=t,c=g(!1),_={Read:"i-lucide-file-text",Edit:"i-lucide-pencil",Write:"i-lucide-file-plus",Bash:"i-lucide-terminal",Glob:"i-lucide-search",Grep:"i-lucide-text-search",Task:"i-lucide-git-branch",WebFetch:"i-lucide-globe",WebSearch:"i-lucide-search"},d=N(()=>_[r.toolName]||"i-lucide-wrench"),m=N(()=>r.result?r.result.length>500?r.result.slice(0,500)+"...":r.result:"");return(o,a)=>{const i=K,v=te;return s(),u("div",se,[b("button",{class:"flex items-center gap-2 w-full px-3 py-2 text-sm text-muted hover:bg-elevated/50 transition-colors",onClick:a[0]||(a[0]=f=>c.value=!y(c))},[t.pending?(s(),S(i,{key:0,name:"i-lucide-loader-2",class:"size-4 animate-spin text-primary"})):(s(),S(i,{key:1,name:y(d),class:"size-4"},null,8,["name"])),b("span",ae,T(t.toolName),1),t.isError?(s(),S(v,{key:2,color:"error",variant:"subtle",size:"xs"},{default:V(()=>[...a[1]||(a[1]=[J(" error ",-1)])]),_:1})):t.pending?(s(),S(v,{key:3,color:"warning",variant:"subtle",size:"xs"},{default:V(()=>[...a[2]||(a[2]=[J(" running ",-1)])]),_:1})):w("",!0),P(i,{name:y(c)?"i-lucide-chevron-up":"i-lucide-chevron-down",class:"size-4 ms-auto"},null,8,["name"])]),y(c)&&t.result?(s(),u("div",{key:0,class:j(["border-t border-default px-3 py-2 text-xs font-mono bg-elevated/25 max-h-64 overflow-auto whitespace-pre-wrap",{"text-error":t.isError}])},T(y(m)),3)):w("",!0)])}}}),q=Object.assign(oe,{__name:"ChatToolCallBlock"}),re={key:0,class:"text-sm whitespace-pre-wrap"},ie={key:0,class:"chat-prose prose prose-sm dark:prose-invert max-w-none"},le={key:1,class:"flex items-center gap-3 mt-2 text-xs text-dimmed"},ce={key:0},ue={key:1},de=O({__name:"MessageBubble",props:{message:{}},setup(t){function r(o){return o.filter(a=>a.type==="text").map(a=>a.text).join(`
2
- `)}function c(o){const a=[];for(const i of o)if(i.type==="tool_use")a.push({name:i.name,id:i.id});else if(i.type==="tool_result"){const v=a.find(f=>f.id===i.tool_use_id);v&&(v.result=i.content,v.isError=i.is_error)}return a}const _={telegram:"i-simple-icons-telegram",discord:"i-simple-icons-discord",imessage:"i-lucide-message-circle",email:"i-lucide-mail",google:"i-simple-icons-google"};function d(o){return!o||o==="web"?null:_[o]||null}function m(o){if(!o)return"";const a=o instanceof Date?o:new Date(o),v=new Date().getTime()-a.getTime(),f=Math.floor(v/6e4),h=Math.floor(v/36e5);return f<1?"just now":f<60?`${f}m ago`:h<24?`${h}h ago`:a.toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}return(o,a)=>{const i=K,v=H,f=q;return s(),u("div",{class:j(["flex",t.message.role==="user"?"justify-end":"justify-start"])},[t.message.role==="user"&&d(t.message.source)?(s(),S(i,{key:0,name:d(t.message.source),class:"size-4 text-dimmed self-end mb-1 mr-1.5 shrink-0"},null,8,["name"])):w("",!0),b("div",{class:j(["max-w-[85%] rounded-xl px-4 py-3",t.message.role==="user"?"bg-primary/5 text-highlighted":"bg-muted"])},[t.message.role==="user"?(s(),u("div",re,T(r(t.message.content)),1)):(s(),u(W,{key:1},[r(t.message.content)?(s(),u("div",ie,[P(v,{value:r(t.message.content)},null,8,["value"])])):w("",!0),(s(!0),u(W,null,L(c(t.message.content),h=>(s(),S(f,{key:h.id,"tool-name":h.name,result:h.result,"is-error":h.isError},null,8,["tool-name","result","is-error"]))),128)),t.message.costUsd||t.message.durationMs?(s(),u("div",le,[t.message.costUsd?(s(),u("span",ce,"$"+T(t.message.costUsd.toFixed(4)),1)):w("",!0),t.message.durationMs?(s(),u("span",ue,T((t.message.durationMs/1e3).toFixed(1))+"s",1)):w("",!0)])):w("",!0)],64)),t.message.createdAt?(s(),u("div",{key:2,class:j(["mt-1 text-xs text-dimmed",t.message.role==="user"?"text-right":""])},T(m(t.message.createdAt)),3)):w("",!0)],2)],2)}}}),$e=Object.assign(de,{__name:"ChatMessageBubble"}),me={class:"flex justify-start"},ve={class:"max-w-[85%] rounded-xl px-4 py-3 bg-elevated/50"},fe={key:0,class:"chat-prose prose prose-sm dark:prose-invert max-w-none"},ge=O({__name:"StreamingMessage",props:{text:{},toolCalls:{}},setup(t){return(r,c)=>{const _=H,d=q;return s(),u("div",me,[b("div",ve,[t.text?(s(),u("div",fe,[P(_,{value:t.text},null,8,["value"])])):w("",!0),(s(!0),u(W,null,L(t.toolCalls,(m,o)=>(s(),S(d,{key:o,"tool-name":m.name,result:m.result,"is-error":m.isError,pending:!m.result},null,8,["tool-name","result","is-error","pending"]))),128)),c[0]||(c[0]=b("div",{class:"flex items-center gap-1.5 mt-2"},[b("span",{class:"size-2 rounded-full bg-primary animate-pulse"}),b("span",{class:"text-xs text-dimmed"},"Thinking...")],-1))])])}}}),Ie=Object.assign(ge,{__name:"ChatStreamingMessage"}),pe={class:"border-t border-default p-4"},he={key:0,class:"flex items-center gap-2 mb-2 text-xs text-dimmed"},xe={class:"flex items-start gap-2"},ye=["disabled"],be=O({__name:"ChatInput",props:{sessionStatus:{},connectionStatus:{}},emits:["send","interrupt"],setup(t,{emit:r}){const c=t,_=r,d=g(""),m=g(null),o=N(()=>c.sessionStatus==="streaming"),a=N(()=>c.connectionStatus==="connected"),i=N(()=>a.value&&!o.value&&d.value.trim().length>0);function v(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),f())}function f(){i.value&&(_("send",d.value.trim()),d.value="",Z(()=>{m.value&&(m.value.style.height="auto")}))}function h(e){const n=e.target;n.style.height="auto",n.style.height=Math.min(n.scrollHeight,200)+"px"}return(e,n)=>{const l=ee;return s(),u("div",pe,[y(a)?w("",!0):(s(),u("div",he,[n[2]||(n[2]=b("span",{class:"size-2 rounded-full bg-warning"},null,-1)),b("span",null,T(t.connectionStatus==="connecting"?"Connecting...":"Disconnected"),1)])),b("div",xe,[Q(b("textarea",{ref_key:"textareaRef",ref:m,"onUpdate:modelValue":n[0]||(n[0]=$=>Y(d)?d.value=$:null),disabled:!y(a)||y(o),placeholder:"Send a message...",rows:"1",class:"flex-1 resize-none bg-elevated/50 border border-default rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 disabled:opacity-50",onKeydown:v,onInput:h},null,40,ye),[[X,y(d)]]),y(o)?(s(),S(l,{key:0,icon:"i-lucide-square",color:"error",variant:"soft",size:"md",onClick:n[1]||(n[1]=$=>_("interrupt"))})):(s(),S(l,{key:1,icon:"i-lucide-send",color:"primary",disabled:!y(i),size:"md",onClick:f},null,8,["disabled"]))])])}}}),Ue=Object.assign(be,{__name:"ChatInput"});function A(){if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const t=new Uint8Array(16);crypto.getRandomValues(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;const r=Array.from(t,c=>c.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}const U=g("disconnected"),M=g("idle"),C=g(null),E=g([]),B=g([]),k=g(""),x=g({}),G=g(0),F=g(!1),p=g(null),z=g(0),_e=5;let R=!1,D=null;function Me(){function t(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws/chat`}function r(e){switch(e.type){case"chat:session_created":C.value=e.conversationId,f();break;case"chat:stream_start":M.value="streaming",k.value="",x.value={};break;case"chat:text_delta":k.value+=e.delta;break;case"chat:tool_start":x.value={...x.value,[e.toolUseId]:{name:e.toolName}};break;case"chat:tool_end":{const n=x.value[e.toolUseId];n&&(x.value={...x.value,[e.toolUseId]:{...n,result:e.result,isError:e.isError}});break}case"chat:stream_end":{M.value="idle",G.value=e.costUsd;const n=[];k.value&&n.push({type:"text",text:k.value});for(const[l,$]of Object.entries(x.value))n.push({type:"tool_use",id:l,name:$.name,input:{}}),$.result!==void 0&&n.push({type:"tool_result",tool_use_id:l,content:$.result,is_error:$.isError});n.length>0&&E.value.push({id:A(),conversationId:e.conversationId,role:"assistant",content:n,costUsd:e.costUsd,durationMs:e.durationMs,createdAt:new Date}),k.value="",x.value={},f();break}case"chat:error":M.value="error",console.error("[chat] Server error:",e.message);break;case"chat:interrupted":M.value="interrupted",k.value&&(E.value.push({id:A(),conversationId:e.conversationId,role:"assistant",content:[{type:"text",text:k.value}],createdAt:new Date}),k.value="",x.value={});break}}function c(){if(p.value?.readyState===WebSocket.OPEN||R&&U.value==="connecting")return;R=!0,U.value="connecting";const e=new WebSocket(t());p.value=e,e.onopen=()=>{U.value="connected",z.value=0,d()},e.onmessage=n=>{try{const l=JSON.parse(n.data);if(l.type==="chat:connected"||l.type==="pong")return;r(l)}catch(l){console.error("[chat] Failed to parse message:",l)}},e.onclose=()=>{U.value="disconnected",m(),z.value<_e&&(z.value++,setTimeout(c,2e3*z.value))},e.onerror=()=>{U.value="error"}}function _(){m(),p.value&&(p.value.close(),p.value=null),U.value="disconnected",R=!1}function d(){D&&clearInterval(D),D=ne(()=>{p.value?.readyState===WebSocket.OPEN&&p.value.send(JSON.stringify({type:"ping"}))},3e4)}function m(){D&&(clearInterval(D),D=null)}function o(e){!p.value||p.value.readyState!==WebSocket.OPEN||(E.value.push({id:A(),conversationId:C.value||"",role:"user",content:[{type:"text",text:e}],createdAt:new Date}),p.value.send(JSON.stringify({type:"chat:send",message:e,conversationId:C.value})))}function a(){!p.value||!C.value||p.value.send(JSON.stringify({type:"chat:interrupt",conversationId:C.value}))}function i(){C.value=null,E.value=[],M.value="idle",k.value="",x.value={}}async function v(e){F.value=!0;try{const n=await $fetch(`/api/conversations/${e}`);C.value=e,E.value=(n.data.messages||[]).map(l=>({...l,createdAt:new Date(l.createdAt)})),M.value="idle"}catch(n){console.error("[chat] Failed to load conversation:",n)}finally{F.value=!1}}async function f(){try{const e=await $fetch("/api/conversations");B.value=e.data}catch(e){console.error("[chat] Failed to load conversations:",e)}}async function h(e){if(!B.value.find(l=>l.id===e)?.isMain)try{await $fetch(`/api/conversations/${e}`,{method:"DELETE"}),B.value=B.value.filter(l=>l.id!==e),C.value===e&&i()}catch(l){console.error("[chat] Failed to delete conversation:",l)}}return{connectionStatus:I(U),sessionStatus:I(M),activeConversationId:I(C),messages:E,conversations:B,streamingText:I(k),streamingToolCalls:I(x),lastCostUsd:I(G),loading:I(F),connect:c,disconnect:_,sendMessage:o,interrupt:a,startNewConversation:i,loadConversation:v,loadConversations:f,deleteConversation:h}}export{$e as _,Ie as a,Ue as b,Me as u};
@@ -1 +0,0 @@
1
- import{aR as _,a as T,a_ as ee,aQ as de,c as F,a8 as te,Q as g,R as u,S as q,a4 as y,a9 as z,C as t,V as I,bm as K,al as qe,au as ce,a3 as U,a6 as ke,T as M,bf as xe,aP as Ve,e as j,f as pe,aS as we,q as me,a2 as $e,a0 as Ce,k as Ie,aq as le,ao as fe,ar as Se,N as ae,O as Be,aI as ve,aF as be,X as ze,am as N,ab as O,G as E,U as V,_ as G,aa as H,ae as Q,aJ as Fe,aj as Y,ak as Z,aH as Re,ah as Pe,L as Ee,aG as se,W,b8 as Ae,bR as re,b9 as X,ag as Me,y as Ne,n as ie}from"./2dNDtTiv.js";import{_ as Ue}from"./BR8bKz8h.js";import{_ as De}from"./x6FRJ5ac.js";import{L as oe,_ as Oe}from"./DJTCT0bl.js";import{i as ne}from"./fbyIeNkc.js";import{u as je}from"./DmmdPt_5.js";import{R as Te}from"./DH4YkDAi.js";import{V as ge}from"./Bk6JUtIo.js";import{_ as Le}from"./DuvzM-P1.js";import{_ as ue}from"./wO6z2ugJ.js";import{u as Ke}from"./BIXrSYwR.js";import{u as Ge}from"./C6Y-ieo6.js";import{u as He}from"./BKXg-alD.js";import"./zq-a1TeT.js";import"./DhI5cA_n.js";import"./CWyMCJQH.js";import"./CYPO5o_C.js";import"./H6JbrRBU.js";import"./apYB9dr5.js";import"./DtjjnHnt.js";import"./CQqCBrXj.js";import"./BS2ZNXI1.js";import"./DY3uK7wM.js";const[Qe]=_("CheckboxGroupRoot");function J(a){return a==="indeterminate"}function he(a){return J(a)?"indeterminate":a?"checked":"unchecked"}const[Je,We]=_("CheckboxRoot");var Xe=T({inheritAttrs:!1,__name:"CheckboxRoot",props:{defaultValue:{type:[Boolean,String],required:!1},modelValue:{type:[Boolean,String,null],required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:"on"},id:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(a,{emit:v}){const e=a,s=v,{forwardRef:n,currentElement:k}=ee(),p=Qe(null),o=de(e,"modelValue",s,{defaultValue:e.defaultValue,passive:e.modelValue===void 0}),f=F(()=>p?.disabled.value||e.disabled),m=F(()=>te(p?.modelValue.value)?o.value==="indeterminate"?"indeterminate":o.value:ne(p.modelValue.value,e.value));function S(){if(te(p?.modelValue.value))o.value=J(o.value)?!0:!o.value;else{const l=[...p.modelValue.value||[]];if(ne(l,e.value)){const c=l.findIndex(r=>ke(r,e.value));l.splice(c,1)}else l.push(e.value);p.modelValue.value=l}}const R=je(k),h=F(()=>e.id&&k.value?document.querySelector(`[for="${e.id}"]`)?.innerText:void 0);return We({disabled:f,state:m}),(l,c)=>(u(),g(ce(t(p)?.rovingFocus.value?t(Te):t(U)),I(l.$attrs,{id:l.id,ref:t(n),role:"checkbox","as-child":l.asChild,as:l.as,type:l.as==="button"?"button":void 0,"aria-checked":t(J)(m.value)?"mixed":m.value,"aria-required":l.required,"aria-label":l.$attrs["aria-label"]||h.value,"data-state":t(he)(m.value),"data-disabled":f.value?"":void 0,disabled:f.value,focusable:t(p)?.rovingFocus.value?!f.value:void 0,onKeydown:K(qe(()=>{},["prevent"]),["enter"]),onClick:S}),{default:q(()=>[y(l.$slots,"default",{modelValue:t(o),state:m.value}),t(R)&&l.name&&!t(p)?(u(),g(t(ge),{key:0,type:"checkbox",checked:!!m.value,name:l.name,value:l.value,disabled:f.value,required:l.required},null,8,["checked","name","value","disabled","required"])):z("v-if",!0)]),_:3},16,["id","as-child","as","type","aria-checked","aria-required","aria-label","data-state","data-disabled","disabled","focusable","onKeydown"]))}}),Ye=Xe,Ze=T({__name:"CheckboxIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(a){const{forwardRef:v}=ee(),e=Je();return(s,n)=>(u(),g(t(xe),{present:s.forceMount||t(J)(t(e).state.value)||t(e).state.value===!0},{default:q(()=>[M(t(U),I({ref:t(v),"data-state":t(he)(t(e).state.value),"data-disabled":t(e).disabled.value?"":void 0,style:{pointerEvents:"none"},"as-child":s.asChild,as:s.as},s.$attrs),{default:q(()=>[y(s.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),_e=Ze;const[ea,aa]=_("PinInputRoot");var ta=T({inheritAttrs:!1,__name:"PinInputRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},placeholder:{type:String,required:!1,default:""},mask:{type:Boolean,required:!1},otp:{type:Boolean,required:!1},type:{type:null,required:!1,default:"text"},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","complete"],setup(a,{emit:v}){const e=a,s=v,{mask:n,otp:k,placeholder:p,type:o,disabled:f,dir:m}=Ve(e),{forwardRef:S}=ee(),R=Ke(m),h=de(e,"modelValue",s,{defaultValue:e.defaultValue??[],passive:!0,deep:!0}),l=F(()=>Array.isArray(h.value)?[...h.value]:[]),c=j(new Set);function r(C){c.value.add(C)}const b=F(()=>e.type==="number"),w=F(()=>l.value.filter($=>!!$||b.value&&$===0).length===c.value.size);return pe(h,()=>{w.value&&s("complete",h.value)},{deep:!0}),aa({modelValue:h,currentModelValue:l,mask:n,otp:k,placeholder:p,type:o,dir:R,disabled:f,isCompleted:w,inputElements:c,onInputElementChange:r,isNumericMode:b}),(C,$)=>(u(),g(t(U),I(C.$attrs,{ref:t(S),dir:t(R),"data-complete":w.value?"":void 0,"data-disabled":t(f)?"":void 0}),{default:q(()=>[y(C.$slots,"default",{modelValue:t(h)}),M(ge,{id:C.id,as:"input",feature:"focusable",tabindex:"-1",value:l.value.join(""),name:C.name??"",disabled:t(f),required:C.required,onFocus:$[0]||($[0]=P=>Array.from(c.value)?.[0]?.focus())},null,8,["id","value","name","disabled","required"])]),_:3},16,["dir","data-complete","data-disabled"]))}}),la=ta,sa=T({__name:"PinInputInput",props:{index:{type:Number,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},setup(a){const v=a,e=ea(),s=F(()=>Array.from(e.inputElements.value)),n=F(()=>e.currentModelValue.value[v.index]),k=F(()=>v.disabled||e.disabled.value),p=F(()=>e.otp.value),o=F(()=>e.mask.value),{primitiveElement:f,currentElement:m}=we();function S(i){const d=i.target;if((i.data?.length??0)>1){C(d.value);return}if(e.isNumericMode.value&&!/^\d*$/.test(d.value)){d.value=d.value.replace(/\D/g,"");return}d.value=i.data||d.value.slice(-1),P(v.index,d.value);const x=s.value[v.index+1];x&&x.focus()}function R(){const i=m.value;Ie(()=>{i&&!i.value&&(i.placeholder=e.placeholder.value)})}function h(i){Ge(i,Ce(),void 0,{itemsArray:s.value,focus:!0,loop:!1,arrowKeyOptions:"horizontal",dir:e.dir.value})}function l(i){if(i.preventDefault(),i.target.value)P(v.index,"");else{const B=s.value[v.index-1];B&&(B.focus(),P(v.index-1,""))}}function c(i){i.key==="Delete"&&(i.preventDefault(),P(v.index,""))}function r(i){const d=i.target;d.setSelectionRange(1,1),d.value||(d.placeholder=""),setTimeout(()=>{d.value||(d.placeholder="")})}function b(i){R()}function w(i){i.preventDefault();const d=i.clipboardData;if(!d)return;const x=d.getData("text");C(x)}function C(i){const d=[...e.currentModelValue.value],x=i.length>=s.value.length?0:v.index,B=Math.min(x+i.length,s.value.length);for(let A=x;A<B;A++){const L=s.value[A],D=i[A-x];e.isNumericMode.value&&!/^\d*$/.test(D)||(d[A]=D,L.focus())}e.modelValue.value=d,s.value[B]?.focus()}function $(i){let d=i.length-1;for(;d>=0&&i[d]==="";)i.pop(),d--;return i}function P(i,d){const x=[...e.currentModelValue.value];if(e.isNumericMode.value){const B=+d;d===""||isNaN(B)?delete x[i]:x[i]=B}else x[i]=d;e.modelValue.value=$(x)}return pe(n,()=>{n.value||R()}),me(()=>{e.onInputElementChange(m.value)}),$e(()=>{e.inputElements?.value.delete(m.value)}),(i,d)=>(u(),g(t(U),{ref_key:"primitiveElement",ref:f,autocapitalize:"none",as:i.as,"as-child":i.asChild,autocomplete:p.value?"one-time-code":"false",type:o.value?"password":"text",inputmode:t(e).isNumericMode.value?"numeric":"text",pattern:t(e).isNumericMode.value?"[0-9]*":void 0,placeholder:t(e).placeholder.value,value:n.value,disabled:k.value,"data-disabled":k.value?"":void 0,"data-complete":t(e).isCompleted.value?"":void 0,"aria-label":`pin input ${i.index+1} of ${s.value.length}`,onInput:d[0]||(d[0]=x=>S(x)),onKeydown:[K(h,["left","right","up","down","home","end"]),K(l,["backspace"]),K(c,["delete"])],onFocus:r,onBlur:b,onPaste:w},{default:q(()=>[y(i.$slots,"default")]),_:3},8,["as","as-child","autocomplete","type","inputmode","pattern","placeholder","value","disabled","data-disabled","data-complete","aria-label"]))}}),ra=sa;const ia={slots:{root:"relative flex items-start",container:"flex items-center",base:"rounded-sm ring ring-inset ring-accented overflow-hidden focus-visible:outline-2 focus-visible:outline-offset-2",indicator:"flex items-center justify-center size-full text-inverted",icon:"shrink-0 size-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"focus-visible:outline-primary",indicator:"bg-primary"},secondary:{base:"focus-visible:outline-secondary",indicator:"bg-secondary"},success:{base:"focus-visible:outline-success",indicator:"bg-success"},info:{base:"focus-visible:outline-info",indicator:"bg-info"},warning:{base:"focus-visible:outline-warning",indicator:"bg-warning"},error:{base:"focus-visible:outline-error",indicator:"bg-error"},neutral:{base:"focus-visible:outline-inverted",indicator:"bg-inverted"}},variant:{list:{root:""},card:{root:"border border-muted rounded-lg"}},indicator:{start:{root:"flex-row",wrapper:"ms-2"},end:{root:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{base:"size-3",container:"h-4",wrapper:"text-xs"},sm:{base:"size-3.5",container:"h-4",wrapper:"text-xs"},md:{base:"size-4",container:"h-5",wrapper:"text-sm"},lg:{base:"size-4.5",container:"h-5",wrapper:"text-sm"},xl:{base:"size-5",container:"h-6",wrapper:"text-base"}},required:{true:{label:"after:content-['*'] after:ms-0.5 after:text-error"}},disabled:{true:{root:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},checked:{true:""}},compoundVariants:[{size:"xs",variant:"card",class:{root:"p-2.5"}},{size:"sm",variant:"card",class:{root:"p-3"}},{size:"md",variant:"card",class:{root:"p-3.5"}},{size:"lg",variant:"card",class:{root:"p-4"}},{size:"xl",variant:"card",class:{root:"p-4.5"}},{color:"primary",variant:"card",class:{root:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{root:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{root:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{root:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{root:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{root:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{root:"has-data-[state=checked]:border-inverted"}},{variant:"card",disabled:!0,class:{root:"cursor-not-allowed"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},oa=Object.assign({inheritAttrs:!1},{__name:"UCheckbox",props:le({as:{type:null,required:!1},label:{type:String,required:!1},description:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},indicator:{type:null,required:!1},icon:{type:null,required:!1},indeterminateIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},disabled:{type:Boolean,required:!1},required:{type:Boolean,required:!1},name:{type:String,required:!1},value:{type:null,required:!1},id:{type:String,required:!1},defaultValue:{type:[Boolean,String],required:!1}},{modelValue:{type:[Boolean,String],default:void 0},modelModifiers:{}}),emits:le(["change"],["update:modelValue"]),setup(a,{emit:v}){const e=a,s=fe(),n=v,k=Se(a,"modelValue",{type:[Boolean,String],default:void 0}),p=ae(),o=Be(ve(e,"required","value","defaultValue")),{id:f,emitFormChange:m,emitFormInput:S,size:R,color:h,name:l,disabled:c,ariaAttrs:r}=be(e),b=f.value??ze(),w=F(()=>N({extend:N(ia),...p.ui?.checkbox||{}})({size:R.value,color:h.value,variant:e.variant,indicator:e.indicator,required:e.required,disabled:c.value}));function C($){const P=new Event("change",{target:{value:$}});n("change",P),m(),S()}return($,P)=>(u(),g(t(U),{as:!a.variant||a.variant==="list"?a.as:t(oe),"data-slot":"root",class:V(w.value.root({class:[e.ui?.root,e.class]}))},{default:q(()=>[O("div",{"data-slot":"container",class:V(w.value.container({class:e.ui?.container}))},[M(t(Ye),I({id:t(b)},{...t(o),...$.$attrs,...t(r)},{modelValue:k.value,"onUpdate:modelValue":[P[0]||(P[0]=i=>k.value=i),C],name:t(l),disabled:t(c),"data-slot":"base",class:w.value.base({class:e.ui?.base})}),{default:q(({modelValue:i})=>[M(t(_e),{"data-slot":"indicator",class:V(w.value.indicator({class:e.ui?.indicator}))},{default:q(()=>[i==="indeterminate"?(u(),g(G,{key:0,name:a.indeterminateIcon||t(p).ui.icons.minus,"data-slot":"icon",class:V(w.value.icon({class:e.ui?.icon}))},null,8,["name","class"])):(u(),g(G,{key:1,name:a.icon||t(p).ui.icons.check,"data-slot":"icon",class:V(w.value.icon({class:e.ui?.icon}))},null,8,["name","class"]))]),_:2},1032,["class"])]),_:1},16,["id","modelValue","name","disabled","class"])],2),a.label||s.label||a.description||s.description?(u(),E("div",{key:0,"data-slot":"wrapper",class:V(w.value.wrapper({class:e.ui?.wrapper}))},[a.label||s.label?(u(),g(ce(!a.variant||a.variant==="list"?t(oe):"p"),{key:0,for:t(b),"data-slot":"label",class:V(w.value.label({class:e.ui?.label}))},{default:q(()=>[y($.$slots,"label",{label:a.label},()=>[H(Q(a.label),1)])]),_:3},8,["for","class"])):z("",!0),a.description||s.description?(u(),E("p",{key:1,"data-slot":"description",class:V(w.value.description({class:e.ui?.description}))},[y($.$slots,"description",{description:a.description},()=>[H(Q(a.description),1)])],2)):z("",!0)],2)):z("",!0)]),_:3},8,["as","class"]))}}),na={slots:{root:"relative inline-flex items-center gap-1.5",base:["rounded-md border-0 placeholder:text-dimmed text-center focus:outline-none disabled:cursor-not-allowed disabled:opacity-75","transition-colors"]},variants:{size:{xs:{base:"size-6 text-xs"},sm:{base:"size-7 text-xs"},md:{base:"size-8 text-sm"},lg:{base:"size-9 text-sm"},xl:{base:"size-10 text-base"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",soft:"text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented",ghost:"text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},highlight:{true:""}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-error"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-inverted"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},ua={__name:"UPinInput",props:{as:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},length:{type:[Number,String],required:!1,default:5},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},highlight:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},mask:{type:Boolean,required:!1},modelValue:{type:null,required:!1},name:{type:String,required:!1},otp:{type:Boolean,required:!1},placeholder:{type:String,required:!1},required:{type:Boolean,required:!1},type:{type:null,required:!1,default:"text"}},emits:["update:modelValue","complete","change","blur"],setup(a,{expose:v,emit:e}){const s=a,n=e,k=ae(),p=Fe(ve(s,"disabled","id","mask","name","otp","required","type"),n),{emitFormInput:o,emitFormFocus:f,emitFormChange:m,emitFormBlur:S,size:R,color:h,id:l,name:c,highlight:r,disabled:b,ariaAttrs:w}=be(s),C=F(()=>N({extend:N(na),...k.ui?.pinInput||{}})({color:h.value,variant:s.variant,size:R.value,highlight:r.value})),$=j([]),P=j(!1);function i(B){const A=new Event("change",{target:{value:B}});n("change",A),m()}function d(B){(!B.relatedTarget||P.value)&&(n("blur",B),S())}function x(){s.autofocus&&$.value[0]?.$el?.focus()}return me(()=>{setTimeout(()=>{x()},s.autofocusDelay)}),v({inputsRef:$}),(B,A)=>(u(),g(t(la),I({...t(p),...t(w)},{id:t(l),name:t(c),placeholder:a.placeholder,"model-value":a.modelValue,"default-value":a.defaultValue,"data-slot":"root",class:C.value.root({class:[s.ui?.root,s.class]}),"onUpdate:modelValue":A[0]||(A[0]=L=>t(o)()),onComplete:i}),{default:q(()=>[(u(!0),E(Y,null,Z(t(Re)(s.length),(L,D)=>(u(),g(t(ra),{key:L,ref_for:!0,ref:ye=>$.value[D]=ye,index:D,"data-slot":"base",class:V(C.value.base({class:s.ui?.base})),disabled:t(b),onBlur:d,onFocus:t(f)},null,8,["index","class","disabled","onFocus"]))),128))]),_:1},16,["id","name","placeholder","model-value","default-value","class"]))}},da={slots:{root:"w-full space-y-6",header:"flex flex-col text-center",leading:"mb-2",leadingIcon:"size-8 shrink-0 inline-block",title:"text-xl text-pretty font-semibold text-highlighted",description:"mt-1 text-base text-pretty text-muted",body:"gap-y-6 flex flex-col",providers:"space-y-3",checkbox:"",select:"w-full",password:"w-full",otp:"w-full",input:"w-full",separator:"",form:"space-y-5",footer:"text-sm text-center text-muted mt-2"}},ca=Object.assign({inheritAttrs:!1},{__name:"UAuthForm",props:{as:{type:null,required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},fields:{type:Array,required:!1},providers:{type:Array,required:!1},separator:{type:[String,Object],required:!1,default:"or"},submit:{type:Object,required:!1},schema:{type:null,required:!1},validate:{type:Function,required:!1},validateOn:{type:Array,required:!1},validateOnInputDelay:{type:Number,required:!1},disabled:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},class:{type:null,required:!1},onSubmit:{type:Function,required:!1},ui:{type:null,required:!1}},emits:["submit"],setup(a,{expose:v}){const e=a,s=Pe((e.fields||[]).reduce((l,c)=>(c.name&&(l[c.name]=c.defaultValue),l),{})),n=fe(),{t:k}=Ee(),p=ae(),o=F(()=>N({extend:N(da),...p.ui?.authForm||{}})()),f=se("formRef"),m=j(!1),S=se("passwordRef");function R(l){const c=["name","errorPattern","help","error","hint","size","required","eagerValidation","validateOnInputDelay"];return l.type==="checkbox"?re(l,c):re(l,[...c,"label","description"])}function h(l){const c=["errorPattern","help","error","hint","size","required","eagerValidation","validateOnInputDelay"];return l.type==="checkbox"||l.type==="select"||l.type==="otp"?l.type==="checkbox"?X(l,[...c,"type"]):X(l,[...c,"type","label","description"]):X(l,[...c,"label","description"])}return v({formRef:f,state:s}),(l,c)=>(u(),g(t(U),{as:a.as,"data-slot":"root",class:V(o.value.root({class:[e.ui?.root,e.class]}))},{default:q(()=>[a.icon||n.leading||a.title||n.title||a.description||n.description||n.header?(u(),E("div",{key:0,"data-slot":"header",class:V(o.value.header({class:e.ui?.header}))},[y(l.$slots,"header",{},()=>[a.icon||n.leading?(u(),E("div",{key:0,"data-slot":"leading",class:V(o.value.leading({class:e.ui?.leading}))},[y(l.$slots,"leading",{ui:o.value},()=>[a.icon?(u(),g(G,{key:0,name:a.icon,"data-slot":"leadingIcon",class:V(o.value.leadingIcon({class:e.ui?.leadingIcon}))},null,8,["name","class"])):z("",!0)])],2)):z("",!0),a.title||n.title?(u(),E("div",{key:1,"data-slot":"title",class:V(o.value.title({class:e.ui?.title}))},[y(l.$slots,"title",{},()=>[H(Q(a.title),1)])],2)):z("",!0),a.description||n.description?(u(),E("div",{key:2,"data-slot":"description",class:V(o.value.description({class:e.ui?.description}))},[y(l.$slots,"description",{},()=>[H(Q(a.description),1)])],2)):z("",!0)])],2)):z("",!0),O("div",{"data-slot":"body",class:V(o.value.body({class:e.ui?.body}))},[a.providers?.length||n.providers?(u(),E("div",{key:0,"data-slot":"providers",class:V(o.value.providers({class:e.ui?.providers}))},[y(l.$slots,"providers",{},()=>[(u(!0),E(Y,null,Z(a.providers,(r,b)=>(u(),g(W,I({key:b,block:"",color:"neutral",variant:"subtle"},{ref_for:!0},r),null,16))),128))])],2)):z("",!0),a.providers?.length&&a.fields?.length?(u(),g(Ue,I({key:1},typeof a.separator=="object"?a.separator:{label:a.separator},{"data-slot":"separator",class:o.value.separator({class:e.ui?.separator})}),null,16,["class"])):z("",!0),a.fields?.length?(u(),g(De,I({key:2,ref_key:"formRef",ref:f,state:s,schema:a.schema,validate:a.validate,"validate-on":a.validateOn,disabled:a.disabled,"loading-auto":a.loadingAuto,"data-slot":"form",class:o.value.form({class:e.ui?.form})},l.$attrs,{onSubmit:a.onSubmit}),{default:q(()=>[(u(!0),E(Y,null,Z(a.fields,r=>(u(),g(Oe,I({key:r.name},{ref_for:!0},R(r)),Ae({default:q(()=>[y(l.$slots,`${r.name}-field`,I({ref_for:!0},{state:s,field:r}),()=>[r.type==="checkbox"?(u(),g(oa,I({key:0,modelValue:s[r.name],"onUpdate:modelValue":b=>s[r.name]=b,"data-slot":"checkbox",class:o.value.checkbox({class:e.ui?.checkbox})},{ref_for:!0},h(r)),null,16,["modelValue","onUpdate:modelValue","class"])):r.type==="select"?(u(),g(Le,I({key:1,modelValue:s[r.name],"onUpdate:modelValue":b=>s[r.name]=b,"data-slot":"select",class:o.value.select({class:e.ui?.select})},{ref_for:!0},h(r)),null,16,["modelValue","onUpdate:modelValue","class"])):r.type==="otp"?(u(),g(ua,I({key:2,id:r.name,modelValue:s[r.name],"onUpdate:modelValue":b=>s[r.name]=b,"data-slot":"otp",class:o.value.otp({class:e.ui?.otp})},{ref_for:!0},Object.assign({},h(r),typeof r.otp=="object"?r.otp:{}),{otp:""}),null,16,["id","modelValue","onUpdate:modelValue","class"])):r.type==="password"?(u(),g(ue,I({key:3,ref_for:!0,ref_key:"passwordRef",ref:S,modelValue:s[r.name],"onUpdate:modelValue":b=>s[r.name]=b,"data-slot":"password",class:o.value.password({class:e.ui?.password})},{ref_for:!0},h(r),{type:m.value?"text":"password"}),{trailing:q(()=>[M(W,{color:"neutral",variant:"link",size:"sm",icon:m.value?t(p).ui.icons.eyeOff:t(p).ui.icons.eye,"aria-label":m.value?t(k)("authForm.hidePassword"):t(k)("authForm.showPassword"),"aria-pressed":m.value,"aria-controls":S.value?.[0]?.inputRef?.id,onClick:c[0]||(c[0]=b=>m.value=!m.value)},null,8,["icon","aria-label","aria-pressed","aria-controls"])]),_:1},16,["modelValue","onUpdate:modelValue","class","type"])):(u(),g(ue,I({key:4,modelValue:s[r.name],"onUpdate:modelValue":b=>s[r.name]=b,"data-slot":"input",class:o.value.input({class:e.ui?.input})},{ref_for:!0},h(r)),null,16,["modelValue","onUpdate:modelValue","class"]))])]),_:2},[n[`${r.name}-label`]?{name:"label",fn:q(()=>[y(l.$slots,`${r.name}-label`)]),key:"0"}:void 0,n[`${r.name}-description`]?{name:"description",fn:q(()=>[y(l.$slots,`${r.name}-description`)]),key:"1"}:void 0,n[`${r.name}-hint`]?{name:"hint",fn:q(()=>[y(l.$slots,`${r.name}-hint`)]),key:"2"}:void 0,n[`${r.name}-help`]?{name:"help",fn:q(()=>[y(l.$slots,`${r.name}-help`)]),key:"3"}:void 0,n[`${r.name}-error`]?{name:"error",fn:q(()=>[y(l.$slots,`${r.name}-error`)]),key:"4"}:void 0]),1040))),128)),n.validation?y(l.$slots,"validation",{key:0}):z("",!0),y(l.$slots,"submit",{loading:a.loading},()=>[M(W,I({type:"submit",label:t(k)("authForm.submit"),block:"",loading:a.loading,"loading-auto":a.loadingAuto},a.submit),null,16,["label","loading","loading-auto"])])]),_:3},16,["state","schema","validate","validate-on","disabled","loading-auto","class","onSubmit"])):z("",!0)],2),n.footer?(u(),E("div",{key:1,"data-slot":"footer",class:V(o.value.footer({class:e.ui?.footer}))},[y(l.$slots,"footer")],2)):z("",!0)]),_:3},8,["as","class"]))}}),pa={class:"flex flex-col items-center gap-6 mb-8"},ma={class:"flex items-center gap-3"},Na=T({__name:"login",setup(a){const{login:v,isAuthenticated:e}=He(),s=Me(),n=j(!1),k=[{name:"email",type:"email",label:"Email",placeholder:"admin@example.com",required:!0},{name:"password",type:"password",label:"Password",placeholder:"Enter your password",required:!0}];Ne(()=>{e.value&&ie("/")});async function p(o){n.value=!0;const f=await v(o.data.email,o.data.password);f.error?s.add({title:"Login failed",description:f.error.message||"Invalid email or password",color:"error",icon:"i-lucide-alert-circle"}):ie("/"),n.value=!1}return(o,f)=>{const m=G,S=ca;return u(),E("div",null,[O("div",pa,[O("div",ma,[M(m,{name:"i-lucide-brain",class:"size-10 text-primary"}),f[0]||(f[0]=O("span",{class:"font-bold text-2xl"},"Cognova",-1))])]),M(S,{title:"Sign In",description:"Enter your credentials to access your account",fields:k,submit:{label:"Sign In",loading:t(n)},onSubmit:p},null,8,["submit"])])}}});export{Na as default};
@@ -1 +0,0 @@
1
- import{a0 as f}from"./2dNDtTiv.js";const I="menu.itemSelect",E=["Enter"," "],_=["ArrowDown","PageUp","Home"],d=["ArrowUp","PageDown","End"],T=[..._,...d],w={ltr:[...E,"ArrowRight"],rtl:[...E,"ArrowLeft"]},P={ltr:["ArrowLeft"],rtl:["ArrowRight"]};function Y(t){return t?"open":"closed"}function l(t){return t==="indeterminate"}function x(t){return l(t)?"indeterminate":t?"checked":"unchecked"}function g(t){const e=f();for(const n of t)if(n===e||(n.focus(),f()!==e))return}function m(t,e){const{x:n,y:s}=t;let o=!1;for(let r=0,i=e.length-1;r<e.length;i=r++){const a=e[r].x,c=e[r].y,S=e[i].x,u=e[i].y;c>s!=u>s&&n<(S-a)*(s-c)/(u-c)+a&&(o=!o)}return o}function h(t,e){if(!e)return!1;const n={x:t.clientX,y:t.clientY};return m(n,e)}function K(t){return t.pointerType==="mouse"}export{T as F,I,d as L,E as S,K as a,x as b,l as c,P as d,w as e,g as f,Y as g,h as i};
@@ -1 +0,0 @@
1
- import{c as e,b as r,a5 as t}from"./2dNDtTiv.js";function a(o){return e(()=>r(o)?!!t(o)?.closest("form"):!0)}export{a as u};
@@ -1 +0,0 @@
1
- import{bp as N,c as L,bq as P,e as E,Z as R,f as M,a7 as x,aT as U,br as C,be as q,k as D,a2 as I,a5 as H,bs as $,a as Y,a_ as j,ah as X,y as _,Q as z,R as G,S as Q,a4 as V,C as Z,a3 as J,bt as b,a0 as A,bu as F,bv as ee,bw as te,bx as k,by as B,bz as ne}from"./2dNDtTiv.js";const ae=N(()=>{const e=E(new Map),t=E(),n=L(()=>{for(const v of e.value.values())if(v)return!0;return!1}),o=R({scrollBody:E(!0)});let c=null;const p=()=>{document.body.style.paddingRight="",document.body.style.marginRight="",document.body.style.pointerEvents="",document.documentElement.style.removeProperty("--scrollbar-width"),document.body.style.overflow=t.value??"",C&&c?.(),t.value=void 0};return M(n,(v,m)=>{if(!x)return;if(!v){m&&p();return}t.value===void 0&&(t.value=document.body.style.overflow);const l=window.innerWidth-document.documentElement.clientWidth,h={padding:l,margin:0},r=o.scrollBody?.value?typeof o.scrollBody.value=="object"?U({padding:o.scrollBody.value.padding===!0?l:o.scrollBody.value.padding,margin:o.scrollBody.value.margin===!0?l:o.scrollBody.value.margin},h):h:{padding:0,margin:0};l>0&&(document.body.style.paddingRight=typeof r.padding=="number"?`${r.padding}px`:String(r.padding),document.body.style.marginRight=typeof r.margin=="number"?`${r.margin}px`:String(r.margin),document.documentElement.style.setProperty("--scrollbar-width",`${l}px`),document.body.style.overflow="hidden"),C&&(c=q(document,"touchmove",a=>re(a),{passive:!1})),D(()=>{document.body.style.pointerEvents="none",document.body.style.overflow="hidden"})},{immediate:!0,flush:"sync"}),e});function pe(e){const t=Math.random().toString(36).substring(2,7),n=ae();n.value.set(t,e??!1);const o=L({get:()=>n.value.get(t)??!1,set:c=>n.value.set(t,c)});return P(()=>{n.value.delete(t)}),o}function W(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth<e.scrollWidth||t.overflowY==="auto"&&e.clientHeight<e.scrollHeight)return!0;{const n=e.parentNode;return!(n instanceof Element)||n.tagName==="BODY"?!1:W(n)}}function re(e){const t=e||window.event,n=t.target;return n instanceof Element&&W(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}var oe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},g=new WeakMap,w=new WeakMap,S={},O=0,K=function(e){return e&&(e.host||K(e.parentNode))},se=function(e,t){return t.map(function(n){if(e.contains(n))return n;var o=K(n);return o&&e.contains(o)?o:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},ue=function(e,t,n,o){var c=se(t,Array.isArray(e)?e:[e]);S[n]||(S[n]=new WeakMap);var p=S[n],v=[],m=new Set,l=new Set(c),h=function(a){!a||m.has(a)||(m.add(a),h(a.parentNode))};c.forEach(h);var r=function(a){!a||l.has(a)||Array.prototype.forEach.call(a.children,function(s){if(m.has(s))r(s);else try{var d=s.getAttribute(o),u=d!==null&&d!=="false",i=(g.get(s)||0)+1,f=(p.get(s)||0)+1;g.set(s,i),p.set(s,f),v.push(s),i===1&&u&&w.set(s,!0),f===1&&s.setAttribute(n,"true"),u||s.setAttribute(o,"true")}catch(y){console.error("aria-hidden: cannot operate on ",s,y)}})};return r(t),m.clear(),O++,function(){v.forEach(function(a){var s=g.get(a)-1,d=p.get(a)-1;g.set(a,s),p.set(a,d),s||(w.has(a)||a.removeAttribute(o),w.delete(a)),d||a.removeAttribute(n)}),O--,O||(g=new WeakMap,g=new WeakMap,w=new WeakMap,S={})}},ie=function(e,t,n){n===void 0&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),c=oe(e);return c?(o.push.apply(o,Array.from(c.querySelectorAll("[aria-live], script"))),ue(o,c,n,"aria-hidden")):function(){return null}};function me(e){let t;M(()=>H(e),n=>{n?t=ie(n):t&&t()}),I(()=>{t&&t()})}const ce=$(()=>E([]));function le(){const e=ce();return{add(t){const n=e.value[0];t!==n&&n?.pause(),e.value=T(e.value,t),e.value.unshift(t)},remove(t){e.value=T(e.value,t),e.value[0]?.resume()}}}function T(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function de(e){return e.filter(t=>t.tagName!=="A")}var fe=Y({__name:"FocusScope",props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["mountAutoFocus","unmountAutoFocus"],setup(e,{emit:t}){const n=e,o=t,{currentRef:c,currentElement:p}=j(),v=E(null),m=le(),l=X({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});_(r=>{if(!x)return;const a=p.value;if(!n.trapped)return;function s(f){if(l.paused||!a)return;const y=f.target;a.contains(y)?v.value=y:b(v.value,{select:!0})}function d(f){if(l.paused||!a)return;const y=f.relatedTarget;y!==null&&(a.contains(y)||b(v.value,{select:!0}))}function u(f){a.contains(v.value)||b(a)}document.addEventListener("focusin",s),document.addEventListener("focusout",d);const i=new MutationObserver(u);a&&i.observe(a,{childList:!0,subtree:!0}),r(()=>{document.removeEventListener("focusin",s),document.removeEventListener("focusout",d),i.disconnect()})}),_(async r=>{const a=p.value;if(await D(),!a)return;m.add(l);const s=A();if(!a.contains(s)){const u=new CustomEvent(F,B);a.addEventListener(F,i=>o("mountAutoFocus",i)),a.dispatchEvent(u),u.defaultPrevented||(ee(de(te(a)),{select:!0}),A()===s&&b(a))}r(()=>{a.removeEventListener(F,f=>o("mountAutoFocus",f));const u=new CustomEvent(k,B),i=f=>{o("unmountAutoFocus",f)};a.addEventListener(k,i),a.dispatchEvent(u),setTimeout(()=>{u.defaultPrevented||b(s??document.body,{select:!0}),a.removeEventListener(k,i),m.remove(l)},0)})});function h(r){if(!n.loop&&!n.trapped||l.paused)return;const a=r.key==="Tab"&&!r.altKey&&!r.ctrlKey&&!r.metaKey,s=A();if(a&&s){const d=r.currentTarget,[u,i]=ne(d);u&&i?!r.shiftKey&&s===i?(r.preventDefault(),n.loop&&b(u,{select:!0})):r.shiftKey&&s===u&&(r.preventDefault(),n.loop&&b(i,{select:!0})):s===d&&r.preventDefault()}}return(r,a)=>(G(),z(Z(J),{ref_key:"currentRef",ref:c,tabindex:"-1","as-child":r.asChild,as:r.as,onKeydown:h},{default:Q(()=>[V(r.$slots,"default")]),_:3},8,["as-child","as"]))}}),ye=fe;export{ye as F,pe as a,me as u};
@@ -1 +0,0 @@
1
- {"id":"515be38f-7222-4e4b-80cb-cef7594b1834","timestamp":1771738148484,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}