cognova 0.2.2 → 0.2.3

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 (508) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/-AsXrBBy.js +1 -0
  3. package/.output/public/_nuxt/2W1RPpXM.js +71 -0
  4. package/.output/public/_nuxt/{C4pxqdgg.js → 5UFq_rDn.js} +1 -1
  5. package/.output/public/_nuxt/5Zh-9l8_.js +1 -0
  6. package/.output/public/_nuxt/{DK9jxJ0g.js → 90UksHlj.js} +1 -1
  7. package/.output/public/_nuxt/{9IQmsEjr.js → 9QKmiSP_.js} +1 -1
  8. package/.output/public/_nuxt/{BOj6t-oo.js → ARbTpeGy.js} +1 -1
  9. package/.output/public/_nuxt/{DyRelyfs.js → ApfLnl06.js} +1 -1
  10. package/.output/public/_nuxt/{DznawRFW.js → B-2BuR5g.js} +1 -1
  11. package/.output/public/_nuxt/B4u7Mczo.js +1 -0
  12. package/.output/public/_nuxt/{DAQhmSv4.js → B5dI_yLq.js} +1 -1
  13. package/.output/public/_nuxt/{Bm9LyG4F.js → B6fnZcA6.js} +1 -1
  14. package/.output/public/_nuxt/{9QnH0xQM.js → B7uMSBlN.js} +1 -1
  15. package/.output/public/_nuxt/BBiRyPlN.js +1 -0
  16. package/.output/public/_nuxt/{iBGCpHdw.js → BF7413u4.js} +2 -2
  17. package/.output/public/_nuxt/{4MiwzAAt.js → BGtUoCgi.js} +2 -2
  18. package/.output/public/_nuxt/{CxuZBC8n.js → BHe4VLtR.js} +1 -1
  19. package/.output/public/_nuxt/{D3RiUGdz.js → BIMBp1Tj.js} +1 -1
  20. package/.output/public/_nuxt/{g20UHUCv.js → BIvPdoE3.js} +1 -1
  21. package/.output/public/_nuxt/BKaRtCjP.js +1 -0
  22. package/.output/public/_nuxt/BLmc9T7l.js +1 -0
  23. package/.output/public/_nuxt/BMdnU6BF.js +1 -0
  24. package/.output/public/_nuxt/{CKkC3Ptm.js → BOgdaA_8.js} +1 -1
  25. package/.output/public/_nuxt/{BffWCM73.js → BQZfTrUg.js} +1 -1
  26. package/.output/public/_nuxt/BQnublTW.js +1 -0
  27. package/.output/public/_nuxt/BSsvedap.js +1 -0
  28. package/.output/public/_nuxt/{Ci7UEZQh.js → BVypxKRT.js} +1 -1
  29. package/.output/public/_nuxt/{CYP_MLH8.js → BWqJFnZy.js} +1 -1
  30. package/.output/public/_nuxt/BXxYdXMr.js +1 -0
  31. package/.output/public/_nuxt/{D_3Rq1BS.js → B_17gAr_.js} +1 -1
  32. package/.output/public/_nuxt/B_qzFVK_.js +1 -0
  33. package/.output/public/_nuxt/{BqKFIuRj.js → BbRPwpIX.js} +1 -1
  34. package/.output/public/_nuxt/BhrzKbv9.js +1 -0
  35. package/.output/public/_nuxt/{Cqy_L_ip.js → Bl6LNGlA.js} +1 -1
  36. package/.output/public/_nuxt/{Fukkqjkf.js → BlPToGni.js} +1 -1
  37. package/.output/public/_nuxt/{DHKLCQRG.js → BlwHr46F.js} +1 -1
  38. package/.output/public/_nuxt/{C6aqGHu1.js → BnmwiZbF.js} +1 -1
  39. package/.output/public/_nuxt/BqtxLJaf.js +1 -0
  40. package/.output/public/_nuxt/{eko-0FUm.js → BrEXdify.js} +1 -1
  41. package/.output/public/_nuxt/{D3e44mCL.js → BtNnS4m3.js} +1 -1
  42. package/.output/public/_nuxt/{BCtfQCzC.js → BtVIBBUN.js} +1 -1
  43. package/.output/public/_nuxt/Bw5h4Jaf.js +1 -0
  44. package/.output/public/_nuxt/{FvlxxmNk.js → Bwcpy7gC.js} +2 -2
  45. package/.output/public/_nuxt/{Db2v8O7O.js → C0TUK31m.js} +1 -1
  46. package/.output/public/_nuxt/C1T4GK6c.js +1 -0
  47. package/.output/public/_nuxt/C2ANDZen.js +1 -0
  48. package/.output/public/_nuxt/{CqU2XbzO.js → C2RZSTuy.js} +1 -1
  49. package/.output/public/_nuxt/C3dYlP5x.js +1 -0
  50. package/.output/public/_nuxt/{m5kGCDpI.js → C3sh_tLi.js} +3 -3
  51. package/.output/public/_nuxt/{BjjCvHLT.js → C4zyxZG7.js} +1 -1
  52. package/.output/public/_nuxt/{C3FxIITy.js → C5I-XBZT.js} +1 -1
  53. package/.output/public/_nuxt/{yuf23kh9.js → CC4Goztu.js} +1 -1
  54. package/.output/public/_nuxt/CC77iplr.js +1 -0
  55. package/.output/public/_nuxt/{xuzLdW-o.js → CFyD2NHP.js} +1 -1
  56. package/.output/public/_nuxt/{CsJ9KhQ4.js → CGQDTeaO.js} +1 -1
  57. package/.output/public/_nuxt/{DnjGH3SQ.js → CHpwuMSk.js} +1 -1
  58. package/.output/public/_nuxt/CLzcRUcs.js +1 -0
  59. package/.output/public/_nuxt/CM2phu_3.js +1 -0
  60. package/.output/public/_nuxt/{Cr8ixbr1.js → CQpYRq61.js} +1 -1
  61. package/.output/public/_nuxt/{C0JKNMDO.js → CUN4bYcg.js} +1 -1
  62. package/.output/public/_nuxt/{CmzH6R-N.js → CXoITXft.js} +19 -19
  63. package/.output/public/_nuxt/CYjcQPl-.js +1 -0
  64. package/.output/public/_nuxt/{DGX0tzL8.js → CZ32KfaS.js} +1 -1
  65. package/.output/public/_nuxt/CclZMdca.js +1 -0
  66. package/.output/public/_nuxt/{C69W7k2j.js → CdpT_Vb6.js} +1 -1
  67. package/.output/public/_nuxt/CflRLvFC.js +1 -0
  68. package/.output/public/_nuxt/{gBC9k4Qj.js → CkqNv7sq.js} +2 -2
  69. package/.output/public/_nuxt/ClXDAYjE.js +1 -0
  70. package/.output/public/_nuxt/CrZGoMo_.js +1 -0
  71. package/.output/public/_nuxt/{BZXMQuYP.js → CvJtd2Af.js} +1 -1
  72. package/.output/public/_nuxt/{DKZxeXDQ.js → Cwtd8e-P.js} +1 -1
  73. package/.output/public/_nuxt/{nIU2F7ia.js → Cx44SSNp.js} +3 -3
  74. package/.output/public/_nuxt/{BzOqrmGa.js → CxEVzuCn.js} +3 -3
  75. package/.output/public/_nuxt/{Dy_Cq5LQ.js → CzIMQevQ.js} +1 -1
  76. package/.output/public/_nuxt/{D6t3dcTl.js → D0P9llU7.js} +1 -1
  77. package/.output/public/_nuxt/{JJ3634gV.js → D1DYuOOm.js} +1 -1
  78. package/.output/public/_nuxt/{BAIz-dEB.js → D1dDc8Vw.js} +1 -1
  79. package/.output/public/_nuxt/{DSRrg8JT.js → D1r0uqf3.js} +1 -1
  80. package/.output/public/_nuxt/{CNnJrDvu.js → D3a8R1T6.js} +1 -1
  81. package/.output/public/_nuxt/{B1X4Bzcy.js → D5EZbuub.js} +1 -1
  82. package/.output/public/_nuxt/D9V13KTK.js +1 -0
  83. package/.output/public/_nuxt/DAE2hbP7.js +1 -0
  84. package/.output/public/_nuxt/{Cvp7FI3T.js → DAIbdyS6.js} +1 -1
  85. package/.output/public/_nuxt/{EuOqK1A6.js → DAvlXjt0.js} +1 -1
  86. package/.output/public/_nuxt/DBKzwexZ.js +1 -0
  87. package/.output/public/_nuxt/{wCGVE8_e.js → DEATxnaF.js} +1 -1
  88. package/.output/public/_nuxt/{cABRLVee.js → DFg8PvHV.js} +1 -1
  89. package/.output/public/_nuxt/DM4MyqI-.js +1 -0
  90. package/.output/public/_nuxt/{Cdt3I3Go.js → DNE7kw9s.js} +1 -1
  91. package/.output/public/_nuxt/DO0oG4fG.js +1 -0
  92. package/.output/public/_nuxt/{B6S_ob86.js → DPFugPaB.js} +1 -1
  93. package/.output/public/_nuxt/{DJjDvbZE.js → DQlXU6_H.js} +1 -1
  94. package/.output/public/_nuxt/DQvuQpwh.js +1 -0
  95. package/.output/public/_nuxt/{sf57orEk.js → DRlG_bnX.js} +1 -1
  96. package/.output/public/_nuxt/{C6RC3lA1.js → DSQj-oMk.js} +1 -1
  97. package/.output/public/_nuxt/{CeIVm4A3.js → DU6ewLkE.js} +1 -1
  98. package/.output/public/_nuxt/{Cp2MA0cm.js → DWhzQg7B.js} +1 -1
  99. package/.output/public/_nuxt/{DJMS2og1.js → D_vK6VPK.js} +1 -1
  100. package/.output/public/_nuxt/{CihWZmJe.js → DaBp0Gba.js} +2 -2
  101. package/.output/public/_nuxt/DaH2FbAy.js +1 -0
  102. package/.output/public/_nuxt/{CtYFj7k1.js → DaJo0CeV.js} +1 -1
  103. package/.output/public/_nuxt/DauLdT7p.js +1 -0
  104. package/.output/public/_nuxt/{DG-T44jj.js → DdPA4eTX.js} +1 -1
  105. package/.output/public/_nuxt/{YuTZB7sD.js → DeAGWdWK.js} +1 -1
  106. package/.output/public/_nuxt/{CitkKxhw.js → DfF1qofg.js} +1 -1
  107. package/.output/public/_nuxt/{Daz4MeL6.js → DiGBA-aA.js} +1 -1
  108. package/.output/public/_nuxt/DiJxF69i.js +1 -0
  109. package/.output/public/_nuxt/{DIoI0uJm.js → DkBIU-1F.js} +1 -1
  110. package/.output/public/_nuxt/DmAM6bZ0.js +1 -0
  111. package/.output/public/_nuxt/DmeAKr3J.js +1 -0
  112. package/.output/public/_nuxt/DmmTnMzZ.js +1 -0
  113. package/.output/public/_nuxt/{Lwdv_RKd.js → DqsUSndS.js} +1 -1
  114. package/.output/public/_nuxt/Dvw-hR3Y.js +1 -0
  115. package/.output/public/_nuxt/{CVgTJeSq.js → Dz6sfh81.js} +1 -1
  116. package/.output/public/_nuxt/{BYjadNrw.js → FNhYm5FX.js} +1 -1
  117. package/.output/public/_nuxt/{Nb2jBtYT.js → HOeKUnra.js} +1 -1
  118. package/.output/public/_nuxt/{CtchsY6e.js → IR1jkN7B.js} +1 -1
  119. package/.output/public/_nuxt/{DCzfkCGa.js → MpTk6K7N.js} +1 -1
  120. package/.output/public/_nuxt/NZ7Wz6LP.js +1 -0
  121. package/.output/public/_nuxt/{DfQu3kEw.js → PqWbiAD2.js} +1 -1
  122. package/.output/public/_nuxt/{Jez9DHn7.js → Tu4FhMRc.js} +1 -1
  123. package/.output/public/_nuxt/{B3y_Qqox.js → UKPXYG4z.js} +1 -1
  124. package/.output/public/_nuxt/{BlAZO7nq.js → UO2Y9Nve.js} +1 -1
  125. package/.output/public/_nuxt/{KKK6HVeG.js → XHiJSquP.js} +1 -1
  126. package/.output/public/_nuxt/YGWAImQo.js +1 -0
  127. package/.output/public/_nuxt/{ghuJ76mD.js → ZR87XvwB.js} +1 -1
  128. package/.output/public/_nuxt/{yNrp2XvX.js → _E89BQAO.js} +1 -1
  129. package/.output/public/_nuxt/{C_BdYLzz.js → aiXk7zRt.js} +1 -1
  130. package/.output/public/_nuxt/builds/latest.json +1 -1
  131. package/.output/public/_nuxt/builds/meta/91727fcc-bf7f-407f-9b1e-092017fcfee0.json +1 -0
  132. package/.output/public/_nuxt/cL7whuPe.js +1 -0
  133. package/.output/public/_nuxt/{BasgsT_S.js → ct6_k5IW.js} +1 -1
  134. package/.output/public/_nuxt/entry._7ZkP07A.css +1 -0
  135. package/.output/public/_nuxt/{DTDgHTuh.js → fEUQvmn8.js} +2 -2
  136. package/.output/public/_nuxt/{FNC8XZTk.js → gGlaVUMD.js} +1 -1
  137. package/.output/public/_nuxt/gjmGkVlL.js +1 -0
  138. package/.output/public/_nuxt/{IRSbVPIu.js → m5001Uvl.js} +1 -1
  139. package/.output/public/_nuxt/{_CYZi8HN.js → mQkFCz_M.js} +1 -1
  140. package/.output/public/_nuxt/{BxXOsXrM.js → p9l1LjVc.js} +10 -10
  141. package/.output/public/_nuxt/{BsEZoHd1.js → qR_K5W8V.js} +1 -1
  142. package/.output/public/_nuxt/{BrNqhp1a.js → t_9QQ4MF.js} +7 -7
  143. package/.output/public/_nuxt/{pcUI-zuY.js → uc4c4mfb.js} +1 -1
  144. package/.output/public/_nuxt/{usage.vakN1lvi.css → usage.BDeyCZwW.css} +1 -1
  145. package/.output/public/_nuxt/wPSLEMBw.js +1 -0
  146. package/.output/public/_nuxt/xKRwul0f.js +1 -0
  147. package/.output/public/_nuxt/{BWhMnjID.js → xgpiGSxb.js} +1 -1
  148. package/.output/public/_nuxt/xxnk7j0F.js +1 -0
  149. package/.output/public/favicon.svg +1 -0
  150. package/.output/server/chunks/build/A-BWukSPjS.mjs +1 -0
  151. package/.output/server/chunks/build/Accordion-BaJYea6e.mjs +1 -0
  152. package/.output/server/chunks/build/AccordionItem-DdG2zgcN.mjs +1 -0
  153. package/.output/server/chunks/build/Badge-BrU9UkCv.mjs +1 -0
  154. package/.output/server/chunks/build/Blockquote-DND8wTkU.mjs +1 -0
  155. package/.output/server/chunks/build/Callout-1halpaEg.mjs +1 -0
  156. package/.output/server/chunks/build/Card-BHCSDKDt.mjs +1 -0
  157. package/.output/server/chunks/build/CardGroup-BOuJcNGp.mjs +1 -0
  158. package/.output/server/chunks/build/Caution-BP3y-TcC.mjs +1 -0
  159. package/.output/server/chunks/build/Code-B1xkAS5a.mjs +1 -0
  160. package/.output/server/chunks/build/CodeCollapse-BIhaNa22.mjs +1 -0
  161. package/.output/server/chunks/build/CodeGroup-BviYyCuo.mjs +1 -0
  162. package/.output/server/chunks/build/CodeIcon-CWD5HcV7.mjs +2 -1
  163. package/.output/server/chunks/build/CodePreview-D8PsCQ6m.mjs +1 -0
  164. package/.output/server/chunks/build/CodeTree-BUTLupmL.mjs +1 -0
  165. package/.output/server/chunks/build/Collapsible-BIvXNaSq.mjs +1 -0
  166. package/.output/server/chunks/build/DropdownMenu-BBrV9nXz.mjs +1 -1
  167. package/.output/server/chunks/build/EditorToolbar-DIfb5arC.mjs +1 -1
  168. package/.output/server/chunks/build/Em-DsIz_BnD.mjs +1 -0
  169. package/.output/server/chunks/build/Field-cwwmSQDT.mjs +1 -0
  170. package/.output/server/chunks/build/FieldGroup-CAIpQv8s.mjs +1 -0
  171. package/.output/server/chunks/build/H1-BbFNsPyP.mjs +1 -0
  172. package/.output/server/chunks/build/H2-vHTl_pWr.mjs +1 -0
  173. package/.output/server/chunks/build/H3-7eTcfO3s.mjs +1 -0
  174. package/.output/server/chunks/build/H4-C89p_PKO.mjs +1 -0
  175. package/.output/server/chunks/build/Hr-Bm8RlL3O.mjs +1 -0
  176. package/.output/server/chunks/build/Icon-Dp9iy0BI.mjs +1 -0
  177. package/.output/server/chunks/build/Img-CWLmvN1t.mjs +2 -1
  178. package/.output/server/chunks/build/Kbd-CQG6I_Ch.mjs +1 -0
  179. package/.output/server/chunks/build/Li-Bw1QUaGv.mjs +1 -0
  180. package/.output/server/chunks/build/MDC-Dx0YPDhe.mjs +1 -1
  181. package/.output/server/chunks/build/Note-CHkjm9jm.mjs +1 -0
  182. package/.output/server/chunks/build/Ol-D-fPnfFM.mjs +1 -0
  183. package/.output/server/chunks/build/P-B5YI1V9y.mjs +1 -0
  184. package/.output/server/chunks/build/Pre-ChiJcf3C.mjs +1 -0
  185. package/.output/server/chunks/build/ProseH5-DahJyv8h.mjs +1 -0
  186. package/.output/server/chunks/build/ProseH6-C4Is5h6c.mjs +1 -0
  187. package/.output/server/chunks/build/Select-BB1oLrCD.mjs +1 -1
  188. package/.output/server/chunks/build/SelectMenu-DPssg6zD.mjs +1 -1
  189. package/.output/server/chunks/build/Steps-BZpvXfzb.mjs +1 -0
  190. package/.output/server/chunks/build/Strong-DXJqOWL3.mjs +1 -0
  191. package/.output/server/chunks/build/Table-BSrLZ7dt.mjs +1 -0
  192. package/.output/server/chunks/build/Table-DCwTlhCj.mjs +1 -1
  193. package/.output/server/chunks/build/Tabs-Dk3nvOFF.mjs +1 -0
  194. package/.output/server/chunks/build/TabsItem-CDhyuBtJ.mjs +1 -0
  195. package/.output/server/chunks/build/Tbody-CjMT5oH-.mjs +1 -0
  196. package/.output/server/chunks/build/Td-ZBVaEjFN.mjs +1 -0
  197. package/.output/server/chunks/build/Th-D317icbd.mjs +1 -0
  198. package/.output/server/chunks/build/Thead-Ca_ZESTK.mjs +1 -0
  199. package/.output/server/chunks/build/Tip-CP3oTARR.mjs +1 -0
  200. package/.output/server/chunks/build/Tooltip-TRyl6dje.mjs +1 -1
  201. package/.output/server/chunks/build/Tr-6jI8j9gD.mjs +1 -0
  202. package/.output/server/chunks/build/{docs-Dk2JnYq3.mjs → Tree-DUhXKd8y.mjs} +46 -2235
  203. package/.output/server/chunks/build/Tree-DUhXKd8y.mjs.map +1 -0
  204. package/.output/server/chunks/build/Ul-BUGj_CPb.mjs +1 -0
  205. package/.output/server/chunks/build/Warning-BJ8G6cxC.mjs +1 -0
  206. package/.output/server/chunks/build/_id_-DN00UDdO.mjs +1 -0
  207. package/.output/server/chunks/build/_id_-DN00UDdO.mjs.map +1 -1
  208. package/.output/server/chunks/build/_name_-BnS_KEfX.mjs +1592 -0
  209. package/.output/server/chunks/build/_name_-BnS_KEfX.mjs.map +1 -0
  210. package/.output/server/chunks/build/{_uuid_-0UgdUhfY.mjs → _uuid_-DfJaumTE.mjs} +5 -4
  211. package/.output/server/chunks/build/{_uuid_-0UgdUhfY.mjs.map → _uuid_-DfJaumTE.mjs.map} +1 -1
  212. package/.output/server/chunks/build/auth-BGPNH2QJ.mjs +20 -0
  213. package/.output/server/chunks/build/auth-BGPNH2QJ.mjs.map +1 -0
  214. package/.output/server/chunks/build/auth-CvD7MqKW.mjs +1 -0
  215. package/.output/server/chunks/build/auth-CvD7MqKW.mjs.map +1 -1
  216. package/.output/server/chunks/build/chat-CZMiB68R.mjs +1 -0
  217. package/.output/server/chunks/build/chat-CZMiB68R.mjs.map +1 -1
  218. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  219. package/.output/server/chunks/build/cookie-C_iulBi6.mjs +1 -1
  220. package/.output/server/chunks/build/{dashboard-YEscLBQN.mjs → dashboard-CLk1NlbR.mjs} +15 -4
  221. package/.output/server/chunks/build/dashboard-CLk1NlbR.mjs.map +1 -0
  222. package/.output/server/chunks/build/{dashboard-CpMVYnDV.mjs → dashboard-CiVTAZuF.mjs} +12 -4
  223. package/.output/server/chunks/build/{dashboard-CpMVYnDV.mjs.map → dashboard-CiVTAZuF.mjs.map} +1 -1
  224. package/.output/server/chunks/build/docs-ChGwOPg5.mjs +2204 -0
  225. package/.output/server/chunks/build/docs-ChGwOPg5.mjs.map +1 -0
  226. package/.output/server/chunks/build/error-404-BzbcNcdU.mjs +1 -0
  227. package/.output/server/chunks/build/error-500-uCDjGRW8.mjs +1 -0
  228. package/.output/server/chunks/build/fetch-BB7Qzkwe.mjs +1 -1
  229. package/.output/server/chunks/build/{hooks-DP8WoUPS.mjs → hooks-D328DcO6.mjs} +3 -2
  230. package/.output/server/chunks/build/hooks-D328DcO6.mjs.map +1 -0
  231. package/.output/server/chunks/build/{index-DVx-QlhP.mjs → index-Byt-3Yq6.mjs} +3 -2
  232. package/.output/server/chunks/build/{index-DVx-QlhP.mjs.map → index-Byt-3Yq6.mjs.map} +1 -1
  233. package/.output/server/chunks/build/{index-Ba_bPJgk.mjs → index-C9PuieXh.mjs} +3 -2
  234. package/.output/server/chunks/build/index-C9PuieXh.mjs.map +1 -0
  235. package/.output/server/chunks/build/index-C_LcBBgO.mjs +1508 -0
  236. package/.output/server/chunks/build/index-C_LcBBgO.mjs.map +1 -0
  237. package/.output/server/chunks/build/index-CxDxc9fm.mjs +1 -1
  238. package/.output/server/chunks/build/index-DzdvIi8V.mjs +1 -0
  239. package/.output/server/chunks/build/library-CbWcF5wT.mjs +601 -0
  240. package/.output/server/chunks/build/library-CbWcF5wT.mjs.map +1 -0
  241. package/.output/server/chunks/build/{login-BAysbpyX.mjs → login-DnnElTl2.mjs} +15 -7
  242. package/.output/server/chunks/build/{login-BAysbpyX.mjs.map → login-DnnElTl2.mjs.map} +1 -1
  243. package/.output/server/chunks/build/memories-BqA719O1.mjs +1 -0
  244. package/.output/server/chunks/build/memories-BqA719O1.mjs.map +1 -1
  245. package/.output/server/chunks/build/server.mjs +62 -34
  246. package/.output/server/chunks/build/server.mjs.map +1 -1
  247. package/.output/server/chunks/build/settings-DdkKCJ00.mjs +1 -0
  248. package/.output/server/chunks/build/settings-DdkKCJ00.mjs.map +1 -1
  249. package/.output/server/chunks/build/styles.mjs +2 -2
  250. package/.output/server/chunks/build/{tasks-DiOi1HG_.mjs → tasks-DnAFqbtt.mjs} +3 -2
  251. package/.output/server/chunks/build/tasks-DnAFqbtt.mjs.map +1 -0
  252. package/.output/server/chunks/build/{usage-H_mcd_fz.mjs → usage-CSrBh4Or.mjs} +159 -44
  253. package/.output/server/chunks/build/{usage-H_mcd_fz.mjs.map → usage-CSrBh4Or.mjs.map} +1 -1
  254. package/.output/server/chunks/build/{usePreferences-CzC8fRzd.mjs → usePreferences-DH1QjxOj.mjs} +7 -1
  255. package/.output/server/chunks/build/usePreferences-DH1QjxOj.mjs.map +1 -0
  256. package/.output/server/chunks/build/{view-Dc8mvzCB.mjs → view-n2sYa4Zh.mjs} +4 -3
  257. package/.output/server/chunks/build/{view-Dc8mvzCB.mjs.map → view-n2sYa4Zh.mjs.map} +1 -1
  258. package/.output/server/chunks/build/virtual_nuxt__Users_tony_Documents_GitHub_second-brain_node_modules_.cache_nuxt_.nuxt_mdc-imports-PtwWlZ2H.mjs +1 -0
  259. package/.output/server/chunks/nitro/nitro.mjs +1247 -824
  260. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  261. package/.output/server/chunks/routes/_ws/chat.mjs +2 -1
  262. package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
  263. package/.output/server/chunks/routes/api/agents/_id/cancel.post.mjs +1 -0
  264. package/.output/server/chunks/routes/api/agents/_id/cancel.post.mjs.map +1 -1
  265. package/.output/server/chunks/routes/api/agents/_id/run.post.mjs +1 -0
  266. package/.output/server/chunks/routes/api/agents/_id/run.post.mjs.map +1 -1
  267. package/.output/server/chunks/routes/api/agents/_id/runs.get.mjs +1 -0
  268. package/.output/server/chunks/routes/api/agents/_id/runs.get.mjs.map +1 -1
  269. package/.output/server/chunks/routes/api/agents/_id/stats.get.mjs +1 -0
  270. package/.output/server/chunks/routes/api/agents/_id/stats.get.mjs.map +1 -1
  271. package/.output/server/chunks/routes/api/agents/_id_.delete.mjs +1 -0
  272. package/.output/server/chunks/routes/api/agents/_id_.delete.mjs.map +1 -1
  273. package/.output/server/chunks/routes/api/agents/_id_.get.mjs +1 -0
  274. package/.output/server/chunks/routes/api/agents/_id_.get.mjs.map +1 -1
  275. package/.output/server/chunks/routes/api/agents/_id_.patch.mjs +1 -0
  276. package/.output/server/chunks/routes/api/agents/_id_.patch.mjs.map +1 -1
  277. package/.output/server/chunks/routes/api/agents/stats.get.mjs +1 -0
  278. package/.output/server/chunks/routes/api/agents/stats.get.mjs.map +1 -1
  279. package/.output/server/chunks/routes/api/auth/_...all_.mjs +1 -0
  280. package/.output/server/chunks/routes/api/auth/_...all_.mjs.map +1 -1
  281. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +1 -0
  282. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs.map +1 -1
  283. package/.output/server/chunks/routes/api/conversations/_id_.get.mjs +1 -0
  284. package/.output/server/chunks/routes/api/conversations/_id_.get.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +1 -0
  286. package/.output/server/chunks/routes/api/dashboard/overview.get.mjs.map +1 -1
  287. package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -0
  288. package/.output/server/chunks/routes/api/documents/_id/public.get.mjs.map +1 -1
  289. package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -0
  290. package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs.map +1 -1
  291. package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -0
  292. package/.output/server/chunks/routes/api/documents/by-path.post.mjs.map +1 -1
  293. package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -0
  294. package/.output/server/chunks/routes/api/documents/index.delete.mjs.map +1 -1
  295. package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -0
  296. package/.output/server/chunks/routes/api/documents/index.put.mjs.map +1 -1
  297. package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -0
  298. package/.output/server/chunks/routes/api/fs/delete.post.mjs.map +1 -1
  299. package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -0
  300. package/.output/server/chunks/routes/api/fs/list.get.mjs.map +1 -1
  301. package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -0
  302. package/.output/server/chunks/routes/api/fs/mkdir.post.mjs.map +1 -1
  303. package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -0
  304. package/.output/server/chunks/routes/api/fs/move.post.mjs.map +1 -1
  305. package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -0
  306. package/.output/server/chunks/routes/api/fs/read.post.mjs.map +1 -1
  307. package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -0
  308. package/.output/server/chunks/routes/api/fs/rename.post.mjs.map +1 -1
  309. package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -0
  310. package/.output/server/chunks/routes/api/fs/write.post.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/health.get.mjs +1 -0
  312. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/home.get.mjs +1 -0
  314. package/.output/server/chunks/routes/api/home.get.mjs.map +1 -1
  315. package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -0
  316. package/.output/server/chunks/routes/api/hooks/index.get.mjs.map +1 -1
  317. package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -0
  318. package/.output/server/chunks/routes/api/hooks/index.post.mjs.map +1 -1
  319. package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -0
  320. package/.output/server/chunks/routes/api/hooks/stats.get.mjs.map +1 -1
  321. package/.output/server/chunks/routes/api/index.get.mjs +1 -0
  322. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  323. package/.output/server/chunks/routes/api/index.get2.mjs +1 -0
  324. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  325. package/.output/server/chunks/routes/api/index.get3.mjs +1 -0
  326. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  327. package/.output/server/chunks/routes/api/index.get4.mjs +1 -0
  328. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
  330. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/index.get6.mjs +1 -0
  332. package/.output/server/chunks/routes/api/index.get6.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/index.get7.mjs +40 -38
  334. package/.output/server/chunks/routes/api/index.get7.mjs.map +1 -1
  335. package/.output/server/chunks/routes/api/index.get8.mjs +33 -38
  336. package/.output/server/chunks/routes/api/index.get8.mjs.map +1 -1
  337. package/.output/server/chunks/routes/api/index.get9.mjs +83 -0
  338. package/.output/server/chunks/routes/api/index.get9.mjs.map +1 -0
  339. package/.output/server/chunks/routes/api/index.post.mjs +1 -0
  340. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  341. package/.output/server/chunks/routes/api/index.post2.mjs +1 -0
  342. package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
  343. package/.output/server/chunks/routes/api/index.post3.mjs +1 -0
  344. package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
  345. package/.output/server/chunks/routes/api/index.post4.mjs +1 -0
  346. package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
  347. package/.output/server/chunks/routes/api/index.put.mjs +1 -0
  348. package/.output/server/chunks/routes/api/index.put.mjs.map +1 -1
  349. package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -0
  350. package/.output/server/chunks/routes/api/memory/_id_.delete.mjs.map +1 -1
  351. package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -0
  352. package/.output/server/chunks/routes/api/memory/context.get.mjs.map +1 -1
  353. package/.output/server/chunks/routes/api/memory/extract.post.mjs +2 -1
  354. package/.output/server/chunks/routes/api/memory/extract.post.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/memory/search.get.mjs +1 -0
  356. package/.output/server/chunks/routes/api/memory/search.get.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -0
  358. package/.output/server/chunks/routes/api/memory/store.post.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -0
  360. package/.output/server/chunks/routes/api/projects/index.delete.mjs.map +1 -1
  361. package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -0
  362. package/.output/server/chunks/routes/api/projects/index.get.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -0
  364. package/.output/server/chunks/routes/api/projects/index.put.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -0
  366. package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs.map +1 -1
  367. package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -0
  368. package/.output/server/chunks/routes/api/secrets/_key_.get.mjs.map +1 -1
  369. package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -0
  370. package/.output/server/chunks/routes/api/secrets/_key_.put.mjs.map +1 -1
  371. package/.output/server/chunks/routes/api/skills/_name/export.get.mjs +72 -0
  372. package/.output/server/chunks/routes/api/skills/_name/export.get.mjs.map +1 -0
  373. package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs +73 -0
  374. package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs.map +1 -0
  375. package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs +71 -0
  376. package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs.map +1 -0
  377. package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs +69 -0
  378. package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs.map +1 -0
  379. package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs +69 -0
  380. package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs.map +1 -0
  381. package/.output/server/chunks/routes/api/skills/_name/index.get.mjs +60 -0
  382. package/.output/server/chunks/routes/api/skills/_name/index.get.mjs.map +1 -0
  383. package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs +87 -0
  384. package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs.map +1 -0
  385. package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs +62 -0
  386. package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs.map +1 -0
  387. package/.output/server/chunks/routes/api/skills/create.post.mjs +79 -0
  388. package/.output/server/chunks/routes/api/skills/create.post.mjs.map +1 -0
  389. package/.output/server/chunks/routes/api/skills/generate.post.mjs +143 -0
  390. package/.output/server/chunks/routes/api/skills/generate.post.mjs.map +1 -0
  391. package/.output/server/chunks/routes/api/skills/import.post.mjs +96 -0
  392. package/.output/server/chunks/routes/api/skills/import.post.mjs.map +1 -0
  393. package/.output/server/chunks/routes/api/skills/index.get.mjs +82 -0
  394. package/.output/server/chunks/routes/api/skills/index.get.mjs.map +1 -0
  395. package/.output/server/chunks/routes/api/skills/index.get2.mjs +83 -0
  396. package/.output/server/chunks/routes/api/skills/index.get2.mjs.map +1 -0
  397. package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs +72 -0
  398. package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs.map +1 -0
  399. package/.output/server/chunks/routes/api/skills/library/install.post.mjs +90 -0
  400. package/.output/server/chunks/routes/api/skills/library/install.post.mjs.map +1 -0
  401. package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -0
  402. package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs.map +1 -1
  403. package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -0
  404. package/.output/server/chunks/routes/api/tasks/index.delete.mjs.map +1 -1
  405. package/.output/server/chunks/routes/api/tasks/index.get.mjs +1 -0
  406. package/.output/server/chunks/routes/api/tasks/index.get.mjs.map +1 -1
  407. package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -0
  408. package/.output/server/chunks/routes/api/tasks/index.put.mjs.map +1 -1
  409. package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -0
  410. package/.output/server/chunks/routes/api/tasks/tags.get.mjs.map +1 -1
  411. package/.output/server/chunks/routes/api/usage/stats.get.mjs +4 -1
  412. package/.output/server/chunks/routes/api/usage/stats.get.mjs.map +1 -1
  413. package/.output/server/chunks/routes/api/user/email.patch.mjs +2 -1
  414. package/.output/server/chunks/routes/api/user/email.patch.mjs.map +1 -1
  415. package/.output/server/chunks/routes/notifications.mjs +2 -1
  416. package/.output/server/chunks/routes/notifications.mjs.map +1 -1
  417. package/.output/server/chunks/routes/renderer.mjs +2 -2
  418. package/.output/server/chunks/routes/terminal.mjs +2 -1
  419. package/.output/server/chunks/routes/terminal.mjs.map +1 -1
  420. package/.output/server/index.mjs +2 -1
  421. package/.output/server/index.mjs.map +1 -1
  422. package/.output/server/node_modules/adm-zip/adm-zip.js +949 -0
  423. package/.output/server/node_modules/adm-zip/headers/entryHeader.js +374 -0
  424. package/.output/server/node_modules/adm-zip/headers/index.js +2 -0
  425. package/.output/server/node_modules/adm-zip/headers/mainHeader.js +130 -0
  426. package/.output/server/node_modules/adm-zip/methods/deflater.js +33 -0
  427. package/.output/server/node_modules/adm-zip/methods/index.js +3 -0
  428. package/.output/server/node_modules/adm-zip/methods/inflater.js +34 -0
  429. package/.output/server/node_modules/adm-zip/methods/zipcrypto.js +175 -0
  430. package/.output/server/node_modules/adm-zip/package.json +49 -0
  431. package/.output/server/node_modules/adm-zip/util/constants.js +142 -0
  432. package/.output/server/node_modules/adm-zip/util/decoder.js +5 -0
  433. package/.output/server/node_modules/adm-zip/util/errors.js +63 -0
  434. package/.output/server/node_modules/adm-zip/util/fattr.js +76 -0
  435. package/.output/server/node_modules/adm-zip/util/index.js +5 -0
  436. package/.output/server/node_modules/adm-zip/util/utils.js +336 -0
  437. package/.output/server/node_modules/adm-zip/zipEntry.js +405 -0
  438. package/.output/server/node_modules/adm-zip/zipFile.js +446 -0
  439. package/.output/server/package.json +2 -1
  440. package/README.md +3 -0
  441. package/app/app.vue +1 -1
  442. package/app/components/dashboard/StatCards.vue +21 -2
  443. package/app/components/usage/UsageCostChart.client.vue +59 -23
  444. package/app/components/usage/UsageCostChart.server.vue +1 -0
  445. package/app/components/usage/UsageSourceDonut.client.vue +17 -5
  446. package/app/components/usage/UsageSourceDonut.server.vue +1 -0
  447. package/app/components/usage/UsageTopConsumers.vue +13 -3
  448. package/app/composables/usePreferences.ts +9 -1
  449. package/app/layouts/auth.vue +0 -10
  450. package/app/pages/login.vue +18 -8
  451. package/app/pages/skills/[name].vue +12 -0
  452. package/app/pages/skills/index.vue +47 -0
  453. package/app/pages/usage.vue +43 -16
  454. package/dist/cli/index.js +12 -13
  455. package/package.json +5 -3
  456. package/server/api/skills/[name]/export.get.ts +45 -0
  457. package/server/api/skills/import.post.ts +87 -0
  458. package/server/api/usage/stats.get.ts +4 -2
  459. package/shared/types/index.ts +2 -1
  460. package/.output/public/_nuxt/5ZXA0Ckq.js +0 -1
  461. package/.output/public/_nuxt/BIIJhjQO.js +0 -1
  462. package/.output/public/_nuxt/BIckl6wA.js +0 -1
  463. package/.output/public/_nuxt/BJ3o57WW.js +0 -1
  464. package/.output/public/_nuxt/BNetzZzF.js +0 -1
  465. package/.output/public/_nuxt/BS0ofHJK.js +0 -1
  466. package/.output/public/_nuxt/B_3_hrpn.js +0 -1
  467. package/.output/public/_nuxt/BaBZjmMC.js +0 -1
  468. package/.output/public/_nuxt/BaMqDm5u.js +0 -1
  469. package/.output/public/_nuxt/BhzMoffi.js +0 -1
  470. package/.output/public/_nuxt/BlhFigLL.js +0 -1
  471. package/.output/public/_nuxt/BoIxv-gM.js +0 -1
  472. package/.output/public/_nuxt/Br19oYkq.js +0 -1
  473. package/.output/public/_nuxt/C0kh_F7v.js +0 -1
  474. package/.output/public/_nuxt/C61KgSco.js +0 -1
  475. package/.output/public/_nuxt/CJUdYEdO.js +0 -1
  476. package/.output/public/_nuxt/CVJQGP1Q.js +0 -1
  477. package/.output/public/_nuxt/CWMUi89H.js +0 -1
  478. package/.output/public/_nuxt/Cdu2qGgq.js +0 -1
  479. package/.output/public/_nuxt/CeIu7z4p.js +0 -1
  480. package/.output/public/_nuxt/D2689qk4.js +0 -1
  481. package/.output/public/_nuxt/D31L7Ks6.js +0 -1
  482. package/.output/public/_nuxt/DB359q8R.js +0 -1
  483. package/.output/public/_nuxt/DHG66LPS.js +0 -1
  484. package/.output/public/_nuxt/DJ5V-y_x.js +0 -1
  485. package/.output/public/_nuxt/DLETdGFL.js +0 -1
  486. package/.output/public/_nuxt/DOICd-Ld.js +0 -1
  487. package/.output/public/_nuxt/DPEcH-gi.js +0 -65
  488. package/.output/public/_nuxt/Db8-_gO7.js +0 -1
  489. package/.output/public/_nuxt/DgV-EDJ9.js +0 -1
  490. package/.output/public/_nuxt/Dp2X5R2m.js +0 -1
  491. package/.output/public/_nuxt/DqB723Z0.js +0 -1
  492. package/.output/public/_nuxt/Q8Ps7oN5.js +0 -1
  493. package/.output/public/_nuxt/SXTDhzp6.js +0 -1
  494. package/.output/public/_nuxt/Sg2Lwc46.js +0 -1
  495. package/.output/public/_nuxt/_J_7XIn-.js +0 -1
  496. package/.output/public/_nuxt/builds/meta/a1e9100c-1a4f-4f7e-bb53-9dbe0d07effb.json +0 -1
  497. package/.output/public/_nuxt/entry.CGxIBGAf.css +0 -1
  498. package/.output/public/_nuxt/inmzPrjz.js +0 -1
  499. package/.output/public/_nuxt/oIX-ZDN6.js +0 -1
  500. package/.output/server/chunks/build/auth-CDHRohj4.mjs +0 -77
  501. package/.output/server/chunks/build/auth-CDHRohj4.mjs.map +0 -1
  502. package/.output/server/chunks/build/dashboard-YEscLBQN.mjs.map +0 -1
  503. package/.output/server/chunks/build/docs-Dk2JnYq3.mjs.map +0 -1
  504. package/.output/server/chunks/build/hooks-DP8WoUPS.mjs.map +0 -1
  505. package/.output/server/chunks/build/index-Ba_bPJgk.mjs.map +0 -1
  506. package/.output/server/chunks/build/tasks-DiOi1HG_.mjs.map +0 -1
  507. package/.output/server/chunks/build/usePreferences-CzC8fRzd.mjs.map +0 -1
  508. /package/.output/public/_nuxt/{useCopyToClipboard.Be_IvFWy.css → CodeEditor.Be_IvFWy.css} +0 -0
