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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/-AsXrBBy.js +1 -0
- package/.output/public/_nuxt/2W1RPpXM.js +71 -0
- package/.output/public/_nuxt/{C4pxqdgg.js → 5UFq_rDn.js} +1 -1
- package/.output/public/_nuxt/5Zh-9l8_.js +1 -0
- package/.output/public/_nuxt/{DK9jxJ0g.js → 90UksHlj.js} +1 -1
- package/.output/public/_nuxt/{9IQmsEjr.js → 9QKmiSP_.js} +1 -1
- package/.output/public/_nuxt/{BOj6t-oo.js → ARbTpeGy.js} +1 -1
- package/.output/public/_nuxt/{DyRelyfs.js → ApfLnl06.js} +1 -1
- package/.output/public/_nuxt/{DznawRFW.js → B-2BuR5g.js} +1 -1
- package/.output/public/_nuxt/B4u7Mczo.js +1 -0
- package/.output/public/_nuxt/{DAQhmSv4.js → B5dI_yLq.js} +1 -1
- package/.output/public/_nuxt/{Bm9LyG4F.js → B6fnZcA6.js} +1 -1
- package/.output/public/_nuxt/{9QnH0xQM.js → B7uMSBlN.js} +1 -1
- package/.output/public/_nuxt/BBiRyPlN.js +1 -0
- package/.output/public/_nuxt/{iBGCpHdw.js → BF7413u4.js} +2 -2
- package/.output/public/_nuxt/{4MiwzAAt.js → BGtUoCgi.js} +2 -2
- package/.output/public/_nuxt/{CxuZBC8n.js → BHe4VLtR.js} +1 -1
- package/.output/public/_nuxt/{D3RiUGdz.js → BIMBp1Tj.js} +1 -1
- package/.output/public/_nuxt/{g20UHUCv.js → BIvPdoE3.js} +1 -1
- package/.output/public/_nuxt/BKaRtCjP.js +1 -0
- package/.output/public/_nuxt/BLmc9T7l.js +1 -0
- package/.output/public/_nuxt/BMdnU6BF.js +1 -0
- package/.output/public/_nuxt/{CKkC3Ptm.js → BOgdaA_8.js} +1 -1
- package/.output/public/_nuxt/{BffWCM73.js → BQZfTrUg.js} +1 -1
- package/.output/public/_nuxt/BQnublTW.js +1 -0
- package/.output/public/_nuxt/BSsvedap.js +1 -0
- package/.output/public/_nuxt/{Ci7UEZQh.js → BVypxKRT.js} +1 -1
- package/.output/public/_nuxt/{CYP_MLH8.js → BWqJFnZy.js} +1 -1
- package/.output/public/_nuxt/BXxYdXMr.js +1 -0
- package/.output/public/_nuxt/{D_3Rq1BS.js → B_17gAr_.js} +1 -1
- package/.output/public/_nuxt/B_qzFVK_.js +1 -0
- package/.output/public/_nuxt/{BqKFIuRj.js → BbRPwpIX.js} +1 -1
- package/.output/public/_nuxt/BhrzKbv9.js +1 -0
- package/.output/public/_nuxt/{Cqy_L_ip.js → Bl6LNGlA.js} +1 -1
- package/.output/public/_nuxt/{Fukkqjkf.js → BlPToGni.js} +1 -1
- package/.output/public/_nuxt/{DHKLCQRG.js → BlwHr46F.js} +1 -1
- package/.output/public/_nuxt/{C6aqGHu1.js → BnmwiZbF.js} +1 -1
- package/.output/public/_nuxt/BqtxLJaf.js +1 -0
- package/.output/public/_nuxt/{eko-0FUm.js → BrEXdify.js} +1 -1
- package/.output/public/_nuxt/{D3e44mCL.js → BtNnS4m3.js} +1 -1
- package/.output/public/_nuxt/{BCtfQCzC.js → BtVIBBUN.js} +1 -1
- package/.output/public/_nuxt/Bw5h4Jaf.js +1 -0
- package/.output/public/_nuxt/{FvlxxmNk.js → Bwcpy7gC.js} +2 -2
- package/.output/public/_nuxt/{Db2v8O7O.js → C0TUK31m.js} +1 -1
- package/.output/public/_nuxt/C1T4GK6c.js +1 -0
- package/.output/public/_nuxt/C2ANDZen.js +1 -0
- package/.output/public/_nuxt/{CqU2XbzO.js → C2RZSTuy.js} +1 -1
- package/.output/public/_nuxt/C3dYlP5x.js +1 -0
- package/.output/public/_nuxt/{m5kGCDpI.js → C3sh_tLi.js} +3 -3
- package/.output/public/_nuxt/{BjjCvHLT.js → C4zyxZG7.js} +1 -1
- package/.output/public/_nuxt/{C3FxIITy.js → C5I-XBZT.js} +1 -1
- package/.output/public/_nuxt/{yuf23kh9.js → CC4Goztu.js} +1 -1
- package/.output/public/_nuxt/CC77iplr.js +1 -0
- package/.output/public/_nuxt/{xuzLdW-o.js → CFyD2NHP.js} +1 -1
- package/.output/public/_nuxt/{CsJ9KhQ4.js → CGQDTeaO.js} +1 -1
- package/.output/public/_nuxt/{DnjGH3SQ.js → CHpwuMSk.js} +1 -1
- package/.output/public/_nuxt/CLzcRUcs.js +1 -0
- package/.output/public/_nuxt/CM2phu_3.js +1 -0
- package/.output/public/_nuxt/{Cr8ixbr1.js → CQpYRq61.js} +1 -1
- package/.output/public/_nuxt/{C0JKNMDO.js → CUN4bYcg.js} +1 -1
- package/.output/public/_nuxt/{CmzH6R-N.js → CXoITXft.js} +19 -19
- package/.output/public/_nuxt/CYjcQPl-.js +1 -0
- package/.output/public/_nuxt/{DGX0tzL8.js → CZ32KfaS.js} +1 -1
- package/.output/public/_nuxt/CclZMdca.js +1 -0
- package/.output/public/_nuxt/{C69W7k2j.js → CdpT_Vb6.js} +1 -1
- package/.output/public/_nuxt/CflRLvFC.js +1 -0
- package/.output/public/_nuxt/{gBC9k4Qj.js → CkqNv7sq.js} +2 -2
- package/.output/public/_nuxt/ClXDAYjE.js +1 -0
- package/.output/public/_nuxt/CrZGoMo_.js +1 -0
- package/.output/public/_nuxt/{BZXMQuYP.js → CvJtd2Af.js} +1 -1
- package/.output/public/_nuxt/{DKZxeXDQ.js → Cwtd8e-P.js} +1 -1
- package/.output/public/_nuxt/{nIU2F7ia.js → Cx44SSNp.js} +3 -3
- package/.output/public/_nuxt/{BzOqrmGa.js → CxEVzuCn.js} +3 -3
- package/.output/public/_nuxt/{Dy_Cq5LQ.js → CzIMQevQ.js} +1 -1
- package/.output/public/_nuxt/{D6t3dcTl.js → D0P9llU7.js} +1 -1
- package/.output/public/_nuxt/{JJ3634gV.js → D1DYuOOm.js} +1 -1
- package/.output/public/_nuxt/{BAIz-dEB.js → D1dDc8Vw.js} +1 -1
- package/.output/public/_nuxt/{DSRrg8JT.js → D1r0uqf3.js} +1 -1
- package/.output/public/_nuxt/{CNnJrDvu.js → D3a8R1T6.js} +1 -1
- package/.output/public/_nuxt/{B1X4Bzcy.js → D5EZbuub.js} +1 -1
- package/.output/public/_nuxt/D9V13KTK.js +1 -0
- package/.output/public/_nuxt/DAE2hbP7.js +1 -0
- package/.output/public/_nuxt/{Cvp7FI3T.js → DAIbdyS6.js} +1 -1
- package/.output/public/_nuxt/{EuOqK1A6.js → DAvlXjt0.js} +1 -1
- package/.output/public/_nuxt/DBKzwexZ.js +1 -0
- package/.output/public/_nuxt/{wCGVE8_e.js → DEATxnaF.js} +1 -1
- package/.output/public/_nuxt/{cABRLVee.js → DFg8PvHV.js} +1 -1
- package/.output/public/_nuxt/DM4MyqI-.js +1 -0
- package/.output/public/_nuxt/{Cdt3I3Go.js → DNE7kw9s.js} +1 -1
- package/.output/public/_nuxt/DO0oG4fG.js +1 -0
- package/.output/public/_nuxt/{B6S_ob86.js → DPFugPaB.js} +1 -1
- package/.output/public/_nuxt/{DJjDvbZE.js → DQlXU6_H.js} +1 -1
- package/.output/public/_nuxt/DQvuQpwh.js +1 -0
- package/.output/public/_nuxt/{sf57orEk.js → DRlG_bnX.js} +1 -1
- package/.output/public/_nuxt/{C6RC3lA1.js → DSQj-oMk.js} +1 -1
- package/.output/public/_nuxt/{CeIVm4A3.js → DU6ewLkE.js} +1 -1
- package/.output/public/_nuxt/{Cp2MA0cm.js → DWhzQg7B.js} +1 -1
- package/.output/public/_nuxt/{DJMS2og1.js → D_vK6VPK.js} +1 -1
- package/.output/public/_nuxt/{CihWZmJe.js → DaBp0Gba.js} +2 -2
- package/.output/public/_nuxt/DaH2FbAy.js +1 -0
- package/.output/public/_nuxt/{CtYFj7k1.js → DaJo0CeV.js} +1 -1
- package/.output/public/_nuxt/DauLdT7p.js +1 -0
- package/.output/public/_nuxt/{DG-T44jj.js → DdPA4eTX.js} +1 -1
- package/.output/public/_nuxt/{YuTZB7sD.js → DeAGWdWK.js} +1 -1
- package/.output/public/_nuxt/{CitkKxhw.js → DfF1qofg.js} +1 -1
- package/.output/public/_nuxt/{Daz4MeL6.js → DiGBA-aA.js} +1 -1
- package/.output/public/_nuxt/DiJxF69i.js +1 -0
- package/.output/public/_nuxt/{DIoI0uJm.js → DkBIU-1F.js} +1 -1
- package/.output/public/_nuxt/DmAM6bZ0.js +1 -0
- package/.output/public/_nuxt/DmeAKr3J.js +1 -0
- package/.output/public/_nuxt/DmmTnMzZ.js +1 -0
- package/.output/public/_nuxt/{Lwdv_RKd.js → DqsUSndS.js} +1 -1
- package/.output/public/_nuxt/Dvw-hR3Y.js +1 -0
- package/.output/public/_nuxt/{CVgTJeSq.js → Dz6sfh81.js} +1 -1
- package/.output/public/_nuxt/{BYjadNrw.js → FNhYm5FX.js} +1 -1
- package/.output/public/_nuxt/{Nb2jBtYT.js → HOeKUnra.js} +1 -1
- package/.output/public/_nuxt/{CtchsY6e.js → IR1jkN7B.js} +1 -1
- package/.output/public/_nuxt/{DCzfkCGa.js → MpTk6K7N.js} +1 -1
- package/.output/public/_nuxt/NZ7Wz6LP.js +1 -0
- package/.output/public/_nuxt/{DfQu3kEw.js → PqWbiAD2.js} +1 -1
- package/.output/public/_nuxt/{Jez9DHn7.js → Tu4FhMRc.js} +1 -1
- package/.output/public/_nuxt/{B3y_Qqox.js → UKPXYG4z.js} +1 -1
- package/.output/public/_nuxt/{BlAZO7nq.js → UO2Y9Nve.js} +1 -1
- package/.output/public/_nuxt/{KKK6HVeG.js → XHiJSquP.js} +1 -1
- package/.output/public/_nuxt/YGWAImQo.js +1 -0
- package/.output/public/_nuxt/{ghuJ76mD.js → ZR87XvwB.js} +1 -1
- package/.output/public/_nuxt/{yNrp2XvX.js → _E89BQAO.js} +1 -1
- package/.output/public/_nuxt/{C_BdYLzz.js → aiXk7zRt.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/91727fcc-bf7f-407f-9b1e-092017fcfee0.json +1 -0
- package/.output/public/_nuxt/cL7whuPe.js +1 -0
- package/.output/public/_nuxt/{BasgsT_S.js → ct6_k5IW.js} +1 -1
- package/.output/public/_nuxt/entry._7ZkP07A.css +1 -0
- package/.output/public/_nuxt/{DTDgHTuh.js → fEUQvmn8.js} +2 -2
- package/.output/public/_nuxt/{FNC8XZTk.js → gGlaVUMD.js} +1 -1
- package/.output/public/_nuxt/gjmGkVlL.js +1 -0
- package/.output/public/_nuxt/{IRSbVPIu.js → m5001Uvl.js} +1 -1
- package/.output/public/_nuxt/{_CYZi8HN.js → mQkFCz_M.js} +1 -1
- package/.output/public/_nuxt/{BxXOsXrM.js → p9l1LjVc.js} +10 -10
- package/.output/public/_nuxt/{BsEZoHd1.js → qR_K5W8V.js} +1 -1
- package/.output/public/_nuxt/{BrNqhp1a.js → t_9QQ4MF.js} +7 -7
- package/.output/public/_nuxt/{pcUI-zuY.js → uc4c4mfb.js} +1 -1
- package/.output/public/_nuxt/{usage.vakN1lvi.css → usage.BDeyCZwW.css} +1 -1
- package/.output/public/_nuxt/wPSLEMBw.js +1 -0
- package/.output/public/_nuxt/xKRwul0f.js +1 -0
- package/.output/public/_nuxt/{BWhMnjID.js → xgpiGSxb.js} +1 -1
- package/.output/public/_nuxt/xxnk7j0F.js +1 -0
- package/.output/public/favicon.svg +1 -0
- package/.output/server/chunks/build/A-BWukSPjS.mjs +1 -0
- package/.output/server/chunks/build/Accordion-BaJYea6e.mjs +1 -0
- package/.output/server/chunks/build/AccordionItem-DdG2zgcN.mjs +1 -0
- package/.output/server/chunks/build/Badge-BrU9UkCv.mjs +1 -0
- package/.output/server/chunks/build/Blockquote-DND8wTkU.mjs +1 -0
- package/.output/server/chunks/build/Callout-1halpaEg.mjs +1 -0
- package/.output/server/chunks/build/Card-BHCSDKDt.mjs +1 -0
- package/.output/server/chunks/build/CardGroup-BOuJcNGp.mjs +1 -0
- package/.output/server/chunks/build/Caution-BP3y-TcC.mjs +1 -0
- package/.output/server/chunks/build/Code-B1xkAS5a.mjs +1 -0
- package/.output/server/chunks/build/CodeCollapse-BIhaNa22.mjs +1 -0
- package/.output/server/chunks/build/CodeGroup-BviYyCuo.mjs +1 -0
- package/.output/server/chunks/build/CodeIcon-CWD5HcV7.mjs +2 -1
- package/.output/server/chunks/build/CodePreview-D8PsCQ6m.mjs +1 -0
- package/.output/server/chunks/build/CodeTree-BUTLupmL.mjs +1 -0
- package/.output/server/chunks/build/Collapsible-BIvXNaSq.mjs +1 -0
- package/.output/server/chunks/build/DropdownMenu-BBrV9nXz.mjs +1 -1
- package/.output/server/chunks/build/EditorToolbar-DIfb5arC.mjs +1 -1
- package/.output/server/chunks/build/Em-DsIz_BnD.mjs +1 -0
- package/.output/server/chunks/build/Field-cwwmSQDT.mjs +1 -0
- package/.output/server/chunks/build/FieldGroup-CAIpQv8s.mjs +1 -0
- package/.output/server/chunks/build/H1-BbFNsPyP.mjs +1 -0
- package/.output/server/chunks/build/H2-vHTl_pWr.mjs +1 -0
- package/.output/server/chunks/build/H3-7eTcfO3s.mjs +1 -0
- package/.output/server/chunks/build/H4-C89p_PKO.mjs +1 -0
- package/.output/server/chunks/build/Hr-Bm8RlL3O.mjs +1 -0
- package/.output/server/chunks/build/Icon-Dp9iy0BI.mjs +1 -0
- package/.output/server/chunks/build/Img-CWLmvN1t.mjs +2 -1
- package/.output/server/chunks/build/Kbd-CQG6I_Ch.mjs +1 -0
- package/.output/server/chunks/build/Li-Bw1QUaGv.mjs +1 -0
- package/.output/server/chunks/build/MDC-Dx0YPDhe.mjs +1 -1
- package/.output/server/chunks/build/Note-CHkjm9jm.mjs +1 -0
- package/.output/server/chunks/build/Ol-D-fPnfFM.mjs +1 -0
- package/.output/server/chunks/build/P-B5YI1V9y.mjs +1 -0
- package/.output/server/chunks/build/Pre-ChiJcf3C.mjs +1 -0
- package/.output/server/chunks/build/ProseH5-DahJyv8h.mjs +1 -0
- package/.output/server/chunks/build/ProseH6-C4Is5h6c.mjs +1 -0
- package/.output/server/chunks/build/Select-BB1oLrCD.mjs +1 -1
- package/.output/server/chunks/build/SelectMenu-DPssg6zD.mjs +1 -1
- package/.output/server/chunks/build/Steps-BZpvXfzb.mjs +1 -0
- package/.output/server/chunks/build/Strong-DXJqOWL3.mjs +1 -0
- package/.output/server/chunks/build/Table-BSrLZ7dt.mjs +1 -0
- package/.output/server/chunks/build/Table-DCwTlhCj.mjs +1 -1
- package/.output/server/chunks/build/Tabs-Dk3nvOFF.mjs +1 -0
- package/.output/server/chunks/build/TabsItem-CDhyuBtJ.mjs +1 -0
- package/.output/server/chunks/build/Tbody-CjMT5oH-.mjs +1 -0
- package/.output/server/chunks/build/Td-ZBVaEjFN.mjs +1 -0
- package/.output/server/chunks/build/Th-D317icbd.mjs +1 -0
- package/.output/server/chunks/build/Thead-Ca_ZESTK.mjs +1 -0
- package/.output/server/chunks/build/Tip-CP3oTARR.mjs +1 -0
- package/.output/server/chunks/build/Tooltip-TRyl6dje.mjs +1 -1
- package/.output/server/chunks/build/Tr-6jI8j9gD.mjs +1 -0
- package/.output/server/chunks/build/{docs-Dk2JnYq3.mjs → Tree-DUhXKd8y.mjs} +46 -2235
- package/.output/server/chunks/build/Tree-DUhXKd8y.mjs.map +1 -0
- package/.output/server/chunks/build/Ul-BUGj_CPb.mjs +1 -0
- package/.output/server/chunks/build/Warning-BJ8G6cxC.mjs +1 -0
- package/.output/server/chunks/build/_id_-DN00UDdO.mjs +1 -0
- package/.output/server/chunks/build/_id_-DN00UDdO.mjs.map +1 -1
- package/.output/server/chunks/build/_name_-BnS_KEfX.mjs +1592 -0
- package/.output/server/chunks/build/_name_-BnS_KEfX.mjs.map +1 -0
- package/.output/server/chunks/build/{_uuid_-0UgdUhfY.mjs → _uuid_-DfJaumTE.mjs} +5 -4
- package/.output/server/chunks/build/{_uuid_-0UgdUhfY.mjs.map → _uuid_-DfJaumTE.mjs.map} +1 -1
- package/.output/server/chunks/build/auth-BGPNH2QJ.mjs +20 -0
- package/.output/server/chunks/build/auth-BGPNH2QJ.mjs.map +1 -0
- package/.output/server/chunks/build/auth-CvD7MqKW.mjs +1 -0
- package/.output/server/chunks/build/auth-CvD7MqKW.mjs.map +1 -1
- package/.output/server/chunks/build/chat-CZMiB68R.mjs +1 -0
- package/.output/server/chunks/build/chat-CZMiB68R.mjs.map +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/cookie-C_iulBi6.mjs +1 -1
- package/.output/server/chunks/build/{dashboard-YEscLBQN.mjs → dashboard-CLk1NlbR.mjs} +15 -4
- package/.output/server/chunks/build/dashboard-CLk1NlbR.mjs.map +1 -0
- package/.output/server/chunks/build/{dashboard-CpMVYnDV.mjs → dashboard-CiVTAZuF.mjs} +12 -4
- package/.output/server/chunks/build/{dashboard-CpMVYnDV.mjs.map → dashboard-CiVTAZuF.mjs.map} +1 -1
- package/.output/server/chunks/build/docs-ChGwOPg5.mjs +2204 -0
- package/.output/server/chunks/build/docs-ChGwOPg5.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-BzbcNcdU.mjs +1 -0
- package/.output/server/chunks/build/error-500-uCDjGRW8.mjs +1 -0
- package/.output/server/chunks/build/fetch-BB7Qzkwe.mjs +1 -1
- package/.output/server/chunks/build/{hooks-DP8WoUPS.mjs → hooks-D328DcO6.mjs} +3 -2
- package/.output/server/chunks/build/hooks-D328DcO6.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DVx-QlhP.mjs → index-Byt-3Yq6.mjs} +3 -2
- package/.output/server/chunks/build/{index-DVx-QlhP.mjs.map → index-Byt-3Yq6.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-Ba_bPJgk.mjs → index-C9PuieXh.mjs} +3 -2
- package/.output/server/chunks/build/index-C9PuieXh.mjs.map +1 -0
- package/.output/server/chunks/build/index-C_LcBBgO.mjs +1508 -0
- package/.output/server/chunks/build/index-C_LcBBgO.mjs.map +1 -0
- package/.output/server/chunks/build/index-CxDxc9fm.mjs +1 -1
- package/.output/server/chunks/build/index-DzdvIi8V.mjs +1 -0
- package/.output/server/chunks/build/library-CbWcF5wT.mjs +601 -0
- package/.output/server/chunks/build/library-CbWcF5wT.mjs.map +1 -0
- package/.output/server/chunks/build/{login-BAysbpyX.mjs → login-DnnElTl2.mjs} +15 -7
- package/.output/server/chunks/build/{login-BAysbpyX.mjs.map → login-DnnElTl2.mjs.map} +1 -1
- package/.output/server/chunks/build/memories-BqA719O1.mjs +1 -0
- package/.output/server/chunks/build/memories-BqA719O1.mjs.map +1 -1
- package/.output/server/chunks/build/server.mjs +62 -34
- package/.output/server/chunks/build/server.mjs.map +1 -1
- package/.output/server/chunks/build/settings-DdkKCJ00.mjs +1 -0
- package/.output/server/chunks/build/settings-DdkKCJ00.mjs.map +1 -1
- package/.output/server/chunks/build/styles.mjs +2 -2
- package/.output/server/chunks/build/{tasks-DiOi1HG_.mjs → tasks-DnAFqbtt.mjs} +3 -2
- package/.output/server/chunks/build/tasks-DnAFqbtt.mjs.map +1 -0
- package/.output/server/chunks/build/{usage-H_mcd_fz.mjs → usage-CSrBh4Or.mjs} +159 -44
- package/.output/server/chunks/build/{usage-H_mcd_fz.mjs.map → usage-CSrBh4Or.mjs.map} +1 -1
- package/.output/server/chunks/build/{usePreferences-CzC8fRzd.mjs → usePreferences-DH1QjxOj.mjs} +7 -1
- package/.output/server/chunks/build/usePreferences-DH1QjxOj.mjs.map +1 -0
- package/.output/server/chunks/build/{view-Dc8mvzCB.mjs → view-n2sYa4Zh.mjs} +4 -3
- package/.output/server/chunks/build/{view-Dc8mvzCB.mjs.map → view-n2sYa4Zh.mjs.map} +1 -1
- package/.output/server/chunks/build/virtual_nuxt__Users_tony_Documents_GitHub_second-brain_node_modules_.cache_nuxt_.nuxt_mdc-imports-PtwWlZ2H.mjs +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +1247 -824
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/_ws/chat.mjs +2 -1
- package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/cancel.post.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/cancel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/run.post.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/run.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/runs.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/runs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/stats.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/stats.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/_...all_.mjs +1 -0
- package/.output/server/chunks/routes/api/auth/_...all_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/conversations/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +1 -0
- package/.output/server/chunks/routes/api/dashboard/overview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/_id/public.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/by-path.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/delete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/list.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/mkdir.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/move.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/rename.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -0
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/home.get.mjs +1 -0
- package/.output/server/chunks/routes/api/home.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/hooks/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/hooks/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -0
- package/.output/server/chunks/routes/api/hooks/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get6.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get6.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get7.mjs +40 -38
- package/.output/server/chunks/routes/api/index.get7.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get8.mjs +33 -38
- package/.output/server/chunks/routes/api/index.get8.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get9.mjs +83 -0
- package/.output/server/chunks/routes/api/index.get9.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs +2 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/search.get.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/store.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/projects/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/projects/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/projects/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/secrets/_key_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -0
- package/.output/server/chunks/routes/api/secrets/_key_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/skills/_name/export.get.mjs +72 -0
- package/.output/server/chunks/routes/api/skills/_name/export.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs +73 -0
- package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs +71 -0
- package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs +69 -0
- package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs +69 -0
- package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/index.get.mjs +60 -0
- package/.output/server/chunks/routes/api/skills/_name/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs +87 -0
- package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs +62 -0
- package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/create.post.mjs +79 -0
- package/.output/server/chunks/routes/api/skills/create.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/generate.post.mjs +143 -0
- package/.output/server/chunks/routes/api/skills/generate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/import.post.mjs +96 -0
- package/.output/server/chunks/routes/api/skills/import.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/index.get.mjs +82 -0
- package/.output/server/chunks/routes/api/skills/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/index.get2.mjs +83 -0
- package/.output/server/chunks/routes/api/skills/index.get2.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs +72 -0
- package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/library/install.post.mjs +90 -0
- package/.output/server/chunks/routes/api/skills/library/install.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/tags.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/usage/stats.get.mjs +4 -1
- package/.output/server/chunks/routes/api/usage/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/user/email.patch.mjs +2 -1
- package/.output/server/chunks/routes/api/user/email.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/notifications.mjs +2 -1
- package/.output/server/chunks/routes/notifications.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/routes/terminal.mjs +2 -1
- package/.output/server/chunks/routes/terminal.mjs.map +1 -1
- package/.output/server/index.mjs +2 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/adm-zip/adm-zip.js +949 -0
- package/.output/server/node_modules/adm-zip/headers/entryHeader.js +374 -0
- package/.output/server/node_modules/adm-zip/headers/index.js +2 -0
- package/.output/server/node_modules/adm-zip/headers/mainHeader.js +130 -0
- package/.output/server/node_modules/adm-zip/methods/deflater.js +33 -0
- package/.output/server/node_modules/adm-zip/methods/index.js +3 -0
- package/.output/server/node_modules/adm-zip/methods/inflater.js +34 -0
- package/.output/server/node_modules/adm-zip/methods/zipcrypto.js +175 -0
- package/.output/server/node_modules/adm-zip/package.json +49 -0
- package/.output/server/node_modules/adm-zip/util/constants.js +142 -0
- package/.output/server/node_modules/adm-zip/util/decoder.js +5 -0
- package/.output/server/node_modules/adm-zip/util/errors.js +63 -0
- package/.output/server/node_modules/adm-zip/util/fattr.js +76 -0
- package/.output/server/node_modules/adm-zip/util/index.js +5 -0
- package/.output/server/node_modules/adm-zip/util/utils.js +336 -0
- package/.output/server/node_modules/adm-zip/zipEntry.js +405 -0
- package/.output/server/node_modules/adm-zip/zipFile.js +446 -0
- package/.output/server/package.json +2 -1
- package/README.md +3 -0
- package/app/app.vue +1 -1
- package/app/components/dashboard/StatCards.vue +21 -2
- package/app/components/usage/UsageCostChart.client.vue +59 -23
- package/app/components/usage/UsageCostChart.server.vue +1 -0
- package/app/components/usage/UsageSourceDonut.client.vue +17 -5
- package/app/components/usage/UsageSourceDonut.server.vue +1 -0
- package/app/components/usage/UsageTopConsumers.vue +13 -3
- package/app/composables/usePreferences.ts +9 -1
- package/app/layouts/auth.vue +0 -10
- package/app/pages/login.vue +18 -8
- package/app/pages/skills/[name].vue +12 -0
- package/app/pages/skills/index.vue +47 -0
- package/app/pages/usage.vue +43 -16
- package/dist/cli/index.js +12 -13
- package/package.json +5 -3
- package/server/api/skills/[name]/export.get.ts +45 -0
- package/server/api/skills/import.post.ts +87 -0
- package/server/api/usage/stats.get.ts +4 -2
- package/shared/types/index.ts +2 -1
- package/.output/public/_nuxt/5ZXA0Ckq.js +0 -1
- package/.output/public/_nuxt/BIIJhjQO.js +0 -1
- package/.output/public/_nuxt/BIckl6wA.js +0 -1
- package/.output/public/_nuxt/BJ3o57WW.js +0 -1
- package/.output/public/_nuxt/BNetzZzF.js +0 -1
- package/.output/public/_nuxt/BS0ofHJK.js +0 -1
- package/.output/public/_nuxt/B_3_hrpn.js +0 -1
- package/.output/public/_nuxt/BaBZjmMC.js +0 -1
- package/.output/public/_nuxt/BaMqDm5u.js +0 -1
- package/.output/public/_nuxt/BhzMoffi.js +0 -1
- package/.output/public/_nuxt/BlhFigLL.js +0 -1
- package/.output/public/_nuxt/BoIxv-gM.js +0 -1
- package/.output/public/_nuxt/Br19oYkq.js +0 -1
- package/.output/public/_nuxt/C0kh_F7v.js +0 -1
- package/.output/public/_nuxt/C61KgSco.js +0 -1
- package/.output/public/_nuxt/CJUdYEdO.js +0 -1
- package/.output/public/_nuxt/CVJQGP1Q.js +0 -1
- package/.output/public/_nuxt/CWMUi89H.js +0 -1
- package/.output/public/_nuxt/Cdu2qGgq.js +0 -1
- package/.output/public/_nuxt/CeIu7z4p.js +0 -1
- package/.output/public/_nuxt/D2689qk4.js +0 -1
- package/.output/public/_nuxt/D31L7Ks6.js +0 -1
- package/.output/public/_nuxt/DB359q8R.js +0 -1
- package/.output/public/_nuxt/DHG66LPS.js +0 -1
- package/.output/public/_nuxt/DJ5V-y_x.js +0 -1
- package/.output/public/_nuxt/DLETdGFL.js +0 -1
- package/.output/public/_nuxt/DOICd-Ld.js +0 -1
- package/.output/public/_nuxt/DPEcH-gi.js +0 -65
- package/.output/public/_nuxt/Db8-_gO7.js +0 -1
- package/.output/public/_nuxt/DgV-EDJ9.js +0 -1
- package/.output/public/_nuxt/Dp2X5R2m.js +0 -1
- package/.output/public/_nuxt/DqB723Z0.js +0 -1
- package/.output/public/_nuxt/Q8Ps7oN5.js +0 -1
- package/.output/public/_nuxt/SXTDhzp6.js +0 -1
- package/.output/public/_nuxt/Sg2Lwc46.js +0 -1
- package/.output/public/_nuxt/_J_7XIn-.js +0 -1
- package/.output/public/_nuxt/builds/meta/a1e9100c-1a4f-4f7e-bb53-9dbe0d07effb.json +0 -1
- package/.output/public/_nuxt/entry.CGxIBGAf.css +0 -1
- package/.output/public/_nuxt/inmzPrjz.js +0 -1
- package/.output/public/_nuxt/oIX-ZDN6.js +0 -1
- package/.output/server/chunks/build/auth-CDHRohj4.mjs +0 -77
- package/.output/server/chunks/build/auth-CDHRohj4.mjs.map +0 -1
- package/.output/server/chunks/build/dashboard-YEscLBQN.mjs.map +0 -1
- package/.output/server/chunks/build/docs-Dk2JnYq3.mjs.map +0 -1
- package/.output/server/chunks/build/hooks-DP8WoUPS.mjs.map +0 -1
- package/.output/server/chunks/build/index-Ba_bPJgk.mjs.map +0 -1
- package/.output/server/chunks/build/tasks-DiOi1HG_.mjs.map +0 -1
- package/.output/server/chunks/build/usePreferences-CzC8fRzd.mjs.map +0 -1
- /package/.output/public/_nuxt/{useCopyToClipboard.Be_IvFWy.css → CodeEditor.Be_IvFWy.css} +0 -0
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
const ZipEntry = require("./zipEntry");
|
|
2
|
+
const Headers = require("./headers");
|
|
3
|
+
const Utils = require("./util");
|
|
4
|
+
|
|
5
|
+
module.exports = function (/*Buffer|null*/ inBuffer, /** object */ options) {
|
|
6
|
+
var entryList = [],
|
|
7
|
+
entryTable = {},
|
|
8
|
+
_comment = Buffer.alloc(0),
|
|
9
|
+
mainHeader = new Headers.MainHeader(),
|
|
10
|
+
loadedEntries = false;
|
|
11
|
+
var password = null;
|
|
12
|
+
const temporary = new Set();
|
|
13
|
+
|
|
14
|
+
// assign options
|
|
15
|
+
const opts = options;
|
|
16
|
+
|
|
17
|
+
const { noSort, decoder } = opts;
|
|
18
|
+
|
|
19
|
+
if (inBuffer) {
|
|
20
|
+
// is a memory buffer
|
|
21
|
+
readMainHeader(opts.readEntries);
|
|
22
|
+
} else {
|
|
23
|
+
// none. is a new file
|
|
24
|
+
loadedEntries = true;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function makeTemporaryFolders() {
|
|
28
|
+
const foldersList = new Set();
|
|
29
|
+
|
|
30
|
+
// Make list of all folders in file
|
|
31
|
+
for (const elem of Object.keys(entryTable)) {
|
|
32
|
+
const elements = elem.split("/");
|
|
33
|
+
elements.pop(); // filename
|
|
34
|
+
if (!elements.length) continue; // no folders
|
|
35
|
+
for (let i = 0; i < elements.length; i++) {
|
|
36
|
+
const sub = elements.slice(0, i + 1).join("/") + "/";
|
|
37
|
+
foldersList.add(sub);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// create missing folders as temporary
|
|
42
|
+
for (const elem of foldersList) {
|
|
43
|
+
if (!(elem in entryTable)) {
|
|
44
|
+
const tempfolder = new ZipEntry(opts);
|
|
45
|
+
tempfolder.entryName = elem;
|
|
46
|
+
tempfolder.attr = 0x10;
|
|
47
|
+
tempfolder.temporary = true;
|
|
48
|
+
entryList.push(tempfolder);
|
|
49
|
+
entryTable[tempfolder.entryName] = tempfolder;
|
|
50
|
+
temporary.add(tempfolder);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function readEntries() {
|
|
56
|
+
loadedEntries = true;
|
|
57
|
+
entryTable = {};
|
|
58
|
+
if (mainHeader.diskEntries > (inBuffer.length - mainHeader.offset) / Utils.Constants.CENHDR) {
|
|
59
|
+
throw Utils.Errors.DISK_ENTRY_TOO_LARGE();
|
|
60
|
+
}
|
|
61
|
+
entryList = new Array(mainHeader.diskEntries); // total number of entries
|
|
62
|
+
var index = mainHeader.offset; // offset of first CEN header
|
|
63
|
+
for (var i = 0; i < entryList.length; i++) {
|
|
64
|
+
var tmp = index,
|
|
65
|
+
entry = new ZipEntry(opts, inBuffer);
|
|
66
|
+
entry.header = inBuffer.slice(tmp, (tmp += Utils.Constants.CENHDR));
|
|
67
|
+
|
|
68
|
+
entry.entryName = inBuffer.slice(tmp, (tmp += entry.header.fileNameLength));
|
|
69
|
+
|
|
70
|
+
if (entry.header.extraLength) {
|
|
71
|
+
entry.extra = inBuffer.slice(tmp, (tmp += entry.header.extraLength));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (entry.header.commentLength) entry.comment = inBuffer.slice(tmp, tmp + entry.header.commentLength);
|
|
75
|
+
|
|
76
|
+
index += entry.header.centralHeaderSize;
|
|
77
|
+
|
|
78
|
+
entryList[i] = entry;
|
|
79
|
+
entryTable[entry.entryName] = entry;
|
|
80
|
+
}
|
|
81
|
+
temporary.clear();
|
|
82
|
+
makeTemporaryFolders();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function readMainHeader(/*Boolean*/ readNow) {
|
|
86
|
+
var i = inBuffer.length - Utils.Constants.ENDHDR, // END header size
|
|
87
|
+
max = Math.max(0, i - 0xffff), // 0xFFFF is the max zip file comment length
|
|
88
|
+
n = max,
|
|
89
|
+
endStart = inBuffer.length,
|
|
90
|
+
endOffset = -1, // Start offset of the END header
|
|
91
|
+
commentEnd = 0;
|
|
92
|
+
|
|
93
|
+
// option to search header form entire file
|
|
94
|
+
const trailingSpace = typeof opts.trailingSpace === "boolean" ? opts.trailingSpace : false;
|
|
95
|
+
if (trailingSpace) max = 0;
|
|
96
|
+
|
|
97
|
+
for (i; i >= n; i--) {
|
|
98
|
+
if (inBuffer[i] !== 0x50) continue; // quick check that the byte is 'P'
|
|
99
|
+
if (inBuffer.readUInt32LE(i) === Utils.Constants.ENDSIG) {
|
|
100
|
+
// "PK\005\006"
|
|
101
|
+
endOffset = i;
|
|
102
|
+
commentEnd = i;
|
|
103
|
+
endStart = i + Utils.Constants.ENDHDR;
|
|
104
|
+
// We already found a regular signature, let's look just a bit further to check if there's any zip64 signature
|
|
105
|
+
n = i - Utils.Constants.END64HDR;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (inBuffer.readUInt32LE(i) === Utils.Constants.END64SIG) {
|
|
110
|
+
// Found a zip64 signature, let's continue reading the whole zip64 record
|
|
111
|
+
n = max;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (inBuffer.readUInt32LE(i) === Utils.Constants.ZIP64SIG) {
|
|
116
|
+
// Found the zip64 record, let's determine it's size
|
|
117
|
+
endOffset = i;
|
|
118
|
+
endStart = i + Utils.readBigUInt64LE(inBuffer, i + Utils.Constants.ZIP64SIZE) + Utils.Constants.ZIP64LEAD;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (endOffset == -1) throw Utils.Errors.INVALID_FORMAT();
|
|
124
|
+
|
|
125
|
+
mainHeader.loadFromBinary(inBuffer.slice(endOffset, endStart));
|
|
126
|
+
if (mainHeader.commentLength) {
|
|
127
|
+
_comment = inBuffer.slice(commentEnd + Utils.Constants.ENDHDR);
|
|
128
|
+
}
|
|
129
|
+
if (readNow) readEntries();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function sortEntries() {
|
|
133
|
+
if (entryList.length > 1 && !noSort) {
|
|
134
|
+
entryList.sort((a, b) => a.entryName.toLowerCase().localeCompare(b.entryName.toLowerCase()));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return {
|
|
139
|
+
/**
|
|
140
|
+
* Returns an array of ZipEntry objects existent in the current opened archive
|
|
141
|
+
* @return Array
|
|
142
|
+
*/
|
|
143
|
+
get entries() {
|
|
144
|
+
if (!loadedEntries) {
|
|
145
|
+
readEntries();
|
|
146
|
+
}
|
|
147
|
+
return entryList.filter((e) => !temporary.has(e));
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Archive comment
|
|
152
|
+
* @return {String}
|
|
153
|
+
*/
|
|
154
|
+
get comment() {
|
|
155
|
+
return decoder.decode(_comment);
|
|
156
|
+
},
|
|
157
|
+
set comment(val) {
|
|
158
|
+
_comment = Utils.toBuffer(val, decoder.encode);
|
|
159
|
+
mainHeader.commentLength = _comment.length;
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
getEntryCount: function () {
|
|
163
|
+
if (!loadedEntries) {
|
|
164
|
+
return mainHeader.diskEntries;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return entryList.length;
|
|
168
|
+
},
|
|
169
|
+
|
|
170
|
+
forEach: function (callback) {
|
|
171
|
+
this.entries.forEach(callback);
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Returns a reference to the entry with the given name or null if entry is inexistent
|
|
176
|
+
*
|
|
177
|
+
* @param entryName
|
|
178
|
+
* @return ZipEntry
|
|
179
|
+
*/
|
|
180
|
+
getEntry: function (/*String*/ entryName) {
|
|
181
|
+
if (!loadedEntries) {
|
|
182
|
+
readEntries();
|
|
183
|
+
}
|
|
184
|
+
return entryTable[entryName] || null;
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Adds the given entry to the entry list
|
|
189
|
+
*
|
|
190
|
+
* @param entry
|
|
191
|
+
*/
|
|
192
|
+
setEntry: function (/*ZipEntry*/ entry) {
|
|
193
|
+
if (!loadedEntries) {
|
|
194
|
+
readEntries();
|
|
195
|
+
}
|
|
196
|
+
entryList.push(entry);
|
|
197
|
+
entryTable[entry.entryName] = entry;
|
|
198
|
+
mainHeader.totalEntries = entryList.length;
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Removes the file with the given name from the entry list.
|
|
203
|
+
*
|
|
204
|
+
* If the entry is a directory, then all nested files and directories will be removed
|
|
205
|
+
* @param entryName
|
|
206
|
+
* @returns {void}
|
|
207
|
+
*/
|
|
208
|
+
deleteFile: function (/*String*/ entryName, withsubfolders = true) {
|
|
209
|
+
if (!loadedEntries) {
|
|
210
|
+
readEntries();
|
|
211
|
+
}
|
|
212
|
+
const entry = entryTable[entryName];
|
|
213
|
+
const list = this.getEntryChildren(entry, withsubfolders).map((child) => child.entryName);
|
|
214
|
+
|
|
215
|
+
list.forEach(this.deleteEntry);
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Removes the entry with the given name from the entry list.
|
|
220
|
+
*
|
|
221
|
+
* @param {string} entryName
|
|
222
|
+
* @returns {void}
|
|
223
|
+
*/
|
|
224
|
+
deleteEntry: function (/*String*/ entryName) {
|
|
225
|
+
if (!loadedEntries) {
|
|
226
|
+
readEntries();
|
|
227
|
+
}
|
|
228
|
+
const entry = entryTable[entryName];
|
|
229
|
+
const index = entryList.indexOf(entry);
|
|
230
|
+
if (index >= 0) {
|
|
231
|
+
entryList.splice(index, 1);
|
|
232
|
+
delete entryTable[entryName];
|
|
233
|
+
mainHeader.totalEntries = entryList.length;
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Iterates and returns all nested files and directories of the given entry
|
|
239
|
+
*
|
|
240
|
+
* @param entry
|
|
241
|
+
* @return Array
|
|
242
|
+
*/
|
|
243
|
+
getEntryChildren: function (/*ZipEntry*/ entry, subfolders = true) {
|
|
244
|
+
if (!loadedEntries) {
|
|
245
|
+
readEntries();
|
|
246
|
+
}
|
|
247
|
+
if (typeof entry === "object") {
|
|
248
|
+
if (entry.isDirectory && subfolders) {
|
|
249
|
+
const list = [];
|
|
250
|
+
const name = entry.entryName;
|
|
251
|
+
|
|
252
|
+
for (const zipEntry of entryList) {
|
|
253
|
+
if (zipEntry.entryName.startsWith(name)) {
|
|
254
|
+
list.push(zipEntry);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return list;
|
|
258
|
+
} else {
|
|
259
|
+
return [entry];
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return [];
|
|
263
|
+
},
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* How many child elements entry has
|
|
267
|
+
*
|
|
268
|
+
* @param {ZipEntry} entry
|
|
269
|
+
* @return {integer}
|
|
270
|
+
*/
|
|
271
|
+
getChildCount: function (entry) {
|
|
272
|
+
if (entry && entry.isDirectory) {
|
|
273
|
+
const list = this.getEntryChildren(entry);
|
|
274
|
+
return list.includes(entry) ? list.length - 1 : list.length;
|
|
275
|
+
}
|
|
276
|
+
return 0;
|
|
277
|
+
},
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Returns the zip file
|
|
281
|
+
*
|
|
282
|
+
* @return Buffer
|
|
283
|
+
*/
|
|
284
|
+
compressToBuffer: function () {
|
|
285
|
+
if (!loadedEntries) {
|
|
286
|
+
readEntries();
|
|
287
|
+
}
|
|
288
|
+
sortEntries();
|
|
289
|
+
|
|
290
|
+
const dataBlock = [];
|
|
291
|
+
const headerBlocks = [];
|
|
292
|
+
let totalSize = 0;
|
|
293
|
+
let dindex = 0;
|
|
294
|
+
|
|
295
|
+
mainHeader.size = 0;
|
|
296
|
+
mainHeader.offset = 0;
|
|
297
|
+
let totalEntries = 0;
|
|
298
|
+
|
|
299
|
+
for (const entry of this.entries) {
|
|
300
|
+
// compress data and set local and entry header accordingly. Reason why is called first
|
|
301
|
+
const compressedData = entry.getCompressedData();
|
|
302
|
+
entry.header.offset = dindex;
|
|
303
|
+
|
|
304
|
+
// 1. construct local header
|
|
305
|
+
const localHeader = entry.packLocalHeader();
|
|
306
|
+
|
|
307
|
+
// 2. offsets
|
|
308
|
+
const dataLength = localHeader.length + compressedData.length;
|
|
309
|
+
dindex += dataLength;
|
|
310
|
+
|
|
311
|
+
// 3. store values in sequence
|
|
312
|
+
dataBlock.push(localHeader);
|
|
313
|
+
dataBlock.push(compressedData);
|
|
314
|
+
|
|
315
|
+
// 4. construct central header
|
|
316
|
+
const centralHeader = entry.packCentralHeader();
|
|
317
|
+
headerBlocks.push(centralHeader);
|
|
318
|
+
// 5. update main header
|
|
319
|
+
mainHeader.size += centralHeader.length;
|
|
320
|
+
totalSize += dataLength + centralHeader.length;
|
|
321
|
+
totalEntries++;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
totalSize += mainHeader.mainHeaderSize; // also includes zip file comment length
|
|
325
|
+
// point to end of data and beginning of central directory first record
|
|
326
|
+
mainHeader.offset = dindex;
|
|
327
|
+
mainHeader.totalEntries = totalEntries;
|
|
328
|
+
|
|
329
|
+
dindex = 0;
|
|
330
|
+
const outBuffer = Buffer.alloc(totalSize);
|
|
331
|
+
// write data blocks
|
|
332
|
+
for (const content of dataBlock) {
|
|
333
|
+
content.copy(outBuffer, dindex);
|
|
334
|
+
dindex += content.length;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// write central directory entries
|
|
338
|
+
for (const content of headerBlocks) {
|
|
339
|
+
content.copy(outBuffer, dindex);
|
|
340
|
+
dindex += content.length;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// write main header
|
|
344
|
+
const mh = mainHeader.toBinary();
|
|
345
|
+
if (_comment) {
|
|
346
|
+
_comment.copy(mh, Utils.Constants.ENDHDR); // add zip file comment
|
|
347
|
+
}
|
|
348
|
+
mh.copy(outBuffer, dindex);
|
|
349
|
+
|
|
350
|
+
// Since we update entry and main header offsets,
|
|
351
|
+
// they are no longer valid and we have to reset content
|
|
352
|
+
// (Issue 64)
|
|
353
|
+
|
|
354
|
+
inBuffer = outBuffer;
|
|
355
|
+
loadedEntries = false;
|
|
356
|
+
|
|
357
|
+
return outBuffer;
|
|
358
|
+
},
|
|
359
|
+
|
|
360
|
+
toAsyncBuffer: function (/*Function*/ onSuccess, /*Function*/ onFail, /*Function*/ onItemStart, /*Function*/ onItemEnd) {
|
|
361
|
+
try {
|
|
362
|
+
if (!loadedEntries) {
|
|
363
|
+
readEntries();
|
|
364
|
+
}
|
|
365
|
+
sortEntries();
|
|
366
|
+
|
|
367
|
+
const dataBlock = [];
|
|
368
|
+
const centralHeaders = [];
|
|
369
|
+
let totalSize = 0;
|
|
370
|
+
let dindex = 0;
|
|
371
|
+
let totalEntries = 0;
|
|
372
|
+
|
|
373
|
+
mainHeader.size = 0;
|
|
374
|
+
mainHeader.offset = 0;
|
|
375
|
+
|
|
376
|
+
const compress2Buffer = function (entryLists) {
|
|
377
|
+
if (entryLists.length > 0) {
|
|
378
|
+
const entry = entryLists.shift();
|
|
379
|
+
const name = entry.entryName + entry.extra.toString();
|
|
380
|
+
if (onItemStart) onItemStart(name);
|
|
381
|
+
entry.getCompressedDataAsync(function (compressedData) {
|
|
382
|
+
if (onItemEnd) onItemEnd(name);
|
|
383
|
+
entry.header.offset = dindex;
|
|
384
|
+
|
|
385
|
+
// 1. construct local header
|
|
386
|
+
const localHeader = entry.packLocalHeader();
|
|
387
|
+
|
|
388
|
+
// 2. offsets
|
|
389
|
+
const dataLength = localHeader.length + compressedData.length;
|
|
390
|
+
dindex += dataLength;
|
|
391
|
+
|
|
392
|
+
// 3. store values in sequence
|
|
393
|
+
dataBlock.push(localHeader);
|
|
394
|
+
dataBlock.push(compressedData);
|
|
395
|
+
|
|
396
|
+
// central header
|
|
397
|
+
const centalHeader = entry.packCentralHeader();
|
|
398
|
+
centralHeaders.push(centalHeader);
|
|
399
|
+
mainHeader.size += centalHeader.length;
|
|
400
|
+
totalSize += dataLength + centalHeader.length;
|
|
401
|
+
totalEntries++;
|
|
402
|
+
|
|
403
|
+
compress2Buffer(entryLists);
|
|
404
|
+
});
|
|
405
|
+
} else {
|
|
406
|
+
totalSize += mainHeader.mainHeaderSize; // also includes zip file comment length
|
|
407
|
+
// point to end of data and beginning of central directory first record
|
|
408
|
+
mainHeader.offset = dindex;
|
|
409
|
+
mainHeader.totalEntries = totalEntries;
|
|
410
|
+
|
|
411
|
+
dindex = 0;
|
|
412
|
+
const outBuffer = Buffer.alloc(totalSize);
|
|
413
|
+
dataBlock.forEach(function (content) {
|
|
414
|
+
content.copy(outBuffer, dindex); // write data blocks
|
|
415
|
+
dindex += content.length;
|
|
416
|
+
});
|
|
417
|
+
centralHeaders.forEach(function (content) {
|
|
418
|
+
content.copy(outBuffer, dindex); // write central directory entries
|
|
419
|
+
dindex += content.length;
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
const mh = mainHeader.toBinary();
|
|
423
|
+
if (_comment) {
|
|
424
|
+
_comment.copy(mh, Utils.Constants.ENDHDR); // add zip file comment
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
mh.copy(outBuffer, dindex); // write main header
|
|
428
|
+
|
|
429
|
+
// Since we update entry and main header offsets, they are no
|
|
430
|
+
// longer valid and we have to reset content using our new buffer
|
|
431
|
+
// (Issue 64)
|
|
432
|
+
|
|
433
|
+
inBuffer = outBuffer;
|
|
434
|
+
loadedEntries = false;
|
|
435
|
+
|
|
436
|
+
onSuccess(outBuffer);
|
|
437
|
+
}
|
|
438
|
+
};
|
|
439
|
+
|
|
440
|
+
compress2Buffer(Array.from(this.entries));
|
|
441
|
+
} catch (e) {
|
|
442
|
+
onFail(e);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
};
|
|
446
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cognova-prod",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": true,
|
|
6
6
|
"dependencies": {
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"@vueuse/core": "14.1.0",
|
|
73
73
|
"@vueuse/integrations": "14.1.0",
|
|
74
74
|
"@vueuse/shared": "14.1.0",
|
|
75
|
+
"adm-zip": "0.5.16",
|
|
75
76
|
"aria-hidden": "1.2.6",
|
|
76
77
|
"bail": "2.0.2",
|
|
77
78
|
"better-auth": "1.4.17",
|
package/README.md
CHANGED
|
@@ -13,6 +13,9 @@ Personal knowledge management system with an embedded AI terminal. Built for a u
|
|
|
13
13
|
- **Task Management** - Track tasks with status, priority, and project tags
|
|
14
14
|
- **Scheduled Agents** - Cron-based Claude agents with cost tracking and real-time status
|
|
15
15
|
- **Memory Dashboard** - View and manage Claude's memory context
|
|
16
|
+
- **Skills Management** - Browse, enable/disable, edit, and create skills with a built-in file editor
|
|
17
|
+
- **Community Skills Library** - Install skills from a [GitHub-hosted registry](https://github.com/Patrity/cognova-skills) with tag filtering and one-click updates
|
|
18
|
+
- **Encrypted Secrets** - AES-256-GCM key-value store with a `/secret` skill for agent access
|
|
16
19
|
- **Dashboard** - Overview of recent activity and quick capture
|
|
17
20
|
- **Custom Homepage** - Override the landing page by creating `index.md` in your vault
|
|
18
21
|
- **Public Document Sharing** - Share vault documents via unique link (no auth required)
|
package/app/app.vue
CHANGED
|
@@ -10,13 +10,19 @@ function formatCurrency(value: number): string {
|
|
|
10
10
|
if (value < 0.01 && value > 0) return '<$0.01'
|
|
11
11
|
return `$${value.toFixed(2)}`
|
|
12
12
|
}
|
|
13
|
+
|
|
14
|
+
function formatTokens(value: number): string {
|
|
15
|
+
if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`
|
|
16
|
+
if (value >= 1_000) return `${(value / 1_000).toFixed(1)}K`
|
|
17
|
+
return String(value)
|
|
18
|
+
}
|
|
13
19
|
</script>
|
|
14
20
|
|
|
15
21
|
<template>
|
|
16
|
-
<div class="grid gap-4 grid-cols-2 lg:grid-cols-
|
|
22
|
+
<div class="grid gap-4 grid-cols-2 sm:grid-cols-3 lg:grid-cols-5">
|
|
17
23
|
<template v-if="loading">
|
|
18
24
|
<div
|
|
19
|
-
v-for="i in
|
|
25
|
+
v-for="i in 5"
|
|
20
26
|
:key="i"
|
|
21
27
|
class="p-4 rounded-lg bg-elevated border border-default"
|
|
22
28
|
>
|
|
@@ -77,6 +83,19 @@ function formatCurrency(value: number): string {
|
|
|
77
83
|
{{ overview.usage.totalCalls7d }}
|
|
78
84
|
</p>
|
|
79
85
|
</div>
|
|
86
|
+
|
|
87
|
+
<div class="p-4 rounded-lg bg-elevated border border-default">
|
|
88
|
+
<div class="flex items-center gap-2 text-muted text-sm mb-1">
|
|
89
|
+
<UIcon
|
|
90
|
+
name="i-lucide-text-cursor-input"
|
|
91
|
+
class="size-4"
|
|
92
|
+
/>
|
|
93
|
+
<span>7d Tokens</span>
|
|
94
|
+
</div>
|
|
95
|
+
<p class="text-2xl font-semibold">
|
|
96
|
+
{{ formatTokens(overview.usage.totalInputTokens7d + overview.usage.totalOutputTokens7d) }}
|
|
97
|
+
</p>
|
|
98
|
+
</div>
|
|
80
99
|
</template>
|
|
81
100
|
</div>
|
|
82
101
|
</template>
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
import { format } from 'date-fns'
|
|
3
3
|
import { useElementSize } from '@vueuse/core'
|
|
4
4
|
import { VisXYContainer, VisLine, VisArea, VisAxis, VisCrosshair, VisTooltip } from '@unovis/vue'
|
|
5
|
-
import type { DailyUsageData } from '~~/shared/types'
|
|
5
|
+
import type { DailyUsageData, UsageDisplayMode } from '~~/shared/types'
|
|
6
6
|
|
|
7
7
|
const props = defineProps<{
|
|
8
8
|
data: DailyUsageData[]
|
|
9
9
|
title?: string
|
|
10
10
|
granularity: 'daily' | 'hourly'
|
|
11
|
+
displayMode?: UsageDisplayMode
|
|
11
12
|
}>()
|
|
12
13
|
|
|
13
14
|
const emit = defineEmits<{
|
|
@@ -17,9 +18,12 @@ const emit = defineEmits<{
|
|
|
17
18
|
const cardRef = useTemplateRef<HTMLElement | null>('cardRef')
|
|
18
19
|
const { width } = useElementSize(cardRef)
|
|
19
20
|
|
|
21
|
+
const isTokens = computed(() => props.displayMode === 'tokens')
|
|
22
|
+
|
|
20
23
|
const x = (_: DailyUsageData, i: number) => i
|
|
21
24
|
|
|
22
|
-
const yTotal = (d: DailyUsageData) =>
|
|
25
|
+
const yTotal = (d: DailyUsageData) =>
|
|
26
|
+
isTokens.value ? d.inputTokens + d.outputTokens : d.totalCost
|
|
23
27
|
|
|
24
28
|
// Parse "2026-02-18" as local date (not UTC) to avoid off-by-one in western timezones
|
|
25
29
|
function parseLocalDate(dateStr: string): Date {
|
|
@@ -41,6 +45,12 @@ const xTicks = (i: number) => {
|
|
|
41
45
|
return format(parseLocalDate(item.date), 'd MMM')
|
|
42
46
|
}
|
|
43
47
|
|
|
48
|
+
function formatTokens(value: number): string {
|
|
49
|
+
if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`
|
|
50
|
+
if (value >= 1_000) return `${(value / 1_000).toFixed(1)}K`
|
|
51
|
+
return String(value)
|
|
52
|
+
}
|
|
53
|
+
|
|
44
54
|
const template = (d: DailyUsageData) => {
|
|
45
55
|
let label: string
|
|
46
56
|
if (props.granularity === 'hourly') {
|
|
@@ -51,6 +61,14 @@ const template = (d: DailyUsageData) => {
|
|
|
51
61
|
} else {
|
|
52
62
|
label = format(parseLocalDate(d.date), 'MMM d, yyyy')
|
|
53
63
|
}
|
|
64
|
+
if (isTokens.value)
|
|
65
|
+
return `<div class="p-2 text-sm">
|
|
66
|
+
<div class="font-medium">${label}</div>
|
|
67
|
+
<div style="color: var(--ui-primary)">Input: ${formatTokens(d.inputTokens)}</div>
|
|
68
|
+
<div style="color: var(--ui-warning)">Output: ${formatTokens(d.outputTokens)}</div>
|
|
69
|
+
<div class="text-muted mt-1">Total: ${formatTokens(d.inputTokens + d.outputTokens)}</div>
|
|
70
|
+
<div class="text-muted">${d.calls} calls</div>
|
|
71
|
+
</div>`
|
|
54
72
|
return `<div class="p-2 text-sm">
|
|
55
73
|
<div class="font-medium">${label}</div>
|
|
56
74
|
<div style="color: var(--ui-primary)">Chat: $${d.chat.toFixed(4)}</div>
|
|
@@ -96,27 +114,45 @@ const template = (d: DailyUsageData) => {
|
|
|
96
114
|
</UFieldGroup>
|
|
97
115
|
</div>
|
|
98
116
|
<div class="flex items-center gap-3 text-xs text-muted">
|
|
99
|
-
<
|
|
100
|
-
<span
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
<span
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
<template v-if="isTokens">
|
|
118
|
+
<span class="flex items-center gap-1">
|
|
119
|
+
<span
|
|
120
|
+
class="inline-block size-2.5 rounded-full"
|
|
121
|
+
style="background: var(--ui-primary)"
|
|
122
|
+
/>
|
|
123
|
+
Input
|
|
124
|
+
</span>
|
|
125
|
+
<span class="flex items-center gap-1">
|
|
126
|
+
<span
|
|
127
|
+
class="inline-block size-2.5 rounded-full"
|
|
128
|
+
style="background: var(--ui-warning)"
|
|
129
|
+
/>
|
|
130
|
+
Output
|
|
131
|
+
</span>
|
|
132
|
+
</template>
|
|
133
|
+
<template v-else>
|
|
134
|
+
<span class="flex items-center gap-1">
|
|
135
|
+
<span
|
|
136
|
+
class="inline-block size-2.5 rounded-full"
|
|
137
|
+
style="background: var(--ui-primary)"
|
|
138
|
+
/>
|
|
139
|
+
Chat
|
|
140
|
+
</span>
|
|
141
|
+
<span class="flex items-center gap-1">
|
|
142
|
+
<span
|
|
143
|
+
class="inline-block size-2.5 rounded-full"
|
|
144
|
+
style="background: var(--ui-warning)"
|
|
145
|
+
/>
|
|
146
|
+
Agents
|
|
147
|
+
</span>
|
|
148
|
+
<span class="flex items-center gap-1">
|
|
149
|
+
<span
|
|
150
|
+
class="inline-block size-2.5 rounded-full"
|
|
151
|
+
style="background: var(--ui-info)"
|
|
152
|
+
/>
|
|
153
|
+
Memory
|
|
154
|
+
</span>
|
|
155
|
+
</template>
|
|
120
156
|
</div>
|
|
121
157
|
</div>
|
|
122
158
|
</template>
|