neoctl-web 0.1.16 → 0.1.17

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.
@@ -0,0 +1,105 @@
1
+ var hg=Object.defineProperty;var mg=(t,r,s)=>r in t?hg(t,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[r]=s;var we=(t,r,s)=>mg(t,typeof r!="symbol"?r+"":r,s);import{w as De,o as jt,a as m,c as b,t as S,b as C,r as ur,d as ye,F as X,e as fe,f as a,g as re,u as $e,h as Fa,i as bg,s as kg,j as V,_ as Sr,k as jo,n as Y,l as nt,m as Jn,p as Be,v as yg,q as at,x as ft,y as me,z as lt,A as vg,B as Ge,C as Ha,D as Ke,E as ja,G as Ga,H as It,I as it,T as gt,J as wg,K as _g,L as xg,M as qa,N as Wa}from"./index-B3c8NCtO.js";function Go(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var rn=Go();function El(t){rn=t}var en={exec:()=>null};function he(t,r=""){let s=typeof t=="string"?t:t.source,i={replace:(l,d)=>{let g=typeof d=="string"?d:d.source;return g=g.replace(Ve.caret,"$1"),s=s.replace(l,g),i},getRegex:()=>new RegExp(s,r)};return i}var Sg=((t="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+t)}catch{return!1}})(),Ve={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}>`)},Eg=/^(?:[ \t]*(?:\n|$))+/,Tg=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Ig=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,cs=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ag=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,qo=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Tl=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Il=he(Tl).replace(/bull/g,qo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Cg=he(Tl).replace(/bull/g,qo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Wo=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Mg=/^[^\n]+/,Ko=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Rg=he(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ko).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ng=he(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,qo).getRegex(),Er="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Vo=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Lg=he("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Vo).replace("tag",Er).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Al=he(Wo).replace("hr",cs).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Er).getRegex(),$g=he(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Al).getRegex(),Zo={blockquote:$g,code:Tg,def:Rg,fences:Ig,heading:Ag,hr:cs,html:Lg,lheading:Il,list:Ng,newline:Eg,paragraph:Al,table:en,text:Mg},Ka=he("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",cs).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Er).getRegex(),Og={...Zo,lheading:Cg,table:Ka,paragraph:he(Wo).replace("hr",cs).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ka).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Er).getRegex()},Dg={...Zo,html:he(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Vo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:en,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:he(Wo).replace("hr",cs).replace("heading",` *#{1,6} *[^
2
+ ]`).replace("lheading",Il).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Pg=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Ug=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Cl=/^( {2,}|\\)\n(?!\s*$)/,Bg=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,xn=/[\p{P}\p{S}]/u,Tr=/[\s\p{P}\p{S}]/u,Qo=/[^\s\p{P}\p{S}]/u,zg=he(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Tr).getRegex(),Ml=/(?!~)[\p{P}\p{S}]/u,Fg=/(?!~)[\s\p{P}\p{S}]/u,Hg=/(?:[^\s\p{P}\p{S}]|~)/u,jg=he(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Sg?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Rl=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Gg=he(Rl,"u").replace(/punct/g,xn).getRegex(),qg=he(Rl,"u").replace(/punct/g,Ml).getRegex(),Nl="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Wg=he(Nl,"gu").replace(/notPunctSpace/g,Qo).replace(/punctSpace/g,Tr).replace(/punct/g,xn).getRegex(),Kg=he(Nl,"gu").replace(/notPunctSpace/g,Hg).replace(/punctSpace/g,Fg).replace(/punct/g,Ml).getRegex(),Vg=he("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Qo).replace(/punctSpace/g,Tr).replace(/punct/g,xn).getRegex(),Zg=he(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,xn).getRegex(),Qg="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Yg=he(Qg,"gu").replace(/notPunctSpace/g,Qo).replace(/punctSpace/g,Tr).replace(/punct/g,xn).getRegex(),Xg=he(/\\(punct)/,"gu").replace(/punct/g,xn).getRegex(),Jg=he(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),ef=he(Vo).replace("(?:-->|$)","-->").getRegex(),tf=he("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",ef).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),pr=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,nf=he(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",pr).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ll=he(/^!?\[(label)\]\[(ref)\]/).replace("label",pr).replace("ref",Ko).getRegex(),$l=he(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ko).getRegex(),sf=he("reflink|nolink(?!\\()","g").replace("reflink",Ll).replace("nolink",$l).getRegex(),Va=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Yo={_backpedal:en,anyPunctuation:Xg,autolink:Jg,blockSkip:jg,br:Cl,code:Ug,del:en,delLDelim:en,delRDelim:en,emStrongLDelim:Gg,emStrongRDelimAst:Wg,emStrongRDelimUnd:Vg,escape:Pg,link:nf,nolink:$l,punctuation:zg,reflink:Ll,reflinkSearch:sf,tag:tf,text:Bg,url:en},rf={...Yo,link:he(/^!?\[(label)\]\((.*?)\)/).replace("label",pr).getRegex(),reflink:he(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",pr).getRegex()},Oo={...Yo,emStrongRDelimAst:Kg,emStrongLDelim:qg,delLDelim:Zg,delRDelim:Yg,url:he(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Va).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:he(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Va).getRegex()},of={...Oo,br:he(Cl).replace("{2,}","*").getRegex(),text:he(Oo.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},sr={normal:Zo,gfm:Og,pedantic:Dg},Qn={normal:Yo,gfm:Oo,breaks:of,pedantic:rf},af={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Za=t=>af[t];function vt(t,r){if(r){if(Ve.escapeTest.test(t))return t.replace(Ve.escapeReplace,Za)}else if(Ve.escapeTestNoEncode.test(t))return t.replace(Ve.escapeReplaceNoEncode,Za);return t}function Qa(t){try{t=encodeURI(t).replace(Ve.percentDecode,"%")}catch{return null}return t}function Ya(t,r){var d;let s=t.replace(Ve.findPipe,(g,f,h)=>{let w=!1,y=f;for(;--y>=0&&h[y]==="\\";)w=!w;return w?"|":" |"}),i=s.split(Ve.splitPipe),l=0;if(i[0].trim()||i.shift(),i.length>0&&!((d=i.at(-1))!=null&&d.trim())&&i.pop(),r)if(i.length>r)i.splice(r);else for(;i.length<r;)i.push("");for(;l<i.length;l++)i[l]=i[l].trim().replace(Ve.slashPipe,"|");return i}function zt(t,r,s){let i=t.length;if(i===0)return"";let l=0;for(;l<i&&t.charAt(i-l-1)===r;)l++;return t.slice(0,i-l)}function Xa(t){let r=t.split(`
3
+ `),s=r.length-1;for(;s>=0&&Ve.blankLine.test(r[s]);)s--;return r.length-s<=2?t:r.slice(0,s+1).join(`
4
+ `)}function lf(t,r){if(t.indexOf(r[1])===-1)return-1;let s=0;for(let i=0;i<t.length;i++)if(t[i]==="\\")i++;else if(t[i]===r[0])s++;else if(t[i]===r[1]&&(s--,s<0))return i;return s>0?-2:-1}function cf(t,r=0){let s=r,i="";for(let l of t)if(l===" "){let d=4-s%4;i+=" ".repeat(d),s+=d}else i+=l,s++;return i}function Ja(t,r,s,i,l){let d=r.href,g=r.title||null,f=t[1].replace(l.other.outputLinkReplace,"$1");i.state.inLink=!0;let h={type:t[0].charAt(0)==="!"?"image":"link",raw:s,href:d,title:g,text:f,tokens:i.inlineTokens(f)};return i.state.inLink=!1,h}function uf(t,r,s){let i=t.match(s.other.indentCodeCompensation);if(i===null)return r;let l=i[1];return r.split(`
5
+ `).map(d=>{let g=d.match(s.other.beginningSpace);if(g===null)return d;let[f]=g;return f.length>=l.length?d.slice(l.length):d}).join(`
6
+ `)}var hr=class{constructor(t){we(this,"options");we(this,"rules");we(this,"lexer");this.options=t||rn}space(t){let r=this.rules.block.newline.exec(t);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(t){let r=this.rules.block.code.exec(t);if(r){let s=this.options.pedantic?r[0]:Xa(r[0]),i=s.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:s,codeBlockStyle:"indented",text:i}}}fences(t){let r=this.rules.block.fences.exec(t);if(r){let s=r[0],i=uf(s,r[3]||"",this.rules);return{type:"code",raw:s,lang:r[2]?r[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):r[2],text:i}}}heading(t){let r=this.rules.block.heading.exec(t);if(r){let s=r[2].trim();if(this.rules.other.endingHash.test(s)){let i=zt(s,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(s=i.trim())}return{type:"heading",raw:zt(r[0],`
7
+ `),depth:r[1].length,text:s,tokens:this.lexer.inline(s)}}}hr(t){let r=this.rules.block.hr.exec(t);if(r)return{type:"hr",raw:zt(r[0],`
8
+ `)}}blockquote(t){let r=this.rules.block.blockquote.exec(t);if(r){let s=zt(r[0],`
9
+ `).split(`
10
+ `),i="",l="",d=[];for(;s.length>0;){let g=!1,f=[],h;for(h=0;h<s.length;h++)if(this.rules.other.blockquoteStart.test(s[h]))f.push(s[h]),g=!0;else if(!g)f.push(s[h]);else break;s=s.slice(h);let w=f.join(`
11
+ `),y=w.replace(this.rules.other.blockquoteSetextReplace,`
12
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");i=i?`${i}
13
+ ${w}`:w,l=l?`${l}
14
+ ${y}`:y;let E=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(y,d,!0),this.lexer.state.top=E,s.length===0)break;let _=d.at(-1);if((_==null?void 0:_.type)==="code")break;if((_==null?void 0:_.type)==="blockquote"){let I=_,x=I.raw+`
15
+ `+s.join(`
16
+ `),$=this.blockquote(x);d[d.length-1]=$,i=i.substring(0,i.length-I.raw.length)+$.raw,l=l.substring(0,l.length-I.text.length)+$.text;break}else if((_==null?void 0:_.type)==="list"){let I=_,x=I.raw+`
17
+ `+s.join(`
18
+ `),$=this.list(x);d[d.length-1]=$,i=i.substring(0,i.length-_.raw.length)+$.raw,l=l.substring(0,l.length-I.raw.length)+$.raw,s=x.substring(d.at(-1).raw.length).split(`
19
+ `);continue}}return{type:"blockquote",raw:i,tokens:d,text:l}}}list(t){let r=this.rules.block.list.exec(t);if(r){let s=r[1].trim(),i=s.length>1,l={type:"list",raw:"",ordered:i,start:i?+s.slice(0,-1):"",loose:!1,items:[]};s=i?`\\d{1,9}\\${s.slice(-1)}`:`\\${s}`,this.options.pedantic&&(s=i?s:"[*+-]");let d=this.rules.other.listItemRegex(s),g=!1;for(;t;){let h=!1,w="",y="";if(!(r=d.exec(t))||this.rules.block.hr.test(t))break;w=r[0],t=t.substring(w.length);let E=cf(r[2].split(`
20
+ `,1)[0],r[1].length),_=t.split(`
21
+ `,1)[0],I=!E.trim(),x=0;if(this.options.pedantic?(x=2,y=E.trimStart()):I?x=r[1].length+1:(x=E.search(this.rules.other.nonSpaceChar),x=x>4?1:x,y=E.slice(x),x+=r[1].length),I&&this.rules.other.blankLine.test(_)&&(w+=_+`
22
+ `,t=t.substring(_.length+1),h=!0),!h){let $=this.rules.other.nextBulletRegex(x),R=this.rules.other.hrRegex(x),N=this.rules.other.fencesBeginRegex(x),P=this.rules.other.headingBeginRegex(x),M=this.rules.other.htmlBeginRegex(x),U=this.rules.other.blockquoteBeginRegex(x);for(;t;){let q=t.split(`
23
+ `,1)[0],z;if(_=q,this.options.pedantic?(_=_.replace(this.rules.other.listReplaceNesting," "),z=_):z=_.replace(this.rules.other.tabCharGlobal," "),N.test(_)||P.test(_)||M.test(_)||U.test(_)||$.test(_)||R.test(_))break;if(z.search(this.rules.other.nonSpaceChar)>=x||!_.trim())y+=`
24
+ `+z.slice(x);else{if(I||E.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||N.test(E)||P.test(E)||R.test(E))break;y+=`
25
+ `+_}I=!_.trim(),w+=q+`
26
+ `,t=t.substring(q.length+1),E=z.slice(x)}}l.loose||(g?l.loose=!0:this.rules.other.doubleBlankLine.test(w)&&(g=!0)),l.items.push({type:"list_item",raw:w,task:!!this.options.gfm&&this.rules.other.listIsTask.test(y),loose:!1,text:y,tokens:[]}),l.raw+=w}let f=l.items.at(-1);if(f)f.raw=f.raw.trimEnd(),f.text=f.text.trimEnd();else return;l.raw=l.raw.trimEnd();for(let h of l.items){this.lexer.state.top=!1,h.tokens=this.lexer.blockTokens(h.text,[]);let w=h.tokens[0];if(h.task&&((w==null?void 0:w.type)==="text"||(w==null?void 0:w.type)==="paragraph")){h.text=h.text.replace(this.rules.other.listReplaceTask,""),w.raw=w.raw.replace(this.rules.other.listReplaceTask,""),w.text=w.text.replace(this.rules.other.listReplaceTask,"");for(let E=this.lexer.inlineQueue.length-1;E>=0;E--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[E].src)){this.lexer.inlineQueue[E].src=this.lexer.inlineQueue[E].src.replace(this.rules.other.listReplaceTask,"");break}let y=this.rules.other.listTaskCheckbox.exec(h.raw);if(y){let E={type:"checkbox",raw:y[0]+" ",checked:y[0]!=="[ ]"};h.checked=E.checked,l.loose?h.tokens[0]&&["paragraph","text"].includes(h.tokens[0].type)&&"tokens"in h.tokens[0]&&h.tokens[0].tokens?(h.tokens[0].raw=E.raw+h.tokens[0].raw,h.tokens[0].text=E.raw+h.tokens[0].text,h.tokens[0].tokens.unshift(E)):h.tokens.unshift({type:"paragraph",raw:E.raw,text:E.raw,tokens:[E]}):h.tokens.unshift(E)}}else h.task&&(h.task=!1);if(!l.loose){let y=h.tokens.filter(_=>_.type==="space"),E=y.length>0&&y.some(_=>this.rules.other.anyLine.test(_.raw));l.loose=E}}if(l.loose)for(let h of l.items){h.loose=!0;for(let w of h.tokens)w.type==="text"&&(w.type="paragraph")}return l}}html(t){let r=this.rules.block.html.exec(t);if(r){let s=Xa(r[0]);return{type:"html",block:!0,raw:s,pre:r[1]==="pre"||r[1]==="script"||r[1]==="style",text:s}}}def(t){let r=this.rules.block.def.exec(t);if(r){let s=r[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),i=r[2]?r[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",l=r[3]?r[3].substring(1,r[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):r[3];return{type:"def",tag:s,raw:zt(r[0],`
27
+ `),href:i,title:l}}}table(t){var g;let r=this.rules.block.table.exec(t);if(!r||!this.rules.other.tableDelimiter.test(r[2]))return;let s=Ya(r[1]),i=r[2].replace(this.rules.other.tableAlignChars,"").split("|"),l=(g=r[3])!=null&&g.trim()?r[3].replace(this.rules.other.tableRowBlankLine,"").split(`
28
+ `):[],d={type:"table",raw:zt(r[0],`
29
+ `),header:[],align:[],rows:[]};if(s.length===i.length){for(let f of i)this.rules.other.tableAlignRight.test(f)?d.align.push("right"):this.rules.other.tableAlignCenter.test(f)?d.align.push("center"):this.rules.other.tableAlignLeft.test(f)?d.align.push("left"):d.align.push(null);for(let f=0;f<s.length;f++)d.header.push({text:s[f],tokens:this.lexer.inline(s[f]),header:!0,align:d.align[f]});for(let f of l)d.rows.push(Ya(f,d.header.length).map((h,w)=>({text:h,tokens:this.lexer.inline(h),header:!1,align:d.align[w]})));return d}}lheading(t){let r=this.rules.block.lheading.exec(t);if(r){let s=r[1].trim();return{type:"heading",raw:zt(r[0],`
30
+ `),depth:r[2].charAt(0)==="="?1:2,text:s,tokens:this.lexer.inline(s)}}}paragraph(t){let r=this.rules.block.paragraph.exec(t);if(r){let s=r[1].charAt(r[1].length-1)===`
31
+ `?r[1].slice(0,-1):r[1];return{type:"paragraph",raw:r[0],text:s,tokens:this.lexer.inline(s)}}}text(t){let r=this.rules.block.text.exec(t);if(r)return{type:"text",raw:r[0],text:r[0],tokens:this.lexer.inline(r[0])}}escape(t){let r=this.rules.inline.escape.exec(t);if(r)return{type:"escape",raw:r[0],text:r[1]}}tag(t){let r=this.rules.inline.tag.exec(t);if(r)return!this.lexer.state.inLink&&this.rules.other.startATag.test(r[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(r[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(r[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(r[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:r[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:r[0]}}link(t){let r=this.rules.inline.link.exec(t);if(r){let s=r[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(s)){if(!this.rules.other.endAngleBracket.test(s))return;let d=zt(s.slice(0,-1),"\\");if((s.length-d.length)%2===0)return}else{let d=lf(r[2],"()");if(d===-2)return;if(d>-1){let g=(r[0].indexOf("!")===0?5:4)+r[1].length+d;r[2]=r[2].substring(0,d),r[0]=r[0].substring(0,g).trim(),r[3]=""}}let i=r[2],l="";if(this.options.pedantic){let d=this.rules.other.pedanticHrefTitle.exec(i);d&&(i=d[1],l=d[3])}else l=r[3]?r[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(s)?i=i.slice(1):i=i.slice(1,-1)),Ja(r,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:l&&l.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer,this.rules)}}reflink(t,r){let s;if((s=this.rules.inline.reflink.exec(t))||(s=this.rules.inline.nolink.exec(t))){let i=(s[2]||s[1]).replace(this.rules.other.multipleSpaceGlobal," "),l=r[i.toLowerCase()];if(!l){let d=s[0].charAt(0);return{type:"text",raw:d,text:d}}return Ja(s,l,s[0],this.lexer,this.rules)}}emStrong(t,r,s=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!(!i||!i[1]&&!i[2]&&!i[3]&&!i[4]||i[4]&&s.match(this.rules.other.unicodeAlphaNumeric))&&(!(i[1]||i[3])||!s||this.rules.inline.punctuation.exec(s))){let l=[...i[0]].length-1,d,g,f=l,h=0,w=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(w.lastIndex=0,r=r.slice(-1*t.length+l);(i=w.exec(r))!==null;){if(d=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!d)continue;if(g=[...d].length,i[3]||i[4]){f+=g;continue}else if((i[5]||i[6])&&l%3&&!((l+g)%3)){h+=g;continue}if(f-=g,f>0)continue;g=Math.min(g,g+f+h);let y=[...i[0]][0].length,E=t.slice(0,l+i.index+y+g);if(Math.min(l,g)%2){let I=E.slice(1,-1);return{type:"em",raw:E,text:I,tokens:this.lexer.inlineTokens(I)}}let _=E.slice(2,-2);return{type:"strong",raw:E,text:_,tokens:this.lexer.inlineTokens(_)}}}}codespan(t){let r=this.rules.inline.code.exec(t);if(r){let s=r[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(s),l=this.rules.other.startingSpaceChar.test(s)&&this.rules.other.endingSpaceChar.test(s);return i&&l&&(s=s.substring(1,s.length-1)),{type:"codespan",raw:r[0],text:s}}}br(t){let r=this.rules.inline.br.exec(t);if(r)return{type:"br",raw:r[0]}}del(t,r,s=""){let i=this.rules.inline.delLDelim.exec(t);if(i&&(!i[1]||!s||this.rules.inline.punctuation.exec(s))){let l=[...i[0]].length-1,d,g,f=l,h=this.rules.inline.delRDelim;for(h.lastIndex=0,r=r.slice(-1*t.length+l);(i=h.exec(r))!==null;){if(d=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!d||(g=[...d].length,g!==l))continue;if(i[3]||i[4]){f+=g;continue}if(f-=g,f>0)continue;g=Math.min(g,g+f);let w=[...i[0]][0].length,y=t.slice(0,l+i.index+w+g),E=y.slice(l,-l);return{type:"del",raw:y,text:E,tokens:this.lexer.inlineTokens(E)}}}}autolink(t){let r=this.rules.inline.autolink.exec(t);if(r){let s,i;return r[2]==="@"?(s=r[1],i="mailto:"+s):(s=r[1],i=s),{type:"link",raw:r[0],text:s,href:i,tokens:[{type:"text",raw:s,text:s}]}}}url(t){var s;let r;if(r=this.rules.inline.url.exec(t)){let i,l;if(r[2]==="@")i=r[0],l="mailto:"+i;else{let d;do d=r[0],r[0]=((s=this.rules.inline._backpedal.exec(r[0]))==null?void 0:s[0])??"";while(d!==r[0]);i=r[0],r[1]==="www."?l="http://"+r[0]:l=r[0]}return{type:"link",raw:r[0],text:i,href:l,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(t){let r=this.rules.inline.text.exec(t);if(r){let s=this.lexer.state.inRawBlock;return{type:"text",raw:r[0],text:r[0],escaped:s}}}},pt=class Do{constructor(r){we(this,"tokens");we(this,"options");we(this,"state");we(this,"inlineQueue");we(this,"tokenizer");this.tokens=[],this.tokens.links=Object.create(null),this.options=r||rn,this.options.tokenizer=this.options.tokenizer||new hr,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let s={other:Ve,block:sr.normal,inline:Qn.normal};this.options.pedantic?(s.block=sr.pedantic,s.inline=Qn.pedantic):this.options.gfm&&(s.block=sr.gfm,this.options.breaks?s.inline=Qn.breaks:s.inline=Qn.gfm),this.tokenizer.rules=s}static get rules(){return{block:sr,inline:Qn}}static lex(r,s){return new Do(s).lex(r)}static lexInline(r,s){return new Do(s).inlineTokens(r)}lex(r){r=r.replace(Ve.carriageReturn,`
32
+ `),this.blockTokens(r,this.tokens);for(let s=0;s<this.inlineQueue.length;s++){let i=this.inlineQueue[s];this.inlineTokens(i.src,i.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(r,s=[],i=!1){var d,g,f;this.tokenizer.lexer=this,this.options.pedantic&&(r=r.replace(Ve.tabCharGlobal," ").replace(Ve.spaceLine,""));let l=1/0;for(;r;){if(r.length<l)l=r.length;else{this.infiniteLoopError(r.charCodeAt(0));break}let h;if((g=(d=this.options.extensions)==null?void 0:d.block)!=null&&g.some(y=>(h=y.call({lexer:this},r,s))?(r=r.substring(h.raw.length),s.push(h),!0):!1))continue;if(h=this.tokenizer.space(r)){r=r.substring(h.raw.length);let y=s.at(-1);h.raw.length===1&&y!==void 0?y.raw+=`
33
+ `:s.push(h);continue}if(h=this.tokenizer.code(r)){r=r.substring(h.raw.length);let y=s.at(-1);(y==null?void 0:y.type)==="paragraph"||(y==null?void 0:y.type)==="text"?(y.raw+=(y.raw.endsWith(`
34
+ `)?"":`
35
+ `)+h.raw,y.text+=`
36
+ `+h.text,this.inlineQueue.at(-1).src=y.text):s.push(h);continue}if(h=this.tokenizer.fences(r)){r=r.substring(h.raw.length),s.push(h);continue}if(h=this.tokenizer.heading(r)){r=r.substring(h.raw.length),s.push(h);continue}if(h=this.tokenizer.hr(r)){r=r.substring(h.raw.length),s.push(h);continue}if(h=this.tokenizer.blockquote(r)){r=r.substring(h.raw.length),s.push(h);continue}if(h=this.tokenizer.list(r)){r=r.substring(h.raw.length),s.push(h);continue}if(h=this.tokenizer.html(r)){r=r.substring(h.raw.length),s.push(h);continue}if(h=this.tokenizer.def(r)){r=r.substring(h.raw.length);let y=s.at(-1);(y==null?void 0:y.type)==="paragraph"||(y==null?void 0:y.type)==="text"?(y.raw+=(y.raw.endsWith(`
37
+ `)?"":`
38
+ `)+h.raw,y.text+=`
39
+ `+h.raw,this.inlineQueue.at(-1).src=y.text):this.tokens.links[h.tag]||(this.tokens.links[h.tag]={href:h.href,title:h.title},s.push(h));continue}if(h=this.tokenizer.table(r)){r=r.substring(h.raw.length),s.push(h);continue}if(h=this.tokenizer.lheading(r)){r=r.substring(h.raw.length),s.push(h);continue}let w=r;if((f=this.options.extensions)!=null&&f.startBlock){let y=1/0,E=r.slice(1),_;this.options.extensions.startBlock.forEach(I=>{_=I.call({lexer:this},E),typeof _=="number"&&_>=0&&(y=Math.min(y,_))}),y<1/0&&y>=0&&(w=r.substring(0,y+1))}if(this.state.top&&(h=this.tokenizer.paragraph(w))){let y=s.at(-1);i&&(y==null?void 0:y.type)==="paragraph"?(y.raw+=(y.raw.endsWith(`
40
+ `)?"":`
41
+ `)+h.raw,y.text+=`
42
+ `+h.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=y.text):s.push(h),i=w.length!==r.length,r=r.substring(h.raw.length);continue}if(h=this.tokenizer.text(r)){r=r.substring(h.raw.length);let y=s.at(-1);(y==null?void 0:y.type)==="text"?(y.raw+=(y.raw.endsWith(`
43
+ `)?"":`
44
+ `)+h.raw,y.text+=`
45
+ `+h.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=y.text):s.push(h);continue}if(r){this.infiniteLoopError(r.charCodeAt(0));break}}return this.state.top=!0,s}inline(r,s=[]){return this.inlineQueue.push({src:r,tokens:s}),s}inlineTokens(r,s=[]){var w,y,E,_,I;this.tokenizer.lexer=this;let i=r,l=null;if(this.tokens.links){let x=Object.keys(this.tokens.links);if(x.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(i))!==null;)x.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(i))!==null;)i=i.slice(0,l.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let d;for(;(l=this.tokenizer.rules.inline.blockSkip.exec(i))!==null;)d=l[2]?l[2].length:0,i=i.slice(0,l.index+d)+"["+"a".repeat(l[0].length-d-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);i=((y=(w=this.options.hooks)==null?void 0:w.emStrongMask)==null?void 0:y.call({lexer:this},i))??i;let g=!1,f="",h=1/0;for(;r;){if(r.length<h)h=r.length;else{this.infiniteLoopError(r.charCodeAt(0));break}g||(f=""),g=!1;let x;if((_=(E=this.options.extensions)==null?void 0:E.inline)!=null&&_.some(R=>(x=R.call({lexer:this},r,s))?(r=r.substring(x.raw.length),s.push(x),!0):!1))continue;if(x=this.tokenizer.escape(r)){r=r.substring(x.raw.length),s.push(x);continue}if(x=this.tokenizer.tag(r)){r=r.substring(x.raw.length),s.push(x);continue}if(x=this.tokenizer.link(r)){r=r.substring(x.raw.length),s.push(x);continue}if(x=this.tokenizer.reflink(r,this.tokens.links)){r=r.substring(x.raw.length);let R=s.at(-1);x.type==="text"&&(R==null?void 0:R.type)==="text"?(R.raw+=x.raw,R.text+=x.text):s.push(x);continue}if(x=this.tokenizer.emStrong(r,i,f)){r=r.substring(x.raw.length),s.push(x);continue}if(x=this.tokenizer.codespan(r)){r=r.substring(x.raw.length),s.push(x);continue}if(x=this.tokenizer.br(r)){r=r.substring(x.raw.length),s.push(x);continue}if(x=this.tokenizer.del(r,i,f)){r=r.substring(x.raw.length),s.push(x);continue}if(x=this.tokenizer.autolink(r)){r=r.substring(x.raw.length),s.push(x);continue}if(!this.state.inLink&&(x=this.tokenizer.url(r))){r=r.substring(x.raw.length),s.push(x);continue}let $=r;if((I=this.options.extensions)!=null&&I.startInline){let R=1/0,N=r.slice(1),P;this.options.extensions.startInline.forEach(M=>{P=M.call({lexer:this},N),typeof P=="number"&&P>=0&&(R=Math.min(R,P))}),R<1/0&&R>=0&&($=r.substring(0,R+1))}if(x=this.tokenizer.inlineText($)){r=r.substring(x.raw.length),x.raw.slice(-1)!=="_"&&(f=x.raw.slice(-1)),g=!0;let R=s.at(-1);(R==null?void 0:R.type)==="text"?(R.raw+=x.raw,R.text+=x.text):s.push(x);continue}if(r){this.infiniteLoopError(r.charCodeAt(0));break}}return s}infiniteLoopError(r){let s="Infinite loop on byte: "+r;if(this.options.silent)console.error(s);else throw new Error(s)}},mr=class{constructor(t){we(this,"options");we(this,"parser");this.options=t||rn}space(t){return""}code({text:t,lang:r,escaped:s}){var d;let i=(d=(r||"").match(Ve.notSpaceStart))==null?void 0:d[0],l=t.replace(Ve.endingNewline,"")+`
46
+ `;return i?'<pre><code class="language-'+vt(i)+'">'+(s?l:vt(l,!0))+`</code></pre>
47
+ `:"<pre><code>"+(s?l:vt(l,!0))+`</code></pre>
48
+ `}blockquote({tokens:t}){return`<blockquote>
49
+ ${this.parser.parse(t)}</blockquote>
50
+ `}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:r}){return`<h${r}>${this.parser.parseInline(t)}</h${r}>
51
+ `}hr(t){return`<hr>
52
+ `}list(t){let r=t.ordered,s=t.start,i="";for(let g=0;g<t.items.length;g++){let f=t.items[g];i+=this.listitem(f)}let l=r?"ol":"ul",d=r&&s!==1?' start="'+s+'"':"";return"<"+l+d+`>
53
+ `+i+"</"+l+`>
54
+ `}listitem(t){return`<li>${this.parser.parse(t.tokens)}</li>
55
+ `}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
56
+ `}table(t){let r="",s="";for(let l=0;l<t.header.length;l++)s+=this.tablecell(t.header[l]);r+=this.tablerow({text:s});let i="";for(let l=0;l<t.rows.length;l++){let d=t.rows[l];s="";for(let g=0;g<d.length;g++)s+=this.tablecell(d[g]);i+=this.tablerow({text:s})}return i&&(i=`<tbody>${i}</tbody>`),`<table>
57
+ <thead>
58
+ `+r+`</thead>
59
+ `+i+`</table>
60
+ `}tablerow({text:t}){return`<tr>
61
+ ${t}</tr>
62
+ `}tablecell(t){let r=this.parser.parseInline(t.tokens),s=t.header?"th":"td";return(t.align?`<${s} align="${t.align}">`:`<${s}>`)+r+`</${s}>
63
+ `}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${vt(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:r,tokens:s}){let i=this.parser.parseInline(s),l=Qa(t);if(l===null)return i;t=l;let d='<a href="'+t+'"';return r&&(d+=' title="'+vt(r)+'"'),d+=">"+i+"</a>",d}image({href:t,title:r,text:s,tokens:i}){i&&(s=this.parser.parseInline(i,this.parser.textRenderer));let l=Qa(t);if(l===null)return vt(s);t=l;let d=`<img src="${t}" alt="${vt(s)}"`;return r&&(d+=` title="${vt(r)}"`),d+=">",d}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:vt(t.text)}},Xo=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},ht=class Po{constructor(r){we(this,"options");we(this,"renderer");we(this,"textRenderer");this.options=r||rn,this.options.renderer=this.options.renderer||new mr,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Xo}static parse(r,s){return new Po(s).parse(r)}static parseInline(r,s){return new Po(s).parseInline(r)}parse(r){var i,l;this.renderer.parser=this;let s="";for(let d=0;d<r.length;d++){let g=r[d];if((l=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&l[g.type]){let h=g,w=this.options.extensions.renderers[h.type].call({parser:this},h);if(w!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(h.type)){s+=w||"";continue}}let f=g;switch(f.type){case"space":{s+=this.renderer.space(f);break}case"hr":{s+=this.renderer.hr(f);break}case"heading":{s+=this.renderer.heading(f);break}case"code":{s+=this.renderer.code(f);break}case"table":{s+=this.renderer.table(f);break}case"blockquote":{s+=this.renderer.blockquote(f);break}case"list":{s+=this.renderer.list(f);break}case"checkbox":{s+=this.renderer.checkbox(f);break}case"html":{s+=this.renderer.html(f);break}case"def":{s+=this.renderer.def(f);break}case"paragraph":{s+=this.renderer.paragraph(f);break}case"text":{s+=this.renderer.text(f);break}default:{let h='Token with "'+f.type+'" type was not found.';if(this.options.silent)return console.error(h),"";throw new Error(h)}}}return s}parseInline(r,s=this.renderer){var l,d;this.renderer.parser=this;let i="";for(let g=0;g<r.length;g++){let f=r[g];if((d=(l=this.options.extensions)==null?void 0:l.renderers)!=null&&d[f.type]){let w=this.options.extensions.renderers[f.type].call({parser:this},f);if(w!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(f.type)){i+=w||"";continue}}let h=f;switch(h.type){case"escape":{i+=s.text(h);break}case"html":{i+=s.html(h);break}case"link":{i+=s.link(h);break}case"image":{i+=s.image(h);break}case"checkbox":{i+=s.checkbox(h);break}case"strong":{i+=s.strong(h);break}case"em":{i+=s.em(h);break}case"codespan":{i+=s.codespan(h);break}case"br":{i+=s.br(h);break}case"del":{i+=s.del(h);break}case"text":{i+=s.text(h);break}default:{let w='Token with "'+h.type+'" type was not found.';if(this.options.silent)return console.error(w),"";throw new Error(w)}}}return i}},cr,es=(cr=class{constructor(t){we(this,"options");we(this,"block");this.options=t||rn}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?pt.lex:pt.lexInline}provideParser(t=this.block){return t?ht.parse:ht.parseInline}},we(cr,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),we(cr,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),cr),Ol=class{constructor(...t){we(this,"defaults",Go());we(this,"options",this.setOptions);we(this,"parse",this.parseMarkdown(!0));we(this,"parseInline",this.parseMarkdown(!1));we(this,"Parser",ht);we(this,"Renderer",mr);we(this,"TextRenderer",Xo);we(this,"Lexer",pt);we(this,"Tokenizer",hr);we(this,"Hooks",es);this.use(...t)}walkTokens(t,r){var i,l;let s=[];for(let d of t)switch(s=s.concat(r.call(this,d)),d.type){case"table":{let g=d;for(let f of g.header)s=s.concat(this.walkTokens(f.tokens,r));for(let f of g.rows)for(let h of f)s=s.concat(this.walkTokens(h.tokens,r));break}case"list":{let g=d;s=s.concat(this.walkTokens(g.items,r));break}default:{let g=d;(l=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&l[g.type]?this.defaults.extensions.childTokens[g.type].forEach(f=>{let h=g[f].flat(1/0);s=s.concat(this.walkTokens(h,r))}):g.tokens&&(s=s.concat(this.walkTokens(g.tokens,r)))}}return s}use(...t){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(s=>{let i={...s};if(i.async=this.defaults.async||i.async||!1,s.extensions&&(s.extensions.forEach(l=>{if(!l.name)throw new Error("extension name required");if("renderer"in l){let d=r.renderers[l.name];d?r.renderers[l.name]=function(...g){let f=l.renderer.apply(this,g);return f===!1&&(f=d.apply(this,g)),f}:r.renderers[l.name]=l.renderer}if("tokenizer"in l){if(!l.level||l.level!=="block"&&l.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let d=r[l.level];d?d.unshift(l.tokenizer):r[l.level]=[l.tokenizer],l.start&&(l.level==="block"?r.startBlock?r.startBlock.push(l.start):r.startBlock=[l.start]:l.level==="inline"&&(r.startInline?r.startInline.push(l.start):r.startInline=[l.start]))}"childTokens"in l&&l.childTokens&&(r.childTokens[l.name]=l.childTokens)}),i.extensions=r),s.renderer){let l=this.defaults.renderer||new mr(this.defaults);for(let d in s.renderer){if(!(d in l))throw new Error(`renderer '${d}' does not exist`);if(["options","parser"].includes(d))continue;let g=d,f=s.renderer[g],h=l[g];l[g]=(...w)=>{let y=f.apply(l,w);return y===!1&&(y=h.apply(l,w)),y||""}}i.renderer=l}if(s.tokenizer){let l=this.defaults.tokenizer||new hr(this.defaults);for(let d in s.tokenizer){if(!(d in l))throw new Error(`tokenizer '${d}' does not exist`);if(["options","rules","lexer"].includes(d))continue;let g=d,f=s.tokenizer[g],h=l[g];l[g]=(...w)=>{let y=f.apply(l,w);return y===!1&&(y=h.apply(l,w)),y}}i.tokenizer=l}if(s.hooks){let l=this.defaults.hooks||new es;for(let d in s.hooks){if(!(d in l))throw new Error(`hook '${d}' does not exist`);if(["options","block"].includes(d))continue;let g=d,f=s.hooks[g],h=l[g];es.passThroughHooks.has(d)?l[g]=w=>{if(this.defaults.async&&es.passThroughHooksRespectAsync.has(d))return(async()=>{let E=await f.call(l,w);return h.call(l,E)})();let y=f.call(l,w);return h.call(l,y)}:l[g]=(...w)=>{if(this.defaults.async)return(async()=>{let E=await f.apply(l,w);return E===!1&&(E=await h.apply(l,w)),E})();let y=f.apply(l,w);return y===!1&&(y=h.apply(l,w)),y}}i.hooks=l}if(s.walkTokens){let l=this.defaults.walkTokens,d=s.walkTokens;i.walkTokens=function(g){let f=[];return f.push(d.call(this,g)),l&&(f=f.concat(l.call(this,g))),f}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,r){return pt.lex(t,r??this.defaults)}parser(t,r){return ht.parse(t,r??this.defaults)}parseMarkdown(t){return(r,s)=>{let i={...s},l={...this.defaults,...i},d=this.onError(!!l.silent,!!l.async);if(this.defaults.async===!0&&i.async===!1)return d(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof r>"u"||r===null)return d(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return d(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));if(l.hooks&&(l.hooks.options=l,l.hooks.block=t),l.async)return(async()=>{let g=l.hooks?await l.hooks.preprocess(r):r,f=await(l.hooks?await l.hooks.provideLexer(t):t?pt.lex:pt.lexInline)(g,l),h=l.hooks?await l.hooks.processAllTokens(f):f;l.walkTokens&&await Promise.all(this.walkTokens(h,l.walkTokens));let w=await(l.hooks?await l.hooks.provideParser(t):t?ht.parse:ht.parseInline)(h,l);return l.hooks?await l.hooks.postprocess(w):w})().catch(d);try{l.hooks&&(r=l.hooks.preprocess(r));let g=(l.hooks?l.hooks.provideLexer(t):t?pt.lex:pt.lexInline)(r,l);l.hooks&&(g=l.hooks.processAllTokens(g)),l.walkTokens&&this.walkTokens(g,l.walkTokens);let f=(l.hooks?l.hooks.provideParser(t):t?ht.parse:ht.parseInline)(g,l);return l.hooks&&(f=l.hooks.postprocess(f)),f}catch(g){return d(g)}}}onError(t,r){return s=>{if(s.message+=`
64
+ Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error occurred:</p><pre>"+vt(s.message+"",!0)+"</pre>";return r?Promise.resolve(i):i}if(r)return Promise.reject(s);throw s}}},sn=new Ol;function _e(t,r){return sn.parse(t,r)}_e.options=_e.setOptions=function(t){return sn.setOptions(t),_e.defaults=sn.defaults,El(_e.defaults),_e};_e.getDefaults=Go;_e.defaults=rn;_e.use=function(...t){return sn.use(...t),_e.defaults=sn.defaults,El(_e.defaults),_e};_e.walkTokens=function(t,r){return sn.walkTokens(t,r)};_e.parseInline=sn.parseInline;_e.Parser=ht;_e.parser=ht.parse;_e.Renderer=mr;_e.TextRenderer=Xo;_e.Lexer=pt;_e.lexer=pt.lex;_e.Tokenizer=hr;_e.Hooks=es;_e.parse=_e;_e.options;_e.setOptions;_e.use;_e.walkTokens;_e.parseInline;ht.parse;pt.lex;const bn=new Ol({extensions:[{name:"cjkStrong",level:"inline",start(t){return t.indexOf("**")},tokenizer(t){const r=/^\*\*([^*\r\n]+(?![\\*])[\p{P}\p{S}])\*\*(?=[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}])/u.exec(t);if(!(!r||/^\s/u.test(r[1])||!/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u.test(r[1])))return{type:"strong",raw:r[0],text:r[1],tokens:this.lexer.inlineTokens(r[1])}}}]}),df={key:0,class:"terminal-output-reader","aria-label":"终端运行输出"},gf={key:0,class:"background-task-live-output",tabindex:"0"},ff={key:1,class:"background-task-live-output terminal-stderr",tabindex:"0"},pf={__name:"TerminalOutputReader",props:{ownerSessionId:String,runId:String},setup(t){const r=t,s=ur({record:null,stdout:"",stderr:"",offsets:{stdout:0,stderr:0}});let i=0,l,d;async function g(){var h;const f=i;try{for(const w of["stdout","stderr"]){let y;do{const E=s.offsets[w],_=new URLSearchParams({sessionId:r.ownerSessionId,runId:r.runId,stream:w,offset:String(E),limitBytes:"65536"}),I=await ye(`/api/terminal-output?${_}`,{signal:d.signal,cache:"no-store"});if(f!==i||!I.ok)return;const x=await I.json();if(f!==i||x.sessionId!==r.ownerSessionId||x.runId!==r.runId||x.stream!==w||x.offset!==E||!Number.isSafeInteger(x.nextOffset)||x.nextOffset<E||(s.record=x.record,((h=x.record)==null?void 0:h.availability)!=="available"||typeof x.text!="string")||x.text&&x.nextOffset===E)return;if(y??(y=x.record.streams[w].storedBytes),s[w]+=x.text,s.offsets[w]=x.nextOffset,x.endOfStoredOutput||x.nextOffset>=y)break}while(f===i)}}catch{}finally{f===i&&(!s.record||s.record.lifecycle==="running")&&(l=setTimeout(g,1e3))}}return De(()=>[r.ownerSessionId,r.runId],()=>{i++,d==null||d.abort(),d=new AbortController,clearTimeout(l),Object.assign(s,{record:null,stdout:"",stderr:"",offsets:{stdout:0,stderr:0}}),r.ownerSessionId&&r.runId&&g()},{immediate:!0,flush:"pre"}),jt(()=>{i++,d==null||d.abort(),clearTimeout(l)}),(f,h)=>s.stdout||s.stderr?(m(),b("section",df,[s.stdout?(m(),b("pre",gf,S(s.stdout),1)):C("",!0),s.stderr?(m(),b("pre",ff,S(s.stderr),1)):C("",!0)])):C("",!0)}},hf=["report","timeline","messages","delegation"],Dl=(t,r)=>t.ownerSessionId===r.ownerSessionId&&t.taskId===r.taskId&&t.runGeneration===r.runGeneration,Pl=t=>typeof t.ownerSessionId=="string"&&!!t.ownerSessionId&&typeof t.taskId=="string"&&!!t.taskId&&Number.isSafeInteger(t.runGeneration)&&t.runGeneration>0;function mf(t,r,s,i=!1){if(!Pl(t)||!hf.includes(r)||i&&(!s||r!=="timeline"))throw new Error("所属会话、任务、轮次或读取方式无效");const l=new URLSearchParams({sessionId:t.ownerSessionId,taskId:t.taskId,runGeneration:String(t.runGeneration),view:r,pageChars:"16000"});return s&&l.set("cursor",s),i&&l.set("refresh","true"),`/api/agent-content?${l}`}const bf=["complete","truncated","missing","unavailable"];function el(t,r){if(!r||!bf.includes(r.state)||typeof r.text!="string"||!Number.isSafeInteger(r.offset)||r.offset<0||!Number.isSafeInteger(r.totalChars)||r.totalChars<0||typeof r.hasMore!="boolean")throw new Error("内容分片格式无效");const s=r.offset+r.text.length;if(s>r.totalChars||r.hasMore!==s<r.totalChars)throw new Error("内容分片范围无效");if(t&&(t.totalChars!==r.totalChars||t.state!==r.state))throw new Error("分片源内容已改变,请重新读取");const i=(t==null?void 0:t.text)??"";if(r.offset>i.length)throw new Error("内容分片缺页,请重新读取");const l=Math.min(i.length-r.offset,r.text.length);if(i.slice(r.offset,r.offset+l)!==r.text.slice(0,l))throw new Error("内容分片冲突,请重新读取");const d=i+r.text.slice(l);return{...r,offset:0,text:d,hasMore:d.length<r.totalChars}}function Ul(){return{page:null,items:[],fragment:null}}function kf(t,r,s,i,l="next"){var f,h,w,y,E;if(!r||!Dl(r,s))throw new Error("响应所属会话、任务或轮次不匹配,已丢弃");if(!["complete","partial","missing","unavailable"].includes(r.state))throw new Error("未知内容读取状态");for(const _ of["nextCursor","refreshCursor","snapshotId"])if(r[_]!==void 0&&(typeof r[_]!="string"||!r[_]))throw new Error("响应游标或快照无效");const d=l==="start"?Ul():t;if(l==="next"&&((f=d.page)!=null&&f.snapshotId)&&r.snapshotId&&d.page.snapshotId!==r.snapshotId)throw new Error("分页快照已改变,请重新读取");if(l==="refresh"&&(i!=="timeline"||!((h=d.page)!=null&&h.refreshCursor)||d.page.nextCursor))throw new Error("尚未读完快照,不能增量刷新");if(r.state==="partial"&&!r.nextCursor)throw new Error("分页未完成但未提供继续游标");if(r.nextCursor&&r.refreshCursor)throw new Error("分页与刷新游标冲突");if(r.state==="unavailable")return{...d,page:r};if(i==="timeline"){if(!Array.isArray(r.items)&&r.state!=="missing")throw new Error("过程页未提供 items");const _=d.items.slice(),I=new Map(_.map((x,$)=>[x.id,$]));for(const x of r.items??[]){if(!x||typeof x.id!="string"||!x.id||!["assistant","tool_use","tool_result"].includes(x.kind))throw new Error("过程条目身份或类型无效");const $=I.get(x.id),R=$===void 0?void 0:_[$];if(R&&(R.kind!==x.kind||R.messageId!==x.messageId||R.toolUseId!==x.toolUseId||R.toolName!==x.toolName))throw new Error("过程条目身份冲突");const N={...x,content:el(R==null?void 0:R.content,x.content)};$===void 0?(I.set(x.id,_.length),_.push(N)):_[$]=N}return{page:r,items:_,fragment:null}}if(i==="delegation"&&r.delegation&&r.delegation.scope!=="task")throw new Error("未知委派 scope;不展示上下文或续跑指令");const g=i==="delegation"?(w=r.delegation)==null?void 0:w.prompt:i==="messages"?(y=r.messages)==null?void 0:y.content:(E=r.report)==null?void 0:E.content;if(!g&&r.state!=="missing")throw new Error("读取页未提供正文");return{page:r,items:[],fragment:g?el(d.fragment,g):null}}const yf={class:"agent-content-reader agent-parent-messages","aria-label":"代理消息"},vf=["innerHTML"],wf={key:0,class:"reader-error",role:"alert"},_f={__name:"AgentExchangeReader",props:{ownerSessionId:String,task:Object,renderMarkdown:Function},setup(t){const r=t,s=re([]),i=re("");let l=0,d,g;const f={whiteSpace:"pre-wrap",overflowWrap:"anywhere"},h=()=>{var y,E;return{ownerSessionId:r.ownerSessionId,taskId:(y=r.task)==null?void 0:y.taskId,runGeneration:(E=r.task)==null?void 0:E.runGeneration}};async function w(){var z;const y=++l;d==null||d.abort(),d=new AbortController;const E=d.signal;clearTimeout(g);const _=r.task,I=h(),{ownerSessionId:x}=I;if(!Pl(I))return;const $=()=>y===l&&!E.aborted&&Dl(I,h()),R=[];let N=!1;async function P(J,o){var Q;const oe={ownerSessionId:x,taskId:_.taskId,runGeneration:o};let ce=Ul(),W;do{const le=await ye(mf(oe,J,W),{signal:E,cache:"no-store"});if(!le.ok)throw new Error("加载失败");const H=await le.json();if(!$())return"";if(H.state==="unavailable")throw new Error("加载失败");if(ce=kf(ce,H,oe,J,W?"next":"start"),W&&H.nextCursor===W)throw new Error("加载失败");W=H.nextCursor}while(W&&$());return((Q=ce.fragment)==null?void 0:Q.text)||""}async function M(J,o){try{return await P(J,o)}catch(oe){return $()&&oe.name!=="AbortError"&&(N=!0),""}}function U(J,o,oe){typeof oe=="string"&&oe.trim()&&R.push({id:J,direction:o,text:oe})}U("delegation","主代理 → 子代理",await M("delegation",_.runGeneration));const q=[..._.runHistory||[],_].filter(J=>Number.isSafeInteger(J.runGeneration)).sort((J,o)=>J.runGeneration-o.runGeneration);for(const J of q){if(!$())return;const o=await M("messages",J.runGeneration);try{const oe=JSON.parse(o||"[]");if(!Array.isArray(oe))throw new Error;for(const ce of oe)U(`message:${J.runGeneration}:${ce.id}`,"主代理 → 子代理",ce.text)}catch{N=!0}U(`report:${J.runGeneration}`,"子代理 → 主代理",await M("report",J.runGeneration))}$()&&((!N||!s.value.length)&&(s.value=R),i.value=N?"加载失败":"",["pending","running"].includes((z=r.task)==null?void 0:z.status)&&(g=setTimeout(w,3e3)))}return De([()=>r.ownerSessionId,()=>{var y;return(y=r.task)==null?void 0:y.taskId},()=>{var y;return(y=r.task)==null?void 0:y.runGeneration},()=>{var y;return(y=r.task)==null?void 0:y.status}],(y,E)=>{y.slice(0,3).some((_,I)=>_!==E[I])&&(s.value=[],i.value=""),w()},{immediate:!0}),jt(()=>{l++,d==null||d.abort(),clearTimeout(g)}),(y,E)=>(m(),b("section",yf,[(m(!0),b(X,null,fe(s.value,_=>(m(),b("article",{key:_.id,class:"agent-parent-message"},[a("header",null,[a("strong",null,S(_.direction),1)]),t.renderMarkdown?(m(),b("div",{key:0,class:"markdown",innerHTML:t.renderMarkdown(_.text)},null,8,vf)):(m(),b("pre",{key:1,style:f},S(_.text),1))]))),128)),i.value?(m(),b("p",wf,S(i.value),1)):C("",!0)]))}};function xf(t,r,s){const i=new Array(t);return new Proxy(i,{get(l,d,g){if(typeof d=="string"){const f=d.charCodeAt(0);if(f>=48&&f<=57){const h=+d;if(Number.isInteger(h)&&h>=0&&h<t){let w=l[h];if(!w){const y=r[h*2];w=l[h]={index:h,key:s(h),start:y,size:r[h*2+1],end:y+r[h*2+1],lane:0}}return w}}if(d==="length")return t}return Reflect.get(l,d,g)}})}function kn(t,r,s){let i=s.initialDeps??[],l,d=!0;function g(){const f=t();return(f.length!==i.length||f.some((w,y)=>i[y]!==w))&&(i=f,l=r(...f),s!=null&&s.onChange&&!(d&&s.skipInitialOnChange)&&s.onChange(l),d=!1),l}return g.updateDeps=f=>{i=f},g}function tl(t,r){if(t===void 0)throw new Error("Unexpected undefined");return t}const Sf=(t,r)=>Math.abs(t-r)<1.01,Ef=(t,r,s)=>{let i;return Object.assign(function(...l){t.clearTimeout(i),i=t.setTimeout(()=>r.apply(this,l),s)},{cancel:()=>{t.clearTimeout(i)}})};let Yn;const yo=()=>{if(Yn!==void 0)return Yn;if(typeof navigator>"u")return Yn=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Yn=!0;const t=navigator.maxTouchPoints;return Yn=navigator.platform==="MacIntel"&&t!==void 0&&t>0},nl=t=>{const{offsetWidth:r,offsetHeight:s}=t;return{width:r,height:s}},Tf=t=>t,Bl=t=>{const r=Math.max(t.startIndex-t.overscan,0),i=Math.min(t.endIndex+t.overscan,t.count-1)-r+1,l=new Array(i);for(let d=0;d<i;d++)l[d]=r+d;return l},If=(t,r)=>{const s=t.scrollElement;if(!s)return;const i=t.targetWindow;if(!i)return;const l=g=>{const{width:f,height:h}=g;r({width:Math.round(f),height:Math.round(h)})};if(l(nl(s)),!i.ResizeObserver)return()=>{};const d=new i.ResizeObserver(g=>{const f=()=>{const h=g[0];if(h!=null&&h.borderBoxSize){const w=h.borderBoxSize[0];if(w){l({width:w.inlineSize,height:w.blockSize});return}}l(nl(s))};t.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(f):f()});return d.observe(s,{box:"border-box"}),()=>{d.unobserve(s)}},br={passive:!0},Af=typeof window>"u"?!0:"onscrollend"in window,Cf=(t,r,s)=>{const i=t.scrollElement;if(!i)return;const l=t.targetWindow;if(!l)return;const d=t.options.useScrollendEvent&&Af;let g=0;const f=d?null:Ef(l,()=>r(g,!1),t.options.isScrollingResetDelay),h=E=>()=>{g=s(i),f==null||f(),r(g,E)},w=h(!0),y=h(!1);return i.addEventListener("scroll",w,br),d&&i.addEventListener("scrollend",y,br),()=>{i.removeEventListener("scroll",w),d&&i.removeEventListener("scrollend",y),f==null||f.cancel()}},Mf=(t,r)=>Cf(t,r,s=>{const{horizontal:i,isRtl:l}=t.options;return i?s.scrollLeft*(l&&-1||1):s.scrollTop}),Rf=(t,r,s)=>{if(s.options.useCachedMeasurements){const i=s.indexFromElement(t),l=s.options.getItemKey(i);return s.itemSizeCache.get(l)??s.options.estimateSize(i)}if(r!=null&&r.borderBoxSize){const i=r.borderBoxSize[0];if(i)return Math.round(i[s.options.horizontal?"inlineSize":"blockSize"])}if(!r){const i=s.indexFromElement(t),l=s.options.getItemKey(i),d=s.itemSizeCache.get(l);if(d!==void 0)return d}return t[s.options.horizontal?"offsetWidth":"offsetHeight"]},Nf=(t,{adjustments:r=0,behavior:s},i)=>{var l,d;(d=(l=i.scrollElement)==null?void 0:l.scrollTo)==null||d.call(l,{[i.options.horizontal?"left":"top"]:t+r,behavior:s})},Lf=Nf;class $f{constructor(r){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var s,i,l;return((l=(i=(s=this.targetWindow)==null?void 0:s.performance)==null?void 0:i.now)==null?void 0:l.call(i))??Date.now()},this.observer=(()=>{let s=null;const i=()=>s||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:s=new this.targetWindow.ResizeObserver(l=>{l.forEach(d=>{const g=()=>{const f=d.target,h=this.indexFromElement(f);if(!f.isConnected){this.observer.unobserve(f);for(const[w,y]of this.elementsCache)if(y===f){this.elementsCache.delete(w);break}return}this.isIndexInRange(h)&&this.shouldMeasureDuringScroll(h)&&this.resizeItem(h,this.options.measureElement(f,d,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(g):g()})}));return{disconnect:()=>{var l;(l=i())==null||l.disconnect(),s=null},observe:l=>{var d;return(d=i())==null?void 0:d.observe(l,{box:"border-box"})},unobserve:l=>{var d;return(d=i())==null?void 0:d.unobserve(l)}}})(),this.range=null,this.setOptions=s=>{var i,l;const d={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Tf,rangeExtractor:Bl,onChange:()=>{},measureElement:Rf,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const _ in s){const I=s[_];I!==void 0&&(d[_]=I)}const g=this.options;let f=null,h=null,w=!1;if(g!==void 0&&g.enabled&&d.enabled&&d.anchorTo==="end"&&this.scrollElement!==null){const _=g.count,I=d.count,x=this.getMeasurements(),$=_>0?((i=x[0])==null?void 0:i.key)??g.getItemKey(0):null,R=_>0?((l=x[_-1])==null?void 0:l.key)??g.getItemKey(_-1):null;if(I!==_||_>0&&I>0&&(d.getItemKey(0)!==$||d.getItemKey(I-1)!==R)){w=!0;const M=_>0?this.getVirtualItemForOffset(this.getScrollOffset())??x[0]:null;M&&(f=[M.key,this.getScrollOffset()-M.start]);const U=d.followOnAppend===!0?"auto":d.followOnAppend||null;U&&I>_&&this.isAtEnd(g.scrollEndThreshold)&&(_===0||d.getItemKey(I-1)!==R)&&(h=U)}}this.options=d,w&&(this.pendingMin=0,this.itemSizeCacheVersion++);let y=!1,E=0;if(f&&this.scrollOffset!==null){const[_,I]=f,x=this.getMeasurements(),{count:$,getItemKey:R}=this.options;let N=0;for(;N<$&&R(N)!==_;)N++;if(N<$){const P=x[N];if(P){const M=Math.max(0,P.start+I);M!==this.scrollOffset&&(E=M-this.scrollOffset,this.scrollOffset=M,y=!0)}}}(y||h)&&(this.pendingScrollAnchor=[y?f[0]:null,y?f[1]:0,h,E])},this.notify=s=>{var i,l;(l=(i=this.options).onChange)==null||l.call(i,this,s)},this.maybeNotify=kn(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),s=>{this.notify(s)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(s=>s()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var s;const i=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==i){if(this.cleanup(),!i){this.maybeNotify();return}if(this.scrollElement=i,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((s=this.scrollElement)==null?void 0:s.window)??null,this.elementsCache.forEach(d=>{this.observer.observe(d)}),this.unsubs.push(this.options.observeElementRect(this,d=>{this.scrollRect=d,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(d,g)=>{if(g&&this._intendedScrollOffset===null&&d===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(d-this._intendedScrollOffset)<1.5&&(d=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const f=this.getScrollOffset();this.scrollDirection=g?f===d?this.scrollDirection:f<d?"forward":"backward":null,this.scrollOffset=d,this.isScrolling=g,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const d=this.scrollElement,g=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},f=()=>{this._iosTouching=!1,!(!yo()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};d.addEventListener("touchstart",g,br),d.addEventListener("touchend",f,br),this.unsubs.push(()=>{d.removeEventListener("touchstart",g),d.removeEventListener("touchend",f),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const l=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,l&&this.scrollElement&&this.options.enabled){const[d,g,f,h]=l;d!==null&&!f&&(yo()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?h!==0&&(this._iosDeferredAdjustment+=h):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),f&&this.scrollToEnd({behavior:f})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const s=this.getScrollOffset(),i=this.getMaxScrollOffset();if(s<0||s>i)return;if(this._iosDeferredAdjustment<0&&s>=i-1){this._iosDeferredAdjustment=0;return}const l=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(s,{adjustments:this.scrollAdjustments+=l,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=kn(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(s,i,l,d,g,f,h,w)=>(this.prevLanes!==void 0&&this.prevLanes!==f&&(this.lanesChangedFlag=!0),this.prevLanes=f,this.pendingMin=null,{count:s,paddingStart:i,scrollMargin:l,getItemKey:d,enabled:g,lanes:f,laneAssignmentMode:h,gap:w}),{key:!1}),this.isIndexInRange=s=>s>=0&&s<this.options.count,this.getMeasurements=kn(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:s,paddingStart:i,scrollMargin:l,getItemKey:d,enabled:g,lanes:f,laneAssignmentMode:h,gap:w},y)=>{const E=this.itemSizeCache;if(!g)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>s)for(const N of this.laneAssignments.keys())N>=s&&this.laneAssignments.delete(N);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(N=>{this.itemSizeCache.set(N.key,N.size)}));const _=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===s&&(this.lanesSettling=!1),f===1){const N=s*2;let P=this._flatMeasurements;if(!P||P.length<N){const q=new Float64Array(N);P&&_>0&&q.set(P.subarray(0,_*2)),P=q,this._flatMeasurements=P}let M;if(_===0)M=i+l;else{const q=_-1;M=P[q*2]+P[q*2+1]+w}for(let q=_;q<s;q++){const z=d(q),J=E.get(z),o=typeof J=="number"?J:this.options.estimateSize(q);P[q*2]=M,P[q*2+1]=o,M+=o+w}const U=xf(s,P,d);return this.measurementsCache=U,U}const I=this.measurementsCache.slice(0,_),x=new Array(f).fill(void 0),$=new Float64Array(f);let R=0;for(let N=0;N<_;N++){const P=I[N];P&&(x[P.lane]===void 0&&R++,x[P.lane]=N,$[P.lane]=P.end)}for(let N=_;N<s;N++){const P=d(N),M=this.laneAssignments.get(N);let U,q;const z=h==="estimate"||E.has(P);if(M!==void 0&&this.options.lanes>1){U=M;const ce=x[U],W=ce!==void 0?I[ce]:void 0;q=W?W.end+w:i+l}else if(R===f){let ce=0,W=$[0],Q=x[0];for(let le=1;le<f;le++){const H=$[le];(H<W||H===W&&x[le]<Q)&&(ce=le,W=H,Q=x[le])}U=ce,q=W+w,z&&this.laneAssignments.set(N,U)}else U=N%this.options.lanes,q=i+l,z&&this.laneAssignments.set(N,U);const J=E.get(P),o=typeof J=="number"?J:this.options.estimateSize(N),oe=q+o;I[N]={index:N,start:q,size:o,end:oe,key:P,lane:U},x[U]===void 0&&R++,x[U]=N,$[U]=oe}return this.measurementsCache=I,I},{key:!1,debug:()=>this.options.debug}),this.calculateRange=kn(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(s,i,l,d)=>s.length===0||i===0?(this.range=null,null):(this.range=Df(s,i,l,d,d===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=kn(()=>{let s=null,i=null;const l=this.calculateRange();return l&&(s=l.startIndex,i=l.endIndex),this.maybeNotify.updateDeps([this.isScrolling,s,i]),[this.options.rangeExtractor,this.options.overscan,this.options.count,s,i]},(s,i,l,d,g)=>d===null||g===null?[]:s({startIndex:d,endIndex:g,overscan:i,count:l}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=s=>{const i=this.options.indexAttribute,l=s.getAttribute(i);return l?parseInt(l,10):(console.warn(`Missing attribute name '${i}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=s=>{var i;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const l=this.scrollState.index??((i=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:i.index);if(l!==void 0&&this.range){const d=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),g=Math.max(0,l-d),f=Math.min(this.options.count-1,l+d);return s>=g&&s<=f}return!0},this.measureElement=s=>{if(!s){this.elementsCache.forEach((g,f)=>{g.isConnected||(this.observer.unobserve(g),this.elementsCache.delete(f))});return}const i=this.indexFromElement(s);if(!this.isIndexInRange(i))return;const l=this.options.getItemKey(i),d=this.elementsCache.get(l);d!==s&&(d&&this.observer.unobserve(d),this.observer.observe(s),this.elementsCache.set(l,s)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(i)&&this.resizeItem(i,this.options.measureElement(s,void 0,this))},this.resizeItem=(s,i)=>{var l,d;if(!this.isIndexInRange(s))return;let g,f,h;const w=this._flatMeasurements;if(this.options.lanes===1&&w!==null)h=this.options.getItemKey(s),f=w[s*2],g=w[s*2+1];else{const _=this.measurementsCache[s];if(!_)return;h=_.key,f=_.start,g=_.size}const y=this.itemSizeCache.get(h)??g,E=i-y;if(E!==0){const _=this.options.anchorTo==="end"&&((l=this.scrollState)==null?void 0:l.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,I=_?this.getTotalSize():0,x=this.getScrollOffset()+this.scrollAdjustments,R=!this.itemSizeCache.has(h)?f<x:f+y<=x&&this.scrollDirection!=="backward",N=((d=this.scrollState)==null?void 0:d.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[s]??{index:s,key:h,start:f,size:g,end:f+g,lane:0},E,this):R);(this.pendingMin===null||s<this.pendingMin)&&(this.pendingMin=s),this.itemSizeCache.set(h,i),this.itemSizeCacheVersion++;let P=!1;_?P=this.applyScrollAdjustment(this.getTotalSize()-I):N&&(P=this.applyScrollAdjustment(E)),this.notify(P)}},this.getVirtualItems=kn(()=>[this.getVirtualIndexes(),this.getMeasurements()],(s,i)=>{const l=[];for(let d=0,g=s.length;d<g;d++){const f=s[d],h=i[f];l.push(h)}return l},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=s=>{const i=this.getMeasurements();if(i.length===0)return;const l=this._flatMeasurements,d=this.options.lanes===1&&l!=null,g=zl(0,i.length-1,d?f=>l[f*2]:f=>tl(i[f]).start,s);return tl(i[g])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const s=this.scrollElement.document.documentElement;return this.options.horizontal?s.scrollWidth-this.scrollElement.innerWidth:s.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(s=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=s,this.getOffsetForAlignment=(s,i,l=0)=>{if(!this.scrollElement)return 0;const d=this.getSize(),g=this.getScrollOffset();i==="auto"&&(i=s>=g+d?"end":"start"),i==="center"?s+=(l-d)/2:i==="end"&&(s-=d);const f=this.getMaxScrollOffset();return Math.max(Math.min(f,s),0)},this.getOffsetForIndex=(s,i="auto")=>{s=Math.max(0,Math.min(s,this.options.count-1));const l=this.getSize(),d=this.getScrollOffset(),g=this.measurementsCache[s];if(!g)return;if(i==="auto")if(g.end>=d+l-this.options.scrollPaddingEnd)i="end";else if(g.start<=d+this.options.scrollPaddingStart)i="start";else return[d,i];if(i==="end"&&s===this.options.count-1)return[this.getMaxScrollOffset(),i];const f=i==="end"?g.end+this.options.scrollPaddingEnd:g.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(f,i,g.size),i]},this.scrollToOffset=(s,{align:i="start",behavior:l="auto"}={})=>{this._iosDeferredAdjustment=0;const d=this.getOffsetForAlignment(s,i),g=this.now();this.scrollState={index:null,align:i,behavior:l,startedAt:g,lastTargetOffset:d,stableFrames:0},this._scrollToOffset(d,{adjustments:void 0,behavior:l}),this.scheduleScrollReconcile()},this.scrollToIndex=(s,{align:i="auto",behavior:l="auto"}={})=>{this._iosDeferredAdjustment=0,s=Math.max(0,Math.min(s,this.options.count-1));const d=this.getOffsetForIndex(s,i);if(!d)return;const[g,f]=d,h=this.now();this.scrollState={index:s,align:f,behavior:l,startedAt:h,lastTargetOffset:g,stableFrames:0},this._scrollToOffset(g,{adjustments:void 0,behavior:l}),this.scheduleScrollReconcile()},this.scrollBy=(s,{behavior:i="auto"}={})=>{const l=this.getScrollOffset()+s,d=this.now();this.scrollState={index:null,align:"start",behavior:i,startedAt:d,lastTargetOffset:l,stableFrames:0},this._scrollToOffset(l,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:s="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:s});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:s})},this.getTotalSize=()=>{var s;const i=this.getMeasurements();let l;if(i.length===0)l=this.options.paddingStart;else if(this.options.lanes===1){const d=i.length-1,g=this._flatMeasurements;g!=null?l=g[d*2]+g[d*2+1]:l=((s=i[d])==null?void 0:s.end)??0}else{const d=Array(this.options.lanes).fill(null);let g=i.length-1;for(;g>=0&&d.some(f=>f===null);){const f=i[g];d[f.lane]===null&&(d[f.lane]=f.end),g--}l=Math.max(...d.filter(f=>f!==null))}return Math.max(l-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const s=[];if(this.itemSizeCache.size===0)return s;const i=this.getMeasurements();for(const l of i)l&&this.itemSizeCache.has(l.key)&&s.push({index:l.index,key:l.key,start:l.start,size:l.size,end:l.end,lane:l.lane});return s},this._scrollToOffset=(s,{adjustments:i,behavior:l})=>{this._intendedScrollOffset=s+(i??0),this.options.scrollToFn(s,{behavior:l,adjustments:i},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(r)}applyScrollAdjustment(r,s){return r===0?!1:yo()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?(this._iosDeferredAdjustment+=r,!1):(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:s}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const i=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,l=i?i[0]:this.scrollState.lastTargetOffset,d=1,g=l!==this.scrollState.lastTargetOffset;if(!g&&Sf(l,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=d){this.getScrollOffset()!==l&&this._scrollToOffset(l,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,g){const f=this.getSize()||600,h=Math.abs(l-this.getScrollOffset()),w=this.scrollState.behavior==="smooth"&&h>f;this.scrollState.lastTargetOffset=l,w||(this.scrollState.behavior="auto"),this._scrollToOffset(l,{adjustments:void 0,behavior:w?"smooth":"auto"})}this.scheduleScrollReconcile()}}const zl=(t,r,s,i)=>{for(;t<=r;){const l=(t+r)/2|0,d=s(l);if(d<i)t=l+1;else if(d>i)r=l-1;else return l}return t>0?t-1:0};function Of(t,r,s){let i=0;for(;i<=r;){const l=(i+r)/2|0,d=t[l*2];if(d<s)i=l+1;else if(d>s)r=l-1;else return l}return i>0?i-1:0}function Df(t,r,s,i,l){const d=t.length-1;if(t.length<=i)return{startIndex:0,endIndex:d};if(i===1&&l!==null){const w=Of(l,d,s);let y=w;const E=s+r;for(;y<d&&l[y*2]+l[y*2+1]<E;)y++;return{startIndex:w,endIndex:y}}let f=zl(0,d,w=>t[w].start,s),h=f;if(i===1)for(;h<d&&t[h].end<s+r;)h++;else if(i>1){const w=Array(i).fill(0);for(;h<d&&w.some(E=>E<s+r);){const E=t[h];w[E.lane]=E.end,h++}const y=Array(i).fill(s+r);for(;f>=0&&y.some(E=>E>=s);){const E=t[f];y[E.lane]=E.start,f--}f=Math.max(0,f-f%i),h=Math.min(d,h+(i-1-h%i))}return{startIndex:f,endIndex:h}}function Pf(t){const r=new $f($e(t)),s=kg(r),i=r._didMount();return De(()=>$e(t).getScrollElement(),l=>{l&&r._willUpdate()},{immediate:!0}),De(()=>$e(t),l=>{r.setOptions({...l,onChange:(d,g)=>{var f;Fa(s),(f=l.onChange)==null||f.call(l,d,g)}}),r._willUpdate(),Fa(s)},{immediate:!0}),bg(i),s}function Uf(t){return Pf(V(()=>({observeElementRect:If,observeElementOffset:Mf,scrollToFn:Lf,...$e(t)})))}function Bf(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Fl(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(r=>{const s=t[r],i=typeof s;(i==="object"||i==="function")&&!Object.isFrozen(s)&&Fl(s)}),t}class sl{constructor(r){r.data===void 0&&(r.data={}),this.data=r.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Hl(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function Ht(t,...r){const s=Object.create(null);for(const i in t)s[i]=t[i];return r.forEach(function(i){for(const l in i)s[l]=i[l]}),s}const zf="</span>",rl=t=>!!t.scope,Ff=(t,{prefix:r})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const s=t.split(".");return[`${r}${s.shift()}`,...s.map((i,l)=>`${i}${"_".repeat(l+1)}`)].join(" ")}return`${r}${t}`};class Hf{constructor(r,s){this.buffer="",this.classPrefix=s.classPrefix,r.walk(this)}addText(r){this.buffer+=Hl(r)}openNode(r){if(!rl(r))return;const s=Ff(r.scope,{prefix:this.classPrefix});this.span(s)}closeNode(r){rl(r)&&(this.buffer+=zf)}value(){return this.buffer}span(r){this.buffer+=`<span class="${r}">`}}const ol=(t={})=>{const r={children:[]};return Object.assign(r,t),r};class Jo{constructor(){this.rootNode=ol(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(r){this.top.children.push(r)}openNode(r){const s=ol({scope:r});this.add(s),this.stack.push(s)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(r){return this.constructor._walk(r,this.rootNode)}static _walk(r,s){return typeof s=="string"?r.addText(s):s.children&&(r.openNode(s),s.children.forEach(i=>this._walk(r,i)),r.closeNode(s)),r}static _collapse(r){typeof r!="string"&&r.children&&(r.children.every(s=>typeof s=="string")?r.children=[r.children.join("")]:r.children.forEach(s=>{Jo._collapse(s)}))}}class jf extends Jo{constructor(r){super(),this.options=r}addText(r){r!==""&&this.add(r)}startScope(r){this.openNode(r)}endScope(){this.closeNode()}__addSublanguage(r,s){const i=r.root;s&&(i.scope=`language:${s}`),this.add(i)}toHTML(){return new Hf(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function as(t){return t?typeof t=="string"?t:t.source:null}function jl(t){return on("(?=",t,")")}function Gf(t){return on("(?:",t,")*")}function qf(t){return on("(?:",t,")?")}function on(...t){return t.map(s=>as(s)).join("")}function Wf(t){const r=t[t.length-1];return typeof r=="object"&&r.constructor===Object?(t.splice(t.length-1,1),r):{}}function ei(...t){return"("+(Wf(t).capture?"":"?:")+t.map(i=>as(i)).join("|")+")"}function Gl(t){return new RegExp(t.toString()+"|").exec("").length-1}function Kf(t,r){const s=t&&t.exec(r);return s&&s.index===0}const Vf=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function ti(t,{joinWith:r}){let s=0;return t.map(i=>{s+=1;const l=s;let d=as(i),g="";for(;d.length>0;){const f=Vf.exec(d);if(!f){g+=d;break}g+=d.substring(0,f.index),d=d.substring(f.index+f[0].length),f[0][0]==="\\"&&f[1]?g+="\\"+String(Number(f[1])+l):(g+=f[0],f[0]==="("&&s++)}return g}).map(i=>`(${i})`).join(r)}const Zf=/\b\B/,ql="[a-zA-Z]\\w*",ni="[a-zA-Z_]\\w*",Wl="\\b\\d+(\\.\\d+)?",Kl="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Vl="\\b(0b[01]+)",Qf="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Yf=(t={})=>{const r=/^#![ ]*\//;return t.binary&&(t.begin=on(r,/.*\b/,t.binary,/\b.*/)),Ht({scope:"meta",begin:r,end:/$/,relevance:0,"on:begin":(s,i)=>{s.index!==0&&i.ignoreMatch()}},t)},ls={begin:"\\\\[\\s\\S]",relevance:0},Xf={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ls]},Jf={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ls]},ep={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Ir=function(t,r,s={}){const i=Ht({scope:"comment",begin:t,end:r,contains:[]},s);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const l=ei("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:on(/[ ]+/,"(",l,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},tp=Ir("//","$"),np=Ir("/\\*","\\*/"),sp=Ir("#","$"),rp={scope:"number",begin:Wl,relevance:0},op={scope:"number",begin:Kl,relevance:0},ip={scope:"number",begin:Vl,relevance:0},ap={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ls,{begin:/\[/,end:/\]/,relevance:0,contains:[ls]}]},lp={scope:"title",begin:ql,relevance:0},cp={scope:"title",begin:ni,relevance:0},up={begin:"\\.\\s*"+ni,relevance:0},dp=function(t){return Object.assign(t,{"on:begin":(r,s)=>{s.data._beginMatch=r[1]},"on:end":(r,s)=>{s.data._beginMatch!==r[1]&&s.ignoreMatch()}})};var rr=Object.freeze({__proto__:null,APOS_STRING_MODE:Xf,BACKSLASH_ESCAPE:ls,BINARY_NUMBER_MODE:ip,BINARY_NUMBER_RE:Vl,COMMENT:Ir,C_BLOCK_COMMENT_MODE:np,C_LINE_COMMENT_MODE:tp,C_NUMBER_MODE:op,C_NUMBER_RE:Kl,END_SAME_AS_BEGIN:dp,HASH_COMMENT_MODE:sp,IDENT_RE:ql,MATCH_NOTHING_RE:Zf,METHOD_GUARD:up,NUMBER_MODE:rp,NUMBER_RE:Wl,PHRASAL_WORDS_MODE:ep,QUOTE_STRING_MODE:Jf,REGEXP_MODE:ap,RE_STARTERS_RE:Qf,SHEBANG:Yf,TITLE_MODE:lp,UNDERSCORE_IDENT_RE:ni,UNDERSCORE_TITLE_MODE:cp});function gp(t,r){t.input[t.index-1]==="."&&r.ignoreMatch()}function fp(t,r){t.className!==void 0&&(t.scope=t.className,delete t.className)}function pp(t,r){r&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=gp,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function hp(t,r){Array.isArray(t.illegal)&&(t.illegal=ei(...t.illegal))}function mp(t,r){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function bp(t,r){t.relevance===void 0&&(t.relevance=1)}const kp=(t,r)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const s=Object.assign({},t);Object.keys(t).forEach(i=>{delete t[i]}),t.keywords=s.keywords,t.begin=on(s.beforeMatch,jl(s.begin)),t.starts={relevance:0,contains:[Object.assign(s,{endsParent:!0})]},t.relevance=0,delete s.beforeMatch},yp=["of","and","for","in","not","or","if","then","parent","list","value"],vp="keyword";function Zl(t,r,s=vp){const i=Object.create(null);return typeof t=="string"?l(s,t.split(" ")):Array.isArray(t)?l(s,t):Object.keys(t).forEach(function(d){Object.assign(i,Zl(t[d],r,d))}),i;function l(d,g){r&&(g=g.map(f=>f.toLowerCase())),g.forEach(function(f){const h=f.split("|");i[h[0]]=[d,wp(h[0],h[1])]})}}function wp(t,r){return r?Number(r):_p(t)?0:1}function _p(t){return yp.includes(t.toLowerCase())}const il={},nn=t=>{console.error(t)},al=(t,...r)=>{console.log(`WARN: ${t}`,...r)},yn=(t,r)=>{il[`${t}/${r}`]||(console.log(`Deprecated as of ${t}. ${r}`),il[`${t}/${r}`]=!0)},kr=new Error;function Ql(t,r,{key:s}){let i=0;const l=t[s],d={},g={};for(let f=1;f<=r.length;f++)g[f+i]=l[f],d[f+i]=!0,i+=Gl(r[f-1]);t[s]=g,t[s]._emit=d,t[s]._multi=!0}function xp(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw nn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),kr;if(typeof t.beginScope!="object"||t.beginScope===null)throw nn("beginScope must be object"),kr;Ql(t,t.begin,{key:"beginScope"}),t.begin=ti(t.begin,{joinWith:""})}}function Sp(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw nn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),kr;if(typeof t.endScope!="object"||t.endScope===null)throw nn("endScope must be object"),kr;Ql(t,t.end,{key:"endScope"}),t.end=ti(t.end,{joinWith:""})}}function Ep(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function Tp(t){Ep(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),xp(t),Sp(t)}function Ip(t){function r(g,f){return new RegExp(as(g),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(f?"g":""))}class s{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(f,h){h.position=this.position++,this.matchIndexes[this.matchAt]=h,this.regexes.push([h,f]),this.matchAt+=Gl(f)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const f=this.regexes.map(h=>h[1]);this.matcherRe=r(ti(f,{joinWith:"|"}),!0),this.lastIndex=0}exec(f){this.matcherRe.lastIndex=this.lastIndex;const h=this.matcherRe.exec(f);if(!h)return null;const w=h.findIndex((E,_)=>_>0&&E!==void 0),y=this.matchIndexes[w];return h.splice(0,w),Object.assign(h,y)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(f){if(this.multiRegexes[f])return this.multiRegexes[f];const h=new s;return this.rules.slice(f).forEach(([w,y])=>h.addRule(w,y)),h.compile(),this.multiRegexes[f]=h,h}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(f,h){this.rules.push([f,h]),h.type==="begin"&&this.count++}exec(f){const h=this.getMatcher(this.regexIndex);h.lastIndex=this.lastIndex;let w=h.exec(f);if(this.resumingScanAtSamePosition()&&!(w&&w.index===this.lastIndex)){const y=this.getMatcher(0);y.lastIndex=this.lastIndex+1,w=y.exec(f)}return w&&(this.regexIndex+=w.position+1,this.regexIndex===this.count&&this.considerAll()),w}}function l(g){const f=new i;return g.contains.forEach(h=>f.addRule(h.begin,{rule:h,type:"begin"})),g.terminatorEnd&&f.addRule(g.terminatorEnd,{type:"end"}),g.illegal&&f.addRule(g.illegal,{type:"illegal"}),f}function d(g,f){const h=g;if(g.isCompiled)return h;[fp,mp,Tp,kp].forEach(y=>y(g,f)),t.compilerExtensions.forEach(y=>y(g,f)),g.__beforeBegin=null,[pp,hp,bp].forEach(y=>y(g,f)),g.isCompiled=!0;let w=null;return typeof g.keywords=="object"&&g.keywords.$pattern&&(g.keywords=Object.assign({},g.keywords),w=g.keywords.$pattern,delete g.keywords.$pattern),w=w||/\w+/,g.keywords&&(g.keywords=Zl(g.keywords,t.case_insensitive)),h.keywordPatternRe=r(w,!0),f&&(g.begin||(g.begin=/\B|\b/),h.beginRe=r(h.begin),!g.end&&!g.endsWithParent&&(g.end=/\B|\b/),g.end&&(h.endRe=r(h.end)),h.terminatorEnd=as(h.end)||"",g.endsWithParent&&f.terminatorEnd&&(h.terminatorEnd+=(g.end?"|":"")+f.terminatorEnd)),g.illegal&&(h.illegalRe=r(g.illegal)),g.contains||(g.contains=[]),g.contains=[].concat(...g.contains.map(function(y){return Ap(y==="self"?g:y)})),g.contains.forEach(function(y){d(y,h)}),g.starts&&d(g.starts,f),h.matcher=l(h),h}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=Ht(t.classNameAliases||{}),d(t)}function Yl(t){return t?t.endsWithParent||Yl(t.starts):!1}function Ap(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(r){return Ht(t,{variants:null},r)})),t.cachedVariants?t.cachedVariants:Yl(t)?Ht(t,{starts:t.starts?Ht(t.starts):null}):Object.isFrozen(t)?Ht(t):t}var Cp="11.11.1";class Mp extends Error{constructor(r,s){super(r),this.name="HTMLInjectionError",this.html=s}}const vo=Hl,ll=Ht,cl=Symbol("nomatch"),Rp=7,Xl=function(t){const r=Object.create(null),s=Object.create(null),i=[];let l=!0;const d="Could not find the language '{}', did you forget to load/include a language module?",g={disableAutodetect:!0,name:"Plain text",contains:[]};let f={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:jf};function h(L){return f.noHighlightRe.test(L)}function w(L){let G=L.className+" ";G+=L.parentNode?L.parentNode.className:"";const K=f.languageDetectRe.exec(G);if(K){const ne=o(K[1]);return ne||(al(d.replace("{}",K[1])),al("Falling back to no-highlight mode for this block.",L)),ne?K[1]:"no-highlight"}return G.split(/\s+/).find(ne=>h(ne)||o(ne))}function y(L,G,K){let ne="",ue="";typeof G=="object"?(ne=L,K=G.ignoreIllegals,ue=G.language):(yn("10.7.0","highlight(lang, code, ...args) has been deprecated."),yn("10.7.0",`Please use highlight(code, options) instead.
65
+ https://github.com/highlightjs/highlight.js/issues/2277`),ue=L,ne=G),K===void 0&&(K=!0);const xe={code:ne,language:ue};H("before:highlight",xe);const Ae=xe.result?xe.result:E(xe.language,xe.code,K);return Ae.code=xe.code,H("after:highlight",Ae),Ae}function E(L,G,K,ne){const ue=Object.create(null);function xe(F,Z){return F.keywords[Z]}function Ae(){if(!ee.keywords){Le.addText(be);return}let F=0;ee.keywordPatternRe.lastIndex=0;let Z=ee.keywordPatternRe.exec(be),ie="";for(;Z;){ie+=be.substring(F,Z.index);const pe=Re.case_insensitive?Z[0].toLowerCase():Z[0],Pe=xe(ee,pe);if(Pe){const[Ze,kt]=Pe;if(Le.addText(ie),ie="",ue[pe]=(ue[pe]||0)+1,ue[pe]<=Rp&&(Nt+=kt),Ze.startsWith("_"))ie+=Z[0];else{const _t=Re.classNameAliases[Ze]||Ze;je(Z[0],_t)}}else ie+=Z[0];F=ee.keywordPatternRe.lastIndex,Z=ee.keywordPatternRe.exec(be)}ie+=be.substring(F),Le.addText(ie)}function Fe(){if(be==="")return;let F=null;if(typeof ee.subLanguage=="string"){if(!r[ee.subLanguage]){Le.addText(be);return}F=E(ee.subLanguage,be,!0,Rt[ee.subLanguage]),Rt[ee.subLanguage]=F._top}else F=I(be,ee.subLanguage.length?ee.subLanguage:null);ee.relevance>0&&(Nt+=F.relevance),Le.__addSublanguage(F._emitter,F.language)}function He(){ee.subLanguage!=null?Fe():Ae(),be=""}function je(F,Z){F!==""&&(Le.startScope(Z),Le.addText(F),Le.endScope())}function Je(F,Z){let ie=1;const pe=Z.length-1;for(;ie<=pe;){if(!F._emit[ie]){ie++;continue}const Pe=Re.classNameAliases[F[ie]]||F[ie],Ze=Z[ie];Pe?je(Ze,Pe):(be=Ze,Ae(),be=""),ie++}}function Se(F,Z){return F.scope&&typeof F.scope=="string"&&Le.openNode(Re.classNameAliases[F.scope]||F.scope),F.beginScope&&(F.beginScope._wrap?(je(be,Re.classNameAliases[F.beginScope._wrap]||F.beginScope._wrap),be=""):F.beginScope._multi&&(Je(F.beginScope,Z),be="")),ee=Object.create(F,{parent:{value:ee}}),ee}function de(F,Z,ie){let pe=Kf(F.endRe,ie);if(pe){if(F["on:end"]){const Pe=new sl(F);F["on:end"](Z,Pe),Pe.isMatchIgnored&&(pe=!1)}if(pe){for(;F.endsParent&&F.parent;)F=F.parent;return F}}if(F.endsWithParent)return de(F.parent,Z,ie)}function Oe(F){return ee.matcher.regexIndex===0?(be+=F[0],1):(bt=!0,0)}function Ue(F){const Z=F[0],ie=F.rule,pe=new sl(ie),Pe=[ie.__beforeBegin,ie["on:begin"]];for(const Ze of Pe)if(Ze&&(Ze(F,pe),pe.isMatchIgnored))return Oe(Z);return ie.skip?be+=Z:(ie.excludeBegin&&(be+=Z),He(),!ie.returnBegin&&!ie.excludeBegin&&(be=Z)),Se(ie,F),ie.returnBegin?0:Z.length}function st(F){const Z=F[0],ie=G.substring(F.index),pe=de(ee,F,ie);if(!pe)return cl;const Pe=ee;ee.endScope&&ee.endScope._wrap?(He(),je(Z,ee.endScope._wrap)):ee.endScope&&ee.endScope._multi?(He(),Je(ee.endScope,F)):Pe.skip?be+=Z:(Pe.returnEnd||Pe.excludeEnd||(be+=Z),He(),Pe.excludeEnd&&(be=Z));do ee.scope&&Le.closeNode(),!ee.skip&&!ee.subLanguage&&(Nt+=ee.relevance),ee=ee.parent;while(ee!==pe.parent);return pe.starts&&Se(pe.starts,F),Pe.returnEnd?0:Z.length}function ct(){const F=[];for(let Z=ee;Z!==Re;Z=Z.parent)Z.scope&&F.unshift(Z.scope);F.forEach(Z=>Le.openNode(Z))}let Me={};function En(F,Z){const ie=Z&&Z[0];if(be+=F,ie==null)return He(),0;if(Me.type==="begin"&&Z.type==="end"&&Me.index===Z.index&&ie===""){if(be+=G.slice(Z.index,Z.index+1),!l){const pe=new Error(`0 width match regex (${L})`);throw pe.languageName=L,pe.badRule=Me.rule,pe}return 1}if(Me=Z,Z.type==="begin")return Ue(Z);if(Z.type==="illegal"&&!K){const pe=new Error('Illegal lexeme "'+ie+'" for mode "'+(ee.scope||"<unnamed>")+'"');throw pe.mode=ee,pe}else if(Z.type==="end"){const pe=st(Z);if(pe!==cl)return pe}if(Z.type==="illegal"&&ie==="")return be+=`
66
+ `,1;if(Gt>1e5&&Gt>Z.index*3)throw new Error("potential infinite loop, way more iterations than matches");return be+=ie,ie.length}const Re=o(L);if(!Re)throw nn(d.replace("{}",L)),new Error('Unknown language: "'+L+'"');const qe=Ip(Re);let mt="",ee=ne||qe;const Rt={},Le=new f.__emitter(f);ct();let be="",Nt=0,et=0,Gt=0,bt=!1;try{if(Re.__emitTokens)Re.__emitTokens(G,Le);else{for(ee.matcher.considerAll();;){Gt++,bt?bt=!1:ee.matcher.considerAll(),ee.matcher.lastIndex=et;const F=ee.matcher.exec(G);if(!F)break;const Z=G.substring(et,F.index),ie=En(Z,F);et=F.index+ie}En(G.substring(et))}return Le.finalize(),mt=Le.toHTML(),{language:L,value:mt,relevance:Nt,illegal:!1,_emitter:Le,_top:ee}}catch(F){if(F.message&&F.message.includes("Illegal"))return{language:L,value:vo(G),illegal:!0,relevance:0,_illegalBy:{message:F.message,index:et,context:G.slice(et-100,et+100),mode:F.mode,resultSoFar:mt},_emitter:Le};if(l)return{language:L,value:vo(G),illegal:!1,relevance:0,errorRaised:F,_emitter:Le,_top:ee};throw F}}function _(L){const G={value:vo(L),illegal:!1,relevance:0,_top:g,_emitter:new f.__emitter(f)};return G._emitter.addText(L),G}function I(L,G){G=G||f.languages||Object.keys(r);const K=_(L),ne=G.filter(o).filter(ce).map(He=>E(He,L,!1));ne.unshift(K);const ue=ne.sort((He,je)=>{if(He.relevance!==je.relevance)return je.relevance-He.relevance;if(He.language&&je.language){if(o(He.language).supersetOf===je.language)return 1;if(o(je.language).supersetOf===He.language)return-1}return 0}),[xe,Ae]=ue,Fe=xe;return Fe.secondBest=Ae,Fe}function x(L,G,K){const ne=G&&s[G]||K;L.classList.add("hljs"),L.classList.add(`language-${ne}`)}function $(L){let G=null;const K=w(L);if(h(K))return;if(H("before:highlightElement",{el:L,language:K}),L.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",L);return}if(L.children.length>0&&(f.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(L)),f.throwUnescapedHTML))throw new Mp("One of your code blocks includes unescaped HTML.",L.innerHTML);G=L;const ne=G.textContent,ue=K?y(ne,{language:K,ignoreIllegals:!0}):I(ne);L.innerHTML=ue.value,L.dataset.highlighted="yes",x(L,K,ue.language),L.result={language:ue.language,re:ue.relevance,relevance:ue.relevance},ue.secondBest&&(L.secondBest={language:ue.secondBest.language,relevance:ue.secondBest.relevance}),H("after:highlightElement",{el:L,result:ue,text:ne})}function R(L){f=ll(f,L)}const N=()=>{U(),yn("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function P(){U(),yn("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let M=!1;function U(){function L(){U()}if(document.readyState==="loading"){M||window.addEventListener("DOMContentLoaded",L,!1),M=!0;return}document.querySelectorAll(f.cssSelector).forEach($)}function q(L,G){let K=null;try{K=G(t)}catch(ne){if(nn("Language definition for '{}' could not be registered.".replace("{}",L)),l)nn(ne);else throw ne;K=g}K.name||(K.name=L),r[L]=K,K.rawDefinition=G.bind(null,t),K.aliases&&oe(K.aliases,{languageName:L})}function z(L){delete r[L];for(const G of Object.keys(s))s[G]===L&&delete s[G]}function J(){return Object.keys(r)}function o(L){return L=(L||"").toLowerCase(),r[L]||r[s[L]]}function oe(L,{languageName:G}){typeof L=="string"&&(L=[L]),L.forEach(K=>{s[K.toLowerCase()]=G})}function ce(L){const G=o(L);return G&&!G.disableAutodetect}function W(L){L["before:highlightBlock"]&&!L["before:highlightElement"]&&(L["before:highlightElement"]=G=>{L["before:highlightBlock"](Object.assign({block:G.el},G))}),L["after:highlightBlock"]&&!L["after:highlightElement"]&&(L["after:highlightElement"]=G=>{L["after:highlightBlock"](Object.assign({block:G.el},G))})}function Q(L){W(L),i.push(L)}function le(L){const G=i.indexOf(L);G!==-1&&i.splice(G,1)}function H(L,G){const K=L;i.forEach(function(ne){ne[K]&&ne[K](G)})}function te(L){return yn("10.7.0","highlightBlock will be removed entirely in v12.0"),yn("10.7.0","Please use highlightElement now."),$(L)}Object.assign(t,{highlight:y,highlightAuto:I,highlightAll:U,highlightElement:$,highlightBlock:te,configure:R,initHighlighting:N,initHighlightingOnLoad:P,registerLanguage:q,unregisterLanguage:z,listLanguages:J,getLanguage:o,registerAliases:oe,autoDetection:ce,inherit:ll,addPlugin:Q,removePlugin:le}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString=Cp,t.regex={concat:on,lookahead:jl,either:ei,optional:qf,anyNumberOfTimes:Gf};for(const L in rr)typeof rr[L]=="object"&&Fl(rr[L]);return Object.assign(t,rr),t},_n=Xl({});_n.newInstance=()=>Xl({});var Np=_n;_n.HighlightJS=_n;_n.default=_n;const Ie=Bf(Np),ul="[A-Za-z$_][0-9A-Za-z$_]*",Lp=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],$p=["true","false","null","undefined","NaN","Infinity"],Jl=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ec=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],tc=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Op=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Dp=[].concat(tc,Jl,ec);function wo(t){const r=t.regex,s=(K,{after:ne})=>{const ue="</"+K[0].slice(1);return K.input.indexOf(ue,ne)!==-1},i=ul,l={begin:"<>",end:"</>"},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,g={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(K,ne)=>{const ue=K[0].length+K.index,xe=K.input[ue];if(xe==="<"||xe===","){ne.ignoreMatch();return}xe===">"&&(s(K,{after:ue})||ne.ignoreMatch());let Ae;const Fe=K.input.substring(ue);if(Ae=Fe.match(/^\s*=/)){ne.ignoreMatch();return}if((Ae=Fe.match(/^\s+extends\s+/))&&Ae.index===0){ne.ignoreMatch();return}}},f={$pattern:ul,keyword:Lp,literal:$p,built_in:Dp,"variable.language":Op},h="[0-9](_?[0-9])*",w=`\\.(${h})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={className:"number",variants:[{begin:`(\\b(${y})((${w})|\\.)?|(${w}))[eE][+-]?(${h})\\b`},{begin:`\\b(${y})\\b((${w})\\b|\\.)?|(${w})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},_={className:"subst",begin:"\\$\\{",end:"\\}",keywords:f,contains:[]},I={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,_],subLanguage:"xml"}},x={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,_],subLanguage:"css"}},$={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,_],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,_]},P={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},M=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,I,x,$,R,{match:/\$\d+/},E];_.contains=M.concat({begin:/\{/,end:/\}/,keywords:f,contains:["self"].concat(M)});const U=[].concat(P,_.contains),q=U.concat([{begin:/(\s*)\(/,end:/\)/,keywords:f,contains:["self"].concat(U)}]),z={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:q},J={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,r.concat(i,"(",r.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},o={relevance:0,match:r.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Jl,...ec]}},oe={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ce={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[z],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Q(K){return r.concat("(?!",K.join("|"),")")}const le={match:r.concat(/\b/,Q([...tc,"super","import"].map(K=>`${K}\\s*\\(`)),i,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},H={begin:r.concat(/\./,r.lookahead(r.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},te={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},z]},L="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",G={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(L)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[z]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:f,exports:{PARAMS_CONTAINS:q,CLASS_REFERENCE:o},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),oe,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,I,x,$,R,P,{match:/\$\d+/},E,o,{scope:"attr",match:i+r.lookahead(":"),relevance:0},G,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[P,t.REGEXP_MODE,{className:"function",begin:L,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:q}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:l.begin,end:l.end},{match:d},{begin:g.begin,"on:begin":g.isTrulyOpeningTag,end:g.end}],subLanguage:"xml",contains:[{begin:g.begin,end:g.end,skip:!0,contains:["self"]}]}]},ce,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[z,t.inherit(t.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},H,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[z]},le,W,J,te,{match:/\$[(.]/}]}}const yr="[A-Za-z$_][0-9A-Za-z$_]*",nc=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],sc=["true","false","null","undefined","NaN","Infinity"],rc=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],oc=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],ic=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ac=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],lc=[].concat(ic,rc,oc);function Pp(t){const r=t.regex,s=(K,{after:ne})=>{const ue="</"+K[0].slice(1);return K.input.indexOf(ue,ne)!==-1},i=yr,l={begin:"<>",end:"</>"},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,g={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(K,ne)=>{const ue=K[0].length+K.index,xe=K.input[ue];if(xe==="<"||xe===","){ne.ignoreMatch();return}xe===">"&&(s(K,{after:ue})||ne.ignoreMatch());let Ae;const Fe=K.input.substring(ue);if(Ae=Fe.match(/^\s*=/)){ne.ignoreMatch();return}if((Ae=Fe.match(/^\s+extends\s+/))&&Ae.index===0){ne.ignoreMatch();return}}},f={$pattern:yr,keyword:nc,literal:sc,built_in:lc,"variable.language":ac},h="[0-9](_?[0-9])*",w=`\\.(${h})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={className:"number",variants:[{begin:`(\\b(${y})((${w})|\\.)?|(${w}))[eE][+-]?(${h})\\b`},{begin:`\\b(${y})\\b((${w})\\b|\\.)?|(${w})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},_={className:"subst",begin:"\\$\\{",end:"\\}",keywords:f,contains:[]},I={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,_],subLanguage:"xml"}},x={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,_],subLanguage:"css"}},$={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,_],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,_]},P={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},M=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,I,x,$,R,{match:/\$\d+/},E];_.contains=M.concat({begin:/\{/,end:/\}/,keywords:f,contains:["self"].concat(M)});const U=[].concat(P,_.contains),q=U.concat([{begin:/(\s*)\(/,end:/\)/,keywords:f,contains:["self"].concat(U)}]),z={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:q},J={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,r.concat(i,"(",r.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},o={relevance:0,match:r.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...rc,...oc]}},oe={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ce={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[z],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Q(K){return r.concat("(?!",K.join("|"),")")}const le={match:r.concat(/\b/,Q([...ic,"super","import"].map(K=>`${K}\\s*\\(`)),i,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},H={begin:r.concat(/\./,r.lookahead(r.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},te={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},z]},L="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",G={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(L)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[z]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:f,exports:{PARAMS_CONTAINS:q,CLASS_REFERENCE:o},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),oe,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,I,x,$,R,P,{match:/\$\d+/},E,o,{scope:"attr",match:i+r.lookahead(":"),relevance:0},G,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[P,t.REGEXP_MODE,{className:"function",begin:L,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:q}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:l.begin,end:l.end},{match:d},{begin:g.begin,"on:begin":g.isTrulyOpeningTag,end:g.end}],subLanguage:"xml",contains:[{begin:g.begin,end:g.end,skip:!0,contains:["self"]}]}]},ce,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[z,t.inherit(t.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},H,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[z]},le,W,J,te,{match:/\$[(.]/}]}}function _o(t){const r=t.regex,s=Pp(t),i=yr,l=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],d={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},g={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:l},contains:[s.exports.CLASS_REFERENCE]},f={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},h=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],w={$pattern:yr,keyword:nc.concat(h),literal:sc,built_in:lc.concat(l),"variable.language":ac},y={className:"meta",begin:"@"+i},E=($,R,N)=>{const P=$.contains.findIndex(M=>M.label===R);if(P===-1)throw new Error("can not find mode to replace");$.contains.splice(P,1,N)};Object.assign(s.keywords,w),s.exports.PARAMS_CONTAINS.push(y);const _=s.contains.find($=>$.scope==="attr"),I=Object.assign({},_,{match:r.concat(i,r.lookahead(/\s*\?:/))});s.exports.PARAMS_CONTAINS.push([s.exports.CLASS_REFERENCE,_,I]),s.contains=s.contains.concat([y,d,g,I]),E(s,"shebang",t.SHEBANG()),E(s,"use_strict",f);const x=s.contains.find($=>$.label==="func.def");return x.relevance=0,Object.assign(s,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),s}function dl(t){const r=t.regex,s=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],f={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},h={className:"meta",begin:/^(>>>|\.\.\.) /},w={className:"subst",begin:/\{/,end:/\}/,keywords:f,illegal:/#/},y={begin:/\{\{/,relevance:0},E={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h,y,w]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h,y,w]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,y,w]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,y,w]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},_="[0-9](_?[0-9])*",I=`(\\b(${_}))?\\.(${_})|\\b(${_})\\.`,x=`\\b|${i.join("|")}`,$={className:"number",relevance:0,variants:[{begin:`(\\b(${_})|(${I}))[eE][+-]?(${_})[jJ]?(?=${x})`},{begin:`(${I})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${x})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${x})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${x})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${x})`},{begin:`\\b(${_})[jJ](?=${x})`}]},R={className:"comment",begin:r.lookahead(/# type:/),end:/$/,keywords:f,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},N={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:["self",h,$,E,t.HASH_COMMENT_MODE]}]};return w.contains=[E,$,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:f,illegal:/(<\/|\?)|=>/,contains:[h,$,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},E,R,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,s],scope:{1:"keyword",3:"title.function"},contains:[N]},{variants:[{match:[/\bclass/,/\s+/,s,/\s*/,/\(\s*/,s,/\s*\)/]},{match:[/\bclass/,/\s+/,s]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[$,N,E]}]}}function xo(t){const r=t.regex,s={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[s]}]};Object.assign(s,{className:"variable",variants:[{begin:r.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const l={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},d=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),g={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},f={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,s,l]};l.contains.push(f);const h={match:/\\"/},w={className:"string",begin:/'/,end:/'/},y={match:/\\'/},E={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,s]},_=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],I=t.SHEBANG({binary:`(${_.join("|")})`,relevance:10}),x={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},$=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],R=["true","false"],N={match:/(\/[a-z._-]+)+/},P=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],M=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],U=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],q=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:$,literal:R,built_in:[...P,...M,"set","shopt",...U,...q]},contains:[I,t.SHEBANG(),x,E,d,g,N,f,h,w,y,s]}}function Up(t){const r={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},s={match:/[{}[\],:]/,className:"punctuation",relevance:0},i=["true","false","null"],l={scope:"literal",beginKeywords:i.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:i},contains:[r,s,t.QUOTE_STRING_MODE,l,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}const Bp=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),zp=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Fp=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Hp=[...zp,...Fp],jp=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Gp=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),qp=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Wp=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Kp(t){const r=t.regex,s=Bp(t),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l="and or not only",d=/@-?\w[\w]*(-\w+)*/,g="[a-zA-Z-][a-zA-Z0-9_-]*",f=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[s.BLOCK_COMMENT,i,s.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+g,relevance:0},s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Gp.join("|")+")"},{begin:":(:)?("+qp.join("|")+")"}]},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Wp.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[s.BLOCK_COMMENT,s.HEXCOLOR,s.IMPORTANT,s.CSS_NUMBER_MODE,...f,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...f,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},s.FUNCTION_DISPATCH]},{begin:r.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:d},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:l,attribute:jp.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...f,s.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Hp.join("|")+")\\b"}]}}function So(t){const r=t.regex,s=r.concat(/[\p{L}_]/u,r.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i=/[\p{L}0-9._:-]+/u,l={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},d={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},g=t.inherit(d,{begin:/\(/,end:/\)/}),f=t.inherit(t.APOS_STRING_MODE,{className:"string"}),h=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),w={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:i,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[l]},{begin:/'/,end:/'/,contains:[l]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[d,h,f,g,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[d,g,h,f]}]}]},t.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},l,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[h]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[w],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[w],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:r.concat(/</,r.lookahead(r.concat(s,r.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:s,relevance:0,starts:w}]},{className:"tag",begin:r.concat(/<\//,r.lookahead(r.concat(s,/>/))),contains:[{className:"name",begin:s,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function gl(t){const r=t.regex,s={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},l={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},d={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},g={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},f=/[A-Za-z][A-Za-z0-9+.-]*/,h={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:r.concat(/\[.+?\]\(/,f,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},w={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},y={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},E=t.inherit(w,{contains:[]}),_=t.inherit(y,{contains:[]});w.contains.push(_),y.contains.push(E);let I=[s,h];return[w,y,E,_].forEach(N=>{N.contains=N.contains.concat(I)}),I=I.concat(w,y),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:I},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:I}]}]},s,d,w,y,{className:"quote",begin:"^>\\s+",contains:I,end:"$"},l,i,h,g,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function fl(t){const r="true false yes no null",s="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},l={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},d={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},g={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,l]},f=t.inherit(g,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),_={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},I={end:",",endsWithParent:!0,excludeEnd:!0,keywords:r,relevance:0},x={begin:/\{/,end:/\}/,contains:[I],illegal:"\\n",relevance:0},$={begin:"\\[",end:"\\]",contains:[I],illegal:"\\n",relevance:0},R=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+s},{className:"type",begin:"!<"+s+">"},{className:"type",begin:"!"+s},{className:"type",begin:"!!"+s},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:r,keywords:{literal:r}},_,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},x,$,d,g],N=[...R];return N.pop(),N.push(f),I.contains=N,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:R}}function Vp(t){const r=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:r.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:r.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}const Zp=["disabled","aria-label","aria-expanded"],Qp=["aria-label"],Yp=["disabled","aria-selected","onClick"],Xp={__name:"NeoSelect",props:{modelValue:{default:""},options:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:"请选择"}},emits:["update:modelValue","change"],setup(t,{emit:r}){const s=t,i=r,l=re(null),d=re(null),g=re(!1),f=`neo-select-${Math.random().toString(36).slice(2,10)}`,h=V(()=>s.options.map((M,U)=>M&&typeof M=="object"&&!Array.isArray(M)?{value:Object.prototype.hasOwnProperty.call(M,"value")?M.value:M.label,label:String(M.label??M.value??""),disabled:M.disabled===!0,key:String(M.key??M.value??U)}:{value:M,label:String(M??""),disabled:!1,key:`${String(M)}-${U}`})),w=V(()=>h.value.find(M=>Object.is(M.value,s.modelValue))),y=V(()=>{var M;return((M=w.value)==null?void 0:M.label)||"请选择"});function E(){g.value=!1}async function _(M=!1){var J,o;if(s.disabled||g.value)return;g.value=!0,await nt();const U=[...((J=d.value)==null?void 0:J.querySelectorAll("button:not(:disabled)"))||[]],z=((o=d.value)==null?void 0:o.querySelector('button[aria-selected="true"]'))||(M?U.at(-1):U[0]);z==null||z.focus()}function I(){g.value?E():_()}function x(M){M.disabled||(E(),Object.is(M.value,s.modelValue)||(i("update:modelValue",M.value),i("change",M.value)),nt(()=>{var U,q;return(q=(U=l.value)==null?void 0:U.querySelector(".neo-select-trigger"))==null?void 0:q.focus()}))}function $(M){(M.key==="ArrowDown"||M.key==="ArrowUp")&&(M.preventDefault(),_(M.key==="ArrowUp")),M.key==="Escape"&&g.value&&(M.preventDefault(),M.stopPropagation(),E())}function R(M,U){var o,oe;const q=[...((o=d.value)==null?void 0:o.querySelectorAll("button:not(:disabled)"))||[]];if(!q.length)return;const z=q.indexOf(document.activeElement),J=U==="start"?0:U==="end"?q.length-1:(z+U+q.length)%q.length;M.preventDefault(),(oe=q[J])==null||oe.focus()}function N(M){M.key==="ArrowDown"?R(M,1):M.key==="ArrowUp"?R(M,-1):M.key==="Home"?R(M,"start"):M.key==="End"?R(M,"end"):M.key==="Escape"?(M.preventDefault(),M.stopPropagation(),E(),nt(()=>{var U,q;return(q=(U=l.value)==null?void 0:U.querySelector(".neo-select-trigger"))==null?void 0:q.focus()})):M.key==="Tab"&&E()}function P(M){var U;g.value&&!((U=l.value)!=null&&U.contains(M.target))&&E()}return jo(()=>document.addEventListener("pointerdown",P)),jt(()=>document.removeEventListener("pointerdown",P)),(M,U)=>(m(),b("span",{ref_key:"root",ref:l,class:Y(["neo-select",{open:g.value,disabled:t.disabled}])},[a("button",{type:"button",class:"neo-select-trigger",disabled:t.disabled,"aria-label":t.ariaLabel,"aria-haspopup":"listbox","aria-expanded":g.value,"aria-controls":f,onClick:I,onKeydown:$},[a("span",null,S(y.value),1)],40,Zp),g.value?(m(),b("span",{key:0,id:f,ref_key:"menu",ref:d,class:"neo-select-menu",role:"listbox","aria-label":t.ariaLabel,onKeydown:N},[(m(!0),b(X,null,fe(h.value,q=>(m(),b("button",{key:q.key,type:"button",role:"option",disabled:q.disabled,class:Y({selected:Object.is(q.value,t.modelValue)}),"aria-selected":Object.is(q.value,t.modelValue),onClick:z=>x(q)},S(q.label),11,Yp))),128))],40,Qp)):C("",!0)],2))}},or=Sr(Xp,[["__scopeId","data-v-edb5aaac"]]),Jp=["aria-busy"],eh={class:"prompt-config-toolbar"},th={class:"prompt-config-scope"},nh={class:"prompt-config-actions"},sh=["disabled"],rh=["disabled"],oh=["disabled"],ih={class:"prompt-config-mode"},ah=["disabled"],lh={key:0,value:"legacy_full_override"},ch={class:"prompt-config-note"},uh={key:0,class:"prompt-config-note",role:"status"},dh={key:1,class:"runtime-context-empty",role:"status"},gh=["disabled"],fh={key:3,class:"prompt-config-preview"},ph={key:4,class:"prompt-config-preview"},hh={key:5,class:"prompt-config-error",role:"alert"},mh={__name:"PromptConfigEditor",props:{endpoint:{type:String,required:!0},session:{type:Boolean,default:!1},runtimePrompt:{type:Object,default:void 0}},emits:["saved"],setup(t,{emit:r}){const s=t,i=r,l=re(""),d=re(""),g=re(""),f=re(!1),h=re("append"),w=re("append"),y=re(!1),E=re(""),_=re(!1),I=V(()=>{var W;return(W=s.runtimePrompt)!=null&&W.sessionPrompt?s.runtimePrompt.sessionPrompt.deferred:_.value}),x=V(()=>{var W,Q;return((Q=(W=s.runtimePrompt)==null?void 0:W.systemPrompt)==null?void 0:Q.replace("__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__",""))||E.value}),$=re(!1),R=re(!1),N=re(!1),P=re("");let M=0,U;const q=V(()=>l.value!==d.value||s.session&&h.value!==w.value),z=V(()=>N.value&&q.value&&!!l.value.trim()&&!$.value&&!R.value);function J(W,Q){const le=String((W==null?void 0:W.errorCode)||"");return le.includes("CONFLICT")?"配置已更新,请重新加载":le.includes("INVALID")?"提示词内容无效":le.includes("TOO_LARGE")?"提示词内容过长":le.includes("BUSY")?"配置忙碌,请稍后重试":Q}function o(W){if(typeof(W==null?void 0:W.content)!="string"||typeof(W==null?void 0:W.revision)!="string")throw new Error("invalid payload");l.value=W.content,d.value=W.content,g.value=W.revision,f.value=W.override===!0,h.value=W.mode==="inherit"?"append":W.mode||"append",w.value=h.value,y.value=h.value==="legacy_full_override",E.value=W.effectiveContent||"",_.value=W.deferred===!0,N.value=!0}async function oe(){if(R.value)return;U==null||U.abort(),U=new AbortController;const W=++M,Q=s.endpoint;$.value=!0,P.value="";try{const le=await ye(Q,{cache:"no-store",signal:U.signal}),H=await le.json();if(W!==M||Q!==s.endpoint)return;if(!le.ok||(H==null?void 0:H.ok)===!1||H!=null&&H.error){P.value=J(H,"加载失败");return}o(H)}catch(le){W===M&&(le==null?void 0:le.name)!=="AbortError"&&(P.value="加载失败")}finally{W===M&&($.value=!1)}}async function ce(W=!1){if(R.value||$.value||!N.value||!W&&!z.value||!W&&y.value&&h.value!=="legacy_full_override"&&!window.confirm("转换后将重新合成全局和工具上下文。请确认编辑框只保留你需要的自定义指令,避免重复注入旧内容。"))return;const Q=M,le=s.endpoint;R.value=!0,P.value="";try{const H=await ye(le,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(W?{reset:!0,revision:g.value}:{content:l.value,revision:g.value,...s.session?{mode:h.value}:{}}),signal:U==null?void 0:U.signal}),te=await H.json();if(Q!==M||le!==s.endpoint)return;if(!H.ok||(te==null?void 0:te.ok)===!1||te!=null&&te.error){P.value=J(te,"保存失败");return}o(te),i("saved",te)}catch(H){Q===M&&(H==null?void 0:H.name)!=="AbortError"&&(P.value="保存失败")}finally{Q===M&&(R.value=!1)}}return De(()=>s.endpoint,()=>{M+=1,U==null||U.abort(),l.value="",d.value="",g.value="",N.value=!1,R.value=!1,f.value=!1,h.value=w.value="append",y.value=!1,E.value="",_.value=!1,oe()},{immediate:!0}),jt(()=>{M+=1,U==null||U.abort()}),(W,Q)=>{var le,H;return m(),b("form",{class:"prompt-config-editor","aria-busy":$.value||R.value,onSubmit:Q[5]||(Q[5]=me(te=>ce(),["prevent"]))},[a("div",eh,[a("span",th,S(t.session?"当前会话":"系统提示词"),1),a("div",nh,[a("button",{type:"button",class:"mini-button",disabled:$.value||R.value,onClick:oe},"重新加载",8,sh),t.session?(m(),b("button",{key:0,type:"button",class:"mini-button",disabled:!N.value||!f.value||$.value||R.value,onClick:Q[0]||(Q[0]=te=>ce(!0))},"恢复默认",8,rh)):C("",!0),a("button",{type:"submit",class:"primary",disabled:!z.value},S(R.value?"保存中":"保存"),9,oh)])]),t.session&&N.value?(m(),b(X,{key:0},[a("label",ih,[Q[8]||(Q[8]=Jn("会话指令模式 ",-1)),Be(a("select",{"onUpdate:modelValue":Q[1]||(Q[1]=te=>h.value=te),"aria-label":"会话指令模式",disabled:$.value||R.value},[Q[6]||(Q[6]=a("option",{value:"append"},"继承全局并追加",-1)),Q[7]||(Q[7]=a("option",{value:"replace_base"},"仅替换全局正文(保留工具和插件上下文)",-1)),y.value?(m(),b("option",lh,"旧版完整覆盖(不继承)")):C("",!0)],8,ah),[[yg,h.value]])]),a("p",ch,S(f.value?"已配置会话指令":"当前继承全局;下方仅编辑会话追加指令")+"。工具开关只更新运行时能力说明,不改写自定义文本。",1),y.value?(m(),b("p",uh,"旧版完整覆盖保留了原文,可能包含过期的工具说明。请手动保留自定义指令并切换模式,或恢复默认;不会自动删改旧内容。")):C("",!0)],64)):C("",!0),$.value&&!N.value?(m(),b("div",dh,"加载中")):Be((m(),b("textarea",{key:2,"onUpdate:modelValue":Q[2]||(Q[2]=te=>l.value=te),class:"prompt-config-textarea","aria-label":"系统提示词",disabled:!N.value||$.value||R.value,spellcheck:"false",autocomplete:"off",rows:"18",onKeydown:[Q[3]||(Q[3]=ft(me(te=>ce(),["ctrl","prevent"]),["enter"])),Q[4]||(Q[4]=ft(me(te=>ce(),["meta","prevent"]),["enter"]))]},null,40,gh)),[[at,l.value]]),t.session&&N.value?(m(),b("details",fh,[a("summary",null,"当前有效上下文(只读)"+S((H=(le=t.runtimePrompt)==null?void 0:le.sessionPrompt)!=null&&H.deferred?" · 有待生效修改":""),1),a("pre",null,S(x.value),1)])):C("",!0),t.session&&I.value?(m(),b("details",ph,[Q[9]||(Q[9]=a("summary",null,"已保存配置的合成预览(下一轮生效)",-1)),a("pre",null,S(E.value),1)])):C("",!0),P.value?(m(),b("div",hh,S(P.value),1)):C("",!0)],40,Jp)}}},pl=Sr(mh,[["__scopeId","data-v-41954d08"]]),vr=1,Uo=2,si=3,ri=4,oi=5,ii=6,ai=7,li=8,wr=9,_r=10,Bo=11,dr=12,ts=13,ns=14,ss=15,rs=16,vn=17,zo=18,ot=19,os=20,Ft=21,cc=22,is=23,xr=24,Sn=25,uc=26,Fo=27,gr=28,fr=29,At=30,wt=31,ir=101,hl=102,dc=103,ml=104,Eo=105,wn=1,ci=2,gc=4,fc=8,pc=16;function bh(t){switch(t){case wn:return"href";case ci:return"src";case gc:return"class";case fc:return"checked";case pc:return"start"}}const kh=t=>{switch(t){case 1:return si;case 2:return ri;case 3:return oi;case 4:return ii;case 5:return ai;default:return li}},yh=kh,bl=24;function vh(t){const r=new Uint32Array(bl);return r[0]=vr,{renderer:t,text:"",pending:"",tokens:r,len:0,token:vr,fence_end:0,blockquote_idx:0,hr_char:"",hr_chars:0,fence_start:0,spaces:new Uint8Array(bl),indent:"",indent_len:0,table_state:0}}function kl(t){t.pending.length>0&&ze(t,`
67
+ `)}function ke(t){t.text.length!==0&&(console.assert(t.len>0,"Never adding text to root"),t.renderer.add_text(t.renderer.data,t.text),t.text="")}function Ne(t){console.assert(t.len>0,"No nodes to end"),t.len-=1,t.token=t.tokens[t.len],t.renderer.end_token(t.renderer.data)}function ve(t,r){(t.tokens[t.len]===xr||t.tokens[t.len]===is)&&r!==Sn&&Ne(t),t.len+=1,t.tokens[t.len]=r,t.token=r,t.renderer.add_token(t.renderer.data,r)}function wh(t,r,s){for(;s<=t.len;){if(t.tokens[s]===r)return s;s+=1}return-1}function tn(t,r){for(t.fence_start=0;t.len>r;)Ne(t)}function ar(t,r){let s=0;for(let i=0;i<=t.len&&(r-=t.spaces[i],!(r<0));i+=1)switch(t.tokens[i]){case wr:case _r:case os:case Sn:s=i;break}for(;t.len>s;)Ne(t);return r}function To(t,r){let s=-1,i=-1;for(let l=t.blockquote_idx+1;l<=t.len;l+=1)if(t.tokens[l]===Sn){if(t.indent_len<t.spaces[l]){i=-1;break}i=l}else t.tokens[l]===r&&(s=l);return i===-1?s===-1?(tn(t,t.blockquote_idx),ve(t,r),!0):(tn(t,s),!1):(tn(t,i),ve(t,r),!0)}function Io(t,r){ve(t,Sn),t.spaces[t.len]=t.indent_len+r,Ct(t),t.token=dc}function Ct(t){t.indent="",t.indent_len=0,t.pending=""}function Ho(t){switch(t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return!0;default:return!1}}function _h(t){switch(t){case 32:case 58:case 59:case 41:case 44:case 33:case 46:case 63:case 93:case 10:return!0;default:return!1}}function xh(t){return Ho(t)||_h(t)}function ze(t,r){for(const s of r){if(t.token===ir){switch(s){case" ":t.indent_len+=1;continue;case" ":t.indent_len+=4;continue}let l=ar(t,t.indent_len);t.indent_len=0,t.token=t.tokens[t.len],l>0&&ze(t," ".repeat(l))}const i=t.pending+s;switch(t.token){case Ft:case vr:case os:case xr:case is:switch(console.assert(t.text.length===0,"Root should not have any text"),t.pending[0]){case void 0:t.pending=s;continue;case" ":console.assert(t.pending.length===1),t.pending=s,t.indent+=" ",t.indent_len+=1;continue;case" ":console.assert(t.pending.length===1),t.pending=s,t.indent+=" ",t.indent_len+=4;continue;case`
68
+ `:if(console.assert(t.pending.length===1),t.tokens[t.len]===Sn&&t.token===Ft){Ne(t),Ct(t),t.pending=s;continue}tn(t,t.blockquote_idx),Ct(t),t.blockquote_idx=0,t.fence_start=0,t.pending=s;continue;case"#":switch(s){case"#":if(t.pending.length<6){t.pending=i;continue}break;case" ":ar(t,t.indent_len),ve(t,yh(t.pending.length)),Ct(t);continue}break;case">":{const d=wh(t,os,t.blockquote_idx+1);d===-1?(tn(t,t.blockquote_idx),t.blockquote_idx+=1,t.fence_start=0,ve(t,os)):t.blockquote_idx=d,Ct(t),t.pending=s;continue}case"-":case"*":case"_":if(t.hr_chars===0&&(console.assert(t.pending.length===1,"Pending should be one character"),t.hr_chars=1,t.hr_char=t.pending),t.hr_chars>0){switch(s){case t.hr_char:t.hr_chars+=1,t.pending=i;continue;case" ":t.pending=i;continue;case`
69
+ `:if(t.hr_chars<3)break;ar(t,t.indent_len),t.renderer.add_token(t.renderer.data,cc),t.renderer.end_token(t.renderer.data),Ct(t),t.hr_chars=0;continue}t.hr_chars=0}if(t.pending[0]!=="_"&&t.pending[1]===" "){To(t,is),Io(t,2),ze(t,i.slice(2));continue}break;case"`":if(t.pending.length<3){if(s==="`"){t.pending=i,t.fence_start=i.length;continue}t.fence_start=0;break}switch(s){case"`":t.pending.length===t.fence_start?(t.pending=i,t.fence_start=i.length):(ve(t,Uo),Ct(t),t.fence_start=0,ze(t,i));continue;case`
70
+ `:{ar(t,t.indent_len),ve(t,_r),t.pending.length>t.fence_start&&t.renderer.set_attr(t.renderer.data,gc,t.pending.slice(t.fence_start)),Ct(t),t.token=ir;continue}default:t.pending=i;continue}case"+":if(s!==" ")break;To(t,is),Io(t,2);continue;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":if(t.pending[t.pending.length-1]==="."){if(s!==" ")break;To(t,xr)&&t.pending!=="1."&&t.renderer.set_attr(t.renderer.data,pc,t.pending.slice(0,-1)),Io(t,t.pending.length+1);continue}else{const d=s.charCodeAt(0);if(d===46||Ho(d)){t.pending=i;continue}}break;case"|":tn(t,t.blockquote_idx),ve(t,Fo),ve(t,gr),t.pending="",ze(t,s);continue}let l=i;if(t.token===Ft)t.token=t.tokens[t.len],t.renderer.add_token(t.renderer.data,Ft),t.renderer.end_token(t.renderer.data);else if(t.indent_len>=4){let d=0;for(;d<4;d+=1)if(t.indent[d]===" "){d=d+1;break}l=t.indent.slice(d)+i,ve(t,wr)}else ve(t,Uo);Ct(t),ze(t,l);continue;case Fo:if(t.table_state===1)switch(s){case"-":case" ":case"|":case":":t.pending=i;continue;case`
71
+ `:t.table_state=2,t.pending="";continue;default:Ne(t),t.table_state=0;break}else switch(t.pending){case"|":ve(t,gr),t.pending="",ze(t,s);continue;case`
72
+ `:Ne(t),t.pending="",t.table_state=0,ze(t,s);continue}break;case gr:switch(t.pending){case"":break;case"|":ve(t,fr),Ne(t),t.pending="",ze(t,s);continue;case`
73
+ `:Ne(t),t.table_state=Math.min(t.table_state+1,2),t.pending="",ze(t,s);continue;default:ve(t,fr),ze(t,s);continue}break;case fr:if(t.pending==="|"){ke(t),Ne(t),t.pending="",ze(t,s);continue}break;case wr:switch(i){case`
74
+ `:case`
75
+ `:case`
76
+ `:case`
77
+ `:case`
78
+ `:t.text+=`
79
+ `,t.pending="";continue;case`
80
+ `:case`
81
+ `:case`
82
+ `:case`
83
+ `:t.pending=i;continue;default:t.pending.length!==0?(ke(t),Ne(t),t.pending=s):t.text+=s;continue}case _r:switch(s){case"`":t.pending=i;continue;case`
84
+ `:if(i.length===t.fence_start+t.fence_end+1){ke(t),Ne(t),t.pending="",t.fence_start=0,t.fence_end=0,t.token=ir;continue}t.token=ir;break;case" ":if(t.pending[0]===`
85
+ `){t.pending=i,t.fence_end+=1;continue}break}t.text+=t.pending,t.pending=s,t.fence_end=1;continue;case Bo:switch(s){case"`":i.length===t.fence_start+ +(t.pending[0]===" ")?(ke(t),Ne(t),t.pending="",t.fence_start=0):t.pending=i;continue;case`
86
+ `:t.text+=t.pending,t.pending="",t.token=Ft,t.blockquote_idx=0,ke(t);continue;case" ":t.text+=t.pending,t.pending=s;continue;default:t.text+=i,t.pending="";continue}case dc:switch(t.pending.length){case 0:if(s!=="[")break;t.pending=i;continue;case 1:if(s!==" "&&s!=="x")break;t.pending=i;continue;case 2:if(s!=="]")break;t.pending=i;continue;case 3:if(s!==" ")break;t.renderer.add_token(t.renderer.data,uc),t.pending[1]==="x"&&t.renderer.set_attr(t.renderer.data,fc,""),t.renderer.end_token(t.renderer.data),t.pending=" ";continue}t.token=t.tokens[t.len],t.pending="",ze(t,i);continue;case ns:case ss:{let d="*",g=dr;if(t.token===ss&&(d="_",g=ts),d===t.pending){if(ke(t),d===s){Ne(t),t.pending="";continue}ve(t,g),t.pending=s;continue}break}case dr:case ts:{let d="*",g=ns;switch(t.token===ts&&(d="_",g=ss),t.pending){case d:d===s?t.tokens[t.len-1]===g?t.pending=i:(ke(t),ve(t,g),t.pending=""):(ke(t),Ne(t),t.pending=s);continue;case d+d:const f=t.token;ke(t),Ne(t),Ne(t),d!==s?(ve(t,f),t.pending=s):t.pending="";continue}break}case rs:if(i==="~~"){ke(t),Ne(t),t.pending="";continue}break;case Eo:s===`
87
+ `?(ke(t),ve(t,At),t.pending=""):(t.token=t.tokens[t.len],t.pending[0]==="\\"?t.text+="[":t.text+="$$",t.pending="",ze(t,s));continue;case At:if(i==="\\]"||i==="$$"){ke(t),Ne(t),t.pending="";continue}break;case wt:if(i==="\\)"||t.pending[0]==="$"){ke(t),Ne(t),s===")"?t.pending="":t.pending=s;continue}break;case hl:i==="http://"||i==="https://"?(ke(t),ve(t,zo),t.pending=i,t.text=i):"http:/"[t.pending.length]===s||"https:/"[t.pending.length]===s?t.pending=i:(t.token=t.tokens[t.len],ze(t,s));continue;case vn:case ot:if(t.pending==="]"){ke(t),s==="("?t.pending=i:(Ne(t),t.pending=s);continue}if(t.pending[0]==="]"&&t.pending[1]==="("){if(s===")"){const d=t.token===vn?wn:ci,g=t.pending.slice(2);t.renderer.set_attr(t.renderer.data,d,g),Ne(t),t.pending=""}else t.pending+=s;continue}break;case zo:s===" "||s===`
88
+ `||s==="\\"?(t.renderer.set_attr(t.renderer.data,wn,t.pending),ke(t),Ne(t),t.pending=s):(t.text+=s,t.pending=i);continue;case ml:if(i.startsWith("<br")){if(i.length===3||s===" "||s==="/"&&(i.length===4||t.pending[t.pending.length-1]===" ")){t.pending=i;continue}if(s===">"){ke(t),t.token=t.tokens[t.len],t.renderer.add_token(t.renderer.data,Ft),t.renderer.end_token(t.renderer.data),t.pending="";continue}}t.token=t.tokens[t.len],t.text+="<",t.pending=t.pending.slice(1),ze(t,s);continue}switch(t.pending[0]){case"\\":if(t.token===ot||t.token===At||t.token===wt)break;switch(s){case"(":ke(t),ve(t,wt),t.pending="";continue;case"[":t.token=Eo,t.pending=i;continue;case`
89
+ `:t.pending=s;continue;default:let l=s.charCodeAt(0);t.pending="",t.text+=Ho(l)||l>=65&&l<=90||l>=97&&l<=122?i:s;continue}case`
90
+ `:switch(t.token){case ot:case At:case wt:break;case si:case ri:case oi:case ii:case ai:case li:ke(t),tn(t,t.blockquote_idx),t.blockquote_idx=0,t.pending=s;continue;default:ke(t),t.pending=s,t.token=Ft,t.blockquote_idx=0;continue}break;case"<":if(t.token!==ot&&t.token!==At&&t.token!==wt){ke(t),t.pending=i,t.token=ml;continue}break;case"`":if(t.token===ot)break;s==="`"?(t.fence_start+=1,t.pending=i):(t.fence_start+=1,ke(t),ve(t,Bo),t.text=s===" "||s===`
91
+ `?"":s,t.pending="");continue;case"_":case"*":{if(t.token===ot||t.token===At||t.token===wt||t.token===ns)break;let l=dr,d=ns;const g=t.pending[0];if(g==="_"&&(l=ts,d=ss),t.pending.length===1){if(g===s){t.pending=i;continue}if(s!==" "&&s!==`
92
+ `){ke(t),ve(t,l),t.pending=s;continue}}else{if(g===s){ke(t),ve(t,d),ve(t,l),t.pending="";continue}if(s!==" "&&s!==`
93
+ `){ke(t),ve(t,d),t.pending=s;continue}}break}case"~":if(t.token!==ot&&t.token!==rs){if(t.pending==="~"){if(s==="~"){t.pending=i;continue}}else if(s!==" "&&s!==`
94
+ `){ke(t),ve(t,rs),t.pending=s;continue}}break;case"$":if(t.token!==ot&&t.token!==rs&&t.pending==="$")if(s==="$"){t.token=Eo,t.pending=i;continue}else{if(xh(s.charCodeAt(0)))break;ke(t),ve(t,wt),t.pending=s;continue}break;case"[":if(t.token!==ot&&t.token!==vn&&t.token!==At&&t.token!==wt&&s!=="]"){ke(t),ve(t,vn),t.pending=s;continue}break;case"!":if(t.token!==ot&&s==="["){ke(t),ve(t,ot),t.pending="";continue}break;case" ":if(t.pending.length===1&&s===" ")continue;break}if(t.token!==ot&&t.token!==vn&&t.token!==At&&t.token!==wt&&s==="h"&&(t.pending===" "||t.pending==="")){t.text+=t.pending,t.pending=s,t.token=hl;continue}t.text+=t.pending,t.pending=s}ke(t)}function Sh(t){return{add_token:Eh,end_token:Th,add_text:Ih,set_attr:hc,data:{nodes:[t,,,,,],index:0}}}function Eh(t,r){var l;let s=t.nodes[t.index],i;switch(r){case vr:return;case os:i=document.createElement("blockquote");break;case Uo:i=document.createElement("p");break;case Ft:i=document.createElement("br");break;case cc:i=document.createElement("hr");break;case si:i=document.createElement("h1");break;case ri:i=document.createElement("h2");break;case oi:i=document.createElement("h3");break;case ii:i=document.createElement("h4");break;case ai:i=document.createElement("h5");break;case li:i=document.createElement("h6");break;case dr:case ts:i=document.createElement("em");break;case ns:case ss:i=document.createElement("strong");break;case rs:i=document.createElement("s");break;case Bo:i=document.createElement("code");break;case zo:case vn:i=document.createElement("a");break;case ot:i=document.createElement("img");break;case is:i=document.createElement("ul");break;case xr:i=document.createElement("ol");break;case Sn:i=document.createElement("li");break;case uc:let d=i=document.createElement("input");d.type="checkbox",d.disabled=!0;break;case wr:case _r:s=s.appendChild(document.createElement("pre")),i=document.createElement("code");break;case Fo:i=document.createElement("table");break;case gr:switch(s.children.length){case 0:s=s.appendChild(document.createElement("thead"));break;case 1:s=s.appendChild(document.createElement("tbody"));break;default:s=s.children[1]}i=document.createElement("tr");break;case fr:i=document.createElement(((l=s.parentElement)==null?void 0:l.tagName)==="THEAD"?"th":"td");break;case At:i=document.createElement("equation-block");break;case wt:i=document.createElement("equation-inline");break}t.nodes[++t.index]=s.appendChild(i)}function Th(t){t.index-=1}function Ih(t,r){t.nodes[t.index].appendChild(document.createTextNode(r))}function hc(t,r,s){t.nodes[t.index].setAttribute(bh(r),s)}const Ah={__name:"StreamingMarkdown",props:{text:{type:String,default:""},exposedResources:{type:Array,default:()=>[]}},setup(t){const r=t,s=re(null);let i,l="",d="",g;function f(){g&&clearTimeout(g),g=void 0}function h(){f(),g=setTimeout(()=>{g=void 0,i!=null&&i.pending&&l&&x(`${l}
95
+ `,l)},80)}function w($){const R=String($||"").trim();return R?/^(?:https?:|mailto:|\/|#)/i.test(R)?!0:!/^[a-z][a-z\d+.-]*:/i.test(R):!1}function y($){const R=String($||"").trim();return r.exposedResources.find(N=>String((N==null?void 0:N.reference)||"").trim()===R)}function E($){const R=Number($);if(!Number.isFinite(R)||R<=0)return"";const N=["B","KB","MB","GB"];let P=R,M=0;for(;P>=1024&&M<N.length-1;)P/=1024,M+=1;return`${P>=10||M===0?Math.round(P):P.toFixed(1)}${N[M]}`}function _($){return{...Sh($),set_attr(N,P,M){const U=P===wn?y(M):void 0,q=(U==null?void 0:U.url)||M;if(!((P===wn||P===ci)&&!w(q))&&(hc(N,P,q),P===wn)){const z=N.nodes[N.index];if(U){if(z.classList.add("inline-resource-link",`inline-resource-${U.kind||"link"}`),U.kind==="download"||U.downloadName){z.setAttribute("download",U.downloadName||U.label||""),z.setAttribute("title",`下载 ${U.label||U.downloadName||"资源"}`),z.removeAttribute("target"),z.removeAttribute("rel"),z.dataset.resourceDownload="true",z.dataset.resourceExpiresAt=String(Number(U.expiresAt)||0);const J=E(U.sizeBytes);J&&(z.dataset.resourceSize=`(${J})`)}}else z.setAttribute("target","_blank"),z.setAttribute("rel","noreferrer noopener")}}}}function I($){if(!i)return;const R=String($||"");if(f(),!R.startsWith(l)||d!==l){x(R),h();return}const N=R.slice(l.length);l=R,d=R,N&&ze(i,N),h()}function x($=r.text,R=$){const N=s.value;N&&(i&&kl(i),N.replaceChildren(),i=vh(_(N)),d=String($||""),l=String(R||""),d&&ze(i,d))}return jo(()=>{x(),h()}),De(()=>r.text,I,{flush:"post"}),De(()=>JSON.stringify(r.exposedResources),()=>{x(),h()},{flush:"post"}),jt(()=>{f(),i&&kl(i),i=void 0}),($,R)=>(m(),b("div",{ref_key:"root",ref:s,class:"streaming-markdown-content"},null,512))}};function Mt(t){const r=Number(t),s=Number.isFinite(r)?Math.floor(Math.max(0,r)/1e3):0;return s===0?"":s<60?`${s}s`:`${Math.floor(s/60)}m ${s%60}s`}function yl(t,r=performance.now()){return(t||[]).filter(s=>(s==null?void 0:s.version)===1&&typeof s.id=="string").map(s=>({...s,receivedAt:r}))}function Ao(t,r=performance.now(),s=!0){if(!t)return;const i=l=>Number.isSafeInteger(l)&&l>=0;if(t.status==="finished")return i(t.durationMs)?t.durationMs:void 0;if(!(t.status!=="running"||!i(t.elapsedMs)))return t.elapsedMs+(s&&Number.isFinite(t.receivedAt)?Math.max(0,r-t.receivedAt):0)}const Ch=["aria-label"],Mh={class:"elapsed-clock-face",viewBox:"0 0 40 40","aria-hidden":"true"},Rh={class:"clock-ticks"},Nh=["y1","transform"],Lh={class:"elapsed-clock-value","aria-hidden":"true"},$h={__name:"ElapsedClock",props:{elapsedMs:{type:Number,default:void 0}},setup(t){const r=t,s=V(()=>Mt(r.elapsedMs)),i=V(()=>Math.floor(Math.max(0,r.elapsedMs||0)/1e3)*6);return(l,d)=>s.value?(m(),b("span",{key:0,class:"elapsed-clock","aria-label":`用时 ${s.value}`},[(m(),b("svg",Mh,[d[1]||(d[1]=a("circle",{class:"clock-rim",cx:"20",cy:"20",r:"18"},null,-1)),d[2]||(d[2]=a("circle",{class:"clock-well",cx:"20",cy:"20",r:"15.5"},null,-1)),a("g",Rh,[(m(),b(X,null,fe(60,g=>a("line",{key:g,x1:"20",y1:(g-1)%5===0?6:7,x2:"20",y2:"8",class:Y({major:(g-1)%5===0}),transform:`rotate(${(g-1)*6} 20 20)`},null,10,Nh)),64))]),a("g",{class:"clock-hand",style:lt({transform:`rotate(${i.value}deg)`})},[...d[0]||(d[0]=[a("line",{x1:"20",y1:"23",x2:"20",y2:"10"},null,-1)])],4),d[3]||(d[3]=a("circle",{class:"clock-pin",cx:"20",cy:"20",r:"1.6"},null,-1))])),a("span",Lh,S(s.value),1)],8,Ch)):C("",!0)}},vl=Sr($h,[["__scopeId","data-v-490710ad"]]),Oh=["aria-label"],Dh={key:0,class:"flip-status-front"},Ph={class:"flip-status-back"},Uh={__name:"FlipStatusText",props:{text:{type:String,default:""}},setup(t){const r=t,s=new Intl.Segmenter(void 0,{granularity:"grapheme"}),i=E=>Array.from(s.segment(E),_=>_.segment),l=re(r.text),d=re(""),g=re(!1),f=re(0);let h;const w=V(()=>{const E=i(l.value),_=g.value?i(d.value):[];return Array.from({length:Math.max(E.length,_.length)},(I,x)=>({before:_[x]||"",after:E[x]||""}))}),y=V(()=>Math.min(45,600/Math.max(1,w.value.length-1)));return De(()=>r.text,(E,_)=>{clearTimeout(h),d.value=_,l.value=E,g.value=!0,f.value+=1,h=setTimeout(()=>{g.value=!1,d.value=""},360+Math.max(0,w.value.length-1)*y.value)}),jt(()=>clearTimeout(h)),(E,_)=>(m(),b("span",{class:"flip-status-text","aria-label":t.text},[(m(),b("span",{key:f.value,class:"flip-status-letters","aria-hidden":"true"},[(m(!0),b(X,null,fe(w.value,(I,x)=>(m(),b("span",{key:x,class:"flip-status-slot"},[a("span",{class:Y(["flip-status-card",{"is-flipping":g.value}]),style:lt({"--flip-delay":`${x*y.value}ms`})},[g.value?(m(),b("span",Dh,S(I.before),1)):C("",!0),a("span",Ph,S(I.after),1)],6)]))),128))]))],8,Oh))}},Bh=Sr(Uh,[["__scopeId","data-v-4fbb8b4f"]]);function zh({getElement:t,requestFrame:r=f=>requestAnimationFrame(f),cancelFrame:s=f=>cancelAnimationFrame(f),now:i=()=>performance.now(),setTimer:l=(f,h)=>setTimeout(f,h),clearTimer:d=f=>clearTimeout(f),reducedMotion:g=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches}={}){let f=!0,h=0,w=0,y=0,E=0,_=!0,I=!1,x=!1,$=!1,R=0,N=!1,P=0,M=()=>{};const U=H=>Math.max(0,H.scrollHeight-H.clientHeight);function q(){h&&s(h),h=0,y=0}function z(){$=!1,f=!1,_=!1,N=!1,R=0,q(),d(w),w=0}function J(){I||!f||h||!t()||(h=r(o))}function o(H){h=0;const te=t();if(I||!f||!te||!te.clientHeight)return;const L=U(te),G=L-te.scrollTop,K=y?Math.min(32,Math.max(1,H-y)):16;y=H;const ne=Math.min(G*(1-Math.exp(-K/115)),K*1.8),ue=_||g()||G<=1?L:te.scrollTop+Math.max(1,ne);_=!1,te.scrollTop=ue,E=te.scrollTop,L-te.scrollTop>1?J():y=0}function oe(){if(d(w),w=0,I||x||!N)return;const H=P-i();if(H>0){w=l(oe,H);return}const te=t();te&&U(te)-te.scrollTop<=48&&(f=!0,N=!1,J())}function ce(H){z(),R=Math.sign(H),N=R>0,P=i()+180,oe()}function W(){const H=t();if(!H)return;const te=H.scrollTop-E;E=H.scrollTop,!f&&Math.abs(te)>.5&&(te<0?N=!1:(R>0||x&&R===0)&&(N=!0),P=i()+180,oe())}function Q(){var H;z(),f=!0,_=!0,R=0,x=!1,E=((H=t())==null?void 0:H.scrollTop)||0,J()}function le(H){if(M(),q(),E=(H==null?void 0:H.scrollTop)||0,!H)return;let te,L,G=!1;const K=de=>{!de.ctrlKey&&de.deltaY&&ce(de.deltaY)},ne=de=>{var Ue,st;const Oe=!G&&f;G=!0,x=!0,te=(Ue=de.touches[0])==null?void 0:Ue.clientX,L=(st=de.touches[0])==null?void 0:st.clientY,ce(0),$=Oe&&de.touches.length===1},ue=de=>{var st,ct;const Oe=(st=de.touches[0])==null?void 0:st.clientX,Ue=(ct=de.touches[0])==null?void 0:ct.clientY;Ue!==void 0&&L!==void 0&&Ue!==L&&ce(L-Ue),(de.touches.length!==1||Oe!==te)&&($=!1),te=Oe,L=Ue},xe=()=>{x=!1,P=i()+180,oe()},Ae=de=>{var Ue;if(de.type==="touchcancel"&&($=!1),(Ue=de.touches)!=null&&Ue.length)return;const Oe=G&&$;G=!1,$=!1,xe(),Oe&&!I&&(f=!0,N=!1,J())},Fe=de=>{G||de.pointerType==="touch"||xe()},Je=[["scroll",W],["wheel",K],["touchstart",ne],["touchmove",ue],["touchend",Ae],["touchcancel",Ae],["pointerdown",de=>{const Oe=H.getBoundingClientRect();(de.button===1||de.target===H&&de.clientX>=Oe.left+H.clientLeft+H.clientWidth)&&(x=!0,ce(0))}],["keydown",de=>{de.defaultPrevented||de.ctrlKey||de.metaKey||de.altKey||de.target.closest('input, textarea, select, button, [contenteditable="true"]')||(["ArrowUp","PageUp","Home"].includes(de.key)||de.key===" "&&de.shiftKey?ce(-1):["ArrowDown","PageDown","End"," "].includes(de.key)&&ce(1))}]];for(const[de,Oe]of Je)H.addEventListener(de,Oe,{passive:!0});const Se=H.ownerDocument;Se.addEventListener("pointerup",Fe,{passive:!0}),Se.addEventListener("pointercancel",Fe,{passive:!0}),M=()=>{G=!1,$=!1,x=!1;for(const[de,Oe]of Je)H.removeEventListener(de,Oe);Se.removeEventListener("pointerup",Fe),Se.removeEventListener("pointercancel",Fe),M=()=>{}},J()}return{schedule:J,pause:z,reset:Q,attach:le,get following(){return f},get interacting(){return x||i()<P},dispose(){I=!0,z(),M()}}}const Fh=["onDblclick"],Hh=["aria-label","onClick"],jh=["title","onClick"],Gh=["aria-label","onClick"],qh=Object.assign({name:"CwdTreeNode"},{__name:"CwdTreeNode",props:{nodes:{type:Array,default:()=>[]},children:{type:Object,default:()=>({})},expanded:{type:Object,default:()=>({})},selectedPath:{type:String,default:""},level:{type:Number,default:0},allowDelete:{type:Boolean,default:!0}},emits:["toggle","select","delete"],setup(t,{emit:r}){const s=r;return(i,l)=>{const d=vg("CwdTreeNode",!0);return m(!0),b(X,null,fe(t.nodes,g=>(m(),b("div",{key:g.path,class:"cwd-tree-branch"},[a("div",{class:Y(["cwd-tree-row",{selected:t.selectedPath===g.path}]),style:lt({"--cwd-tree-level":t.level}),onDblclick:f=>s("toggle",g)},[a("button",{type:"button",class:"cwd-tree-toggle","aria-label":t.expanded[g.path]?"收起":"展开",onClick:me(f=>s("toggle",g),["stop"])},S(t.expanded[g.path]?"▾":"▸"),9,Hh),a("button",{type:"button",class:"cwd-tree-name",title:g.path,onClick:f=>s("select",g)},[l[3]||(l[3]=a("span",{"aria-hidden":"true"},"◇",-1)),a("strong",null,S(g.name),1)],8,jh),t.allowDelete?(m(),b("button",{key:0,type:"button",class:"cwd-tree-delete","aria-label":`删除 ${g.name}`,onClick:me(f=>s("delete",g),["stop"])},"×",8,Gh)):C("",!0)],46,Fh),t.expanded[g.path]&&t.children[g.path]?(m(),Ge(d,{key:0,nodes:t.children[g.path],children:t.children,expanded:t.expanded,"selected-path":t.selectedPath,level:t.level+1,onToggle:l[0]||(l[0]=f=>s("toggle",f)),onSelect:l[1]||(l[1]=f=>s("select",f)),onDelete:l[2]||(l[2]=f=>s("delete",f))},null,8,["nodes","children","expanded","selected-path","level"])):C("",!0)]))),128)}}});function Wh(t,r=Date.now()){const s=typeof(t==null?void 0:t.startedAt)=="string"?Date.parse(t.startedAt):NaN;if(!Number.isSafeInteger(s)||s<0)return;if(t.status==="running"){const l=r-s;return Number.isSafeInteger(l)&&l>=0?l:void 0}if(!["completed","failed","killed"].includes(t.status))return;const i=typeof t.completedAt=="string"?Date.parse(t.completedAt):NaN;return Number.isSafeInteger(i)&&i>=s&&Number.isSafeInteger(t.durationMs)&&t.durationMs>=0&&t.durationMs===i-s?t.durationMs:void 0}function Kh(t){return t!=null&&t.live?{key:"running",label:"执行中"}:(t==null?void 0:t.titleStatus)==="failure"||(t==null?void 0:t.titleStatus)==="failed"||(t==null?void 0:t.kind)==="error"||t!=null&&t.toolError?{key:"failed",label:"失败"}:(t==null?void 0:t.titleStatus)==="success"?{key:"completed",label:"完成"}:{key:"unknown",label:"未提供"}}function Vh(t,r){const s=String(t||"").trim();if(!s)return"模型未配置";const i=String(r||"").trim();return i?`${s}(${i})`:s}function Zh(t,r){const s=t.map(g=>Math.max(1,Number(g.size)||0)),i=s.reduce((g,f)=>g+f,0);let l=0,d=0;return r(0),{update(g,f){const h=Math.floor(100*(l+s[g]*Math.max(0,Math.min(1,f)))/i);d=Math.max(d,Math.min(99,h)),r(d)},complete(g){this.update(g,1),l+=s[g]},succeed(){r(100)},fail(){r(0)}}}async function Qh(t,r,s){var f,h;const i=new URL(t,((f=globalThis.location)==null?void 0:f.href)||"http://localhost");i.pathname+="/chunks";const l=async(w,y,E)=>{const _=await ye(w,{method:y,headers:E?{"Content-Type":"application/json"}:{},body:E?JSON.stringify(E):void 0}),I=await _.json();if(!_.ok||(I==null?void 0:I.ok)===!1||I!=null&&I.error)throw new Error((I==null?void 0:I.error)||`上传失败 (${_.status})`);return I},d=await l(i,"POST",{name:r.name,size:r.size,mimeType:r.type||"application/octet-stream"});if(!d.uploadId||!Number.isSafeInteger(d.chunkBytes)||d.chunkBytes<=0)throw new Error("上传初始化响应无效");i.pathname+="/"+encodeURIComponent(d.uploadId);let g=0;try{for(;g<r.size;){const E=Math.min(r.size,g+d.chunkBytes);let _=!1;for(let I=0;I<3;I++)try{if((await Yh(i,r.slice(g,E),g,$=>s==null?void 0:s((g+$*(E-g))/r.size))).offset!==E)throw new Error("分片确认偏移无效");_=!0;break}catch(x){if(I===2)throw x;await new Promise(R=>setTimeout(R,400*(I+1)));const $=await l(i,"GET");if($.offset===E){_=!0;break}if($.offset!==g)throw new Error("上传进度不一致,请重新上传")}if(!_)throw new Error("分片上传失败");g=E,s==null||s(r.size?g/r.size:1)}const w=new URL(i);w.pathname+="/complete";const y=await l(w,"POST");if(!((h=y.file)!=null&&h.absolutePath))throw new Error("上传完成响应无效");return y}catch(w){throw await l(i,"DELETE").catch(()=>{}),w}}function Yh(t,r,s,i){return new Promise((l,d)=>{const g=new XMLHttpRequest;g.upload.onprogress=f=>{f.lengthComputable&&f.total&&i(f.loaded/f.total)},g.onload=()=>{try{const f=JSON.parse(g.responseText);if(g.status<200||g.status>=300||(f==null?void 0:f.ok)===!1||f!=null&&f.error)throw new Error((f==null?void 0:f.error)||`上传失败 (${g.status})`);l(f)}catch(f){d(f)}},g.onerror=()=>d(new Error("上传失败:网络连接异常")),g.onabort=()=>d(new Error("上传已取消")),g.ontimeout=()=>d(new Error("分片上传超时")),g.open("PATCH",t),g.setRequestHeader("Content-Type","application/octet-stream"),g.setRequestHeader("X-Upload-Offset",String(s)),g.send(r)})}function Xh({maxEntries:t=64,timeoutMs:r=15e3,createImage:s,fetchOriginal:i=s?null:(l,d)=>ye(l,{cache:"no-store",signal:d})}={}){if(s||(s=()=>new Image),!Number.isInteger(t)||t<1||t>512)throw new RangeError("maxEntries must be 1..512");if(!Number.isFinite(r)||r<1)throw new RangeError("timeoutMs must be positive");const l=new Map;let d="";const g=(_,I)=>JSON.stringify([_,I]);function f(_){const I=l.get(_);l.delete(_),I==null||I.cancel()}function h(){for(const _ of l.keys())f(_)}function w(_){_!==d&&(h(),d=_)}function y(_){f(g(d,_))}function E({sessionId:_,originalUrl:I,available:x=!0}){const $={sessionId:_,originalUrl:I},R=Q=>Object.freeze({...$,state:Q});if(!_||_!==d)return Promise.resolve(R("stale"));const N=g(_,I);if(x===!1)return f(N),Promise.resolve(R("unavailable"));if(typeof I!="string"||!I.trim())return Promise.resolve(R("unknown"));const P=l.get(N);if(P)return l.delete(N),l.set(N,P),P.promise;for(;l.size>=t;)f(l.keys().next().value);let M,U,q,z=!1,J;const o=new AbortController,oe=new Promise(Q=>{J=Q}),ce=Q=>{z||(z=!0,clearTimeout(U),o.abort(),q&&URL.revokeObjectURL(q),J(Object.freeze(Q)))},W={promise:oe,cancel:()=>{ce(R("stale")),M&&(M.src="")}};return l.set(N,W),U=setTimeout(()=>{ce(R("unknown")),M&&(M.src="")},r),(async()=>{try{let Q=I;if(i&&!/^(data:|blob:)/i.test(I)){const te=await i(I,o.signal);if(!te.ok)throw new Error("Original unavailable");const L=await te.blob();if(z)return;Q=q=URL.createObjectURL(L)}if(z)return;M=s(),M.src=Q,await M.decode();const le=M.naturalWidth,H=M.naturalHeight;Number.isInteger(le)&&le>0&&Number.isInteger(H)&&H>0?ce({...$,state:"actual",width:le,height:H,source:"original-decode"}):ce(R("unknown"))}catch{ce(R("unknown"))}})(),oe}return{setSession:w,load:E,invalidate:y,clear:h,get size(){return l.size}}}function Co(t,r){const s=typeof t=="string"&&/^(\d+)x(\d+)$/.exec(t),i=(r==null?void 0:r.state)==="actual"&&Number.isInteger(r.width)&&r.width>0&&Number.isInteger(r.height)&&r.height>0;return{requested:t==="auto"?"auto(自动策略)":typeof t=="string"&&t?t:"未提供",actual:i?`${r.width} × ${r.height}`:(r==null?void 0:r.state)==="unavailable"?"不可获取":"未知",mismatch:!!(i&&s&&(+s[1]!==r.width||+s[2]!==r.height))}}function Mo(t,r=""){var l;const s=(t==null?void 0:t.originalSrc)||((l=t==null?void 0:t.original)==null?void 0:l.src)||(t==null?void 0:t.originalUrl)||r;if(s)return s;const i=t==null?void 0:t.src;if(typeof i!="string")return"";if(/^data:image\//i.test(i))return i;try{const d=new URL(i,"http://localhost");if(/\/api\/images\/(?:by-id\/[^/]+|[^/]+\/\d+)$/.test(d.pathname)&&!d.searchParams.has("thumbnail"))return i}catch{}return""}function Jh(t,r){var l;const s=(l=t==null?void 0:t.imageResult)==null?void 0:l.images;if(!Array.isArray(s)||!(r!=null&&r.label))return;const i=s.filter(d=>(d==null?void 0:d.label)===r.label);return i.length===1?i[0]:void 0}function wl(t){return t===!0?"有":t===!1?"无":"未知"}const em={class:"shell"},tm={class:"sidebar"},nm={class:"brand-row logo-only"},sm=["aria-label","aria-pressed","title"],rm={class:"nav"},om=["title"],im={class:"session-entry-main"},am={key:0,"aria-hidden":"true"},lm={key:0,class:"sidebar-card prompt-stack"},cm={class:"prompt-stack-head"},um={class:"prompt-list"},dm={key:0,class:"prompt-list-empty"},gm={key:1,class:"prompt-list-empty"},fm=["onDragstart","onDblclick"],pm={class:"prompt-card-body"},hm={class:"prompt-card-actions"},mm=["onClick"],bm=["onClick"],km={key:1,class:"sidebar-footer"},ym=["title"],vm={class:"workspace"},wm={class:"topbar"},_m={class:"top-actions"},xm=["onClick"],Sm=["onKeydown"],Em=["title"],Tm=["aria-label","aria-pressed","title"],Im={key:0,class:"content-grid chat-grid"},Am={class:"chat-panel"},Cm={key:0,class:"runtime-context-bar"},Mm={key:0,class:"runtime-context-bar-actions"},Rm={key:2,class:"runtime-context-syncing"},Nm={key:1,class:"runtime-context-bar project-context-bar"},Lm={class:"runtime-context-bar-actions"},$m=["data-index"],Om={class:"tool-group-shell"},Dm=["aria-expanded","onClick"],Pm={class:"tool-group-label"},Um={class:"tool-group-label-name"},Bm={key:0,class:"tool-group-label-count"},zm={key:1,class:"tool-group-label-separator"},Fm={key:1,class:"tool-group-lines"},Hm=["open"],jm={class:"reasoning-reveal"},Gm={class:"reasoning-paper"},qm=["innerHTML"],Wm=["onClick","onKeydown"],Km={class:"compaction-context-actions"},Vm={key:0},Zm={class:"tool-result-title-row"},Qm={class:"tool-result-name"},Ym={key:0,class:"elapsed-pill"},Xm={key:1,class:"tool-result-failure-mark","aria-label":"执行失败"},Jm={class:"tool-result-detail-row"},eb={key:0,class:"tool-result-primary"},tb={key:1},nb={key:2,class:"tool-group-shell"},sb=["aria-expanded","onClick"],rb={class:"tool-group-label"},ob={class:"tool-group-label-name"},ib={key:0,class:"tool-group-label-count"},ab={key:1,class:"tool-group-label-separator"},lb={key:0,class:"tool-group-purposes"},cb={key:3,class:"tool-result-primary"},ub={key:0},db={key:4,class:"tool-result-previews"},gb={class:"tool-result-preview kind-list"},fb={tabindex:"0"},pb={key:5,class:"tool-result-previews"},hb={class:"tool-result-preview kind-code"},mb={tabindex:"0"},bb={key:6,class:"tool-result-previews"},kb={tabindex:"0"},yb={key:3},vb={key:0,class:"message-head"},wb={key:0,class:"tool-result-failure-mark","aria-label":"执行失败"},_b=["innerHTML"],xb={key:0,class:"message-body compaction-message-body"},Sb=["onClick","onKeydown"],Eb={class:"compaction-context-actions"},Tb={key:0},Ib={key:1,class:"message-body reasoning-body"},Ab=["open"],Cb={key:0,class:"reasoning-elapsed"},Mb={class:"reasoning-reveal"},Rb={class:"reasoning-paper"},Nb=["innerHTML"],Lb={key:2,class:"message-body"},$b={key:0,class:"message-head"},Ob={key:0,class:"tool-result-failure-mark","aria-label":"执行失败"},Db={key:1},Pb={key:2,class:"elapsed-pill"},Ub={key:1,class:"image2-result-shell"},Bb=["innerHTML"],zb={key:0,class:"message-image-attachments image2-output-images"},Fb=["data-preview-src","aria-label"],Hb=["src","alt"],jb={key:1,class:"image-unavailable-placeholder",role:"status"},Gb={class:"image-card-actions"},qb=["href","download"],Wb=["onClick"],Kb=["onClick"],Vb={class:"tool-result-title-row"},Zb={class:"tool-result-name"},Qb={key:0,class:"elapsed-pill"},Yb={key:1,class:"tool-result-failure-mark","aria-label":"执行失败"},Xb={class:"tool-result-detail-row"},Jb={key:0,class:"tool-result-primary"},ek={key:1},tk={key:2,class:"tool-group-shell"},nk=["aria-expanded","onClick"],sk={class:"tool-group-label"},rk={class:"tool-group-label-name"},ok={key:0,class:"tool-group-label-count"},ik={key:1,class:"tool-group-label-separator"},ak={key:0,class:"tool-group-purposes"},lk={key:3,class:"tool-result-primary"},ck={key:0},uk={key:4,class:"tool-result-previews"},dk={class:"tool-result-preview kind-list"},gk={tabindex:"0"},fk={key:5,class:"tool-result-previews"},pk={class:"tool-result-preview kind-code"},hk={tabindex:"0"},mk={key:6,class:"tool-result-previews"},bk={tabindex:"0"},kk={class:"plugin-resource-stack"},yk=["src","title"],vk=["innerHTML"],wk={key:1,class:"message-text markdown streaming-markdown"},_k=["innerHTML"],xk={key:0,class:"message-image-attachments"},Sk=["data-preview-src","aria-label"],Ek=["src","alt"],Tk={key:1,class:"image-unavailable-placeholder",role:"status"},Ik=["href","download"],Ak={key:2,class:"message-loading",role:"status"},Ck={class:"message-loading-body"},Mk={key:3,class:"message-loading",role:"status","aria-live":"polite"},Rk={class:"message-loading-body"},Nk={key:0,class:"queued"},Lk=["disabled"],$k=["disabled"],Ok={key:0,class:"composer-app-prompt"},Dk={key:1,class:"attachments file-attachments"},Pk=["onClick"],Uk={key:2,class:"attachments image-attachments"},Bk=["src","alt"],zk=["onClick"],Fk={class:"composer-path-row"},Hk=["title"],jk={id:"composer-session-metrics",class:"composer-metrics","aria-label":"运行状态指标"},Gk=["aria-pressed","title"],qk={class:"compress-wrap"},Wk=["disabled"],Kk={class:"composer-actions"},Vk=["aria-expanded"],Zk=["disabled","aria-busy","aria-label","title"],Qk=["type","disabled","aria-busy","aria-label","title"],Yk={key:0,class:"composer-button-icon composer-wait-icon","data-action":"waiting",viewBox:"0 0 20 20","aria-hidden":"true"},Xk={key:1,class:"composer-button-icon","data-action":"send",viewBox:"0 0 20 20","aria-hidden":"true"},Jk={key:2,class:"composer-button-icon","data-action":"interrupt-send",viewBox:"0 0 20 20","aria-hidden":"true"},ey={key:3,class:"composer-button-icon","data-action":"send-now",viewBox:"0 0 20 20","aria-hidden":"true"},ty={key:4,class:"composer-button-icon","data-action":"stop",viewBox:"0 0 20 20","aria-hidden":"true"},ny=["data-mobile-card","onKeydown"],sy={class:"background-task-section","data-card":"tasks"},ry={class:"background-task-head"},oy={class:"panel-title"},iy={key:0,class:"background-task-count"},ay=["title"],ly={key:0,class:"background-task-more"},cy={key:1,class:"background-task-history"},uy={class:"background-task-history-list"},dy=["title","onClick"],gy={key:1,class:"quota-card","data-card":"quota"},fy={class:"quota-card-head"},py={class:"quota-card-controls"},hy=["aria-valuenow"],my={class:"quota-card-foot"},by={class:"quota-card-update"},ky={class:"quota-card memory-card","data-card":"memory"},yy={class:"memory-card-head"},vy={class:"memory-trend",viewBox:"0 0 260 44",preserveAspectRatio:"none",role:"img","aria-label":"最近一小时 RSS 趋势"},wy=["d"],_y=["cx","cy","r","onFocus"],xy={key:1,class:"memory-trend-empty"},Sy={class:"memory-stats"},Ey={class:"memory-card-foot"},Ty={key:1,class:"content-grid single"},Iy={class:"panel-page sessions-page"},Ay={class:"page-head sessions-page-head"},Cy={class:"session-toolbar"},My={class:"session-search","aria-label":"搜索会话"},Ry={class:"session-count"},Ny={key:0,class:"empty-state"},Ly={key:1,class:"empty-state"},$y={key:2,class:"empty-state"},Oy={key:3,class:"session-list"},Dy={class:"session-card-main"},Py={class:"session-card-title"},Uy={key:0,class:"current-pill"},By={key:1,class:"current-pill"},zy={key:2,class:"live-pill"},Fy={class:"session-card-meta"},Hy=["title"],jy=["datetime"],Gy={class:"session-actions"},qy=["disabled","onClick"],Wy=["disabled","onClick"],Ky={key:4,class:"session-pagination","aria-label":"会话分页"},Vy=["disabled"],Zy=["aria-current","onClick"],Qy=["disabled"],Yy={key:2,class:"content-grid single"},Xy={class:"panel-page sessions-page admin-users-page"},Jy=["disabled"],ev={key:0,class:"admin-user-error",role:"alert"},tv={key:1,class:"empty-state"},nv={key:2,class:"session-list admin-user-list"},sv={class:"session-card-main"},rv={class:"session-card-title"},ov={class:"current-pill"},iv={class:"session-actions"},av=["disabled","onClick"],lv={key:3,class:"content-grid single"},cv={class:"panel-page prompt-page"},uv={class:"page-head"},dv={class:"page-head-actions"},gv={class:"prompt-workbench"},fv={class:"prompt-library-panel"},pv={class:"prompt-library-head"},hv={class:"prompt-library-list"},mv={key:0,class:"prompt-list-empty"},bv={key:1,class:"prompt-list-empty"},kv=["onClick","onDblclick","onDragstart","onDragover","onDrop"],yv={key:0},vv={class:"prompt-editor-panel"},wv={class:"prompt-editor-toolbar"},_v={class:"prompt-editor-current"},xv={class:"prompt-editor-toolbar-actions"},Sv=["disabled"],Ev=["disabled"],Tv={class:"prompt-editor-grid"},Iv={class:"prompt-editor-field"},Av={class:"prompt-editor-field prompt-editor-field-full"},Cv={class:"prompt-editor-field prompt-editor-field-full"},Mv={key:4,class:"content-grid single"},Rv={class:"panel-page settings-page"},Nv={class:"page-head settings-page-head"},Lv={class:"settings-subpage-title"},$v={class:"page-head settings-page-head"},Ov=["disabled"],Dv={key:0,class:"empty-state"},Pv={class:"settings-card"},Uv={class:"settings-field-grid"},Bv={class:"settings-field"},zv={key:0,class:"settings-required","aria-label":"必填"},Fv=["onUpdate:modelValue","type","placeholder"],Hv={key:1,class:"settings-card"},jv={class:"settings-field-grid"},Gv={class:"settings-field"},qv={class:"settings-field"},Wv={key:2,class:"settings-card settings-plugin-card"},Kv={class:"settings-card-head"},Vv=["disabled"],Zv={class:"plugin-settings-list"},Qv={class:"plugin-toggle"},Yv=["onUpdate:modelValue","aria-label"],Xv={key:3,class:"settings-card settings-plugin-card"},Jv={class:"settings-card-head"},ew=["disabled"],tw={class:"plugin-settings-list"},nw={class:"plugin-toggle"},sw=["onUpdate:modelValue","disabled","aria-label"],rw={key:5,class:"content-grid single"},ow={class:"panel-page"},iw={class:"capability-grid"},aw={key:0,class:"toast"},lw=["title","onKeydown"],cw={class:"cwd-picker-modal",role:"dialog","aria-modal":"true","aria-label":"选择工作目录"},uw=["disabled"],dw=["disabled"],gw={class:"cwd-picker-shortcuts"},fw={class:"cwd-picker-browser"},pw={class:"cwd-picker-locations","aria-label":"常用位置"},hw=["title","onClick"],mw={"aria-hidden":"true"},bw={class:"cwd-picker-tree"},kw={key:0,class:"cwd-picker-empty"},yw={key:1,class:"cwd-picker-error"},vw={class:"cwd-picker-actions"},ww=["disabled"],_w={class:"runtime-context-modal",role:"dialog","aria-modal":"true","aria-label":"项目上下文"},xw={class:"runtime-context-modal-head"},Sw={key:0,class:"runtime-context-kicker"},Ew=["aria-label"],Tw={class:"runtime-context-modal-content"},Iw={key:0,class:"runtime-context-index"},Aw=["onClick"],Cw={key:1,class:"project-context-document"},Mw=["aria-label"],Rw={class:"confirm-dialog-content"},Nw={class:"confirm-dialog-actions"},Lw={class:"session-model-list",role:"radiogroup","aria-label":"模型"},$w=["value","disabled"],Ow=["disabled"],Dw=["value"],Pw={key:0,class:"context-window-error",role:"alert"},Uw={class:"context-window-actions"},Bw=["disabled"],zw={class:"context-window-input-wrap"},Fw={key:0,class:"context-window-error",role:"alert"},Hw={class:"context-window-actions"},jw=["disabled"],Gw=["aria-label"],qw={class:"image-preview-canvas"},Ww=["src","alt"],Kw={key:0,class:"image-preview-caption"},Vw={class:"runtime-context-detail-modal compaction-detail-modal",role:"dialog","aria-modal":"true","aria-label":"压缩上下文详情"},Zw={class:"runtime-context-detail-content compaction-detail-content"},Qw={class:"compaction-detail-stats"},Yw={class:"runtime-context-modal",role:"dialog","aria-modal":"true","aria-label":"运行上下文"},Xw={class:"runtime-context-modal-head"},Jw={class:"runtime-context-modal-content"},e0={key:1,class:"runtime-plugin-list"},t0={key:0,class:"runtime-context-empty"},n0={class:"runtime-tool-status"},s0=["disabled","onClick"],r0={key:2,class:"runtime-plugin-list"},o0={key:0,class:"runtime-context-empty"},i0=["aria-label"],a0={class:"runtime-context-modal-head"},l0={key:0,class:"runtime-context-kicker"},c0={class:"runtime-context-detail-content"},u0={key:0},d0={key:1},g0={class:"tool-result-modal background-task-modal",role:"dialog","aria-modal":"true","aria-label":"后台任务"},f0={class:"tool-result-modal-head"},p0={class:"tool-result-modal-title"},h0={class:"background-task-modal-count"},m0={key:0,class:"background-task-index","aria-label":"后台任务列表"},b0=["title","onClick"],k0={class:"background-task-index-copy"},y0={class:"background-task-detail"},v0={class:"background-task-detail-head"},w0={class:"background-task-detail-title"},_0={class:"background-task-meta"},x0={key:0},S0={key:1,class:"wide"},E0={class:"background-task-detail-body"},T0={key:0,class:"background-task-command-section"},I0={class:"background-task-command"},A0={key:2,style:{"min-width":"0",width:"100%"}},C0=["aria-label"],M0={class:"tool-result-modal-head"},R0={class:"tool-result-modal-title"},N0={key:0},L0={class:"tool-result-modal-content"},$0=["innerHTML"],O0=2048,D0=18e5,Ro=.62,No=10,P0="System hint: if the user is asking you to draw, render, create, generate, or illustrate a new image, you must call the image2 tool with mode=generate instead of replying with text-only description. After the tool returns images, continue the response normally so the UI can display them in the conversation.",U0="System hint: the user attached an image. If this request involves image editing, modification, redraw, background replacement, style transfer, repair, object removal, or localized changes, you must call the image2 tool with mode=edit and use the attached or most recent image as the source image. Image operations may take a while, so wait up to 10 minutes by default unless the tool returns an error or the user interrupts.",B0="System hint from web UI: if your final answer produces, creates, modifies, exports, packages, or identifies local files that the user should receive, you must call the expose_downloads tool with all relevant absolute file paths before your final textual response. Do not paste absolute paths as the primary delivery method; expose them as browser downloads.",z0="<<ATTACHMENT_MANIFEST>>",F0="<</ATTACHMENT_MANIFEST>>",lr="••••••••••••••••••",Xn="neoctl-web.adminOwnerUsername",_l="neoctl-web.theme",Lo="neoctl-web.clientRevision",xl="neoctl-web.clientReloadRequest",$o="__neo_reload",H0=112,Sl=4e4,q0={__name:"App",setup(t){Ie.registerLanguage("javascript",wo),Ie.registerLanguage("js",wo),Ie.registerLanguage("jsx",wo),Ie.registerLanguage("typescript",_o),Ie.registerLanguage("ts",_o),Ie.registerLanguage("tsx",_o),Ie.registerLanguage("python",dl),Ie.registerLanguage("py",dl),Ie.registerLanguage("bash",xo),Ie.registerLanguage("sh",xo),Ie.registerLanguage("shell",xo),Ie.registerLanguage("json",Up),Ie.registerLanguage("css",Kp),Ie.registerLanguage("html",So),Ie.registerLanguage("xml",So),Ie.registerLanguage("vue",So),Ie.registerLanguage("markdown",gl),Ie.registerLanguage("md",gl),Ie.registerLanguage("yaml",fl),Ie.registerLanguage("yml",fl),Ie.registerLanguage("diff",Vp);const r=re(!1),s=re(!1),i=V(Ha),l=V(()=>!Ke.isolation||i.value),d=[{value:"inherit",label:"跟随全局"},{value:"enabled",label:"启用"},{value:"disabled",label:"关闭"}],g={Assistant:"助手",You:"你",User:"你",System:"系统","Context compaction":"上下文压缩",Config:"配置",Reasoning:"思考","Runtime tool":"运行时工具",multi_tool_use:"并行执行工具",文件下载:"文件下载"},f={"API key":"API Key","Base URL":"Base URL",Model:"模型","Fallback model":"备用模型",Endpoint:"Endpoint","Reasoning effort":"推理强度","Reasoning summary":"推理摘要","Max output tokens":"最大输出 Token","Timeout ms":"请求超时(ms)","Stream idle timeout ms":"流式空闲超时(ms)","Max retries":"最大重试次数"},h={openai:"OpenAI"},w={INVALID_REQUEST:"请求参数无效",SESSION_ACTIVE:"当前会话不能删除,请先切换到其他会话",SESSION_RUNNING:"运行中的会话不能删除,请等待运行结束",SESSION_NOT_FOUND:"会话不存在或已被删除",SESSION_RESUME_FAILED:"打开会话失败",SESSION_CREATE_FAILED:"新建会话失败",SESSION_DELETE_FAILED:"删除会话失败",PLUGIN_UPDATE_BLOCKED:"模型回答期间不能修改会话插件",PLUGIN_NOT_CONFIGURED:"插件功能未配置",PLUGIN_INVALID:"插件配置无效",PLUGIN_UPDATE_FAILED:"插件配置更新失败",PLUGINS_LOCKED:"插件配置已由环境变量锁定",TOOL_UPDATE_BLOCKED:"模型回答期间不能修改会话工具",TOOL_NOT_CONFIGURED:"工具配置功能未启用",TOOL_INVALID:"工具配置无效",TOOL_UPDATE_FAILED:"工具配置更新失败",PROMPT_UPDATE_FAILED:"提示词更新失败",PROMPT_INVALID:"提示词内容无效",FAST_MODE_UPDATE_FAILED:"快速模式切换失败",CONTEXT_WINDOW_UPDATE_BLOCKED:"回答期间不能调整上下文窗口",CONTEXT_WINDOW_INVALID:"请输入大于 0 的整数",CONTEXT_WINDOW_UPDATE_FAILED:"上下文窗口调整失败",CWD_NOT_CONFIGURED:"当前运行时不支持工作目录切换",CWD_INVALID:"路径不存在或不可访问",CWD_UPDATE_BLOCKED:"模型回答期间不能切换工作目录",CWD_UPDATE_FAILED:"工作目录切换失败",CWD_CREATE_FAILED:"文件夹新建失败",CWD_DELETE_FAILED:"只能删除空文件夹,且不能删除当前目录或其上级目录",LOGIN_INVALID:"模型配置无效",LOGIN_SAVE_FAILED:"模型配置保存失败",API_NOT_FOUND:"当前运行时不支持此功能,请重启服务",WEB_REQUEST_FAILED:"请求处理失败"};Ha()&&(Ke.adminOwnerUsername=sessionStorage.getItem(Xn)||"");const y="neoctl-web.tabId"+ja(),E="neoctl-web.sessionId"+ja();let _=U(),I=sessionStorage.getItem(E)||"",x=!I,$=!1;const R=[];function N(){return{id:"",title:"",content:"",usage:""}}function P(e){if(!e||typeof e!="object")return null;const n=String(e.title||"").trim(),c=String(e.content||"").trim();return!n||!c?null:{id:String(e.id||M()).trim(),title:n,content:c,usage:String(e.usage||"").trim()}}function M(){return`prompt-${Math.random().toString(36).slice(2,10)}`}function U(){let e=sessionStorage.getItem(y);return e||(e=q(),sessionStorage.setItem(y,e)),e}function q(){var c,u;if((c=globalThis.crypto)!=null&&c.randomUUID)return globalThis.crypto.randomUUID();const e=new Uint8Array(16);if((u=globalThis.crypto)!=null&&u.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let p=0;p<e.length;p+=1)e[p]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;const n=[...e].map(p=>p.toString(16).padStart(2,"0"));return`${n.slice(0,4).join("")}-${n.slice(4,6).join("")}-${n.slice(6,8).join("")}-${n.slice(8,10).join("")}-${n.slice(10).join("")}`}function z(e){const n=new URL(e,window.location.origin);return n.searchParams.set("tabId",_),I&&n.searchParams.set("sessionId",I),it(`${n.pathname}${n.search}${n.hash}`)}function J(e,n=!1){const c=(e==null?void 0:e.sessionId)||"";!c||c===I||!n&&!x&&I||(I=c,x=!1,sessionStorage.setItem(E,c))}const o=ur({connected:!1,connecting:!0,coreVersion:"",coreEasterEgg:!1,lines:[],status:{phase:"ready",streamedOutputTokens:0},appPrompt:{hasActivePrompt:!1,activePrompt:void 0},runtimeContext:void 0,runtimeContextLoading:!0,runtimeContextError:"",runtimeContextModal:"",runtimeContextDetail:void 0,settingsPage:"",projectContextOpen:!1,projectContextDocument:void 0,globalPlugins:{items:[],locked:!1,restartRequired:!0,loading:!1},sessionPlugins:{items:[],busy:!1,loading:!1},globalTools:{items:[],loading:!1},sessionTools:{items:[],busy:!1,loading:!1},fastMode:!1,fastModeMutating:!1,fastModeDraft:!1,pendingSessionSettings:{},compactSaving:!1,modelModalOpen:!1,modelDraft:"",reasoningDraft:"default",modelSearch:"",modelError:"",modelSaving:!1,contextWindowModalOpen:!1,contextWindowDraft:"",contextWindowError:"",contextWindowSaving:!1,busy:!1,queuedInput:void 0,backgroundTaskCount:0,backgroundTasks:[],agentTaskHistory:[],terminalTaskHistory:[],backgroundSessionRunCount:0,runningSessionIds:[],session:void 0,modelSettings:void 0,cwd:"",cwdPicker:{open:!1,cwd:"",parent:"",home:"",entries:[],locations:[],treeRoots:[],treeChildren:{},treeExpanded:{},selectedPath:"",selectionExplicit:!1,input:"",loading:!1,mutating:!1,error:""},sessionsLoading:!1,sessionResumeLoading:!1,pendingResumeSessionId:"",catalog:{commands:[],modelIds:[],reasoning:[]},interactive:{},sessions:[],adminUsers:[],adminUsersLoading:!1,adminUserBusy:!1,adminUserError:"",login:void 0,cpaConfig:{url:"",password:"",hasPassword:!1,loaded:!1},cpaQuotas:[],cpaQuotaIndex:0,memory:{current:null,history:[],sampleMs:6e4,retentionMs:864e5},activePanel:"chat",toolDetailLineId:void 0,expandedToolGroups:{},compactionDetailLineId:void 0,backgroundTaskDetail:void 0,imagePreview:void 0,confirmDialog:{open:!1,title:"",message:"",confirmLabel:"确认",cancelLabel:"取消",tone:"warning"},promptLibrary:[],promptLibraryLoading:!0,promptManagerOpen:!1,selectedPromptId:"",composerDropActive:!1,composerDropMode:"prompt",attachments:[],attachmentCounter:0,uploadingFiles:!1,uploadProgress:0,messageImagePreviews:[],coreToolTimings:[],coreQueryTiming:void 0,timingTick:performance.now(),clockTick:Date.now(),composerMetrics:{context:{display:0,target:0,bump:0,initialized:!1},inputTokens:{display:0,target:0,bump:0,initialized:!1},outputTokens:{display:0,target:0,bump:0,initialized:!1}},toast:""}),oe=re(""),ce=re(""),W=re(1),Q=re(""),le=re(Pd()),H=re(null),te=re(null),L=re(null),G=re(null),K=re(null),ne=re(null),ue=re(""),xe=V(()=>[{id:"tasks",title:"后台任务"},...St.value?[{id:"quota",title:"周额度"}]:[],{id:"memory",title:"服务端内存"}]),Ae=e=>{var n;return((n=xe.value.find(c=>c.id===e))==null?void 0:n.title)||""};function Fe(e){nr(),o.activePanel="chat",ue.value=e,nt(()=>{var n;return(n=document.querySelector(".mobile-card-close"))==null?void 0:n.focus()})}function He(){ue.value="",nt(()=>{var e,n;return(n=(e=ne.value)==null?void 0:e.querySelector("summary"))==null?void 0:n.focus()})}const je=re(""),Je=ur({}),Se=ur(N()),de=re(""),Oe=re(""),Ue=re(""),st=re("before"),ct=re(-1);let Me,En;const Re=zh({getElement:()=>L.value});let qe=0,mt=0,ee,Rt=!1,Le,be,Nt,et=0,Gt=Promise.resolve(),bt=0,F=0,Z=0,ie,pe,Pe=!1,Ze,kt;qc();const _t=new Map,Lt=new Map,Ar=re(0),qt=V(()=>[...o.lines||[]].reverse().find(e=>Ku(e))||null),mc=V(()=>{var e;return Yu((e=o.status)==null?void 0:e.phase)}),bc=V(()=>{var e,n;if(qt.value)return Xi(qt.value)?"整理图片结果":"图片生成中";if(((e=o.status)==null?void 0:e.phase)==="running_tools"){const c=(n=o.status)==null?void 0:n.currentTool;if(String((c==null?void 0:c.name)||"").toLowerCase()==="image_create")return"图片生成中";if(c!=null&&c.name)return`调用 ${c.name}${c.kind?` · ${c.kind}`:""}`}return mc.value}),ui=V(()=>{var e;return fg((e=o.status)==null?void 0:e.phase)}),kc=V(()=>ui.value||o.busy||o.sessionResumeLoading),yc=V(()=>{var e;if(o.sessionResumeLoading)return"正在加载会话";if(qt.value){const n=Tt(qt.value),c=Xi(qt.value)?"正在载入图片结果":"图片模型正在生成";return n==="排队中"?`${c} · 排队中`:c}if(((e=o.status)==null?void 0:e.phase)==="calling_model"){const n=o.status.modelOutput;if((n==null?void 0:n.kind)==="text")return"正在生成回复";if((n==null?void 0:n.kind)==="tool_call")return n.name?`正在准备调用 ${n.name}`:"正在准备工具调用"}return`正在${bc.value}`}),vc=V(()=>{if(!o.sessionResumeLoading){if(qt.value){const e=qt.value,n=o.coreToolTimings.find(c=>{var u;return c.id===((u=e.timing)==null?void 0:u.id)})??e.timing;return Ao(n,o.timingTick,o.connected)}return Ao(o.coreQueryTiming,o.timingTick,o.connected)}}),di=e=>String(e||"").replace(/设计/g,"").trim(),gi=e=>di(e==null?void 0:e.title)||"未命名会话",Tn=V(()=>{var n;const e=di((n=o.session)==null?void 0:n.title);return e&&e!=="neo"?e:""}),us=V(()=>Tn.value||"未命名会话"),ds=re(null),fi=re(null),Cr=re(!1);let gs;const Mr=async()=>{await nt();const e=ds.value,n=fi.value;Cr.value=!!(e&&n&&n.scrollWidth>e.clientWidth+2)},pi=V(()=>o.cwd||"—"),In=V(()=>{var c,u;const e=o.pendingSessionSettings,n=o.modelSettings||{model:(u=(c=o.status)==null?void 0:c.metrics)==null?void 0:u.model};return{model:e.model??n.model,reasoning:Object.hasOwn(e,"reasoning")||Object.hasOwn(e,"model")?e.reasoning:n.reasoning}}),wc=V(()=>{var e;return Vh(In.value.model,(e=In.value.reasoning)==null?void 0:e.effort)}),fs=V(()=>o.fastModeMutating?o.fastModeDraft:o.pendingSessionSettings.fastMode??o.fastMode),hi=V(()=>{var e;return[...new Set([In.value.model,(e=o.modelSettings)==null?void 0:e.model,...o.catalog.modelIds||[]].filter(Boolean))]}),_c=V(()=>hi.value.filter(e=>e.toLowerCase().includes(o.modelSearch.trim().toLowerCase()))),ps=V(()=>{var c;const e=((c=o.catalog.modelReasoning)==null?void 0:c[o.modelDraft])||[],n=o.catalog.reasoning||[];return["default","off",...e.filter(u=>n.includes(u)&&u!=="default"&&u!=="off")]});De(()=>o.modelDraft,()=>{ps.value.includes(o.reasoningDraft)||(o.reasoningDraft="default")});const xc=V(()=>`${o.composerMetrics.context.display.toFixed(1)}%`),Sc=V(()=>{var n,c;const e=Number(o.pendingSessionSettings.contextWindowTokens??((c=(n=o.status)==null?void 0:n.metrics)==null?void 0:c.contextWindowTokens));return Number.isFinite(e)&&e>0?String(Math.max(1,Math.round(e/1e3))):""}),Ec=V(()=>mn(o.composerMetrics.inputTokens.display)),Tc=V(()=>mn(o.composerMetrics.outputTokens.display)),$t=V(()=>ui.value||o.busy),hs=V(()=>o.backgroundTasks.length),ms=V(()=>[...o.agentTaskHistory,...o.terminalTaskHistory].sort((e,n)=>{const c=u=>typeof u.completedAt=="number"?u.completedAt:Date.parse(u.completedAt||u.updatedAt||"")||(typeof u.createdAt=="number"?u.createdAt:0);return c(n)-c(e)})),An=V(()=>{const e=new Set;return[...o.backgroundTasks,...ms.value].filter(n=>{const c=Yt(n);return e.has(c)?!1:(e.add(c),!0)})}),Cn=V(()=>o.backgroundTasks[0]),Rr=V(()=>!!(oe.value.trim()||o.attachments.length)),mi=V(()=>r.value?"正在处理":$t.value?Rr.value?"打断并发送":o.queuedInput?"立即发送":"停止":"发送 ↵"),Mn=V(()=>{const e=ce.value.trim().toLocaleLowerCase(),n=o.sessions||[];return e?n.filter(c=>[gi(c),c.ownerUsername,c.title,c.sessionId,c.updatedAt,c.createdAt].some(u=>String(u||"").toLocaleLowerCase().includes(e))):n}),bs=V(()=>Math.max(1,Math.ceil(Mn.value.length/No))),Ic=V(()=>{const e=(W.value-1)*No;return Mn.value.slice(e,e+No)}),Ac=V(()=>{const e=bs.value,n=Math.max(1,Math.min(W.value-2,e-4)),c=Math.min(e,n+4);return Array.from({length:c-n+1},(u,p)=>n+p)}),Wt=V(()=>o.sessionResumeLoading?[]:Bu((o.lines||[]).filter(e=>!Vu(e)))),Nr=re(0),an=Uf(V(()=>({count:Wt.value.length,getScrollElement:()=>L.value,estimateSize:lg,getItemKey:e=>ag(Wt.value[e]),rangeExtractor:e=>{const n=new Set(Bl(e));return Wt.value.forEach((c,u)=>{(c==null?void 0:c.live)===!0&&n.add(u)}),[...n].sort((c,u)=>c-u)},overscan:8,scrollMargin:Ar.value,anchorTo:"start",followOnAppend:!1,useAnimationFrameWithResizeObserver:!0})));an.value.shouldAdjustScrollPositionOnItemSizeChange=(e,n,c)=>{if(Re.following||Re.interacting||Nr.value)return!1;const u=(c.scrollOffset||0)+c.scrollAdjustments;return c.itemSizeCache.has(e.key)?e.end<=u&&c.scrollDirection!=="backward":e.start<u};const Cc=V(()=>an.value.getVirtualItems().filter(e=>Wt.value[e.index])),Mc=V(()=>an.value.getTotalSize()),Rc=V(()=>{var e,n;return Array.isArray((n=(e=o.runtimeContext)==null?void 0:e.prompt)==null?void 0:n.sections)?o.runtimeContext.prompt.sections:[]}),Lr=V(()=>{var e;return Array.isArray((e=o.runtimeContext)==null?void 0:e.tools)?o.runtimeContext.tools:[]}),Rn=V(()=>{var e,n;return Array.isArray((n=(e=o.runtimeContext)==null?void 0:e.project)==null?void 0:n.documents)?o.runtimeContext.project.documents:[]}),Nc=V(()=>o.sessionPlugins.items.filter(e=>e.effectiveEnabled).length),Lc=V(()=>o.sessionTools.items.filter(e=>e.effectiveEnabled).length),ut=V(()=>o.lines.find(e=>String(e.id)===String(o.toolDetailLineId))||null),xt=V(()=>o.lines.find(e=>String(e.id)===String(o.compactionDetailLineId))||null),Kt=V(()=>{var e;return((e=o.appPrompt)==null?void 0:e.activePrompt)||void 0}),$c=V(()=>{var e,n;return((e=Kt.value)==null?void 0:e.title)||((n=Kt.value)==null?void 0:n.id)||""}),ks=V(()=>o.promptLibrary.find(e=>e.id===o.selectedPromptId)||o.promptLibrary[0]||null),ys=V(()=>le.value==="dark"),vs=V(()=>ys.value?"切换到日间模式":"切换到夜间模式"),St=V(()=>o.cpaQuotas.length?o.cpaQuotas[o.cpaQuotaIndex%o.cpaQuotas.length]||o.cpaQuotas[0]:null),ws=V(()=>{var e;return((e=o.memory)==null?void 0:e.current)||null}),_s=V(()=>{var v;const e=(((v=o.memory)==null?void 0:v.history)||[]).filter(T=>Number.isFinite(Number(T==null?void 0:T.rss))),n=e.map(T=>Number(T.rss));if(!n.length)return[];const c=Math.min(...n),u=Math.max(...n),p=Math.max(1,u-c);return n.map((T,O)=>({entry:e[O],x:n.length===1?130:O/(n.length-1)*260,y:n.length===1?22:40-(T-c)/p*36}))}),bi=V(()=>_s.value.map((e,n)=>`${n?"L":"M"} ${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(" ")),Nn=V(()=>_s.value[ct.value]||null);De(le,Ud,{immediate:!0}),De([$t,ys],([e,n])=>{const u=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path d="M32 4 50 32 32 60 14 32Z" fill="${e?n?"#bef264":"#a3e635":n?"#38bdf8":"#7dd3fc"}"/></svg>`,p=document.querySelector('link[rel="icon"]');p&&(p.href=`data:image/svg+xml,${encodeURIComponent(u)}`)},{immediate:!0}),De(Tn,e=>{document.title=e||"对话工作台"},{immediate:!0}),De(us,Mr,{immediate:!0}),De(ce,()=>{W.value=1}),De(bs,e=>{W.value>e&&(W.value=e)}),De(()=>{var e;return(e=o.backgroundTaskDetail)==null?void 0:e.output},async()=>{await nt();const e=K.value;e&&(e.scrollTop=e.scrollHeight)}),De(L,e=>Re.attach(e),{flush:"post"}),De(()=>Wt.value.length,async()=>{await nt(),ho(),er()}),De(()=>o.activePanel,async e=>{e==="chat"&&(await nt(),ho(),er())});async function Oc(){sessionStorage.removeItem(Xn),(await ye("/api/auth/logout",{method:"POST"})).ok&&location.reload()}jo(async()=>{typeof ResizeObserver<"u"&&(kt=new ResizeObserver(()=>{er(),Re.schedule()}),ho()),er(),await Promise.all([Ln(),Dc(),$n(),$r(),xs(),ki(),Pr(),Li()]),Ss(),Le=setInterval(()=>{o.clockTick=Date.now(),o.timingTick=performance.now()},1e3),be=setInterval(Pr,6e4),Nt=setInterval(Li,6e4),window.addEventListener("keydown",ma),document.addEventListener("click",Gi),document.addEventListener("click",qi),document.addEventListener("pointerdown",Da,!0),typeof ResizeObserver<"u"&&ds.value&&(gs=new ResizeObserver(Mr),gs.observe(ds.value)),Mr()}),jt(()=>{Me&&Me.close(),Re.dispose(),qe&&cancelAnimationFrame(qe),Es(),ee=void 0,et&&cancelAnimationFrame(et),Le&&clearInterval(Le),be&&clearInterval(be),Nt&&clearInterval(Nt),Ze&&clearTimeout(Ze),gs&&gs.disconnect(),kt&&kt.disconnect(),document.body.classList.remove("tool-detail-open","image-preview-open","runtime-context-open","context-window-open","cwd-picker-lock"),pe&&cn(!1),window.removeEventListener("keydown",ma),document.removeEventListener("click",Gi),document.removeEventListener("click",qi),document.removeEventListener("pointerdown",Da,!0)});async function Ln(e={}){try{const n=await ye(z("/api/state"));if(!n.ok)throw new Error(`state ${n.status}`);return Ts(await n.json()),!0}catch(n){return e.silent||se(`运行时不可用:${n.message||n}`),!1}}async function Dc(){try{const e=await ye(z("/api/client-info"),{cache:"no-store"});if(!e.ok)return;yi(await e.json())}catch{}}async function $n(){o.runtimeContextLoading=!0;try{const e=await ye(z("/api/runtime-context")),n=await e.json().catch(()=>({}));if(!e.ok)throw new Error(n.error||`runtime-context ${e.status}`);return wi(n),!0}catch(e){return o.runtimeContextError=e.message||String(e),!1}finally{o.runtimeContextLoading=!1}}async function Pc(){o.globalTools.loading=!0;try{const e=await ye(z("/api/tools")),n=await e.json().catch(()=>({}));if(!e.ok)throw new Error(n.error||`tools ${e.status}`);o.globalTools={items:Array.isArray(n.items)?n.items.map(c=>({...c})):[],loading:!1}}catch(e){o.globalTools.loading=!1,se(e.message||String(e))}}async function Uc(){const e=Object.fromEntries(o.globalTools.items.map(n=>[n.name,n.configuredEnabled!==!1]));o.globalTools.loading=!0;try{const n=await Ce("/api/tools/global",{overrides:e});o.globalTools={...n.state,loading:!1},await Promise.all([xs(),$n()]),se("全局工具配置已保存,各会话在下一轮或刷新时生效")}catch(n){o.globalTools.loading=!1,tt(n,"工具配置保存失败")}}async function xs(){o.sessionTools.loading=!0;try{const e=await ye(z("/api/session-tools")),n=await e.json().catch(()=>({}));if(!e.ok)throw new Error(n.error||`session-tools ${e.status}`);o.sessionTools={...n,items:Array.isArray(n.items)?n.items:[],loading:!1}}catch(e){o.sessionTools.loading=!1,se(e.message||String(e))}}async function Bc(e,n){const c=Object.fromEntries(o.sessionTools.items.map(u=>[u.name,u.name===e.name?n:u.mode]));o.sessionTools.busy=!0;try{const u=await Ce("/api/session-tools",{overrides:c});o.sessionTools={...u.state,loading:!1,busy:!1}}catch(u){o.sessionTools.busy=!1,tt(u,"会话工具更新失败")}}async function zc(){o.globalPlugins.loading=!0;try{const e=await ye(z("/api/plugins")),n=await e.json().catch(()=>({}));if(!e.ok)throw new Error(n.error||`plugins ${e.status}`);o.globalPlugins={items:Array.isArray(n.items)?n.items.map(c=>({...c})):[],locked:n.locked===!0,restartRequired:n.restartRequired!==!1,loading:!1}}catch(e){o.globalPlugins.loading=!1,se(e.message||String(e))}}async function Fc(){const e=o.globalPlugins.items.filter(n=>n.configuredEnabled!==!1).map(n=>n.id);o.globalPlugins.loading=!0;try{const n=await Ce("/api/plugins/global",{enabledIds:e}),c=new Set(n.enabledIds||e);o.globalPlugins.items=o.globalPlugins.items.map(u=>({...u,configuredEnabled:c.has(u.id)})),se("插件配置已保存,重启后生效")}catch(n){tt(n,"插件配置保存失败")}finally{o.globalPlugins.loading=!1}}async function $r(){o.sessionPlugins.loading=!0;try{const e=await ye(z("/api/session-plugins")),n=await e.json().catch(()=>({}));if(!e.ok)throw new Error(n.error||`session-plugins ${e.status}`);o.sessionPlugins={...n,items:Array.isArray(n.items)?n.items:[],loading:!1}}catch(e){o.sessionPlugins.loading=!1,se(e.message||String(e))}}async function Hc(e,n){const c=Object.fromEntries(o.sessionPlugins.items.map(u=>[u.id,u.id===e.id?n:u.mode]));o.sessionPlugins.busy=!0;try{const u=await Ce("/api/session-plugins",{overrides:c});o.sessionPlugins={...u.state,loading:!1,busy:!1}}catch(u){o.sessionPlugins.busy=!1,tt(u,"会话插件更新失败")}}async function ki(){if(Ke.isolation){o.promptLibraryLoading=!1;return}o.promptLibraryLoading=!0;try{const e=await ye(z("/api/prompt-library")),n=await e.json().catch(()=>({}));if(!e.ok)throw new Error(n.error||`prompt-library ${e.status}`);On(Array.isArray(n.items)?n.items:R)}catch(e){On([]),se(e.message||String(e))}finally{o.promptLibraryLoading=!1}}function Ss(){Me&&Me.close(),qe&&cancelAnimationFrame(qe),qe=0,Es(),ee=void 0,Rt=!1,o.connecting=!0,Me=new EventSource(z("/events")),Me.addEventListener("open",()=>{Rt=!1,o.connected=!0,o.connecting=!1}),Me.addEventListener("error",()=>{Or(),o.connected=!1,o.connecting=!1}),Me.addEventListener("sync",e=>{if(!Rt){Rt=!0,xi(e.data);return}Wc(e.data)}),Me.addEventListener("delta",e=>{Or(),Kc(e.data)}),Me.addEventListener("terminal.output",e=>{try{Or(),Xc(JSON.parse(e.data))}catch{}}),Me.addEventListener("client.version",e=>{try{yi(JSON.parse(e.data))}catch{}}),Me.addEventListener("client.reload",e=>{try{jc(JSON.parse(e.data))}catch{}}),Me.addEventListener("runtime.context",e=>{try{wi(JSON.parse(e.data))}catch(n){o.runtimeContextError=n.message||String(n)}}),Me.addEventListener("runtime.context.error",e=>{try{const n=JSON.parse(e.data);o.runtimeContextError=n.message||"运行上下文同步失败"}catch{o.runtimeContextError="运行上下文同步失败"}})}function yi(e){if(Number(e==null?void 0:e.protocolVersion)!==1)return;o.coreVersion=String(e.coreVersion||"");const n=String(e.revision||"").trim();if(!n)return;const c=localStorage.getItem(Lo);localStorage.setItem(Lo,n),c&&c!==n&&vi({...e,requestId:`revision:${n}`,clearCache:!0})}async function jc(e){if(Number(e==null?void 0:e.protocolVersion)!==1)return;const n=String(e.requestId||"").trim();if(!n||sessionStorage.getItem(xl)===n)return;sessionStorage.setItem(xl,n);const c=String(e.revision||"").trim();c&&localStorage.setItem(Lo,c),o.coreVersion=String(e.coreVersion||o.coreVersion||""),await vi(e)}async function vi(e){if(Pe)return;Pe=!0,e.clearCache!==!1&&await Gc();const n=new URL(window.location.href);n.searchParams.set($o,String(e.requestId||e.revision||Date.now())),window.location.replace(n.href)}async function Gc(){const e=[];"caches"in window&&e.push(caches.keys().then(n=>Promise.all(n.map(c=>caches.delete(c))))),"serviceWorker"in navigator&&e.push(navigator.serviceWorker.getRegistrations().then(n=>Promise.all(n.map(c=>c.unregister())))),await Promise.allSettled(e)}function qc(){const e=new URL(window.location.href);e.searchParams.has($o)&&(e.searchParams.delete($o),window.history.replaceState(window.history.state,"",e.href))}function ln(){Ze&&clearTimeout(Ze),o.coreEasterEgg=!1,requestAnimationFrame(()=>{o.coreEasterEgg=!0,Ze=setTimeout(()=>{o.coreEasterEgg=!1},1300)})}function wi(e){var p,v;if(![1,2].includes(Number(e==null?void 0:e.protocolVersion)))throw new Error(`不支持的运行上下文协议版本:${(e==null?void 0:e.protocolVersion)??"未知"}`);const n=Number(e.revision||0),c=Number(((p=o.runtimeContext)==null?void 0:p.revision)||0);(!e.sessionId||!((v=o.runtimeContext)!=null&&v.sessionId)||e.sessionId===o.runtimeContext.sessionId)&&n<c||(o.runtimeContext=e,o.projectContextDocument&&!Rn.value.some(T=>T.path===o.projectContextDocument.path)&&(o.projectContextDocument=void 0),o.projectContextOpen&&Rn.value.length===0&&(o.projectContextOpen=!1,document.body.classList.remove("runtime-context-open")),o.runtimeContextLoading=!1,o.runtimeContextError="")}function Wc(e){ee=e,!qe&&(qe=requestAnimationFrame(()=>{qe=0,_i()}))}function Or(){qe&&cancelAnimationFrame(qe),qe=0,_i()}function _i(){const e=ee;ee=void 0,e&&xi(e)}function xi(e){try{Ts(JSON.parse(e))}catch(n){se(`运行状态同步失败:${n.message||n}`)}}function Kc(e){try{Yc(JSON.parse(e))}catch(n){se(`流式增量同步失败:${n.message||n}`),Ln()}}function Vc(e,n){const c=String(n||"");if(!c)return;const u=String(e);Lt.set(u,`${Lt.get(u)||""}${c}`),Si()}function Si(){mt||(mt=requestAnimationFrame(Zc))}function Zc(){mt=0;const e=Re.following,n=[...Lt];Lt.clear();for(const[c,u]of n){const p=o.lines.findIndex(T=>String(T.id)===c);if(p<0)continue;const v=o.lines[p];o.lines[p]={...v,text:`${v.text||""}${u}`}}e&&mo(),Lt.size&&Si()}function Qc(e){const n=String(e),c=Lt.get(n);if(!c)return;Lt.delete(n);const u=o.lines.findIndex(v=>String(v.id)===n);if(u<0)return;const p=o.lines[u];o.lines[u]={...p,text:`${p.text||""}${c}`}}function Es(){mt&&cancelAnimationFrame(mt),mt=0,Lt.clear()}function Yc(e){const n=String(e.sessionId||"");if(I&&n&&n!==I&&!x){ia();return}const c=Re.following;for(const u of e.operations||[]){if(u.type==="line.append"){o.lines.some(v=>{var T;return String(v.id)===String((T=u.line)==null?void 0:T.id)})||o.lines.push(u.line);continue}const p=o.lines.findIndex(v=>String(v.id)===String(u.id));if(p<0)throw new Error(`找不到增量消息行 ${u.id}`);if(o.lines[p],u.type==="line.text.append")Vc(u.id,u.text);else if(u.type==="line.patch"){Qc(u.id);const v=o.lines[p];o.lines[p]={...v,...u.patch||{}}}}e.status&&(o.status=e.status,Ji(e.status)),Wr(),o.connected=!0,o.connecting=!1,c&&mo()}function Xc(e){var n,c;for(const u of(e==null?void 0:e.updates)||[]){const p=String((u==null?void 0:u.sessionId)||"");if(!p||u.ownerSessionId!==((n=o.session)==null?void 0:n.sessionId)||u.invalidated===!0)continue;const v=o.backgroundTasks.findIndex(k=>String((k==null?void 0:k.sessionId)||"")===p);if(v<0)continue;const T=String(u.text||"");if(!T)continue;const O=o.backgroundTasks[v],j=String(O.output||""),B=Number(O.outputEnd??j.length),ge=Number(u.outputStart??B),Ee=Number(u.outputEnd??ge+T.length),Bt=ge===B?Jc(j,T,Sl):T.slice(-Sl);o.backgroundTasks[v]={...O,output:Bt,outputEnd:Ee},String(((c=o.backgroundTaskDetail)==null?void 0:c.sessionId)||"")===p&&(o.backgroundTaskDetail={...o.backgroundTaskDetail,output:Bt,outputEnd:Ee})}}function Jc(e,n,c){const u=`${e}${n}`;return u.length<=c?u:u.slice(-c)}function Ts(e){var p,v,T,O;Es();const n=String(((p=e.session)==null?void 0:p.sessionId)||""),c=String(((v=o.session)==null?void 0:v.sessionId)||"");if(n&&n!==c&&gn(),I&&n&&n!==I&&!x){ia();return}Z+=1;const u=Re.following;if(n!==c&&(Re.reset(),Cs(),dg(),o.messageImagePreviews=o.messageImagePreviews.filter(j=>j.sessionId===n),o.attachmentCounter=0),o.lines=e.lines||[],o.toolDetailLineId!==void 0&&!o.lines.some(j=>String(j.id)===String(o.toolDetailLineId))&&gn(),o.compactionDetailLineId!==void 0&&!o.lines.some(j=>String(j.id)===String(o.compactionDetailLineId))&&Ds(),qd(o.lines),o.status=e.status||o.status,Ji(e.status),Wr(),o.busy=!!e.busy,o.queuedInput=e.queuedInput,o.backgroundTaskCount=e.backgroundTaskCount||0,o.backgroundTasks=e.backgroundTasks||[],o.agentTaskHistory=e.agentTaskHistory||[],o.terminalTaskHistory=e.terminalTaskHistory||[],o.backgroundTaskDetail){const j=An.value.find(B=>Yt(B)===Yt(o.backgroundTaskDetail));j?o.backgroundTaskDetail={...j}:o.backgroundTaskDetail.kind==="terminal"&&o.backgroundTaskDetail.ownerSessionId===((T=e.session)==null?void 0:T.sessionId)?o.backgroundTaskDetail={...o.backgroundTaskDetail,status:"unknown",outputAvailability:"unavailable"}:js()}if(o.backgroundSessionRunCount=e.backgroundSessionRunCount||0,o.runningSessionIds=e.runningSessionIds||[],o.session=e.session,o.modelSettings=e.modelSettings,o.pendingSessionSettings={...e.pendingSessionSettings||{}},o.cwd=e.cwd||"",o.fastMode=e.fastMode===!0,o.appPrompt=e.appPrompt||{hasActivePrompt:!1,activePrompt:void 0},J(e.session,x),n&&n!==c&&Promise.all([$r(),xs()]),o.sessionResumeLoading){const j=((O=e.session)==null?void 0:O.sessionId)||"";o.pendingResumeSessionId&&j===o.pendingResumeSessionId&&(o.sessionResumeLoading=!1,o.pendingResumeSessionId="")}e.catalog&&(o.catalog=e.catalog),e.interactive&&(o.interactive=e.interactive),e.tips&&(o.tips=e.tips),e.tipIndex!==void 0&&o.tipIndex===0&&(o.tipIndex=e.tipIndex),o.connected=!0,o.connecting=!1,Qu(o.backgroundTasks),gg(),u&&mo()}function On(e,n=o.selectedPromptId){const c=(e||[]).map(P).filter(Boolean);o.promptLibrary=c;const u=c.find(p=>p.id===n)||c[0]||null;o.selectedPromptId=(u==null?void 0:u.id)||"",Dn(u||N())}function Dn(e){Se.id=(e==null?void 0:e.id)||"",Se.title=(e==null?void 0:e.title)||"",Se.content=(e==null?void 0:e.content)||"",Se.usage=(e==null?void 0:e.usage)||""}function Dr(e){if(Ke.isolation)return;o.activePanel="prompts",o.promptManagerOpen=!0,e&&(o.selectedPromptId=e);const n=o.promptLibrary.find(c=>c.id===o.selectedPromptId)||o.promptLibrary[0]||N();o.selectedPromptId=n.id||"",Dn(n)}function eu(e){o.selectedPromptId=e.id,Dr(e.id)}function tu(){o.selectedPromptId="",Dn(N()),o.activePanel="prompts",o.promptManagerOpen=!0}function nu(e){o.selectedPromptId=e.id,Dn(e)}async function su(){const e=P({id:Se.id||M(),title:Se.title,content:Se.content,usage:Se.usage});if(!e){se("标题和内容不能为空");return}try{const n=await Ce("/api/prompt-library",{item:e});On(n.items,e.id)}catch(n){se(n.message||String(n));return}se("已保存提示词")}async function ru(){var u;const e=String(Se.id||"").trim();if(!e){Dn(N());return}const n=o.promptLibrary.find(p=>p.id===e);if(!(!n||!await Un({title:"删除提示词?",message:`“${n.title}”删除后无法恢复。`,confirmLabel:"确认删除",tone:"danger"}))){try{const p=await Ce("/api/prompt-library/delete",{id:e});On(p.items)}catch(p){se(p.message||String(p));return}((u=Kt.value)==null?void 0:u.id)===n.id&&Ei({confirm:!1}),se("已删除提示词")}}async function Pn(e){const n=P(e);if(!n){se("提示词无效");return}const c=Kt.value;if(c&&(c.id!==n.id||String(c.content||"").trim()!==n.content)){const p=c.id===n.id;if(!await Un({title:p?"更新当前提示词?":"切换当前提示词?",message:p?`“${n.title}”的内容已经变化。重新应用会影响模型对后续问题的理解和回答方式。`:`将从“${c.title||c.id||"当前提示词"}”切换为“${n.title}”。提示词变化会影响模型对后续问题的理解和回答方式。`,confirmLabel:p?"确认更新":"确认切换"}))return}try{const p=await Ce("/api/app-prompt",{id:n.id,title:n.title,usage:n.usage,source:"sidebar-library",content:n.content});(p==null?void 0:p.ok)!==!1&&(o.appPrompt=p.appPrompt||{hasActivePrompt:!0,activePrompt:n},se(`已应用:${n.title}`))}catch(p){tt(p,"应用提示词失败")}}async function Ei(e={}){if(Kt.value&&!(e.confirm!==!1&&!await Un({title:"清除当前提示词?",message:"清除后,模型将不再遵循当前应用提示词,这会改变它对后续问题的理解和回答方式。",confirmLabel:"确认清除",tone:"danger"})))try{const n=await Ce("/api/app-prompt",{clear:!0});(n==null?void 0:n.ok)!==!1&&(o.appPrompt=n.appPrompt||{hasActivePrompt:!1,activePrompt:void 0},se("已清空应用提示词"))}catch(n){tt(n,"清空提示词失败")}}function Un(e){return pe&&cn(!1),Object.assign(o.confirmDialog,{open:!0,title:String((e==null?void 0:e.title)||"请确认"),message:String((e==null?void 0:e.message)||""),confirmLabel:String((e==null?void 0:e.confirmLabel)||"确认"),cancelLabel:String((e==null?void 0:e.cancelLabel)||"取消"),tone:(e==null?void 0:e.tone)==="danger"?"danger":"warning"}),new Promise(n=>{pe=n})}function cn(e){const n=pe;pe=void 0,o.confirmDialog.open=!1,n==null||n(e===!0)}function ou(e,n){de.value=n.id,e!=null&&e.dataTransfer&&(e.dataTransfer.effectAllowed="copy",e.dataTransfer.setData("application/x-neoctl-prompt-id",n.id),e.dataTransfer.setData("text/plain",n.title))}function iu(e){var u;const n=Array.from(((u=e==null?void 0:e.dataTransfer)==null?void 0:u.types)||[]),c=cu(e);!n.includes("application/x-neoctl-prompt-id")&&!c||(e.preventDefault(),o.composerDropActive=!0,o.composerDropMode=c?"files":"prompt",e.dataTransfer&&(e.dataTransfer.dropEffect="copy"))}function au(e){e!=null&&e.currentTarget&&(e!=null&&e.relatedTarget)&&e.currentTarget.contains(e.relatedTarget)||(o.composerDropActive=!1,o.composerDropMode="prompt")}async function lu(e){var p,v;const n=uu(e==null?void 0:e.dataTransfer);if(n.length){e.preventDefault(),o.composerDropActive=!1,o.composerDropMode="prompt",de.value="",await ka(n),(p=H.value)==null||p.focus();return}const c=((v=e==null?void 0:e.dataTransfer)==null?void 0:v.getData("application/x-neoctl-prompt-id"))||de.value;if(o.composerDropActive=!1,o.composerDropMode="prompt",!c)return;e.preventDefault();const u=o.promptLibrary.find(T=>T.id===c);if(de.value="",!u){se("未找到提示词");return}await Pn(u)}function cu(e){var c,u;return Array.from(((c=e==null?void 0:e.dataTransfer)==null?void 0:c.types)||[]).includes("Files")?!0:Array.from(((u=e==null?void 0:e.dataTransfer)==null?void 0:u.items)||[]).some(p=>p.kind==="file")}function uu(e){const n=Array.from((e==null?void 0:e.files)||[]);return n.length?n:Array.from((e==null?void 0:e.items)||[]).filter(c=>c.kind==="file").map(c=>c.getAsFile()).filter(Boolean)}function du(){de.value="",o.composerDropActive=!1,o.composerDropMode="prompt"}function gu(e,n){Oe.value=n.id,Ue.value="",e!=null&&e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("application/x-neoctl-prompt-sort-id",n.id),e.dataTransfer.setData("text/plain",n.title))}function fu(e,n){var p,v,T;const c=Oe.value||((p=e==null?void 0:e.dataTransfer)==null?void 0:p.getData("application/x-neoctl-prompt-sort-id"));if(!c||c===n.id)return;e.preventDefault();const u=(T=(v=e.currentTarget)==null?void 0:v.getBoundingClientRect)==null?void 0:T.call(v);Ue.value=n.id,st.value=u&&e.clientY>u.top+u.height/2?"after":"before",e.dataTransfer&&(e.dataTransfer.dropEffect="move")}async function pu(e,n){var j;e.preventDefault();const c=((j=e==null?void 0:e.dataTransfer)==null?void 0:j.getData("application/x-neoctl-prompt-sort-id"))||Oe.value,u=st.value;if(Ti(),!c||c===n.id)return;const p=[...o.promptLibrary],v=p.findIndex(B=>B.id===c);if(v<0)return;const[T]=p.splice(v,1),O=p.findIndex(B=>B.id===n.id);if(!(O<0)){p.splice(O+(u==="after"?1:0),0,T),o.promptLibrary=p;try{const B=await Ce("/api/prompt-library/reorder",{ids:p.map(ge=>ge.id)});On(B.items,o.selectedPromptId),se("提示词顺序已更新")}catch(B){await ki(),se(B.message||String(B))}}}function Ti(){Oe.value="",Ue.value="",st.value="before"}async function Ii(){if(r.value||i.value)return;const e=oe.value;if(!e.trim()&&o.attachments.length===0)return;if(e.trim()==="/sessions"){oe.value="",Kn(),await Ns();return}if(e.trim()==="/login"){oe.value="",Kn(),await zn();return}if(e.trim()==="/new"){oe.value="",Kn(),await $s();return}const n=[...o.attachments],c=n.filter(v=>v.kind==="image"),u=n.filter(v=>v.kind==="file"&&v.absolutePath),p=va(e,c);wa(c),oe.value="",o.attachments=[],Kn(),r.value=!0;try{const v=await ye(z("/api/submit"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:p,attachments:[...c,...u]})}),T=await v.json();if(!v.ok||T!=null&&T.error)throw new Error(T.error||`submit ${v.status}`)}catch(v){se(v.message||String(v))}finally{r.value=!1}}async function hu(){if(r.value)return;if(!Rr.value){o.queuedInput?await Ci():await Ai();return}const e=oe.value,n=[...o.attachments],c=n.filter(v=>v.kind==="image"),u=n.filter(v=>v.kind==="file"&&v.absolutePath),p=va(e,c);wa(c),oe.value="",o.attachments=[],Kn(),r.value=!0;try{await Ce("/api/submit-now",{text:p,attachments:[...c,...u]})}catch(v){se(v.message||String(v))}finally{r.value=!1}}async function Ai(){if(!r.value){r.value=!0;try{await Ce("/api/interrupt",{})}catch(e){tt(e,"停止回答失败")}finally{r.value=!1}}}async function mu(){try{const e=await Ce("/api/queue/cancel",{});se(e.cancelled?"已撤回排队消息":"没有待撤回的消息")}catch(e){tt(e,"撤回排队消息失败")}}async function Ci(){if(!r.value){r.value=!0;try{const e=await Ce("/api/queue/send-now",{});se(e.interrupted?"已打断并发送排队消息":"已发送排队消息")}catch(e){tt(e,"发送排队消息失败")}finally{r.value=!1}}}function Is(e){const n=z(e),c=F;return{url:n,revision:Z,isCurrent:()=>c===F&&n===z(e)}}async function As(e,n=()=>!0){if(!e.isCurrent()||!n()||e.revision===Z)return;const c=Z;try{const u=new URL(e.url,window.location.origin);u.pathname="/api/state";const p=await ye(`${u.pathname}${u.search}`,{cache:"no-store"}),v=await p.json();p.ok&&e.isCurrent()&&n()&&c===Z&&Ts(v)}catch{}}function Cs(){F+=1,bt+=1,Gt=Promise.resolve(),o.fastModeMutating=!1,o.compactSaving=!1,o.modelSaving=!1,o.contextWindowSaving=!1,o.modelModalOpen=!1,o.contextWindowModalOpen=!1,o.modelError="",o.contextWindowError="",o.pendingSessionSettings={},ie=void 0,document.body.classList.remove("context-window-open")}function Ms(e,n){se(`${e}${n.deferred===!0?"将在下一轮生效":"已生效"}`)}function Mi(e){ie=document.activeElement,document.body.classList.add("context-window-open"),nt(()=>{var n;return(n=document.querySelector(e))==null?void 0:n.focus()})}function Ri(){document.body.classList.remove("context-window-open"),ie!=null&&ie.isConnected&&ie.focus(),ie=void 0}function Ni(e){if(e.key!=="Tab")return;const n=[...e.currentTarget.querySelectorAll('button:not(:disabled), input:not(:disabled), select:not(:disabled), [tabindex="0"]')].filter(p=>p.getClientRects().length),c=n[0],u=n.at(-1);e.shiftKey&&document.activeElement===c?(e.preventDefault(),u==null||u.focus()):!e.shiftKey&&document.activeElement===u&&(e.preventDefault(),c==null||c.focus())}async function bu(){if(o.compactSaving||o.pendingSessionSettings.compact)return;const e=Is("/api/compact");o.compactSaving=!0;try{const n=await Ce(e.url,{},!0);if(!e.isCurrent())return;n.deferred&&(o.pendingSessionSettings.compact=!0),Ms("压缩会话",n),await As(e)}catch(n){e.isCurrent()&&tt(n,"压缩上下文失败")}finally{e.isCurrent()&&(o.compactSaving=!1)}}function ku(){o.modelDraft=In.value.model||hi.value[0]||"";const e=In.value.reasoning;o.reasoningDraft=e===null?"off":(e==null?void 0:e.effort)||"default",ps.value.includes(o.reasoningDraft)||(o.reasoningDraft="default"),o.modelSearch="",o.modelError="",o.modelModalOpen=!0,Mi("#session-model-search")}function Bn(){o.modelModalOpen=!1,o.modelError="",Ri()}async function yu(){if(o.modelSaving||!o.modelDraft)return;const e=Is("/api/session-model"),n=o.modelDraft,c=ps.value.includes(o.reasoningDraft)?o.reasoningDraft:"default";o.modelSaving=!0,o.modelError="";try{const u=await Ce(e.url,{model:n,reasoning:c},!0);if(!e.isCurrent())return;delete o.pendingSessionSettings.model,delete o.pendingSessionSettings.reasoning,u.deferred?Object.assign(o.pendingSessionSettings,{model:u.modelSettings.model,reasoning:u.modelSettings.reasoning}):o.modelSettings=u.modelSettings,Bn(),Ms("模型",u),await As(e)}catch(u){e.isCurrent()&&(o.modelError=rt(u,"模型切换失败"))}finally{e.isCurrent()&&(o.modelSaving=!1)}}function vu(){o.contextWindowDraft=Sc.value,o.contextWindowError="",o.contextWindowModalOpen=!0,Mi("#context-window-input")}function Rs(){o.contextWindowModalOpen=!1,o.contextWindowError="",Ri()}function wu(){o.contextWindowError=""}async function _u(){var c;if(o.contextWindowSaving)return;const e=String(o.contextWindowDraft||"").trim();if(!/^\d+$/.test(e)||!Number.isSafeInteger(Number(e)*1e3)||Number(e)<=0){o.contextWindowError="请输入大于 0 的整数";return}const n=Is("/api/context-window");o.contextWindowSaving=!0,o.contextWindowError="";try{const u=await Ce(n.url,{value:e},!0);if(!n.isCurrent())return;const p=Number(u.contextWindowTokens);if(u.deferred)o.pendingSessionSettings.contextWindowTokens=p;else{delete o.pendingSessionSettings.contextWindowTokens;const v=((c=o.status)==null?void 0:c.metrics)||{};o.status={...o.status,metrics:{...v,contextWindowTokens:p,contextWindowSource:"session",contextUsageRatio:p>0?Number(v.estimatedInputTokens||0)/p:void 0}},Wr()}Rs(),Ms("上下文窗口",u),await As(n)}catch(u){n.isCurrent()&&(o.contextWindowError=rt(u,"调整失败"))}finally{n.isCurrent()&&(o.contextWindowSaving=!1)}}function xu(){const e=!fs.value,n=++bt,c=Is("/api/fast-mode");o.fastModeDraft=e,o.fastModeMutating=!0,Gt=Gt.catch(()=>{}).then(()=>Ce(c.url,{enabled:e},!0)).then(async u=>{!c.isCurrent()||n!==bt||(u.deferred?o.pendingSessionSettings.fastMode=u.fastMode===!0:(delete o.pendingSessionSettings.fastMode,o.fastMode=u.fastMode===!0),o.fastModeMutating=!1,Ms("快速模式",u),await As(c,()=>n===bt))}).catch(async u=>{if(!(!c.isCurrent()||n!==bt)){o.fastModeMutating=!1,tt(u,"快速模式切换失败");try{const p=await ye(c.url.replace("/api/fast-mode?","/api/state?")),v=await p.json();p.ok&&c.isCurrent()&&n===bt&&Ts(v)}catch{}}})}async function Ns(){o.activePanel="sessions",o.sessionsLoading=!0;try{if(i.value){const e=await ye("/api/admin/sessions"),n=await e.json().catch(()=>({}));if(!e.ok||n!=null&&n.error)throw Et(n,e.status);o.sessions=(n.groups||[]).flatMap(c=>(c.sessions||[]).map(u=>({...u,ownerUsername:c.user.username,ownerDeleted:c.user.deleted===!0}))),o.runningSessionIds=[]}else{const e=await ye(z("/api/sessions")),n=await e.json().catch(()=>({}));if(!e.ok||n!=null&&n.error||(n==null?void 0:n.ok)===!1)throw Et(n,e.status);o.sessions=n.sessions||[],o.runningSessionIds=n.runningSessionIds||[]}}catch(e){tt(e,"加载会话失败")}finally{o.sessionsLoading=!1}}async function Ls(){if(i.value){o.activePanel="users",o.adminUsersLoading=!0,o.adminUserError="";try{const e=await ye("/api/admin/users"),n=await e.json().catch(()=>({}));if(!e.ok||n!=null&&n.error)throw Et(n,e.status);o.adminUsers=n.users||[]}catch(e){o.adminUserError=rt(e,"加载用户失败")}finally{o.adminUsersLoading=!1}}}async function Su(){o.adminUserBusy=!0,o.adminUserError="";try{const e=await ye("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Q.value})}),n=await e.json().catch(()=>({}));if(!e.ok||n!=null&&n.error)throw Et(n,e.status);Q.value="",se("普通用户已创建"),await Ls()}catch(e){o.adminUserError=rt(e,"创建用户失败")}finally{o.adminUserBusy=!1}}async function Eu(e){if(window.confirm(`删除账号 ${e.username}?历史会话将保留。`)){o.adminUserBusy=!0,o.adminUserError="";try{const n=await ye("/api/admin/users/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e.username})}),c=await n.json().catch(()=>({}));if(!n.ok||c!=null&&c.error)throw Et(c,n.status);se("普通用户已删除"),await Ls()}catch(n){o.adminUserError=rt(n,"删除用户失败")}finally{o.adminUserBusy=!1}}}async function Tu(e){const n=typeof e=="object"?e:{sessionId:e},c=n.sessionId,u=_,p=I,v=Ke.adminOwnerUsername;if(i.value&&n.ownerUsername&&(Ke.adminOwnerUsername=n.ownerUsername,sessionStorage.setItem(Xn,n.ownerUsername)),o.pendingResumeSessionId=c,o.sessionResumeLoading=!0,await aa(c))o.activePanel="chat",se(i.value?`已打开 ${n.ownerUsername} 的会话`:"已打开会话");else{Ke.adminOwnerUsername=v,v?sessionStorage.setItem(Xn,v):sessionStorage.removeItem(Xn);const O=await la(u,p);se(O?"打开会话失败,已恢复原会话":"打开会话失败,运行时连接已断开")}o.sessionResumeLoading=!1,o.pendingResumeSessionId=""}async function Pr(){try{const e=await ye(z("/api/cpa-quota"));if(!e.ok)throw new Error(`cpa-quota ${e.status}`);const n=await e.json();o.cpaQuotas=Array.isArray(n==null?void 0:n.quotas)?n.quotas:[],o.cpaQuotaIndex>=o.cpaQuotas.length&&(o.cpaQuotaIndex=0),n!=null&&n.config&&(o.cpaConfig.loaded||(o.cpaConfig.url=String(n.config.url||""),o.cpaConfig.password=n.config.hasPassword?lr:"",o.cpaConfig.loaded=!0),o.cpaConfig.hasPassword=!!n.config.hasPassword)}catch{o.cpaQuotas=[],o.cpaQuotaIndex=0}}async function Li(){try{const e=await ye(z("/api/memory"));if(!e.ok)throw new Error(`memory ${e.status}`);const n=await e.json();o.memory={current:(n==null?void 0:n.current)||null,history:Array.isArray(n==null?void 0:n.history)?n.history:[],sampleMs:Number(n==null?void 0:n.sampleMs)||6e4,retentionMs:Number(n==null?void 0:n.retentionMs)||864e5}}catch{}}async function $s(){if(i.value)return;Cs();const e=_,n=I;if(ro(),_=q(),I="",x=!0,sessionStorage.setItem(y,_),sessionStorage.removeItem(E),o.sessionResumeLoading=!0,o.pendingResumeSessionId="",await Ln({silent:!0}))o.activePanel="chat",se("已创建新会话"),Ss();else{const u=await la(e,n);se(u?"新建会话失败,已恢复原会话":"新建会话失败,运行时连接已断开")}o.sessionResumeLoading=!1}function Ur(e){var n;return!!e&&String(((n=o.session)==null?void 0:n.sessionId)||"")===String(e)}function Br(e){return o.runningSessionIds.includes(e)}async function Iu(e){const n=o.sessions.find(u=>u.sessionId===e);if(Ur(e)){se(w.SESSION_ACTIVE);return}if(Br(e)){se(w.SESSION_RUNNING);return}if(await Un({title:"删除会话?",message:`“${(n==null?void 0:n.title)||e||"这个会话"}”删除后无法恢复。`,confirmLabel:"确认删除",tone:"danger"}))try{await Ce("/api/sessions/delete",{sessionId:e}),await Ns(),se("会话已删除")}catch(u){tt(u,"删除会话失败")}}async function zn(e){if(!l.value)return;o.activePanel="settings",o.settingsPage="";const n=e?`?provider=${encodeURIComponent(e)}`:"";try{const c=await ye(z(`/api/login${n}`)),u=await c.json().catch(()=>({}));if(!c.ok||u!=null&&u.error||(u==null?void 0:u.ok)===!1)throw Et(u,c.status);o.login=u,je.value=u.provider,Object.keys(Je).forEach(p=>delete Je[p]),Object.assign(Je,u.values||{}),await Promise.all([Pr(),zc(),Pc()])}catch(c){tt(c,"加载模型配置失败")}}async function $i(e){se(e!=null&&e.deferred?"已保存,下一轮生效":"提示词已保存"),await $n()}async function Au(){await zn(je.value)}async function Oi(){var u;if(!l.value)return;const[e,n]=await Promise.allSettled([Ce("/api/login",{provider:je.value,values:{...Je}}),Ce("/api/cpa-config",{url:o.cpaConfig.url,password:o.cpaConfig.password===lr?"":o.cpaConfig.password,preservePassword:o.cpaConfig.hasPassword&&(!o.cpaConfig.password||o.cpaConfig.password===lr)})]);if(n.status==="fulfilled"){const p=n.value;o.cpaQuotas=Array.isArray(p==null?void 0:p.quotas)?p.quotas:[],o.cpaQuotaIndex=0,o.cpaConfig.loaded=!0,o.cpaConfig.hasPassword=!!((u=p==null?void 0:p.config)!=null&&u.hasPassword),o.cpaConfig.password=o.cpaConfig.hasPassword?lr:""}if(e.status==="fulfilled"&&n.status==="fulfilled"){se("模型配置已保存");return}const c=[];e.status==="rejected"&&c.push(rt(e.reason,"模型配置保存失败")),n.status==="rejected"&&c.push(rt(n.reason,"CPA 配置保存失败")),se(c.join(";"))}function zr(e){const n=Number.parseFloat(String(e??"").replace("%",""));return Number.isFinite(n)?Math.max(0,Math.min(100,n)):0}function Di(e){const n=Number.parseFloat(String(e??"").replace("%",""));if(!Number.isFinite(n))return"—";const c=zr(n);return`${c.toFixed(c%1?1:0)}%`}function Pi(e){const n=new Date(e);return Number.isNaN(n.getTime())?"—":new Intl.DateTimeFormat("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1}).format(n)}function Ui(e){const n=new Date(e);return Number.isNaN(n.getTime())?"—":new Intl.DateTimeFormat("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1}).format(n)}function Bi(e){const n=o.cpaQuotas.length;n<2||(o.cpaQuotaIndex=(o.cpaQuotaIndex+e+n)%n)}function Cu(e){const n=String(e||"").trim();if(!n)return"Codex 凭据";const[c,u]=n.split("@");return!u||c.length<=3?n:`${c.slice(0,3)}***@${u}`}function Os(e){const n=Number(e);if(!Number.isFinite(n)||n<0)return"—";const c=n/1024/1024;return`${c.toFixed(c>=100?0:1)} MB`}function Mu(e){const n=new Date(e);return Number.isNaN(n.getTime())?"等待采样":new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(n)}function Ru(e){const n=new Date(e);return Number.isNaN(n.getTime())?"—":new Intl.DateTimeFormat("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(n)}function Nu(e){const n=_s.value.length;if(!n)return;const c=e.currentTarget.getBoundingClientRect(),u=Math.min(1,Math.max(0,(e.clientX-c.left)/Math.max(1,c.width)));ct.value=n===1?0:Math.round(u*(n-1))}function zi(){ct.value=-1}async function Ce(e,n,c=!1){const u=await ye(c?e:z(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),p=await u.json().catch(()=>({}));if(!u.ok||p!=null&&p.error||(p==null?void 0:p.ok)===!1)throw Et(p,u.status);return p}class Lu extends Error{constructor(n,c=""){super(n),this.name="ActionRequestError",this.code=c}}function Et(e,n){const c=String((e==null?void 0:e.errorCode)||(n===404?"API_NOT_FOUND":""));return new Lu((e==null?void 0:e.error)||`请求失败(${n})`,c)}function rt(e,n="操作失败"){const c=String((e==null?void 0:e.code)||"");if(c&&w[c])return w[c];const u=String((e==null?void 0:e.message)||e||"").trim();return u?`${n}:${u}`:n}function tt(e,n){se(rt(e,n))}function Vt(e){const n=Gd(jd(Hd(e.text||"")));return e.kind==="system"||e.kind==="meta"?$u(n):n}function $u(e){return String(e||"").replace(/^Interactive web UI enabled\.\s*Type \/help for commands\.\s*/i,"工作台已连接。输入 `/help` 可查看命令说明。").replace(/\bSession:\s*/gi,"会话:").replace(/\bTip:\s*/gi,"提示:").replace(/Start fresh/gi,"重新开始").replace(/\/reset clears the visible conversation and adds a reset marker so you can start a fresh thread in the same session\./gi,"`/reset` 会清空当前可见对话,并插入一个重置标记,方便你在同一会话中重新开始。").replace(/^new session\s+/i,"已新建会话:").replace(/^deleted session\s+/i,"已删除会话:").replace(/^resumed session\s+(.+?):\s+(\d+)\s+messages?\s+from\s+(.+)$/i,"已恢复会话:$1,共载入 $2 条消息,来源:$3").replace(/\((\d+)\s+resumed messages\)/gi,"(已恢复 $1 条消息)").replace(/\bType \/help for commands\./gi,"输入 `/help` 可查看命令说明。")}function Zt(e){var n;if(e.kind==="tool"||e.toolName){const c=Qt(e);return(n=e==null?void 0:e.toolPresentation)!=null&&n.label?String(e.toolPresentation.label):Fn(e)?"任务计划":e.title?g[e.title]||g[String(e.title).toLowerCase()]||e.title:g[c]||c}return e.title?g[e.title]||g[String(e.title).toLowerCase()]||e.title:e.kind==="assistant"?"助手":e.kind==="user"?"你":e.kind==="thinking"?"思考":"系统"}function Qt(e){return String((e==null?void 0:e.toolName)||"tool").trim()||"tool"}function Fn(e){return(e==null?void 0:e.kind)==="tool"&&Qt(e)==="plan_update"}function Ou(e){return Fn(e)||dt(e)||fn(e).length>0}function Fr(e){return(e==null?void 0:e.kind)==="meta"&&String((e==null?void 0:e.title)||"")==="提示词用法"}function Hn(e){return!!(e!=null&&e.compaction&&typeof e.compaction=="object")}function Du(e){var n;return(n=e==null?void 0:e.compaction)!=null&&n.modelDriven?"模型生成摘要":"确定性摘要"}function un(e){Hn(e)&&(o.compactionDetailLineId=e.id,document.body.classList.add("runtime-context-open"))}function Ds(){o.compactionDetailLineId=void 0,!o.runtimeContextModal&&!o.runtimeContextDetail&&!o.projectContextOpen&&document.body.classList.remove("runtime-context-open")}function jn(e){return((e==null?void 0:e.kind)==="tool"||(e==null?void 0:e.kind)==="error"&&(e==null?void 0:e.toolName))&&!Ou(e)}function Hr(e){return(e==null?void 0:e.kind)==="tool-group"&&Array.isArray(e.lines)}function Pu(e){return!e||e.presentationLevel==="primary"||Fr(e)||e.kind==="user"||e.kind==="assistant"?!0:dt(e)}function Uu(e){return!e||Pu(e)?!1:["thinking","tool","error","meta","system","agent"].includes(String(e.kind||"system"))}function Bu(e){const n=[];let c=[];const u=()=>{if(!c.length)return;const p=c.some(v=>(v==null?void 0:v.kind)!=="thinking");c.length===1||!p?n.push(...c):n.push({id:`tool-group:${c[0].id}`,kind:"tool-group",lines:c,live:c.some(v=>(v==null?void 0:v.live)===!0)}),c=[]};for(const p of e||[])Uu(p)?c.push(p):(u(),n.push(p));return u(),n}function dn(e){return o.expandedToolGroups[e==null?void 0:e.id]===!0}function zu(e,n){if(Hr(e))return La(n,()=>{o.expandedToolGroups[e.id]=!dn(e)})}function Fi(e){const n=new Map;for(const u of(e==null?void 0:e.lines)||[]){const p=(u==null?void 0:u.kind)==="thinking"?"思考":Zt(u);p&&n.set(p,(n.get(p)||0)+1)}const c=[...n.entries()].map(([u,p])=>({name:u,count:p}));return c.length?c:[{name:"过程",count:1}]}function jr(e){return((e==null?void 0:e.lines)||[]).flatMap((n,c)=>{var p;const u=String(((p=n==null?void 0:n.toolDisplay)==null?void 0:p.purpose)||"").trim();return u?[{id:`${n.id}:purpose:${c}`,text:u,live:(n==null?void 0:n.live)===!0}]:[]})}let Hi;function ji(e,n){Ut(e)&&(Hi=document.activeElement,o.toolDetailLineId=e.id,document.body.classList.add("tool-detail-open"),nt(()=>{var c;return(c=document.querySelector(".tool-result-modal-close"))==null?void 0:c.focus()}))}function Fu(e){return pn(bn.parse(String(e??"")))}function gn(){o.toolDetailLineId=void 0,document.body.classList.remove("tool-detail-open");const e=Hi;nt(()=>{e!=null&&e.isConnected&&e.focus()})}function Hu(e){if(e.key!=="Tab")return;const n=Array.from(e.currentTarget.querySelectorAll('button:not(:disabled), [tabindex="0"]')),c=n[0],u=n.at(-1);e.shiftKey&&document.activeElement===c?(e.preventDefault(),u==null||u.focus()):!e.shiftKey&&document.activeElement===u&&(e.preventDefault(),c==null||c.focus())}function Gi(e){var u;const n=e.target instanceof HTMLImageElement?e.target:null;if(!n||n.closest(".image-preview-modal"))return;const c=((u=n.closest("[data-preview-src]"))==null?void 0:u.dataset.previewSrc)||n.currentSrc||n.src;c&&(e.preventDefault(),e.stopPropagation(),ju(c,n.alt))}async function qi(e){const n=e.target instanceof Element?e.target.closest('a[data-resource-download="true"]'):null;if(!(n instanceof HTMLAnchorElement))return;e.preventDefault(),e.stopPropagation();const c=Number(n.dataset.resourceExpiresAt);if(Number.isFinite(c)&&c>0&&Date.now()>=c){se("下载链接已过期,请重新生成");return}try{const u=await ye(n.href);if(!u.ok){se(u.status===404||u.status===410?"下载链接已过期,请重新生成":`下载失败(${u.status})`);return}const p=URL.createObjectURL(await u.blob()),v=document.createElement("a");v.href=p,v.download=n.download||"download",document.body.appendChild(v),v.click(),v.remove(),setTimeout(()=>URL.revokeObjectURL(p),3e4)}catch{se("下载失败,请稍后重试")}}function ju(e,n=""){o.imagePreview={src:String(e||""),caption:String(n||"").trim()},document.body.classList.add("image-preview-open")}function Gr(){o.imagePreview=void 0,document.body.classList.remove("image-preview-open")}function Ot(e){return Kh(e)}function Wi(e){return qu(e).summary}function Ki(e){var n;return(((n=e==null?void 0:e.toolDisplay)==null?void 0:n.previews)||[]).filter(c=>c.content!==void 0&&c.content!==null&&String(c.content).trim()!=="")}function Dt(e){var n;return Array.isArray((n=e==null?void 0:e.toolStream)==null?void 0:n.steps)?e.toolStream.steps:[]}function Pt(e){return Qt(e)==="subagent_run"}function Ps(e){return["file_write","file_edit","write_file","edit_file"].includes(Qt(e).toLowerCase())}function qr(e){const n=Qt(e).toLowerCase();return n==="terminal_run"||n==="terminal_control"}function Vi(e){var n;return Array.isArray((n=e==null?void 0:e.toolDisplay)==null?void 0:n.previews)&&e.toolDisplay.previews.length>0&&(!Qt(e).startsWith("subagent_")||Qt(e)==="subagent_message")&&!(qr(e)&&(e==null?void 0:e.live)===!0&&Gu(e))}function Gn(e){var v,T,O,j;const n=Array.isArray((v=e==null?void 0:e.toolStream)==null?void 0:v.chunks)?e.toolStream.chunks:[];if(n.length)return n.map(B=>String((B==null?void 0:B.text)||"")).join("").trimEnd();const c=String(((T=e==null?void 0:e.toolStream)==null?void 0:T.stdout)||""),u=String(((O=e==null?void 0:e.toolStream)==null?void 0:O.stderr)||""),p=String(((j=e==null?void 0:e.toolStream)==null?void 0:j.output)||"");return[c,u,p].filter(Boolean).join(`
96
+ `).trimEnd()}function qn(e){var u,p,v;const n=String(((u=e==null?void 0:e.toolStream)==null?void 0:u.message)||"").trim(),c=String(((p=e==null?void 0:e.toolDisplay)==null?void 0:p.purpose)||((v=e==null?void 0:e.toolDisplay)==null?void 0:v.subject)||"").trim();return n&&n!==c?n:""}function Zi(e){return Dt(e).map(n=>`${(n==null?void 0:n.status)==="completed"?"✓":(n==null?void 0:n.status)==="failed"?"×":"•"} ${String((n==null?void 0:n.message)||"").trim()}${(n==null?void 0:n.status)==="unknown"||!(e!=null&&e.live)&&(n==null?void 0:n.status)==="running"?"(阶段结果未提供)":""}`.trimEnd()).join(`
97
+ `)}function Us(e){const n=new Map;for(const c of Dt(e)){const u=String((c==null?void 0:c.toolName)||"").trim();if(!u)continue;const p=n.get(u);n.set(u,{label:(p==null?void 0:p.label)||String((c==null?void 0:c.toolLabel)||u),count:((p==null?void 0:p.count)||0)+1})}return[...n.entries()].map(([c,u])=>({name:c,label:u.label,count:u.count}))}function Qi(e){return Dt(e).flatMap((n,c)=>{const u=String((n==null?void 0:n.message)||"").trim();return u?[{key:`${n.key}:${c}`,purpose:u}]:[]})}function Bs(e){return o.expandedToolGroups[`agent:${e==null?void 0:e.id}`]===!0}function Yi(e,n){return La(n,()=>{const c=`agent:${e==null?void 0:e.id}`;o.expandedToolGroups[c]=!o.expandedToolGroups[c]})}function Gu(e){return!!(qn(e)||Dt(e).length||Gn(e))}function zs(e){var p,v,T;const n=Number((p=e==null?void 0:e.toolStream)==null?void 0:p.current),c=Number((v=e==null?void 0:e.toolStream)==null?void 0:v.total);if(!Number.isFinite(n))return"";const u=String(((T=e==null?void 0:e.toolStream)==null?void 0:T.unit)||"").trim();return Number.isFinite(c)&&c>0?`${n}/${c}${u?` ${u}`:""}`:`${n}${u?` ${u}`:""}`}function qu(e){const n=(e==null?void 0:e.live)===!0,c=(e==null?void 0:e.titleStatus)==="failure"||(e==null?void 0:e.kind)==="error",u=n?{key:"running",label:"运行中"}:c?{key:"failed",label:"失败"}:{key:"completed",label:"成功"},p=e!=null&&e.toolDisplay&&typeof e.toolDisplay=="object"?e.toolDisplay:void 0,v=String((p==null?void 0:p.purpose)||(p==null?void 0:p.subject)||(e==null?void 0:e.bodyTitle)||"").trim();return{status:u,summary:v}}function Wu(e,n){const c=String(e||"").replace(/\s+/g," ").trim();return c.length>n?`${c.slice(0,n)}…`:c}function dt(e){return(e==null?void 0:e.kind)==="tool"&&String((e==null?void 0:e.toolName)||"").toLowerCase()==="image_create"}function Ku(e){return(e==null?void 0:e.live)&&dt(e)}function Xi(e){return dt(e)&&(e==null?void 0:e.pendingReplacement)===!0}function Vu(e){var c,u;if(Js(e)&&!dt(e)||((c=e==null?void 0:e.toolPresentation)==null?void 0:c.visibility)==="hidden"&&(e==null?void 0:e.kind)!=="error")return!0;if((e==null?void 0:e.kind)!=="user")return!1;const n=xa(e);return Kd(n)?String((u=Vd(n))==null?void 0:u.id)!==String(e==null?void 0:e.id):!Vt(e)&&Qs(e).length===0&&Zs(e==null?void 0:e.text).length===0}function Ji(e){const n=performance.now();o.coreToolTimings=yl(e==null?void 0:e.toolTimings,n),o.coreQueryTiming=yl(e!=null&&e.queryTiming?[e.queryTiming]:[],n)[0],o.timingTick=n}function Tt(e){if(!(e!=null&&e.toolUseId))return"";const n=o.coreToolTimings.find(u=>{var p;return u.id===((p=e.timing)==null?void 0:p.id)})??e.timing;if((n==null?void 0:n.status)==="queued")return"排队中";const c=Ao(n,o.timingTick,o.connected);return c===void 0?"":Mt(c)}function Wr(){var n,c,u,p,v,T,O,j,B;const e=(c=(n=o.status)==null?void 0:n.metrics)==null?void 0:c.contextUsageRatio;Kr("context",e===void 0?0:e*100),Kr("inputTokens",Number(((p=(u=o.status)==null?void 0:u.usage)==null?void 0:p.inputTokens)??((T=(v=o.status)==null?void 0:v.metrics)==null?void 0:T.estimatedInputTokens)??0)),Kr("outputTokens",Number(((j=(O=o.status)==null?void 0:O.usage)==null?void 0:j.outputTokens)??((B=o.status)==null?void 0:B.streamedOutputTokens)??0))}function Kr(e,n){const c=o.composerMetrics[e],u=Number.isFinite(n)?Math.max(0,n):0;if(!c.initialized){c.display=u,c.target=u,c.initialized=!0;return}Math.abs(c.target-u)<.001||(c.target=u,c.bump+=1,Zu())}function Zu(){if(et)return;const e=()=>{let n=!1;for(const c of Object.values(o.composerMetrics)){const u=c.target-c.display;if(Math.abs(u)<.01){c.display=c.target;continue}const p=Math.min(.42,Math.max(.14,Math.abs(u)>1e3?.32:.2)),v=Math.sin(Date.now()/90)*Math.min(Math.abs(u)*.018,c.target*.006+1);c.display+=u*p+v,c.display<0&&(c.display=0),n=!0}n?et=requestAnimationFrame(e):et=0};et=requestAnimationFrame(e)}function Vr(e){return`bump-${o.composerMetrics[e].bump%2}`}function Qu(e=[]){return new Map(e.map(n=>[String(n.taskId||n.agentId||n.description||n.type),n.status]))}function Yt(e){var c;const n=String((e==null?void 0:e.taskId)||(e==null?void 0:e.agentId)||(e==null?void 0:e.sessionId)||"");return(e==null?void 0:e.kind)==="terminal"?`${e.ownerSessionId||((c=o.session)==null?void 0:c.sessionId)||""}:${n}`:n}function Fs(e){return String((e==null?void 0:e.description)||(e==null?void 0:e.command)||(e==null?void 0:e.type)||"后台任务").replace(/\s+/g," ").trim()||"后台任务"}function Hs(e){const n=Fs(e);return n.length>72?`${n.slice(0,72)}…`:n}function ea(e){if((e==null?void 0:e.kind)==="terminal")return e.status!=="running"?Number.isFinite(e.durationMs)&&e.durationMs>=0?Mt(e.durationMs):"":Number.isFinite(e.createdAt)&&e.createdAt<=o.clockTick?Mt(o.clockTick-e.createdAt):"";if((e==null?void 0:e.kind)==="agent"){const p=Wh(e,o.clockTick);return p===void 0?"":Mt(p)}const n=e==null?void 0:e.createdAt,c=Number(n),u=Number.isFinite(c)&&c>0?c:Date.parse(String(n||""));return!Number.isFinite(u)||u<=0?"":Mt((e!=null&&e.completedAt?Date.parse(e.completedAt):o.clockTick)-u)}function ta(e){return String((e==null?void 0:e.prompt)||(e==null?void 0:e.command)||"").trim()}function Zr(e){o.backgroundTaskDetail={...e},document.body.classList.add("tool-detail-open")}function js(){o.backgroundTaskDetail=void 0,document.body.classList.remove("tool-detail-open")}function Yu(e="ready"){return{ready:"就绪",running:"运行中",preparing:"准备中",calling_model:"调用模型",thinking:"推理中",running_tools:"调用工具",injecting_context:"注入上下文",compacting:"压缩上下文",stopped:"已停止",error:"出错"}[e]||e}function Qr(e){return{pending:"排队中",running:"运行中",completed:"已完成",failed:"失败",killed:"已停止",stopped:"已停止",exited:"已退出",lost:"已失联",unknown:"未提供"}[e]||(e?"未知状态":"未提供")}function Yr(e){return f[e]||e}function Xu(e){return(e||[]).map(n=>({value:n,label:h[n]||n}))}function Ju(e){return((e==null?void 0:e.options)||[]).map(n=>({value:n,label:n||"默认"}))}function ed(e){return!["ansi","plain","diff"].includes(e.format)&&(Fr(e)||["assistant","thinking","system","tool"].includes(e.kind))}function td(e){return JSON.stringify((e==null?void 0:e.inputSchema)||{},null,2)}function Xr(e){Ke.isolation&&e==="prompt"||(o.runtimeContextModal=e,o.runtimeContextDetail=void 0,document.body.classList.add("runtime-context-open"),e==="plugins"&&$r(),e==="tools"&&xs())}function Jr(){o.runtimeContextDetail=void 0,o.runtimeContextModal="",document.body.classList.remove("runtime-context-open")}function eo(){o.runtimeContextDetail=void 0}function nd(){o.projectContextOpen=!0,o.projectContextDocument=void 0,document.body.classList.add("runtime-context-open")}function sd(e){o.projectContextDocument=e}function to(){if(o.projectContextDocument){o.projectContextDocument=void 0;return}o.projectContextOpen=!1,document.body.classList.remove("runtime-context-open")}async function rd(){o.cwdPicker.open=!0,o.cwdPicker.input=o.cwd||"",o.cwdPicker.selectionExplicit=!1,o.cwdPicker.error="",document.body.classList.add("cwd-picker-lock"),await qs(o.cwd)}function Gs(){o.cwdPicker.mutating||(o.cwdPicker.open=!1,o.cwdPicker.error="",document.body.classList.remove("cwd-picker-lock"))}async function qs(e=o.cwdPicker.input){o.cwdPicker.loading=!0,o.cwdPicker.error="";try{const n=new URL("/api/cwd",window.location.origin);String(e||"").trim()&&n.searchParams.set("path",String(e).trim());const c=await ye(z(`${n.pathname}${n.search}`)),u=await c.json().catch(()=>({}));if(!c.ok||u!=null&&u.error||(u==null?void 0:u.ok)===!1)throw Et(u,c.status);no(u)}catch(n){o.cwdPicker.error=rt(n,"无法打开路径")}finally{o.cwdPicker.loading=!1}}function od(e){return String(e||"").replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).at(-1)||String(e||"")}function no(e){const n=String(e.cwd||""),c={name:od(n),path:n};o.cwdPicker.cwd=n,o.cwdPicker.parent=e.parent||"",o.cwdPicker.home=e.home||"",o.cwdPicker.locations=Array.isArray(e.locations)?e.locations:o.cwdPicker.locations,o.cwdPicker.entries=Array.isArray(e.entries)?e.entries:[],o.cwdPicker.input=n,o.cwdPicker.selectedPath=e.fallback?"":n,o.cwdPicker.selectionExplicit=!1,o.cwdPicker.treeRoots=[c],o.cwdPicker.treeChildren={[n]:o.cwdPicker.entries},o.cwdPicker.treeExpanded={[n]:!0}}async function id(e){const n=new URL("/api/cwd",window.location.origin);n.searchParams.set("path",e);const c=await ye(z(`${n.pathname}${n.search}`)),u=await c.json().catch(()=>({}));if(!c.ok||u!=null&&u.error||(u==null?void 0:u.ok)===!1)throw Et(u,c.status);return Array.isArray(u.locations)&&(o.cwdPicker.locations=u.locations),u}async function ad(e){const n=e.path;if(o.cwdPicker.treeExpanded[n]){o.cwdPicker.treeExpanded={...o.cwdPicker.treeExpanded,[n]:!1};return}o.cwdPicker.error="";try{if(!o.cwdPicker.treeChildren[n]){const c=await id(n);o.cwdPicker.treeChildren={...o.cwdPicker.treeChildren,[n]:c.entries||[]}}o.cwdPicker.treeExpanded={...o.cwdPicker.treeExpanded,[n]:!0}}catch(c){o.cwdPicker.error=rt(c,"无法展开路径")}}function ld(e){o.cwdPicker.selectedPath=e.path,o.cwdPicker.selectionExplicit=!0,o.cwdPicker.input=e.path}async function cd(){const e=String(o.cwdPicker.input||"").trim();if(e){o.cwdPicker.mutating=!0,o.cwdPicker.error="";try{const n=await Ce("/api/cwd/create",{path:e});no(n)}catch(n){o.cwdPicker.error=rt(n,"新建失败")}finally{o.cwdPicker.mutating=!1}}}async function ud(e){if(await Un({title:"删除文件夹?",message:e.path,confirmLabel:"删除",tone:"danger"})){o.cwdPicker.mutating=!0;try{const c=await Ce("/api/cwd/delete",{path:e.path});no(c)}catch(c){o.cwdPicker.error=rt(c,"删除失败")}finally{o.cwdPicker.mutating=!1}}}async function dd(){const e=String(o.cwdPicker.selectionExplicit?o.cwdPicker.selectedPath:o.cwdPicker.input).trim();if(e&&!(!o.cwdPicker.selectionExplicit&&e===o.cwdPicker.cwd&&e!==o.cwd)){o.cwdPicker.mutating=!0,o.cwdPicker.error="";try{const n=await Ce("/api/cwd/change",{path:e});o.cwd=n.cwd||e,o.cwdPicker.open=!1,document.body.classList.remove("cwd-picker-lock"),await $n(),se(n.unchanged?"工作目录未变":"工作目录已切换")}catch(n){o.cwdPicker.error=rt(n,"切换失败")}finally{o.cwdPicker.mutating=!1}}}function gd(e){e&&(o.runtimeContextDetail={kind:"tool",title:e.name,meta:e.strict?"严格模式":"兼容模式",description:e.description||"",schema:td(e)})}function Ws(e){if(Fn(e))return pd(e);if(Ut(e))return ao(e);if(fn(e).length)return da(e);if(bd(e))return wd(e);if(kd(e))return yd(e);const n=Vt(e),c=ga(e),u=c.map(O=>`${O.kind}:${O.reference||""}:${O.url}:${O.label||O.downloadName||""}:${O.expiresAt||""}`).join("|"),p=[e.id,e.kind,e.format,e.title,e.titleStatus,e.live?"1":"0",u,n].join(""),v=_t.get(p);if(v!==void 0)return v;let T;return e.format==="diff"?T=oa(n):e.format==="ansi"||!ed(e)?T=Oa(Te(tr(n))):T=Ed(pn(bn.parse(n||""),c.map(fa)),c),_t.set(p,T),T}function fd(e){if(!e)return"";if(dt(e))return Nd(e);const n=Vt(e);if(e.format==="diff"||/(?:^|\n)---\s+.+\n\+\+\+\s+/.test(n))return oa(n);if(e.format==="ansi")return`<pre class="tool-detail-pre">${Te(tr(n))}</pre>`;const c=io(n);if(c){const u=JSON.stringify(c,null,2);return pn(bn.parse(`\`\`\`json
98
+ ${u}
99
+ \`\`\``))}return`<pre class="tool-detail-pre">${Te(tr(n))}</pre>`}function pd(e){const n=hd(e),c=Array.isArray(n==null?void 0:n.items)?n.items:[];if(!n||!c.length)return pn(bn.parse(Vt(e)||""));const u=sa(c),p=Number.isFinite(Number(n.completed))?Number(n.completed):u.completed,v=Number.isFinite(Number(n.total))?Number(n.total):u.total,T=Te(n.title||"任务计划"),O=na(c);return`<section class="plan-card"><div class="plan-card-head"><strong>${T}</strong><span class="plan-progress-label">${p} / ${v}</span></div><ol class="plan-items">${O}</ol></section>`}function na(e,n=0){return e.map((c,u)=>{const p=ra(c==null?void 0:c.status),v=p==="completed"?"✓":p==="in_progress"?"●":p==="failed"?"!":String(u+1),T=Array.isArray(c==null?void 0:c.subitems)?c.subitems:[],O=T.length?`<ol class="plan-subitems" aria-label="${Te((c==null?void 0:c.description)||`步骤 ${u+1}`)}的子步骤">${na(T,n+1)}</ol>`:"";return`<li class="plan-item status-${p}" data-plan-depth="${n}"><div class="plan-item-row"><span class="plan-item-marker" role="img" aria-label="${md(p)}">${v}</span><span class="plan-item-text">${Te((c==null?void 0:c.description)||`步骤 ${u+1}`)}</span></div>${O}</li>`}).join("")}function sa(e){return e.reduce((n,c)=>{if(n.total+=1,ra(c==null?void 0:c.status)==="completed"&&(n.completed+=1),Array.isArray(c==null?void 0:c.subitems)&&c.subitems.length){const u=sa(c.subitems);n.total+=u.total,n.completed+=u.completed}return n},{total:0,completed:0})}function hd(e){const n=String((e==null?void 0:e.text)||""),c=io(n),u=c!=null&&c.output&&typeof c.output=="object"?c.output:c;if(Array.isArray(u==null?void 0:u.items))return u;const p=n.split(/\r?\n/).map(B=>B.trim()).filter(Boolean),v=/^(\d+)\s*\/\s*(\d+)\s+completed/i.exec(p[0]||""),O=p.filter(B=>/^[-*]\s+/.test(B)).map(B=>{let ge=B.replace(/^[-*]\s+/,"").trim(),Ee="pending";return/^~~[\s\S]+~~$/.test(ge)?(Ee="completed",ge=ge.slice(2,-2).trim()):/^[▶►●]\s*/.test(ge)?(Ee="in_progress",ge=ge.replace(/^[▶►●]\s*/,"").trim()):/^[!✗×]\s*/.test(ge)&&(Ee="failed",ge=ge.replace(/^[!✗×]\s*/,"").trim()),{description:ge,status:Ee}});return{title:"当前执行计划",note:p.slice(v?1:0).filter(B=>!/^[-*]\s+/.test(B)).join(" "),items:O,completed:v?Number(v[1]):O.filter(B=>B.status==="completed").length,total:v?Number(v[2]):O.length}}function ra(e){const n=String(e||"pending").toLowerCase().replace(/[\s-]+/g,"_");return n==="complete"||n==="done"?"completed":n==="running"||n==="inprogress"?"in_progress":n==="error"?"failed":["completed","in_progress","failed","pending"].includes(n)?n:"pending"}function md(e){return{completed:"已完成",in_progress:"进行中",failed:"失败",pending:"待处理"}[e]||"待处理"}function oa(e){return`<pre class="diff-block">${Te(e)}</pre>`}function Ut(e){return dt(e)&&/\b(ok|failed|generated|edited|image\s+(?:generate|edit)\s+failed)\b/i.test(String((e==null?void 0:e.text)||""))}function bd(e){const n=String((e==null?void 0:e.title)||"").toLowerCase();return(e==null?void 0:e.kind)==="tool"&&n==="image_note"}function kd(e){const n=String((e==null?void 0:e.title)||"").toLowerCase();return(e==null?void 0:e.kind)==="tool"&&n==="skill_read"}function yd(e){return pn(bn.parse(`技能${vd((e==null?void 0:e.text)||"")}`))}function vd(e){var p,v,T;const n=String(e||""),c=((p=/\bname:\s*([^\s]+)/i.exec(n))==null?void 0:p[1])||((v=/(?:^|\s)skill:\s*([^\s]+)/i.exec(n))==null?void 0:v[1])||((T=/(?:^|\s)id:\s*([^\s]+)/i.exec(n))==null?void 0:T[1]),u=String(c||"").trim();return u||""}function wd(e){return pn(bn.parse(`图片记录${_d((e==null?void 0:e.text)||"")}`))}function _d(e){const n=xd(e);return n?` ${n}`:""}function xd(e){var O,j,B,ge,Ee;const n=String(e||""),c=(O=/(?:^|\s)(?:storagePath|path|file|filename):\s*([^\s]+\.(?:png|jpe?g|webp|gif|bmp|avif|txt))/i.exec(n))==null?void 0:O[1],u=c?so(c.split(/[\\/]/).pop()||""):"";if(u)return u;const p=(j=/(?:^|\s)imageRef:\s*([^\s]+)/i.exec(n))==null?void 0:j[1],v=so(p||"");if(v)return v;const T=((B=/(?:^|\s)tags:\s*(?:[-*]\s*)?([^\n\r,,]+)/i.exec(n))==null?void 0:B[1])||((ge=/(?:^|\s)detectedText:\s*(?:[-*]\s*)?([^\n\r,,]+)/i.exec(n))==null?void 0:ge[1])||((Ee=/(?:^|\s)caption:\s*([^.,,。;\n\r]{2,24})/i.exec(n))==null?void 0:Ee[1]);return so(T||"")}function so(e){let n=String(e||"").trim();return n=n.replace(/\.base64\.txt$/i,"").replace(/\.(?:png|jpe?g|webp|gif|bmp|avif|txt)$/i,""),n=n.replace(/^[-*]\s*/,"").replace(/[_-]+/g," ").replace(/\s+/g," ").trim(),!n||/^ok$/i.test(n)?"":n.length>18?`${n.slice(0,18)}...`:n}async function ia(){if(!($||!I)){$=!0;try{if(!await aa(I))throw new Error("无法重新绑定目标会话")}catch(e){se(`会话恢复失败:${e.message||e}`)}finally{$=!1}}}async function aa(e){var u;const n=String(e||"").trim();return!n||(n!==I&&Cs(),ro(),I=n,x=!1,sessionStorage.setItem(E,n),!await Ln({silent:!0})||String(((u=o.session)==null?void 0:u.sessionId)||"")!==n)?!1:(Ss(),!0)}async function la(e,n){Cs(),ro(),_=e,I=n,x=!n,sessionStorage.setItem(y,e),n?sessionStorage.setItem(E,n):sessionStorage.removeItem(E);const c=await Ln({silent:!0});return c&&Ss(),c}function ro(){Me&&Me.close(),Me=void 0,qe&&cancelAnimationFrame(qe),qe=0,Es(),ee=void 0,Rt=!1,o.connected=!1,o.connecting=!0}function fn(e){return Array.isArray(e==null?void 0:e.resources)?e.resources.filter(n=>n&&typeof n=="object"&&typeof n.url=="string"&&n.url):[]}function oo(e){return fn(e).filter(n=>n.kind==="embed")}function ca(e){return fn(e).filter(n=>n.kind!=="embed")}function Sd(e){const n=new URL(e.url,window.location.origin);return n.searchParams.set("theme",le.value),n.origin===window.location.origin?it(`${n.pathname}${n.search}${n.hash}`):n.href}function ua(e){const n=Number(e==null?void 0:e.height);return Number.isFinite(n)?Math.max(240,Math.min(1600,Math.round(n))):640}function da(e){const n=ca(e);return n.length?`<div class="resource-result"><div class="resource-grid">${n.map((u,p)=>{const v=Te(u.label||u.downloadName||`资源 ${p+1}`),T=Te(it(u.url)),O=u.sizeBytes?go(u.sizeBytes):"",j=u.expiresAt?Id(u.expiresAt):"",B=[O,j].filter(Boolean).join(" · "),ge=u.kind==="download"||u.downloadName,Ee=ge?"下载":"打开",Bt=ge?` download="${Te(u.downloadName||u.label||"")}"`:' target="_blank" rel="noreferrer noopener"';if(ge){const k=Te(O.replace(/\s+/g,"")),A=Number(u.expiresAt)||0;return`<a class="resource-file-link" href="${T}"${Bt} data-resource-download="true" data-resource-expires-at="${A}"><span class="resource-file-name">${v}</span>${k?`<span class="resource-file-size">(${k})</span>`:""}</a>`}return`<a class="resource-card resource-${Te(u.kind||"link")}" href="${T}"${Bt}><span class="resource-icon" aria-hidden="true"></span><span class="resource-main"><strong>${v}</strong><span>${Te(B||(ge?"文件已就绪":"资源已就绪"))}</span></span><span class="resource-action"><span>${Ee}</span><i aria-hidden="true">${ge?"↓":"↗"}</i></span></a>`}).join("")}</div></div>`:Oa(Te(tr(Vt(e))))}function ga(e){if((e==null?void 0:e.kind)!=="assistant")return[];const n=o.lines||[],c=n.findIndex(T=>String(T==null?void 0:T.id)===String(e==null?void 0:e.id)),u=c>=0?c:n.length,p=[],v=new Set;for(let T=0;T<u;T+=1){const O=n[T];if(!(O!=null&&O.live))for(const j of fn(O))v.has(j.url)||(v.add(j.url),p.push(j))}return p}function Ed(e,n){if(!n.length)return e;const c=new Map(n.map(p=>[fa(p),p]).filter(([p])=>p)),u=document.createElement("template");u.innerHTML=String(e||"");for(const p of u.content.querySelectorAll("a[href]")){const v=p.getAttribute("href")||"",T=c.get(v);T&&(p.classList.add("inline-resource-link",`inline-resource-${T.kind||"link"}`),p.setAttribute("href",it(T.url)),(T.kind==="download"||T.downloadName)&&(p.setAttribute("download",T.downloadName||T.label||""),p.removeAttribute("target"),p.removeAttribute("rel"),p.setAttribute("title",`下载 ${T.label||T.downloadName||"资源"}`),p.dataset.resourceDownload="true",p.dataset.resourceExpiresAt=String(Number(T.expiresAt)||0),T.sizeBytes&&(p.dataset.resourceSize=`(${go(T.sizeBytes).replace(/\s+/g,"")})`)))}return u.innerHTML}function fa(e){return String((e==null?void 0:e.reference)||"").trim()}function io(e){const n=String(e||"");if(!n.includes("{"))return null;const c=Td(n);c.sort((u,p)=>u.start-p.start||p.end-u.end);for(const{start:u,end:p}of c)try{return JSON.parse(n.slice(u,p+1))}catch{}return null}function Td(e){const n=[],c=[];let u=!1,p=!1;for(let v=0;v<e.length;v+=1){const T=e[v];if(u){p?p=!1:T==="\\"?p=!0:T==='"'?u=!1:(T===`
100
+ `||T==="\r")&&(u=!1,p=!1);continue}if(c.length&&T==='"'){u=!0;continue}if(T==="{"){c.push(v);continue}T==="}"&&c.length&&n.push({start:c.pop(),end:v})}return n}function Id(e){const n=Number(e);if(!Number.isFinite(n))return"";const c=n-Date.now();if(c<=0)return"已过期";const u=Mt(c);return u?`${u} 后过期`:"即将过期"}function Ad(e){return Xt(e).length||Ut(e)?ao(e):Cd(e)}function Cd(e){const n=Md(e),c=n.prompt?`<div class="image2-stage-prompt"><p>${Te(Wu(n.prompt,240))}</p></div>`:"";return`<div class="image2-stage"><div class="image2-diamond-field" aria-hidden="true">${Array.from({length:11},(p,v)=>`<i class="diamond-${v+1}"></i>`).join("")}<b></b></div>${c}</div>`}function Md(e){const n=io((e==null?void 0:e.text)||"")||{},c=n.input||n.arguments||n.args||n;return{mode:String(c.mode||"").toLowerCase(),model:String(c.model||""),size:String(c.size||""),prompt:String(c.prompt||"")}}function ao(e){const n=ha(e.text||"",e.imageResult),c=String(e.text||""),p=(e.titleStatus?e.titleStatus==="failure":/^(?:image_create\s+)?(?:failed|failure|error)\b/i.test(c.trim()))?"生成失败":n.mode==="edit"||/^edited\b/i.test(c.trim())?"修改完成":"生成完成",v=[n.count?`${n.count} 张`:"",n.model,`请求尺寸 ${Co(n.size).requested}`,n.quality,n.outputFormat,n.sourceImages?`源图 ${n.sourceImages} 张`:"",n.duration].filter(Boolean);return`<div class="image2-result"><div class="image2-summary"><strong>${Te(p)}</strong>${v.map(T=>`<span>${Te(T)}</span>`).join("")}</div></div>`}const Ks=Xh(),Vs=re([]);let lo=0;const pa=V(()=>{var n;const e=ut.value;return JSON.stringify([((n=o.session)==null?void 0:n.sessionId)||"",e==null?void 0:e.id,e==null?void 0:e.toolUseId,e==null?void 0:e.messageId,e&&Ut(e)?Xt(e).map(c=>[c.originalDecodeUrl,c.available,hn(c)]):[]])});De(pa,async e=>{var v;const n=++lo;Vs.value=[],Ks.clear();const c=((v=o.session)==null?void 0:v.sessionId)||"";Ks.setSession(c);const u=ut.value;if(!u||!Ut(u))return;const p=Xt(u);Vs.value=p.map(T=>({state:T.available?"loading":"unavailable"})),await Promise.all(p.map(async(T,O)=>{const j=await Ks.load({sessionId:c,originalUrl:T.originalDecodeUrl,available:T.available});n!==lo||e!==pa.value||j.state==="stale"||(Vs.value[O]=j)}))},{immediate:!0,flush:"sync"}),jt(()=>{++lo,Ks.clear()});function Rd(e,n){const c=Xt(e);return c.length?c.map((u,p)=>{const v=Vs.value[p],T=Co(n,u.available?v:{state:"unavailable"}),O=(v==null?void 0:v.state)==="loading"&&u.available?"加载中…":T.actual,j=Jh(e,u),B=`<div><dt>Alpha 通道</dt><dd>${wl(j==null?void 0:j.hasAlphaChannel)}</dd></div><div><dt>透明像素</dt><dd>${wl(j==null?void 0:j.hasTransparentPixels)}</dd></div>`;return`<section class="image2-detail-prompt" data-original-dimensions="${p}"><span>${Te(Jt(u,p))}</span><dl class="image2-detail-grid"><div><dt>请求尺寸</dt><dd>${Te(T.requested)}</dd></div><div><dt>实际尺寸</dt><dd>${Te(O)}</dd></div>${B}</dl>${T.mismatch?"<p>实际尺寸与请求尺寸不同(保留原图)</p>":""}</section>`}).join(""):"<p>实际尺寸:未知(未提供原图资源)</p>"}function Nd(e){const n=ha((e==null?void 0:e.text)||"",e==null?void 0:e.imageResult),c=[["模型",n.model],["模式",n.mode],["请求尺寸",Co(n.size).requested],["质量",n.quality],["格式",n.outputFormat],["背景",n.background],["图片数量",n.count?`${n.count} 张`:""],["源图数量",n.sourceImages?`${n.sourceImages} 张`:""],["耗时",n.duration],["语义名称",n.semanticName],["开始时间",n.startedAt],["完成时间",n.finishedAt]].filter(([,T])=>T),u=c.length?`<dl class="image2-detail-grid">${c.map(([T,O])=>`<div><dt>${Te(T)}</dt><dd>${Te(O)}</dd></div>`).join("")}</dl>`:"",p=n.prompt?`<section class="image2-detail-prompt"><span>调用提示词</span><p>${Te(n.prompt)}</p></section>`:'<section class="image2-detail-prompt empty"><span>调用提示词</span><p>当前历史记录未保存提示词;新执行的 image_create 调用会在这里显示。</p></section>',v=n.revisedPrompt&&n.revisedPrompt!==n.prompt?`<section class="image2-detail-prompt"><span>修订提示词</span><p>${Te(n.revisedPrompt)}</p></section>`:"";return`<div class="image2-detail-view">${u}${Rd(e,n.size)}${p}${v}</div>`}function ha(e,n){const c=String(e||""),u=c.replace(/\s+/g," ").trim(),p=c.split(/\r?\n/).map(B=>B.trim()).filter(Boolean),v=/^(generated|edited)\s+(\d+)\s+images?/i.exec(p[0]||u),O=(p.find(B=>B.includes(" · "))||"").replace(/^requested:\s*/i,"").split(" · ").map(B=>B.trim()).filter(Boolean),j=Ld(u,["duration","durationMs","elapsed","elapsedMs"]);return{provider:Qe(u,"provider",["model","prompt"])||O[0]||"",model:Qe(u,"model",["prompt"])||O[1]||"",prompt:Qe(u,"prompt",["revisedPrompt","mode","semanticName","size","quality","outputFormat","background","returnedImages","startedAt","finishedAt","duration"]),mode:Qe(u,"mode",["semanticName","prompt","size","quality"]),semanticName:Qe(u,"semanticName",["prompt","size","quality","outputFormat"]),size:Qe(u,"size",["quality","outputFormat","background","returnedImages","duration"])||O.find(B=>B==="auto"||/^\d+x\d+$/i.test(B))||"",quality:Qe(u,"quality",["outputFormat","background","returnedImages","duration"])||O.find(B=>["auto","low","medium","high","xhigh","max"].includes(B.toLowerCase()))||"",outputFormat:Qe(u,"outputFormat",["background","returnedImages","images","duration"])||O.find(B=>["png","jpeg","jpg","webp"].includes(B.toLowerCase()))||"",background:Qe(u,"background",["returnedImages","images","startedAt","finishedAt","duration"]),sourceImages:Qe(u,"source images",["prompt","mode","semanticName","duration"]),count:Qe(u,"returnedImages",["images","index","duration"])||(v==null?void 0:v[2])||"",revisedPrompt:Qe(u,"revisedPrompt",["mode","semanticName","raw","created","data","b64_json","background","output_format","quality","size","usage","startedAt","finishedAt","duration"]),usage:Qe(u,"usage",["duration"]),startedAt:Qe(u,"startedAt",["finishedAt","duration"]),finishedAt:Qe(u,"finishedAt",["duration"]),duration:j===void 0?"":Mt(j),...Object.fromEntries(Object.entries(n||{}).filter(([B,ge])=>["model","size","quality","outputFormat","background","prompt","mode","semanticName"].includes(B)&&typeof ge=="string"))}}function Qe(e,n,c){var T;const u=c.length?`(?=\\s(?:${c.map(Wn).join("|")}):)`:"$",v=new RegExp(`(?:^|\\s)${Wn(n)}:\\s*([\\s\\S]*?)${u}`,"i").exec(e);return((T=v==null?void 0:v[1])==null?void 0:T.replace(/\[(?:base64 image|data URL) omitted[^\]]*\]/gi,"").trim().replace(/\s{2,}/g," "))||""}function Ld(e,n){for(const c of n){const u=new RegExp(`(?:^|\\s)${Wn(c)}:\\s*(\\d+(?:\\.\\d+)?)\\s*ms?\\b`,"i").exec(e);if(u)return Number(u[1])}}function Wn(e){return String(e).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function pn(e,n=[]){const c=new Set(n.map(O=>String(O||"").trim()).filter(Boolean)),u=document.createElement("template");u.innerHTML=String(e);const p=new Set(["A","P","BR","STRONG","B","EM","I","CODE","PRE","BLOCKQUOTE","UL","OL","LI","H1","H2","H3","H4","H5","H6","HR","TABLE","THEAD","TBODY","TR","TH","TD","DEL","S","INPUT"]),v=document.createTreeWalker(u.content,NodeFilter.SHOW_ELEMENT),T=[];for(;v.nextNode();)T.push(v.currentNode);for(const O of T){if(!p.has(O.tagName)){O.replaceWith(document.createTextNode(O.textContent||""));continue}for(const j of Array.from(O.attributes)){const B=j.name.toLowerCase(),ge=j.value;O.tagName==="A"&&B==="href"&&(pg(ge)||c.has(ge))||O.tagName==="A"&&B==="title"||O.tagName==="CODE"&&B==="class"&&/^language-[\w-]+$/.test(ge)||O.tagName==="PRE"&&B==="data-lang"&&/^[\w-]+$/.test(ge)||O.tagName==="INPUT"&&["type","checked","disabled"].includes(B)||O.removeAttribute(j.name)}O.tagName==="A"&&!c.has(O.getAttribute("href")||"")&&(O.setAttribute("target","_blank"),O.setAttribute("rel","noreferrer noopener"))}return $d(u.content),u.innerHTML}function $d(e){for(const n of e.querySelectorAll("pre > code")){const c=Od(n.className),u=n.textContent||"",p=n.parentElement;p&&c&&p.setAttribute("data-lang",c);try{const v=c&&Ie.getLanguage(c)?Ie.highlight(u,{language:c,ignoreIllegals:!0}):u.length<=2e4?Ie.highlightAuto(u):void 0;if(!v)continue;n.innerHTML=v.value,n.className=["hljs",v.language?`language-${v.language}`:c?`language-${c}`:""].filter(Boolean).join(" "),p&&v.language&&!p.hasAttribute("data-lang")&&p.setAttribute("data-lang",v.language)}catch{n.textContent=u}}}function Od(e){const n=/(?:^|\s)language-([\w-]+)/.exec(e||"")||/(?:^|\s)lang-([\w-]+)/.exec(e||"");if(!n)return"";const c=n[1].toLowerCase();return{cjs:"javascript",mjs:"javascript",node:"javascript",shell:"bash",zsh:"bash",powershell:"bash",ps1:"bash",python3:"python",yml:"yaml",html:"xml",vue:"xml"}[c]||c}function Dd(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),Ii())}function ma(e){var n;if(e.key==="Escape"&&o.confirmDialog.open){e.preventDefault(),cn(!1);return}if(e.key==="Escape"&&o.modelModalOpen){e.preventDefault(),Bn();return}if(e.key==="Escape"&&o.contextWindowModalOpen){e.preventDefault(),Rs();return}if(e.key==="Escape"&&o.compactionDetailLineId!==void 0){e.preventDefault(),Ds();return}if(e.key==="Escape"&&o.backgroundTaskDetail){e.preventDefault(),js();return}if(e.key==="Escape"&&o.projectContextOpen){e.preventDefault(),to();return}if(e.key==="Escape"&&o.cwdPicker.open){e.preventDefault(),Gs();return}if(e.key==="Escape"&&o.runtimeContextDetail){e.preventDefault(),eo();return}if(e.key==="Escape"&&o.runtimeContextModal){e.preventDefault(),Jr();return}if(e.key==="Escape"&&o.imagePreview){e.preventDefault(),Gr();return}if(e.key==="Escape"&&o.toolDetailLineId!==void 0){e.preventDefault(),gn();return}(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==="k"&&(e.preventDefault(),(n=H.value)==null||n.focus()),(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==="c"&&!oe.value&&Ai()}function Pd(){var e;try{const n=localStorage.getItem(_l);if(n==="light"||n==="dark")return n}catch{}return(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}function Ud(e){var n,c,u,p;document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=e,(n=document.querySelector('meta[name="theme-color"]'))==null||n.setAttribute("content",e==="dark"?"#0c0c0f":"#ffffff"),(p=(u=(c=window.__TAURI__)==null?void 0:c.core)==null?void 0:u.invoke)==null||p.call(u,"sync_window_theme",{theme:e}).catch(()=>{});try{localStorage.setItem(_l,e)}catch{}}function ba(){le.value=le.value==="dark"?"light":"dark"}async function Bd(e){var u;const n=Array.from(((u=e.clipboardData)==null?void 0:u.files)||[]).filter(p=>p.type.startsWith("image/"));if(!n.length)return;e.preventDefault();const c=[];for(const p of n){const v=++o.attachmentCounter,T=`[img#${v}]`,O=await Aa(p);O.compressionRate>0&&c.push(O.compressionRate),o.attachments.push({kind:"image",imageId:ya(),label:T,mimeType:O.mimeType,data:O.data,previewUrl:O.previewUrl,name:p.name||`图片 ${v}`})}se(`已添加 ${n.length} 张图片附件`),c.length&&setTimeout(()=>se(Ra(c)),0)}function zd(){var e;(e=te.value)==null||e.click()}async function Fd(e){var c;const n=Array.from(((c=e==null?void 0:e.target)==null?void 0:c.files)||[]);n.length&&(await ka(n),e!=null&&e.target&&(e.target.value=""))}async function ka(e){var u;if(!e.length||o.uploadingFiles)return;o.uploadingFiles=!0;const n=Zh(e,p=>{o.uploadProgress=p}),c=z("/api/uploads");try{const p=[],v=[];for(const[T,O]of e.entries()){if(O.type.startsWith("image/")){const B=await Aa(O,Ee=>n.update(T,Ee*.9)),ge=`[img#${++o.attachmentCounter}]`;B.compressionRate>0&&v.push(B.compressionRate),p.push({kind:"image",imageId:ya(),label:ge,name:O.name||ge,mimeType:B.mimeType,data:B.data,previewUrl:B.previewUrl}),n.complete(T);continue}const j=await Qh(c,O,B=>n.update(T,B));if(!((u=j==null?void 0:j.file)!=null&&u.absolutePath))throw new Error("upload response missing path");p.push({kind:"file",label:`[file#${++o.attachmentCounter}]`,name:j.file.name||O.name||`附件 ${o.attachmentCounter}`,mimeType:j.file.mimeType||O.type||"application/octet-stream",size:Number(j.file.size||O.size||0),absolutePath:j.file.absolutePath,relativePath:j.file.relativePath||""}),n.complete(T)}o.attachments.push(...p),n.succeed(),v.length&&setTimeout(()=>se(Ra(v)),0),se(`已上传 ${p.length} 个附件`)}catch(p){n.fail(),se(p.message||String(p))}finally{o.uploadingFiles=!1,o.uploadProgress=0}}function ya(){return typeof(crypto==null?void 0:crypto.randomUUID)=="function"?`image_${crypto.randomUUID()}`:`image_${Date.now().toString(16).slice(-8).padStart(8,"0")}-${Math.random().toString(16).slice(2,6).padEnd(4,"0")}-4${Math.random().toString(16).slice(2,5).padEnd(3,"0")}-a${Math.random().toString(16).slice(2,5).padEnd(3,"0")}-${Math.random().toString(16).slice(2,14).padEnd(12,"0")}`}function va(e,n){if(!n.length)return e;const c=n.map(u=>u.label).join(" ");return e.trim()?`${e.trim()}
101
+
102
+ ${c}`:c}function Hd(e){return String(e).replace(/\s*\[img#\d+\]\s*/g," ").replace(/[ \t]{2,}/g," ").trim()}function jd(e){return String(e).replace(P0,"").replace(U0,"").replace(B0,"").replace(/[ \t]{2,}/g," ").trim()}function Gd(e){return String(e||"").replace(new RegExp(`${Wn(z0)}[\\s\\S]*?${Wn(F0)}`,"g"),"").replace(/[ \t]{2,}/g," ").replace(/\n{3,}/g,`
103
+
104
+ `).trim()}function Zs(e){return Array.from(new Set(String(e||"").match(/\[img#\d+\]/g)||[]))}function wa(e){var u;const n=String(((u=o.session)==null?void 0:u.sessionId)||I||""),c=e.filter(p=>(p==null?void 0:p.kind)==="image"&&p.imageId&&p.previewUrl).map(p=>({sessionId:n,imageId:p.imageId,label:p.label,mimeType:p.mimeType,previewUrl:p.previewUrl,originalUrl:p.previewUrl,name:p.name,available:!0,pending:!0}));_a(c)}function qd(e){const n=[];for(const c of e||[])Ys(c,n);_a(n.map(co).filter(Boolean))}function hn(e){var c;const n=String((e==null?void 0:e.sessionId)||((c=o.session)==null?void 0:c.sessionId)||I||"");return e!=null&&e.imageId?`${n}:image:${e.imageId}`:e!=null&&e.messageId&&Number.isInteger(Number(e==null?void 0:e.blockIndex))?`${n}:block:${e.messageId}:${Number(e.blockIndex)}`:""}function _a(e){if(!e.length)return;const n=e.map(u=>{var p;return{...u,sessionId:String(u.sessionId||((p=o.session)==null?void 0:p.sessionId)||I||"")}}),c=new Set(n.map(hn).filter(Boolean));o.messageImagePreviews=[...o.messageImagePreviews.filter(u=>{const p=hn(u);return!p||!c.has(p)}),...n].slice(-200)}function Xt(e){var u;if(dt(e))return Wd(e);const n=(e==null?void 0:e.kind)==="user"?xa(e):[e],c=[];for(const p of n){c.push(...Qs(p));for(const v of Zs(p==null?void 0:p.text)){const T=String(((u=o.session)==null?void 0:u.sessionId)||I||""),O=o.messageImagePreviews.filter(B=>B.sessionId===T&&B.label===v),j=String((p==null?void 0:p.messageId)||"").startsWith("web-user-")?[...O].reverse().find(B=>B.pending):O.length===1?O[0]:void 0;j&&c.push(j)}}return uo(c)}function Wd(e){const n=[];Ys(e,n);for(const c of Zd(e))Ys(c,n);return uo(n.map(co).filter(Boolean))}function Qs(e){const n=[];return Ys(e,n),uo(n.map(c=>co(c)).filter(Boolean))}function xa(e){if((e==null?void 0:e.kind)!=="user")return[e];const n=String((e==null?void 0:e.messageId)||"");return n?(o.lines||[]).filter(u=>(u==null?void 0:u.kind)==="user"&&String((u==null?void 0:u.messageId)||"")===n):[e]}function Kd(e){return e.some(n=>Qs(n).length>0||Zs(n==null?void 0:n.text).length>0)}function Vd(e){return e.find(n=>Vt(n))||e.find(n=>Qs(n).length>0||Zs(n==null?void 0:n.text).length>0)||e[0]}function Zd(e){const n=o.lines||[],c=String((e==null?void 0:e.toolUseId)||"");if(c)return n.filter(v=>Js(v)&&String((v==null?void 0:v.parentToolUseId)||"")===c);const u=n.findIndex(v=>(v==null?void 0:v.id)===(e==null?void 0:e.id));if(u<0)return[];const p=[];for(let v=u+1;v<n.length;v+=1){const T=n[v];if(Js(T)&&!dt(T)){p.push(T);continue}if((T==null?void 0:T.kind)==="tool"||(T==null?void 0:T.kind)==="user"||(T==null?void 0:T.kind)==="assistant"&&String((T==null?void 0:T.text)||"").trim())break}return p}function Ys(e,n){if(!e||typeof e!="object")return;const c=p=>{var v;return n.push({...p,messageId:p.messageId||e.messageId,sessionId:p.sessionId||((v=o.session)==null?void 0:v.sessionId)||I||""})},u=[e.images,e.imageAttachments,e.attachments,e.thumbnails];for(const p of u)if(Array.isArray(p))for(const v of p)!v||v.kind&&v.kind!=="image"||v.type&&v.type!=="image"||c(v);if(Array.isArray(e.blocks))for(const p of e.blocks)(p==null?void 0:p.type)==="image"&&c(p);e.image&&c(e.image)}function co(e){var v,T,O,j,B;if(!e||typeof e!="object")return;const n=e.mimeType||((v=e.thumbnail)==null?void 0:v.mimeType)||((T=e.original)==null?void 0:T.mimeType)||"image/png",c=e.thumbnailSrc||((O=e.thumbnail)==null?void 0:O.src)||e.previewUrl||e.src||e.originalSrc||((j=e.original)==null?void 0:j.src)||e.originalUrl||Xs(e.data,n);if(!c&&e.available!==!1)return;const u=c?bo(c):"",p=Mo(e,Xs(e.data,n))||e.src||e.previewUrl||c;return{sessionId:String(e.sessionId||((B=o.session)==null?void 0:B.sessionId)||I||""),messageId:e.messageId,blockIndex:Number.isInteger(Number(e.blockIndex??e.index))?Number(e.blockIndex??e.index):void 0,imageId:e.imageId,label:e.label,mimeType:n,available:e.available!==!1&&!!u,error:e.error,previewUrl:u,originalUrl:p?bo(p):"",originalDecodeUrl:Mo(e,Xs(e.data,n))?bo(Mo(e,Xs(e.data,n))):"",name:e.name||e.filename||e.label,sizeBytes:e.sizeBytes,pending:e.pending===!0}}function Xs(e,n){return!e||typeof e!="string"?"":e.startsWith("data:")?e:`data:${n};base64,${e}`}function uo(e){const n=new Set,c=[];for(const[u,p]of e.entries()){const v=hn(p)||(p.previewUrl?`url:${p.previewUrl}`:`position:${p.messageId||"unknown"}:${p.blockIndex??u}`);n.has(v)||(n.add(v),c.push(p))}return c}function Jt(e,n){return(e==null?void 0:e.label)||(e!=null&&e.name&&!/^\[img#\d+\]$/.test(e.name)?e.name:`图片 ${n+1}`)}function Sa(e,n){const c=Qd(e==null?void 0:e.mimeType),u=((e==null?void 0:e.name)||(e==null?void 0:e.label)||`image-${n+1}`).replace(/[^\p{L}\p{N}._-]+/gu,"-").replace(/^-+|-+$/g,"")||`image-${n+1}`;return/\.[a-z0-9]{2,5}$/i.test(u)?u:`${u}.${c}`}function Qd(e){const n=String(e||"").toLowerCase();return n.includes("jpeg")?"jpg":n.includes("webp")?"webp":n.includes("gif")?"gif":"png"}function Js(e){return(e==null?void 0:e.kind)==="tool"&&String((e==null?void 0:e.parentToolName)||"").toLowerCase()==="image_create"}function Yd(e){return Js(e)&&Xt(e).length>0}function Ea(e){o.attachments=o.attachments.filter(n=>n.label!==e)}function Ta(){return o.attachments.filter(e=>e.kind==="file")}function Ia(){return o.attachments.filter(e=>e.kind==="image")}function Xd(e,n){return(e==null?void 0:e.name)||`附件 ${n+1}`}function Jd(e){return`${eg(e)} · ${go(e==null?void 0:e.size)}`}function eg(e){const n=String((e==null?void 0:e.mimeType)||"").toLowerCase();return n?n.includes("pdf")?"PDF":n.includes("spreadsheet")||n.includes("excel")||n.includes("csv")?"表格":n.includes("word")||n.includes("document")?"文档":n.startsWith("text/")?"文本":n.startsWith("image/")?"图片":"文件":"文件"}function go(e){const n=Number(e||0);return!Number.isFinite(n)||n<=0?"0 B":n<1024?`${n} B`:n<1024*1024?`${(n/1024).toFixed(n<10*1024?1:0).replace(/\.0$/,"")} KB`:n<1024*1024*1024?`${(n/(1024*1024)).toFixed(n<10*1024*1024?1:0).replace(/\.0$/,"")} MB`:`${(n/(1024*1024*1024)).toFixed(1).replace(/\.0$/,"")} GB`}async function Aa(e,n){const c=await Ca(e,n);return tg(c,e.type||"image/png")}async function Ca(e,n){return new Promise((c,u)=>{const p=new FileReader;p.onprogress=v=>{v.lengthComputable&&v.total>0&&(n==null||n(v.loaded/v.total))},p.onload=()=>{n==null||n(1),c(String(p.result||""))},p.onabort=()=>u(new Error("文件读取已取消")),p.onerror=()=>u(p.error||new Error("read failed")),p.readAsDataURL(e)})}async function tg(e,n="image/png"){const c=Ma(e,n),u=ng(c.base64),p=await rg(c.dataUrl).catch(()=>{});if(!p){const Ee=fo(c.base64);if(!Ee)throw new Error("图片格式异常,无法读取为有效图片");return{mimeType:c.mimeType,data:Ee,previewUrl:`data:${c.mimeType};base64,${Ee}`,compressionRate:0}}const v=Math.min(1,O0/Math.max(p.naturalWidth||p.width,p.naturalHeight||p.height));let T=Math.max(1,Math.round((p.naturalWidth||p.width)*v)),O=Math.max(1,Math.round((p.naturalHeight||p.height)*v)),j=.88,B;for(let Ee=0;Ee<8&&(B=await og(p,T,O,"image/jpeg",j),!(B.bytes<=D0||j<=Ro&&Math.max(T,O)<=1280));Ee+=1)j>Ro?j=Math.max(Ro,j-.1):(T=Math.max(1,Math.round(T*.82)),O=Math.max(1,Math.round(O*.82)));const ge=fo(B==null?void 0:B.base64);if(!ge)throw new Error("图片格式异常,无法转换为有效图片");return{mimeType:B.mimeType,data:ge,previewUrl:`data:${B.mimeType};base64,${ge}`,compressionRate:sg(u,B.bytes)}}function Ma(e,n){var T;const c=String(e||"").trim(),u=/^data:([^;,]+);base64,([\s\S]*)$/i.exec(c),p=(T=u==null?void 0:u[1])!=null&&T.startsWith("image/")?u[1]:n,v=u?u[2]:c;return{mimeType:p,base64:v,dataUrl:u?c:`data:${p};base64,${v}`}}function ng(e){const n=fo(e);if(!n)return 0;const c=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.max(0,Math.floor(n.length*.75)-c)}function sg(e,n){return!e||!n||n>=e?0:Math.round((1-n/e)*100)}function Ra(e){const n=Math.max(...e);return e.length>1?`图片已压缩,最高压缩率为 ${n}%`:`图片已压缩,压缩率为 ${n}%`}function fo(e){let n=String(e||"").trim().replace(/^data:[^;,]+;base64,/i,"").replace(/\s+/g,"");if(!n)return"";n=n.replace(/-/g,"+").replace(/_/g,"/");const c=n.length%4;if(c&&(n+="=".repeat(4-c)),!/^[A-Za-z0-9+/]*={0,2}$/.test(n))return"";try{return atob(n),n}catch{return""}}function rg(e){return new Promise((n,c)=>{const u=new Image;u.onload=()=>n(u),u.onerror=()=>c(new Error("image decode failed")),u.src=e})}async function og(e,n,c,u,p){const v=document.createElement("canvas");v.width=n,v.height=c;const T=v.getContext("2d");if(!T)throw new Error("canvas unavailable");T.fillStyle="#fff",T.fillRect(0,0,n,c),T.drawImage(e,0,0,n,c);const O=await new Promise(ge=>v.toBlob(ge,u,p));if(!O)throw new Error("image encode failed");const j=await Ca(O),B=Ma(j,u);return{mimeType:B.mimeType,base64:B.base64,bytes:O.size}}function Na(){return window.matchMedia("(max-width: 820px)").matches?50:64}function Kn(){const e=H.value;e&&(e.style.height=`${Na()}px`,e.scrollTop=0)}function ig(){const e=H.value;if(!e)return;e.style.height="auto";const n=window.innerHeight*(window.matchMedia("(max-width: 820px)").matches?.28:.34);e.style.height=`${Math.max(Na(),Math.min(e.scrollHeight,n))}px`}function ag(e){return String((e==null?void 0:e.id)??"")}function lg(e){const n=Wt.value[e];if(!n)return H0;if(Hr(n))return dn(n)?Math.min(1200,72+n.lines.reduce((u,p)=>u+po(p),0)):Math.max(72,52+jr(n).length*28);if(Hn(n))return 74;if(jn(n))return 88;const c=oo(n);return c.length?64+c.reduce((u,p)=>u+ua(p),0):dt(n)||cg(n)?Math.max(560,po(n)):po(n)}function po(e){const n=Vt(e),c=Math.max(1,n.split(`
105
+ `).length),u=Math.ceil(n.length/72);return Math.max(72,Math.min(1200,52+Math.max(c,u)*24))}function cg(e){return e!=null&&e.image||[e==null?void 0:e.images,e==null?void 0:e.imageAttachments,e==null?void 0:e.thumbnails].some(n=>Array.isArray(n)&&n.length)||Array.isArray(e==null?void 0:e.attachments)&&e.attachments.some(n=>(n==null?void 0:n.kind)==="image"||(n==null?void 0:n.type)==="image"||String((n==null?void 0:n.mimeType)||"").startsWith("image/"))?!0:Array.isArray(e==null?void 0:e.blocks)&&e.blocks.some(n=>(n==null?void 0:n.type)==="image")}function er(){const e=L.value,n=G.value;!e||!n||(Ar.value=Math.max(0,n.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop))}function ho(){var e;if(kt){kt.disconnect(),L.value&&kt.observe(L.value),G.value&&kt.observe(G.value);for(const n of((e=L.value)==null?void 0:e.children)||[])kt.observe(n)}}function ug(e){e instanceof Element&&an.value.measureElement(e)}async function La(e,n){var u;const c=(u=e==null?void 0:e.currentTarget)==null?void 0:u.closest(".virtual-message-row");Nr.value++,Re.pause();try{n(),await nt(),c!=null&&c.isConnected&&an.value.resizeItem(Number(c.dataset.index),c.getBoundingClientRect().height),await nt()}finally{Nr.value--}}function dg(){an.value.measure()}function mo(){Re.schedule()}function gg(){if(_t.size<300)return;const e=new Set(o.lines.map(n=>n.id));for(const n of _t.keys()){const c=Number(String(n).split("",1)[0]);e.has(c)||_t.delete(n)}_t.size>500&&_t.clear()}function se(e){o.toast=e,clearTimeout(En),En=setTimeout(()=>{o.toast=""},3600)}function fg(e){return["running","preparing","calling_model","thinking","running_tools","compacting","injecting_context"].includes(e)}function mn(e){if(e==null||!Number.isFinite(Number(e)))return"—";const n=Math.max(0,Math.round(Number(e)));return n>=1e6?`${$a(n/1e6)}m`:n>=1e4?`${Math.round(n/1e3)}k`:n>=1e3?`${$a(n/1e3)}k`:String(n)}function $a(e){return e>=10?e.toFixed(0):e.toFixed(1).replace(/\.0$/,"")}function tr(e){return String(e).replace(/\x1b\[[0-9;]*m/g,"")}function pg(e){try{const n=new URL(e,window.location.href);return["http:","https:","mailto:"].includes(n.protocol)}catch{return!1}}function Te(e){return String(e).replace(/[&<>"']/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[n])}function Oa(e){return e.replace(/(https?:\/\/[^\s<]+)/g,'<a target="_blank" rel="noreferrer noopener" href="$1">$1</a>')}function bo(e){const n=String(e||"");return n.startsWith("/api/images/")?z(n):n}function nr(){var e;(e=ne.value)==null||e.removeAttribute("open")}function Da(e){const n=ne.value;n!=null&&n.open&&!e.composedPath().includes(n)&&nr()}function Vn(e){if(ue.value="",nr(),e==="sessions")return Ns();if(e==="users")return Ls();if(e==="prompts")return Dr();if(e==="settings")return zn();o.activePanel="chat"}function Pa(){return ue.value="",nr(),$s()}return(e,n)=>{var c,u,p,v,T,O,j,B,ge,Ee,Bt;return m(),b(X,null,[a("div",em,[a("aside",tm,[a("div",nm,[a("button",{class:"theme-toggle celestial-theme-toggle",type:"button","aria-label":vs.value,"aria-pressed":ys.value,title:vs.value,onClick:ba},[...n[42]||(n[42]=[Ga('<span class="theme-orbit-scene" aria-hidden="true"><i class="theme-cloud theme-cloud-one"></i><i class="theme-cloud theme-cloud-two"></i><i class="theme-star theme-star-one"></i><i class="theme-star theme-star-two"></i><i class="theme-star theme-star-three"></i><span class="theme-orbit-body"><svg class="theme-sun" viewBox="0 0 28 28"><circle cx="14" cy="14" r="5.2"></circle><path d="M14 2.5v3M14 22.5v3M2.5 14h3M22.5 14h3M5.9 5.9 8 8M20 20l2.1 2.1M22.1 5.9 20 8M8 20l-2.1 2.1"></path></svg><svg class="theme-moon" viewBox="0 0 28 28"><path d="M20.8 18.8A9.2 9.2 0 0 1 9.2 7.2a9.2 9.2 0 1 0 11.6 11.6Z"></path><circle cx="10.2" cy="16.8" r="1"></circle><circle cx="15.4" cy="21" r=".75"></circle></svg></span></span>',1)])],8,sm)]),a("nav",rm,[i.value?C("",!0):(m(),b("button",{key:0,class:Y({active:o.activePanel==="chat"}),onClick:$s},[...n[43]||(n[43]=[a("span",{class:"nav-button-content"},[a("svg",{class:"ui-icon nav-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"M10 4v12M4 10h12"})]),a("span",null,"新建会话")],-1)])],2)),a("button",{class:Y({active:o.activePanel==="sessions"}),onClick:Ns},[...n[44]||(n[44]=[a("span",{class:"nav-button-content"},[a("svg",{class:"ui-icon nav-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"M5 4.5h10a1.5 1.5 0 0 1 1.5 1.5v8A1.5 1.5 0 0 1 15 15.5H8l-3.5 2v-3.5A1.5 1.5 0 0 1 3 12.5V6A1.5 1.5 0 0 1 4.5 4.5Z"}),a("path",{d:"M6.75 8h6.5M6.75 11h4.5"})]),a("span",null,"会话管理")],-1)])],2),i.value?(m(),b("button",{key:1,class:Y({active:o.activePanel==="users"}),onClick:Ls},[...n[45]||(n[45]=[a("span",{class:"nav-button-content"},[a("svg",{class:"ui-icon nav-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("circle",{cx:"7",cy:"7",r:"3"}),a("path",{d:"M2.5 16c.5-3 2-4.5 4.5-4.5s4 1.5 4.5 4.5M13 7h4M15 5v4"})]),a("span",null,"用户管理")],-1)])],2)):C("",!0),l.value?(m(),b("button",{key:2,class:Y({active:o.activePanel==="settings"}),onClick:n[0]||(n[0]=k=>zn())},[...n[46]||(n[46]=[a("span",{class:"nav-button-content"},[a("svg",{class:"ui-icon nav-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"M10 3.5v2M10 14.5v2M5.4 5.4l1.4 1.4M13.2 13.2l1.4 1.4M3.5 10h2M14.5 10h2M5.4 14.6l1.4-1.4M13.2 6.8l1.4-1.4"}),a("circle",{cx:"10",cy:"10",r:"2.75"})]),a("span",null,"模型配置")],-1)])],2)):C("",!0)]),a("button",{class:Y(["sidebar-card","session-entry",{working:$t.value}]),type:"button",onClick:n[1]||(n[1]=k=>o.activePanel="chat"),title:us.value},[n[47]||(n[47]=a("span",{class:"session-entry-icon","aria-hidden":"true"},[a("i",{class:"session-diamond"})],-1)),a("span",im,[a("span",{ref_key:"sessionTitleViewport",ref:ds,class:Y(["session-title-line",{marquee:Cr.value}])},[a("strong",{ref_key:"sessionTitleText",ref:fi},S(us.value),513),Cr.value?(m(),b("strong",am,S(us.value),1)):C("",!0)],2)])],10,om),$e(Ke).isolation?C("",!0):(m(),b("section",lm,[a("div",cm,[a("button",{type:"button",class:"mini-button",onClick:n[2]||(n[2]=k=>Dr())},"提示词管理")]),a("div",um,[o.promptLibraryLoading?(m(),b("div",dm,"正在加载…")):o.promptLibrary.length?(m(!0),b(X,{key:2},fe(o.promptLibrary,k=>{var A;return m(),b("article",{key:k.id,class:Y(["prompt-card",{active:((A=Kt.value)==null?void 0:A.id)===k.id}]),draggable:"true",onDragstart:Ye=>ou(Ye,k),onDragend:du,onDblclick:Ye=>Pn(k)},[a("div",pm,[a("strong",null,S(k.title),1)]),a("div",hm,[a("button",{type:"button",class:"mini-button",onClick:Ye=>Pn(k)},"应用",8,mm),a("button",{type:"button",class:"mini-button",onClick:Ye=>eu(k)},"编辑",8,bm)])],42,fm)}),128)):(m(),b("div",gm,"暂无提示词"))])])),$e(Ke).isolation?(m(),b("div",km,[a("button",{class:"logout-icon-button",type:"button","aria-label":"退出登录",title:`${(c=$e(Ke).user)==null?void 0:c.username} · 退出登录`,onClick:Oc},[...n[48]||(n[48]=[a("svg",{class:"ui-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"M8 4H4.75A1.75 1.75 0 0 0 3 5.75v8.5A1.75 1.75 0 0 0 4.75 16H8"}),a("path",{d:"M11 6.5 14.5 10 11 13.5M6.5 10h8"})],-1)])],8,ym)])):C("",!0)]),a("main",vm,[a("header",wm,[a("div",_m,[a("details",{ref_key:"mobileMenu",ref:ne,class:"mobile-nav-menu"},[n[52]||(n[52]=a("summary",{"aria-label":"打开导航菜单",title:"导航菜单"},[a("svg",{class:"ui-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"M4 5.5h12M4 10h12M4 14.5h12"})])],-1)),a("nav",null,[a("button",{type:"button",class:Y({active:o.activePanel==="chat"}),onClick:n[3]||(n[3]=k=>Vn("chat"))},"对话",2),i.value?C("",!0):(m(),b("button",{key:0,type:"button",onClick:Pa},"新建会话")),a("button",{type:"button",class:Y({active:o.activePanel==="sessions"}),onClick:n[4]||(n[4]=k=>Vn("sessions"))},"会话",2),i.value?(m(),b("button",{key:1,type:"button",class:Y({active:o.activePanel==="users"}),onClick:n[5]||(n[5]=k=>Vn("users"))},"用户",2)):C("",!0),$e(Ke).isolation?C("",!0):(m(),b("button",{key:2,type:"button",class:Y({active:o.activePanel==="prompts"}),onClick:n[6]||(n[6]=k=>Vn("prompts"))},"提示词",2)),l.value?(m(),b("button",{key:3,type:"button",class:Y({active:o.activePanel==="settings"}),onClick:n[7]||(n[7]=k=>Vn("settings"))},"模型配置",2)):C("",!0),(m(!0),b(X,null,fe(xe.value,k=>(m(),b("button",{key:k.id,type:"button",onClick:A=>Fe(k.id)},S(k.title),9,xm))),128)),o.coreVersion?(m(),b("div",{key:4,class:Y(["core-version","mobile-core-version",{celebrating:o.coreEasterEgg}]),role:"button",tabindex:"0",onClick:ln,onKeydown:[ft(me(ln,["prevent"]),["enter"]),ft(me(ln,["prevent"]),["space"])]},[n[49]||(n[49]=a("span",{class:"core-version-spark spark-a","aria-hidden":"true"},null,-1)),n[50]||(n[50]=a("span",{class:"core-version-spark spark-b","aria-hidden":"true"},null,-1)),n[51]||(n[51]=a("span",{class:"core-version-spark spark-c","aria-hidden":"true"},null,-1)),a("span",null,"内核版本 "+S(o.coreVersion),1)],42,Sm)):C("",!0)])],512),Tn.value?(m(),b("strong",{key:0,class:"mobile-session-title",title:Tn.value},S(Tn.value),9,Em)):C("",!0),a("button",{class:"ghost mobile-theme-toggle celestial-theme-toggle",type:"button","aria-label":vs.value,"aria-pressed":ys.value,title:vs.value,onClick:ba},[...n[53]||(n[53]=[Ga('<span class="theme-orbit-scene" aria-hidden="true"><i class="theme-cloud theme-cloud-one"></i><i class="theme-cloud theme-cloud-two"></i><i class="theme-star theme-star-one"></i><i class="theme-star theme-star-two"></i><i class="theme-star theme-star-three"></i><span class="theme-orbit-body"><svg class="theme-sun" viewBox="0 0 28 28"><circle cx="14" cy="14" r="5.2"></circle><path d="M14 2.5v3M14 22.5v3M2.5 14h3M22.5 14h3M5.9 5.9 8 8M20 20l2.1 2.1M22.1 5.9 20 8M8 20l-2.1 2.1"></path></svg><svg class="theme-moon" viewBox="0 0 28 28"><path d="M20.8 18.8A9.2 9.2 0 0 1 9.2 7.2a9.2 9.2 0 1 0 11.6 11.6Z"></path><circle cx="10.2" cy="16.8" r="1"></circle><circle cx="15.4" cy="21" r=".75"></circle></svg></span></span>',1)])],8,Tm),l.value?(m(),b("button",{key:1,class:"ghost desktop-config-button",onClick:n[8]||(n[8]=k=>zn())},"配置模型")):C("",!0),a("button",{class:"primary new-session-button",onClick:Pa},"+ 新建")])]),o.activePanel==="chat"?(m(),b("section",Im,[a("div",Am,[a("div",{ref_key:"transcript",ref:L,class:"transcript",tabindex:"0","aria-label":"对话记录"},[o.runtimeContext||o.runtimeContextLoading||o.runtimeContextError?(m(),b("section",Cm,[n[57]||(n[57]=a("div",{class:"runtime-context-bar-title"},[a("strong",null,"运行上下文")],-1)),o.runtimeContext?(m(),b("div",Mm,[$e(Ke).isolation?C("",!0):(m(),b("button",{key:0,type:"button",onClick:n[9]||(n[9]=k=>Xr("prompt"))},[n[54]||(n[54]=a("span",null,"系统提示词",-1)),a("strong",null,S(Rc.value.length),1)])),a("button",{type:"button",onClick:n[10]||(n[10]=k=>Xr("tools"))},[n[55]||(n[55]=a("span",null,"工具",-1)),a("strong",null,S(Lr.value.length),1)]),a("button",{type:"button",onClick:n[11]||(n[11]=k=>Xr("plugins"))},[n[56]||(n[56]=a("span",null,"插件",-1)),a("strong",null,S(Nc.value),1)])])):o.runtimeContextError?(m(),b("button",{key:1,type:"button",class:"runtime-context-retry",onClick:$n},"重试")):(m(),b("span",Rm,"同步中"))])):C("",!0),Rn.value.length?(m(),b("section",Nm,[n[59]||(n[59]=a("div",{class:"runtime-context-bar-title"},[a("strong",null,"项目上下文")],-1)),a("div",Lm,[a("button",{type:"button",onClick:nd},[n[58]||(n[58]=a("span",null,"文档",-1)),a("strong",null,S(Rn.value.length),1)])])])):C("",!0),a("div",{ref_key:"messageList",ref:G,class:"virtual-message-list",style:lt({height:`${Mc.value}px`})},[(m(!0),b(X,null,fe(Cc.value,k=>(m(),b("div",{key:k.key,ref_for:!0,ref:ug,class:"virtual-message-row","data-index":k.index,style:lt({transform:`translateY(${k.start-Ar.value}px)`})},[(m(!0),b(X,null,fe([Wt.value[k.index]],A=>{var Ye,yt,Ua,Ba;return m(),b(X,{key:A.id},[Hr(A)?(m(),b("article",{key:0,class:Y(["message","tool-group-message",{live:A.live,expanded:dn(A)}])},[a("div",Om,[a("button",{type:"button",class:"tool-group-trigger","aria-expanded":dn(A),onClick:D=>zu(A,D)},[a("span",Pm,[(m(!0),b(X,null,fe(Fi(A),(D,ae)=>(m(),b(X,{key:D.name},[a("span",Um,S(D.name),1),D.count>1?(m(),b("span",Bm,"×"+S(D.count),1)):C("",!0),ae<Fi(A).length-1?(m(),b("span",zm,"、")):C("",!0)],64))),128))]),n[60]||(n[60]=a("span",{class:"tool-group-chevron","aria-hidden":"true"},null,-1))],8,Dm),!dn(A)&&jr(A).length?(m(),Ge(_g,{key:0,name:"tool-purpose",tag:"div",class:"tool-group-purposes"},{default:wg(()=>[(m(!0),b(X,null,fe(jr(A),(D,ae)=>(m(),b("div",{key:D.id,class:Y(["tool-group-purpose",{live:D.live}]),style:lt({"--purpose-index":ae})},[a("span",null,S(D.text),1)],6))),128))]),_:2},1024)):C("",!0),dn(A)?(m(),b("div",Fm,[(m(!0),b(X,null,fe(A.lines,D=>{var ae,Xe,ko,za;return m(),b("div",{key:D.id,class:Y(["tool-group-result",`kind-${D.kind||"system"}`])},[D.kind==="thinking"?(m(),b("details",{key:0,class:"reasoning-sheet",open:D.live||void 0},[n[61]||(n[61]=a("summary",null,[a("span",{class:"reasoning-title-mark","aria-hidden":"true"},[a("i"),a("i"),a("i")]),a("span",{class:"reasoning-heading"},"思考")],-1)),a("div",jm,[a("div",Gm,[a("div",{class:"message-text markdown reasoning-text",innerHTML:Ws(D)},null,8,qm)])])],8,Hm)):Hn(D)?(m(),b("section",{key:1,class:Y(["compaction-context-bar",{current:D.compaction.current}]),role:"button",tabindex:"0","aria-label":"查看压缩上下文",onClick:We=>un(D),onKeydown:[ft(me(We=>un(D),["prevent"]),["enter"]),ft(me(We=>un(D),["prevent"]),["space"])]},[n[64]||(n[64]=a("div",{class:"compaction-context-title"},[a("strong",null,"压缩上下文")],-1)),a("div",Km,[a("span",null,[n[62]||(n[62]=a("span",null,"摘要",-1)),a("strong",null,S(mn(String(D.compaction.summary||"").length)),1)]),D.compaction.imageCount?(m(),b("span",Vm,[n[63]||(n[63]=a("span",null,"图片",-1)),a("strong",null,S(D.compaction.imageCount),1)])):C("",!0)])],42,Wm)):jn(D)?(m(),b("div",{key:2,class:Y(["tool-result-summary",`status-${Ot(D).key}`])},[a("div",Zm,[(m(),b("svg",{class:Y(["tool-result-diamond",{spinning:D.live}]),viewBox:"0 0 20 20","aria-hidden":"true"},[...n[65]||(n[65]=[a("path",{d:"M10 2.75 17.25 10 10 17.25 2.75 10Z"},null,-1)])],2)),a("strong",Qm,S(Zt(D)),1),Tt(D)?(m(),b("span",Ym,S(Tt(D)),1)):C("",!0),Ot(D).key==="failed"?(m(),b("span",Xm,"×")):C("",!0)]),a("div",Jm,[(ae=D.toolDisplay)!=null&&ae.purpose||(Xe=D.toolDisplay)!=null&&Xe.subject?(m(),b("p",eb,S(((ko=D.toolDisplay)==null?void 0:ko.purpose)||((za=D.toolDisplay)==null?void 0:za.subject)),1)):C("",!0),D.toolError?(m(),b("p",tb,S(D.toolError),1)):C("",!0),Pt(D)&&Dt(D).length?(m(),b("div",nb,[a("button",{type:"button",class:"tool-group-trigger","aria-expanded":Bs(D),onClick:We=>Yi(D,We)},[a("span",rb,[(m(!0),b(X,null,fe(Us(D),(We,Zn)=>(m(),b(X,{key:We.name},[a("span",ob,S(We.label),1),We.count>1?(m(),b("span",ib,"×"+S(We.count),1)):C("",!0),Zn<Us(D).length-1?(m(),b("span",ab,"、")):C("",!0)],64))),128))]),n[66]||(n[66]=a("span",{class:"tool-group-chevron","aria-hidden":"true"},null,-1))],8,sb),Bs(D)?(m(),b("div",lb,[(m(!0),b(X,null,fe(Qi(D),(We,Zn)=>(m(),b("div",{key:We.key,class:"tool-group-purpose",style:lt({"--purpose-index":Zn})},[a("span",null,S(We.purpose),1)],4))),128))])):C("",!0)])):!Ps(D)&&qn(D)?(m(),b("p",cb,[Jn(S(qn(D)),1),zs(D)?(m(),b("span",ub,S(zs(D)),1)):C("",!0)])):C("",!0),!Ps(D)&&!Pt(D)&&Dt(D).length?(m(),b("div",db,[a("section",gb,[a("pre",fb,S(Zi(D)),1)])])):C("",!0),!Pt(D)&&Gn(D)&&(!qr(D)||D.live===!0)?(m(),b("div",pb,[a("section",hb,[a("pre",mb,S(Gn(D)),1)])])):C("",!0),!Pt(D)&&Vi(D)?(m(),b("div",bb,[(m(!0),b(X,null,fe(Ki(D),(We,Zn)=>(m(),b("section",{key:`${We.kind}-${Zn}`,class:Y(["tool-result-preview",`kind-${We.kind}`])},[a("pre",kb,S(We.content),1)],2))),128))])):C("",!0)])],2)):(m(),b("div",yb,[Fn(D)?C("",!0):(m(),b("div",vb,[a("strong",null,S(Zt(D)),1),D.toolName&&Ot(D).key==="failed"?(m(),b("span",wb,"×")):C("",!0)])),a("div",{class:"message-text markdown",innerHTML:Ws(D)},null,8,_b)]))],2)}),128))])):C("",!0)])],2)):(m(),b("article",{key:1,class:Y(["message",A.kind||"system",{live:A.live,"prompt-usage":Fr(A),"context-compaction":Hn(A),"compact-tool":jn(A)}])},[a("div",{class:Y(["message-marker",{spinning:A.live}])},[...n[67]||(n[67]=[a("svg",{class:"message-marker-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"M10 2.75 17.25 10 10 17.25 2.75 10Z"})],-1)])],2),Hn(A)?(m(),b("div",xb,[a("section",{class:Y(["compaction-context-bar",{current:A.compaction.current}]),role:"button",tabindex:"0","aria-label":"查看压缩上下文",onClick:D=>un(A),onKeydown:[ft(me(D=>un(A),["prevent"]),["enter"]),ft(me(D=>un(A),["prevent"]),["space"])]},[n[70]||(n[70]=a("div",{class:"compaction-context-title"},[a("strong",null,"压缩上下文")],-1)),a("div",Eb,[a("span",null,[n[68]||(n[68]=a("span",null,"摘要",-1)),a("strong",null,S(mn(String(A.compaction.summary||"").length)),1)]),A.compaction.imageCount?(m(),b("span",Tb,[n[69]||(n[69]=a("span",null,"图片",-1)),a("strong",null,S(A.compaction.imageCount),1)])):C("",!0)])],42,Sb)])):A.kind==="thinking"?(m(),b("div",Ib,[a("details",{class:"reasoning-sheet",open:A.live||void 0},[a("summary",null,[n[71]||(n[71]=a("span",{class:"reasoning-title-mark","aria-hidden":"true"},[a("i"),a("i"),a("i")],-1)),n[72]||(n[72]=a("span",{class:"reasoning-heading"},"思考",-1)),Tt(A)?(m(),b("span",Cb,S(Tt(A)),1)):C("",!0)]),a("div",Mb,[a("div",Rb,[a("div",{class:"message-text markdown reasoning-text",innerHTML:Ws(A)},null,8,Nb)])])],8,Ab)])):(m(),b("div",Lb,[!Fn(A)&&(A.kind!=="tool"||fn(A).length)&&!jn(A)?(m(),b("div",$b,[a("strong",null,S(Zt(A)),1),A.toolName&&Ot(A).key==="failed"?(m(),b("span",Ob,"×")):C("",!0),!A.toolName&&A.titleStatus?(m(),b("span",Db,S(A.titleStatus),1)):C("",!0),Tt(A)?(m(),b("span",Pb,S(Tt(A)),1)):C("",!0)])):C("",!0),dt(A)?(m(),b("div",Ub,[a("div",{class:"message-text markdown image2-stage-wrap",innerHTML:Ad(A)},null,8,Bb),(m(!0),b(X,null,fe([Xt(A)],D=>(m(),b(X,{key:`${A.id}-image2-images`},[D.length?(m(),b("div",zb,[(m(!0),b(X,null,fe(D,(ae,Xe)=>(m(),b("figure",{key:hn(ae)||ae.previewUrl||Xe,class:Y(["message-image-attachment",{"image-unavailable":!ae.available}])},[ae.available&&ae.previewUrl?(m(),b("button",{key:0,type:"button",class:"image-preview-trigger","data-preview-src":$e(it)(ae.originalUrl||ae.previewUrl),"aria-label":`预览 ${Jt(ae,Xe)}`},[a("img",{src:$e(it)(ae.previewUrl),alt:Jt(ae,Xe),loading:"lazy",decoding:"async"},null,8,Hb)],8,Fb)):(m(),b("div",jb,"图片不可用")),a("figcaption",null,S(Jt(ae,Xe)),1),a("div",Gb,[ae.available&&ae.previewUrl?(m(),b("a",{key:0,class:"image-download",href:$e(it)(ae.originalUrl||ae.previewUrl),download:Sa(ae,Xe)},"下载",8,qb)):C("",!0),Xe===0&&Ut(A)?(m(),b("button",{key:1,type:"button",class:"image2-detail-button",onClick:ko=>ji(A)},"详情",8,Wb)):C("",!0)])],2))),128))])):Ut(A)?(m(),b("button",{key:1,type:"button",class:"image2-detail-button",onClick:ae=>ji(A)},"详情",8,Kb)):C("",!0)],64))),128))])):jn(A)?(m(),b("div",{key:2,class:Y(["tool-result-summary",`status-${Ot(A).key}`])},[a("div",Vb,[(m(),b("svg",{class:Y(["tool-result-diamond",{spinning:A.live}]),viewBox:"0 0 20 20","aria-hidden":"true"},[...n[73]||(n[73]=[a("path",{d:"M10 2.75 17.25 10 10 17.25 2.75 10Z"},null,-1)])],2)),a("strong",Zb,S(Zt(A)),1),Tt(A)?(m(),b("span",Qb,S(Tt(A)),1)):C("",!0),Ot(A).key==="failed"?(m(),b("span",Yb,"×")):C("",!0)]),a("div",Xb,[(Ye=A.toolDisplay)!=null&&Ye.purpose||(yt=A.toolDisplay)!=null&&yt.subject?(m(),b("p",Jb,S(((Ua=A.toolDisplay)==null?void 0:Ua.purpose)||((Ba=A.toolDisplay)==null?void 0:Ba.subject)),1)):C("",!0),A.toolError?(m(),b("p",ek,S(A.toolError),1)):C("",!0),Pt(A)&&Dt(A).length?(m(),b("div",tk,[a("button",{type:"button",class:"tool-group-trigger","aria-expanded":Bs(A),onClick:D=>Yi(A,D)},[a("span",sk,[(m(!0),b(X,null,fe(Us(A),(D,ae)=>(m(),b(X,{key:D.name},[a("span",rk,S(D.label),1),D.count>1?(m(),b("span",ok,"×"+S(D.count),1)):C("",!0),ae<Us(A).length-1?(m(),b("span",ik,"、")):C("",!0)],64))),128))]),n[74]||(n[74]=a("span",{class:"tool-group-chevron","aria-hidden":"true"},null,-1))],8,nk),Bs(A)?(m(),b("div",ak,[(m(!0),b(X,null,fe(Qi(A),(D,ae)=>(m(),b("div",{key:D.key,class:"tool-group-purpose",style:lt({"--purpose-index":ae})},[a("span",null,S(D.purpose),1)],4))),128))])):C("",!0)])):!Ps(A)&&qn(A)?(m(),b("p",lk,[Jn(S(qn(A)),1),zs(A)?(m(),b("span",ck,S(zs(A)),1)):C("",!0)])):C("",!0),!Ps(A)&&!Pt(A)&&Dt(A).length?(m(),b("div",uk,[a("section",dk,[a("pre",gk,S(Zi(A)),1)])])):C("",!0),!Pt(A)&&Gn(A)&&(!qr(A)||A.live===!0)?(m(),b("div",fk,[a("section",pk,[a("pre",hk,S(Gn(A)),1)])])):C("",!0),!Pt(A)&&Vi(A)?(m(),b("div",mk,[(m(!0),b(X,null,fe(Ki(A),(D,ae)=>(m(),b("section",{key:`${D.kind}-${ae}`,class:Y(["tool-result-preview",`kind-${D.kind}`])},[a("pre",bk,S(D.content),1)],2))),128))])):C("",!0)])],2)):(m(),b(X,{key:3},[oo(A).length?(m(),b(X,{key:0},[a("div",kk,[(m(!0),b(X,null,fe(oo(A),D=>(m(),b("iframe",{key:D.url,class:"plugin-resource-frame",src:Sd(D),title:D.label||"插件资源",style:lt({height:`${ua(D)}px`}),loading:"lazy",allow:"fullscreen",allowfullscreen:""},null,12,yk))),128))]),ca(A).length?(m(),b("div",{key:0,class:"message-text markdown",innerHTML:da(A)},null,8,vk)):C("",!0)],64)):A.kind==="assistant"&&A.live?(m(),b("div",wk,[It(Ah,{text:A.text||"","exposed-resources":ga(A)},null,8,["text","exposed-resources"])])):Yd(A)?C("",!0):(m(),b("div",{key:2,class:"message-text markdown",innerHTML:Ws(A)},null,8,_k)),(m(!0),b(X,null,fe([Xt(A)],D=>(m(),b(X,{key:`${A.id}-images`},[D.length?(m(),b("div",xk,[(m(!0),b(X,null,fe(D,(ae,Xe)=>(m(),b("figure",{key:hn(ae)||ae.previewUrl||Xe,class:Y(["message-image-attachment",{"image-unavailable":!ae.available}])},[ae.available&&ae.previewUrl?(m(),b("button",{key:0,type:"button",class:"image-preview-trigger","data-preview-src":$e(it)(ae.originalUrl||ae.previewUrl),"aria-label":`预览 ${Jt(ae,Xe)}`},[a("img",{src:$e(it)(ae.previewUrl),alt:Jt(ae,Xe),loading:"lazy",decoding:"async"},null,8,Ek)],8,Sk)):(m(),b("div",Tk,"图片不可用")),a("figcaption",null,S(Jt(ae,Xe)),1),ae.available&&ae.previewUrl?(m(),b("a",{key:2,class:"image-download",href:$e(it)(ae.originalUrl||ae.previewUrl),download:Sa(ae,Xe)},"下载",8,Ik)):C("",!0)],2))),128))])):C("",!0)],64))),128))],64))]))],2))],64)}),128))],12,$m))),128))],4),!o.busy&&((u=o.coreQueryTiming)==null?void 0:u.status)==="finished"&&$e(Mt)(o.coreQueryTiming.durationMs)?(m(),b("div",Ak,[a("div",Ck,[It(vl,{"elapsed-ms":o.coreQueryTiming.durationMs},null,8,["elapsed-ms"])])])):C("",!0),kc.value?(m(),b("div",Mk,[a("div",Rk,[It(Bh,{class:"message-loading-label",text:yc.value},null,8,["text"]),It(vl,{"elapsed-ms":vc.value,style:{"margin-inline-start":"10px"}},null,8,["elapsed-ms"])])])):C("",!0)],512),o.queuedInput&&!i.value?(m(),b("div",Nk,[a("span",null,"已排队:"+S(o.queuedInput),1),a("div",null,[a("button",{type:"button",disabled:r.value,onClick:Ci},"立即发送",8,Lk),a("button",{type:"button",disabled:r.value,onClick:mu},"取消",8,$k)])])):C("",!0),i.value?C("",!0):(m(),b("form",{key:1,class:Y(["composer",{"drop-active":o.composerDropActive}]),onSubmit:me(Ii,["prevent"]),onDragover:iu,onDragleave:au,onDrop:lu},[(p=o.appPrompt)!=null&&p.hasActivePrompt?(m(),b("div",Ok,[n[75]||(n[75]=a("span",{class:"composer-app-prompt-label"},"当前提示词",-1)),a("strong",null,S($c.value),1),a("button",{type:"button",class:"mini-button danger",onClick:Ei},"清空")])):C("",!0),Ta().length?(m(),b("div",Dk,[(m(!0),b(X,null,fe(Ta(),(k,A)=>(m(),b("figure",{key:k.label,class:"file-attachment"},[a("figcaption",null,[a("strong",null,S(Xd(k,A)),1),a("span",null,S(Jd(k)),1)]),a("button",{type:"button","aria-label":"移除附件",onClick:Ye=>Ea(k.label)},"×",8,Pk)]))),128))])):C("",!0),Ia().length?(m(),b("div",Uk,[(m(!0),b(X,null,fe(Ia(),(k,A)=>(m(),b("figure",{key:k.label,class:"image-attachment"},[a("img",{src:$e(it)(k.previewUrl),alt:k.name||`图片 ${A+1}`},null,8,Bk),a("figcaption",null,"图片 "+S(A+1),1),a("button",{type:"button","aria-label":"移除图片",onClick:Ye=>Ea(k.label)},"×",8,zk)]))),128))])):C("",!0),a("input",{ref_key:"fileInput",ref:te,type:"file",multiple:"",hidden:"",onChange:Fd},null,544),Be(a("textarea",{ref_key:"composer",ref:H,"onUpdate:modelValue":n[12]||(n[12]=k=>oe.value=k),placeholder:"在这里输入你的问题、需求或下一步安排…",onKeydown:Dd,onPaste:Bd,onInput:ig},null,544),[[at,oe.value]]),a("div",Fk,[a("button",{type:"button",class:"composer-cwd",title:"切换工作目录","aria-label":"切换工作目录",onClick:rd},[n[76]||(n[76]=a("svg",{class:"composer-cwd-icon",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linejoin":"round","aria-hidden":"true"},[a("path",{d:"M2.5 5h5l2 2h8v9h-15Z"})],-1)),a("span",{title:pi.value},S(pi.value),9,Hk)])]),a("div",{class:Y(["composer-footer",{"session-options-open":s.value}])},[a("div",jk,[a("button",{type:"button",class:"metric-chip model-chip context-window-trigger model-trigger","aria-label":"选择模型",onClick:ku},[n[77]||(n[77]=a("em",null,"模型",-1)),a("strong",null,S(wc.value),1)]),(m(),b("button",{type:"button",class:Y(["metric-chip","numeric","context-window-trigger",Vr("context")]),key:`context-${o.composerMetrics.context.bump}`,onClick:vu},[n[78]||(n[78]=a("em",null,"上下文",-1)),a("strong",null,S(xc.value),1)],2)),(m(),b("span",{class:Y(["metric-chip numeric",Vr("inputTokens")]),key:`input-${o.composerMetrics.inputTokens.bump}`},[n[79]||(n[79]=a("em",null,"输入",-1)),a("strong",null,S(Ec.value),1)],2)),(m(),b("span",{class:Y(["metric-chip numeric",Vr("outputTokens")]),key:`output-${o.composerMetrics.outputTokens.bump}`},[n[80]||(n[80]=a("em",null,"输出",-1)),a("strong",null,S(Tc.value),1)],2)),a("button",{type:"button",class:Y(["fast-mode-button",{active:fs.value,syncing:o.fastModeMutating}]),"aria-pressed":fs.value,title:fs.value?"关闭当前会话的快速模式":"为当前会话启动快速模式",onClick:xu},[...n[81]||(n[81]=[a("span",null,"快速模式",-1)])],10,Gk),a("span",qk,[a("button",{type:"button",class:"compact-button",disabled:o.compactSaving||o.pendingSessionSettings.compact===!0,onClick:bu},"压缩会话",8,Wk)])]),a("div",Kk,[a("button",{type:"button",class:"session-options-toggle","aria-label":"会话选项","aria-expanded":s.value,"aria-controls":"composer-session-metrics",onClick:n[13]||(n[13]=k=>s.value=!s.value)},[...n[82]||(n[82]=[a("svg",{viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"M3 6h14M3 14h14M7 3v6M13 11v6"})],-1)])],8,Vk),a("button",{type:"button",class:"ghost upload-button",style:lt({"--upload-progress":o.uploadProgress+"%"}),disabled:o.uploadingFiles,"aria-busy":o.uploadingFiles,"aria-label":o.uploadingFiles?`上传中 ${o.uploadProgress}%`:"上传附件",title:o.uploadingFiles?`上传中 ${o.uploadProgress}%`:"上传附件",onClick:zd},[...n[83]||(n[83]=[a("svg",{class:"composer-button-icon",viewBox:"0 0 20 20","aria-hidden":"true"},[a("path",{d:"m7 10 5-5a3 3 0 0 1 4 4l-7 7a4.25 4.25 0 0 1-6-6l7-7M6 11l6-6"})],-1)])],12,Zk),a("button",{type:$t.value?"button":"submit",class:Y(["primary","composer-action",{stop:$t.value}]),disabled:r.value||!$t.value&&(o.uploadingFiles||!oe.value.trim()&&!o.attachments.length),"aria-busy":r.value,"aria-label":mi.value,title:mi.value,onClick:n[14]||(n[14]=k=>$t.value?hu():void 0)},[r.value?(m(),b("svg",Yk,[...n[84]||(n[84]=[a("circle",{cx:"10",cy:"10",r:"6.5",opacity:".25"},null,-1),a("path",{d:"M10 3.5a6.5 6.5 0 0 1 6.5 6.5"},null,-1)])])):$t.value?Rr.value?(m(),b("svg",Jk,[...n[86]||(n[86]=[a("path",{d:"M4 5v10M11 16V4m-4 4 4-4 4 4"},null,-1)])])):o.queuedInput?(m(),b("svg",ey,[...n[87]||(n[87]=[a("path",{d:"m4 5 7 5-7 5Zm10 0v10"},null,-1)])])):(m(),b("svg",ty,[...n[88]||(n[88]=[a("path",{d:"M5 5h10v10H5Z",fill:"currentColor",stroke:"none"},null,-1)])])):(m(),b("svg",Xk,[...n[85]||(n[85]=[a("path",{d:"M10 16V4m-5 5 5-5 5 5"},null,-1)])]))],10,Qk)])],2)],34))]),a("aside",{class:Y(["right-panel",{"mobile-card-open":ue.value}]),"data-mobile-card":ue.value,onKeydown:ft(me(He,["stop"]),["esc"])},[ue.value?(m(),b("button",{key:0,type:"button",class:"mobile-card-close","aria-label":"关闭卡片",onClick:He},"×")):C("",!0),a("section",sy,[a("div",ry,[a("div",oy,S(Ae("tasks")),1),hs.value?(m(),b("strong",iy,S(hs.value),1)):C("",!0)]),Cn.value?(m(),b("button",{key:0,type:"button",class:"background-task-summary",title:Fs(Cn.value),onClick:n[15]||(n[15]=k=>Zr(Cn.value))},[a("span",{class:Y(["background-task-dot",`status-${Cn.value.status}`])},null,2),a("strong",null,S(Hs(Cn.value)),1),hs.value>1?(m(),b("span",ly,"+"+S(hs.value-1),1)):C("",!0),n[89]||(n[89]=a("b",{"aria-hidden":"true"},"›",-1))],8,ay)):C("",!0),ms.value.length?(m(),b("details",cy,[a("summary",null,[n[90]||(n[90]=a("span",null,"最近结束",-1)),a("strong",null,S(ms.value.length),1)]),a("div",uy,[(m(!0),b(X,null,fe(ms.value,k=>(m(),b("button",{key:Yt(k),type:"button",class:"background-task-summary background-task-history-item",title:Fs(k),onClick:A=>Zr(k)},[a("span",{class:Y(["background-task-dot",`status-${k.status}`])},null,2),a("strong",null,S(Hs(k)),1),a("span",{class:Y(["background-task-summary-status",`status-${k.status}`])},S(Qr(k.status)),3)],8,dy))),128))])])):C("",!0)]),St.value?(m(),b("section",gy,[a("div",fy,[a("div",null,[a("span",null,S(Ae("quota"))+" · "+S(Cu(St.value.account)),1),a("strong",null,S(Di(St.value.remainingPercent)),1)]),a("div",py,[o.cpaQuotas.length>1?(m(),b("button",{key:0,type:"button","aria-label":"上一个凭据",onClick:n[16]||(n[16]=k=>Bi(-1))},"‹")):C("",!0),a("small",null,S(o.cpaQuotas.length>1?`${o.cpaQuotaIndex+1}/${o.cpaQuotas.length}`:"剩余"),1),o.cpaQuotas.length>1?(m(),b("button",{key:1,type:"button","aria-label":"下一个凭据",onClick:n[17]||(n[17]=k=>Bi(1))},"›")):C("",!0)])]),a("div",{class:"quota-progress",role:"progressbar","aria-label":"周额度剩余","aria-valuenow":zr(St.value.remainingPercent),"aria-valuemin":"0","aria-valuemax":"100"},[a("span",{class:"quota-progress-fill",style:lt({width:`${zr(St.value.remainingPercent)}%`})},null,4)],8,hy),a("div",my,[a("span",null,"已使用 "+S(Di(St.value.usedPercent)),1),a("span",null,"续期时间 "+S(Pi(St.value.resetAt)),1)]),a("div",by,"更新于 "+S(Pi(St.value.updatedAt)),1)])):C("",!0),a("section",ky,[a("div",yy,[a("div",null,[a("span",null,S(Ae("memory")),1),a("strong",null,S(Os((v=ws.value)==null?void 0:v.rss)),1)]),n[91]||(n[91]=a("small",null,"RSS",-1))]),bi.value?(m(),b("div",{key:0,class:"memory-chart",onMousemove:Nu,onMouseleave:zi},[(m(),b("svg",vy,[a("path",{d:bi.value},null,8,wy),(m(!0),b(X,null,fe(_s.value,(k,A)=>(m(),b("circle",{key:k.entry.at,class:Y(["memory-trend-point",{active:A===ct.value}]),cx:k.x,cy:k.y,r:A===ct.value?3.2:1.5,tabindex:"0",onFocus:Ye=>ct.value=A,onBlur:zi},null,42,_y))),128))])),Nn.value?(m(),b("div",{key:0,class:"memory-tooltip",style:lt({left:`clamp(58px, ${Nn.value.x/260*100}%, calc(100% - 58px))`,top:`${Nn.value.y/44*100}%`})},[a("strong",null,S(Os(Nn.value.entry.rss)),1),a("span",null,S(Ru(Nn.value.entry.at)),1)],4)):C("",!0)],32)):(m(),b("div",xy,"—")),a("div",Sy,[a("div",null,[n[92]||(n[92]=a("span",null,"V8 堆",-1)),a("strong",null,S(Os((T=ws.value)==null?void 0:T.heapUsed)),1)]),a("div",null,[n[93]||(n[93]=a("span",null,"外部内存",-1)),a("strong",null,S(Os((O=ws.value)==null?void 0:O.external)),1)])]),a("div",Ey,[a("span",null,"更新于 "+S(Mu((j=ws.value)==null?void 0:j.at)),1)])])],42,ny)])):o.activePanel==="sessions"?(m(),b("section",Ty,[a("div",Iy,[a("div",Ay,[a("div",null,[n[94]||(n[94]=a("h2",null,"会话管理",-1)),a("p",null,S(i.value?"查看全部用户的历史会话":"查找、继续或整理历史会话"),1)]),i.value?C("",!0):(m(),b("button",{key:0,class:"primary",onClick:$s},"+ 新建会话"))]),a("div",Cy,[a("label",My,[Be(a("input",{"onUpdate:modelValue":n[18]||(n[18]=k=>ce.value=k),type:"search",placeholder:"搜索标题或 ID",autocomplete:"off"},null,512),[[at,ce.value]])]),a("span",Ry,S(ce.value.trim()?`${Mn.value.length} / ${o.sessions.length}`:`${o.sessions.length} 个会话`),1)]),o.sessionsLoading?(m(),b("div",Ny,"正在加载会话…")):o.sessions.length?Mn.value.length?(m(),b("div",Oy,[(m(!0),b(X,null,fe(Ic.value,k=>(m(),b("article",{key:`${k.ownerUsername||""}:${k.sessionId}`,class:Y(["session-card",{current:Ur(k.sessionId),running:Br(k.sessionId)}])},[a("div",Dy,[a("div",Py,[a("strong",null,S(gi(k)),1),i.value?(m(),b("span",Uy,S(k.ownerUsername)+S(k.ownerDeleted?" · 已删除":""),1)):C("",!0),Ur(k.sessionId)&&(!i.value||$e(Ke).adminOwnerUsername===k.ownerUsername)?(m(),b("span",By,"当前")):Br(k.sessionId)?(m(),b("span",zy,"运行中")):C("",!0)]),a("div",Fy,[a("code",{title:k.sessionId},"ID · "+S(k.sessionId),9,Hy),a("time",{datetime:k.updatedAt||k.createdAt},"更新于 "+S(Ui(k.updatedAt||k.createdAt)),9,jy)])]),a("div",Gy,[a("button",{disabled:o.sessionResumeLoading||o.sessionsLoading,onClick:A=>Tu(k)},S(o.pendingResumeSessionId===k.sessionId&&o.sessionResumeLoading?"打开中…":"打开"),9,qy),i.value?C("",!0):(m(),b("button",{key:0,class:"danger",disabled:o.sessionResumeLoading||o.sessionsLoading,onClick:A=>Iu(k.sessionId)},"删除",8,Wy))])],2))),128))])):(m(),b("div",$y,"没有匹配的会话")):(m(),b("div",Ly,"暂无会话")),!o.sessionsLoading&&Mn.value.length&&bs.value>1?(m(),b("nav",Ky,[a("button",{type:"button",disabled:W.value===1,onClick:n[19]||(n[19]=k=>W.value-=1)},"上一页",8,Vy),(m(!0),b(X,null,fe(Ac.value,k=>(m(),b("button",{key:k,type:"button",class:Y({active:k===W.value}),"aria-current":k===W.value?"page":void 0,onClick:A=>W.value=k},S(k),11,Zy))),128)),a("button",{type:"button",disabled:W.value===bs.value,onClick:n[20]||(n[20]=k=>W.value+=1)},"下一页",8,Qy)])):C("",!0)])])):i.value&&o.activePanel==="users"?(m(),b("section",Yy,[a("div",Xy,[n[96]||(n[96]=a("div",{class:"page-head sessions-page-head"},[a("div",null,[a("h2",null,"用户管理"),a("p",null,"创建和删除普通用户账号")])],-1)),a("form",{class:"admin-user-form",onSubmit:me(Su,["prevent"])},[a("label",null,[n[95]||(n[95]=Jn("用户名",-1)),Be(a("input",{"onUpdate:modelValue":n[21]||(n[21]=k=>Q.value=k),maxlength:"100",autocomplete:"off",required:""},null,512),[[at,Q.value]])]),a("button",{class:"primary",disabled:o.adminUserBusy},"创建普通用户",8,Jy)],32),o.adminUserError?(m(),b("p",ev,S(o.adminUserError),1)):C("",!0),o.adminUsersLoading?(m(),b("div",tv,"正在加载用户…")):(m(),b("div",nv,[(m(!0),b(X,null,fe(o.adminUsers,k=>(m(),b("article",{key:k.username,class:"session-card"},[a("div",sv,[a("div",rv,[a("strong",null,S(k.username),1),a("span",ov,S(k.role==="admin"?"超管":"普通用户"),1)])]),a("div",iv,[k.role!=="admin"?(m(),b("button",{key:0,class:"danger",disabled:o.adminUserBusy,onClick:A=>Eu(k)},"删除账号",8,av)):C("",!0)])]))),128))]))])])):!$e(Ke).isolation&&o.activePanel==="prompts"?(m(),b("section",lv,[a("div",cv,[a("div",uv,[n[97]||(n[97]=a("h2",null,"提示词",-1)),a("div",dv,[a("button",{class:"ghost",onClick:n[22]||(n[22]=k=>o.activePanel="chat")},"回到对话"),a("button",{class:"primary",onClick:tu},"+ 新建提示词")])]),a("div",gv,[a("aside",fv,[a("div",pv,[a("strong",null,S(o.promptLibrary.length)+" 个提示词",1)]),a("div",hv,[o.promptLibraryLoading?(m(),b("div",mv,"正在加载…")):o.promptLibrary.length?(m(!0),b(X,{key:2},fe(o.promptLibrary,k=>{var A,Ye;return m(),b("button",{key:k.id,class:Y(["prompt-library-item",{active:((A=ks.value)==null?void 0:A.id)===k.id,applied:((Ye=Kt.value)==null?void 0:Ye.id)===k.id,dragging:Oe.value===k.id,"drop-before":Ue.value===k.id&&st.value==="before","drop-after":Ue.value===k.id&&st.value==="after"}]),type:"button",draggable:"true",onClick:yt=>nu(k),onDblclick:yt=>Pn(k),onDragstart:yt=>gu(yt,k),onDragover:yt=>fu(yt,k),onDrop:yt=>pu(yt,k),onDragend:Ti},[a("strong",null,S(k.title),1),k.usage?(m(),b("span",yv,"用法:"+S(k.usage),1)):C("",!0)],42,kv)}),128)):(m(),b("div",bv,"暂无提示词"))])]),a("section",vv,[a("div",wv,[a("strong",_v,S(Se.title||"新提示词"),1),a("div",xv,[a("button",{class:"mini-button",type:"button",disabled:!ks.value,onClick:n[23]||(n[23]=k=>ks.value&&Pn(ks.value))},"应用",8,Sv),a("button",{class:"mini-button",type:"button",onClick:su},"保存"),a("button",{class:"mini-button danger",type:"button",disabled:!Se.id,onClick:ru},"删除",8,Ev)])]),a("div",Tv,[a("label",Iv,[n[98]||(n[98]=a("span",null,"名称",-1)),Be(a("input",{"onUpdate:modelValue":n[24]||(n[24]=k=>Se.title=k),type:"text",placeholder:"例如:代码评审"},null,512),[[at,Se.title]])]),a("label",Av,[n[99]||(n[99]=a("span",null,"提示词内容",-1)),Be(a("textarea",{"onUpdate:modelValue":n[25]||(n[25]=k=>Se.content=k),rows:"14",placeholder:"输入提示词内容"},null,512),[[at,Se.content]])]),a("label",Cv,[n[100]||(n[100]=a("span",null,"用法(选填)",-1)),Be(a("textarea",{"onUpdate:modelValue":n[26]||(n[26]=k=>Se.usage=k),rows:"4",placeholder:"输入适用场景"},null,512),[[at,Se.usage]])])])])])])])):l.value&&o.activePanel==="settings"?(m(),b("section",Mv,[a("div",Rv,[l.value&&o.settingsPage==="prompt"?(m(),b(X,{key:0},[a("div",Nv,[a("div",Lv,[a("button",{type:"button",class:"mini-button","aria-label":"返回模型配置",onClick:n[27]||(n[27]=k=>o.settingsPage="")},"←"),n[101]||(n[101]=a("h2",null,"提示词配置",-1))])]),It(pl,{endpoint:$e(it)("/api/prompt-config"),onSaved:$i},null,8,["endpoint"])],64)):(m(),b(X,{key:1},[a("div",$v,[n[102]||(n[102]=a("h2",null,"模型配置",-1)),a("button",{class:"primary",onClick:Oi,disabled:!o.login},"保存",8,Ov)]),o.login?(m(),b("form",{key:1,class:"settings-form",onSubmit:me(Oi,["prevent"])},[l.value?(m(),b("button",{key:0,type:"button",class:"settings-prompt-entry",onClick:n[28]||(n[28]=k=>o.settingsPage="prompt")},[...n[103]||(n[103]=[a("strong",null,"提示词配置",-1),a("span",{"aria-hidden":"true"},"›",-1)])])):C("",!0),a("section",Pv,[n[105]||(n[105]=a("header",{class:"settings-card-head"},[a("strong",null,"模型")],-1)),a("div",Uv,[a("label",Bv,[n[104]||(n[104]=a("span",null,"供应商",-1)),It(or,{modelValue:je.value,"onUpdate:modelValue":n[29]||(n[29]=k=>je.value=k),options:Xu(o.login.providers),"aria-label":"供应商",onChange:Au},null,8,["modelValue","options"])]),(m(!0),b(X,null,fe(o.login.fields,k=>(m(),b("label",{key:k.key,class:"settings-field"},[a("span",null,[Jn(S(Yr(k.label)),1),k.required?(m(),b("i",zv)):C("",!0)]),k.options?(m(),Ge(or,{key:0,modelValue:Je[k.key],"onUpdate:modelValue":A=>Je[k.key]=A,options:Ju(k),"aria-label":Yr(k.label)},null,8,["modelValue","onUpdate:modelValue","options","aria-label"])):Be((m(),b("input",{key:1,"onUpdate:modelValue":A=>Je[k.key]=A,type:k.secret?"password":"text",placeholder:k.placeholder||`请输入${Yr(k.label)}`},null,8,Fv)),[[xg,Je[k.key]]])]))),128))])]),l.value?(m(),b("section",Hv,[n[108]||(n[108]=a("header",{class:"settings-card-head"},[a("strong",null,"CPA")],-1)),a("div",jv,[a("label",Gv,[n[106]||(n[106]=a("span",null,"URL",-1)),Be(a("input",{"onUpdate:modelValue":n[30]||(n[30]=k=>o.cpaConfig.url=k),type:"text",placeholder:"http://127.0.0.1:8317",autocomplete:"off"},null,512),[[at,o.cpaConfig.url]])]),a("label",qv,[n[107]||(n[107]=a("span",null,"管理密码",-1)),Be(a("input",{"onUpdate:modelValue":n[31]||(n[31]=k=>o.cpaConfig.password=k),type:"password",placeholder:"请输入管理密码",autocomplete:"new-password"},null,512),[[at,o.cpaConfig.password]])])])])):C("",!0),l.value?(m(),b("section",Wv,[a("header",Kv,[n[109]||(n[109]=a("div",null,[a("strong",null,"工具"),a("small",null,"内置与插件工具默认开启,关闭后立即对当前会话生效。")],-1)),a("button",{type:"button",class:"mini-button",disabled:o.busy||o.globalTools.loading,onClick:Uc},"保存",8,Vv)]),a("div",Zv,[(m(!0),b(X,null,fe(o.globalTools.items,k=>(m(),b("label",{key:k.name,class:"plugin-settings-row"},[a("span",null,[a("strong",null,[a("code",null,S(k.name),1)]),a("small",null,S(k.source==="plugin"?`插件 · ${k.pluginName||k.pluginId}`:k.source==="external"?"外部工具":"内置工具"),1)]),a("span",Qv,[Be(a("input",{"onUpdate:modelValue":A=>k.configuredEnabled=A,type:"checkbox","aria-label":k.name},null,8,Yv),[[qa,k.configuredEnabled]]),n[110]||(n[110]=a("span",{"aria-hidden":"true"},null,-1))])]))),128))])])):C("",!0),l.value?(m(),b("section",Xv,[a("header",Jv,[n[111]||(n[111]=a("strong",null,"插件",-1)),a("button",{type:"button",class:"mini-button",disabled:o.globalPlugins.locked||o.globalPlugins.loading,onClick:Fc},"保存",8,ew)]),a("div",tw,[(m(!0),b(X,null,fe(o.globalPlugins.items,k=>(m(),b("label",{key:k.id,class:"plugin-settings-row"},[a("span",null,[a("strong",null,S(k.name),1),a("small",null,S(k.tools.length)+" 个工具",1)]),a("span",nw,[Be(a("input",{"onUpdate:modelValue":A=>k.configuredEnabled=A,type:"checkbox",disabled:o.globalPlugins.locked,"aria-label":k.name},null,8,sw),[[qa,k.configuredEnabled]]),n[112]||(n[112]=a("span",{"aria-hidden":"true"},null,-1))])]))),128))])])):C("",!0)],32)):(m(),b("div",Dv,"正在加载配置…"))],64))])])):(m(),b("section",rw,[a("div",ow,[n[113]||(n[113]=a("h2",null,"运行时能力",-1)),a("div",iw,[(m(),b(X,null,fe(["流式模型循环","工具执行","上下文指标","会话恢复","后台代理","登录配置","图片附件","Markdown 输出"],k=>a("div",{key:k,class:"capability-card"},S(k),1)),64))])])]))]),o.toast?(m(),b("div",aw,S(o.toast),1)):C("",!0)]),(m(),Ge(gt,{to:"body"},[o.coreVersion?(m(),b("div",{key:0,class:Y(["core-version",{celebrating:o.coreEasterEgg}]),role:"button",tabindex:"0",title:`内核版本 ${o.coreVersion} · 点击试试`,onClick:ln,onKeydown:[ft(me(ln,["prevent"]),["enter"]),ft(me(ln,["prevent"]),["space"])]},[n[114]||(n[114]=a("span",{class:"core-version-spark spark-a","aria-hidden":"true"},null,-1)),n[115]||(n[115]=a("span",{class:"core-version-spark spark-b","aria-hidden":"true"},null,-1)),n[116]||(n[116]=a("span",{class:"core-version-spark spark-c","aria-hidden":"true"},null,-1)),a("span",null,"内核版本 "+S(o.coreVersion),1)],42,lw)):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.cwdPicker.open?(m(),b("div",{key:0,class:"cwd-picker-backdrop",onClick:me(Gs,["self"])},[a("section",cw,[a("header",{class:"cwd-picker-head"},[n[117]||(n[117]=a("strong",null,"CWD",-1)),a("button",{type:"button","aria-label":"关闭",onClick:Gs},"×")]),a("form",{class:"cwd-picker-path",onSubmit:n[33]||(n[33]=me(k=>qs(),["prevent"]))},[Be(a("input",{"onUpdate:modelValue":n[32]||(n[32]=k=>o.cwdPicker.input=k),autocomplete:"off",spellcheck:"false","aria-label":"工作目录路径"},null,512),[[at,o.cwdPicker.input]]),a("button",{type:"submit",disabled:o.cwdPicker.loading},"前往",8,uw),a("button",{type:"button",disabled:o.cwdPicker.mutating,onClick:cd},"新建",8,dw)],32),a("div",gw,[o.cwdPicker.parent?(m(),b("button",{key:0,type:"button",onClick:n[34]||(n[34]=k=>qs(o.cwdPicker.parent))},"← 上级")):C("",!0),a("span",null,S(o.cwdPicker.selectedPath||o.cwdPicker.cwd),1)]),a("div",fw,[a("nav",pw,[(m(!0),b(X,null,fe(o.cwdPicker.locations,k=>(m(),b("button",{key:`${k.id}-${k.path}`,type:"button",class:Y({active:o.cwdPicker.cwd===k.path}),title:k.path,onClick:A=>qs(k.path)},[a("span",mw,S(k.kind==="drive"||k.kind==="volume"?"▣":k.kind==="home"?"◆":"◇"),1),a("strong",null,S(k.label),1)],10,hw))),128))]),a("div",bw,[o.cwdPicker.loading?(m(),b("div",kw,"读取中")):o.cwdPicker.error?(m(),b("div",yw,S(o.cwdPicker.error),1)):(m(),Ge(qh,{key:2,nodes:o.cwdPicker.treeRoots,children:o.cwdPicker.treeChildren,expanded:o.cwdPicker.treeExpanded,"selected-path":o.cwdPicker.selectedPath,"allow-delete":!1,onToggle:ad,onSelect:ld,onDelete:ud},null,8,["nodes","children","expanded","selected-path"]))])]),a("footer",vw,[a("button",{type:"button",onClick:Gs},"取消"),a("button",{type:"button",class:"primary",disabled:o.cwdPicker.mutating||o.cwdPicker.loading,onClick:dd},"选择",8,ww)])])])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.projectContextOpen?(m(),b("div",{key:0,class:"runtime-context-modal-backdrop",onClick:me(to,["self"])},[a("section",_w,[a("header",xw,[a("div",null,[o.projectContextDocument?(m(),b("span",Sw,S(o.projectContextDocument.path),1)):C("",!0),a("strong",null,S(((B=o.projectContextDocument)==null?void 0:B.name)||"项目上下文"),1)]),a("button",{type:"button","aria-label":o.projectContextDocument?"返回":"关闭",onClick:to},"×",8,Ew)]),a("div",Tw,[o.projectContextDocument?(m(),b("pre",Cw,S(o.projectContextDocument.content),1)):(m(),b("div",Iw,[(m(!0),b(X,null,fe(Rn.value,k=>(m(),b("button",{key:k.path,type:"button",class:"runtime-context-index-item",onClick:A=>sd(k)},[a("span",null,[a("strong",null,S(k.name),1),a("small",null,S(mn(k.chars||0))+" 字符",1)]),n[118]||(n[118]=a("b",null,"›",-1))],8,Aw))),128))]))])])])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.confirmDialog.open?(m(),b("div",{key:0,class:"confirm-dialog-backdrop",onClick:n[37]||(n[37]=me(k=>cn(!1),["self"]))},[a("section",{class:"confirm-dialog",role:"alertdialog","aria-modal":"true","aria-label":o.confirmDialog.title},[a("div",{class:Y(["confirm-dialog-icon",`tone-${o.confirmDialog.tone}`]),"aria-hidden":"true"},"!",2),a("div",Rw,[a("h3",null,S(o.confirmDialog.title),1),a("p",null,S(o.confirmDialog.message),1)]),a("div",Nw,[a("button",{type:"button",class:"ghost",onClick:n[35]||(n[35]=k=>cn(!1))},S(o.confirmDialog.cancelLabel),1),a("button",{type:"button",class:Y(["primary",{danger:o.confirmDialog.tone==="danger"}]),onClick:n[36]||(n[36]=k=>cn(!0))},S(o.confirmDialog.confirmLabel),3)])],8,Mw)])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.modelModalOpen?(m(),b("div",{key:0,class:"context-window-backdrop",onClick:me(Bn,["self"])},[a("section",{class:"context-window-modal session-model-modal",role:"dialog","aria-modal":"true","aria-label":"选择模型",onKeydown:Ni},[a("form",{onSubmit:me(yu,["prevent"])},[a("header",{class:"session-model-header"},[n[119]||(n[119]=a("h2",null,"模型",-1)),a("button",{type:"button",class:"ghost","aria-label":"关闭模型选择",onClick:Bn},"×")]),Be(a("input",{id:"session-model-search","onUpdate:modelValue":n[38]||(n[38]=k=>o.modelSearch=k),type:"search",placeholder:"搜索模型","aria-label":"搜索模型",autocomplete:"off"},null,512),[[at,o.modelSearch]]),a("div",Lw,[(m(!0),b(X,null,fe(_c.value,k=>(m(),b("label",{key:k,class:Y(["session-model-option",{selected:o.modelDraft===k}])},[Be(a("input",{"onUpdate:modelValue":n[39]||(n[39]=A=>o.modelDraft=A),type:"radio",name:"session-model",value:k,disabled:o.modelSaving},null,8,$w),[[Wa,o.modelDraft]]),a("span",null,S(k),1)],2))),128))]),a("fieldset",{class:"session-reasoning-options",disabled:o.modelSaving},[n[120]||(n[120]=a("legend",null,"推理强度",-1)),(m(!0),b(X,null,fe(ps.value,k=>(m(),b("label",{key:k,class:Y({selected:o.reasoningDraft===k})},[Be(a("input",{"onUpdate:modelValue":n[40]||(n[40]=A=>o.reasoningDraft=A),type:"radio",name:"session-reasoning",value:k},null,8,Dw),[[Wa,o.reasoningDraft]]),a("span",null,S(k==="default"?"默认":k==="off"?"关闭":k),1)],2))),128))],8,Ow),o.modelError?(m(),b("p",Pw,S(o.modelError),1)):C("",!0),a("div",Uw,[a("button",{type:"button",class:"ghost",onClick:Bn},"取消"),a("button",{type:"submit",class:"primary",disabled:o.modelSaving||!o.modelDraft},S(o.modelSaving?"保存中…":"确认"),9,Bw)])],32)],32)])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.contextWindowModalOpen?(m(),b("div",{key:0,class:"context-window-backdrop",onClick:me(Rs,["self"])},[a("section",{class:"context-window-modal",role:"dialog","aria-modal":"true","aria-label":"上下文窗口",onKeydown:Ni},[a("form",{onSubmit:me(_u,["prevent"])},[n[122]||(n[122]=a("label",{for:"context-window-input"},"上下文窗口",-1)),a("div",zw,[Be(a("input",{id:"context-window-input","onUpdate:modelValue":n[41]||(n[41]=k=>o.contextWindowDraft=k),type:"text",inputmode:"numeric",autocomplete:"off",autofocus:"","aria-describedby":"context-window-unit",onInput:wu},null,544),[[at,o.contextWindowDraft]]),n[121]||(n[121]=a("span",{id:"context-window-unit"},"k",-1))]),o.contextWindowError?(m(),b("p",Fw,S(o.contextWindowError),1)):C("",!0),a("div",Hw,[a("button",{type:"button",class:"ghost",onClick:Rs},"取消"),a("button",{type:"submit",class:"primary",disabled:o.contextWindowSaving},S(o.contextWindowSaving?"保存中…":"确认"),9,jw)])],32)],32)])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.imagePreview?(m(),b("div",{key:0,class:"image-preview-backdrop",onClick:me(Gr,["self"])},[a("section",{class:"image-preview-modal",role:"dialog","aria-modal":"true","aria-label":o.imagePreview.caption||"图片预览"},[a("button",{type:"button",class:"image-preview-close","aria-label":"关闭图片预览",onClick:Gr},"×"),a("div",qw,[a("img",{src:o.imagePreview.src,alt:o.imagePreview.caption||"图片预览"},null,8,Ww)]),o.imagePreview.caption?(m(),b("footer",Kw,S(o.imagePreview.caption),1)):C("",!0)],8,Gw)])):C("",!0)])),(m(),Ge(gt,{to:"body"},[xt.value?(m(),b("div",{key:0,class:"runtime-context-detail-backdrop",onClick:me(Ds,["self"])},[a("section",Vw,[a("header",{class:"runtime-context-modal-head"},[n[123]||(n[123]=a("div",null,[a("strong",null,"压缩上下文详情")],-1)),a("button",{type:"button","aria-label":"关闭",onClick:Ds},"×")]),a("div",Zw,[a("dl",Qw,[a("div",null,[n[124]||(n[124]=a("dt",null,"压缩方式",-1)),a("dd",null,S(Du(xt.value)),1)]),a("div",null,[n[125]||(n[125]=a("dt",null,"发生时间",-1)),a("dd",null,S(Ui(xt.value.compaction.createdAt)),1)]),a("div",null,[n[126]||(n[126]=a("dt",null,"新窗口消息",-1)),a("dd",null,S(xt.value.compaction.newWindowMessages),1)]),a("div",null,[n[127]||(n[127]=a("dt",null,"保留用户消息",-1)),a("dd",null,S(xt.value.compaction.preservedUserMessages),1)]),a("div",null,[n[128]||(n[128]=a("dt",null,"释放字符",-1)),a("dd",null,S(mn(xt.value.compaction.charsFreed)),1)]),a("div",null,[n[129]||(n[129]=a("dt",null,"图片引用",-1)),a("dd",null,S(xt.value.compaction.imageCount||0),1)])]),n[130]||(n[130]=a("h3",null,"实际续接上下文",-1)),a("pre",null,S(xt.value.compaction.continuationState||xt.value.compaction.summary||"未提供续接上下文"),1)])])])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.runtimeContextModal?(m(),b("div",{key:0,class:"runtime-context-modal-backdrop",onClick:me(Jr,["self"])},[a("section",Yw,[a("header",Xw,[a("div",null,[a("strong",null,S(o.runtimeContextModal==="prompt"?"系统提示词":o.runtimeContextModal==="tools"?"可用工具":"会话插件"),1)]),a("button",{type:"button","aria-label":"关闭",onClick:Jr},"×")]),a("div",Jw,[!$e(Ke).isolation&&o.runtimeContextModal==="prompt"?(m(),Ge(pl,{key:0,endpoint:z("/api/session-prompt"),session:"","runtime-prompt":(ge=o.runtimeContext)==null?void 0:ge.prompt,onSaved:$i},null,8,["endpoint","runtime-prompt"])):o.runtimeContextModal==="tools"?(m(),b("div",e0,[o.sessionTools.loading?(m(),b("div",t0,"同步中")):(m(),b(X,{key:1},[a("div",n0,[a("span",null,"可用 "+S(Lc.value)+" / "+S(o.sessionTools.items.length),1)]),(m(!0),b(X,null,fe(o.sessionTools.items,k=>(m(),b("div",{key:k.name,class:"runtime-plugin-row"},[a("button",{type:"button",class:"runtime-tool-detail-button",disabled:!Lr.value.some(A=>A.name===k.name),onClick:A=>gd(Lr.value.find(Ye=>Ye.name===k.name))},[a("code",null,S(k.name),1),a("small",null,S(k.available===!1?`插件未启用 · ${k.pluginName||k.pluginId}`:k.source==="plugin"?`插件 · ${k.pluginName||k.pluginId}`:k.source==="external"?"外部工具":"内置工具"),1)],8,s0),It(or,{class:"runtime-plugin-control","model-value":k.mode,options:d,disabled:o.busy||o.sessionTools.busy||k.available===!1,"aria-label":`${k.name}状态`,"data-mode":k.mode,"onUpdate:modelValue":A=>Bc(k,A)},null,8,["model-value","disabled","aria-label","data-mode","onUpdate:modelValue"])]))),128))],64))])):(m(),b("div",r0,[o.sessionPlugins.loading?(m(),b("div",o0,"同步中")):(m(!0),b(X,{key:1},fe(o.sessionPlugins.items,k=>(m(),b("div",{key:k.id,class:"runtime-plugin-row"},[a("span",null,[a("strong",null,S(k.name),1),a("small",null,S(k.tools.length)+" 个工具",1)]),It(or,{class:"runtime-plugin-control","model-value":k.mode,options:d,disabled:o.busy||o.sessionPlugins.busy||!k.globallyEnabled,"aria-label":`${k.name}状态`,"data-mode":k.mode,"onUpdate:modelValue":A=>Hc(k,A)},null,8,["model-value","disabled","aria-label","data-mode","onUpdate:modelValue"])]))),128))]))])])])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.runtimeContextDetail?(m(),b("div",{key:0,class:"runtime-context-detail-backdrop",onClick:me(eo,["self"])},[a("section",{class:"runtime-context-detail-modal",role:"dialog","aria-modal":"true","aria-label":o.runtimeContextDetail.title},[a("header",a0,[a("div",null,[o.runtimeContextDetail.meta?(m(),b("span",l0,S(o.runtimeContextDetail.meta),1)):C("",!0),a("strong",null,S(o.runtimeContextDetail.title),1)]),a("button",{type:"button","aria-label":"返回",onClick:eo},"×")]),a("div",c0,[o.runtimeContextDetail.kind==="tool"?(m(),b(X,{key:0},[o.runtimeContextDetail.description?(m(),b("p",u0,S(o.runtimeContextDetail.description),1)):C("",!0),a("pre",null,S(o.runtimeContextDetail.schema),1)],64)):(m(),b("pre",d0,S(o.runtimeContextDetail.content),1))])],8,i0)])):C("",!0)])),(m(),Ge(gt,{to:"body"},[o.backgroundTaskDetail?(m(),b("div",{key:0,class:"tool-result-modal-backdrop",onClick:me(js,["self"])},[a("section",g0,[a("header",f0,[a("div",p0,[n[131]||(n[131]=a("strong",null,"后台任务",-1)),a("span",h0,S(An.value.length),1)]),a("button",{type:"button",class:"tool-result-modal-close","aria-label":"关闭",onClick:js},"×")]),a("div",{class:Y(["tool-result-modal-content","background-task-page",{single:An.value.length<=1}])},[An.value.length>1?(m(),b("nav",m0,[(m(!0),b(X,null,fe(An.value,k=>(m(),b("button",{key:Yt(k),type:"button",class:Y(["background-task-index-item",{active:Yt(k)===Yt(o.backgroundTaskDetail)}]),title:Fs(k),onClick:A=>Zr(k)},[a("span",{class:Y(["background-task-dot",`status-${k.status}`])},null,2),a("span",k0,[a("strong",null,S(Hs(k)),1),a("small",null,S(Qr(k.status)),1)])],10,b0))),128))])):C("",!0),a("article",y0,[a("header",v0,[a("div",w0,[a("span",{class:Y(["background-task-dot",`status-${o.backgroundTaskDetail.status}`])},null,2),a("strong",null,S(Hs(o.backgroundTaskDetail)),1)]),a("span",{class:Y(["tool-result-modal-status",`status-${o.backgroundTaskDetail.status}`])},S(Qr(o.backgroundTaskDetail.status)),3)]),a("dl",_0,[ea(o.backgroundTaskDetail)?(m(),b("div",x0,[n[132]||(n[132]=a("dt",null,"耗时",-1)),a("dd",null,S(ea(o.backgroundTaskDetail)),1)])):C("",!0),o.backgroundTaskDetail.cwd?(m(),b("div",S0,[n[133]||(n[133]=a("dt",null,"目录",-1)),a("dd",null,S(o.backgroundTaskDetail.cwd),1)])):C("",!0)]),a("div",E0,[o.backgroundTaskDetail.kind!=="agent"&&ta(o.backgroundTaskDetail)?(m(),b("section",T0,[n[134]||(n[134]=a("header",null,"命令",-1)),a("pre",I0,S(ta(o.backgroundTaskDetail)),1)])):C("",!0),o.backgroundTaskDetail.kind==="terminal"?(m(),Ge(pf,{key:1,"owner-session-id":o.backgroundTaskDetail.ownerSessionId||((Ee=o.session)==null?void 0:Ee.sessionId),"run-id":o.backgroundTaskDetail.sessionId},null,8,["owner-session-id","run-id"])):C("",!0),o.backgroundTaskDetail.kind==="agent"?(m(),b("div",A0,[It(_f,{"owner-session-id":(Bt=o.session)==null?void 0:Bt.sessionId,task:o.backgroundTaskDetail,"render-markdown":Fu},null,8,["owner-session-id","task"])])):C("",!0)])])],2)])])):C("",!0),ut.value?(m(),b("div",{key:1,class:"tool-result-modal-backdrop",onClick:me(gn,["self"])},[a("section",{class:"tool-result-modal",onKeydown:Hu,role:"dialog","aria-modal":"true","aria-label":`${Zt(ut.value)}详情`},[a("header",M0,[a("div",null,[a("div",R0,[a("strong",null,S(Zt(ut.value)),1),a("span",{class:Y(["tool-result-modal-status",`status-${Ot(ut.value).key}`])},S(Ot(ut.value).label),3)]),Wi(ut.value)?(m(),b("p",N0,S(Wi(ut.value)),1)):C("",!0)]),a("button",{type:"button",class:"tool-result-modal-close","aria-label":"关闭工具结果",onClick:gn},"×")]),a("div",L0,[Ut(ut.value)?(m(),b("div",{key:0,class:"message-text markdown tool-detail-markdown",innerHTML:fd(ut.value)},null,8,$0)):C("",!0)]),a("footer",{class:"tool-result-modal-footer"},[a("button",{type:"button",class:"primary",onClick:gn},"关闭")])],40,C0)])):C("",!0)]))],64)}}};export{q0 as default};