@@ -0,0 +1,1592 @@
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$5 } from './DashboardNavbar-Cpq8yKA0.mjs';
2
+ import { _ as _sfc_main$4 } from './Skeleton-DZqsQzFi.mjs';
3
+ import { _ as _sfc_main$1$2, a as _sfc_main$9 } from './Tree-DUhXKd8y.mjs';
4
+ import { Q as useRoute, A as useRouter, i as useToast, g as _sfc_main$d, _ as _sfc_main$8, l as __nuxt_component_0$1, T as __nuxt_component_12 } from './server.mjs';
5
+ import { _ as _sfc_main$a } from './Modal-Z_SoWhh-.mjs';
6
+ import { _ as _sfc_main$b } from './Card-G40WAFiH.mjs';
7
+ import { _ as _sfc_main$c } from './Input-CV2hlBHo.mjs';
8
+ import { defineComponent, computed, ref, mergeProps, withCtx, unref, createBlock, createCommentVNode, openBlock, Fragment, renderList, createVNode, createTextVNode, toDisplayString, withModifiers, isRef, withKeys, watch, useSSRContext } from 'vue';
9
+ import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrInterpolate } from 'vue/server-renderer';
10
+ import { _ as _sfc_main$7 } from './Badge-C1RKkIgG.mjs';
11
+ import { _ as _sfc_main$6 } from './Switch-GWdksmY6.mjs';
12
+ import { _ as _sfc_main$e } from './FormField-Caux_FCv.mjs';
13
+ import './DashboardSidebarToggle-Chnqv04k.mjs';
14
+ import '@vueuse/core';
15
+ import './cookie-C_iulBi6.mjs';
16
+ import '../nitro/nitro.mjs';
17
+ import '@anthropic-ai/claude-agent-sdk';
18
+ import 'crypto';
19
+ import 'module';
20
+ import 'path';
21
+ import 'os';
22
+ import 'node:http';
23
+ import 'node:https';
24
+ import 'node:crypto';
25
+ import 'stream';
26
+ import 'events';
27
+ import 'http';
28
+ import 'buffer';
29
+ import 'zlib';
30
+ import 'https';
31
+ import 'net';
32
+ import 'tls';
33
+ import 'url';
34
+ import 'node:events';
35
+ import 'node:buffer';
36
+ import 'node:fs';
37
+ import 'node:path';
38
+ import 'fs';
39
+ import 'drizzle-orm/postgres-js/migrator';
40
+ import 'drizzle-orm';
41
+ import 'drizzle-orm/postgres-js';
42
+ import 'postgres';
43
+ import 'drizzle-orm/pg-core';
44
+ import 'better-auth';
45
+ import 'better-auth/adapters/drizzle';
46
+ import 'chokidar';
47
+ import 'fs/promises';
48
+ import 'gray-matter';
49
+ import 'cron';
50
+ import 'node:url';
51
+ import '@iconify/utils';
52
+ import 'consola';
53
+ import './ssr-Bqnw2a-w.mjs';
54
+ import 'reka-ui';
55
+ import 'reka-ui/namespaced';
56
+ import './Kbd-Daq7k0fm.mjs';
57
+ import './virtualizer-rkZfhL1t.mjs';
58
+ import 'vue-router';
59
+ import 'tailwindcss/colors';
60
+ import '@iconify/vue';
61
+ import 'tailwind-variants';
62
+ import '@iconify/utils/lib/css/icon';
63
+ import 'perfect-debounce';
64
+ import '../routes/renderer.mjs';
65
+ import 'vue-bundle-renderer/runtime';
66
+ import 'unhead/server';
67
+ import 'devalue';
68
+ import 'unhead/plugins';
69
+ import 'unhead/utils';
70
+
71
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
72
+ __name: "FileTree",
73
+ __ssrInlineRender: true,
74
+ props: {
75
+ skillName: {},
76
+ files: {},
77
+ selectedPath: {}
78
+ },
79
+ emits: ["select", "refresh"],
80
+ setup(__props, { emit: __emit }) {
81
+ const props = __props;
82
+ const emit = __emit;
83
+ const toast = useToast();
84
+ function toTreeItems(files, parentPath = "") {
85
+ return files.map((f) => {
86
+ const fullPath = parentPath ? `${parentPath}/${f.path}` : f.path;
87
+ const item = {
88
+ id: fullPath,
89
+ label: f.name,
90
+ path: fullPath,
91
+ type: f.type,
92
+ defaultExpanded: true
93
+ };
94
+ if (f.type === "directory") {
95
+ item.children = f.children ? toTreeItems(f.children, fullPath) : [];
96
+ } else {
97
+ if (f.name.endsWith(".py")) item.icon = "i-lucide-file-code";
98
+ else if (f.name.endsWith(".md")) item.icon = "i-lucide-file-text";
99
+ else if (f.name.endsWith(".json")) item.icon = "i-lucide-file-json";
100
+ else item.icon = "i-lucide-file";
101
+ }
102
+ return item;
103
+ });
104
+ }
105
+ const treeItems = computed(() => toTreeItems(props.files));
106
+ const contextMenuTarget = ref(null);
107
+ const showNewFileModal = ref(false);
108
+ const showNewFolderModal = ref(false);
109
+ const showDeleteConfirm = ref(false);
110
+ const newItemName = ref("");
111
+ const contextMenuItems = computed(() => [
112
+ [{
113
+ label: "New File",
114
+ icon: "i-lucide-file-plus",
115
+ onSelect: () => {
116
+ newItemName.value = "";
117
+ showNewFileModal.value = true;
118
+ }
119
+ }, {
120
+ label: "New Folder",
121
+ icon: "i-lucide-folder-plus",
122
+ onSelect: () => {
123
+ newItemName.value = "";
124
+ showNewFolderModal.value = true;
125
+ }
126
+ }],
127
+ [{
128
+ label: "Delete",
129
+ icon: "i-lucide-trash-2",
130
+ color: "error",
131
+ onSelect: () => {
132
+ if (contextMenuTarget.value && contextMenuTarget.value.label !== "SKILL.md")
133
+ showDeleteConfirm.value = true;
134
+ }
135
+ }]
136
+ ]);
137
+ function handleSelect(_e, item) {
138
+ if (item.type === "file") {
139
+ emit("select", item.path);
140
+ }
141
+ }
142
+ async function handleCreateFile() {
143
+ if (!newItemName.value.trim()) return;
144
+ let filename = newItemName.value.trim();
145
+ if (!filename.includes(".")) filename += ".py";
146
+ const parentPath = contextMenuTarget.value?.type === "directory" ? contextMenuTarget.value.path : "";
147
+ const filePath = parentPath ? `${parentPath}/${filename}` : filename;
148
+ try {
149
+ await $fetch(`/api/skills/${props.skillName}/files/create`, {
150
+ method: "POST",
151
+ body: { path: filePath, type: "file" }
152
+ });
153
+ emit("refresh");
154
+ emit("select", filePath);
155
+ toast.add({ title: `Created ${filename}`, color: "success" });
156
+ } catch {
157
+ toast.add({ title: "Failed to create file", color: "error" });
158
+ }
159
+ showNewFileModal.value = false;
160
+ newItemName.value = "";
161
+ }
162
+ async function handleCreateFolder() {
163
+ if (!newItemName.value.trim()) return;
164
+ const folderName = newItemName.value.trim();
165
+ const parentPath = contextMenuTarget.value?.type === "directory" ? contextMenuTarget.value.path : "";
166
+ const folderPath = parentPath ? `${parentPath}/${folderName}` : folderName;
167
+ try {
168
+ await $fetch(`/api/skills/${props.skillName}/files/create`, {
169
+ method: "POST",
170
+ body: { path: folderPath, type: "directory" }
171
+ });
172
+ emit("refresh");
173
+ toast.add({ title: `Created ${folderName}/`, color: "success" });
174
+ } catch {
175
+ toast.add({ title: "Failed to create folder", color: "error" });
176
+ }
177
+ showNewFolderModal.value = false;
178
+ newItemName.value = "";
179
+ }
180
+ async function handleDelete() {
181
+ if (!contextMenuTarget.value) return;
182
+ try {
183
+ await $fetch(`/api/skills/${props.skillName}/files/delete`, {
184
+ method: "POST",
185
+ body: { path: contextMenuTarget.value.path }
186
+ });
187
+ emit("refresh");
188
+ toast.add({ title: `Deleted ${contextMenuTarget.value.label}`, color: "success" });
189
+ } catch {
190
+ toast.add({ title: "Failed to delete", color: "error" });
191
+ }
192
+ showDeleteConfirm.value = false;
193
+ }
194
+ return (_ctx, _push, _parent, _attrs) => {
195
+ const _component_UContextMenu = _sfc_main$1$2;
196
+ const _component_UIcon = _sfc_main$d;
197
+ const _component_UTree = _sfc_main$9;
198
+ const _component_UModal = _sfc_main$a;
199
+ const _component_UCard = _sfc_main$b;
200
+ const _component_UInput = _sfc_main$c;
201
+ const _component_UButton = _sfc_main$8;
202
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "h-full flex flex-col" }, _attrs))}>`);
203
+ _push(ssrRenderComponent(_component_UContextMenu, { items: unref(contextMenuItems) }, {
204
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
205
+ if (_push2) {
206
+ _push2(`<div class="flex-1 h-full overflow-auto p-2"${_scopeId}>`);
207
+ if (__props.files.length === 0) {
208
+ _push2(`<div class="h-full min-h-32 flex flex-col items-center justify-center text-dimmed text-sm"${_scopeId}>`);
209
+ _push2(ssrRenderComponent(_component_UIcon, {
210
+ name: "i-lucide-folder-open",
211
+ class: "size-8 mx-auto mb-2 opacity-50"
212
+ }, null, _parent2, _scopeId));
213
+ _push2(`<p${_scopeId}>No files found</p><p class="text-xs mt-1"${_scopeId}> Right-click to create a file </p></div>`);
214
+ } else {
215
+ _push2(ssrRenderComponent(_component_UTree, {
216
+ items: unref(treeItems),
217
+ "get-key": (item) => item.id,
218
+ color: "primary",
219
+ "expanded-icon": "i-lucide-folder-open",
220
+ "collapsed-icon": "i-lucide-folder",
221
+ onSelect: handleSelect
222
+ }, {
223
+ item: withCtx(({ item, expanded }, _push3, _parent3, _scopeId2) => {
224
+ if (_push3) {
225
+ _push3(`<div class="flex items-center gap-2 w-full"${_scopeId2}>`);
226
+ if (item.children?.length) {
227
+ _push3(ssrRenderComponent(_component_UIcon, {
228
+ name: expanded ? "i-lucide-folder-open" : "i-lucide-folder",
229
+ class: "size-4 shrink-0 text-dimmed"
230
+ }, null, _parent3, _scopeId2));
231
+ } else if (item.icon) {
232
+ _push3(ssrRenderComponent(_component_UIcon, {
233
+ name: item.icon,
234
+ class: "size-4 shrink-0 text-dimmed"
235
+ }, null, _parent3, _scopeId2));
236
+ } else {
237
+ _push3(ssrRenderComponent(_component_UIcon, {
238
+ name: "i-lucide-file",
239
+ class: "size-4 shrink-0 text-dimmed"
240
+ }, null, _parent3, _scopeId2));
241
+ }
242
+ _push3(`<span class="truncate"${_scopeId2}>${ssrInterpolate(item.label)}</span></div>`);
243
+ } else {
244
+ return [
245
+ createVNode("div", {
246
+ class: "flex items-center gap-2 w-full",
247
+ onContextmenu: ($event) => contextMenuTarget.value = item
248
+ }, [
249
+ item.children?.length ? (openBlock(), createBlock(_component_UIcon, {
250
+ key: 0,
251
+ name: expanded ? "i-lucide-folder-open" : "i-lucide-folder",
252
+ class: "size-4 shrink-0 text-dimmed"
253
+ }, null, 8, ["name"])) : item.icon ? (openBlock(), createBlock(_component_UIcon, {
254
+ key: 1,
255
+ name: item.icon,
256
+ class: "size-4 shrink-0 text-dimmed"
257
+ }, null, 8, ["name"])) : (openBlock(), createBlock(_component_UIcon, {
258
+ key: 2,
259
+ name: "i-lucide-file",
260
+ class: "size-4 shrink-0 text-dimmed"
261
+ })),
262
+ createVNode("span", { class: "truncate" }, toDisplayString(item.label), 1)
263
+ ], 40, ["onContextmenu"])
264
+ ];
265
+ }
266
+ }),
267
+ _: 1
268
+ }, _parent2, _scopeId));
269
+ }
270
+ _push2(`</div>`);
271
+ } else {
272
+ return [
273
+ createVNode("div", {
274
+ class: "flex-1 h-full overflow-auto p-2",
275
+ onContextmenu: withModifiers(($event) => contextMenuTarget.value = null, ["self"])
276
+ }, [
277
+ __props.files.length === 0 ? (openBlock(), createBlock("div", {
278
+ key: 0,
279
+ class: "h-full min-h-32 flex flex-col items-center justify-center text-dimmed text-sm"
280
+ }, [
281
+ createVNode(_component_UIcon, {
282
+ name: "i-lucide-folder-open",
283
+ class: "size-8 mx-auto mb-2 opacity-50"
284
+ }),
285
+ createVNode("p", null, "No files found"),
286
+ createVNode("p", { class: "text-xs mt-1" }, " Right-click to create a file ")
287
+ ])) : (openBlock(), createBlock(_component_UTree, {
288
+ key: 1,
289
+ items: unref(treeItems),
290
+ "get-key": (item) => item.id,
291
+ color: "primary",
292
+ "expanded-icon": "i-lucide-folder-open",
293
+ "collapsed-icon": "i-lucide-folder",
294
+ onSelect: handleSelect
295
+ }, {
296
+ item: withCtx(({ item, expanded }) => [
297
+ createVNode("div", {
298
+ class: "flex items-center gap-2 w-full",
299
+ onContextmenu: ($event) => contextMenuTarget.value = item
300
+ }, [
301
+ item.children?.length ? (openBlock(), createBlock(_component_UIcon, {
302
+ key: 0,
303
+ name: expanded ? "i-lucide-folder-open" : "i-lucide-folder",
304
+ class: "size-4 shrink-0 text-dimmed"
305
+ }, null, 8, ["name"])) : item.icon ? (openBlock(), createBlock(_component_UIcon, {
306
+ key: 1,
307
+ name: item.icon,
308
+ class: "size-4 shrink-0 text-dimmed"
309
+ }, null, 8, ["name"])) : (openBlock(), createBlock(_component_UIcon, {
310
+ key: 2,
311
+ name: "i-lucide-file",
312
+ class: "size-4 shrink-0 text-dimmed"
313
+ })),
314
+ createVNode("span", { class: "truncate" }, toDisplayString(item.label), 1)
315
+ ], 40, ["onContextmenu"])
316
+ ]),
317
+ _: 1
318
+ }, 8, ["items", "get-key"]))
319
+ ], 40, ["onContextmenu"])
320
+ ];
321
+ }
322
+ }),
323
+ _: 1
324
+ }, _parent));
325
+ _push(ssrRenderComponent(_component_UModal, {
326
+ open: unref(showNewFileModal),
327
+ "onUpdate:open": ($event) => isRef(showNewFileModal) ? showNewFileModal.value = $event : null
328
+ }, {
329
+ content: withCtx((_, _push2, _parent2, _scopeId) => {
330
+ if (_push2) {
331
+ _push2(ssrRenderComponent(_component_UCard, null, {
332
+ header: withCtx((_2, _push3, _parent3, _scopeId2) => {
333
+ if (_push3) {
334
+ _push3(`<div class="flex items-center gap-2"${_scopeId2}>`);
335
+ _push3(ssrRenderComponent(_component_UIcon, {
336
+ name: "i-lucide-file-plus",
337
+ class: "size-5"
338
+ }, null, _parent3, _scopeId2));
339
+ _push3(`<span class="font-semibold"${_scopeId2}>New File</span></div>`);
340
+ } else {
341
+ return [
342
+ createVNode("div", { class: "flex items-center gap-2" }, [
343
+ createVNode(_component_UIcon, {
344
+ name: "i-lucide-file-plus",
345
+ class: "size-5"
346
+ }),
347
+ createVNode("span", { class: "font-semibold" }, "New File")
348
+ ])
349
+ ];
350
+ }
351
+ }),
352
+ footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
353
+ if (_push3) {
354
+ _push3(`<div class="flex justify-end gap-2"${_scopeId2}>`);
355
+ _push3(ssrRenderComponent(_component_UButton, {
356
+ color: "neutral",
357
+ variant: "ghost",
358
+ onClick: ($event) => showNewFileModal.value = false
359
+ }, {
360
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
361
+ if (_push4) {
362
+ _push4(` Cancel `);
363
+ } else {
364
+ return [
365
+ createTextVNode(" Cancel ")
366
+ ];
367
+ }
368
+ }),
369
+ _: 1
370
+ }, _parent3, _scopeId2));
371
+ _push3(ssrRenderComponent(_component_UButton, { onClick: handleCreateFile }, {
372
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
373
+ if (_push4) {
374
+ _push4(` Create `);
375
+ } else {
376
+ return [
377
+ createTextVNode(" Create ")
378
+ ];
379
+ }
380
+ }),
381
+ _: 1
382
+ }, _parent3, _scopeId2));
383
+ _push3(`</div>`);
384
+ } else {
385
+ return [
386
+ createVNode("div", { class: "flex justify-end gap-2" }, [
387
+ createVNode(_component_UButton, {
388
+ color: "neutral",
389
+ variant: "ghost",
390
+ onClick: ($event) => showNewFileModal.value = false
391
+ }, {
392
+ default: withCtx(() => [
393
+ createTextVNode(" Cancel ")
394
+ ]),
395
+ _: 1
396
+ }, 8, ["onClick"]),
397
+ createVNode(_component_UButton, { onClick: handleCreateFile }, {
398
+ default: withCtx(() => [
399
+ createTextVNode(" Create ")
400
+ ]),
401
+ _: 1
402
+ })
403
+ ])
404
+ ];
405
+ }
406
+ }),
407
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
408
+ if (_push3) {
409
+ _push3(ssrRenderComponent(_component_UInput, {
410
+ modelValue: unref(newItemName),
411
+ "onUpdate:modelValue": ($event) => isRef(newItemName) ? newItemName.value = $event : null,
412
+ placeholder: "filename.py",
413
+ autofocus: "",
414
+ onKeyup: handleCreateFile
415
+ }, null, _parent3, _scopeId2));
416
+ } else {
417
+ return [
418
+ createVNode(_component_UInput, {
419
+ modelValue: unref(newItemName),
420
+ "onUpdate:modelValue": ($event) => isRef(newItemName) ? newItemName.value = $event : null,
421
+ placeholder: "filename.py",
422
+ autofocus: "",
423
+ onKeyup: withKeys(handleCreateFile, ["enter"])
424
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
425
+ ];
426
+ }
427
+ }),
428
+ _: 1
429
+ }, _parent2, _scopeId));
430
+ } else {
431
+ return [
432
+ createVNode(_component_UCard, null, {
433
+ header: withCtx(() => [
434
+ createVNode("div", { class: "flex items-center gap-2" }, [
435
+ createVNode(_component_UIcon, {
436
+ name: "i-lucide-file-plus",
437
+ class: "size-5"
438
+ }),
439
+ createVNode("span", { class: "font-semibold" }, "New File")
440
+ ])
441
+ ]),
442
+ footer: withCtx(() => [
443
+ createVNode("div", { class: "flex justify-end gap-2" }, [
444
+ createVNode(_component_UButton, {
445
+ color: "neutral",
446
+ variant: "ghost",
447
+ onClick: ($event) => showNewFileModal.value = false
448
+ }, {
449
+ default: withCtx(() => [
450
+ createTextVNode(" Cancel ")
451
+ ]),
452
+ _: 1
453
+ }, 8, ["onClick"]),
454
+ createVNode(_component_UButton, { onClick: handleCreateFile }, {
455
+ default: withCtx(() => [
456
+ createTextVNode(" Create ")
457
+ ]),
458
+ _: 1
459
+ })
460
+ ])
461
+ ]),
462
+ default: withCtx(() => [
463
+ createVNode(_component_UInput, {
464
+ modelValue: unref(newItemName),
465
+ "onUpdate:modelValue": ($event) => isRef(newItemName) ? newItemName.value = $event : null,
466
+ placeholder: "filename.py",
467
+ autofocus: "",
468
+ onKeyup: withKeys(handleCreateFile, ["enter"])
469
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
470
+ ]),
471
+ _: 1
472
+ })
473
+ ];
474
+ }
475
+ }),
476
+ _: 1
477
+ }, _parent));
478
+ _push(ssrRenderComponent(_component_UModal, {
479
+ open: unref(showNewFolderModal),
480
+ "onUpdate:open": ($event) => isRef(showNewFolderModal) ? showNewFolderModal.value = $event : null
481
+ }, {
482
+ content: withCtx((_, _push2, _parent2, _scopeId) => {
483
+ if (_push2) {
484
+ _push2(ssrRenderComponent(_component_UCard, null, {
485
+ header: withCtx((_2, _push3, _parent3, _scopeId2) => {
486
+ if (_push3) {
487
+ _push3(`<div class="flex items-center gap-2"${_scopeId2}>`);
488
+ _push3(ssrRenderComponent(_component_UIcon, {
489
+ name: "i-lucide-folder-plus",
490
+ class: "size-5"
491
+ }, null, _parent3, _scopeId2));
492
+ _push3(`<span class="font-semibold"${_scopeId2}>New Folder</span></div>`);
493
+ } else {
494
+ return [
495
+ createVNode("div", { class: "flex items-center gap-2" }, [
496
+ createVNode(_component_UIcon, {
497
+ name: "i-lucide-folder-plus",
498
+ class: "size-5"
499
+ }),
500
+ createVNode("span", { class: "font-semibold" }, "New Folder")
501
+ ])
502
+ ];
503
+ }
504
+ }),
505
+ footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
506
+ if (_push3) {
507
+ _push3(`<div class="flex justify-end gap-2"${_scopeId2}>`);
508
+ _push3(ssrRenderComponent(_component_UButton, {
509
+ color: "neutral",
510
+ variant: "ghost",
511
+ onClick: ($event) => showNewFolderModal.value = false
512
+ }, {
513
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
514
+ if (_push4) {
515
+ _push4(` Cancel `);
516
+ } else {
517
+ return [
518
+ createTextVNode(" Cancel ")
519
+ ];
520
+ }
521
+ }),
522
+ _: 1
523
+ }, _parent3, _scopeId2));
524
+ _push3(ssrRenderComponent(_component_UButton, { onClick: handleCreateFolder }, {
525
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
526
+ if (_push4) {
527
+ _push4(` Create `);
528
+ } else {
529
+ return [
530
+ createTextVNode(" Create ")
531
+ ];
532
+ }
533
+ }),
534
+ _: 1
535
+ }, _parent3, _scopeId2));
536
+ _push3(`</div>`);
537
+ } else {
538
+ return [
539
+ createVNode("div", { class: "flex justify-end gap-2" }, [
540
+ createVNode(_component_UButton, {
541
+ color: "neutral",
542
+ variant: "ghost",
543
+ onClick: ($event) => showNewFolderModal.value = false
544
+ }, {
545
+ default: withCtx(() => [
546
+ createTextVNode(" Cancel ")
547
+ ]),
548
+ _: 1
549
+ }, 8, ["onClick"]),
550
+ createVNode(_component_UButton, { onClick: handleCreateFolder }, {
551
+ default: withCtx(() => [
552
+ createTextVNode(" Create ")
553
+ ]),
554
+ _: 1
555
+ })
556
+ ])
557
+ ];
558
+ }
559
+ }),
560
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
561
+ if (_push3) {
562
+ _push3(ssrRenderComponent(_component_UInput, {
563
+ modelValue: unref(newItemName),
564
+ "onUpdate:modelValue": ($event) => isRef(newItemName) ? newItemName.value = $event : null,
565
+ placeholder: "folder-name",
566
+ autofocus: "",
567
+ onKeyup: handleCreateFolder
568
+ }, null, _parent3, _scopeId2));
569
+ } else {
570
+ return [
571
+ createVNode(_component_UInput, {
572
+ modelValue: unref(newItemName),
573
+ "onUpdate:modelValue": ($event) => isRef(newItemName) ? newItemName.value = $event : null,
574
+ placeholder: "folder-name",
575
+ autofocus: "",
576
+ onKeyup: withKeys(handleCreateFolder, ["enter"])
577
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
578
+ ];
579
+ }
580
+ }),
581
+ _: 1
582
+ }, _parent2, _scopeId));
583
+ } else {
584
+ return [
585
+ createVNode(_component_UCard, null, {
586
+ header: withCtx(() => [
587
+ createVNode("div", { class: "flex items-center gap-2" }, [
588
+ createVNode(_component_UIcon, {
589
+ name: "i-lucide-folder-plus",
590
+ class: "size-5"
591
+ }),
592
+ createVNode("span", { class: "font-semibold" }, "New Folder")
593
+ ])
594
+ ]),
595
+ footer: withCtx(() => [
596
+ createVNode("div", { class: "flex justify-end gap-2" }, [
597
+ createVNode(_component_UButton, {
598
+ color: "neutral",
599
+ variant: "ghost",
600
+ onClick: ($event) => showNewFolderModal.value = false
601
+ }, {
602
+ default: withCtx(() => [
603
+ createTextVNode(" Cancel ")
604
+ ]),
605
+ _: 1
606
+ }, 8, ["onClick"]),
607
+ createVNode(_component_UButton, { onClick: handleCreateFolder }, {
608
+ default: withCtx(() => [
609
+ createTextVNode(" Create ")
610
+ ]),
611
+ _: 1
612
+ })
613
+ ])
614
+ ]),
615
+ default: withCtx(() => [
616
+ createVNode(_component_UInput, {
617
+ modelValue: unref(newItemName),
618
+ "onUpdate:modelValue": ($event) => isRef(newItemName) ? newItemName.value = $event : null,
619
+ placeholder: "folder-name",
620
+ autofocus: "",
621
+ onKeyup: withKeys(handleCreateFolder, ["enter"])
622
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
623
+ ]),
624
+ _: 1
625
+ })
626
+ ];
627
+ }
628
+ }),
629
+ _: 1
630
+ }, _parent));
631
+ _push(ssrRenderComponent(_component_UModal, {
632
+ open: unref(showDeleteConfirm),
633
+ "onUpdate:open": ($event) => isRef(showDeleteConfirm) ? showDeleteConfirm.value = $event : null
634
+ }, {
635
+ content: withCtx((_, _push2, _parent2, _scopeId) => {
636
+ if (_push2) {
637
+ _push2(ssrRenderComponent(_component_UCard, null, {
638
+ header: withCtx((_2, _push3, _parent3, _scopeId2) => {
639
+ if (_push3) {
640
+ _push3(`<div class="flex items-center gap-2 text-error"${_scopeId2}>`);
641
+ _push3(ssrRenderComponent(_component_UIcon, {
642
+ name: "i-lucide-trash-2",
643
+ class: "size-5"
644
+ }, null, _parent3, _scopeId2));
645
+ _push3(`<span class="font-semibold"${_scopeId2}>Delete</span></div>`);
646
+ } else {
647
+ return [
648
+ createVNode("div", { class: "flex items-center gap-2 text-error" }, [
649
+ createVNode(_component_UIcon, {
650
+ name: "i-lucide-trash-2",
651
+ class: "size-5"
652
+ }),
653
+ createVNode("span", { class: "font-semibold" }, "Delete")
654
+ ])
655
+ ];
656
+ }
657
+ }),
658
+ footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
659
+ if (_push3) {
660
+ _push3(`<div class="flex justify-end gap-2"${_scopeId2}>`);
661
+ _push3(ssrRenderComponent(_component_UButton, {
662
+ color: "neutral",
663
+ variant: "ghost",
664
+ onClick: ($event) => showDeleteConfirm.value = false
665
+ }, {
666
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
667
+ if (_push4) {
668
+ _push4(` Cancel `);
669
+ } else {
670
+ return [
671
+ createTextVNode(" Cancel ")
672
+ ];
673
+ }
674
+ }),
675
+ _: 1
676
+ }, _parent3, _scopeId2));
677
+ _push3(ssrRenderComponent(_component_UButton, {
678
+ color: "error",
679
+ onClick: handleDelete
680
+ }, {
681
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
682
+ if (_push4) {
683
+ _push4(` Delete `);
684
+ } else {
685
+ return [
686
+ createTextVNode(" Delete ")
687
+ ];
688
+ }
689
+ }),
690
+ _: 1
691
+ }, _parent3, _scopeId2));
692
+ _push3(`</div>`);
693
+ } else {
694
+ return [
695
+ createVNode("div", { class: "flex justify-end gap-2" }, [
696
+ createVNode(_component_UButton, {
697
+ color: "neutral",
698
+ variant: "ghost",
699
+ onClick: ($event) => showDeleteConfirm.value = false
700
+ }, {
701
+ default: withCtx(() => [
702
+ createTextVNode(" Cancel ")
703
+ ]),
704
+ _: 1
705
+ }, 8, ["onClick"]),
706
+ createVNode(_component_UButton, {
707
+ color: "error",
708
+ onClick: handleDelete
709
+ }, {
710
+ default: withCtx(() => [
711
+ createTextVNode(" Delete ")
712
+ ]),
713
+ _: 1
714
+ })
715
+ ])
716
+ ];
717
+ }
718
+ }),
719
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
720
+ if (_push3) {
721
+ _push3(`<p${_scopeId2}> Are you sure you want to delete <strong${_scopeId2}>${ssrInterpolate(unref(contextMenuTarget)?.label)}</strong>? </p>`);
722
+ if (unref(contextMenuTarget)?.type === "directory") {
723
+ _push3(`<p class="text-sm text-dimmed mt-1"${_scopeId2}> This will delete all files and folders inside. </p>`);
724
+ } else {
725
+ _push3(`<!---->`);
726
+ }
727
+ } else {
728
+ return [
729
+ createVNode("p", null, [
730
+ createTextVNode(" Are you sure you want to delete "),
731
+ createVNode("strong", null, toDisplayString(unref(contextMenuTarget)?.label), 1),
732
+ createTextVNode("? ")
733
+ ]),
734
+ unref(contextMenuTarget)?.type === "directory" ? (openBlock(), createBlock("p", {
735
+ key: 0,
736
+ class: "text-sm text-dimmed mt-1"
737
+ }, " This will delete all files and folders inside. ")) : createCommentVNode("", true)
738
+ ];
739
+ }
740
+ }),
741
+ _: 1
742
+ }, _parent2, _scopeId));
743
+ } else {
744
+ return [
745
+ createVNode(_component_UCard, null, {
746
+ header: withCtx(() => [
747
+ createVNode("div", { class: "flex items-center gap-2 text-error" }, [
748
+ createVNode(_component_UIcon, {
749
+ name: "i-lucide-trash-2",
750
+ class: "size-5"
751
+ }),
752
+ createVNode("span", { class: "font-semibold" }, "Delete")
753
+ ])
754
+ ]),
755
+ footer: withCtx(() => [
756
+ createVNode("div", { class: "flex justify-end gap-2" }, [
757
+ createVNode(_component_UButton, {
758
+ color: "neutral",
759
+ variant: "ghost",
760
+ onClick: ($event) => showDeleteConfirm.value = false
761
+ }, {
762
+ default: withCtx(() => [
763
+ createTextVNode(" Cancel ")
764
+ ]),
765
+ _: 1
766
+ }, 8, ["onClick"]),
767
+ createVNode(_component_UButton, {
768
+ color: "error",
769
+ onClick: handleDelete
770
+ }, {
771
+ default: withCtx(() => [
772
+ createTextVNode(" Delete ")
773
+ ]),
774
+ _: 1
775
+ })
776
+ ])
777
+ ]),
778
+ default: withCtx(() => [
779
+ createVNode("p", null, [
780
+ createTextVNode(" Are you sure you want to delete "),
781
+ createVNode("strong", null, toDisplayString(unref(contextMenuTarget)?.label), 1),
782
+ createTextVNode("? ")
783
+ ]),
784
+ unref(contextMenuTarget)?.type === "directory" ? (openBlock(), createBlock("p", {
785
+ key: 0,
786
+ class: "text-sm text-dimmed mt-1"
787
+ }, " This will delete all files and folders inside. ")) : createCommentVNode("", true)
788
+ ]),
789
+ _: 1
790
+ })
791
+ ];
792
+ }
793
+ }),
794
+ _: 1
795
+ }, _parent));
796
+ _push(`</div>`);
797
+ };
798
+ }
799
+ });
800
+ const _sfc_setup$3 = _sfc_main$3.setup;
801
+ _sfc_main$3.setup = (props, ctx) => {
802
+ const ssrContext = useSSRContext();
803
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/skills/FileTree.vue");
804
+ return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
805
+ };
806
+ const __nuxt_component_3 = Object.assign(_sfc_main$3, { __name: "SkillsFileTree" });
807
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
808
+ __name: "Editor",
809
+ __ssrInlineRender: true,
810
+ props: {
811
+ skillName: {},
812
+ filePath: {}
813
+ },
814
+ emits: ["saved"],
815
+ setup(__props, { emit: __emit }) {
816
+ const props = __props;
817
+ const emit = __emit;
818
+ const toast = useToast();
819
+ const content = ref("");
820
+ const originalContent = ref("");
821
+ const loading = ref(true);
822
+ const saving = ref(false);
823
+ const isDirty = computed(() => content.value !== originalContent.value);
824
+ const language = computed(() => {
825
+ const ext = props.filePath.split(".").pop()?.toLowerCase();
826
+ switch (ext) {
827
+ case "py":
828
+ return "python";
829
+ case "md":
830
+ return "markdown";
831
+ case "json":
832
+ return "json";
833
+ case "ts":
834
+ return "typescript";
835
+ case "js":
836
+ return "javascript";
837
+ case "yaml":
838
+ case "yml":
839
+ return "yaml";
840
+ case "sh":
841
+ case "bash":
842
+ return "bash";
843
+ default:
844
+ return "plaintext";
845
+ }
846
+ });
847
+ async function loadFile() {
848
+ loading.value = true;
849
+ try {
850
+ const res = await $fetch(`/api/skills/${props.skillName}/files/read`, {
851
+ method: "POST",
852
+ body: { path: props.filePath }
853
+ });
854
+ content.value = res.data.content;
855
+ originalContent.value = res.data.content;
856
+ } catch {
857
+ toast.add({ title: "Failed to load file", color: "error" });
858
+ } finally {
859
+ loading.value = false;
860
+ }
861
+ }
862
+ async function save() {
863
+ saving.value = true;
864
+ try {
865
+ await $fetch(`/api/skills/${props.skillName}/files/write`, {
866
+ method: "POST",
867
+ body: { path: props.filePath, content: content.value }
868
+ });
869
+ originalContent.value = content.value;
870
+ toast.add({ title: "File saved", color: "success" });
871
+ emit("saved");
872
+ } catch {
873
+ toast.add({ title: "Failed to save file", color: "error" });
874
+ } finally {
875
+ saving.value = false;
876
+ }
877
+ }
878
+ watch(() => props.filePath, () => loadFile());
879
+ return (_ctx, _push, _parent, _attrs) => {
880
+ const _component_UIcon = _sfc_main$d;
881
+ const _component_UBadge = _sfc_main$7;
882
+ const _component_UButton = _sfc_main$8;
883
+ const _component_EditorCodeEditor = __nuxt_component_12;
884
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "flex flex-col h-full" }, _attrs))}><div class="flex items-center justify-between px-4 py-2 border-b border-default"><div class="flex items-center gap-2 text-sm text-muted">`);
885
+ _push(ssrRenderComponent(_component_UIcon, {
886
+ name: "i-lucide-file-code",
887
+ class: "size-4"
888
+ }, null, _parent));
889
+ _push(`<span>${ssrInterpolate(__props.filePath)}</span>`);
890
+ if (unref(isDirty)) {
891
+ _push(ssrRenderComponent(_component_UBadge, {
892
+ variant: "soft",
893
+ color: "warning",
894
+ size: "xs"
895
+ }, {
896
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
897
+ if (_push2) {
898
+ _push2(` Modified `);
899
+ } else {
900
+ return [
901
+ createTextVNode(" Modified ")
902
+ ];
903
+ }
904
+ }),
905
+ _: 1
906
+ }, _parent));
907
+ } else {
908
+ _push(`<!---->`);
909
+ }
910
+ _push(`</div>`);
911
+ _push(ssrRenderComponent(_component_UButton, {
912
+ size: "xs",
913
+ loading: unref(saving),
914
+ disabled: !unref(isDirty),
915
+ onClick: save
916
+ }, {
917
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
918
+ if (_push2) {
919
+ _push2(` Save `);
920
+ } else {
921
+ return [
922
+ createTextVNode(" Save ")
923
+ ];
924
+ }
925
+ }),
926
+ _: 1
927
+ }, _parent));
928
+ _push(`</div>`);
929
+ if (unref(loading)) {
930
+ _push(`<div class="flex-1 flex items-center justify-center">`);
931
+ _push(ssrRenderComponent(_component_UIcon, {
932
+ name: "i-lucide-loader-2",
933
+ class: "size-6 animate-spin text-dimmed"
934
+ }, null, _parent));
935
+ _push(`</div>`);
936
+ } else {
937
+ _push(ssrRenderComponent(_component_EditorCodeEditor, {
938
+ modelValue: unref(content),
939
+ "onUpdate:modelValue": ($event) => isRef(content) ? content.value = $event : null,
940
+ language: unref(language),
941
+ class: "flex-1"
942
+ }, null, _parent));
943
+ }
944
+ _push(`</div>`);
945
+ };
946
+ }
947
+ });
948
+ const _sfc_setup$2 = _sfc_main$2.setup;
949
+ _sfc_main$2.setup = (props, ctx) => {
950
+ const ssrContext = useSSRContext();
951
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/skills/Editor.vue");
952
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
953
+ };
954
+ const __nuxt_component_9 = Object.assign(_sfc_main$2, { __name: "SkillsEditor" });
955
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
956
+ __name: "RenameModal",
957
+ __ssrInlineRender: true,
958
+ props: {
959
+ open: { type: Boolean },
960
+ currentName: {}
961
+ },
962
+ emits: ["update:open", "renamed"],
963
+ setup(__props, { emit: __emit }) {
964
+ const props = __props;
965
+ const emit = __emit;
966
+ const toast = useToast();
967
+ const newName = ref(props.currentName);
968
+ const loading = ref(false);
969
+ watch(() => props.currentName, (val) => {
970
+ newName.value = val;
971
+ });
972
+ function close() {
973
+ emit("update:open", false);
974
+ }
975
+ async function handleRename() {
976
+ if (!newName.value.trim() || newName.value.trim() === props.currentName) return;
977
+ loading.value = true;
978
+ try {
979
+ await $fetch(`/api/skills/${props.currentName}/rename`, {
980
+ method: "POST",
981
+ body: { newName: newName.value.trim() }
982
+ });
983
+ toast.add({ title: `Skill renamed to '${newName.value.trim()}'`, color: "success" });
984
+ emit("renamed", newName.value.trim());
985
+ close();
986
+ } catch (e) {
987
+ const message = e instanceof Error ? e.message : "Failed to rename skill";
988
+ toast.add({ title: message, color: "error" });
989
+ } finally {
990
+ loading.value = false;
991
+ }
992
+ }
993
+ return (_ctx, _push, _parent, _attrs) => {
994
+ const _component_UModal = _sfc_main$a;
995
+ const _component_UFormField = _sfc_main$e;
996
+ const _component_UInput = _sfc_main$c;
997
+ const _component_UButton = _sfc_main$8;
998
+ _push(ssrRenderComponent(_component_UModal, mergeProps({
999
+ open: props.open,
1000
+ "onUpdate:open": ($event) => emit("update:open", $event)
1001
+ }, _attrs), {
1002
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
1003
+ if (_push2) {
1004
+ _push2(`<span class="font-semibold"${_scopeId}>Rename Skill</span>`);
1005
+ } else {
1006
+ return [
1007
+ createVNode("span", { class: "font-semibold" }, "Rename Skill")
1008
+ ];
1009
+ }
1010
+ }),
1011
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
1012
+ if (_push2) {
1013
+ _push2(ssrRenderComponent(_component_UFormField, { label: "New Name" }, {
1014
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1015
+ if (_push3) {
1016
+ _push3(ssrRenderComponent(_component_UInput, {
1017
+ modelValue: unref(newName),
1018
+ "onUpdate:modelValue": ($event) => isRef(newName) ? newName.value = $event : null,
1019
+ placeholder: "my-skill",
1020
+ disabled: unref(loading)
1021
+ }, null, _parent3, _scopeId2));
1022
+ } else {
1023
+ return [
1024
+ createVNode(_component_UInput, {
1025
+ modelValue: unref(newName),
1026
+ "onUpdate:modelValue": ($event) => isRef(newName) ? newName.value = $event : null,
1027
+ placeholder: "my-skill",
1028
+ disabled: unref(loading)
1029
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
1030
+ ];
1031
+ }
1032
+ }),
1033
+ _: 1
1034
+ }, _parent2, _scopeId));
1035
+ } else {
1036
+ return [
1037
+ createVNode(_component_UFormField, { label: "New Name" }, {
1038
+ default: withCtx(() => [
1039
+ createVNode(_component_UInput, {
1040
+ modelValue: unref(newName),
1041
+ "onUpdate:modelValue": ($event) => isRef(newName) ? newName.value = $event : null,
1042
+ placeholder: "my-skill",
1043
+ disabled: unref(loading)
1044
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
1045
+ ]),
1046
+ _: 1
1047
+ })
1048
+ ];
1049
+ }
1050
+ }),
1051
+ footer: withCtx((_, _push2, _parent2, _scopeId) => {
1052
+ if (_push2) {
1053
+ _push2(`<div class="flex justify-end gap-2"${_scopeId}>`);
1054
+ _push2(ssrRenderComponent(_component_UButton, {
1055
+ variant: "ghost",
1056
+ color: "neutral",
1057
+ disabled: unref(loading),
1058
+ onClick: close
1059
+ }, {
1060
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1061
+ if (_push3) {
1062
+ _push3(` Cancel `);
1063
+ } else {
1064
+ return [
1065
+ createTextVNode(" Cancel ")
1066
+ ];
1067
+ }
1068
+ }),
1069
+ _: 1
1070
+ }, _parent2, _scopeId));
1071
+ _push2(ssrRenderComponent(_component_UButton, {
1072
+ loading: unref(loading),
1073
+ disabled: !unref(newName).trim() || unref(newName).trim() === __props.currentName,
1074
+ onClick: handleRename
1075
+ }, {
1076
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1077
+ if (_push3) {
1078
+ _push3(` Rename `);
1079
+ } else {
1080
+ return [
1081
+ createTextVNode(" Rename ")
1082
+ ];
1083
+ }
1084
+ }),
1085
+ _: 1
1086
+ }, _parent2, _scopeId));
1087
+ _push2(`</div>`);
1088
+ } else {
1089
+ return [
1090
+ createVNode("div", { class: "flex justify-end gap-2" }, [
1091
+ createVNode(_component_UButton, {
1092
+ variant: "ghost",
1093
+ color: "neutral",
1094
+ disabled: unref(loading),
1095
+ onClick: close
1096
+ }, {
1097
+ default: withCtx(() => [
1098
+ createTextVNode(" Cancel ")
1099
+ ]),
1100
+ _: 1
1101
+ }, 8, ["disabled"]),
1102
+ createVNode(_component_UButton, {
1103
+ loading: unref(loading),
1104
+ disabled: !unref(newName).trim() || unref(newName).trim() === __props.currentName,
1105
+ onClick: handleRename
1106
+ }, {
1107
+ default: withCtx(() => [
1108
+ createTextVNode(" Rename ")
1109
+ ]),
1110
+ _: 1
1111
+ }, 8, ["loading", "disabled"])
1112
+ ])
1113
+ ];
1114
+ }
1115
+ }),
1116
+ _: 1
1117
+ }, _parent));
1118
+ };
1119
+ }
1120
+ });
1121
+ const _sfc_setup$1 = _sfc_main$1.setup;
1122
+ _sfc_main$1.setup = (props, ctx) => {
1123
+ const ssrContext = useSSRContext();
1124
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/skills/RenameModal.vue");
1125
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
1126
+ };
1127
+ const __nuxt_component_10 = Object.assign(_sfc_main$1, { __name: "SkillsRenameModal" });
1128
+ const _sfc_main = /* @__PURE__ */ defineComponent({
1129
+ __name: "[name]",
1130
+ __ssrInlineRender: true,
1131
+ setup(__props) {
1132
+ const route = useRoute();
1133
+ const router = useRouter();
1134
+ const toast = useToast();
1135
+ const skillName = computed(() => route.params.name);
1136
+ const skill = ref(null);
1137
+ const loading = ref(true);
1138
+ const selectedFile = ref("");
1139
+ const renameOpen = ref(false);
1140
+ async function loadSkill() {
1141
+ loading.value = true;
1142
+ try {
1143
+ const res = await $fetch(`/api/skills/${skillName.value}`);
1144
+ skill.value = res.data;
1145
+ if (!selectedFile.value) {
1146
+ const skillMd = res.data.files.find((f) => f.name === "SKILL.md");
1147
+ if (skillMd) selectedFile.value = skillMd.path;
1148
+ }
1149
+ } catch {
1150
+ toast.add({ title: "Skill not found", color: "error" });
1151
+ router.push("/skills");
1152
+ } finally {
1153
+ loading.value = false;
1154
+ }
1155
+ }
1156
+ async function handleToggle() {
1157
+ if (!skill.value || skill.value.core) return;
1158
+ try {
1159
+ const res = await $fetch(`/api/skills/${skillName.value}/toggle`, {
1160
+ method: "POST"
1161
+ });
1162
+ skill.value.active = res.data.active;
1163
+ toast.add({
1164
+ title: `${skillName.value} ${res.data.active ? "enabled" : "disabled"}`,
1165
+ color: "success"
1166
+ });
1167
+ } catch {
1168
+ toast.add({ title: "Failed to toggle skill", color: "error" });
1169
+ }
1170
+ }
1171
+ function handleRenamed(newName) {
1172
+ router.replace(`/skills/${newName}`);
1173
+ }
1174
+ function handleExport() {
1175
+ (void 0).open(`/api/skills/${skillName.value}/export`, "_blank");
1176
+ }
1177
+ return (_ctx, _push, _parent, _attrs) => {
1178
+ const _component_UDashboardPanel = _sfc_main$1$1;
1179
+ const _component_UDashboardNavbar = _sfc_main$5;
1180
+ const _component_USkeleton = _sfc_main$4;
1181
+ const _component_SkillsFileTree = __nuxt_component_3;
1182
+ const _component_NuxtLink = __nuxt_component_0$1;
1183
+ const _component_UIcon = _sfc_main$d;
1184
+ const _component_UBadge = _sfc_main$7;
1185
+ const _component_USwitch = _sfc_main$6;
1186
+ const _component_UButton = _sfc_main$8;
1187
+ const _component_SkillsEditor = __nuxt_component_9;
1188
+ const _component_SkillsRenameModal = __nuxt_component_10;
1189
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "flex flex-1 min-w-0" }, _attrs))}>`);
1190
+ _push(ssrRenderComponent(_component_UDashboardPanel, {
1191
+ id: "skill-filetree",
1192
+ collapsible: "",
1193
+ resizable: "",
1194
+ "min-size": 12,
1195
+ "default-size": 16,
1196
+ "max-size": 24,
1197
+ class: "hidden lg:flex"
1198
+ }, {
1199
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
1200
+ if (_push2) {
1201
+ _push2(ssrRenderComponent(_component_UDashboardNavbar, null, {
1202
+ title: withCtx((_2, _push3, _parent3, _scopeId2) => {
1203
+ if (_push3) {
1204
+ _push3(`<span class="text-sm font-medium truncate"${_scopeId2}>Files</span>`);
1205
+ } else {
1206
+ return [
1207
+ createVNode("span", { class: "text-sm font-medium truncate" }, "Files")
1208
+ ];
1209
+ }
1210
+ }),
1211
+ _: 1
1212
+ }, _parent2, _scopeId));
1213
+ } else {
1214
+ return [
1215
+ createVNode(_component_UDashboardNavbar, null, {
1216
+ title: withCtx(() => [
1217
+ createVNode("span", { class: "text-sm font-medium truncate" }, "Files")
1218
+ ]),
1219
+ _: 1
1220
+ })
1221
+ ];
1222
+ }
1223
+ }),
1224
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
1225
+ if (_push2) {
1226
+ if (unref(loading)) {
1227
+ _push2(`<div class="p-4 space-y-2"${_scopeId}><!--[-->`);
1228
+ ssrRenderList(4, (i) => {
1229
+ _push2(ssrRenderComponent(_component_USkeleton, {
1230
+ key: i,
1231
+ class: "h-6 w-full"
1232
+ }, null, _parent2, _scopeId));
1233
+ });
1234
+ _push2(`<!--]--></div>`);
1235
+ } else if (unref(skill)) {
1236
+ _push2(ssrRenderComponent(_component_SkillsFileTree, {
1237
+ "skill-name": unref(skillName),
1238
+ files: unref(skill).files,
1239
+ "selected-path": unref(selectedFile),
1240
+ onSelect: ($event) => selectedFile.value = $event,
1241
+ onRefresh: loadSkill
1242
+ }, null, _parent2, _scopeId));
1243
+ } else {
1244
+ _push2(`<!---->`);
1245
+ }
1246
+ } else {
1247
+ return [
1248
+ unref(loading) ? (openBlock(), createBlock("div", {
1249
+ key: 0,
1250
+ class: "p-4 space-y-2"
1251
+ }, [
1252
+ (openBlock(), createBlock(Fragment, null, renderList(4, (i) => {
1253
+ return createVNode(_component_USkeleton, {
1254
+ key: i,
1255
+ class: "h-6 w-full"
1256
+ });
1257
+ }), 64))
1258
+ ])) : unref(skill) ? (openBlock(), createBlock(_component_SkillsFileTree, {
1259
+ key: 1,
1260
+ "skill-name": unref(skillName),
1261
+ files: unref(skill).files,
1262
+ "selected-path": unref(selectedFile),
1263
+ onSelect: ($event) => selectedFile.value = $event,
1264
+ onRefresh: loadSkill
1265
+ }, null, 8, ["skill-name", "files", "selected-path", "onSelect"])) : createCommentVNode("", true)
1266
+ ];
1267
+ }
1268
+ }),
1269
+ _: 1
1270
+ }, _parent));
1271
+ _push(ssrRenderComponent(_component_UDashboardPanel, {
1272
+ id: "skill-editor",
1273
+ grow: "",
1274
+ ui: { body: "!p-0" }
1275
+ }, {
1276
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
1277
+ if (_push2) {
1278
+ _push2(ssrRenderComponent(_component_UDashboardNavbar, null, {
1279
+ title: withCtx((_2, _push3, _parent3, _scopeId2) => {
1280
+ if (_push3) {
1281
+ _push3(ssrRenderComponent(_component_NuxtLink, {
1282
+ to: "/skills",
1283
+ class: "text-muted hover:text-default transition-colors"
1284
+ }, {
1285
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1286
+ if (_push4) {
1287
+ _push4(ssrRenderComponent(_component_UIcon, {
1288
+ name: "i-lucide-arrow-left",
1289
+ class: "size-4"
1290
+ }, null, _parent4, _scopeId3));
1291
+ } else {
1292
+ return [
1293
+ createVNode(_component_UIcon, {
1294
+ name: "i-lucide-arrow-left",
1295
+ class: "size-4"
1296
+ })
1297
+ ];
1298
+ }
1299
+ }),
1300
+ _: 1
1301
+ }, _parent3, _scopeId2));
1302
+ _push3(`<span class="font-medium"${_scopeId2}>${ssrInterpolate(unref(skillName))}</span>`);
1303
+ if (unref(skill)?.core) {
1304
+ _push3(ssrRenderComponent(_component_UBadge, {
1305
+ variant: "subtle",
1306
+ color: "primary",
1307
+ size: "xs"
1308
+ }, {
1309
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1310
+ if (_push4) {
1311
+ _push4(` Core `);
1312
+ } else {
1313
+ return [
1314
+ createTextVNode(" Core ")
1315
+ ];
1316
+ }
1317
+ }),
1318
+ _: 1
1319
+ }, _parent3, _scopeId2));
1320
+ } else {
1321
+ _push3(`<!---->`);
1322
+ }
1323
+ if (unref(skill) && !unref(skill).active) {
1324
+ _push3(ssrRenderComponent(_component_UBadge, {
1325
+ variant: "subtle",
1326
+ color: "neutral",
1327
+ size: "xs"
1328
+ }, {
1329
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1330
+ if (_push4) {
1331
+ _push4(` Disabled `);
1332
+ } else {
1333
+ return [
1334
+ createTextVNode(" Disabled ")
1335
+ ];
1336
+ }
1337
+ }),
1338
+ _: 1
1339
+ }, _parent3, _scopeId2));
1340
+ } else {
1341
+ _push3(`<!---->`);
1342
+ }
1343
+ } else {
1344
+ return [
1345
+ createVNode(_component_NuxtLink, {
1346
+ to: "/skills",
1347
+ class: "text-muted hover:text-default transition-colors"
1348
+ }, {
1349
+ default: withCtx(() => [
1350
+ createVNode(_component_UIcon, {
1351
+ name: "i-lucide-arrow-left",
1352
+ class: "size-4"
1353
+ })
1354
+ ]),
1355
+ _: 1
1356
+ }),
1357
+ createVNode("span", { class: "font-medium" }, toDisplayString(unref(skillName)), 1),
1358
+ unref(skill)?.core ? (openBlock(), createBlock(_component_UBadge, {
1359
+ key: 0,
1360
+ variant: "subtle",
1361
+ color: "primary",
1362
+ size: "xs"
1363
+ }, {
1364
+ default: withCtx(() => [
1365
+ createTextVNode(" Core ")
1366
+ ]),
1367
+ _: 1
1368
+ })) : createCommentVNode("", true),
1369
+ unref(skill) && !unref(skill).active ? (openBlock(), createBlock(_component_UBadge, {
1370
+ key: 1,
1371
+ variant: "subtle",
1372
+ color: "neutral",
1373
+ size: "xs"
1374
+ }, {
1375
+ default: withCtx(() => [
1376
+ createTextVNode(" Disabled ")
1377
+ ]),
1378
+ _: 1
1379
+ })) : createCommentVNode("", true)
1380
+ ];
1381
+ }
1382
+ }),
1383
+ right: withCtx((_2, _push3, _parent3, _scopeId2) => {
1384
+ if (_push3) {
1385
+ if (unref(skill) && !unref(skill).core) {
1386
+ _push3(ssrRenderComponent(_component_USwitch, {
1387
+ "model-value": unref(skill).active,
1388
+ size: "sm",
1389
+ "onUpdate:modelValue": handleToggle
1390
+ }, null, _parent3, _scopeId2));
1391
+ } else {
1392
+ _push3(`<!---->`);
1393
+ }
1394
+ if (unref(skill) && !unref(skill).core) {
1395
+ _push3(ssrRenderComponent(_component_UButton, {
1396
+ icon: "i-lucide-pencil",
1397
+ variant: "ghost",
1398
+ color: "neutral",
1399
+ size: "sm",
1400
+ onClick: ($event) => renameOpen.value = true
1401
+ }, null, _parent3, _scopeId2));
1402
+ } else {
1403
+ _push3(`<!---->`);
1404
+ }
1405
+ if (unref(skill)) {
1406
+ _push3(ssrRenderComponent(_component_UButton, {
1407
+ icon: "i-lucide-download",
1408
+ variant: "ghost",
1409
+ color: "neutral",
1410
+ size: "sm",
1411
+ onClick: handleExport
1412
+ }, null, _parent3, _scopeId2));
1413
+ } else {
1414
+ _push3(`<!---->`);
1415
+ }
1416
+ } else {
1417
+ return [
1418
+ unref(skill) && !unref(skill).core ? (openBlock(), createBlock(_component_USwitch, {
1419
+ key: 0,
1420
+ "model-value": unref(skill).active,
1421
+ size: "sm",
1422
+ "onUpdate:modelValue": handleToggle
1423
+ }, null, 8, ["model-value"])) : createCommentVNode("", true),
1424
+ unref(skill) && !unref(skill).core ? (openBlock(), createBlock(_component_UButton, {
1425
+ key: 1,
1426
+ icon: "i-lucide-pencil",
1427
+ variant: "ghost",
1428
+ color: "neutral",
1429
+ size: "sm",
1430
+ onClick: ($event) => renameOpen.value = true
1431
+ }, null, 8, ["onClick"])) : createCommentVNode("", true),
1432
+ unref(skill) ? (openBlock(), createBlock(_component_UButton, {
1433
+ key: 2,
1434
+ icon: "i-lucide-download",
1435
+ variant: "ghost",
1436
+ color: "neutral",
1437
+ size: "sm",
1438
+ onClick: handleExport
1439
+ })) : createCommentVNode("", true)
1440
+ ];
1441
+ }
1442
+ }),
1443
+ _: 1
1444
+ }, _parent2, _scopeId));
1445
+ } else {
1446
+ return [
1447
+ createVNode(_component_UDashboardNavbar, null, {
1448
+ title: withCtx(() => [
1449
+ createVNode(_component_NuxtLink, {
1450
+ to: "/skills",
1451
+ class: "text-muted hover:text-default transition-colors"
1452
+ }, {
1453
+ default: withCtx(() => [
1454
+ createVNode(_component_UIcon, {
1455
+ name: "i-lucide-arrow-left",
1456
+ class: "size-4"
1457
+ })
1458
+ ]),
1459
+ _: 1
1460
+ }),
1461
+ createVNode("span", { class: "font-medium" }, toDisplayString(unref(skillName)), 1),
1462
+ unref(skill)?.core ? (openBlock(), createBlock(_component_UBadge, {
1463
+ key: 0,
1464
+ variant: "subtle",
1465
+ color: "primary",
1466
+ size: "xs"
1467
+ }, {
1468
+ default: withCtx(() => [
1469
+ createTextVNode(" Core ")
1470
+ ]),
1471
+ _: 1
1472
+ })) : createCommentVNode("", true),
1473
+ unref(skill) && !unref(skill).active ? (openBlock(), createBlock(_component_UBadge, {
1474
+ key: 1,
1475
+ variant: "subtle",
1476
+ color: "neutral",
1477
+ size: "xs"
1478
+ }, {
1479
+ default: withCtx(() => [
1480
+ createTextVNode(" Disabled ")
1481
+ ]),
1482
+ _: 1
1483
+ })) : createCommentVNode("", true)
1484
+ ]),
1485
+ right: withCtx(() => [
1486
+ unref(skill) && !unref(skill).core ? (openBlock(), createBlock(_component_USwitch, {
1487
+ key: 0,
1488
+ "model-value": unref(skill).active,
1489
+ size: "sm",
1490
+ "onUpdate:modelValue": handleToggle
1491
+ }, null, 8, ["model-value"])) : createCommentVNode("", true),
1492
+ unref(skill) && !unref(skill).core ? (openBlock(), createBlock(_component_UButton, {
1493
+ key: 1,
1494
+ icon: "i-lucide-pencil",
1495
+ variant: "ghost",
1496
+ color: "neutral",
1497
+ size: "sm",
1498
+ onClick: ($event) => renameOpen.value = true
1499
+ }, null, 8, ["onClick"])) : createCommentVNode("", true),
1500
+ unref(skill) ? (openBlock(), createBlock(_component_UButton, {
1501
+ key: 2,
1502
+ icon: "i-lucide-download",
1503
+ variant: "ghost",
1504
+ color: "neutral",
1505
+ size: "sm",
1506
+ onClick: handleExport
1507
+ })) : createCommentVNode("", true)
1508
+ ]),
1509
+ _: 1
1510
+ })
1511
+ ];
1512
+ }
1513
+ }),
1514
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
1515
+ if (_push2) {
1516
+ if (unref(loading)) {
1517
+ _push2(`<div class="flex-1 flex items-center justify-center h-full"${_scopeId}>`);
1518
+ _push2(ssrRenderComponent(_component_UIcon, {
1519
+ name: "i-lucide-loader-2",
1520
+ class: "size-6 animate-spin text-dimmed"
1521
+ }, null, _parent2, _scopeId));
1522
+ _push2(`</div>`);
1523
+ } else if (!unref(selectedFile)) {
1524
+ _push2(`<div class="flex-1 flex items-center justify-center h-full text-dimmed"${_scopeId}><div class="text-center"${_scopeId}>`);
1525
+ _push2(ssrRenderComponent(_component_UIcon, {
1526
+ name: "i-lucide-file-code",
1527
+ class: "size-12 mx-auto mb-4 opacity-50"
1528
+ }, null, _parent2, _scopeId));
1529
+ _push2(`<p${_scopeId}>Select a file to edit</p></div></div>`);
1530
+ } else {
1531
+ _push2(ssrRenderComponent(_component_SkillsEditor, {
1532
+ key: unref(selectedFile),
1533
+ "skill-name": unref(skillName),
1534
+ "file-path": unref(selectedFile),
1535
+ onSaved: loadSkill
1536
+ }, null, _parent2, _scopeId));
1537
+ }
1538
+ } else {
1539
+ return [
1540
+ unref(loading) ? (openBlock(), createBlock("div", {
1541
+ key: 0,
1542
+ class: "flex-1 flex items-center justify-center h-full"
1543
+ }, [
1544
+ createVNode(_component_UIcon, {
1545
+ name: "i-lucide-loader-2",
1546
+ class: "size-6 animate-spin text-dimmed"
1547
+ })
1548
+ ])) : !unref(selectedFile) ? (openBlock(), createBlock("div", {
1549
+ key: 1,
1550
+ class: "flex-1 flex items-center justify-center h-full text-dimmed"
1551
+ }, [
1552
+ createVNode("div", { class: "text-center" }, [
1553
+ createVNode(_component_UIcon, {
1554
+ name: "i-lucide-file-code",
1555
+ class: "size-12 mx-auto mb-4 opacity-50"
1556
+ }),
1557
+ createVNode("p", null, "Select a file to edit")
1558
+ ])
1559
+ ])) : (openBlock(), createBlock(_component_SkillsEditor, {
1560
+ key: unref(selectedFile),
1561
+ "skill-name": unref(skillName),
1562
+ "file-path": unref(selectedFile),
1563
+ onSaved: loadSkill
1564
+ }, null, 8, ["skill-name", "file-path"]))
1565
+ ];
1566
+ }
1567
+ }),
1568
+ _: 1
1569
+ }, _parent));
1570
+ if (unref(skill)) {
1571
+ _push(ssrRenderComponent(_component_SkillsRenameModal, {
1572
+ open: unref(renameOpen),
1573
+ "current-name": unref(skillName),
1574
+ "onUpdate:open": ($event) => renameOpen.value = $event,
1575
+ onRenamed: handleRenamed
1576
+ }, null, _parent));
1577
+ } else {
1578
+ _push(`<!---->`);
1579
+ }
1580
+ _push(`</div>`);
1581
+ };
1582
+ }
1583
+ });
1584
+ const _sfc_setup = _sfc_main.setup;
1585
+ _sfc_main.setup = (props, ctx) => {
1586
+ const ssrContext = useSSRContext();
1587
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/skills/[name].vue");
1588
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
1589
+ };
1590
+
1591
+ export { _sfc_main as default };
1592
+ //# sourceMappingURL=_name_-BnS_KEfX.mjs.map