cognova 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{B4LjQa2N.js → 4MiwzAAt.js} +2 -2
- package/.output/public/_nuxt/{BZZeOWzQ.js → 5ZXA0Ckq.js} +1 -1
- package/.output/public/_nuxt/{B194okoV.js → 9IQmsEjr.js} +1 -1
- package/.output/public/_nuxt/{DQ_ZoW_9.js → 9QnH0xQM.js} +1 -1
- package/.output/public/_nuxt/{CF0HGIV6.js → B1X4Bzcy.js} +1 -1
- package/.output/public/_nuxt/{D9lowtoI.js → B3y_Qqox.js} +1 -1
- package/.output/public/_nuxt/{BB1R_SaV.js → B6S_ob86.js} +1 -1
- package/.output/public/_nuxt/{DVf1IpSh.js → BAIz-dEB.js} +1 -1
- package/.output/public/_nuxt/{CNFNMRY1.js → BCtfQCzC.js} +1 -1
- package/.output/public/_nuxt/BIIJhjQO.js +1 -0
- package/.output/public/_nuxt/BIckl6wA.js +1 -0
- package/.output/public/_nuxt/{Biy6boRV.js → BJ3o57WW.js} +1 -1
- package/.output/public/_nuxt/{B5rIsDOv.js → BNetzZzF.js} +1 -1
- package/.output/public/_nuxt/{DFXLcgxL.js → BOj6t-oo.js} +1 -1
- package/.output/public/_nuxt/{BDUpLPg_.js → BS0ofHJK.js} +1 -1
- package/.output/public/_nuxt/{DIdcflWi.js → BWhMnjID.js} +1 -1
- package/.output/public/_nuxt/{CExLOuIW.js → BYjadNrw.js} +1 -1
- package/.output/public/_nuxt/{C8ytOrRD.js → BZXMQuYP.js} +1 -1
- package/.output/public/_nuxt/{Ddih3UKd.js → B_3_hrpn.js} +1 -1
- package/.output/public/_nuxt/{CxSyRXlk.js → BaBZjmMC.js} +1 -1
- package/.output/public/_nuxt/BaMqDm5u.js +1 -0
- package/.output/public/_nuxt/BasgsT_S.js +1 -0
- package/.output/public/_nuxt/{Cehzuz52.js → BffWCM73.js} +1 -1
- package/.output/public/_nuxt/{Dh0BcDEI.js → BhzMoffi.js} +1 -1
- package/.output/public/_nuxt/{DmV68Eyp.js → BjjCvHLT.js} +1 -1
- package/.output/public/_nuxt/{nzAH3Wk0.js → BlAZO7nq.js} +1 -1
- package/.output/public/_nuxt/{BRPJdy3u.js → BlhFigLL.js} +1 -1
- package/.output/public/_nuxt/{CfTFjEuh.js → Bm9LyG4F.js} +1 -1
- package/.output/public/_nuxt/BoIxv-gM.js +1 -0
- package/.output/public/_nuxt/{BslL2E8V.js → BqKFIuRj.js} +1 -1
- package/.output/public/_nuxt/Br19oYkq.js +1 -0
- package/.output/public/_nuxt/{PtGESE-F.js → BrNqhp1a.js} +3 -3
- package/.output/public/_nuxt/{FvV9sv7q.js → BsEZoHd1.js} +1 -1
- package/.output/public/_nuxt/{BaPPQtFe.js → BxXOsXrM.js} +10 -10
- package/.output/public/_nuxt/BzOqrmGa.js +7 -0
- package/.output/public/_nuxt/{BNAsyazX.js → C0JKNMDO.js} +1 -1
- package/.output/public/_nuxt/C0kh_F7v.js +1 -0
- package/.output/public/_nuxt/{4Ew5YctE.js → C3FxIITy.js} +1 -1
- package/.output/public/_nuxt/{DnToOWVx.js → C4pxqdgg.js} +1 -1
- package/.output/public/_nuxt/{C5Ue4WbD.js → C61KgSco.js} +1 -1
- package/.output/public/_nuxt/{DcMvYcFq.js → C69W7k2j.js} +1 -1
- package/.output/public/_nuxt/{BnnFvWzv.js → C6RC3lA1.js} +1 -1
- package/.output/public/_nuxt/{DBENYi9d.js → C6aqGHu1.js} +1 -1
- package/.output/public/_nuxt/{YldWqMAh.js → CJUdYEdO.js} +1 -1
- package/.output/public/_nuxt/{BPAM-iC7.js → CKkC3Ptm.js} +1 -1
- package/.output/public/_nuxt/{CTXhFIUN.js → CNnJrDvu.js} +1 -1
- package/.output/public/_nuxt/{BwH2E0-a.js → CVJQGP1Q.js} +1 -1
- package/.output/public/_nuxt/{q0vhMpUB.js → CVgTJeSq.js} +1 -1
- package/.output/public/_nuxt/CWMUi89H.js +1 -0
- package/.output/public/_nuxt/{BU9VyOEC.js → CYP_MLH8.js} +1 -1
- package/.output/public/_nuxt/{76CHU1js.js → C_BdYLzz.js} +1 -1
- package/.output/public/_nuxt/{BQbnVFXA.js → Cdt3I3Go.js} +1 -1
- package/.output/public/_nuxt/Cdu2qGgq.js +1 -0
- package/.output/public/_nuxt/{ChMIRIq6.js → CeIVm4A3.js} +1 -1
- package/.output/public/_nuxt/CeIu7z4p.js +1 -0
- package/.output/public/_nuxt/{CZZw0T2a.js → Ci7UEZQh.js} +1 -1
- package/.output/public/_nuxt/{BP_jQhKs.js → CihWZmJe.js} +2 -2
- package/.output/public/_nuxt/{Bluqlt6l.js → CitkKxhw.js} +1 -1
- package/.output/public/_nuxt/{DIM73BjE.js → CmzH6R-N.js} +2 -2
- package/.output/public/_nuxt/{CD5hHJBM.js → Cp2MA0cm.js} +1 -1
- package/.output/public/_nuxt/{DflBkWfa.js → CqU2XbzO.js} +1 -1
- package/.output/public/_nuxt/{Ccc8OoR8.js → Cqy_L_ip.js} +1 -1
- package/.output/public/_nuxt/Cr8ixbr1.js +1 -0
- package/.output/public/_nuxt/{DdLGO0wP.js → CsJ9KhQ4.js} +1 -1
- package/.output/public/_nuxt/{mHNfVoS0.js → CtYFj7k1.js} +1 -1
- package/.output/public/_nuxt/{DIBimEIe.js → CtchsY6e.js} +1 -1
- package/.output/public/_nuxt/{BboG47Wz.js → Cvp7FI3T.js} +1 -1
- package/.output/public/_nuxt/CxuZBC8n.js +70 -0
- package/.output/public/_nuxt/D2689qk4.js +1 -0
- package/.output/public/_nuxt/{CWWmC6Y7.js → D31L7Ks6.js} +1 -1
- package/.output/public/_nuxt/{JxSV3wOO.js → D3RiUGdz.js} +1 -1
- package/.output/public/_nuxt/{C1tYtAeV.js → D3e44mCL.js} +1 -1
- package/.output/public/_nuxt/{BTWyDDBM.js → D6t3dcTl.js} +1 -1
- package/.output/public/_nuxt/{DpLjEbYb.js → DAQhmSv4.js} +1 -1
- package/.output/public/_nuxt/{BnwR3LQL.js → DB359q8R.js} +1 -1
- package/.output/public/_nuxt/{jCKYMNtT.js → DCzfkCGa.js} +1 -1
- package/.output/public/_nuxt/{BXWm1qrj.js → DG-T44jj.js} +1 -1
- package/.output/public/_nuxt/{BBygTbuF.js → DGX0tzL8.js} +1 -1
- package/.output/public/_nuxt/DHG66LPS.js +1 -0
- package/.output/public/_nuxt/{jBqB49XU.js → DHKLCQRG.js} +1 -1
- package/.output/public/_nuxt/{BDw-JoCx.js → DIoI0uJm.js} +1 -1
- package/.output/public/_nuxt/{DOQA5CEF.js → DJ5V-y_x.js} +1 -1
- package/.output/public/_nuxt/{BGaNWD0s.js → DJMS2og1.js} +1 -1
- package/.output/public/_nuxt/{UmgHYYVi.js → DJjDvbZE.js} +1 -1
- package/.output/public/_nuxt/{DdtX5kio.js → DK9jxJ0g.js} +1 -1
- package/.output/public/_nuxt/{Cc6GlQCO.js → DKZxeXDQ.js} +1 -1
- package/.output/public/_nuxt/{Tp-9mt9j.js → DLETdGFL.js} +1 -1
- package/.output/public/_nuxt/DOICd-Ld.js +1 -0
- package/.output/public/_nuxt/DPEcH-gi.js +65 -0
- package/.output/public/_nuxt/{CVNY6Bll.js → DSRrg8JT.js} +1 -1
- package/.output/public/_nuxt/{Sm7TJN7_.js → DTDgHTuh.js} +2 -2
- package/.output/public/_nuxt/{DeGKAWfY.js → D_3Rq1BS.js} +1 -1
- package/.output/public/_nuxt/{BvnL4Jyv.js → Daz4MeL6.js} +1 -1
- package/.output/public/_nuxt/{Dyd3g9po.js → Db2v8O7O.js} +1 -1
- package/.output/public/_nuxt/{D0FBwEzN.js → Db8-_gO7.js} +1 -1
- package/.output/public/_nuxt/{Cv4Qjbqk.js → DfQu3kEw.js} +1 -1
- package/.output/public/_nuxt/{c-RGQpsW.js → DgV-EDJ9.js} +1 -1
- package/.output/public/_nuxt/{CSF2cTe9.js → DnjGH3SQ.js} +1 -1
- package/.output/public/_nuxt/Dp2X5R2m.js +1 -0
- package/.output/public/_nuxt/DqB723Z0.js +1 -0
- package/.output/public/_nuxt/{DhRePYUI.js → DyRelyfs.js} +1 -1
- package/.output/public/_nuxt/{DZiAD6YN.js → Dy_Cq5LQ.js} +1 -1
- package/.output/public/_nuxt/{DWQMV4k2.js → DznawRFW.js} +1 -1
- package/.output/public/_nuxt/EuOqK1A6.js +1 -0
- package/.output/public/_nuxt/{BVZHIuu-.js → FNC8XZTk.js} +1 -1
- package/.output/public/_nuxt/{Dsk8JtTw.js → Fukkqjkf.js} +1 -1
- package/.output/public/_nuxt/{DNpdNXnv.js → FvlxxmNk.js} +2 -2
- package/.output/public/_nuxt/{zt0Txq93.js → IRSbVPIu.js} +1 -1
- package/.output/public/_nuxt/{T_w6A2Zo.js → JJ3634gV.js} +9 -9
- package/.output/public/_nuxt/{6Tt_Iaya.js → Jez9DHn7.js} +1 -1
- package/.output/public/_nuxt/{Cr7nQmYw.js → KKK6HVeG.js} +1 -1
- package/.output/public/_nuxt/{BJPw54Qz.js → Lwdv_RKd.js} +1 -1
- package/.output/public/_nuxt/{WqUIRM3G.js → Nb2jBtYT.js} +1 -1
- package/.output/public/_nuxt/Q8Ps7oN5.js +1 -0
- package/.output/public/_nuxt/SXTDhzp6.js +1 -0
- package/.output/public/_nuxt/{rfcePMfo.js → Sg2Lwc46.js} +1 -1
- package/.output/public/_nuxt/{gEpwc5gO.js → YuTZB7sD.js} +1 -1
- package/.output/public/_nuxt/{B2OKrc4G.js → _CYZi8HN.js} +1 -1
- package/.output/public/_nuxt/_J_7XIn-.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/a1e9100c-1a4f-4f7e-bb53-9dbe0d07effb.json +1 -0
- package/.output/public/_nuxt/{Bwx_Kl-4.js → cABRLVee.js} +1 -1
- package/.output/public/_nuxt/{DPuJYSUH.js → eko-0FUm.js} +1 -1
- package/.output/public/_nuxt/entry.CGxIBGAf.css +1 -0
- package/.output/public/_nuxt/{TQOIXkvr.js → g20UHUCv.js} +1 -1
- package/.output/public/_nuxt/{zOs8gUGl.js → gBC9k4Qj.js} +1 -1
- package/.output/public/_nuxt/{CJ3DQEW9.js → ghuJ76mD.js} +1 -1
- package/.output/public/_nuxt/{S6GTaxiQ.js → iBGCpHdw.js} +1 -1
- package/.output/public/_nuxt/{VGlRzjk3.js → inmzPrjz.js} +1 -1
- package/.output/public/_nuxt/{CCkumwhk.js → m5kGCDpI.js} +4 -4
- package/.output/public/_nuxt/{CXkbkhUa.js → nIU2F7ia.js} +3 -3
- package/.output/public/_nuxt/oIX-ZDN6.js +1 -0
- package/.output/public/_nuxt/{TsIha0iy.js → pcUI-zuY.js} +1 -1
- package/.output/public/_nuxt/{BN_2zhBR.js → sf57orEk.js} +1 -1
- package/.output/public/_nuxt/usage.vakN1lvi.css +1 -0
- package/.output/public/_nuxt/{DHYn0MnY.js → wCGVE8_e.js} +1 -1
- package/.output/public/_nuxt/{DMkXE4gH.js → xuzLdW-o.js} +1 -1
- package/.output/public/_nuxt/{DdoFnl6e.js → yNrp2XvX.js} +1 -1
- package/.output/public/_nuxt/{4hIPJQLp.js → yuf23kh9.js} +1 -1
- package/.output/server/chunks/build/CodeIcon-CWD5HcV7.mjs +1 -1
- 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/Img-CWLmvN1t.mjs +1 -1
- package/.output/server/chunks/build/MDC-Dx0YPDhe.mjs +1 -1
- 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/Table-DCwTlhCj.mjs +1 -1
- package/.output/server/chunks/build/Tooltip-TRyl6dje.mjs +1 -1
- package/.output/server/chunks/build/{_uuid_-CQEMsF1D.mjs → _uuid_-0UgdUhfY.mjs} +8 -7
- package/.output/server/chunks/build/{_uuid_-CQEMsF1D.mjs.map → _uuid_-0UgdUhfY.mjs.map} +1 -1
- 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-24rCroiO.mjs → dashboard-CpMVYnDV.mjs} +13 -6
- package/.output/server/chunks/build/{dashboard-24rCroiO.mjs.map → dashboard-CpMVYnDV.mjs.map} +1 -1
- package/.output/server/chunks/build/dashboard-YEscLBQN.mjs +1109 -0
- package/.output/server/chunks/build/dashboard-YEscLBQN.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-DOGZUctm.mjs → docs-Dk2JnYq3.mjs} +8 -7
- package/.output/server/chunks/build/{docs-DOGZUctm.mjs.map → docs-Dk2JnYq3.mjs.map} +1 -1
- package/.output/server/chunks/build/fetch-BB7Qzkwe.mjs +1 -1
- package/.output/server/chunks/build/{hooks-CuyNIRFI.mjs → hooks-DP8WoUPS.mjs} +2 -2
- package/.output/server/chunks/build/{hooks-CuyNIRFI.mjs.map → hooks-DP8WoUPS.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-BZI-Mj1-.mjs → index-Ba_bPJgk.mjs} +2 -2
- package/.output/server/chunks/build/{index-BZI-Mj1-.mjs.map → index-Ba_bPJgk.mjs.map} +1 -1
- package/.output/server/chunks/build/index-CxDxc9fm.mjs +1 -1
- package/.output/server/chunks/build/server.mjs +26 -17
- package/.output/server/chunks/build/server.mjs.map +1 -1
- package/.output/server/chunks/build/settings-DdkKCJ00.mjs +1 -1
- package/.output/server/chunks/build/styles.mjs +2 -2
- package/.output/server/chunks/build/{tasks-DR55Wjpi.mjs → tasks-DiOi1HG_.mjs} +2 -2
- package/.output/server/chunks/build/{tasks-DR55Wjpi.mjs.map → tasks-DiOi1HG_.mjs.map} +1 -1
- package/.output/server/chunks/build/usage-H_mcd_fz.mjs +1578 -0
- package/.output/server/chunks/build/usage-H_mcd_fz.mjs.map +1 -0
- package/.output/server/chunks/build/{CodeEditorFallback-DfYly7f5.mjs → useCopyToClipboard-vi6FYyyZ.mjs} +29 -2
- package/.output/server/chunks/build/useCopyToClipboard-vi6FYyyZ.mjs.map +1 -0
- package/.output/server/chunks/build/useNotificationBus-BG5JNQf1.mjs +1 -1
- package/.output/server/chunks/build/{usePreferences-CUvZsOq5.mjs → usePreferences-CzC8fRzd.mjs} +7 -1
- package/.output/server/chunks/build/usePreferences-CzC8fRzd.mjs.map +1 -0
- package/.output/server/chunks/build/view-Dc8mvzCB.mjs +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +884 -818
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/_ws/chat.mjs +18 -4
- package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
- package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +149 -0
- package/.output/server/chunks/routes/api/dashboard/overview.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/home.get.mjs +1 -1
- package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get6.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get7.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get8.mjs +82 -0
- package/.output/server/chunks/routes/api/index.get8.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs +20 -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 -1
- package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -1
- package/.output/server/chunks/routes/api/usage/stats.get.mjs +130 -0
- package/.output/server/chunks/routes/api/usage/stats.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/user/email.patch.mjs +1 -1
- package/.output/server/chunks/routes/notifications.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/routes/terminal.mjs +1 -1
- package/.output/server/index.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/app/components/dashboard/RecentChats.vue +93 -0
- package/app/components/dashboard/RecentDocs.vue +108 -0
- package/app/components/dashboard/StatCards.vue +82 -0
- package/app/components/dashboard/UpcomingTasks.vue +119 -0
- package/app/components/dashboard/UsageSummary.vue +94 -0
- package/app/components/editor/DocumentEditor.vue +5 -3
- package/app/components/usage/UsageCostChart.client.vue +174 -0
- package/app/components/usage/UsageCostChart.server.vue +22 -0
- package/app/components/usage/UsageRecordsTable.vue +249 -0
- package/app/components/usage/UsageSourceDonut.client.vue +93 -0
- package/app/components/usage/UsageSourceDonut.server.vue +21 -0
- package/app/components/usage/UsageStatsCards.vue +101 -0
- package/app/components/usage/UsageTopConsumers.vue +89 -0
- package/app/composables/useCopyToClipboard.ts +37 -0
- package/app/composables/usePreferences.ts +10 -0
- package/app/layouts/dashboard.vue +8 -1
- package/app/pages/chat.vue +11 -1
- package/app/pages/dashboard.vue +65 -64
- package/app/pages/usage.vue +130 -0
- package/app/pages/view/[uuid].vue +4 -3
- package/package.json +1 -1
- package/server/api/dashboard/overview.get.ts +133 -0
- package/server/api/usage/index.get.ts +69 -0
- package/server/api/usage/stats.get.ts +127 -0
- package/server/db/schema.ts +17 -0
- package/server/drizzle/migrations/0011_tearful_johnny_storm.sql +12 -0
- package/server/drizzle/migrations/meta/0011_snapshot.json +1634 -0
- package/server/drizzle/migrations/meta/_journal.json +7 -0
- package/server/routes/_ws/chat.ts +29 -2
- package/server/services/agent-executor.ts +13 -0
- package/server/services/memory-extractor.ts +25 -0
- package/server/utils/log-token-usage.ts +22 -0
- package/shared/types/index.ts +81 -0
- package/.output/public/_nuxt/B34UfOg4.js +0 -1
- package/.output/public/_nuxt/B3DmiwBX.js +0 -1
- package/.output/public/_nuxt/BESViHC6.js +0 -1
- package/.output/public/_nuxt/BIm_buQF.js +0 -1
- package/.output/public/_nuxt/BMh-dHBK.js +0 -1
- package/.output/public/_nuxt/Bkv1Ouue.js +0 -1
- package/.output/public/_nuxt/C4i10ReQ.js +0 -1
- package/.output/public/_nuxt/C5euqjeX.js +0 -1
- package/.output/public/_nuxt/C9hy_rtV.js +0 -1
- package/.output/public/_nuxt/CWJhKIyp.js +0 -1
- package/.output/public/_nuxt/Ck24Z-8o.js +0 -1
- package/.output/public/_nuxt/D1JmZKz7.js +0 -1
- package/.output/public/_nuxt/D6xvQUYG.js +0 -1
- package/.output/public/_nuxt/DGTbw5AQ.js +0 -1
- package/.output/public/_nuxt/Da8Xd1w6.js +0 -1
- package/.output/public/_nuxt/DamUHI17.js +0 -1
- package/.output/public/_nuxt/DoIiMqKa.js +0 -76
- package/.output/public/_nuxt/builds/meta/75ff59f2-0860-4bfc-a288-c670397cae5c.json +0 -1
- package/.output/public/_nuxt/entry.tLLAvqs1.css +0 -1
- package/.output/public/_nuxt/iJ4KRInq.js +0 -1
- package/.output/public/_nuxt/mSr5c6cB.js +0 -1
- package/.output/public/_nuxt/r8g_V5AH.js +0 -1
- package/.output/public/_nuxt/rZmMQHiC.js +0 -1
- package/.output/server/chunks/build/CodeEditorFallback-DfYly7f5.mjs.map +0 -1
- package/.output/server/chunks/build/dashboard-DtbGchTa.mjs +0 -277
- package/.output/server/chunks/build/dashboard-DtbGchTa.mjs.map +0 -1
- package/.output/server/chunks/build/usePreferences-CUvZsOq5.mjs.map +0 -1
- /package/.output/public/_nuxt/{language-detection.Be_IvFWy.css → useCopyToClipboard.Be_IvFWy.css} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as R,C as x,s as _,f as y,az as k,
|
|
1
|
+
import{c as R,C as x,s as _,f as y,az as k,b7 as C}from"./BxXOsXrM.js";function w(r,l,e){let s=e.initialDeps??[],t,n=!0;function o(){var i,h,u;let c;e.key&&((i=e.debug)!=null&&i.call(e))&&(c=Date.now());const d=r();if(!(d.length!==s.length||d.some((g,f)=>s[f]!==g)))return t;s=d;let m;if(e.key&&((h=e.debug)!=null&&h.call(e))&&(m=Date.now()),t=l(...d),e.key&&((u=e.debug)!=null&&u.call(e))){const g=Math.round((Date.now()-c)*100)/100,f=Math.round((Date.now()-m)*100)/100,b=f/16,S=(p,z)=>{for(p=String(p);p.length<z;)p=" "+p;return p};console.info(`%c⏱ ${S(f,5)} /${S(g,5)} ms`,`
|
|
2
2
|
font-size: .6rem;
|
|
3
3
|
font-weight: bold;
|
|
4
4
|
color: hsl(${Math.max(0,Math.min(120-120*b,120))}deg 100% 31%);`,e?.key)}return e?.onChange&&!(n&&e.skipInitialOnChange)&&e.onChange(t),n=!1,t}return o.updateDeps=i=>{s=i},o}function E(r,l){if(r===void 0)throw new Error("Unexpected undefined");return r}const T=(r,l)=>Math.abs(r-l)<1.01,D=(r,l,e)=>{let s;return function(...t){r.clearTimeout(s),s=r.setTimeout(()=>l.apply(this,t),e)}},O=r=>{const{offsetWidth:l,offsetHeight:e}=r;return{width:l,height:e}},W=r=>r,L=r=>{const l=Math.max(r.startIndex-r.overscan,0),e=Math.min(r.endIndex+r.overscan,r.count-1),s=[];for(let t=l;t<=e;t++)s.push(t);return s},j=(r,l)=>{const e=r.scrollElement;if(!e)return;const s=r.targetWindow;if(!s)return;const t=o=>{const{width:i,height:h}=o;l({width:Math.round(i),height:Math.round(h)})};if(t(O(e)),!s.ResizeObserver)return()=>{};const n=new s.ResizeObserver(o=>{const i=()=>{const h=o[0];if(h?.borderBoxSize){const u=h.borderBoxSize[0];if(u){t({width:u.inlineSize,height:u.blockSize});return}}t(O(e))};r.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return n.observe(e,{box:"border-box"}),()=>{n.unobserve(e)}},I={passive:!0},A=typeof window>"u"?!0:"onscrollend"in window,P=(r,l)=>{const e=r.scrollElement;if(!e)return;const s=r.targetWindow;if(!s)return;let t=0;const n=r.options.useScrollendEvent&&A?()=>{}:D(s,()=>{l(t,!1)},r.options.isScrollingResetDelay),o=c=>()=>{const{horizontal:d,isRtl:a}=r.options;t=d?e.scrollLeft*(a&&-1||1):e.scrollTop,n(),l(t,c)},i=o(!0),h=o(!1);h(),e.addEventListener("scroll",i,I);const u=r.options.useScrollendEvent&&A;return u&&e.addEventListener("scrollend",h,I),()=>{e.removeEventListener("scroll",i),u&&e.removeEventListener("scrollend",h)}},B=(r,l,e)=>{if(l?.borderBoxSize){const s=l.borderBoxSize[0];if(s)return Math.round(s[e.options.horizontal?"inlineSize":"blockSize"])}return r[e.options.horizontal?"offsetWidth":"offsetHeight"]},V=(r,{adjustments:l=0,behavior:e},s)=>{var t,n;const o=r+l;(n=(t=s.scrollElement)==null?void 0:t.scrollTo)==null||n.call(t,{[s.options.horizontal?"left":"top"]:o,behavior:e})};class N{constructor(l){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const s=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(t=>{t.forEach(n=>{const o=()=>{this._measureElement(n.target,n)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var t;(t=s())==null||t.disconnect(),e=null},observe:t=>{var n;return(n=s())==null?void 0:n.observe(t,{box:"border-box"})},unobserve:t=>{var n;return(n=s())==null?void 0:n.unobserve(t)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([s,t])=>{typeof t>"u"&&delete e[s]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:W,rangeExtractor:L,onChange:()=>{},measureElement:B,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var s,t;(t=(s=this.options).onChange)==null||t.call(s,this,e)},this.maybeNotify=w(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(t=>{this.observer.observe(t)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,t=>{this.scrollRect=t,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(t,n)=>{this.scrollAdjustments=0,this.scrollDirection=n?this.getScrollOffset()<t?"forward":"backward":null,this.scrollOffset=t,this.isScrolling=n,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,s)=>{const t=new Map,n=new Map;for(let o=s-1;o>=0;o--){const i=e[o];if(t.has(i.lane))continue;const h=n.get(i.lane);if(h==null||i.end>h.end?n.set(i.lane,i):i.end<h.end&&t.set(i.lane,!0),t.size===this.options.lanes)break}return n.size===this.options.lanes?Array.from(n.values()).sort((o,i)=>o.end===i.end?o.index-i.index:o.end-i.end)[0]:void 0},this.getMeasurementOptions=w(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,s,t,n,o,i)=>(this.prevLanes!==void 0&&this.prevLanes!==i&&(this.lanesChangedFlag=!0),this.prevLanes=i,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:s,scrollMargin:t,getItemKey:n,enabled:o,lanes:i}),{key:!1,skipInitialOnChange:!0,onChange:()=>{this.notify(this.isScrolling)}}),this.getMeasurements=w(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:s,scrollMargin:t,getItemKey:n,enabled:o,lanes:i},h)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const a of this.laneAssignments.keys())a>=e&&this.laneAssignments.delete(a);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(a=>{this.itemSizeCache.set(a.key,a.size)}));const u=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);const c=this.measurementsCache.slice(0,u),d=new Array(i).fill(void 0);for(let a=0;a<u;a++){const m=c[a];m&&(d[m.lane]=a)}for(let a=u;a<e;a++){const m=n(a),g=this.laneAssignments.get(a);let f,b;if(g!==void 0&&this.options.lanes>1){f=g;const v=d[f],M=v!==void 0?c[v]:void 0;b=M?M.end+this.options.gap:s+t}else{const v=this.options.lanes===1?c[a-1]:this.getFurthestMeasurement(c,a);b=v?v.end+this.options.gap:s+t,f=v?v.lane:a%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(a,f)}const S=h.get(m),p=typeof S=="number"?S:this.options.estimateSize(a),z=b+p;c[a]={index:a,start:b,size:p,end:z,key:m,lane:f},d[f]=a}return this.measurementsCache=c,c},{key:!1,debug:()=>this.options.debug}),this.calculateRange=w(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,s,t,n)=>this.range=e.length>0&&s>0?$({measurements:e,outerSize:s,scrollOffset:t,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=w(()=>{let e=null,s=null;const t=this.calculateRange();return t&&(e=t.startIndex,s=t.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,s]},(e,s,t,n,o)=>n===null||o===null?[]:e({startIndex:n,endIndex:o,overscan:s,count:t}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const s=this.options.indexAttribute,t=e.getAttribute(s);return t?parseInt(t,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this._measureElement=(e,s)=>{const t=this.indexFromElement(e),n=this.measurementsCache[t];if(!n)return;const o=n.key,i=this.elementsCache.get(o);i!==e&&(i&&this.observer.unobserve(i),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(t,this.options.measureElement(e,s,this))},this.resizeItem=(e,s)=>{const t=this.measurementsCache[e];if(!t)return;const n=this.itemSizeCache.get(t.key)??t.size,o=s-n;o!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(t,o,this):t.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=o,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(t.index),this.itemSizeCache=new Map(this.itemSizeCache.set(t.key,s)),this.notify(!1))},this.measureElement=e=>{if(!e){this.elementsCache.forEach((s,t)=>{s.isConnected||(this.observer.unobserve(s),this.elementsCache.delete(t))});return}this._measureElement(e,void 0)},this.getVirtualItems=w(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,s)=>{const t=[];for(let n=0,o=e.length;n<o;n++){const i=e[n],h=s[i];t.push(h)}return t},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const s=this.getMeasurements();if(s.length!==0)return E(s[F(0,s.length-1,t=>E(s[t]).start,e)])},this.getOffsetForAlignment=(e,s,t=0)=>{const n=this.getSize(),o=this.getScrollOffset();s==="auto"&&(s=e>=o+n?"end":"start"),s==="center"?e+=(t-n)/2:s==="end"&&(e-=n);const i=this.getTotalSize()+this.options.scrollMargin-n;return Math.max(Math.min(i,e),0)},this.getOffsetForIndex=(e,s="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const t=this.measurementsCache[e];if(!t)return;const n=this.getSize(),o=this.getScrollOffset();if(s==="auto")if(t.end>=o+n-this.options.scrollPaddingEnd)s="end";else if(t.start<=o+this.options.scrollPaddingStart)s="start";else return[o,s];const i=s==="end"?t.end+this.options.scrollPaddingEnd:t.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,s,t.size),s]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:s="start",behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,s),{adjustments:void 0,behavior:t})},this.scrollToIndex=(e,{align:s="auto",behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0;const o=10,i=u=>{if(!this.targetWindow)return;const c=this.getOffsetForIndex(e,u);if(!c){console.warn("Failed to get offset for index:",e);return}const[d,a]=c;this._scrollToOffset(d,{adjustments:void 0,behavior:t}),this.targetWindow.requestAnimationFrame(()=>{const m=this.getScrollOffset(),g=this.getOffsetForIndex(e,a);if(!g){console.warn("Failed to get offset for index:",e);return}T(g[0],m)||h(a)})},h=u=>{this.targetWindow&&(n++,n<o?this.targetWindow.requestAnimationFrame(()=>i(u)):console.warn(`Failed to scroll to index ${e} after ${o} attempts.`))};i(s)},this.scrollBy=(e,{behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:s})},this.getTotalSize=()=>{var e;const s=this.getMeasurements();let t;if(s.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=((e=s[s.length-1])==null?void 0:e.end)??0;else{const n=Array(this.options.lanes).fill(null);let o=s.length-1;for(;o>=0&&n.some(i=>i===null);){const i=s[o];n[i.lane]===null&&(n[i.lane]=i.end),o--}t=Math.max(...n.filter(i=>i!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:s,behavior:t})=>{this.options.scrollToFn(e,{behavior:t,adjustments:s},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(l)}}const F=(r,l,e,s)=>{for(;r<=l;){const t=(r+l)/2|0,n=e(t);if(n<s)r=t+1;else if(n>s)l=t-1;else return t}return r>0?r-1:0};function $({measurements:r,outerSize:l,scrollOffset:e,lanes:s}){const t=r.length-1,n=h=>r[h].start;if(r.length<=s)return{startIndex:0,endIndex:t};let o=F(0,t,n,e),i=o;if(s===1)for(;i<t&&r[i].end<e+l;)i++;else if(s>1){const h=Array(s).fill(0);for(;i<t&&h.some(c=>c<e+l);){const c=r[i];h[c.lane]=c.end,i++}const u=Array(s).fill(e+l);for(;o>=0&&u.some(c=>c>=e);){const c=r[o];u[c.lane]=c.start,o--}o=Math.max(0,o-o%s),i=Math.min(t,i+(s-1-i%s))}return{startIndex:o,endIndex:i}}function q(r){const l=new N(x(r)),e=_(l),s=l._didMount();return y(()=>x(r).getScrollElement(),t=>{t&&l._willUpdate()},{immediate:!0}),y(()=>x(r),t=>{l.setOptions({...t,onChange:(n,o)=>{var i;C(e),(i=t.onChange)==null||i.call(t,n,o)}}),l._willUpdate(),C(e)},{immediate:!0}),k(s),e}function H(r){return q(R(()=>({observeElementRect:j,observeElementOffset:P,scrollToFn:V,...x(r)})))}export{H as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as o,c as r,aj as a,Q as c,R as u,S as i,a3 as p,U as m,C as f,a2 as x}from"./
|
|
1
|
+
import{N as o,c as r,aj as a,Q as c,R as u,S as i,a3 as p,U as m,C as f,a2 as x}from"./BxXOsXrM.js";const d={base:"w-full max-w-(--ui-container) mx-auto px-4 sm:px-6 lg:px-8"},g={__name:"UContainer",props:{as:{type:null,required:!1},class:{type:null,required:!1}},setup(s){const e=s,t=o(),n=r(()=>a({extend:a(d),...t.ui?.container||{}}));return(l,C)=>(u(),c(f(x),{as:s.as,class:m(n.value({class:e.class}))},{default:i(()=>[p(l.$slots,"default")]),_:3},8,["as","class"]))}};export{g as _};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as E,c as Y,G as g,R as u,a7 as N,ag as C,ah as B,a9 as p,T as y,_ as Z,ac as x,U as G,C as _,ay as lt,e as D,q as I,k as ct,a1 as dt,f as j,
|
|
1
|
+
import{a as E,c as Y,G as g,R as u,a7 as N,ag as C,ah as B,a9 as p,T as y,_ as Z,ac as x,U as G,C as _,ay as lt,e as D,q as I,k as ct,a1 as dt,f as j,b5 as ut,Q as w,by as ht,S as v,a8 as V,W as mt}from"./BxXOsXrM.js";import{X as vt,O as Q,c as P,i as _t,a as ft,b as gt,g as M,m as W,d as pt,e as K,h as yt,j as q,s as A,k as X,l as bt,n as kt,o as xt,p as $t,q as St,r as wt,t as Dt,S as Vt,C as Tt,A as Ct,z as Bt,f as L,_ as Et}from"./JJ3634gV.js";import{_ as Mt,a as At}from"./B_3_hrpn.js";import{_ as z}from"./eko-0FUm.js";import{c as Nt}from"./yNrp2XvX.js";import{_ as U}from"./CeIVm4A3.js";import{e as Ht}from"./DGX0tzL8.js";import{_ as Pt}from"./DlAUqK2U.js";import{_ as J}from"./DTDgHTuh.js";import{_ as tt}from"./DG-T44jj.js";import{f as Ut}from"./CWePHsZr.js";import{u as Ft}from"./BIckl6wA.js";import"./C8ut0f5H.js";import"./CqkleIqs.js";import"./C3FxIITy.js";import"./BlAZO7nq.js";import"./88opOQSr.js";import"./iBGCpHdw.js";const Rt={class:"grid gap-4 grid-cols-2 sm:grid-cols-3 lg:grid-cols-5"},Wt={class:"flex items-center gap-2 text-muted text-sm mb-1"},jt=E({__name:"HookStatsCards",props:{stats:{},loading:{type:Boolean}},setup(h){const n=h;function r(a){return a<1e3?`${a}ms`:a<6e4?`${(a/1e3).toFixed(1)}s`:`${(a/6e4).toFixed(1)}m`}const o=Y(()=>{if(!n.stats)return[];const a=n.stats;return[{title:"Total Events",icon:"i-lucide-activity",value:a.totalEvents},{title:"Blocked",icon:"i-lucide-shield-alert",value:a.blockedEvents,color:"text-error"},{title:"Block Rate",icon:"i-lucide-percent",value:`${a.blockRate}%`},{title:"Avg Duration",icon:"i-lucide-clock",value:r(a.avgDurationMs)},{title:"Sessions",icon:"i-lucide-users",value:a.recentSessions.length}]});return(a,c)=>{const l=z,s=Z;return u(),g("div",Rt,[h.loading?(u(),g(C,{key:0},B(5,t=>p("div",{key:t,class:"p-4 rounded-lg bg-elevated border border-default"},[y(l,{class:"h-4 w-16 mb-2"}),y(l,{class:"h-8 w-12"})])),64)):h.stats?(u(!0),g(C,{key:1},B(_(o),t=>(u(),g("div",{key:t.title,class:"p-4 rounded-lg bg-elevated border border-default"},[p("div",Wt,[y(s,{name:t.icon,class:"size-4"},null,8,["name"]),p("span",null,x(t.title),1)]),p("p",{class:G(["text-2xl font-semibold",t.color])},x(t.value),3)]))),128)):N("",!0)])}}}),Ot=Object.assign(jt,{__name:"HooksHookStatsCards"});function Gt({x:h,y:n,w:r,h:o,tl:a=!1,tr:c=!1,bl:l=!1,br:s=!1,r:t=0}){let e;e=`M${h+t},${n}h${r-2*t}`;let i=c?t:0,d=c?0:t;return e+=`a${i},${i} 0 0 1 ${i},${i}`,e+=`h${d}v${d}`,e+=`v${o-2*t}`,i=s?t:0,d=s?0:t,e+=`a${i},${i} 0 0 1 ${-i},${i}`,e+=`v${d}h${-d}`,e+=`h${2*t-r}`,i=l?t:0,d=l?0:t,e+=`a${i},${i} 0 0 1 ${-i},${-i}`,e+=`h${-d}v${-d}`,e+=`v${2*t-o}`,i=a?t:0,d=a?0:t,e+=`a${i},${i} 0 0 1 ${i},${-i}`,e+=`v${-d}h${d}`,e+="z",e}const zt=Object.assign(Object.assign({},vt),{color:void 0,barMaxWidth:void 0,barWidth:void 0,dataStep:void 0,barPadding:0,roundedCorners:2,cursor:null,barMinHeight1Px:!1,barMinHeightZeroValue:null,orientation:Q.Vertical}),et=P`
|
|
2
2
|
label: stacked-bar-component;
|
|
3
3
|
`,Kt=_t`
|
|
4
4
|
:root {
|
|
@@ -31,9 +31,9 @@ import{a as E,c as Y,G as g,R as u,a7 as N,ag as C,ah as B,a9 as p,T as y,_ as Z
|
|
|
31
31
|
label: barGroup;
|
|
32
32
|
`,at=P`
|
|
33
33
|
label: barGroupExit;
|
|
34
|
-
`,qt=Object.freeze(Object.defineProperty({__proto__:null,bar:H,barGroup:O,barGroupExit:at,globalStyles:Kt,root:et},Symbol.toStringTag,{value:"Module"}));class st extends ft{constructor(n){super(),this._defaultConfig=zt,this.config=this._defaultConfig,this.getAccessors=()=>gt(this.config.y)?this.config.y:[this.config.y],this.stacked=!0,this.events={},this._barData=[],n&&this.setConfig(n)}get bleed(){if(this._barData=this._getVisibleData(),this._barData.length===0)return{top:0,bottom:0,left:0,right:0};const n=!this.isVertical()&&this.dataScale.range()[0]>this.dataScale.range()[1],r=this.dataScale.domain(),o=this._getBarWidth()/2,a=this._barData.map((S,m)=>M(S,this.config.x,m)),c=W(a),l=pt(a),s=this.dataScale(c),t=this.dataScale(l),e=this.dataScale.invert(s+(n?o:-o)),i=this.dataScale.invert(t+(n?-o:o)),d=e<=r[0]?this.dataScale(r[0])-this.dataScale(e):0,$=i>r[1]?this.dataScale(i)-this.dataScale(r[1]):0;return{top:this.isVertical()?0:n?-$:d,bottom:this.isVertical()?0:n?-d:$,left:this.isVertical()?d:0,right:this.isVertical()?$:0}}get dataScale(){return this.isVertical()?this.xScale:this.yScale}get valueScale(){return this.isVertical()?this.yScale:this.xScale}isVertical(){return this.config.orientation===Q.Vertical}_render(n){const{config:r}=this,o=K(n)?n:r.duration,a=this.getAccessors(),c=yt(this._barData,0,a,this._prevNegative);this._prevNegative=c.map(m=>!!m.isMostlyNegative);const l=this.g.selectAll(`.${O}`).data(this._barData,(m,f)=>{var k;return`${(k=q(m,r.id,f))!==null&&k!==void 0?k:f}`}),s=(m,f)=>{const k=this.dataScale(M(m,r.x,f)),b=this.isVertical()?k:0,F=this.isVertical()?0:k;return`translate(${b},${F})`},e=l.enter().append("g").attr("class",O).attr("transform",s).style("opacity",1).merge(l);A(e,o).attr("transform",s).style("opacity",1);const i=l.exit().attr("class",at);A(i,o).style("opacity",0).remove(),A(i.selectAll(`.${H}`),o).attr("transform",this.isVertical()?`translate(0,${this._height/3})`:`translate(${this._width/6},0)`);const d=e.selectAll(`.${H}`).data((m,f)=>c.map((k,b)=>Object.assign(Object.assign({},m),{_index:f,_stacked:k[f],_ending:b===c.length-1||b<=c.length-1&&c[b+1][f][0]!==k[f][1]}))),S=d.enter().append("path").attr("class",H).attr("d",(m,f)=>this._getBarPath(m,f,!0)).style("fill",(m,f)=>
|
|
35
|
-
<div class="font-medium">${
|
|
34
|
+
`,qt=Object.freeze(Object.defineProperty({__proto__:null,bar:H,barGroup:O,barGroupExit:at,globalStyles:Kt,root:et},Symbol.toStringTag,{value:"Module"}));class st extends ft{constructor(n){super(),this._defaultConfig=zt,this.config=this._defaultConfig,this.getAccessors=()=>gt(this.config.y)?this.config.y:[this.config.y],this.stacked=!0,this.events={},this._barData=[],n&&this.setConfig(n)}get bleed(){if(this._barData=this._getVisibleData(),this._barData.length===0)return{top:0,bottom:0,left:0,right:0};const n=!this.isVertical()&&this.dataScale.range()[0]>this.dataScale.range()[1],r=this.dataScale.domain(),o=this._getBarWidth()/2,a=this._barData.map((S,m)=>M(S,this.config.x,m)),c=W(a),l=pt(a),s=this.dataScale(c),t=this.dataScale(l),e=this.dataScale.invert(s+(n?o:-o)),i=this.dataScale.invert(t+(n?-o:o)),d=e<=r[0]?this.dataScale(r[0])-this.dataScale(e):0,$=i>r[1]?this.dataScale(i)-this.dataScale(r[1]):0;return{top:this.isVertical()?0:n?-$:d,bottom:this.isVertical()?0:n?-d:$,left:this.isVertical()?d:0,right:this.isVertical()?$:0}}get dataScale(){return this.isVertical()?this.xScale:this.yScale}get valueScale(){return this.isVertical()?this.yScale:this.xScale}isVertical(){return this.config.orientation===Q.Vertical}_render(n){const{config:r}=this,o=K(n)?n:r.duration,a=this.getAccessors(),c=yt(this._barData,0,a,this._prevNegative);this._prevNegative=c.map(m=>!!m.isMostlyNegative);const l=this.g.selectAll(`.${O}`).data(this._barData,(m,f)=>{var k;return`${(k=q(m,r.id,f))!==null&&k!==void 0?k:f}`}),s=(m,f)=>{const k=this.dataScale(M(m,r.x,f)),b=this.isVertical()?k:0,F=this.isVertical()?0:k;return`translate(${b},${F})`},e=l.enter().append("g").attr("class",O).attr("transform",s).style("opacity",1).merge(l);A(e,o).attr("transform",s).style("opacity",1);const i=l.exit().attr("class",at);A(i,o).style("opacity",0).remove(),A(i.selectAll(`.${H}`),o).attr("transform",this.isVertical()?`translate(0,${this._height/3})`:`translate(${this._width/6},0)`);const d=e.selectAll(`.${H}`).data((m,f)=>c.map((k,b)=>Object.assign(Object.assign({},m),{_index:f,_stacked:k[f],_ending:b===c.length-1||b<=c.length-1&&c[b+1][f][0]!==k[f][1]}))),S=d.enter().append("path").attr("class",H).attr("d",(m,f)=>this._getBarPath(m,f,!0)).style("fill",(m,f)=>X(m,r.color,f)).merge(d);A(S,o).attr("d",(m,f)=>this._getBarPath(m,f)).style("fill",(m,f)=>X(m,r.color,f)).style("cursor",(m,f)=>q(m,r.cursor,f)),A(d.exit(),o).style("opacity",0).remove()}_getBarWidth(){const{config:n,datamodel:{data:r}}=this;if(bt(r))return 0;if(n.barWidth)return W([n.barWidth,n.barMaxWidth]);const o=this.dataScale.bandwidth,a=this.dataScale.domain?this.dataScale.domain():[];let l=1+(o?a.length:a[1]-a[0])/n.dataStep||!o&&r.filter((e,i)=>{const d=M(e,n.x,i);return d>=a[0]&&d<=a[1]}).length||r.length;!o&&l>=2&&(l+=1);const t=(l<2?1:1-n.barPadding)*(this.isVertical()?this._width:this._height)/l;return W([t,n.barMaxWidth])}_getVisibleData(){const{config:n,datamodel:{data:r}}=this,o=this._getBarWidth(),a=r.length<2?0:o/2,c=this.dataScale,l=Math.abs(c.invert(a)-c.invert(0));return r?.filter((t,e)=>{const i=M(t,n.x,e),d=c.domain(),$=+d[0],S=+d[1];return i>=$-l&&i<=S+l})}_getBarPath(n,r,o=!1){const{config:a}=this,c=this.getAccessors(),l=this._getBarWidth(),s=n._stacked[1]<0,t=n._ending,e=M(n,c[r],n._index),i=o?0:Math.abs(this.valueScale(n._stacked[0])-this.valueScale(n._stacked[1])),d=!o&&a.barMinHeight1Px&&i<1&&isFinite(e)&&e!==a.barMinHeightZeroValue?1:i,$=o?this.valueScale(0):this.valueScale(s?n._stacked[0]:n._stacked[1])-(i<1&&a.barMinHeight1Px?1:0),S=-l/2,m=l,f=a.roundedCorners?K(a.roundedCorners)?+a.roundedCorners:m/2:0,k=$t(f,0,Math.min(i,m)/2),b=this.yScale.range()[0]>this.yScale.range()[1];return Gt({x:this.isVertical()?S:$-d,y:this.isVertical()?$+(b?0:-d):S,w:this.isVertical()?m:d,h:this.isVertical()?d:m,tl:t&&(this.isVertical()?!s&&b||s&&!b:s),tr:t&&(this.isVertical()?!s&&b||s&&!b:!s),br:t&&(this.isVertical()?s&&b||!s&&!b:!s),bl:t&&(this.isVertical()?s&&b||!s&&!b:s),r:k})}getValueScaleExtent(n){const{datamodel:r}=this,o=this.getAccessors(),a=n?this._getVisibleData():r.data;return kt(a,...o)}getDataScaleExtent(){const{config:n,datamodel:r}=this;return xt(r.data,n.x)}getYDataExtent(n){return this.isVertical()?this.getValueScaleExtent(n):this.getDataScaleExtent()}getXDataExtent(){return this.isVertical()?this.getDataScaleExtent():this.getValueScaleExtent(!1)}}st.selectors=qt;const Xt={"data-vis-component":""},Lt=E({__name:"index",props:{color:{},barWidth:{},barMaxWidth:{},dataStep:{},barPadding:{},roundedCorners:{type:[Number,Boolean]},cursor:{},barMinHeight1Px:{type:Boolean},barMinHeightZeroValue:{},orientation:{},x:{},y:{},id:{type:Function},xScale:{type:[Object,Function]},yScale:{type:[Object,Function]},excludeFromDomainCalculation:{type:Boolean},duration:{},events:{},attributes:{},data:{}},setup(h,{expose:n}){const r=lt(St),o=h,a=Y(()=>r.data.value??o.data),c=wt(o),l=D();return I(()=>{ct(()=>{var s;l.value=new st(c.value),(s=l.value)==null||s.setData(a.value),r.update(l.value)})}),dt(()=>{var s;(s=l.value)==null||s.destroy(),r.destroy()}),j(c,(s,t)=>{var e;Dt(s,t)||(e=l.value)==null||e.setConfig(c.value)}),j(a,()=>{var s;(s=l.value)==null||s.setData(a.value)}),n({component:l}),(s,t)=>(u(),g("div",Xt))}}),Yt={class:"flex items-center justify-between"},Zt={class:"text-sm font-medium"},It={key:0,class:"flex items-center justify-center h-48 text-muted"},Qt=E({__name:"HookActivityChart.client",props:{data:{},title:{},height:{}},setup(h){const n=h,r=ut("cardRef"),{width:o}=Ht(r),a=(e,i)=>i,c=[e=>e.allowed,e=>e.blocked],l=["var(--ui-success)","var(--ui-error)"],s=e=>{const i=n.data[e];return i?L(new Date(i.date),"d MMM"):""},t=e=>`<div class="p-2 text-sm">
|
|
35
|
+
<div class="font-medium">${L(new Date(e.date),"MMM d, yyyy")}</div>
|
|
36
36
|
<div class="text-success">Allowed: ${e.allowed}</div>
|
|
37
37
|
<div class="text-error">Blocked: ${e.blocked}</div>
|
|
38
38
|
<div class="text-muted">Total: ${e.total}</div>
|
|
39
|
-
</div>`;return(e,i)=>{const d=U;return u(),w(d,{ref_key:"cardRef",ref:r,ui:{root:"overflow-visible",body:"!px-0 !pt-0 !pb-3"}},ht({default:v(()=>[h.data.length===0?(u(),g("div",It," No activity data ")):(u(),w(_(Vt),{key:1,data:h.data,padding:{top:10,left:10,right:10,bottom:10},class:G(h.height||"h-48"),width:_(o)},{default:v(()=>[y(_(
|
|
39
|
+
</div>`;return(e,i)=>{const d=U;return u(),w(d,{ref_key:"cardRef",ref:r,ui:{root:"overflow-visible",body:"!px-0 !pt-0 !pb-3"}},ht({default:v(()=>[h.data.length===0?(u(),g("div",It," No activity data ")):(u(),w(_(Vt),{key:1,data:h.data,padding:{top:10,left:10,right:10,bottom:10},class:G(h.height||"h-48"),width:_(o)},{default:v(()=>[y(_(Lt),{x:a,y:c,color:l,"bar-padding":.2}),y(_(Tt),{type:"x",x:a,"tick-format":s}),y(_(Ct),{color:"var(--ui-primary)",template:t}),y(_(Bt))]),_:1},8,["data","class","width"]))]),_:2},[h.title?{name:"header",fn:v(()=>[p("div",Yt,[p("p",Zt,x(h.title),1),i[0]||(i[0]=p("div",{class:"flex items-center gap-4 text-xs"},[p("span",{class:"flex items-center gap-1"},[p("span",{class:"w-3 h-3 rounded bg-success"}),V(" Allowed ")]),p("span",{class:"flex items-center gap-1"},[p("span",{class:"w-3 h-3 rounded bg-error"}),V(" Blocked ")])],-1))])]),key:"0"}:void 0]),1536)}}}),Jt=Object.assign(Pt(Qt,[["__scopeId","data-v-78e2a979"]]),{__name:"HooksHookActivityChart"}),te={key:0,class:"space-y-3"},ee={key:1,class:"text-center text-muted py-8"},ae={class:"font-mono text-sm"},se=E({__name:"ToolBreakdownTable",props:{data:{},loading:{type:Boolean}},setup(h){function n(o){return o<1e3?`${o}ms`:o<6e4?`${(o/1e3).toFixed(1)}s`:`${(o/6e4).toFixed(1)}m`}function r(o,a){const c=a>0?o/a*100:0;return c>50?"text-error":c>25?"text-warning":"text-success"}return(o,a)=>{const c=z,l=J,s=U;return u(),w(s,null,{header:v(()=>[...a[0]||(a[0]=[p("p",{class:"text-sm font-medium"}," Tool Usage Breakdown ",-1)])]),default:v(()=>[h.loading?(u(),g("div",te,[(u(),g(C,null,B(5,t=>y(c,{key:t,class:"h-10 w-full"})),64))])):h.data.length===0?(u(),g("div",ee," No tool usage data yet ")):(u(),w(l,{key:2,data:h.data,columns:[{accessorKey:"toolName",header:"Tool"},{accessorKey:"total",header:"Total"},{accessorKey:"blocked",header:"Blocked"},{accessorKey:"avgDurationMs",header:"Avg Duration"}]},{"toolName-cell":v(({row:t})=>[p("span",ae,x(t.original.toolName),1)]),"blocked-cell":v(({row:t})=>[p("span",{class:G(r(t.original.blocked,t.original.total))},x(t.original.blocked),3)]),"avgDurationMs-cell":v(({row:t})=>[V(x(n(t.original.avgDurationMs)),1)]),_:1},8,["data"]))]),_:1})}}}),oe=Object.assign(se,{__name:"HooksToolBreakdownTable"}),ne={key:0,class:"space-y-3"},re={key:1,class:"text-center text-muted py-8"},ie={key:0,class:"font-mono text-sm"},le={key:1,class:"text-muted"},ce={key:0},de={key:1,class:"text-muted"},ue={class:"text-muted text-sm"},he=E({__name:"RecentEventsTable",props:{events:{},loading:{type:Boolean}},setup(h){function n(o){switch(o){case"SessionStart":return"success";case"SessionEnd":return"neutral";case"PreToolUse":return"info";case"PostToolUse":return"success";case"PostToolUseFailure":return"error";case"UserPromptSubmit":return"info";default:return"neutral"}}function r(o){return Ut(new Date(o),{addSuffix:!0})}return(o,a)=>{const c=z,l=tt,s=J,t=U;return u(),w(t,null,{header:v(()=>[...a[0]||(a[0]=[p("p",{class:"text-sm font-medium"}," Recent Events ",-1)])]),default:v(()=>[h.loading?(u(),g("div",ne,[(u(),g(C,null,B(10,e=>y(c,{key:e,class:"h-10 w-full"})),64))])):h.events.length===0?(u(),g("div",re," No events recorded yet ")):(u(),w(s,{key:2,data:h.events,columns:[{accessorKey:"eventType",header:"Event"},{accessorKey:"toolName",header:"Tool"},{accessorKey:"blocked",header:"Status"},{accessorKey:"durationMs",header:"Duration"},{accessorKey:"createdAt",header:"Time"}]},{"eventType-cell":v(({row:e})=>[y(l,{color:n(e.original.eventType),variant:"subtle",size:"sm"},{default:v(()=>[V(x(e.original.eventType),1)]),_:2},1032,["color"])]),"toolName-cell":v(({row:e})=>[e.original.toolName?(u(),g("span",ie,x(e.original.toolName),1)):(u(),g("span",le," - "))]),"blocked-cell":v(({row:e})=>[e.original.blocked?(u(),w(l,{key:0,color:"error",variant:"subtle",size:"sm"},{default:v(()=>[...a[1]||(a[1]=[V(" Blocked ",-1)])]),_:1})):(u(),w(l,{key:1,color:"success",variant:"subtle",size:"sm"},{default:v(()=>[...a[2]||(a[2]=[V(" Allowed ",-1)])]),_:1}))]),"durationMs-cell":v(({row:e})=>[e.original.durationMs?(u(),g("span",ce,x(e.original.durationMs)+"ms ",1)):(u(),g("span",de," - "))]),"createdAt-cell":v(({row:e})=>[p("span",ue,x(r(e.original.createdAt)),1)]),_:1},8,["data"]))]),_:1})}}}),me=Object.assign(he,{__name:"HooksRecentEventsTable"});function ve(){const h=D([]),n=D(null),r=D(!1),o=D(null);async function a(s){r.value=!0,o.value=null;try{const t=await $fetch("/api/hooks/events",{query:s});return h.value=t.data,t.data}catch(t){throw o.value="Failed to load hook events",console.error("Failed to load hook events:",t),t}finally{r.value=!1}}async function c(s="7d"){r.value=!0,o.value=null;try{const t=await $fetch("/api/hooks/stats",{query:{period:s}});return n.value=t.data,t.data}catch(t){throw o.value="Failed to load hook stats",console.error("Failed to load hook stats:",t),t}finally{r.value=!1}}async function l(s,t=100){try{return(await $fetch("/api/hooks/events",{query:{sessionId:s,limit:t}})).data}catch(e){throw console.error("Failed to fetch session events:",e),e}}return{events:h,stats:n,loading:r,error:o,fetchEvents:a,fetchStats:c,fetchEventsBySession:l}}const _e=Nt(Jt),fe={class:"contents"},ge={class:"p-4 space-y-6"},pe={class:"grid lg:grid-cols-2 gap-6"},ye={key:0,class:"text-center text-muted py-8"},be={key:1,class:"space-y-3"},ke={class:"text-sm"},xe={key:1,class:"flex flex-col items-center justify-center h-64 text-neutral-500"},je=E({__name:"hooks",setup(h){const{fetchEvents:n,fetchStats:r}=ve(),{agentStatsPeriod:o}=Ft(),a=D([]),c=D(null),l=D(!1),s=D(o.value),t=[{label:"24h",value:"24h"},{label:"7d",value:"7d"},{label:"30d",value:"30d"}];async function e(){l.value=!0;try{const[i,d]=await Promise.all([r(s.value),n({limit:50})]);c.value=i,a.value=d}catch(i){console.error("Failed to load hook data:",i)}finally{l.value=!1}}return j(s,()=>{o.value=s.value,e()}),I(e),(i,d)=>{const $=mt,S=Et,m=At,f=Ot,k=_e,b=oe,F=tt,ot=U,nt=me,rt=Z,it=Mt;return u(),g("div",fe,[y(it,{id:"hooks",grow:""},{header:v(()=>[y(m,{title:"Hook Analytics"},{right:v(()=>[y(S,null,{default:v(()=>[(u(),g(C,null,B(t,T=>y($,{key:T.value,color:_(s)===T.value?"primary":"neutral",variant:_(s)===T.value?"solid":"ghost",size:"sm",onClick:R=>s.value=T.value},{default:v(()=>[V(x(T.label),1)]),_:2},1032,["color","variant","onClick"])),64))]),_:1})]),_:1})]),body:v(()=>[p("div",ge,[y(f,{stats:_(c),loading:_(l)},null,8,["stats","loading"]),_(c)&&_(c).dailyActivity.length>0?(u(),w(k,{key:0,data:_(c).dailyActivity,title:"Daily Activity"},null,8,["data"])):N("",!0),p("div",pe,[y(b,{data:_(c)?.toolBreakdown??[],loading:_(l)},null,8,["data","loading"]),_(c)?(u(),w(ot,{key:0},{header:v(()=>[...d[0]||(d[0]=[p("p",{class:"text-sm font-medium"}," Events by Type ",-1)])]),default:v(()=>[!_(c).eventsByType||Object.keys(_(c).eventsByType).length===0?(u(),g("div",ye," No events by type data ")):(u(),g("div",be,[(u(!0),g(C,null,B(_(c).eventsByType,(T,R)=>(u(),g("div",{key:R,class:"flex items-center justify-between"},[p("span",ke,x(R),1),y(F,{color:"neutral",variant:"subtle"},{default:v(()=>[V(x(T),1)]),_:2},1024)]))),128))]))]),_:1})):N("",!0)]),y(nt,{events:_(a),loading:_(l)},null,8,["events","loading"]),!_(l)&&_(a).length===0&&!_(c)?.totalEvents?(u(),g("div",xe,[y(rt,{name:"i-lucide-webhook",class:"w-12 h-12 mb-4"}),d[1]||(d[1]=p("p",{class:"text-lg font-medium"}," No hook events yet ",-1)),d[2]||(d[2]=p("p",{class:"text-sm text-center max-w-md"}," Hook events will appear here once Claude Code hooks are triggered. Make sure your hooks are configured in ~/.claude/settings.json ",-1))])):N("",!0)])]),_:1})])}}});export{je as default};
|