@zhanguym/chatroom 1.2.0 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/application.d.ts +5 -0
- package/dist/app/application.js +55 -4
- package/dist/app/lifecycle.js +12 -0
- package/dist/app/workspace-access.d.ts +17 -4
- package/dist/core/operations/types.d.ts +1 -1
- package/dist/core/operations/types.js +1 -1
- package/dist/infrastructure/database/agent-mcp-settings-repository.d.ts +12 -0
- package/dist/infrastructure/database/agent-mcp-settings-repository.js +55 -0
- package/dist/infrastructure/database/app-database.js +3 -3
- package/dist/infrastructure/database/migrate.d.ts +2 -0
- package/dist/infrastructure/database/migrate.js +83 -0
- package/dist/infrastructure/database/schema.d.ts +3 -1
- package/dist/infrastructure/database/schema.js +35 -6
- package/dist/infrastructure/database/workspace-repository.d.ts +28 -0
- package/dist/infrastructure/database/workspace-repository.js +126 -0
- package/dist/mcp/custom/manager.d.ts +3 -1
- package/dist/mcp/custom/manager.js +37 -2
- package/dist/mcp/server/plugin-mcp-registrar.d.ts +4 -1
- package/dist/mcp/server/plugin-mcp-registrar.js +7 -2
- package/dist/mcp/server/tool-control.d.ts +6 -1
- package/dist/mcp/server/tool-control.js +11 -2
- package/dist/native/macos/ChatRoomComputerHelper.app/Contents/MacOS/chatroom-computer-helper +0 -0
- package/dist/native/windows/chatroom-computer-helper.exe +0 -0
- package/dist/plugins/agent/custom-mcp-store.d.ts +17 -0
- package/dist/plugins/agent/custom-mcp-store.js +38 -0
- package/dist/plugins/agent/mcp-gateway.d.ts +16 -0
- package/dist/plugins/agent/mcp-gateway.js +110 -0
- package/dist/plugins/agent/mcp.js +3 -2
- package/dist/plugins/agent/plugin.js +1 -1
- package/dist/plugins/agent/provider.d.ts +1 -0
- package/dist/plugins/agent/providers/codex/launch.d.ts +17 -0
- package/dist/plugins/agent/providers/codex/launch.js +24 -0
- package/dist/plugins/agent/providers/codex/provider.d.ts +3 -1
- package/dist/plugins/agent/providers/codex/provider.js +8 -2
- package/dist/plugins/agent/providers/codex/rpc.d.ts +7 -1
- package/dist/plugins/agent/providers/codex/rpc.js +28 -3
- package/dist/plugins/agent/providers/index.d.ts +2 -1
- package/dist/plugins/agent/providers/index.js +5 -2
- package/dist/plugins/agent/repository.js +10 -7
- package/dist/plugins/agent/runtime-files.d.ts +4 -4
- package/dist/plugins/agent/runtime-files.js +18 -14
- package/dist/plugins/agent/runtime.d.ts +2 -0
- package/dist/plugins/agent/runtime.js +52 -13
- package/dist/plugins/agent/types.d.ts +3 -2
- package/dist/plugins/cloud/v2/tunnel-client.js +1 -7
- package/dist/plugins/plugin-manager.d.ts +6 -1
- package/dist/plugins/plugin-manager.js +9 -2
- package/dist/plugins/types.d.ts +4 -0
- package/dist/plugins/web/http/agent-api-router.js +15 -1
- package/dist/plugins/web/http/git-api-router.js +13 -13
- package/dist/plugins/web/http/rtc-api-router.js +3 -0
- package/dist/plugins/web/http/runtime-api-router.js +22 -0
- package/dist/plugins/web/http/workspace-api-router.js +63 -12
- package/dist/plugins/web/plugin.js +1 -1
- package/dist/plugins/web/runtime.d.ts +3 -1
- package/dist/plugins/web/runtime.js +5 -1
- package/dist/plugins/workspace/mcp.js +20 -15
- package/dist/plugins/workspace/plugin.js +1 -1
- package/dist/plugins/workspace/workspace-root-policy.d.ts +0 -1
- package/dist/plugins/workspace/workspace-root-policy.js +25 -19
- package/dist/plugins/workspace/workspace-service.d.ts +20 -8
- package/dist/plugins/workspace/workspace-service.js +270 -64
- package/dist/web/assets/{AgentView-CMxIn3KB.css → AgentView-BqAfmgc4.css} +1 -1
- package/dist/web/assets/AgentView-tr6COjRg.js +4 -0
- package/dist/web/assets/{CloudView-CXuTK7Of.js → CloudView-D-fYLw_O.js} +1 -1
- package/dist/web/assets/{CodeViewer.vue_vue_type_script_setup_true_lang-DK6xGH2G.js → CodeViewer.vue_vue_type_script_setup_true_lang-BtA5aWrS.js} +1 -1
- package/dist/web/assets/ComputerView-B25C_C_h.js +1 -0
- package/dist/web/assets/ComputerView-vSSsexBY.css +1 -0
- package/dist/web/assets/{MarkdownContent-D4KYOn-f.js → MarkdownContent-BuDRrZ6c.js} +1 -1
- package/dist/web/assets/McpToolsView-D0G_HACK.css +1 -0
- package/dist/web/assets/McpToolsView-s0-Qvg2g.js +2 -0
- package/dist/web/assets/OperationsView-B_0SN40Y.js +4 -0
- package/dist/web/assets/{ProcessesView-NUAplTg4.js → ProcessesView-B2i-O0AL.js} +3 -3
- package/dist/web/assets/StateChip.vue_vue_type_script_setup_true_lang-DwnqcvSQ.js +1 -0
- package/dist/web/assets/{SystemLogsView-DGW_4nS0.js → SystemLogsView-BR4FZoAh.js} +1 -1
- package/dist/web/assets/{TerminalView-DCqHCfb5.js → TerminalView-2Z1blITD.js} +1 -1
- package/dist/web/assets/VSelect-CHI_FOMl.js +1 -0
- package/dist/web/assets/VSheet-CKEhsY-7.js +1 -0
- package/dist/web/assets/VSpacer-FbdDPUGx.js +1 -0
- package/dist/web/assets/{VSwitch-o-WPjZs0.js → VSwitch-o9DuRTKF.js} +1 -1
- package/dist/web/assets/{VTabs-D2y6M66D.js → VTabs-BSfSKBtT.js} +1 -1
- package/dist/web/assets/{VTextarea-DFSNyIwH.js → VTextarea-D_kPhUVU.js} +1 -1
- package/dist/web/assets/WorkspaceDownloadPreview-BoALqL1M.js +1 -0
- package/dist/web/assets/WorkspaceDownloadPreview-dFslZB0W.css +1 -0
- package/dist/web/assets/{WorkspaceMediaPreview-tkpcPK82.js → WorkspaceMediaPreview-qjt04eze.js} +3 -3
- package/dist/web/assets/{WorkspacePdfPreview-PqIFAx2J.js → WorkspacePdfPreview-BrUJpmNs.js} +1 -1
- package/dist/web/assets/WorkspacesView-CHXmDTlX.js +2 -0
- package/dist/web/assets/WorkspacesView-Dt24eGQ4.css +1 -0
- package/dist/web/assets/index-9DLDvF8M.js +19 -0
- package/dist/web/assets/{useMasterDetailFocus-DgNjKho5.js → useMasterDetailFocus-Chh0cM6g.js} +1 -1
- package/dist/web/assets/useOperationLabels-DF67nIF0.js +1 -0
- package/dist/web/index.html +1 -1
- package/dist/web/transport-sw.js +43 -15
- package/package.json +1 -1
- package/dist/web/assets/AgentView-XEf1AUcH.js +0 -4
- package/dist/web/assets/ComputerView-Bz2Wsz2X.css +0 -1
- package/dist/web/assets/ComputerView-Cxn7zhrw.js +0 -1
- package/dist/web/assets/McpToolsView-DdYOoY9_.css +0 -1
- package/dist/web/assets/McpToolsView-XLtFPY_M.js +0 -2
- package/dist/web/assets/OperationsView-DRx2Qq8W.js +0 -4
- package/dist/web/assets/StateChip.vue_vue_type_script_setup_true_lang-BYoHRX9h.js +0 -1
- package/dist/web/assets/VSelect-Dla-KtWu.js +0 -1
- package/dist/web/assets/VSheet-B9d-Gdzq.js +0 -1
- package/dist/web/assets/VSpacer--LXbKJE2.js +0 -1
- package/dist/web/assets/WorkspaceDownloadPreview-DJKSNaZ_.css +0 -1
- package/dist/web/assets/WorkspaceDownloadPreview-DaFQwUIa.js +0 -1
- package/dist/web/assets/WorkspacesView-ClA6xcjn.css +0 -1
- package/dist/web/assets/WorkspacesView-DkGvIFCb.js +0 -2
- package/dist/web/assets/index-CacDJSDn.js +0 -19
- package/dist/web/assets/useOperationLabels-BNiE-bRq.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{highlightSource as yn}from"./syntax-highlight-C_fuMcwC.js";import{d as Bn,c as ve,e as De,t as Tn,v as zn,_ as Sn}from"./index-
|
|
1
|
+
import{highlightSource as yn}from"./syntax-highlight-C_fuMcwC.js";import{d as Bn,c as ve,e as De,t as Tn,v as zn,_ as Sn}from"./index-9DLDvF8M.js";const we={};function jn(e){let n=we[e];if(n)return n;n=we[e]=[];for(let t=0;t<128;t++){const i=String.fromCharCode(t);n.push(i)}for(let t=0;t<e.length;t++){const i=e.charCodeAt(t);n[i]="%"+("0"+i.toString(16).toUpperCase()).slice(-2)}return n}function X(e,n){typeof n!="string"&&(n=X.defaultChars);const t=jn(n);return e.replace(/(%[a-f0-9]{2})+/gi,function(i){let r="";for(let o=0,s=i.length;o<s;o+=3){const u=parseInt(i.slice(o+1,o+3),16);if(u<128){r+=t[u];continue}if((u&224)===192&&o+3<s){const l=parseInt(i.slice(o+4,o+6),16);if((l&192)===128){const c=u<<6&1984|l&63;c<128?r+="��":r+=String.fromCharCode(c),o+=3;continue}}if((u&240)===224&&o+6<s){const l=parseInt(i.slice(o+4,o+6),16),c=parseInt(i.slice(o+7,o+9),16);if((l&192)===128&&(c&192)===128){const h=u<<12&61440|l<<6&4032|c&63;h<2048||h>=55296&&h<=57343?r+="���":r+=String.fromCharCode(h),o+=6;continue}}if((u&248)===240&&o+9<s){const l=parseInt(i.slice(o+4,o+6),16),c=parseInt(i.slice(o+7,o+9),16),h=parseInt(i.slice(o+10,o+12),16);if((l&192)===128&&(c&192)===128&&(h&192)===128){let f=u<<18&1835008|l<<12&258048|c<<6&4032|h&63;f<65536||f>1114111?r+="����":(f-=65536,r+=String.fromCharCode(55296+(f>>10),56320+(f&1023))),o+=9;continue}}r+="�"}return r})}X.defaultChars=";/?:@&=+$,#";X.componentChars="";const Ae={};function In(e){let n=Ae[e];if(n)return n;n=Ae[e]=[];for(let t=0;t<128;t++){const i=String.fromCharCode(t);/^[0-9a-z]$/i.test(i)?n.push(i):n.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2))}for(let t=0;t<e.length;t++)n[e.charCodeAt(t)]=e[t];return n}function O(e,n,t){typeof n!="string"&&(t=n,n=O.defaultChars),typeof t>"u"&&(t=!0);const i=In(n);let r="";for(let o=0,s=e.length;o<s;o++){const u=e.charCodeAt(o);if(t&&u===37&&o+2<s&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3))){r+=e.slice(o,o+3),o+=2;continue}if(u<128){r+=i[u];continue}if(u>=55296&&u<=57343){if(u>=55296&&u<=56319&&o+1<s){const l=e.charCodeAt(o+1);if(l>=56320&&l<=57343){r+=encodeURIComponent(e[o]+e[o+1]),o++;continue}}r+="%EF%BF%BD";continue}r+=encodeURIComponent(e[o])}return r}O.defaultChars=";/?:@&=+$,-_.!~*'()#";O.componentChars="-_.!~*'()";function _e(e){let n="";return n+=e.protocol||"",n+=e.slashes?"//":"",n+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?n+="["+e.hostname+"]":n+=e.hostname||"",n+=e.port?":"+e.port:"",n+=e.pathname||"",n+=e.search||"",n+=e.hash||"",n}function ie(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const Jn=/^([a-z0-9.+-]+:)/i,Mn=/:[0-9]*$/,Pn=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Ln=["<",">",'"',"`"," ","\r",`
|
|
2
2
|
`," "],Nn=["{","}","|","\\","^","`"].concat(Ln),On=["'"].concat(Nn),Ee=["%","/","?",";","#"].concat(On),Fe=["/","?","#"],$n=255,ye=/^[+a-z0-9A-Z_-]{0,63}$/,qn=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Be={javascript:!0,"javascript:":!0},Te={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function ge(e,n){if(e&&e instanceof ie)return e;const t=new ie;return t.parse(e,n),t}ie.prototype.parse=function(e,n){let t,i,r,o=e;if(o=o.trim(),!n&&e.split("#").length===1){const c=Pn.exec(o);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}let s=Jn.exec(o);if(s&&(s=s[0],t=s.toLowerCase(),this.protocol=s,o=o.substr(s.length)),(n||s||o.match(/^\/\/[^@\/]+@[^@\/]+/))&&(r=o.substr(0,2)==="//",r&&!(s&&Be[s])&&(o=o.substr(2),this.slashes=!0)),!Be[s]&&(r||s&&!Te[s])){let c=-1;for(let a=0;a<Fe.length;a++)i=o.indexOf(Fe[a]),i!==-1&&(c===-1||i<c)&&(c=i);let h,f;c===-1?f=o.lastIndexOf("@"):f=o.lastIndexOf("@",c),f!==-1&&(h=o.slice(0,f),o=o.slice(f+1),this.auth=h),c=-1;for(let a=0;a<Ee.length;a++)i=o.indexOf(Ee[a]),i!==-1&&(c===-1||i<c)&&(c=i);c===-1&&(c=o.length),o[c-1]===":"&&c--;const d=o.slice(0,c);o=o.slice(c),this.parseHost(d),this.hostname=this.hostname||"";const p=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!p){const a=this.hostname.split(/\./);for(let b=0,g=a.length;b<g;b++){const x=a[b];if(x&&!x.match(ye)){let C="";for(let m=0,_=x.length;m<_;m++)x.charCodeAt(m)>127?C+="x":C+=x[m];if(!C.match(ye)){const m=a.slice(0,b),_=a.slice(b+1),k=x.match(qn);k&&(m.push(k[1]),_.unshift(k[2])),_.length&&(o=_.join(".")+o),this.hostname=m.join(".");break}}}}this.hostname.length>$n&&(this.hostname=""),p&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const u=o.indexOf("#");u!==-1&&(this.hash=o.substr(u),o=o.slice(0,u));const l=o.indexOf("?");return l!==-1&&(this.search=o.substr(l),o=o.slice(0,l)),o&&(this.pathname=o),Te[t]&&this.hostname&&!this.pathname&&(this.pathname=""),this};ie.prototype.parseHost=function(e){let n=Mn.exec(e);n&&(n=n[0],n!==":"&&(this.port=n.substr(1)),e=e.substr(0,e.length-n.length)),e&&(this.hostname=e)};const Un=Object.freeze(Object.defineProperty({__proto__:null,decode:X,encode:O,format:_e,parse:ge},Symbol.toStringTag,{value:"Module"})),Ke=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ge=/[\0-\x1F\x7F-\x9F]/,Zn=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,me=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,Ve=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C1\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2429\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E5\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD803[\uDD8E\uDD8F\uDED1-\uDED8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDC00-\uDCEF\uDCFA-\uDCFC\uDD00-\uDEB3\uDEBA-\uDED0\uDEE0-\uDEF0\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED8\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0-\uDCBB\uDCC0\uDCC1\uDCD0-\uDCD8\uDD00-\uDE57\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF-\uDEF8\uDF00-\uDF92\uDF94-\uDFEF\uDFFA]/,Qe=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,Wn=Object.freeze(Object.defineProperty({__proto__:null,Any:Ke,Cc:Ge,Cf:Zn,P:me,S:Ve,Z:Qe},Symbol.toStringTag,{value:"Module"})),Xn=[8364,0,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,0,381,0,0,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,0,382,376];function Yn(e){return e===0||e>=55296&&e<=57343||e>1114111}function Hn(e){return Yn(e)?65533:e>=128&&e<=159&&Xn[e-128]||e}function Kn(e){return e-1>>>0<127||e-160>>>0<55136?String.fromCharCode(e):String.fromCodePoint(Hn(e))}const J=(()=>{const e=new Uint8Array(127);let n=0;for(let t=33;t<=126;t++)t!==34&&t!==36&&t!==92&&(e[t]=n++);return e})();function Gn(e,n,t,i,r,o){const u=e.length,l=o*90;let c=0;const h=()=>{const D=J[e.charCodeAt(c++)];return D<o?D:D*91-l+J[e.charCodeAt(c++)]},f=t-i,d=t+r,p=new Int32Array(d);p.fill(-1,i,o),p.fill(-1,o+f,d);const a=new Int32Array(d),b=new Int32Array(d);function g(D,y){let w=0,B=y;const j=y+D;for(;B<j;){const I=J[e.charCodeAt(c++)];if(I<89)w+=I,p[B++]=w;else if(I===89){let z=J[e.charCodeAt(c++)]+2;for(;z--;)p[B++]=++w}else{const z=J[e.charCodeAt(c++)];w+=89+(z<90?z*91+J[e.charCodeAt(c++)]:J[e.charCodeAt(c++)]*8281+J[e.charCodeAt(c++)]*91+J[e.charCodeAt(c++)]),p[B++]=w}}}g(i,0),g(f,o);const x=new Int32Array(r*2);let C=0,m=0;function _(D,y){for(let w=0;w<D;w++){const B=y+w,j=h(),I=h();x[m*2]=j,x[m*2+1]=I,m+=1,a[B]=C;const z=(p[j]<0?b[j]:1)+(p[I]<0?b[I]:1);b[B]=z,C+=z}}_(r-o+i,o+f),_(o-i,i);const k=new Uint16Array(C);let v=0;for(let D=0;D<m;D++)for(let y=0;y<2;y++){const w=x[D*2+y],B=p[w];if(B<0){let j=a[w];const I=j+b[w];for(;j<I;)k[v++]=k[j++]}else k[v++]=B}const A=new Uint16Array(n);let F=0;for(;c<u;){let D=J[e.charCodeAt(c++)];D>=o&&(D=D*91-l+J[e.charCodeAt(c++)]);const y=p[D];if(y<0){let w=a[D];const B=w+b[D];for(;w<B;)A[F++]=k[w++]}else A[F++]=y}return A}const Vn=Gn("!}.&u%}'&}*'~!6*)%&,~!J~!J~%L~y<~!R,~~%Lu~~#GD~~#|)1#%}^%}2%+#.##%##%}&%##%'#%##&%#%#'%#&#%#&#'#%%#&#%##%#)%''%&%#%#'%#%%#%%}%%%#%#&(23#%%#&-%0%('1#(##%#'##+%'*.:1}#%#6-+(%'%%#%%%}#L'2351&('%}&/N'(0(/*-%(%%}#'+&T%7.2}#&%&#%#36/5##%&%%#&#%%#))2%%##%&&'0~!#*+&'%1~!%).'3q?&%'1~!.##%6(~!+%%%(Gw'rT~!E#<nA%#jZ~!H%(~!42##~!*31&~!G%U~#)5~#`3~!J~!Z~%]~%Y~%C~!q~!u~#kz~%#~!6'~!D~!U~!?~#T~!c%~!G#'~%7|~!G~!J~!G&~#pb~(Df}#%}*&}#%##%##%##&#-}&'#'&%#.++}%mI,#,@&(}*%}*'%&##&#%##%}&0}#.},U},%}+%}&%}#%##&}B%(}(%}+%)})%##%#&}&%##%&}<%}>%#%&}*%}(%}9%}/%})%}*%}*%}?&}&%}3%}&*#%})%#%#)}#&#-#+*%E%%'%'#%}#*V##&##I}#&&##%&%#&&Qf%%))w/0+&%#(#.%-''''++++7}>%4'',##1,#%#&%##&#'##&#*#9)%&%}#*}%,#+P(%A&%#'&##wSD',9E00#y#@}(+}&%&>~!#~!X}#*}(&&}(&}(,%}%&#+&}#&}I%#%}%)#(},'%#*}4%%#%}(''}#/##(##),%-##%%)#&}(.}&%#&}%%}*&#%},&&}&%}#%*'#%})%}D&}&%}-&}6&#&}-,%}#%})-(~+`~,=?~I9'9%~!,#%})%})%}@%}?%}(~!?~#<~#pP~#BG~#=1#%K+~#?#~%;)~#A~#mF1~#A'~'X%'~#lR~#N~'N~#r~#m#-~#i'?%#'%~#B%##%,%#~#_%#0%~#]732~,w~2+#:&#%&'0%&>%}#>##F+)#%&&#(+_}4&}-%}(&}@&}O7Fdf0@+/v4}&WU##&/0#&'('B#%}.%}'+#%}#%%&#&%#%##+#&#)#6#'#.},%}c%},%#%##%&#&%#&~#>'*-.%##%##%}#%%}%'~#)D1}#%*&~#_%%'(~#S2%'.}#~#=##*'*-%}&'%'##&&~'E%.#&~#M4}%%##&'%#~#O1##%&#'+~#<B%##%%'%+~#;#@%}#&%#&&%#(~#H1}'%'##&&~#?A}&'~#D#%32}'&&&&~#[}'(#%}'~#;C})&}%%#%~#=&%,3}%'(#%%~#^'#&&)#%'~#Y%-~#d-%'~#^%%&#&&&}#~#b~2t*&'~&(~&@~0%~e~3}%*''0})&}+~!9##-}#%-hD*)1fC#%/&/fB#40~!+#)*4~!+~!K'&:~!/*7~!.#~!H~!L':~%x&~!H#~!*~%1~!I#~!+A~#p'~!F~~#-#~,,(~.Z~!V~%;'B'mq-W~!N~%I%#&&#&}#%},%%}'%}+X#%}#&}(%}'%}<%}#%}%%'}'%}:~![)9@~%>~#UA%-%##&~!C%~!-.9:~!1~!-^2/:a~!y,D*J#-5)/4~%23,~#G~!L1~!0X3`~!2+~!!0-~&E~!W~!o,>Y&]~%cZx_&~#O*9#A#'#+I'%#)~!0B*-5A+-((F&*M#)(-7-5+'-3a5Vi~!Y~!?+[)%3),ERHm~!+:D,VG.+)?fB%%*(%)'(#&80%1'8`K8?`+'Z#&O&'H5#*9)A%%5&3))0%39+.*7#()&&*=4@**L)<'_&*+..;(#*+)./&0#3)%')-8(4ixD(&.}%,('aI:,)%,k2231T)I'#/-W7,/'Q#.'Y24+h')37</31&83##&0#),H(?'&?/1##%#&&#%''-%&&&#(&''&#.-'%#%%(,')*'&#&#'##%(%(#%('#&##%%%%('%#%#%%#%#&%##h>w+v<ayvyvcg.uuhKr}g/v|g>u9i[~>g5uI~=RvdwEg;v/g;uk!!TTSx]@RT!U!#!@VBRUU!'UTe-d0c`e&gSdicedFcrdTaqb.kYcAohdYd@a3e+d}dMdtd.aJ#bqcK`dle/e.e'dwdPdodddjbEb}ogd^ofdpduc6j?l%d{drdqc)d7bacOdQ%T#Y)X.sR[yH>6Vyv3[xwLu>vo'!*.[yBacahoj>6Rew3[xqdZa#!a&#^(X-[yG>6Vyu3[xvg3sEr|g.u/Ri9db0T#^(Xa)!-[y;>6Vylg4wKs{JwNZt3@3r=c4Z([xlg;wKt!cpq's@v7A'*a(a+!-a#[y<3Dt?3Dt'>6Vym3[xmg9rxsNJwLZt4~?r?db1T#`-!(Xa,!0[yS>6Vz%NuQs.g4wKtnJwNZtS@3r>c4Z([y%g;wKtrdga8!a(!#&T*Y-Xa#!a0<or[yc3Dtq>6Vz43[y3JwNZtf@3s!Ju}!%Dti:pm3c_%X#tjB5pkd6q!r]u?voC'*-a.a2!0a&a+[yI3DtI3Ds~3DtH>6Vyw3[xx;:s#~<5pKJwNZtE@3r~d`a)!a2T#a.(!+U.X1[yT3Dt`3Dtv>6Vz&3[y&g9rxwzcxstPu.<rAJwLZtT~?r@dZa%!a.&^*Za(/Reu[ya>6Vz23[y1g3sEr}wkg{NuQRg{ci(U#5@b`~,cg#U(2WnH5wugcRh7dX#T(Y,a'Ta!!a,[yZ<]mj>6Vz,3[y+Pv#5ReZKu+=,%!H}7ABwkaS?Rh:BcW(X#<]mrj:ubv/ARekdg%!(!a.*Ta(Y.X1!#sP>Rl*Dt6[y>>6Vyo3Wf*jOvuumvuRgRJuq*!:9<B@bX~3jVv&v@s@5Re[d/rQt{uAvo&a&a*)a2!,0Wf!3Dt0=Bs'>6Re}3[xy~<5s%JwJZt1~Gs)c;&!#2sJkNuXvzq7rxu,Re8dka4!a8(aEZ+a@Y.X1Xa)[yd=Bs(3DtP>6Vz53[y4cX#X&Re:avRe9~<5s&JwJZtQ~Gs*i^rzvdRg+Jv{%!2sbB@bX}kdga,!Za?&^*T1/!a'Dt+[y6>6Vyf3Wf%g/u;s4hGu6?Rh-JvZ,!c%#&RoX54Rivj7uyvf8RgTKvZB%*!2sGh<vu5Rgq<=C::9bb~#dZ#T&Ta6Y.X*Dt>[y93Wf)coZ(T,6VyifluvRgC@95@B@bX~/hFu34cC#T,k/unq8w8Q5RkUklwQuzunq8w8Q5Rk8d/rJu?v8w9)-&!a0a;a&aIWejg3sEr/h1s<DtDJvyZqY5aws3Jvy!&Wei~Hr1:au5@Bag>23E~5c:Z&bX};kKv?w&unuVu5Rjc;>bs)#~@:Rh.=ay<a]C;b`}Vd6s/t{uAvoaxa()!a,a7%-a#a2Dt,[yF2Wo[>6Vyt3[xuNuPRi&NuPwpi#RoWh?vf8Ri%Jv]!%Ri:KvxD!.'2WeAjZu`q9rxu,Re7woeAg-unLq(qA_/*2Wg_g3u5q^9:4E}/jTrxrzv=Wkkd~0UX#^^Xa-a1a5T&a=U1a'*aEa]!a*aPaA-adok[y54Rn>;:p3~Dp5g9rpsFNvZqjg3uJp4~<5p0Pw;5qlJwNZt*@3p1Pw:5p/Ou!5p2JvG'!6Vye=<qnJvh_[xhg3v,Rh3kOwOw-sDuev/Re^dha[a%!%!a+#Ta7)-5TaCaO!aka!a)sf[yb2>Rl!9ARiq5E}Qg=ucRkBE|oJrJ_@Wk~@Wk{JrJ_@Wk|@WkyJrJ_@Wk}@WkzJvO_[y2g-vMRmiKuYC!)&>Ri;>Ri<@3RkNc](X#@9Rk=g5vuRmhKvDB!+'=]meg3u4Rmgd)#Y'Vz3CARmfd`a+!%T'!+#Ta1Ta6TaM-sTDt9[yA9sYd'%Y#s[[xpj:ueunaXRgEjRq,v-vuqdd2'`#6Rev<32@5>:2<E}5xIo9a*X#Y(;5RePJvD_g>vyRgNj8w)v8<wggs:RgXiZt|vjx,hSq3ah!-(~@:Ro/Ou!5RhWj^v(pyw8unRhUdx-UY#^Ua.a3a70!)%UX1TaDa)'omRiRRhE[y:3Dsz=Br,>6Vyj3[xkg6ruwjcqsrPw;5r*Ku]D'Zt-@3r(~?r.i[vwv]dU1a--U#`a4(g/vsRhPOu!5RhLj:rmu9Wo!~@:wdh@g/vsRiTjXuvvNr}:RhBj^v(pyw8unRn]dz1UYa'a+^Y(!aETZalaRY.Ta?a4[yDJw1!#qLsW>6Vyrfzq-pLflpwRe|Js>%!Dt@3Dt&Jvy_[xs~HrnjMuwpsw'RecKu+D#'!t<~Grl~?rjg5u-x,gwp{ah!-(~@:Rg~Ou!5Rh'jXuvvNr}:Rh#cW#X/c;&!#2sLi[v7u7RgpJv)(!iLrxu,Re6j7v@s@5Se[e7d`aW!Za(a`T.a#!a3!&aDa-!9)Dt_=6s+3[x~~DR|h~DS6avhGun5RkZj3w)v-]mkKunB!&*]kb97R|i<ARk<c:Z(6Vy}Juh'!wziMRoS:F|vkLuauJv5vtvQRh1d='T+Y#VyO~DR|jcF#T'7R|g97R|kJv3'!ay<Rj,Jvh&!:ReXcsa6*a+#a#_aIRf9aLRf?c,Z&Rf5Rf7c.Z&Rf;Rf>cQ#%T'p-Rf8Rf=ct#%'(*!,p,Rf4p+Rf6Rf:Rf<d~'Ua%U*^UYa(!a,-!#a4YaTalaEX0a8a<Weo3Dt/3Dsx=Br93Wen~Dr;~<5p<JwNZt2@3p=Pw:5p;Ou!5r3c7&!#:p>3Ds}KvGB)_6Vyk2sM=<r7x'eovA(!hFu1ARf}cV#X&@r5j6rvwQa^Rf3c=Za'wkghJv__g;unRggA53B9=b^}%j6uduo5Jq;!(hIv%2Re`Ou4ARe_e%a#^^^Xa&!a*a2!&a6YaP!*ad!#a:aE/5Rn?[y@>6Vyp;:pE~DrY~<5pBJwNZt8@3pCh=rt3rWPw:5pAJup_[xoNuPpF9c!#'45pD5ARn)d8#X'X*3@rU72s]h>v<<sSjJpqvewOJq/(!hNw'5ReBk0s2u3w/w'5ReE5@Jq.!a+JQ!&WeU23d(#Y&RjG5]jBk!u7w&u0udARjEe#+^^^Ub#!a2/a`Z(agT1!a-a;|@TaG!aS[yV=Re~fow'RguNuPRe?bz#'>RoUWeL>:Cbb|?JwPZtVg6ruRmzJvD'!6Vz(g/vmRh~Jvy_[y(g9voRgyx*cy(#2>Ri2B9b]~9kIw9u7rluJu3Rg]dI#a%UY'@=p%CAx.gQZ&RhwwygtRm{x5g_Z'+ABqR9Woa=Bp&dV#^*Xa'!&@o{g4v]Rk;Jv{!%Rk[wkkiA5RkiwwfUB=x,fUuqC&*!>RfTg8v0RfV~ARfSd;rJsAuAv9wR'ae+/aO!a@aza/a#[yQ@Wg!2Wemg3sEr0JvB_g>uvReWg2v+Re=KupB_+[y!2AbY~-~Hr2AJwD!(h<~El>h<~El?Kun@+_:9b`}Kg-v/Ri3g;vtwyk_9]k_d=&T#*U.6qh@Ab`|K9:H|CJv[!&3Dtex'fDwC%!Rf[9WlMd[(^X,!a%Z06Vz!@WgBg=v~Rgvg,QRe@awd,#Y+jTv|Q~EfWj]uNr|~FRfXdy#Y&^Ua%!aO.!(a)Ua;=!a@aKap!a-,a!Ta]a[rSa]p?[y82sK=Bq~;:p:~<5p8Pw:5p7d'#Y'Wf(;RnRi[u4w&RgJJvG'!6Vyh=<r#ijuuv/sIKuYD'ZtG@3p9~Gr&d2#`(g<vtRgFj`u5w&rqpxRf2CJuY!+:wfnTOu!5Rg}jNs1ucv&RfwJvA!&3@q|BDcC#T,k/unq8w8Q5RkTklwQuzunq8w8Q5Rk9dga#!a'!a=#a0!:+Tb*b@aO.a4!aba8aFJv^}?!VyR~Dr<g;u%Rn.~<5p[x'e`wNZtR@3p]Pw:5pZhNvjBp.woe_g5u-r4JwF!%DtO3:ooc7&!#:p^3DtpLuGw(!+%)Dtk6Vz#2sd=<r8d'#Y([y#<x3gJt`w@!)%}MRiowzikRij=]ilxAf3,U(#B2Rf#g0v-Rm[ck{`U#]giKv3>)!&6Ri154s,KuGB_%@r68r:dJ|t`#X(9<E|u2@H|rx3gJu?w'!+'1Nu7Reg4=H~+9<wxgY95Rm]xLggZ-`(X}U2:Ri4h<uOawRmsJv__5@bb{jbV~3dka#a'a]!,#a+U=a>b6a3b%!/aKa/)!arwve^VyJ;:pR~DpTg3uJpS~<5pOPw;5qmPw:5pNOu!5pQJvG'!6Vyx=<qoJvA!{~Jup!%@qk7Rn/KvyD!}''[xz;>wkh'?Rh,x8gyt`w5D!&),(SgyccRgztJ@3pPB5p#d'(Y#<]mmifubw&RgoJvE&!82s^JvF&!8Rf,ADb]~;x=h'rNu]vK!,%'*0RnORh)4Rh*AqQg-vaRnNg;wHwkh'ba~4cE#Ta*x3gctyw@'!+%RnFRnD<4Rn@hFvK5RnCxWg[#`&a0Ua()`1Rm75Rg[c]%X#qi8Rg^NvdRj>BwzgZauwji7Rm6A4wgg]d1#&(*,.0a#Rm;Rm<Rm=Rm>Rm?Rm@RmARmBe%#^^^Xaea?aC/b+(,!a+a#!a/!>a&Ta<aKbD!2wphBRnk[yPw}hE|.=Br-3Dtm>6Vy~g6urRf.x,hPrNav!%'RnqRo%Ro#Nu;q[Pw;5r+JwNZtM@3r)d'#Y'Weh;xChL#`&RnmRnoKu}>%(!Rne~Bs-;2wjcussJv+'!aYSO}6@B<5?ba~8LrNvj!.%*ROwungw~ng~:9;Ri^>wtnig;wHRnixDh@|(UZ.x1h@|)!#:2<H|*xHn]#-UX'3Ro)z=iT}6ARns=Bwsn_wpnaRncw]aR(#UXa&Ua*a/=]iPd'#Y&Ro'WnXf{QRm2hNvj]nZd`'T~&1`{|`#9b]{}c:'!#Wl{>@=be}]?cl{{U#:5Abb}Jds#^YaF!a*b4a#a3aPa>&Tb!bH!*a_!Eau?/a&RjY<]gj>6Vz*;:pe~DrZg,QRj1JwNZtX@wihspcJvZ&!VyX9WmOJu|!|N2WmHJvh&!]ht~Bpbcn&T(!#RmQ<s7Nu;padH#X'`+WmJ@>RmKCARhnKup=!)&Wf+:RhqNuPpf9c!#'45pd5AwghpARn(Ls@w!%,)!RmP@Wfe<E|IJva!&WmNg8vsRmLd`*.`#Y'Xa!axRn*]hrA8Rhug5s@rXg8u!RmMd8#X'X*3@rV72smdI*#UY&RmICARho~GsgxVgd)Ta'U-Y&Xa!T#RnEWnA@Wffg1uDRi0hFvK5RnBxGnG&#`%owp)@wsf+bX}Ze-*1!a*^^^Ua|!#a.aq&Ya2!a>.a6!a:aO`aJDtL[y`@Wg#>6Vz12@wzoYRoZNuPRi!NuPRhzg=ucRi,@=b`{Yg=ucRi-ACJvB!&Sh[ebSh]ebi`wUuFRm4Jw2_[y0JvB!.<Ju(!&SoG}6Shd}6<Ju(!&SoH}6She}6Kur@._g5vHRieJvx!{L2G{Kx6gd'T#?Rh82Wi5cZ#X(g1w)Rm5dW-Y(Ta#!a)!#aYa=wnfE=su2>>bU{0j9udv:<svj8uQv-7RgHdE%#^'sq9sp=>Bb_{TJv`!&g/r|snj6v(us5d,#Y(56H}[978H}]Jw5!&g1rushJvB!+j;v{u5?zDhd}6}bj;v{u5?zDhe}6}ce*#`(^^^a[aea!=!a6a*aoXb1a.!aAbL!b>,b'aL!aV@Wf|2Wlg3[y/JwNZt^@3piPw:5pgJunZou3@rsJva&!Vy_g<v~Rm#JvG'!6Vz0=<r{Ju{%!:pj@WfsiXuJu3Rm:JvZ&!WfA~Bph@c4Z&Dtwax5rubx(#:awRk1@d,#Y&RfjRfid1#,Y(@Wfp2Wlrg5s@ryKu[@!,'=]ig9wlk?Rk>g5u-rqJvy'!@9RkQcH(T#=>Ri~@<wkj(Wj(KuZB*!&<7rw@9RkRcH(T#=>Ri}@<wkj)Wj)dg(Ta2Xa9X#`-!a*CARhg@@=I}d9x;c~#X%so=<sj>2@@=aybb}XjWv0Q~EfEj3vLv;<d,#Y(56H}`978H}_dgaPaFa'a/!#a3Y0a_a;a|!1(a7-[yE3[xt;:pJNvZrrg3uJrvJwNZt=@3pIh=rt3rxPw:5pGOu!5rpJvG'!6Vys=<rz@c4Z&Dt(ax5rtJvZ!&~BpH@wsfNg-vaRlNci*U#=<wei<F}a5@Jq.!a*JQ!%@qZ23d(#Y&RjH5]jCk!u7w&u0udARjFd/prq=tyvpaEa(a:.!a1aZ(@@=I}:9wpd%=<sX55w_h}@@=I{t=ay<aU@@=I}T=ay<2@@=I})?C9:9au@9Cb]}DP~=x-fAZ(2Wl1=ay<aU@@=I}>5@d##Y+jTv|vV~EfFj]uNpn~FRfGdgaK!Z2&!a8a-Tb({E!acTbM*!a(DtY[yYd'%Y#sl[y*hHvh>Re5x2c{Z}.j4uCvcawRiMd+#X+_x&d!},<5RkX;2Hzw@x,gavfB-!{CcF&T#Roe;RodwWbBg5urRgaKvHC*_6Vz+<4opieuew&Rmq@d]&Y)X,T#X0Rh}<BqP=4qS9:ReMg/ujReNJw0!/<Jui%!bd{kawwnemRelAxUa?a3#*.&UX(Ya+a/RhvRnQ<o}9Wmtd-#Y&RgSRmw9;Rmxay=Rmyg-vaRmuxEhSrNu,v-voC!%(aR.a(a7+1Ro1>Ro5CE{A9b]{@;5x#eO{:g;urRi+KrNA!%(Ro3>Ro79;Ri_Ku@>{;&!x%gX|{KunA_+g5QRj/g3u5Rj#g>uERj%wio/xRhS&!,!#^1U}wba{8>>@=be}qC@:D5ba{7Ku+A&!}x?ba}t>>@=be}se(aA^^^Uat!b0#{pa+awUazbGa#aLb9bgaWac'a5TbS=Br!d1#`%scp_Jvl!#rT>Re0JvX&!VyN=H{Fcm#U&:pY=ReaJv2&!]h0=]nUJvG'!6Vy|=<r%JrM_=]h2@Wlud'#)U'Wf'b]{i=]h/Jvh!&~BpWg=v]RnMx+ny#'Nu;pVwjnu=]nwxJnx,T#`&Reqwjnt=]nvieu9vrRjLLuYwP(#+!th@wih5pX~Gr'g5v/Rh4KunA'!-CARnP@wwiN:Rm_9x'cvw>!|l=<saKvAA!0&3@q}>w^e1bp#&Re2Re3BDx7gH#T|f5H|eKuZ>!%(:qNAH{]Jv6!+3B2B9=b^{X<5<B92:E{ZLvhwA(a;a%!igQuyRmad+#Y}m@3Rh5d8#X'X*:AqUAHzmaxwbh<aXRnVcF}RT#Nw&cj#U(BWnug/vsRntdka)(a3+.Zb7aYYan1!bVa@Xa}[y^@b[{G=H{+hFu73Rj&Pv#5ReQcK%T#sig1v{Rj'Ku+D#'!t]~Grm~?rkKuMB!01d5#`'Vy.ta3Dtu~Hroc8#'{^45s85AwZbP&!#Rn!wghxWn#KvEA!)&2RlA2RlBx:h|#(T,=]j09Wobz>x]z/@awRoTd+#Y(az]hFhCrm4d,#Y+jTv|Q~EfMj]uNr|~FRfOdCa!Xa9_X#@<plJvf!%b`{(9;Rgwc;.!#2x7cw#T|UDb]|T5Ju={(!=@E{&Jv)&!Ab`{'awJvf!~*>>@=be{#KuY>!+&4Ezyi[ugv&RjIdea+T)#UXa&T-T&a!Rh9auRmW=]kLg5vuRn+g3u4Rn-Ow6ARn,hHus5xNk?#UX(U~)/g8v0RkD~AwkkF?Ri.OuNBwkkA?Ri/d|a2`a*^UYa.!aBTZaTa'Xa;!(!2!-a#b2[yC>6Vyq3[xr2Wi?g1rusVh%s?DtF~<5rbJs;%!DtBfswKtCj[uvuSsEu3RgVx3o:u+wN'*Zt;@3rd~Grh~?rfg8w)Lq)qE&-a%!>bI|`jWv0vV~EfCjTv|vV~Ef@j]uNpn~FRfBcK#T']gWNu7x,k7q4ai(0!hHv8<RhmkMu9vrsBuev/RhlCJvB!,g<v{wchh~@:Rhji[vrv{wchi~@:RhkdS&a5UY#Ta!RgPwwiI5BwciI~@:Rh`x'iJvj'!5]iJPu8Bwch]~@:Rhach)U#h3rp]gLh@t|Ax,hTq3ah!-(~@:Ro0Ou!5RhXj^v(pyw8unRhVd|)`,^UYas!a?/a2Z'a^Ta{Tb7Ta(a#!a,Wf&9sZ3DtAadamov=Bqt3[xig8vsRm~>waiL2b`{QJv*_Ouv2qgj<v]v2BqfdR'X*X#Y-@3qr~Gqv~?p6hHv-]glPup5Lq+q?_%*b_{qF{n9b^{rOu4ARhpKvCD!+&~Bqp:5Dbb}nwoiKl&unuTuBv]v+ueunaXRf0=Jvh!0nKufu8v1w&w7q%w&uHrz:Rgnj5w,uxDJq/(!hNw'5ReCk0s2u3w/w'5ReFd>Za&!*UaA=<wkgsRnSJv^!%Refifw3vyRgOKu_B'!,<]gkiiu:w&Rh<=C@a^<B57@2F{[<B5@aW:=3away9A5aW=<B=C@a^<B57@2F{Ie-#`(^^^bCara.b8aza6!/bZ,!adTbnTbOb+aFaS!aAT9@Wf~2Wli3Dtl2@d,#Y&RfnRfmJwJZtN~GqyJva&!VyMg<v~Rm%iXuJu3Rm9Jv[_=]ih9wlkDRkCd1#`(@Wg>2Wls3cH#T(@<Rj*=>Ri|b~'#23s9h<~El.d'#Y&Dtxi^rzvdRl#d*#U%(o|B2s`hJwSaxRmDKv4B&!1:Rmdd5#`'Vx}to~Hq{x'f1v3(!BA5ba|bJv_&!Wfug1v]ReIdO+U/Y#&G}-8wze=Rh{g1v]ReHg/uQRf/by#)ibQwERl/cH#T(@<Rj+=>Ri{cNu+vlax-!(#a0qa9<Rii2;;bU{H;x<i=&X#Rk`<4wwi=C9H~8xAI(Y#<azRi@45wXI<B9;5bb~7dL(X#Xa(+!aL6Vy{g5QqOau:5au2@ay547EzbxOcU(UX-T#Ta#:Cbb|A?wjh/b_|SOw6ARgtihr}u7Rhy<d1#T)X1@@=I|~=ay<2@@=aybb}Sj3vLv;<d,#Y(56H}A978H}@dGpvs@uAu`vcw9*!aFa+ai%(b!aXa8.a?a[ozWey=sU2@G}Nch&U#Rf_WexKu+D#'!t:~Gr`~?r^j]uNr|~FRg*j^psurwJt|RmcKv)@&!)7Rkv~Br[@wxfO:Rl3co#U'6Rezj_q#vIuavjRltwzeyh@vr5JqD0!>aY?C9:9au@9Cb]}9cl#U*5;5<H||jbuus1ucv&Rfvg1v~d/pppzqFr^a--a~!aMat1(hFv;Wiz@@=Izoj5uuv-7Rix~Cw`fk2WlVcZ#X,k)u3vWs@u2]ktg;wEx'fBq(_2Wg/jTv|vV~EfoJv]!15x'hzqG!(P~EfU~CRl_j6v(us5x4i-#T(2WmZ?C2F|d>Kq<aj1!*jTqIsBv=Wl`~Cw`fi2WlWj`v0u*~>RlR=c>Z,k#u3vWs@u2]kr<c1Z+jTqIsBv=Wla~Cw`fm2WlXdmb3!a{(arZa`bkTa%TbQTa-a9+c'!aM!/[yL=Bqug.w'RifhFvyDRj.g>vgwyk^9]k^Jv3_@WfbAARkhJw2_[x|JvB_wkoIRoKwkoJRoLd'(Y#<]gm=<9<H|yd'%_X#skDtb3awwqkgNulRkgdB#^',9:p'hJwSaxRmEBwVb8@4=H|qLu+w50&!)@3qs~?pU>Awwn;;Rn=c:Z'ARn<=<qwKvC@!/&~BqqJv6!&]eVb^z^xRge'/a%+^`#Sge}6<4Rn3=]n0Pw2>Rn8Jw0!&>Rn:>Rn6cY#a7+!a&=<wkaNw~h3z_c5Z{=wjh#=]nLKv^D!&)Vyz=bW|swYb<WetcG#T(2wxa@qVx@gD#Y&b^|V5JwG&!5bb|pg/w&RgD@x=kHs=uAvn!a%%/'+RmSRh694Ro`g-vaRmRhHv-]mlxCcS#`&ba~.5cD#Ta)P~=d,#Y(56H{>978H{Dd_#{2^Y%_+qbbb{6g3sERhsbU{?dfa.,`a(Xa<!aiX#(55RiG54RiHcI#T'WiU3RiVNvdwtfcRlKNvdd,#Y&RlHRlExQgf.1*^T'X#Sgf}6Wn4=]hfPrk>Rn7Jw0!&>Rn5>Rn9Lunw?&a2!,5<oq@@wqfdRlJj5Q~=d,#Y(~ARfcOuN]fdDKw;ay(}i!547E}j?cI#T(@5bV}iCbV}hdv(^^Tb?a40,b##Tbo!a*bR!a<b|a/!aKai!aU[yK=]o^g:v>ReGJwPZtK<7Rh+h<~El,Pv#5ReR@awwxjCg,ulRjDJv6&!]j!z?aQeeg>w=Sh<eeJw;!&axEzOg,Qosc!#*:wkeJ]eJ>x'h-u(!%Ro.w~h.zPdNZ(X,Ya![x{;9ReY;wkgxRiF:x?ap#Y&RmUg<s2Rkod]+UY0TZ'!a&A9sw<=bczLNvuw{gqzNhJwSaxRmCKuLay!#&s_Rf-55b^{uJvZa!!c%#(55Ri654wmiu5RiuawLu,vp!+}^%b_}Y9;wkgxba}o>A9:=b^}zKuh=a''!3awRk3c*'!#aHRk6c+Z&Rk5Rk4Jv)&!awRjSawd9*`#0?C2@EzMj8u<uJ5RmbjQrquJu3x,k>uq@_+=ayb^|W~ARkEOuN]k@7dhzV^X/X&a-#zRzSb`zXcJzTT#2WkVKvDBzW!%FzY9;5bbzWjQrquJu3Jw3%!b`zU=ayb^zQd:#X(T-a!6Vyywxh}=b]{Jg=u1RiAdGp~qHtzv!w(wA+a+a;<!aJaYai'anasb(=azRmV:Cbb{MLq2vb!%')RjuRjrRjtRjqx3jnqCw3!%')Rk(Rk+Rk&Rk)Lq2vb!%')Rj{RjxRjzRjwLq2vb!%')RjsRjpRjfRjex3jcqCw3!%')Rk'Rk*RjkRjl9<CbbzfOu4ARhxLq2vb!%')RjyRjvRjhRjgx=joq*uKvb!%')+-Rk.Rk%Rj~Rk-Rk#Rj}x=jdq*uKvb!%')+-Rk,Rk!Rj|RjmRjjRjidAq&qKs@uAv8Aa.'*-a@a&0!aM@a5[y73Dsy3Ds|3Dt):wxgI2sHJwJZt.~Gqxwsf0ikrzt}Rl0Jvy_[xj~HqzKv_A|D!&WfP8axRoVcf,U#k(v]v+ueunaXRf1Ju}'!g8u#Ri=jQw!sCunLprq>!,')~<5qeGzq9F{W=c##%s5au:5aU3CBE|;d4#X(D!a&6Vygx(b;#(=]ed?C2F{N<capoq2r[a&!aPa9,'Pw;5s:@@=I|,55w_h|@@=IzcP~=x'fCqB_2Wl2>aU@@=I|1OuNBc1Z+jTqIsBv=Wlc~Cw`fl2WlZ~AcTa%!Z+jTqIsBv=Wlb~Cw`fh2WlYk+uNqJsBv=WlSg,u3dca3#UXaMYa)TaB-=cM|7T#<bI}l5@B932:aV2G{BOuNBJq:|M!5Ezt=<B=C@a^<B57@2F{v>cB{/T#=ay<bI{3Jv6!a.6BKq0ah&+!5E}HP~Ef{978BaU@@=Iza<7d#.Y#978BaU@@=IzH~AJq0!(@@=IzG978BaU@@=IzFe,aU*Y&^^^bvJb,b:bFad!a,c2Ta>aL.bo6!a#CbTa'T#Re{2Wlh2@G{yg6t~Ro_NvdRfticuRQRllJv3&!x&c|zs@Jw3!%RflwpfkRlpKuL;%(!Re<@G|C2GzdhIvuBwgjAg-u0RjAKQB%!(GzZ@G|5NuuRl7d='T+Y#Vy[g<v~Rm!==G|>JvA!)@wma=]m1ifuaw&RmnLs@vT'!|/+[y,g:v>ReTJw1!#qX=x!eC{bLu+wT&)ZtZauq_~Graci&U#F|89:r_Lupvq!.)&2RlG8RfaC=x!eF{_h?rpWlmd&'!#X|&]k::xJey#`'T|+<E|&2@H|%dE#(^,g;u.RiEg6vjRiC9xCkA{O|zY#g=ucRmXKs0@!&*@G|m@awRknJuh!,3d(}gY}eJvj!%Rm):Jw3!%Rm+Rm-Ls0w(&!a(a#@b[|6cZ#X'7RkxWgAOu4ARn'dH'U#Y*Vz-Wm'CARm}d]*#a%^a*T'aK!a<9bV{PC=p*Jw4!&SgxcbB5r]idw(wBRmF7xFkt#&`(Rm/Rm8E|!JuY_9:Rl5=wrgr2:bbxd@xXfB(a*#T+!.X0X1Ta/a'T&RlDRfL>RlyARl9b[z[>RfZ:RlL:RfRwlg/ARl;9;RlxKv,A/!%7s69<74=BA5ba{-8Bde#`a<XaKYa1,a'P~=wxfB2bZ}}?C972@@=I}r8@55B9;5bb}G978B2@@=aybb}3j3vLv;<Jw3&!>Rfk=ayb^}4~Ad1#`*@@=aybb{w2@>==<bbz]dx+UY#^UaF!a9!bB'Ya1.!ajXa#%olRhD[y=3Dt#Ov5BrHKuMB%!(Rf^Wep~HrJwkiQjKr|~FRg)Ku+D#'!t5~GrF~?rDdV)UY,Z/_7RkuG{<~BrBg,rlsO:235B@bX}|d?a1!#`(6Vyn5@d##Y+jTv|vV~EfIj]uNpn~FRfH7Lq2vb1!a9-978BaU@@=Iz9978BbU}#~AJq0!(@@=Iz8978BaU@@=Iz7~AJQ|}!978BbU}!JvkaK!AdUa21-U#`a+(g/vsRn~Ou!5RPj:rmu9WhOjXuvvNr}:RhAj^v(pyw8unRn[kPr}p|u7vwv]RiSBd;pppzq@qHQa?(b.!a.a`@.|xa(hFv;Wiyj5uuv-7Riw~Cw`fg2WlU978BbU|wOuNBJqG!(P~EfD~CRlQcZ#X,k)u3vWs@u2]ksg;wEx'f@q1_2Wg.j]uNpn~FRfqJv]!15x'h{qG!(@@=IzK~CRl^j6v(us5x4i,#T(2WmY?C2F{1>Kq<aj1!*jTqIsBv=Wld~Cw`fj2Wl[j`v0u*~>RlT=c>Z,k#u3vWs@u2]kq<c1Z+jTqIsBv=Wle~Cw`fn2Wl]dn1#c(a(b^a2!b/bAT(bj!aDa7bu,a_a{c0!2T0g:v>ReD2@G{42@G{5~DpM~<5rc=Bx6i>{RT#RnI@zCx]y]z:2Jv[!zr5Awyk]9]k]dD(Y+X#6Vz.g=wKtgwhaCwgmTWj2Lu,w%_+/[y-B;b^xeg3u3Rj-2@bX{*KrJ<!+'@Wg(g?QRlC@Jv`!%b[zIwsfII}8JQ_@w|kW|=Jv(%!AqcOuNBJvEzh!bYzjLs@wP#(0!oy@>RkdJwMZtc3Dtd@BcG#T'9bWxg2@2Fznd*#Y+;2x'c}w<zizixNgwa#Z'U+!/!a'!a+w~g~z6wcn{Rn}wcnzRn|5Rh%=]nJg5vuRmvNvdRlvcprJu}w*az*a#!%.a.'Bot9qT]kj@Wg'ay2Gzv@Jv`!%b[zEwsfHI}1;ck#Ux`<Cbbx_Lu+w!a&0*!wko*wwo,So,}6Juqxf!E}PigQuyRm`d3(`#8>Rn%:A5B;bZ~%KvhCa!a2!x>k7#Uxb@b{#xaRk7Jw0!)>wwhlShl}6>wwhmShm}6CJvB!.x'hhvj{!!5Bwkhhbaz}x'hivjz~!5Bwkhibaz|xEhTrNu,v-vpD!a%&/)a3a.,%Ro2t[CE{)@3re9b]{%wjo09:rgc:Z&Ro6=<riifuaw&RmoKrNA!%(Ro4>Ro89;Ri`dSaL'UYzxZb)7Rka3xRhT&!,!#^1U}vbaz{>>@=be}yC@:D5bazzKu+A&!}{?ba}y>>@=be}wxBh[t`u~vJvr!%a!a()a,a0a4RoC=]o;Ju(!%RoGRhdwjh`=]oAg>w#Ro?g5vuRo=NvdRl|Ku]C.!&;RoEJvB!%RoORoMBx'h[v+_?w~h`}~5?w~hd~!xKh]oiptu-utv.vp!#%&a30a@a'a+(a/aOp(o~p!RoDJu(!%RoHRhewjha=]oBNvdRl}g>w#Ro@g5vuRo>c[#X']o<CauRoRAd-#Y':RkpauRoQKu]C.!&;RoFJvB!%RoNRoPBx'h]v+_?w~ha}t5?w~he}ue!/UbhYacXaW^Tc&a;b:a-c/#b&aja1(!cL+!bKbt!bmcRc9aIc?8[yW3Dtt94Rg`Jv}!&SiRMzBhEebShEMNuPRe>x7gL#TzuwjirRipc<Z&>on;>z=h-MSh.Mwqczx'a7vj&!>Re4@=ResJt__NuPRi*NuPRi)j]uNr|~FRfzKrJ>_+@Wfy@Wf]2WocKrJ<!+'@Wg%g/QRl@@Jv`!&awRl<wsfFIzgLu(w*!.*&ShBMwvhIRhI9;RhNx1hK'!#Sn]Mx1hK~0!#:2<H~7cNu+w7D*'1ZtW>Rn1~?rOc:Z&Rn2=<rQ<7wjh&=BSnLMc]#X(6Vz)w[b=a!U#9wzgMc3#&(RgMRitRis<x,gKt`ax!&+SioM=BSilMc3#&(RgKRinRimKurB,!&SiQMzBhDebShDM6BJQ!(P~Efx978B2@@=I}WLrJw!!,a*&@G}O@9wkibRid@@x'fKwC!&SlDMSfLMjUv~Q~EfKKv3@a+!(hFv-]mpx/hYZ(C5RiWz<o/MwkhY?So/M@x,gbvfB*&!SgEM:SoeeehFu3:Rgbda(,^TZa)X/7Sg[eb:2RgI~BrMC@wgkc:wwkcRerx3h(uUvK!&*,SnOM4Sh*MArRg;wHRh(x=h;rJvPwI!a4',a'0@Wg&=BSh/Mg>w=Rh=g3w*wwgGRgGcW(X#;Sg}M2Gzk@Jv`!&awRl=wsfGIz`dKZ*T'Y-:RhR7RhQg5u-p`j6v(us5d,#Y+~Awkia?RicOuNBwkibba}Ld6p~tyu_vbAa'a+!a/'a3aEa8a!>Sh,ebJv{!&Sh@ebSaReb9;SgwebNuPRi(NvdRl)NuPRi'hHu^<Rm^Jvv_@Wl(g;u1Si/ebKu'B&!*Sh?eb@Wl'z@aPeb95Si.ebcpputyvjB)!,&a+0a%ShAMWeK@G}C@WfJ9;RhMwvhH9w{ia}ix,hJvRA1(!zAn[MRhHx1hJ~*!#hFv(BSn[MBJQ!(@@=I~'978B2@@=I}2db.Ua<'X}+T#a0XaG2G}E;wkg|wuh!Rh!x,hZu,@)!&So0MVy)C5RiXACJvB!&5RiY5RiZg8w)cG}*T#2@bU}=KsA>(!a.3wkhZba~(x,h^u(A!&(SoCMRhb5Bz=h[eb?w~hb~6x,h_u(A!&(SoDMRhc5Bz=h]eb?w~hc~6e)aA1T#T,^^^c-bMb&blcPaP(a/!0!bA=b5c@a(!bfbrc#2afwmhARnjwchORnp2Wlf3DtsNvdRl-2@wpa<]m0bx(#:awRk2@Jw3!%RfhwpfgRlnKQB%!(G{V@G|'NuuRl6d='T+Y#VyUg<v~Rl~==G|<Jv+'!aYShC}6@B<5?ba~8@Jw3'!g2QRljhLrpWlOd+#Y'g.w'rIg>w*wgj@g-u0Rj@Lu+wT&)ZtUauq]~GrGci&U#F|39:rELrNvj!.%*RhCwunfw~nf~:9;Ri]>wtnhg;wHRnhx3hDs@v~!/+'@Wfr@9RkSNu&Rlo=@<5GzoKs0@_+@Wl+@awRkmJuh!-3d(}pY#qWJvj!%Rm(:Jw3!%Rm,Rm*de&!1U-U#`)Re;@G|.@9Ri82@wjfvRlq=@<5GzpLvOvr!).&2RlF8Rf`C=x!eE{.Jw3_g2QRlkhLrpWlPde(!#U{s,UXa*Ta'[y'g:v>ReS;x0PZ&RnlRnn~HrKJw1}f!=x!eB|2w]aP(#Xa&a*Ta.Ua2a7=]iOd'#Y&Ro&WnWg;u.RiDg6vjRiBNvdRlzhNvj]nYJuW_2Wm3x)kFze{9d])!a.!,Y01!#&aC!a3RndC=ox~BrC@2b^{pg,rlse7x'ksuq!%Rm.E{xidw(wBRmGx9o+)X#wwo-So-}69:Rl4@xSf@a#XZ'X)X,Ta(/ARl8b[xc>RfY:RlI:RfQwlg.ARl:9;Rlwdn'#^XafaQa1X1TaHTa)@b[{zcZ#X'7RkwWg@Ou4ARn&x)kG#{,g7u/RkGdH'U#Y*Vz'Wm&CARm|bx#(A]gUbUzJj9Q~=d,#Y(56H}l978H{U7d,0#U*2>ABb_xZ978BbU{e~AJQ{g!978BbU{hxMh?ad{oUYZ.x1h?{l!#:2<H{mx3n[t{vl!,&a%3Ro(z=iS}6ARnr=Bwsn^wvn`Rnbd`*T}B0!#^X'BG{c9b]{a>>@=be}F?JvS!&BG{d7BG}(Bde#`a1X,Ya@!a'P~=wxf@2bZ}I56B2@@=aybb}08@55B9;5bb}<j3vLv;<Jw3&!>Rfg=ayb^}&OuNBKuLA!)a!P~=x#fD{f2@>==<bbzl?C972@@=Ix^d6rSu,v7w*C(0a)a6#B+a%!sQ[y?3Dt%3[xn~<5rLOu!5p@Ku+D#'!t7~GrP~?rNKvlaya7'!h+v-5qMg=t|cd,U#5AAaa5Abb{S@52B5@a[@52B5Gx[iXueu;d<#`a(!/549C;ag>23ExY5@Dah89b^~689Jv)!~2b[~1Lv'w(%*!a#bX|aPrmawRe]keu7uhv-q6rxu,q`xTo]/a5aU!bNaDXbi!b-!ao!b<bwA!#5@B932:aV2G|:d-)Y#hJrL>RhG<7@C5<H|_=Cau:5aj5@B932:bJ|ng>vIbs)#?C2F|9jPv0w.vISh-MKvUaz(.!9ABbb|[5;5<H|Eg>unwfh;9:4E|YjQsBt|vjx'hYq3!(?C2F|J:2<BaY?C2F|GOu!5x,g|p{ah!-(?C2F|c9:4E|OjXuvvNr}:Rh&i[w*t|cd+U#jJvsu)vsSn~Mkfrmu9p}u7vwv]So!McW#Xa!ax5@A5aY:5;5<H|>kJv~vYrquJu3x4ib#T)2@SmZM?C2F|Bj:rmu9@xPhI(a*a#U#`a3-5Abb|L~@:RhK9:4E|0@52B5G|#C::aY?C2F|-:2<BaY?C2F|.5Jvk!a)javYrquJu3x4ia#T)2@SmYM?C2F|HAxPhH(!a#U#`a*-5Abb|4~@:RhJ9:4E|R@52B5G|F:2<BaY?C2F|Sc^#Xa2j=Qq5CJvB!-g<v{z;hhM?C2F|Zi[vrv{z;hiM?C2F|XKsA>!a)-g<v{z;h[eb?C2F|]i[vrv{z;h]eb?C2F|^iZu.vix,hZq3ah!.(?C2F|QOu!5ShXM:2<BaY?C2F|P",13494,2713,49,25,61);var T;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE",e[e.VALUE_MASK=8191]="VALUE_MASK"})(T||(T={}));var S;(function(e){e[e.AMP=38]="AMP",e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_X=120]="LOWER_X"})(S||(S={}));const oe=32,en=21,Qn=2097151,ke=2047;let nn=0;function et(e){const n=e>>>en;return n===ke?nn:n}function nt(e){return e-S.ZERO>>>0<=9}function tt(e){return(e|oe)-S.LOWER_A>>>0<=5}function rt(e){return(e|oe)-S.LOWER_A>>>0<=25}var ze;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(ze||(ze={}));var Se;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(Se||(Se={}));function it(e,n,t,i){const r=(n&T.BRANCH_LENGTH)>>7,o=n&T.JUMP_TABLE;if(o){if(r===0)return i===o?t:-1;const l=i-o;if(l>>>0>=r)return-1;const c=e[t+l];return c===0?-1:t+r+c-1&65535}if(r===0)return-1;const s=r+1>>1,u=t+s+r;for(let l=0;l<r;l++){const h=e[t+(l>>1)]>>((l&1)<<3)&255;if(h===i){const f=t+s+l;return u+e[f]&65535}if(h>i)return-1}return-1}function je(e,n,t){return t===1?String.fromCharCode(e[n]&T.VALUE_MASK):t===2?String.fromCharCode(e[n+1]):String.fromCharCode(e[n+1],e[n+2])}function ot(e,n,t){let i=n+1,r=0,o=i;if(i<t&&(e.charCodeAt(i)|oe)===S.LOWER_X)for(i+=1,o=i;i<t;){const u=e.charCodeAt(i);if(nt(u))r=r*16+(u-S.ZERO);else if(tt(u))r=r*16+((u|oe)-S.LOWER_A+10);else break;i+=1}else for(;i<t;){const u=e.charCodeAt(i)-S.ZERO;if(u>>>0>9)break;r=r*10+u,i+=1}if(i===o)return 0;i<t&&e.charCodeAt(i)===S.SEMI&&(i+=1),r>1114111&&(r=1114112);let s=i-n;return s>=ke&&(nn=s,s=ke),s<<en|r}function st(e,n,t){const i=Vn;let r=e.indexOf("&");if(r<0)return e;const o=e.length;let s=0,u="";const l=i[0],c=l&T.JUMP_TABLE,h=(l&T.BRANCH_LENGTH)>>7;do{const f=r+1,d=e.charCodeAt(f);let p,a;if(d===S.NUM){const b=ot(e,f,o);p=et(b),p>0&&e.charCodeAt(f+p-1)!==S.SEMI&&(p=0),a=p===0?"":Kn(b&Qn)}else if(rt(d)){p=0,a="";const b=d-c;let g;if(b>>>0<h){const k=i[1+b];g=k===0?-1:h+k&65535}else g=-1;let x=0,C=0,m=g<0?0:i[g],_=f+1;e:for(;_<o;){for(;(m&(T.VALUE_LENGTH|T.FLAG13))===0&&(m&T.JUMP_TABLE)!==0;){const F=m&T.JUMP_TABLE,D=(m&T.BRANCH_LENGTH)>>7;if(D===0){if(e.charCodeAt(_)!==F)break e;g+=1}else{const y=e.charCodeAt(_)-F;if(y>>>0>=D)break e;const w=i[g+1+y];if(w===0)break e;g=g+D+w&65535}if(m=i[g],_+=1,_>=o)break e}if((m&(T.VALUE_LENGTH|T.FLAG13))===T.FLAG13){const F=(m&T.BRANCH_LENGTH)>>7;if(e.charCodeAt(_)!==(m&T.JUMP_TABLE))break;_+=1;const D=F-1;let y=g+1,w=0;for(;w+1<D;w+=2){const B=i[y];if(e.charCodeAt(_)!==(B&255)||(_+=1,e.charCodeAt(_)!==(B>>8&255)))break e;_+=1,y+=1}if(w<D){if(e.charCodeAt(_)!==(i[y]&255))break;_+=1}g+=1+(F>>1),m=i[g];continue}const k=m>>>14,v=e.charCodeAt(_);if(k!==0){if(v===S.SEMI){p=_-f+1,a=k===1?String.fromCharCode(m&T.VALUE_MASK):je(i,g,k);break}if(k===1)break}const A=it(i,m,g+(k||1),v);if(A<0)break;g=A,m=i[g],_+=1}a===""&&p>0&&(a=je(i,x,C))}else p=0,a="";p===0||t?r=f:(s<r&&(u+=e.slice(s,r)),u+=a,r=s=f+p),e.charCodeAt(r)!==S.AMP&&(r=e.indexOf("&",r))}while(r>=0);return u+e.slice(s)}function tn(e){return st(e,!0,!1)}var ut=class{src_Any=Ke.source;src_Cc=Ge.source;src_Z=Qe.source;src_P=me.source;src_ZPCc=[this.src_Z,this.src_P,this.src_Cc].join("|");src_ZCc=[this.src_Z,this.src_Cc].join("|");cache={};opts={maxLength:1e4,urlAuth:!1,schema_names:[]};constructor(e={}){this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,n,t=4){const i=this.escapeRE(e),r=this.escapeRE(n),o=`(?:(?!${this.src_ZCc}|${i}|${r}).)`;let s=`${i}${o}{0,1000}${r}`;for(let u=2;u<=t;u++)s=`${i}(?:${o}|${s}){0,1000}${r}`;return s}get_text_separators(){return this.cache.text_separators??=/[><\uff5c]/}get_pseudo_letter(){return this.cache.src_pseudo_letter??=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`)}get_ipv4_addr(){return this.cache.src_ip4??=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])")}get_ipv6_addr(){const e="[0-9A-Fa-f]{1,4}",n=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return this.cache.src_ip6_addr??=new RegExp(`(?:(?:${e}:){6}${n}|::(?:${e}:){5}${n}|(?:${e})?::(?:${e}:){4}${n}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${n}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${n}|(?:(?:${e}:){0,3}${e})?::${e}:${n}|(?:(?:${e}:){0,4}${e})?::${n}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`)}get_ipv6_url_host(){return this.cache.src_ip6_host??=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`)}get_ipv6_mail_host(){return this.cache.src_ipv6_mail_host??=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`)}get_auth(){return this.cache.src_auth??=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`)}get_port(){return this.cache.src_port??=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?")}get_host_terminator(){return this.cache.src_host_terminator??=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`)}get_path_terminator(){return this.cache.src_path_terminator??=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`)}get_path(){return this.cache.src_path??=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`)}get_mail_name(){return this.cache.src_mail_name??=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}")}get_xn(){return this.cache.src_xn??=new RegExp("xn--[a-z0-9\\-]{1,59}")}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){return this.cache.src_domain_root??=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`)}get_domain(){return this.cache.src_domain??=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`)}get_url_host_port(){return this.cache.url_host_port??=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source)}get_fuzzy_url_host_port(){return this.cache.fuzzy_url_host_port??=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source)}get_mail_host(){return this.cache.src_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source)}get_fuzzy_mail_host(){return this.cache.src_fuzzy_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source)}get_path_extra(){return this.cache.src_path_extra??=new RegExp("")}get_fuzzy_mail_host_search(){return this.cache.mail_fuzzy_host_search??=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig")}get_fuzzy_link_search(){return this.cache.link_fuzzy_search??=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig")}get_http_validator(){return this.cache.http_validator??=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy")}get_relative_proto_validator(){return this.cache.relative_proto_validator??=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy")}get_mail_name_validator(){return this.cache.mail_name_validator??=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`)}get_mailto_validator(){return this.cache.mailto_validator??=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy")}get_schema_names(){return this.cache.schema_names??=new RegExp((this.opts.schema_names||[]).map(e=>this.escapeRE(e)).join("|"))}get_schema_search(){return this.cache.schema_search??=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig")}get_schema_at_start(){return this.cache.schema_at_start??=new RegExp(`^${this.get_schema_search().source}`,"i")}},le={validate:(e,n,t)=>{const i=t.re.get_http_validator();i.lastIndex=n;const r=i.exec(e);return r?r[0].length:0},normalize:(e,n)=>n.normalize(e)},lt={"http:":le,"https:":le,"ftp:":le,"//":{validate:function(e,n,t){const i=t.re.get_relative_proto_validator();i.lastIndex=n;const r=i.exec(e);return r?n>=3&&e[n-3]===":"||n>=3&&e[n-3]==="/"?0:r[0].length:0},normalize:(e,n)=>n.normalize(e)},"mailto:":{validate:function(e,n,t){const i=t.re.get_mailto_validator();i.lastIndex=n;const r=i.exec(e);return r?r[0].length:0},normalize:(e,n)=>n.normalize(e)}},ct="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",at="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function ht(){const e=at.split("|");return ct.split("|").forEach(n=>{const t=n.indexOf(":"),i=n.slice(0,t);for(const r of n.slice(t+1))e.push(i+r)}),e}var ft={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:ht(),urlAuth:!1,maxLength:1e4},Ie=class{schema;index;lastIndex;raw;text;url;constructor(e,n,t,i){const r=e.slice(t,i);this.schema=n.toLowerCase(),this.index=t,this.lastIndex=i,this.raw=r,this.text=r,this.url=r}},pt=class{__opts__;__schemas__;re;constructor(e={}){const{rebuilder:n,...t}=e;this.__opts__={...ft,...t},this.__schemas__={...lt},this.re=n||new ut,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,n=null){if(!n)delete this.__schemas__[e];else{const t={normalize:(i,r)=>r.normalize(i),...n};this.__schemas__[e]=t}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let n,t;for(t=this.re.get_schema_search(),t.lastIndex=0;(n=t.exec(e))!==null;)if(this.testSchemaAt(e,n[2],t.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(t=this.re.get_fuzzy_link_search(),t.lastIndex=0,t.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const i=this.re.get_fuzzy_mail_host_search(),r=this.re.get_mail_name_validator();for(i.lastIndex=0;(n=i.exec(e))!==null;){const o=e.slice(Math.max(0,n.index-65),n.index);if(r.test(o))return!0}}return!1}testSchemaAt(e,n,t){return this.__schemas__[n.toLowerCase()]?this.__schemas__[n.toLowerCase()].validate(e.slice(0,t+this.__opts__.maxLength),t,this):0}match(e){const n=[],t=this.re.get_schema_search();let i,r,o,s,u,l,c=!1,h=!1,f=!1,d=0;if(!e.length)return null;for(t.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(i=this.re.get_fuzzy_link_search(),i.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(r=this.re.get_fuzzy_mail_host_search(),r.lastIndex=0,o=this.re.get_mail_name_validator());;){const p=Math.max(d-1,0);if(r&&o&&!f&&(!u||u.index<d))for(r.lastIndex<p&&(r.lastIndex=p);;){const C=r.exec(e);if(!C){f=!0,u=void 0;break}const m=o.exec(e.slice(Math.max(0,C.index-65),C.index));if(m){if(u={schema:"mailto:",index:C.index-m[1].length,lastIndex:C.index+C[0].length},u.index>=d)break;r.lastIndex<p&&(r.lastIndex=p)}}if(i&&!h&&(!s||s.index<d))for(i.lastIndex<p&&(i.lastIndex=p);;){const C=i.exec(e);if(!C){h=!0,s=void 0;break}if(s={schema:"",index:C.index+C[1].length,lastIndex:C.index+C[0].length},s.index>=d)break;i.lastIndex<p&&(i.lastIndex=p)}let a=u;(!a||s&&(s.index<a.index||s.index===a.index&&s.lastIndex>a.lastIndex))&&(a=s);let b;if(!c)for(;;){if(!l){t.lastIndex<p&&(t.lastIndex=p);const _=t.exec(e);if(!_){c=!0;break}l={schema:_[2],index:_.index+_[1].length,lastIndex:_.index+_[0].length}}if(l.index<d){l=void 0;continue}if(a&&l.index>a.index)break;const C=l;l=void 0;const m=this.testSchemaAt(e,C.schema,C.lastIndex);if(m){b={schema:C.schema,index:C.index,lastIndex:C.lastIndex+m};break}}let g=b;if((!g||u&&(u.index<g.index||u.index===g.index&&u.lastIndex>g.lastIndex))&&(g=u),(!g||s&&(s.index<g.index||s.index===g.index&&s.lastIndex>g.lastIndex))&&(g=s),!g)break;g===u?u=void 0:g===s&&(s=void 0);const x=new Ie(e,g.schema,g.index,g.lastIndex);x.schema?this.__schemas__[x.schema].normalize(x,this):this.normalize(x),n.push(x),d=g.lastIndex}return n.length?n:null}matchAtStart(e){if(!e.length)return null;const n=this.re.get_schema_at_start().exec(e);if(!n)return null;const t=this.testSchemaAt(e,n[2],n[0].length);if(!t)return null;const i=new Ie(e,n[2],n.index+n[1].length,n.index+n[0].length+t);return this.__schemas__[i.schema].normalize(i,this),i}tlds(e,n=!1){return e=Array.isArray(e)?e:[e],n?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}};const W=2147483647,M=36,Re=1,H=26,dt=38,_t=700,rn=72,on=128,sn="-",gt=/^xn--/,kt=/[^\0-\x7F]/,mt=/[\x2E\u3002\uFF0E\uFF61]/g,Rt={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ce=M-Re,P=Math.floor,ae=String.fromCharCode;function $(e){throw new RangeError(Rt[e])}function bt(e,n){const t=[];let i=e.length;for(;i--;)t[i]=n(e[i]);return t}function un(e,n){const t=e.split("@");let i="";t.length>1&&(i=t[0]+"@",e=t[1]),e=e.replace(mt,".");const r=e.split("."),o=bt(r,n).join(".");return i+o}function ln(e){const n=[];let t=0;const i=e.length;for(;t<i;){const r=e.charCodeAt(t++);if(r>=55296&&r<=56319&&t<i){const o=e.charCodeAt(t++);(o&64512)==56320?n.push(((r&1023)<<10)+(o&1023)+65536):(n.push(r),t--)}else n.push(r)}return n}const xt=e=>String.fromCodePoint(...e),Ct=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:M},Je=function(e,n){return e+22+75*(e<26)-((n!=0)<<5)},cn=function(e,n,t){let i=0;for(e=t?P(e/_t):e>>1,e+=P(e/n);e>ce*H>>1;i+=M)e=P(e/ce);return P(i+(ce+1)*e/(e+dt))},an=function(e){const n=[],t=e.length;let i=0,r=on,o=rn,s=e.lastIndexOf(sn);s<0&&(s=0);for(let u=0;u<s;++u)e.charCodeAt(u)>=128&&$("not-basic"),n.push(e.charCodeAt(u));for(let u=s>0?s+1:0;u<t;){const l=i;for(let h=1,f=M;;f+=M){u>=t&&$("invalid-input");const d=Ct(e.charCodeAt(u++));d>=M&&$("invalid-input"),d>P((W-i)/h)&&$("overflow"),i+=d*h;const p=f<=o?Re:f>=o+H?H:f-o;if(d<p)break;const a=M-p;h>P(W/a)&&$("overflow"),h*=a}const c=n.length+1;o=cn(i-l,c,l==0),P(i/c)>W-r&&$("overflow"),r+=P(i/c),i%=c,n.splice(i++,0,r)}return String.fromCodePoint(...n)},hn=function(e){const n=[];e=ln(e);const t=e.length;let i=on,r=0,o=rn;for(const l of e)l<128&&n.push(ae(l));const s=n.length;let u=s;for(s&&n.push(sn);u<t;){let l=W;for(const h of e)h>=i&&h<l&&(l=h);const c=u+1;l-i>P((W-r)/c)&&$("overflow"),r+=(l-i)*c,i=l;for(const h of e)if(h<i&&++r>W&&$("overflow"),h===i){let f=r;for(let d=M;;d+=M){const p=d<=o?Re:d>=o+H?H:d-o;if(f<p)break;const a=f-p,b=M-p;n.push(ae(Je(p+a%b,0))),f=P(a/b)}n.push(ae(Je(f,0))),o=cn(r,c,u===s),r=0,++u}++r,++i}return n.join("")},vt=function(e){return un(e,function(n){return gt.test(n)?an(n.slice(4).toLowerCase()):n})},Dt=function(e){return un(e,function(n){return kt.test(n)?"xn--"+hn(n):n})},Me={version:"2.3.1",ucs2:{decode:ln,encode:xt},decode:an,encode:hn,toASCII:Dt,toUnicode:vt};var Pe=Object.defineProperty,fn=(e,n)=>{let t={};for(var i in e)Pe(t,i,{get:e[i],enumerable:!0});return Pe(t,Symbol.toStringTag,{value:"Module"}),t},wt=fn({arrayReplaceAt:()=>At,asciiTrim:()=>ue,callable:()=>pn,escapeHtml:()=>q,escapeRE:()=>Jt,fromCodePoint:()=>K,isMdAsciiPunct:()=>Q,isPunctChar:()=>_n,isPunctCharCode:()=>V,isSpace:()=>E,isValidEntityCode:()=>be,isWhiteSpace:()=>G,lib:()=>Mt,normalizeReference:()=>se,unescapeAll:()=>Y,unescapeMd:()=>Bt});function pn(e){const n=function(...t){return Reflect.construct(e,t,new.target&&new.target!==n?new.target:e)};return Object.defineProperty(n,"name",{value:e.name}),Object.setPrototypeOf(n,e),n.prototype=e.prototype,n}function At(e,n,t){return[].concat(e.slice(0,n),t,e.slice(n+1))}function be(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function K(e){if(e>65535){e-=65536;const n=55296+(e>>10),t=56320+(e&1023);return String.fromCharCode(n,t)}return String.fromCharCode(e)}var dn=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,Et=new RegExp(`${dn.source}|${/&([a-z#][a-z0-9]{1,31});/gi.source}`,"gi"),Ft=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function yt(e,n){if(n.charCodeAt(0)===35&&Ft.test(n)){const i=n[1].toLowerCase()==="x"?parseInt(n.slice(2),16):parseInt(n.slice(1),10);return be(i)?K(i):e}const t=tn(e);return t!==e?t:e}function Bt(e){return e.indexOf("\\")<0?e:e.replace(dn,"$1")}function Y(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(Et,function(n,t,i){return t||yt(n,i)})}var Tt=/[&<>"]/,zt=/[&<>"]/g,St={"&":"&","<":"<",">":">",'"':"""};function jt(e){return St[e]}function q(e){return Tt.test(e)?e.replace(zt,jt):e}var It=/[.?*+^$[\]\\(){}|-]/g;function Jt(e){return e.replace(It,"\\$&")}function E(e){switch(e){case 9:case 32:return!0}return!1}function G(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function _n(e){return me.test(e)||Ve.test(e)}function V(e){return _n(K(e))}function Q(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function se(e){return e=e.trim().replace(/\s+/g," "),e.toLowerCase().toUpperCase()}function Le(e){return e===32||e===9||e===10||e===13}function ue(e){let n=0;for(;n<e.length&&Le(e.charCodeAt(n));n++);let t=e.length-1;for(;t>=n&&Le(e.charCodeAt(t));t--);return e.slice(n,t+1)}var Mt={mdurl:Un,ucmicro:Wn};function Pt(e,n,t){let i,r,o,s;const u=e.posMax,l=e.pos;for(e.pos=n+1,i=1;e.pos<u;){if(o=e.src.charCodeAt(e.pos),o===93&&(i--,i===0)){r=!0;break}if(s=e.pos,e.md.inline.skipToken(e),o===91){if(s===e.pos-1)i++;else if(t)return e.pos=l,-1}}let c=-1;return r&&(c=e.pos),e.pos=l,c}function Lt(e,n,t){let i,r=n;const o={ok:!1,pos:0,str:""};if(e.charCodeAt(r)===60){for(r++;r<t;){if(i=e.charCodeAt(r),i===10||i===60)return o;if(i===62)return o.pos=r+1,o.str=Y(e.slice(n+1,r)),o.ok=!0,o;if(i===92&&r+1<t){r+=2;continue}r++}return o}let s=0;for(;r<t&&(i=e.charCodeAt(r),!(i===32||i<32||i===127));){if(i===92&&r+1<t){if(e.charCodeAt(r+1)===32){r++;continue}r+=2;continue}if(i===40&&(s++,s>32))return o;if(i===41){if(s===0)break;s--}r++}return n===r||s!==0||(o.str=Y(e.slice(n,r)),o.pos=r,o.ok=!0),o}function Nt(e,n,t,i){let r,o=n;const s={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(i)s.str=i.str,s.marker=i.marker;else{if(o>=t)return s;let u=e.charCodeAt(o);if(u!==34&&u!==39&&u!==40)return s;n++,o++,u===40&&(u=41),s.marker=u}for(;o<t;){if(r=e.charCodeAt(o),r===s.marker)return s.pos=o+1,s.str+=Y(e.slice(n,o)),s.ok=!0,s;if(r===40&&s.marker===41)return s;r===92&&o+1<t&&o++,o++}return s.can_continue=!0,s.str+=Y(e.slice(n,o)),s}var Ot=fn({parseLinkDestination:()=>Lt,parseLinkLabel:()=>Pt,parseLinkTitle:()=>Nt});function ee(e){"@babel/helpers - typeof";return ee=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},ee(e)}function $t(e,n){if(ee(e)!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var i=t.call(e,n);if(ee(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function qt(e){var n=$t(e,"string");return ee(n)=="symbol"?n:n+""}function R(e,n,t){return(n=qt(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var Z=class{constructor(e,n,t){R(this,"map",null),R(this,"level",0),R(this,"children",null),R(this,"content",""),R(this,"markup",""),R(this,"info",""),R(this,"block",!1),R(this,"hidden",!1),this.type=e,this.tag=n,this.attrs=null,this.nesting=t,this.meta=null}attrIndex(e){if(!this.attrs)return-1;const n=this.attrs;for(let t=0,i=n.length;t<i;t++)if(n[t][0]===e)return t;return-1}attrPush(e){this.attrs?this.attrs.push(e):this.attrs=[e]}attrSet(e,n){const t=this.attrIndex(e),i=[e,n];t<0?this.attrPush(i):this.attrs[t]=i}attrGet(e){const n=this.attrIndex(e);let t=null;return n>=0&&(t=this.attrs[n][1]),t}attrJoin(e,n){const t=this.attrIndex(e);t<0?this.attrPush([e,n]):this.attrs[t][1]=`${this.attrs[t][1]} ${n}`}},ne=class{constructor(){R(this,"__rules__",[]),R(this,"__cache__",null)}__find__(e){for(let n=0;n<this.__rules__.length;n++)if(this.__rules__[n].name===e)return n;return-1}__compile__(){const e=new Set;this.__rules__.forEach(n=>{n.enabled&&n.alt.forEach(t=>{t&&e.add(t)})}),this.__cache__=Object.create(null),this.__cache__[""]=[],this.__rules__.forEach(n=>{n.enabled&&this.__cache__[""].push(n.fn)}),e.forEach(n=>{this.__cache__[n]=[],this.__rules__.forEach(t=>{t.enabled&&t.alt.indexOf(n)>=0&&this.__cache__[n].push(t.fn)})})}at(e,n,t={}){const i=this.__find__(e);if(i===-1)throw new Error(`Parser rule not found: ${e}`);this.__rules__[i].fn=n,this.__rules__[i].alt=t.alt||[],this.__cache__=null}before(e,n,t,i={}){const r=this.__find__(e);if(r===-1)throw new Error(`Parser rule not found: ${e}`);this.__rules__.splice(r,0,{name:n,enabled:!0,fn:t,alt:i.alt||[]}),this.__cache__=null}after(e,n,t,i={}){const r=this.__find__(e);if(r===-1)throw new Error(`Parser rule not found: ${e}`);this.__rules__.splice(r+1,0,{name:n,enabled:!0,fn:t,alt:i.alt||[]}),this.__cache__=null}push(e,n,t={}){this.__rules__.push({name:e,enabled:!0,fn:n,alt:t.alt||[]}),this.__cache__=null}enable(e,n=!1){Array.isArray(e)||(e=[e]);const t=[];return e.forEach(i=>{const r=this.__find__(i);if(r<0){if(n)return;throw new Error(`Rules manager: invalid rule name ${i}`)}this.__rules__[r].enabled=!0,t.push(i)}),this.__cache__=null,t}enableOnly(e,n=!1){Array.isArray(e)||(e=[e]),this.__rules__.forEach(t=>{t.enabled=!1}),this.enable(e,n)}disable(e,n=!1){Array.isArray(e)||(e=[e]);const t=[];return e.forEach(i=>{const r=this.__find__(i);if(r<0){if(n)return;throw new Error(`Rules manager: invalid rule name ${i}`)}this.__rules__[r].enabled=!1,t.push(i)}),this.__cache__=null,t}getRules(e){return this.__cache__||this.__compile__(),this.__cache__[e]||[]}},L={};L.code_inline=function(e,n,t,i,r){const o=e[n];return`<code${r.renderAttrs(o)}>${q(o.content)}</code>`};L.code_block=function(e,n,t,i,r){const o=e[n];return`<pre${r.renderAttrs(o)}><code>${q(e[n].content)}</code></pre>
|
|
3
3
|
`};L.fence=function(e,n,t,i,r){const o=e[n],s=o.info?Y(o.info).trim():"";let u="",l="";if(s){const h=s.split(/(\s+)/g);u=h[0],l=h.slice(2).join("")}let c;if(t.highlight?c=t.highlight(o.content,u,l)||q(o.content):c=q(o.content),c.indexOf("<pre")===0)return c+`
|
|
4
4
|
`;if(s){const h=o.attrIndex("class"),f=o.attrs?o.attrs.slice():[];h<0?f.push(["class",`${t.langPrefix}${u}`]):(f[h]=[f[h][0],f[h][1]],f[h][1]+=` ${t.langPrefix}${u}`);const d={attrs:f};return`<pre><code${r.renderAttrs(d)}>${c}</code></pre>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.custom-mcp-transport[data-v-828952e7]{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.custom-mcp-form[data-v-828952e7]{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.custom-mcp-view[data-v-1ba829ad]{display:grid;gap:10px}.custom-mcp-toolbar[data-v-1ba829ad]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px}.custom-mcp-section-title[data-v-1ba829ad]{font-size:.92rem;font-weight:650}.custom-mcp-header[data-v-1ba829ad],.custom-mcp-tool-row[data-v-1ba829ad]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 16px}.custom-mcp-tool-row+.custom-mcp-tool-row[data-v-1ba829ad]{border-top:1px solid rgba(var(--v-border-color),var(--v-border-opacity))}@layer vuetify-components{.v-expansion-panel{background-color:rgb(var(--v-theme-surface));color:color-mix(in srgb,rgb(var(--v-theme-on-surface)) calc(var(--v-high-emphasis-opacity) * 100%),transparent)}.v-expansion-panel:not(:first-child):after{border-color:rgba(var(--v-border-color),var(--v-border-opacity))}.v-expansion-panel--disabled .v-expansion-panel-title{color:color-mix(in srgb,rgb(var(--v-theme-on-surface)) 26%,transparent)}.v-expansion-panel--disabled .v-expansion-panel-title .v-expansion-panel-title__overlay{opacity:.4615384615}.v-expansion-panels{display:flex;flex-wrap:wrap;justify-content:center;list-style-type:none;padding:0;width:100%;position:relative;z-index:1;border-radius:4px}}@layer vuetify-overrides{.v-expansion-panels>:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.v-expansion-panels>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>.v-expansion-panel--active{border-radius:inherit}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>.v-expansion-panel--before-active{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>.v-expansion-panel--after-active{border-top-left-radius:inherit;border-top-right-radius:inherit}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>:not(:first-child):not(.v-expansion-panel--after-active):not(.v-expansion-panel--active){border-top-left-radius:var(--v-expansion-panels-inner-radius, 0);border-top-right-radius:var(--v-expansion-panels-inner-radius, 0)}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>:not(:last-child):not(.v-expansion-panel--before-active):not(.v-expansion-panel--active){border-bottom-left-radius:var(--v-expansion-panels-inner-radius, 0);border-bottom-right-radius:var(--v-expansion-panels-inner-radius, 0)}.v-expansion-panels--variant-accordion>:first-child:not(:last-child){border-bottom-left-radius:var(--v-expansion-panels-inner-radius, 0);border-bottom-right-radius:var(--v-expansion-panels-inner-radius, 0)}.v-expansion-panels--variant-accordion>:last-child:not(:first-child){border-top-left-radius:var(--v-expansion-panels-inner-radius, 0);border-top-right-radius:var(--v-expansion-panels-inner-radius, 0)}.v-expansion-panels--variant-accordion>:last-child:not(:first-child) .v-expansion-panel-title--active{border-bottom-left-radius:initial;border-bottom-right-radius:initial}.v-expansion-panels--variant-accordion>:not(:first-child):not(:last-child){border-radius:var(--v-expansion-panels-inner-radius, 0)}}@layer vuetify-components{.v-expansion-panels--variant-accordion .v-expansion-panel-title__overlay{transition:.3s border-radius cubic-bezier(.4,0,.2,1)}.v-expansion-panel{flex:1 0 100%;max-width:100%;position:relative;transition:.3s all cubic-bezier(.4,0,.2,1);transition-property:margin-top,border-radius,border,max-width;border-radius:4px}@media(prefers-reduced-motion:reduce){.v-expansion-panel{transition-property:border-radius,border}}.v-expansion-panel:not(:first-child):after{border-top-style:solid;border-top-width:thin;content:"";left:0;position:absolute;right:0;top:0;transition:.3s opacity cubic-bezier(.4,0,.2,1)}.v-expansion-panel--disabled .v-expansion-panel-title{pointer-events:none}.v-expansion-panel--active:not(:first-child),.v-expansion-panel--active+.v-expansion-panel{margin-top:16px}.v-expansion-panel--active:not(:first-child):after,.v-expansion-panel--active+.v-expansion-panel:after{opacity:0}.v-expansion-panel--active>.v-expansion-panel-title{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-expansion-panel--active>.v-expansion-panel-title:not(.v-expansion-panel-title--static){min-height:64px}.v-expansion-panel__shadow{border-radius:inherit;z-index:-1}.v-expansion-panel__shadow{position:absolute;top:0;left:0;width:100%;height:100%}.v-expansion-panel__shadow{box-shadow:0 1px 2px rgba(var(--v-shadow-color),var(--v-shadow-key-opacity, .3)),0 1px 3px 1px rgba(var(--v-shadow-color),var(--v-shadow-ambient-opacity, .15));--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 2%, transparent)}.v-expansion-panel-title{background-color:transparent;border:none;margin:0;appearance:none;align-items:center;text-align:start;border-radius:inherit;display:flex;font:inherit;font-size:.9375rem;line-height:1;min-height:48px;outline:none;padding:16px 24px;position:relative;width:100%;justify-content:space-between}@media(prefers-reduced-motion:no-preference){.v-expansion-panel-title{transition:.3s cubic-bezier(.4,0,.2,1);transition-property:min-height,border-radius}}.v-expansion-panel-title--hover:hover>.v-expansion-panel-title__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-expansion-panel-title--hover:focus-visible>.v-expansion-panel-title__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-expansion-panel-title--hover:focus>.v-expansion-panel-title__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-expansion-panel-title--focusable.v-expansion-panel-title--active .v-expansion-panel-title__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-expansion-panel-title--focusable.v-expansion-panel-title--active:hover .v-expansion-panel-title__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-expansion-panel-title--focusable.v-expansion-panel-title--active:focus-visible .v-expansion-panel-title__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-expansion-panel-title--focusable.v-expansion-panel-title--active:focus .v-expansion-panel-title__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}@supports selector(:focus-visible){.v-expansion-panel-title:after{pointer-events:none;border:2px solid currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-expansion-panel-title:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-expansion-panel-title:focus-visible:after{opacity:calc(.25 * var(--v-theme-overlay-multiplier))}}.v-expansion-panel-title__overlay{background-color:currentColor;border-radius:inherit;opacity:0}.v-expansion-panel-title__overlay{position:absolute;top:0;left:0;width:100%;height:100%}.v-expansion-panel-title__icon{display:inline-flex;margin-bottom:-4px;margin-top:-4px;-webkit-user-select:none;user-select:none;margin-inline-start:auto}.v-expansion-panel-text{display:flex}.v-expansion-panel-text__wrapper{padding:8px 24px 16px;flex:1 1 auto;max-width:100%}.v-expansion-panels--variant-accordion.v-expansion-panels--no-divider>.v-expansion-panel:after{opacity:0}.v-expansion-panels--variant-accordion>.v-expansion-panel{margin-top:0}.v-expansion-panels--variant-accordion>.v-expansion-panel:after{opacity:1}.v-expansion-panels--variant-popout>.v-expansion-panel{max-width:calc(100% - 32px)}.v-expansion-panels--variant-popout>.v-expansion-panel--active{max-width:calc(100% + 16px)}.v-expansion-panels--variant-inset>.v-expansion-panel{max-width:100%}.v-expansion-panels--variant-inset>.v-expansion-panel--active{max-width:calc(100% - 32px)}.v-expansion-panels--flat>.v-expansion-panel:after{border-top:none}.v-expansion-panels--flat>.v-expansion-panel .v-expansion-panel__shadow{display:none}.v-expansion-panels--tile{border-radius:0}.v-expansion-panels--tile>.v-expansion-panel{border-radius:0}@media(forced-colors:active){.v-expansion-panel{border:thin solid}.v-expansion-panel-title:focus-visible{outline:2px solid;outline-offset:-2px}}}.mcp-built-in[data-v-2bbeed08]{min-width:0}.mcp-built-in-panel[data-v-2bbeed08]{border:1px solid rgba(var(--v-border-color),.16);border-radius:10px;overflow:hidden}.mcp-built-in-heading[data-v-2bbeed08]{display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:600}.mcp-built-in-content[data-v-2bbeed08]{display:grid;gap:12px}.mcp-built-in-controls[data-v-2bbeed08]{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:10px}.mcp-built-in-controls[data-v-2bbeed08] .v-field{border-radius:8px}.mcp-built-in-status-buttons[data-v-2bbeed08]{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.mcp-built-in-columns[data-v-2bbeed08]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px}.mcp-built-in-column[data-v-2bbeed08]{display:grid;align-content:start;gap:10px;min-width:0}.mcp-built-in-group[data-v-2bbeed08]{width:100%;min-width:0;overflow:hidden;border:1px solid rgba(var(--v-border-color),.12)}.mcp-built-in-group-header[data-v-2bbeed08]{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:6px 12px}.mcp-built-in-group-name[data-v-2bbeed08]{display:flex;align-items:center;gap:8px;min-width:0;font-size:.86rem;font-weight:600}.mcp-built-in-tool-list[data-v-2bbeed08]{display:grid}.mcp-built-in-tool[data-v-2bbeed08]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:42px;padding:3px 12px;font-size:.82rem}.mcp-built-in-tool+.mcp-built-in-tool[data-v-2bbeed08]{border-top:1px solid rgba(var(--v-border-color),.1)}.mcp-built-in-tool>span[data-v-2bbeed08]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mcp-built-in-empty[data-v-2bbeed08]{padding:20px;text-align:center;color:rgba(var(--v-theme-on-surface),.6);font-size:.85rem}@media(max-width:900px){.mcp-built-in-columns[data-v-2bbeed08]{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.mcp-built-in-controls[data-v-2bbeed08]{grid-template-columns:minmax(0,1fr)}.mcp-built-in-status-buttons[data-v-2bbeed08]{justify-content:flex-start}}.agent-mcp-view[data-v-a48b9fc3]{display:grid;gap:14px;min-width:0}.agent-mcp-custom[data-v-a48b9fc3]{display:grid;gap:8px;min-width:0}.agent-mcp-section-heading[data-v-a48b9fc3]{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;font-size:.92rem;font-weight:650}.agent-mcp-server[data-v-a48b9fc3]{min-width:0;overflow:hidden;border:1px solid rgba(var(--v-border-color),.14)}.agent-mcp-server-header[data-v-a48b9fc3]{display:flex;align-items:center;gap:8px;min-height:52px;padding:6px 12px}.agent-mcp-server-name[data-v-a48b9fc3]{flex:1 1 auto;min-width:0;overflow:hidden;font-size:.86rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.agent-mcp-server-error[data-v-a48b9fc3]{padding:0 12px 8px;color:rgb(var(--v-theme-error));font-size:.8rem;overflow-wrap:anywhere}.agent-mcp-tool-list[data-v-a48b9fc3]{display:grid}.agent-mcp-tool[data-v-a48b9fc3]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:42px;padding:3px 12px;font-size:.82rem}.agent-mcp-tool+.agent-mcp-tool[data-v-a48b9fc3]{border-top:1px solid rgba(var(--v-border-color),.1)}.agent-mcp-tool>span[data-v-a48b9fc3]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-mcp-empty[data-v-a48b9fc3]{padding:16px;color:rgba(var(--v-theme-on-surface),.62);font-size:.84rem}@media(max-width:620px){.agent-mcp-server-header[data-v-a48b9fc3]{flex-wrap:wrap}.agent-mcp-server-name[data-v-a48b9fc3]{flex-basis:50%}}.mcp-tools-shell[data-v-ba042f91]{display:grid;gap:12px;min-width:0}.mcp-page-heading[data-v-ba042f91]{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}.mcp-page-title[data-v-ba042f91]{font-size:1.05rem;font-weight:700}.mcp-page-actions[data-v-ba042f91]{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.mcp-scope-buttons[data-v-ba042f91]{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:8px;max-width:100%}@media(max-width:620px){.mcp-page-heading[data-v-ba042f91]{align-items:flex-start;flex-direction:column}.mcp-page-actions[data-v-ba042f91]{width:100%;justify-content:flex-end;flex-wrap:wrap}.mcp-scope-buttons[data-v-ba042f91]{max-width:100%;flex-wrap:wrap}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as ne,x as Ne,u as oe,w as Le,c as p,l as R,p as m,k as l,z as W,P as $e,q as V,t as s,Q as Pe,E as ee,h as M,f as y,m as U,R as Y,e as $,F as G,V as Se,T as pe,I as Te,J as xe,s as I,b9 as ae,i as L,y as K,_ as se,o as ie,b6 as Je,j as X,O as je,D as ye,C as ge,ag as ue,aO as Me,ba as He,aq as re,aS as be,aT as Ie,aa as ce,n as te,b2 as Ge,aC as me,bb as Ke,aW as _e,aN as we,aP as Ee,ax as Ue,v as F,aA as q,bc as Fe,bd as Ve,be as We,bf as Xe,aX as Ae,aV as Qe,bg as ze,aK as Ye,bh as Ze,aJ as ea,aM as aa,bi as ta,bj as la,bk as na,aR as ke,bl as oa,bm as sa,bn as ia,a0 as da,g as J,U as de}from"./index-9DLDvF8M.js";import{V as ua}from"./VSelect-CHI_FOMl.js";import{V as Ce}from"./VTextarea-D_kPhUVU.js";import{V as ve}from"./VSpacer-FbdDPUGx.js";import{V as Z}from"./VSwitch-o9DuRTKF.js";import"./VSheet-CKEhsY-7.js";const ra=["aria-label"],ca={key:1,class:"text-caption text-medium-emphasis"},ma={key:4,class:"text-caption text-medium-emphasis"},pa=ne({__name:"CustomMcpDialog",props:xe({server:{}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:xe(["saved"],["update:modelValue"]),setup(e,{emit:_}){const t=e,d=Ne(e,"modelValue"),C=_,g=oe(),n=w=>g.t("$vuetify.chatroom.customMcp."+w),b=I(!1),P=I(!1),E=I(!1),S=I(""),A=I(""),i=I(!1),a=ae({name:"",type:"http",authMode:"auto",command:"",args:"",cwd:"",url:"",env:"",headers:""});Le([d,()=>t.server],()=>{if(!d.value)return;const w=t.server;Object.assign(a,{name:w?.name??"",type:w?.type??"http",authMode:w?.authMode??"auto",command:w?.command??"",args:w?.args?.map(u=>/[\s"']/.test(u)?JSON.stringify(u):u).join(" ")??"",cwd:w?.cwd??"",url:w?.url??"",env:"",headers:""}),E.value=!1,S.value="",A.value="",i.value=!1},{immediate:!0});function x(w){if(!w.trim())return{};const u=JSON.parse(w);if(!u||typeof u!="object"||Array.isArray(u)||Object.values(u).some(h=>typeof h!="string"))throw new Error(n("invalidMap"));return u}function T(w){const u=w.trim();if(!u)return[];if(u.startsWith("[")){const v=JSON.parse(u);if(!Array.isArray(v)||v.some(k=>typeof k!="string"))throw new Error(n("invalidArgs"));return v}const h=[];let N="",c=null,f=!1;for(let v=0;v<u.length;v++){const k=u[v];!c&&/\s/.test(k)?(f&&h.push(N),N="",f=!1):k==="'"||k==='"'?c===k?c=null:c?N+=k:(c=k,f=!0):k==="\\"&&c!=="'"&&v+1<u.length&&/[\s"'\\]/.test(u[v+1])?(N+=u[++v],f=!0):(N+=k,f=!0)}if(c)throw new Error(n("invalidArgs"));return f&&h.push(N),h}function D(w){if(!w.trim())return{};if(w.trim().startsWith("{"))return x(w);const u={};for(const h of w.split(`
|
|
2
|
+
`)){if(!h.trim())continue;const N=h.indexOf("=");if(N<=0)throw new Error(n("invalidEnv"));u[h.slice(0,N).trim()]=h.slice(N+1)}return u}function j(){if(!a.name.trim())throw new Error(n("nameRequired"));if(a.type==="http"){if(!a.url.trim())throw new Error(n("urlRequired"));return{name:a.name.trim(),type:a.type,url:a.url.trim(),authMode:a.authMode,...a.authMode==="headers"&&(a.headers.trim()||!t.server)?{headers:x(a.headers)}:{},...t.server?{}:{enabled:!0}}}if(!a.command.trim())throw new Error(n("commandRequired"));return{name:a.name.trim(),type:a.type,command:a.command.trim(),args:T(a.args),cwd:a.cwd.trim(),...a.env.trim()||!t.server?{env:D(a.env)}:{},...t.server?{}:{enabled:!0}}}async function H(){if(!(b.value||P.value)){b.value=!0,S.value="";try{await L(t.server?"/mcp/servers/"+encodeURIComponent(t.server.id):"/mcp/servers",{method:t.server?"PATCH":"POST",body:JSON.stringify(j()),timeoutMs:3e4}),d.value=!1,C("saved")}catch(w){S.value=K(w)}finally{b.value=!1}}}async function Q(){if(!(P.value||b.value)){P.value=!0,S.value="",A.value="",i.value=!1;try{const w=await L(t.server?"/mcp/servers/"+encodeURIComponent(t.server.id)+"/test":"/mcp/servers/test",{method:"POST",...t.server?{}:{body:JSON.stringify(j())},timeoutMs:25e3});i.value=!!w.authRequired,A.value=w.authRequired?n("testAuthRequired"):n("testSuccess").replace("{0}",String(w.tools))}catch(w){S.value=K(w)}finally{P.value=!1}}}return(w,u)=>(p(),R(Te,{modelValue:d.value,"onUpdate:modelValue":u[12]||(u[12]=h=>d.value=h),"max-width":"720",scrollable:""},{default:m(()=>[l(W,null,{default:m(()=>[l($e,null,{default:m(()=>[V(s(n(e.server?"edit":"add")),1)]),_:1}),l(Pe,{class:"custom-mcp-form"},{default:m(()=>[S.value?(p(),R(ee,{key:0,type:"error",variant:"tonal",density:"compact"},{default:m(()=>[V(s(S.value),1)]),_:1})):M("",!0),A.value?(p(),R(ee,{key:1,type:i.value?"info":"success",variant:"tonal",density:"compact"},{default:m(()=>[V(s(A.value),1)]),_:1},8,["type"])):M("",!0),y("div",{class:"custom-mcp-transport",role:"group","aria-label":n("transport")},[l(U,{size:"small",rounded:"lg",variant:a.type==="http"?"tonal":"outlined",color:a.type==="http"?"primary":void 0,"aria-pressed":a.type==="http",onClick:u[0]||(u[0]=h=>a.type="http")},{default:m(()=>[V(s(n("remote")),1)]),_:1},8,["variant","color","aria-pressed"]),l(U,{size:"small",rounded:"lg",variant:a.type==="stdio"?"tonal":"outlined",color:a.type==="stdio"?"primary":void 0,"aria-pressed":a.type==="stdio",onClick:u[1]||(u[1]=h=>a.type="stdio")},{default:m(()=>[V(s(n("local")),1)]),_:1},8,["variant","color","aria-pressed"])],8,ra),l(Y,{modelValue:a.name,"onUpdate:modelValue":u[2]||(u[2]=h=>a.name=h),label:n("name"),variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue","label"]),a.type==="http"?(p(),$(G,{key:2},[l(Y,{modelValue:a.url,"onUpdate:modelValue":u[3]||(u[3]=h=>a.url=h),label:"MCP Server URL",placeholder:"https://example.com/mcp",variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue"]),l(ua,{modelValue:a.authMode,"onUpdate:modelValue":u[4]||(u[4]=h=>a.authMode=h),label:n("authMode"),items:[{title:n("authAuto"),value:"auto"},{title:n("authNone"),value:"none"},{title:n("authHeaders"),value:"headers"}],variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue","label","items"]),a.authMode==="headers"?(p(),R(Ce,{key:0,modelValue:a.headers,"onUpdate:modelValue":u[5]||(u[5]=h=>a.headers=h),label:n("headers"),placeholder:'{"X-API-Key":"..."}',rows:"2","auto-grow":"",variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue","label"])):M("",!0),a.authMode==="auto"?(p(),$("div",ca,s(n("authHint")),1)):M("",!0)],64)):(p(),$(G,{key:3},[l(Y,{modelValue:a.command,"onUpdate:modelValue":u[6]||(u[6]=h=>a.command=h),label:n("command"),placeholder:"npx",variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue","label"]),l(Y,{modelValue:a.args,"onUpdate:modelValue":u[7]||(u[7]=h=>a.args=h),label:n("argsSimple"),placeholder:"-y @modelcontextprotocol/server-filesystem /path",variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue","label"]),l(U,{variant:"text",size:"small",class:"align-self-start",onClick:u[8]||(u[8]=h=>E.value=!E.value)},{default:m(()=>[l(Se,{icon:E.value?"$mdiChevronUp":"$mdiChevronDown",start:""},null,8,["icon"]),V(" "+s(n("advanced")),1)]),_:1}),E.value?(p(),$(G,{key:0},[l(Y,{modelValue:a.cwd,"onUpdate:modelValue":u[9]||(u[9]=h=>a.cwd=h),label:n("cwd"),variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue","label"]),l(Ce,{modelValue:a.env,"onUpdate:modelValue":u[10]||(u[10]=h=>a.env=h),label:n("envSimple"),placeholder:"KEY=value",rows:"2","auto-grow":"",variant:"outlined",density:"comfortable","hide-details":""},null,8,["modelValue","label"])],64)):M("",!0)],64)),e.server&&(e.server.envKeys.length||e.server.headerKeys.length)?(p(),$("div",ma,s(n("secretsHint"))+" "+s([...e.server.envKeys,...e.server.headerKeys].join(", ")),1)):M("",!0)]),_:1}),l(pe,{class:"flex-wrap"},{default:m(()=>[l(U,{variant:"text",loading:P.value,disabled:b.value,onClick:Q},{default:m(()=>[V(s(n("test")),1)]),_:1},8,["loading","disabled"]),l(ve),l(U,{variant:"text",disabled:b.value||P.value,onClick:u[11]||(u[11]=h=>d.value=!1)},{default:m(()=>[V(s(n("cancel")),1)]),_:1},8,["disabled"]),l(U,{color:"primary",loading:b.value,disabled:P.value,onClick:H},{default:m(()=>[V(s(n("save")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]))}}),va=se(pa,[["__scopeId","data-v-828952e7"]]),fa={class:"custom-mcp-view"},ha={class:"custom-mcp-toolbar"},ya={class:"custom-mcp-section-title"},ga={class:"empty-inline"},ba={class:"custom-mcp-header"},_a={class:"min-w-0"},xa={class:"panel-title"},wa={class:"text-caption text-medium-emphasis text-truncate"},Va={key:0,class:"text-error text-body-2 px-4 pb-2"},ka={key:0,class:"empty-inline"},Ca={class:"min-w-0"},$a={class:"text-body-2 font-weight-medium"},Pa=["title"],Sa=ne({__name:"CustomMcpView",setup(e,{expose:_}){const t=oe(),d=o=>t.t("$vuetify.chatroom.customMcp."+o),C=I([]),g=I(!1),n=I(""),b=I(""),P=I(!1),E=I(null),S=I(null),A=ae(new Set),i=ae(new Set);let a=null,x=null,T=null;const D=()=>{a!==null&&window.clearInterval(a),T!==null&&window.clearTimeout(T),a=null,T=null,x=null},j=o=>{o.origin===window.location.origin&&o.data?.type==="chatroom:mcp-oauth-completed"&&(D(),o.data.success===!1&&(b.value=d("authFailed")),H())};ie(()=>window.addEventListener("message",j)),Je(()=>{D(),window.removeEventListener("message",j)}),ie(()=>{H()});async function H(){g.value=!0,n.value="";try{C.value=await L("/mcp/servers"),a!==null&&C.value.some(o=>o.id===x&&o.status==="connected")&&D()}catch(o){n.value=K(o)}finally{g.value=!1}}function Q(){E.value=null,P.value=!0}_({openAdd:Q});function w(o){E.value=o,P.value=!0}function u(o){A.has(o)?A.delete(o):A.add(o)}async function h(o,B){if(!i.has(o)){i.add(o),n.value="";try{await B(),await H()}catch(r){n.value=K(r)}finally{i.delete(o)}}}async function N(o,B){await h(o.id,()=>L("/mcp/servers/"+encodeURIComponent(o.id),{method:"PATCH",body:JSON.stringify({enabled:B}),timeoutMs:3e4}))}async function c(o){await h(o.id,()=>L("/mcp/servers/"+encodeURIComponent(o.id)+"/refresh",{method:"POST",timeoutMs:3e4}))}async function f(o){if(i.has(o.id))return;const B=window.open("","chatroom-mcp-login","width=620,height=760");if(!B){b.value=d("popupBlocked");return}i.add(o.id),b.value="";try{const{authorizationUrl:r}=await L("/mcp/servers/"+encodeURIComponent(o.id)+"/authorize",{method:"POST",timeoutMs:3e4});B.location.href=r,D(),x=o.id,a=window.setInterval(()=>{H()},2500),T=window.setTimeout(()=>{D(),H()},600*1e3)}catch(r){B.close(),b.value=K(r)}finally{i.delete(o.id),await H()}}async function v(o){await h(o.id,()=>L("/mcp/servers/"+encodeURIComponent(o.id)+"/revoke",{method:"POST"}))}async function k(){const o=S.value;o&&(await h(o.id,()=>L("/mcp/servers/"+encodeURIComponent(o.id),{method:"DELETE"})),n.value||(S.value=null))}async function z(o,B){await h(o.name,()=>L("/mcp/tools/"+encodeURIComponent(o.name),{method:"PATCH",body:JSON.stringify({enabled:B})}))}return(o,B)=>(p(),$("div",fa,[n.value||b.value?(p(),R(ee,{key:0,type:"error",variant:"tonal",density:"compact"},{default:m(()=>[V(s(n.value||b.value),1)]),_:1})):M("",!0),y("div",ha,[y("div",ya,s(d("custom")),1),l(U,{icon:"$mdiRefresh",size:"small",variant:"text",loading:g.value,"aria-label":d("refresh"),title:d("refresh"),onClick:H},null,8,["loading","aria-label","title"])]),g.value&&!C.value.length?(p(),R(ye,{key:1,indeterminate:""})):M("",!0),!g.value&&!C.value.length?(p(),R(W,{key:2,class:"panel-card"},{default:m(()=>[y("div",ga,s(d("empty")),1)]),_:1})):M("",!0),(p(!0),$(G,null,X(C.value,r=>(p(),R(W,{key:r.id,class:"panel-card"},{default:m(()=>[y("div",ba,[y("div",_a,[y("div",xa,s(r.name),1),y("div",wa,s(r.type==="stdio"?"stdio":"Streamable HTTP")+" · "+s(r.status==="connected"?d("connected"):r.status==="connecting"?d("connecting"):r.status==="disabled"?d("disabled"):r.status==="auth_required"?d("authRequired"):d("error"))+" · "+s(r.tools.length)+" "+s(d("tools")),1)]),l(Z,{"model-value":r.enabled,color:"primary",density:"compact","hide-details":"",inset:"",loading:i.has(r.id),disabled:i.has(r.id),"aria-label":r.name,"onUpdate:modelValue":O=>N(r,!!O)},null,8,["model-value","loading","disabled","aria-label","onUpdate:modelValue"])]),r.error?(p(),$("div",Va,s(r.error),1)):M("",!0),l(pe,{class:"flex-wrap ga-1"},{default:m(()=>[l(U,{variant:"text",size:"small","append-icon":A.has(r.id)?"$mdiChevronUp":"$mdiChevronDown",onClick:O=>u(r.id)},{default:m(()=>[V(s(d("tools")),1)]),_:1},8,["append-icon","onClick"]),l(ve),r.type==="http"&&r.authMode==="auto"&&(r.status==="auth_required"||r.authorized)?(p(),R(U,{key:0,variant:r.status==="auth_required"?"tonal":"text",color:r.status==="auth_required"?"primary":void 0,size:"small",loading:i.has(r.id),onClick:O=>f(r)},{default:m(()=>[V(s(d(r.status==="connected"?"reauthorize":"authorize")),1)]),_:2},1032,["variant","color","loading","onClick"])):M("",!0),r.type==="http"&&r.authMode==="auto"&&r.status==="connected"?(p(),R(U,{key:1,variant:"text",size:"small",disabled:i.has(r.id),onClick:O=>v(r)},{default:m(()=>[V(s(d("revoke")),1)]),_:1},8,["disabled","onClick"])):M("",!0),l(U,{variant:"text",size:"small",disabled:i.has(r.id),onClick:O=>w(r)},{default:m(()=>[V(s(d("edit")),1)]),_:1},8,["disabled","onClick"]),l(U,{variant:"text",size:"small",loading:i.has(r.id),disabled:!r.enabled,onClick:O=>c(r)},{default:m(()=>[V(s(d("refresh")),1)]),_:1},8,["loading","disabled","onClick"]),l(U,{variant:"text",color:"error",size:"small",disabled:i.has(r.id),onClick:O=>S.value=r},{default:m(()=>[V(s(d("delete")),1)]),_:1},8,["disabled","onClick"])]),_:2},1024),A.has(r.id)?(p(),$(G,{key:1},[l(ge),r.tools.length?M("",!0):(p(),$("div",ka,s(d("noTools")),1)),(p(!0),$(G,null,X(r.tools,O=>(p(),$("div",{key:O.name,class:"custom-mcp-tool-row"},[y("div",Ca,[y("div",$a,s(O.title),1),y("div",{class:"text-caption text-medium-emphasis text-truncate",title:O.description},s(O.name),9,Pa)]),l(Z,{"model-value":O.enabled,color:"primary",density:"compact","hide-details":"",inset:"",loading:i.has(O.name),disabled:i.has(O.name)||!r.enabled,"aria-label":O.title,"onUpdate:modelValue":De=>z(O,!!De)},null,8,["model-value","loading","disabled","aria-label","onUpdate:modelValue"])]))),128))],64)):M("",!0)]),_:2},1024))),128)),l(va,{modelValue:P.value,"onUpdate:modelValue":B[0]||(B[0]=r=>P.value=r),server:E.value,onSaved:H},null,8,["modelValue","server"]),l(Te,{"model-value":!!S.value,width:"auto","max-width":"32rem",persistent:!!(S.value&&i.has(S.value.id)),"onUpdate:modelValue":B[2]||(B[2]=r=>!r&&(S.value=null))},{default:m(()=>[S.value?(p(),R(W,{key:0},{default:m(()=>[l(je,{"prepend-icon":"$mdiAlertCircleOutline",class:"text-error"},{default:m(()=>[l($e,null,{default:m(()=>[V(s(d("delete")),1)]),_:1})]),_:1}),l(Pe,null,{default:m(()=>[V(s(d("deleteConfirm").replace("{0}",S.value.name)),1)]),_:1}),l(pe,null,{default:m(()=>[l(ve),l(U,{variant:"text",disabled:i.has(S.value.id),onClick:B[1]||(B[1]=r=>S.value=null)},{default:m(()=>[V(s(d("cancel")),1)]),_:1},8,["disabled"]),l(U,{color:"error",variant:"flat",loading:i.has(S.value.id),onClick:k},{default:m(()=>[V(s(d("delete")),1)]),_:1},8,["loading"])]),_:1})]),_:1})):M("",!0)]),_:1},8,["model-value","persistent"])]))}}),Ta=se(Sa,[["__scopeId","data-v-1ba829ad"]]),le=Symbol.for("vuetify:v-expansion-panel"),Re=me({..._e(),...Ke()},"VExpansionPanelText"),fe=ue()({name:"VExpansionPanelText",props:Re(),setup(e,{slots:_}){const t=Me(le);if(!t)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:d,onAfterLeave:C}=He(e,t.isSelected);return re(()=>l(Ge,{onAfterLeave:C},{default:()=>[be(y("div",{class:te(["v-expansion-panel-text",e.class]),style:ce(e.style)},[_.default&&d.value&&y("div",{class:"v-expansion-panel-text__wrapper"},[_.default?.()])]),[[Ie,t.isSelected.value]])]})),{}}}),Be=me({color:String,expandIcon:{type:Ve,default:"$expand"},collapseIcon:{type:Ve,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,hover:{type:Boolean,default:!0},..._e(),...We()},"VExpansionPanelTitle"),he=ue()({name:"VExpansionPanelTitle",directives:{vRipple:we},props:Be(),setup(e,{slots:_}){const t=Me(le);if(!t)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:d,backgroundColorStyles:C}=Ee(()=>e.color),{dimensionStyles:g}=Fe(e),n=F(()=>({collapseIcon:e.collapseIcon,disabled:t.disabled.value,expanded:t.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly})),b=q(()=>t.isSelected.value?e.collapseIcon:e.expandIcon);return re(()=>be(y("button",{class:te(["v-expansion-panel-title",{"v-expansion-panel-title--active":t.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static,"v-expansion-panel-title--hover":e.hover},d.value,e.class]),style:ce([C.value,g.value,e.style]),type:"button",tabindex:t.disabled.value?-1:void 0,disabled:t.disabled.value,"aria-expanded":t.isSelected.value,onClick:e.readonly?void 0:t.toggle},[y("span",{class:"v-expansion-panel-title__overlay"},null),_.default?.(n.value),!e.hideActions&&l(Ue,{defaults:{VIcon:{icon:b.value}}},{default:()=>[y("span",{class:"v-expansion-panel-title__icon"},[_.actions?.(n.value)??l(Se,null,null)])]})]),[[we,e.ripple]])),{}}}),Oe=me({title:String,text:String,bgColor:String,...ea(),...Ze(),...Ye(),...ze(),...Be(),...Re()},"VExpansionPanel"),Ma=ue()({name:"VExpansionPanel",props:Oe(),emits:{"group:selected":e=>!0},setup(e,{slots:_}){const t=Xe(e,le),{backgroundColorClasses:d,backgroundColorStyles:C}=Ee(()=>e.bgColor),{elevationClasses:g}=Qe(e),{roundedClasses:n,roundedStyles:b}=Ae(e),P=q(()=>t?.disabled.value||e.disabled),E=F(()=>t.group.items.value.reduce((i,a,x)=>(t.group.selected.value.includes(a.id)&&i.push(x),i),[])),S=F(()=>{const i=t.group.items.value.findIndex(a=>a.id===t.id);return!t.isSelected.value&&E.value.some(a=>a-i===1)}),A=F(()=>{const i=t.group.items.value.findIndex(a=>a.id===t.id);return!t.isSelected.value&&E.value.some(a=>a-i===-1)});return aa(le,t),re(()=>{const i=!!(_.text||e.text),a=!!(_.title||e.title),x=he.filterProps(e),T=fe.filterProps(e);return l(e.tag,{class:te(["v-expansion-panel",{"v-expansion-panel--active":t.isSelected.value,"v-expansion-panel--before-active":S.value,"v-expansion-panel--after-active":A.value,"v-expansion-panel--disabled":P.value},n.value,d.value,e.class]),style:ce([C.value,b.value,e.style])},{default:()=>[y("div",{class:te(["v-expansion-panel__shadow",...g.value])},null),l(Ue,{defaults:{VExpansionPanelTitle:{...x},VExpansionPanelText:{...T}}},{default:()=>[a&&l(he,{key:"title"},{default:()=>[_.title?_.title():e.title]}),i&&l(fe,{key:"text"},{default:()=>[_.text?_.text():e.text]}),_.default?.()]})]})}),{groupItem:t}}}),Ia=["default","accordion","inset","popout"],Ea=me({flat:Boolean,gap:[String,Number],noDivider:Boolean,rounded:[Boolean,Number,String,Array],...ia(),...sa(Oe(),["bgColor","collapseIcon","color","eager","elevation","expandIcon","focusable","hideActions","hover","readonly","ripple","static","tile"]),...oa(),..._e(),...ze(),variant:{type:String,default:"default",validator:e=>Ia.includes(e)}},"VExpansionPanels"),Ua=ue()({name:"VExpansionPanels",props:Ea(),emits:{"update:modelValue":e=>!0},setup(e,{slots:_}){const{next:t,prev:d}=ta(e,le),{themeClasses:C}=la(e),g=q(()=>Array.isArray(e.rounded)?e.rounded[0]:e.rounded),n=q(()=>Array.isArray(e.rounded)?e.rounded[1]:void 0),{roundedClasses:b,roundedStyles:P}=Ae(g),E=q(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return na({VExpansionPanel:{bgColor:q(()=>e.bgColor),collapseIcon:q(()=>e.collapseIcon),color:q(()=>e.color),eager:q(()=>e.eager),elevation:q(()=>e.elevation),expandIcon:q(()=>e.expandIcon),focusable:q(()=>e.focusable),hideActions:q(()=>e.hideActions),hover:q(()=>e.hover),readonly:q(()=>e.readonly),ripple:q(()=>e.ripple),static:q(()=>e.static)}}),re(()=>l(e.tag,{class:te(["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile,"v-expansion-panels--no-divider":e.noDivider||!!e.gap},C.value,b.value,E.value,e.class]),style:ce([P.value,{"--v-expansion-panels-inner-radius":ke(n.value),gap:e.gap?ke(e.gap):void 0},e.style])},{default:()=>[_.default?.({prev:d,next:t})]})),{next:t,prev:d}}}),Aa={class:"mcp-built-in"},za={class:"mcp-built-in-heading"},Ra={class:"mcp-built-in-content"},Ba={class:"mcp-built-in-controls"},Oa=["aria-label"],qa={key:1,class:"mcp-built-in-columns"},Da={class:"mcp-built-in-group-header"},Na={class:"mcp-built-in-group-name"},La={class:"mcp-built-in-tool-list"},Ja=["title"],ja={key:2,class:"mcp-built-in-empty"},Ha=ne({__name:"McpToolGroups",props:{scope:{}},setup(e){const _=e,t=oe(),d=I([]),C=I(!1),g=I(""),n=I(""),b=I("all"),P=ae(new Set),E=da(),S=I(_.scope==="agent"?0:null),A=F(()=>d.value.filter(c=>c.pluginId!=="custom-mcp"&&(_.scope!=="agent"||c.agentAllowed!==!1))),i=F(()=>{const c=n.value.trim().toLocaleLowerCase(),f=new Map;for(const v of A.value){const k=!c||[w(v),v.name,u(v),v.pluginId].join(" ").toLocaleLowerCase().includes(c),z=b.value==="all"||(b.value==="enabled"?v.enabled:!v.enabled);if(!k||!z)continue;const o=f.get(v.pluginId)??[];o.push(v),f.set(v.pluginId,o)}return[...f.entries()].map(([v,k])=>({pluginId:v,visibleTools:k,tools:A.value.filter(z=>z.pluginId===v)}))}),a=F(()=>A.value.filter(c=>c.enabled).length),x=F(()=>{const c=[[],[]],f=[0,0];for(const v of i.value){const k=f[0]<=f[1]?0:1;c[k].push(v),f[k]=f[k]+48+v.visibleTools.length*42}return c}),T=new Set(["workspace_list","workspace_info","workspace_file_get","process_start","process_read","process_write","process_kill","computer_snapshot","computer_action","agent_providers","agent_provider_details","agent_models","agent_sessions","agent_create","agent_send","agent_steer","agent_review","agent_history","agent_configure","agent_respond","agent_interrupt","agent_switch_provider"]);ie(()=>{D()});async function D(){if(P.size)return;const c=E.begin();C.value=!0,g.value="";try{const f=_.scope==="agent"?"/agent-mcp/tools":"/mcp/tools",v=await L(f,{signal:c.signal});E.isCurrent(c)&&(d.value=v)}catch(f){E.isCurrent(c)&&(g.value=K(f))}finally{E.isCurrent(c)&&(C.value=!1)}}async function j(c,f){if(!(P.has(c.name)||c.enabled===f)){E.invalidate(),C.value=!1,P.add(c.name),g.value="";try{const v=_.scope==="agent"?"/agent-mcp/tools/":"/mcp/tools/",k=await L(v+encodeURIComponent(c.name),{method:"PATCH",body:JSON.stringify({enabled:f})});d.value=d.value.map(z=>z.name===k.name?k:z)}catch(v){g.value=K(v)}finally{P.delete(c.name)}}}async function H(c,f){const v=c.tools.filter(k=>k.enabled!==f&&!P.has(k.name));await Promise.all(v.map(k=>j(k,f)))}function Q(c){return["workspace","process","computer","agent"].includes(c)?t.t("$vuetify.chatroom.mcpTools.plugins."+c):c}function w(c){return T.has(c.name)?t.t("$vuetify.chatroom.mcpTools.tools."+c.name+".title"):c.title}function u(c){return T.has(c.name)?t.t("$vuetify.chatroom.mcpTools.tools."+c.name+".description"):c.description}function h(c){return c.tools.some(f=>f.enabled)}function N(c){return c.tools.length>0&&c.tools.every(f=>f.enabled)}return(c,f)=>(p(),$("div",Aa,[g.value?(p(),R(ee,{key:0,type:"error",variant:"tonal",density:"compact"},{default:m(()=>[V(s(g.value),1)]),_:1})):M("",!0),l(Ua,{modelValue:S.value,"onUpdate:modelValue":f[4]||(f[4]=v=>S.value=v),class:"mcp-built-in-panel"},{default:m(()=>[l(Ma,null,{default:m(()=>[l(he,null,{default:m(()=>[y("div",za,[y("span",null,s(J(t).t(_.scope==="agent"?"$vuetify.chatroom.agentMcp.builtIn":"$vuetify.chatroom.mcpTools.builtInSection")),1),l(de,{size:"x-small",variant:"tonal"},{default:m(()=>[V(s(a.value)+"/"+s(A.value.length),1)]),_:1})])]),_:1}),l(fe,null,{default:m(()=>[y("div",Ra,[y("div",Ba,[l(Y,{modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=v=>n.value=v),density:"compact",variant:"solo-filled",flat:"","hide-details":"",clearable:"","prepend-inner-icon":"$mdiMagnify",placeholder:J(t).t("$vuetify.chatroom.agentMcp.searchTools"),"aria-label":J(t).t("$vuetify.chatroom.agentMcp.searchTools")},null,8,["modelValue","placeholder","aria-label"]),y("div",{class:"mcp-built-in-status-buttons",role:"group","aria-label":J(t).t("$vuetify.chatroom.agentMcp.all")},[l(U,{size:"small",variant:"tonal",color:b.value==="all"?"primary":"default","aria-pressed":b.value==="all",onClick:f[1]||(f[1]=v=>b.value="all")},{default:m(()=>[V(s(J(t).t("$vuetify.chatroom.agentMcp.all")),1)]),_:1},8,["color","aria-pressed"]),l(U,{size:"small",variant:"tonal",color:b.value==="enabled"?"primary":"default","aria-pressed":b.value==="enabled",onClick:f[2]||(f[2]=v=>b.value="enabled")},{default:m(()=>[V(s(J(t).t("$vuetify.chatroom.agentMcp.enabled")),1)]),_:1},8,["color","aria-pressed"]),l(U,{size:"small",variant:"tonal",color:b.value==="disabled"?"primary":"default","aria-pressed":b.value==="disabled",onClick:f[3]||(f[3]=v=>b.value="disabled")},{default:m(()=>[V(s(J(t).t("$vuetify.chatroom.agentMcp.disabled")),1)]),_:1},8,["color","aria-pressed"])],8,Oa)]),C.value?(p(),R(ye,{key:0,indeterminate:"",rounded:""})):M("",!0),i.value.length?(p(),$("div",qa,[(p(!0),$(G,null,X(x.value,(v,k)=>(p(),$("div",{key:k,class:"mcp-built-in-column"},[(p(!0),$(G,null,X(v,z=>(p(),R(W,{key:z.pluginId,class:"mcp-built-in-group"},{default:m(()=>[y("div",Da,[y("div",Na,[y("span",null,s(Q(z.pluginId)),1),l(de,{size:"x-small",variant:"tonal"},{default:m(()=>[V(s(z.tools.filter(o=>o.enabled).length)+"/"+s(z.tools.length),1)]),_:2},1024)]),l(Z,{"model-value":N(z),indeterminate:h(z)&&!N(z),color:"primary",density:"compact","hide-details":"",inset:"",disabled:z.tools.some(o=>P.has(o.name)),"aria-label":Q(z.pluginId),"onUpdate:modelValue":o=>H(z,!!o)},null,8,["model-value","indeterminate","disabled","aria-label","onUpdate:modelValue"])]),l(ge),y("div",La,[(p(!0),$(G,null,X(z.visibleTools,o=>(p(),$("div",{key:o.name,class:"mcp-built-in-tool",title:u(o)+" ("+o.name+")"},[y("span",null,s(w(o)),1),l(Z,{"model-value":o.enabled,color:"primary",density:"compact","hide-details":"",inset:"",loading:P.has(o.name),disabled:P.has(o.name),"aria-label":w(o),"onUpdate:modelValue":B=>j(o,!!B)},null,8,["model-value","loading","disabled","aria-label","onUpdate:modelValue"])],8,Ja))),128))])]),_:2},1024))),128))]))),128))])):C.value?M("",!0):(p(),$("div",ja,s(J(t).t("$vuetify.chatroom.agentMcp.noMatchingTools")),1))])]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),qe=se(Ha,[["__scopeId","data-v-2bbeed08"]]),Ga={class:"agent-mcp-view"},Ka={class:"agent-mcp-custom"},Fa={class:"agent-mcp-section-heading"},Wa={class:"agent-mcp-server-header"},Xa={class:"agent-mcp-server-name"},Qa={key:0,class:"agent-mcp-server-error"},Ya={key:1,class:"agent-mcp-empty"},Za={key:2,class:"agent-mcp-tool-list"},et=["title"],at=ne({__name:"AgentMcpView",setup(e){const _=oe(),t=i=>_.t("$vuetify.chatroom.agentMcp."+i),d=I([]),C=I(!1),g=I(""),n=ae(new Set);ie(()=>{b()});async function b(){C.value=!0,g.value="";try{d.value=await L("/agent-mcp/servers")}catch(i){g.value=K(i)}finally{C.value=!1}}async function P(i,a){if(!(n.has(i.id)||i.enabled===a)){n.add(i.id),g.value="";try{await L("/agent-mcp/servers/"+encodeURIComponent(i.id),{method:"PATCH",body:JSON.stringify({enabled:a}),timeoutMs:3e4}),await b()}catch(x){g.value=K(x)}finally{n.delete(i.id)}}}async function E(i,a,x){if(!(n.has(a.name)||a.enabled===x)){n.add(a.name),g.value="";try{const T=await L("/agent-mcp/tools/"+encodeURIComponent(a.name),{method:"PATCH",body:JSON.stringify({enabled:x})});d.value=d.value.map(D=>D.id!==i.id?D:{...D,tools:D.tools.map(j=>j.name===a.name?{...j,enabled:T.enabled}:j)})}catch(T){g.value=K(T)}finally{n.delete(a.name)}}}function S(i){const a={connected:"connected",connecting:"connecting",disabled:"disabled",auth_required:"authRequired",error:"error"};return _.t("$vuetify.chatroom.customMcp."+a[i])}function A(i){return i==="connected"?"success":i==="connecting"?"info":i==="auth_required"||i==="error"?"error":"default"}return(i,a)=>(p(),$("div",Ga,[l(qe,{scope:"agent"}),y("section",Ka,[y("div",Fa,[y("span",null,s(t("custom")),1),l(U,{icon:"$mdiRefresh",size:"small",variant:"text",loading:C.value,"aria-label":t("refresh"),title:t("refresh"),onClick:b},null,8,["loading","aria-label","title"])]),g.value?(p(),R(ee,{key:0,type:"error",variant:"tonal",density:"compact"},{default:m(()=>[V(s(g.value),1)]),_:1})):M("",!0),C.value&&!d.value.length?(p(),R(ye,{key:1,indeterminate:"",rounded:""})):M("",!0),!C.value&&!d.value.length?(p(),R(W,{key:2,class:"agent-mcp-empty"},{default:m(()=>[V(s(t("noCustom")),1)]),_:1})):M("",!0),(p(!0),$(G,null,X(d.value,x=>(p(),R(W,{key:x.id,class:"agent-mcp-server"},{default:m(()=>[y("div",Wa,[y("span",Xa,s(x.name),1),l(de,{size:"x-small",variant:"tonal",color:A(x.status)},{default:m(()=>[V(s(S(x.status)),1)]),_:2},1032,["color"]),l(de,{size:"x-small",variant:"tonal"},{default:m(()=>[V(s(x.tools.length),1)]),_:2},1024),l(Z,{"model-value":x.enabled,color:"primary",density:"compact","hide-details":"",inset:"",loading:n.has(x.id),disabled:n.has(x.id),"aria-label":x.name,"onUpdate:modelValue":T=>P(x,!!T)},null,8,["model-value","loading","disabled","aria-label","onUpdate:modelValue"])]),x.error?(p(),$("div",Qa,s(x.error),1)):M("",!0),l(ge),x.tools.length?(p(),$("div",Za,[(p(!0),$(G,null,X(x.tools,T=>(p(),$("div",{key:T.name,class:"agent-mcp-tool",title:T.description+" ("+T.name+")"},[y("span",null,s(T.title),1),l(Z,{"model-value":T.enabled,color:"primary",density:"compact","hide-details":"",inset:"",loading:n.has(T.name),disabled:n.has(T.name)||!x.enabled,"aria-label":T.title,"onUpdate:modelValue":D=>E(x,T,!!D)},null,8,["model-value","loading","disabled","aria-label","onUpdate:modelValue"])],8,et))),128))])):(p(),$("div",Ya,s(t("noTools")),1))]),_:2},1024))),128))])]))}}),tt=se(at,[["__scopeId","data-v-a48b9fc3"]]),lt={class:"mcp-tools-shell"},nt={class:"mcp-page-heading"},ot={class:"min-w-0"},st={class:"mcp-page-title"},it={class:"mcp-page-actions"},dt=["aria-label"],ut=ne({__name:"McpToolsView",setup(e){const _=oe(),t=I("chatroom"),d=I(null);return(C,g)=>(p(),$("div",lt,[y("header",nt,[y("div",ot,[y("div",st,s(J(_).t("$vuetify.chatroom.mcpTools.title")),1)]),y("div",it,[y("div",{class:"mcp-scope-buttons",role:"group","aria-label":J(_).t("$vuetify.chatroom.mcpTools.title")},[l(U,{size:"small",variant:"tonal",color:t.value==="chatroom"?"primary":"default","aria-pressed":t.value==="chatroom",onClick:g[0]||(g[0]=n=>t.value="chatroom")},{default:m(()=>[V(s(J(_).t("$vuetify.chatroom.agentMcp.chatroom")),1)]),_:1},8,["color","aria-pressed"]),l(U,{size:"small",variant:"tonal",color:t.value==="agent"?"primary":"default","aria-pressed":t.value==="agent",onClick:g[1]||(g[1]=n=>t.value="agent")},{default:m(()=>[V(s(J(_).t("$vuetify.chatroom.agentMcp.agent")),1)]),_:1},8,["color","aria-pressed"])],8,dt),l(U,{color:"primary",variant:"tonal",size:"small","prepend-icon":"$mdiPlus",onClick:g[2]||(g[2]=n=>d.value?.openAdd())},{default:m(()=>[V(s(J(_).t("$vuetify.chatroom.customMcp.add")),1)]),_:1})])]),t.value==="chatroom"?(p(),R(qe,{key:0,scope:"chatroom"})):M("",!0),be(l(Ta,{ref_key:"customMcpView",ref:d},null,512),[[Ie,t.value==="chatroom"]]),t.value==="agent"?(p(),R(tt,{key:1})):M("",!0)]))}}),ht=se(ut,[["__scopeId","data-v-ba042f91"]]);export{ht as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{a0 as ae,a1 as be,w as Y,i as Q,y as W,a7 as de,s as C,d as ie,u as re,c as f,l as O,p as u,f as i,m as F,g as e,h as B,t as l,b7 as _e,a4 as ke,k as s,C as oe,e as P,q as $,z as ee,v as we,F as pe,j as Ce,n as Ve,bH as Se,b8 as Ae,b4 as xe,ab as ve,b as Me,ae as Oe,Y as Be,b5 as Re,E as le,af as Le,O as Te,P as De,Q as qe,T as Ee,I as ze}from"./index-9DLDvF8M.js";import{c as Ue}from"./entity-refresh-queue-wQii8Dl5.js";import{u as Pe}from"./useMasterDetailFocus-Chh0cM6g.js";import{u as me}from"./useOperationLabels-DF67nIF0.js";import{_ as K}from"./CodeViewer.vue_vue_type_script_setup_true_lang-BtA5aWrS.js";import{_ as he}from"./StateChip.vue_vue_type_script_setup_true_lang-DwnqcvSQ.js";import{V as He,a as ne,b as Fe,c as se}from"./VTabs-BSfSKBtT.js";import{V as Ne}from"./VSpacer-FbdDPUGx.js";import"./VSheet-CKEhsY-7.js";const X=50,j=1e3;function je(a,h){const o=C([]),n=C(null),m=C(null),V=C("all"),r=C(!1),R=C(!1),y=C(!1),c=C(!1),p=C(""),I=C(!1),w=ae(),_=ae(),S=ae(),L=new Map;let T=!1,A=null,D=0,g=!1;const z=Ue({keyOf:t=>t.operationId,merge:(t,d)=>d,isReady:()=>T,isLoading:()=>r.value,isDisposed:()=>g,refreshAll:N,applyBatch:k});be(()=>{g=!0,T=!1,z.reset(),L.clear(),w.invalidate(),_.invalidate(),S.invalidate()}),Y(V,()=>{T=!1,A=null,z.reset(),S.invalidate(),N()},{immediate:!0}),Y(a,()=>{$e(h())}),Y(n,()=>{D+=1,q(D)});function Z(t,d=null){const v=new URLSearchParams({limit:String(t)});return V.value!=="all"&&v.set("status",V.value),d&&(v.set("beforeStartedAt",d.startedAt),v.set("beforeOperationId",d.operationId)),`/operations?${v}`}async function N(){if(g)return;T=!1;const t=w.begin();r.value=!0,R.value=!1,p.value="";try{const d=await Q(Z(X),{signal:t.signal});if(g||!w.isCurrent(t))return;if(o.value=d.slice(0,j),I.value=!1,A=fe(d),y.value=d.length===X,T=!0,n.value){const v=d.find(x=>x.operationId===n.value);v?(_.invalidate(),m.value=v):q(D)}}catch(d){w.isCurrent(t)&&(p.value=W(d))}finally{w.isCurrent(t)&&(r.value=!1,T&&z.drain())}}async function te(){if(r.value||R.value||!y.value)return;const t=w.begin(),d=A;R.value=!0;try{const v=await Q(Z(X,d),{signal:t.signal});if(g||!w.isCurrent(t))return;v.length&&(A=fe(v));const x=new Set(o.value.map(M=>M.operationId)),G=[...o.value,...v.filter(M=>!x.has(M.operationId))];o.value=G.slice(0,j),I.value=G.length>j||o.value.length>=j&&v.length===X,y.value=!I.value&&v.length===X}catch(v){w.isCurrent(t)&&(p.value=W(v))}finally{w.isCurrent(t)&&(R.value=!1)}}async function k(t){if(g||!t.length)return;const d=S.begin(),v=n.value,x=D,G=await Promise.allSettled(t.map(async U=>{try{return await Q(`/operations/${encodeURIComponent(U.operationId)}`,{signal:d.signal})}catch(E){if(E instanceof de&&E.status===404)return null;throw E}}));if(g||!S.isCurrent(d))return;let M=[...o.value];for(let U=0;U<G.length;U+=1){const E=G[U],ce=t[U];if(E.status==="rejected"){b(ce,E.reason);continue}L.delete(ce.operationId);const H=E.value;if(!H)continue;const J=M.findIndex(Ie=>Ie.operationId===H.operationId);Ge(H,V.value)?J>=0?M[J]=H:M.push(H):J>=0&&M.splice(J,1),n.value===H.operationId&&v===H.operationId&&D===x&&(_.invalidate(),m.value=H)}M.sort((U,E)=>E.startedAt.localeCompare(U.startedAt)||E.operationId.localeCompare(U.operationId)),M.length>j&&(I.value=!0,y.value=!1),o.value=M.slice(0,j)}function b(t,d){const v=(L.get(t.operationId)??0)+1;if(v<=1&&!g){L.set(t.operationId,v),z.enqueue([t]);return}L.delete(t.operationId),p.value=W(d)}async function q(t=D){const d=n.value,v=_.begin();if(!d){m.value=null;return}try{const x=await Q(`/operations/${encodeURIComponent(d)}`,{signal:v.signal});_.isCurrent(v)&&n.value===d&&D===t&&(m.value=x)}catch(x){if(!_.isCurrent(v))return;if(x instanceof de&&x.status===404){n.value===d&&D===t&&ue();return}p.value=W(x)}}async function ye(){if(c.value)return!1;c.value=!0,p.value="",w.invalidate(),S.invalidate(),_.invalidate();try{return await Q("/operations",{method:"DELETE"}),n.value=null,m.value=null,T=!1,A=null,await N(),!0}catch(t){return p.value=W(t),!1}finally{c.value=!1}}function ge(t){n.value=t.operationId,m.value=t}function ue(){n.value=null,m.value=null,_.invalidate()}function $e(t){if(!g){if(t===null){z.enqueue(null);return}if(!t.clearAll){z.enqueue(t.changes);return}S.invalidate(),L.clear(),z.reset(),n.value=null,m.value=null,_.invalidate(),o.value=[],A=null,y.value=!1,I.value=!1,T=!1,N()}}return{events:o,selected:n,detail:m,filter:V,loading:r,loadingMore:R,hasMore:y,clearing:c,error:p,limitReached:I,loadInitial:N,loadMore:te,select:ge,clearSelection:ue,clearHistory:ye}}function fe(a){const h=a.at(-1);return h?{startedAt:h.startedAt,operationId:h.operationId}:null}function Ge(a,h){return h==="all"||a.status===h}const Qe={class:"panel-header operation-detail-header"},We={class:"min-w-0 detail-header-title"},Xe={class:"panel-title text-truncate"},Ye={class:"panel-subtitle"},Ze={class:"detail-facts"},Je={class:"mono"},Ke={key:0},et={class:"mono"},tt={class:"empty-panel"},at=ie({__name:"OperationDetail",props:{event:{},showBack:{type:Boolean}},emits:["back"],setup(a){const h=a,o=C("input"),n=re(),{actionLabel:m,sourceLabel:V}=me(),r=we(()=>R(h.event?.output));function R(y){if(!y||typeof y!="object"||Array.isArray(y))return null;const c=y;if(typeof c.stdout!="string"&&typeof c.stderr!="string")return null;const p=typeof c.stdout=="string"?c.stdout:"",I=typeof c.stderr=="string"&&c.stderr?`
|
|
2
|
+
|
|
3
|
+
[stderr]
|
|
4
|
+
${c.stderr}`:"";return`${p}${I}`}return(y,c)=>a.event?(f(),O(ee,{key:0,class:"panel-card"},{default:u(()=>[i("div",Qe,[a.showBack?(f(),O(F,{key:0,icon:"$mdiArrowLeft",size:"small",variant:"text","aria-label":e(n).t("$vuetify.chatroom.operations.back"),onClick:c[0]||(c[0]=p=>y.$emit("back"))},null,8,["aria-label"])):B("",!0),i("div",We,[i("div",Xe,l(e(m)(a.event.pluginId,a.event.action)),1),i("div",Ye,l(e(V)(a.event.source))+" · "+l(e(_e)(a.event.startedAt,e(ke)(e(n).current.value))),1)]),s(he,{value:a.event.status},null,8,["value"])]),s(oe),i("div",Ze,[i("div",null,[i("span",null,l(e(n).t("$vuetify.chatroom.detail.plugin")),1),i("strong",Je,l(a.event.pluginId),1)]),i("div",null,[i("span",null,l(e(n).t("$vuetify.chatroom.detail.duration")),1),i("strong",null,l(a.event.durationMs===null?e(n).t("$vuetify.chatroom.statuses.running"):`${a.event.durationMs} ms`),1)]),a.event.processId?(f(),P("div",Ke,[i("span",null,l(e(n).t("$vuetify.chatroom.detail.process")),1),i("strong",et,l(a.event.processId.slice(0,16)),1)])):B("",!0)]),s(He,{modelValue:o.value,"onUpdate:modelValue":c[1]||(c[1]=p=>o.value=p),density:"compact",class:"detail-tabs"},{default:u(()=>[s(ne,{value:"input"},{default:u(()=>[$(l(e(n).t("$vuetify.chatroom.detail.input")),1)]),_:1}),s(ne,{value:"output"},{default:u(()=>[$(l(e(n).t("$vuetify.chatroom.detail.output")),1)]),_:1}),a.event.error?(f(),O(ne,{key:0,value:"failure"},{default:u(()=>[$(l(e(n).t("$vuetify.chatroom.detail.error")),1)]),_:1})):B("",!0)]),_:1},8,["modelValue"]),s(oe),s(Fe,{modelValue:o.value,"onUpdate:modelValue":c[2]||(c[2]=p=>o.value=p),touch:!1},{default:u(()=>[s(se,{value:"input",class:"pa-3"},{default:u(()=>[s(K,{value:a.event.input},null,8,["value"])]),_:1}),s(se,{value:"output",class:"pa-3"},{default:u(()=>[r.value!==null?(f(),O(K,{key:0,text:r.value??"",filename:"operation-terminal.txt",highlight:a.event.status!=="running"},null,8,["text","highlight"])):(f(),O(K,{key:1,value:a.event.output,highlight:a.event.status!=="running"},null,8,["value","highlight"]))]),_:1}),a.event.error?(f(),O(se,{key:0,value:"failure",class:"pa-3"},{default:u(()=>[s(K,{value:a.event.error},null,8,["value"])]),_:1})):B("",!0)]),_:1},8,["modelValue"])]),_:1})):(f(),O(ee,{key:1,class:"panel-card"},{default:u(()=>[i("div",tt,l(e(n).t("$vuetify.chatroom.operations.select")),1)]),_:1}))}}),lt={key:0,class:"responsive-record-list"},nt=["aria-current","data-operation-id","onClick"],st={class:"responsive-record-main"},ot={class:"responsive-record-title"},it={class:"responsive-record-subtitle mono"},rt={class:"responsive-record-meta"},ut={class:"responsive-record-side"},ct={key:1,class:"empty-inline"},dt=ie({__name:"OperationTable",props:{events:{},selected:{}},emits:["select"],setup(a){const h=re(),{actionLabel:o,sourceLabel:n}=me();return(m,V)=>a.events.length?(f(),P("div",lt,[(f(!0),P(pe,null,Ce(a.events,r=>(f(),P("button",{key:r.operationId,type:"button",class:Ve(["responsive-record-row",{"selected-row":a.selected===r.operationId}]),"aria-current":a.selected===r.operationId?"true":void 0,"data-operation-id":r.operationId,onClick:R=>m.$emit("select",r)},[i("div",st,[i("div",ot,l(e(o)(r.pluginId,r.action)),1),i("div",it,l(r.pluginId),1)]),i("div",rt,[i("span",null,l(e(Se)(r.startedAt)),1),i("span",null,l(e(n)(r.source)),1),i("span",null,l(r.durationMs===null?e(h).t("$vuetify.chatroom.statuses.running"):e(Ae)(r.durationMs)),1)]),i("div",ut,[s(he,{value:r.status},null,8,["value"])])],10,nt))),128))])):(f(),P("div",ct,l(e(h).t("$vuetify.chatroom.operations.empty")),1))}}),vt={ref:"layout",class:"master-detail-layout operations-layout"},ft={key:0,class:"master-pane"},pt={class:"panel-header operations-header"},mt={class:"panel-title"},ht={class:"panel-subtitle"},yt={class:"operations-controls"},gt={key:1,ref:"detailPane",class:"detail-pane",tabindex:"-1"},At=ie({__name:"OperationsView",props:{revision:{},changes:{}},setup(a){const h=a,o=re(),{mdAndDown:n}=xe(),m=ve("loadSentinel"),V=ve("listScroller"),r=C(!1),{focusDetail:R,focusMaster:y}=Pe(n),c=je(()=>h.revision,()=>h.changes),{events:p,selected:I,detail:w,filter:_,loadingMore:S,hasMore:L,clearing:T,error:A,limitReached:D}=c;let g=null;Y(m,k=>{g?.disconnect(),g=null,k&&(g=new IntersectionObserver(b=>{b.some(q=>q.isIntersecting)&&c.loadMore()},{rootMargin:"240px 0px"}),g.observe(k))},{flush:"post"}),Y(()=>[p.value.length,L.value,S.value],()=>{z()},{flush:"post"}),Me(()=>g?.disconnect());async function z(){await Oe();const k=m.value;if(!k||S.value||!L.value)return;const b=V.value?.getBoundingClientRect().bottom??window.innerHeight;k.getBoundingClientRect().top<=Math.min(b,window.innerHeight)+240&&c.loadMore()}function Z(k){c.select(k),R()}function N(){const k=I.value;c.clearSelection(),k&&y(`[data-operation-id="${CSS.escape(k)}"]`)}async function te(){await c.clearHistory()&&(r.value=!1)}return(k,b)=>(f(),P(pe,null,[i("div",vt,[!e(n)||!e(I)?(f(),P("div",ft,[s(ee,{class:"panel-card"},{default:u(()=>[i("div",pt,[i("div",null,[i("div",mt,l(e(o).t("$vuetify.chatroom.operations.title")),1),i("div",ht,l(e(o).t("$vuetify.chatroom.operations.subtitle")),1)]),i("div",yt,[s(Be,{modelValue:e(_),"onUpdate:modelValue":b[0]||(b[0]=q=>Re(_)?_.value=q:null),mandatory:"",variant:"text",class:"record-filters"},{default:u(()=>[s(F,{value:"all",size:"small"},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.all")),1)]),_:1}),s(F,{value:"running",size:"small"},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.running")),1)]),_:1}),s(F,{value:"error",size:"small"},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.errors")),1)]),_:1}),s(F,{value:"success",size:"small"},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.success")),1)]),_:1})]),_:1},8,["modelValue"]),s(F,{"prepend-icon":"$mdiDeleteSweepOutline",variant:"text",size:"small",class:"operations-clear",disabled:!e(p).length,onClick:b[1]||(b[1]=q=>r.value=!0)},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.clear")),1)]),_:1},8,["disabled"])])]),s(oe),e(A)?(f(),O(le,{key:0,type:"error",variant:"tonal",density:"compact"},{default:u(()=>[$(l(e(A)),1)]),_:1})):B("",!0),i("div",{ref_key:"listScroller",ref:V,class:"operation-scroll-area"},[s(dt,{events:e(p),selected:e(I),onSelect:Z},null,8,["events","selected"]),e(D)?(f(),O(le,{key:0,type:"info",variant:"tonal",density:"compact",class:"operation-window-limit"},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.windowLimit")),1)]),_:1})):B("",!0),e(L)||e(S)?(f(),P("div",{key:1,ref_key:"loadSentinel",ref:m,class:"operation-load-sentinel","aria-hidden":"true"},[e(S)?(f(),O(Le,{key:0,indeterminate:"",size:"20",width:"2"})):B("",!0)],512)):B("",!0)],512)]),_:1})])):B("",!0),!e(n)||e(I)?(f(),P("div",gt,[e(n)&&e(I)&&e(A)?(f(),O(le,{key:0,type:"error",variant:"tonal",density:"compact"},{default:u(()=>[$(l(e(A)),1)]),_:1})):B("",!0),s(at,{event:e(w),"show-back":e(n),onBack:N},null,8,["event","show-back"])],512)):B("",!0)],512),s(ze,{modelValue:r.value,"onUpdate:modelValue":b[3]||(b[3]=q=>r.value=q),width:"auto","max-width":"32rem"},{default:u(()=>[s(ee,null,{default:u(()=>[s(Te,{"prepend-icon":"$mdiAlertCircleOutline",class:"text-error"},{default:u(()=>[s(De,null,{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.clearTitle")),1)]),_:1})]),_:1}),s(qe,null,{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.clearDescription")),1)]),_:1}),s(Ee,null,{default:u(()=>[s(Ne),s(F,{variant:"text",onClick:b[2]||(b[2]=q=>r.value=!1)},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.common.cancel")),1)]),_:1}),s(F,{color:"error",variant:"flat",loading:e(T),onClick:te},{default:u(()=>[$(l(e(o).t("$vuetify.chatroom.operations.clearConfirm")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{At as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`+r.slice(-
|
|
1
|
+
import{a0 as se,a1 as we,w as oe,i as F,y as G,s as E,a7 as ce,v as ie,d as ee,u as de,c as $,l as T,p as x,f as a,m as j,g as t,h as L,t as u,q as ue,a8 as pe,k as y,X as fe,Z as me,a9 as ve,C as H,z as W,o as xe,b6 as Se,e as P,V as ae,F as Oe,j as Ae,S as re,ac as Q,n as ne,b7 as De,a4 as Te,b8 as Pe,af as Ve,b4 as Be,E as Le}from"./index-9DLDvF8M.js";import{c as Re}from"./entity-refresh-queue-wQii8Dl5.js";import{u as qe}from"./useMasterDetailFocus-Chh0cM6g.js";import{_ as le}from"./CodeViewer.vue_vue_type_script_setup_true_lang-BtA5aWrS.js";import{_ as ye}from"./StateChip.vue_vue_type_script_setup_true_lang-DwnqcvSQ.js";import"./VSheet-CKEhsY-7.js";import"./VSpacer-FbdDPUGx.js";const Y=512*1024;function ze(e,c){const r=e+c;return r.length<=Y?r:`[earlier output truncated]
|
|
2
|
+
`+r.slice(-Y)}function Me(e,c){const r=E([]),f=E(null),d=E(null),n=E(""),g=E(!1),s=se(),h=se();let q=!1,V=!1;const R=new Map,z=new Set;let O=0,v=null,_=!1,A=!1;const M=Re({keyOf:o=>o.processId,merge:Ne,isReady:()=>V,isLoading:()=>g.value,isDisposed:()=>A,refreshAll:J,applyBatch:$e});we(()=>{A=!0,v?.close(),v=null,_=!1,V=!1,M.reset(),R.clear(),s.invalidate(),h.invalidate();for(const o of z)o.abort();z.clear()});const he=ie(()=>{if(!d.value)return"";const o=d.value.stderr?`
|
|
3
3
|
|
|
4
4
|
[stderr]
|
|
5
|
-
${d.value.stderr}`:"";return`${d.value.stdout}${o}`});oe(e,()=>{if(!q){q=!0,J();return}M.enqueue(c())},{immediate:!0}),oe(f,()=>{O+=1,h.invalidate(),v?.close(),v=null,_=!1;const o=f.value;o&&(typeof EventSource>"u"?U(O):ge(o,O))});async function J(){if(A)return;V=!1;const o=s.begin();g.value=!0,n.value="";try{const p=await F("/processes",{signal:o.signal});if(A||!s.isCurrent(o))return;r.value=p,V=!0,f.value&&!p.some(l=>l.processId===f.value)?K():f.value&&!v&&U()}catch(p){s.isCurrent(o)&&(n.value=G(p))}finally{s.isCurrent(o)&&(g.value=!1,V&&M.drain())}}async function $e(o){if(A||!o.length)return;const p=s.begin();n.value="";const l=f.value,b=O,k=await Promise.allSettled(o.map(async i=>{if(i.deleted)return{processId:i.processId,deleted:!0};try{if(i.processId===l&&_)return{processId:i.processId,deleted:!1,summary:null,snapshot:null};if(i.processId===l){const D=await F(`/processes/${encodeURIComponent(i.processId)}`,{signal:p.signal});return{processId:i.processId,deleted:!1,summary:W(D),snapshot:D}}if(i.output&&!i.summary)return{processId:i.processId,deleted:!1,summary:null,snapshot:null};const I=await F(`/processes/${encodeURIComponent(i.processId)}/summary`,{signal:p.signal});return{processId:i.processId,deleted:!1,summary:I,snapshot:null}}catch(I){if(X(I))return{processId:i.processId,deleted:!0};throw I}}));if(A||!s.isCurrent(p))return;let S=[...r.value];for(let i=0;i<k.length;i+=1){const I=k[i],D=o[i];if(I.status==="rejected"){Ie(D,I.reason);continue}R.delete(D.processId);const w=I.value;if(w.deleted){S=S.filter(C=>C.processId!==w.processId),f.value===w.processId&&K();continue}if(w.summary){const C=S.findIndex(m=>m.processId===w.processId);C>=0?S[C]=w.summary:S.push(w.summary)}w.snapshot&&f.value===w.processId&&l===w.processId&&O===b&&!_&&(h.invalidate(),d.value=w.snapshot)}r.value=S.sort((i,I)=>I.startedAt.localeCompare(i.startedAt))}function Ie(o,p){const l=(R.get(o.processId)??0)+1;if(l<=1&&!A){R.set(o.processId,l),M.enqueue([o]);return}R.delete(o.processId),n.value=G(p)}function ge(o,p){const l=new EventSource(`/api/processes/${encodeURIComponent(o)}/stream`);v=l;const b={stdout:new TextDecoder,stderr:new TextDecoder},k={stdout:"",stderr:""};let S=null;const i=()=>!A&&v===l&&f.value===o&&O===p,I=()=>{S!==null&&clearTimeout(S),S=null,k.stdout="",k.stderr=""},D=()=>{if(!i()||!_||!d.value){I();return}if(!k.stdout&&!k.stderr)return;const C={...d.value};for(const m of["stdout","stderr"]){const B=k[m];B&&(C.outputTruncated||=C[m].length+B.length>Z,C[m]=ze(C[m],B))}d.value=C,I()},w=()=>{I(),_=!1,l.close(),v=null,U(p)};l.addEventListener("snapshot",C=>{if(i())try{const m=JSON.parse(C.data);I(),b.stdout=new TextDecoder,b.stderr=new TextDecoder,h.invalidate(),d.value=m,_=m.state==="running",_e(m),_||(l.close(),v=null)}catch{w()}}),l.addEventListener("output",C=>{if(!(!i()||!_||!d.value))try{const m=JSON.parse(C.data);if(m.stream!=="stdout"&&m.stream!=="stderr")return;const B=atob(m.bytes),N=Uint8Array.from(B,ke=>ke.charCodeAt(0)),te=b[m.stream].decode(N,{stream:!0});if(!te)return;k[m.stream]+=te,k[m.stream].length>=64*1024?D():S===null&&(S=setTimeout(D,50))}catch{w()}}),l.addEventListener("exit",C=>{if(i())try{D();const m=JSON.parse(C.data);h.invalidate(),d.value?d.value={...d.value,...m,outputTruncated:d.value.outputTruncated||m.outputTruncated}:U(p);const B=r.value.findIndex(N=>N.processId===o);if(B>=0){const N=[...r.value];N[B]=W(m),r.value=N}}catch{U(p)}finally{I(),_=!1,l.close(),v=null}}),l.onerror=()=>{i()&&(I(),_=!1)}}function _e(o){const p=r.value.findIndex(b=>b.processId===o.processId);if(p<0)return;const l=[...r.value];l[p]=W(o),r.value=l}async function U(o=O){const p=h.begin(),l=f.value;if(!l){d.value=null;return}try{const b=await F(`/processes/${encodeURIComponent(l)}`,{signal:p.signal});h.isCurrent(p)&&f.value===l&&O===o&&!_&&(d.value=b)}catch(b){if(!h.isCurrent(p))return;if(X(b)){K(),J();return}n.value=G(b)}}async function Ce(o,p){if(A)return;n.value="";const l=new AbortController;z.add(l);let b=!1;try{await F(`/processes/${encodeURIComponent(o)}/${p?"kill":"terminate"}`,{method:"POST",signal:l.signal})}catch(k){if(A||l.signal.aborted)return;if(!X(k)){n.value=G(k);return}b=k instanceof ce&&k.code==="NOT_FOUND"}finally{z.delete(l)}A||l.signal.aborted||(M.enqueue([{processId:o,summary:!0,output:!0,deleted:b}]),V&&await M.drain())}function be(o){f.value!==o&&(d.value=null,f.value=o)}function K(){v?.close(),v=null,_=!1,f.value=null,d.value=null,h.invalidate()}return{items:r,selected:f,detail:d,error:n,loading:g,processOutput:he,loadInitial:J,select:be,clearSelection:K,stop:Ce}}function Ne(e,c){return{processId:c.processId,output:!!(e?.output||c.output),summary:!!(e?.summary||c.summary),deleted:!!(e?.deleted||c.deleted)}}function W(e){return{processId:e.processId,command:e.command,args:e.args,state:e.state,startedAt:e.startedAt,durationMs:e.durationMs}}function X(e){return e instanceof ce&&(e.code==="NOT_FOUND"||e.code==="CONFLICT")}const Ee={class:"panel-header process-detail-header"},Ue={class:"min-w-0 detail-header-title"},Fe={class:"panel-title text-truncate"},je={class:"panel-subtitle mono text-truncate"},Je={class:"process-detail-actions"},Ke={class:"process-output"},Ge={class:"process-full-command"},He={class:"detail-section-label"},Qe={class:"detail-facts"},We={class:"empty-panel"},Xe=ee({__name:"ProcessDetail",props:{detail:{},output:{},compact:{type:Boolean}},emits:["back","stop"],setup(e){const c=e,r=de(),f=ie(()=>c.detail?[c.detail.command,...c.detail.args].map(d).join(" "):"");function d(n){return n?/^[A-Za-z0-9_@%+=:,./-]+$/.test(n)?n:`'${n.replaceAll("'","'\\''")}'`:"''"}return(n,g)=>e.detail?($(),T(Y,{key:0,class:"panel-card process-detail-card"},{default:x(()=>[a("div",Ee,[e.compact?($(),T(j,{key:0,icon:"$mdiArrowLeft",size:"small",variant:"text","aria-label":t(r).t("$vuetify.chatroom.processes.back"),onClick:g[0]||(g[0]=s=>n.$emit("back"))},null,8,["aria-label"])):L("",!0),a("div",Ue,[a("div",Fe,u(e.detail.command),1),a("div",je,u(e.detail.processId),1)]),a("div",Je,[e.detail.state!=="running"?($(),T(ye,{key:0,value:e.detail.state},null,8,["value"])):L("",!0),e.detail.state==="running"?($(),T(j,{key:1,"prepend-icon":"$mdiStopCircleOutline",size:"x-small",variant:"tonal",color:"warning",class:"detail-action-btn",onClick:g[1]||(g[1]=s=>n.$emit("stop",e.detail.processId,!1))},{default:x(()=>[ue(u(t(r).t("$vuetify.chatroom.processes.terminate")),1)]),_:1})):L("",!0),e.detail.state==="running"?($(),T(pe,{key:2},{activator:x(({props:s})=>[y(j,ve(s,{icon:"$mdiDotsHorizontal",size:"x-small",variant:"text",class:"detail-icon-btn","aria-label":t(r).t("$vuetify.chatroom.processes.moreActions")}),null,16,["aria-label"])]),default:x(()=>[y(fe,{density:"compact"},{default:x(()=>[y(me,{title:t(r).t("$vuetify.chatroom.processes.kill"),"prepend-icon":"$mdiCloseOctagonOutline",onClick:g[2]||(g[2]=s=>n.$emit("stop",e.detail.processId,!0))},null,8,["title"])]),_:1})]),_:1})):L("",!0)])]),y(H),a("div",Ke,[y(le,{text:e.output,filename:"output.txt",highlight:e.detail.state!=="running"},null,8,["text","highlight"])]),y(H),a("div",Ge,[a("div",He,u(t(r).t("$vuetify.chatroom.processes.fullCommand")),1),y(le,{text:f.value,filename:"command.sh",language:"bash",toolbar:!1},null,8,["text"])]),y(H),a("div",Qe,[a("div",null,[a("span",null,u(t(r).t("$vuetify.chatroom.processes.pid")),1),a("strong",null,u(e.detail.pid??"—"),1)]),a("div",null,[a("span",null,u(t(r).t("$vuetify.chatroom.processes.exit")),1),a("strong",null,u(e.detail.exitCode??"—"),1)]),a("div",null,[a("span",null,u(t(r).t("$vuetify.chatroom.processes.timeout")),1),a("strong",null,u(e.detail.timedOut?t(r).t("$vuetify.chatroom.processes.yes"):t(r).t("$vuetify.chatroom.processes.no")),1)])])]),_:1})):($(),T(Y,{key:1,class:"panel-card"},{default:x(()=>[a("div",We,u(t(r).t("$vuetify.chatroom.processes.select")),1)]),_:1}))}}),Ye={class:"panel-header"},Ze={class:"panel-title"},et={class:"panel-subtitle"},tt={key:0,class:"panel-error",role:"alert"},st={key:1,class:"process-record-list",role:"grid"},ot={class:"process-record-header",role:"row"},at={role:"columnheader"},rt={role:"columnheader"},nt={role:"columnheader"},lt={class:"process-record-duration",role:"columnheader"},ct={role:"columnheader"},it=["aria-selected","data-process-id","onClick","onKeydown"],dt={class:"process-record-main"},ut=["title"],pt=["title"],ft={class:"process-record-meta"},mt={class:"process-record-started",role:"gridcell"},vt={class:"process-record-duration",role:"gridcell"},yt={class:"process-record-side",role:"gridcell"},ht={key:2,class:"empty-inline"},$t=ee({__name:"ProcessList",props:{items:{},selected:{},error:{}},emits:["select","stop"],setup(e){const c=de(),r=E(Date.now());let f=null;xe(()=>{f=setInterval(()=>r.value=Date.now(),1e3)}),Se(()=>{f&&clearInterval(f)});function d(n){return n.state==="running"?Math.max(0,r.value-Date.parse(n.startedAt)):n.durationMs}return(n,g)=>($(),T(Y,{class:"panel-card"},{default:x(()=>[a("div",Ye,[a("div",null,[a("div",Ze,u(t(c).t("$vuetify.chatroom.processes.title")),1),a("div",et,u(t(c).t("$vuetify.chatroom.processes.subtitle")),1)])]),y(H),e.error?($(),P("div",tt,[y(ae,{icon:"$mdiAlertCircleOutline",size:"18"}),a("span",null,u(e.error),1)])):L("",!0),e.items.length?($(),P("div",st,[a("div",ot,[a("span",at,u(t(c).t("$vuetify.chatroom.processes.command")),1),a("span",rt,u(t(c).t("$vuetify.chatroom.processes.arguments")),1),a("span",nt,u(t(c).t("$vuetify.chatroom.processes.started")),1),a("span",lt,u(t(c).t("$vuetify.chatroom.processes.duration")),1),a("span",ct,u(t(c).t("$vuetify.chatroom.processes.state")),1)]),($(!0),P(Oe,null,Ae(e.items,s=>($(),P("div",{key:s.processId,role:"row",tabindex:"0",class:ne(["process-record-row",{"selected-row":e.selected===s.processId}]),"aria-selected":e.selected===s.processId,"data-process-id":s.processId,onClick:h=>n.$emit("select",s.processId),onKeydown:[re(Q(h=>n.$emit("select",s.processId),["self"]),["enter"]),re(Q(h=>n.$emit("select",s.processId),["self","prevent"]),["space"])]},[a("div",dt,[a("div",{class:"process-record-command mono",role:"gridcell",title:s.command},u(s.command),9,ut),a("div",{class:ne(["process-record-args mono",{muted:!s.args.length}]),role:"gridcell",title:s.args.join(" ")},u(s.args.length?s.args.join(" "):"—"),11,pt)]),a("div",ft,[a("div",mt,u(t(De)(s.startedAt,t(Te)(t(c).current.value))),1),a("div",vt,u(t(Pe)(d(s))),1)]),a("div",yt,[s.state!=="running"?($(),T(ye,{key:0,value:s.state},null,8,["value"])):($(),P("div",{key:1,class:"process-actions",onClick:g[0]||(g[0]=Q(()=>{},["stop"]))},[y(j,{size:"x-small",variant:"text",class:"table-action-btn","aria-label":t(c).t("$vuetify.chatroom.processes.terminate"),onClick:h=>n.$emit("stop",s.processId,!1)},{default:x(()=>[y(Ve,{indeterminate:"",color:"warning",size:22,width:2},{default:x(()=>[y(ae,{icon:"$mdiStop",size:"12"})]),_:1})]),_:1},8,["aria-label","onClick"]),y(pe,null,{activator:x(({props:h})=>[y(j,ve({ref_for:!0},h,{icon:"$mdiDotsHorizontal",size:"x-small",variant:"text",class:"table-action-btn","aria-label":t(c).t("$vuetify.chatroom.processes.moreActions")}),null,16,["aria-label"])]),default:x(()=>[y(fe,{density:"compact"},{default:x(()=>[y(me,{title:t(c).t("$vuetify.chatroom.processes.kill"),"prepend-icon":"$mdiCloseOctagonOutline",onClick:h=>n.$emit("stop",s.processId,!0)},null,8,["title","onClick"])]),_:2},1024)]),_:2},1024)]))])],42,it))),128))])):($(),P("div",ht,u(t(c).t("$vuetify.chatroom.processes.empty")),1))]),_:1}))}}),It={ref:"layout",class:"master-detail-layout processes-layout"},gt={key:0,class:"master-pane"},_t={key:1,ref:"detailPane",class:"detail-pane",tabindex:"-1"},At=ee({__name:"ProcessesView",props:{revision:{},changes:{}},setup(e){const c=e,{mdAndDown:r}=Be(),{focusDetail:f,focusMaster:d}=qe(r),n=Me(()=>c.revision,()=>c.changes),{items:g,selected:s,detail:h,error:q,processOutput:V}=n;function R(v){n.select(v),f()}function z(){const v=s.value;n.clearSelection(),v&&d(`[data-process-id="${CSS.escape(v)}"]`)}function O(v,_){n.stop(v,_)}return(v,_)=>($(),P("div",It,[!t(r)||!t(s)?($(),P("div",gt,[y($t,{items:t(g),selected:t(s),error:t(q),onSelect:R,onStop:O},null,8,["items","selected","error"])])):L("",!0),!t(r)||t(s)?($(),P("div",_t,[t(r)&&t(s)&&t(q)?($(),T(Le,{key:0,type:"error",variant:"tonal",density:"compact"},{default:x(()=>[ue(u(t(q)),1)]),_:1})):L("",!0),y(Xe,{detail:t(h),output:t(V),compact:t(r),onBack:z,onStop:O},null,8,["detail","output","compact"])],512)):L("",!0)],512))}});export{At as default};
|
|
5
|
+
${d.value.stderr}`:"";return`${d.value.stdout}${o}`});oe(e,()=>{if(!q){q=!0,J();return}M.enqueue(c())},{immediate:!0}),oe(f,()=>{O+=1,h.invalidate(),v?.close(),v=null,_=!1;const o=f.value;o&&(typeof EventSource>"u"?U(O):ge(o,O))});async function J(){if(A)return;V=!1;const o=s.begin();g.value=!0,n.value="";try{const p=await F("/processes",{signal:o.signal});if(A||!s.isCurrent(o))return;r.value=p,V=!0,f.value&&!p.some(l=>l.processId===f.value)?K():f.value&&!v&&U()}catch(p){s.isCurrent(o)&&(n.value=G(p))}finally{s.isCurrent(o)&&(g.value=!1,V&&M.drain())}}async function $e(o){if(A||!o.length)return;const p=s.begin();n.value="";const l=f.value,b=O,k=await Promise.allSettled(o.map(async i=>{if(i.deleted)return{processId:i.processId,deleted:!0};try{if(i.processId===l&&_)return{processId:i.processId,deleted:!1,summary:null,snapshot:null};if(i.processId===l){const D=await F(`/processes/${encodeURIComponent(i.processId)}`,{signal:p.signal});return{processId:i.processId,deleted:!1,summary:X(D),snapshot:D}}if(i.output&&!i.summary)return{processId:i.processId,deleted:!1,summary:null,snapshot:null};const I=await F(`/processes/${encodeURIComponent(i.processId)}/summary`,{signal:p.signal});return{processId:i.processId,deleted:!1,summary:I,snapshot:null}}catch(I){if(Z(I))return{processId:i.processId,deleted:!0};throw I}}));if(A||!s.isCurrent(p))return;let S=[...r.value];for(let i=0;i<k.length;i+=1){const I=k[i],D=o[i];if(I.status==="rejected"){Ie(D,I.reason);continue}R.delete(D.processId);const w=I.value;if(w.deleted){S=S.filter(C=>C.processId!==w.processId),f.value===w.processId&&K();continue}if(w.summary){const C=S.findIndex(m=>m.processId===w.processId);C>=0?S[C]=w.summary:S.push(w.summary)}w.snapshot&&f.value===w.processId&&l===w.processId&&O===b&&!_&&(h.invalidate(),d.value=w.snapshot)}r.value=S.sort((i,I)=>I.startedAt.localeCompare(i.startedAt))}function Ie(o,p){const l=(R.get(o.processId)??0)+1;if(l<=1&&!A){R.set(o.processId,l),M.enqueue([o]);return}R.delete(o.processId),n.value=G(p)}function ge(o,p){const l=new EventSource(`/api/processes/${encodeURIComponent(o)}/stream`);v=l;const b={stdout:new TextDecoder,stderr:new TextDecoder},k={stdout:"",stderr:""};let S=null;const i=()=>!A&&v===l&&f.value===o&&O===p,I=()=>{S!==null&&clearTimeout(S),S=null,k.stdout="",k.stderr=""},D=()=>{if(!i()||!_||!d.value){I();return}if(!k.stdout&&!k.stderr)return;const C={...d.value};for(const m of["stdout","stderr"]){const B=k[m];B&&(C.outputTruncated||=C[m].length+B.length>Y,C[m]=ze(C[m],B))}d.value=C,I()},w=()=>{I(),_=!1,l.close(),v=null,U(p)};l.addEventListener("snapshot",C=>{if(i())try{const m=JSON.parse(C.data);I(),b.stdout=new TextDecoder,b.stderr=new TextDecoder,h.invalidate(),d.value=m,_=m.state==="running",_e(m),_||(l.close(),v=null)}catch{w()}}),l.addEventListener("output",C=>{if(!(!i()||!_||!d.value))try{const m=JSON.parse(C.data);if(m.stream!=="stdout"&&m.stream!=="stderr")return;const B=atob(m.bytes),N=Uint8Array.from(B,ke=>ke.charCodeAt(0)),te=b[m.stream].decode(N,{stream:!0});if(!te)return;k[m.stream]+=te,k[m.stream].length>=64*1024?D():S===null&&(S=setTimeout(D,50))}catch{w()}}),l.addEventListener("exit",C=>{if(i())try{D();const m=JSON.parse(C.data);h.invalidate(),d.value?d.value={...d.value,...m,outputTruncated:d.value.outputTruncated||m.outputTruncated}:U(p);const B=r.value.findIndex(N=>N.processId===o);if(B>=0){const N=[...r.value];N[B]=X(m),r.value=N}}catch{U(p)}finally{I(),_=!1,l.close(),v=null}}),l.onerror=()=>{i()&&(I(),_=!1)}}function _e(o){const p=r.value.findIndex(b=>b.processId===o.processId);if(p<0)return;const l=[...r.value];l[p]=X(o),r.value=l}async function U(o=O){const p=h.begin(),l=f.value;if(!l){d.value=null;return}try{const b=await F(`/processes/${encodeURIComponent(l)}`,{signal:p.signal});h.isCurrent(p)&&f.value===l&&O===o&&!_&&(d.value=b)}catch(b){if(!h.isCurrent(p))return;if(Z(b)){K(),J();return}n.value=G(b)}}async function Ce(o,p){if(A)return;n.value="";const l=new AbortController;z.add(l);let b=!1;try{await F(`/processes/${encodeURIComponent(o)}/${p?"kill":"terminate"}`,{method:"POST",signal:l.signal})}catch(k){if(A||l.signal.aborted)return;if(!Z(k)){n.value=G(k);return}b=k instanceof ce&&k.code==="NOT_FOUND"}finally{z.delete(l)}A||l.signal.aborted||(M.enqueue([{processId:o,summary:!0,output:!0,deleted:b}]),V&&await M.drain())}function be(o){f.value!==o&&(d.value=null,f.value=o)}function K(){v?.close(),v=null,_=!1,f.value=null,d.value=null,h.invalidate()}return{items:r,selected:f,detail:d,error:n,loading:g,processOutput:he,loadInitial:J,select:be,clearSelection:K,stop:Ce}}function Ne(e,c){return{processId:c.processId,output:!!(e?.output||c.output),summary:!!(e?.summary||c.summary),deleted:!!(e?.deleted||c.deleted)}}function X(e){return{processId:e.processId,command:e.command,args:e.args,state:e.state,startedAt:e.startedAt,durationMs:e.durationMs}}function Z(e){return e instanceof ce&&(e.code==="NOT_FOUND"||e.code==="CONFLICT")}const Ee={class:"panel-header process-detail-header"},Ue={class:"min-w-0 detail-header-title"},Fe={class:"panel-title text-truncate"},je={class:"panel-subtitle mono text-truncate"},Je={class:"process-detail-actions"},Ke={class:"process-output"},Ge={class:"process-full-command"},He={class:"detail-section-label"},Qe={class:"detail-facts"},Xe={class:"empty-panel"},Ze=ee({__name:"ProcessDetail",props:{detail:{},output:{},compact:{type:Boolean}},emits:["back","stop"],setup(e){const c=e,r=de(),f=ie(()=>c.detail?[c.detail.command,...c.detail.args].map(d).join(" "):"");function d(n){return n?/^[A-Za-z0-9_@%+=:,./-]+$/.test(n)?n:`'${n.replaceAll("'","'\\''")}'`:"''"}return(n,g)=>e.detail?($(),T(W,{key:0,class:"panel-card process-detail-card"},{default:x(()=>[a("div",Ee,[e.compact?($(),T(j,{key:0,icon:"$mdiArrowLeft",size:"small",variant:"text","aria-label":t(r).t("$vuetify.chatroom.processes.back"),onClick:g[0]||(g[0]=s=>n.$emit("back"))},null,8,["aria-label"])):L("",!0),a("div",Ue,[a("div",Fe,u(e.detail.command),1),a("div",je,u(e.detail.processId),1)]),a("div",Je,[e.detail.state!=="running"?($(),T(ye,{key:0,value:e.detail.state},null,8,["value"])):L("",!0),e.detail.state==="running"?($(),T(j,{key:1,"prepend-icon":"$mdiStopCircleOutline",size:"x-small",variant:"tonal",color:"warning",class:"detail-action-btn",onClick:g[1]||(g[1]=s=>n.$emit("stop",e.detail.processId,!1))},{default:x(()=>[ue(u(t(r).t("$vuetify.chatroom.processes.terminate")),1)]),_:1})):L("",!0),e.detail.state==="running"?($(),T(pe,{key:2},{activator:x(({props:s})=>[y(j,ve(s,{icon:"$mdiDotsHorizontal",size:"x-small",variant:"text",class:"detail-icon-btn","aria-label":t(r).t("$vuetify.chatroom.processes.moreActions")}),null,16,["aria-label"])]),default:x(()=>[y(fe,{density:"compact"},{default:x(()=>[y(me,{title:t(r).t("$vuetify.chatroom.processes.kill"),"prepend-icon":"$mdiCloseOctagonOutline",onClick:g[2]||(g[2]=s=>n.$emit("stop",e.detail.processId,!0))},null,8,["title"])]),_:1})]),_:1})):L("",!0)])]),y(H),a("div",Ke,[y(le,{text:e.output,filename:"output.txt",highlight:e.detail.state!=="running"},null,8,["text","highlight"])]),y(H),a("div",Ge,[a("div",He,u(t(r).t("$vuetify.chatroom.processes.fullCommand")),1),y(le,{text:f.value,filename:"command.sh",language:"bash",toolbar:!1},null,8,["text"])]),y(H),a("div",Qe,[a("div",null,[a("span",null,u(t(r).t("$vuetify.chatroom.processes.pid")),1),a("strong",null,u(e.detail.pid??"—"),1)]),a("div",null,[a("span",null,u(t(r).t("$vuetify.chatroom.processes.exit")),1),a("strong",null,u(e.detail.exitCode??"—"),1)]),a("div",null,[a("span",null,u(t(r).t("$vuetify.chatroom.processes.timeout")),1),a("strong",null,u(e.detail.timedOut?t(r).t("$vuetify.chatroom.processes.yes"):t(r).t("$vuetify.chatroom.processes.no")),1)])])]),_:1})):($(),T(W,{key:1,class:"panel-card"},{default:x(()=>[a("div",Xe,u(t(r).t("$vuetify.chatroom.processes.select")),1)]),_:1}))}}),We={class:"panel-header"},Ye={class:"panel-title"},et={class:"panel-subtitle"},tt={key:0,class:"panel-error",role:"alert"},st={key:1,class:"process-record-list",role:"grid"},ot={class:"process-record-header",role:"row"},at={role:"columnheader"},rt={role:"columnheader"},nt={role:"columnheader"},lt={class:"process-record-duration",role:"columnheader"},ct={role:"columnheader"},it=["aria-selected","data-process-id","onClick","onKeydown"],dt={class:"process-record-main"},ut=["title"],pt=["title"],ft={class:"process-record-meta"},mt={class:"process-record-started",role:"gridcell"},vt={class:"process-record-duration",role:"gridcell"},yt={class:"process-record-side",role:"gridcell"},ht={key:2,class:"empty-inline"},$t=ee({__name:"ProcessList",props:{items:{},selected:{},error:{}},emits:["select","stop"],setup(e){const c=de(),r=E(Date.now());let f=null;xe(()=>{f=setInterval(()=>r.value=Date.now(),1e3)}),Se(()=>{f&&clearInterval(f)});function d(n){return n.state==="running"?Math.max(0,r.value-Date.parse(n.startedAt)):n.durationMs}return(n,g)=>($(),T(W,{class:"panel-card"},{default:x(()=>[a("div",We,[a("div",null,[a("div",Ye,u(t(c).t("$vuetify.chatroom.processes.title")),1),a("div",et,u(t(c).t("$vuetify.chatroom.processes.subtitle")),1)])]),y(H),e.error?($(),P("div",tt,[y(ae,{icon:"$mdiAlertCircleOutline",size:"18"}),a("span",null,u(e.error),1)])):L("",!0),e.items.length?($(),P("div",st,[a("div",ot,[a("span",at,u(t(c).t("$vuetify.chatroom.processes.command")),1),a("span",rt,u(t(c).t("$vuetify.chatroom.processes.arguments")),1),a("span",nt,u(t(c).t("$vuetify.chatroom.processes.started")),1),a("span",lt,u(t(c).t("$vuetify.chatroom.processes.duration")),1),a("span",ct,u(t(c).t("$vuetify.chatroom.processes.state")),1)]),($(!0),P(Oe,null,Ae(e.items,s=>($(),P("div",{key:s.processId,role:"row",tabindex:"0",class:ne(["process-record-row",{"selected-row":e.selected===s.processId}]),"aria-selected":e.selected===s.processId,"data-process-id":s.processId,onClick:h=>n.$emit("select",s.processId),onKeydown:[re(Q(h=>n.$emit("select",s.processId),["self"]),["enter"]),re(Q(h=>n.$emit("select",s.processId),["self","prevent"]),["space"])]},[a("div",dt,[a("div",{class:"process-record-command mono",role:"gridcell",title:s.command},u(s.command),9,ut),a("div",{class:ne(["process-record-args mono",{muted:!s.args.length}]),role:"gridcell",title:s.args.join(" ")},u(s.args.length?s.args.join(" "):"—"),11,pt)]),a("div",ft,[a("div",mt,u(t(De)(s.startedAt,t(Te)(t(c).current.value))),1),a("div",vt,u(t(Pe)(d(s))),1)]),a("div",yt,[s.state!=="running"?($(),T(ye,{key:0,value:s.state},null,8,["value"])):($(),P("div",{key:1,class:"process-actions",onClick:g[0]||(g[0]=Q(()=>{},["stop"]))},[y(j,{size:"x-small",variant:"text",class:"table-action-btn","aria-label":t(c).t("$vuetify.chatroom.processes.terminate"),onClick:h=>n.$emit("stop",s.processId,!1)},{default:x(()=>[y(Ve,{indeterminate:"",color:"warning",size:22,width:2},{default:x(()=>[y(ae,{icon:"$mdiStop",size:"12"})]),_:1})]),_:1},8,["aria-label","onClick"]),y(pe,null,{activator:x(({props:h})=>[y(j,ve({ref_for:!0},h,{icon:"$mdiDotsHorizontal",size:"x-small",variant:"text",class:"table-action-btn","aria-label":t(c).t("$vuetify.chatroom.processes.moreActions")}),null,16,["aria-label"])]),default:x(()=>[y(fe,{density:"compact"},{default:x(()=>[y(me,{title:t(c).t("$vuetify.chatroom.processes.kill"),"prepend-icon":"$mdiCloseOctagonOutline",onClick:h=>n.$emit("stop",s.processId,!0)},null,8,["title","onClick"])]),_:2},1024)]),_:2},1024)]))])],42,it))),128))])):($(),P("div",ht,u(t(c).t("$vuetify.chatroom.processes.empty")),1))]),_:1}))}}),It={ref:"layout",class:"master-detail-layout processes-layout"},gt={key:0,class:"master-pane"},_t={key:1,ref:"detailPane",class:"detail-pane",tabindex:"-1"},At=ee({__name:"ProcessesView",props:{revision:{},changes:{}},setup(e){const c=e,{mdAndDown:r}=Be(),{focusDetail:f,focusMaster:d}=qe(r),n=Me(()=>c.revision,()=>c.changes),{items:g,selected:s,detail:h,error:q,processOutput:V}=n;function R(v){n.select(v),f()}function z(){const v=s.value;n.clearSelection(),v&&d(`[data-process-id="${CSS.escape(v)}"]`)}function O(v,_){n.stop(v,_)}return(v,_)=>($(),P("div",It,[!t(r)||!t(s)?($(),P("div",gt,[y($t,{items:t(g),selected:t(s),error:t(q),onSelect:R,onStop:O},null,8,["items","selected","error"])])):L("",!0),!t(r)||t(s)?($(),P("div",_t,[t(r)&&t(s)&&t(q)?($(),T(Le,{key:0,type:"error",variant:"tonal",density:"compact"},{default:x(()=>[ue(u(t(q)),1)]),_:1})):L("",!0),y(Ze,{detail:t(h),output:t(V),compact:t(r),onBack:z,onStop:O},null,8,["detail","output","compact"])],512)):L("",!0)],512))}});export{At as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as n,u,c as i,l as d,U as p,p as v,q as m,t as f,v as s,bZ as C}from"./index-9DLDvF8M.js";const h=n({__name:"StateChip",props:{value:{}},setup(l){const e=l,t=u(),c=s(()=>({running:"warning",success:"success",exited:"success",error:"error",failed:"error",cancelled:"default",killed:"default"})[e.value]??"default"),r=s(()=>e.value==="running"?"$mdiProgressClock":e.value==="success"||e.value==="exited"?"$mdiCheckCircleOutline":e.value==="error"||e.value==="failed"?"$mdiAlertCircleOutline":"$mdiCircleOutline"),o=s(()=>{const a=C(e.value);return a?t.t(a):e.value});return(a,_)=>(i(),d(p,{class:"state-chip",color:c.value,"prepend-icon":r.value,size:"small",variant:"tonal"},{default:v(()=>[m(f(o.value),1)]),_:1},8,["color","prepend-icon"]))}});export{h as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a0 as P,w as J,b_ as Z,o as Q,b as ee,i as W,y as H,s as $,d as te,u as le,b4 as se,c as d,e as p,g as e,k as h,p as w,f as t,t as s,m as N,Y as ae,b5 as K,F as q,j as X,l as I,q as U,C as F,V as oe,h as V,n as ne,bH as ie,U as ue,E as re,z as T,b7 as ce,a4 as de,v as j}from"./index-9DLDvF8M.js";import{u as me}from"./useMasterDetailFocus-Chh0cM6g.js";import{_ as ve}from"./CodeViewer.vue_vue_type_script_setup_true_lang-BtA5aWrS.js";import{V as fe}from"./VSelect-CHI_FOMl.js";import"./VSheet-CKEhsY-7.js";import"./VSpacer-FbdDPUGx.js";const ge=100,x=1e3;function ye(){const u=$([]),r=$(null),l=$("all"),a=$("all"),v=$(null),S=$(!1),_=$(!1),L=$(""),n=$(!1),b=P(),f=P(),M=new Map;let C=null,E=!1;J(Z,o=>{o&&E&&D()}),J([l,a],()=>{E&&R()}),Q(()=>{E=!0,D(),R()}),ee(()=>{E=!1,C?.close(),C=null});async function R(){f.invalidate(),_.value=!1,M.clear();const o=b.begin();S.value=!0,L.value="",n.value=!1;try{const g=await W(Y(l.value,a.value),{signal:o.signal});if(!b.isCurrent(o))return;const c=G(g.items,[...M.values()]);u.value=c.slice(0,x),n.value=c.length>x||u.value.length>=x&&g.nextCursor!==null,v.value=n.value?null:g.nextCursor,r.value&&(r.value=u.value.find(k=>k.id===r.value?.id)??null),M.clear()}catch(g){b.isCurrent(o)&&(L.value=H(g))}finally{b.isCurrent(o)&&(S.value=!1)}}async function B(){if(S.value||!v.value||_.value)return;const o=f.begin(),g=v.value;_.value=!0,L.value="";try{const c=await W(Y(l.value,a.value,g),{signal:o.signal});if(!f.isCurrent(o))return;const k=G(u.value,c.items);u.value=k.slice(0,x),n.value=k.length>x||u.value.length>=x&&c.nextCursor!==null,v.value=n.value?null:c.nextCursor}catch(c){f.isCurrent(o)&&(L.value=H(c))}finally{f.isCurrent(o)&&(_.value=!1)}}function D(){C?.close();const o=new EventSource("/api/logs/stream");C=o,o.addEventListener("open",()=>{C===o&&R()}),o.addEventListener("log",g=>{if(C!==o)return;const c=pe(g);if(!c||!z(c))return;S.value&&M.set(c.id,c);const k=G([c],u.value);k.length>x&&(n.value=!0),u.value=k.slice(0,x),n.value&&(v.value=null),r.value?.id===c.id&&(r.value=c)})}function z(o){return(l.value==="all"||o.level===l.value)&&(a.value==="all"||o.module===a.value)}function O(o){r.value=o}function A(){r.value=null}return{records:u,selected:r,level:l,module:a,nextCursor:v,loading:S,loadingMore:_,error:L,limitReached:n,loadInitial:R,loadMore:B,select:O,clearSelection:A}}function G(u,r){const l=new Map;for(const a of r)l.set(a.id,a);for(const a of u)l.set(a.id,a);return[...l.values()].sort((a,v)=>v.timestamp.localeCompare(a.timestamp)||v.id.localeCompare(a.id))}function pe(u){if(!(u instanceof MessageEvent)||typeof u.data!="string")return null;try{const r=JSON.parse(u.data);return typeof r?.id=="string"&&typeof r?.message=="string"?r:null}catch{return null}}function Y(u,r,l){const a=new URLSearchParams({limit:String(ge)});return u!=="all"&&a.set("level",u),r!=="all"&&a.set("module",r),l&&a.set("cursor",l),`/logs?${a}`}const he={ref:"layout",class:"master-detail-layout system-logs-layout"},_e={key:0,class:"master-pane"},Le={class:"panel-header system-logs-header"},Ce={class:"panel-title"},ke={class:"panel-subtitle"},$e={class:"system-log-controls"},be={key:0,class:"panel-error",role:"alert"},we={key:1,class:"system-log-list"},Ve={class:"system-log-header","aria-hidden":"true"},xe=["aria-current","data-log-id","onClick"],Se=["title"],Re={class:"system-log-level"},Me={class:"system-log-module mono"},Ee={class:"system-log-message"},Ie={class:"mono"},De={key:2,class:"empty-inline"},Ne={key:4,class:"system-log-load-more"},Ue={key:1,ref:"detailPane",class:"detail-pane",tabindex:"-1"},Be={class:"panel-header compact-header"},ze={class:"min-w-0 detail-header-title"},Oe={class:"panel-title text-truncate"},Ae={class:"panel-subtitle mono text-truncate"},qe={class:"detail-facts system-log-facts"},Fe={class:"system-log-detail-data"},Te={class:"detail-section-label"},je={class:"empty-panel"},Ye=te({__name:"SystemLogsView",setup(u){const r=["app","http","auth","cloud","plugin","mcp"],l=le(),{mdAndDown:a}=se(),{focusDetail:v,focusMaster:S}=me(a),_=ye(),{records:L,selected:n,level:b,module:f,nextCursor:M,loading:C,loadingMore:E,error:R,limitReached:B,loadInitial:D,loadMore:z}=_,O=j(()=>[{title:l.t("$vuetify.chatroom.systemLogs.allLevels"),value:"all"},{title:"INFO",value:"info"},{title:"WARN",value:"warn"},{title:"ERROR",value:"error"},{title:"DEBUG",value:"debug"}]),A=j(()=>{const m=new Set(r);for(const y of L.value)m.add(y.module);return f.value!=="all"&&m.add(f.value),[{title:l.t("$vuetify.chatroom.systemLogs.allModules"),value:"all"},...[...m].sort((y,i)=>y.localeCompare(i)).map(y=>({title:y,value:y}))]}),o=j(()=>n.value?.data?JSON.stringify(n.value.data,null,2):"");function g(m){if(m==="error")return"error";if(m==="warn")return"warning";if(m==="info")return"primary"}function c(m){_.select(m),v()}function k(){const m=n.value?.id??null;_.clearSelection(),m&&S(`[data-log-id="${CSS.escape(m)}"]`)}return(m,y)=>(d(),p("div",he,[!e(a)||!e(n)?(d(),p("div",_e,[h(T,{class:"panel-card"},{default:w(()=>[t("div",Le,[t("div",null,[t("div",Ce,s(e(l).t("$vuetify.chatroom.systemLogs.title")),1),t("div",ke,s(e(l).t("$vuetify.chatroom.systemLogs.subtitle")),1)]),h(N,{icon:"$mdiRefresh",size:"small",variant:"text",loading:e(C),"aria-label":e(l).t("$vuetify.chatroom.systemLogs.refresh"),onClick:e(D)},null,8,["loading","aria-label","onClick"])]),t("div",$e,[h(ae,{modelValue:e(b),"onUpdate:modelValue":y[0]||(y[0]=i=>K(b)?b.value=i:null),mandatory:"",variant:"text",class:"record-filters"},{default:w(()=>[(d(!0),p(q,null,X(O.value,i=>(d(),I(N,{key:i.value,value:i.value,size:"small"},{default:w(()=>[U(s(i.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),h(fe,{modelValue:e(f),"onUpdate:modelValue":y[1]||(y[1]=i=>K(f)?f.value=i:null),items:A.value,"item-title":"title","item-value":"value","aria-label":e(l).t("$vuetify.chatroom.systemLogs.module"),density:"compact",variant:"outlined","hide-details":"",class:"system-log-module-filter"},null,8,["modelValue","items","aria-label"])]),h(F),e(R)?(d(),p("div",be,[h(oe,{icon:"$mdiAlertCircleOutline",size:"18"}),t("span",null,s(e(R)),1)])):V("",!0),e(L).length?(d(),p("div",we,[t("div",Ve,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.time")),1),t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.level")),1),t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.module")),1),t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.message")),1)]),(d(!0),p(q,null,X(e(L),i=>(d(),p("button",{key:i.id,type:"button",class:ne(["system-log-row",{"selected-row":e(n)?.id===i.id}]),"aria-current":e(n)?.id===i.id?"true":void 0,"data-log-id":i.id,onClick:Ge=>c(i)},[t("span",{class:"system-log-time mono",title:i.timestamp},s(e(ie)(i.timestamp)),9,Se),t("span",Re,[h(ue,{size:"x-small",variant:"tonal",color:g(i.level)},{default:w(()=>[U(s(i.level.toUpperCase()),1)]),_:2},1032,["color"])]),t("span",Me,s(i.module),1),t("span",Ee,[t("strong",null,s(i.message),1),t("small",Ie,s(i.event),1)])],10,xe))),128))])):e(C)?V("",!0):(d(),p("div",De,s(e(l).t("$vuetify.chatroom.systemLogs.empty")),1)),e(B)?(d(),I(re,{key:3,type:"info",variant:"tonal",density:"compact",class:"system-log-window-limit"},{default:w(()=>[U(s(e(l).t("$vuetify.chatroom.systemLogs.windowLimit")),1)]),_:1})):V("",!0),e(M)?(d(),p("div",Ne,[h(N,{variant:"text",size:"small",loading:e(E),onClick:e(z)},{default:w(()=>[U(s(e(l).t("$vuetify.chatroom.systemLogs.loadMore")),1)]),_:1},8,["loading","onClick"])])):V("",!0)]),_:1})])):V("",!0),!e(a)||e(n)?(d(),p("div",Ue,[e(n)?(d(),I(T,{key:0,class:"panel-card"},{default:w(()=>[t("div",Be,[e(a)?(d(),I(N,{key:0,icon:"$mdiArrowLeft",size:"small",variant:"text","aria-label":e(l).t("$vuetify.chatroom.systemLogs.back"),onClick:k},null,8,["aria-label"])):V("",!0),t("div",ze,[t("div",Oe,s(e(n).message),1),t("div",Ae,s(e(n).event),1)])]),h(F),t("div",qe,[t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.time")),1),t("strong",null,s(e(ce)(e(n).timestamp,e(de)(e(l).current.value))),1)]),t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.level")),1),t("strong",null,s(e(n).level.toUpperCase()),1)]),t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.module")),1),t("strong",null,s(e(n).module),1)]),t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.event")),1),t("strong",null,s(e(n).event),1)])]),o.value?(d(),p(q,{key:0},[h(F),t("div",Fe,[t("div",Te,s(e(l).t("$vuetify.chatroom.systemLogs.data")),1),h(ve,{text:o.value,filename:"log.json",language:"json",toolbar:!1},null,8,["text"])])],64)):V("",!0)]),_:1})):(d(),I(T,{key:1,class:"panel-card"},{default:w(()=>[t("div",je,s(e(l).t("$vuetify.chatroom.systemLogs.select")),1)]),_:1}))],512)):V("",!0)],512))}});export{Ye as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as dr,u as ur,a as on,o as _r,w as ps,b as an,c as Oe,e as et,f as Pe,t as lt,g as Te,h as wi,r as Et,i as Bt,_ as fr,F as ln,j as hn,n as cn,k as Ge,V as ai,l as gs,m as ft,p as dn,q as un,s as _n,v as fn}from"./index-CacDJSDn.js";var pr=Object.defineProperty,pn=Object.getOwnPropertyDescriptor,gn=(e,t)=>{for(var i in t)pr(e,i,{get:t[i],enumerable:!0})},V=(e,t,i,s)=>{for(var r=s>1?void 0:s?pn(t,i):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(r=(s?o(t,i,r):o(r))||r);return s&&r&&pr(t,i,r),r},k=(e,t)=>(i,s)=>t(i,s,e),vs="Terminal input",yi={get:()=>vs,set:e=>vs=e},ms="Too much output to announce, navigate to rows manually to read",Ci={get:()=>ms,set:e=>ms=e};function vn(e){return e.replace(/\r?\n/g,"\r")}function mn(e,t){return t?"\x1B[200~"+e+"\x1B[201~":e}function Sn(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()}function bn(e,t,i,s){if(e.stopPropagation(),e.clipboardData){let r=e.clipboardData.getData("text/plain");gr(r,t,i,s)}}function gr(e,t,i,s){e=vn(e),e=mn(e,i.decPrivateModes.bracketedPasteMode&&s.rawOptions.ignoreBracketedPasteMode!==!0),i.triggerDataEvent(e,!0),t.value=""}function vr(e,t,i){let s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}function Ss(e,t,i,s,r){vr(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}function qe(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ti(e,t=0,i=e.length){let s="";for(let r=t;r<i;++r){let n=e[r];n>65535?(n-=65536,s+=String.fromCharCode((n>>10)+55296)+String.fromCharCode(n%1024+56320)):s+=String.fromCharCode(n)}return s}var wn=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){let n=e.charCodeAt(r++);56320<=n&&n<=57343?t[s++]=(this._interim-55296)*1024+n-56320+65536:(t[s++]=this._interim,t[s++]=n),this._interim=0}for(let n=r;n<i;++n){let o=e.charCodeAt(n);if(55296<=o&&o<=56319){if(++n>=i)return this._interim=o,s;let a=e.charCodeAt(n);56320<=a&&a<=57343?t[s++]=(o-55296)*1024+a-56320+65536:(t[s++]=o,t[s++]=a);continue}o!==65279&&(t[s++]=o)}return s}},yn=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r,n,o,a,h=0,l=0;if(this.interim[0]){let _=!1,p=this.interim[0];p&=(p&224)===192?31:(p&240)===224?15:7;let u=0,f;for(;(f=this.interim[++u]&63)&&u<4;)p<<=6,p|=f;let m=(this.interim[0]&224)===192?2:(this.interim[0]&240)===224?3:4,w=m-u;for(;l<w;){if(l>=i)return 0;if(f=e[l++],(f&192)!==128){l--,_=!0;break}else this.interim[u++]=f,p<<=6,p|=f&63}_||(m===2?p<128?l--:t[s++]=p:m===3?p<2048||p>=55296&&p<=57343||p===65279||(t[s++]=p):p<65536||p>1114111||(t[s++]=p)),this.interim.fill(0)}let d=i-4,c=l;for(;c<i;){for(;c<d&&!((r=e[c])&128)&&!((n=e[c+1])&128)&&!((o=e[c+2])&128)&&!((a=e[c+3])&128);)t[s++]=r,t[s++]=n,t[s++]=o,t[s++]=a,c+=4;if(r=e[c++],r<128)t[s++]=r;else if((r&224)===192){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(h=(r&31)<<6|n&63,h<128){c--;continue}t[s++]=h}else if((r&240)===224){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(h=(r&15)<<12|(n&63)<<6|o&63,h<2048||h>=55296&&h<=57343||h===65279)continue;t[s++]=h}else if((r&248)===240){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,this.interim[2]=o,s;if(a=e[c++],(a&192)!==128){c--;continue}if(h=(r&7)<<18|(n&63)<<12|(o&63)<<6|a&63,h<65536||h>1114111)continue;t[s++]=h}}return s}},mr="",Ve=" ",Pt=class Sr{constructor(){this.fg=0,this.bg=0,this.extended=new jt}static toColorRGB(t){return[t>>>16&255,t>>>8&255,t&255]}static fromColorRGB(t){return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255}clone(){let t=new Sr;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)===50331648}isBgRGB(){return(this.bg&50331648)===50331648}isFgPalette(){return(this.fg&50331648)===16777216||(this.fg&50331648)===33554432}isBgPalette(){return(this.bg&50331648)===16777216||(this.bg&50331648)===33554432}isFgDefault(){return(this.fg&50331648)===0}isBgDefault(){return(this.bg&50331648)===0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===16777216||(this.extended.underlineColor&50331648)===33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},jt=class br{constructor(t=0,i=0){this._ext=0,this._urlId=0,this._ext=t,this._urlId=i}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(t){this._ext&=-67108864,this._ext|=t&67108863}get urlId(){return this._urlId}set urlId(t){this._urlId=t}get underlineVariantOffset(){let t=(this._ext&3758096384)>>29;return t<0?t^4294967288:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}clone(){return new br(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},we=class wr extends Pt{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new jt,this.combinedData=""}static fromCharData(t){let i=new wr;return i.setFromCharData(t),i}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?qe(this.content&2097151):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(t){this.fg=t[0],this.bg=0;let i=!1;if(t[1].length>2)i=!0;else if(t[1].length===2){let s=t[1].charCodeAt(0);if(55296<=s&&s<=56319){let r=t[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(s-55296)*1024+r-56320+65536|t[2]<<22:i=!0}else i=!0}else this.content=t[1].charCodeAt(0)|t[2]<<22;i&&(this.combinedData=t[1],this.content=2097152|t[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},bs="di$target",ki="di$dependencies",li=new Map;function Cn(e){return e[ki]||[]}function se(e){if(li.has(e))return li.get(e);let t=function(i,s,r){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");kn(t,i,r)};return t._id=e,li.set(e,t),t}function kn(e,t,i){t[bs]===t?t[ki].push({id:e,index:i}):(t[ki]=[{id:e,index:i}],t[bs]=t)}var le=se("BufferService"),yr=se("CoreMouseService"),nt=se("CoreService"),xn=se("CharsetService"),ns=se("InstantiationService"),Cr=se("LogService"),he=se("OptionsService"),kr=se("OscLinkService"),En=se("UnicodeService"),Tt=se("DecorationService"),xi=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){let i=this._bufferService.buffer.lines.get(e-1);if(!i){t(void 0);return}let s=[],r=this._optionsService.rawOptions.linkHandler,n=new we,o=i.getTrimmedLength(),a=-1,h=-1,l=!1;for(let d=0;d<o;d++)if(!(h===-1&&!i.hasContent(d))){if(i.loadCell(d,n),n.hasExtendedAttrs()&&n.extended.urlId)if(h===-1){h=d,a=n.extended.urlId;continue}else l=n.extended.urlId!==a;else h!==-1&&(l=!0);if(l||h!==-1&&d===o-1){let c=this._oscLinkService.getLinkData(a)?.uri;if(c){let _={start:{x:h+1,y:e},end:{x:d+(!l&&d===o-1?1:0),y:e}},p=!1;if(!r?.allowNonHttpProtocols)try{let u=new URL(c);["http:","https:"].includes(u.protocol)||(p=!0)}catch{p=!0}p||s.push({text:c,range:_,activate:(u,f)=>r?r.activate(u,f,_):Bn(u,f),hover:(u,f)=>r?.hover?.(u,f,_),leave:(u,f)=>r?.leave?.(u,f,_)})}l=!1,n.hasExtendedAttrs()&&n.extended.urlId?(h=d,a=n.extended.urlId):(h=-1,a=-1)}}t(s)}};xi=V([k(0,le),k(1,he),k(2,kr)],xi);function Bn(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
1
|
+
import{d as dr,u as ur,a as on,o as _r,w as ps,b as an,c as Oe,e as et,f as Pe,t as lt,g as Te,h as wi,r as Et,i as Bt,_ as fr,F as ln,j as hn,n as cn,k as Ge,V as ai,l as gs,m as ft,p as dn,q as un,s as _n,v as fn}from"./index-9DLDvF8M.js";var pr=Object.defineProperty,pn=Object.getOwnPropertyDescriptor,gn=(e,t)=>{for(var i in t)pr(e,i,{get:t[i],enumerable:!0})},V=(e,t,i,s)=>{for(var r=s>1?void 0:s?pn(t,i):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(r=(s?o(t,i,r):o(r))||r);return s&&r&&pr(t,i,r),r},k=(e,t)=>(i,s)=>t(i,s,e),vs="Terminal input",yi={get:()=>vs,set:e=>vs=e},ms="Too much output to announce, navigate to rows manually to read",Ci={get:()=>ms,set:e=>ms=e};function vn(e){return e.replace(/\r?\n/g,"\r")}function mn(e,t){return t?"\x1B[200~"+e+"\x1B[201~":e}function Sn(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()}function bn(e,t,i,s){if(e.stopPropagation(),e.clipboardData){let r=e.clipboardData.getData("text/plain");gr(r,t,i,s)}}function gr(e,t,i,s){e=vn(e),e=mn(e,i.decPrivateModes.bracketedPasteMode&&s.rawOptions.ignoreBracketedPasteMode!==!0),i.triggerDataEvent(e,!0),t.value=""}function vr(e,t,i){let s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}function Ss(e,t,i,s,r){vr(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}function qe(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ti(e,t=0,i=e.length){let s="";for(let r=t;r<i;++r){let n=e[r];n>65535?(n-=65536,s+=String.fromCharCode((n>>10)+55296)+String.fromCharCode(n%1024+56320)):s+=String.fromCharCode(n)}return s}var wn=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){let n=e.charCodeAt(r++);56320<=n&&n<=57343?t[s++]=(this._interim-55296)*1024+n-56320+65536:(t[s++]=this._interim,t[s++]=n),this._interim=0}for(let n=r;n<i;++n){let o=e.charCodeAt(n);if(55296<=o&&o<=56319){if(++n>=i)return this._interim=o,s;let a=e.charCodeAt(n);56320<=a&&a<=57343?t[s++]=(o-55296)*1024+a-56320+65536:(t[s++]=o,t[s++]=a);continue}o!==65279&&(t[s++]=o)}return s}},yn=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r,n,o,a,h=0,l=0;if(this.interim[0]){let _=!1,p=this.interim[0];p&=(p&224)===192?31:(p&240)===224?15:7;let u=0,f;for(;(f=this.interim[++u]&63)&&u<4;)p<<=6,p|=f;let m=(this.interim[0]&224)===192?2:(this.interim[0]&240)===224?3:4,w=m-u;for(;l<w;){if(l>=i)return 0;if(f=e[l++],(f&192)!==128){l--,_=!0;break}else this.interim[u++]=f,p<<=6,p|=f&63}_||(m===2?p<128?l--:t[s++]=p:m===3?p<2048||p>=55296&&p<=57343||p===65279||(t[s++]=p):p<65536||p>1114111||(t[s++]=p)),this.interim.fill(0)}let d=i-4,c=l;for(;c<i;){for(;c<d&&!((r=e[c])&128)&&!((n=e[c+1])&128)&&!((o=e[c+2])&128)&&!((a=e[c+3])&128);)t[s++]=r,t[s++]=n,t[s++]=o,t[s++]=a,c+=4;if(r=e[c++],r<128)t[s++]=r;else if((r&224)===192){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(h=(r&31)<<6|n&63,h<128){c--;continue}t[s++]=h}else if((r&240)===224){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(h=(r&15)<<12|(n&63)<<6|o&63,h<2048||h>=55296&&h<=57343||h===65279)continue;t[s++]=h}else if((r&248)===240){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,this.interim[2]=o,s;if(a=e[c++],(a&192)!==128){c--;continue}if(h=(r&7)<<18|(n&63)<<12|(o&63)<<6|a&63,h<65536||h>1114111)continue;t[s++]=h}}return s}},mr="",Ve=" ",Pt=class Sr{constructor(){this.fg=0,this.bg=0,this.extended=new jt}static toColorRGB(t){return[t>>>16&255,t>>>8&255,t&255]}static fromColorRGB(t){return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255}clone(){let t=new Sr;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)===50331648}isBgRGB(){return(this.bg&50331648)===50331648}isFgPalette(){return(this.fg&50331648)===16777216||(this.fg&50331648)===33554432}isBgPalette(){return(this.bg&50331648)===16777216||(this.bg&50331648)===33554432}isFgDefault(){return(this.fg&50331648)===0}isBgDefault(){return(this.bg&50331648)===0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===16777216||(this.extended.underlineColor&50331648)===33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},jt=class br{constructor(t=0,i=0){this._ext=0,this._urlId=0,this._ext=t,this._urlId=i}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(t){this._ext&=-67108864,this._ext|=t&67108863}get urlId(){return this._urlId}set urlId(t){this._urlId=t}get underlineVariantOffset(){let t=(this._ext&3758096384)>>29;return t<0?t^4294967288:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}clone(){return new br(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},we=class wr extends Pt{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new jt,this.combinedData=""}static fromCharData(t){let i=new wr;return i.setFromCharData(t),i}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?qe(this.content&2097151):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(t){this.fg=t[0],this.bg=0;let i=!1;if(t[1].length>2)i=!0;else if(t[1].length===2){let s=t[1].charCodeAt(0);if(55296<=s&&s<=56319){let r=t[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(s-55296)*1024+r-56320+65536|t[2]<<22:i=!0}else i=!0}else this.content=t[1].charCodeAt(0)|t[2]<<22;i&&(this.combinedData=t[1],this.content=2097152|t[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},bs="di$target",ki="di$dependencies",li=new Map;function Cn(e){return e[ki]||[]}function se(e){if(li.has(e))return li.get(e);let t=function(i,s,r){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");kn(t,i,r)};return t._id=e,li.set(e,t),t}function kn(e,t,i){t[bs]===t?t[ki].push({id:e,index:i}):(t[ki]=[{id:e,index:i}],t[bs]=t)}var le=se("BufferService"),yr=se("CoreMouseService"),nt=se("CoreService"),xn=se("CharsetService"),ns=se("InstantiationService"),Cr=se("LogService"),he=se("OptionsService"),kr=se("OscLinkService"),En=se("UnicodeService"),Tt=se("DecorationService"),xi=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){let i=this._bufferService.buffer.lines.get(e-1);if(!i){t(void 0);return}let s=[],r=this._optionsService.rawOptions.linkHandler,n=new we,o=i.getTrimmedLength(),a=-1,h=-1,l=!1;for(let d=0;d<o;d++)if(!(h===-1&&!i.hasContent(d))){if(i.loadCell(d,n),n.hasExtendedAttrs()&&n.extended.urlId)if(h===-1){h=d,a=n.extended.urlId;continue}else l=n.extended.urlId!==a;else h!==-1&&(l=!0);if(l||h!==-1&&d===o-1){let c=this._oscLinkService.getLinkData(a)?.uri;if(c){let _={start:{x:h+1,y:e},end:{x:d+(!l&&d===o-1?1:0),y:e}},p=!1;if(!r?.allowNonHttpProtocols)try{let u=new URL(c);["http:","https:"].includes(u.protocol)||(p=!0)}catch{p=!0}p||s.push({text:c,range:_,activate:(u,f)=>r?r.activate(u,f,_):Bn(u,f),hover:(u,f)=>r?.hover?.(u,f,_),leave:(u,f)=>r?.leave?.(u,f,_)})}l=!1,n.hasExtendedAttrs()&&n.extended.urlId?(h=d,a=n.extended.urlId):(h=-1,a=-1)}}t(s)}};xi=V([k(0,le),k(1,he),k(2,kr)],xi);function Bn(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
2
2
|
|
|
3
3
|
WARNING: This link could potentially be dangerous`)){let i=window.open();if(i){try{i.opener=null}catch{}i.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}}var ii=se("CharSizeService"),Ne=se("CoreBrowserService"),os=se("MouseService"),He=se("RenderService"),Dn=se("SelectionService"),xr=se("CharacterJoinerService"),dt=se("ThemeService"),Er=se("LinkProviderService"),Rn=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?ws.isErrorNoTelemetry(e)?new ws(e.message+`
|
|
4
4
|
|