linkshell-cli 0.5.23 → 0.5.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/src/runtime/acp/agent-workspace.js +118 -9
- package/dist/cli/src/runtime/acp/agent-workspace.js.map +1 -1
- package/dist/cli/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/runtime/acp/agent-workspace.ts +105 -9
- package/web/assets/{index-C6jrt3Ma.js → index-Bh3kcNhP.js} +1 -1
- package/web/index.html +1 -1
|
@@ -81,7 +81,7 @@ Error generating stack: `+s.message+`
|
|
|
81
81
|
]`,k={scope:"string",variants:[m,d,p,x]},w={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},_=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],v=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],T={keyword:b,literal:(W=>{const G=[];return W.forEach(K=>{G.push(K),K.toLowerCase()===K?G.push(K.toUpperCase()):G.push(K.toLowerCase())}),G})(_),built_in:v},M=W=>W.map(G=>G.replace(/\|\d+$/,"")),N={variants:[{match:[/new/,n.concat(S,"+"),n.concat("(?!",M(v).join("\\b|"),"\\b)"),l],scope:{1:"keyword",4:"title.class"}}]},O=n.concat(a,"\\b(?!\\()"),R={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),O],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[l,n.concat(/::/,n.lookahead(/(?!class\b)/)),O],scope:{1:"title.class",3:"variable.constant"}},{match:[l,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[l,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},L={scope:"attr",match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},z={relevance:0,begin:/\(/,end:/\)/,keywords:T,contains:[L,f,R,e.C_BLOCK_COMMENT_MODE,k,w,N]},H={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",M(b).join("\\b|"),"|",M(v).join("\\b|"),"\\b)"),a,n.concat(S,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[z]};z.contains.push(H);const q=[L,R,e.C_BLOCK_COMMENT_MODE,k,w,N],F={begin:n.concat(/#\[\s*\\?/,n.either(l,u)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:_,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:_,keyword:["new","array"]},contains:["self",...q]},...q,{scope:"meta",variants:[{match:l},{match:u}]}]};return{case_insensitive:!1,keywords:T,contains:[F,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},o,{scope:"variable.language",match:/\$this\b/},f,H,R,{match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},N,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:T,contains:["self",F,f,R,e.C_BLOCK_COMMENT_MODE,k,w]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},k,w]}}function yM(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function xM(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function SM(e){const n=e.regex,r=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),a=["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"],o={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,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:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:o,illegal:/#/},m={begin:/\{\{/,relevance:0},p={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,h,m,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,h,m,d]},{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:[e.BACKSLASH_ESCAPE,m,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,m,d]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},x="[0-9](_?[0-9])*",S=`(\\b(${x}))?\\.(${x})|\\b(${x})\\.`,k=`\\b|${a.join("|")}`,w={className:"number",relevance:0,variants:[{begin:`(\\b(${x})|(${S}))[eE][+-]?(${x})[jJ]?(?=${k})`},{begin:`(${S})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${k})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${k})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${k})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${k})`},{begin:`\\b(${x})[jJ](?=${k})`}]},_={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},b={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:["self",h,w,p,e.HASH_COMMENT_MODE]}]};return d.contains=[p,w,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:o,illegal:/(<\/|\?)|=>/,contains:[h,w,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},p,_,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[b]},{variants:[{match:[/\bclass/,/\s+/,r,/\s*/,/\(\s*/,r,/\s*\)/]},{match:[/\bclass/,/\s+/,r]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[w,b,p]}]}}function EM(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function wM(e){const n=e.regex,r=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),l=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,u=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:r,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:r},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[l,a]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[u,a]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},match:[r,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:l},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:u},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function CM(e){const n=e.regex,r="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),l=n.concat(a,/(::\w+)*/),f={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},o={className:"doctag",begin:"@[A-Za-z]+"},h={begin:"#<",end:">"},d=[e.COMMENT("#","$",{contains:[o]}),e.COMMENT("^=begin","^=end",{contains:[o],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],m={className:"subst",begin:/#\{/,end:/\}/,keywords:f},p={className:"string",contains:[e.BACKSLASH_ESCAPE,m],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,m]})]}]},x="[1-9](_?[0-9])*|0",S="[0-9](_?[0-9])*",k={className:"number",relevance:0,variants:[{begin:`\\b(${x})(\\.(${S}))?([eE][+-]?(${S})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},w={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:f}]},N=[p,{variants:[{match:[/class\s+/,l,/\s+<\s+/,l]},{match:[/\b(class|module)\s+/,l]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:f},{match:[/(include|extend)\s+/,l],scope:{2:"title.class"},keywords:f},{relevance:0,match:[l,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{match:[/def/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[w]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[p,{begin:r}],relevance:0},k,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:f},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,m],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(h,d),relevance:0}].concat(h,d);m.contains=N,w.contains=N;const z=[{begin:/^\s*=>/,starts:{end:"$",contains:N}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:f,contains:N}}];return d.unshift(h),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:f,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(z).concat(d).concat(N)}}function kM(e){const n=e.regex,r=/(r#)?/,a=n.concat(r,e.UNDERSCORE_IDENT_RE),l=n.concat(r,e.IDENT_RE),u={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,l,n.lookahead(/\s*\(/))},f="([ui](8|16|32|64|128|size)|f(32|64))?",o=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],h=["true","false","Some","None","Ok","Err"],d=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],m=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:m,keyword:o,literal:h,built_in:d},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+f},{begin:"\\b0o([0-7_]+)"+f},{begin:"\\b0x([A-Fa-f0-9_]+)"+f},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+f}],relevance:0},{begin:[/fn/,/\s+/,a],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:d,type:m}},{className:"punctuation",begin:"->"},u]}}const TM=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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_-]*/}}),AM=["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"],NM=["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"],RM=[...AM,...NM],MM=["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(),OM=["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(),DM=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),LM=["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 IM(e){const n=TM(e),r=DM,a=OM,l="@[a-z-]+",u="and or not only",o={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+RM.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+a.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+r.join("|")+")"},o,{begin:/\(/,end:/\)/,contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+LM.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[n.BLOCK_COMMENT,o,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:l,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:u,attribute:MM.join(" ")},contains:[{begin:l,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},o,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]},n.FUNCTION_DISPATCH]}}function BM(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function PM(e){const n=e.regex,r=e.COMMENT("--","$"),a={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},l={begin:/"/,end:/"/,contains:[{match:/""/}]},u=["true","false","unknown"],f=["double precision","large object","with timezone","without timezone"],o=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],h=["add","asc","collation","desc","final","first","last","view"],d=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],m=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],p=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],x=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],S=m,k=[...d,...h].filter(M=>!m.includes(M)),w={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},_={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},b={match:n.concat(/\b/,n.either(...S),/\s*\(/),relevance:0,keywords:{built_in:S}};function v(M){return n.concat(/\b/,n.either(...M.map(N=>N.replace(/\s+/,"\\s+"))),/\b/)}const y={scope:"keyword",match:v(x),relevance:0};function T(M,{exceptions:N,when:O}={}){const R=O;return N=N||[],M.map(L=>L.match(/\|\d+$/)||N.includes(L)?L:R(L)?`${L}|0`:L)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:T(k,{when:M=>M.length<3}),literal:u,type:o,built_in:p},contains:[{scope:"type",match:v(f)},y,b,w,a,l,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,r,_]}}function jy(e){return e?typeof e=="string"?e:e.source:null}function bo(e){return jt("(?=",e,")")}function jt(...e){return e.map(r=>jy(r)).join("")}function zM(e){const n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function On(...e){return"("+(zM(e).capture?"":"?:")+e.map(a=>jy(a)).join("|")+")"}const Lf=e=>jt(/\b/,e,/\w$/.test(e)?/\b/:/\B/),jM=["Protocol","Type"].map(Lf),Lv=["init","self"].map(Lf),UM=["Any","Self"],pd=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Iv=["false","nil","true"],HM=["assignment","associativity","higherThan","left","lowerThan","none","right"],FM=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Bv=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Uy=On(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Hy=On(Uy,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),md=jt(Uy,Hy,"*"),Fy=On(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Sc=On(Fy,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Ni=jt(Fy,Sc,"*"),ac=jt(/[A-Z]/,Sc,"*"),$M=["attached","autoclosure",jt(/convention\(/,On("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",jt(/objc\(/,Ni,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],qM=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function KM(e){const n={match:/\s+/,relevance:0},r=e.COMMENT("/\\*","\\*/",{contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,r],l={match:[/\./,On(...jM,...Lv)],className:{2:"keyword"}},u={match:jt(/\./,On(...pd)),relevance:0},f=pd.filter(we=>typeof we=="string").concat(["_|0"]),o=pd.filter(we=>typeof we!="string").concat(UM).map(Lf),h={variants:[{className:"keyword",match:On(...o,...Lv)}]},d={$pattern:On(/\b\w+/,/#\w+/),keyword:f.concat(FM),literal:Iv},m=[l,u,h],p={match:jt(/\./,On(...Bv)),relevance:0},x={className:"built_in",match:jt(/\b/,On(...Bv),/(?=\()/)},S=[p,x],k={match:/->/,relevance:0},w={className:"operator",relevance:0,variants:[{match:md},{match:`\\.(\\.|${Hy})+`}]},_=[k,w],b="([0-9]_*)+",v="([0-9a-fA-F]_*)+",y={className:"number",relevance:0,variants:[{match:`\\b(${b})(\\.(${b}))?([eE][+-]?(${b}))?\\b`},{match:`\\b0x(${v})(\\.(${v}))?([pP][+-]?(${b}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},T=(we="")=>({className:"subst",variants:[{match:jt(/\\/,we,/[0\\tnr"']/)},{match:jt(/\\/,we,/u\{[0-9a-fA-F]{1,8}\}/)}]}),M=(we="")=>({className:"subst",match:jt(/\\/,we,/[\t ]*(?:[\r\n]|\r\n)/)}),N=(we="")=>({className:"subst",label:"interpol",begin:jt(/\\/,we,/\(/),end:/\)/}),O=(we="")=>({begin:jt(we,/"""/),end:jt(/"""/,we),contains:[T(we),M(we),N(we)]}),R=(we="")=>({begin:jt(we,/"/),end:jt(/"/,we),contains:[T(we),N(we)]}),L={className:"string",variants:[O(),O("#"),O("##"),O("###"),R(),R("#"),R("##"),R("###")]},z=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],H={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:z},q=we=>{const ke=jt(we,/\//),Tt=jt(/\//,we);return{begin:ke,end:Tt,contains:[...z,{scope:"comment",begin:`#(?!.*${Tt})`,end:/$/}]}},F={scope:"regexp",variants:[q("###"),q("##"),q("#"),H]},W={match:jt(/`/,Ni,/`/)},G={className:"variable",match:/\$\d+/},K={className:"variable",match:`\\$${Sc}+`},ne=[W,G,K],Q={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:qM,contains:[..._,y,L]}]}},I={scope:"keyword",match:jt(/@/,On(...$M),bo(On(/\(/,/\s+/)))},A={scope:"meta",match:jt(/@/,Ni)},B=[Q,I,A],$={match:bo(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:jt(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Sc,"+")},{className:"type",match:ac,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:jt(/\s+&\s+/,bo(ac)),relevance:0}]},P={begin:/</,end:/>/,keywords:d,contains:[...a,...m,...B,k,$]};$.contains.push(P);const oe={match:jt(Ni,/\s*:/),keywords:"_|0",relevance:0},ye={begin:/\(/,end:/\)/,relevance:0,keywords:d,contains:["self",oe,...a,F,...m,...S,..._,y,L,...ne,...B,$]},pe={begin:/</,end:/>/,keywords:"repeat each",contains:[...a,$]},J={begin:On(bo(jt(Ni,/\s*:/)),bo(jt(Ni,/\s+/,Ni,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Ni}]},j={begin:/\(/,end:/\)/,keywords:d,contains:[J,...a,...m,..._,y,L,...B,$,ye],endsParent:!0,illegal:/["']/},me={match:[/(func|macro)/,/\s+/,On(W.match,Ni,md)],className:{1:"keyword",3:"title.function"},contains:[pe,j,n],illegal:[/\[/,/%/]},ce={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[pe,j,n],illegal:/\[|%/},ee={match:[/operator/,/\s+/,md],className:{1:"keyword",3:"title"}},le={begin:[/precedencegroup/,/\s+/,ac],className:{1:"keyword",3:"title"},contains:[$],keywords:[...HM,...Iv],end:/}/},Ce={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},He={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Ee={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Ni,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:d,contains:[pe,...m,{begin:/:/,end:/\{/,keywords:d,contains:[{scope:"title.class.inherited",match:ac},...m],relevance:0}]};for(const we of L.variants){const ke=we.contains.find(Fe=>Fe.label==="interpol");ke.keywords=d;const Tt=[...m,...S,..._,y,L,...ne];ke.contains=[...Tt,{begin:/\(/,end:/\)/,contains:["self",...Tt]}]}return{name:"Swift",keywords:d,contains:[...a,me,ce,Ce,He,Ee,ee,le,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0},F,...m,...S,..._,y,L,...ne,...B,$,ye]}}const Ec="[A-Za-z$_][0-9A-Za-z$_]*",$y=["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"],qy=["true","false","null","undefined","NaN","Infinity"],Ky=["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"],Gy=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Vy=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Wy=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Yy=[].concat(Vy,Ky,Gy);function GM(e){const n=e.regex,r=(Q,{after:I})=>{const A="</"+Q[0].slice(1);return Q.input.indexOf(A,I)!==-1},a=Ec,l={begin:"<>",end:"</>"},u=/<[A-Za-z0-9\\._:-]+\s*\/>/,f={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(Q,I)=>{const A=Q[0].length+Q.index,B=Q.input[A];if(B==="<"||B===","){I.ignoreMatch();return}B===">"&&(r(Q,{after:A})||I.ignoreMatch());let $;const P=Q.input.substring(A);if($=P.match(/^\s*=/)){I.ignoreMatch();return}if(($=P.match(/^\s+extends\s+/))&&$.index===0){I.ignoreMatch();return}}},o={$pattern:Ec,keyword:$y,literal:qy,built_in:Yy,"variable.language":Wy},h="[0-9](_?[0-9])*",d=`\\.(${h})`,m="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${m})((${d})|\\.)?|(${d}))[eE][+-]?(${h})\\b`},{begin:`\\b(${m})\\b((${d})\\b|\\.)?|(${d})\\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},x={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},S={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"xml"}},k={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"css"}},w={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"graphql"}},_={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,x]},v={className:"comment",variants:[e.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:a+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,S,k,w,_,{match:/\$\d+/},p];x.contains=y.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(y)});const T=[].concat(v,x.contains),M=T.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(T)}]),N={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:M},O={variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,n.concat(a,"(",n.concat(/\./,a),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,a],scope:{1:"keyword",3:"title.class"}}]},R={relevance:0,match:n.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:{_:[...Ky,...Gy]}},L={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,a,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[N],illegal:/%/},H={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function q(Q){return n.concat("(?!",Q.join("|"),")")}const F={match:n.concat(/\b/,q([...Vy,"super","import"].map(Q=>`${Q}\\s*\\(`)),a,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},W={begin:n.concat(/\./,n.lookahead(n.concat(a,/(?![0-9A-Za-z$_(])/))),end:a,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},G={match:[/get|set/,/\s+/,a,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},N]},K="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ne={match:[/const|var|let/,/\s+/,a,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(K)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[N]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:M,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),L,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,S,k,w,_,v,{match:/\$\d+/},p,R,{scope:"attr",match:a+n.lookahead(":"),relevance:0},ne,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,e.REGEXP_MODE,{className:"function",begin:K,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:M}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:l.begin,end:l.end},{match:u},{begin:f.begin,"on:begin":f.isTrulyOpeningTag,end:f.end}],subLanguage:"xml",contains:[{begin:f.begin,end:f.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[N,e.inherit(e.TITLE_MODE,{begin:a,className:"title.function"})]},{match:/\.\.\./,relevance:0},W,{match:"\\$"+a,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[N]},F,H,O,G,{match:/\$[(.]/}]}}function VM(e){const n=e.regex,r=GM(e),a=Ec,l=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],u={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},f={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:l},contains:[r.exports.CLASS_REFERENCE]},o={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},h=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],d={$pattern:Ec,keyword:$y.concat(h),literal:qy,built_in:Yy.concat(l),"variable.language":Wy},m={className:"meta",begin:"@"+a},p=(w,_,b)=>{const v=w.contains.findIndex(y=>y.label===_);if(v===-1)throw new Error("can not find mode to replace");w.contains.splice(v,1,b)};Object.assign(r.keywords,d),r.exports.PARAMS_CONTAINS.push(m);const x=r.contains.find(w=>w.scope==="attr"),S=Object.assign({},x,{match:n.concat(a,n.lookahead(/\s*\?:/))});r.exports.PARAMS_CONTAINS.push([r.exports.CLASS_REFERENCE,x,S]),r.contains=r.contains.concat([m,u,f,S]),p(r,"shebang",e.SHEBANG()),p(r,"use_strict",o);const k=r.contains.find(w=>w.label==="func.def");return k.relevance=0,Object.assign(r,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),r}function WM(e){const n=e.regex,r={className:"string",begin:/"(""|[^/n])"C\b/},a={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},l=/\d{1,2}\/\d{1,2}\/\d{4}/,u=/\d{4}-\d{1,2}-\d{1,2}/,f=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,o=/\d{1,2}(:\d{1,2}){1,2}/,h={className:"literal",variants:[{begin:n.concat(/# */,n.either(u,l),/ *#/)},{begin:n.concat(/# */,o,/ *#/)},{begin:n.concat(/# */,f,/ *#/)},{begin:n.concat(/# */,n.either(u,l),/ +/,n.either(f,o),/ *#/)}]},d={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},m={className:"label",begin:/^\w+:/},p=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),x=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[r,a,h,d,m,p,x,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[x]}]}}function YM(e){e.regex;const n=e.COMMENT(/\(;/,/;\)/);n.contains.push("self");const r=e.COMMENT(/;;/,/$/),a=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],l={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},u={className:"variable",begin:/\$[\w_]+/},f={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},o={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},h={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},d={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:a},contains:[r,n,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},u,f,l,e.QUOTE_STRING_MODE,h,d,o]}}function ZM(e){const n=e.regex,r=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a=/[\p{L}0-9._:-]+/u,l={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},u={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},f=e.inherit(u,{begin:/\(/,end:/\)/}),o=e.inherit(e.APOS_STRING_MODE,{className:"string"}),h=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:a,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:[u,h,o,f,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[u,f,h,o]}]}]},e.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:[d],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[d],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(/</,n.lookahead(n.concat(r,n.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:r,relevance:0,starts:d}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(r,/>/))),contains:[{className:"name",begin:r,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function XM(e){const n="true false yes no null",r="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},l={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},u={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},f={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,l]},o=e.inherit(f,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),x={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"},S={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},k={begin:/\{/,end:/\}/,contains:[S],illegal:"\\n",relevance:0},w={begin:"\\[",end:"\\]",contains:[S],illegal:"\\n",relevance:0},_=[a,{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+!"+r},{className:"type",begin:"!<"+r+">"},{className:"type",begin:"!"+r},{className:"type",begin:"!!"+r},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},x,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},k,w,u,f],b=[..._];return b.pop(),b.push(o),S.contains=b,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:_}}const QM={arduino:DR,bash:LR,c:IR,cpp:BR,csharp:PR,css:GR,diff:VR,go:WR,graphql:YR,ini:ZR,java:XR,javascript:nM,json:iM,kotlin:sM,less:fM,lua:pM,makefile:mM,markdown:gM,objectivec:_M,perl:vM,php:bM,"php-template":yM,plaintext:xM,python:SM,"python-repl":EM,r:wM,ruby:CM,rust:kM,scss:IM,shell:BM,sql:PM,swift:KM,typescript:VM,vbnet:WM,wasm:YM,xml:ZM,yaml:XM};var gd,Pv;function JM(){if(Pv)return gd;Pv=1;function e(Z){return Z instanceof Map?Z.clear=Z.delete=Z.set=function(){throw new Error("map is read-only")}:Z instanceof Set&&(Z.add=Z.clear=Z.delete=function(){throw new Error("set is read-only")}),Object.freeze(Z),Object.getOwnPropertyNames(Z).forEach(_e=>{const Re=Z[_e],Ze=typeof Re;(Ze==="object"||Ze==="function")&&!Object.isFrozen(Re)&&e(Re)}),Z}class n{constructor(_e){_e.data===void 0&&(_e.data={}),this.data=_e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a(Z,..._e){const Re=Object.create(null);for(const Ze in Z)Re[Ze]=Z[Ze];return _e.forEach(function(Ze){for(const Ut in Ze)Re[Ut]=Ze[Ut]}),Re}const l="</span>",u=Z=>!!Z.scope,f=(Z,{prefix:_e})=>{if(Z.startsWith("language:"))return Z.replace("language:","language-");if(Z.includes(".")){const Re=Z.split(".");return[`${_e}${Re.shift()}`,...Re.map((Ze,Ut)=>`${Ze}${"_".repeat(Ut+1)}`)].join(" ")}return`${_e}${Z}`};class o{constructor(_e,Re){this.buffer="",this.classPrefix=Re.classPrefix,_e.walk(this)}addText(_e){this.buffer+=r(_e)}openNode(_e){if(!u(_e))return;const Re=f(_e.scope,{prefix:this.classPrefix});this.span(Re)}closeNode(_e){u(_e)&&(this.buffer+=l)}value(){return this.buffer}span(_e){this.buffer+=`<span class="${_e}">`}}const h=(Z={})=>{const _e={children:[]};return Object.assign(_e,Z),_e};class d{constructor(){this.rootNode=h(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(_e){this.top.children.push(_e)}openNode(_e){const Re=h({scope:_e});this.add(Re),this.stack.push(Re)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(_e){return this.constructor._walk(_e,this.rootNode)}static _walk(_e,Re){return typeof Re=="string"?_e.addText(Re):Re.children&&(_e.openNode(Re),Re.children.forEach(Ze=>this._walk(_e,Ze)),_e.closeNode(Re)),_e}static _collapse(_e){typeof _e!="string"&&_e.children&&(_e.children.every(Re=>typeof Re=="string")?_e.children=[_e.children.join("")]:_e.children.forEach(Re=>{d._collapse(Re)}))}}class m extends d{constructor(_e){super(),this.options=_e}addText(_e){_e!==""&&this.add(_e)}startScope(_e){this.openNode(_e)}endScope(){this.closeNode()}__addSublanguage(_e,Re){const Ze=_e.root;Re&&(Ze.scope=`language:${Re}`),this.add(Ze)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function p(Z){return Z?typeof Z=="string"?Z:Z.source:null}function x(Z){return w("(?=",Z,")")}function S(Z){return w("(?:",Z,")*")}function k(Z){return w("(?:",Z,")?")}function w(...Z){return Z.map(Re=>p(Re)).join("")}function _(Z){const _e=Z[Z.length-1];return typeof _e=="object"&&_e.constructor===Object?(Z.splice(Z.length-1,1),_e):{}}function b(...Z){return"("+(_(Z).capture?"":"?:")+Z.map(Ze=>p(Ze)).join("|")+")"}function v(Z){return new RegExp(Z.toString()+"|").exec("").length-1}function y(Z,_e){const Re=Z&&Z.exec(_e);return Re&&Re.index===0}const T=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function M(Z,{joinWith:_e}){let Re=0;return Z.map(Ze=>{Re+=1;const Ut=Re;let $t=p(Ze),De="";for(;$t.length>0;){const X=T.exec($t);if(!X){De+=$t;break}De+=$t.substring(0,X.index),$t=$t.substring(X.index+X[0].length),X[0][0]==="\\"&&X[1]?De+="\\"+String(Number(X[1])+Ut):(De+=X[0],X[0]==="("&&Re++)}return De}).map(Ze=>`(${Ze})`).join(_e)}const N=/\b\B/,O="[a-zA-Z]\\w*",R="[a-zA-Z_]\\w*",L="\\b\\d+(\\.\\d+)?",z="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",H="\\b(0b[01]+)",q="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",F=(Z={})=>{const _e=/^#![ ]*\//;return Z.binary&&(Z.begin=w(_e,/.*\b/,Z.binary,/\b.*/)),a({scope:"meta",begin:_e,end:/$/,relevance:0,"on:begin":(Re,Ze)=>{Re.index!==0&&Ze.ignoreMatch()}},Z)},W={begin:"\\\\[\\s\\S]",relevance:0},G={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[W]},K={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[W]},ne={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/},Q=function(Z,_e,Re={}){const Ze=a({scope:"comment",begin:Z,end:_e,contains:[]},Re);Ze.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 Ut=b("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 Ze.contains.push({begin:w(/[ ]+/,"(",Ut,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Ze},I=Q("//","$"),A=Q("/\\*","\\*/"),B=Q("#","$"),$={scope:"number",begin:L,relevance:0},P={scope:"number",begin:z,relevance:0},oe={scope:"number",begin:H,relevance:0},ye={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[W,{begin:/\[/,end:/\]/,relevance:0,contains:[W]}]},pe={scope:"title",begin:O,relevance:0},J={scope:"title",begin:R,relevance:0},j={begin:"\\.\\s*"+R,relevance:0};var ce=Object.freeze({__proto__:null,APOS_STRING_MODE:G,BACKSLASH_ESCAPE:W,BINARY_NUMBER_MODE:oe,BINARY_NUMBER_RE:H,COMMENT:Q,C_BLOCK_COMMENT_MODE:A,C_LINE_COMMENT_MODE:I,C_NUMBER_MODE:P,C_NUMBER_RE:z,END_SAME_AS_BEGIN:function(Z){return Object.assign(Z,{"on:begin":(_e,Re)=>{Re.data._beginMatch=_e[1]},"on:end":(_e,Re)=>{Re.data._beginMatch!==_e[1]&&Re.ignoreMatch()}})},HASH_COMMENT_MODE:B,IDENT_RE:O,MATCH_NOTHING_RE:N,METHOD_GUARD:j,NUMBER_MODE:$,NUMBER_RE:L,PHRASAL_WORDS_MODE:ne,QUOTE_STRING_MODE:K,REGEXP_MODE:ye,RE_STARTERS_RE:q,SHEBANG:F,TITLE_MODE:pe,UNDERSCORE_IDENT_RE:R,UNDERSCORE_TITLE_MODE:J});function ee(Z,_e){Z.input[Z.index-1]==="."&&_e.ignoreMatch()}function le(Z,_e){Z.className!==void 0&&(Z.scope=Z.className,delete Z.className)}function Ce(Z,_e){_e&&Z.beginKeywords&&(Z.begin="\\b("+Z.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",Z.__beforeBegin=ee,Z.keywords=Z.keywords||Z.beginKeywords,delete Z.beginKeywords,Z.relevance===void 0&&(Z.relevance=0))}function He(Z,_e){Array.isArray(Z.illegal)&&(Z.illegal=b(...Z.illegal))}function Ee(Z,_e){if(Z.match){if(Z.begin||Z.end)throw new Error("begin & end are not supported with match");Z.begin=Z.match,delete Z.match}}function we(Z,_e){Z.relevance===void 0&&(Z.relevance=1)}const ke=(Z,_e)=>{if(!Z.beforeMatch)return;if(Z.starts)throw new Error("beforeMatch cannot be used with starts");const Re=Object.assign({},Z);Object.keys(Z).forEach(Ze=>{delete Z[Ze]}),Z.keywords=Re.keywords,Z.begin=w(Re.beforeMatch,x(Re.begin)),Z.starts={relevance:0,contains:[Object.assign(Re,{endsParent:!0})]},Z.relevance=0,delete Re.beforeMatch},Tt=["of","and","for","in","not","or","if","then","parent","list","value"],Fe="keyword";function At(Z,_e,Re=Fe){const Ze=Object.create(null);return typeof Z=="string"?Ut(Re,Z.split(" ")):Array.isArray(Z)?Ut(Re,Z):Object.keys(Z).forEach(function($t){Object.assign(Ze,At(Z[$t],_e,$t))}),Ze;function Ut($t,De){_e&&(De=De.map(X=>X.toLowerCase())),De.forEach(function(X){const de=X.split("|");Ze[de[0]]=[$t,Me(de[0],de[1])]})}}function Me(Z,_e){return _e?Number(_e):pn(Z)?0:1}function pn(Z){return Tt.includes(Z.toLowerCase())}const Nt={},Ot=Z=>{console.error(Z)},wt=(Z,..._e)=>{console.log(`WARN: ${Z}`,..._e)},ue=(Z,_e)=>{Nt[`${Z}/${_e}`]||(console.log(`Deprecated as of ${Z}. ${_e}`),Nt[`${Z}/${_e}`]=!0)},xe=new Error;function Ie(Z,_e,{key:Re}){let Ze=0;const Ut=Z[Re],$t={},De={};for(let X=1;X<=_e.length;X++)De[X+Ze]=Ut[X],$t[X+Ze]=!0,Ze+=v(_e[X-1]);Z[Re]=De,Z[Re]._emit=$t,Z[Re]._multi=!0}function $e(Z){if(Array.isArray(Z.begin)){if(Z.skip||Z.excludeBegin||Z.returnBegin)throw Ot("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),xe;if(typeof Z.beginScope!="object"||Z.beginScope===null)throw Ot("beginScope must be object"),xe;Ie(Z,Z.begin,{key:"beginScope"}),Z.begin=M(Z.begin,{joinWith:""})}}function Je(Z){if(Array.isArray(Z.end)){if(Z.skip||Z.excludeEnd||Z.returnEnd)throw Ot("skip, excludeEnd, returnEnd not compatible with endScope: {}"),xe;if(typeof Z.endScope!="object"||Z.endScope===null)throw Ot("endScope must be object"),xe;Ie(Z,Z.end,{key:"endScope"}),Z.end=M(Z.end,{joinWith:""})}}function Gt(Z){Z.scope&&typeof Z.scope=="object"&&Z.scope!==null&&(Z.beginScope=Z.scope,delete Z.scope)}function ht(Z){Gt(Z),typeof Z.beginScope=="string"&&(Z.beginScope={_wrap:Z.beginScope}),typeof Z.endScope=="string"&&(Z.endScope={_wrap:Z.endScope}),$e(Z),Je(Z)}function Qt(Z){function _e(De,X){return new RegExp(p(De),"m"+(Z.case_insensitive?"i":"")+(Z.unicodeRegex?"u":"")+(X?"g":""))}class Re{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(X,de){de.position=this.position++,this.matchIndexes[this.matchAt]=de,this.regexes.push([de,X]),this.matchAt+=v(X)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const X=this.regexes.map(de=>de[1]);this.matcherRe=_e(M(X,{joinWith:"|"}),!0),this.lastIndex=0}exec(X){this.matcherRe.lastIndex=this.lastIndex;const de=this.matcherRe.exec(X);if(!de)return null;const Be=de.findIndex((gt,Nn)=>Nn>0&>!==void 0),Ke=this.matchIndexes[Be];return de.splice(0,Be),Object.assign(de,Ke)}}class Ze{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(X){if(this.multiRegexes[X])return this.multiRegexes[X];const de=new Re;return this.rules.slice(X).forEach(([Be,Ke])=>de.addRule(Be,Ke)),de.compile(),this.multiRegexes[X]=de,de}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(X,de){this.rules.push([X,de]),de.type==="begin"&&this.count++}exec(X){const de=this.getMatcher(this.regexIndex);de.lastIndex=this.lastIndex;let Be=de.exec(X);if(this.resumingScanAtSamePosition()&&!(Be&&Be.index===this.lastIndex)){const Ke=this.getMatcher(0);Ke.lastIndex=this.lastIndex+1,Be=Ke.exec(X)}return Be&&(this.regexIndex+=Be.position+1,this.regexIndex===this.count&&this.considerAll()),Be}}function Ut(De){const X=new Ze;return De.contains.forEach(de=>X.addRule(de.begin,{rule:de,type:"begin"})),De.terminatorEnd&&X.addRule(De.terminatorEnd,{type:"end"}),De.illegal&&X.addRule(De.illegal,{type:"illegal"}),X}function $t(De,X){const de=De;if(De.isCompiled)return de;[le,Ee,ht,ke].forEach(Ke=>Ke(De,X)),Z.compilerExtensions.forEach(Ke=>Ke(De,X)),De.__beforeBegin=null,[Ce,He,we].forEach(Ke=>Ke(De,X)),De.isCompiled=!0;let Be=null;return typeof De.keywords=="object"&&De.keywords.$pattern&&(De.keywords=Object.assign({},De.keywords),Be=De.keywords.$pattern,delete De.keywords.$pattern),Be=Be||/\w+/,De.keywords&&(De.keywords=At(De.keywords,Z.case_insensitive)),de.keywordPatternRe=_e(Be,!0),X&&(De.begin||(De.begin=/\B|\b/),de.beginRe=_e(de.begin),!De.end&&!De.endsWithParent&&(De.end=/\B|\b/),De.end&&(de.endRe=_e(de.end)),de.terminatorEnd=p(de.end)||"",De.endsWithParent&&X.terminatorEnd&&(de.terminatorEnd+=(De.end?"|":"")+X.terminatorEnd)),De.illegal&&(de.illegalRe=_e(De.illegal)),De.contains||(De.contains=[]),De.contains=[].concat(...De.contains.map(function(Ke){return vn(Ke==="self"?De:Ke)})),De.contains.forEach(function(Ke){$t(Ke,de)}),De.starts&&$t(De.starts,X),de.matcher=Ut(de),de}if(Z.compilerExtensions||(Z.compilerExtensions=[]),Z.contains&&Z.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return Z.classNameAliases=a(Z.classNameAliases||{}),$t(Z)}function En(Z){return Z?Z.endsWithParent||En(Z.starts):!1}function vn(Z){return Z.variants&&!Z.cachedVariants&&(Z.cachedVariants=Z.variants.map(function(_e){return a(Z,{variants:null},_e)})),Z.cachedVariants?Z.cachedVariants:En(Z)?a(Z,{starts:Z.starts?a(Z.starts):null}):Object.isFrozen(Z)?a(Z):Z}var Wt="11.11.1";class rn extends Error{constructor(_e,Re){super(_e),this.name="HTMLInjectionError",this.html=Re}}const sn=r,Ii=a,rr=Symbol("nomatch"),zr=7,ei=function(Z){const _e=Object.create(null),Re=Object.create(null),Ze=[];let Ut=!0;const $t="Could not find the language '{}', did you forget to load/include a language module?",De={disableAutodetect:!0,name:"Plain text",contains:[]};let X={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:m};function de(Te){return X.noHighlightRe.test(Te)}function Be(Te){let Ge=Te.className+" ";Ge+=Te.parentNode?Te.parentNode.className:"";const rt=X.languageDetectRe.exec(Ge);if(rt){const Rt=Rn(rt[1]);return Rt||(wt($t.replace("{}",rt[1])),wt("Falling back to no-highlight mode for this block.",Te)),Rt?rt[1]:"no-highlight"}return Ge.split(/\s+/).find(Rt=>de(Rt)||Rn(Rt))}function Ke(Te,Ge,rt){let Rt="",Zt="";typeof Ge=="object"?(Rt=Te,rt=Ge.ignoreIllegals,Zt=Ge.language):(ue("10.7.0","highlight(lang, code, ...args) has been deprecated."),ue("10.7.0",`Please use highlight(code, options) instead.
|
|
82
82
|
https://github.com/highlightjs/highlight.js/issues/2277`),Zt=Te,Rt=Ge),rt===void 0&&(rt=!0);const $n={code:Rt,language:Zt};ji("before:highlight",$n);const gi=$n.result?$n.result:gt($n.language,$n.code,rt);return gi.code=$n.code,ji("after:highlight",gi),gi}function gt(Te,Ge,rt,Rt){const Zt=Object.create(null);function $n(Oe,ze){return Oe.keywords[ze]}function gi(){if(!nt.keywords){an.addText(Mt);return}let Oe=0;nt.keywordPatternRe.lastIndex=0;let ze=nt.keywordPatternRe.exec(Mt),et="";for(;ze;){et+=Mt.substring(Oe,ze.index);const xt=qn.case_insensitive?ze[0].toLowerCase():ze[0],on=$n(nt,xt);if(on){const[ni,$r]=on;if(an.addText(et),et="",Zt[xt]=(Zt[xt]||0)+1,Zt[xt]<=zr&&(ms+=$r),ni.startsWith("_"))et+=ze[0];else{const _i=qn.classNameAliases[ni]||ni;ti(ze[0],_i)}}else et+=ze[0];Oe=nt.keywordPatternRe.lastIndex,ze=nt.keywordPatternRe.exec(Mt)}et+=Mt.substring(Oe),an.addText(et)}function bn(){if(Mt==="")return;let Oe=null;if(typeof nt.subLanguage=="string"){if(!_e[nt.subLanguage]){an.addText(Mt);return}Oe=gt(nt.subLanguage,Mt,!0,ga[nt.subLanguage]),ga[nt.subLanguage]=Oe._top}else Oe=It(Mt,nt.subLanguage.length?nt.subLanguage:null);nt.relevance>0&&(ms+=Oe.relevance),an.__addSublanguage(Oe._emitter,Oe.language)}function wn(){nt.subLanguage!=null?bn():gi(),Mt=""}function ti(Oe,ze){Oe!==""&&(an.startScope(ze),an.addText(Oe),an.endScope())}function Ur(Oe,ze){let et=1;const xt=ze.length-1;for(;et<=xt;){if(!Oe._emit[et]){et++;continue}const on=qn.classNameAliases[Oe[et]]||Oe[et],ni=ze[et];on?ti(ni,on):(Mt=ni,gi(),Mt=""),et++}}function pa(Oe,ze){return Oe.scope&&typeof Oe.scope=="string"&&an.openNode(qn.classNameAliases[Oe.scope]||Oe.scope),Oe.beginScope&&(Oe.beginScope._wrap?(ti(Mt,qn.classNameAliases[Oe.beginScope._wrap]||Oe.beginScope._wrap),Mt=""):Oe.beginScope._multi&&(Ur(Oe.beginScope,ze),Mt="")),nt=Object.create(Oe,{parent:{value:nt}}),nt}function Hr(Oe,ze,et){let xt=y(Oe.endRe,et);if(xt){if(Oe["on:end"]){const on=new n(Oe);Oe["on:end"](ze,on),on.isMatchIgnored&&(xt=!1)}if(xt){for(;Oe.endsParent&&Oe.parent;)Oe=Oe.parent;return Oe}}if(Oe.endsWithParent)return Hr(Oe.parent,ze,et)}function Fc(Oe){return nt.matcher.regexIndex===0?(Mt+=Oe[0],1):(Fr=!0,0)}function In(Oe){const ze=Oe[0],et=Oe.rule,xt=new n(et),on=[et.__beforeBegin,et["on:begin"]];for(const ni of on)if(ni&&(ni(Oe,xt),xt.isMatchIgnored))return Fc(ze);return et.skip?Mt+=ze:(et.excludeBegin&&(Mt+=ze),wn(),!et.returnBegin&&!et.excludeBegin&&(Mt=ze)),pa(et,Oe),et.returnBegin?0:ze.length}function ma(Oe){const ze=Oe[0],et=Ge.substring(Oe.index),xt=Hr(nt,Oe,et);if(!xt)return rr;const on=nt;nt.endScope&&nt.endScope._wrap?(wn(),ti(ze,nt.endScope._wrap)):nt.endScope&&nt.endScope._multi?(wn(),Ur(nt.endScope,Oe)):on.skip?Mt+=ze:(on.returnEnd||on.excludeEnd||(Mt+=ze),wn(),on.excludeEnd&&(Mt=ze));do nt.scope&&an.closeNode(),!nt.skip&&!nt.subLanguage&&(ms+=nt.relevance),nt=nt.parent;while(nt!==xt.parent);return xt.starts&&pa(xt.starts,Oe),on.returnEnd?0:ze.length}function qo(){const Oe=[];for(let ze=nt;ze!==qn;ze=ze.parent)ze.scope&&Oe.unshift(ze.scope);Oe.forEach(ze=>an.openNode(ze))}let or={};function Ui(Oe,ze){const et=ze&&ze[0];if(Mt+=Oe,et==null)return wn(),0;if(or.type==="begin"&&ze.type==="end"&&or.index===ze.index&&et===""){if(Mt+=Ge.slice(ze.index,ze.index+1),!Ut){const xt=new Error(`0 width match regex (${Te})`);throw xt.languageName=Te,xt.badRule=or.rule,xt}return 1}if(or=ze,ze.type==="begin")return In(ze);if(ze.type==="illegal"&&!rt){const xt=new Error('Illegal lexeme "'+et+'" for mode "'+(nt.scope||"<unnamed>")+'"');throw xt.mode=nt,xt}else if(ze.type==="end"){const xt=ma(ze);if(xt!==rr)return xt}if(ze.type==="illegal"&&et==="")return Mt+=`
|
|
83
83
|
`,1;if(lr>1e5&&lr>ze.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Mt+=et,et.length}const qn=Rn(Te);if(!qn)throw Ot($t.replace("{}",Te)),new Error('Unknown language: "'+Te+'"');const Ko=Qt(qn);let Ei="",nt=Rt||Ko;const ga={},an=new X.__emitter(X);qo();let Mt="",ms=0,Hi=0,lr=0,Fr=!1;try{if(qn.__emitTokens)qn.__emitTokens(Ge,an);else{for(nt.matcher.considerAll();;){lr++,Fr?Fr=!1:nt.matcher.considerAll(),nt.matcher.lastIndex=Hi;const Oe=nt.matcher.exec(Ge);if(!Oe)break;const ze=Ge.substring(Hi,Oe.index),et=Ui(ze,Oe);Hi=Oe.index+et}Ui(Ge.substring(Hi))}return an.finalize(),Ei=an.toHTML(),{language:Te,value:Ei,relevance:ms,illegal:!1,_emitter:an,_top:nt}}catch(Oe){if(Oe.message&&Oe.message.includes("Illegal"))return{language:Te,value:sn(Ge),illegal:!0,relevance:0,_illegalBy:{message:Oe.message,index:Hi,context:Ge.slice(Hi-100,Hi+100),mode:Oe.mode,resultSoFar:Ei},_emitter:an};if(Ut)return{language:Te,value:sn(Ge),illegal:!1,relevance:0,errorRaised:Oe,_emitter:an,_top:nt};throw Oe}}function Nn(Te){const Ge={value:sn(Te),illegal:!1,relevance:0,_top:De,_emitter:new X.__emitter(X)};return Ge._emitter.addText(Te),Ge}function It(Te,Ge){Ge=Ge||X.languages||Object.keys(_e);const rt=Nn(Te),Rt=Ge.filter(Rn).filter(fa).map(wn=>gt(wn,Te,!1));Rt.unshift(rt);const Zt=Rt.sort((wn,ti)=>{if(wn.relevance!==ti.relevance)return ti.relevance-wn.relevance;if(wn.language&&ti.language){if(Rn(wn.language).supersetOf===ti.language)return 1;if(Rn(ti.language).supersetOf===wn.language)return-1}return 0}),[$n,gi]=Zt,bn=$n;return bn.secondBest=gi,bn}function pi(Te,Ge,rt){const Rt=Ge&&Re[Ge]||rt;Te.classList.add("hljs"),Te.classList.add(`language-${Rt}`)}function Bi(Te){let Ge=null;const rt=Be(Te);if(de(rt))return;if(ji("before:highlightElement",{el:Te,language:rt}),Te.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",Te);return}if(Te.children.length>0&&(X.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(Te)),X.throwUnescapedHTML))throw new rn("One of your code blocks includes unescaped HTML.",Te.innerHTML);Ge=Te;const Rt=Ge.textContent,Zt=rt?Ke(Rt,{language:rt,ignoreIllegals:!0}):It(Rt);Te.innerHTML=Zt.value,Te.dataset.highlighted="yes",pi(Te,rt,Zt.language),Te.result={language:Zt.language,re:Zt.relevance,relevance:Zt.relevance},Zt.secondBest&&(Te.secondBest={language:Zt.secondBest.language,relevance:Zt.secondBest.relevance}),ji("after:highlightElement",{el:Te,result:Zt,text:Rt})}function sr(Te){X=Ii(X,Te)}const ar=()=>{Yt(),ue("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function jr(){Yt(),ue("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Pi=!1;function Yt(){function Te(){Yt()}if(document.readyState==="loading"){Pi||window.addEventListener("DOMContentLoaded",Te,!1),Pi=!0;return}document.querySelectorAll(X.cssSelector).forEach(Bi)}function Uo(Te,Ge){let rt=null;try{rt=Ge(Z)}catch(Rt){if(Ot("Language definition for '{}' could not be registered.".replace("{}",Te)),Ut)Ot(Rt);else throw Rt;rt=De}rt.name||(rt.name=Te),_e[Te]=rt,rt.rawDefinition=Ge.bind(null,Z),rt.aliases&&Fo(rt.aliases,{languageName:Te})}function Ho(Te){delete _e[Te];for(const Ge of Object.keys(Re))Re[Ge]===Te&&delete Re[Ge]}function zi(){return Object.keys(_e)}function Rn(Te){return Te=(Te||"").toLowerCase(),_e[Te]||_e[Re[Te]]}function Fo(Te,{languageName:Ge}){typeof Te=="string"&&(Te=[Te]),Te.forEach(rt=>{Re[rt.toLowerCase()]=Ge})}function fa(Te){const Ge=Rn(Te);return Ge&&!Ge.disableAutodetect}function $o(Te){Te["before:highlightBlock"]&&!Te["before:highlightElement"]&&(Te["before:highlightElement"]=Ge=>{Te["before:highlightBlock"](Object.assign({block:Ge.el},Ge))}),Te["after:highlightBlock"]&&!Te["after:highlightElement"]&&(Te["after:highlightElement"]=Ge=>{Te["after:highlightBlock"](Object.assign({block:Ge.el},Ge))})}function Hc(Te){$o(Te),Ze.push(Te)}function ps(Te){const Ge=Ze.indexOf(Te);Ge!==-1&&Ze.splice(Ge,1)}function ji(Te,Ge){const rt=Te;Ze.forEach(function(Rt){Rt[rt]&&Rt[rt](Ge)})}function mi(Te){return ue("10.7.0","highlightBlock will be removed entirely in v12.0"),ue("10.7.0","Please use highlightElement now."),Bi(Te)}Object.assign(Z,{highlight:Ke,highlightAuto:It,highlightAll:Yt,highlightElement:Bi,highlightBlock:mi,configure:sr,initHighlighting:ar,initHighlightingOnLoad:jr,registerLanguage:Uo,unregisterLanguage:Ho,listLanguages:zi,getLanguage:Rn,registerAliases:Fo,autoDetection:fa,inherit:Ii,addPlugin:Hc,removePlugin:ps}),Z.debugMode=function(){Ut=!1},Z.safeMode=function(){Ut=!0},Z.versionString=Wt,Z.regex={concat:w,lookahead:x,either:b,optional:k,anyNumberOfTimes:S};for(const Te in ce)typeof ce[Te]=="object"&&e(ce[Te]);return Object.assign(Z,ce),Z},fi=ei({});return fi.newInstance=()=>ei({}),gd=fi,fi.HighlightJS=fi,fi.default=fi,gd}var eO=JM();const tO=Xd(eO),zv={},nO="hljs-";function iO(e){const n=tO.newInstance();return e&&u(e),{highlight:r,highlightAuto:a,listLanguages:l,register:u,registerAlias:f,registered:o};function r(h,d,m){const p=m||zv,x=typeof p.prefix=="string"?p.prefix:nO;if(!n.getLanguage(h))throw new Error("Unknown language: `"+h+"` is not registered");n.configure({__emitter:rO,classPrefix:x});const S=n.highlight(d,{ignoreIllegals:!0,language:h});if(S.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:S.errorRaised});const k=S._emitter.root,w=k.data;return w.language=S.language,w.relevance=S.relevance,k}function a(h,d){const p=(d||zv).subset||l();let x=-1,S=0,k;for(;++x<p.length;){const w=p[x];if(!n.getLanguage(w))continue;const _=r(w,h,d);_.data&&_.data.relevance!==void 0&&_.data.relevance>S&&(S=_.data.relevance,k=_)}return k||{type:"root",children:[],data:{language:void 0,relevance:S}}}function l(){return n.listLanguages()}function u(h,d){if(typeof h=="string")n.registerLanguage(h,d);else{let m;for(m in h)Object.hasOwn(h,m)&&n.registerLanguage(m,h[m])}}function f(h,d){if(typeof h=="string")n.registerAliases(typeof d=="string"?d:[...d],{languageName:h});else{let m;for(m in h)if(Object.hasOwn(h,m)){const p=h[m];n.registerAliases(typeof p=="string"?p:[...p],{languageName:m})}}}function o(h){return!!n.getLanguage(h)}}class rO{constructor(n){this.options=n,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(n){if(n==="")return;const r=this.stack[this.stack.length-1],a=r.children[r.children.length-1];a&&a.type==="text"?a.value+=n:r.children.push({type:"text",value:n})}startScope(n){this.openNode(String(n))}endScope(){this.closeNode()}__addSublanguage(n,r){const a=this.stack[this.stack.length-1],l=n.root.children;r?a.children.push({type:"element",tagName:"span",properties:{className:[r]},children:l}):a.children.push(...l)}openNode(n){const r=this,a=n.split(".").map(function(f,o){return o?f+"_".repeat(o):r.options.classPrefix+f}),l=this.stack[this.stack.length-1],u={type:"element",tagName:"span",properties:{className:a},children:[]};l.children.push(u),this.stack.push(u)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const sO={};function jv(e){const n=e||sO,r=n.aliases,a=n.detect||!1,l=n.languages||QM,u=n.plainText,f=n.prefix,o=n.subset;let h="hljs";const d=iO(l);if(r&&d.registerAlias(r),f){const m=f.indexOf("-");h=m===-1?f:f.slice(0,m)}return function(m,p){zc(m,"element",function(x,S,k){if(x.tagName!=="code"||!k||k.type!=="element"||k.tagName!=="pre")return;const w=aO(x);if(w===!1||!w&&!a||w&&u&&u.includes(w))return;Array.isArray(x.properties.className)||(x.properties.className=[]),x.properties.className.includes(h)||x.properties.className.unshift(h);const _=CR(x,{whitespace:"pre"});let b;try{b=w?d.highlight(w,_,{prefix:f}):d.highlightAuto(_,{prefix:f,subset:o})}catch(v){const y=v;if(w&&/Unknown language/.test(y.message)){p.message("Cannot highlight as `"+w+"`, it’s not registered",{ancestors:[k,x],cause:y,place:x.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw y}!w&&b.data&&b.data.language&&x.properties.className.push("language-"+b.data.language),b.children.length>0&&(x.children=b.children)})}}function aO(e){const n=e.properties.className;let r=-1;if(!Array.isArray(n))return;let a;for(;++r<n.length;){const l=String(n[r]);if(l==="no-highlight"||l==="nohighlight")return!1;!a&&l.slice(0,5)==="lang-"&&(a=l.slice(5)),!a&&l.slice(0,9)==="language-"&&(a=l.slice(9))}return a}function Zy(e){const n=e.split(`
|
|
84
|
-
`),r=[];for(const a of n)a.startsWith("@@")?r.push({kind:"hunk",text:a}):a.startsWith("diff ")||a.startsWith("index ")||a.startsWith("--- ")||a.startsWith("+++ ")?r.push({kind:"meta",text:a}):a.startsWith("+")?r.push({kind:"add",text:a.slice(1)}):a.startsWith("-")?r.push({kind:"remove",text:a.slice(1)}):r.push({kind:"context",text:a.startsWith(" ")?a.slice(1):a});return r}function Xy(e){let n=0,r=0;for(const a of e)a.kind==="add"?n++:a.kind==="remove"&&r++;return{added:n,removed:r}}function Wd(e){var n;return e==null||e===!1||e===!0?"":typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(Wd).join(""):typeof e=="object"&&"props"in e?Wd((n=e.props)==null?void 0:n.children):""}function jc({text:e,className:n,label:r="复制"}){const[a,l]=re.useState(!1),u=async f=>{f.stopPropagation();try{await navigator.clipboard.writeText(e),l(!0),setTimeout(()=>l(!1),1500)}catch{}};return C.jsx("button",{onClick:u,title:a?"已复制":r,"aria-label":r,className:n??"flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted transition-colors hover:text-content-primary",children:a?C.jsx(Mo,{size:13,className:"text-success"}):C.jsx(DS,{size:13})})}function oO(e){const n=e.toLowerCase(),r=a=>{if(!a||!Array.isArray(a.children)||a.type==="element"&&(a.tagName==="code"||a.tagName==="pre"))return;const l=[];for(const u of a.children)if(u.type==="text"&&typeof u.value=="string"){const f=u.value,o=f.toLowerCase();let h=o.indexOf(n);if(h===-1){l.push(u);continue}let d=0;for(;h!==-1;)h>d&&l.push({type:"text",value:f.slice(d,h)}),l.push({type:"element",tagName:"mark",properties:{},children:[{type:"text",value:f.slice(h,h+n.length)}]}),d=h+n.length,h=o.indexOf(n,d);d<f.length&&l.push({type:"text",value:f.slice(d)})}else r(u),l.push(u);a.children=l};return()=>a=>{n&&r(a)}}const Qy=re.memo(function({text:n,highlight:r}){return C.jsx("div",{className:"prose-codex break-words text-[15px] leading-7 text-content-primary",children:C.jsx(s2,{remarkPlugins:[vR],rehypePlugins:r?[[jv,{detect:!0,ignoreMissing:!0}],oO(r)]:[[jv,{detect:!0,ignoreMissing:!0}]],components:{mark({children:a}){return C.jsx("mark",{className:"rounded bg-warning/30 px-0.5 text-content-primary",children:a})},pre({children:a}){return C.jsx(C.Fragment,{children:a})},code({className:a,children:l,...u}){if(/language-|hljs/.test(a??"")){const o=Wd(l);return C.jsxs("div",{className:"group/code relative my-3",children:[C.jsx("pre",{className:"max-w-full overflow-x-auto rounded-lg border border-border bg-surface-raised p-3 font-mono text-[13px] leading-relaxed",children:C.jsx("code",{className:a,...u,children:l})}),C.jsx(jc,{text:o,className:"absolute right-2 top-2 flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted opacity-0 transition-opacity hover:text-content-primary group-hover/code:opacity-100"})]})}return C.jsx("code",{className:"break-all rounded bg-surface-overlay px-1.5 py-0.5 font-mono text-[13px] text-accent",...u,children:l})},a({children:a,...l}){return C.jsx("a",{className:"text-accent underline underline-offset-2",target:"_blank",rel:"noreferrer",...l,children:a})},p({children:a}){return C.jsx("p",{className:"my-2",children:a})},ul({children:a}){return C.jsx("ul",{className:"my-2 list-disc space-y-1 pl-5",children:a})},ol({children:a}){return C.jsx("ol",{className:"my-2 list-decimal space-y-1 pl-5",children:a})}},children:n})})});function Jy({item:e,onOpen:n}){const r=e.fileChange,a=r.diff?Zy(r.diff):[],l=Xy(a),u=r.entries.length>0?r.entries.map(d=>d.path):[],f=u[0]||r.summary||"文件变更",o=u.length>1?` +${u.length-1}`:"",h=!!(r.diff&&n);return C.jsxs("button",{onClick:()=>h&&(n==null?void 0:n(e)),className:`flex w-full items-center gap-2 rounded-xl border border-border bg-surface px-3.5 py-2.5 text-left transition-colors ${h?"cursor-pointer hover:border-border-strong hover:bg-surface-overlay":"cursor-default"}`,children:[C.jsx(na,{size:14,className:"shrink-0 text-content-faint"}),C.jsxs("span",{className:"truncate font-mono text-[13px] text-content-primary",title:u.join(", ")||f,children:[f,o&&C.jsx("span",{className:"text-content-muted",children:o})]}),C.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-2 font-mono text-[13px]",children:[l.added>0&&C.jsxs("span",{className:"text-diff-addText",children:["+",l.added]}),l.removed>0&&C.jsxs("span",{className:"text-diff-removeText",children:["−",l.removed]}),h&&C.jsx(Si,{size:13,className:"text-content-faint"})]})]})}function lO(e){const n=/@@\s*-(\d+)(?:,\d+)?\s*\+(\d+)(?:,\d+)?\s*@@/.exec(e);return n?[Number(n[1]),Number(n[2])]:null}function cO({item:e}){const n=e.fileChange,r=n!=null&&n.diff?Zy(n.diff):[],a=Xy(r),l=(n==null?void 0:n.entries.map(o=>o.path).join(", "))||(n==null?void 0:n.summary)||"文件变更";let u=0,f=0;return C.jsxs("div",{className:"flex h-full flex-col bg-surface",children:[C.jsxs("div",{className:"flex items-center gap-2 border-b border-border px-3.5 py-2.5",children:[C.jsx(na,{size:13,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"truncate font-mono text-[13px] text-content-secondary",title:l,children:l}),C.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-2 font-mono text-[13px]",children:[a.added>0&&C.jsxs("span",{className:"text-diff-addText",children:["+",a.added]}),a.removed>0&&C.jsxs("span",{className:"text-diff-removeText",children:["−",a.removed]})]}),(n==null?void 0:n.diff)&&C.jsx(jc,{text:n.diff,label:"复制差异"})]}),C.jsx("div",{className:"min-h-0 flex-1 overflow-auto font-mono text-[13px] leading-[1.6]",children:r.length===0?C.jsx("p",{className:"px-3 py-2 text-content-muted",children:(n==null?void 0:n.summary)||"无差异内容"}):r.map((o,h)=>{if(o.kind==="hunk"){const S=lO(o.text);return S&&(u=S[0],f=S[1]),C.jsxs("div",{className:"flex bg-surface-raised/60 text-accent-dim",children:[C.jsx("span",{className:"w-14 shrink-0 border-r border-border"}),C.jsx("span",{className:"px-3 py-0.5",children:o.text})]},h)}if(o.kind==="meta")return null;const d=o.kind==="add",m=o.kind==="remove",p=d?"":String(u),x=m?"":String(f);return d||(u+=1),m||(f+=1),C.jsxs("div",{className:`flex ${d?"bg-diff-add":m?"bg-diff-remove":""}`,children:[C.jsxs("span",{className:"flex w-14 shrink-0 select-none justify-end gap-1.5 border-r border-border px-1.5 py-0.5 text-[10px] text-content-faint",children:[C.jsx("span",{className:"w-5 text-right",children:p}),C.jsx("span",{className:"w-5 text-right",children:x})]}),C.jsxs("span",{className:`flex-1 whitespace-pre px-3 py-0.5 ${d?"text-diff-addText":m?"text-diff-removeText":"text-content-secondary"}`,children:[C.jsx("span",{className:"mr-2 select-none opacity-60",children:d?"+":m?"−":" "}),o.text||" "]})]},h)})})]})}function uO(e,n=120){const r=e.replace(/\s+/g," ").trim();return r.length>n?r.slice(0,n-1)+"…":r}function hO(e,n){let r={};if(n)try{const u=JSON.parse(n);u&&typeof u=="object"&&(r=u)}catch{}const a=u=>typeof r[u]=="string"?r[u]:void 0;switch(e.split(/ · |__/).pop()??e){case"WebSearch":return{Icon:ls,label:"网络搜索",summary:a("query")};case"WebFetch":return{Icon:hc,label:"获取网页",summary:a("url")};case"Grep":{const u=a("pattern"),f=a("path");return{Icon:ls,label:"搜索代码",summary:f?`${u??""} · ${f}`:u}}case"Glob":return{Icon:ls,label:"查找文件",summary:a("pattern")};case"Read":return{Icon:na,label:"读取文件",summary:a("file_path")??a("path")};case"LS":case"List":return{Icon:Lr,label:"列出目录",summary:a("path")};case"Task":return{Icon:af,label:"子任务",summary:a("description")??a("prompt")};case"TodoWrite":return{Icon:Mo,label:"更新任务列表"};case"NotebookEdit":return{Icon:of,label:"编辑 Notebook",summary:a("notebook_path")};default:return{Icon:sf,label:e}}}function dO({status:e}){const n=e==="completed"?"bg-success":e==="failed"?"bg-danger":e==="running"?"bg-accent animate-pulse-dot":"bg-content-faint";return C.jsx("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${n}`})}function e0({item:e}){const n=e.toolCall,r=e.commandExecution,a=(r==null?void 0:r.status)??(n==null?void 0:n.status),l=!!(r!=null&&r.output||n!=null&&n.input||n!=null&&n.output),[u,f]=re.useState(a==="running"||a==="failed"),o=!r&&n?hO(n.name,n.input):null,h=(o==null?void 0:o.Icon)??sf;return C.jsxs("div",{className:"overflow-hidden rounded-xl border border-border bg-surface",children:[C.jsxs("button",{onClick:()=>l&&f(d=>!d),className:`flex w-full items-center gap-2 px-3.5 py-2.5 text-left transition-colors ${l?"cursor-pointer hover:bg-surface-overlay":"cursor-default"} ${r?"border-b border-border bg-surface-raised":""}`,children:[l?u?C.jsx(Ir,{size:12,className:"shrink-0 text-content-faint"}):C.jsx(Si,{size:12,className:"shrink-0 text-content-faint"}):C.jsx("span",{className:"w-3 shrink-0"}),C.jsx(dO,{status:a}),r?C.jsx("span",{className:"truncate font-mono text-[13px] text-content-secondary",children:`$ ${r.command??"命令"}`}):C.jsxs(C.Fragment,{children:[C.jsx(h,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"shrink-0 text-[13px] font-medium text-content-secondary",children:(o==null?void 0:o.label)??(n==null?void 0:n.name)??"工具调用"}),(o==null?void 0:o.summary)&&C.jsx("span",{className:"truncate font-mono text-[13px] text-content-faint",children:uO(o.summary)})]}),r&&typeof r.exitCode=="number"&&C.jsxs("span",{className:`ml-auto shrink-0 font-mono text-[13px] ${r.exitCode===0?"text-success":"text-danger"}`,children:["exit ",r.exitCode]})]}),u&&l&&C.jsxs("div",{className:r?"":"px-3.5 pb-3 pt-2",children:[(r==null?void 0:r.output)&&C.jsxs("div",{className:"group/out relative",children:[C.jsx("pre",{className:"max-h-72 overflow-auto px-3.5 py-2.5 font-mono text-[13px] leading-relaxed text-content-secondary",children:r.output}),C.jsx(jc,{text:r.output,className:"absolute right-2 top-2 flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted opacity-0 transition-opacity hover:text-content-primary group-hover/out:opacity-100"})]}),(n==null?void 0:n.input)&&C.jsx("pre",{className:"max-h-40 overflow-auto rounded-lg bg-surface-raised px-3 py-2 font-mono text-[13px] text-content-faint",children:n.input}),(n==null?void 0:n.output)&&C.jsx("pre",{className:"mt-2 max-h-60 overflow-auto rounded-lg bg-surface-raised px-3 py-2 font-mono text-[13px] text-content-secondary",children:n.output})]})]})}function fO({item:e,onRespond:n}){var h;const[r,a]=re.useState(!1),l=e.permission;if(!l)return null;const u=r||((h=e.metadata)==null?void 0:h.permissionPending)===!0,f=l.options.length>0?l.options:[{id:"deny",label:"拒绝",kind:"deny"},{id:"allow_once",label:"允许一次",kind:"allow"}],o=(d,m)=>{u||(a(!0),n(l.requestId,d,m))};return C.jsxs("div",{className:"rounded-xl border border-warning/40 bg-surface p-4",children:[C.jsx("p",{className:"text-sm font-medium text-warning",children:"需要授权"}),l.context&&C.jsx("p",{className:"mt-1.5 text-sm text-content-secondary",children:l.context}),l.toolName&&C.jsx("p",{className:"mt-1.5 font-mono text-[13px] text-content-faint",children:l.toolName}),l.toolInput&&C.jsx("pre",{className:"mt-2 max-h-32 overflow-auto rounded-lg bg-surface-raised px-3 py-2 font-mono text-[13px] text-content-faint",children:l.toolInput}),C.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:f.map(d=>C.jsx("button",{disabled:u,onClick:()=>o(d.kind==="allow"?"allow":"deny",d.id),className:d.kind==="allow"?"codex-btn-primary text-xs":"codex-btn-outline text-xs border-danger/40 text-danger hover:border-danger hover:bg-danger/10 hover:text-danger",children:d.label},d.id))}),u&&C.jsx("p",{className:"mt-2 text-xs text-content-muted",children:"已发送…"})]})}function pO({item:e}){var n;return(n=e.plan)!=null&&n.length?C.jsxs("div",{className:"rounded-xl border border-border bg-surface p-4",children:[C.jsx("p",{className:"mb-2 text-2xs font-semibold uppercase tracking-wider text-content-faint",children:"计划"}),C.jsx("ul",{className:"space-y-1.5",children:e.plan.map(r=>C.jsxs("li",{className:"flex items-start gap-2 text-sm leading-6",children:[C.jsx("span",{className:"mt-1 shrink-0",children:r.status==="completed"?C.jsx(Mo,{size:12,className:"text-success"}):r.status==="in_progress"?C.jsx("span",{className:"block h-2.5 w-2.5 animate-pulse-dot rounded-full bg-accent"}):C.jsx("span",{className:"block h-2.5 w-2.5 rounded-full border border-content-faint"})}),C.jsx("div",{className:`min-w-0 flex-1 ${r.status==="completed"?"text-content-muted line-through":"text-content-secondary"}`,children:C.jsx(Qy,{text:r.text})})]},r.id))})]}):null}function mO({item:e,onSubmit:n}){var p,x,S;const r=e.structuredInput,[a,l]=re.useState({});if(!r)return null;const u=((p=e.metadata)==null?void 0:p.inputSubmitting)===!0,f=((x=e.metadata)==null?void 0:x.inputSubmitted)===!0,o=typeof((S=e.metadata)==null?void 0:S.inputError)=="string"?e.metadata.inputError:void 0,h=(k,w,_)=>{l(b=>{const v=b[k]??[];if(v.includes(w))return{...b,[k]:v.filter(T=>T!==w)};if(_===1)return{...b,[k]:[w]};const y=[...v,w];return{...b,[k]:_?y.slice(-_):y}})},d=(k,w)=>{l(_=>({..._,[k]:w?[w]:[]}))},m=r.questions.every(k=>{var w;return(((w=a[k.id])==null?void 0:w.length)??0)>0});return C.jsxs("div",{className:"rounded-xl border border-accent-dim/40 bg-surface p-4",children:[C.jsx("p",{className:"text-sm font-medium text-accent",children:"需要你的输入"}),C.jsx("div",{className:"mt-3 space-y-4",children:r.questions.map(k=>C.jsxs("div",{children:[k.header&&C.jsx("p",{className:"text-2xs font-semibold uppercase tracking-wider text-content-faint",children:k.header}),C.jsx("p",{className:"mb-2 text-sm text-content-secondary",children:k.question}),k.options&&k.options.length>0?C.jsx("div",{className:"flex flex-wrap gap-2",children:k.options.map(w=>{const _=(a[k.id]??[]).includes(w.id);return C.jsx("button",{disabled:f||u,onClick:()=>h(k.id,w.id,k.selectionLimit),title:w.description,className:_?"codex-btn-primary text-xs":"codex-btn-outline text-xs",children:w.label},w.id)})}):C.jsx("input",{type:k.isSecret?"password":"text",disabled:f||u,onChange:w=>d(k.id,w.target.value),className:"codex-input text-sm",placeholder:"输入答案…"})]},k.id))}),o&&C.jsx("p",{className:"mt-3 text-xs text-danger",children:o}),C.jsx("div",{className:"mt-3",children:f?C.jsx("span",{className:"text-xs text-content-muted",children:"已提交"}):C.jsx("button",{disabled:!m||u,onClick:()=>n(r.requestId,a),className:"codex-btn-primary text-xs",children:u?"提交中…":"提交"})})]})}function If(){return C.jsxs("span",{className:"ml-2 inline-flex items-center gap-1 text-2xs text-accent",children:[C.jsx("span",{className:"h-1 w-1 animate-pulse-dot rounded-full bg-accent"}),"正在生成"]})}function t0({item:e}){const[n,r]=re.useState(!!e.isStreaming);return C.jsxs("div",{className:"rounded-xl border border-border bg-surface px-3.5 py-2.5",children:[C.jsxs("button",{onClick:()=>r(a=>!a),className:"flex w-full cursor-pointer items-center gap-1.5 text-left text-xs text-content-muted transition-colors hover:text-content-secondary",children:[n?C.jsx(Ir,{size:11,className:"shrink-0 text-content-faint"}):C.jsx(Si,{size:11,className:"shrink-0 text-content-faint"}),C.jsx("span",{children:"思考过程"}),e.isStreaming&&C.jsx(If,{})]}),n&&e.text&&C.jsx("p",{className:"mt-2 whitespace-pre-wrap break-words pl-4 text-sm italic leading-relaxed text-content-muted",children:e.text})]})}function Uv({item:e,label:n}){const[r,a]=re.useState(!1),l=e.text!=null&&e.text.trim()!=="";return C.jsxs("div",{className:"flex items-center gap-2 py-0.5 text-2xs text-content-faint",children:[C.jsx("span",{className:"h-px flex-1 bg-border"}),C.jsxs("button",{onClick:()=>l&&a(u=>!u),className:`flex shrink-0 items-center gap-1 rounded-full border border-border bg-surface px-2.5 py-1 ${l?"cursor-pointer transition-colors hover:text-content-secondary":"cursor-default"}`,title:l?r?"收起":"展开":void 0,children:[C.jsx("span",{className:"font-medium",children:n}),e.isStreaming&&C.jsx(If,{}),l&&(r?C.jsx(Ir,{size:10}):C.jsx(Si,{size:10}))]}),C.jsx("span",{className:"h-px flex-1 bg-border"}),r&&l&&C.jsx("p",{className:"basis-full whitespace-pre-wrap break-words pt-1.5 text-xs italic leading-relaxed text-content-muted",children:e.text})]})}function gO(e){const n=Math.max(1,e.receiverThreadIds.length,e.receiverAgents.length),r=(e.tool||"").toLowerCase();return r.includes("spawn")?`启动 ${n} 个子 Agent`:r.includes("wait")?`等待 ${n} 个子 Agent`:r.includes("resume")?`恢复 ${n} 个子 Agent`:r.includes("close")?`关闭 ${n} 个子 Agent`:r.includes("sendinput")||r.includes("send_input")?`更新 ${n} 个子 Agent`:n===1?"子 Agent 活动":`${n} 个子 Agent 活动`}function _O(e){const n=(e||"").toLowerCase().replace(/[\s_-]/g,"");return n==="completed"||n==="done"||n==="success"?"完成":n==="failed"||n==="error"?"失败":n==="stopped"||n==="cancelled"?"已停止":n==="queued"||n==="pending"?"排队中":n==="running"||n==="inprogress"?"运行中":e||"未知"}function n0({item:e,onOpenAgent:n}){const r=e.subagent,[a,l]=re.useState(!0),u=[...new Set(r.receiverThreadIds.length>0?r.receiverThreadIds:r.receiverAgents.map(f=>f.threadId))];return C.jsxs("div",{className:"rounded-xl border border-border bg-surface p-3.5",children:[C.jsxs("button",{onClick:()=>l(f=>!f),className:"flex w-full cursor-pointer items-center gap-2 text-left",children:[C.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-md bg-accent/10 text-accent",children:C.jsx(af,{size:13})}),C.jsx("span",{className:"flex-1 truncate text-sm font-medium text-content-primary",children:gO(r)}),e.isStreaming&&C.jsx("span",{className:"h-1.5 w-1.5 animate-pulse-dot rounded-full bg-accent"}),a?C.jsx(Ir,{size:13,className:"shrink-0 text-content-faint"}):C.jsx(Si,{size:13,className:"shrink-0 text-content-faint"})]}),r.prompt&&C.jsx("p",{className:`mt-2 text-xs leading-relaxed text-content-muted ${a?"":"line-clamp-1"}`,children:r.prompt}),a&&u.length>0&&C.jsx("div",{className:"mt-2.5 space-y-0.5",children:u.map(f=>{const o=r.receiverAgents.find(x=>x.threadId===f),h=r.agentStates[f],d=_O((h==null?void 0:h.status)??r.status),m=o!=null&&o.nickname&&(o!=null&&o.role)?`${o.nickname} [${o.role}]`:(o==null?void 0:o.nickname)||(o==null?void 0:o.role)||(f.length>14?`Agent ${f.slice(-8)}`:f||"Agent"),p=d==="失败"?"bg-danger":d==="完成"?"bg-success":"bg-accent";return C.jsxs("button",{onClick:()=>n==null?void 0:n({threadId:f,name:m,role:o==null?void 0:o.role,model:o==null?void 0:o.model,prompt:(o==null?void 0:o.prompt)??r.prompt,status:d,message:h==null?void 0:h.message,tool:r.tool}),className:"flex w-full cursor-pointer items-center gap-2 rounded-lg px-1.5 py-1 text-left transition-colors hover:bg-surface-overlay",children:[C.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${p}`}),C.jsx("span",{className:"min-w-0 flex-1 truncate text-[13px] text-content-secondary",children:m}),(o==null?void 0:o.model)&&C.jsx("span",{className:"shrink-0 font-mono text-2xs text-content-faint",children:o.model}),C.jsx("span",{className:"shrink-0 text-2xs font-medium text-content-muted",children:d}),C.jsx(Si,{size:12,className:"shrink-0 text-content-faint"})]},f)})})]})}function vO({detail:e}){const n=e.status==="失败"?"bg-danger":e.status==="完成"?"bg-success":"bg-accent";return C.jsxs("div",{className:"flex h-full flex-col overflow-y-auto bg-surface",children:[C.jsxs("div",{className:"border-b border-border px-4 py-4",children:[C.jsxs("div",{className:"flex items-center gap-2",children:[C.jsx("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg bg-accent/10 text-accent",children:C.jsx(af,{size:15})}),C.jsxs("div",{className:"min-w-0 flex-1",children:[C.jsx("p",{className:"truncate text-sm font-semibold text-content-primary",children:e.name}),C.jsx("p",{className:"truncate font-mono text-2xs text-content-faint",children:e.threadId})]}),C.jsxs("span",{className:"flex shrink-0 items-center gap-1.5 text-xs text-content-secondary",children:[C.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${n}`}),e.status]})]}),C.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.role&&C.jsx("span",{className:"codex-chip",children:e.role}),e.model&&C.jsx("span",{className:"codex-chip",children:e.model}),e.tool&&C.jsx("span",{className:"codex-chip",children:e.tool})]})]}),C.jsxs("div",{className:"space-y-4 px-4 py-4",children:[e.prompt&&C.jsxs("section",{children:[C.jsx("p",{className:"mb-1.5 text-2xs font-semibold uppercase tracking-wider text-content-faint",children:"委派指令"}),C.jsx("div",{className:"rounded-xl border border-border bg-surface-raised p-3 text-[13px] leading-relaxed text-content-secondary whitespace-pre-wrap",children:e.prompt})]}),e.message&&C.jsxs("section",{children:[C.jsx("p",{className:"mb-1.5 text-2xs font-semibold uppercase tracking-wider text-content-faint",children:"状态消息"}),C.jsx("div",{className:"rounded-xl border border-border bg-surface-raised p-3 text-[13px] leading-relaxed text-content-secondary whitespace-pre-wrap",children:e.message})]}),C.jsx("p",{className:"pt-2 text-2xs leading-relaxed text-content-faint",children:"子 Agent 由主 Agent 内部派生,其完整对话记录不经网关透出,因此此处仅展示主 Agent 报告的状态信息。"})]})]})}const bO=new Set(["tool_activity","command_execution","file_change","subagent_action","thinking"]);function yO(e){return!!(e.kind&&bO.has(e.kind)||e.fileChange||e.commandExecution||e.toolCall||e.subagent||e.type==="tool_call")}function oc(e){var n,r,a;return e.role==="user"&&((n=e.metadata)==null?void 0:n.delivery)==="queued"&&((r=e.metadata)==null?void 0:r.queuedSent)!==!0&&((a=e.metadata)==null?void 0:a.queuedDiscarded)!==!0}function xO({items:e,canSteer:n,onSend:r,onSteer:a,onDiscard:l}){return e.length===0?null:C.jsx("div",{className:"mb-2 flex flex-col gap-1.5",children:e.map(u=>C.jsxs("div",{className:"group flex animate-slide-in items-center gap-2 rounded-xl border border-border bg-surface-raised px-3.5 py-2.5 shadow-sm",children:[C.jsx("span",{className:"shrink-0 rounded-full bg-surface-overlay px-2 py-0.5 text-2xs font-medium text-content-muted",children:"已排队"}),C.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-content-secondary",children:u.text}),C.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[C.jsx("button",{onClick:()=>r(u.id),className:"cursor-pointer rounded-md px-2 py-1 text-2xs text-content-muted transition-colors hover:bg-surface-overlay hover:text-accent",title:"立即发送",children:"立即发送"}),n&&C.jsx("button",{onClick:()=>a(u.id),className:"cursor-pointer rounded-md px-2 py-1 text-2xs text-content-muted transition-colors hover:bg-surface-overlay hover:text-accent",title:"引导当前轮",children:"引导"}),C.jsx("button",{onClick:()=>l(u.id),className:"cursor-pointer rounded-md p-1 text-content-faint transition-colors hover:text-danger",title:"丢弃","aria-label":"丢弃排队消息",children:C.jsx(hi,{size:14})})]})]},u.id))})}function Hv(e,n,r){return e.kind==="thinking"?C.jsx(t0,{item:e}):e.kind==="subagent_action"||e.subagent?C.jsx(n0,{item:e,onOpenAgent:r}):e.kind==="file_change"||e.fileChange?C.jsx(Jy,{item:e,onOpen:n}):C.jsx(e0,{item:e})}function SO(e){let n=1/0,r=0;for(const h of e){typeof h.createdAt=="number"&&(n=Math.min(n,h.createdAt));const d=typeof h.updatedAt=="number"?h.updatedAt:h.createdAt;typeof d=="number"&&(r=Math.max(r,d))}if(!Number.isFinite(n)||r<=n)return;const a=r-n;if(a<1e3)return;const l=Math.round(a/1e3);if(l<60)return`${(a/1e3).toFixed(1)}s`;const u=Math.floor(l/60),f=l%60;return u<60?`${u}m ${String(f).padStart(2,"0")}s`:`${Math.floor(u/60)}h ${String(u%60).padStart(2,"0")}m ${String(f).padStart(2,"0")}s`}function EO({items:e,live:n,onOpenDiff:r,onOpenAgent:a}){const[l,u]=re.useState(!1);if(n)return C.jsx("div",{className:"space-y-2",children:e.map(k=>C.jsx("div",{children:Hv(k,r,a)},k.id))});const f=e.filter(k=>k.kind==="file_change"||k.fileChange).length,o=e.filter(k=>k.kind==="command_execution"||k.commandExecution).length,h=e.filter(k=>(k.toolCall||k.type==="tool_call")&&!k.subagent).length,d=e.filter(k=>k.kind==="subagent_action"||k.subagent).length,m=e.filter(k=>k.kind==="thinking").length,p=[];f&&p.push(`编辑 ${f} 个文件`),o&&p.push(`运行 ${o} 条命令`),h&&p.push(`调用 ${h} 个工具`),d&&p.push(`${d} 次子 Agent`),!f&&!o&&!h&&!d&&m&&p.push("思考");const x=p.join(" · ")||`${e.length} 项活动`,S=SO(e);return l?C.jsxs("div",{className:"rounded-xl border border-border bg-surface p-2",children:[C.jsxs("button",{onClick:()=>u(!1),className:"mb-2 flex w-full cursor-pointer items-center gap-1.5 px-1.5 text-left text-xs text-content-muted transition-colors hover:text-content-secondary",children:[C.jsx(Ir,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{children:x}),S&&C.jsxs("span",{className:"text-content-faint",children:["· ",S]})]}),C.jsx("div",{className:"space-y-2",children:e.map(k=>C.jsx("div",{children:Hv(k,r,a)},k.id))})]}):C.jsxs("button",{onClick:()=>u(!0),className:"flex w-full cursor-pointer items-center gap-1.5 rounded-full border border-border bg-surface px-3.5 py-2 text-left text-xs text-content-muted transition-colors hover:border-border-strong hover:text-content-secondary",children:[C.jsx(Si,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{children:x}),S&&C.jsxs("span",{className:"text-content-faint",children:["· ",S]}),C.jsx("span",{className:"ml-auto text-content-faint",children:"展开"})]})}const Fv=re.memo(function({item:n,canSteer:r,onPermission:a,onStructuredInput:l,onSendQueued:u,onSteerQueued:f,onDiscardQueued:o,onOpenDiff:h,onOpenAgent:d,onEditMessage:m,highlightQuery:p}){var w;if(n.kind==="user_input_prompt"||n.structuredInput)return C.jsx(mO,{item:n,onSubmit:l});if(n.kind==="subagent_action"||n.subagent)return C.jsx(n0,{item:n,onOpenAgent:d});if(n.kind==="file_change"||n.fileChange)return C.jsx(Jy,{item:n,onOpen:h});if(n.kind==="command_execution"||n.commandExecution||n.type==="tool_call"||n.toolCall)return C.jsx(e0,{item:n});if(n.type==="permission"||n.permission)return C.jsx(fO,{item:n,onRespond:a});if(n.type==="plan"||n.plan)return C.jsx(pO,{item:n});if(n.type==="error"||n.error)return C.jsxs("div",{className:"flex items-start gap-2 rounded-xl border border-danger/40 bg-surface px-3.5 py-2.5 text-sm text-danger",children:[C.jsx("span",{className:"mt-1.5 block h-1.5 w-1.5 shrink-0 rounded-full bg-danger"}),C.jsx("span",{children:n.error??"发生错误"})]});if(n.kind==="thinking")return C.jsx(t0,{item:n});if(n.kind==="context_compaction")return C.jsx(Uv,{item:n,label:"上下文压缩"});if(n.kind==="review")return C.jsx(Uv,{item:n,label:"审查"});const x=n.role==="user",S=((w=n.metadata)==null?void 0:w.queuedDiscarded)===!0,k=n.text!=null&&n.text!=="";return C.jsxs("div",{className:x?"group flex flex-col items-end":"group min-w-0",children:[C.jsxs("div",{className:x?`max-w-[85%] break-words rounded-2xl px-4 py-2.5 text-[15px] leading-7 ${S?"bg-surface-raised text-content-secondary line-through opacity-50":"bg-surface-raised text-content-primary"}`:"w-full min-w-0",children:[Array.isArray(n.content)&&n.content.some(_=>_.type==="image")&&C.jsx("div",{className:"mb-1.5 flex flex-wrap gap-2",children:n.content.filter(_=>_.type==="image"&&_.data).map((_,b)=>C.jsx("img",{src:_.data,alt:"附件",className:"max-h-48 rounded-lg border border-border object-contain"},b))}),k&&C.jsx(Qy,{text:n.text,highlight:p}),n.isStreaming&&C.jsx(If,{})]}),S&&C.jsx("span",{className:"mt-1 text-2xs text-content-faint",children:"已丢弃"}),k&&!n.isStreaming&&!S&&C.jsxs("div",{className:`mt-1 flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100 ${x?"justify-end":""}`,children:[x&&m&&C.jsx("button",{onClick:()=>m(n.text),title:"编辑并重新发送","aria-label":"编辑并重新发送",className:"flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted transition-colors hover:text-content-primary",children:C.jsx(of,{size:13})}),C.jsx(jc,{text:n.text})]})]})},(e,n)=>e.item===n.item&&e.canSteer===n.canSteer&&e.onPermission===n.onPermission&&e.onStructuredInput===n.onStructuredInput&&e.onSendQueued===n.onSendQueued&&e.onSteerQueued===n.onSteerQueued&&e.onDiscardQueued===n.onDiscardQueued&&e.onOpenDiff===n.onOpenDiff&&e.onOpenAgent===n.onOpenAgent&&e.onEditMessage===n.onEditMessage&&e.highlightQuery===n.highlightQuery);function wO(e){const[n,r]=re.useState(()=>typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1);return re.useEffect(()=>{if(typeof window>"u"||!("matchMedia"in window))return;const a=window.matchMedia(e),l=()=>r(a.matches);return l(),a.addEventListener("change",l),()=>a.removeEventListener("change",l)},[e]),n}function i0(){return wO("(max-width: 767px)")}function CO({disabled:e,running:n,supportsImages:r,commands:a=[],conversationId:l,lastUserText:u,cwd:f,onBrowse:o,seedText:h,controls:d,onSend:m,onCancel:p,onExecuteCommand:x}){const[S,k]=re.useState(""),[w,_]=re.useState([]),[b,v]=re.useState(0),[y,T]=re.useState(!1),[M,N]=re.useState([]),[O,R]=re.useState([]),[L,z]=re.useState(null),H=re.useRef(null),q=re.useRef(null),F=i0();re.useEffect(()=>{if(!l)return;const ee=e1(l);k(ee),N([]),requestAnimationFrame(()=>A())},[l]),re.useEffect(()=>{!h||h.nonce===0||(k(h.text),requestAnimationFrame(()=>{const ee=H.current;ee&&(ee.focus(),ee.setSelectionRange(ee.value.length,ee.value.length),A())}))},[h==null?void 0:h.nonce]);const W=re.useMemo(()=>{const ee=/^\/(\S*)$/.exec(S);if(!ee||a.length===0)return null;const le=ee[1].toLowerCase(),He=a.map(Ee=>{const we=Ee.name.toLowerCase(),ke=Ee.title.toLowerCase();return le?we.startsWith(le)||ke.startsWith(`/${le}`)?{c:Ee,rank:0}:we.includes(le)||ke.includes(le)?{c:Ee,rank:1}:null:{c:Ee,rank:2}}).filter(Ee=>Ee!==null).sort((Ee,we)=>Ee.rank-we.rank).slice(0,8).map(Ee=>Ee.c);return He.length>0?He:null},[S,a]),G=re.useMemo(()=>{if(!o)return null;const ee=/(?:^|\s)@(\S*)$/.exec(S);if(!ee)return null;const le=ee[1],Ce=le.lastIndexOf("/"),He=Ce>=0?le.slice(0,Ce):"",Ee=Ce>=0?le.slice(Ce+1):le;return{token:`@${le}`,query:le,dir:He,filter:Ee}},[S,o]),K=re.useMemo(()=>{if(!G)return null;const ee=(f||".").replace(/\/+$/,"")||"/";return G.dir?`${ee}/${G.dir}`:ee},[G,f]);re.useEffect(()=>{if(!K||!o||K===L)return;let ee=!1;return o(K).then(le=>{ee||(R(le.error?[]:le.entries),z(K))}).catch(()=>{ee||R([])}),()=>{ee=!0}},[K,L,o]);const ne=re.useMemo(()=>{if(!G||L!==K)return null;const ee=G.filter.toLowerCase(),le=O.filter(Ce=>Ce.name.toLowerCase().includes(ee)).sort((Ce,He)=>Ce.isDirectory!==He.isDirectory?Ce.isDirectory?-1:1:Ce.name.localeCompare(He.name)).slice(0,50);return le.length>0?le:null},[G,O,L,K]),Q=W?{kind:"slash",items:W}:ne?{kind:"mention",items:ne}:null,I=()=>{H.current&&(H.current.style.height="auto")},A=()=>{const ee=H.current;ee&&(ee.style.height="auto",ee.style.height=`${Math.min(ee.scrollHeight,200)}px`)},B=ee=>{k(ee),v(0),l&&t1(l,ee),A()},$=ee=>{var le;ee.argsMode==="none"?(x==null||x(ee.id),B(""),I()):(B(`/${ee.name} `),(le=H.current)==null||le.focus())},P=ee=>{var Ee;if(!G)return;const le=(f||".").replace(/\/+$/,""),Ce=le&&ee.path.startsWith(le)?ee.path.slice(le.length).replace(/^\/+/,""):ee.name,He=S.slice(0,S.length-G.token.length);ee.isDirectory?B(`${He}@${Ce}/`):(B(He),N(we=>we.includes(Ce)?we:[...we,Ce])),(Ee=H.current)==null||Ee.focus()},oe=()=>{if(e)return;const ee=S.trim(),le=/^\/(\S+)\s*(.*)$/s.exec(ee);if(le&&x){const Ee=a.find(we=>we.name.toLowerCase()===le[1].toLowerCase());if(Ee){x(Ee.id,le[2]||void 0),B(""),N([]),I();return}}const He=[M.map(Ee=>`@${Ee}`).join(" "),ee].filter(Boolean).join(" ");!He&&w.length===0||(m(He,w),B(""),_([]),N([]),I())},ye=ee=>{if(Q){const le=Q.items.length;if(ee.key==="ArrowDown"){ee.preventDefault(),v(He=>Math.min(He+1,le-1));return}if(ee.key==="ArrowUp"){ee.preventDefault(),v(He=>Math.max(He-1,0));return}const Ce=()=>{const He=Math.min(b,le-1);Q.kind==="slash"?$(Q.items[He]):P(Q.items[He])};if(ee.key==="Tab"){ee.preventDefault(),Ce();return}if(ee.key==="Enter"&&!ee.metaKey&&!ee.ctrlKey&&!ee.shiftKey&&Q.kind==="mention"){ee.preventDefault(),Ce();return}if(ee.key==="Enter"&&(ee.metaKey||ee.ctrlKey)){ee.preventDefault(),Ce();return}if(ee.key==="Escape"){ee.preventDefault(),Q.kind==="slash"?B(""):G&&B(S.slice(0,S.length-G.token.length));return}}if(ee.key==="ArrowUp"&&!Q&&S===""&&u){ee.preventDefault(),B(u),requestAnimationFrame(()=>{const le=H.current;le&&le.setSelectionRange(le.value.length,le.value.length)});return}ee.key==="Enter"&&(ee.metaKey||ee.ctrlKey)&&(ee.preventDefault(),oe())},pe=ee=>{for(const le of ee){if(!le.type.startsWith("image/"))continue;const Ce=new FileReader;Ce.onload=()=>{const He=String(Ce.result);_(Ee=>[...Ee,{data:He,mimeType:le.type||"image/png",name:le.name||"粘贴图片"}])},Ce.readAsDataURL(le)}},J=ee=>{pe(Array.from(ee.target.files??[])),ee.target.value=""},j=ee=>{if(!r)return;const le=Array.from(ee.clipboardData.items).filter(Ce=>Ce.kind==="file"&&Ce.type.startsWith("image/")).map(Ce=>Ce.getAsFile()).filter(Ce=>Ce!=null);le.length>0&&(ee.preventDefault(),pe(le))},me=ee=>{if(T(!1),!r)return;const le=Array.from(ee.dataTransfer.files).filter(Ce=>Ce.type.startsWith("image/"));le.length>0&&(ee.preventDefault(),pe(le))},ce=ee=>{r&&Array.from(ee.dataTransfer.items).some(le=>le.kind==="file")&&(ee.preventDefault(),T(!0))};return C.jsxs("div",{className:"relative",children:[Q&&C.jsx("div",{className:"codex-card-raised absolute bottom-full left-0 mb-2 max-h-72 w-80 overflow-y-auto p-1",children:Q.kind==="slash"?Q.items.map((ee,le)=>C.jsxs("button",{onMouseEnter:()=>v(le),onClick:()=>$(ee),className:`flex w-full cursor-pointer items-center justify-between rounded-lg px-2.5 py-1.5 text-left transition-colors ${le===b?"bg-surface-overlay":"hover:bg-surface-overlay"}`,children:[C.jsxs("span",{className:"font-mono text-xs text-accent",children:["/",ee.name]}),C.jsx("span",{className:"ml-2 flex-1 truncate text-xs text-content-muted",children:ee.title}),ee.destructive&&C.jsx("span",{className:"h-1.5 w-1.5 shrink-0 rounded-full bg-danger",title:"破坏性操作"})]},ee.id)):Q.items.map((ee,le)=>C.jsxs("button",{onMouseEnter:()=>v(le),onClick:()=>P(ee),className:`flex w-full cursor-pointer items-center gap-2 rounded-lg px-2.5 py-1.5 text-left transition-colors ${le===b?"bg-surface-overlay":"hover:bg-surface-overlay"}`,children:[ee.isDirectory?C.jsx(Lr,{size:13,className:"shrink-0 text-content-faint"}):C.jsx(na,{size:13,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"truncate font-mono text-xs text-content-secondary",children:ee.name}),ee.isDirectory&&C.jsx("span",{className:"text-content-faint",children:"/"})]},ee.path))}),w.length>0&&C.jsx("div",{className:"mb-2 flex flex-wrap gap-2",children:w.map((ee,le)=>C.jsxs("div",{className:"group relative",children:[C.jsx("img",{src:ee.data,alt:ee.name,className:"h-14 w-14 rounded-lg border border-border object-cover"}),C.jsx("button",{onClick:()=>_(Ce=>Ce.filter((He,Ee)=>Ee!==le)),className:"absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-danger text-white","aria-label":"移除图片",children:C.jsx(hi,{size:10})})]},le))}),M.length>0&&C.jsx("div",{className:"mb-2 flex flex-wrap gap-1.5",children:M.map(ee=>C.jsxs("span",{className:"flex items-center gap-1 rounded-lg border border-border bg-surface-overlay py-1 pl-2 pr-1 font-mono text-xs text-content-secondary",children:[C.jsx(na,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"max-w-[200px] truncate",title:ee,children:ee}),C.jsx("button",{onClick:()=>N(le=>le.filter(Ce=>Ce!==ee)),className:"flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded text-content-faint transition-colors hover:text-danger","aria-label":`移除 ${ee}`,children:C.jsx(hi,{size:11})})]},ee))}),C.jsxs("div",{onDrop:me,onDragOver:ce,onDragLeave:()=>T(!1),className:`codex-card-raised flex flex-col gap-1 px-3 pt-2.5 pb-2 transition-colors focus-within:border-border-strong ${y?"border-border-strong":""}`,children:[r&&C.jsx("input",{ref:q,type:"file",accept:"image/*",multiple:!0,onChange:J,className:"hidden"}),C.jsx("textarea",{ref:H,value:S,rows:1,disabled:e,placeholder:F?a.length>0?"发送指令,或输入 / 调用命令…":"向 agent 发送指令…":a.length>0?"发送指令,/ 调用命令,@ 引用文件 (⌘/Ctrl+Enter 发送)":"向 agent 发送指令,@ 引用文件 (⌘/Ctrl+Enter 发送,Enter 换行)",onChange:ee=>B(ee.target.value),onKeyDown:ye,onPaste:j,className:"min-w-0 resize-none bg-transparent px-0 py-1 text-base leading-6 text-content-primary placeholder-content-muted outline-none md:text-[15px]"}),C.jsxs("div",{className:"flex items-center gap-1",children:[r&&C.jsx("button",{onClick:()=>{var ee;return(ee=q.current)==null?void 0:ee.click()},disabled:e,className:"flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center rounded-full text-content-muted transition-colors hover:bg-surface-overlay hover:text-content-primary disabled:opacity-40",title:"附加图片","aria-label":"附加图片",children:C.jsx(Ro,{size:17})}),C.jsx("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-0.5",children:d}),n&&p?C.jsx("button",{onClick:p,className:"flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-full bg-surface-overlay text-content-secondary transition-colors hover:bg-surface-raised hover:text-content-primary","aria-label":"停止",title:"停止",children:C.jsx(eb,{size:14})}):C.jsx("button",{onClick:oe,disabled:e||!S.trim()&&w.length===0&&M.length===0,className:"flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-full bg-accent-dim text-white transition-colors hover:bg-accent disabled:cursor-default disabled:bg-surface-overlay disabled:text-content-faint","aria-label":"发送",title:"发送",children:C.jsx(rf,{size:16})})]})]})]})}var _d={exports:{}},$v;function kO(){return $v||($v=1,(function(e,n){(function(r,a){e.exports=a()})(globalThis,(()=>(()=>{var r={4567:function(f,o,h){var d=this&&this.__decorate||function(v,y,T,M){var N,O=arguments.length,R=O<3?y:M===null?M=Object.getOwnPropertyDescriptor(y,T):M;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")R=Reflect.decorate(v,y,T,M);else for(var L=v.length-1;L>=0;L--)(N=v[L])&&(R=(O<3?N(R):O>3?N(y,T,R):N(y,T))||R);return O>3&&R&&Object.defineProperty(y,T,R),R},m=this&&this.__param||function(v,y){return function(T,M){y(T,M,v)}};Object.defineProperty(o,"__esModule",{value:!0}),o.AccessibilityManager=void 0;const p=h(9042),x=h(9924),S=h(844),k=h(4725),w=h(2585),_=h(3656);let b=o.AccessibilityManager=class extends S.Disposable{constructor(v,y,T,M){super(),this._terminal=v,this._coreBrowserService=T,this._renderService=M,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let N=0;N<this._terminal.rows;N++)this._rowElements[N]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[N]);if(this._topBoundaryFocusListener=N=>this._handleBoundaryFocus(N,0),this._bottomBoundaryFocusListener=N=>this._handleBoundaryFocus(N,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new x.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((N=>this._handleResize(N.rows)))),this.register(this._terminal.onRender((N=>this._refreshRows(N.start,N.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((N=>this._handleChar(N)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(`
|
|
84
|
+
`),r=[];for(const a of n)a.startsWith("@@")?r.push({kind:"hunk",text:a}):a.startsWith("diff ")||a.startsWith("index ")||a.startsWith("--- ")||a.startsWith("+++ ")?r.push({kind:"meta",text:a}):a.startsWith("+")?r.push({kind:"add",text:a.slice(1)}):a.startsWith("-")?r.push({kind:"remove",text:a.slice(1)}):r.push({kind:"context",text:a.startsWith(" ")?a.slice(1):a});return r}function Xy(e){let n=0,r=0;for(const a of e)a.kind==="add"?n++:a.kind==="remove"&&r++;return{added:n,removed:r}}function Wd(e){var n;return e==null||e===!1||e===!0?"":typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(Wd).join(""):typeof e=="object"&&"props"in e?Wd((n=e.props)==null?void 0:n.children):""}function jc({text:e,className:n,label:r="复制"}){const[a,l]=re.useState(!1),u=async f=>{f.stopPropagation();try{await navigator.clipboard.writeText(e),l(!0),setTimeout(()=>l(!1),1500)}catch{}};return C.jsx("button",{onClick:u,title:a?"已复制":r,"aria-label":r,className:n??"flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted transition-colors hover:text-content-primary",children:a?C.jsx(Mo,{size:13,className:"text-success"}):C.jsx(DS,{size:13})})}function oO(e){const n=e.toLowerCase(),r=a=>{if(!a||!Array.isArray(a.children)||a.type==="element"&&(a.tagName==="code"||a.tagName==="pre"))return;const l=[];for(const u of a.children)if(u.type==="text"&&typeof u.value=="string"){const f=u.value,o=f.toLowerCase();let h=o.indexOf(n);if(h===-1){l.push(u);continue}let d=0;for(;h!==-1;)h>d&&l.push({type:"text",value:f.slice(d,h)}),l.push({type:"element",tagName:"mark",properties:{},children:[{type:"text",value:f.slice(h,h+n.length)}]}),d=h+n.length,h=o.indexOf(n,d);d<f.length&&l.push({type:"text",value:f.slice(d)})}else r(u),l.push(u);a.children=l};return()=>a=>{n&&r(a)}}const Qy=re.memo(function({text:n,highlight:r}){return C.jsx("div",{className:"prose-codex break-words text-[15px] leading-7 text-content-primary",children:C.jsx(s2,{remarkPlugins:[vR],rehypePlugins:r?[[jv,{detect:!0,ignoreMissing:!0}],oO(r)]:[[jv,{detect:!0,ignoreMissing:!0}]],components:{mark({children:a}){return C.jsx("mark",{className:"rounded bg-warning/30 px-0.5 text-content-primary",children:a})},pre({children:a}){return C.jsx(C.Fragment,{children:a})},code({className:a,children:l,...u}){if(/language-|hljs/.test(a??"")){const o=Wd(l);return C.jsxs("div",{className:"group/code relative my-3",children:[C.jsx("pre",{className:"max-w-full overflow-x-auto rounded-lg border border-border bg-surface-raised p-3 font-mono text-[13px] leading-relaxed",children:C.jsx("code",{className:a,...u,children:l})}),C.jsx(jc,{text:o,className:"absolute right-2 top-2 flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted opacity-0 transition-opacity hover:text-content-primary group-hover/code:opacity-100"})]})}return C.jsx("code",{className:"break-all rounded bg-surface-overlay px-1.5 py-0.5 font-mono text-[13px] text-accent",...u,children:l})},a({children:a,...l}){return C.jsx("a",{className:"text-accent underline underline-offset-2",target:"_blank",rel:"noreferrer",...l,children:a})},p({children:a}){return C.jsx("p",{className:"my-2",children:a})},ul({children:a}){return C.jsx("ul",{className:"my-2 list-disc space-y-1 pl-5",children:a})},ol({children:a}){return C.jsx("ol",{className:"my-2 list-decimal space-y-1 pl-5",children:a})}},children:n})})});function Jy({item:e,onOpen:n}){const r=e.fileChange,a=r.diff?Zy(r.diff):[],l=Xy(a),u=r.entries.length>0?r.entries.map(d=>d.path):[],f=u[0]||r.summary||"文件变更",o=u.length>1?` +${u.length-1}`:"",h=!!(r.diff&&n);return C.jsxs("button",{onClick:()=>h&&(n==null?void 0:n(e)),className:`flex w-full items-center gap-2 rounded-xl border border-border bg-surface px-3.5 py-2.5 text-left transition-colors ${h?"cursor-pointer hover:border-border-strong hover:bg-surface-overlay":"cursor-default"}`,children:[C.jsx(na,{size:14,className:"shrink-0 text-content-faint"}),C.jsxs("span",{className:"truncate font-mono text-[13px] text-content-primary",title:u.join(", ")||f,children:[f,o&&C.jsx("span",{className:"text-content-muted",children:o})]}),C.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-2 font-mono text-[13px]",children:[l.added>0&&C.jsxs("span",{className:"text-diff-addText",children:["+",l.added]}),l.removed>0&&C.jsxs("span",{className:"text-diff-removeText",children:["−",l.removed]}),h&&C.jsx(Si,{size:13,className:"text-content-faint"})]})]})}function lO(e){const n=/@@\s*-(\d+)(?:,\d+)?\s*\+(\d+)(?:,\d+)?\s*@@/.exec(e);return n?[Number(n[1]),Number(n[2])]:null}function cO({item:e}){const n=e.fileChange,r=n!=null&&n.diff?Zy(n.diff):[],a=Xy(r),l=(n==null?void 0:n.entries.map(o=>o.path).join(", "))||(n==null?void 0:n.summary)||"文件变更";let u=0,f=0;return C.jsxs("div",{className:"flex h-full flex-col bg-surface",children:[C.jsxs("div",{className:"flex items-center gap-2 border-b border-border px-3.5 py-2.5",children:[C.jsx(na,{size:13,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"truncate font-mono text-[13px] text-content-secondary",title:l,children:l}),C.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-2 font-mono text-[13px]",children:[a.added>0&&C.jsxs("span",{className:"text-diff-addText",children:["+",a.added]}),a.removed>0&&C.jsxs("span",{className:"text-diff-removeText",children:["−",a.removed]})]}),(n==null?void 0:n.diff)&&C.jsx(jc,{text:n.diff,label:"复制差异"})]}),C.jsx("div",{className:"min-h-0 flex-1 overflow-auto font-mono text-[13px] leading-[1.6]",children:r.length===0?C.jsx("p",{className:"px-3 py-2 text-content-muted",children:(n==null?void 0:n.summary)||"无差异内容"}):r.map((o,h)=>{if(o.kind==="hunk"){const S=lO(o.text);return S&&(u=S[0],f=S[1]),C.jsxs("div",{className:"flex bg-surface-raised/60 text-accent-dim",children:[C.jsx("span",{className:"w-14 shrink-0 border-r border-border"}),C.jsx("span",{className:"px-3 py-0.5",children:o.text})]},h)}if(o.kind==="meta")return null;const d=o.kind==="add",m=o.kind==="remove",p=d?"":String(u),x=m?"":String(f);return d||(u+=1),m||(f+=1),C.jsxs("div",{className:`flex ${d?"bg-diff-add":m?"bg-diff-remove":""}`,children:[C.jsxs("span",{className:"flex w-14 shrink-0 select-none justify-end gap-1.5 border-r border-border px-1.5 py-0.5 text-[10px] text-content-faint",children:[C.jsx("span",{className:"w-5 text-right",children:p}),C.jsx("span",{className:"w-5 text-right",children:x})]}),C.jsxs("span",{className:`flex-1 whitespace-pre px-3 py-0.5 ${d?"text-diff-addText":m?"text-diff-removeText":"text-content-secondary"}`,children:[C.jsx("span",{className:"mr-2 select-none opacity-60",children:d?"+":m?"−":" "}),o.text||" "]})]},h)})})]})}function uO(e,n=120){const r=e.replace(/\s+/g," ").trim();return r.length>n?r.slice(0,n-1)+"…":r}function hO(e,n){let r={};if(n)try{const u=JSON.parse(n);u&&typeof u=="object"&&(r=u)}catch{}const a=u=>typeof r[u]=="string"?r[u]:void 0;switch(e.split(/ · |__/).pop()??e){case"WebSearch":return{Icon:ls,label:"网络搜索",summary:a("query")};case"WebFetch":return{Icon:hc,label:"获取网页",summary:a("url")};case"Grep":{const u=a("pattern"),f=a("path");return{Icon:ls,label:"搜索代码",summary:f?`${u??""} · ${f}`:u}}case"Glob":return{Icon:ls,label:"查找文件",summary:a("pattern")};case"Read":return{Icon:na,label:"读取文件",summary:a("file_path")??a("path")};case"LS":case"List":return{Icon:Lr,label:"列出目录",summary:a("path")};case"Task":return{Icon:af,label:"子任务",summary:a("description")??a("prompt")};case"TodoWrite":return{Icon:Mo,label:"更新任务列表"};case"NotebookEdit":return{Icon:of,label:"编辑 Notebook",summary:a("notebook_path")};default:return{Icon:sf,label:e}}}function dO({status:e}){const n=e==="completed"?"bg-success":e==="failed"?"bg-danger":e==="running"?"bg-accent animate-pulse-dot":"bg-content-faint";return C.jsx("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${n}`})}function e0({item:e}){const n=e.toolCall,r=e.commandExecution,a=(r==null?void 0:r.status)??(n==null?void 0:n.status),l=!!(r!=null&&r.output||n!=null&&n.input||n!=null&&n.output),[u,f]=re.useState(a==="running"||a==="failed"),o=!r&&n?hO(n.name,n.input):null,h=(o==null?void 0:o.Icon)??sf;return C.jsxs("div",{className:"overflow-hidden rounded-xl border border-border bg-surface",children:[C.jsxs("button",{onClick:()=>l&&f(d=>!d),className:`flex w-full items-center gap-2 px-3.5 py-2.5 text-left transition-colors ${l?"cursor-pointer hover:bg-surface-overlay":"cursor-default"} ${r?"border-b border-border bg-surface-raised":""}`,children:[l?u?C.jsx(Ir,{size:12,className:"shrink-0 text-content-faint"}):C.jsx(Si,{size:12,className:"shrink-0 text-content-faint"}):C.jsx("span",{className:"w-3 shrink-0"}),C.jsx(dO,{status:a}),r?C.jsx("span",{className:"truncate font-mono text-[13px] text-content-secondary",children:`$ ${r.command??"命令"}`}):C.jsxs(C.Fragment,{children:[C.jsx(h,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"shrink-0 text-[13px] font-medium text-content-secondary",children:(o==null?void 0:o.label)??(n==null?void 0:n.name)??"工具调用"}),(o==null?void 0:o.summary)&&C.jsx("span",{className:"truncate font-mono text-[13px] text-content-faint",children:uO(o.summary)})]}),r&&typeof r.exitCode=="number"&&C.jsxs("span",{className:`ml-auto shrink-0 font-mono text-[13px] ${r.exitCode===0?"text-success":"text-danger"}`,children:["exit ",r.exitCode]})]}),u&&l&&C.jsxs("div",{className:r?"":"px-3.5 pb-3 pt-2",children:[(r==null?void 0:r.output)&&C.jsxs("div",{className:"group/out relative",children:[C.jsx("pre",{className:"max-h-72 overflow-auto px-3.5 py-2.5 font-mono text-[13px] leading-relaxed text-content-secondary",children:r.output}),C.jsx(jc,{text:r.output,className:"absolute right-2 top-2 flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted opacity-0 transition-opacity hover:text-content-primary group-hover/out:opacity-100"})]}),(n==null?void 0:n.input)&&C.jsx("pre",{className:"max-h-40 overflow-auto rounded-lg bg-surface-raised px-3 py-2 font-mono text-[13px] text-content-faint",children:n.input}),(n==null?void 0:n.output)&&C.jsx("pre",{className:"mt-2 max-h-60 overflow-auto rounded-lg bg-surface-raised px-3 py-2 font-mono text-[13px] text-content-secondary",children:n.output})]})]})}function fO({item:e,onRespond:n}){var h;const[r,a]=re.useState(!1),l=e.permission;if(!l)return null;const u=r||((h=e.metadata)==null?void 0:h.permissionPending)===!0,f=l.options.length>0?l.options:[{id:"deny",label:"拒绝",kind:"deny"},{id:"allow_once",label:"允许一次",kind:"allow"}],o=(d,m)=>{u||(a(!0),n(l.requestId,d,m))};return C.jsxs("div",{className:"rounded-xl border border-warning/40 bg-surface p-4",children:[C.jsx("p",{className:"text-sm font-medium text-warning",children:"需要授权"}),l.context&&C.jsx("p",{className:"mt-1.5 text-sm text-content-secondary",children:l.context}),l.toolName&&C.jsx("p",{className:"mt-1.5 font-mono text-[13px] text-content-faint",children:l.toolName}),l.toolInput&&C.jsx("pre",{className:"mt-2 max-h-32 overflow-auto rounded-lg bg-surface-raised px-3 py-2 font-mono text-[13px] text-content-faint",children:l.toolInput}),C.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:f.map(d=>C.jsx("button",{disabled:u,onClick:()=>o(d.kind==="allow"?"allow":"deny",d.id),className:d.kind==="allow"?"codex-btn-primary text-xs":"codex-btn-outline text-xs border-danger/40 text-danger hover:border-danger hover:bg-danger/10 hover:text-danger",children:d.label},d.id))}),u&&C.jsx("p",{className:"mt-2 text-xs text-content-muted",children:"已发送…"})]})}function pO({item:e}){var n;return(n=e.plan)!=null&&n.length?C.jsxs("div",{className:"rounded-xl border border-border bg-surface p-4",children:[C.jsx("p",{className:"mb-2 text-2xs font-semibold uppercase tracking-wider text-content-faint",children:"计划"}),C.jsx("ul",{className:"space-y-1.5",children:e.plan.map(r=>C.jsxs("li",{className:"flex items-start gap-2 text-sm leading-6",children:[C.jsx("span",{className:"mt-1 shrink-0",children:r.status==="completed"?C.jsx(Mo,{size:12,className:"text-success"}):r.status==="in_progress"?C.jsx("span",{className:"block h-2.5 w-2.5 animate-pulse-dot rounded-full bg-accent"}):C.jsx("span",{className:"block h-2.5 w-2.5 rounded-full border border-content-faint"})}),C.jsx("div",{className:`min-w-0 flex-1 ${r.status==="completed"?"text-content-muted line-through":"text-content-secondary"}`,children:C.jsx(Qy,{text:r.text})})]},r.id))})]}):null}function mO({item:e,onSubmit:n}){var p,x,S;const r=e.structuredInput,[a,l]=re.useState({});if(!r)return null;const u=((p=e.metadata)==null?void 0:p.inputSubmitting)===!0,f=((x=e.metadata)==null?void 0:x.inputSubmitted)===!0,o=typeof((S=e.metadata)==null?void 0:S.inputError)=="string"?e.metadata.inputError:void 0,h=(k,w,_)=>{l(b=>{const v=b[k]??[];if(v.includes(w))return{...b,[k]:v.filter(T=>T!==w)};if(!_||_<=1)return{...b,[k]:[w]};const y=[...v,w];return{...b,[k]:y.slice(-_)}})},d=(k,w)=>{l(_=>({..._,[k]:w?[w]:[]}))},m=r.questions.every(k=>{var w;return(((w=a[k.id])==null?void 0:w.length)??0)>0});return C.jsxs("div",{className:"rounded-xl border border-accent-dim/40 bg-surface p-4",children:[C.jsx("p",{className:"text-sm font-medium text-accent",children:"需要你的输入"}),C.jsx("div",{className:"mt-3 space-y-4",children:r.questions.map(k=>C.jsxs("div",{children:[k.header&&C.jsx("p",{className:"text-2xs font-semibold uppercase tracking-wider text-content-faint",children:k.header}),C.jsx("p",{className:"mb-2 text-sm text-content-secondary",children:k.question}),k.options&&k.options.length>0&&k.selectionLimit&&k.selectionLimit>1&&C.jsxs("p",{className:"mb-2 text-2xs text-content-faint",children:["可多选",k.selectionLimit<k.options.length?`(最多 ${k.selectionLimit} 项)`:""]}),k.options&&k.options.length>0?C.jsx("div",{className:"flex flex-wrap gap-2",children:k.options.map(w=>{const _=(a[k.id]??[]).includes(w.id);return C.jsx("button",{disabled:f||u,onClick:()=>h(k.id,w.id,k.selectionLimit),title:w.description,className:_?"codex-btn-primary text-xs":"codex-btn-outline text-xs",children:w.label},w.id)})}):C.jsx("input",{type:k.isSecret?"password":"text",disabled:f||u,onChange:w=>d(k.id,w.target.value),className:"codex-input text-sm",placeholder:"输入答案…"})]},k.id))}),o&&C.jsx("p",{className:"mt-3 text-xs text-danger",children:o}),C.jsx("div",{className:"mt-3",children:f?C.jsx("span",{className:"text-xs text-content-muted",children:"已提交"}):C.jsx("button",{disabled:!m||u,onClick:()=>n(r.requestId,a),className:"codex-btn-primary text-xs",children:u?"提交中…":"提交"})})]})}function If(){return C.jsxs("span",{className:"ml-2 inline-flex items-center gap-1 text-2xs text-accent",children:[C.jsx("span",{className:"h-1 w-1 animate-pulse-dot rounded-full bg-accent"}),"正在生成"]})}function t0({item:e}){const[n,r]=re.useState(!!e.isStreaming);return C.jsxs("div",{className:"rounded-xl border border-border bg-surface px-3.5 py-2.5",children:[C.jsxs("button",{onClick:()=>r(a=>!a),className:"flex w-full cursor-pointer items-center gap-1.5 text-left text-xs text-content-muted transition-colors hover:text-content-secondary",children:[n?C.jsx(Ir,{size:11,className:"shrink-0 text-content-faint"}):C.jsx(Si,{size:11,className:"shrink-0 text-content-faint"}),C.jsx("span",{children:"思考过程"}),e.isStreaming&&C.jsx(If,{})]}),n&&e.text&&C.jsx("p",{className:"mt-2 whitespace-pre-wrap break-words pl-4 text-sm italic leading-relaxed text-content-muted",children:e.text})]})}function Uv({item:e,label:n}){const[r,a]=re.useState(!1),l=e.text!=null&&e.text.trim()!=="";return C.jsxs("div",{className:"flex items-center gap-2 py-0.5 text-2xs text-content-faint",children:[C.jsx("span",{className:"h-px flex-1 bg-border"}),C.jsxs("button",{onClick:()=>l&&a(u=>!u),className:`flex shrink-0 items-center gap-1 rounded-full border border-border bg-surface px-2.5 py-1 ${l?"cursor-pointer transition-colors hover:text-content-secondary":"cursor-default"}`,title:l?r?"收起":"展开":void 0,children:[C.jsx("span",{className:"font-medium",children:n}),e.isStreaming&&C.jsx(If,{}),l&&(r?C.jsx(Ir,{size:10}):C.jsx(Si,{size:10}))]}),C.jsx("span",{className:"h-px flex-1 bg-border"}),r&&l&&C.jsx("p",{className:"basis-full whitespace-pre-wrap break-words pt-1.5 text-xs italic leading-relaxed text-content-muted",children:e.text})]})}function gO(e){const n=Math.max(1,e.receiverThreadIds.length,e.receiverAgents.length),r=(e.tool||"").toLowerCase();return r.includes("spawn")?`启动 ${n} 个子 Agent`:r.includes("wait")?`等待 ${n} 个子 Agent`:r.includes("resume")?`恢复 ${n} 个子 Agent`:r.includes("close")?`关闭 ${n} 个子 Agent`:r.includes("sendinput")||r.includes("send_input")?`更新 ${n} 个子 Agent`:n===1?"子 Agent 活动":`${n} 个子 Agent 活动`}function _O(e){const n=(e||"").toLowerCase().replace(/[\s_-]/g,"");return n==="completed"||n==="done"||n==="success"?"完成":n==="failed"||n==="error"?"失败":n==="stopped"||n==="cancelled"?"已停止":n==="queued"||n==="pending"?"排队中":n==="running"||n==="inprogress"?"运行中":e||"未知"}function n0({item:e,onOpenAgent:n}){const r=e.subagent,[a,l]=re.useState(!0),u=[...new Set(r.receiverThreadIds.length>0?r.receiverThreadIds:r.receiverAgents.map(f=>f.threadId))];return C.jsxs("div",{className:"rounded-xl border border-border bg-surface p-3.5",children:[C.jsxs("button",{onClick:()=>l(f=>!f),className:"flex w-full cursor-pointer items-center gap-2 text-left",children:[C.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-md bg-accent/10 text-accent",children:C.jsx(af,{size:13})}),C.jsx("span",{className:"flex-1 truncate text-sm font-medium text-content-primary",children:gO(r)}),e.isStreaming&&C.jsx("span",{className:"h-1.5 w-1.5 animate-pulse-dot rounded-full bg-accent"}),a?C.jsx(Ir,{size:13,className:"shrink-0 text-content-faint"}):C.jsx(Si,{size:13,className:"shrink-0 text-content-faint"})]}),r.prompt&&C.jsx("p",{className:`mt-2 text-xs leading-relaxed text-content-muted ${a?"":"line-clamp-1"}`,children:r.prompt}),a&&u.length>0&&C.jsx("div",{className:"mt-2.5 space-y-0.5",children:u.map(f=>{const o=r.receiverAgents.find(x=>x.threadId===f),h=r.agentStates[f],d=_O((h==null?void 0:h.status)??r.status),m=o!=null&&o.nickname&&(o!=null&&o.role)?`${o.nickname} [${o.role}]`:(o==null?void 0:o.nickname)||(o==null?void 0:o.role)||(f.length>14?`Agent ${f.slice(-8)}`:f||"Agent"),p=d==="失败"?"bg-danger":d==="完成"?"bg-success":"bg-accent";return C.jsxs("button",{onClick:()=>n==null?void 0:n({threadId:f,name:m,role:o==null?void 0:o.role,model:o==null?void 0:o.model,prompt:(o==null?void 0:o.prompt)??r.prompt,status:d,message:h==null?void 0:h.message,tool:r.tool}),className:"flex w-full cursor-pointer items-center gap-2 rounded-lg px-1.5 py-1 text-left transition-colors hover:bg-surface-overlay",children:[C.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${p}`}),C.jsx("span",{className:"min-w-0 flex-1 truncate text-[13px] text-content-secondary",children:m}),(o==null?void 0:o.model)&&C.jsx("span",{className:"shrink-0 font-mono text-2xs text-content-faint",children:o.model}),C.jsx("span",{className:"shrink-0 text-2xs font-medium text-content-muted",children:d}),C.jsx(Si,{size:12,className:"shrink-0 text-content-faint"})]},f)})})]})}function vO({detail:e}){const n=e.status==="失败"?"bg-danger":e.status==="完成"?"bg-success":"bg-accent";return C.jsxs("div",{className:"flex h-full flex-col overflow-y-auto bg-surface",children:[C.jsxs("div",{className:"border-b border-border px-4 py-4",children:[C.jsxs("div",{className:"flex items-center gap-2",children:[C.jsx("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg bg-accent/10 text-accent",children:C.jsx(af,{size:15})}),C.jsxs("div",{className:"min-w-0 flex-1",children:[C.jsx("p",{className:"truncate text-sm font-semibold text-content-primary",children:e.name}),C.jsx("p",{className:"truncate font-mono text-2xs text-content-faint",children:e.threadId})]}),C.jsxs("span",{className:"flex shrink-0 items-center gap-1.5 text-xs text-content-secondary",children:[C.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${n}`}),e.status]})]}),C.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.role&&C.jsx("span",{className:"codex-chip",children:e.role}),e.model&&C.jsx("span",{className:"codex-chip",children:e.model}),e.tool&&C.jsx("span",{className:"codex-chip",children:e.tool})]})]}),C.jsxs("div",{className:"space-y-4 px-4 py-4",children:[e.prompt&&C.jsxs("section",{children:[C.jsx("p",{className:"mb-1.5 text-2xs font-semibold uppercase tracking-wider text-content-faint",children:"委派指令"}),C.jsx("div",{className:"rounded-xl border border-border bg-surface-raised p-3 text-[13px] leading-relaxed text-content-secondary whitespace-pre-wrap",children:e.prompt})]}),e.message&&C.jsxs("section",{children:[C.jsx("p",{className:"mb-1.5 text-2xs font-semibold uppercase tracking-wider text-content-faint",children:"状态消息"}),C.jsx("div",{className:"rounded-xl border border-border bg-surface-raised p-3 text-[13px] leading-relaxed text-content-secondary whitespace-pre-wrap",children:e.message})]}),C.jsx("p",{className:"pt-2 text-2xs leading-relaxed text-content-faint",children:"子 Agent 由主 Agent 内部派生,其完整对话记录不经网关透出,因此此处仅展示主 Agent 报告的状态信息。"})]})]})}const bO=new Set(["tool_activity","command_execution","file_change","subagent_action","thinking"]);function yO(e){return!!(e.kind&&bO.has(e.kind)||e.fileChange||e.commandExecution||e.toolCall||e.subagent||e.type==="tool_call")}function oc(e){var n,r,a;return e.role==="user"&&((n=e.metadata)==null?void 0:n.delivery)==="queued"&&((r=e.metadata)==null?void 0:r.queuedSent)!==!0&&((a=e.metadata)==null?void 0:a.queuedDiscarded)!==!0}function xO({items:e,canSteer:n,onSend:r,onSteer:a,onDiscard:l}){return e.length===0?null:C.jsx("div",{className:"mb-2 flex flex-col gap-1.5",children:e.map(u=>C.jsxs("div",{className:"group flex animate-slide-in items-center gap-2 rounded-xl border border-border bg-surface-raised px-3.5 py-2.5 shadow-sm",children:[C.jsx("span",{className:"shrink-0 rounded-full bg-surface-overlay px-2 py-0.5 text-2xs font-medium text-content-muted",children:"已排队"}),C.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-content-secondary",children:u.text}),C.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[C.jsx("button",{onClick:()=>r(u.id),className:"cursor-pointer rounded-md px-2 py-1 text-2xs text-content-muted transition-colors hover:bg-surface-overlay hover:text-accent",title:"立即发送",children:"立即发送"}),n&&C.jsx("button",{onClick:()=>a(u.id),className:"cursor-pointer rounded-md px-2 py-1 text-2xs text-content-muted transition-colors hover:bg-surface-overlay hover:text-accent",title:"引导当前轮",children:"引导"}),C.jsx("button",{onClick:()=>l(u.id),className:"cursor-pointer rounded-md p-1 text-content-faint transition-colors hover:text-danger",title:"丢弃","aria-label":"丢弃排队消息",children:C.jsx(hi,{size:14})})]})]},u.id))})}function Hv(e,n,r){return e.kind==="thinking"?C.jsx(t0,{item:e}):e.kind==="subagent_action"||e.subagent?C.jsx(n0,{item:e,onOpenAgent:r}):e.kind==="file_change"||e.fileChange?C.jsx(Jy,{item:e,onOpen:n}):C.jsx(e0,{item:e})}function SO(e){let n=1/0,r=0;for(const h of e){typeof h.createdAt=="number"&&(n=Math.min(n,h.createdAt));const d=typeof h.updatedAt=="number"?h.updatedAt:h.createdAt;typeof d=="number"&&(r=Math.max(r,d))}if(!Number.isFinite(n)||r<=n)return;const a=r-n;if(a<1e3)return;const l=Math.round(a/1e3);if(l<60)return`${(a/1e3).toFixed(1)}s`;const u=Math.floor(l/60),f=l%60;return u<60?`${u}m ${String(f).padStart(2,"0")}s`:`${Math.floor(u/60)}h ${String(u%60).padStart(2,"0")}m ${String(f).padStart(2,"0")}s`}function EO({items:e,live:n,onOpenDiff:r,onOpenAgent:a}){const[l,u]=re.useState(!1);if(n)return C.jsx("div",{className:"space-y-2",children:e.map(k=>C.jsx("div",{children:Hv(k,r,a)},k.id))});const f=e.filter(k=>k.kind==="file_change"||k.fileChange).length,o=e.filter(k=>k.kind==="command_execution"||k.commandExecution).length,h=e.filter(k=>(k.toolCall||k.type==="tool_call")&&!k.subagent).length,d=e.filter(k=>k.kind==="subagent_action"||k.subagent).length,m=e.filter(k=>k.kind==="thinking").length,p=[];f&&p.push(`编辑 ${f} 个文件`),o&&p.push(`运行 ${o} 条命令`),h&&p.push(`调用 ${h} 个工具`),d&&p.push(`${d} 次子 Agent`),!f&&!o&&!h&&!d&&m&&p.push("思考");const x=p.join(" · ")||`${e.length} 项活动`,S=SO(e);return l?C.jsxs("div",{className:"rounded-xl border border-border bg-surface p-2",children:[C.jsxs("button",{onClick:()=>u(!1),className:"mb-2 flex w-full cursor-pointer items-center gap-1.5 px-1.5 text-left text-xs text-content-muted transition-colors hover:text-content-secondary",children:[C.jsx(Ir,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{children:x}),S&&C.jsxs("span",{className:"text-content-faint",children:["· ",S]})]}),C.jsx("div",{className:"space-y-2",children:e.map(k=>C.jsx("div",{children:Hv(k,r,a)},k.id))})]}):C.jsxs("button",{onClick:()=>u(!0),className:"flex w-full cursor-pointer items-center gap-1.5 rounded-full border border-border bg-surface px-3.5 py-2 text-left text-xs text-content-muted transition-colors hover:border-border-strong hover:text-content-secondary",children:[C.jsx(Si,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{children:x}),S&&C.jsxs("span",{className:"text-content-faint",children:["· ",S]}),C.jsx("span",{className:"ml-auto text-content-faint",children:"展开"})]})}const Fv=re.memo(function({item:n,canSteer:r,onPermission:a,onStructuredInput:l,onSendQueued:u,onSteerQueued:f,onDiscardQueued:o,onOpenDiff:h,onOpenAgent:d,onEditMessage:m,highlightQuery:p}){var w;if(n.kind==="user_input_prompt"||n.structuredInput)return C.jsx(mO,{item:n,onSubmit:l});if(n.kind==="subagent_action"||n.subagent)return C.jsx(n0,{item:n,onOpenAgent:d});if(n.kind==="file_change"||n.fileChange)return C.jsx(Jy,{item:n,onOpen:h});if(n.kind==="command_execution"||n.commandExecution||n.type==="tool_call"||n.toolCall)return C.jsx(e0,{item:n});if(n.type==="permission"||n.permission)return C.jsx(fO,{item:n,onRespond:a});if(n.type==="plan"||n.plan)return C.jsx(pO,{item:n});if(n.type==="error"||n.error)return C.jsxs("div",{className:"flex items-start gap-2 rounded-xl border border-danger/40 bg-surface px-3.5 py-2.5 text-sm text-danger",children:[C.jsx("span",{className:"mt-1.5 block h-1.5 w-1.5 shrink-0 rounded-full bg-danger"}),C.jsx("span",{children:n.error??"发生错误"})]});if(n.kind==="thinking")return C.jsx(t0,{item:n});if(n.kind==="context_compaction")return C.jsx(Uv,{item:n,label:"上下文压缩"});if(n.kind==="review")return C.jsx(Uv,{item:n,label:"审查"});const x=n.role==="user",S=((w=n.metadata)==null?void 0:w.queuedDiscarded)===!0,k=n.text!=null&&n.text!=="";return C.jsxs("div",{className:x?"group flex flex-col items-end":"group min-w-0",children:[C.jsxs("div",{className:x?`max-w-[85%] break-words rounded-2xl px-4 py-2.5 text-[15px] leading-7 ${S?"bg-surface-raised text-content-secondary line-through opacity-50":"bg-surface-raised text-content-primary"}`:"w-full min-w-0",children:[Array.isArray(n.content)&&n.content.some(_=>_.type==="image")&&C.jsx("div",{className:"mb-1.5 flex flex-wrap gap-2",children:n.content.filter(_=>_.type==="image"&&_.data).map((_,b)=>C.jsx("img",{src:_.data,alt:"附件",className:"max-h-48 rounded-lg border border-border object-contain"},b))}),k&&C.jsx(Qy,{text:n.text,highlight:p}),n.isStreaming&&C.jsx(If,{})]}),S&&C.jsx("span",{className:"mt-1 text-2xs text-content-faint",children:"已丢弃"}),k&&!n.isStreaming&&!S&&C.jsxs("div",{className:`mt-1 flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100 ${x?"justify-end":""}`,children:[x&&m&&C.jsx("button",{onClick:()=>m(n.text),title:"编辑并重新发送","aria-label":"编辑并重新发送",className:"flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-border bg-surface text-content-muted transition-colors hover:text-content-primary",children:C.jsx(of,{size:13})}),C.jsx(jc,{text:n.text})]})]})},(e,n)=>e.item===n.item&&e.canSteer===n.canSteer&&e.onPermission===n.onPermission&&e.onStructuredInput===n.onStructuredInput&&e.onSendQueued===n.onSendQueued&&e.onSteerQueued===n.onSteerQueued&&e.onDiscardQueued===n.onDiscardQueued&&e.onOpenDiff===n.onOpenDiff&&e.onOpenAgent===n.onOpenAgent&&e.onEditMessage===n.onEditMessage&&e.highlightQuery===n.highlightQuery);function wO(e){const[n,r]=re.useState(()=>typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1);return re.useEffect(()=>{if(typeof window>"u"||!("matchMedia"in window))return;const a=window.matchMedia(e),l=()=>r(a.matches);return l(),a.addEventListener("change",l),()=>a.removeEventListener("change",l)},[e]),n}function i0(){return wO("(max-width: 767px)")}function CO({disabled:e,running:n,supportsImages:r,commands:a=[],conversationId:l,lastUserText:u,cwd:f,onBrowse:o,seedText:h,controls:d,onSend:m,onCancel:p,onExecuteCommand:x}){const[S,k]=re.useState(""),[w,_]=re.useState([]),[b,v]=re.useState(0),[y,T]=re.useState(!1),[M,N]=re.useState([]),[O,R]=re.useState([]),[L,z]=re.useState(null),H=re.useRef(null),q=re.useRef(null),F=i0();re.useEffect(()=>{if(!l)return;const ee=e1(l);k(ee),N([]),requestAnimationFrame(()=>A())},[l]),re.useEffect(()=>{!h||h.nonce===0||(k(h.text),requestAnimationFrame(()=>{const ee=H.current;ee&&(ee.focus(),ee.setSelectionRange(ee.value.length,ee.value.length),A())}))},[h==null?void 0:h.nonce]);const W=re.useMemo(()=>{const ee=/^\/(\S*)$/.exec(S);if(!ee||a.length===0)return null;const le=ee[1].toLowerCase(),He=a.map(Ee=>{const we=Ee.name.toLowerCase(),ke=Ee.title.toLowerCase();return le?we.startsWith(le)||ke.startsWith(`/${le}`)?{c:Ee,rank:0}:we.includes(le)||ke.includes(le)?{c:Ee,rank:1}:null:{c:Ee,rank:2}}).filter(Ee=>Ee!==null).sort((Ee,we)=>Ee.rank-we.rank).slice(0,8).map(Ee=>Ee.c);return He.length>0?He:null},[S,a]),G=re.useMemo(()=>{if(!o)return null;const ee=/(?:^|\s)@(\S*)$/.exec(S);if(!ee)return null;const le=ee[1],Ce=le.lastIndexOf("/"),He=Ce>=0?le.slice(0,Ce):"",Ee=Ce>=0?le.slice(Ce+1):le;return{token:`@${le}`,query:le,dir:He,filter:Ee}},[S,o]),K=re.useMemo(()=>{if(!G)return null;const ee=(f||".").replace(/\/+$/,"")||"/";return G.dir?`${ee}/${G.dir}`:ee},[G,f]);re.useEffect(()=>{if(!K||!o||K===L)return;let ee=!1;return o(K).then(le=>{ee||(R(le.error?[]:le.entries),z(K))}).catch(()=>{ee||R([])}),()=>{ee=!0}},[K,L,o]);const ne=re.useMemo(()=>{if(!G||L!==K)return null;const ee=G.filter.toLowerCase(),le=O.filter(Ce=>Ce.name.toLowerCase().includes(ee)).sort((Ce,He)=>Ce.isDirectory!==He.isDirectory?Ce.isDirectory?-1:1:Ce.name.localeCompare(He.name)).slice(0,50);return le.length>0?le:null},[G,O,L,K]),Q=W?{kind:"slash",items:W}:ne?{kind:"mention",items:ne}:null,I=()=>{H.current&&(H.current.style.height="auto")},A=()=>{const ee=H.current;ee&&(ee.style.height="auto",ee.style.height=`${Math.min(ee.scrollHeight,200)}px`)},B=ee=>{k(ee),v(0),l&&t1(l,ee),A()},$=ee=>{var le;ee.argsMode==="none"?(x==null||x(ee.id),B(""),I()):(B(`/${ee.name} `),(le=H.current)==null||le.focus())},P=ee=>{var Ee;if(!G)return;const le=(f||".").replace(/\/+$/,""),Ce=le&&ee.path.startsWith(le)?ee.path.slice(le.length).replace(/^\/+/,""):ee.name,He=S.slice(0,S.length-G.token.length);ee.isDirectory?B(`${He}@${Ce}/`):(B(He),N(we=>we.includes(Ce)?we:[...we,Ce])),(Ee=H.current)==null||Ee.focus()},oe=()=>{if(e)return;const ee=S.trim(),le=/^\/(\S+)\s*(.*)$/s.exec(ee);if(le&&x){const Ee=a.find(we=>we.name.toLowerCase()===le[1].toLowerCase());if(Ee){x(Ee.id,le[2]||void 0),B(""),N([]),I();return}}const He=[M.map(Ee=>`@${Ee}`).join(" "),ee].filter(Boolean).join(" ");!He&&w.length===0||(m(He,w),B(""),_([]),N([]),I())},ye=ee=>{if(Q){const le=Q.items.length;if(ee.key==="ArrowDown"){ee.preventDefault(),v(He=>Math.min(He+1,le-1));return}if(ee.key==="ArrowUp"){ee.preventDefault(),v(He=>Math.max(He-1,0));return}const Ce=()=>{const He=Math.min(b,le-1);Q.kind==="slash"?$(Q.items[He]):P(Q.items[He])};if(ee.key==="Tab"){ee.preventDefault(),Ce();return}if(ee.key==="Enter"&&!ee.metaKey&&!ee.ctrlKey&&!ee.shiftKey&&Q.kind==="mention"){ee.preventDefault(),Ce();return}if(ee.key==="Enter"&&(ee.metaKey||ee.ctrlKey)){ee.preventDefault(),Ce();return}if(ee.key==="Escape"){ee.preventDefault(),Q.kind==="slash"?B(""):G&&B(S.slice(0,S.length-G.token.length));return}}if(ee.key==="ArrowUp"&&!Q&&S===""&&u){ee.preventDefault(),B(u),requestAnimationFrame(()=>{const le=H.current;le&&le.setSelectionRange(le.value.length,le.value.length)});return}ee.key==="Enter"&&(ee.metaKey||ee.ctrlKey)&&(ee.preventDefault(),oe())},pe=ee=>{for(const le of ee){if(!le.type.startsWith("image/"))continue;const Ce=new FileReader;Ce.onload=()=>{const He=String(Ce.result);_(Ee=>[...Ee,{data:He,mimeType:le.type||"image/png",name:le.name||"粘贴图片"}])},Ce.readAsDataURL(le)}},J=ee=>{pe(Array.from(ee.target.files??[])),ee.target.value=""},j=ee=>{if(!r)return;const le=Array.from(ee.clipboardData.items).filter(Ce=>Ce.kind==="file"&&Ce.type.startsWith("image/")).map(Ce=>Ce.getAsFile()).filter(Ce=>Ce!=null);le.length>0&&(ee.preventDefault(),pe(le))},me=ee=>{if(T(!1),!r)return;const le=Array.from(ee.dataTransfer.files).filter(Ce=>Ce.type.startsWith("image/"));le.length>0&&(ee.preventDefault(),pe(le))},ce=ee=>{r&&Array.from(ee.dataTransfer.items).some(le=>le.kind==="file")&&(ee.preventDefault(),T(!0))};return C.jsxs("div",{className:"relative",children:[Q&&C.jsx("div",{className:"codex-card-raised absolute bottom-full left-0 mb-2 max-h-72 w-80 overflow-y-auto p-1",children:Q.kind==="slash"?Q.items.map((ee,le)=>C.jsxs("button",{onMouseEnter:()=>v(le),onClick:()=>$(ee),className:`flex w-full cursor-pointer items-center justify-between rounded-lg px-2.5 py-1.5 text-left transition-colors ${le===b?"bg-surface-overlay":"hover:bg-surface-overlay"}`,children:[C.jsxs("span",{className:"font-mono text-xs text-accent",children:["/",ee.name]}),C.jsx("span",{className:"ml-2 flex-1 truncate text-xs text-content-muted",children:ee.title}),ee.destructive&&C.jsx("span",{className:"h-1.5 w-1.5 shrink-0 rounded-full bg-danger",title:"破坏性操作"})]},ee.id)):Q.items.map((ee,le)=>C.jsxs("button",{onMouseEnter:()=>v(le),onClick:()=>P(ee),className:`flex w-full cursor-pointer items-center gap-2 rounded-lg px-2.5 py-1.5 text-left transition-colors ${le===b?"bg-surface-overlay":"hover:bg-surface-overlay"}`,children:[ee.isDirectory?C.jsx(Lr,{size:13,className:"shrink-0 text-content-faint"}):C.jsx(na,{size:13,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"truncate font-mono text-xs text-content-secondary",children:ee.name}),ee.isDirectory&&C.jsx("span",{className:"text-content-faint",children:"/"})]},ee.path))}),w.length>0&&C.jsx("div",{className:"mb-2 flex flex-wrap gap-2",children:w.map((ee,le)=>C.jsxs("div",{className:"group relative",children:[C.jsx("img",{src:ee.data,alt:ee.name,className:"h-14 w-14 rounded-lg border border-border object-cover"}),C.jsx("button",{onClick:()=>_(Ce=>Ce.filter((He,Ee)=>Ee!==le)),className:"absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-danger text-white","aria-label":"移除图片",children:C.jsx(hi,{size:10})})]},le))}),M.length>0&&C.jsx("div",{className:"mb-2 flex flex-wrap gap-1.5",children:M.map(ee=>C.jsxs("span",{className:"flex items-center gap-1 rounded-lg border border-border bg-surface-overlay py-1 pl-2 pr-1 font-mono text-xs text-content-secondary",children:[C.jsx(na,{size:12,className:"shrink-0 text-content-faint"}),C.jsx("span",{className:"max-w-[200px] truncate",title:ee,children:ee}),C.jsx("button",{onClick:()=>N(le=>le.filter(Ce=>Ce!==ee)),className:"flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded text-content-faint transition-colors hover:text-danger","aria-label":`移除 ${ee}`,children:C.jsx(hi,{size:11})})]},ee))}),C.jsxs("div",{onDrop:me,onDragOver:ce,onDragLeave:()=>T(!1),className:`codex-card-raised flex flex-col gap-1 px-3 pt-2.5 pb-2 transition-colors focus-within:border-border-strong ${y?"border-border-strong":""}`,children:[r&&C.jsx("input",{ref:q,type:"file",accept:"image/*",multiple:!0,onChange:J,className:"hidden"}),C.jsx("textarea",{ref:H,value:S,rows:1,disabled:e,placeholder:F?a.length>0?"发送指令,或输入 / 调用命令…":"向 agent 发送指令…":a.length>0?"发送指令,/ 调用命令,@ 引用文件 (⌘/Ctrl+Enter 发送)":"向 agent 发送指令,@ 引用文件 (⌘/Ctrl+Enter 发送,Enter 换行)",onChange:ee=>B(ee.target.value),onKeyDown:ye,onPaste:j,className:"min-w-0 resize-none bg-transparent px-0 py-1 text-base leading-6 text-content-primary placeholder-content-muted outline-none md:text-[15px]"}),C.jsxs("div",{className:"flex items-center gap-1",children:[r&&C.jsx("button",{onClick:()=>{var ee;return(ee=q.current)==null?void 0:ee.click()},disabled:e,className:"flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center rounded-full text-content-muted transition-colors hover:bg-surface-overlay hover:text-content-primary disabled:opacity-40",title:"附加图片","aria-label":"附加图片",children:C.jsx(Ro,{size:17})}),C.jsx("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-0.5",children:d}),n&&p?C.jsx("button",{onClick:p,className:"flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-full bg-surface-overlay text-content-secondary transition-colors hover:bg-surface-raised hover:text-content-primary","aria-label":"停止",title:"停止",children:C.jsx(eb,{size:14})}):C.jsx("button",{onClick:oe,disabled:e||!S.trim()&&w.length===0&&M.length===0,className:"flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-full bg-accent-dim text-white transition-colors hover:bg-accent disabled:cursor-default disabled:bg-surface-overlay disabled:text-content-faint","aria-label":"发送",title:"发送",children:C.jsx(rf,{size:16})})]})]})]})}var _d={exports:{}},$v;function kO(){return $v||($v=1,(function(e,n){(function(r,a){e.exports=a()})(globalThis,(()=>(()=>{var r={4567:function(f,o,h){var d=this&&this.__decorate||function(v,y,T,M){var N,O=arguments.length,R=O<3?y:M===null?M=Object.getOwnPropertyDescriptor(y,T):M;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")R=Reflect.decorate(v,y,T,M);else for(var L=v.length-1;L>=0;L--)(N=v[L])&&(R=(O<3?N(R):O>3?N(y,T,R):N(y,T))||R);return O>3&&R&&Object.defineProperty(y,T,R),R},m=this&&this.__param||function(v,y){return function(T,M){y(T,M,v)}};Object.defineProperty(o,"__esModule",{value:!0}),o.AccessibilityManager=void 0;const p=h(9042),x=h(9924),S=h(844),k=h(4725),w=h(2585),_=h(3656);let b=o.AccessibilityManager=class extends S.Disposable{constructor(v,y,T,M){super(),this._terminal=v,this._coreBrowserService=T,this._renderService=M,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let N=0;N<this._terminal.rows;N++)this._rowElements[N]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[N]);if(this._topBoundaryFocusListener=N=>this._handleBoundaryFocus(N,0),this._bottomBoundaryFocusListener=N=>this._handleBoundaryFocus(N,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new x.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((N=>this._handleResize(N.rows)))),this.register(this._terminal.onRender((N=>this._refreshRows(N.start,N.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((N=>this._handleChar(N)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(`
|
|
85
85
|
`)))),this.register(this._terminal.onA11yTab((N=>this._handleTab(N)))),this.register(this._terminal.onKey((N=>this._handleKey(N.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,_.addDisposableDomListener)(document,"selectionchange",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,S.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(v){for(let y=0;y<v;y++)this._handleChar(" ")}_handleChar(v){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==v&&(this._charsToAnnounce+=v):this._charsToAnnounce+=v,v===`
|
|
86
86
|
`&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=p.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(v){this._clearLiveRegion(),new RegExp("\\p{Control}","u").test(v)||this._charsToConsume.push(v)}_refreshRows(v,y){this._liveRegionDebouncer.refresh(v,y,this._terminal.rows)}_renderRows(v,y){const T=this._terminal.buffer,M=T.lines.length.toString();for(let N=v;N<=y;N++){const O=T.lines.get(T.ydisp+N),R=[],L=(O==null?void 0:O.translateToString(!0,void 0,void 0,R))||"",z=(T.ydisp+N+1).toString(),H=this._rowElements[N];H&&(L.length===0?(H.innerText=" ",this._rowColumns.set(H,[0,1])):(H.textContent=L,this._rowColumns.set(H,R)),H.setAttribute("aria-posinset",z),H.setAttribute("aria-setsize",M))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(v,y){const T=v.target,M=this._rowElements[y===0?1:this._rowElements.length-2];if(T.getAttribute("aria-posinset")===(y===0?"1":`${this._terminal.buffer.lines.length}`)||v.relatedTarget!==M)return;let N,O;if(y===0?(N=T,O=this._rowElements.pop(),this._rowContainer.removeChild(O)):(N=this._rowElements.shift(),O=T,this._rowContainer.removeChild(N)),N.removeEventListener("focus",this._topBoundaryFocusListener),O.removeEventListener("focus",this._bottomBoundaryFocusListener),y===0){const R=this._createAccessibilityTreeNode();this._rowElements.unshift(R),this._rowContainer.insertAdjacentElement("afterbegin",R)}else{const R=this._createAccessibilityTreeNode();this._rowElements.push(R),this._rowContainer.appendChild(R)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(y===0?-1:1),this._rowElements[y===0?1:this._rowElements.length-2].focus(),v.preventDefault(),v.stopImmediatePropagation()}_handleSelectionChange(){var L;if(this._rowElements.length===0)return;const v=document.getSelection();if(!v)return;if(v.isCollapsed)return void(this._rowContainer.contains(v.anchorNode)&&this._terminal.clearSelection());if(!v.anchorNode||!v.focusNode)return void console.error("anchorNode and/or focusNode are null");let y={node:v.anchorNode,offset:v.anchorOffset},T={node:v.focusNode,offset:v.focusOffset};if((y.node.compareDocumentPosition(T.node)&Node.DOCUMENT_POSITION_PRECEDING||y.node===T.node&&y.offset>T.offset)&&([y,T]=[T,y]),y.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(y={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(y.node))return;const M=this._rowElements.slice(-1)[0];if(T.node.compareDocumentPosition(M)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(T={node:M,offset:((L=M.textContent)==null?void 0:L.length)??0}),!this._rowContainer.contains(T.node))return;const N=({node:z,offset:H})=>{const q=z instanceof Text?z.parentNode:z;let F=parseInt(q==null?void 0:q.getAttribute("aria-posinset"),10)-1;if(isNaN(F))return console.warn("row is invalid. Race condition?"),null;const W=this._rowColumns.get(q);if(!W)return console.warn("columns is null. Race condition?"),null;let G=H<W.length?W[H]:W.slice(-1)[0]+1;return G>=this._terminal.cols&&(++F,G=0),{row:F,column:G}},O=N(y),R=N(T);if(O&&R){if(O.row>R.row||O.row===R.row&&O.column>=R.column)throw new Error("invalid range");this._terminal.select(O.column,O.row,(R.row-O.row)*this._terminal.cols-O.column+R.column)}}_handleResize(v){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let y=this._rowContainer.children.length;y<this._terminal.rows;y++)this._rowElements[y]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[y]);for(;this._rowElements.length>v;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const v=this._coreBrowserService.mainDocument.createElement("div");return v.setAttribute("role","listitem"),v.tabIndex=-1,this._refreshRowDimensions(v),v}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let v=0;v<this._terminal.rows;v++)this._refreshRowDimensions(this._rowElements[v])}}_refreshRowDimensions(v){v.style.height=`${this._renderService.dimensions.css.cell.height}px`}};o.AccessibilityManager=b=d([m(1,w.IInstantiationService),m(2,k.ICoreBrowserService),m(3,k.IRenderService)],b)},3614:(f,o)=>{function h(x){return x.replace(/\r?\n/g,"\r")}function d(x,S){return S?"\x1B[200~"+x+"\x1B[201~":x}function m(x,S,k,w){x=d(x=h(x),k.decPrivateModes.bracketedPasteMode&&w.rawOptions.ignoreBracketedPasteMode!==!0),k.triggerDataEvent(x,!0),S.value=""}function p(x,S,k){const w=k.getBoundingClientRect(),_=x.clientX-w.left-10,b=x.clientY-w.top-10;S.style.width="20px",S.style.height="20px",S.style.left=`${_}px`,S.style.top=`${b}px`,S.style.zIndex="1000",S.focus()}Object.defineProperty(o,"__esModule",{value:!0}),o.rightClickHandler=o.moveTextAreaUnderMouseCursor=o.paste=o.handlePasteEvent=o.copyHandler=o.bracketTextForPaste=o.prepareTextForTerminal=void 0,o.prepareTextForTerminal=h,o.bracketTextForPaste=d,o.copyHandler=function(x,S){x.clipboardData&&x.clipboardData.setData("text/plain",S.selectionText),x.preventDefault()},o.handlePasteEvent=function(x,S,k,w){x.stopPropagation(),x.clipboardData&&m(x.clipboardData.getData("text/plain"),S,k,w)},o.paste=m,o.moveTextAreaUnderMouseCursor=p,o.rightClickHandler=function(x,S,k,w,_){p(x,S,k),_&&w.rightClickSelect(x),S.value=w.selectionText,S.select()}},7239:(f,o,h)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.ColorContrastCache=void 0;const d=h(1505);o.ColorContrastCache=class{constructor(){this._color=new d.TwoKeyMap,this._css=new d.TwoKeyMap}setCss(m,p,x){this._css.set(m,p,x)}getCss(m,p){return this._css.get(m,p)}setColor(m,p,x){this._color.set(m,p,x)}getColor(m,p){return this._color.get(m,p)}clear(){this._color.clear(),this._css.clear()}}},3656:(f,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.addDisposableDomListener=void 0,o.addDisposableDomListener=function(h,d,m,p){h.addEventListener(d,m,p);let x=!1;return{dispose:()=>{x||(x=!0,h.removeEventListener(d,m,p))}}}},3551:function(f,o,h){var d=this&&this.__decorate||function(b,v,y,T){var M,N=arguments.length,O=N<3?v:T===null?T=Object.getOwnPropertyDescriptor(v,y):T;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")O=Reflect.decorate(b,v,y,T);else for(var R=b.length-1;R>=0;R--)(M=b[R])&&(O=(N<3?M(O):N>3?M(v,y,O):M(v,y))||O);return N>3&&O&&Object.defineProperty(v,y,O),O},m=this&&this.__param||function(b,v){return function(y,T){v(y,T,b)}};Object.defineProperty(o,"__esModule",{value:!0}),o.Linkifier=void 0;const p=h(3656),x=h(8460),S=h(844),k=h(2585),w=h(4725);let _=o.Linkifier=class extends S.Disposable{get currentLink(){return this._currentLink}constructor(b,v,y,T,M){super(),this._element=b,this._mouseService=v,this._renderService=y,this._bufferService=T,this._linkProviderService=M,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new x.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new x.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,S.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,S.toDisposable)((()=>{var N;this._lastMouseEvent=void 0,(N=this._activeProviderReplies)==null||N.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,p.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,p.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,p.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,p.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(b){this._lastMouseEvent=b;const v=this._positionFromMouseEvent(b,this._element,this._mouseService);if(!v)return;this._isMouseOut=!1;const y=b.composedPath();for(let T=0;T<y.length;T++){const M=y[T];if(M.classList.contains("xterm"))break;if(M.classList.contains("xterm-hover"))return}this._lastBufferCell&&v.x===this._lastBufferCell.x&&v.y===this._lastBufferCell.y||(this._handleHover(v),this._lastBufferCell=v)}_handleHover(b){if(this._activeLine!==b.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(b,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,b)||(this._clearCurrentLink(),this._askForLink(b,!0))}_askForLink(b,v){var T,M;this._activeProviderReplies&&v||((T=this._activeProviderReplies)==null||T.forEach((N=>{N==null||N.forEach((O=>{O.link.dispose&&O.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=b.y);let y=!1;for(const[N,O]of this._linkProviderService.linkProviders.entries())v?(M=this._activeProviderReplies)!=null&&M.get(N)&&(y=this._checkLinkProviderResult(N,b,y)):O.provideLinks(b.y,(R=>{var z,H;if(this._isMouseOut)return;const L=R==null?void 0:R.map((q=>({link:q})));(z=this._activeProviderReplies)==null||z.set(N,L),y=this._checkLinkProviderResult(N,b,y),((H=this._activeProviderReplies)==null?void 0:H.size)===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(b.y,this._activeProviderReplies)}))}_removeIntersectingLinks(b,v){const y=new Set;for(let T=0;T<v.size;T++){const M=v.get(T);if(M)for(let N=0;N<M.length;N++){const O=M[N],R=O.link.range.start.y<b?0:O.link.range.start.x,L=O.link.range.end.y>b?this._bufferService.cols:O.link.range.end.x;for(let z=R;z<=L;z++){if(y.has(z)){M.splice(N--,1);break}y.add(z)}}}}_checkLinkProviderResult(b,v,y){var N;if(!this._activeProviderReplies)return y;const T=this._activeProviderReplies.get(b);let M=!1;for(let O=0;O<b;O++)this._activeProviderReplies.has(O)&&!this._activeProviderReplies.get(O)||(M=!0);if(!M&&T){const O=T.find((R=>this._linkAtPosition(R.link,v)));O&&(y=!0,this._handleNewLink(O))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!y)for(let O=0;O<this._activeProviderReplies.size;O++){const R=(N=this._activeProviderReplies.get(O))==null?void 0:N.find((L=>this._linkAtPosition(L.link,v)));if(R){y=!0,this._handleNewLink(R);break}}return y}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(b){if(!this._currentLink)return;const v=this._positionFromMouseEvent(b,this._element,this._mouseService);v&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,v)&&this._currentLink.link.activate(b,this._currentLink.link.text)}_clearCurrentLink(b,v){this._currentLink&&this._lastMouseEvent&&(!b||!v||this._currentLink.link.range.start.y>=b&&this._currentLink.link.range.end.y<=v)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,S.disposeArray)(this._linkCacheDisposables))}_handleNewLink(b){if(!this._lastMouseEvent)return;const v=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);v&&this._linkAtPosition(b.link,v)&&(this._currentLink=b,this._currentLink.state={decorations:{underline:b.link.decorations===void 0||b.link.decorations.underline,pointerCursor:b.link.decorations===void 0||b.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,b.link,this._lastMouseEvent),b.link.decorations={},Object.defineProperties(b.link.decorations,{pointerCursor:{get:()=>{var y,T;return(T=(y=this._currentLink)==null?void 0:y.state)==null?void 0:T.decorations.pointerCursor},set:y=>{var T;(T=this._currentLink)!=null&&T.state&&this._currentLink.state.decorations.pointerCursor!==y&&(this._currentLink.state.decorations.pointerCursor=y,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",y))}},underline:{get:()=>{var y,T;return(T=(y=this._currentLink)==null?void 0:y.state)==null?void 0:T.decorations.underline},set:y=>{var T,M,N;(T=this._currentLink)!=null&&T.state&&((N=(M=this._currentLink)==null?void 0:M.state)==null?void 0:N.decorations.underline)!==y&&(this._currentLink.state.decorations.underline=y,this._currentLink.state.isHovered&&this._fireUnderlineEvent(b.link,y))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((y=>{if(!this._currentLink)return;const T=y.start===0?0:y.start+1+this._bufferService.buffer.ydisp,M=this._bufferService.buffer.ydisp+1+y.end;if(this._currentLink.link.range.start.y>=T&&this._currentLink.link.range.end.y<=M&&(this._clearCurrentLink(T,M),this._lastMouseEvent)){const N=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);N&&this._askForLink(N,!1)}}))))}_linkHover(b,v,y){var T;(T=this._currentLink)!=null&&T.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(v,!0),this._currentLink.state.decorations.pointerCursor&&b.classList.add("xterm-cursor-pointer")),v.hover&&v.hover(y,v.text)}_fireUnderlineEvent(b,v){const y=b.range,T=this._bufferService.buffer.ydisp,M=this._createLinkUnderlineEvent(y.start.x-1,y.start.y-T-1,y.end.x,y.end.y-T-1,void 0);(v?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(M)}_linkLeave(b,v,y){var T;(T=this._currentLink)!=null&&T.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(v,!1),this._currentLink.state.decorations.pointerCursor&&b.classList.remove("xterm-cursor-pointer")),v.leave&&v.leave(y,v.text)}_linkAtPosition(b,v){const y=b.range.start.y*this._bufferService.cols+b.range.start.x,T=b.range.end.y*this._bufferService.cols+b.range.end.x,M=v.y*this._bufferService.cols+v.x;return y<=M&&M<=T}_positionFromMouseEvent(b,v,y){const T=y.getCoords(b,v,this._bufferService.cols,this._bufferService.rows);if(T)return{x:T[0],y:T[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(b,v,y,T,M){return{x1:b,y1:v,x2:y,y2:T,cols:this._bufferService.cols,fg:M}}};o.Linkifier=_=d([m(1,w.IMouseService),m(2,w.IRenderService),m(3,k.IBufferService),m(4,w.ILinkProviderService)],_)},9042:(f,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.tooMuchOutput=o.promptLabel=void 0,o.promptLabel="Terminal input",o.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(f,o,h){var d=this&&this.__decorate||function(w,_,b,v){var y,T=arguments.length,M=T<3?_:v===null?v=Object.getOwnPropertyDescriptor(_,b):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")M=Reflect.decorate(w,_,b,v);else for(var N=w.length-1;N>=0;N--)(y=w[N])&&(M=(T<3?y(M):T>3?y(_,b,M):y(_,b))||M);return T>3&&M&&Object.defineProperty(_,b,M),M},m=this&&this.__param||function(w,_){return function(b,v){_(b,v,w)}};Object.defineProperty(o,"__esModule",{value:!0}),o.OscLinkProvider=void 0;const p=h(511),x=h(2585);let S=o.OscLinkProvider=class{constructor(w,_,b){this._bufferService=w,this._optionsService=_,this._oscLinkService=b}provideLinks(w,_){var L;const b=this._bufferService.buffer.lines.get(w-1);if(!b)return void _(void 0);const v=[],y=this._optionsService.rawOptions.linkHandler,T=new p.CellData,M=b.getTrimmedLength();let N=-1,O=-1,R=!1;for(let z=0;z<M;z++)if(O!==-1||b.hasContent(z)){if(b.loadCell(z,T),T.hasExtendedAttrs()&&T.extended.urlId){if(O===-1){O=z,N=T.extended.urlId;continue}R=T.extended.urlId!==N}else O!==-1&&(R=!0);if(R||O!==-1&&z===M-1){const H=(L=this._oscLinkService.getLinkData(N))==null?void 0:L.uri;if(H){const q={start:{x:O+1,y:w},end:{x:z+(R||z!==M-1?0:1),y:w}};let F=!1;if(!(y!=null&&y.allowNonHttpProtocols))try{const W=new URL(H);["http:","https:"].includes(W.protocol)||(F=!0)}catch{F=!0}F||v.push({text:H,range:q,activate:(W,G)=>y?y.activate(W,G,q):k(0,G),hover:(W,G)=>{var K;return(K=y==null?void 0:y.hover)==null?void 0:K.call(y,W,G,q)},leave:(W,G)=>{var K;return(K=y==null?void 0:y.leave)==null?void 0:K.call(y,W,G,q)}})}R=!1,T.hasExtendedAttrs()&&T.extended.urlId?(O=z,N=T.extended.urlId):(O=-1,N=-1)}}_(v)}};function k(w,_){if(confirm(`Do you want to navigate to ${_}?
|
|
87
87
|
|
package/web/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
|
|
6
6
|
<link rel="icon" type="image/png" href="/logos/linkshell.png" />
|
|
7
7
|
<title>LinkShell</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-Bh3kcNhP.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-BF_KJjhI.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|