hermes-web-ui 0.6.40 → 0.6.41
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/dist/client/assets/js/{AppSidebar-CaSVcbCW.js → AppSidebar-CNkSiv3l.js} +1 -1
- package/dist/client/assets/js/{ChannelsView-hdAXa1hf.js → ChannelsView-6rEo6RBl.js} +1 -1
- package/dist/client/assets/js/{ChatPanel-C6sX6idm.js → ChatPanel-ANAZWluc.js} +3 -3
- package/dist/client/assets/js/{ChatView-B68k_-D9.js → ChatView-DFcPsmRF.js} +1 -1
- package/dist/client/assets/js/{CodingAgentsView-CsIjwbXR.js → CodingAgentsView-CpIY0SHT.js} +1 -1
- package/dist/client/assets/js/{DefaultCredentialPrompt-BRhb4DOa.js → DefaultCredentialPrompt-DmNeotSW.js} +1 -1
- package/dist/client/assets/js/{DesktopBrowserPanel-BlBfS64w.js → DesktopBrowserPanel-CWjTU-3y.js} +1 -1
- package/dist/client/assets/js/{DesktopBrowserView-JukL0QuS.js → DesktopBrowserView-D9Qb3fIV.js} +1 -1
- package/dist/client/assets/js/{DesktopPetView-DWq4EiRU.js → DesktopPetView-B7REtC57.js} +1 -1
- package/dist/client/assets/js/{DesktopTitleBar-DphP4oa6.js → DesktopTitleBar-Dej_16hB.js} +1 -1
- package/dist/client/assets/js/{DevicesView-BFtrfqJs.js → DevicesView--d4HCkch.js} +1 -1
- package/dist/client/assets/js/{DocxFilePreview-CmVJ9Jxx.js → DocxFilePreview-BQz6WC7r.js} +2 -2
- package/dist/client/assets/js/{FileEditor-CdkNYp7b.js → FileEditor-BBegs-5i.js} +2 -2
- package/dist/client/assets/js/{FilePreview-CJrVRPRs.js → FilePreview-B7WqYvZs.js} +2 -2
- package/dist/client/assets/js/{FileRenameModal-mghyEXU4.js → FileRenameModal-82RkAZkd.js} +1 -1
- package/dist/client/assets/js/{FilesPanel-B9cKB5lX.js → FilesPanel-BHcg6CpC.js} +2 -2
- package/dist/client/assets/js/{FilesView-iKZu70E9.js → FilesView-Dl15WTar.js} +2 -2
- package/dist/client/assets/js/{GlobalAgentView-JZsss0gx.js → GlobalAgentView-dxEX611f.js} +1 -1
- package/dist/client/assets/js/{GlobalPendingActions-BRQIt5vl.js → GlobalPendingActions-CeK96C3G.js} +1 -1
- package/dist/client/assets/js/{GroupChatLinkView-CNrV8lnT.js → GroupChatLinkView-CJhI9DVE.js} +1 -1
- package/dist/client/assets/js/{GroupChatPanel-WK4zBasl.js → GroupChatPanel-CLa3s08V.js} +3 -3
- package/dist/client/assets/js/{GroupChatView-BlMUD1MW.js → GroupChatView-CUwvu-6F.js} +1 -1
- package/dist/client/assets/js/{HistoryMessageList-D8zoQ1Zs.js → HistoryMessageList-BdD8GJYM.js} +1 -1
- package/dist/client/assets/js/{HistoryView-Bpr8N2lC.js → HistoryView-Ro92tP5R.js} +1 -1
- package/dist/client/assets/js/{HtmlFilePreview-Bj3_-hMo.js → HtmlFilePreview-xYn7YtmC.js} +1 -1
- package/dist/client/assets/js/{JobsView-CZK26gTw.js → JobsView-BaNA1Yaa.js} +2 -2
- package/dist/client/assets/js/{JourneyView-BPUsLj4o.js → JourneyView-Bw-05mCF.js} +1 -1
- package/dist/client/assets/js/{KanbanView-B7d-2_z9.js → KanbanView-BYC32l2Q.js} +1 -1
- package/dist/client/assets/js/{LoginView-BpYyv831.js → LoginView-KrpCkwOr.js} +1 -1
- package/dist/client/assets/js/{LogsView-CabFHk0v.js → LogsView-Dgm4v5sN.js} +1 -1
- package/dist/client/assets/js/{MarkdownRenderer-CVtmHZwc.js → MarkdownRenderer-BIPowjr-.js} +3 -3
- package/dist/client/assets/js/{McpManagerView-C-ou8vf3.js → McpManagerView-DTtkUIvq.js} +1 -1
- package/dist/client/assets/js/{MemoryView-QGFW4iZo.js → MemoryView-BnL7xzux.js} +2 -2
- package/dist/client/assets/js/{MessageList-DZR-TFjD.js → MessageList-5tytzhb0.js} +3 -3
- package/dist/client/assets/js/{ModelsView-DiWdSWOW.js → ModelsView-ComCz0Ce.js} +1 -1
- package/dist/client/assets/js/{OutlinePanel-Dlr5svMY.js → OutlinePanel-CF_XPCRn.js} +1 -1
- package/dist/client/assets/js/{PageSidebarFooter-Bic1fUmG.js → PageSidebarFooter-dvLzcTIm.js} +1 -1
- package/dist/client/assets/js/{PdfFilePreview-Dkpan1ay.js → PdfFilePreview-COOAoJ4V.js} +2 -2
- package/dist/client/assets/js/{PerformanceView-LrZaED_Z.js → PerformanceView-D6dKifJh.js} +1 -1
- package/dist/client/assets/js/{PetdexView-Bv8RioGL.js → PetdexView-CmvzDYwf.js} +1 -1
- package/dist/client/assets/js/{PluginsView-CbtdIGlq.js → PluginsView-zJV9FE9c.js} +1 -1
- package/dist/client/assets/js/{PptxFilePreview-5if_GbU6.js → PptxFilePreview-dC4JxV6j.js} +2 -2
- package/dist/client/assets/js/{ProfileAvatar-DI9ciJxS.js → ProfileAvatar-C8xoALCI.js} +1 -1
- package/dist/client/assets/js/{ProfilesView-C-FSiKMU.js → ProfilesView-CxVxJRN_.js} +1 -1
- package/dist/client/assets/js/{ProviderConfigurationPrompt-BUoWC41Y.js → ProviderConfigurationPrompt-zwk1UwoP.js} +1 -1
- package/dist/client/assets/js/{SessionSearchModal-CEKvSihp.js → SessionSearchModal-DhwGsV-i.js} +1 -1
- package/dist/client/assets/js/{SettingRow-CSfiJmxx.js → SettingRow-DHqhLX3M.js} +1 -1
- package/dist/client/assets/js/{SettingsCircuitBadge-DHIEFyTR.js → SettingsCircuitBadge-CnWSfQZd.js} +1 -1
- package/dist/client/assets/js/{SettingsView-DbNJroV3.js → SettingsView-Cbroga25.js} +1 -1
- package/dist/client/assets/js/{SharedGroupChatView-CTYjqWcO.js → SharedGroupChatView-DXfqtQ33.js} +1 -1
- package/dist/client/assets/js/{SkillsUsageView-BqZ3GtfT.js → SkillsUsageView-C34i3lOQ.js} +1 -1
- package/dist/client/assets/js/{SkillsView-Bhla7821.js → SkillsView-DRG_1esx.js} +2 -2
- package/dist/client/assets/js/{SpreadsheetFilePreview-CGK8HDAx.js → SpreadsheetFilePreview-DRw4kIx5.js} +1 -1
- package/dist/client/assets/js/{TerminalPanel-CtBTLOwq.js → TerminalPanel-Da1nL9P8.js} +1 -1
- package/dist/client/assets/js/{TerminalView-BID7fupB.js → TerminalView-B6z-VaGq.js} +1 -1
- package/dist/client/assets/js/{ThemeView-Cx3ucIus.js → ThemeView-CAaJ9MH-.js} +1 -1
- package/dist/client/assets/js/{UsageView-ByGCsw7o.js → UsageView-B_hLsp0k.js} +1 -1
- package/dist/client/assets/js/{VersionPreviewView-DiAK1ind.js → VersionPreviewView-DKXL6anl.js} +1 -1
- package/dist/client/assets/js/{WebPet-CdIqrnp1.js → WebPet-BUvrfjpq.js} +1 -1
- package/dist/client/assets/js/{WorkflowView-DmBOhSuq.js → WorkflowView-r46Ap9FY.js} +1 -1
- package/dist/client/assets/js/{WorkspaceDiffPreview-dHIGp-9F.js → WorkspaceDiffPreview-EwZAE18F.js} +2 -2
- package/dist/client/assets/js/{abap-Dj8IFKiF.js → abap-C7gkFu-A.js} +1 -1
- package/dist/client/assets/js/{aiden0z-pptx-renderer.es-6vi5-jAN.js → aiden0z-pptx-renderer.es-DOpVaH_k.js} +1 -1
- package/dist/client/assets/js/{apex-C3INPUEt.js → apex-DZOtRowu.js} +1 -1
- package/dist/client/assets/js/{ar-Gk9y3ZfO.js → ar-8iThLSJQ.js} +1 -1
- package/dist/client/assets/js/architecture-7EHR7CIX-BrfhYGuP.js +1 -0
- package/dist/client/assets/js/{architectureDiagram-3BPJPVTR-DLZYeivB.js → architectureDiagram-3BPJPVTR-DEsTTzKd.js} +1 -1
- package/dist/client/assets/js/{auth-D1ZFqv22.js → auth-B52zm2Ir.js} +1 -1
- package/dist/client/assets/js/{azcli-UBzLhJq5.js → azcli-KxuicZQh.js} +1 -1
- package/dist/client/assets/js/{bat-P3O4jldt.js → bat-DfFP4HF-.js} +1 -1
- package/dist/client/assets/js/{bicep-DdQR9RxE.js → bicep-Co4bntVh.js} +1 -1
- package/dist/client/assets/js/{blockDiagram-GPEHLZMM-UWFo8sm5.js → blockDiagram-GPEHLZMM-NsxYeUKd.js} +1 -1
- package/dist/client/assets/js/{c4Diagram-AAUBKEIU-jgyj0wOb.js → c4Diagram-AAUBKEIU-D68asSzm.js} +1 -1
- package/dist/client/assets/js/{cameligo-Bb4ubW_C.js → cameligo-Xi0l_9Wr.js} +1 -1
- package/dist/client/assets/js/{chat-DdHii4Qz.js → chat-fUZW3YFa.js} +1 -1
- package/dist/client/assets/js/{chat-input-height-CSPwB9it.js → chat-input-height-lvFawuv9.js} +1 -1
- package/dist/client/assets/js/{chat-timestamp-DGQ8fmtT.js → chat-timestamp-4wWFcZWv.js} +1 -1
- package/dist/client/assets/js/{chunk-2J33WTMH-Br9OWF5a.js → chunk-2J33WTMH-CEU5sLIh.js} +1 -1
- package/dist/client/assets/js/{chunk-3OPIFGDE-Cb40LuI4.js → chunk-3OPIFGDE-DEhbKkCl.js} +1 -1
- package/dist/client/assets/js/{chunk-4BX2VUAB-jYtdiafd.js → chunk-4BX2VUAB-OIZUstuy.js} +1 -1
- package/dist/client/assets/js/{chunk-55IACEB6-CBtymeHY.js → chunk-55IACEB6-DQHKZCBG.js} +1 -1
- package/dist/client/assets/js/{chunk-5ZQYHXKU-yj9xqmex.js → chunk-5ZQYHXKU-BU3pQVVl.js} +1 -1
- package/dist/client/assets/js/{chunk-727SXJPM-er_5tB5X.js → chunk-727SXJPM-jj97gdnP.js} +1 -1
- package/dist/client/assets/js/{chunk-AQP2D5EJ-C4mDD6xK.js → chunk-AQP2D5EJ-jv-oWlkb.js} +1 -1
- package/dist/client/assets/js/{chunk-BSJP7CBP-QZesZe57.js → chunk-BSJP7CBP-DkKsepNF.js} +1 -1
- package/dist/client/assets/js/{chunk-CSCIHK7Q-5LH118bT.js → chunk-CSCIHK7Q-CLgoBoCF.js} +3 -3
- package/dist/client/assets/js/{chunk-FMBD7UC4-CQho6QZ5.js → chunk-FMBD7UC4-Bx1bCKUR.js} +1 -1
- package/dist/client/assets/js/{chunk-KSCS5N6A-DONM1Omv.js → chunk-KSCS5N6A-CZHZ6pBd.js} +1 -1
- package/dist/client/assets/js/{chunk-L5ZTLDWV-FN_zFWkp.js → chunk-L5ZTLDWV-dz9D3kOb.js} +1 -1
- package/dist/client/assets/js/{chunk-LZXEDZCA-CEEUVvpS.js → chunk-LZXEDZCA-CQiSQehC.js} +2 -2
- package/dist/client/assets/js/{chunk-ND2GUHAM-DWckpxQD.js → chunk-ND2GUHAM-mWODKb8v.js} +1 -1
- package/dist/client/assets/js/{chunk-NZK2D7GU-0mKZmkuV.js → chunk-NZK2D7GU-ivCkjCOR.js} +1 -1
- package/dist/client/assets/js/{chunk-O5CBEL6O-DIDAOkT_.js → chunk-O5CBEL6O-BRUisK47.js} +1 -1
- package/dist/client/assets/js/{chunk-QZHKN3VN-D3c-TMz-.js → chunk-QZHKN3VN-BHjgTrzY.js} +1 -1
- package/dist/client/assets/js/{chunk-WU5MYG2G-BZvSpwm4.js → chunk-WU5MYG2G-CNW1rcpL.js} +1 -1
- package/dist/client/assets/js/{chunk-XPW4576I-xdyJtk-s.js → chunk-XPW4576I-DP3dJbOu.js} +1 -1
- package/dist/client/assets/js/classDiagram-4FO5ZUOK-BVBBe3DQ.js +1 -0
- package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-DJUe3i9Y.js +1 -0
- package/dist/client/assets/js/{clipboard-DQ_A8ns-.js → clipboard-DHZFaAvO.js} +1 -1
- package/dist/client/assets/js/{clipboard-files-bDrcGKPe.js → clipboard-files-CBDy-02Y.js} +1 -1
- package/dist/client/assets/js/{clojure-ku7aCU1_.js → clojure-DuyGwS8X.js} +1 -1
- package/dist/client/assets/js/{coding-agents-DfHyBvky.js → coding-agents-BNTHD6kd.js} +1 -1
- package/dist/client/assets/js/{codingAgentProviders-BM18FAW9.js → codingAgentProviders-DM_ouxbL.js} +1 -1
- package/dist/client/assets/js/{coffee-DnRIdJlY.js → coffee-C5p7vzpa.js} +1 -1
- package/dist/client/assets/js/{completion-notification-XxjbntI8.js → completion-notification-CzdnhuX3.js} +1 -1
- package/dist/client/assets/js/{cose-bilkent-S5V4N54A-w891sIF1.js → cose-bilkent-S5V4N54A-De_ZdqY0.js} +1 -1
- package/dist/client/assets/js/{cpp-CN8i6ISX.js → cpp-II5hDbTe.js} +1 -1
- package/dist/client/assets/js/{csharp-B-fxig7O.js → csharp-D0POzSpv.js} +1 -1
- package/dist/client/assets/js/{csp-Bar9LGt4.js → csp-CwtuRkR3.js} +1 -1
- package/dist/client/assets/js/{css-DFtC5xZN.js → css-Dc2fJIqQ.js} +1 -1
- package/dist/client/assets/js/{cssMode-DH5XKKL2.js → cssMode-CC6jRvHF.js} +1 -1
- package/dist/client/assets/js/{cypher-BkJexWsv.js → cypher-DBcQoWDH.js} +1 -1
- package/dist/client/assets/js/{cytoscape.esm-BDsvr8Aq.js → cytoscape.esm-C9FMRqxM.js} +1 -1
- package/dist/client/assets/js/{dagre-BM42HDAG-BuT885pa.js → dagre-BM42HDAG-CvJIC410.js} +1 -1
- package/dist/client/assets/js/{dagre-BVUDh8Sh.js → dagre-BtgEsAtK.js} +1 -1
- package/dist/client/assets/js/{dart-B7W8hAtN.js → dart-Jf_Hmp2o.js} +1 -1
- package/dist/client/assets/js/{de-LDpd8WHJ.js → de-7hLSwCEx.js} +1 -1
- package/dist/client/assets/js/{defineProperty-DdPu4ZVv.js → defineProperty-DHkErCmG.js} +1 -1
- package/dist/client/assets/js/{desktop-browser-xrRFPNUg.js → desktop-browser-C6AhY0uu.js} +1 -1
- package/dist/client/assets/js/{diagram-2AECGRRQ-B1sSf-09.js → diagram-2AECGRRQ-CvPeU5Lm.js} +1 -1
- package/dist/client/assets/js/{diagram-5GNKFQAL-BffX22pf.js → diagram-5GNKFQAL-CBniYlkH.js} +1 -1
- package/dist/client/assets/js/{diagram-KO2AKTUF-D8QvpUpn.js → diagram-KO2AKTUF-C_yFaVRj.js} +1 -1
- package/dist/client/assets/js/{diagram-LMA3HP47-DkG7p3lQ.js → diagram-LMA3HP47-BzM1IxNe.js} +1 -1
- package/dist/client/assets/js/{diagram-OG6HWLK6-RjvNNvXM.js → diagram-OG6HWLK6-yvmf_3ax.js} +1 -1
- package/dist/client/assets/js/{dist-Bk0VKtV3.js → dist-BHzBn3v7.js} +1 -1
- package/dist/client/assets/js/{dockerfile-C4m7j8sy.js → dockerfile-J3d6ZPDJ.js} +1 -1
- package/dist/client/assets/js/{docx-preview-BpTW-GN7.js → docx-preview-Rqt8wMjQ.js} +1 -1
- package/dist/client/assets/js/{download-CX8EG48r.js → download-xhRMWMda.js} +1 -1
- package/dist/client/assets/js/{ecl-EHV358Ls.js → ecl-XnlT0p97.js} +1 -1
- package/dist/client/assets/js/{editor.api2-CnHBqh_d.js → editor.api2-ChO5nUQb.js} +1 -1
- package/dist/client/assets/js/{elixir-DLfp2Dwn.js → elixir-BEJbxH-B.js} +1 -1
- package/dist/client/assets/js/{en-D6VVFwFU.js → en-D2WSXgkM.js} +1 -1
- package/dist/client/assets/js/{erDiagram-TEJ5UH35-CLlLC6xx.js → erDiagram-TEJ5UH35-DZysD9r9.js} +1 -1
- package/dist/client/assets/js/{es-BIMLuyVP.js → es-B7Mq1P0U.js} +1 -1
- package/dist/client/assets/js/{esm-C8D4M0Yn.js → esm-DnZPPtmx.js} +1 -1
- package/dist/client/assets/js/eventmodeling-FCH6USID-vlE3-g2j.js +1 -0
- package/dist/client/assets/js/{file-preview-BvgwVZXh.js → file-preview-C417aixJ.js} +1 -1
- package/dist/client/assets/js/{files-CJkCqsUx.js → files-DjI-npgn.js} +1 -1
- package/dist/client/assets/js/{flow9-CtBaUnAi.js → flow9-j5XT_8TQ.js} +1 -1
- package/dist/client/assets/js/{flowDiagram-I6XJVG4X-VTRTPnqD.js → flowDiagram-I6XJVG4X-Dt5ZtyHz.js} +1 -1
- package/dist/client/assets/js/{fr-C2lf0cY2.js → fr-DvClrDOw.js} +1 -1
- package/dist/client/assets/js/{freemarker2-XLeMvhl_.js → freemarker2-BzCf_0SN.js} +1 -1
- package/dist/client/assets/js/{fsharp-Db0uaBQv.js → fsharp-ClU_Sdjr.js} +1 -1
- package/dist/client/assets/js/{ganttDiagram-6RSMTGT7-CdKcIZ8_.js → ganttDiagram-6RSMTGT7-Bca3rPWi.js} +1 -1
- package/dist/client/assets/js/gitGraph-WXDBUCRP-Cyd4P6XH.js +1 -0
- package/dist/client/assets/js/{gitGraphDiagram-PVQCEYII-Bcuyw6fo.js → gitGraphDiagram-PVQCEYII-Co29qnTg.js} +1 -1
- package/dist/client/assets/js/{go-DwaTlB-B.js → go-D3iUyCM0.js} +1 -1
- package/dist/client/assets/js/{graphlib-vAI4Pw7R.js → graphlib-Bln6qd-Z.js} +1 -1
- package/dist/client/assets/js/{graphql-Cf2XhNJR.js → graphql-z8koqyyL.js} +1 -1
- package/dist/client/assets/js/{group-agent-avatar-CPehpiK0.js → group-agent-avatar-CwqtaKGw.js} +1 -1
- package/dist/client/assets/js/{group-chat-CY62vc77.js → group-chat-Buz8HP-N.js} +1 -1
- package/dist/client/assets/js/{group-chat-xkdjC2Jt.js → group-chat-CgFAwCtr.js} +1 -1
- package/dist/client/assets/js/{group-chat-agent-link-DdSNKasF.js → group-chat-agent-link-N5IFeN_j.js} +1 -1
- package/dist/client/assets/js/{handlebars-CNEKu_p8.js → handlebars-C_JvhUYs.js} +1 -1
- package/dist/client/assets/js/{hcl-6UZbq6h2.js → hcl-X7TzviIX.js} +1 -1
- package/dist/client/assets/js/{highlight-DwtBT6t1.js → highlight-C4yUBxwQ.js} +1 -1
- package/dist/client/assets/js/{html-DfSIHhKA.js → html-B-rCQB0N.js} +1 -1
- package/dist/client/assets/js/{htmlMode-iGw9-O-W.js → htmlMode-CAeEf_yf.js} +1 -1
- package/dist/client/assets/js/{index-DnjQJzX4.js → index-DN4SafrP.js} +5 -5
- package/dist/client/assets/js/info-J43DQDTF-B9tkQ2Sb.js +1 -0
- package/dist/client/assets/js/{infoDiagram-5YYISTIA-85450Zam.js → infoDiagram-5YYISTIA-BWQGayms.js} +1 -1
- package/dist/client/assets/js/{ini-8em8V_Af.js → ini-LTHHN4J-.js} +1 -1
- package/dist/client/assets/js/{ishikawaDiagram-YF4QCWOH-BZ4az7UA.js → ishikawaDiagram-YF4QCWOH-Dhuplz_z.js} +1 -1
- package/dist/client/assets/js/{ja-C1bBXgr_.js → ja-D7BeX2_D.js} +1 -1
- package/dist/client/assets/js/{java-CP1MdIkO.js → java-BRFX-ya0.js} +1 -1
- package/dist/client/assets/js/{javascript-Cr8_LHYa.js → javascript-ZXiVmjXn.js} +1 -1
- package/dist/client/assets/js/{journeyDiagram-JHISSGLW-DGMB8Tgc.js → journeyDiagram-JHISSGLW-CJeatAU9.js} +1 -1
- package/dist/client/assets/js/{jsonMode-HCZ-1lFH.js → jsonMode-C6FcMe0o.js} +1 -1
- package/dist/client/assets/js/{jszip.min-BkR6b8DY.js → jszip.min-skZCUzWf.js} +1 -1
- package/dist/client/assets/js/{julia-DMTMxa5q.js → julia-Bph8N3CL.js} +1 -1
- package/dist/client/assets/js/{kanban-definition-UN3LZRKU-F5cH_RpB.js → kanban-definition-UN3LZRKU-tvWuOdSr.js} +1 -1
- package/dist/client/assets/js/{katex-CYbEJAbZ.js → katex-hSGJNERm.js} +1 -1
- package/dist/client/assets/js/{ko-qgOeHd8L.js → ko-BsVa-If_.js} +1 -1
- package/dist/client/assets/js/{kotlin-Blzus47W.js → kotlin-_c4-tPQp.js} +1 -1
- package/dist/client/assets/js/{less-DWCHpDyf.js → less-5oVo4jfQ.js} +1 -1
- package/dist/client/assets/js/{lexon-YXdlYGbJ.js → lexon-DE4YtGwF.js} +1 -1
- package/dist/client/assets/js/{liquid-DSQgvRwe.js → liquid-BGfieGMG.js} +1 -1
- package/dist/client/assets/js/{lspLanguageFeatures-0Hx2Vnc-.js → lspLanguageFeatures-DU_1H2uW.js} +1 -1
- package/dist/client/assets/js/{lua-Cyv3mTkg.js → lua-7WJSZJqD.js} +1 -1
- package/dist/client/assets/js/{m3-CPY3Ym7_.js → m3-gZlfoR19.js} +1 -1
- package/dist/client/assets/js/{markdown-DaPQ1nuG.js → markdown-BYF71orA.js} +1 -1
- package/dist/client/assets/js/{mdx-BqA6Xr9V.js → mdx-CunEIV3g.js} +1 -1
- package/dist/client/assets/js/{mermaid-parser.core-D4HRUOce.js → mermaid-parser.core-DU_SX15F.js} +3 -3
- package/dist/client/assets/js/{mermaid.core-w6kHmgOG.js → mermaid.core-8vsbhG5J.js} +3 -3
- package/dist/client/assets/js/{message-scroll-position-C5yRCyBU.js → message-scroll-position-C9_YO3pX.js} +2 -2
- package/dist/client/assets/js/{mindmap-definition-RKZ34NQL-CnzhnJ7Z.js → mindmap-definition-RKZ34NQL-HPtlKqL1.js} +1 -1
- package/dist/client/assets/js/{mips-BfqBfLvN.js → mips-DXkvw9aZ.js} +1 -1
- package/dist/client/assets/js/{models-wrytxWnf.js → models-BILDy2sV.js} +1 -1
- package/dist/client/assets/js/{monaco.contribution-Bc-DesyO.js → monaco.contribution-DDqeHGl3.js} +2 -2
- package/dist/client/assets/js/{msdax-DgMip49g.js → msdax-BbHEBDvP.js} +1 -1
- package/dist/client/assets/js/{mysql-DPUvF1g2.js → mysql-7I1rlwh7.js} +1 -1
- package/dist/client/assets/js/{objective-c-BQ3llrPW.js → objective-c-Dk03REAv.js} +1 -1
- package/dist/client/assets/js/packet-YPE3B663-DlTFK3Wo.js +1 -0
- package/dist/client/assets/js/{pascal-bFWHV7MZ.js → pascal-BCfNkzYY.js} +1 -1
- package/dist/client/assets/js/{pascaligo-C8Qza2pK.js → pascaligo-D-DslS98.js} +1 -1
- package/dist/client/assets/js/{pdf-Cb7x495t.js → pdf-B_OYWxSy.js} +1 -1
- package/dist/client/assets/js/{pdf.worker.min-DDUKJ6cJ.js → pdf.worker.min--q2RLEHa.js} +1 -1
- package/dist/client/assets/js/{perl-x25gw0_p.js → perl-MUnuTclx.js} +1 -1
- package/dist/client/assets/js/{pets-BfRsvl7D.js → pets-D74G2jqA.js} +1 -1
- package/dist/client/assets/js/{pgsql-DAUcGeRq.js → pgsql-BxCBktNe.js} +1 -1
- package/dist/client/assets/js/{php-nri1eqb2.js → php-zp9UgH03.js} +1 -1
- package/dist/client/assets/js/pie-LRSECV5Y-BtnBGhFZ.js +1 -0
- package/dist/client/assets/js/{pieDiagram-4H26LBE5-4LODdtT_.js → pieDiagram-4H26LBE5-CG8_pcHr.js} +1 -1
- package/dist/client/assets/js/{pla-CHi5LWNL.js → pla-DGCtmYZC.js} +1 -1
- package/dist/client/assets/js/{postiats-Bk7jD0AA.js → postiats-DHSW8gnY.js} +1 -1
- package/dist/client/assets/js/{powerquery-UTqJ0Vs7.js → powerquery-BGsPEmJe.js} +1 -1
- package/dist/client/assets/js/{powershell-CuPY3Rqk.js → powershell-BItlb0hE.js} +1 -1
- package/dist/client/assets/js/{profiles-D-vlI-Ec.js → profiles-BK5JKD7h.js} +1 -1
- package/dist/client/assets/js/{protobuf-Be4AIz9j.js → protobuf-BIhm6JYx.js} +1 -1
- package/dist/client/assets/js/{pt-D7_udWb3.js → pt-BSORCDMm.js} +1 -1
- package/dist/client/assets/js/{pug-CZFx15Ey.js → pug-BtnM7KZj.js} +1 -1
- package/dist/client/assets/js/{python-BgRg6Ez6.js → python-DxzTx1Q_.js} +1 -1
- package/dist/client/assets/js/{qsharp-BiBiLhRS.js → qsharp-B_8MSfaB.js} +1 -1
- package/dist/client/assets/js/{quadrantDiagram-W4KKPZXB-g_q9-dXx.js → quadrantDiagram-W4KKPZXB-CsbkMYuV.js} +1 -1
- package/dist/client/assets/js/{r-DM7NVSbZ.js → r-kvKC59jk.js} +1 -1
- package/dist/client/assets/js/radar-GUYGQ44K-BTKMKX4G.js +1 -0
- package/dist/client/assets/js/{razor-CiWy0jCW.js → razor-BwZ0MkaL.js} +1 -1
- package/dist/client/assets/js/{redis-BR2LPmFL.js → redis-5j1U_i85.js} +1 -1
- package/dist/client/assets/js/{redshift-B0sdAV16.js → redshift-CX1dFLA1.js} +1 -1
- package/dist/client/assets/js/{requirementDiagram-4Y6WPE33-EedCclad.js → requirementDiagram-4Y6WPE33-CKC7CQCX.js} +1 -1
- package/dist/client/assets/js/{restructuredtext-kQOBLN1M.js → restructuredtext-MV0-Naya.js} +1 -1
- package/dist/client/assets/js/{rough.esm-Dyx_2DON.js → rough.esm-CV1rL6PC.js} +1 -1
- package/dist/client/assets/js/{ru-CVQQmreT.js → ru-JsH6TKyg.js} +1 -1
- package/dist/client/assets/js/{ruby-CbdJXy6J.js → ruby-Bhyejf9X.js} +1 -1
- package/dist/client/assets/js/{rust-DZanYksk.js → rust-CR8d_FC1.js} +1 -1
- package/dist/client/assets/js/{sankeyDiagram-5OEKKPKP-DFC0nzsd.js → sankeyDiagram-5OEKKPKP-CKlqlvAe.js} +1 -1
- package/dist/client/assets/js/{sb-C5-WiqDZ.js → sb-hLW2EM2L.js} +1 -1
- package/dist/client/assets/js/{scala-Bk7i9nV-.js → scala-DVUhALEZ.js} +1 -1
- package/dist/client/assets/js/{scheme-CaZSWmJ2.js → scheme-BS6yNanr.js} +1 -1
- package/dist/client/assets/js/{scss-ByOYuc7K.js → scss-BfoRsElt.js} +1 -1
- package/dist/client/assets/js/{sequenceDiagram-3UESZ5HK-hWjPfqXt.js → sequenceDiagram-3UESZ5HK-CTimhD6H.js} +1 -1
- package/dist/client/assets/js/{session-browser-prefs-Br8OYA4_.js → session-browser-prefs-BT1woDux.js} +1 -1
- package/dist/client/assets/js/{sessions-iGK9S6zk.js → sessions-IkLKgnN6.js} +1 -1
- package/dist/client/assets/js/{settings-pbanANH0.js → settings-roYY6G3W.js} +1 -1
- package/dist/client/assets/js/{shell-Di0TEySc.js → shell-BO_Lyczz.js} +1 -1
- package/dist/client/assets/js/{skills-DC-UPcXj.js → skills-a5LPwmiT.js} +1 -1
- package/dist/client/assets/js/{solidity-BNTjAuuA.js → solidity-D3T2Ki4l.js} +1 -1
- package/dist/client/assets/js/{sophia-LY__8Yob.js → sophia-iJmIEvi8.js} +1 -1
- package/dist/client/assets/js/{sparql-CWnLfgGS.js → sparql-C2HCEExr.js} +1 -1
- package/dist/client/assets/js/{sql-B0ypQ9lR.js → sql-DM6_3GBc.js} +1 -1
- package/dist/client/assets/js/{src-BihFroE7.js → src-DD_TpJde.js} +1 -1
- package/dist/client/assets/js/{st-CqVFKTbZ.js → st-DSb39Fm5.js} +1 -1
- package/dist/client/assets/js/{stateDiagram-AJRCARHV-B7wEnYVe.js → stateDiagram-AJRCARHV-DwBGmBj6.js} +1 -1
- package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-5bNcwBne.js +1 -0
- package/dist/client/assets/js/{style-DDAg_jVj.js → style-B5xXhBlp.js} +1 -1
- package/dist/client/assets/js/{swift-B4ZZmDxc.js → swift-DrZYSZK3.js} +1 -1
- package/dist/client/assets/js/{systemverilog-zLt-O1mT.js → systemverilog-BAWNCaf6.js} +1 -1
- package/dist/client/assets/js/{tcl-DCSZmA-l.js → tcl-DY15ex6v.js} +1 -1
- package/dist/client/assets/js/{timeline-definition-PNZ67QCA-BN_LfleE.js → timeline-definition-PNZ67QCA-B8xuIu6g.js} +1 -1
- package/dist/client/assets/js/treeView-BLDUP644-DvZPUnGM.js +1 -0
- package/dist/client/assets/js/treemap-LRROVOQU-Bis1djYh.js +1 -0
- package/dist/client/assets/js/{tsMode-BjUcuHrq.js → tsMode-BE8JCSCE.js} +1 -1
- package/dist/client/assets/js/{ttsHelpers-BLunFYsq.js → ttsHelpers-BLNiQExI.js} +1 -1
- package/dist/client/assets/js/{twig-CuJlVpUG.js → twig-BpHF_18K.js} +1 -1
- package/dist/client/assets/js/{typescript-De40YVFt.js → typescript-FQ3z9hVG.js} +1 -1
- package/dist/client/assets/js/{typespec-8QcsIc3c.js → typespec-BKvcn6aE.js} +1 -1
- package/dist/client/assets/js/{useSttSettings-B1-KXN44.js → useSttSettings-DHX06G8A.js} +1 -1
- package/dist/client/assets/js/{vb-DEGTdhxf.js → vb-B74ucE43.js} +1 -1
- package/dist/client/assets/js/{vennDiagram-CIIHVFJN-hL8ax7wF.js → vennDiagram-CIIHVFJN-DtEu04QR.js} +1 -1
- package/dist/client/assets/js/wardley-L42UT6IY-CD4dIN63.js +1 -0
- package/dist/client/assets/js/{wardleyDiagram-YWT4CUSO-BIR-RA6Y.js → wardleyDiagram-YWT4CUSO-DdNKCPsp.js} +1 -1
- package/dist/client/assets/js/{wgsl-CmbiucmY.js → wgsl-DEf5Vdqv.js} +1 -1
- package/dist/client/assets/js/{workers-BgWBq4qY.js → workers-BbaiLVxx.js} +1 -1
- package/dist/client/assets/js/{workflow-socket-DZ9Ceffc.js → workflow-socket-DH402vxO.js} +1 -1
- package/dist/client/assets/js/{xml-SZLdwDmk.js → xml-zjE51I7v.js} +1 -1
- package/dist/client/assets/js/{xterm-D6CotCNH.js → xterm-Djy4rCx0.js} +1 -1
- package/dist/client/assets/js/{xychartDiagram-2RQKCTM6-DHa486uP.js → xychartDiagram-2RQKCTM6-CKqN7g7r.js} +1 -1
- package/dist/client/assets/js/{yaml-CgQpCgM5.js → yaml-DabeGoTc.js} +1 -1
- package/dist/client/assets/js/{zh-BDlMioZr.js → zh-CI4-L3JY.js} +1 -1
- package/dist/client/assets/js/{zh-TW-DTbLWR1A.js → zh-TW-wYlj-uOZ.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/openapi.json +1 -1
- package/package.json +9 -1
- package/dist/client/assets/js/architecture-7EHR7CIX-Cl4Qi40R.js +0 -1
- package/dist/client/assets/js/classDiagram-4FO5ZUOK-DC0BcY8x.js +0 -1
- package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-BfDDH_fm.js +0 -1
- package/dist/client/assets/js/eventmodeling-FCH6USID-Bgzwnvkn.js +0 -1
- package/dist/client/assets/js/gitGraph-WXDBUCRP-CwFrpI3e.js +0 -1
- package/dist/client/assets/js/info-J43DQDTF-wMwkmIWM.js +0 -1
- package/dist/client/assets/js/packet-YPE3B663-DYmKXJOE.js +0 -1
- package/dist/client/assets/js/pie-LRSECV5Y-Dx0hbcjV.js +0 -1
- package/dist/client/assets/js/radar-GUYGQ44K-D-t-QJhi.js +0 -1
- package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-CoMhBVvo.js +0 -1
- package/dist/client/assets/js/treeView-BLDUP644-CMJGhbWk.js +0 -1
- package/dist/client/assets/js/treemap-LRROVOQU-_j4KoVDh.js +0 -1
- package/dist/client/assets/js/wardley-L42UT6IY-BeOvmJoM.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/js/MarkdownRenderer-
|
|
2
|
-
import{$i as D,$t as q,Bi as oe,Ci as It,Di as Z,Ei as kt,Fr as ht,Hi as a,Ir as _t,Lt as ue,M as G,N as Ut,Nr as J,Nt as Vt,Pr as X,Qr as Wt,Sa as r,Ti as I,U as de,Vi as Et,Wi as K,Zi as jt,_a as t,_i as e,_t as gt,an as Ht,bi as d,bt as qt,dn as Ot,dt as Qt,ea as Nt,ei as se,gi as N,gt as ae,lt as Kt,mi as Q,n as Y,pi as ne,si as ee,sn as re,t as le,ua as _,ui as Zt,vi as H,wa as W,wi as R,ya as j,yi as C,zt as Gt}from"./index-DnjQJzX4.js";import{r as Jt,t as Xt}from"./profiles-D-vlI-Ec.js";import{a as Yt,c as ea,d as la,i as ve,l as ie,m as ta,n as aa,p as ia,s as sa,t as na,u as oa}from"./skills-DC-UPcXj.js";var ce,pe,fe,ke,he,_e,ge,me,ye,we,$e,be,Ce,xe,Se,Me,De,Ae,Fe,Le,Pe,Be,Re,Te,ze,Ie,Ue,Ve,We,Ee,je,He,qe,Oe,Qe,Ne,mt,Ke=W((()=>{ee(),G(),ie(),J(),ce={class:"skill-list"},pe={key:0,class:"skill-empty"},fe=["title","onClick"],ke={class:"path-header-text"},he={class:"category-count"},_e={key:0,class:"path-group-body"},ge=["onClick"],me={class:"category-name"},ye={class:"category-count"},we={key:0,class:"category-skills"},$e=["onClick"],be={class:"skill-info"},Ce={class:"skill-name"},xe=["title"],Se=["title"],Me={key:0,class:"skill-desc"},De=["onClick"],Ae={class:"category-name"},Fe={class:"category-count"},Le={key:0,class:"category-skills"},Pe=["onClick"],Be={class:"skill-info"},Re={class:"skill-name"},Te=["title"],ze=["title"],Ie={key:0,class:"skill-desc"},Ue=["title","disabled","onClick"],Ve={key:3,class:"skill-category archive-section"},We={class:"category-name"},Ee={class:"category-count"},je={key:0,class:"category-skills"},He=["onClick"],qe={class:"skill-info"},Oe={class:"skill-name"},Qe=["title"],Ne={key:0,class:"skill-desc"},mt=Z({__name:"SkillList",props:{categories:{},archived:{},selectedSkill:{},searchQuery:{},sourceFilter:{},readonly:{type:Boolean}},emits:["select","deleted"],setup(g,{emit:w}){const{t:y}=X(),u=ae(),k=qt(),f=g,p=w,h=_(new Set),m=_(!0),x=_(new Set),$=_(new Set),T=N(()=>{let n=f.archived;if(f.sourceFilter&&f.sourceFilter!=="modified"&&(n=n.filter(l=>(l.source||"local")===f.sourceFilter)),f.searchQuery){const l=f.searchQuery.toLowerCase();n=n.filter(i=>i.name.toLowerCase().includes(l)||i.description.toLowerCase().includes(l))}return n}),P=N(()=>{let n=f.categories;if(f.sourceFilter&&(n=n.map(l=>({...l,skills:l.skills.filter(i=>f.sourceFilter==="modified"?i.modified:(i.source||"local")===f.sourceFilter)})).filter(l=>l.skills.length>0)),f.searchQuery){const l=f.searchQuery.toLowerCase();n=n.map(i=>({...i,skills:i.skills.filter(s=>s.name.toLowerCase().includes(l)||s.description.toLowerCase().includes(l))})).filter(i=>i.skills.length>0||i.name.toLowerCase().includes(l))}return n}),B=N(()=>{if(f.sourceFilter!=="external")return null;const n=new Map,l=[],i=new Map;for(const s of P.value)for(const v of s.skills){const L=v.sourcePath||"";n.has(L)||(n.set(L,new Map),l.push(L),i.set(L,[]));const O=n.get(L);O.has(s.name)||(O.set(s.name,[]),i.get(L).push(s.name)),O.get(s.name).push(v)}return l.map(s=>({path:s,categories:i.get(s).map(v=>({name:v,skills:n.get(s).get(v)}))}))}),A=_(new Set);function b(n){A.value.has(n)?A.value.delete(n):A.value.add(n)}function U(n){return n||"(unknown)"}function z(n){h.value.has(n)?h.value.delete(n):h.value.add(n)}function F(n,l){p("select",n,l)}function E(n,l){return`${n}/${l.name}`}async function V(n,l,i){if(!x.value.has(l)){x.value.add(l);try{await ta(l,i);const s=f.categories.find(v=>v.name===n)?.skills.find(v=>v.name===l);s&&(s.enabled=i)}catch(s){u.error(y("skills.toggleFailed")+`: ${s.message}`)}finally{x.value.delete(l)}}}function o(n,l){$.value.has(l)||k.warning({title:y("skills.delete"),content:y("skills.deleteConfirm",{name:l}),positiveText:y("common.delete"),negativeText:y("common.cancel"),onPositiveClick:async()=>{$.value.add(l);try{await na(n,l),u.success(y("skills.deleteSuccess")),u.info(y("skills.reloadHint"),{duration:6e3}),p("deleted",n,l)}catch(i){u.error(y("skills.deleteFailed")+`: ${i.message}`)}finally{$.value.delete(l)}}})}return(n,l)=>(a(),d("div",ce,[P.value.length===0?(a(),d("div",pe,r(g.searchQuery?t(y)("skills.noMatch"):t(y)("skills.noSkills")),1)):C("",!0),B.value?(a(!0),d(Q,{key:1},K(B.value,i=>(a(),d("div",{key:i.path||"__unknown__",class:"skill-path-group"},[e("button",{class:"path-header",title:i.path||"",onClick:s=>b(i.path)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:A.value.has(i.path)}])},[...l[3]||(l[3]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),l[4]||(l[4]=e("span",{class:"path-header-icon"},[e("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])],-1)),e("span",ke,r(U(i.path)),1),e("span",he,r(i.categories.reduce((s,v)=>s+v.skills.length,0)),1)],8,fe),A.value.has(i.path)?C("",!0):(a(),d("div",_e,[(a(!0),d(Q,null,K(i.categories,s=>(a(),d("div",{key:s.name,class:"skill-category"},[e("button",{class:"category-header sub",onClick:v=>z(i.path+"::"+s.name)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:h.value.has(i.path+"::"+s.name)}])},[...l[5]||(l[5]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),e("span",me,r(s.name),1),e("span",ye,r(s.skills.length),1)],8,ge),h.value.has(i.path+"::"+s.name)?C("",!0):(a(),d("div",we,[(a(!0),d(Q,null,K(s.skills,v=>(a(),d("button",{key:E(s.name,v),class:j(["skill-item",[{active:g.selectedSkill===E(s.name,v)},`source-${v.source||"local"}`]]),onClick:L=>F(s.name,v.name)},[e("div",be,[e("span",Ce,[e("span",{class:j(["source-dot",`dot-${v.source||"local"}`]),title:t(y)(`skills.source.${v.source||"local"}`)},null,10,xe),R(" "+r(v.name)+" ",1),v.modified?(a(),d("span",{key:0,class:"modified-badge",title:t(y)("skills.modified")},"✎",8,Se)):C("",!0)]),v.description?(a(),d("span",Me,r(v.description),1)):C("",!0)]),g.readonly?C("",!0):(a(),H(t(de),{key:0,size:"small",value:v.enabled!==!1,loading:x.value.has(v.name),"onUpdate:value":L=>V(s.name,v.name,L),onClick:l[0]||(l[0]=ne(()=>{},["stop"]))},null,8,["value","loading","onUpdate:value"]))],10,$e))),128))]))]))),128))]))]))),128)):(a(!0),d(Q,{key:2},K(P.value,i=>(a(),d("div",{key:i.name,class:"skill-category"},[e("button",{class:"category-header",onClick:s=>z(i.name)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:h.value.has(i.name)}])},[...l[6]||(l[6]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),e("span",Ae,r(i.name),1),e("span",Fe,r(i.skills.length),1)],8,De),h.value.has(i.name)?C("",!0):(a(),d("div",Le,[(a(!0),d(Q,null,K(i.skills,s=>(a(),d("button",{key:E(i.name,s),class:j(["skill-item",[{active:g.selectedSkill===E(i.name,s)},`source-${s.source||"local"}`]]),onClick:v=>F(i.name,s.name)},[e("div",Be,[e("span",Re,[e("span",{class:j(["source-dot",`dot-${s.source||"local"}`]),title:t(y)(`skills.source.${s.source||"local"}`)},null,10,Te),R(" "+r(s.name)+" ",1),s.modified?(a(),d("span",{key:0,class:"modified-badge",title:t(y)("skills.modified")},"✎",8,ze)):C("",!0)]),s.description?(a(),d("span",Ie,r(s.description),1)):C("",!0)]),!g.readonly&&(s.source??"local")==="local"?(a(),d("button",{key:0,class:"skill-action-btn",title:t(y)("skills.delete"),disabled:$.value.has(s.name),onClick:ne(v=>o(i.name,s.name),["stop"])},[...l[7]||(l[7]=[It('<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-4f8b98d6><polyline points="3 6 5 6 21 6" data-v-4f8b98d6></polyline><path d="M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6" data-v-4f8b98d6></path><path d="M10 11v6" data-v-4f8b98d6></path><path d="M14 11v6" data-v-4f8b98d6></path><path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2" data-v-4f8b98d6></path></svg>',1)])],8,Ue)):C("",!0),g.readonly?C("",!0):(a(),H(t(de),{key:1,size:"small",value:s.enabled!==!1,loading:x.value.has(s.name),"onUpdate:value":v=>V(i.name,s.name,v),onClick:l[1]||(l[1]=ne(()=>{},["stop"]))},null,8,["value","loading","onUpdate:value"]))],10,Pe))),128))]))]))),128)),T.value.length>0||g.archived.length>0?(a(),d("div",Ve,[e("button",{class:"category-header archive-header",onClick:l[2]||(l[2]=i=>m.value=!m.value)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:m.value}])},[...l[8]||(l[8]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),e("span",We,r(t(y)("skills.archived")),1),e("span",Ee,r(g.archived.length),1)]),m.value?C("",!0):(a(),d("div",je,[(a(!0),d(Q,null,K(T.value,i=>(a(),d("button",{key:E(".archive",i),class:j(["skill-item skill-archived",{active:g.selectedSkill===E(".archive",i)}]),onClick:s=>F(".archive",i.name)},[e("div",qe,[e("span",Oe,[e("span",{class:j(["source-dot",`dot-${i.source||"local"}`]),title:t(y)(`skills.source.${i.source||"local"}`)},null,10,Qe),R(" "+r(i.name),1)]),i.description?(a(),d("span",Ne,r(i.description),1)):C("",!0)])],10,He))),128))]))])):C("",!0)]))}})})),ra=W((()=>{})),yt,ua=W((()=>{Ke(),Ke(),ra(),Y(),yt=le(mt,[["__scopeId","data-v-4f8b98d6"]])})),Ze,Ge,Je,Xe,Ye,el,ll,tl,al,il,sl,nl,ol,rl,ul,dl,vl,cl,pl,fl,kl,hl,_l,wt,gl=W((()=>{ee(),ie(),J(),G(),_t(),Ze={class:"skill-detail"},Ge={class:"detail-title"},Je={class:"detail-heading"},Xe={class:"detail-category"},Ye={class:"detail-name"},el={class:"usage-stats"},ll=["title"],tl=["disabled","title"],al=["disabled","title"],il=["disabled","title"],sl=["fill"],nl={key:4,class:"usage-stat",title:"Views"},ol={key:5,class:"usage-stat",title:"Uses"},rl={key:6,class:"usage-stat",title:"Patches"},ul={key:0,class:"detail-loading"},dl={key:0,class:"detail-breadcrumb"},vl={class:"breadcrumb-path"},cl={class:"detail-content"},pl=["aria-label"],fl={key:1,class:"detail-files"},kl={class:"files-header"},hl={class:"files-list"},_l=["onClick"],wt=Z({__name:"SkillDetail",props:{category:{},skill:{},skillName:{},patchCount:{},useCount:{},viewCount:{},pinned:{type:Boolean},target:{},readonly:{type:Boolean},canPin:{type:Boolean}},emits:["pinToggled","saved"],setup(g,{emit:w}){const y=kt(async()=>(await ht(async()=>{const{default:s}=await import("./MarkdownRenderer-CVtmHZwc.js");return{default:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]))).default),{t:u}=X(),k=ae(),f=g,p=w,h=_(""),m=_(""),x=_([]),$=_(!1),T=_(""),P=_(null),B=_(!1),A=_(!1),b=_(!1),U=N(()=>m.value!==h.value);async function z(){$.value=!0,P.value=null,T.value="",x.value=[],h.value="",m.value="",A.value=!1;try{const s=`${f.category}/${f.skill}/SKILL.md`,[v,L]=await Promise.all([ve(s,f.target||"hermes"),Yt(f.category,f.skill,f.target||"hermes")]);h.value=v,m.value=v,x.value=L.filter(O=>!O.isDir&&O.path!=="SKILL.md")}catch(s){h.value=u("skills.loadFailed")+`: ${s.message}`,m.value=h.value}finally{$.value=!1}}async function F(s){B.value=!0,P.value=s;try{const v=`${f.category}/${f.skill}/`;let L=s;if(s.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(s)){const O=s.replace(/\\/g,"/").split(/(?:^|\/)(?:\.hermes|hermes)\/skills\//)[1];O&&(L=O.split("/").slice(2).join("/"))}T.value=await ve(`${v}${L}`,f.target||"hermes")}catch(v){T.value=u("skills.fileLoadFailed")+`: ${v.message}`}finally{B.value=!1}}function E(){P.value=null,T.value=""}function V(){m.value=h.value,A.value=!0}function o(){m.value=h.value,A.value=!1}async function n(){if(!(b.value||f.readonly)){b.value=!0;try{await ia(f.category,f.skill,m.value,f.target||"hermes"),h.value=m.value,A.value=!1,k.success(u("skills.saveSuccess")),k.info(u("skills.reloadHint"),{duration:6e3}),p("saved")}catch(s){k.error(u("skills.saveFailed")+`: ${s.message}`)}finally{b.value=!1}}}const l=_(!1);async function i(){if(!l.value){l.value=!0;try{const s=!f.pinned;await oa(f.skillName,s),p("pinToggled",f.skillName,s)}catch(s){k.error(u("skills.pinFailed")+`: ${s.message}`)}finally{l.value=!1}}}return jt(()=>`${f.target||"hermes"}/${f.category}/${f.skill}`,z,{immediate:!0}),(s,v)=>(a(),d("div",Ze,[e("div",Ge,[e("div",Je,[e("span",Xe,r(g.category),1),v[1]||(v[1]=e("span",{class:"detail-separator"},"/",-1)),e("span",Ye,r(g.skill),1)]),e("div",el,[!g.readonly&&!P.value&&!A.value?(a(),d("button",{key:0,class:"detail-action",title:t(u)("skills.edit"),onClick:V},[v[2]||(v[2]=e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M12 20h9"}),e("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})],-1)),e("span",null,r(t(u)("skills.edit")),1)],8,ll)):C("",!0),!g.readonly&&!P.value&&A.value?(a(),d("button",{key:1,class:"detail-action",disabled:b.value||!U.value,title:t(u)("common.save"),onClick:n},[v[3]||(v[3]=e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2Z"}),e("path",{d:"M17 21v-8H7v8"}),e("path",{d:"M7 3v5h8"})],-1)),e("span",null,r(b.value?t(u)("skills.saving"):t(u)("common.save")),1)],8,tl)):C("",!0),!g.readonly&&!P.value&&A.value?(a(),d("button",{key:2,class:"detail-action",disabled:b.value,title:t(u)("common.cancel"),onClick:o},[v[4]||(v[4]=e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M18 6 6 18"}),e("path",{d:"m6 6 12 12"})],-1)),e("span",null,r(t(u)("common.cancel")),1)],8,al)):C("",!0),g.canPin&&!g.readonly?(a(),d("button",{key:3,class:j(["pin-toggle",{active:g.pinned}]),disabled:l.value,title:g.pinned?t(u)("skills.unpin"):t(u)("skills.pin"),onClick:i},[(a(),d("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:g.pinned?"currentColor":"none",stroke:"currentColor","stroke-width":"2"},[...v[5]||(v[5]=[e("path",{d:"M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2l-2-2z"},null,-1)])],8,sl))],10,il)):C("",!0),g.viewCount!=null?(a(),d("span",nl,[v[6]||(v[6]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),e("circle",{cx:"12",cy:"12",r:"3"})],-1)),R(" "+r(g.viewCount),1)])):C("",!0),g.useCount!=null?(a(),d("span",ol,[v[7]||(v[7]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("polyline",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})],-1)),R(" "+r(g.useCount),1)])):C("",!0),g.patchCount!=null?(a(),d("span",rl,[v[8]||(v[8]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M12 20h9"}),e("path",{d:"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"})],-1)),R(" "+r(g.patchCount),1)])):C("",!0)])]),$.value&&!h.value?(a(),d("div",ul,r(t(u)("common.loading")),1)):(a(),d(Q,{key:1},[P.value?(a(),d("div",dl,[e("button",{class:"back-btn",onClick:E},[v[9]||(v[9]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("polyline",{points:"15 18 9 12 15 6"})],-1)),R(" "+r(t(u)("skills.backTo"))+" "+r(g.skill),1)]),e("span",vl,r(P.value),1)])):C("",!0),e("div",cl,[P.value?(a(),H(t(y),{key:0,content:T.value},null,8,["content"])):A.value?Nt((a(),d("textarea",{key:1,"onUpdate:modelValue":v[0]||(v[0]=L=>m.value=L),class:"skill-editor","aria-label":t(u)("skills.editorLabel"),spellcheck:"false"},null,8,pl)),[[Zt,m.value]]):(a(),H(t(y),{key:2,content:h.value},null,8,["content"]))]),!P.value&&x.value.length>0?(a(),d("div",fl,[e("div",kl,r(t(u)("skills.attachedFiles")),1),e("div",hl,[(a(!0),d(Q,null,K(x.value,L=>(a(),d("button",{key:L.path,class:"file-item",onClick:O=>F(L.path)},[v[10]||(v[10]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),e("polyline",{points:"14 2 14 8 20 8"})],-1)),e("span",null,r(L.path),1)],8,_l))),128))])])):C("",!0)],64))]))}})})),da=W((()=>{})),$t,va=W((()=>{gl(),gl(),da(),Y(),$t=le(wt,[["__scopeId","data-v-b749c7c4"]])})),ml,yl,wl,$l,bl,Cl,xl,Sl,bt,Ml=W((()=>{ee(),G(),ie(),J(),ml={class:"form-row"},yl={class:"hint"},wl={class:"form-row"},$l={class:"field-label"},bl={class:"form-row"},Cl={key:1,class:"folder-picker"},xl={key:0,class:"folder-info"},Sl={class:"modal-footer"},bt=Z({__name:"SkillImportModal",emits:["close","saved"],setup(g,{emit:w}){const y=w,{t:u}=X(),k=ae(),f=_(!0),p=_(!1),h=_("folder"),m=_([]),x=_([]),$=_(""),T=_(""),P=_(null),B=N(()=>h.value==="zip"?m.value.length>0:x.value.length>0);function A(){m.value=[],x.value=[],$.value=""}function b({file:V}){return(V.name?.toLowerCase()||"").endsWith(".zip")?!0:(k.warning(u("skills.importInvalidFile")),!1)}function U(){P.value?.click()}function z(V){const o=V.target.files;if(!o||o.length===0)return;const n=[];for(let i=0;i<o.length;i++)n.push(o[i]);x.value=n;const l=n[0].webkitRelativePath;$.value=l?l.split("/")[0]:""}async function F(){if(!B.value){k.warning(u("skills.importNoSelection"));return}let V=[];if(h.value==="zip")for(const o of m.value)o.file&&V.push(o.file);else V=x.value;if(V.length===0){k.error(u("skills.importFailed"));return}p.value=!0;try{const o=await ea(V,T.value.trim()||void 0);k.success(u("skills.importSuccess")+(o?.name?`: ${o.name}`:"")),k.info(u("skills.reloadHint"),{duration:6e3}),y("saved")}catch(o){k.error(u("skills.importFailed")+`: ${o.message}`)}finally{p.value=!1}}function E(){p.value||(f.value=!1,setTimeout(()=>y("close"),200))}return(V,o)=>(a(),H(t(gt),{show:f.value,"onUpdate:show":o[3]||(o[3]=n=>f.value=n),preset:"card",title:t(u)("skills.importTitle"),style:{width:"min(480px, calc(100vw - 32px))"},"mask-closable":!p.value,onAfterLeave:o[4]||(o[4]=n=>y("close"))},{footer:D(()=>[e("div",Sl,[I(t(q),{disabled:p.value,onClick:E},{default:D(()=>[R(r(t(u)("common.cancel")),1)]),_:1},8,["disabled"]),I(t(q),{type:"primary",loading:p.value,disabled:!B.value,onClick:F},{default:D(()=>[R(r(t(u)("common.confirm")),1)]),_:1},8,["loading","disabled"])])]),default:D(()=>[e("div",ml,[I(t(Vt),{value:h.value,"onUpdate:value":[o[0]||(o[0]=n=>h.value=n),A],size:"small",disabled:p.value},{default:D(()=>[I(t(ue),{value:"folder"},{default:D(()=>[R(r(t(u)("skills.importModeFolder")),1)]),_:1}),I(t(ue),{value:"zip"},{default:D(()=>[R(r(t(u)("skills.importModeZip")),1)]),_:1})]),_:1},8,["value","disabled"]),e("p",yl,r(h.value==="zip"?t(u)("skills.importHintZip"):t(u)("skills.importHintFolder")),1)]),e("div",wl,[e("label",$l,r(t(u)("skills.importTargetCategory")),1),I(t(re),{value:T.value,"onUpdate:value":o[1]||(o[1]=n=>T.value=n),size:"small",placeholder:t(u)("skills.importTargetCategoryPlaceholder"),disabled:p.value},null,8,["value","placeholder","disabled"])]),e("div",bl,[h.value==="zip"?(a(),H(t(Ut),{key:0,"file-list":m.value,"onUpdate:fileList":o[2]||(o[2]=n=>m.value=n),max:1,accept:".zip","default-upload":!1,disabled:p.value,onBeforeUpload:b},{default:D(()=>[I(t(q),{disabled:p.value},{default:D(()=>[R(r(t(u)("skills.importSelectFile")),1)]),_:1},8,["disabled"])]),_:1},8,["file-list","disabled"])):(a(),d("div",Cl,[e("input",{ref_key:"folderInputRef",ref:P,type:"file",webkitdirectory:"",multiple:"",style:{display:"none"},onChange:z},null,544),I(t(q),{disabled:p.value,onClick:U},{default:D(()=>[R(r(t(u)("skills.importSelectFolder")),1)]),_:1},8,["disabled"]),$.value?(a(),d("span",xl,r($.value)+" ("+r(x.value.length)+" "+r(t(u)("skills.importFileCount"))+") ",1)):C("",!0)]))])]),_:1},8,["show","title","mask-closable"]))}})})),ca=W((()=>{})),Ct,pa=W((()=>{Ml(),Ml(),ca(),Y(),Ct=le(bt,[["__scopeId","data-v-6cc6068d"]])})),Dl,Al,Fl,Ll,Pl,Bl,Rl,Tl,zl,xt,Il=W((()=>{ee(),G(),J(),ie(),Dl={class:"hint"},Al={key:0,class:"state-row"},Fl={key:1,class:"state-row empty"},Ll={key:2,class:"dir-list"},Pl={class:"dir-input-wrap"},Bl={key:0,class:"hint-tag broken"},Rl={key:1,class:"hint-tag broken"},Tl=["title","disabled","onClick"],zl={class:"modal-footer"},xt=Z({__name:"SkillExternalDirsModal",emits:["close","saved"],setup(g,{emit:w}){const y=w,{t:u}=X(),k=ae(),f=_(!0),p=_(!1),h=_(!0),m=_([]);function x(b){return b.exists?b.isDir?{raw:b.raw,hint:null}:{raw:b.raw,hint:"notdir"}:{raw:b.raw,hint:"missing"}}oe(async()=>{try{m.value=(await aa()).map(x)}catch(b){k.error(u("skills.externalDirs.loadFailed")+`: ${b.message}`)}finally{h.value=!1}});function $(){m.value.push({raw:"",hint:null})}function T(b){m.value.splice(b,1)}function P(b){m.value[b]&&(m.value[b].hint=null)}async function B(){const b=[],U=new Set;for(const z of m.value){const F=z.raw.trim();F&&(U.has(F)||(U.add(F),b.push(F)))}p.value=!0;try{await la(b),k.success(u("skills.externalDirs.saveSuccess")),y("saved")}catch(z){k.error(u("skills.externalDirs.saveFailed")+`: ${z.message}`)}finally{p.value=!1}}function A(){p.value||(f.value=!1,setTimeout(()=>y("close"),200))}return(b,U)=>(a(),H(t(gt),{show:f.value,"onUpdate:show":U[0]||(U[0]=z=>f.value=z),preset:"card",title:t(u)("skills.externalDirs.title"),style:{width:"min(560px, calc(100vw - 32px))"},"mask-closable":!p.value,onAfterLeave:U[1]||(U[1]=z=>y("close"))},{footer:D(()=>[e("div",zl,[I(t(q),{disabled:p.value,onClick:A},{default:D(()=>[R(r(t(u)("common.cancel")),1)]),_:1},8,["disabled"]),I(t(q),{type:"primary",loading:p.value,disabled:h.value,onClick:B},{default:D(()=>[R(r(t(u)("common.save")),1)]),_:1},8,["loading","disabled"])])]),default:D(()=>[e("p",Dl,r(t(u)("skills.externalDirs.hint")),1),h.value?(a(),d("div",Al,r(t(u)("common.loading")),1)):m.value.length===0?(a(),d("div",Fl,r(t(u)("skills.externalDirs.empty")),1)):(a(),d("ul",Ll,[(a(!0),d(Q,null,K(m.value,(z,F)=>(a(),d("li",{key:F,class:"dir-row"},[e("div",Pl,[I(t(re),{value:z.raw,"onUpdate:value":[E=>z.raw=E,E=>P(F)],size:"small",placeholder:t(u)("skills.externalDirs.placeholder"),disabled:p.value},null,8,["value","onUpdate:value","placeholder","disabled"]),z.hint==="missing"?(a(),d("span",Bl,r(t(u)("skills.externalDirs.missing")),1)):z.hint==="notdir"?(a(),d("span",Rl,r(t(u)("skills.externalDirs.notDir")),1)):C("",!0)]),e("button",{class:"row-remove",title:t(u)("skills.externalDirs.removeRow"),disabled:p.value,onClick:E=>T(F)},[...U[2]||(U[2]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,Tl)]))),128))])),I(t(q),{size:"small",disabled:p.value,onClick:$},{icon:D(()=>[...U[3]||(U[3]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:D(()=>[R(" "+r(t(u)("skills.externalDirs.add")),1)]),_:1},8,["disabled"])]),_:1},8,["show","title","mask-closable"]))}})})),fa=W((()=>{})),St,ka=W((()=>{Il(),Il(),fa(),Y(),St=le(xt,[["__scopeId","data-v-134aef16"]])}));async function Mt(){return se("/api/hermes/write-gate/pending")}async function ha(g,w){const y=await se(`/api/hermes/write-gate/pending/${encodeURIComponent(g)}/${encodeURIComponent(w)}/diff`);return y.review?y.review:{subsystem:g,targetLabel:g,language:g==="memory"?"json":"",current:"",proposed:y.diff||"",diff:y.diff||"",payloadText:g==="memory"?y.diff||"":void 0,notes:[]}}async function _a(g,w){return se(`/api/hermes/write-gate/pending/${encodeURIComponent(g)}/${encodeURIComponent(w)}/approve`,{method:"POST"})}async function ga(g,w){return se(`/api/hermes/write-gate/pending/${encodeURIComponent(g)}/${encodeURIComponent(w)}/reject`,{method:"POST"})}var Dt=W((()=>{Wt()})),Ul,Vl,Wl,El,jl,Hl,ql,Ol,Ql,Nl,Kl,Zl,At,Gl=W((()=>{ee(),G(),J(),Dt(),_t(),Ul={class:"write-approval-panel"},Vl={class:"write-approval-header"},Wl={key:0,class:"write-approval-state"},El={key:1,class:"write-approval-state"},jl={key:2,class:"write-approval-state"},Hl={key:3,class:"write-approval-list"},ql={class:"write-approval-main"},Ol={class:"write-approval-meta"},Ql={key:0},Nl={class:"write-approval-summary"},Kl={class:"write-approval-actions"},Zl={key:0,class:"write-approval-review"},At=Z({__name:"PendingWriteApprovals",emits:["count-change"],setup(g,{emit:w}){const y=kt(async()=>(await ht(async()=>{const{default:o}=await import("./MarkdownRenderer-CVtmHZwc.js");return{default:o}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]))).default),u=w,{t:k}=X(),f=ae(),p=_([]),h=_(!1),m=_(new Set),x=_(!1),$=_({}),T=_(!0),P=N(()=>p.value.length);function B(o){return`${o.subsystem}:${o.id}`}function A(o,n){let i=n||"";return i=i.replaceAll("```","```"),i&&!i.endsWith(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/js/MarkdownRenderer-BIPowjr-.js","assets/js/index-DN4SafrP.js","assets/css/index-IP31leuw.css","assets/js/highlight-C4yUBxwQ.js","assets/js/clipboard-DHZFaAvO.js","assets/js/download-xhRMWMda.js","assets/js/desktop-browser-C6AhY0uu.js","assets/js/file-preview-C417aixJ.js","assets/css/MarkdownRenderer-CT6BAAV2.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$i as D,$t as q,Bi as oe,Ci as It,Di as Z,Ei as kt,Fr as ht,Hi as a,Ir as _t,Lt as ue,M as G,N as Ut,Nr as J,Nt as Vt,Pr as X,Qr as Wt,Sa as r,Ti as I,U as de,Vi as Et,Wi as K,Zi as jt,_a as t,_i as e,_t as gt,an as Ht,bi as d,bt as qt,dn as Ot,dt as Qt,ea as Nt,ei as se,gi as N,gt as ae,lt as Kt,mi as Q,n as Y,pi as ne,si as ee,sn as re,t as le,ua as _,ui as Zt,vi as H,wa as W,wi as R,ya as j,yi as C,zt as Gt}from"./index-DN4SafrP.js";import{r as Jt,t as Xt}from"./profiles-BK5JKD7h.js";import{a as Yt,c as ea,d as la,i as ve,l as ie,m as ta,n as aa,p as ia,s as sa,t as na,u as oa}from"./skills-a5LPwmiT.js";var ce,pe,fe,ke,he,_e,ge,me,ye,we,$e,be,Ce,xe,Se,Me,De,Ae,Fe,Le,Pe,Be,Re,Te,ze,Ie,Ue,Ve,We,Ee,je,He,qe,Oe,Qe,Ne,mt,Ke=W((()=>{ee(),G(),ie(),J(),ce={class:"skill-list"},pe={key:0,class:"skill-empty"},fe=["title","onClick"],ke={class:"path-header-text"},he={class:"category-count"},_e={key:0,class:"path-group-body"},ge=["onClick"],me={class:"category-name"},ye={class:"category-count"},we={key:0,class:"category-skills"},$e=["onClick"],be={class:"skill-info"},Ce={class:"skill-name"},xe=["title"],Se=["title"],Me={key:0,class:"skill-desc"},De=["onClick"],Ae={class:"category-name"},Fe={class:"category-count"},Le={key:0,class:"category-skills"},Pe=["onClick"],Be={class:"skill-info"},Re={class:"skill-name"},Te=["title"],ze=["title"],Ie={key:0,class:"skill-desc"},Ue=["title","disabled","onClick"],Ve={key:3,class:"skill-category archive-section"},We={class:"category-name"},Ee={class:"category-count"},je={key:0,class:"category-skills"},He=["onClick"],qe={class:"skill-info"},Oe={class:"skill-name"},Qe=["title"],Ne={key:0,class:"skill-desc"},mt=Z({__name:"SkillList",props:{categories:{},archived:{},selectedSkill:{},searchQuery:{},sourceFilter:{},readonly:{type:Boolean}},emits:["select","deleted"],setup(g,{emit:w}){const{t:y}=X(),u=ae(),k=qt(),f=g,p=w,h=_(new Set),m=_(!0),x=_(new Set),$=_(new Set),T=N(()=>{let n=f.archived;if(f.sourceFilter&&f.sourceFilter!=="modified"&&(n=n.filter(l=>(l.source||"local")===f.sourceFilter)),f.searchQuery){const l=f.searchQuery.toLowerCase();n=n.filter(i=>i.name.toLowerCase().includes(l)||i.description.toLowerCase().includes(l))}return n}),P=N(()=>{let n=f.categories;if(f.sourceFilter&&(n=n.map(l=>({...l,skills:l.skills.filter(i=>f.sourceFilter==="modified"?i.modified:(i.source||"local")===f.sourceFilter)})).filter(l=>l.skills.length>0)),f.searchQuery){const l=f.searchQuery.toLowerCase();n=n.map(i=>({...i,skills:i.skills.filter(s=>s.name.toLowerCase().includes(l)||s.description.toLowerCase().includes(l))})).filter(i=>i.skills.length>0||i.name.toLowerCase().includes(l))}return n}),B=N(()=>{if(f.sourceFilter!=="external")return null;const n=new Map,l=[],i=new Map;for(const s of P.value)for(const v of s.skills){const L=v.sourcePath||"";n.has(L)||(n.set(L,new Map),l.push(L),i.set(L,[]));const O=n.get(L);O.has(s.name)||(O.set(s.name,[]),i.get(L).push(s.name)),O.get(s.name).push(v)}return l.map(s=>({path:s,categories:i.get(s).map(v=>({name:v,skills:n.get(s).get(v)}))}))}),A=_(new Set);function b(n){A.value.has(n)?A.value.delete(n):A.value.add(n)}function U(n){return n||"(unknown)"}function z(n){h.value.has(n)?h.value.delete(n):h.value.add(n)}function F(n,l){p("select",n,l)}function E(n,l){return`${n}/${l.name}`}async function V(n,l,i){if(!x.value.has(l)){x.value.add(l);try{await ta(l,i);const s=f.categories.find(v=>v.name===n)?.skills.find(v=>v.name===l);s&&(s.enabled=i)}catch(s){u.error(y("skills.toggleFailed")+`: ${s.message}`)}finally{x.value.delete(l)}}}function o(n,l){$.value.has(l)||k.warning({title:y("skills.delete"),content:y("skills.deleteConfirm",{name:l}),positiveText:y("common.delete"),negativeText:y("common.cancel"),onPositiveClick:async()=>{$.value.add(l);try{await na(n,l),u.success(y("skills.deleteSuccess")),u.info(y("skills.reloadHint"),{duration:6e3}),p("deleted",n,l)}catch(i){u.error(y("skills.deleteFailed")+`: ${i.message}`)}finally{$.value.delete(l)}}})}return(n,l)=>(a(),d("div",ce,[P.value.length===0?(a(),d("div",pe,r(g.searchQuery?t(y)("skills.noMatch"):t(y)("skills.noSkills")),1)):C("",!0),B.value?(a(!0),d(Q,{key:1},K(B.value,i=>(a(),d("div",{key:i.path||"__unknown__",class:"skill-path-group"},[e("button",{class:"path-header",title:i.path||"",onClick:s=>b(i.path)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:A.value.has(i.path)}])},[...l[3]||(l[3]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),l[4]||(l[4]=e("span",{class:"path-header-icon"},[e("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])],-1)),e("span",ke,r(U(i.path)),1),e("span",he,r(i.categories.reduce((s,v)=>s+v.skills.length,0)),1)],8,fe),A.value.has(i.path)?C("",!0):(a(),d("div",_e,[(a(!0),d(Q,null,K(i.categories,s=>(a(),d("div",{key:s.name,class:"skill-category"},[e("button",{class:"category-header sub",onClick:v=>z(i.path+"::"+s.name)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:h.value.has(i.path+"::"+s.name)}])},[...l[5]||(l[5]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),e("span",me,r(s.name),1),e("span",ye,r(s.skills.length),1)],8,ge),h.value.has(i.path+"::"+s.name)?C("",!0):(a(),d("div",we,[(a(!0),d(Q,null,K(s.skills,v=>(a(),d("button",{key:E(s.name,v),class:j(["skill-item",[{active:g.selectedSkill===E(s.name,v)},`source-${v.source||"local"}`]]),onClick:L=>F(s.name,v.name)},[e("div",be,[e("span",Ce,[e("span",{class:j(["source-dot",`dot-${v.source||"local"}`]),title:t(y)(`skills.source.${v.source||"local"}`)},null,10,xe),R(" "+r(v.name)+" ",1),v.modified?(a(),d("span",{key:0,class:"modified-badge",title:t(y)("skills.modified")},"✎",8,Se)):C("",!0)]),v.description?(a(),d("span",Me,r(v.description),1)):C("",!0)]),g.readonly?C("",!0):(a(),H(t(de),{key:0,size:"small",value:v.enabled!==!1,loading:x.value.has(v.name),"onUpdate:value":L=>V(s.name,v.name,L),onClick:l[0]||(l[0]=ne(()=>{},["stop"]))},null,8,["value","loading","onUpdate:value"]))],10,$e))),128))]))]))),128))]))]))),128)):(a(!0),d(Q,{key:2},K(P.value,i=>(a(),d("div",{key:i.name,class:"skill-category"},[e("button",{class:"category-header",onClick:s=>z(i.name)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:h.value.has(i.name)}])},[...l[6]||(l[6]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),e("span",Ae,r(i.name),1),e("span",Fe,r(i.skills.length),1)],8,De),h.value.has(i.name)?C("",!0):(a(),d("div",Le,[(a(!0),d(Q,null,K(i.skills,s=>(a(),d("button",{key:E(i.name,s),class:j(["skill-item",[{active:g.selectedSkill===E(i.name,s)},`source-${s.source||"local"}`]]),onClick:v=>F(i.name,s.name)},[e("div",Be,[e("span",Re,[e("span",{class:j(["source-dot",`dot-${s.source||"local"}`]),title:t(y)(`skills.source.${s.source||"local"}`)},null,10,Te),R(" "+r(s.name)+" ",1),s.modified?(a(),d("span",{key:0,class:"modified-badge",title:t(y)("skills.modified")},"✎",8,ze)):C("",!0)]),s.description?(a(),d("span",Ie,r(s.description),1)):C("",!0)]),!g.readonly&&(s.source??"local")==="local"?(a(),d("button",{key:0,class:"skill-action-btn",title:t(y)("skills.delete"),disabled:$.value.has(s.name),onClick:ne(v=>o(i.name,s.name),["stop"])},[...l[7]||(l[7]=[It('<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-4f8b98d6><polyline points="3 6 5 6 21 6" data-v-4f8b98d6></polyline><path d="M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6" data-v-4f8b98d6></path><path d="M10 11v6" data-v-4f8b98d6></path><path d="M14 11v6" data-v-4f8b98d6></path><path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2" data-v-4f8b98d6></path></svg>',1)])],8,Ue)):C("",!0),g.readonly?C("",!0):(a(),H(t(de),{key:1,size:"small",value:s.enabled!==!1,loading:x.value.has(s.name),"onUpdate:value":v=>V(i.name,s.name,v),onClick:l[1]||(l[1]=ne(()=>{},["stop"]))},null,8,["value","loading","onUpdate:value"]))],10,Pe))),128))]))]))),128)),T.value.length>0||g.archived.length>0?(a(),d("div",Ve,[e("button",{class:"category-header archive-header",onClick:l[2]||(l[2]=i=>m.value=!m.value)},[(a(),d("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:j(["category-arrow",{collapsed:m.value}])},[...l[8]||(l[8]=[e("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),e("span",We,r(t(y)("skills.archived")),1),e("span",Ee,r(g.archived.length),1)]),m.value?C("",!0):(a(),d("div",je,[(a(!0),d(Q,null,K(T.value,i=>(a(),d("button",{key:E(".archive",i),class:j(["skill-item skill-archived",{active:g.selectedSkill===E(".archive",i)}]),onClick:s=>F(".archive",i.name)},[e("div",qe,[e("span",Oe,[e("span",{class:j(["source-dot",`dot-${i.source||"local"}`]),title:t(y)(`skills.source.${i.source||"local"}`)},null,10,Qe),R(" "+r(i.name),1)]),i.description?(a(),d("span",Ne,r(i.description),1)):C("",!0)])],10,He))),128))]))])):C("",!0)]))}})})),ra=W((()=>{})),yt,ua=W((()=>{Ke(),Ke(),ra(),Y(),yt=le(mt,[["__scopeId","data-v-4f8b98d6"]])})),Ze,Ge,Je,Xe,Ye,el,ll,tl,al,il,sl,nl,ol,rl,ul,dl,vl,cl,pl,fl,kl,hl,_l,wt,gl=W((()=>{ee(),ie(),J(),G(),_t(),Ze={class:"skill-detail"},Ge={class:"detail-title"},Je={class:"detail-heading"},Xe={class:"detail-category"},Ye={class:"detail-name"},el={class:"usage-stats"},ll=["title"],tl=["disabled","title"],al=["disabled","title"],il=["disabled","title"],sl=["fill"],nl={key:4,class:"usage-stat",title:"Views"},ol={key:5,class:"usage-stat",title:"Uses"},rl={key:6,class:"usage-stat",title:"Patches"},ul={key:0,class:"detail-loading"},dl={key:0,class:"detail-breadcrumb"},vl={class:"breadcrumb-path"},cl={class:"detail-content"},pl=["aria-label"],fl={key:1,class:"detail-files"},kl={class:"files-header"},hl={class:"files-list"},_l=["onClick"],wt=Z({__name:"SkillDetail",props:{category:{},skill:{},skillName:{},patchCount:{},useCount:{},viewCount:{},pinned:{type:Boolean},target:{},readonly:{type:Boolean},canPin:{type:Boolean}},emits:["pinToggled","saved"],setup(g,{emit:w}){const y=kt(async()=>(await ht(async()=>{const{default:s}=await import("./MarkdownRenderer-BIPowjr-.js");return{default:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]))).default),{t:u}=X(),k=ae(),f=g,p=w,h=_(""),m=_(""),x=_([]),$=_(!1),T=_(""),P=_(null),B=_(!1),A=_(!1),b=_(!1),U=N(()=>m.value!==h.value);async function z(){$.value=!0,P.value=null,T.value="",x.value=[],h.value="",m.value="",A.value=!1;try{const s=`${f.category}/${f.skill}/SKILL.md`,[v,L]=await Promise.all([ve(s,f.target||"hermes"),Yt(f.category,f.skill,f.target||"hermes")]);h.value=v,m.value=v,x.value=L.filter(O=>!O.isDir&&O.path!=="SKILL.md")}catch(s){h.value=u("skills.loadFailed")+`: ${s.message}`,m.value=h.value}finally{$.value=!1}}async function F(s){B.value=!0,P.value=s;try{const v=`${f.category}/${f.skill}/`;let L=s;if(s.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(s)){const O=s.replace(/\\/g,"/").split(/(?:^|\/)(?:\.hermes|hermes)\/skills\//)[1];O&&(L=O.split("/").slice(2).join("/"))}T.value=await ve(`${v}${L}`,f.target||"hermes")}catch(v){T.value=u("skills.fileLoadFailed")+`: ${v.message}`}finally{B.value=!1}}function E(){P.value=null,T.value=""}function V(){m.value=h.value,A.value=!0}function o(){m.value=h.value,A.value=!1}async function n(){if(!(b.value||f.readonly)){b.value=!0;try{await ia(f.category,f.skill,m.value,f.target||"hermes"),h.value=m.value,A.value=!1,k.success(u("skills.saveSuccess")),k.info(u("skills.reloadHint"),{duration:6e3}),p("saved")}catch(s){k.error(u("skills.saveFailed")+`: ${s.message}`)}finally{b.value=!1}}}const l=_(!1);async function i(){if(!l.value){l.value=!0;try{const s=!f.pinned;await oa(f.skillName,s),p("pinToggled",f.skillName,s)}catch(s){k.error(u("skills.pinFailed")+`: ${s.message}`)}finally{l.value=!1}}}return jt(()=>`${f.target||"hermes"}/${f.category}/${f.skill}`,z,{immediate:!0}),(s,v)=>(a(),d("div",Ze,[e("div",Ge,[e("div",Je,[e("span",Xe,r(g.category),1),v[1]||(v[1]=e("span",{class:"detail-separator"},"/",-1)),e("span",Ye,r(g.skill),1)]),e("div",el,[!g.readonly&&!P.value&&!A.value?(a(),d("button",{key:0,class:"detail-action",title:t(u)("skills.edit"),onClick:V},[v[2]||(v[2]=e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M12 20h9"}),e("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})],-1)),e("span",null,r(t(u)("skills.edit")),1)],8,ll)):C("",!0),!g.readonly&&!P.value&&A.value?(a(),d("button",{key:1,class:"detail-action",disabled:b.value||!U.value,title:t(u)("common.save"),onClick:n},[v[3]||(v[3]=e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2Z"}),e("path",{d:"M17 21v-8H7v8"}),e("path",{d:"M7 3v5h8"})],-1)),e("span",null,r(b.value?t(u)("skills.saving"):t(u)("common.save")),1)],8,tl)):C("",!0),!g.readonly&&!P.value&&A.value?(a(),d("button",{key:2,class:"detail-action",disabled:b.value,title:t(u)("common.cancel"),onClick:o},[v[4]||(v[4]=e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M18 6 6 18"}),e("path",{d:"m6 6 12 12"})],-1)),e("span",null,r(t(u)("common.cancel")),1)],8,al)):C("",!0),g.canPin&&!g.readonly?(a(),d("button",{key:3,class:j(["pin-toggle",{active:g.pinned}]),disabled:l.value,title:g.pinned?t(u)("skills.unpin"):t(u)("skills.pin"),onClick:i},[(a(),d("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:g.pinned?"currentColor":"none",stroke:"currentColor","stroke-width":"2"},[...v[5]||(v[5]=[e("path",{d:"M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2l-2-2z"},null,-1)])],8,sl))],10,il)):C("",!0),g.viewCount!=null?(a(),d("span",nl,[v[6]||(v[6]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),e("circle",{cx:"12",cy:"12",r:"3"})],-1)),R(" "+r(g.viewCount),1)])):C("",!0),g.useCount!=null?(a(),d("span",ol,[v[7]||(v[7]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("polyline",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})],-1)),R(" "+r(g.useCount),1)])):C("",!0),g.patchCount!=null?(a(),d("span",rl,[v[8]||(v[8]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M12 20h9"}),e("path",{d:"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"})],-1)),R(" "+r(g.patchCount),1)])):C("",!0)])]),$.value&&!h.value?(a(),d("div",ul,r(t(u)("common.loading")),1)):(a(),d(Q,{key:1},[P.value?(a(),d("div",dl,[e("button",{class:"back-btn",onClick:E},[v[9]||(v[9]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("polyline",{points:"15 18 9 12 15 6"})],-1)),R(" "+r(t(u)("skills.backTo"))+" "+r(g.skill),1)]),e("span",vl,r(P.value),1)])):C("",!0),e("div",cl,[P.value?(a(),H(t(y),{key:0,content:T.value},null,8,["content"])):A.value?Nt((a(),d("textarea",{key:1,"onUpdate:modelValue":v[0]||(v[0]=L=>m.value=L),class:"skill-editor","aria-label":t(u)("skills.editorLabel"),spellcheck:"false"},null,8,pl)),[[Zt,m.value]]):(a(),H(t(y),{key:2,content:h.value},null,8,["content"]))]),!P.value&&x.value.length>0?(a(),d("div",fl,[e("div",kl,r(t(u)("skills.attachedFiles")),1),e("div",hl,[(a(!0),d(Q,null,K(x.value,L=>(a(),d("button",{key:L.path,class:"file-item",onClick:O=>F(L.path)},[v[10]||(v[10]=e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),e("polyline",{points:"14 2 14 8 20 8"})],-1)),e("span",null,r(L.path),1)],8,_l))),128))])])):C("",!0)],64))]))}})})),da=W((()=>{})),$t,va=W((()=>{gl(),gl(),da(),Y(),$t=le(wt,[["__scopeId","data-v-b749c7c4"]])})),ml,yl,wl,$l,bl,Cl,xl,Sl,bt,Ml=W((()=>{ee(),G(),ie(),J(),ml={class:"form-row"},yl={class:"hint"},wl={class:"form-row"},$l={class:"field-label"},bl={class:"form-row"},Cl={key:1,class:"folder-picker"},xl={key:0,class:"folder-info"},Sl={class:"modal-footer"},bt=Z({__name:"SkillImportModal",emits:["close","saved"],setup(g,{emit:w}){const y=w,{t:u}=X(),k=ae(),f=_(!0),p=_(!1),h=_("folder"),m=_([]),x=_([]),$=_(""),T=_(""),P=_(null),B=N(()=>h.value==="zip"?m.value.length>0:x.value.length>0);function A(){m.value=[],x.value=[],$.value=""}function b({file:V}){return(V.name?.toLowerCase()||"").endsWith(".zip")?!0:(k.warning(u("skills.importInvalidFile")),!1)}function U(){P.value?.click()}function z(V){const o=V.target.files;if(!o||o.length===0)return;const n=[];for(let i=0;i<o.length;i++)n.push(o[i]);x.value=n;const l=n[0].webkitRelativePath;$.value=l?l.split("/")[0]:""}async function F(){if(!B.value){k.warning(u("skills.importNoSelection"));return}let V=[];if(h.value==="zip")for(const o of m.value)o.file&&V.push(o.file);else V=x.value;if(V.length===0){k.error(u("skills.importFailed"));return}p.value=!0;try{const o=await ea(V,T.value.trim()||void 0);k.success(u("skills.importSuccess")+(o?.name?`: ${o.name}`:"")),k.info(u("skills.reloadHint"),{duration:6e3}),y("saved")}catch(o){k.error(u("skills.importFailed")+`: ${o.message}`)}finally{p.value=!1}}function E(){p.value||(f.value=!1,setTimeout(()=>y("close"),200))}return(V,o)=>(a(),H(t(gt),{show:f.value,"onUpdate:show":o[3]||(o[3]=n=>f.value=n),preset:"card",title:t(u)("skills.importTitle"),style:{width:"min(480px, calc(100vw - 32px))"},"mask-closable":!p.value,onAfterLeave:o[4]||(o[4]=n=>y("close"))},{footer:D(()=>[e("div",Sl,[I(t(q),{disabled:p.value,onClick:E},{default:D(()=>[R(r(t(u)("common.cancel")),1)]),_:1},8,["disabled"]),I(t(q),{type:"primary",loading:p.value,disabled:!B.value,onClick:F},{default:D(()=>[R(r(t(u)("common.confirm")),1)]),_:1},8,["loading","disabled"])])]),default:D(()=>[e("div",ml,[I(t(Vt),{value:h.value,"onUpdate:value":[o[0]||(o[0]=n=>h.value=n),A],size:"small",disabled:p.value},{default:D(()=>[I(t(ue),{value:"folder"},{default:D(()=>[R(r(t(u)("skills.importModeFolder")),1)]),_:1}),I(t(ue),{value:"zip"},{default:D(()=>[R(r(t(u)("skills.importModeZip")),1)]),_:1})]),_:1},8,["value","disabled"]),e("p",yl,r(h.value==="zip"?t(u)("skills.importHintZip"):t(u)("skills.importHintFolder")),1)]),e("div",wl,[e("label",$l,r(t(u)("skills.importTargetCategory")),1),I(t(re),{value:T.value,"onUpdate:value":o[1]||(o[1]=n=>T.value=n),size:"small",placeholder:t(u)("skills.importTargetCategoryPlaceholder"),disabled:p.value},null,8,["value","placeholder","disabled"])]),e("div",bl,[h.value==="zip"?(a(),H(t(Ut),{key:0,"file-list":m.value,"onUpdate:fileList":o[2]||(o[2]=n=>m.value=n),max:1,accept:".zip","default-upload":!1,disabled:p.value,onBeforeUpload:b},{default:D(()=>[I(t(q),{disabled:p.value},{default:D(()=>[R(r(t(u)("skills.importSelectFile")),1)]),_:1},8,["disabled"])]),_:1},8,["file-list","disabled"])):(a(),d("div",Cl,[e("input",{ref_key:"folderInputRef",ref:P,type:"file",webkitdirectory:"",multiple:"",style:{display:"none"},onChange:z},null,544),I(t(q),{disabled:p.value,onClick:U},{default:D(()=>[R(r(t(u)("skills.importSelectFolder")),1)]),_:1},8,["disabled"]),$.value?(a(),d("span",xl,r($.value)+" ("+r(x.value.length)+" "+r(t(u)("skills.importFileCount"))+") ",1)):C("",!0)]))])]),_:1},8,["show","title","mask-closable"]))}})})),ca=W((()=>{})),Ct,pa=W((()=>{Ml(),Ml(),ca(),Y(),Ct=le(bt,[["__scopeId","data-v-6cc6068d"]])})),Dl,Al,Fl,Ll,Pl,Bl,Rl,Tl,zl,xt,Il=W((()=>{ee(),G(),J(),ie(),Dl={class:"hint"},Al={key:0,class:"state-row"},Fl={key:1,class:"state-row empty"},Ll={key:2,class:"dir-list"},Pl={class:"dir-input-wrap"},Bl={key:0,class:"hint-tag broken"},Rl={key:1,class:"hint-tag broken"},Tl=["title","disabled","onClick"],zl={class:"modal-footer"},xt=Z({__name:"SkillExternalDirsModal",emits:["close","saved"],setup(g,{emit:w}){const y=w,{t:u}=X(),k=ae(),f=_(!0),p=_(!1),h=_(!0),m=_([]);function x(b){return b.exists?b.isDir?{raw:b.raw,hint:null}:{raw:b.raw,hint:"notdir"}:{raw:b.raw,hint:"missing"}}oe(async()=>{try{m.value=(await aa()).map(x)}catch(b){k.error(u("skills.externalDirs.loadFailed")+`: ${b.message}`)}finally{h.value=!1}});function $(){m.value.push({raw:"",hint:null})}function T(b){m.value.splice(b,1)}function P(b){m.value[b]&&(m.value[b].hint=null)}async function B(){const b=[],U=new Set;for(const z of m.value){const F=z.raw.trim();F&&(U.has(F)||(U.add(F),b.push(F)))}p.value=!0;try{await la(b),k.success(u("skills.externalDirs.saveSuccess")),y("saved")}catch(z){k.error(u("skills.externalDirs.saveFailed")+`: ${z.message}`)}finally{p.value=!1}}function A(){p.value||(f.value=!1,setTimeout(()=>y("close"),200))}return(b,U)=>(a(),H(t(gt),{show:f.value,"onUpdate:show":U[0]||(U[0]=z=>f.value=z),preset:"card",title:t(u)("skills.externalDirs.title"),style:{width:"min(560px, calc(100vw - 32px))"},"mask-closable":!p.value,onAfterLeave:U[1]||(U[1]=z=>y("close"))},{footer:D(()=>[e("div",zl,[I(t(q),{disabled:p.value,onClick:A},{default:D(()=>[R(r(t(u)("common.cancel")),1)]),_:1},8,["disabled"]),I(t(q),{type:"primary",loading:p.value,disabled:h.value,onClick:B},{default:D(()=>[R(r(t(u)("common.save")),1)]),_:1},8,["loading","disabled"])])]),default:D(()=>[e("p",Dl,r(t(u)("skills.externalDirs.hint")),1),h.value?(a(),d("div",Al,r(t(u)("common.loading")),1)):m.value.length===0?(a(),d("div",Fl,r(t(u)("skills.externalDirs.empty")),1)):(a(),d("ul",Ll,[(a(!0),d(Q,null,K(m.value,(z,F)=>(a(),d("li",{key:F,class:"dir-row"},[e("div",Pl,[I(t(re),{value:z.raw,"onUpdate:value":[E=>z.raw=E,E=>P(F)],size:"small",placeholder:t(u)("skills.externalDirs.placeholder"),disabled:p.value},null,8,["value","onUpdate:value","placeholder","disabled"]),z.hint==="missing"?(a(),d("span",Bl,r(t(u)("skills.externalDirs.missing")),1)):z.hint==="notdir"?(a(),d("span",Rl,r(t(u)("skills.externalDirs.notDir")),1)):C("",!0)]),e("button",{class:"row-remove",title:t(u)("skills.externalDirs.removeRow"),disabled:p.value,onClick:E=>T(F)},[...U[2]||(U[2]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,Tl)]))),128))])),I(t(q),{size:"small",disabled:p.value,onClick:$},{icon:D(()=>[...U[3]||(U[3]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:D(()=>[R(" "+r(t(u)("skills.externalDirs.add")),1)]),_:1},8,["disabled"])]),_:1},8,["show","title","mask-closable"]))}})})),fa=W((()=>{})),St,ka=W((()=>{Il(),Il(),fa(),Y(),St=le(xt,[["__scopeId","data-v-134aef16"]])}));async function Mt(){return se("/api/hermes/write-gate/pending")}async function ha(g,w){const y=await se(`/api/hermes/write-gate/pending/${encodeURIComponent(g)}/${encodeURIComponent(w)}/diff`);return y.review?y.review:{subsystem:g,targetLabel:g,language:g==="memory"?"json":"",current:"",proposed:y.diff||"",diff:y.diff||"",payloadText:g==="memory"?y.diff||"":void 0,notes:[]}}async function _a(g,w){return se(`/api/hermes/write-gate/pending/${encodeURIComponent(g)}/${encodeURIComponent(w)}/approve`,{method:"POST"})}async function ga(g,w){return se(`/api/hermes/write-gate/pending/${encodeURIComponent(g)}/${encodeURIComponent(w)}/reject`,{method:"POST"})}var Dt=W((()=>{Wt()})),Ul,Vl,Wl,El,jl,Hl,ql,Ol,Ql,Nl,Kl,Zl,At,Gl=W((()=>{ee(),G(),J(),Dt(),_t(),Ul={class:"write-approval-panel"},Vl={class:"write-approval-header"},Wl={key:0,class:"write-approval-state"},El={key:1,class:"write-approval-state"},jl={key:2,class:"write-approval-state"},Hl={key:3,class:"write-approval-list"},ql={class:"write-approval-main"},Ol={class:"write-approval-meta"},Ql={key:0},Nl={class:"write-approval-summary"},Kl={class:"write-approval-actions"},Zl={key:0,class:"write-approval-review"},At=Z({__name:"PendingWriteApprovals",emits:["count-change"],setup(g,{emit:w}){const y=kt(async()=>(await ht(async()=>{const{default:o}=await import("./MarkdownRenderer-BIPowjr-.js");return{default:o}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]))).default),u=w,{t:k}=X(),f=ae(),p=_([]),h=_(!1),m=_(new Set),x=_(!1),$=_({}),T=_(!0),P=N(()=>p.value.length);function B(o){return`${o.subsystem}:${o.id}`}function A(o,n){let i=n||"";return i=i.replaceAll("```","```"),i&&!i.endsWith(`
|
|
3
3
|
`)&&(i+=`
|
|
4
4
|
`),`\`\`\`${o||""}
|
|
5
5
|
${i}\`\`\``}function b(o){const n=[];for(const l of o.notes||[])l.type==="patchOldStringMissing"?n.push(k("skills.writeApprovalPatchOldStringMissing",{file:l.targetLabel||o.targetLabel})):l.type==="currentReadFailed"?n.push(k("skills.writeApprovalCurrentReadFailed",{file:l.targetLabel||o.targetLabel})):l.type==="deleteSkill"?n.push(k("skills.writeApprovalDeleteSkill",{skill:l.skillName||"-"})):l.type==="removeFile"&&n.push(k("skills.writeApprovalRemoveFile",{file:l.targetLabel||o.targetLabel,skill:l.skillName||"-"}));return o.requestedOldString&&n.push([k("skills.writeApprovalRequestedOldString"),A(o.language||"text",o.requestedOldString)].join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$i as h,$t as C,Bi as O,Di as Z,G as I,Hi as f,M as K,Nr as Q,Pr as J,Ri as Y,Sa as m,Ti as M,Tt as ee,Wi as te,Zi as ae,Zt as se,_a as c,_i as T,bi as y,gi as x,ln as re,mi as le,n as ie,si as ne,t as oe,ua as w,vi as g,wa as S,wi as b,yi as ue}from"./index-
|
|
1
|
+
import{$i as h,$t as C,Bi as O,Di as Z,G as I,Hi as f,M as K,Nr as Q,Pr as J,Ri as Y,Sa as m,Ti as M,Tt as ee,Wi as te,Zi as ae,Zt as se,_a as c,_i as T,bi as y,gi as x,ln as re,mi as le,n as ie,si as ne,t as oe,ua as w,vi as g,wa as S,wi as b,yi as ue}from"./index-DN4SafrP.js";function _e(u){const v=u.slice(0,8e3),r=new Map([[",",0],[" ",0],[";",0]]);let n=!1;for(let t=0;t<v.length;t+=1){const a=v[t];if(a==='"'){n&&v[t+1]==='"'?t+=1:n=!n;continue}if(!n&&(a===`
|
|
2
2
|
`||a==="\r"))break;!n&&r.has(a)&&r.set(a,(r.get(a)||0)+1)}return[...r.entries()].sort((t,a)=>a[1]-t[1])[0]?.[0]||","}function ce(u){const v=_e(u),r=[];let n=[],t="",a=!1,o=!1,d=0;const p=()=>{n.length>=100||d>=2e4?o=!0:(n.push(t.length>1e4?`${t.slice(0,D)}…`:t),t.length>1e4&&(o=!0),d+=1),t=""},k=()=>{p(),r.length<1e3?r.push(n):o=!0,n=[]};for(let _=0;_<u.length;_+=1){if(r.length>=1e3||d>=2e4){o=!0;break}const i=u[_];i==='"'?a&&u[_+1]==='"'?(t.length<1e4?t+='"':o=!0,_+=1):a=!a:!a&&i===v?p():!a&&(i===`
|
|
3
3
|
`||i==="\r")?(i==="\r"&&u[_+1]===`
|
|
4
4
|
`&&(_+=1),k()):t.length<1e4?t+=i:o=!0}return(t||n.length)&&k(),{rows:r,truncated:o}}var de,fe,ve,D,pe=S((()=>{de=1e3,fe=100,ve=2e4,D=1e4})),N,F,P,$,R,U,W=S((()=>{ne(),K(),Q(),pe(),N={class:"spreadsheet-preview"},F={class:"spreadsheet-toolbar"},P={key:1,class:"sheet-tabs"},$={class:"sheet-tabs-label"},R={key:1,class:"source-view"},U=Z({__name:"SpreadsheetFilePreview",props:{kind:{},data:{},source:{}},emits:["error"],setup(u,{emit:v}){const r=u,n=v,{t}=J(),a=w("table"),o=w(!1),d=w([]),p=w(!1),k=w([]),_=w("");let i=null;function V(l){let s="";for(let e=l+1;e>0;e=Math.floor((e-1)/26))s=String.fromCharCode(65+(e-1)%26)+s;return s}const X=x(()=>d.value.reduce((l,s)=>Math.max(l,s.length),0)),A=x(()=>[{title:"#",key:"__row",width:64,fixed:"left"},...Array.from({length:X.value},(l,s)=>({title:V(s),key:`c${s}`,width:160,ellipsis:{tooltip:!0}}))]),z=x(()=>d.value.map((l,s)=>{const e={__row:s+1,__key:s};return l.forEach((E,H)=>{e[`c${H}`]=E}),e}));function B(){i?.terminate(),i=null}function G(){const l=ce(r.source||"");d.value=l.rows,p.value=l.truncated}function j(){if(B(),!r.data)return;o.value=!0,i=new Worker(new URL("/assets/xlsx-preview.worker-BL8aUnUl.js",""+import.meta.url),{type:"module"}),i.onmessage=s=>{const e=s.data||{};if(e.type==="error"){o.value=!1,n("error",new Error(String(e.error||"Workbook parsing failed")));return}e.sheetNames&&(k.value=e.sheetNames),_.value=String(e.activeSheet||""),d.value=Array.isArray(e.rows)?e.rows:[],p.value=e.truncated===!0,o.value=!1},i.onerror=s=>{o.value=!1,n("error",new Error(s.message||"Workbook worker failed"))};const l=r.data.slice(0);i.postMessage({type:"open",data:l},[l])}function q(l){!i||l===_.value||(o.value=!0,i.postMessage({type:"sheet",sheet:l}))}function L(){r.kind==="csv"?G():j()}return ae(()=>[r.kind,r.data,r.source],L),O(L),Y(B),(l,s)=>(f(),y("div",N,[T("div",F,[u.kind==="csv"?(f(),g(c(se),{key:0,size:"small"},{default:h(()=>[M(c(C),{type:a.value==="table"?"primary":"default",onClick:s[0]||(s[0]=e=>a.value="table")},{default:h(()=>[b(m(c(t)("files.tableMode")),1)]),_:1},8,["type"]),M(c(C),{type:a.value==="source"?"primary":"default",onClick:s[1]||(s[1]=e=>a.value="source")},{default:h(()=>[b(m(c(t)("files.sourceMode")),1)]),_:1},8,["type"])]),_:1})):(f(),y("div",P,[T("span",$,m(c(t)("files.worksheet"))+":",1),(f(!0),y(le,null,te(k.value,e=>(f(),g(c(C),{key:e,size:"small",type:e===_.value?"primary":"default",onClick:E=>q(e)},{default:h(()=>[b(m(e),1)]),_:2},1032,["type","onClick"]))),128))]))]),p.value?(f(),g(c(re),{key:0,type:"warning","show-icon":!1},{default:h(()=>[b(m(c(t)("files.tableTruncated")),1)]),_:1})):ue("",!0),u.kind==="csv"&&a.value==="source"?(f(),y("pre",R,m(u.source),1)):(f(),g(c(I),{key:2,show:o.value,class:"table-stage"},{default:h(()=>[M(c(ee),{columns:A.value,data:z.value,"row-key":e=>e.__key,"max-height":560,"scroll-x":Math.max(720,A.value.length*160),"virtual-scroll":"",size:"small",striped:""},null,8,["columns","data","row-key","scroll-x"])]),_:1},8,["show"]))]))}})})),he=S((()=>{})),me,we=S((()=>{W(),W(),he(),ie(),me=oe(U,[["__scopeId","data-v-f85c4e24"]])}));we();export{me as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{$ as xe,$i as s,$t as Me,Di as Ae,Hi as S,Kr as Be,M as Ee,Nr as Ie,Pr as Ne,Qr as $e,Sa as f,Ta as Oe,Ti as x,Vi as Pe,Wi as Re,Zi as Le,_a as r,_i as i,bi as M,gi as R,gt as We,jt as L,mi as De,n as ze,pi as Ue,qr as Ye,si as He,t as Ge,ua as b,wa as z,wi as A,xa as Ve,ya as Fe,yi as Ke}from"./index-
|
|
1
|
+
import{$ as xe,$i as s,$t as Me,Di as Ae,Hi as S,Kr as Be,M as Ee,Nr as Ie,Pr as Ne,Qr as $e,Sa as f,Ta as Oe,Ti as x,Vi as Pe,Wi as Re,Zi as Le,_a as r,_i as i,bi as M,gi as R,gt as We,jt as L,mi as De,n as ze,pi as Ue,qr as Ye,si as He,t as Ge,ua as b,wa as z,wi as A,xa as Ve,ya as Fe,yi as Ke}from"./index-DN4SafrP.js";import{a as je,i as Je,n as Xe,o as Ze,r as qe,s as Qe,t as et}from"./xterm-Djy4rCx0.js";var j,J,X,Z,q,Q,ee,te,ae,ne,ie,W,re,D,le,oe,ce,se=z((()=>{He(),Qe(),Je(),qe(),et(),$e(),Ee(),Ie(),j={class:"terminal-panel-drawer"},J=["aria-label"],X=["aria-label"],Z={class:"terminal-session-list"},q=["aria-label","aria-pressed","onClick"],Q=["title","aria-label"],ee=["aria-label"],te={class:"terminal-main"},ae={class:"terminal-container"},ne={key:0,class:"terminal-state terminal-state-error"},ie={key:1,class:"terminal-state"},W="hermes_terminal_theme",re=3,D=18,le=128,oe=8,ce=Ae({__name:"TerminalPanel",props:{visible:{type:Boolean},initialCommand:{}},setup(de){const{t:l}=Ne(),fe=We(),U=de,_={default:{label:"Default",theme:{background:"#1a1a2e",foreground:"#e0e0e0",cursor:"#4cc9f0",cursorAccent:"#1a1a2e",selectionBackground:"rgba(76, 201, 240, 0.3)",black:"#000000",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#abb2bf",brightBlack:"#5c6370",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"}},"solarized-dark":{label:"Solarized Dark",theme:{background:"#002b36",foreground:"#839496",cursor:"#93a1a1",cursorAccent:"#002b36",selectionBackground:"rgba(147, 161, 161, 0.3)",black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#eee8d5",brightBlack:"#002b36",brightRed:"#cb4b16",brightGreen:"#586e75",brightYellow:"#657b83",brightBlue:"#839496",brightMagenta:"#6c71c4",brightCyan:"#93a1a1",brightWhite:"#fdf6e3"}},"tokyo-night":{label:"Tokyo Night",theme:{background:"#1a1b26",foreground:"#a9b1d6",cursor:"#c0caf5",cursorAccent:"#1a1b26",selectionBackground:"rgba(192, 202, 245, 0.2)",black:"#15161e",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightRed:"#f7768e",brightGreen:"#9ece6a",brightYellow:"#e0af68",brightBlue:"#7aa2f7",brightMagenta:"#bb9af7",brightCyan:"#7dcfff",brightWhite:"#c0caf5"}},"github-dark":{label:"GitHub Dark",theme:{background:"#0d1117",foreground:"#c9d1d9",cursor:"#58a6ff",cursorAccent:"#0d1117",selectionBackground:"rgba(88, 166, 255, 0.25)",black:"#484f58",red:"#ff7b72",green:"#7ee787",yellow:"#ffa657",blue:"#79c0ff",magenta:"#d2a8ff",cyan:"#a5d6ff",white:"#c9d1d9",brightBlack:"#6e7681",brightRed:"#ffa198",brightGreen:"#56d364",brightYellow:"#e3b341",brightBlue:"#58a6ff",brightMagenta:"#bc8cff",brightCyan:"#79c0ff",brightWhite:"#f0f6fc"}}},g=b(null),c=b([]),u=b(null),y=b(localStorage.getItem(W)||"default"),m=b(null),k=b(!1);let n=null;const d=new Map;let o=null,T=null,E=null,I=0,v=null,p=0;const Y=b(!1),B=new Set,me=R(()=>_[y.value]?.theme.background??"#1a1a2e"),N=R(()=>_[y.value]?.label??_.default.label),he=R(()=>N.value.charAt(0).toUpperCase());function be(){const e=Be(),t=Ye(),a=t?t.startsWith("https")?"wss:":"ws:":location.protocol==="https:"?"wss:":"ws:";return t?`${a}//${new URL(t).host}/api/hermes/terminal${e?`?token=${encodeURIComponent(e)}`:""}`:`${a}//${location.host}/api/hermes/terminal${e?`?token=${encodeURIComponent(e)}`:""}`}function $(){if(I>=re){m.value=l("terminal.connectionFailed"),k.value=!1;return}const e=be();m.value=null,k.value=!0,I++,n=new WebSocket(e),n.onopen=()=>{k.value=!1,m.value=null},n.onmessage=t=>{const a=typeof t.data=="string"?t.data:"";if(a.charCodeAt(0)===123)try{_e(JSON.parse(a))}catch{}else o?.write(a)},n.onclose=t=>{if(k.value=!1,t.code===1e3||t.code===1003||t.code===1008){m.value=l("terminal.connectionClosed");return}setTimeout($,3e3)},n.onerror=t=>{console.error("[Terminal] WebSocket error:",t),m.value=l("terminal.connectionError")}}function w(e){!n||n.readyState!==WebSocket.OPEN||n.send(typeof e=="string"?e:JSON.stringify(e))}function _e(e){switch(e.type){case"created":I=0,c.value.push({id:e.id,shell:e.shell,pid:e.pid,title:`${e.shell} #${c.value.length+1}`,createdAt:Date.now(),exited:!1}),O(e.id),ge();break;case"exited":{const t=c.value.find(a=>a.id===e.id);t&&(t.exited=!0,u.value===e.id&&o?.write(`\r
|
|
2
2
|
\x1B[90m[${l("terminal.processExited",{code:e.exitCode})}]\x1B[0m\r
|
|
3
3
|
`));break}case"error":fe.error(e.message);break}}function H(){w({type:"create"})}function ge(){const e=U.initialCommand?.trim();!e||Y.value||(Y.value=!0,G(`${e}\r`,0,100))}function G(e,t,a){const h=setTimeout(()=>{if(B.delete(h),!n||n.readyState!==WebSocket.OPEN)return;const C=Math.min(t+le,e.length);w({type:"input",data:e.slice(t,C)}),C<e.length&&G(e,C,oe)},a);B.add(h)}function ve(e){let t=d.get(e);if(!t){const a=new Ze({cursorBlink:!0,fontSize:14,fontFamily:'Menlo, Monaco, "Courier New", monospace',theme:{..._[y.value].theme}}),h=new je;a.loadAddon(h),a.loadAddon(new Xe),a.onData(C=>{n?.readyState===WebSocket.OPEN&&n.send(C)}),t={term:a,fitAddon:h,opened:!1},d.set(e,t)}return t}function O(e){if(u.value===e)return;u.value=e;const t=ve(e);o=t.term,T=t.fitAddon,ye(),w({type:"switch",sessionId:e})}function pe(e){w({type:"close",sessionId:e}),c.value=c.value.filter(a=>a.id!==e);const t=d.get(e);if(t&&(t.term.dispose(),d.delete(e)),u.value===e){const a=c.value[0]?.id??null;u.value=null,o=null,T=null,a?O(a):(V(),H())}}function ye(){if(!g.value)return;const e=g.value;for(;e.firstChild;)e.removeChild(e.firstChild);const t=d.get(u.value);if(t){if(!t.opened)t.term.open(e),t.opened=!0;else{const a=t.term.element;a&&e.appendChild(a)}E?.disconnect(),E=new ResizeObserver(()=>{P(),ke()}),E.observe(g.value),setTimeout(()=>P(),50),setTimeout(()=>P(),200)}}function V(){if(!g.value)return;const e=g.value;for(;e.firstChild;)e.removeChild(e.firstChild)}function P(){if(T)try{T.fit()}catch{}}function ke(){if(!(!o||!n||n.readyState!==WebSocket.OPEN))try{w({type:"resize",cols:o.cols,rows:o.rows})}catch{}}function Te(e){if(e.touches.length!==1){v=null,p=0;return}v=e.touches[0].clientY,p=0}function we(e){if(!o||e.touches.length!==1||v===null)return;const t=e.touches[0].clientY;p+=v-t,v=t;const a=Math.trunc(p/D);a!==0&&(o.scrollLines(a),p-=a*D,e.preventDefault())}function F(){v=null,p=0}function Ce(e){y.value=e,localStorage.setItem(W,e);const t=_[e]?.theme;if(t)for(const a of d.values())a.term.options.theme={...t}}function Se(){const e=Object.keys(_);Ce(e[(e.indexOf(y.value)+1+e.length)%e.length])}let K=!1;return Le(()=>U.visible,e=>{e&&!K&&!n&&(K=!0,$())},{immediate:!0}),Pe(()=>{for(const e of B)clearTimeout(e);B.clear(),V();for(const e of d.values())e.term.dispose();d.clear(),o=null,T=null,n?.close(),n=null}),(e,t)=>(S(),M("div",j,[i("aside",{class:"terminal-session-rail","aria-label":r(l)("terminal.sessions")},[x(r(L),{trigger:"hover",placement:"right"},{trigger:s(()=>[i("button",{class:"terminal-rail-button terminal-theme-button",type:"button","aria-label":N.value,onClick:Se},f(he.value),9,X)]),default:s(()=>[A(" "+f(N.value),1)]),_:1}),i("div",Z,[(S(!0),M(De,null,Re(c.value,a=>(S(),M("div",{key:a.id,class:Fe(["terminal-session-slot",{active:a.id===u.value,exited:a.exited}])},[x(r(L),{trigger:"hover",placement:"right"},{trigger:s(()=>[i("button",{class:"terminal-session-button",type:"button","aria-label":a.title,"aria-pressed":a.id===u.value,onClick:h=>O(a.id)},[...t[1]||(t[1]=[i("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[i("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),i("path",{d:"m7 9 3 3-3 3M13 15h4"})],-1)])],8,q)]),default:s(()=>[A(" "+f(a.title),1)]),_:2},1024),x(r(xe),{onPositiveClick:h=>pe(a.id)},{trigger:s(()=>[i("button",{class:"terminal-session-delete",type:"button",title:r(l)("terminal.closeSession"),"aria-label":`${r(l)("terminal.closeSession")}: ${a.title}`,onClick:t[0]||(t[0]=Ue(()=>{},["stop"]))},[...t[2]||(t[2]=[i("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[i("path",{d:"m7 7 10 10M17 7 7 17"})],-1)])],8,Q)]),default:s(()=>[A(" "+f(r(l)("terminal.closeSession")),1)]),_:2},1032,["onPositiveClick"])],2))),128))]),x(r(L),{trigger:"hover",placement:"right"},{trigger:s(()=>[i("button",{class:"terminal-rail-button terminal-add-button",type:"button","aria-label":r(l)("terminal.newTab"),onClick:H},[...t[3]||(t[3]=[i("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[i("path",{d:"M12 5v14M5 12h14"})],-1)])],8,ee)]),default:s(()=>[A(" "+f(r(l)("terminal.newTab")),1)]),_:1})],8,J),i("div",te,[i("div",ae,[m.value?(S(),M("div",ne,[i("span",null,f(m.value),1),x(r(Me),{size:"tiny",onClick:$},{default:s(()=>[A(f(r(l)("common.retry")),1)]),_:1})])):c.value.length===0?(S(),M("div",ie,f(k.value?r(l)("common.loading"):r(l)("terminal.noSessions")),1)):Ke("",!0),i("div",{ref_key:"terminalRef",ref:g,class:"terminal-xterm",style:Ve({backgroundColor:me.value}),onTouchstart:Te,onTouchmove:we,onTouchend:F,onTouchcancel:F},null,36)])])]))}})})),tt=z((()=>{})),ft=Oe({default:()=>ue}),ue,mt=z((()=>{se(),se(),tt(),ze(),ue=Ge(ce,[["__scopeId","data-v-b5f67b79"]])}));export{ft as n,mt as r,ue as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{$ as xe,$i as h,$t as $,Bi as Te,Di as Me,Hi as f,Kr as Se,M as Ae,Nr as Re,Pr as We,Qr as Ye,Sa as d,Ti as w,Vi as Ge,Wi as $e,_a as n,_i as i,bi as b,gi as E,gt as Ee,jt as Le,mi as ze,n as Oe,pi as Ne,qr as Ve,si as De,t as Ie,ua as p,vi as Pe,wa as S,wi as L,xa as Ue,ya as z,yi as B,zt as He}from"./index-
|
|
1
|
+
import{$ as xe,$i as h,$t as $,Bi as Te,Di as Me,Hi as f,Kr as Se,M as Ae,Nr as Re,Pr as We,Qr as Ye,Sa as d,Ti as w,Vi as Ge,Wi as $e,_a as n,_i as i,bi as b,gi as E,gt as Ee,jt as Le,mi as ze,n as Oe,pi as Ne,qr as Ve,si as De,t as Ie,ua as p,vi as Pe,wa as S,wi as L,xa as Ue,ya as z,yi as B,zt as He}from"./index-DN4SafrP.js";import{a as je,i as Fe,n as qe,o as Ke,r as Je,s as Qe,t as Xe}from"./xterm-Djy4rCx0.js";var U,H,j,F,q,K,J,Q,X,Z,ee,te,ae,ie,re,ne,le,oe,ce,O,N,fe,se=S((()=>{De(),Qe(),Fe(),Je(),Xe(),Ye(),Ae(),Re(),U={class:"terminal-panel"},H={class:"session-list-header"},j={key:0,class:"session-list-title"},F={class:"session-list-actions"},q={key:0,class:"session-items"},K={key:0,class:"session-empty"},J=["onClick"],Q={class:"session-item-content"},X={class:"session-item-title"},Z={class:"session-item-meta"},ee={class:"session-item-shell"},te={key:0,class:"session-item-status"},ae={key:1,class:"session-item-time"},ie={class:"terminal-main"},re={class:"terminal-header"},ne={class:"header-left"},le={key:0,class:"header-session-title"},oe={class:"header-actions"},ce={class:"terminal-container"},O="hermes_terminal_theme",N=18,fe=Me({__name:"TerminalView",setup(it){const{t:g}=We(),de=Ee(),C={default:{label:"Default",theme:{background:"#1a1a2e",foreground:"#e0e0e0",cursor:"#4cc9f0",cursorAccent:"#1a1a2e",selectionBackground:"rgba(76, 201, 240, 0.3)",black:"#000000",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#abb2bf",brightBlack:"#5c6370",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"}},"solarized-dark":{label:"Solarized Dark",theme:{background:"#002b36",foreground:"#839496",cursor:"#93a1a1",cursorAccent:"#002b36",selectionBackground:"rgba(147, 161, 161, 0.3)",black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#eee8d5",brightBlack:"#002b36",brightRed:"#cb4b16",brightGreen:"#586e75",brightYellow:"#657b83",brightBlue:"#839496",brightMagenta:"#6c71c4",brightCyan:"#93a1a1",brightWhite:"#fdf6e3"}},"solarized-light":{label:"Solarized Light",theme:{background:"#fdf6e3",foreground:"#657b83",cursor:"#586e75",cursorAccent:"#fdf6e3",selectionBackground:"rgba(88, 110, 117, 0.3)",black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#eee8d5",brightBlack:"#002b36",brightRed:"#cb4b16",brightGreen:"#586e75",brightYellow:"#657b83",brightBlue:"#839496",brightMagenta:"#6c71c4",brightCyan:"#93a1a1",brightWhite:"#fdf6e3"}},monokai:{label:"Monokai",theme:{background:"#272822",foreground:"#f8f8f2",cursor:"#f8f8f0",cursorAccent:"#272822",selectionBackground:"rgba(248, 248, 242, 0.2)",black:"#272822",red:"#f92672",green:"#a6e22e",yellow:"#f4bf75",blue:"#66d9ef",magenta:"#ae81ff",cyan:"#a1efe4",white:"#f8f8f2",brightBlack:"#75715e",brightRed:"#fd971f",brightGreen:"#a6e22e",brightYellow:"#e6db74",brightBlue:"#66d9ef",brightMagenta:"#ae81ff",brightCyan:"#a1efe4",brightWhite:"#f9f8f5"}},dracula:{label:"Dracula",theme:{background:"#282a36",foreground:"#f8f8f2",cursor:"#f8f8f2",cursorAccent:"#282a36",selectionBackground:"rgba(248, 248, 242, 0.2)",black:"#21222c",red:"#ff5555",green:"#50fa7b",yellow:"#f1fa8c",blue:"#bd93f9",magenta:"#ff79c6",cyan:"#8be9fd",white:"#f8f8f2",brightBlack:"#6272a4",brightRed:"#ff6e6e",brightGreen:"#69ff94",brightYellow:"#ffffa5",brightBlue:"#d6acff",brightMagenta:"#ff92df",brightCyan:"#a4ffff",brightWhite:"#ffffff"}},nord:{label:"Nord",theme:{background:"#2e3440",foreground:"#d8dee9",cursor:"#d8dee9",cursorAccent:"#2e3440",selectionBackground:"rgba(216, 222, 233, 0.2)",black:"#3b4252",red:"#bf616a",green:"#a3be8c",yellow:"#ebcb8b",blue:"#81a1c1",magenta:"#b48ead",cyan:"#88c0d0",white:"#e5e9f0",brightBlack:"#4c566a",brightRed:"#bf616a",brightGreen:"#a3be8c",brightYellow:"#ebcb8b",brightBlue:"#81a1c1",brightMagenta:"#b48ead",brightCyan:"#8fbcbb",brightWhite:"#eceff4"}},"one-dark":{label:"One Dark",theme:{background:"#282c34",foreground:"#abb2bf",cursor:"#528bff",cursorAccent:"#282c34",selectionBackground:"rgba(82, 139, 255, 0.25)",black:"#282c34",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#abb2bf",brightBlack:"#5c6370",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"}},"github-dark":{label:"GitHub Dark",theme:{background:"#0d1117",foreground:"#c9d1d9",cursor:"#58a6ff",cursorAccent:"#0d1117",selectionBackground:"rgba(88, 166, 255, 0.25)",black:"#484f58",red:"#ff7b72",green:"#7ee787",yellow:"#ffa657",blue:"#79c0ff",magenta:"#d2a8ff",cyan:"#a5d6ff",white:"#c9d1d9",brightBlack:"#6e7681",brightRed:"#ffa198",brightGreen:"#56d364",brightYellow:"#e3b341",brightBlue:"#58a6ff",brightMagenta:"#bc8cff",brightCyan:"#79c0ff",brightWhite:"#f0f6fc"}},"tokyo-night":{label:"Tokyo Night",theme:{background:"#1a1b26",foreground:"#a9b1d6",cursor:"#c0caf5",cursorAccent:"#1a1b26",selectionBackground:"rgba(192, 202, 245, 0.2)",black:"#15161e",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightRed:"#f7768e",brightGreen:"#9ece6a",brightYellow:"#e0af68",brightBlue:"#7aa2f7",brightMagenta:"#bb9af7",brightCyan:"#7dcfff",brightWhite:"#c0caf5"}},"github-light":{label:"GitHub Light",theme:{background:"#ffffff",foreground:"#24292f",cursor:"#0969da",cursorAccent:"#ffffff",selectionBackground:"rgba(9, 105, 218, 0.2)",black:"#24292f",red:"#cf222e",green:"#116329",yellow:"#4d2d00",blue:"#0969da",magenta:"#8250df",cyan:"#1b7c83",white:"#57606a",brightBlack:"#57606a",brightRed:"#a40e26",brightGreen:"#1a7f37",brightYellow:"#633c01",brightBlue:"#218bff",brightMagenta:"#a475f4",brightCyan:"#3192aa",brightWhite:"#8c959f"}},"catppuccin-latte":{label:"Catppuccin Latte",theme:{background:"#eff1f5",foreground:"#4c4f69",cursor:"#dc8a78",cursorAccent:"#eff1f5",selectionBackground:"rgba(220, 138, 120, 0.2)",black:"#5c5f77",red:"#d20f39",green:"#40a02b",yellow:"#df8e1d",blue:"#1e66f5",magenta:"#ea76cb",cyan:"#179299",white:"#4c4f69",brightBlack:"#6c6f85",brightRed:"#d20f39",brightGreen:"#40a02b",brightYellow:"#df8e1d",brightBlue:"#1e66f5",brightMagenta:"#ea76cb",brightCyan:"#179299",brightWhite:"#bcc0cc"}},"alabaster-light":{label:"Alabaster",theme:{background:"#f7f7f7",foreground:"#434343",cursor:"#528bff",cursorAccent:"#f7f7f7",selectionBackground:"rgba(82, 139, 255, 0.2)",black:"#000000",red:"#aa3731",green:"#448c27",yellow:"#cb9000",blue:"#325cc0",magenta:"#7a3e9d",cyan:"#0083b2",white:"#434343",brightBlack:"#777777",brightRed:"#f05050",brightGreen:"#60cb00",brightYellow:"#ffbc5d",brightBlue:"#0070ea",brightMagenta:"#ca64e2",brightCyan:"#00aacb",brightWhite:"#999999"}},"xterm-light":{label:"XTerm Light",theme:{background:"#fafafa",foreground:"#383a42",cursor:"#526fff",cursorAccent:"#fafafa",selectionBackground:"rgba(82, 111, 255, 0.2)",black:"#383a42",red:"#e45649",green:"#50a14f",yellow:"#c18401",blue:"#4078f2",magenta:"#a626a4",cyan:"#0184bc",white:"#a0a1a7",brightBlack:"#4f525e",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"}},"one-light":{label:"One Light",theme:{background:"#fafafa",foreground:"#383a42",cursor:"#526eff",cursorAccent:"#fafafa",selectionBackground:"rgba(82, 110, 255, 0.2)",black:"#383a42",red:"#e45649",green:"#50a14f",yellow:"#c18401",blue:"#4078f2",magenta:"#a626a4",cyan:"#0184bc",white:"#a0a1a7",brightBlack:"#4f525e",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"}},"gruvbox-light":{label:"Gruvbox Light",theme:{background:"#fbf1c7",foreground:"#3c3836",cursor:"#9d0006",cursorAccent:"#fbf1c7",selectionBackground:"rgba(157, 0, 6, 0.15)",black:"#fbf1c7",red:"#cc241d",green:"#98971a",yellow:"#d79921",blue:"#458588",magenta:"#b16286",cyan:"#689d6a",white:"#504945",brightBlack:"#928374",brightRed:"#9d0006",brightGreen:"#79740e",brightYellow:"#b57614",brightBlue:"#076678",brightMagenta:"#8f3f71",brightCyan:"#427b58",brightWhite:"#3c3836"}}},m=p(null),o=p(!0),l=p([]),c=p(null),x=p(localStorage.getItem(O)||"default");let r=null;const u=new Map;let s=null,k=null,A=null,y=null,_=null,v=0;const V=E(()=>l.value.find(e=>e.id===c.value)||null),be=E(()=>Object.entries(C).map(([e,t])=>({label:t.label,value:e}))),ue=E(()=>C[x.value]?.theme.background??"#1a1a2e");function he(){const e=Se(),t=Ve(),a=t?t.startsWith("https")?"wss:":"ws:":location.protocol==="https:"?"wss:":"ws:";return t?`${a}//${new URL(t).host}/api/hermes/terminal${e?`?token=${encodeURIComponent(e)}`:""}`:`${a}//${location.host}/api/hermes/terminal${e?`?token=${encodeURIComponent(e)}`:""}`}function D(){const e=he();r=new WebSocket(e),r.onopen=()=>{},r.onmessage=t=>{const a=typeof t.data=="string"?t.data:"";if(a.charCodeAt(0)===123)try{ge(JSON.parse(a))}catch{}else s?.write(a)},r.onopen=()=>{},r.onclose=()=>{setTimeout(D,3e3)},r.onerror=()=>{}}function T(e){!r||r.readyState!==WebSocket.OPEN||r.send(typeof e=="string"?e:JSON.stringify(e))}function ge(e){switch(e.type){case"created":l.value.push({id:e.id,shell:e.shell,pid:e.pid,title:`${e.shell} #${l.value.length+1}`,createdAt:Date.now(),exited:!1}),W(e.id);break;case"switched":break;case"exited":{const t=l.value.find(a=>a.id===e.id);t&&(t.exited=!0,c.value===e.id&&s?.write(`\r
|
|
2
2
|
\x1B[90m[${g("terminal.processExited",{code:e.exitCode})}]\x1B[0m\r
|
|
3
3
|
`));break}case"error":de.error(e.message);break}}function R(){T({type:"create"})}function me(e){let t=u.get(e);if(!t){const a=new Ke({cursorBlink:!0,fontSize:14,fontFamily:'Menlo, Monaco, "Courier New", monospace',theme:{...C[x.value].theme}}),M=new je;a.loadAddon(M),a.loadAddon(new qe),a.onData(Ce=>{r?.readyState===WebSocket.OPEN&&r.send(Ce)}),t={term:a,fitAddon:M,opened:!1},u.set(e,t)}return t}function W(e){if(c.value===e)return;c.value=e;const t=me(e);s=t.term,k=t.fitAddon,ve(),T({type:"switch",sessionId:e}),y?.matches&&(o.value=!1)}function _e(e){T({type:"close",sessionId:e}),l.value=l.value.filter(a=>a.id!==e);const t=u.get(e);t&&(t.term.dispose(),u.delete(e)),c.value===e&&(c.value=l.value.length>0?l.value[0].id:null,s=null,k=null,c.value?W(c.value):(I(),R()))}function ve(){if(!m.value)return;const e=m.value;for(;e.firstChild;)e.removeChild(e.firstChild);const t=u.get(c.value);if(t){if(!t.opened)t.term.open(e),t.opened=!0;else{const a=t.term.element;a&&e.appendChild(a)}A?.disconnect(),A=new ResizeObserver(()=>{Y(),ke()}),A.observe(m.value),setTimeout(()=>Y(),50),setTimeout(()=>Y(),200)}}function I(){if(!m.value)return;const e=m.value;for(;e.firstChild;)e.removeChild(e.firstChild)}function Y(){if(k)try{k.fit()}catch{}}function ke(){if(!(!s||!r||r.readyState!==WebSocket.OPEN))try{T({type:"resize",cols:s.cols,rows:s.rows})}catch{}}function ye(e){if(e.touches.length!==1){_=null,v=0;return}_=e.touches[0].clientY,v=0}function we(e){if(!s||e.touches.length!==1||_===null)return;const t=e.touches[0].clientY;v+=_-t,_=t;const a=Math.trunc(v/N);a!==0&&(s.scrollLines(a),v-=a*N,e.preventDefault())}function P(){_=null,v=0}function pe(e){x.value=e,localStorage.setItem(O,e);const t=C[e]?.theme;if(t)for(const a of u.values())a.term.options.theme={...t}}function Be(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function G(e){e.matches&&o.value&&(o.value=!1)}return Te(()=>{y=window.matchMedia("(max-width: 768px)"),G(y),y.addEventListener("change",G),D()}),Ge(()=>{y?.removeEventListener("change",G),I();for(const e of u.values())e.term.dispose();u.clear(),s=null,k=null,r?.close(),r=null}),(e,t)=>(f(),b("div",U,[i("div",{class:z(["session-backdrop",{active:o.value}]),onClick:t[0]||(t[0]=a=>o.value=!1)},null,2),i("aside",{class:z(["session-list",{collapsed:!o.value}])},[i("div",H,[o.value?(f(),b("span",j,d(n(g)("terminal.sessions")),1)):B("",!0),i("div",F,[w(n(Le),{trigger:"hover"},{trigger:h(()=>[w(n($),{quaternary:"",size:"tiny",onClick:R,circle:""},{icon:h(()=>[...t[3]||(t[3]=[i("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[i("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),i("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),_:1})]),default:h(()=>[L(" "+d(n(g)("terminal.newTab")),1)]),_:1})])]),o.value?(f(),b("div",q,[l.value.length===0?(f(),b("div",K,d(n(g)("common.loading")),1)):B("",!0),(f(!0),b(ze,null,$e(l.value,a=>(f(),b("button",{key:a.id,class:z(["session-item",{active:a.id===c.value,exited:a.exited}]),onClick:M=>W(a.id)},[i("div",Q,[i("span",X,d(a.title),1),i("span",Z,[i("span",ee,d(a.shell),1),a.exited?(f(),b("span",te,d(n(g)("terminal.sessionExited")),1)):(f(),b("span",ae,d(Be(a.createdAt)),1))])]),l.value.length>1?(f(),Pe(n(xe),{key:0,onPositiveClick:M=>_e(a.id)},{trigger:h(()=>[i("button",{class:"session-item-delete",onClick:t[1]||(t[1]=Ne(()=>{},["stop"]))},[...t[4]||(t[4]=[i("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[i("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),i("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),default:h(()=>[L(" "+d(n(g)("terminal.closeSession")),1)]),_:1},8,["onPositiveClick"])):B("",!0)],10,J))),128))])):B("",!0)],2),i("div",ie,[i("header",re,[i("div",ne,[w(n($),{quaternary:"",size:"small",onClick:t[2]||(t[2]=a=>o.value=!o.value),circle:""},{icon:h(()=>[...t[5]||(t[5]=[i("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[i("rect",{x:"3",y:"3",width:"7",height:"7"}),i("rect",{x:"14",y:"3",width:"7",height:"7"}),i("rect",{x:"3",y:"14",width:"7",height:"7"}),i("rect",{x:"14",y:"14",width:"7",height:"7"})],-1)])]),_:1}),V.value?(f(),b("span",le,d(V.value.title),1)):B("",!0)]),i("div",oe,[w(n(He),{value:x.value,options:be.value,size:"small","consistent-menu-width":!1,class:"theme-select","onUpdate:value":pe},null,8,["value","options"]),w(n($),{size:"small",onClick:R},{icon:h(()=>[...t[6]||(t[6]=[i("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[i("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),i("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:h(()=>[L(" "+d(n(g)("terminal.newTab")),1)]),_:1})])]),i("div",ce,[i("div",{ref_key:"terminalRef",ref:m,class:"terminal-xterm",style:Ue({backgroundColor:ue.value}),onTouchstart:ye,onTouchmove:we,onTouchend:P,onTouchcancel:P},null,36)])])]))}})})),Ze=S((()=>{})),et=S((()=>{})),tt,at=S((()=>{se(),se(),Ze(),et(),Oe(),tt=Ie(fe,[["__scopeId","data-v-200a4357"]])}));at();export{tt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$i as c,$t as h,D as Be,Di as Ie,Hi as d,M as Ne,Nr as Ue,O as Ve,Pr as Re,Sa as l,Ti as v,_a as e,_i as t,bi as g,gi as p,gt as De,j as He,n as Ae,si as Ee,t as Fe,tt as Oe,ua as B,vi as f,wa as y,wi as m,xa as Pe,ya as $e,yi as b,zt as I}from"./index-
|
|
1
|
+
import{$i as c,$t as h,D as Be,Di as Ie,Hi as d,M as Ne,Nr as Ue,O as Ve,Pr as Re,Sa as l,Ti as v,_a as e,_i as t,bi as g,gi as p,gt as De,j as He,n as Ae,si as Ee,t as Fe,tt as Oe,ua as B,vi as f,wa as y,wi as m,xa as Pe,ya as $e,yi as b,zt as I}from"./index-DN4SafrP.js";var N,U,V,R,D,H,A,E,F,O,P,$,j,M,G,K,Y,L,X,q,J,Q,W,Z,ee,te,ae,se,le=y((()=>{Ee(),Ne(),Ue(),He(),Be(),N={class:"theme-view"},U={class:"page-header"},V={class:"header-title"},R={class:"header-actions"},D={class:"theme-content"},H={class:"theme-card"},A={class:"section-heading"},E={class:"theme-setting"},F={class:"theme-setting"},O={class:"theme-setting"},P={class:"theme-setting"},$={class:"color-control"},j=["value","aria-label"],M={class:"theme-setting"},G={class:"color-control"},K=["value","aria-label"],Y={class:"theme-card"},L={class:"section-heading"},X={class:"background-actions"},q={key:0},J={key:1,class:"background-name"},Q={class:"background-note"},W={class:"theme-preview"},Z={class:"preview-copy"},ee={class:"preview-kicker"},te={type:"button"},ae=10*1024*1024,se=Ie({__name:"ThemeView",setup(Ke){const ne=new Set(["image/jpeg","image/png","image/webp","image/gif"]),{t:a}=Re(),i=De(),k=B(null),u=B(!1),{brightness:ie,style:oe,isDark:C,fontSize:ue,textColor:w,accentColor:x,backgroundImageUrl:r,backgroundImageName:re,setBrightness:ce,setStyle:de,previewThemeSettings:z,saveThemeCustomization:me,resetCustomization:_e,uploadBackground:he,removeBackground:ve}=Ve(),pe=p(()=>[{label:a("theme.modeSystem"),value:"system"},{label:a("theme.modeLight"),value:"light"},{label:a("theme.modeDark"),value:"dark"}]),ge=p(()=>[{label:a("theme.styleInk"),value:"ink"},{label:a("theme.styleComic"),value:"comic"}]),T=p(()=>w.value||(C.value?"#e0e0e0":"#1a1a1a")),S=p(()=>x.value||(C.value?"#e0e0e0":"#333333")),fe=p(()=>({backgroundImage:r.value?`url("${r.value}")`:void 0}));async function _(s,n=!1){try{await me(s),n&&i.success(a("theme.saved"))}catch{i.error(a("theme.saveFailed"))}}function be(s){s!=null&&_({fontSize:s})}function ye(s){z({textColor:s.target.value})}function ke(s){_({textColor:s.target.value})}function Ce(s){z({accentColor:s.target.value})}function we(s){_({accentColor:s.target.value})}function xe(){k.value?.click()}async function ze(s){const n=s.target,o=n.files?.[0];if(n.value="",!!o){if(!ne.has(o.type)){i.error(a("theme.backgroundTypeError"));return}if(o.size>ae){i.error(a("theme.backgroundSizeError"));return}u.value=!0;try{await he(o),i.success(a("theme.backgroundUploaded"))}catch{i.error(a("theme.backgroundUploadFailed"))}finally{u.value=!1}}}async function Te(){u.value=!0;try{await ve(),i.success(a("theme.backgroundRemoved"))}catch{i.error(a("theme.backgroundRemoveFailed"))}finally{u.value=!1}}async function Se(){try{await _e(),i.success(a("theme.resetSuccess"))}catch{i.error(a("theme.saveFailed"))}}return(s,n)=>(d(),g("div",N,[t("header",U,[t("h2",V,l(e(a)("theme.title")),1),t("div",R,[v(e(h),{size:"small",secondary:"",onClick:Se},{default:c(()=>[m(l(e(a)("theme.reset")),1)]),_:1})])]),t("div",D,[t("section",H,[t("div",A,[t("div",null,[t("h3",null,l(e(a)("theme.appearance")),1),t("p",null,l(e(a)("theme.appearanceHint")),1)])]),t("div",E,[t("div",null,[t("label",null,l(e(a)("theme.mode")),1),t("p",null,l(e(a)("theme.modeHint")),1)]),v(e(I),{value:e(ie),options:pe.value,size:"small",class:"theme-select","onUpdate:value":n[0]||(n[0]=o=>e(ce)(o))},null,8,["value","options"])]),t("div",F,[t("div",null,[t("label",null,l(e(a)("theme.style")),1),t("p",null,l(e(a)("theme.styleHint")),1)]),v(e(I),{value:e(oe),options:ge.value,size:"small",class:"theme-select","onUpdate:value":n[1]||(n[1]=o=>e(de)(o))},null,8,["value","options"])]),t("div",O,[t("div",null,[t("label",null,l(e(a)("theme.fontSize")),1),t("p",null,l(e(a)("theme.fontSizeHint")),1)]),v(e(Oe),{value:e(ue),min:e(12),max:e(20),step:1,size:"small",class:"font-size-input","onUpdate:value":be},{suffix:c(()=>[...n[4]||(n[4]=[m("px",-1)])]),_:1},8,["value","min","max"])]),t("div",P,[t("div",null,[t("label",null,l(e(a)("theme.textColor")),1),t("p",null,l(e(a)("theme.textColorHint")),1)]),t("div",$,[t("input",{type:"color",value:T.value,"aria-label":e(a)("theme.textColor"),onInput:ye,onChange:ke},null,40,j),t("code",null,l(T.value),1),e(w)?(d(),f(e(h),{key:0,size:"tiny",text:"",onClick:n[2]||(n[2]=o=>_({textColor:null}))},{default:c(()=>[m(l(e(a)("common.reset")),1)]),_:1})):b("",!0)])]),t("div",M,[t("div",null,[t("label",null,l(e(a)("theme.accentColor")),1),t("p",null,l(e(a)("theme.accentColorHint")),1)]),t("div",G,[t("input",{type:"color",value:S.value,"aria-label":e(a)("theme.accentColor"),onInput:Ce,onChange:we},null,40,K),t("code",null,l(S.value),1),e(x)?(d(),f(e(h),{key:0,size:"tiny",text:"",onClick:n[3]||(n[3]=o=>_({accentColor:null}))},{default:c(()=>[m(l(e(a)("common.reset")),1)]),_:1})):b("",!0)])])]),t("section",Y,[t("div",L,[t("div",null,[t("h3",null,l(e(a)("theme.background")),1),t("p",null,l(e(a)("theme.backgroundHint")),1)]),t("div",X,[t("input",{ref_key:"fileInput",ref:k,class:"file-input",type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",onChange:ze},null,544),v(e(h),{size:"small",loading:u.value,onClick:xe},{default:c(()=>[m(l(e(r)?e(a)("theme.backgroundReplace"):e(a)("theme.backgroundUpload")),1)]),_:1},8,["loading"]),e(r)?(d(),f(e(h),{key:0,size:"small",secondary:"",disabled:u.value,onClick:Te},{default:c(()=>[m(l(e(a)("theme.backgroundRemove")),1)]),_:1},8,["disabled"])):b("",!0)])]),t("div",{class:$e(["background-preview",{empty:!e(r)}]),style:Pe(fe.value)},[e(r)?(d(),g("span",J,l(e(re)),1)):(d(),g("span",q,l(e(a)("theme.backgroundEmpty")),1))],6),t("p",Q,l(e(a)("theme.backgroundNote")),1)]),t("section",W,[t("div",Z,[t("span",ee,l(e(a)("theme.preview")),1),t("h3",null,l(e(a)("theme.previewTitle")),1),t("p",null,l(e(a)("theme.previewText")),1),t("button",te,l(e(a)("theme.previewAction")),1)])])])]))}})})),je=y((()=>{})),Me,Ge=y((()=>{le(),le(),je(),Ae(),Me=Fe(se,[["__scopeId","data-v-4192aa4b"]])}));Ge();export{Me as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$i as W,$t as q,Bi as gt,Di as R,Hi as d,M as kt,Nr as B,Pr as F,Sa as t,Ti as S,Wi as M,_a as s,_i as e,ai as yt,bi as c,gi as y,mi as P,n as D,oi as ft,si as C,t as H,ua as V,wa as f,wi as m,xa as T,yi as $}from"./index-DnjQJzX4.js";import{T as Tt,x as mt}from"./sessions-iGK9S6zk.js";import{r as $t,t as wt}from"./profiles-D-vlI-Ec.js";function lt(p){return(p||"").trim()||"unknown"}function x(p,a){return a<=0?0:p/a*100}function I(p){const a=lt(p);let i=0;for(let v=0;v<a.length;v+=1)i=(i<<5)-i+a.charCodeAt(v),i|=0;return L[Math.abs(i)%L.length]}var L,U,A=f((()=>{Tt(),ft(),C(),L=["#4fd1c5","#63b3ed","#f6ad55","#b794f4","#68d391","#fc8181","#f687b3","#90cdf4","#fbd38d","#9ae6b4"],U=yt("usage",()=>{const p=V(null),a=V(!1);let i=0;async function v(o=30){const g=++i;a.value=!0;try{const w=await mt(o);g===i&&(p.value=w)}catch(w){g===i&&console.error("Failed to load usage stats:",w)}finally{g===i&&(a.value=!1)}}const k=y(()=>!!p.value&&p.value.total_sessions>0),r=y(()=>p.value?.total_input_tokens??0),h=y(()=>p.value?.total_output_tokens??0),u=y(()=>r.value+h.value),n=y(()=>p.value?.total_sessions??0),l=y(()=>p.value?.total_cache_read_tokens??0),_=y(()=>{const o=r.value+l.value;return o===0?null:l.value/o*100}),N=y(()=>p.value?.total_cost??0),O=y(()=>p.value?p.value.model_usage.map(o=>{const g=lt(o.model),w=o.input_tokens+o.output_tokens,b=w+o.cache_read_tokens;return{model:g,inputTokens:o.input_tokens,outputTokens:o.output_tokens,cacheTokens:o.cache_read_tokens,cacheWriteTokens:o.cache_write_tokens,totalTokens:w,visualTokens:b,sessions:o.sessions,color:I(g),inputPercent:x(o.input_tokens,b),outputPercent:x(o.output_tokens,b),cachePercent:x(o.cache_read_tokens,b)}}).sort((o,g)=>g.visualTokens-o.visualTokens):[]);return{stats:p,isLoading:a,hasData:k,loadSessions:v,totalInputTokens:r,totalOutputTokens:h,totalTokens:u,totalSessions:n,totalCacheTokens:l,cacheHitRate:_,estimatedCost:N,modelUsage:O,modelLegend:y(()=>{const o=new Set;return O.value.filter(g=>o.has(g.model)?!1:(o.add(g.model),!0)).map(g=>({model:g.model,color:g.color}))}),agentUsage:y(()=>p.value?(p.value.agent_usage??[]).map(o=>{const g=(o.agent||"").trim()||"unknown",w=o.input_tokens+o.output_tokens,b=w+o.cache_read_tokens;return{agent:g,inputTokens:o.input_tokens,outputTokens:o.output_tokens,cacheTokens:o.cache_read_tokens,cacheWriteTokens:o.cache_write_tokens,totalTokens:w,visualTokens:b,sessions:o.sessions,color:I(`agent:${g}`),inputPercent:x(o.input_tokens,b),outputPercent:x(o.output_tokens,b),cachePercent:x(o.cache_read_tokens,b)}}).sort((o,g)=>g.visualTokens-o.visualTokens):[]),dailyUsage:y(()=>(p.value?.daily_usage??[]).map(o=>{const g=o.input_tokens+o.output_tokens+o.cache_read_tokens;return{...o,visualTokens:g,inputPercent:x(o.input_tokens,g),outputPercent:x(o.output_tokens,g),cachePercent:x(o.cache_read_tokens,g)}})),avgSessionsPerDay:y(()=>{if(!p.value||p.value.daily_usage.length===0)return 0;const o=p.value.daily_usage.filter(w=>w.sessions>0).length,g=Math.max(1,o);return n.value/g}),getModelColor:I}})})),z,K,E,j,G,J,Q,X,Y,Z,ee,te,se,ae,ne,oe,it,le=f((()=>{C(),B(),A(),z={class:"stat-cards"},K={class:"stat-card"},E={class:"stat-label"},j={class:"stat-value"},G={class:"stat-sub"},J={class:"stat-card"},Q={class:"stat-label"},X={class:"stat-value"},Y={class:"stat-sub"},Z={class:"stat-card"},ee={class:"stat-label"},te={class:"stat-value"},se={class:"stat-card"},ae={class:"stat-label"},ne={class:"stat-value"},oe={key:0,class:"stat-sub"},it=R({__name:"StatCards",setup(p){const{t:a}=F(),i=U();function v(r){return r>=1e6?(r/1e6).toFixed(1)+"M":r>=1e3?(r/1e3).toFixed(1)+"K":String(r)}function k(r){return r===0?"$0.00":r<.01?"<$0.01":"$"+r.toFixed(2)}return(r,h)=>(d(),c("div",z,[e("div",K,[e("div",E,t(s(a)("usage.totalTokens")),1),e("div",j,t(v(s(i).totalTokens)),1),e("div",G,t(v(s(i).totalInputTokens))+" "+t(s(a)("usage.inputTokens"))+" / "+t(v(s(i).totalOutputTokens))+" "+t(s(a)("usage.outputTokens")),1)]),e("div",J,[e("div",Q,t(s(a)("usage.totalSessions")),1),e("div",X,t(s(i).totalSessions),1),e("div",Y,t(s(a)("usage.avgPerDay",{n:s(i).avgSessionsPerDay.toFixed(1)})),1)]),e("div",Z,[e("div",ee,t(s(a)("usage.estimatedCost")),1),e("div",te,t(k(s(i).estimatedCost)),1)]),e("div",se,[e("div",ae,t(s(a)("usage.cacheHitRate")),1),e("div",ne,t(s(i).cacheHitRate!==null?s(i).cacheHitRate.toFixed(1)+"%":"--"),1),s(i).cacheHitRate!==null?(d(),c("div",oe,t(v(s(i).totalCacheTokens))+" "+t(s(a)("usage.tokens")),1)):$("",!0)])]))}})})),bt=f((()=>{})),ut,xt=f((()=>{le(),le(),bt(),D(),ut=H(it,[["__scopeId","data-v-3a594781"]])})),ie,ue,re,_e,de,ce,pe,ve,he,ge,ke,rt,ye=f((()=>{C(),B(),A(),ie={class:"model-breakdown"},ue={class:"section-title"},re={class:"model-legend","aria-label":"Token type legend"},_e={class:"legend-item"},de={class:"legend-item"},ce={class:"legend-item"},pe={class:"model-list"},ve=["title"],he={class:"model-bar-wrap"},ge=["title"],ke={key:0},rt=R({__name:"ModelBreakdown",setup(p){const{t:a}=F(),i=U(),v=y(()=>Math.max(...i.modelUsage.map(h=>h.visualTokens),1));function k(h){return h>=1e6?(h/1e6).toFixed(1)+"M":h>=1e3?(h/1e3).toFixed(1)+"K":String(h)}function r(h){const u=h.inputTokens+h.cacheTokens;return u===0?"--":(h.cacheTokens/u*100).toFixed(1)+"%"}return(h,u)=>(d(),c("div",ie,[e("h3",ue,t(s(a)("usage.modelBreakdown")),1),e("div",re,[e("div",_e,[u[0]||(u[0]=e("span",{class:"legend-swatch input"},null,-1)),m(t(s(a)("usage.inputTokens")),1)]),e("div",de,[u[1]||(u[1]=e("span",{class:"legend-swatch output"},null,-1)),m(t(s(a)("usage.outputTokens")),1)]),e("div",ce,[u[2]||(u[2]=e("span",{class:"legend-swatch cache"},null,-1)),m(t(s(a)("usage.cacheRead")),1)])]),e("div",pe,[(d(!0),c(P,null,M(s(i).modelUsage,n=>(d(),c("div",{key:n.model,class:"model-row"},[e("span",{class:"model-swatch",style:T({background:n.color})},null,4),e("span",{class:"model-name",title:n.model},t(n.model),9,ve),e("div",he,[e("div",{class:"model-bar",style:T({width:n.visualTokens/v.value*100+"%"})},[n.inputTokens>0?(d(),c("div",{key:0,class:"model-bar-segment input",style:T({width:n.inputPercent+"%"})},null,4)):$("",!0),n.outputTokens>0?(d(),c("div",{key:1,class:"model-bar-segment output",style:T({width:n.outputPercent+"%"})},null,4)):$("",!0),n.cacheTokens>0?(d(),c("div",{key:2,class:"model-bar-segment cache",style:T({width:n.cachePercent+"%"})},null,4)):$("",!0)],4)]),e("span",{class:"model-tokens",title:`${s(a)("usage.inputTokens")}: ${k(n.inputTokens)} · ${s(a)("usage.outputTokens")}: ${k(n.outputTokens)} · ${s(a)("usage.cacheRead")}: ${k(n.cacheTokens)} · ${s(a)("usage.cacheHitRate")}: ${r(n)}`},[m(t(k(n.totalTokens))+" ",1),n.cacheTokens>0?(d(),c("small",ke,"+"+t(k(n.cacheTokens)),1)):$("",!0)],8,ge)]))),128))])]))}})})),St=f((()=>{})),_t,Pt=f((()=>{ye(),ye(),St(),D(),_t=H(rt,[["__scopeId","data-v-3aeb15c5"]])})),fe,Te,me,$e,we,be,xe,Se,Pe,Ce,Ue,dt,Me=f((()=>{C(),B(),A(),fe={class:"agent-breakdown"},Te={class:"section-title"},me={class:"agent-legend","aria-label":"Token type legend"},$e={class:"legend-item"},we={class:"legend-item"},be={class:"legend-item"},xe={class:"agent-list"},Se=["title"],Pe={class:"agent-bar-wrap"},Ce=["title"],Ue={key:0},dt=R({__name:"AgentBreakdown",setup(p){const{t:a}=F(),i=U(),v=y(()=>Math.max(...i.agentUsage.map(n=>n.visualTokens),1)),k={hermes:"hermes",claude_code:"claudeCode",codex:"codex",ekko_agent:"ekkoAgent"};function r(n){return a(`usage.agents.${k[n]||"unknown"}`)}function h(n){return n>=1e6?(n/1e6).toFixed(1)+"M":n>=1e3?(n/1e3).toFixed(1)+"K":String(n)}function u(n){const l=n.inputTokens+n.cacheTokens;return l===0?"--":(n.cacheTokens/l*100).toFixed(1)+"%"}return(n,l)=>(d(),c("div",fe,[e("h3",Te,t(s(a)("usage.agentBreakdown")),1),e("div",me,[e("div",$e,[l[0]||(l[0]=e("span",{class:"legend-swatch input"},null,-1)),m(t(s(a)("usage.inputTokens")),1)]),e("div",we,[l[1]||(l[1]=e("span",{class:"legend-swatch output"},null,-1)),m(t(s(a)("usage.outputTokens")),1)]),e("div",be,[l[2]||(l[2]=e("span",{class:"legend-swatch cache"},null,-1)),m(t(s(a)("usage.cacheRead")),1)])]),e("div",xe,[(d(!0),c(P,null,M(s(i).agentUsage,_=>(d(),c("div",{key:_.agent,class:"agent-row"},[e("span",{class:"agent-swatch",style:T({background:_.color})},null,4),e("span",{class:"agent-name",title:r(_.agent)},t(r(_.agent)),9,Se),e("div",Pe,[e("div",{class:"agent-bar",style:T({width:_.visualTokens/v.value*100+"%"})},[_.inputTokens>0?(d(),c("div",{key:0,class:"agent-bar-segment input",style:T({width:_.inputPercent+"%"})},null,4)):$("",!0),_.outputTokens>0?(d(),c("div",{key:1,class:"agent-bar-segment output",style:T({width:_.outputPercent+"%"})},null,4)):$("",!0),_.cacheTokens>0?(d(),c("div",{key:2,class:"agent-bar-segment cache",style:T({width:_.cachePercent+"%"})},null,4)):$("",!0)],4)]),e("span",{class:"agent-tokens",title:`${s(a)("usage.inputTokens")}: ${h(_.inputTokens)} · ${s(a)("usage.outputTokens")}: ${h(_.outputTokens)} · ${s(a)("usage.cacheRead")}: ${h(_.cacheTokens)} · ${s(a)("usage.cacheHitRate")}: ${u(_)}`},[m(t(h(_.totalTokens))+" ",1),_.cacheTokens>0?(d(),c("small",Ue,"+"+t(h(_.cacheTokens)),1)):$("",!0)],8,Ce)]))),128))])]))}})})),Ct=f((()=>{})),ct,Ut=f((()=>{Me(),Me(),Ct(),D(),ct=H(dt,[["__scopeId","data-v-21ce908b"]])})),Re,Be,Fe,De,He,Ae,Ie,Ve,Le,Ne,Oe,We,qe,ze,Ke,Ee,je,Ge,Je,pt,Qe=f((()=>{C(),B(),A(),Re={class:"daily-trend"},Be={class:"section-title"},Fe={class:"bar-chart"},De={class:"bar-track"},He={class:"bar-tooltip"},Ae={class:"tooltip-date"},Ie={class:"tooltip-row"},Ve={class:"tooltip-row"},Le={class:"tooltip-row"},Ne={class:"tooltip-row"},Oe={class:"tooltip-row"},We={class:"tooltip-row"},qe={class:"tooltip-row"},ze={class:"bar-dates"},Ke={class:"chart-legend","aria-label":"Token type legend"},Ee={class:"legend-item"},je={class:"legend-item"},Ge={class:"legend-item"},Je={class:"trend-table"},pt=R({__name:"DailyTrend",setup(p){const{t:a}=F(),i=U();function v(u){return u>=1e6?(u/1e6).toFixed(1)+"M":u>=1e3?(u/1e3).toFixed(1)+"K":String(u)}function k(u){return u===0?"$0.00":u<.01?"<$0.01":"$"+u.toFixed(2)}function r(u){const n=u.input_tokens+u.cache_read_tokens;return n===0?"--":(u.cache_read_tokens/n*100).toFixed(1)+"%"}const h=y(()=>Math.max(...i.dailyUsage.map(u=>u.visualTokens),1));return(u,n)=>(d(),c("div",Re,[e("h3",Be,t(s(a)("usage.dailyTrend")),1),e("div",Fe,[(d(!0),c(P,null,M(s(i).dailyUsage,l=>(d(),c("div",{key:l.date,class:"bar-col"},[e("div",De,[e("div",{class:"bar-stack",style:T({height:l.visualTokens/h.value*100+"%"})},[l.output_tokens>0?(d(),c("div",{key:0,class:"bar-segment output",style:T({height:l.outputPercent+"%"})},null,4)):$("",!0),l.input_tokens>0?(d(),c("div",{key:1,class:"bar-segment input",style:T({height:l.inputPercent+"%"})},null,4)):$("",!0),l.cache_read_tokens>0?(d(),c("div",{key:2,class:"bar-segment cache",style:T({height:l.cachePercent+"%"})},null,4)):$("",!0)],4)]),e("div",He,[e("div",Ae,t(l.date),1),e("div",Ie,t(s(a)("usage.inputTokens"))+": "+t(v(l.input_tokens)),1),e("div",Ve,t(s(a)("usage.outputTokens"))+": "+t(v(l.output_tokens)),1),e("div",Le,t(s(a)("usage.cacheRead"))+": "+t(v(l.cache_read_tokens)),1),e("div",Ne,t(s(a)("usage.cacheWrite"))+": "+t(v(l.cache_write_tokens)),1),e("div",Oe,t(s(a)("usage.cacheHitRate"))+": "+t(r(l)),1),e("div",We,t(s(a)("usage.sessions"))+": "+t(l.sessions),1),e("div",qe,t(s(a)("usage.cost"))+": "+t(k(l.cost)),1)])]))),128))]),e("div",ze,[e("span",null,t(s(i).dailyUsage[0]?.date.slice(5)),1),e("span",null,t(s(i).dailyUsage[s(i).dailyUsage.length-1]?.date.slice(5)),1)]),e("div",Ke,[e("div",Ee,[n[0]||(n[0]=e("span",{class:"legend-swatch input"},null,-1)),m(t(s(a)("usage.inputTokens")),1)]),e("div",je,[n[1]||(n[1]=e("span",{class:"legend-swatch output"},null,-1)),m(t(s(a)("usage.outputTokens")),1)]),e("div",Ge,[n[2]||(n[2]=e("span",{class:"legend-swatch cache"},null,-1)),m(t(s(a)("usage.cacheRead")),1)])]),e("div",Je,[e("table",null,[e("thead",null,[e("tr",null,[e("th",null,t(s(a)("usage.date")),1),e("th",null,t(s(a)("usage.inputTokens")),1),e("th",null,t(s(a)("usage.outputTokens")),1),e("th",null,t(s(a)("usage.cacheRead")),1),e("th",null,t(s(a)("usage.cacheWrite")),1),e("th",null,t(s(a)("usage.cacheHitRate")),1),e("th",null,t(s(a)("usage.sessions")),1),e("th",null,t(s(a)("usage.cost")),1)])]),e("tbody",null,[(d(!0),c(P,null,M([...s(i).dailyUsage].reverse(),l=>(d(),c("tr",{key:l.date},[e("td",null,t(l.date),1),e("td",null,t(v(l.input_tokens)),1),e("td",null,t(v(l.output_tokens)),1),e("td",null,t(v(l.cache_read_tokens)),1),e("td",null,t(v(l.cache_write_tokens)),1),e("td",null,t(r(l)),1),e("td",null,t(l.sessions),1),e("td",null,t(k(l.cost)),1)]))),128))])])])]))}})})),Mt=f((()=>{})),vt,Rt=f((()=>{Qe(),Qe(),Mt(),D(),vt=H(pt,[["__scopeId","data-v-4a037170"]])})),Xe,Ye,Ze,et,tt,st,at,nt,ht,ot=f((()=>{C(),kt(),B(),A(),wt(),xt(),Pt(),Ut(),Rt(),Xe={class:"usage-view"},Ye={class:"page-header"},Ze={class:"header-title"},et={class:"usage-toolbar"},tt={class:"period-selector",role:"group","aria-label":"Usage statistics period"},st={class:"usage-content"},at={key:0,class:"usage-loading"},nt={key:2,class:"usage-empty"},ht=R({__name:"UsageView",setup(p){const{t:a}=F(),i=U(),v=$t(),k=[{label:"7d",days:7},{label:"30d",days:30},{label:"90d",days:90},{label:"365d",days:365}],r=V(30);async function h(){(!v.activeProfileName||v.profiles.length===0)&&await v.fetchProfiles()}async function u(n=r.value){r.value=n,await h(),await i.loadSessions(n)}return gt(()=>{u(30)}),(n,l)=>(d(),c("div",Xe,[e("header",Ye,[e("h2",Ze,t(s(a)("usage.title")),1),e("div",et,[e("div",tt,[(d(),c(P,null,M(k,_=>S(s(q),{key:_.days,class:"period-option",size:"small",type:r.value===_.days?"primary":"default",secondary:r.value===_.days,quaternary:r.value!==_.days,"aria-pressed":r.value===_.days,onClick:N=>u(_.days)},{default:W(()=>[m(t(_.label),1)]),_:2},1032,["type","secondary","quaternary","aria-pressed","onClick"])),64))]),S(s(q),{class:"refresh-button",size:"small",quaternary:"",loading:s(i).isLoading,onClick:l[0]||(l[0]=_=>u())},{default:W(()=>[m(t(s(a)("usage.refresh")),1)]),_:1},8,["loading"])])]),e("div",st,[s(i).isLoading&&!s(i).hasData?(d(),c("div",at,t(s(a)("common.loading")),1)):s(i).hasData?(d(),c(P,{key:1},[S(ut),S(_t),S(ct),S(vt)],64)):(d(),c("div",nt,t(s(a)("usage.noData")),1))])]))}})})),Bt=f((()=>{})),Ft,Dt=f((()=>{ot(),ot(),Bt(),D(),Ft=H(ht,[["__scopeId","data-v-9b767c2b"]])}));Dt();export{Ft as default};
|
|
1
|
+
import{$i as W,$t as q,Bi as gt,Di as R,Hi as d,M as kt,Nr as B,Pr as F,Sa as t,Ti as S,Wi as M,_a as s,_i as e,ai as yt,bi as c,gi as y,mi as P,n as D,oi as ft,si as C,t as H,ua as V,wa as f,wi as m,xa as T,yi as $}from"./index-DN4SafrP.js";import{T as Tt,x as mt}from"./sessions-IkLKgnN6.js";import{r as $t,t as wt}from"./profiles-BK5JKD7h.js";function lt(p){return(p||"").trim()||"unknown"}function x(p,a){return a<=0?0:p/a*100}function I(p){const a=lt(p);let i=0;for(let v=0;v<a.length;v+=1)i=(i<<5)-i+a.charCodeAt(v),i|=0;return L[Math.abs(i)%L.length]}var L,U,A=f((()=>{Tt(),ft(),C(),L=["#4fd1c5","#63b3ed","#f6ad55","#b794f4","#68d391","#fc8181","#f687b3","#90cdf4","#fbd38d","#9ae6b4"],U=yt("usage",()=>{const p=V(null),a=V(!1);let i=0;async function v(o=30){const g=++i;a.value=!0;try{const w=await mt(o);g===i&&(p.value=w)}catch(w){g===i&&console.error("Failed to load usage stats:",w)}finally{g===i&&(a.value=!1)}}const k=y(()=>!!p.value&&p.value.total_sessions>0),r=y(()=>p.value?.total_input_tokens??0),h=y(()=>p.value?.total_output_tokens??0),u=y(()=>r.value+h.value),n=y(()=>p.value?.total_sessions??0),l=y(()=>p.value?.total_cache_read_tokens??0),_=y(()=>{const o=r.value+l.value;return o===0?null:l.value/o*100}),N=y(()=>p.value?.total_cost??0),O=y(()=>p.value?p.value.model_usage.map(o=>{const g=lt(o.model),w=o.input_tokens+o.output_tokens,b=w+o.cache_read_tokens;return{model:g,inputTokens:o.input_tokens,outputTokens:o.output_tokens,cacheTokens:o.cache_read_tokens,cacheWriteTokens:o.cache_write_tokens,totalTokens:w,visualTokens:b,sessions:o.sessions,color:I(g),inputPercent:x(o.input_tokens,b),outputPercent:x(o.output_tokens,b),cachePercent:x(o.cache_read_tokens,b)}}).sort((o,g)=>g.visualTokens-o.visualTokens):[]);return{stats:p,isLoading:a,hasData:k,loadSessions:v,totalInputTokens:r,totalOutputTokens:h,totalTokens:u,totalSessions:n,totalCacheTokens:l,cacheHitRate:_,estimatedCost:N,modelUsage:O,modelLegend:y(()=>{const o=new Set;return O.value.filter(g=>o.has(g.model)?!1:(o.add(g.model),!0)).map(g=>({model:g.model,color:g.color}))}),agentUsage:y(()=>p.value?(p.value.agent_usage??[]).map(o=>{const g=(o.agent||"").trim()||"unknown",w=o.input_tokens+o.output_tokens,b=w+o.cache_read_tokens;return{agent:g,inputTokens:o.input_tokens,outputTokens:o.output_tokens,cacheTokens:o.cache_read_tokens,cacheWriteTokens:o.cache_write_tokens,totalTokens:w,visualTokens:b,sessions:o.sessions,color:I(`agent:${g}`),inputPercent:x(o.input_tokens,b),outputPercent:x(o.output_tokens,b),cachePercent:x(o.cache_read_tokens,b)}}).sort((o,g)=>g.visualTokens-o.visualTokens):[]),dailyUsage:y(()=>(p.value?.daily_usage??[]).map(o=>{const g=o.input_tokens+o.output_tokens+o.cache_read_tokens;return{...o,visualTokens:g,inputPercent:x(o.input_tokens,g),outputPercent:x(o.output_tokens,g),cachePercent:x(o.cache_read_tokens,g)}})),avgSessionsPerDay:y(()=>{if(!p.value||p.value.daily_usage.length===0)return 0;const o=p.value.daily_usage.filter(w=>w.sessions>0).length,g=Math.max(1,o);return n.value/g}),getModelColor:I}})})),z,K,E,j,G,J,Q,X,Y,Z,ee,te,se,ae,ne,oe,it,le=f((()=>{C(),B(),A(),z={class:"stat-cards"},K={class:"stat-card"},E={class:"stat-label"},j={class:"stat-value"},G={class:"stat-sub"},J={class:"stat-card"},Q={class:"stat-label"},X={class:"stat-value"},Y={class:"stat-sub"},Z={class:"stat-card"},ee={class:"stat-label"},te={class:"stat-value"},se={class:"stat-card"},ae={class:"stat-label"},ne={class:"stat-value"},oe={key:0,class:"stat-sub"},it=R({__name:"StatCards",setup(p){const{t:a}=F(),i=U();function v(r){return r>=1e6?(r/1e6).toFixed(1)+"M":r>=1e3?(r/1e3).toFixed(1)+"K":String(r)}function k(r){return r===0?"$0.00":r<.01?"<$0.01":"$"+r.toFixed(2)}return(r,h)=>(d(),c("div",z,[e("div",K,[e("div",E,t(s(a)("usage.totalTokens")),1),e("div",j,t(v(s(i).totalTokens)),1),e("div",G,t(v(s(i).totalInputTokens))+" "+t(s(a)("usage.inputTokens"))+" / "+t(v(s(i).totalOutputTokens))+" "+t(s(a)("usage.outputTokens")),1)]),e("div",J,[e("div",Q,t(s(a)("usage.totalSessions")),1),e("div",X,t(s(i).totalSessions),1),e("div",Y,t(s(a)("usage.avgPerDay",{n:s(i).avgSessionsPerDay.toFixed(1)})),1)]),e("div",Z,[e("div",ee,t(s(a)("usage.estimatedCost")),1),e("div",te,t(k(s(i).estimatedCost)),1)]),e("div",se,[e("div",ae,t(s(a)("usage.cacheHitRate")),1),e("div",ne,t(s(i).cacheHitRate!==null?s(i).cacheHitRate.toFixed(1)+"%":"--"),1),s(i).cacheHitRate!==null?(d(),c("div",oe,t(v(s(i).totalCacheTokens))+" "+t(s(a)("usage.tokens")),1)):$("",!0)])]))}})})),bt=f((()=>{})),ut,xt=f((()=>{le(),le(),bt(),D(),ut=H(it,[["__scopeId","data-v-3a594781"]])})),ie,ue,re,_e,de,ce,pe,ve,he,ge,ke,rt,ye=f((()=>{C(),B(),A(),ie={class:"model-breakdown"},ue={class:"section-title"},re={class:"model-legend","aria-label":"Token type legend"},_e={class:"legend-item"},de={class:"legend-item"},ce={class:"legend-item"},pe={class:"model-list"},ve=["title"],he={class:"model-bar-wrap"},ge=["title"],ke={key:0},rt=R({__name:"ModelBreakdown",setup(p){const{t:a}=F(),i=U(),v=y(()=>Math.max(...i.modelUsage.map(h=>h.visualTokens),1));function k(h){return h>=1e6?(h/1e6).toFixed(1)+"M":h>=1e3?(h/1e3).toFixed(1)+"K":String(h)}function r(h){const u=h.inputTokens+h.cacheTokens;return u===0?"--":(h.cacheTokens/u*100).toFixed(1)+"%"}return(h,u)=>(d(),c("div",ie,[e("h3",ue,t(s(a)("usage.modelBreakdown")),1),e("div",re,[e("div",_e,[u[0]||(u[0]=e("span",{class:"legend-swatch input"},null,-1)),m(t(s(a)("usage.inputTokens")),1)]),e("div",de,[u[1]||(u[1]=e("span",{class:"legend-swatch output"},null,-1)),m(t(s(a)("usage.outputTokens")),1)]),e("div",ce,[u[2]||(u[2]=e("span",{class:"legend-swatch cache"},null,-1)),m(t(s(a)("usage.cacheRead")),1)])]),e("div",pe,[(d(!0),c(P,null,M(s(i).modelUsage,n=>(d(),c("div",{key:n.model,class:"model-row"},[e("span",{class:"model-swatch",style:T({background:n.color})},null,4),e("span",{class:"model-name",title:n.model},t(n.model),9,ve),e("div",he,[e("div",{class:"model-bar",style:T({width:n.visualTokens/v.value*100+"%"})},[n.inputTokens>0?(d(),c("div",{key:0,class:"model-bar-segment input",style:T({width:n.inputPercent+"%"})},null,4)):$("",!0),n.outputTokens>0?(d(),c("div",{key:1,class:"model-bar-segment output",style:T({width:n.outputPercent+"%"})},null,4)):$("",!0),n.cacheTokens>0?(d(),c("div",{key:2,class:"model-bar-segment cache",style:T({width:n.cachePercent+"%"})},null,4)):$("",!0)],4)]),e("span",{class:"model-tokens",title:`${s(a)("usage.inputTokens")}: ${k(n.inputTokens)} · ${s(a)("usage.outputTokens")}: ${k(n.outputTokens)} · ${s(a)("usage.cacheRead")}: ${k(n.cacheTokens)} · ${s(a)("usage.cacheHitRate")}: ${r(n)}`},[m(t(k(n.totalTokens))+" ",1),n.cacheTokens>0?(d(),c("small",ke,"+"+t(k(n.cacheTokens)),1)):$("",!0)],8,ge)]))),128))])]))}})})),St=f((()=>{})),_t,Pt=f((()=>{ye(),ye(),St(),D(),_t=H(rt,[["__scopeId","data-v-3aeb15c5"]])})),fe,Te,me,$e,we,be,xe,Se,Pe,Ce,Ue,dt,Me=f((()=>{C(),B(),A(),fe={class:"agent-breakdown"},Te={class:"section-title"},me={class:"agent-legend","aria-label":"Token type legend"},$e={class:"legend-item"},we={class:"legend-item"},be={class:"legend-item"},xe={class:"agent-list"},Se=["title"],Pe={class:"agent-bar-wrap"},Ce=["title"],Ue={key:0},dt=R({__name:"AgentBreakdown",setup(p){const{t:a}=F(),i=U(),v=y(()=>Math.max(...i.agentUsage.map(n=>n.visualTokens),1)),k={hermes:"hermes",claude_code:"claudeCode",codex:"codex",ekko_agent:"ekkoAgent"};function r(n){return a(`usage.agents.${k[n]||"unknown"}`)}function h(n){return n>=1e6?(n/1e6).toFixed(1)+"M":n>=1e3?(n/1e3).toFixed(1)+"K":String(n)}function u(n){const l=n.inputTokens+n.cacheTokens;return l===0?"--":(n.cacheTokens/l*100).toFixed(1)+"%"}return(n,l)=>(d(),c("div",fe,[e("h3",Te,t(s(a)("usage.agentBreakdown")),1),e("div",me,[e("div",$e,[l[0]||(l[0]=e("span",{class:"legend-swatch input"},null,-1)),m(t(s(a)("usage.inputTokens")),1)]),e("div",we,[l[1]||(l[1]=e("span",{class:"legend-swatch output"},null,-1)),m(t(s(a)("usage.outputTokens")),1)]),e("div",be,[l[2]||(l[2]=e("span",{class:"legend-swatch cache"},null,-1)),m(t(s(a)("usage.cacheRead")),1)])]),e("div",xe,[(d(!0),c(P,null,M(s(i).agentUsage,_=>(d(),c("div",{key:_.agent,class:"agent-row"},[e("span",{class:"agent-swatch",style:T({background:_.color})},null,4),e("span",{class:"agent-name",title:r(_.agent)},t(r(_.agent)),9,Se),e("div",Pe,[e("div",{class:"agent-bar",style:T({width:_.visualTokens/v.value*100+"%"})},[_.inputTokens>0?(d(),c("div",{key:0,class:"agent-bar-segment input",style:T({width:_.inputPercent+"%"})},null,4)):$("",!0),_.outputTokens>0?(d(),c("div",{key:1,class:"agent-bar-segment output",style:T({width:_.outputPercent+"%"})},null,4)):$("",!0),_.cacheTokens>0?(d(),c("div",{key:2,class:"agent-bar-segment cache",style:T({width:_.cachePercent+"%"})},null,4)):$("",!0)],4)]),e("span",{class:"agent-tokens",title:`${s(a)("usage.inputTokens")}: ${h(_.inputTokens)} · ${s(a)("usage.outputTokens")}: ${h(_.outputTokens)} · ${s(a)("usage.cacheRead")}: ${h(_.cacheTokens)} · ${s(a)("usage.cacheHitRate")}: ${u(_)}`},[m(t(h(_.totalTokens))+" ",1),_.cacheTokens>0?(d(),c("small",Ue,"+"+t(h(_.cacheTokens)),1)):$("",!0)],8,Ce)]))),128))])]))}})})),Ct=f((()=>{})),ct,Ut=f((()=>{Me(),Me(),Ct(),D(),ct=H(dt,[["__scopeId","data-v-21ce908b"]])})),Re,Be,Fe,De,He,Ae,Ie,Ve,Le,Ne,Oe,We,qe,ze,Ke,Ee,je,Ge,Je,pt,Qe=f((()=>{C(),B(),A(),Re={class:"daily-trend"},Be={class:"section-title"},Fe={class:"bar-chart"},De={class:"bar-track"},He={class:"bar-tooltip"},Ae={class:"tooltip-date"},Ie={class:"tooltip-row"},Ve={class:"tooltip-row"},Le={class:"tooltip-row"},Ne={class:"tooltip-row"},Oe={class:"tooltip-row"},We={class:"tooltip-row"},qe={class:"tooltip-row"},ze={class:"bar-dates"},Ke={class:"chart-legend","aria-label":"Token type legend"},Ee={class:"legend-item"},je={class:"legend-item"},Ge={class:"legend-item"},Je={class:"trend-table"},pt=R({__name:"DailyTrend",setup(p){const{t:a}=F(),i=U();function v(u){return u>=1e6?(u/1e6).toFixed(1)+"M":u>=1e3?(u/1e3).toFixed(1)+"K":String(u)}function k(u){return u===0?"$0.00":u<.01?"<$0.01":"$"+u.toFixed(2)}function r(u){const n=u.input_tokens+u.cache_read_tokens;return n===0?"--":(u.cache_read_tokens/n*100).toFixed(1)+"%"}const h=y(()=>Math.max(...i.dailyUsage.map(u=>u.visualTokens),1));return(u,n)=>(d(),c("div",Re,[e("h3",Be,t(s(a)("usage.dailyTrend")),1),e("div",Fe,[(d(!0),c(P,null,M(s(i).dailyUsage,l=>(d(),c("div",{key:l.date,class:"bar-col"},[e("div",De,[e("div",{class:"bar-stack",style:T({height:l.visualTokens/h.value*100+"%"})},[l.output_tokens>0?(d(),c("div",{key:0,class:"bar-segment output",style:T({height:l.outputPercent+"%"})},null,4)):$("",!0),l.input_tokens>0?(d(),c("div",{key:1,class:"bar-segment input",style:T({height:l.inputPercent+"%"})},null,4)):$("",!0),l.cache_read_tokens>0?(d(),c("div",{key:2,class:"bar-segment cache",style:T({height:l.cachePercent+"%"})},null,4)):$("",!0)],4)]),e("div",He,[e("div",Ae,t(l.date),1),e("div",Ie,t(s(a)("usage.inputTokens"))+": "+t(v(l.input_tokens)),1),e("div",Ve,t(s(a)("usage.outputTokens"))+": "+t(v(l.output_tokens)),1),e("div",Le,t(s(a)("usage.cacheRead"))+": "+t(v(l.cache_read_tokens)),1),e("div",Ne,t(s(a)("usage.cacheWrite"))+": "+t(v(l.cache_write_tokens)),1),e("div",Oe,t(s(a)("usage.cacheHitRate"))+": "+t(r(l)),1),e("div",We,t(s(a)("usage.sessions"))+": "+t(l.sessions),1),e("div",qe,t(s(a)("usage.cost"))+": "+t(k(l.cost)),1)])]))),128))]),e("div",ze,[e("span",null,t(s(i).dailyUsage[0]?.date.slice(5)),1),e("span",null,t(s(i).dailyUsage[s(i).dailyUsage.length-1]?.date.slice(5)),1)]),e("div",Ke,[e("div",Ee,[n[0]||(n[0]=e("span",{class:"legend-swatch input"},null,-1)),m(t(s(a)("usage.inputTokens")),1)]),e("div",je,[n[1]||(n[1]=e("span",{class:"legend-swatch output"},null,-1)),m(t(s(a)("usage.outputTokens")),1)]),e("div",Ge,[n[2]||(n[2]=e("span",{class:"legend-swatch cache"},null,-1)),m(t(s(a)("usage.cacheRead")),1)])]),e("div",Je,[e("table",null,[e("thead",null,[e("tr",null,[e("th",null,t(s(a)("usage.date")),1),e("th",null,t(s(a)("usage.inputTokens")),1),e("th",null,t(s(a)("usage.outputTokens")),1),e("th",null,t(s(a)("usage.cacheRead")),1),e("th",null,t(s(a)("usage.cacheWrite")),1),e("th",null,t(s(a)("usage.cacheHitRate")),1),e("th",null,t(s(a)("usage.sessions")),1),e("th",null,t(s(a)("usage.cost")),1)])]),e("tbody",null,[(d(!0),c(P,null,M([...s(i).dailyUsage].reverse(),l=>(d(),c("tr",{key:l.date},[e("td",null,t(l.date),1),e("td",null,t(v(l.input_tokens)),1),e("td",null,t(v(l.output_tokens)),1),e("td",null,t(v(l.cache_read_tokens)),1),e("td",null,t(v(l.cache_write_tokens)),1),e("td",null,t(r(l)),1),e("td",null,t(l.sessions),1),e("td",null,t(k(l.cost)),1)]))),128))])])])]))}})})),Mt=f((()=>{})),vt,Rt=f((()=>{Qe(),Qe(),Mt(),D(),vt=H(pt,[["__scopeId","data-v-4a037170"]])})),Xe,Ye,Ze,et,tt,st,at,nt,ht,ot=f((()=>{C(),kt(),B(),A(),wt(),xt(),Pt(),Ut(),Rt(),Xe={class:"usage-view"},Ye={class:"page-header"},Ze={class:"header-title"},et={class:"usage-toolbar"},tt={class:"period-selector",role:"group","aria-label":"Usage statistics period"},st={class:"usage-content"},at={key:0,class:"usage-loading"},nt={key:2,class:"usage-empty"},ht=R({__name:"UsageView",setup(p){const{t:a}=F(),i=U(),v=$t(),k=[{label:"7d",days:7},{label:"30d",days:30},{label:"90d",days:90},{label:"365d",days:365}],r=V(30);async function h(){(!v.activeProfileName||v.profiles.length===0)&&await v.fetchProfiles()}async function u(n=r.value){r.value=n,await h(),await i.loadSessions(n)}return gt(()=>{u(30)}),(n,l)=>(d(),c("div",Xe,[e("header",Ye,[e("h2",Ze,t(s(a)("usage.title")),1),e("div",et,[e("div",tt,[(d(),c(P,null,M(k,_=>S(s(q),{key:_.days,class:"period-option",size:"small",type:r.value===_.days?"primary":"default",secondary:r.value===_.days,quaternary:r.value!==_.days,"aria-pressed":r.value===_.days,onClick:N=>u(_.days)},{default:W(()=>[m(t(_.label),1)]),_:2},1032,["type","secondary","quaternary","aria-pressed","onClick"])),64))]),S(s(q),{class:"refresh-button",size:"small",quaternary:"",loading:s(i).isLoading,onClick:l[0]||(l[0]=_=>u())},{default:W(()=>[m(t(s(a)("usage.refresh")),1)]),_:1},8,["loading"])])]),e("div",st,[s(i).isLoading&&!s(i).hasData?(d(),c("div",at,t(s(a)("common.loading")),1)):s(i).hasData?(d(),c(P,{key:1},[S(ut),S(_t),S(ct),S(vt)],64)):(d(),c("div",nt,t(s(a)("usage.noData")),1))])]))}})})),Bt=f((()=>{})),Ft,Dt=f((()=>{ot(),ot(),Bt(),D(),Ft=H(ht,[["__scopeId","data-v-9b767c2b"]])}));Dt();export{Ft as default};
|
package/dist/client/assets/js/{VersionPreviewView-DiAK1ind.js → VersionPreviewView-DKXL6anl.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$i as n,$t as b,Bi as Ve,Ct as Te,Di as ee,Hi as I,M as ke,Nr as ae,Pr as te,Sa as s,Ti as l,Vi as Ce,Zi as M,_a as e,_i as r,b as Be,bi as ie,c as Ie,d as Ne,dn as B,f as De,gi as P,gt as Le,h as $e,ln as Ge,n as se,s as Me,si as le,st as Oe,t as ne,ua as g,vi as je,wa as f,wi as v,x as ze,xt as d,yi as Ae,zt as Ee}from"./index-
|
|
1
|
+
import{$i as n,$t as b,Bi as Ve,Ct as Te,Di as ee,Hi as I,M as ke,Nr as ae,Pr as te,Sa as s,Ti as l,Vi as Ce,Zi as M,_a as e,_i as r,b as Be,bi as ie,c as Ie,d as Ne,dn as B,f as De,gi as P,gt as Le,h as $e,ln as Ge,n as se,s as Me,si as le,st as Oe,t as ne,ua as g,vi as je,wa as f,wi as v,x as ze,xt as d,yi as Ae,zt as Ee}from"./index-DN4SafrP.js";var O,j,z,A,E,R,H,F,J,K,U,ue,q=f((()=>{le(),ke(),ae(),Ne(),O={class:"github-preview-settings"},j={class:"settings-section"},z={class:"control-row"},A={class:"section-description"},E=["href"],R={class:"log-output"},H={class:"log-output-header"},F={class:"log-box"},J={class:"log-title"},K={class:"log-box"},U={class:"log-title"},ue=ee({__name:"GithubPreviewSettings",setup(ce){const{t:a}=te(),p=Le(),y=g(!1),m=g(!1),S=g(""),x=g([]),_=g(""),t=g(null),V=g(""),N=g(!1);let h=null;const _e=P(()=>x.value.map(i=>({label:i.name,value:i.name}))),ve=P(()=>t.value?.action_log||""),de=P(()=>t.value?.dev_log||""),w=P(()=>S.value||t.value?.active_action||""),T=P(()=>!!w.value),ge={prepare:"githubPreview.prepareSuccess",install:"githubPreview.installSuccess",start:"githubPreview.startSuccess",stop:"githubPreview.stopSuccess"};function pe(i){const o=String(i?.message||""),c=o.indexOf("{");if(!(c<0))try{const u=JSON.parse(o.slice(c));u&&typeof u=="object"&&"preview_dir"in u&&(t.value=u)}catch{}}function C(i,o){return i==="node_environment_missing"?a("githubPreview.nodeEnvironmentMissing"):o||a("githubPreview.actionFailed")}function fe(i){const o=String(i?.message||""),c=o.indexOf("{");if(c<0)return null;try{const u=JSON.parse(o.slice(c));return u&&typeof u=="object"?u:null}catch{return null}}async function D(){t.value=await Me(),!_.value&&t.value.current_tag&&(_.value=t.value.current_tag)}async function he(){m.value=!0;try{x.value=(await Ie()).tags,!_.value&&x.value[0]&&(_.value=x.value[0].name)}finally{m.value=!1}}async function L(){y.value=!0;try{await Promise.all([D(),he()])}finally{y.value=!1}}async function k(i,o,c){S.value=i;try{const u=await o();if(t.value=u,u.success===!1){p.warning(C(u.code,u.message));return}!u.accepted&&!u.active_action&&p.success(a(c))}catch(u){pe(u);const G=fe(u);p.error(C(G?.code,G?.message||u?.message))}finally{S.value=""}}async function we(){try{await D()}catch{}}function be(){h||(h=window.setInterval(()=>{we()},2e3))}function $(){h&&(window.clearInterval(h),h=null)}function Pe(){return _.value?_.value:(p.warning(a("githubPreview.selectTag")),null)}async function ye(){const i=Pe();i&&await k("prepare",()=>$e(i),"githubPreview.prepareSuccess")}async function me(){await k("install",async()=>{const i=await De();return i.success!==!1&&!i.accepted&&!i.active_action&&!i.installed?{...i,success:!1,message:i.message||a("githubPreview.actionFailed")}:i},"githubPreview.installSuccess")}async function Se(){await k("start",()=>Be(_.value||void 0),"githubPreview.startSuccess")}async function xe(){await k("stop",ze,"githubPreview.stopSuccess")}return Ve(async()=>{await L(),V.value=t.value?.last_action_completed_at||"",N.value=!0}),Ce(()=>{$()}),M(()=>t.value?.active_action||"",i=>{i?be():$()}),M(()=>t.value?.last_action_completed_at||"",i=>{if(!i)return;if(!N.value){V.value=i;return}if(i===V.value||S.value)return;V.value=i;const o=t.value?.last_action||"";if(t.value?.last_action_success===!1){p.error(C(t.value.last_action_code,t.value.last_action_message));return}const c=ge[o];c&&p.success(a(c))}),(i,o)=>(I(),ie("div",O,[r("div",j,[r("div",z,[l(e(Ee),{value:_.value,"onUpdate:value":o[0]||(o[0]=c=>_.value=c),class:"tag-select",filterable:"",loading:m.value,options:_e.value,placeholder:e(a)("githubPreview.selectTag")},null,8,["value","loading","options","placeholder"]),l(e(Oe),null,{default:n(()=>[l(e(b),{type:"primary",loading:w.value==="prepare",disabled:T.value||!_.value,onClick:ye},{default:n(()=>[v(s(e(a)("githubPreview.prepare")),1)]),_:1},8,["loading","disabled"]),l(e(b),{loading:w.value==="install",disabled:T.value||!t.value?.has_package,onClick:me},{default:n(()=>[v(s(e(a)("githubPreview.install")),1)]),_:1},8,["loading","disabled"]),l(e(b),{type:"success",loading:w.value==="start",disabled:T.value||!t.value?.installed,onClick:Se},{default:n(()=>[v(s(e(a)("githubPreview.start")),1)]),_:1},8,["loading","disabled"]),l(e(b),{loading:w.value==="stop",disabled:T.value||!t.value?.running,onClick:xe},{default:n(()=>[v(s(e(a)("githubPreview.stop")),1)]),_:1},8,["loading","disabled"]),l(e(b),{loading:y.value||m.value,onClick:L},{default:n(()=>[v(s(e(a)("githubPreview.refresh")),1)]),_:1},8,["loading"])]),_:1})]),r("p",A,s(e(a)("githubPreview.description")),1),l(e(Ge),{type:"info",bordered:!1,class:"preview-note"},{default:n(()=>[v(s(e(a)("githubPreview.note")),1)]),_:1}),t.value?(I(),je(e(Te),{key:0,column:1,bordered:"",size:"small",class:"status-table"},{default:n(()=>[l(e(d),{label:e(a)("githubPreview.path")},{default:n(()=>[r("code",null,s(t.value.preview_dir),1)]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.webuiHome")},{default:n(()=>[r("code",null,s(t.value.webui_home),1)]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.currentTag")},{default:n(()=>[v(s(t.value.current_tag||"-"),1)]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.repoReady")},{default:n(()=>[l(e(B),{size:"small",type:t.value.has_package?"success":"default"},{default:n(()=>[v(s(t.value.has_package?e(a)("githubPreview.yes"):e(a)("githubPreview.no")),1)]),_:1},8,["type"])]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.dependencies")},{default:n(()=>[l(e(B),{size:"small",type:t.value.installed?"success":"warning"},{default:n(()=>[v(s(t.value.installed?e(a)("githubPreview.yes"):e(a)("githubPreview.no")),1)]),_:1},8,["type"])]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.running")},{default:n(()=>[l(e(B),{size:"small",type:t.value.running?"success":"default"},{default:n(()=>[v(s(t.value.running?`PID ${t.value.pid}`:e(a)("githubPreview.notRunning")),1)]),_:1},8,["type"])]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.open")},{default:n(()=>[r("a",{href:t.value.frontend_url,target:"_blank",rel:"noopener noreferrer"},s(t.value.frontend_url),9,E)]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.log")},{default:n(()=>[r("code",null,s(t.value.action_log_path),1)]),_:1},8,["label"]),l(e(d),{label:e(a)("githubPreview.devLog")},{default:n(()=>[r("code",null,s(t.value.dev_log_path),1)]),_:1},8,["label"])]),_:1})):Ae("",!0),r("div",R,[r("div",H,s(e(a)("githubPreview.logOutput")),1),r("div",F,[r("div",J,s(e(a)("githubPreview.actionLog")),1),r("pre",null,s(ve.value||"-"),1)]),r("div",K,[r("div",U,s(e(a)("githubPreview.devLog")),1),r("pre",null,s(de.value||"-"),1)])])])]))}})})),Re=f((()=>{})),re,He=f((()=>{q(),q(),Re(),se(),re=ne(ue,[["__scopeId","data-v-721cf76a"]])})),Z,Q,W,X,oe,Y=f((()=>{le(),ae(),He(),Z={class:"version-preview-view"},Q={class:"page-header"},W={class:"header-title"},X={class:"page-content"},oe=ee({__name:"VersionPreviewView",setup(ce){const{t:a}=te();return(p,y)=>(I(),ie("div",Z,[r("header",Q,[r("h2",W,s(e(a)("githubPreview.title")),1)]),r("div",X,[l(re)])]))}})})),Fe=f((()=>{})),Je,Ke=f((()=>{Y(),Y(),Fe(),se(),Je=ne(oe,[["__scopeId","data-v-1447333d"]])}));Ke();export{Je as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Bi as et,Di as tt,Fi as nt,Gr as at,Hi as it,Kr as ot,Nr as rt,Pr as lt,Qr as st,Ta as ut,Vi as ct,Vr as dt,Zi as X,_a as We,_i as J,ai as vt,bi as ft,di as pt,ea as mt,gi as d,n as wt,ni as _t,oi as ht,pi as g,qr as gt,ri as Pt,si as ze,t as yt,ua as r,wa as N,xa as St,ya as bt,zr as xt}from"./index-DnjQJzX4.js";import{n as Wt,t as kt}from"./esm-C8D4M0Yn.js";import{r as Tt,t as Mt}from"./profiles-D-vlI-Ec.js";import{n as Dt,t as It}from"./pets-BfRsvl7D.js";var At,Et=N((()=>{At="/icons/pet-resize.svg"}));function zt(i){return i||at()||"default"}function fe(i){const l=zt(i);return _&&ee===l||(_&&(_.disconnect(),_=null),ee=l,_=Wt(`${gt()}/pet-state`,{auth:{token:ot()},query:{profile:l},transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:3e4,randomizationFactor:.5,timeout:3e4})),_}function Rt(){_?.disconnect(),_=null,ee=null}function Xt(i,l){const s=fe(l);return s.on("pet.state.snapshot",i),s.on("pet.state.updated",i),()=>{s.off("pet.state.snapshot",i),s.off("pet.state.updated",i)}}function Ct(i){const l=fe(i);return new Promise((s,P)=>{l.timeout(1e4).emit("pet.state.get",(p,c)=>{if(p){P(p);return}s(c)})})}var _,ee,Nt=N((()=>{kt(),st(),_=null,ee=null}));function $t(i="default"){return{profile:i,state:"idle",activity:{},updatedAt:Date.now(),activeTools:[],awaiting:[]}}var Re,Bt=N((()=>{ze(),ht(),Nt(),Re=vt("petState",()=>{const i=r($t()),l=r(!1),s=r("");let P=null;const p=d(()=>i.value.state),c=d(()=>i.value.activity);async function T(M){u(),s.value="";const m=fe(M);m.on("connect",()=>{l.value=!0,s.value=""}),m.on("disconnect",()=>{l.value=!1}),m.on("connect_error",h=>{l.value=!1,s.value=h.message}),P=Xt(h=>{i.value=h},M);try{i.value=await Ct(M)}catch(h){s.value=h instanceof Error?h.message:String(h)}}function u(){P?.(),P=null,Rt(),l.value=!1}return{activity:c,connect:T,connected:l,disconnect:u,error:s,snapshot:i,state:p}})})),ke,Te,Q,Z,Me,De,Ie,Ae,C,Xe,Ee=N((()=>{ze(),Et(),_t(),rt(),It(),Bt(),Mt(),dt(),ke=["aria-label"],Te=["aria-label","title"],Q=.18,Z=1.2,Me=.06,De=350,Ie=180,Ae=520,C=80,Xe=tt({__name:"WebPet",props:{desktopWindow:{type:Boolean}},setup(i){const l=i,s=Pt(),{t:P}=lt(),p=Dt(),c=Re(),T=Tt(),u=xt(),M=r(null),m=r(null),h=r(0),o=r({x:0,y:0}),y=r(.33),b=r(!1),S=r(!1),te=r({x:0,y:0}),ne=r({pointerX:0,width:0}),pe=r({width:0,height:0,dpr:0}),$=r(0),Y=r("idle"),D=r("");let K=null,B=null,L=null,I=null,ae=0,ie="",oe=null,re=null;const n=d(()=>l.desktopWindow===!0),O=d(()=>!n.value&&s.name==="login"),v=d(()=>p.activePet),A=d(()=>!O.value&&!!v.value?.enabled&&!!m.value),me=d(()=>v.value?.frameW||192),Ne=d(()=>v.value?.frameH||208),x=d(()=>Math.round(me.value*y.value)),E=d(()=>Math.round(Ne.value*y.value)),we=d(()=>{const e=v.value;if(!e)return 0;if(D.value){const k=e.stateRows.indexOf(D.value);if(k>=0)return k}const t=Y.value,a=t==="run"?"running":t==="wave"?"waving":t==="jump"?"jumping":t,f=e.stateRows.indexOf(a);return f>=0?f:0}),$e=d(()=>n.value?{left:`${C/2}px`,top:`${C/2}px`,width:`${x.value}px`,height:`${E.value}px`}:{left:`${o.value.x}px`,top:`${o.value.y}px`,width:`${x.value}px`,height:`${E.value}px`});function j(e,t,a){return Math.min(a,Math.max(t,e))}function z(e){if(n.value)return{x:Math.round(e.x),y:Math.round(e.y)};const t=Math.max(0,window.innerWidth-x.value),a=Math.max(0,window.innerHeight-E.value);return{x:Math.round(j(e.x,0,t)),y:Math.round(j(e.y,0,a))}}function _e(){return n.value?{x:Math.round(window.screenX||0),y:Math.round(window.screenY||0)}:z({x:window.innerWidth-x.value-28,y:window.innerHeight-E.value-28})}function Be(e){y.value=j(e.scale||.33,Q,Z),o.value=e.position?z(e.position):_e(),n.value&&V(!1)}function Le(){return{x:o.value.x,y:o.value.y,width:x.value+C,height:E.value+C}}function U(){return n.value?C/2:0}async function V(e=A.value){if(!n.value||!u?.setPetWindowBounds)return;const t=await u.setPetWindowBounds(Le());o.value={x:t.bounds.x,y:t.bounds.y},e&&u.setPetWindowVisible&&await u.setPetWindowVisible(!0)}async function le(e){!n.value||!u?.setPetWindowVisible||await u.setPetWindowVisible(e)}async function Oe(){if(!n.value||!u?.getPetWindowState||v.value?.position)return;const e=await u.getPetWindowState();o.value={x:e.bounds.x,y:e.bounds.y}}async function je(){if(!n.value||localStorage.getItem("hermes_api_key"))return;const e=await u?.getToken?.().catch(()=>"");if(e)try{localStorage.setItem("AUTH_TOKEN",e);const t=await(await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({username:"admin",password:"123456"})})).json().catch(()=>null),a=t?.token||t?.jwt;a&&localStorage.setItem("hermes_api_key",a)}catch{}for(let t=0;t<20&&!localStorage.getItem("hermes_api_key");t+=1)await new Promise(a=>window.setTimeout(a,100))}function w(){const e=M.value,t=v.value,a=m.value;if(!e||!t||!a)return;const f=window.devicePixelRatio||1,k=x.value,G=E.value,ce=Math.max(1,Math.round(k*f)),de=Math.max(1,Math.round(G*f)),ve=pe.value;(ve.width!==ce||ve.height!==de||ve.dpr!==f)&&(e.width=ce,e.height=de,e.style.width=`${k}px`,e.style.height=`${G}px`,pe.value={width:ce,height:de,dpr:f});const H=e.getContext("2d");H&&(H.setTransform(f,0,0,f,0,0),H.clearRect(0,0,k,G),H.imageSmoothingEnabled=!0,H.drawImage(a,$.value*t.frameW,we.value*t.frameH,t.frameW,t.frameH,0,0,k,G))}function Ve(){F();const e=v.value;if(!e)return;const t=Math.max(80,Math.round(e.loopMs/e.framesPerState));K=window.setInterval(()=>{$.value=($.value+1)%e.framesPerState,w()},t)}function F(){K!=null&&(window.clearInterval(K),K=null)}function R(){B!=null&&window.clearTimeout(B),B=window.setTimeout(()=>{p.savePreferences({scale:y.value,position:o.value})},De)}function q(){L!=null&&(window.clearTimeout(L),L=null)}function he(){I!=null&&(window.clearTimeout(I),I=null)}function ge(e){Y.value!==e&&(D.value="",Y.value=e,ae=Date.now(),$.value=0,w())}function Pe(e,t){q(),he(),ge(e),t&&(I=window.setTimeout(()=>{I=null,se(c.state)},t))}function He(e){const t=v.value?.loopMs||1100;return e==="jump"?t+40:t}function se(e){if(I!=null)return;if(Y.value===e){q();return}q();const t=e==="failed"||e==="waiting"||e==="wave"||e==="jump",a=Date.now()-ae,f=t?0:Math.max(Ie,Ae-a);L=window.setTimeout(()=>{L=null,c.state===e&&ge(e)},f)}function Ye(e){!A.value||S.value||(b.value=!0,Pe("run"),D.value="",te.value={x:(n.value?e.screenX:e.clientX)-o.value.x-U(),y:(n.value?e.screenY:e.clientY)-o.value.y-U()},e.currentTarget.setPointerCapture(e.pointerId))}function Ke(e){if(!b.value||S.value)return;const t=o.value.x;o.value=z({x:(n.value?e.screenX:e.clientX)-te.value.x-U(),y:(n.value?e.screenY:e.clientY)-te.value.y-U()});const a=o.value.x-t;Math.abs(a)>=1&&(D.value=a<0?"running-left":"running-right",w()),n.value&&V(!1),R()}function ye(e){b.value&&(b.value=!1,D.value="",e.currentTarget.releasePointerCapture(e.pointerId),R(),se(c.state))}function Ue(){A.value&&Pe("jump",He("jump"))}function Fe(e){const t={...o.value};y.value=j(e,Q,Z),o.value=z(t),w(),n.value&&V(),R()}function qe(e){A.value&&(S.value=!0,b.value=!1,ne.value={pointerX:n.value?e.screenX:e.clientX,width:x.value},e.currentTarget.setPointerCapture(e.pointerId))}function Ge(e){if(!S.value)return;const t=n.value?e.screenX:e.clientX;y.value=j((ne.value.width+t-ne.value.pointerX)/me.value,Q,Z),o.value=z(o.value),w(),n.value&&V(),R()}function Se(e){S.value&&(S.value=!1,e.currentTarget.releasePointerCapture(e.pointerId),R())}function Je(e){e.preventDefault(),Fe(y.value+(e.deltaY<0?Me:-.06))}async function Qe(){b.value=!1,S.value=!1,await p.hideActivePet(),await le(!1)}function be(){if(n.value){w();return}o.value=v.value?.position?z(o.value):_e(),w(),R()}function W(){c.disconnect(),oe=null}async function xe(e){const t=e||T.activeProfileName||localStorage.getItem("hermes_active_profile_name")||"default";oe!==t&&(W(),oe=t,await c.connect(t))}async function ue(e){O.value||(W(),await je(),await Oe(),(await p.loadActivePet())?.enabled&&await xe(e))}function Ze(){n.value&&ue(T.activeProfileName||localStorage.getItem("hermes_active_profile_name")||"default")}return X(()=>T.activeProfileName,e=>{!e||O.value||ue(e)}),X(O,e=>{if(e){c.disconnect(),p.clear();return}ue(T.activeProfileName||localStorage.getItem("hermes_active_profile_name")||"default")},{immediate:!0}),X(v,e=>{if(!e){F(),m.value=null,ie="",W();return}const t=`${e.slug}:${e.spritesheetRevision}`;if(Be(e),e.enabled&&!O.value&&xe(),t===ie&&m.value){w();return}F(),m.value=null,ie=t;const a=new Image;a.onload=()=>{m.value=a,h.value=e.spritesheetRevision,$.value=0,nt(()=>{w(),Ve()})},a.src=e.spritesheetDataUrl},{immediate:!0}),X([we,y],()=>w()),X(()=>c.state,e=>se(e),{immediate:!0}),X(A,e=>{n.value&&(e?V(!0):le(!1))},{immediate:!0}),et(()=>{ae=Date.now(),re=u?.onPetWindowRefresh?.(Ze)||null,window.addEventListener("resize",be),window.addEventListener("pagehide",W),window.addEventListener("beforeunload",W)}),ct(()=>{re?.(),re=null,F(),B!=null&&window.clearTimeout(B),q(),he(),c.disconnect(),le(!1),window.removeEventListener("resize",be),window.removeEventListener("pagehide",W),window.removeEventListener("beforeunload",W)}),(e,t)=>mt((it(),ft("div",{class:bt(["web-pet",{dragging:b.value,resizing:S.value,"desktop-window":n.value}]),style:St($e.value),onPointerdown:Ye,onPointermove:Ke,onPointerup:ye,onPointercancel:ye,onWheel:Je,onDblclick:Ue},[J("canvas",{ref_key:"canvasRef",ref:M,class:"web-pet-canvas","aria-label":v.value?.displayName||"Pet"},null,8,ke),J("button",{type:"button",class:"web-pet-close","aria-label":We(P)("common.delete"),title:We(P)("common.delete"),onClick:g(Qe,["stop"]),onPointerdown:t[0]||(t[0]=g(()=>{},["stop"])),onPointermove:t[1]||(t[1]=g(()=>{},["stop"])),onPointerup:t[2]||(t[2]=g(()=>{},["stop"])),onPointercancel:t[3]||(t[3]=g(()=>{},["stop"]))}," × ",40,Te),J("button",{type:"button",class:"web-pet-resize","aria-label":"Resize pet",onPointerdown:g(qe,["stop"]),onPointermove:g(Ge,["stop"]),onPointerup:g(Se,["stop"]),onPointercancel:g(Se,["stop"])},[...t[4]||(t[4]=[J("img",{src:"/icons/pet-resize.svg",alt:"",draggable:"false"},null,-1)])],32)],38)),[[pt,A.value]])}})})),Lt=N((()=>{})),qt=ut({default:()=>Ce}),Ce,Gt=N((()=>{Ee(),Ee(),Lt(),wt(),Ce=yt(Xe,[["__scopeId","data-v-1ae1f020"]])}));export{qt as n,Gt as r,Ce as t};
|
|
1
|
+
import{Bi as et,Di as tt,Fi as nt,Gr as at,Hi as it,Kr as ot,Nr as rt,Pr as lt,Qr as st,Ta as ut,Vi as ct,Vr as dt,Zi as X,_a as We,_i as J,ai as vt,bi as ft,di as pt,ea as mt,gi as d,n as wt,ni as _t,oi as ht,pi as g,qr as gt,ri as Pt,si as ze,t as yt,ua as r,wa as N,xa as St,ya as bt,zr as xt}from"./index-DN4SafrP.js";import{n as Wt,t as kt}from"./esm-DnZPPtmx.js";import{r as Tt,t as Mt}from"./profiles-BK5JKD7h.js";import{n as Dt,t as It}from"./pets-D74G2jqA.js";var At,Et=N((()=>{At="/icons/pet-resize.svg"}));function zt(i){return i||at()||"default"}function fe(i){const l=zt(i);return _&&ee===l||(_&&(_.disconnect(),_=null),ee=l,_=Wt(`${gt()}/pet-state`,{auth:{token:ot()},query:{profile:l},transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:3e4,randomizationFactor:.5,timeout:3e4})),_}function Rt(){_?.disconnect(),_=null,ee=null}function Xt(i,l){const s=fe(l);return s.on("pet.state.snapshot",i),s.on("pet.state.updated",i),()=>{s.off("pet.state.snapshot",i),s.off("pet.state.updated",i)}}function Ct(i){const l=fe(i);return new Promise((s,P)=>{l.timeout(1e4).emit("pet.state.get",(p,c)=>{if(p){P(p);return}s(c)})})}var _,ee,Nt=N((()=>{kt(),st(),_=null,ee=null}));function $t(i="default"){return{profile:i,state:"idle",activity:{},updatedAt:Date.now(),activeTools:[],awaiting:[]}}var Re,Bt=N((()=>{ze(),ht(),Nt(),Re=vt("petState",()=>{const i=r($t()),l=r(!1),s=r("");let P=null;const p=d(()=>i.value.state),c=d(()=>i.value.activity);async function T(M){u(),s.value="";const m=fe(M);m.on("connect",()=>{l.value=!0,s.value=""}),m.on("disconnect",()=>{l.value=!1}),m.on("connect_error",h=>{l.value=!1,s.value=h.message}),P=Xt(h=>{i.value=h},M);try{i.value=await Ct(M)}catch(h){s.value=h instanceof Error?h.message:String(h)}}function u(){P?.(),P=null,Rt(),l.value=!1}return{activity:c,connect:T,connected:l,disconnect:u,error:s,snapshot:i,state:p}})})),ke,Te,Q,Z,Me,De,Ie,Ae,C,Xe,Ee=N((()=>{ze(),Et(),_t(),rt(),It(),Bt(),Mt(),dt(),ke=["aria-label"],Te=["aria-label","title"],Q=.18,Z=1.2,Me=.06,De=350,Ie=180,Ae=520,C=80,Xe=tt({__name:"WebPet",props:{desktopWindow:{type:Boolean}},setup(i){const l=i,s=Pt(),{t:P}=lt(),p=Dt(),c=Re(),T=Tt(),u=xt(),M=r(null),m=r(null),h=r(0),o=r({x:0,y:0}),y=r(.33),b=r(!1),S=r(!1),te=r({x:0,y:0}),ne=r({pointerX:0,width:0}),pe=r({width:0,height:0,dpr:0}),$=r(0),Y=r("idle"),D=r("");let K=null,B=null,L=null,I=null,ae=0,ie="",oe=null,re=null;const n=d(()=>l.desktopWindow===!0),O=d(()=>!n.value&&s.name==="login"),v=d(()=>p.activePet),A=d(()=>!O.value&&!!v.value?.enabled&&!!m.value),me=d(()=>v.value?.frameW||192),Ne=d(()=>v.value?.frameH||208),x=d(()=>Math.round(me.value*y.value)),E=d(()=>Math.round(Ne.value*y.value)),we=d(()=>{const e=v.value;if(!e)return 0;if(D.value){const k=e.stateRows.indexOf(D.value);if(k>=0)return k}const t=Y.value,a=t==="run"?"running":t==="wave"?"waving":t==="jump"?"jumping":t,f=e.stateRows.indexOf(a);return f>=0?f:0}),$e=d(()=>n.value?{left:`${C/2}px`,top:`${C/2}px`,width:`${x.value}px`,height:`${E.value}px`}:{left:`${o.value.x}px`,top:`${o.value.y}px`,width:`${x.value}px`,height:`${E.value}px`});function j(e,t,a){return Math.min(a,Math.max(t,e))}function z(e){if(n.value)return{x:Math.round(e.x),y:Math.round(e.y)};const t=Math.max(0,window.innerWidth-x.value),a=Math.max(0,window.innerHeight-E.value);return{x:Math.round(j(e.x,0,t)),y:Math.round(j(e.y,0,a))}}function _e(){return n.value?{x:Math.round(window.screenX||0),y:Math.round(window.screenY||0)}:z({x:window.innerWidth-x.value-28,y:window.innerHeight-E.value-28})}function Be(e){y.value=j(e.scale||.33,Q,Z),o.value=e.position?z(e.position):_e(),n.value&&V(!1)}function Le(){return{x:o.value.x,y:o.value.y,width:x.value+C,height:E.value+C}}function U(){return n.value?C/2:0}async function V(e=A.value){if(!n.value||!u?.setPetWindowBounds)return;const t=await u.setPetWindowBounds(Le());o.value={x:t.bounds.x,y:t.bounds.y},e&&u.setPetWindowVisible&&await u.setPetWindowVisible(!0)}async function le(e){!n.value||!u?.setPetWindowVisible||await u.setPetWindowVisible(e)}async function Oe(){if(!n.value||!u?.getPetWindowState||v.value?.position)return;const e=await u.getPetWindowState();o.value={x:e.bounds.x,y:e.bounds.y}}async function je(){if(!n.value||localStorage.getItem("hermes_api_key"))return;const e=await u?.getToken?.().catch(()=>"");if(e)try{localStorage.setItem("AUTH_TOKEN",e);const t=await(await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({username:"admin",password:"123456"})})).json().catch(()=>null),a=t?.token||t?.jwt;a&&localStorage.setItem("hermes_api_key",a)}catch{}for(let t=0;t<20&&!localStorage.getItem("hermes_api_key");t+=1)await new Promise(a=>window.setTimeout(a,100))}function w(){const e=M.value,t=v.value,a=m.value;if(!e||!t||!a)return;const f=window.devicePixelRatio||1,k=x.value,G=E.value,ce=Math.max(1,Math.round(k*f)),de=Math.max(1,Math.round(G*f)),ve=pe.value;(ve.width!==ce||ve.height!==de||ve.dpr!==f)&&(e.width=ce,e.height=de,e.style.width=`${k}px`,e.style.height=`${G}px`,pe.value={width:ce,height:de,dpr:f});const H=e.getContext("2d");H&&(H.setTransform(f,0,0,f,0,0),H.clearRect(0,0,k,G),H.imageSmoothingEnabled=!0,H.drawImage(a,$.value*t.frameW,we.value*t.frameH,t.frameW,t.frameH,0,0,k,G))}function Ve(){F();const e=v.value;if(!e)return;const t=Math.max(80,Math.round(e.loopMs/e.framesPerState));K=window.setInterval(()=>{$.value=($.value+1)%e.framesPerState,w()},t)}function F(){K!=null&&(window.clearInterval(K),K=null)}function R(){B!=null&&window.clearTimeout(B),B=window.setTimeout(()=>{p.savePreferences({scale:y.value,position:o.value})},De)}function q(){L!=null&&(window.clearTimeout(L),L=null)}function he(){I!=null&&(window.clearTimeout(I),I=null)}function ge(e){Y.value!==e&&(D.value="",Y.value=e,ae=Date.now(),$.value=0,w())}function Pe(e,t){q(),he(),ge(e),t&&(I=window.setTimeout(()=>{I=null,se(c.state)},t))}function He(e){const t=v.value?.loopMs||1100;return e==="jump"?t+40:t}function se(e){if(I!=null)return;if(Y.value===e){q();return}q();const t=e==="failed"||e==="waiting"||e==="wave"||e==="jump",a=Date.now()-ae,f=t?0:Math.max(Ie,Ae-a);L=window.setTimeout(()=>{L=null,c.state===e&&ge(e)},f)}function Ye(e){!A.value||S.value||(b.value=!0,Pe("run"),D.value="",te.value={x:(n.value?e.screenX:e.clientX)-o.value.x-U(),y:(n.value?e.screenY:e.clientY)-o.value.y-U()},e.currentTarget.setPointerCapture(e.pointerId))}function Ke(e){if(!b.value||S.value)return;const t=o.value.x;o.value=z({x:(n.value?e.screenX:e.clientX)-te.value.x-U(),y:(n.value?e.screenY:e.clientY)-te.value.y-U()});const a=o.value.x-t;Math.abs(a)>=1&&(D.value=a<0?"running-left":"running-right",w()),n.value&&V(!1),R()}function ye(e){b.value&&(b.value=!1,D.value="",e.currentTarget.releasePointerCapture(e.pointerId),R(),se(c.state))}function Ue(){A.value&&Pe("jump",He("jump"))}function Fe(e){const t={...o.value};y.value=j(e,Q,Z),o.value=z(t),w(),n.value&&V(),R()}function qe(e){A.value&&(S.value=!0,b.value=!1,ne.value={pointerX:n.value?e.screenX:e.clientX,width:x.value},e.currentTarget.setPointerCapture(e.pointerId))}function Ge(e){if(!S.value)return;const t=n.value?e.screenX:e.clientX;y.value=j((ne.value.width+t-ne.value.pointerX)/me.value,Q,Z),o.value=z(o.value),w(),n.value&&V(),R()}function Se(e){S.value&&(S.value=!1,e.currentTarget.releasePointerCapture(e.pointerId),R())}function Je(e){e.preventDefault(),Fe(y.value+(e.deltaY<0?Me:-.06))}async function Qe(){b.value=!1,S.value=!1,await p.hideActivePet(),await le(!1)}function be(){if(n.value){w();return}o.value=v.value?.position?z(o.value):_e(),w(),R()}function W(){c.disconnect(),oe=null}async function xe(e){const t=e||T.activeProfileName||localStorage.getItem("hermes_active_profile_name")||"default";oe!==t&&(W(),oe=t,await c.connect(t))}async function ue(e){O.value||(W(),await je(),await Oe(),(await p.loadActivePet())?.enabled&&await xe(e))}function Ze(){n.value&&ue(T.activeProfileName||localStorage.getItem("hermes_active_profile_name")||"default")}return X(()=>T.activeProfileName,e=>{!e||O.value||ue(e)}),X(O,e=>{if(e){c.disconnect(),p.clear();return}ue(T.activeProfileName||localStorage.getItem("hermes_active_profile_name")||"default")},{immediate:!0}),X(v,e=>{if(!e){F(),m.value=null,ie="",W();return}const t=`${e.slug}:${e.spritesheetRevision}`;if(Be(e),e.enabled&&!O.value&&xe(),t===ie&&m.value){w();return}F(),m.value=null,ie=t;const a=new Image;a.onload=()=>{m.value=a,h.value=e.spritesheetRevision,$.value=0,nt(()=>{w(),Ve()})},a.src=e.spritesheetDataUrl},{immediate:!0}),X([we,y],()=>w()),X(()=>c.state,e=>se(e),{immediate:!0}),X(A,e=>{n.value&&(e?V(!0):le(!1))},{immediate:!0}),et(()=>{ae=Date.now(),re=u?.onPetWindowRefresh?.(Ze)||null,window.addEventListener("resize",be),window.addEventListener("pagehide",W),window.addEventListener("beforeunload",W)}),ct(()=>{re?.(),re=null,F(),B!=null&&window.clearTimeout(B),q(),he(),c.disconnect(),le(!1),window.removeEventListener("resize",be),window.removeEventListener("pagehide",W),window.removeEventListener("beforeunload",W)}),(e,t)=>mt((it(),ft("div",{class:bt(["web-pet",{dragging:b.value,resizing:S.value,"desktop-window":n.value}]),style:St($e.value),onPointerdown:Ye,onPointermove:Ke,onPointerup:ye,onPointercancel:ye,onWheel:Je,onDblclick:Ue},[J("canvas",{ref_key:"canvasRef",ref:M,class:"web-pet-canvas","aria-label":v.value?.displayName||"Pet"},null,8,ke),J("button",{type:"button",class:"web-pet-close","aria-label":We(P)("common.delete"),title:We(P)("common.delete"),onClick:g(Qe,["stop"]),onPointerdown:t[0]||(t[0]=g(()=>{},["stop"])),onPointermove:t[1]||(t[1]=g(()=>{},["stop"])),onPointerup:t[2]||(t[2]=g(()=>{},["stop"])),onPointercancel:t[3]||(t[3]=g(()=>{},["stop"]))}," × ",40,Te),J("button",{type:"button",class:"web-pet-resize","aria-label":"Resize pet",onPointerdown:g(qe,["stop"]),onPointermove:g(Ge,["stop"]),onPointerup:g(Se,["stop"]),onPointercancel:g(Se,["stop"])},[...t[4]||(t[4]=[J("img",{src:"/icons/pet-resize.svg",alt:"",draggable:"false"},null,-1)])],32)],38)),[[pt,A.value]])}})})),Lt=N((()=>{})),qt=ut({default:()=>Ce}),Ce,Gt=N((()=>{Ee(),Ee(),Lt(),wt(),Ce=yt(Xe,[["__scopeId","data-v-1ae1f020"]])}));export{qt as n,Gt as r,Ce as t};
|