cc-team-viewer 1.4.19 → 1.4.21

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/cli/cli.js CHANGED
@@ -307,7 +307,8 @@ if (isHelp) {
307
307
 
308
308
  if (isVersion) {
309
309
  try {
310
- const pkg = JSON.parse(readFileSync(resolve(__dirname, 'package.json'), 'utf-8'));
310
+ // Read version from root package.json, not cli/package.json
311
+ const pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf-8'));
311
312
  console.log(`cctv v${pkg.version}`);
312
313
  } catch (e) {
313
314
  console.error('Failed to read version:', e.message);
@@ -424,5 +424,5 @@ https://github.com/highlightjs/highlight.js/issues/2277`),nn=he,Mt=Le),ot===void
424
424
  ]`,y={scope:"string",variants:[m,f,g,h]},x={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},S=["false","null","true"],E=["__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"],w=["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"],R={keyword:E,literal:(L=>{const V=[];return L.forEach(H=>{V.push(H),H.toLowerCase()===H?V.push(H.toUpperCase()):V.push(H.toLowerCase())}),V})(S),built_in:w},N=L=>L.map(V=>V.replace(/\|\d+$/,"")),O={variants:[{match:[/new/,t.concat(v,"+"),t.concat("(?!",N(w).join("\\b|"),"\\b)"),o],scope:{1:"keyword",4:"title.class"}}]},I=t.concat(r,"\\b(?!\\()"),P={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),I],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[o,t.concat(/::/,t.lookahead(/(?!class\b)/)),I],scope:{1:"title.class",3:"variable.constant"}},{match:[o,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[o,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},M={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},k={relevance:0,begin:/\(/,end:/\)/,keywords:R,contains:[M,l,P,e.C_BLOCK_COMMENT_MODE,y,x,O]},A={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",N(E).join("\\b|"),"|",N(w).join("\\b|"),"\\b)"),r,t.concat(v,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[k]};k.contains.push(A);const j=[M,P,e.C_BLOCK_COMMENT_MODE,y,x,O],D={begin:t.concat(/#\[\s*\\?/,t.either(o,i)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...j]},...j,{scope:"meta",variants:[{match:o},{match:i}]}]};return{case_insensitive:!1,keywords:R,contains:[D,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}]}},c,{scope:"variable.language",match:/\$this\b/},l,A,P,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},O,{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:R,contains:["self",D,l,P,e.C_BLOCK_COMMENT_MODE,y,x]}]},{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]},y,x]}}function bq(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),o=t.concat(r,/(::\w+)*/),l={"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"]},c={className:"doctag",begin:"@[A-Za-z]+"},u={begin:"#<",end:">"},f=[e.COMMENT("#","$",{contains:[c]}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],m={className:"subst",begin:/#\{/,end:/\}/,keywords:l},g={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:t.concat(/<<[-~]?'?/,t.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]})]}]},h="[1-9](_?[0-9])*|0",v="[0-9](_?[0-9])*",y={className:"number",relevance:0,variants:[{begin:`\\b(${h})(\\.(${v}))?([eE][+-]?(${v})|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"}]},x={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:l}]},O=[g,{variants:[{match:[/class\s+/,o,/\s+<\s+/,o]},{match:[/\b(class|module)\s+/,o]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:l},{match:[/(include|extend)\s+/,o],scope:{2:"title.class"},keywords:l},{relevance:0,match:[o,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[x]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[g,{begin:n}],relevance:0},y,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:l},{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(u,f),relevance:0}].concat(u,f);m.contains=O,x.contains=O;const k=[{begin:/^\s*=>/,starts:{end:"$",contains:O}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:l,contains:O}}];return f.unshift(u),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:l,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(k).concat(f).concat(O)}}function D_(e){return e?typeof e=="string"?e:e.source:null}function Wl(e){return Fn("(?=",e,")")}function Fn(...e){return e.map(n=>D_(n)).join("")}function yq(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Kr(...e){return"("+(yq(e).capture?"":"?:")+e.map(r=>D_(r)).join("|")+")"}const Qv=e=>Fn(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xq=["Protocol","Type"].map(Qv),kS=["init","self"].map(Qv),Sq=["Any","Self"],xg=["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"],jS=["false","nil","true"],Cq=["assignment","associativity","higherThan","left","lowerThan","none","right"],wq=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],AS=["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"],F_=Kr(/[/=\-+!*%<>&|^~?]/,/[\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]/),H_=Kr(F_,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Sg=Fn(F_,H_,"*"),V_=Kr(/[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]/),ef=Kr(V_,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),da=Fn(V_,ef,"*"),ed=Fn(/[A-Z]/,ef,"*"),Eq=["attached","autoclosure",Fn(/convention\(/,Kr("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Fn(/objc\(/,da,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],_q=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function $q(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],o={match:[/\./,Kr(...xq,...kS)],className:{2:"keyword"}},i={match:Fn(/\./,Kr(...xg)),relevance:0},l=xg.filter(ie=>typeof ie=="string").concat(["_|0"]),c=xg.filter(ie=>typeof ie!="string").concat(Sq).map(Qv),u={variants:[{className:"keyword",match:Kr(...c,...kS)}]},f={$pattern:Kr(/\b\w+/,/#\w+/),keyword:l.concat(wq),literal:jS},m=[o,i,u],g={match:Fn(/\./,Kr(...AS)),relevance:0},h={className:"built_in",match:Fn(/\b/,Kr(...AS),/(?=\()/)},v=[g,h],y={match:/->/,relevance:0},x={className:"operator",relevance:0,variants:[{match:Sg},{match:`\\.(\\.|${H_})+`}]},S=[y,x],E="([0-9]_*)+",w="([0-9a-fA-F]_*)+",_={className:"number",relevance:0,variants:[{match:`\\b(${E})(\\.(${E}))?([eE][+-]?(${E}))?\\b`},{match:`\\b0x(${w})(\\.(${w}))?([pP][+-]?(${E}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},R=(ie="")=>({className:"subst",variants:[{match:Fn(/\\/,ie,/[0\\tnr"']/)},{match:Fn(/\\/,ie,/u\{[0-9a-fA-F]{1,8}\}/)}]}),N=(ie="")=>({className:"subst",match:Fn(/\\/,ie,/[\t ]*(?:[\r\n]|\r\n)/)}),O=(ie="")=>({className:"subst",label:"interpol",begin:Fn(/\\/,ie,/\(/),end:/\)/}),I=(ie="")=>({begin:Fn(ie,/"""/),end:Fn(/"""/,ie),contains:[R(ie),N(ie),O(ie)]}),P=(ie="")=>({begin:Fn(ie,/"/),end:Fn(/"/,ie),contains:[R(ie),O(ie)]}),M={className:"string",variants:[I(),I("#"),I("##"),I("###"),P(),P("#"),P("##"),P("###")]},k=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],A={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:k},j=ie=>{const ve=Fn(ie,/\//),$e=Fn(/\//,ie);return{begin:ve,end:$e,contains:[...k,{scope:"comment",begin:`#(?!.*${$e})`,end:/$/}]}},D={scope:"regexp",variants:[j("###"),j("##"),j("#"),A]},L={match:Fn(/`/,da,/`/)},V={className:"variable",match:/\$\d+/},H={className:"variable",match:`\\$${ef}+`},W=[L,V,H],z={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:_q,contains:[...S,_,M]}]}},K={scope:"keyword",match:Fn(/@/,Kr(...Eq),Wl(Kr(/\(/,/\s+/)))},q={scope:"meta",match:Fn(/@/,da)},B=[z,K,q],U={match:Wl(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Fn(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ef,"+")},{className:"type",match:ed,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Fn(/\s+&\s+/,Wl(ed)),relevance:0}]},G={begin:/</,end:/>/,keywords:f,contains:[...r,...m,...B,y,U]};U.contains.push(G);const X={match:Fn(da,/\s*:/),keywords:"_|0",relevance:0},Z={begin:/\(/,end:/\)/,relevance:0,keywords:f,contains:["self",X,...r,D,...m,...v,...S,_,M,...W,...B,U]},te={begin:/</,end:/>/,keywords:"repeat each",contains:[...r,U]},pe={begin:Kr(Wl(Fn(da,/\s*:/)),Wl(Fn(da,/\s+/,da,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:da}]},le={begin:/\(/,end:/\)/,keywords:f,contains:[pe,...r,...m,...S,_,M,...B,U,Z],endsParent:!0,illegal:/["']/},fe={match:[/(func|macro)/,/\s+/,Kr(L.match,da,Sg)],className:{1:"keyword",3:"title.function"},contains:[te,le,t],illegal:[/\[/,/%/]},we={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[te,le,t],illegal:/\[|%/},ce={match:[/operator/,/\s+/,Sg],className:{1:"keyword",3:"title"}},me={begin:[/precedencegroup/,/\s+/,ed],className:{1:"keyword",3:"title"},contains:[U],keywords:[...Cq,...jS],end:/}/},be={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Se={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},ge={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,da,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:f,contains:[te,...m,{begin:/:/,end:/\{/,keywords:f,contains:[{scope:"title.class.inherited",match:ed},...m],relevance:0}]};for(const ie of M.variants){const ve=ie.contains.find(Te=>Te.label==="interpol");ve.keywords=f;const $e=[...m,...v,...S,_,M,...W];ve.contains=[...$e,{begin:/\(/,end:/\)/,contains:["self",...$e]}]}return{name:"Swift",keywords:f,contains:[...r,fe,we,be,Se,ge,ce,me,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},D,...m,...v,...S,_,M,...W,...B,U,Z]}}var js="[0-9](_*[0-9])*",td=`\\.(${js})`,nd="[0-9a-fA-F](_*[0-9a-fA-F])*",Nq={className:"number",variants:[{begin:`(\\b(${js})((${td})|\\.)?|(${td}))[eE][+-]?(${js})[fFdD]?\\b`},{begin:`\\b(${js})((${td})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${td})[fFdD]?\\b`},{begin:`\\b(${js})[fFdD]\\b`},{begin:`\\b0[xX]((${nd})\\.?|(${nd})?\\.(${nd}))[pP][+-]?(${js})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${nd})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Rq(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},o={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},l={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,o]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,i,o]}]};o.contains.push(l);const c={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},u={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(l,{className:"string"}),"self"]}]},f=Nq,m=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),g={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=g;return h.variants[1].contains=[g],g.variants[1].contains=[h],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,m,n,r,c,u,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[g,e.C_LINE_COMMENT_MODE,m],relevance:0},e.C_LINE_COMMENT_MODE,m,c,u,l,e.C_NUMBER_MODE]},m]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},c,u]},l,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
425
425
  `},f]}}const Oq=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_-]*/}}),Iq=["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"],Tq=["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"],Mq=[...Iq,...Tq],Pq=["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(),kq=["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(),jq=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Aq=["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 Lq(e){const t=e.regex,n=Oq(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},o="and or not only",i=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",c=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+kq.join("|")+")"},{begin:":(:)?("+jq.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Aq.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:o,attribute:Pq.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Mq.join("|")+")\\b"}]}}const Bq=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_-]*/}}),zq=["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"],Dq=["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"],Fq=[...zq,...Dq],Hq=["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(),Vq=["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(),Wq=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Uq=["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 qq(e){const t=Bq(e),n=Wq,r=Vq,o="@[a-z-]+",i="and or not only",c={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,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Fq.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Uq.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:[t.BLOCK_COMMENT,c,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:o,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:Hq.join(" ")},contains:[{begin:o,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},c,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function Gq(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,o={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},l=e.inherit(i,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),f={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[o]},{begin:/'/,end:/'/,contains:[o]},{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:[i,u,c,l,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,l,u,c]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},o,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[f],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[f],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:f}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Kq(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],o={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,o,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function Xq(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},o={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},l={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,o]},c=e.inherit(l,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={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"},v={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},y={begin:/\{/,end:/\}/,contains:[v],illegal:"\\n",relevance:0},x={begin:"\\[",end:"\\]",contains:[v],illegal:"\\n",relevance:0},S=[r,{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+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},y,x,i,l],E=[...S];return E.pop(),E.push(c),v.contains=E,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}function Yq(e){const t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},o={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},i={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},l={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},c=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,c,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},f={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},m={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},g=e.inherit(f,{contains:[]}),h=e.inherit(m,{contains:[]});f.contains.push(h),m.contains.push(g);let v=[n,u];return[f,m,g,h].forEach(E=>{E.contains=E.contains.concat(v)}),v=v.concat(f,m),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:v},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:v}]}]},n,i,f,m,{className:"quote",begin:"^>\\s+",contains:v,end:"$"},o,r,u,l,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Qq(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const o={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),l={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,o]};o.contains.push(c);const u={match:/\\"/},f={className:"string",begin:/'/,end:/'/},m={match:/\\'/},g={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],v=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),y={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},x=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],E={match:/(\/[a-z._-]+)+/},w=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],_=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],R=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],N=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:x,literal:S,built_in:[...w,..._,"set","shopt",...R,...N]},contains:[v,e.SHEBANG(),y,g,i,l,E,c,u,f,m,n]}}function Zq(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},o={begin:/"/,end:/"/,contains:[{match:/""/}]},i=["true","false","unknown"],l=["double precision","large object","with timezone","without timezone"],c=["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"],u=["add","asc","collation","desc","final","first","last","view"],f=["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"],g=["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"],h=["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"],v=m,y=[...f,...u].filter(N=>!m.includes(N)),x={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},E={match:t.concat(/\b/,t.either(...v),/\s*\(/),relevance:0,keywords:{built_in:v}};function w(N){return t.concat(/\b/,t.either(...N.map(O=>O.replace(/\s+/,"\\s+"))),/\b/)}const _={scope:"keyword",match:w(h),relevance:0};function R(N,{exceptions:O,when:I}={}){const P=I;return O=O||[],N.map(M=>M.match(/\|\d+$/)||O.includes(M)?M:P(M)?`${M}|0`:M)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:R(y,{when:N=>N.length<3}),literal:i,type:c,built_in:g},contains:[{scope:"type",match:w(l)},_,E,x,r,o,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,S]}}const Jq="_fileContentView_1ti8s_1",eG="_header_1ti8s_8",tG="_headerLeft_1ti8s_18",nG="_backBtn_1ti8s_26",rG="_filePath_1ti8s_47",oG="_fileSize_1ti8s_55",aG="_contentContainer_1ti8s_61",iG="_codeBlock_1ti8s_68",sG="_lineNumberCol_1ti8s_76",lG="_lineNumberRow_1ti8s_84",cG="_codeCol_1ti8s_94",uG="_codeContent_1ti8s_100",dG="_lineContentRow_1ti8s_121",fG="_loading_1ti8s_126",mG="_error_1ti8s_135",Er={fileContentView:Jq,header:eG,headerLeft:tG,backBtn:nG,filePath:rG,fileSize:oG,contentContainer:aG,codeBlock:iG,lineNumberCol:sG,lineNumberRow:lG,codeCol:cG,codeContent:uG,lineContentRow:dG,loading:fG,error:mG};mr.registerLanguage("javascript",lq);mr.registerLanguage("typescript",uq);mr.registerLanguage("python",dq);mr.registerLanguage("java",fq);mr.registerLanguage("cpp",mq);mr.registerLanguage("csharp",pq);mr.registerLanguage("go",gq);mr.registerLanguage("rust",hq);mr.registerLanguage("php",vq);mr.registerLanguage("ruby",bq);mr.registerLanguage("swift",$q);mr.registerLanguage("kotlin",Rq);mr.registerLanguage("css",Lq);mr.registerLanguage("scss",qq);mr.registerLanguage("xml",Gq);mr.registerLanguage("json",Kq);mr.registerLanguage("yaml",Xq);mr.registerLanguage("markdown",Yq);mr.registerLanguage("bash",Qq);mr.registerLanguage("sql",Zq);const pG={js:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",py:"python",java:"java",c:"cpp",cpp:"cpp",cc:"cpp",cxx:"cpp",h:"cpp",hpp:"cpp",cs:"csharp",go:"go",rs:"rust",php:"php",rb:"ruby",swift:"swift",kt:"kotlin",css:"css",scss:"scss",sass:"scss",less:"css",html:"xml",htm:"xml",xml:"xml",svg:"xml",json:"json",yml:"yaml",yaml:"yaml",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",sql:"sql"};function gG(e){var n;const t=(n=e.split(".").pop())==null?void 0:n.toLowerCase();return pG[t]||null}function hG(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function vG({filePath:e,onClose:t}){const[n,r]=d.useState(null),[o,i]=d.useState(null),[l,c]=d.useState(0),u=d.useRef(!0),f=d.useRef(null),m=d.useRef(null),g=d.useRef(null),h=d.useRef(null);return d.useEffect(()=>(u.current=!0,r(null),i(null),fetch(`/api/file-content?path=${encodeURIComponent(e)}`).then(v=>v.ok?v.json():v.json().then(y=>{throw new Error(y.error||"Failed to load")}).catch(()=>{throw new Error(`HTTP ${v.status}`)})).then(v=>{u.current&&(r(v.content),c(v.size))}).catch(v=>{u.current&&i(`文件加载错误: ${v.message}`)}),()=>{u.current=!1}),[e]),d.useEffect(()=>{if(n&&f.current){const v=gG(e),y=n.split(`
426
426
  `);if(v)try{const S=mr.highlight(n,{language:v}).value.split(`
427
- `);m.current.innerHTML=S.map((E,w)=>`<div class="${Er.lineNumberRow}">${w+1}</div>`).join(""),f.current.innerHTML=S.map(E=>`<div class="${Er.lineContentRow}">${E||" "}</div>`).join("")}catch{m.current.innerHTML=y.map((x,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),f.current.innerHTML=y.map(x=>`<div class="${Er.lineContentRow}">${x||" "}</div>`).join("")}else m.current.innerHTML=y.map((x,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),f.current.innerHTML=y.map(x=>`<div class="${Er.lineContentRow}">${x||" "}</div>`).join("")}},[n,e]),d.useEffect(()=>{const v=g.current,y=h.current;if(!v||!y)return;const x=()=>{y.scrollTop=v.scrollTop};return v.addEventListener("scroll",x),()=>v.removeEventListener("scroll",x)}),C.jsxs("div",{className:Er.fileContentView,children:[C.jsxs("div",{className:Er.header,children:[C.jsxs("div",{className:Er.headerLeft,children:[C.jsx("button",{className:Er.backBtn,onClick:t,title:"返回对话",children:C.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:C.jsx("polyline",{points:"15 18 9 12 15 6"})})}),C.jsx("span",{className:Er.filePath,children:e})]}),l>0&&C.jsx("span",{className:Er.fileSize,children:hG(l)})]}),C.jsxs("div",{className:Er.contentContainer,children:[o&&C.jsx("div",{className:Er.error,children:o}),!n&&!o&&C.jsx("div",{className:Er.loading,children:"加载中..."}),n&&C.jsxs("div",{className:Er.codeBlock,children:[C.jsx("div",{className:Er.lineNumberCol,ref:h,children:C.jsx("div",{ref:m})}),C.jsx("div",{className:Er.codeCol,ref:g,children:C.jsx("pre",{className:Er.codeContent,children:C.jsx("code",{ref:f})})})]})]})]})}const bG="_centerEmpty_8tuwm_1",yG="_container_8tuwm_8",xG="_sessionDividerText_8tuwm_18",SG="_lastResponseLabel_8tuwm_23",CG="_splitContainer_8tuwm_27",wG="_chatSection_8tuwm_34",EG="_messageListWrap_8tuwm_192",_G="_stickyBottomBtn_8tuwm_200",$G="_navSidebar_8tuwm_369",NG="_navBtn_8tuwm_381",RG="_navBtnActive_8tuwm_401",Gr={centerEmpty:bG,container:yG,sessionDividerText:xG,lastResponseLabel:SG,splitContainer:CG,chatSection:wG,messageListWrap:EG,stickyBottomBtn:_G,navSidebar:$G,navBtn:NG,navBtnActive:RG},{Text:LS}=Ho,OG=20;function IG(){return 100+Math.random()*50}function BS(e){var o;const t={};for(const i of e)if(i.role==="assistant"&&Array.isArray(i.content))for(const l of i.content)l.type==="tool_use"&&(t[l.id]=l);const n={},r={};for(const i of e)if(i.role==="user"&&Array.isArray(i.content)){for(const l of i.content)if(l.type==="tool_result"){const c=t[l.tool_use_id];let u="工具返回",f=null,m=null;if(c)if(f=c.name,m=c.input,c.name==="Task"&&c.input){const h=c.input.subagent_type||"",v=c.input.description||"";u=`SubAgent: ${h}${v?" — "+v:""}`}else u=`${c.name} 返回`;const g=u_(l);n[l.tool_use_id]={label:u,toolName:f,toolInput:m,resultText:g},c&&c.name==="Read"&&((o=c.input)!=null&&o.file_path)&&(r[c.input.file_path]=g)}}return{toolUseMap:t,toolResultMap:n,readContentMap:r}}class TG extends Q.Component{constructor(n){super(n);Lt(this,"handleStickToBottom",()=>{this.setState({stickyBottom:!0},()=>{const n=this.containerRef.current;n&&(n.scrollTop=n.scrollHeight)})});Lt(this,"handleToggleExpandPath",n=>{this.setState(r=>{const o=new Set(r.fileExplorerExpandedPaths);return o.has(n)?o.delete(n):o.add(n),{fileExplorerExpandedPaths:o}})});this.containerRef=Q.createRef(),this.splitContainerRef=Q.createRef(),this.innerSplitRef=Q.createRef(),this.state={visibleCount:0,loading:!1,allItems:[],highlightTs:null,highlightFading:!1,stickyBottom:!0,fileExplorerOpen:!0,currentFile:null,fileExplorerExpandedPaths:new Set},this._queueTimer=null,this._prevItemsLen=0,this._scrollTargetIdx=null,this._scrollTargetRef=Q.createRef(),this._scrollFadeTimer=null}componentDidMount(){this.startRender(),this._bindStickyScroll()}componentDidUpdate(n){var i,l,c,u;const r=n.mainAgentSessions!==this.props.mainAgentSessions||((i=n.mainAgentSessions)==null?void 0:i.length)!==((l=this.props.mainAgentSessions)==null?void 0:l.length),o=n.requests!==this.props.requests||((c=n.requests)==null?void 0:c.length)!==((u=this.props.requests)==null?void 0:u.length);if(r||o)this.startRender();else if(n.collapseToolResults!==this.props.collapseToolResults||n.expandThinking!==this.props.expandThinking){const f=this.buildAllItems();this.setState({allItems:f,visibleCount:f.length})}if(!n.scrollToTimestamp&&this.props.scrollToTimestamp){const f=this.buildAllItems();this.setState({allItems:f,visibleCount:f.length},()=>this.scrollToBottom())}this._rebindStickyEl()}componentWillUnmount(){this._queueTimer&&clearTimeout(this._queueTimer),this._fadeClearTimer&&clearTimeout(this._fadeClearTimer),this._unbindScrollFade(),this._unbindStickyScroll()}startRender(){this._queueTimer&&clearTimeout(this._queueTimer);const n=this.buildAllItems(),r=this._prevItemsLen;this._prevItemsLen=n.length;const o=n.length-r;if(o<=0||r>0&&o<=3){this.setState({allItems:n,visibleCount:n.length,loading:!1},()=>this.scrollToBottom());return}if(n.length>OG)this.setState({allItems:n,visibleCount:0,loading:!0}),this._queueTimer=setTimeout(()=>{this.setState({visibleCount:n.length,loading:!1},()=>this.scrollToBottom())},300);else{const i=Math.max(0,r);this.setState({allItems:n,visibleCount:i,loading:!1}),this.queueNext(i,n.length)}}queueNext(n,r){n>=r||(this._queueTimer=setTimeout(()=>{this.setState({visibleCount:n+1},()=>{this.scrollToBottom(),this.queueNext(n+1,r)})},IG()))}_isNearBottom(){const n=this.containerRef.current;return n?n.scrollHeight-n.scrollTop-n.clientHeight<=30:!0}scrollToBottom(){if(this._scrollTargetRef.current){const n=this._scrollTargetRef.current,r=this.containerRef.current;r&&n.offsetHeight>r.clientHeight?n.scrollIntoView({block:"start",behavior:"instant"}):n.scrollIntoView({block:"center",behavior:"instant"});const o=this.props.scrollToTimestamp;this._scrollTargetRef=Q.createRef(),o&&(this.setState({highlightTs:o,highlightFading:!1}),this._bindScrollFade()),this.props.onScrollTsDone&&this.props.onScrollTsDone();return}if(this.state.stickyBottom){const n=this.containerRef.current;n&&(n.scrollTop=n.scrollHeight)}}_bindStickyScroll(){this._stickyScrollRafId=null,this._onStickyScroll=()=>{this._stickyScrollLock||this._stickyScrollRafId||(this._stickyScrollRafId=requestAnimationFrame(()=>{this._stickyScrollRafId=null;const n=this.containerRef.current;if(!n)return;const r=n.scrollHeight-n.scrollTop-n.clientHeight;this.state.stickyBottom&&r>30?this.setState({stickyBottom:!1}):!this.state.stickyBottom&&r<=5&&this.setState({stickyBottom:!0})}))},this._rebindStickyEl()}_rebindStickyEl(){const n=this.containerRef.current;n!==this._stickyBoundEl&&(this._stickyBoundEl&&this._stickyBoundEl.removeEventListener("scroll",this._onStickyScroll),this._stickyBoundEl=n,n&&n.addEventListener("scroll",this._onStickyScroll,{passive:!0}))}_unbindStickyScroll(){this._stickyBoundEl&&this._onStickyScroll&&(this._stickyBoundEl.removeEventListener("scroll",this._onStickyScroll),this._stickyBoundEl=null),this._stickyScrollRafId&&(cancelAnimationFrame(this._stickyScrollRafId),this._stickyScrollRafId=null)}_bindScrollFade(){this._unbindScrollFade();const n=this.containerRef.current;n&&(this._scrollFadeIgnoreFirst=!0,this._onScrollFade=()=>{if(this._scrollFadeIgnoreFirst){this._scrollFadeIgnoreFirst=!1;return}this.setState({highlightFading:!0}),this._fadeClearTimer=setTimeout(()=>{this.setState({highlightTs:null,highlightFading:!1})},2e3),this._unbindScrollFade()},n.addEventListener("scroll",this._onScrollFade,{passive:!0}))}_unbindScrollFade(){this._onScrollFade&&this.containerRef.current&&(this.containerRef.current.removeEventListener("scroll",this._onScrollFade),this._onScrollFade=null)}renderSessionMessages(n,r,o,i){var y;const{userProfile:l,collapseToolResults:c,expandThinking:u,onViewRequest:f}=this.props,{toolUseMap:m,toolResultMap:g,readContentMap:h}=BS(n),v=[];for(let x=0;x<n.length;x++){const S=n[x],E=S.content,w=S._timestamp||null,_=w?i[w]:void 0,R=_!=null&&f?{requestIndex:_,onViewRequest:f}:{};if(S.role==="user"){if(Array.isArray(E)){const N=E.find(I=>I.type==="text"&&/^\[SUGGESTION MODE:/i.test((I.text||"").trim())),O=E.filter(I=>I.type==="tool_result");if(N&&O.length>0){let I=null,P={};for(const M of O){const k=m[M.tool_use_id];if(k&&k.name==="AskUserQuestion"&&((y=k.input)!=null&&y.questions)){I=k.input.questions;const A=u_(M);try{P=JSON.parse(A).answers||{}}catch{}break}}I&&v.push(C.jsx(Ao,{role:"user-selection",questions:I,answers:P,timestamp:w,userProfile:l,...R},`${r}-selection-${x}`))}else{const{commands:I,textBlocks:P,skillBlocks:M}=l_(E);for(let k=0;k<I.length;k++)v.push(C.jsx(Ao,{role:"user",text:I[k],timestamp:w,userProfile:l,modelInfo:o,...R},`${r}-cmd-${x}-${k}`));for(const k of M){const A=k.text.match(/^#\s+(.+)$/m),j=A?A[1]:"Skill";v.push(C.jsx(Ao,{role:"skill-loaded",text:k.text,skillName:j,timestamp:w,...R},`${r}-skill-${x}`))}for(let k=0;k<P.length;k++){const A=/^Implement the following plan:/i.test((P[k].text||"").trim());v.push(C.jsx(Ao,{role:A?"plan-prompt":"user",text:P[k].text,timestamp:w,userProfile:l,modelInfo:o,...R},`${r}-user-${x}-${k}`))}}}else if(typeof E=="string"&&!Dv(E)){const N=/^Implement the following plan:/i.test(E.trim());v.push(C.jsx(Ao,{role:N?"plan-prompt":"user",text:E,timestamp:w,userProfile:l,modelInfo:o,...R},`${r}-user-${x}`))}}else S.role==="assistant"&&(Array.isArray(E)?v.push(C.jsx(Ao,{role:"assistant",content:E,toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${x}`)):typeof E=="string"&&v.push(C.jsx(Ao,{role:"assistant",content:[{type:"text",text:E}],toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${x}`)))}return v}buildItemsFromRequests(n,r,o,i,l){const c=[];wS(null);const u=l?(l.id||l.name||"").split("@")[0].toLowerCase():null;for(let f=0;f<n.length;f++){const m=n[f];if(!m.body||!m.body.messages)continue;if(u){const h=(m.teamMember||"").split("@")[0].toLowerCase();if(h&&h!==u)continue}const g=m.body.messages||[];for(const h of g)h.role==="user"?c.push(C.jsx(Ao,{role:"user",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:f,onViewRequest:i},`req-${f}-user`)):h.role==="assistant"&&c.push(C.jsx(Ao,{role:"assistant",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:f,onViewRequest:i},`req-${f}-assistant`))}return c}buildAllItems(){var x,S,E,w;const{mainAgentSessions:n,requests:r,collapseToolResults:o,expandThinking:i,onViewRequest:l}=this.props;if((!n||n.length===0)&&r&&r.length>0)return this.buildItemsFromRequests(r,o,i,l);const c={};if(r)for(let _=0;_<r.length;_++)ka(r[_])&&r[_].timestamp&&(c[r[_].timestamp]=_);let u=null;if(r){for(let _=r.length-1;_>=0;_--)if(ka(r[_])&&((x=r[_].body)!=null&&x.model)){u=r[_].body.model;break}}const f=wS(u),m=[],g={},h=[];if(r)for(let _=0;_<r.length;_++){const R=r[_];if(!R.timestamp)continue;const N=yc(R,r[_+1]);if(N.type==="SubAgent"){const O=(E=(S=R.response)==null?void 0:S.body)==null?void 0:E.content;if(Array.isArray(O)&&O.length>0){const I=BS(((w=R.body)==null?void 0:w.messages)||[]).toolResultMap;h.push({timestamp:R.timestamp,content:O,toolResultMap:I,label:qd(N.type,N.subType),requestIndex:_})}}}let v=0;n.forEach((_,R)=>{var O,I,P,M;R>0&&m.push(C.jsx(Qx,{style:{borderColor:"#333",margin:"16px 0"},children:C.jsx(LS,{className:Gr.sessionDividerText,children:"Session"})},`session-div-${R}`));const N=this.renderSessionMessages(_.messages,`s${R}`,f,c);for(const k of N){const A=k.props.timestamp;for(;v<h.length&&A&&h[v].timestamp<=A;){const j=h[v];j.timestamp&&(g[j.timestamp]=m.length),m.push(C.jsx(Ao,{role:"sub-agent-chat",content:j.content,toolResultMap:j.toolResultMap,label:j.label,timestamp:j.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:j.requestIndex,onViewRequest:l},`sub-chat-${v}`)),v++}A&&(g[A]=m.length),m.push(k)}for(;v<h.length;){const k=h[v],A=R<n.length-1&&((I=(O=n[R+1].messages)==null?void 0:O[0])==null?void 0:I._timestamp);if(A&&k.timestamp>A)break;k.timestamp&&(g[k.timestamp]=m.length),m.push(C.jsx(Ao,{role:"sub-agent-chat",content:k.content,toolResultMap:k.toolResultMap,label:k.label,timestamp:k.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:k.requestIndex,onViewRequest:l},`sub-chat-${v}`)),v++}if(R===n.length-1&&((M=(P=_.response)==null?void 0:P.body)!=null&&M.content)){const k=_.response.body.content;Array.isArray(k)&&(m.push(C.jsx(Q.Fragment,{children:C.jsx(Qx,{style:{borderColor:"#2a2a2a",margin:"8px 0"},children:C.jsx(LS,{type:"secondary",className:Gr.lastResponseLabel,children:"Last Response"})})},"resp-divider")),_.entryTimestamp&&(g[_.entryTimestamp]=m.length),m.push(C.jsx(Ao,{role:"assistant",content:k,timestamp:_.entryTimestamp,modelInfo:f,collapseToolResults:o,expandThinking:i,toolResultMap:{}},"resp-asst")))}});const{scrollToTimestamp:y}=this.props;return this._scrollTargetIdx=y&&g[y]!=null?g[y]:null,this._tsItemMap=g,m}render(){const{mainAgentSessions:n,cliMode:r}=this.props,{allItems:o,visibleCount:i,loading:l}=this.state,c=!n||n.length===0;if(c&&!r)return C.jsx("div",{className:Gr.centerEmpty,children:C.jsx(lo,{description:"暂无 MainAgent 对话数据"})});if(l&&!r)return C.jsx("div",{className:Gr.centerEmpty,children:C.jsx(Hi,{size:"large"})});const u=this._scrollTargetIdx,{highlightTs:f,highlightFading:m}=this.state,g=f&&this._tsItemMap&&this._tsItemMap[f]!=null?this._tsItemMap[f]:null,h=o.slice(0,i),{stickyBottom:v}=this.state,y=v?null:C.jsxs("button",{className:Gr.stickyBottomBtn,onClick:this.handleStickToBottom,children:[C.jsx("span",{children:"置底"}),C.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:C.jsx("polyline",{points:"6 9 12 15 18 9"})})]}),x=c||l?C.jsxs("div",{className:Gr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Gr.container,children:!r||l?C.jsx("div",{className:Gr.centerEmpty,children:l?C.jsx(Hi,{size:"large"}):C.jsx(lo,{description:"暂无 MainAgent 对话数据"})}):null}),y]}):C.jsxs("div",{className:Gr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Gr.container,children:h.map((S,E)=>{const w=E===u,_=E===g;let R=S;return _&&(R=Q.cloneElement(R,{highlight:m?"fading":"active"})),w?C.jsx("div",{ref:this._scrollTargetRef,children:R},S.key+"-anchor"):R})}),y]});return r?C.jsxs("div",{ref:this.splitContainerRef,className:Gr.splitContainer,children:[C.jsx("div",{className:Gr.navSidebar,children:C.jsx("button",{className:this.state.fileExplorerOpen?Gr.navBtnActive:Gr.navBtn,onClick:()=>this.setState({fileExplorerOpen:!0,currentFile:null}),title:"文件浏览",children:C.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:C.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 2h9a2 2 0 0 1 2 2z"})})})}),C.jsxs("div",{style:{flex:1,display:"flex",minWidth:0,position:"relative"},ref:this.innerSplitRef,children:[this.state.fileExplorerOpen&&C.jsx(tq,{onClose:()=>this.setState({fileExplorerOpen:!1}),onFileClick:S=>this.setState({currentFile:S}),expandedPaths:this.state.fileExplorerExpandedPaths,onToggleExpand:this.handleToggleExpandPath,currentFile:this.state.currentFile}),C.jsx("div",{className:Gr.chatSection,style:{flex:1,minWidth:0,display:"flex"},children:C.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:this.state.currentFile?C.jsx(vG,{filePath:this.state.currentFile,onClose:()=>this.setState({currentFile:null})}):x})})]})]}):x}}function MG(e,t){var m;const n=t.body.messages,r=t.response,o=((m=t.body.metadata)==null?void 0:m.user_id)||null,i=t.timestamp||null,l=t.teamMember||null;if(e.length===0)return[{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:l}];const c=e[e.length-1],u=c.messages?c.messages.length:0,f=u>0&&n.length<u*.5&&u-n.length>4;if(o&&o===c.userId&&!f){const g=[...e];return g[g.length-1]={...c,messages:n,response:r,entryTimestamp:i,teamMember:l||c.teamMember},g}else return[...e,{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:l}]}function PG(e,t=!1){let n=[];for(const r of e)(t?r.body&&Array.isArray(r.body.messages):ka(r)&&r.body&&Array.isArray(r.body.messages))&&(n=MG(n,r));return n}function kG({requests:e,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,chatScrollToTs:i,onScrollTsDone:l,cliMode:c,onBackToTeam:u}){const f=d.useMemo(()=>PG(e,!0),[e]);return console.log("[ChatViewPage] requests.length:",e.length,"sessions.length:",f.length),C.jsxs("div",{style:{display:"flex",height:"100%",flexDirection:"column"},children:[C.jsxs("div",{style:{padding:"8px 16px",borderBottom:"1px solid #303030",display:"flex",alignItems:"center"},children:[C.jsx(br,{type:"text",size:"small",onClick:u,children:"← 监控"}),C.jsx("span",{style:{marginLeft:12,fontWeight:500},children:"对话视图"})]}),C.jsx(TG,{requests:e,mainAgentSessions:f,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,scrollToTimestamp:i,onScrollTsDone:l,cliMode:c})]})}const jG="_cyberCharacter_n8txo_8",AG="_hovered_n8txo_15",LG="_selected_n8txo_19",BG="_unreadBadge_n8txo_26",zG="_unreadCount_n8txo_52",DG="_pulse_n8txo_59",FG="_hologramContainer_n8txo_86",HG="_outerRing_n8txo_96",VG="_innerRing_n8txo_114",WG="_cyberCore_n8txo_142",UG="_cyberIcon_n8txo_178",qG="_dataFlow_n8txo_197",GG="_glowEffect_n8txo_220",KG="_nameTag_n8txo_248",XG="_contextBadge_n8txo_272",YG="_statusIndicator_n8txo_293",QG="_statusIcon_n8txo_314",ZG="_statusText_n8txo_320",JG="_statusPulse_n8txo_377",eK="_contextBar_n8txo_403",tK="_contextBarBg_n8txo_419",nK="_contextBarFill_n8txo_428",rK="_shimmer_n8txo_1",oK="_contextText_n8txo_466",aK="_dataHint_n8txo_478",iK="_dataIcon_n8txo_506",sK="_dataCount_n8txo_512",er={cyberCharacter:jG,hovered:AG,selected:LG,unreadBadge:BG,"badge-glow":"_badge-glow_n8txo_1",unreadCount:zG,pulse:DG,"cyber-pulse":"_cyber-pulse_n8txo_1",hologramContainer:FG,outerRing:HG,"cyber-rotate":"_cyber-rotate_n8txo_1",innerRing:VG,"cyber-rotate-reverse":"_cyber-rotate-reverse_n8txo_1",cyberCore:WG,"cyber-node":"_cyber-node_n8txo_173",cyberIcon:UG,"icon-pulse":"_icon-pulse_n8txo_1",dataFlow:qG,"data-flow":"_data-flow_n8txo_1",glowEffect:GG,"glow-pulse":"_glow-pulse_n8txo_1",nameTag:KG,contextBadge:XG,statusIndicator:YG,statusIcon:QG,statusText:ZG,"status-active":"_status-active_n8txo_325","status-working":"_status-working_n8txo_336","status-idle":"_status-idle_n8txo_347","status-error":"_status-error_n8txo_356","error-pulse":"_error-pulse_n8txo_1",statusPulse:JG,"status-pulse":"_status-pulse_n8txo_1",contextBar:eK,contextBarBg:tK,contextBarFill:nK,shimmer:rK,"context-danger":"_context-danger_n8txo_451","context-warning":"_context-warning_n8txo_456","context-safe":"_context-safe_n8txo_461",contextText:oK,dataHint:aK,"hint-float":"_hint-float_n8txo_1",dataIcon:iK,dataCount:sK,"selected-glow":"_selected-glow_n8txo_1"},zS={"team-lead":"⬡",subagent:"◈",worker:"⬢",explorer:"◉",analyst:"⌬",tester:"⌘",reviewer:"⌖",mainagent:"⬡",agent:"◈"},DS={active:"▶",working:"◍",idle:"◌",error:"⚠"};class W_ extends Q.Component{constructor(){super(...arguments);Lt(this,"state",{isHovered:!1});Lt(this,"handleClick",()=>{const{character:n,onSelect:r}=this.props;r(n)});Lt(this,"handleMouseEnter",()=>{this.setState({isHovered:!0})});Lt(this,"handleMouseLeave",()=>{this.setState({isHovered:!1})})}getMessageCount(){var i,l;const{character:n}=this.props,r=((i=n.messages)==null?void 0:i.filter(c=>!c.read).length)||0,o=((l=n.messages)==null?void 0:l.length)||0;return{unread:r,total:o}}getContextPercent(){var r;const{character:n}=this.props;return((r=n.contextInfo)==null?void 0:r.contextPercent)||null}getContextBadgeStyle(){const n=this.getContextPercent();return n===null?"":n>60?"danger":n>40?"warning":"safe"}getCharacterTypeClass(){const{character:n}=this.props;return"cyber-node"}getCyberColor(){const{character:n}=this.props;return{"team-lead":"#fbbf24",mainagent:"#fbbf24",subagent:"#00fff7",agent:"#00fff7",worker:"#00ff88",explorer:"#bf00ff",analyst:"#ff00ff",tester:"#00a8ff",reviewer:"#ff6600"}[n.type]||"#00fff7"}render(){const{character:n,isSelected:r}=this.props,{isHovered:o}=this.state,{unread:i,total:l}=this.getMessageCount(),c=this.getCharacterTypeClass(),u=this.getCyberColor(),f=this.getContextPercent(),m=zS[n.type]||zS.subagent,g=DS[n.status]||DS.idle;return C.jsxs("div",{className:`${er.cyberCharacter} ${r?er.selected:""} ${o?er.hovered:""}`,onClick:this.handleClick,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,style:{"--cyber-color":u},children:[i>0&&C.jsxs("div",{className:er.unreadBadge,children:[C.jsx("span",{className:er.unreadCount,children:i}),C.jsx("div",{className:er.pulse})]}),C.jsxs("div",{className:er.hologramContainer,children:[C.jsx("div",{className:er.outerRing}),C.jsx("div",{className:er.innerRing}),C.jsx("div",{className:`${er.cyberCore} ${er[c]}`,children:C.jsx("span",{className:er.cyberIcon,children:m})}),C.jsx("div",{className:er.dataFlow}),C.jsx("div",{className:er.glowEffect})]}),C.jsx("div",{className:er.nameTag,children:n.name}),f!==null&&C.jsxs("span",{className:er.contextBadge,style:{background:f>60?"rgba(239, 68, 68, 0.3)":f>40?"rgba(251, 191, 36, 0.3)":"rgba(0, 255, 247, 0.2)",color:f>60?"#ef4444":f>40?"#fbbf24":"#00fff7",border:`1px solid ${f>60?"#ef4444":f>40?"#fbbf24":"#00fff7"}44`,boxShadow:f>60?"0 0 8px rgba(239, 68, 68, 0.3)":f>40?"0 0 8px rgba(251, 191, 36, 0.3)":"0 0 8px rgba(0, 255, 247, 0.2)"},children:[f,"%"]}),C.jsxs("div",{className:`${er.statusIndicator} ${er[`status-${n.status}`]}`,children:[C.jsx("span",{className:er.statusIcon,children:g}),C.jsx("span",{className:er.statusText,children:n.status==="active"?"ACTIVE":n.status==="working"?"PROCESSING":"STANDBY"}),n.status==="active"&&C.jsx("div",{className:er.statusPulse})]}),o&&l>0&&C.jsxs("div",{className:er.dataHint,children:[C.jsx("span",{className:er.dataIcon,children:"⌬"}),C.jsx("span",{className:er.dataCount,children:l})]})]})}}const lK="_messageEnvelope_12k2o_1",cK="_particles_12k2o_9",uK="_particle_12k2o_9",Cg={messageEnvelope:lK,particles:cK,particle:uK};class dK extends Q.Component{constructor(n){super(n);Lt(this,"animate",()=>{const r=performance.now()-this.startTime,o=this.props.duration||1500,i=Math.min(r/o,1),l=i<.5?2*i*i:1-Math.pow(-2*i+2,2)/2;this.setState({progress:l}),i<1?requestAnimationFrame(this.animate):setTimeout(()=>{this.setState({opacity:0}),setTimeout(()=>this.props.onComplete(),300)},200)});this.state={progress:0,opacity:1}}componentDidMount(){this.props.duration,this.startTime=performance.now(),this.animate()}render(){const{from:n,to:r}=this.props,{progress:o,opacity:i}=this.state,l=n.x+(r.x-n.x)*o,c=n.y+(r.y-n.y)*o,u=Math.atan2(r.y-n.y,r.x-n.x)*180/Math.PI;return C.jsxs("div",{className:Cg.messageEnvelope,style:{left:l,top:c,opacity:i,transform:`rotate(${u}deg)`},children:[C.jsxs("svg",{viewBox:"0 0 40 30",width:"32",height:"24",children:[C.jsx("rect",{x:"2",y:"5",width:"36",height:"20",rx:"2",fill:"#fbbf24",stroke:"#f59e0b",strokeWidth:"1.5"}),C.jsx("path",{d:"M 2 5 L 20 17 L 38 5",fill:"none",stroke:"#f59e0b",strokeWidth:"1.5"}),C.jsx("path",{d:"M 2 5 L 20 17 L 2 25",fill:"#fcd34d",opacity:"0.5"}),C.jsx("path",{d:"M 38 5 L 20 17 L 38 25",fill:"#eab308",opacity:"0.3"}),C.jsx("circle",{cx:"20",cy:"15",r:"3",fill:"#ef4444",opacity:"0.8"})]}),o<.8&&C.jsx("div",{className:Cg.particles,children:Array.from({length:5}).map((f,m)=>{const g=m*.1,h=Math.max(0,o-g)/(1-g);return C.jsx("div",{className:Cg.particle,style:{animationDelay:`${g}s`,opacity:1-h}},m)})})]})}}const fK="_panel_1c46t_5",mK="_header_1c46t_52",pK="_headerLeft_1c46t_72",gK="_avatar_1c46t_100",hK="_title_1c46t_129",vK="_name_1c46t_133",bK="_meta_1c46t_144",yK="_messageCount_1c46t_151",xK="_closeButton_1c46t_159",SK="_actionButtons_1c46t_184",CK="_actionButton_1c46t_184",wK="_stats_1c46t_205",EK="_statItem_1c46t_225",_K="_statValue_1c46t_229",$K="_statLabel_1c46t_238",NK="_messageList_1c46t_250",RK="_messageListHeader_1c46t_257",OK="_messageListCount_1c46t_272",IK="_emptyState_1c46t_284",TK="_list_1c46t_303",MK="_messageItem_1c46t_327",PK="_messageHeader_1c46t_357",kK="_messageSender_1c46t_363",jK="_messageTime_1c46t_374",AK="_messageStatus_1c46t_380",LK="_messageSummary_1c46t_386",BK="_messageContent_1c46t_394",zK="_messageBody_1c46t_398",yn={panel:fK,header:mK,headerLeft:pK,avatar:gK,title:hK,name:vK,meta:bK,messageCount:yK,closeButton:xK,actionButtons:SK,actionButton:CK,stats:wK,statItem:EK,statValue:_K,statLabel:$K,messageList:NK,messageListHeader:RK,messageListCount:OK,emptyState:IK,list:TK,messageItem:MK,messageHeader:PK,messageSender:kK,messageTime:jK,messageStatus:AK,messageSummary:LK,messageContent:BK,messageBody:zK},{Text:gY,Paragraph:DK}=Ho;function FK(e){try{const t=JSON.parse(e);return t.type==="task_assignment"||t.type==="idle_notification"?{isSystem:!1,text:e}:t.type==="shutdown_request"?{isSystem:!0,text:`[请求关闭] ${t.content||""}`,type:"shutdown"}:t.type==="shutdown_response"?{isSystem:!0,text:`[关闭响应] ${t.approve?"已批准":"已拒绝"}`,type:"shutdown"}:t.type==="plan_approval_request"?{isSystem:!0,text:"[计划审批请求]",type:"plan"}:t.type?{isSystem:!0,text:`[${t.type}]`,type:t.type}:{isSystem:!1,text:e}}catch{return{isSystem:!1,text:e}}}class U_ extends Q.Component{render(){const{character:t,visible:n,onClose:r,onViewNetworkRequests:o,onViewConversation:i,sessionMode:l,sessionId:c}=this.props;if(!n||!t)return null;const u=t.messages||[],f=u.filter(g=>!FK(g.text).isSystem),m=C.jsxs("div",{className:yn.panel,style:{position:"fixed",top:"64px",right:"0",left:"auto",bottom:"0",width:"420px",height:"calc(100vh - 64px)",zIndex:1e3},children:[C.jsxs("div",{className:yn.header,children:[C.jsxs("div",{className:yn.headerLeft,children:[C.jsx("div",{className:yn.avatar,style:{background:t.color},children:t.avatar||t.name.charAt(0)}),C.jsxs("div",{className:yn.title,children:[C.jsx("h2",{className:yn.name,children:t.name}),C.jsxs("div",{className:yn.meta,children:[C.jsx(So,{color:t.status==="active"?"green":"default",children:t.status==="active"?"工作中":"空闲"}),C.jsxs("span",{className:yn.messageCount,children:[f.length," 条消息"]})]})]})]}),C.jsx("button",{className:yn.closeButton,onClick:r,children:"✕"})]}),C.jsxs("div",{className:yn.actionButtons,children:[C.jsx(br,{type:"primary",icon:C.jsx(AB,{}),onClick:()=>{l&&c?window.location.hash=`/raw?session=${c}&agent=${encodeURIComponent(t.name)}`:o==null||o(t)},className:yn.actionButton,children:"查看请求"}),C.jsx(br,{icon:C.jsx(XE,{}),onClick:()=>{l&&c?window.location.hash=`/chat?session=${c}&agent=${encodeURIComponent(t.name)}`:i==null||i(t)},className:yn.actionButton,children:"查看对话"})]}),C.jsxs("div",{className:yn.stats,children:[C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:f.length}),C.jsx("div",{className:yn.statLabel,children:"消息"})]}),C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:new Set(f.map(g=>g.from)).size}),C.jsx("div",{className:yn.statLabel,children:"参与者"})]}),C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:u.filter(g=>!g.read).length}),C.jsx("div",{className:yn.statLabel,children:"未读"})]})]}),C.jsxs("div",{className:yn.messageList,children:[C.jsxs("div",{className:yn.messageListHeader,children:[C.jsx("span",{children:"消息记录"}),C.jsx("span",{className:yn.messageListCount,children:f.length})]}),f.length===0?C.jsxs("div",{className:yn.emptyState,children:[C.jsx(qB,{style:{fontSize:48,color:"#333"}}),C.jsx("p",{children:"暂无消息记录"})]}):C.jsx(gc,{className:yn.list,dataSource:[...f].reverse(),renderItem:(g,h)=>{const v=g.read!==!1,y=g.timestamp||new Date().toISOString(),x=g.color||"#888";return C.jsxs(gc.Item,{className:yn.messageItem,children:[C.jsxs("div",{className:yn.messageHeader,children:[C.jsxs("div",{className:yn.messageSender,children:[C.jsx(QB,{style:{marginRight:4,color:x,fontSize:11}}),C.jsx("span",{style:{color:x,fontWeight:500},children:g.from})]}),C.jsxs("div",{className:yn.messageStatus,children:[C.jsx("span",{className:yn.messageTime,children:new Date(y).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),!v&&C.jsx(jd,{status:"processing"})]})]}),g.summary&&C.jsx("div",{className:yn.messageSummary,children:g.summary}),C.jsx("div",{className:yn.messageContent,children:C.jsx(DK,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:yn.messageBody,style:{color:"#ccc",fontSize:13,margin:0},children:g.text})})]},h)}})]})]});return ja.createPortal(m,document.body)}}function Zv(e){const{onFullReload:t,onLogUpdate:n,onUpdateInfo:r,onTeamStats:o,onSessionsUpdate:i,team:l,session:c,projectSessions:u}=e,f=d.useRef(null),m=d.useRef(null),g=d.useRef(t),h=d.useRef(n),v=d.useRef(r),y=d.useRef(o),x=d.useRef(i);g.current=t,h.current=n,v.current=r,y.current=o,x.current=i;const S=d.useCallback(()=>{if(!l&&!c&&!u){console.log("[useSSE] No team, session or projectSessions parameter, skipping connection");return}f.current&&f.current.close();let E;if(l?E=`/events?team=${encodeURIComponent(l)}`:c?E=`/events?session=${encodeURIComponent(c)}`:u&&(E=`/events?projectSessions=${encodeURIComponent(u)}`),console.log("[useSSE] Connecting to:",E),f.current){const _=f.current;if(_.readyState===EventSource.OPEN||_.readyState===EventSource.CONNECTING){console.log("[useSSE] Already connected or connecting, skipping");return}_.close()}const w=new EventSource(E);f.current=w,w.onmessage=_=>{},w.addEventListener("update_completed",_=>{var R;try{const N=JSON.parse(_.data);(R=v.current)==null||R.call(v,{type:"completed",version:N.version})}catch{}}),w.addEventListener("update_major_available",_=>{var R;try{const N=JSON.parse(_.data);(R=v.current)==null||R.call(v,{type:"major",version:N.version})}catch{}}),w.addEventListener("full_reload",_=>{var R;try{const N=JSON.parse(_.data);(R=g.current)==null||R.call(g,N)}catch{}}),w.addEventListener("log_update",_=>{var R;try{const N=JSON.parse(_.data);(R=h.current)==null||R.call(h,N)}catch{}}),w.addEventListener("team_stats",_=>{var R;try{const N=JSON.parse(_.data);(R=y.current)==null||R.call(y,N)}catch{}}),w.addEventListener("sessions_update",_=>{var R;try{const N=JSON.parse(_.data);(R=x.current)==null||R.call(x,N)}catch{}}),w.onerror=()=>{console.log("[useSSE] Connection error, reconnecting in 3s..."),w.close(),f.current=null,m.current=setTimeout(S,3e3)}},[l,c,u]);return d.useEffect(()=>{if(!(!l&&!c&&!u))return console.log("[useSSE] Effect running, team:",l,"session:",c,"projectSessions:",u),S(),()=>{console.log("[useSSE] Cleanup"),f.current&&f.current.close(),m.current&&clearTimeout(m.current)}},[S,l,c,u]),{eventSource:f.current}}const HK="_sidebar_b06lb_1",VK="_header_b06lb_12",WK="_count_b06lb_28",UK="_loading_b06lb_37",qK="_sessionList_b06lb_43",GK="_empty_b06lb_49",KK="_sessionItem_b06lb_56",XK="_sessionId_b06lb_71",YK="_userMessage_b06lb_78",QK="_sessionInfo_b06lb_90",ZK="_time_b06lb_103",Yo={sidebar:HK,header:VK,count:WK,loading:UK,sessionList:qK,empty:GK,sessionItem:KK,sessionId:XK,userMessage:YK,sessionInfo:QK,time:ZK};function JK(e){if(!e)return"";const t=new Date(e),r=new Date-t,o=Math.floor(r/6e4),i=Math.floor(r/36e5),l=Math.floor(r/864e5);return o<1?"刚刚":o<60?`${o}m 前`:i<24?`${i}h 前`:l<7?`${l}d 前`:t.toLocaleDateString("zh-CN",{month:"short",day:"numeric"})}function eX({projectId:e,onSelectSession:t}){const[n,r]=d.useState([]),[o,i]=d.useState(!0);Zv({projectSessions:e,onSessionsUpdate:c=>{r(c.sessions||[]),i(!1)}});const l=c=>{console.log("[SessionSidebar] Session clicked:",c.id),t(c);const u=`/session-monitor?session=${c.id}`;console.log("[SessionSidebar] Setting hash to:",u),window.location.hash=u};return C.jsxs("div",{className:Yo.sidebar,children:[C.jsxs("div",{className:Yo.header,children:[C.jsx("h3",{children:"Sessions"}),C.jsx("span",{className:Yo.count,children:n.length})]}),o?C.jsx("div",{className:Yo.loading,children:"Loading..."}):C.jsx("div",{className:Yo.sessionList,children:n.length===0?C.jsx("div",{className:Yo.empty,children:"No sessions"}):n.map(c=>C.jsxs("div",{className:Yo.sessionItem,onClick:()=>l(c),children:[c.lastUserMessage&&C.jsx("div",{className:Yo.userMessage,children:c.lastUserMessage}),C.jsx("div",{className:Yo.sessionId,children:c.id}),C.jsxs("div",{className:Yo.sessionInfo,children:[C.jsx("span",{className:Yo.time,children:JK(c.lastTimestamp)}),C.jsxs("span",{children:[c.requestCount," requests"]}),c.agents.length>0&&C.jsxs("span",{children:[c.agents.length," agents"]})]})]},c.id))})]})}const tX="_container_1oqck_8",nX="_grass_1oqck_30",rX="_decoration1_1oqck_41",oX="_decoration2_1oqck_52",aX="_decoration3_1oqck_63",iX="_decoration4_1oqck_74",sX="_background_1oqck_90",lX="_grid_1oqck_100",cX="_particles_1oqck_113",uX="_backgroundParticle_1oqck_121",dX="_hint_1oqck_151",fX="_stats_1oqck_164",mX="_stat_1oqck_164",pX="_statLabel_1oqck_187",gX="_statValue_1oqck_195",hX="_statDivider_1oqck_204",vX="_loadingState_1oqck_212",bX="_emptyState_1oqck_213",yX="_spinner_1oqck_228",xX="_emptyIcon_1oqck_252",SX="_errorText_1oqck_274",CX="_teamSelector_1oqck_282",wX="_selectorTitle_1oqck_292",EX="_teamList_1oqck_306",_X="_teamCard_1oqck_314",$X="_teamCardName_1oqck_349",NX="_teamCardIcon_1oqck_362",RX="_teamCardInfo_1oqck_367",OX="_teamCardMeta_1oqck_375",IX="_backButton_1oqck_388",TX="_teamName_1oqck_413",MX="_teamIcon_1oqck_435",PX="_emptyDetail_1oqck_440",kX="_teamDivider_1oqck_447",jX="_activeBadge_1oqck_453",AX="_createdAt_1oqck_479",LX="_sunOrbit_1oqck_727",BX="_sunOrbitInner_1oqck_739",kt={container:tX,grass:nX,decoration1:rX,decoration2:oX,decoration3:aX,decoration4:iX,background:sX,grid:lX,particles:cX,backgroundParticle:uX,hint:dX,stats:fX,stat:mX,statLabel:pX,statValue:gX,statDivider:hX,loadingState:vX,emptyState:bX,spinner:yX,emptyIcon:xX,errorText:SX,teamSelector:CX,selectorTitle:wX,teamList:EX,teamCard:_X,teamCardName:$X,teamCardIcon:NX,teamCardInfo:RX,teamCardMeta:OX,backButton:IX,teamName:TX,teamIcon:MX,emptyDetail:PX,teamDivider:kX,activeBadge:jX,createdAt:AX,sunOrbit:LX,sunOrbitInner:BX},zX=(e,t)=>({"team-lead":"#fbbf24",subagent:"#3b82f6",worker:"#22c55e",explorer:"#8b5cf6",analyst:"#ec4899",tester:"#06b6d4",reviewer:"#f59e0b"})[e],FS=e=>({"team-lead":"🤠",subagent:"👤",worker:"🔧",explorer:"🔍",analyst:"📊",tester:"🧪",reviewer:"👁️"})[e]||"👤";class DX extends Q.Component{constructor(){super(...arguments);Lt(this,"state",{teams:[],currentTeam:null,characters:[],memberRequests:{},messageAnimations:[],selectedCharacter:null,containerSize:{width:window.innerWidth,height:window.innerHeight-100},loading:!0,error:null,teamStats:null,memberGroups:[],teamMessages:[]});Lt(this,"containerRef",Q.createRef());Lt(this,"resizeObserver",null);Lt(this,"_lastNotifiedMemberRequests",null);Lt(this,"_loadedTeamId",null);Lt(this,"refreshTeamStats",async n=>{if(console.log("[refreshTeamStats] Called with team:",(n==null?void 0:n.id)||(n==null?void 0:n.name)),console.trace("[refreshTeamStats] Stack trace"),!n||!n.id){console.log("[refreshTeamStats] Skipping - invalid team:",n);return}try{const r=await fetch(`/api/teams/${n.id}/stats`);if(r.ok){const o=await r.json();this.setState({teamStats:o});const i=n.id||n.name,{onTeamDataChange:l}=this.props;l&&l(i,{stats:o})}}catch(r){console.error("Failed to refresh team stats:",r)}});Lt(this,"refreshTeamMessages",async n=>{try{const r=await fetch(`/api/teams/${n.id}/inbox`);if(r.ok){const i=(await r.json()).messages||[];this.setState(u=>({characters:u.characters.map(m=>{const g=i.filter(h=>h._member===m.name);return{...m,messages:g}}),teamMessages:i}));const l=n.id||n.name,{onTeamDataChange:c}=this.props;c&&c(l,{inbox:i})}}catch(r){console.error("Failed to refresh team messages:",r)}});Lt(this,"loadTeams",async()=>{try{const o=(await(await fetch("/api/teams")).json()).teams||[];this.setState({teams:o,loading:!1},()=>{if(this.props.selectedTeam){const i=this.props.selectedTeam.id||this.props.selectedTeam.name,l=o.find(c=>c.id===i||c.name===i);l&&this.selectTeamWithoutNavigation(l)}})}catch(n){console.error("Failed to load teams:",n),this.setState({loading:!1,error:n.message})}});Lt(this,"handleSessionSelect",n=>{console.log("[handleSessionSelect] Called, session:",n)});Lt(this,"handleSelectTeam",async n=>{const r=n.id||n.name;console.log("[handleSelectTeam] Called, teamId:",r,"_loadedTeamId:",this._loadedTeamId);const{teamData:o,onTeamDataChange:i}=this.props,l=o==null?void 0:o[r];if((l==null?void 0:l.stats)&&(l==null?void 0:l.inbox)!==void 0){console.log("[handleSelectTeam] Using cached data from global state:",l),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:l.stats,teamMessages:l.inbox||[]},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`});return}if(this._loadedTeamId===r){console.log("[handleSelectTeam] Team already loaded (component level), skipping API requests"),this.setState({currentTeam:n},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`});return}console.log("[handleSelectTeam] First load, fetching stats and inbox...");let u=null;try{const m=await fetch(`/api/teams/${n.id}/stats`);m.ok&&(u=await m.json())}catch(m){console.error("Failed to load team stats:",m)}let f=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(f=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||f)&&i(r,{stats:u,inbox:f}),this.setState({currentTeam:n,teamStats:u,teamMessages:f},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`})});Lt(this,"selectTeamWithoutNavigation",async n=>{const r=n.id||n.name,{teamData:o,onTeamDataChange:i}=this.props,l=o==null?void 0:o[r];if((l==null?void 0:l.stats)&&(l==null?void 0:l.inbox)!==void 0){console.log("[selectTeamWithoutNavigation] Using cached data from global state:",l),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:l.stats,teamMessages:l.inbox||[]},()=>{this.initializeCharacters()});return}if(this._loadedTeamId===r){console.log("[selectTeamWithoutNavigation] Team already loaded (component level), skipping API requests"),this.setState({currentTeam:n},()=>{this.initializeCharacters()});return}console.log("[selectTeamWithoutNavigation] First load, fetching stats and inbox...");let u=null;try{const m=await fetch(`/api/teams/${n.id}/stats`);m.ok&&(u=await m.json())}catch(m){console.error("Failed to load team stats:",m)}let f=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(f=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||f)&&i(r,{stats:u,inbox:f}),this.setState({currentTeam:n,teamStats:u,teamMessages:f},()=>{this.initializeCharacters()})});Lt(this,"handleBackToSelector",()=>{this.setState({currentTeam:null,characters:[],memberGroups:[],teamStats:null}),window.location.hash="/team"});Lt(this,"handleResize",()=>{if(this.containerRef.current){const{width:n,height:r}=this.containerRef.current.getBoundingClientRect();this.setState({containerSize:{width:n,height:r}}),this.updateCharacterPositions(n,r)}});Lt(this,"handleWindowResize",()=>{this.handleResize()});Lt(this,"handleSelectCharacter",n=>{this.setState(r=>({selectedCharacter:{...n,messages:n.messages.map(o=>({...o,read:!0}))},characters:r.characters.map(o=>o.id===n.id?{...o,messages:o.messages.map(i=>({...i,read:!0}))}:o)}))});Lt(this,"handleCloseDetail",()=>{this.setState({selectedCharacter:null})});Lt(this,"handleViewNetworkRequests",n=>{var i,l;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(l=this.state.currentTeam)!=null&&l.name)&&r.set("team",this.state.currentTeam.id||this.state.currentTeam.name),n!=null&&n.name&&r.set("member",n.name);const o=r.toString();window.location.hash="/raw"+(o?"?"+o:"")});Lt(this,"handleViewConversation",n=>{var i,l;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(l=this.state.currentTeam)!=null&&l.name)&&r.set("team",this.state.currentTeam.id||this.state.currentTeam.name),n!=null&&n.name&&r.set("member",n.name);const o=r.toString();window.location.hash="/chat"+(o?"?"+o:"")});Lt(this,"handleBackToTeam",()=>{this.setState({selectedCharacter:null});const n=this.state.currentTeam,r=(n==null?void 0:n.id)||(n==null?void 0:n.name);window.location.hash=r?`/monitor?team=${encodeURIComponent(r)}`:"/monitor"});Lt(this,"handleAnimationComplete",n=>{this.setState(r=>({messageAnimations:r.messageAnimations.filter(o=>o.id!==n)}))})}componentDidMount(){this.state.teams.length>0?this.loadTeams():this.loadTeams(),this.containerRef.current&&(this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.containerRef.current)),window.addEventListener("resize",this.handleWindowResize)}componentWillUnmount(){this.resizeObserver&&this.containerRef.current&&this.resizeObserver.unobserve(this.containerRef.current),window.removeEventListener("resize",this.handleWindowResize)}getMemberPrefixes(n){const r=[n],o=[/-[a-z\d]+$/i,/-[a-z]+-\d+$/i,/-[a-z]+[A-Z].*$/i];for(const i of o){const l=n.replace(i,"");l&&l!==n&&!r.includes(l)&&r.push(l)}return r}groupMembersByPrefix(n){const r=n.find(u=>u.name==="team-lead"||u.agentType==="team-lead"),i=n.filter(u=>u.name!=="team-lead"&&u.agentType!=="team-lead").map(u=>({member:u,prefixes:this.getMemberPrefixes(u.name)})),l={};i.forEach(({prefixes:u})=>{u.forEach(f=>{l[f]=(l[f]||0)+1})});const c={};return i.forEach(({member:u,prefixes:f})=>{let m=u.name;for(const g of f)if(l[g]>1){m=g;break}c[m]||(c[m]=[]),c[m].push(u)}),{teamLead:r,groups:c}}initializeCharacters(){var E;let n,r;if(this.containerRef.current){const w=this.containerRef.current.getBoundingClientRect();n=w.width,r=w.height}else({width:n,height:r}=this.state.containerSize);const{currentTeam:o,teamMessages:i}=this.state;if(console.log("=== initializeCharacters START ==="),console.log("currentTeam:",o),console.log("containerSize:",{width:n,height:r}),!o||!o.members||o.members.length===0){console.log("No currentTeam or members, returning");return}const l=n/2,c=r/2,{teamLead:u,groups:f}=this.groupMembersByPrefix(o.members),m=Object.keys(f).sort(),g=m.length;console.log("=== Team Layout Debug ==="),console.log("teamLead:",u==null?void 0:u.name),console.log("groups:",f),console.log("groupNames:",m),console.log("groupCount:",g),console.log("centerX:",l,"centerY:",c);const h=[],v=[];if(u){console.log("Adding team-lead (Sun)...");const w=(E=o.memberList)==null?void 0:E.find(O=>O.name===u.name),_=(w==null?void 0:w.unread)||0,R=i.filter(O=>O._member===u.name),N={id:u.agentId,name:u.name,type:"team-lead",color:zX("team-lead"),x:l-50,y:c-50,status:_>0?"active":"idle",mood:"idle",messages:R,avatar:FS(u.agentType),unreadCount:_};v.push(N),console.log("Added team-lead (Sun):",N)}const y=Math.min(n,r),x=Math.max(y*.32,220);m.forEach((w,_)=>{const R=f[w],N=R.length,I=2*Math.PI/g*_-Math.PI/2,P=l+x*Math.cos(I),M=c+x*Math.sin(I);console.log(`
427
+ `);m.current.innerHTML=S.map((E,w)=>`<div class="${Er.lineNumberRow}">${w+1}</div>`).join(""),f.current.innerHTML=S.map(E=>`<div class="${Er.lineContentRow}">${E||" "}</div>`).join("")}catch{m.current.innerHTML=y.map((x,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),f.current.innerHTML=y.map(x=>`<div class="${Er.lineContentRow}">${x||" "}</div>`).join("")}else m.current.innerHTML=y.map((x,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),f.current.innerHTML=y.map(x=>`<div class="${Er.lineContentRow}">${x||" "}</div>`).join("")}},[n,e]),d.useEffect(()=>{const v=g.current,y=h.current;if(!v||!y)return;const x=()=>{y.scrollTop=v.scrollTop};return v.addEventListener("scroll",x),()=>v.removeEventListener("scroll",x)}),C.jsxs("div",{className:Er.fileContentView,children:[C.jsxs("div",{className:Er.header,children:[C.jsxs("div",{className:Er.headerLeft,children:[C.jsx("button",{className:Er.backBtn,onClick:t,title:"返回对话",children:C.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:C.jsx("polyline",{points:"15 18 9 12 15 6"})})}),C.jsx("span",{className:Er.filePath,children:e})]}),l>0&&C.jsx("span",{className:Er.fileSize,children:hG(l)})]}),C.jsxs("div",{className:Er.contentContainer,children:[o&&C.jsx("div",{className:Er.error,children:o}),!n&&!o&&C.jsx("div",{className:Er.loading,children:"加载中..."}),n&&C.jsxs("div",{className:Er.codeBlock,children:[C.jsx("div",{className:Er.lineNumberCol,ref:h,children:C.jsx("div",{ref:m})}),C.jsx("div",{className:Er.codeCol,ref:g,children:C.jsx("pre",{className:Er.codeContent,children:C.jsx("code",{ref:f})})})]})]})]})}const bG="_centerEmpty_8tuwm_1",yG="_container_8tuwm_8",xG="_sessionDividerText_8tuwm_18",SG="_lastResponseLabel_8tuwm_23",CG="_splitContainer_8tuwm_27",wG="_chatSection_8tuwm_34",EG="_messageListWrap_8tuwm_192",_G="_stickyBottomBtn_8tuwm_200",$G="_navSidebar_8tuwm_369",NG="_navBtn_8tuwm_381",RG="_navBtnActive_8tuwm_401",Gr={centerEmpty:bG,container:yG,sessionDividerText:xG,lastResponseLabel:SG,splitContainer:CG,chatSection:wG,messageListWrap:EG,stickyBottomBtn:_G,navSidebar:$G,navBtn:NG,navBtnActive:RG},{Text:LS}=Ho,OG=20;function IG(){return 100+Math.random()*50}function BS(e){var o;const t={};for(const i of e)if(i.role==="assistant"&&Array.isArray(i.content))for(const l of i.content)l.type==="tool_use"&&(t[l.id]=l);const n={},r={};for(const i of e)if(i.role==="user"&&Array.isArray(i.content)){for(const l of i.content)if(l.type==="tool_result"){const c=t[l.tool_use_id];let u="工具返回",f=null,m=null;if(c)if(f=c.name,m=c.input,c.name==="Task"&&c.input){const h=c.input.subagent_type||"",v=c.input.description||"";u=`SubAgent: ${h}${v?" — "+v:""}`}else u=`${c.name} 返回`;const g=u_(l);n[l.tool_use_id]={label:u,toolName:f,toolInput:m,resultText:g},c&&c.name==="Read"&&((o=c.input)!=null&&o.file_path)&&(r[c.input.file_path]=g)}}return{toolUseMap:t,toolResultMap:n,readContentMap:r}}class TG extends Q.Component{constructor(n){super(n);Lt(this,"handleStickToBottom",()=>{this.setState({stickyBottom:!0},()=>{const n=this.containerRef.current;n&&(n.scrollTop=n.scrollHeight)})});Lt(this,"handleToggleExpandPath",n=>{this.setState(r=>{const o=new Set(r.fileExplorerExpandedPaths);return o.has(n)?o.delete(n):o.add(n),{fileExplorerExpandedPaths:o}})});this.containerRef=Q.createRef(),this.splitContainerRef=Q.createRef(),this.innerSplitRef=Q.createRef(),this.state={visibleCount:0,loading:!1,allItems:[],highlightTs:null,highlightFading:!1,stickyBottom:!0,fileExplorerOpen:!0,currentFile:null,fileExplorerExpandedPaths:new Set},this._queueTimer=null,this._prevItemsLen=0,this._scrollTargetIdx=null,this._scrollTargetRef=Q.createRef(),this._scrollFadeTimer=null}componentDidMount(){this.startRender(),this._bindStickyScroll()}componentDidUpdate(n){var i,l,c,u;const r=n.mainAgentSessions!==this.props.mainAgentSessions||((i=n.mainAgentSessions)==null?void 0:i.length)!==((l=this.props.mainAgentSessions)==null?void 0:l.length),o=n.requests!==this.props.requests||((c=n.requests)==null?void 0:c.length)!==((u=this.props.requests)==null?void 0:u.length);if(r||o)this.startRender();else if(n.collapseToolResults!==this.props.collapseToolResults||n.expandThinking!==this.props.expandThinking){const f=this.buildAllItems();this.setState({allItems:f,visibleCount:f.length})}if(!n.scrollToTimestamp&&this.props.scrollToTimestamp){const f=this.buildAllItems();this.setState({allItems:f,visibleCount:f.length},()=>this.scrollToBottom())}this._rebindStickyEl()}componentWillUnmount(){this._queueTimer&&clearTimeout(this._queueTimer),this._fadeClearTimer&&clearTimeout(this._fadeClearTimer),this._unbindScrollFade(),this._unbindStickyScroll()}startRender(){this._queueTimer&&clearTimeout(this._queueTimer);const n=this.buildAllItems(),r=this._prevItemsLen;this._prevItemsLen=n.length;const o=n.length-r;if(o<=0||r>0&&o<=3){this.setState({allItems:n,visibleCount:n.length,loading:!1},()=>this.scrollToBottom());return}if(n.length>OG)this.setState({allItems:n,visibleCount:0,loading:!0}),this._queueTimer=setTimeout(()=>{this.setState({visibleCount:n.length,loading:!1},()=>this.scrollToBottom())},300);else{const i=Math.max(0,r);this.setState({allItems:n,visibleCount:i,loading:!1}),this.queueNext(i,n.length)}}queueNext(n,r){n>=r||(this._queueTimer=setTimeout(()=>{this.setState({visibleCount:n+1},()=>{this.scrollToBottom(),this.queueNext(n+1,r)})},IG()))}_isNearBottom(){const n=this.containerRef.current;return n?n.scrollHeight-n.scrollTop-n.clientHeight<=30:!0}scrollToBottom(){if(this._scrollTargetRef.current){const n=this._scrollTargetRef.current,r=this.containerRef.current;r&&n.offsetHeight>r.clientHeight?n.scrollIntoView({block:"start",behavior:"instant"}):n.scrollIntoView({block:"center",behavior:"instant"});const o=this.props.scrollToTimestamp;this._scrollTargetRef=Q.createRef(),o&&(this.setState({highlightTs:o,highlightFading:!1}),this._bindScrollFade()),this.props.onScrollTsDone&&this.props.onScrollTsDone();return}if(this.state.stickyBottom){const n=this.containerRef.current;n&&(n.scrollTop=n.scrollHeight)}}_bindStickyScroll(){this._stickyScrollRafId=null,this._onStickyScroll=()=>{this._stickyScrollLock||this._stickyScrollRafId||(this._stickyScrollRafId=requestAnimationFrame(()=>{this._stickyScrollRafId=null;const n=this.containerRef.current;if(!n)return;const r=n.scrollHeight-n.scrollTop-n.clientHeight;this.state.stickyBottom&&r>30?this.setState({stickyBottom:!1}):!this.state.stickyBottom&&r<=5&&this.setState({stickyBottom:!0})}))},this._rebindStickyEl()}_rebindStickyEl(){const n=this.containerRef.current;n!==this._stickyBoundEl&&(this._stickyBoundEl&&this._stickyBoundEl.removeEventListener("scroll",this._onStickyScroll),this._stickyBoundEl=n,n&&n.addEventListener("scroll",this._onStickyScroll,{passive:!0}))}_unbindStickyScroll(){this._stickyBoundEl&&this._onStickyScroll&&(this._stickyBoundEl.removeEventListener("scroll",this._onStickyScroll),this._stickyBoundEl=null),this._stickyScrollRafId&&(cancelAnimationFrame(this._stickyScrollRafId),this._stickyScrollRafId=null)}_bindScrollFade(){this._unbindScrollFade();const n=this.containerRef.current;n&&(this._scrollFadeIgnoreFirst=!0,this._onScrollFade=()=>{if(this._scrollFadeIgnoreFirst){this._scrollFadeIgnoreFirst=!1;return}this.setState({highlightFading:!0}),this._fadeClearTimer=setTimeout(()=>{this.setState({highlightTs:null,highlightFading:!1})},2e3),this._unbindScrollFade()},n.addEventListener("scroll",this._onScrollFade,{passive:!0}))}_unbindScrollFade(){this._onScrollFade&&this.containerRef.current&&(this.containerRef.current.removeEventListener("scroll",this._onScrollFade),this._onScrollFade=null)}renderSessionMessages(n,r,o,i){var y;const{userProfile:l,collapseToolResults:c,expandThinking:u,onViewRequest:f}=this.props,{toolUseMap:m,toolResultMap:g,readContentMap:h}=BS(n),v=[];for(let x=0;x<n.length;x++){const S=n[x],E=S.content,w=S._timestamp||null,_=w?i[w]:void 0,R=_!=null&&f?{requestIndex:_,onViewRequest:f}:{};if(S.role==="user"){if(Array.isArray(E)){const N=E.find(I=>I.type==="text"&&/^\[SUGGESTION MODE:/i.test((I.text||"").trim())),O=E.filter(I=>I.type==="tool_result");if(N&&O.length>0){let I=null,P={};for(const M of O){const k=m[M.tool_use_id];if(k&&k.name==="AskUserQuestion"&&((y=k.input)!=null&&y.questions)){I=k.input.questions;const A=u_(M);try{P=JSON.parse(A).answers||{}}catch{}break}}I&&v.push(C.jsx(Ao,{role:"user-selection",questions:I,answers:P,timestamp:w,userProfile:l,...R},`${r}-selection-${x}`))}else{const{commands:I,textBlocks:P,skillBlocks:M}=l_(E);for(let k=0;k<I.length;k++)v.push(C.jsx(Ao,{role:"user",text:I[k],timestamp:w,userProfile:l,modelInfo:o,...R},`${r}-cmd-${x}-${k}`));for(const k of M){const A=k.text.match(/^#\s+(.+)$/m),j=A?A[1]:"Skill";v.push(C.jsx(Ao,{role:"skill-loaded",text:k.text,skillName:j,timestamp:w,...R},`${r}-skill-${x}`))}for(let k=0;k<P.length;k++){const A=/^Implement the following plan:/i.test((P[k].text||"").trim());v.push(C.jsx(Ao,{role:A?"plan-prompt":"user",text:P[k].text,timestamp:w,userProfile:l,modelInfo:o,...R},`${r}-user-${x}-${k}`))}}}else if(typeof E=="string"&&!Dv(E)){const N=/^Implement the following plan:/i.test(E.trim());v.push(C.jsx(Ao,{role:N?"plan-prompt":"user",text:E,timestamp:w,userProfile:l,modelInfo:o,...R},`${r}-user-${x}`))}}else S.role==="assistant"&&(Array.isArray(E)?v.push(C.jsx(Ao,{role:"assistant",content:E,toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${x}`)):typeof E=="string"&&v.push(C.jsx(Ao,{role:"assistant",content:[{type:"text",text:E}],toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${x}`)))}return v}buildItemsFromRequests(n,r,o,i,l){const c=[];wS(null);const u=l?(l.id||l.name||"").split("@")[0].toLowerCase():null;for(let f=0;f<n.length;f++){const m=n[f];if(!m.body||!m.body.messages)continue;if(u){const h=(m.teamMember||"").split("@")[0].toLowerCase();if(h&&h!==u)continue}const g=m.body.messages||[];for(const h of g)h.role==="user"?c.push(C.jsx(Ao,{role:"user",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:f,onViewRequest:i},`req-${f}-user`)):h.role==="assistant"&&c.push(C.jsx(Ao,{role:"assistant",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:f,onViewRequest:i},`req-${f}-assistant`))}return c}buildAllItems(){var x,S,E,w;const{mainAgentSessions:n,requests:r,collapseToolResults:o,expandThinking:i,onViewRequest:l}=this.props;if((!n||n.length===0)&&r&&r.length>0)return this.buildItemsFromRequests(r,o,i,l);const c={};if(r)for(let _=0;_<r.length;_++)ka(r[_])&&r[_].timestamp&&(c[r[_].timestamp]=_);let u=null;if(r){for(let _=r.length-1;_>=0;_--)if(ka(r[_])&&((x=r[_].body)!=null&&x.model)){u=r[_].body.model;break}}const f=wS(u),m=[],g={},h=[];if(r)for(let _=0;_<r.length;_++){const R=r[_];if(!R.timestamp)continue;const N=yc(R,r[_+1]);if(N.type==="SubAgent"){const O=(E=(S=R.response)==null?void 0:S.body)==null?void 0:E.content;if(Array.isArray(O)&&O.length>0){const I=BS(((w=R.body)==null?void 0:w.messages)||[]).toolResultMap;h.push({timestamp:R.timestamp,content:O,toolResultMap:I,label:qd(N.type,N.subType),requestIndex:_})}}}let v=0;n.forEach((_,R)=>{var O,I,P,M;R>0&&m.push(C.jsx(Qx,{style:{borderColor:"#333",margin:"16px 0"},children:C.jsx(LS,{className:Gr.sessionDividerText,children:"Session"})},`session-div-${R}`));const N=this.renderSessionMessages(_.messages,`s${R}`,f,c);for(const k of N){const A=k.props.timestamp;for(;v<h.length&&A&&h[v].timestamp<=A;){const j=h[v];j.timestamp&&(g[j.timestamp]=m.length),m.push(C.jsx(Ao,{role:"sub-agent-chat",content:j.content,toolResultMap:j.toolResultMap,label:j.label,timestamp:j.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:j.requestIndex,onViewRequest:l},`sub-chat-${v}`)),v++}A&&(g[A]=m.length),m.push(k)}for(;v<h.length;){const k=h[v],A=R<n.length-1&&((I=(O=n[R+1].messages)==null?void 0:O[0])==null?void 0:I._timestamp);if(A&&k.timestamp>A)break;k.timestamp&&(g[k.timestamp]=m.length),m.push(C.jsx(Ao,{role:"sub-agent-chat",content:k.content,toolResultMap:k.toolResultMap,label:k.label,timestamp:k.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:k.requestIndex,onViewRequest:l},`sub-chat-${v}`)),v++}if(R===n.length-1&&((M=(P=_.response)==null?void 0:P.body)!=null&&M.content)){const k=_.response.body.content;Array.isArray(k)&&(m.push(C.jsx(Q.Fragment,{children:C.jsx(Qx,{style:{borderColor:"#2a2a2a",margin:"8px 0"},children:C.jsx(LS,{type:"secondary",className:Gr.lastResponseLabel,children:"Last Response"})})},"resp-divider")),_.entryTimestamp&&(g[_.entryTimestamp]=m.length),m.push(C.jsx(Ao,{role:"assistant",content:k,timestamp:_.entryTimestamp,modelInfo:f,collapseToolResults:o,expandThinking:i,toolResultMap:{}},"resp-asst")))}});const{scrollToTimestamp:y}=this.props;return this._scrollTargetIdx=y&&g[y]!=null?g[y]:null,this._tsItemMap=g,m}render(){const{mainAgentSessions:n,cliMode:r}=this.props,{allItems:o,visibleCount:i,loading:l}=this.state,c=!n||n.length===0;if(c&&!r)return C.jsx("div",{className:Gr.centerEmpty,children:C.jsx(lo,{description:"暂无 MainAgent 对话数据"})});if(l&&!r)return C.jsx("div",{className:Gr.centerEmpty,children:C.jsx(Hi,{size:"large"})});const u=this._scrollTargetIdx,{highlightTs:f,highlightFading:m}=this.state,g=f&&this._tsItemMap&&this._tsItemMap[f]!=null?this._tsItemMap[f]:null,h=o.slice(0,i),{stickyBottom:v}=this.state,y=v?null:C.jsxs("button",{className:Gr.stickyBottomBtn,onClick:this.handleStickToBottom,children:[C.jsx("span",{children:"置底"}),C.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:C.jsx("polyline",{points:"6 9 12 15 18 9"})})]}),x=c||l?C.jsxs("div",{className:Gr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Gr.container,children:!r||l?C.jsx("div",{className:Gr.centerEmpty,children:l?C.jsx(Hi,{size:"large"}):C.jsx(lo,{description:"暂无 MainAgent 对话数据"})}):null}),y]}):C.jsxs("div",{className:Gr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Gr.container,children:h.map((S,E)=>{const w=E===u,_=E===g;let R=S;return _&&(R=Q.cloneElement(R,{highlight:m?"fading":"active"})),w?C.jsx("div",{ref:this._scrollTargetRef,children:R},S.key+"-anchor"):R})}),y]});return r?C.jsxs("div",{ref:this.splitContainerRef,className:Gr.splitContainer,children:[C.jsx("div",{className:Gr.navSidebar,children:C.jsx("button",{className:this.state.fileExplorerOpen?Gr.navBtnActive:Gr.navBtn,onClick:()=>this.setState({fileExplorerOpen:!0,currentFile:null}),title:"文件浏览",children:C.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:C.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 2h9a2 2 0 0 1 2 2z"})})})}),C.jsxs("div",{style:{flex:1,display:"flex",minWidth:0,position:"relative"},ref:this.innerSplitRef,children:[this.state.fileExplorerOpen&&C.jsx(tq,{onClose:()=>this.setState({fileExplorerOpen:!1}),onFileClick:S=>this.setState({currentFile:S}),expandedPaths:this.state.fileExplorerExpandedPaths,onToggleExpand:this.handleToggleExpandPath,currentFile:this.state.currentFile}),C.jsx("div",{className:Gr.chatSection,style:{flex:1,minWidth:0,display:"flex"},children:C.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:this.state.currentFile?C.jsx(vG,{filePath:this.state.currentFile,onClose:()=>this.setState({currentFile:null})}):x})})]})]}):x}}function MG(e,t){var m;const n=t.body.messages,r=t.response,o=((m=t.body.metadata)==null?void 0:m.user_id)||null,i=t.timestamp||null,l=t.teamMember||null;if(e.length===0)return[{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:l}];const c=e[e.length-1],u=c.messages?c.messages.length:0,f=u>0&&n.length<u*.5&&u-n.length>4;if(o&&o===c.userId&&!f){const g=[...e];return g[g.length-1]={...c,messages:n,response:r,entryTimestamp:i,teamMember:l||c.teamMember},g}else return[...e,{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:l}]}function PG(e,t=!1){let n=[];for(const r of e)(t?r.body&&Array.isArray(r.body.messages):ka(r)&&r.body&&Array.isArray(r.body.messages))&&(n=MG(n,r));return n}function kG({requests:e,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,chatScrollToTs:i,onScrollTsDone:l,cliMode:c,onBackToTeam:u}){const f=d.useMemo(()=>PG(e,!0),[e]);return console.log("[ChatViewPage] requests.length:",e.length,"sessions.length:",f.length),C.jsxs("div",{style:{display:"flex",height:"100%",flexDirection:"column"},children:[C.jsxs("div",{style:{padding:"8px 16px",borderBottom:"1px solid #303030",display:"flex",alignItems:"center"},children:[C.jsx(br,{type:"text",size:"small",onClick:u,children:"← 监控"}),C.jsx("span",{style:{marginLeft:12,fontWeight:500},children:"对话视图"})]}),C.jsx(TG,{requests:e,mainAgentSessions:f,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,scrollToTimestamp:i,onScrollTsDone:l,cliMode:c})]})}const jG="_cyberCharacter_n8txo_8",AG="_hovered_n8txo_15",LG="_selected_n8txo_19",BG="_unreadBadge_n8txo_26",zG="_unreadCount_n8txo_52",DG="_pulse_n8txo_59",FG="_hologramContainer_n8txo_86",HG="_outerRing_n8txo_96",VG="_innerRing_n8txo_114",WG="_cyberCore_n8txo_142",UG="_cyberIcon_n8txo_178",qG="_dataFlow_n8txo_197",GG="_glowEffect_n8txo_220",KG="_nameTag_n8txo_248",XG="_contextBadge_n8txo_272",YG="_statusIndicator_n8txo_293",QG="_statusIcon_n8txo_314",ZG="_statusText_n8txo_320",JG="_statusPulse_n8txo_377",eK="_contextBar_n8txo_403",tK="_contextBarBg_n8txo_419",nK="_contextBarFill_n8txo_428",rK="_shimmer_n8txo_1",oK="_contextText_n8txo_466",aK="_dataHint_n8txo_478",iK="_dataIcon_n8txo_506",sK="_dataCount_n8txo_512",er={cyberCharacter:jG,hovered:AG,selected:LG,unreadBadge:BG,"badge-glow":"_badge-glow_n8txo_1",unreadCount:zG,pulse:DG,"cyber-pulse":"_cyber-pulse_n8txo_1",hologramContainer:FG,outerRing:HG,"cyber-rotate":"_cyber-rotate_n8txo_1",innerRing:VG,"cyber-rotate-reverse":"_cyber-rotate-reverse_n8txo_1",cyberCore:WG,"cyber-node":"_cyber-node_n8txo_173",cyberIcon:UG,"icon-pulse":"_icon-pulse_n8txo_1",dataFlow:qG,"data-flow":"_data-flow_n8txo_1",glowEffect:GG,"glow-pulse":"_glow-pulse_n8txo_1",nameTag:KG,contextBadge:XG,statusIndicator:YG,statusIcon:QG,statusText:ZG,"status-active":"_status-active_n8txo_325","status-working":"_status-working_n8txo_336","status-idle":"_status-idle_n8txo_347","status-error":"_status-error_n8txo_356","error-pulse":"_error-pulse_n8txo_1",statusPulse:JG,"status-pulse":"_status-pulse_n8txo_1",contextBar:eK,contextBarBg:tK,contextBarFill:nK,shimmer:rK,"context-danger":"_context-danger_n8txo_451","context-warning":"_context-warning_n8txo_456","context-safe":"_context-safe_n8txo_461",contextText:oK,dataHint:aK,"hint-float":"_hint-float_n8txo_1",dataIcon:iK,dataCount:sK,"selected-glow":"_selected-glow_n8txo_1"},zS={"team-lead":"⬡",subagent:"◈",worker:"⬢",explorer:"◉",analyst:"⌬",tester:"⌘",reviewer:"⌖",mainagent:"⬡",agent:"◈"},DS={active:"▶",working:"◍",idle:"◌",error:"⚠"};class W_ extends Q.Component{constructor(){super(...arguments);Lt(this,"state",{isHovered:!1});Lt(this,"handleClick",()=>{const{character:n,onSelect:r}=this.props;r(n)});Lt(this,"handleMouseEnter",()=>{this.setState({isHovered:!0})});Lt(this,"handleMouseLeave",()=>{this.setState({isHovered:!1})})}getMessageCount(){var i,l;const{character:n}=this.props,r=((i=n.messages)==null?void 0:i.filter(c=>!c.read).length)||0,o=((l=n.messages)==null?void 0:l.length)||0;return{unread:r,total:o}}getContextPercent(){var r;const{character:n}=this.props;return((r=n.contextInfo)==null?void 0:r.contextPercent)||null}getContextBadgeStyle(){const n=this.getContextPercent();return n===null?"":n>60?"danger":n>40?"warning":"safe"}getCharacterTypeClass(){const{character:n}=this.props;return"cyber-node"}getCyberColor(){const{character:n}=this.props;return{"team-lead":"#fbbf24",mainagent:"#fbbf24",subagent:"#00fff7",agent:"#00fff7",worker:"#00ff88",explorer:"#bf00ff",analyst:"#ff00ff",tester:"#00a8ff",reviewer:"#ff6600"}[n.type]||"#00fff7"}render(){const{character:n,isSelected:r}=this.props,{isHovered:o}=this.state,{unread:i,total:l}=this.getMessageCount(),c=this.getCharacterTypeClass(),u=this.getCyberColor(),f=this.getContextPercent(),m=zS[n.type]||zS.subagent,g=DS[n.status]||DS.idle;return C.jsxs("div",{className:`${er.cyberCharacter} ${r?er.selected:""} ${o?er.hovered:""}`,onClick:this.handleClick,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,style:{"--cyber-color":u},children:[i>0&&C.jsxs("div",{className:er.unreadBadge,children:[C.jsx("span",{className:er.unreadCount,children:i}),C.jsx("div",{className:er.pulse})]}),C.jsxs("div",{className:er.hologramContainer,children:[C.jsx("div",{className:er.outerRing}),C.jsx("div",{className:er.innerRing}),C.jsx("div",{className:`${er.cyberCore} ${er[c]}`,children:C.jsx("span",{className:er.cyberIcon,children:m})}),C.jsx("div",{className:er.dataFlow}),C.jsx("div",{className:er.glowEffect})]}),C.jsx("div",{className:er.nameTag,children:n.name}),f!==null&&C.jsxs("span",{className:er.contextBadge,style:{background:f>60?"rgba(239, 68, 68, 0.3)":f>40?"rgba(251, 191, 36, 0.3)":"rgba(0, 255, 247, 0.2)",color:f>60?"#ef4444":f>40?"#fbbf24":"#00fff7",border:`1px solid ${f>60?"#ef4444":f>40?"#fbbf24":"#00fff7"}44`,boxShadow:f>60?"0 0 8px rgba(239, 68, 68, 0.3)":f>40?"0 0 8px rgba(251, 191, 36, 0.3)":"0 0 8px rgba(0, 255, 247, 0.2)"},children:[f,"%"]}),C.jsxs("div",{className:`${er.statusIndicator} ${er[`status-${n.status}`]}`,children:[C.jsx("span",{className:er.statusIcon,children:g}),C.jsx("span",{className:er.statusText,children:n.status==="active"?"ACTIVE":n.status==="working"?"PROCESSING":"STANDBY"}),n.status==="active"&&C.jsx("div",{className:er.statusPulse})]}),o&&l>0&&C.jsxs("div",{className:er.dataHint,children:[C.jsx("span",{className:er.dataIcon,children:"⌬"}),C.jsx("span",{className:er.dataCount,children:l})]})]})}}const lK="_messageEnvelope_12k2o_1",cK="_particles_12k2o_9",uK="_particle_12k2o_9",Cg={messageEnvelope:lK,particles:cK,particle:uK};class dK extends Q.Component{constructor(n){super(n);Lt(this,"animate",()=>{const r=performance.now()-this.startTime,o=this.props.duration||1500,i=Math.min(r/o,1),l=i<.5?2*i*i:1-Math.pow(-2*i+2,2)/2;this.setState({progress:l}),i<1?requestAnimationFrame(this.animate):setTimeout(()=>{this.setState({opacity:0}),setTimeout(()=>this.props.onComplete(),300)},200)});this.state={progress:0,opacity:1}}componentDidMount(){this.props.duration,this.startTime=performance.now(),this.animate()}render(){const{from:n,to:r}=this.props,{progress:o,opacity:i}=this.state,l=n.x+(r.x-n.x)*o,c=n.y+(r.y-n.y)*o,u=Math.atan2(r.y-n.y,r.x-n.x)*180/Math.PI;return C.jsxs("div",{className:Cg.messageEnvelope,style:{left:l,top:c,opacity:i,transform:`rotate(${u}deg)`},children:[C.jsxs("svg",{viewBox:"0 0 40 30",width:"32",height:"24",children:[C.jsx("rect",{x:"2",y:"5",width:"36",height:"20",rx:"2",fill:"#fbbf24",stroke:"#f59e0b",strokeWidth:"1.5"}),C.jsx("path",{d:"M 2 5 L 20 17 L 38 5",fill:"none",stroke:"#f59e0b",strokeWidth:"1.5"}),C.jsx("path",{d:"M 2 5 L 20 17 L 2 25",fill:"#fcd34d",opacity:"0.5"}),C.jsx("path",{d:"M 38 5 L 20 17 L 38 25",fill:"#eab308",opacity:"0.3"}),C.jsx("circle",{cx:"20",cy:"15",r:"3",fill:"#ef4444",opacity:"0.8"})]}),o<.8&&C.jsx("div",{className:Cg.particles,children:Array.from({length:5}).map((f,m)=>{const g=m*.1,h=Math.max(0,o-g)/(1-g);return C.jsx("div",{className:Cg.particle,style:{animationDelay:`${g}s`,opacity:1-h}},m)})})]})}}const fK="_panel_1c46t_5",mK="_header_1c46t_52",pK="_headerLeft_1c46t_72",gK="_avatar_1c46t_100",hK="_title_1c46t_129",vK="_name_1c46t_133",bK="_meta_1c46t_144",yK="_messageCount_1c46t_151",xK="_closeButton_1c46t_159",SK="_actionButtons_1c46t_184",CK="_actionButton_1c46t_184",wK="_stats_1c46t_205",EK="_statItem_1c46t_225",_K="_statValue_1c46t_229",$K="_statLabel_1c46t_238",NK="_messageList_1c46t_250",RK="_messageListHeader_1c46t_257",OK="_messageListCount_1c46t_272",IK="_emptyState_1c46t_284",TK="_list_1c46t_303",MK="_messageItem_1c46t_327",PK="_messageHeader_1c46t_357",kK="_messageSender_1c46t_363",jK="_messageTime_1c46t_374",AK="_messageStatus_1c46t_380",LK="_messageSummary_1c46t_386",BK="_messageContent_1c46t_394",zK="_messageBody_1c46t_398",yn={panel:fK,header:mK,headerLeft:pK,avatar:gK,title:hK,name:vK,meta:bK,messageCount:yK,closeButton:xK,actionButtons:SK,actionButton:CK,stats:wK,statItem:EK,statValue:_K,statLabel:$K,messageList:NK,messageListHeader:RK,messageListCount:OK,emptyState:IK,list:TK,messageItem:MK,messageHeader:PK,messageSender:kK,messageTime:jK,messageStatus:AK,messageSummary:LK,messageContent:BK,messageBody:zK},{Text:gY,Paragraph:DK}=Ho;function FK(e){try{const t=JSON.parse(e);return t.type==="task_assignment"||t.type==="idle_notification"?{isSystem:!1,text:e}:t.type==="shutdown_request"?{isSystem:!0,text:`[请求关闭] ${t.content||""}`,type:"shutdown"}:t.type==="shutdown_response"?{isSystem:!0,text:`[关闭响应] ${t.approve?"已批准":"已拒绝"}`,type:"shutdown"}:t.type==="plan_approval_request"?{isSystem:!0,text:"[计划审批请求]",type:"plan"}:t.type?{isSystem:!0,text:`[${t.type}]`,type:t.type}:{isSystem:!1,text:e}}catch{return{isSystem:!1,text:e}}}class U_ extends Q.Component{render(){const{character:t,visible:n,onClose:r,onViewNetworkRequests:o,onViewConversation:i,sessionMode:l,sessionId:c}=this.props;if(!n||!t)return null;const u=t.messages||[],f=u.filter(g=>!FK(g.text).isSystem),m=C.jsxs("div",{className:yn.panel,style:{position:"fixed",top:"64px",right:"0",left:"auto",bottom:"0",width:"420px",height:"calc(100vh - 64px)",zIndex:1e3},children:[C.jsxs("div",{className:yn.header,children:[C.jsxs("div",{className:yn.headerLeft,children:[C.jsx("div",{className:yn.avatar,style:{background:t.color},children:t.avatar||t.name.charAt(0)}),C.jsxs("div",{className:yn.title,children:[C.jsx("h2",{className:yn.name,children:t.name}),C.jsxs("div",{className:yn.meta,children:[C.jsx(So,{color:t.status==="active"?"green":"default",children:t.status==="active"?"工作中":"空闲"}),C.jsxs("span",{className:yn.messageCount,children:[f.length," 条消息"]})]})]})]}),C.jsx("button",{className:yn.closeButton,onClick:r,children:"✕"})]}),C.jsxs("div",{className:yn.actionButtons,children:[C.jsx(br,{type:"primary",icon:C.jsx(AB,{}),onClick:()=>{l&&c?window.location.hash=`/raw?session=${c}&agent=${encodeURIComponent(t.name)}`:o==null||o(t)},className:yn.actionButton,children:"查看请求"}),C.jsx(br,{icon:C.jsx(XE,{}),onClick:()=>{l&&c?window.location.hash=`/chat?session=${c}&agent=${encodeURIComponent(t.name)}`:i==null||i(t)},className:yn.actionButton,children:"查看对话"})]}),C.jsxs("div",{className:yn.stats,children:[C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:f.length}),C.jsx("div",{className:yn.statLabel,children:"消息"})]}),C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:new Set(f.map(g=>g.from)).size}),C.jsx("div",{className:yn.statLabel,children:"参与者"})]}),C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:u.filter(g=>!g.read).length}),C.jsx("div",{className:yn.statLabel,children:"未读"})]})]}),C.jsxs("div",{className:yn.messageList,children:[C.jsxs("div",{className:yn.messageListHeader,children:[C.jsx("span",{children:"消息记录"}),C.jsx("span",{className:yn.messageListCount,children:f.length})]}),f.length===0?C.jsxs("div",{className:yn.emptyState,children:[C.jsx(qB,{style:{fontSize:48,color:"#333"}}),C.jsx("p",{children:"暂无消息记录"})]}):C.jsx(gc,{className:yn.list,dataSource:[...f].reverse(),renderItem:(g,h)=>{const v=g.read!==!1,y=g.timestamp||new Date().toISOString(),x=g.color||"#888";return C.jsxs(gc.Item,{className:yn.messageItem,children:[C.jsxs("div",{className:yn.messageHeader,children:[C.jsxs("div",{className:yn.messageSender,children:[C.jsx(QB,{style:{marginRight:4,color:x,fontSize:11}}),C.jsx("span",{style:{color:x,fontWeight:500},children:g.from})]}),C.jsxs("div",{className:yn.messageStatus,children:[C.jsx("span",{className:yn.messageTime,children:new Date(y).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),!v&&C.jsx(jd,{status:"processing"})]})]}),g.summary&&C.jsx("div",{className:yn.messageSummary,children:g.summary}),C.jsx("div",{className:yn.messageContent,children:C.jsx(DK,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:yn.messageBody,style:{color:"#ccc",fontSize:13,margin:0},children:g.text})})]},h)}})]})]});return ja.createPortal(m,document.body)}}function Zv(e){const{onFullReload:t,onLogUpdate:n,onUpdateInfo:r,onTeamStats:o,onSessionsUpdate:i,team:l,session:c,projectSessions:u}=e,f=d.useRef(null),m=d.useRef(null),g=d.useRef(t),h=d.useRef(n),v=d.useRef(r),y=d.useRef(o),x=d.useRef(i);g.current=t,h.current=n,v.current=r,y.current=o,x.current=i;const S=d.useCallback(()=>{if(!l&&!c&&!u){console.log("[useSSE] No team, session or projectSessions parameter, skipping connection");return}f.current&&f.current.close();let E;if(l?E=`/events?team=${encodeURIComponent(l)}`:c?E=`/events?session=${encodeURIComponent(c)}`:u&&(E=`/events?projectSessions=${encodeURIComponent(u)}`),console.log("[useSSE] Connecting to:",E),f.current){const _=f.current;if(_.readyState===EventSource.OPEN||_.readyState===EventSource.CONNECTING){console.log("[useSSE] Already connected or connecting, skipping");return}_.close()}const w=new EventSource(E);f.current=w,w.onmessage=_=>{},w.addEventListener("update_completed",_=>{var R;try{const N=JSON.parse(_.data);(R=v.current)==null||R.call(v,{type:"completed",version:N.version})}catch{}}),w.addEventListener("update_major_available",_=>{var R;try{const N=JSON.parse(_.data);(R=v.current)==null||R.call(v,{type:"major",version:N.version})}catch{}}),w.addEventListener("full_reload",_=>{var R;try{const N=JSON.parse(_.data);(R=g.current)==null||R.call(g,N)}catch{}}),w.addEventListener("log_update",_=>{var R;try{const N=JSON.parse(_.data);(R=h.current)==null||R.call(h,N)}catch{}}),w.addEventListener("team_stats",_=>{var R;try{const N=JSON.parse(_.data);(R=y.current)==null||R.call(y,N)}catch{}}),w.addEventListener("sessions_update",_=>{var R;try{const N=JSON.parse(_.data);(R=x.current)==null||R.call(x,N)}catch{}}),w.onerror=()=>{console.log("[useSSE] Connection error, reconnecting in 3s..."),w.close(),f.current=null,m.current=setTimeout(S,3e3)}},[l,c,u]);return d.useEffect(()=>{if(!(!l&&!c&&!u))return console.log("[useSSE] Effect running, team:",l,"session:",c,"projectSessions:",u),S(),()=>{console.log("[useSSE] Cleanup"),f.current&&f.current.close(),m.current&&clearTimeout(m.current)}},[S,l,c,u]),{eventSource:f.current}}const HK="_sidebar_9l9yw_1",VK="_header_9l9yw_12",WK="_count_9l9yw_28",UK="_loading_9l9yw_37",qK="_sessionList_9l9yw_43",GK="_empty_9l9yw_49",KK="_sessionItem_9l9yw_56",XK="_sessionId_9l9yw_79",YK="_userMessage_9l9yw_86",QK="_sessionInfo_9l9yw_98",ZK="_time_9l9yw_111",Yo={sidebar:HK,header:VK,count:WK,loading:UK,sessionList:qK,empty:GK,sessionItem:KK,sessionId:XK,userMessage:YK,sessionInfo:QK,time:ZK};function JK(e){if(!e)return"";const t=new Date(e),r=new Date-t,o=Math.floor(r/6e4),i=Math.floor(r/36e5),l=Math.floor(r/864e5);return o<1?"刚刚":o<60?`${o}m 前`:i<24?`${i}h 前`:l<7?`${l}d 前`:t.toLocaleDateString("zh-CN",{month:"short",day:"numeric"})}function eX({projectId:e,onSelectSession:t}){const[n,r]=d.useState([]),[o,i]=d.useState(!0);Zv({projectSessions:e,onSessionsUpdate:c=>{r(c.sessions||[]),i(!1)}});const l=c=>{console.log("[SessionSidebar] Session clicked:",c.id),t(c);const u=`/session-monitor?session=${c.id}`;console.log("[SessionSidebar] Setting hash to:",u),window.location.hash=u};return C.jsxs("div",{className:Yo.sidebar,children:[C.jsxs("div",{className:Yo.header,children:[C.jsx("h3",{children:"Sessions"}),C.jsx("span",{className:Yo.count,children:n.length})]}),o?C.jsx("div",{className:Yo.loading,children:"Loading..."}):C.jsx("div",{className:Yo.sessionList,children:n.length===0?C.jsx("div",{className:Yo.empty,children:"No sessions"}):n.map(c=>C.jsxs("div",{className:Yo.sessionItem,onClick:()=>l(c),children:[c.lastUserMessage&&C.jsx("div",{className:Yo.userMessage,children:c.lastUserMessage}),C.jsx("div",{className:Yo.sessionId,children:c.id}),C.jsxs("div",{className:Yo.sessionInfo,children:[C.jsx("span",{className:Yo.time,children:JK(c.lastTimestamp)}),C.jsxs("span",{children:[c.requestCount," requests"]}),c.agents.length>0&&C.jsxs("span",{children:[c.agents.length," agents"]})]})]},c.id))})]})}const tX="_container_1oqck_8",nX="_grass_1oqck_30",rX="_decoration1_1oqck_41",oX="_decoration2_1oqck_52",aX="_decoration3_1oqck_63",iX="_decoration4_1oqck_74",sX="_background_1oqck_90",lX="_grid_1oqck_100",cX="_particles_1oqck_113",uX="_backgroundParticle_1oqck_121",dX="_hint_1oqck_151",fX="_stats_1oqck_164",mX="_stat_1oqck_164",pX="_statLabel_1oqck_187",gX="_statValue_1oqck_195",hX="_statDivider_1oqck_204",vX="_loadingState_1oqck_212",bX="_emptyState_1oqck_213",yX="_spinner_1oqck_228",xX="_emptyIcon_1oqck_252",SX="_errorText_1oqck_274",CX="_teamSelector_1oqck_282",wX="_selectorTitle_1oqck_292",EX="_teamList_1oqck_306",_X="_teamCard_1oqck_314",$X="_teamCardName_1oqck_349",NX="_teamCardIcon_1oqck_362",RX="_teamCardInfo_1oqck_367",OX="_teamCardMeta_1oqck_375",IX="_backButton_1oqck_388",TX="_teamName_1oqck_413",MX="_teamIcon_1oqck_435",PX="_emptyDetail_1oqck_440",kX="_teamDivider_1oqck_447",jX="_activeBadge_1oqck_453",AX="_createdAt_1oqck_479",LX="_sunOrbit_1oqck_727",BX="_sunOrbitInner_1oqck_739",kt={container:tX,grass:nX,decoration1:rX,decoration2:oX,decoration3:aX,decoration4:iX,background:sX,grid:lX,particles:cX,backgroundParticle:uX,hint:dX,stats:fX,stat:mX,statLabel:pX,statValue:gX,statDivider:hX,loadingState:vX,emptyState:bX,spinner:yX,emptyIcon:xX,errorText:SX,teamSelector:CX,selectorTitle:wX,teamList:EX,teamCard:_X,teamCardName:$X,teamCardIcon:NX,teamCardInfo:RX,teamCardMeta:OX,backButton:IX,teamName:TX,teamIcon:MX,emptyDetail:PX,teamDivider:kX,activeBadge:jX,createdAt:AX,sunOrbit:LX,sunOrbitInner:BX},zX=(e,t)=>({"team-lead":"#fbbf24",subagent:"#3b82f6",worker:"#22c55e",explorer:"#8b5cf6",analyst:"#ec4899",tester:"#06b6d4",reviewer:"#f59e0b"})[e],FS=e=>({"team-lead":"🤠",subagent:"👤",worker:"🔧",explorer:"🔍",analyst:"📊",tester:"🧪",reviewer:"👁️"})[e]||"👤";class DX extends Q.Component{constructor(){super(...arguments);Lt(this,"state",{teams:[],currentTeam:null,characters:[],memberRequests:{},messageAnimations:[],selectedCharacter:null,containerSize:{width:window.innerWidth,height:window.innerHeight-100},loading:!0,error:null,teamStats:null,memberGroups:[],teamMessages:[]});Lt(this,"containerRef",Q.createRef());Lt(this,"resizeObserver",null);Lt(this,"_lastNotifiedMemberRequests",null);Lt(this,"_loadedTeamId",null);Lt(this,"refreshTeamStats",async n=>{if(console.log("[refreshTeamStats] Called with team:",(n==null?void 0:n.id)||(n==null?void 0:n.name)),console.trace("[refreshTeamStats] Stack trace"),!n||!n.id){console.log("[refreshTeamStats] Skipping - invalid team:",n);return}try{const r=await fetch(`/api/teams/${n.id}/stats`);if(r.ok){const o=await r.json();this.setState({teamStats:o});const i=n.id||n.name,{onTeamDataChange:l}=this.props;l&&l(i,{stats:o})}}catch(r){console.error("Failed to refresh team stats:",r)}});Lt(this,"refreshTeamMessages",async n=>{try{const r=await fetch(`/api/teams/${n.id}/inbox`);if(r.ok){const i=(await r.json()).messages||[];this.setState(u=>({characters:u.characters.map(m=>{const g=i.filter(h=>h._member===m.name);return{...m,messages:g}}),teamMessages:i}));const l=n.id||n.name,{onTeamDataChange:c}=this.props;c&&c(l,{inbox:i})}}catch(r){console.error("Failed to refresh team messages:",r)}});Lt(this,"loadTeams",async()=>{try{const o=(await(await fetch("/api/teams")).json()).teams||[];this.setState({teams:o,loading:!1},()=>{if(this.props.selectedTeam){const i=this.props.selectedTeam.id||this.props.selectedTeam.name,l=o.find(c=>c.id===i||c.name===i);l&&this.selectTeamWithoutNavigation(l)}})}catch(n){console.error("Failed to load teams:",n),this.setState({loading:!1,error:n.message})}});Lt(this,"handleSessionSelect",n=>{console.log("[handleSessionSelect] Called, session:",n)});Lt(this,"handleSelectTeam",async n=>{const r=n.id||n.name;console.log("[handleSelectTeam] Called, teamId:",r,"_loadedTeamId:",this._loadedTeamId);const{teamData:o,onTeamDataChange:i}=this.props,l=o==null?void 0:o[r];if((l==null?void 0:l.stats)&&(l==null?void 0:l.inbox)!==void 0){console.log("[handleSelectTeam] Using cached data from global state:",l),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:l.stats,teamMessages:l.inbox||[]},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`});return}if(this._loadedTeamId===r){console.log("[handleSelectTeam] Team already loaded (component level), skipping API requests"),this.setState({currentTeam:n},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`});return}console.log("[handleSelectTeam] First load, fetching stats and inbox...");let u=null;try{const m=await fetch(`/api/teams/${n.id}/stats`);m.ok&&(u=await m.json())}catch(m){console.error("Failed to load team stats:",m)}let f=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(f=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||f)&&i(r,{stats:u,inbox:f}),this.setState({currentTeam:n,teamStats:u,teamMessages:f},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`})});Lt(this,"selectTeamWithoutNavigation",async n=>{const r=n.id||n.name,{teamData:o,onTeamDataChange:i}=this.props,l=o==null?void 0:o[r];if((l==null?void 0:l.stats)&&(l==null?void 0:l.inbox)!==void 0){console.log("[selectTeamWithoutNavigation] Using cached data from global state:",l),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:l.stats,teamMessages:l.inbox||[]},()=>{this.initializeCharacters()});return}if(this._loadedTeamId===r){console.log("[selectTeamWithoutNavigation] Team already loaded (component level), skipping API requests"),this.setState({currentTeam:n},()=>{this.initializeCharacters()});return}console.log("[selectTeamWithoutNavigation] First load, fetching stats and inbox...");let u=null;try{const m=await fetch(`/api/teams/${n.id}/stats`);m.ok&&(u=await m.json())}catch(m){console.error("Failed to load team stats:",m)}let f=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(f=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||f)&&i(r,{stats:u,inbox:f}),this.setState({currentTeam:n,teamStats:u,teamMessages:f},()=>{this.initializeCharacters()})});Lt(this,"handleBackToSelector",()=>{this.setState({currentTeam:null,characters:[],memberGroups:[],teamStats:null}),window.location.hash="/team"});Lt(this,"handleResize",()=>{if(this.containerRef.current){const{width:n,height:r}=this.containerRef.current.getBoundingClientRect();this.setState({containerSize:{width:n,height:r}}),this.updateCharacterPositions(n,r)}});Lt(this,"handleWindowResize",()=>{this.handleResize()});Lt(this,"handleSelectCharacter",n=>{this.setState(r=>({selectedCharacter:{...n,messages:n.messages.map(o=>({...o,read:!0}))},characters:r.characters.map(o=>o.id===n.id?{...o,messages:o.messages.map(i=>({...i,read:!0}))}:o)}))});Lt(this,"handleCloseDetail",()=>{this.setState({selectedCharacter:null})});Lt(this,"handleViewNetworkRequests",n=>{var i,l;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(l=this.state.currentTeam)!=null&&l.name)&&r.set("team",this.state.currentTeam.id||this.state.currentTeam.name),n!=null&&n.name&&r.set("member",n.name);const o=r.toString();window.location.hash="/raw"+(o?"?"+o:"")});Lt(this,"handleViewConversation",n=>{var i,l;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(l=this.state.currentTeam)!=null&&l.name)&&r.set("team",this.state.currentTeam.id||this.state.currentTeam.name),n!=null&&n.name&&r.set("member",n.name);const o=r.toString();window.location.hash="/chat"+(o?"?"+o:"")});Lt(this,"handleBackToTeam",()=>{this.setState({selectedCharacter:null});const n=this.state.currentTeam,r=(n==null?void 0:n.id)||(n==null?void 0:n.name);window.location.hash=r?`/monitor?team=${encodeURIComponent(r)}`:"/monitor"});Lt(this,"handleAnimationComplete",n=>{this.setState(r=>({messageAnimations:r.messageAnimations.filter(o=>o.id!==n)}))})}componentDidMount(){this.state.teams.length>0?this.loadTeams():this.loadTeams(),this.containerRef.current&&(this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.containerRef.current)),window.addEventListener("resize",this.handleWindowResize)}componentWillUnmount(){this.resizeObserver&&this.containerRef.current&&this.resizeObserver.unobserve(this.containerRef.current),window.removeEventListener("resize",this.handleWindowResize)}getMemberPrefixes(n){const r=[n],o=[/-[a-z\d]+$/i,/-[a-z]+-\d+$/i,/-[a-z]+[A-Z].*$/i];for(const i of o){const l=n.replace(i,"");l&&l!==n&&!r.includes(l)&&r.push(l)}return r}groupMembersByPrefix(n){const r=n.find(u=>u.name==="team-lead"||u.agentType==="team-lead"),i=n.filter(u=>u.name!=="team-lead"&&u.agentType!=="team-lead").map(u=>({member:u,prefixes:this.getMemberPrefixes(u.name)})),l={};i.forEach(({prefixes:u})=>{u.forEach(f=>{l[f]=(l[f]||0)+1})});const c={};return i.forEach(({member:u,prefixes:f})=>{let m=u.name;for(const g of f)if(l[g]>1){m=g;break}c[m]||(c[m]=[]),c[m].push(u)}),{teamLead:r,groups:c}}initializeCharacters(){var E;let n,r;if(this.containerRef.current){const w=this.containerRef.current.getBoundingClientRect();n=w.width,r=w.height}else({width:n,height:r}=this.state.containerSize);const{currentTeam:o,teamMessages:i}=this.state;if(console.log("=== initializeCharacters START ==="),console.log("currentTeam:",o),console.log("containerSize:",{width:n,height:r}),!o||!o.members||o.members.length===0){console.log("No currentTeam or members, returning");return}const l=n/2,c=r/2,{teamLead:u,groups:f}=this.groupMembersByPrefix(o.members),m=Object.keys(f).sort(),g=m.length;console.log("=== Team Layout Debug ==="),console.log("teamLead:",u==null?void 0:u.name),console.log("groups:",f),console.log("groupNames:",m),console.log("groupCount:",g),console.log("centerX:",l,"centerY:",c);const h=[],v=[];if(u){console.log("Adding team-lead (Sun)...");const w=(E=o.memberList)==null?void 0:E.find(O=>O.name===u.name),_=(w==null?void 0:w.unread)||0,R=i.filter(O=>O._member===u.name),N={id:u.agentId,name:u.name,type:"team-lead",color:zX("team-lead"),x:l-50,y:c-50,status:_>0?"active":"idle",mood:"idle",messages:R,avatar:FS(u.agentType),unreadCount:_};v.push(N),console.log("Added team-lead (Sun):",N)}const y=Math.min(n,r),x=Math.max(y*.32,220);m.forEach((w,_)=>{const R=f[w],N=R.length,I=2*Math.PI/g*_-Math.PI/2,P=l+x*Math.cos(I),M=c+x*Math.sin(I);console.log(`
428
428
  Group "${w}" (Planet #${_}):`),console.log(" Orbit position:",{x:P.toFixed(0),y:M.toFixed(0),angle:I.toFixed(2)}),console.log(" Members:",R.map(V=>V.name));let k=[];const A=Math.max(100,N*40);if(N>1){const V=2*Math.PI/N;R.forEach((H,W)=>{const z=W*V-Math.PI/2,K=P+A*Math.cos(z),q=M+A*Math.sin(z);k.push({x:K,y:q})})}else k.push({x:P,y:M});const j=[{primary:"#00fff7",secondary:"#00a8ff",name:"CYAN"},{primary:"#bf00ff",secondary:"#ff00ff",name:"PURPLE"},{primary:"#00ff88",secondary:"#00a8ff",name:"GREEN"},{primary:"#ff6600",secondary:"#ff00ff",name:"ORANGE"}],D=j[_%j.length],L=280;h.push({name:w,x:P,y:M,width:L,height:L,color:D,memberCount:N,orbitRadius:A}),R.forEach((V,H)=>{var U;const W=(U=o.memberList)==null?void 0:U.find(G=>G.name===V.name),z=(W==null?void 0:W.unread)||0,K=i.filter(G=>G._member===V.name),q=k[H],B={id:V.agentId,name:V.name,type:V.agentType||"subagent",color:D.primary,x:q.x,y:q.y,status:z>0?"active":"idle",mood:"idle",messages:K,avatar:FS(V.agentType),unreadCount:z};v.push(B)})});const S={teamLead:(u==null?void 0:u.name)||"none",groups:m,groupCount:g,characters:v.map(w=>({name:w.name,x:w.x,y:w.y,type:w.type})),memberGroups:h};window.__TEAM_DEBUG__=S,console.log("Debug info stored in window.__TEAM_DEBUG__"),console.log("=== initializeCharacters END ==="),this.setState({characters:v,memberGroups:h})}updateCharacterPositions(n,r){if(!n||!r)return;const{currentTeam:o,containerSize:i}=this.state;if(!o||!o.members||o.members.length===0||i&&i.width===n&&i.height===r)return;const l=n/2,c=r/2,{teamLead:u,groups:f}=this.groupMembersByPrefix(o.members),m=Object.keys(f).sort(),g=m.length,h=[],v=[],y=Math.min(n,r),x=Math.max(y*.22,150);if(u){const S=this.state.characters.find(E=>E.type==="team-lead");S&&h.push({...S,x:l-50,y:c-50})}m.forEach((S,E)=>{const w=f[S],_=w.length,N=2*Math.PI/g*E-Math.PI/2,O=l+x*Math.cos(N),I=c+x*Math.sin(N);let P=[];const M=85;if(_>1){const D=2*Math.PI/_;w.forEach((L,V)=>{const H=V*D-Math.PI/2,W=O+M*Math.cos(H),z=I+M*Math.sin(H);P.push({x:W,y:z})})}else P.push({x:O,y:I});const k=[{primary:"#00fff7",secondary:"#00a8ff",name:"CYAN"},{primary:"#bf00ff",secondary:"#ff00ff",name:"PURPLE"},{primary:"#00ff88",secondary:"#00a8ff",name:"GREEN"},{primary:"#ff6600",secondary:"#ff00ff",name:"ORANGE"}],A=k[E%k.length],j=280;v.push({name:S,x:O,y:I,width:j,height:j,color:A,memberCount:_,orbitRadius:M}),w.forEach(D=>{const L=this.state.characters.find(V=>V.name===D.name);if(L){const V=w.findIndex(H=>H.name===D.name);h.push({...L,x:P[V].x,y:P[V].y})}})}),this.setState({characters:h,memberGroups:v,containerSize:{width:n,height:r}})}componentDidUpdate(n,r){var o,i;if(this.props.selectedTeam&&this.props.selectedTeam!==n.selectedTeam){const l=this.props.selectedTeam;if(!this.state.currentTeam||this.state.currentTeam.id!==l.id){const c=this.state.teams.find(u=>u.id===l.id||u.name===l.id);c&&this.selectTeamWithoutNavigation(c)}}if(n.requests!==this.props.requests){this.updateCharactersFromRequests(),this.checkForNewMessages(n.requests,this.props.requests);const l=((o=n.requests)==null?void 0:o.length)||0,c=((i=this.props.requests)==null?void 0:i.length)||0,u=l>0&&c>l;this.state.currentTeam&&this.state.currentTeam.id&&u&&this.refreshTeamStats(this.state.currentTeam)}this.props.viewMode==="monitor"&&this.state.characters.length>0&&r.characters.length===0&&this.updateCharactersFromRequests(),this.props.viewMode==="monitor"&&n.viewMode!=="monitor"&&(this.state.currentTeam&&this.state.characters.length===0?this.initializeCharacters():this.updateCharactersFromRequests())}updateCharactersFromRequests(){const{requests:n,onMemberRequestsChange:r}=this.props;this.setState(o=>{const i={};o.characters.forEach(f=>{const m=f.name.toLowerCase(),g=n.filter(h=>{var S,E,w,_,R,N;if(f.type==="team-lead"){const O=h.teamMember||"";return!O||O===""||O.toLowerCase()===m||((E=(S=h.body)==null?void 0:S.metadata)==null?void 0:E.agent_id)===f.id}if((h.teamMember||"").split("@")[0].toLowerCase()===m||((_=(w=h.body)==null?void 0:w.metadata)==null?void 0:_.agent_id)===f.id)return!0;const x=(R=h.body)!=null&&R.system&&typeof((N=h.body)==null?void 0:N.system)=="string"?h.body.system.toLowerCase():"";return!!(x.includes(m)&&x.includes("teammate"))});i[f.name]=g});const l=o.characters.map(f=>{var R,N,O,I;const m=i[f.name]||[];let g=null;for(let P=m.length-1;P>=0;P--){const M=m[P];if((R=M.response)!=null&&R.body&&typeof M.response.body=="object"){g=M;break}}let h=null;const v=(N=g==null?void 0:g.response)==null?void 0:N.body;if(v&&typeof v=="object"&&v.usage){const P=v.usage,M=P.input_tokens||0,k=P.cache_read_input_tokens||0,A=P.cache_creation_input_tokens||0,j=M+k+A,D=2e5;let L=0;j>0&&(L=Math.round(j/D*100)),h={inputTokens:M,cacheRead:k,cacheCreate:A,totalInput:j,contextPercent:L}}let y=null;for(let P=m.length-1;P>=0;P--){const M=m[P];if((O=M.response)!=null&&O.body&&M.timestamp){y=new Date(M.timestamp).getTime();break}}const x=y&&Date.now()-y<1e4;let S="idle";x&&(S="working"),m.some(P=>{var M,k;return(k=(M=P.response)==null?void 0:M.body)==null?void 0:k.error})&&(S="error");const E=x?"active":"idle",w=((I=f.contextInfo)==null?void 0:I.contextPercent)??null,_=(h==null?void 0:h.contextPercent)??null;return f.status===E&&f.mood===S&&w===_?f:{...f,status:E,mood:S,contextInfo:h}}),c=l.some((f,m)=>f!==o.characters[m]),u=Object.keys(i).some(f=>JSON.stringify(i[f])!==JSON.stringify(o.memberRequests[f]||[]));if(!c&&!u)return null;if(r&&typeof r=="function"){const f=JSON.stringify(i),m=this._lastNotifiedMemberRequests?JSON.stringify(this._lastNotifiedMemberRequests):null;f!==m&&(this._lastNotifiedMemberRequests=i,console.log("[TeamView] Notifying memberRequests:",Object.keys(i),Object.entries(i).map(([g,h])=>`${g}: ${h.length}`).join(", ")),r(i))}return{characters:l,memberRequests:i}})}checkForNewMessages(n,r){if(!n||n.length===0)return;r.slice(n.length).forEach(i=>{this.triggerMessageAnimation(i)})}triggerMessageAnimation(n){const{characters:r}=this.state,o=r.find(l=>{var u,f,m;return(((u=n.url)==null?void 0:u.toLowerCase())||"").includes(l.name.toLowerCase())||((m=(f=n.body)==null?void 0:f.metadata)==null?void 0:m.agent_id)===l.id}),i=r.find(l=>l.type==="team-lead")||r[0];if(o&&i&&o.id!==i.id){const l={id:Date.now()+Math.random(),from:{x:o.x+50,y:o.y+50},to:{x:i.x+50,y:i.y+50}};this.setState(c=>({messageAnimations:[...c.messageAnimations,l]})),this.setState(c=>({characters:c.characters.map(u=>u.id===i.id?{...u,mood:"working"}:u)})),setTimeout(()=>{this.setState(c=>({characters:c.characters.map(u=>u.id===i.id?{...u,mood:"idle"}:u)}))},1500)}}render(){const{characters:n,messageAnimations:r,selectedCharacter:o,loading:i,error:l,currentTeam:c,teams:u,teamStats:f,memberGroups:m}=this.state,{requests:g,viewMode:h,teamData:v,onTeamDataChange:y}=this.props;return i?C.jsx("div",{className:kt.container,ref:this.containerRef,children:C.jsxs("div",{className:kt.loadingState,children:[C.jsx("div",{className:kt.spinner}),C.jsx("p",{children:"加载团队配置中..."})]})}):h==="team"?C.jsxs("div",{className:kt.container,ref:this.containerRef,children:[C.jsx(eX,{projectId:this.props.projectName,onSelectSession:this.handleSessionSelect}),C.jsxs("div",{className:kt.teamSelector,children:[C.jsxs("div",{className:kt.selectorTitle,children:[C.jsx("span",{className:kt.teamIcon,children:"👥"}),"选择要观察的团队"]}),C.jsx("div",{className:kt.teamList,children:u.length===0?C.jsxs("div",{className:kt.emptyState,children:[C.jsx("div",{className:kt.emptyIcon,children:"📭"}),C.jsx("h3",{children:"暂无可用团队"}),C.jsx("p",{children:"请先创建团队"}),C.jsx("div",{className:kt.hint,children:"团队配置存储在 ~/.claude/teams/"})]}):u.map(x=>{var S;return C.jsxs("div",{className:kt.teamCard,onClick:()=>this.handleSelectTeam(x),children:[C.jsxs("div",{className:kt.teamCardName,children:[C.jsx("span",{className:kt.teamCardIcon,children:"👥"}),x.name,x.isActive&&C.jsx("span",{className:kt.activeBadge,children:"活跃中"})]}),C.jsx("div",{className:kt.teamCardInfo,children:x.description||"暂无描述"}),C.jsxs("div",{className:kt.teamCardMeta,children:[((S=x.members)==null?void 0:S.length)||0," 成员",x.createdAt&&C.jsxs("span",{className:kt.createdAt,children:["创建于 ",new Date(x.createdAt).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})]})]})]},x.id||x.name)})})]})]}):l?C.jsx("div",{className:kt.container,ref:this.containerRef,children:C.jsxs("div",{className:kt.emptyState,children:[C.jsx("div",{className:kt.emptyIcon,children:"👥"}),C.jsx("h3",{children:"暂无团队配置"}),C.jsx("p",{children:"请先创建团队并添加成员"}),l&&C.jsxs("p",{className:kt.errorText,children:["错误: ",l]}),C.jsx("div",{className:kt.hint,children:"团队配置存储在 ~/.claude/teams/"}),c&&c.members&&c.members.length===0&&C.jsxs("p",{className:kt.emptyDetail,children:['团队 "',c.name,'" 暂无成员,请添加成员后刷新']})]})}):h==="monitor"&&n.length===0?C.jsx("div",{className:kt.container,ref:this.containerRef,children:C.jsxs("div",{className:kt.loadingState,children:[C.jsx("div",{className:kt.spinner}),C.jsx("p",{children:"加载团队数据中..."})]})}):C.jsxs("div",{className:kt.container,ref:this.containerRef,children:[C.jsx("div",{className:kt.backButton,onClick:this.handleBackToSelector,children:"← 返回团队列表"}),c&&C.jsxs("div",{className:kt.teamName,children:[C.jsx("span",{className:kt.teamIcon,children:"👥"}),c.name,C.jsx("span",{className:kt.teamDivider,children:"|"}),n.length," 成员"]}),C.jsxs("div",{className:kt.background,children:[C.jsx("div",{className:kt.grid}),C.jsx("div",{className:kt.particles,children:Array.from({length:15}).map((x,S)=>C.jsx("div",{className:kt.backgroundParticle,style:{left:`${Math.random()*100}%`,top:`${Math.random()*100}%`,animationDelay:`${Math.random()*5}s`,animationDuration:`${5+Math.random()*5}s`}},S))})]}),C.jsx("div",{className:kt.grass}),C.jsx("div",{className:kt.decoration1,children:"🌳"}),C.jsx("div",{className:kt.decoration2,children:"🌲"}),C.jsx("div",{className:kt.decoration3,children:"🌻"}),C.jsx("div",{className:kt.decoration4,children:"🪨"}),C.jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:1},children:[m.length>0&&C.jsxs(C.Fragment,{children:[C.jsx("div",{className:kt.sunOrbit,style:{width:"75%",height:"75%",maxWidth:"700px",maxHeight:"700px"}}),C.jsx("div",{className:kt.sunOrbitInner,style:{width:"45%",height:"45%",maxWidth:"400px",maxHeight:"400px"}})]}),m.map((x,S)=>{const E=x.color||{primary:"#00fff7",secondary:"#00a8ff"},w=x.orbitRadius||85;return C.jsxs("div",{style:{position:"absolute",left:x.x,top:x.y,transform:"translate(-50%, -50%)",zIndex:5,width:x.width,height:x.height},children:[C.jsx("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:w*2,height:w*2,border:`1px dashed ${E.primary}66`,borderRadius:"50%",opacity:.6,animation:"orbit-pulse 3s ease-in-out infinite"}}),C.jsx("div",{style:{position:"absolute",bottom:"-30px",left:"50%",transform:"translateX(-50%)",background:`linear-gradient(135deg, ${E.primary}22 0%, ${E.secondary}22 100%)`,border:`1px solid ${E.primary}`,borderRadius:"6px",padding:"6px 14px",fontSize:"11px",fontWeight:600,color:E.primary,fontFamily:"Orbitron, monospace",textTransform:"uppercase",letterSpacing:"0.1em",whiteSpace:"nowrap",boxShadow:`0 0 15px ${E.primary}33`,backdropFilter:"blur(10px)",textShadow:`0 0 8px ${E.primary}`},children:x.name})]},S)})]}),C.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:n.map(x=>C.jsx("div",{style:{position:"absolute",left:x.x,top:x.y,transform:"translate(-50%, -50%)",pointerEvents:"auto",zIndex:x.type==="team-lead"?15:10},children:C.jsx(W_,{character:x,isSelected:(o==null?void 0:o.id)===x.id,onSelect:this.handleSelectCharacter})},x.id))}),r.map(x=>C.jsx(dK,{from:x.from,to:x.to,duration:1200,onComplete:()=>this.handleAnimationComplete(x.id)},x.id)),C.jsx(U_,{character:o,visible:!!o,onClose:this.handleCloseDetail,onViewNetworkRequests:this.handleViewNetworkRequests,onViewConversation:this.handleViewConversation,onBackToTeam:this.handleBackToTeam}),C.jsx("div",{className:kt.hint,children:"点击角色查看详情 · 观察消息流动"}),C.jsxs("div",{className:kt.stats,children:[C.jsxs("div",{className:kt.stat,children:[C.jsx("span",{className:kt.statLabel,children:"成员"}),C.jsx("span",{className:kt.statValue,children:n.length})]}),C.jsx("div",{className:kt.statDivider,children:"|"}),C.jsxs("div",{className:kt.stat,children:[C.jsx("span",{className:kt.statLabel,children:"活跃"}),C.jsx("span",{className:kt.statValue,children:n.filter(x=>x.status==="active").length})]}),C.jsx("div",{className:kt.statDivider,children:"|"}),C.jsxs("div",{className:kt.stat,children:[C.jsx("span",{className:kt.statLabel,children:"消息"}),C.jsx("span",{className:kt.statValue,children:(f==null?void 0:f.messageCount)??0})]}),C.jsx("div",{className:kt.statDivider,children:"|"}),C.jsxs("div",{className:kt.stat,children:[C.jsx("span",{className:kt.statLabel,children:"请求"}),C.jsx("span",{className:kt.statValue,children:g.length})]})]})]})}}function FX({requests:e,projectName:t,selectedTeam:n,viewMode:r,onMemberRequestsChange:o,teamData:i,onTeamDataChange:l}){return C.jsx("div",{style:{display:"flex",height:"100%"},children:C.jsx(d.Suspense,{fallback:C.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"#999"},children:"加载中..."}),children:C.jsx(DX,{requests:e,projectName:t,selectedTeam:n,viewMode:r,onMemberRequestsChange:o,teamData:i,onTeamDataChange:l})})})}const HX="_container_8225t_5",VX="_header_8225t_31",WX="_backButton_8225t_56",UX="_title_8225t_77",qX="_sessionId_8225t_87",GX="_charactersArea_8225t_97",KX="_orbitRing_8225t_109",XX="_orbitRingInner_8225t_121",YX="_emptyState_8225t_157",QX="_emptyIcon_8225t_168",ca={container:HX,header:VX,backButton:WX,title:UX,sessionId:qX,charactersArea:GX,orbitRing:KX,orbitRingInner:XX,emptyState:YX,emptyIcon:QX},HS=["#fbbf24","#00fff7","#00ff88","#ff6600","#bf00ff","#ff00ff","#00a8ff","#f59e0b"];function ZX({sessionId:e,projectName:t,requests:n}){const r=d.useRef(null),[o,i]=d.useState(null),[l,c]=d.useState([]),[u,f]=d.useState({}),[m,g]=d.useState(null),[h,v]=d.useState(n||[]);Zv({session:e,onLogUpdate:w=>{console.log("[SessionView] Received log update:",w.length),v(_=>{const R=new Map;return _.forEach(N=>{const O=`${N.timestamp}|${N.url}`;R.set(O,N)}),w.forEach(N=>{const O=`${N.timestamp}|${N.url}`;R.set(O,N)}),Array.from(R.values())})},onFullReload:w=>{console.log("[SessionView] Full reload:",w.length),v(w)}});const y=d.useRef(new Map),x=d.useMemo(()=>{const w=new Map,_=h||[];console.log("[SessionView] Building characterMap from requests:",_.length),_.forEach(I=>{var M,k;if(!((M=I.response)!=null&&M.body))return;const P=I.mainAgent&&!I.agentName&&!Hd(I);if(console.log("[SessionView] Request:",(k=I.url)==null?void 0:k.slice(0,50),"mainAgent:",P,"agentName:",I.agentName),P)w.has("mainagent")||w.set("mainagent",{id:"mainagent",name:"MainAgent",type:"mainagent",color:"#fbbf24",avatar:"⬡",requests:[],status:"idle",contextInfo:null,messages:[]}),w.get("mainagent").requests.push(I);else{const A=I.agentName||Hd(I);if(A){const j=A;w.has(j)||w.set(j,{id:j,name:A,type:"agent",color:HS[w.size%HS.length],avatar:"◈",requests:[],status:"idle",contextInfo:null,messages:[]}),w.get(j).requests.push(I)}}});const R=2e5,N=Date.now(),O=300*1e3;return w.forEach((I,P)=>{var L,V;const M=I.requests||[];let k=null;for(let H=M.length-1;H>=0;H--){const W=M[H];if((L=W.response)!=null&&L.body&&typeof W.response.body=="object"){k=W;break}}let A=null;const j=(V=k==null?void 0:k.response)==null?void 0:V.body;if(j&&typeof j=="object"&&j.usage){const H=j.usage,W=H.input_tokens||0,z=H.cache_read_input_tokens||0,K=H.cache_creation_input_tokens||0,q=W+z+K;let B=0;q>0&&(B=Math.round(q/R*100)),A={inputTokens:W,cacheRead:z,cacheCreate:K,totalInput:q,contextPercent:B}}I.contextInfo=A;const D=M.length>0&&M.some(H=>{const W=new Date(H.timestamp).getTime();return N-W<O});I.status=D?"active":"idle",I.messages=M.map(H=>{var W;return{from:"system",text:`[${H.method}] ${(W=H.url)==null?void 0:W.slice(0,50)}...`,timestamp:H.timestamp,read:!0}})}),y.current=w,console.log("[SessionView] characterMap built, size:",w.size),w},[h]);d.useEffect(()=>{if(x.size>0){const w=Array.from(x.values()).sort((_,R)=>_.type==="mainagent"?-1:R.type==="mainagent"?1:0);console.log("[SessionView] Built characters from requests:",w.length),c(w)}},[x]),d.useEffect(()=>{if(!r.current||l.length===0)return;const w=()=>{const R=r.current.getBoundingClientRect(),N=R.width/2,O=R.height/2,I=l.find(A=>A.type==="mainagent"),P=l.filter(A=>A.type!=="mainagent"),M=P.length,k={};if(I&&(k[I.id]={x:N,y:O}),M>0){const A=Math.min(N,O)*.45,j=Math.max(0,(M-3)*30),L=Math.max(A,180)+j,V=2*Math.PI/M;P.forEach((H,W)=>{const z=V*W-Math.PI/2,K=N+L*Math.cos(z),q=O+L*Math.sin(z);k[H.id]={x:K,y:q}})}f(k)};return w(),window.addEventListener("resize",w),()=>window.removeEventListener("resize",w)},[l]),d.useEffect(()=>{S()},[e]);const S=async()=>{try{const w=await fetch(`/api/sessions/${e}/info`);if(w.ok){const _=await w.json();console.log("[SessionView] Session info loaded:",_),i(_)}else console.error("[SessionView] Failed to load session info:",w.status)}catch(w){console.error("[SessionView] Failed to load session info:",w)}},E=w=>{console.log("[SessionView] Character selected:",w);const _=y.current.get(w.id);console.log("[SessionView] charData:",_),g(_?{...w,..._,messages:w.messages||[]}:w)};return C.jsxs("div",{className:ca.container,children:[C.jsxs("div",{className:ca.header,children:[C.jsx("button",{className:ca.backButton,onClick:()=>window.location.hash="/team",children:"← 返回"}),C.jsxs("h2",{className:ca.title,children:["Session: ",C.jsx("span",{className:ca.sessionId,children:e})]})]}),C.jsxs("div",{className:ca.charactersArea,ref:r,children:[l.length>1&&C.jsxs(C.Fragment,{children:[C.jsx("div",{className:ca.orbitRing,style:{width:"90%",height:"90%",maxWidth:"700px",maxHeight:"700px"}}),C.jsx("div",{className:ca.orbitRingInner,style:{width:"60%",height:"60%",maxWidth:"450px",maxHeight:"450px"}})]}),l.length===0?C.jsxs("div",{className:ca.emptyState,children:[C.jsx("div",{className:ca.emptyIcon,children:"◌"}),C.jsx("h3",{children:"NO DATA"}),C.jsx("p",{children:"Waiting for request stream..."})]}):l.map(w=>{const _=u[w.id];return C.jsx("div",{style:{position:"absolute",left:_?_.x:"50%",top:_?_.y:"50%",transform:"translate(-50%, -50%)",zIndex:w.type==="mainagent"?10:5},children:C.jsx(W_,{character:w,isSelected:(m==null?void 0:m.id)===w.id,onSelect:E})},w.id)})]}),m&&C.jsx(U_,{character:m,visible:!!m,sessionMode:!0,sessionId:e,onClose:()=>g(null)})]})}function JX({requests:e,projectName:t,selectedSession:n,viewMode:r}){const i=new URLSearchParams(window.location.hash.split("?")[1]).get("session");return console.log("[SessionViewPage] Rendering with sessionId:",i,"selectedSession:",n),i?C.jsx("div",{style:{display:"flex",height:"100%"},children:C.jsx(d.Suspense,{fallback:C.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"#999"},children:"加载中..."}),children:C.jsx(ZX,{sessionId:i,projectName:t,requests:e})})}):C.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",color:"#999"},children:C.jsxs("div",{children:[C.jsx("h2",{children:"No session specified"}),C.jsx("p",{children:"Please provide a session ID in the URL"})]})})}function eY(){const e=parseInt(localStorage.getItem("ccv_cacheExpireAt"),10)||null,t=localStorage.getItem("ccv_cacheType")||null,n=Date.now(),r=e&&e>n?e:null;return{cacheExpireAt:r,cacheType:r?t:null}}function tY(e,t){return t?t.toLowerCase()==="mainagent"?e.mainAgent===!0:e.agentName===t:!0}const nY="_layout_1krbo_4",rY="_header_1krbo_10",oY="_content_1krbo_31",aY="_loadingOverlay_1krbo_178",iY="_loadingText_1krbo_192",Ul={layout:nY,header:rY,content:oY,loadingOverlay:aY,loadingText:iY};function sY(e,t){const[n,r]=d.useState(0),o=d.useRef(null);return d.useEffect(()=>{if(!e){r(0),o.current&&cancelAnimationFrame(o.current);return}const i=performance.now(),l=Math.min(800,Math.max(300,t*10)),c=()=>{const u=performance.now(),f=Math.min((u-i)/l,1);r(Math.round(f*t)),f<1&&(o.current=requestAnimationFrame(c))};return o.current=requestAnimationFrame(c),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t]),n}function lY(){const[e,t]=d.useState([]),[n,r]=d.useState(null),[o,i]=d.useState("team"),[l,c]=d.useState("request"),[u,f]=d.useState(380),[m,g]=d.useState(!1),[h,v]=d.useState(null),[y,x]=d.useState(""),[S,E]=d.useState(!0),[w,_]=d.useState(!0),[R,N]=d.useState(!1),[O,I]=d.useState(!1),[P,M]=d.useState(0),[k,A]=d.useState(!1),[j,D]=d.useState(null),[L,V]=d.useState(null),[H,W]=d.useState(null),[z,K]=d.useState(null),[q,B]=d.useState(!1),[U,G]=d.useState({}),[X,Z]=d.useState({}),{cacheExpireAt:te,cacheType:pe}=eY(),le=sY(O,P),fe=d.useCallback(ae=>{console.log("[handleLogUpdate] 收到新条目:",ae.length),!(!Array.isArray(ae)||ae.length===0)&&t(Ae=>{console.log("[handleLogUpdate] 更新 requests:",Ae.length,"->",Ae.length+ae.length);const Fe=new Map;return Ae.forEach(Je=>{const Ke=`${Je.timestamp}|${Je.url}`;Fe.set(Ke,Je)}),ae.forEach(Je=>{const Ke=`${Je.timestamp}|${Je.url}`;Fe.set(Ke,Je)}),Array.from(Fe.values())})},[]);Zv({team:(j==null?void 0:j.id)||(j==null?void 0:j.name)||null,session:L||null,onFullReload:ae=>{Array.isArray(ae)&&(console.log("[App useSSE] onFullReload:",ae.length,"entries"),t(ae))},onLogUpdate:fe});const we=d.useRef({hasTeam:!1,hasSession:!1});d.useEffect(()=>{const ae=(j==null?void 0:j.id)||(j==null?void 0:j.name),Ae=L,Fe=we.current,Je=Fe.hasTeam,Ke=Fe.hasSession;console.log("[App] Team/Session state change:",{previous:{hasTeam:Je,hasSession:Ke},current:{hasTeam:!!ae,hasSession:!!Ae}}),Ae&&!ae&&Je&&!Ke?(console.log("[App] Switching from TEAM mode to SESSION mode, clearing requests"),t([])):ae&&!Ae&&!Je&&Ke&&(console.log("[App] Switching from SESSION mode to TEAM mode, clearing requests"),t([])),we.current={hasTeam:!!ae,hasSession:!!Ae}},[j,L]),d.useEffect(()=>(fetch("/api/preferences").then(ae=>ae.json()).then(ae=>{ae.collapseToolResults!==void 0&&E(!!ae.collapseToolResults),ae.expandThinking!==void 0&&_(!!ae.expandThinking),ae.expandDiff!==void 0&&N(!!ae.expandDiff);const Ae=ae.filterIrrelevant!==void 0?!!ae.filterIrrelevant:!0;g(!Ae)}).catch(()=>{}),fetch("/api/user-profile").then(ae=>ae.json()).then(ae=>v(ae)).catch(()=>{}),fetch("/api/project-name").then(ae=>ae.json()).then(ae=>{console.log("[App] projectName loaded:",ae.projectName),x(ae.projectName||"")}).catch(()=>{}),fetch("/api/cli-mode").then(ae=>ae.json()).then(ae=>{ae.cliMode&&A(!0)}).catch(()=>{}),ce(),window.addEventListener("hashchange",ce),()=>{window.removeEventListener("hashchange",ce)}),[]);const ce=d.useCallback(()=>{const ae=window.location.hash.slice(1)||"/team",[Ae,Fe]=ae.split("?"),Je=new URLSearchParams(Fe||"");console.log("[App handleHashChange] Processing hash:",ae,"path:",Ae),Ae==="/raw"?i("raw"):Ae==="/chat"?i("chat"):Ae==="/monitor"?i("monitor"):Ae==="/team"?i("team"):Ae==="/session-monitor"&&(console.log("[App handleHashChange] Setting viewMode to session-monitor"),i("session-monitor"));const Ke=Je.get("session");Ke?(console.log("[App handleHashChange] Setting selectedSession:",Ke),V(Ke),D(null)):V(null);const nt=Je.get("agent");W(nt);const dt=Je.get("team");dt&&!Ke?D({id:dt,name:dt}):Ke||D(null);const tt=Je.get("scrollTs");tt&&(K(tt),i("chat"));const ht=Je.get("idx");ht&&r(parseInt(ht,10));const st=Je.get("tab");st&&c(st),Je.get("center")==="true"&&B(!0)},[]),me=d.useCallback(ae=>{r(ae),$e({idx:ae})},[]),be=d.useCallback(ae=>{c(ae),$e({tab:ae})},[]),Se=d.useCallback(ae=>{i("chat"),K(ae),$e({scrollTs:ae})},[]),ge=d.useCallback(ae=>{i("raw"),r(ae),$e({idx:ae})},[]),ie=d.useCallback(ae=>{G(ae)},[]),ve=d.useCallback((ae,Ae)=>{Z(Fe=>({...Fe,[ae]:{...Fe[ae],...Ae,loadedAt:Date.now()}}))},[]),$e=d.useCallback(ae=>{const Ae=window.location.hash.slice(1)||"/team",[Fe,Je]=Ae.split("?"),Ke=new URLSearchParams(Je||"");Object.entries(ae).forEach(([dt,tt])=>{tt==null?Ke.delete(dt):Ke.set(dt,String(tt))});const nt=Ke.toString()?`${Fe}?${Ke.toString()}`:Fe;window.location.hash=nt},[]),Te=bz(e||[]),De=m?e||[]:Te,ke=d.useMemo(()=>{const ae=window.location.hash.slice(1),[,Ae]=ae.split("?");return new URLSearchParams(Ae||"").get("member")||null},[o]),je=d.useMemo(()=>{if(!j||!ke)return e||[];const ae=ke.split("@")[0].toLowerCase(),Ae=ae==="team-lead";return(e||[]).filter(Fe=>{var nt,dt,tt,ht,st,He;if(Ae)return!Hd(Fe);const Je=Hd(Fe);if(Je&&Je.split("@")[0].toLowerCase()===ae||((dt=(nt=Fe.body)==null?void 0:nt.metadata)==null?void 0:dt.agent_id)===ke)return!0;const Ke=(tt=Fe.body)!=null&&tt.system&&typeof((ht=Fe.body)==null?void 0:ht.system)=="string"?Fe.body.system.toLowerCase():Array.isArray((st=Fe.body)==null?void 0:st.system)?(He=Fe.body)==null?void 0:He.system.map(lt=>(lt==null?void 0:lt.text)||"").join("").toLowerCase():"";return!!(Ke.includes(ae)&&Ke.includes("teammate"))})},[j,ke,e]),Pe=d.useMemo(()=>!L||!H?e||[]:(e||[]).filter(ae=>tY(ae,H)),[L,H,e]);return e.length>0&&(Te.length===0||De.length===0)&&console.log("[数据调试] requests:",e.length,"relevantRequests:",Te.length,"filteredRequests:",De.length,"showAll:",m),C.jsxs(ya,{theme:{algorithm:HL.darkAlgorithm,token:{colorBgContainer:"#111",colorBgLayout:"#0a0a0a",colorBgElevated:"#1a1a1a",colorBorder:"#2a2a2a"}},children:[O&&C.jsx("div",{className:Ul.loadingOverlay,children:C.jsxs("div",{className:Ul.loadingText,children:["Loading...(",le,")"]})}),C.jsxs(fi,{className:Ul.layout,children:[C.jsx(fi.Header,{className:Ul.header,children:C.jsx(kh,{requestCount:o==="monitor"||o==="team"?De.length:o==="session-monitor"?Pe.length:je.length,requests:o==="monitor"||o==="team"?De:o==="session-monitor"?Pe:je,viewMode:o,cacheExpireAt:te,cacheType:pe,projectName:y,collapseToolResults:S,onCollapseToolResultsChange:E,expandThinking:w,onExpandThinkingChange:_,expandDiff:R,onExpandDiffChange:N,filterIrrelevant:!m,onFilterIrrelevantChange:ae=>g(!ae),cliMode:k,selectedTeam:j})}),C.jsx(fi.Content,{className:Ul.content,children:C.jsx(cY,{viewMode:o,requests:De,allRequests:e,selectedIndex:n,currentTab:l,scrollCenter:q,chatScrollToTs:z,userProfile:h,collapseToolResults:S,expandThinking:w,expandDiff:R,leftPanelWidth:u,selectedTeam:j,selectedSession:L,currentAgent:H,projectName:y,currentMember:ke,filteredMemberRequests:je,filteredAgentRequests:Pe,onSelectRequest:me,onScrollDone:()=>B(!1),onTabChange:be,onViewInChat:Se,onViewRequest:ge,onResize:f,memberRequests:U,onMemberRequestsChange:ie,teamData:X,onTeamDataChange:ve})})]})]})}function cY(e){var L;console.log("[MainContent] props.requests.length:",(L=e.requests)==null?void 0:L.length);const{viewMode:t,requests:n,allRequests:r,selectedIndex:o,currentTab:i,scrollCenter:l,chatScrollToTs:c,userProfile:u,collapseToolResults:f,expandThinking:m,expandDiff:g,leftPanelWidth:h,selectedTeam:v,selectedSession:y,currentAgent:x,projectName:S,currentMember:E,filteredMemberRequests:w,filteredAgentRequests:_,onSelectRequest:R,onScrollDone:N,onTabChange:O,onViewInChat:I,onViewRequest:P,onResize:M,memberRequests:k,onMemberRequestsChange:A,teamData:j,onTeamDataChange:D}=e;if(t==="raw"){const V=y?_:w;return console.log("[MainContent] raw view:",{selectedSession:y,currentAgent:x,currentMember:E,memberRequestKeys:Object.keys(k),filteredCount:V.length,allRequestsCount:r.length}),C.jsx(KV,{requests:V,selectedIndex:o,currentTab:i,scrollCenter:l,onSelectRequest:R,onScrollDone:N,onTabChange:O,onViewInChat:I,expandDiff:g,leftPanelWidth:h,onResize:M,onBackToTeam:()=>{if(y)window.location.hash=`/session-monitor?session=${encodeURIComponent(y)}`;else{const H=(v==null?void 0:v.id)||(v==null?void 0:v.name);window.location.hash=H?`/monitor?team=${encodeURIComponent(H)}`:"/monitor"}}})}if(t==="chat"){const V=y?_:w;return console.log("[MainContent] chat view:",{selectedSession:y,currentAgent:x,currentMember:E,memberRequestKeys:Object.keys(k),filteredCount:V.length,allRequestsCount:r.length}),C.jsx(kG,{requests:V,userProfile:u,collapseToolResults:f,expandThinking:m,onViewRequest:P,chatScrollToTs:c,onScrollTsDone:()=>{},cliMode:!1,onBackToTeam:()=>{if(y)window.location.hash=`/session-monitor?session=${encodeURIComponent(y)}`;else{const H=(v==null?void 0:v.id)||(v==null?void 0:v.name);window.location.hash=H?`/monitor?team=${encodeURIComponent(H)}`:"/monitor"}}})}return t==="team"||t==="monitor"?C.jsx(FX,{requests:n,projectName:S,selectedTeam:v,viewMode:t,onMemberRequestsChange:A,teamData:j,onTeamDataChange:D}):t==="session-monitor"?C.jsx(JX,{requests:n,projectName:S,selectedSession:y,viewMode:t}):null}const uY=T3.createRoot(document.getElementById("root"));uY.render(C.jsx(lY,{}));
@@ -7,4 +7,4 @@
7
7
 
8
8
  Outdated base version: https://github.com/primer/github-syntax-dark
9
9
  Current colors taken from GitHub's CSS
10
- */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}._fileContentView_1ti8s_1{display:flex;flex-direction:column;height:100%;background:#0d0d0d}._header_1ti8s_8{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid #2a2a2a;background:#111;flex-shrink:0}._headerLeft_1ti8s_18{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._backBtn_1ti8s_26{width:28px;height:28px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;flex-shrink:0;transition:background .15s,color .15s}._backBtn_1ti8s_26:hover{color:#ccc;background:#1a1a1a}._filePath_1ti8s_47{font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fileSize_1ti8s_55{font-size:11px;color:#666;flex-shrink:0}._contentContainer_1ti8s_61{flex:1;overflow:hidden;background:#0d0d0d;display:flex}._codeBlock_1ti8s_68{display:flex;flex:1;min-height:0;min-width:0;overflow:hidden}._lineNumberCol_1ti8s_76{flex-shrink:0;overflow:hidden;background:#0d0d0d;border-right:1px solid #2a2a2a;-webkit-user-select:none;user-select:none}._lineNumberRow_1ti8s_84{padding:0 16px;text-align:right;color:#555;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:13px;line-height:1.5;white-space:nowrap}._codeCol_1ti8s_94{flex:1;overflow:auto;min-width:0}._codeContent_1ti8s_100{padding:0;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:13px;line-height:1.5;color:#e0e0e0;-moz-tab-size:2;tab-size:2;margin:0;width:fit-content;min-width:100%}._codeContent_1ti8s_100 code{font-family:inherit;font-size:inherit;line-height:inherit;background:none;padding:0;display:block}._lineContentRow_1ti8s_121{padding:0 16px;white-space:pre}._loading_1ti8s_126{display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-size:14px}._error_1ti8s_135{display:flex;align-items:center;justify-content:center;height:100%;color:#ff6b6b;font-size:14px}._centerEmpty_8tuwm_1{display:flex;align-items:center;justify-content:center;height:100%}._container_8tuwm_8{flex:1;overflow:auto;padding:16px 24px;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._sessionDividerText_8tuwm_18{font-size:11px;color:#555}._lastResponseLabel_8tuwm_23{font-size:11px}._splitContainer_8tuwm_27{display:flex;flex-direction:row;height:100%;overflow:hidden}._chatSection_8tuwm_34{display:flex;flex-direction:column;min-width:0;overflow:hidden}._vResizer_8tuwm_41{width:5px;background:#1a1a1a;cursor:col-resize;flex-shrink:0;border-left:1px solid #2a2a2a;border-right:1px solid #2a2a2a;transition:background .15s}._vResizer_8tuwm_41:hover{background:#2a2a2a}._snapLine_8tuwm_55{position:absolute;top:0;bottom:0;width:2px;background:transparent;border-left:2px dashed rgba(255,255,255,.1);pointer-events:none;z-index:1000;transition:all .15s}._snapLineActive_8tuwm_67{position:absolute;top:0;bottom:0;width:2px;background:transparent;border-left:2px dashed rgba(255,255,255,.5);pointer-events:none;z-index:1001}._snapLineLabel_8tuwm_78{position:absolute;top:50%;left:8px;transform:translateY(-50%);background:#ffffffe6;color:#000;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;box-shadow:0 2px 8px #0000004d}._snapPreview_8tuwm_94{position:absolute;top:0;bottom:0;background:#ffffff1a;pointer-events:none;z-index:999}._vResizer_8tuwm_41:hover{background:#333}._chatInputBar_8tuwm_107{display:flex;align-items:flex-end;gap:8px;padding:10px 16px;background:#111;border-top:1px solid #2a2a2a;flex-shrink:0}._chatInputWrapper_8tuwm_117{flex:1;display:flex;flex-direction:column;background:#1a1a1a;border:1px solid #333;border-radius:12px;transition:border-color .2s;overflow:hidden}._chatInputWrapper_8tuwm_117:focus-within{border-color:#555}._chatTextareaWrap_8tuwm_132{position:relative;flex:1}._chatTextarea_8tuwm_132{width:100%;min-height:22px;max-height:120px;padding:10px 14px;background:transparent;color:#e0e0e0;border:none;outline:none;resize:none;font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}._chatTextarea_8tuwm_132::placeholder{color:#555}._chatInputHint_8tuwm_156{font-size:11px;color:#444;padding:0 14px 6px;-webkit-user-select:none;user-select:none}._chatSendBtn_8tuwm_163{width:36px;height:36px;border-radius:10px;border:none;background:#4a9eff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,opacity .15s}._chatSendBtn_8tuwm_163:hover{background:#3a8eef}._chatSendBtn_8tuwm_163:disabled{opacity:.35;cursor:default}._chatSendBtn_8tuwm_163 svg{width:18px;height:18px}._messageListWrap_8tuwm_192{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}._stickyBottomBtn_8tuwm_200{position:absolute;left:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;height:60px;justify-content:center;border-radius:0;border:none;background:none;color:#999;font-size:12px;cursor:pointer;transition:color .15s;z-index:10;box-shadow:none}._stickyBottomBtn_8tuwm_200 span{background:#00000080;padding:2px 10px;border-radius:10px}._stickyBottomBtn_8tuwm_200:hover{color:#fff;background:none}._ptyPromptBubble_8tuwm_233{margin:8px 0;padding:12px 16px;border-radius:12px;border:1px solid #3a3a3a;background:#161616;animation:_ptyPromptFadeIn_8tuwm_1 .25s ease-out}._ptyPromptResolved_8tuwm_242{opacity:.55}@keyframes _ptyPromptFadeIn_8tuwm_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._ptyPromptQuestion_8tuwm_251{font-size:13px;color:#ccc;margin-bottom:10px;line-height:1.4}._ptyPromptOptions_8tuwm_258{display:flex;flex-wrap:wrap;gap:8px}._ptyPromptOption_8tuwm_258{padding:6px 14px;border-radius:18px;border:1px solid #3a3a3a;background:#1a1a1a;color:#bbb;font-size:12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}._ptyPromptOption_8tuwm_258:hover{background:#2a2a2a;color:#eee;border-color:#555}._ptyPromptOptionPrimary_8tuwm_282{padding:6px 14px;border-radius:18px;border:1px solid #4a9eff;background:#4a9eff26;color:#4a9eff;font-size:12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}._ptyPromptOptionPrimary_8tuwm_282:hover{background:#4a9eff40;color:#6ab4ff;border-color:#6ab4ff}._ptyPromptOptionChosen_8tuwm_300{padding:6px 14px;border-radius:18px;border:1px solid #4a9eff;background:#4a9eff33;color:#4a9eff;font-size:12px;cursor:default;white-space:nowrap}._ptyPromptOptionDimmed_8tuwm_311{padding:6px 14px;border-radius:18px;border:1px solid #2a2a2a;background:transparent;color:#444;font-size:12px;cursor:default;white-space:nowrap}._ghostText_8tuwm_322{position:absolute;top:0;left:0;right:0;padding:10px 14px;color:#444;font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;pointer-events:none;white-space:pre-wrap;overflow:hidden;max-height:120px}._suggestionChip_8tuwm_338{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#1a1a1a;border-top:1px solid #2a2a2a;cursor:pointer;flex-shrink:0;transition:background .15s}._suggestionChip_8tuwm_338:hover{background:#222}._suggestionChipText_8tuwm_354{flex:1;color:#555;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._suggestionChipAction_8tuwm_363{color:#4a9eff;font-size:14px;flex-shrink:0}._navSidebar_8tuwm_369{width:40px;flex-shrink:0;background:#0d0d0d;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;align-items:center;padding-top:8px;gap:4px}._navBtn_8tuwm_381{width:32px;height:32px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navBtn_8tuwm_381:hover{color:#ccc;background:#1a1a1a}._navBtnActive_8tuwm_401{width:32px;height:32px;border:none;background:#4a9eff26;color:#4a9eff;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navBtnActive_8tuwm_401:hover{background:#4a9eff40;color:#6ab4ff}._cyberCharacter_n8txo_8{position:absolute;cursor:pointer;transition:all var(--transition-normal);z-index:10}._cyberCharacter_n8txo_8._hovered_n8txo_15{z-index:20}._cyberCharacter_n8txo_8._selected_n8txo_19{z-index:30}._unreadBadge_n8txo_26{position:absolute;top:-12px;right:-12px;background:linear-gradient(135deg,var(--neon-pink) 0%,#dc2626 100%);border:1px solid var(--neon-pink);border-radius:var(--radius-sm);min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;z-index:100;box-shadow:0 0 15px var(--neon-pink-dim),0 0 30px var(--neon-pink-dim);animation:_badge-glow_n8txo_1 2s ease-in-out infinite}@keyframes _badge-glow_n8txo_1{0%,to{box-shadow:0 0 15px var(--neon-pink-dim),0 0 30px var(--neon-pink-dim)}50%{box-shadow:0 0 25px var(--neon-pink-dim),0 0 50px var(--neon-pink-dim)}}._unreadCount_n8txo_52{color:var(--text-bright);font-size:12px;font-weight:700;font-family:var(--font-mono)}._pulse_n8txo_59{position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:var(--radius-sm);border:2px solid var(--neon-pink);opacity:0;animation:_cyber-pulse_n8txo_1 2s ease-out infinite;z-index:-1}@keyframes _cyber-pulse_n8txo_1{0%{transform:scale(1);opacity:.6}to{transform:scale(1.8);opacity:0}}._hologramContainer_n8txo_86{position:relative;width:64px;height:64px;display:flex;align-items:center;justify-content:center}._outerRing_n8txo_96{position:absolute;width:100%;height:100%;border:2px solid transparent;border-top-color:var(--cyber-color, var(--neon-cyan));border-right-color:var(--cyber-color, var(--neon-cyan));border-radius:50%;animation:_cyber-rotate_n8txo_1 8s linear infinite;opacity:.6}._cyberCharacter_n8txo_8._hovered_n8txo_15 ._outerRing_n8txo_96{animation-duration:4s;opacity:.9}._innerRing_n8txo_114{position:absolute;width:80%;height:80%;border:1px solid transparent;border-bottom-color:var(--cyber-color, var(--neon-cyan));border-left-color:var(--cyber-color, var(--neon-cyan));border-radius:50%;animation:_cyber-rotate-reverse_n8txo_1 6s linear infinite;opacity:.4}._cyberCharacter_n8txo_8._hovered_n8txo_15 ._innerRing_n8txo_114{animation-duration:3s;opacity:.7}@keyframes _cyber-rotate_n8txo_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _cyber-rotate-reverse_n8txo_1{0%{transform:rotate(360deg)}to{transform:rotate(0)}}._cyberCore_n8txo_142{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--cyber-darker);border:2px solid var(--cyber-color, var(--neon-cyan));border-radius:50%;box-shadow:0 0 20px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 10px #00000080;transition:all var(--transition-normal);z-index:5}._cyberCharacter_n8txo_8._hovered_n8txo_15 ._cyberCore_n8txo_142{transform:scale(1.1);box-shadow:0 0 30px var(--cyber-color, var(--neon-cyan-dim)),0 0 60px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 15px #00000080}._cyberCharacter_n8txo_8._selected_n8txo_19 ._cyberCore_n8txo_142{box-shadow:0 0 40px var(--cyber-color, var(--neon-cyan-dim)),0 0 80px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 20px var(--cyber-color, var(--neon-cyan-dim));border-width:3px}._cyberIcon_n8txo_178{font-size:24px;color:var(--cyber-color, var(--neon-cyan));filter:drop-shadow(0 0 8px var(--cyber-color, var(--neon-cyan-dim)));animation:_icon-pulse_n8txo_1 3s ease-in-out infinite}@keyframes _icon-pulse_n8txo_1{0%,to{opacity:1;filter:drop-shadow(0 0 8px var(--cyber-color, var(--neon-cyan-dim)))}50%{opacity:.8;filter:drop-shadow(0 0 15px var(--cyber-color, var(--neon-cyan-dim)))}}._dataFlow_n8txo_197{position:absolute;width:100%;height:100%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,var(--cyber-color, var(--neon-cyan-dim)) 90deg,transparent 180deg,var(--cyber-color, var(--neon-cyan-dim)) 270deg,transparent 360deg);animation:_data-flow_n8txo_1 4s linear infinite;opacity:.3}@keyframes _data-flow_n8txo_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._glowEffect_n8txo_220{position:absolute;width:120%;height:120%;border-radius:50%;background:radial-gradient(circle,var(--cyber-color, var(--neon-cyan-dim)) 0%,transparent 70%);animation:_glow-pulse_n8txo_1 3s ease-in-out infinite;pointer-events:none}@keyframes _glow-pulse_n8txo_1{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}._nameTag_n8txo_248{position:absolute;bottom:-32px;left:50%;transform:translate(-50%);background:#0a0a0ff2;color:var(--text-bright);padding:6px 14px;border-radius:var(--radius-sm);font-size:11px;white-space:nowrap;border:1px solid var(--border-medium);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;box-shadow:0 4px 16px #0006;max-width:100px;overflow:hidden;text-overflow:ellipsis}._contextBadge_n8txo_272{position:absolute;bottom:-32px;left:100%;margin-left:8px;white-space:nowrap;font-size:10px;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-weight:700}._cyberCharacter_n8txo_8._selected_n8txo_19 ._nameTag_n8txo_248{border-color:var(--cyber-color, var(--neon-cyan));box-shadow:0 0 20px var(--cyber-color, var(--neon-cyan-dim))}._statusIndicator_n8txo_293{position:absolute;top:-36px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px 12px;background:#0a0a0ff2;border:1px solid var(--border-medium);border-radius:var(--radius-sm);white-space:nowrap;font-size:10px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px #0006}._statusIcon_n8txo_314{font-size:14px;color:var(--cyber-color, var(--neon-cyan));filter:drop-shadow(0 0 6px var(--cyber-color, var(--neon-cyan-dim)))}._statusText_n8txo_320{color:var(--text-secondary);font-weight:600}._status-active_n8txo_325{border-color:var(--neon-green);background:#0a0a0ff2;box-shadow:0 0 15px var(--neon-green-dim)}._status-active_n8txo_325 ._statusIcon_n8txo_314{color:var(--neon-green);filter:drop-shadow(0 0 8px var(--neon-green-dim))}._status-working_n8txo_336{border-color:var(--neon-cyan);background:#0a0a0ff2;box-shadow:0 0 15px var(--neon-cyan-dim)}._status-working_n8txo_336 ._statusIcon_n8txo_314{color:var(--neon-cyan);filter:drop-shadow(0 0 8px var(--neon-cyan-dim))}._status-idle_n8txo_347{border-color:var(--border-medium);background:#0a0a0ff2}._status-idle_n8txo_347 ._statusIcon_n8txo_314{color:var(--text-dim)}._status-error_n8txo_356{border-color:var(--neon-pink);background:#0a0a0ff2;box-shadow:0 0 15px var(--neon-pink-dim);animation:_error-pulse_n8txo_1 2s ease-in-out infinite}._status-error_n8txo_356 ._statusIcon_n8txo_314{color:var(--neon-pink);filter:drop-shadow(0 0 8px var(--neon-pink-dim))}@keyframes _error-pulse_n8txo_1{0%,to{box-shadow:0 0 15px var(--neon-pink-dim)}50%{box-shadow:0 0 25px var(--neon-pink-dim),0 0 50px var(--neon-pink-dim)}}._statusPulse_n8txo_377{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--radius-sm);background:var(--neon-green);opacity:.2;animation:_status-pulse_n8txo_1 2s ease-in-out infinite;z-index:-1;pointer-events:none}@keyframes _status-pulse_n8txo_1{0%,to{opacity:.1}50%{opacity:.3}}._contextBar_n8txo_403{position:absolute;top:50%;right:-80px;transform:translateY(-50%);display:flex;align-items:center;gap:8px;background:#0a0a0ff2;border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:8px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px #0006}._contextBarBg_n8txo_419{width:60px;height:6px;background:var(--cyber-darker);border-radius:3px;overflow:hidden;border:1px solid var(--border-subtle)}._contextBarFill_n8txo_428{height:100%;border-radius:3px;transition:width var(--transition-normal);position:relative}._contextBarFill_n8txo_428:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:_shimmer_n8txo_1 2s linear infinite}@keyframes _shimmer_n8txo_1{0%{transform:translate(-100%)}to{transform:translate(100%)}}._contextBarFill_n8txo_428._context-danger_n8txo_451{background:linear-gradient(90deg,var(--neon-pink),#dc2626);box-shadow:0 0 10px var(--neon-pink-dim)}._contextBarFill_n8txo_428._context-warning_n8txo_456{background:linear-gradient(90deg,var(--neon-orange),#f59e0b);box-shadow:0 0 10px var(--neon-orange-dim)}._contextBarFill_n8txo_428._context-safe_n8txo_461{background:linear-gradient(90deg,var(--neon-green),#22c55e);box-shadow:0 0 10px var(--neon-green-dim)}._contextText_n8txo_466{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-secondary);min-width:40px;text-align:right}._dataHint_n8txo_478{position:absolute;top:-40px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#0a0a0ff2;border:1px solid var(--neon-cyan);border-radius:var(--radius-sm);padding:6px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 20px var(--neon-cyan-dim);animation:_hint-float_n8txo_1 .3s ease}@keyframes _hint-float_n8txo_1{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}._dataIcon_n8txo_506{font-size:14px;color:var(--neon-cyan);filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._dataCount_n8txo_512{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--neon-cyan)}._cyberCharacter_n8txo_8._selected_n8txo_19 ._hologramContainer_n8txo_86{animation:_selected-glow_n8txo_1 2s ease-in-out infinite}@keyframes _selected-glow_n8txo_1{0%,to{filter:drop-shadow(0 0 20px var(--cyber-color, var(--neon-cyan-dim)))}50%{filter:drop-shadow(0 0 40px var(--cyber-color, var(--neon-cyan-dim)))}}._cyberCharacter_n8txo_8:hover ._hologramContainer_n8txo_86{transform:scale(1.05)}._cyberCharacter_n8txo_8:hover ._outerRing_n8txo_96{border-width:3px;opacity:1}._cyberCharacter_n8txo_8:hover ._innerRing_n8txo_114{border-width:2px;opacity:.9}._messageEnvelope_12k2o_1{position:absolute;pointer-events:none;z-index:50;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));transition:opacity .3s ease}._particles_12k2o_9{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._particle_12k2o_9{position:absolute;width:6px;height:6px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:50%;animation:_particleFloat_12k2o_1 .6s ease-out infinite}@keyframes _particleFloat_12k2o_1{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx, -10px),var(--ty, 10px)) scale(0);opacity:0}}._panel_1c46t_5{position:fixed!important;top:64px!important;right:0!important;left:auto!important;bottom:0!important;width:420px!important;height:calc(100vh - 64px)!important;max-height:calc(100vh - 64px)!important;background:var(--cyber-panel, #11111a);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--border-medium, rgba(255, 255, 255, .12));display:flex!important;flex-direction:column!important;z-index:1000!important;animation:_panel-slide-in_1c46t_1 .3s ease;box-shadow:-10px 0 40px #00000080;overflow:hidden}._panel_1c46t_5:before{content:"";position:absolute;top:0;left:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--neon-cyan),var(--neon-purple),var(--neon-cyan));opacity:.5;box-shadow:0 0 20px var(--neon-cyan-dim)}@keyframes _panel-slide-in_1c46t_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}._header_1c46t_52{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border-medium);background:linear-gradient(180deg,var(--cyber-panel-light) 0%,var(--cyber-panel) 100%)}._header_1c46t_52:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._headerLeft_1c46t_72{display:flex;align-items:center;gap:16px}._backButton_1c46t_78{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:var(--cyber-darker);color:var(--neon-cyan);font-size:14px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}._backButton_1c46t_78:hover{background:var(--neon-cyan-dim);border-color:var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim);transform:scale(1.05)}._avatar_1c46t_100{width:56px;height:56px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:var(--neon-cyan);background:var(--cyber-darker);border:2px solid var(--border-medium);box-shadow:0 0 20px var(--neon-cyan-dim),inset 0 0 10px #00000080;position:relative}._avatar_1c46t_100:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:var(--radius-md);border:1px solid var(--neon-cyan);opacity:.3}._title_1c46t_129{flex:1}._name_1c46t_133{margin:0;font-size:18px;color:var(--text-bright);font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;text-shadow:0 0 10px var(--neon-cyan-dim)}._meta_1c46t_144{display:flex;align-items:center;gap:12px;margin-top:6px}._messageCount_1c46t_151{font-size:11px;color:var(--text-dim);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._closeButton_1c46t_159{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:var(--cyber-darker);color:var(--text-dim);font-size:18px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}._closeButton_1c46t_159:hover{background:var(--neon-pink-dim);border-color:var(--neon-pink);color:var(--neon-pink);box-shadow:0 0 15px var(--neon-pink-dim)}._actionButtons_1c46t_184{display:flex;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border-medium);background:var(--cyber-darker)}._actionButton_1c46t_184{flex:1;height:44px;font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:12px}._stats_1c46t_205{display:flex;justify-content:space-around;padding:24px;border-bottom:1px solid var(--border-medium);background:var(--neon-cyan-dim);position:relative}._stats_1c46t_205:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._statItem_1c46t_225{text-align:center}._statValue_1c46t_229{font-size:28px;font-weight:700;color:var(--neon-cyan);font-family:var(--font-mono);line-height:1;text-shadow:0 0 15px var(--neon-cyan-dim)}._statLabel_1c46t_238{font-size:11px;color:var(--text-dim);margin-top:6px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._messageList_1c46t_250{flex:1;display:flex;flex-direction:column;overflow:hidden}._messageListHeader_1c46t_257{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;font-size:13px;font-weight:700;color:var(--text-bright);border-bottom:1px solid var(--border-subtle);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;background:var(--cyber-panel-light)}._messageListCount_1c46t_272{background:var(--neon-cyan-dim);color:var(--neon-cyan);padding:4px 12px;border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);font-weight:700;border:1px solid var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan-dim)}._emptyState_1c46t_284{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);padding:40px}._emptyState_1c46t_284 p{margin-top:16px;font-size:14px;font-family:var(--font-mono)}._list_1c46t_303{flex:1;overflow-y:auto;padding:0}._list_1c46t_303::-webkit-scrollbar{width:6px}._list_1c46t_303::-webkit-scrollbar-track{background:var(--cyber-darker)}._list_1c46t_303::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}._list_1c46t_303::-webkit-scrollbar-thumb:hover{background:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan-dim)}._messageItem_1c46t_327{padding:16px 24px;border-bottom:1px solid var(--border-subtle);transition:all var(--transition-fast);display:flex;flex-direction:column;gap:8px;position:relative}._messageItem_1c46t_327:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border-subtle);transition:all var(--transition-fast)}._messageItem_1c46t_327:hover{background:var(--cyber-panel-light)}._messageItem_1c46t_327:hover:before{background:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan-dim)}._messageHeader_1c46t_357{display:flex;justify-content:space-between;align-items:center}._messageSender_1c46t_363{display:flex;align-items:center;font-size:13px;font-weight:600;color:var(--text-bright);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._messageTime_1c46t_374{font-size:11px;color:var(--text-dim);font-family:var(--font-mono)}._messageStatus_1c46t_380{display:flex;align-items:center;gap:8px}._messageSummary_1c46t_386{font-size:12px;color:var(--text-secondary);font-style:italic;padding-left:4px;font-family:var(--font-mono)}._messageContent_1c46t_394{padding-left:4px}._messageBody_1c46t_398{margin:0;color:var(--text-secondary);font-family:var(--font-mono);font-size:13px;line-height:1.6}._sidebar_b06lb_1{width:360px;min-width:360px;background:#ffffff0d;border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;height:100%;overflow:hidden}._header_b06lb_12{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}._header_b06lb_12 h3{margin:0;font-size:16px;font-weight:600;color:#fff}._count_b06lb_28{padding:4px 8px;background:#3b82f6;color:#fff;border-radius:12px;font-size:12px;font-weight:600}._loading_b06lb_37{padding:16px;text-align:center;color:#ffffff80}._sessionList_b06lb_43{flex:1;overflow-y:auto;padding:8px}._empty_b06lb_49{padding:32px 16px;text-align:center;color:#ffffff80;font-size:14px}._sessionItem_b06lb_56{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:12px;margin-bottom:8px;cursor:pointer;transition:all .2s ease}._sessionItem_b06lb_56:hover{background:#3b82f633;border-color:#3b82f6}._sessionId_b06lb_71{font-size:13px;font-weight:500;color:#ffffffb3;word-break:break-all}._userMessage_b06lb_78{font-size:14px;font-weight:600;color:#fff;margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}._sessionInfo_b06lb_90{display:flex;gap:12px;font-size:12px;color:#fff9}._sessionInfo_b06lb_90 span{display:flex;align-items:center;gap:4px}._time_b06lb_103{color:#3b82f6;font-weight:500}._container_1oqck_8{position:relative;width:100%;height:100%;overflow:hidden;display:flex;background:linear-gradient(180deg,#0a0a0f,#0f0f18,#1a1a2e 60%,#0a0a0f)}._container_1oqck_8:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none}._grass_1oqck_30{position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(to top,var(--neon-cyan-dim) 0%,transparent 100%);opacity:.08}._decoration1_1oqck_41{position:absolute;bottom:80px;left:10%;font-size:24px;opacity:.4;color:var(--neon-cyan);animation:_cyber-float_1oqck_1 4s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-cyan-dim))}._decoration2_1oqck_52{position:absolute;bottom:100px;right:15%;font-size:28px;opacity:.3;color:var(--neon-purple);animation:_cyber-float_1oqck_1 5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-purple-dim))}._decoration3_1oqck_63{position:absolute;bottom:60px;left:30%;font-size:20px;opacity:.3;color:var(--neon-green);animation:_cyber-float_1oqck_1 4.5s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-green-dim))}._decoration4_1oqck_74{position:absolute;bottom:70px;right:35%;font-size:22px;opacity:.35;color:var(--neon-blue);animation:_cyber-float_1oqck_1 5.5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-blue-dim))}@keyframes _cyber-float_1oqck_1{0%,to{transform:translateY(0) scale(1);opacity:.4}50%{transform:translateY(-20px) scale(1.1);opacity:.6}}._background_1oqck_90{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}._grid_1oqck_100{position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(var(--border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px);background-size:40px 40px;opacity:.5}._particles_1oqck_113{position:absolute;top:0;left:0;right:0;bottom:0}._backgroundParticle_1oqck_121{position:absolute;width:3px;height:3px;background:var(--neon-cyan);border-radius:50%;animation:_cyber-rise_1oqck_1 linear infinite;box-shadow:0 0 6px var(--neon-cyan-dim)}@keyframes _cyber-rise_1oqck_1{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(-10vh) scale(1);opacity:0}}._hint_1oqck_151{position:absolute;bottom:80px;left:50%;transform:translate(-50%);color:var(--text-dim);font-size:12px;pointer-events:none;letter-spacing:.1em;font-family:var(--font-display);text-transform:uppercase}._stats_1oqck_164{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:20px;background:#0a0a0fcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:12px 28px;border-radius:var(--radius-xl);border:1px solid var(--border-bright);box-shadow:0 0 20px var(--neon-cyan-dim)}._stat_1oqck_164{display:flex;flex-direction:column;align-items:center;gap:4px}._statLabel_1oqck_187{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-display)}._statValue_1oqck_195{font-size:20px;font-weight:700;color:var(--neon-cyan);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-shadow:0 0 10px var(--neon-cyan-dim)}._statDivider_1oqck_204{color:var(--border-medium);font-size:16px}._loadingState_1oqck_212,._emptyState_1oqck_213{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);font-family:var(--font-mono);z-index:10}._spinner_1oqck_228{width:48px;height:48px;border:3px solid var(--border-subtle);border-top-color:var(--neon-cyan);border-radius:50%;animation:_cyber-spin_1oqck_1 1s linear infinite;box-shadow:0 0 15px var(--neon-cyan-dim)}@keyframes _cyber-spin_1oqck_1{to{transform:rotate(360deg)}}._loadingState_1oqck_212 p{margin-top:20px;font-size:14px;color:var(--neon-cyan);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;animation:_cyber-pulse_1oqck_1 2s ease-in-out infinite}._emptyIcon_1oqck_252{font-size:72px;margin-bottom:20px;opacity:.3;filter:drop-shadow(0 0 10px var(--neon-cyan-dim))}._emptyState_1oqck_213 h3{margin:0 0 12px;color:var(--text-bright);font-size:20px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em}._emptyState_1oqck_213 p{margin:4px 0;font-size:14px;color:var(--text-secondary)}._errorText_1oqck_274{color:var(--neon-pink);text-shadow:0 0 10px var(--neon-pink-dim)}._teamSelector_1oqck_282{display:flex;flex-direction:column;align-items:center;flex:1;height:100%;padding:48px 24px;overflow-y:auto}._selectorTitle_1oqck_292{font-size:32px;font-weight:700;color:var(--text-bright);margin-bottom:40px;display:flex;align-items:center;gap:16px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em;text-shadow:0 0 20px var(--neon-cyan-dim)}._teamList_1oqck_306{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;max-width:900px}._teamCard_1oqck_314{width:260px;padding:24px;background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);position:relative;box-shadow:var(--shadow-subtle)}._teamCard_1oqck_314:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--neon-cyan),var(--neon-purple));opacity:0;transition:opacity var(--transition-normal)}._teamCard_1oqck_314:hover{background:var(--cyber-panel-light);border-color:var(--neon-cyan);transform:translateY(-6px);box-shadow:0 12px 32px #00fff733,0 0 40px var(--neon-cyan-dim)}._teamCard_1oqck_314:hover:before{opacity:1}._teamCardName_1oqck_349{font-size:18px;font-weight:700;color:var(--text-bright);margin-bottom:12px;display:flex;align-items:center;gap:10px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._teamCardIcon_1oqck_362{font-size:24px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._teamCardInfo_1oqck_367{font-size:13px;color:var(--text-secondary);margin-bottom:16px;line-height:1.6;font-family:var(--font-mono)}._teamCardMeta_1oqck_375{font-size:11px;color:var(--neon-cyan);font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;text-shadow:0 0 8px var(--neon-cyan-dim)}._backButton_1oqck_388{position:absolute;top:24px;left:24px;padding:10px 20px;background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-fast);z-index:100;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._backButton_1oqck_388:hover{background:var(--cyber-panel-light);border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim)}._teamName_1oqck_413{position:absolute;top:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#0a0a0fcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:10px 24px;border-radius:var(--radius-xl);border:1px solid var(--border-bright);color:var(--text-bright);font-size:14px;font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;box-shadow:0 0 20px var(--neon-cyan-dim)}._teamIcon_1oqck_435{font-size:20px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._emptyDetail_1oqck_440{margin-top:12px;font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}._teamDivider_1oqck_447{margin:0 10px;opacity:.5;color:var(--border-medium)}._activeBadge_1oqck_453{margin-left:10px;padding:4px 10px;background:var(--neon-green);color:var(--cyber-black);border-radius:var(--radius-sm);font-size:10px;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;animation:_cyber-pulse_1oqck_1 2s ease-in-out infinite;box-shadow:0 0 10px var(--neon-green-dim)}@keyframes _cyber-pulse_1oqck_1{0%,to{opacity:1;box-shadow:0 0 10px var(--neon-green-dim)}50%{opacity:.8;box-shadow:0 0 20px var(--neon-green-dim),0 0 30px var(--neon-green-dim)}}._createdAt_1oqck_479{margin-left:16px;color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}._groupHouseTopDown_1oqck_491{position:absolute;pointer-events:none;transition:all var(--transition-normal);z-index:1}._groupHouseRoofTop_1oqck_498{position:relative;background:linear-gradient(135deg,#dc2626,#b91c1c,#991b1b);border:3px solid #7f1d1d;border-radius:var(--radius-md);box-shadow:0 6px 20px #0006,inset 0 2px 4px #fff3;display:flex;align-items:center;justify-content:center}._groupHouseRoofTop_1oqck_498:before{content:"";position:absolute;top:10%;left:10%;right:10%;bottom:10%;border:2px dashed rgba(255,255,255,.3);border-radius:var(--radius-sm)}._groupHouseLabel_1oqck_520{position:absolute;bottom:-36px;left:50%;transform:translate(-50%);background:#0a0a0ff2;border:2px solid var(--neon-orange);border-radius:var(--radius-md);padding:8px 18px;font-size:12px;font-weight:700;color:var(--neon-orange);white-space:nowrap;box-shadow:0 4px 16px #0006;z-index:10;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;text-shadow:0 0 8px var(--neon-orange-dim)}._centerCastleTopDown_1oqck_542{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:2}._centerCastleRoofMain_1oqck_549{position:relative;background:linear-gradient(135deg,#7c3aed,#6d28d9,#5b21b6);border:4px solid #4c1d95;border-radius:var(--radius-lg);box-shadow:0 10px 32px #00000080,inset 0 2px 8px #fff3;display:flex;align-items:center;justify-content:center}._centerCastleRoofMain_1oqck_549:before{content:"";position:absolute;top:15%;left:15%;right:15%;bottom:15%;border:3px dashed rgba(255,255,255,.3);border-radius:var(--radius-sm)}._centerCastleInner_1oqck_571{position:absolute;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:3px solid #d97706;border-radius:var(--radius-md);box-shadow:0 6px 20px #0006;display:flex;align-items:center;justify-content:center;font-size:36px}._centerCastleLabel_1oqck_583{position:absolute;bottom:-42px;left:50%;transform:translate(-50%);background:#0a0a0ff2;border:3px solid var(--neon-purple);border-radius:var(--radius-lg);padding:10px 24px;font-size:14px;font-weight:700;color:var(--neon-purple);white-space:nowrap;box-shadow:0 6px 24px #00000080;z-index:10;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;text-shadow:0 0 10px var(--neon-purple-dim)}._centerCastleLabel_1oqck_583:before{content:"⬡ ";margin-right:8px;font-size:16px}._characterTopDown_1oqck_611{position:absolute;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 6px 20px #0006,inset 0 2px 8px #ffffff4d;transition:all var(--transition-normal);cursor:pointer;pointer-events:auto}._characterTopDown_1oqck_611:hover{transform:scale(1.15);box-shadow:0 10px 32px #00000080,inset 0 2px 8px #fff6}._characterTopDown_1oqck_611._teamLead_1oqck_631{background:linear-gradient(135deg,#fbbf24,#f59e0b);border:4px solid #d97706;box-shadow:0 0 20px #fbbf244d}._characterTopDown_1oqck_611._subagent_1oqck_637{background:linear-gradient(135deg,#60a5fa,#3b82f6);border:3px solid #2563eb;box-shadow:0 0 20px #60a5fa4d}._characterTopDown_1oqck_611._worker_1oqck_643{background:linear-gradient(135deg,#4ade80,#22c55e);border:3px solid #16a34a;box-shadow:0 0 20px #4ade804d}._groundDecoration_1oqck_650{position:absolute;pointer-events:none;opacity:.6}._pathLine_1oqck_656{position:absolute;height:20px;background:linear-gradient(90deg,transparent 0%,rgba(234,179,8,.4) 20%,rgba(234,179,8,.6) 50%,rgba(234,179,8,.4) 80%,transparent 100%);transform-origin:center;pointer-events:none;z-index:0}._groupOutline_1oqck_672{position:absolute;border:2px dashed var(--border-bright);border-radius:var(--radius-xl);background:var(--neon-cyan-dim);pointer-events:none;transition:all var(--transition-normal)}._groupOutline_1oqck_672:hover{border-color:var(--neon-cyan);background:#00fff71a;box-shadow:0 0 30px var(--neon-cyan-dim)}._groupLabel_1oqck_687{position:absolute;top:-16px;left:50%;transform:translate(-50%);background:var(--cyber-panel);border:1px solid var(--neon-cyan);color:var(--neon-cyan);padding:6px 18px;border-radius:var(--radius-md);font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 0 15px var(--neon-cyan-dim);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}@keyframes _cyber-rotate_1oqck_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _cyber-rotate-reverse_1oqck_1{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes _orbit-pulse_1oqck_1{0%,to{opacity:.3}50%{opacity:.6}}._sunOrbit_1oqck_727{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-cyan);border-radius:50%;opacity:.2;pointer-events:none;animation:_orbit-pulse_1oqck_1 4s ease-in-out infinite}._sunOrbitInner_1oqck_739{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-purple);border-radius:50%;opacity:.15;pointer-events:none;animation:_orbit-pulse_1oqck_1 5s ease-in-out infinite reverse}._container_8225t_5{position:relative;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(180deg,#0a0a0f,#0f0f18,#1a1a2e 60%,#0a0a0f)}._container_8225t_5:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none;z-index:0}._header_8225t_31{display:flex;align-items:center;padding:20px 32px;background:linear-gradient(180deg,var(--cyber-panel) 0%,var(--cyber-dark) 100%);border-bottom:1px solid var(--border-medium);gap:20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;box-shadow:0 4px 20px #0000004d;flex-shrink:0;z-index:100}._header_8225t_31:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._backButton_8225t_56{padding:10px 20px;background:var(--cyber-panel-light);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:12px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;transition:all var(--transition-fast)}._backButton_8225t_56:hover{background:var(--neon-cyan-dim);border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim)}._title_8225t_77{margin:0;font-size:20px;font-weight:700;color:var(--text-bright);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em}._sessionId_8225t_87{color:var(--neon-cyan);font-family:var(--font-mono);font-size:14px;text-shadow:0 0 10px var(--neon-cyan-dim)}._charactersArea_8225t_97{flex:1;position:relative;overflow:hidden;width:100%;height:100%}._orbitRing_8225t_109{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-cyan);border-radius:50%;opacity:.15;pointer-events:none;animation:_orbit-pulse_8225t_1 3s ease-in-out infinite}._orbitRingInner_8225t_121{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-purple);border-radius:50%;opacity:.1;pointer-events:none;animation:_orbit-pulse_8225t_1 4s ease-in-out infinite reverse}@keyframes _orbit-pulse_8225t_1{0%,to{opacity:.15}50%{opacity:.3}}._charactersArea_8225t_97:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(var(--border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px);background-size:40px 40px;opacity:.3;pointer-events:none}._emptyState_8225t_157{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);position:relative;z-index:1}._emptyIcon_8225t_168{font-size:72px;margin-bottom:20px;opacity:.3;color:var(--neon-cyan);filter:drop-shadow(0 0 10px var(--neon-cyan-dim));animation:_cyber-pulse_8225t_1 3s ease-in-out infinite}@keyframes _cyber-pulse_8225t_1{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.05)}}._emptyState_8225t_157 h3{margin:0 0 12px;font-size:20px;font-weight:700;color:var(--text-bright);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em}._emptyState_8225t_157 p{margin:0;font-size:14px;color:var(--text-secondary);font-family:var(--font-mono)}._characterCard_8225t_208{display:flex;flex-direction:column;align-items:center;padding:32px 40px;background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);min-width:160px;position:relative;box-shadow:var(--shadow-subtle);z-index:1}._characterCard_8225t_208:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--cyber-color, var(--neon-cyan)),var(--neon-purple));opacity:.5;transition:opacity var(--transition-normal)}._characterCard_8225t_208:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,var(--cyber-color, var(--neon-cyan-dim)) 0%,transparent 70%);opacity:0;transition:opacity var(--transition-normal);pointer-events:none;z-index:-1}._characterCard_8225t_208:hover{background:var(--cyber-panel-light);border-color:var(--cyber-color, var(--neon-cyan));transform:translateY(-8px);box-shadow:0 12px 40px var(--cyber-color, var(--neon-cyan-dim)),0 0 60px var(--cyber-color, var(--neon-cyan-dim))}._characterCard_8225t_208:hover:before{opacity:1}._characterCard_8225t_208:hover:after{opacity:.6}._hologramNode_8225t_275{position:relative;width:80px;height:80px;margin-bottom:20px;display:flex;align-items:center;justify-content:center}._nodeRing_8225t_285{position:absolute;width:100%;height:100%;border:2px solid transparent;border-top-color:var(--cyber-color, var(--neon-cyan));border-right-color:var(--cyber-color, var(--neon-cyan));border-radius:50%;animation:_node-rotate_8225t_1 8s linear infinite;opacity:.6}@keyframes _node-rotate_8225t_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._nodeIcon_8225t_302{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--cyber-darker);border:2px solid var(--cyber-color, var(--neon-cyan));border-radius:50%;font-size:28px;color:var(--cyber-color, var(--neon-cyan));box-shadow:0 0 20px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 10px #00000080;filter:drop-shadow(0 0 8px var(--cyber-color, var(--neon-cyan-dim)));z-index:5}._nodeGlow_8225t_320{position:absolute;width:120%;height:120%;border-radius:50%;background:radial-gradient(circle,var(--cyber-color, var(--neon-cyan-dim)) 0%,transparent 70%);animation:_node-glow_8225t_1 3s ease-in-out infinite;pointer-events:none}@keyframes _node-glow_8225t_1{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}._characterName_8225t_348{font-size:16px;font-weight:700;color:var(--text-bright);text-align:center;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}._characterCount_8225t_359{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px}._countLabel_8225t_367{font-size:10px;color:var(--text-dim);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._countValue_8225t_375{font-size:20px;font-weight:700;color:var(--cyber-color, var(--neon-cyan));font-family:var(--font-mono);text-shadow:0 0 10px var(--cyber-color, var(--neon-cyan-dim))}._charactersArea_8225t_97::-webkit-scrollbar{width:8px}._charactersArea_8225t_97::-webkit-scrollbar-track{background:var(--cyber-darker);border-radius:4px}._charactersArea_8225t_97::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--neon-cyan) 0%,var(--neon-blue) 100%);border-radius:4px;box-shadow:0 0 10px var(--neon-cyan-dim)}._charactersArea_8225t_97::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--neon-green) 0%,var(--neon-cyan) 100%);box-shadow:0 0 15px var(--neon-cyan-dim)}._layout_1krbo_4{height:100vh;overflow:hidden;background:var(--cyber-black)}._header_1krbo_10{background:linear-gradient(180deg,var(--cyber-panel) 0%,var(--cyber-dark) 100%);border-bottom:1px solid var(--border-medium);padding:0 24px;height:64px;line-height:64px;position:relative;box-shadow:0 4px 20px #00fff70d}._header_1krbo_10:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._content_1krbo_31{flex:1;overflow:hidden;background:var(--bg-gradient-primary)}._mainContainer_1krbo_37{display:flex;height:100%;background:var(--bg-gradient-primary)}._leftPanel_1krbo_43{flex-shrink:0;border-right:1px solid var(--border-medium);display:flex;flex-direction:column;background:var(--cyber-panel);position:relative}._leftPanel_1krbo_43:before{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--neon-cyan),transparent);opacity:.2}._leftPanelHeader_1krbo_63{padding:12px 16px;border-bottom:1px solid var(--border-medium);font-size:12px;color:var(--text-secondary);font-weight:500;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;background:var(--cyber-darker)}._leftPanelCount_1krbo_78{font-size:11px;color:var(--neon-cyan);font-weight:600;font-family:var(--font-mono);text-shadow:0 0 8px var(--neon-cyan-dim)}._leftPanelBody_1krbo_86{flex:1;overflow:hidden}._rightPanel_1krbo_91{flex:1;overflow:hidden;background:var(--cyber-dark)}._modalActions_1krbo_97{margin-bottom:12px}._spinCenter_1krbo_101{text-align:center;padding:40px}._emptyCenter_1krbo_106{text-align:center;color:var(--text-dim);padding:40px;font-family:var(--font-mono)}._logCheckbox_1krbo_113{margin-right:8px;accent-color:var(--neon-cyan)}._logListContainer_1krbo_118{background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-subtle)}._logListItem_1krbo_126{cursor:pointer;padding:10px 12px;border-bottom:1px solid var(--border-subtle);transition:all var(--transition-fast)}._logListItem_1krbo_126:hover{background:var(--neon-cyan-dim);border-color:var(--border-bright)}._logItemRow_1krbo_138{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap;gap:12px}._logItemRow_1krbo_138>span:first-child{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden}._logFileName_1krbo_155{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-family:var(--font-mono);font-size:13px}._logItemRow_1krbo_138>span:last-child{display:flex;align-items:center;flex-shrink:0;gap:8px}._logFileIcon_1krbo_171{margin-right:8px;color:var(--neon-cyan);flex-shrink:0;filter:drop-shadow(0 0 4px var(--neon-cyan-dim))}._loadingOverlay_1krbo_178{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0a0a0fe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:9999}._loadingText_1krbo_192{color:var(--neon-cyan);font-size:16px;font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;animation:_cyber-pulse_1krbo_1 2s ease-in-out infinite}._footer_1krbo_202{height:20px;background:var(--cyber-darker);border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:flex-end;padding:0 12px;flex-shrink:0}._footer_1krbo_202:after{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.15}._footerRight_1krbo_224{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--text-dim);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}._footerText_1krbo_235{color:var(--text-dim);margin-right:2px}._footerLink_1krbo_240{display:inline-flex;align-items:center;gap:3px;color:var(--neon-cyan);text-decoration:none;transition:all var(--transition-fast)}._footerLink_1krbo_240:hover{color:var(--neon-green);text-shadow:0 0 8px var(--neon-cyan-dim)}._footerIcon_1krbo_254{width:12px;height:12px}._footerDivider_1krbo_259{color:var(--border-medium)}._guideContainer_1krbo_263{display:flex;align-items:center;justify-content:center;height:100%;background:var(--cyber-black);position:relative}._guideContainer_1krbo_263:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none}._guideContent_1krbo_283{max-width:560px;padding:40px;position:relative;z-index:1}._guideTitle_1krbo_290{font-size:28px;font-weight:700;color:var(--text-bright);margin:0 0 32px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em;text-align:center;text-shadow:0 0 20px var(--neon-cyan-dim)}._guideStep_1krbo_302{display:flex;gap:16px;margin-bottom:28px}._guideStepNum_1krbo_308{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--cyber-panel-light);color:var(--neon-cyan);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px;font-family:var(--font-display);border:2px solid var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim);animation:_cyber-glow_1krbo_1 3s ease-in-out infinite}._guideStepBody_1krbo_327{flex:1;min-width:0}._guideText_1krbo_332{color:var(--text-secondary);font-size:14px;line-height:1.7;margin:0 0 12px;font-family:var(--font-mono)}._guideCode_1krbo_340{display:block;background:var(--cyber-panel);border:1px solid var(--border-bright);border-radius:var(--radius-sm);padding:12px 16px;color:var(--neon-cyan);font-size:13px;line-height:1.6;word-break:break-all;white-space:pre-wrap;font-family:var(--font-mono);box-shadow:inset 0 1px #ffffff08;position:relative}._guideCode_1krbo_340:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--neon-cyan),var(--neon-purple));opacity:.5}
10
+ */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}._fileContentView_1ti8s_1{display:flex;flex-direction:column;height:100%;background:#0d0d0d}._header_1ti8s_8{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid #2a2a2a;background:#111;flex-shrink:0}._headerLeft_1ti8s_18{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._backBtn_1ti8s_26{width:28px;height:28px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;flex-shrink:0;transition:background .15s,color .15s}._backBtn_1ti8s_26:hover{color:#ccc;background:#1a1a1a}._filePath_1ti8s_47{font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fileSize_1ti8s_55{font-size:11px;color:#666;flex-shrink:0}._contentContainer_1ti8s_61{flex:1;overflow:hidden;background:#0d0d0d;display:flex}._codeBlock_1ti8s_68{display:flex;flex:1;min-height:0;min-width:0;overflow:hidden}._lineNumberCol_1ti8s_76{flex-shrink:0;overflow:hidden;background:#0d0d0d;border-right:1px solid #2a2a2a;-webkit-user-select:none;user-select:none}._lineNumberRow_1ti8s_84{padding:0 16px;text-align:right;color:#555;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:13px;line-height:1.5;white-space:nowrap}._codeCol_1ti8s_94{flex:1;overflow:auto;min-width:0}._codeContent_1ti8s_100{padding:0;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:13px;line-height:1.5;color:#e0e0e0;-moz-tab-size:2;tab-size:2;margin:0;width:fit-content;min-width:100%}._codeContent_1ti8s_100 code{font-family:inherit;font-size:inherit;line-height:inherit;background:none;padding:0;display:block}._lineContentRow_1ti8s_121{padding:0 16px;white-space:pre}._loading_1ti8s_126{display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-size:14px}._error_1ti8s_135{display:flex;align-items:center;justify-content:center;height:100%;color:#ff6b6b;font-size:14px}._centerEmpty_8tuwm_1{display:flex;align-items:center;justify-content:center;height:100%}._container_8tuwm_8{flex:1;overflow:auto;padding:16px 24px;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._sessionDividerText_8tuwm_18{font-size:11px;color:#555}._lastResponseLabel_8tuwm_23{font-size:11px}._splitContainer_8tuwm_27{display:flex;flex-direction:row;height:100%;overflow:hidden}._chatSection_8tuwm_34{display:flex;flex-direction:column;min-width:0;overflow:hidden}._vResizer_8tuwm_41{width:5px;background:#1a1a1a;cursor:col-resize;flex-shrink:0;border-left:1px solid #2a2a2a;border-right:1px solid #2a2a2a;transition:background .15s}._vResizer_8tuwm_41:hover{background:#2a2a2a}._snapLine_8tuwm_55{position:absolute;top:0;bottom:0;width:2px;background:transparent;border-left:2px dashed rgba(255,255,255,.1);pointer-events:none;z-index:1000;transition:all .15s}._snapLineActive_8tuwm_67{position:absolute;top:0;bottom:0;width:2px;background:transparent;border-left:2px dashed rgba(255,255,255,.5);pointer-events:none;z-index:1001}._snapLineLabel_8tuwm_78{position:absolute;top:50%;left:8px;transform:translateY(-50%);background:#ffffffe6;color:#000;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;box-shadow:0 2px 8px #0000004d}._snapPreview_8tuwm_94{position:absolute;top:0;bottom:0;background:#ffffff1a;pointer-events:none;z-index:999}._vResizer_8tuwm_41:hover{background:#333}._chatInputBar_8tuwm_107{display:flex;align-items:flex-end;gap:8px;padding:10px 16px;background:#111;border-top:1px solid #2a2a2a;flex-shrink:0}._chatInputWrapper_8tuwm_117{flex:1;display:flex;flex-direction:column;background:#1a1a1a;border:1px solid #333;border-radius:12px;transition:border-color .2s;overflow:hidden}._chatInputWrapper_8tuwm_117:focus-within{border-color:#555}._chatTextareaWrap_8tuwm_132{position:relative;flex:1}._chatTextarea_8tuwm_132{width:100%;min-height:22px;max-height:120px;padding:10px 14px;background:transparent;color:#e0e0e0;border:none;outline:none;resize:none;font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}._chatTextarea_8tuwm_132::placeholder{color:#555}._chatInputHint_8tuwm_156{font-size:11px;color:#444;padding:0 14px 6px;-webkit-user-select:none;user-select:none}._chatSendBtn_8tuwm_163{width:36px;height:36px;border-radius:10px;border:none;background:#4a9eff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,opacity .15s}._chatSendBtn_8tuwm_163:hover{background:#3a8eef}._chatSendBtn_8tuwm_163:disabled{opacity:.35;cursor:default}._chatSendBtn_8tuwm_163 svg{width:18px;height:18px}._messageListWrap_8tuwm_192{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}._stickyBottomBtn_8tuwm_200{position:absolute;left:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;height:60px;justify-content:center;border-radius:0;border:none;background:none;color:#999;font-size:12px;cursor:pointer;transition:color .15s;z-index:10;box-shadow:none}._stickyBottomBtn_8tuwm_200 span{background:#00000080;padding:2px 10px;border-radius:10px}._stickyBottomBtn_8tuwm_200:hover{color:#fff;background:none}._ptyPromptBubble_8tuwm_233{margin:8px 0;padding:12px 16px;border-radius:12px;border:1px solid #3a3a3a;background:#161616;animation:_ptyPromptFadeIn_8tuwm_1 .25s ease-out}._ptyPromptResolved_8tuwm_242{opacity:.55}@keyframes _ptyPromptFadeIn_8tuwm_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._ptyPromptQuestion_8tuwm_251{font-size:13px;color:#ccc;margin-bottom:10px;line-height:1.4}._ptyPromptOptions_8tuwm_258{display:flex;flex-wrap:wrap;gap:8px}._ptyPromptOption_8tuwm_258{padding:6px 14px;border-radius:18px;border:1px solid #3a3a3a;background:#1a1a1a;color:#bbb;font-size:12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}._ptyPromptOption_8tuwm_258:hover{background:#2a2a2a;color:#eee;border-color:#555}._ptyPromptOptionPrimary_8tuwm_282{padding:6px 14px;border-radius:18px;border:1px solid #4a9eff;background:#4a9eff26;color:#4a9eff;font-size:12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}._ptyPromptOptionPrimary_8tuwm_282:hover{background:#4a9eff40;color:#6ab4ff;border-color:#6ab4ff}._ptyPromptOptionChosen_8tuwm_300{padding:6px 14px;border-radius:18px;border:1px solid #4a9eff;background:#4a9eff33;color:#4a9eff;font-size:12px;cursor:default;white-space:nowrap}._ptyPromptOptionDimmed_8tuwm_311{padding:6px 14px;border-radius:18px;border:1px solid #2a2a2a;background:transparent;color:#444;font-size:12px;cursor:default;white-space:nowrap}._ghostText_8tuwm_322{position:absolute;top:0;left:0;right:0;padding:10px 14px;color:#444;font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;pointer-events:none;white-space:pre-wrap;overflow:hidden;max-height:120px}._suggestionChip_8tuwm_338{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#1a1a1a;border-top:1px solid #2a2a2a;cursor:pointer;flex-shrink:0;transition:background .15s}._suggestionChip_8tuwm_338:hover{background:#222}._suggestionChipText_8tuwm_354{flex:1;color:#555;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._suggestionChipAction_8tuwm_363{color:#4a9eff;font-size:14px;flex-shrink:0}._navSidebar_8tuwm_369{width:40px;flex-shrink:0;background:#0d0d0d;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;align-items:center;padding-top:8px;gap:4px}._navBtn_8tuwm_381{width:32px;height:32px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navBtn_8tuwm_381:hover{color:#ccc;background:#1a1a1a}._navBtnActive_8tuwm_401{width:32px;height:32px;border:none;background:#4a9eff26;color:#4a9eff;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navBtnActive_8tuwm_401:hover{background:#4a9eff40;color:#6ab4ff}._cyberCharacter_n8txo_8{position:absolute;cursor:pointer;transition:all var(--transition-normal);z-index:10}._cyberCharacter_n8txo_8._hovered_n8txo_15{z-index:20}._cyberCharacter_n8txo_8._selected_n8txo_19{z-index:30}._unreadBadge_n8txo_26{position:absolute;top:-12px;right:-12px;background:linear-gradient(135deg,var(--neon-pink) 0%,#dc2626 100%);border:1px solid var(--neon-pink);border-radius:var(--radius-sm);min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;z-index:100;box-shadow:0 0 15px var(--neon-pink-dim),0 0 30px var(--neon-pink-dim);animation:_badge-glow_n8txo_1 2s ease-in-out infinite}@keyframes _badge-glow_n8txo_1{0%,to{box-shadow:0 0 15px var(--neon-pink-dim),0 0 30px var(--neon-pink-dim)}50%{box-shadow:0 0 25px var(--neon-pink-dim),0 0 50px var(--neon-pink-dim)}}._unreadCount_n8txo_52{color:var(--text-bright);font-size:12px;font-weight:700;font-family:var(--font-mono)}._pulse_n8txo_59{position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:var(--radius-sm);border:2px solid var(--neon-pink);opacity:0;animation:_cyber-pulse_n8txo_1 2s ease-out infinite;z-index:-1}@keyframes _cyber-pulse_n8txo_1{0%{transform:scale(1);opacity:.6}to{transform:scale(1.8);opacity:0}}._hologramContainer_n8txo_86{position:relative;width:64px;height:64px;display:flex;align-items:center;justify-content:center}._outerRing_n8txo_96{position:absolute;width:100%;height:100%;border:2px solid transparent;border-top-color:var(--cyber-color, var(--neon-cyan));border-right-color:var(--cyber-color, var(--neon-cyan));border-radius:50%;animation:_cyber-rotate_n8txo_1 8s linear infinite;opacity:.6}._cyberCharacter_n8txo_8._hovered_n8txo_15 ._outerRing_n8txo_96{animation-duration:4s;opacity:.9}._innerRing_n8txo_114{position:absolute;width:80%;height:80%;border:1px solid transparent;border-bottom-color:var(--cyber-color, var(--neon-cyan));border-left-color:var(--cyber-color, var(--neon-cyan));border-radius:50%;animation:_cyber-rotate-reverse_n8txo_1 6s linear infinite;opacity:.4}._cyberCharacter_n8txo_8._hovered_n8txo_15 ._innerRing_n8txo_114{animation-duration:3s;opacity:.7}@keyframes _cyber-rotate_n8txo_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _cyber-rotate-reverse_n8txo_1{0%{transform:rotate(360deg)}to{transform:rotate(0)}}._cyberCore_n8txo_142{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--cyber-darker);border:2px solid var(--cyber-color, var(--neon-cyan));border-radius:50%;box-shadow:0 0 20px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 10px #00000080;transition:all var(--transition-normal);z-index:5}._cyberCharacter_n8txo_8._hovered_n8txo_15 ._cyberCore_n8txo_142{transform:scale(1.1);box-shadow:0 0 30px var(--cyber-color, var(--neon-cyan-dim)),0 0 60px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 15px #00000080}._cyberCharacter_n8txo_8._selected_n8txo_19 ._cyberCore_n8txo_142{box-shadow:0 0 40px var(--cyber-color, var(--neon-cyan-dim)),0 0 80px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 20px var(--cyber-color, var(--neon-cyan-dim));border-width:3px}._cyberIcon_n8txo_178{font-size:24px;color:var(--cyber-color, var(--neon-cyan));filter:drop-shadow(0 0 8px var(--cyber-color, var(--neon-cyan-dim)));animation:_icon-pulse_n8txo_1 3s ease-in-out infinite}@keyframes _icon-pulse_n8txo_1{0%,to{opacity:1;filter:drop-shadow(0 0 8px var(--cyber-color, var(--neon-cyan-dim)))}50%{opacity:.8;filter:drop-shadow(0 0 15px var(--cyber-color, var(--neon-cyan-dim)))}}._dataFlow_n8txo_197{position:absolute;width:100%;height:100%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,var(--cyber-color, var(--neon-cyan-dim)) 90deg,transparent 180deg,var(--cyber-color, var(--neon-cyan-dim)) 270deg,transparent 360deg);animation:_data-flow_n8txo_1 4s linear infinite;opacity:.3}@keyframes _data-flow_n8txo_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._glowEffect_n8txo_220{position:absolute;width:120%;height:120%;border-radius:50%;background:radial-gradient(circle,var(--cyber-color, var(--neon-cyan-dim)) 0%,transparent 70%);animation:_glow-pulse_n8txo_1 3s ease-in-out infinite;pointer-events:none}@keyframes _glow-pulse_n8txo_1{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}._nameTag_n8txo_248{position:absolute;bottom:-32px;left:50%;transform:translate(-50%);background:#0a0a0ff2;color:var(--text-bright);padding:6px 14px;border-radius:var(--radius-sm);font-size:11px;white-space:nowrap;border:1px solid var(--border-medium);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;box-shadow:0 4px 16px #0006;max-width:100px;overflow:hidden;text-overflow:ellipsis}._contextBadge_n8txo_272{position:absolute;bottom:-32px;left:100%;margin-left:8px;white-space:nowrap;font-size:10px;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-weight:700}._cyberCharacter_n8txo_8._selected_n8txo_19 ._nameTag_n8txo_248{border-color:var(--cyber-color, var(--neon-cyan));box-shadow:0 0 20px var(--cyber-color, var(--neon-cyan-dim))}._statusIndicator_n8txo_293{position:absolute;top:-36px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px 12px;background:#0a0a0ff2;border:1px solid var(--border-medium);border-radius:var(--radius-sm);white-space:nowrap;font-size:10px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px #0006}._statusIcon_n8txo_314{font-size:14px;color:var(--cyber-color, var(--neon-cyan));filter:drop-shadow(0 0 6px var(--cyber-color, var(--neon-cyan-dim)))}._statusText_n8txo_320{color:var(--text-secondary);font-weight:600}._status-active_n8txo_325{border-color:var(--neon-green);background:#0a0a0ff2;box-shadow:0 0 15px var(--neon-green-dim)}._status-active_n8txo_325 ._statusIcon_n8txo_314{color:var(--neon-green);filter:drop-shadow(0 0 8px var(--neon-green-dim))}._status-working_n8txo_336{border-color:var(--neon-cyan);background:#0a0a0ff2;box-shadow:0 0 15px var(--neon-cyan-dim)}._status-working_n8txo_336 ._statusIcon_n8txo_314{color:var(--neon-cyan);filter:drop-shadow(0 0 8px var(--neon-cyan-dim))}._status-idle_n8txo_347{border-color:var(--border-medium);background:#0a0a0ff2}._status-idle_n8txo_347 ._statusIcon_n8txo_314{color:var(--text-dim)}._status-error_n8txo_356{border-color:var(--neon-pink);background:#0a0a0ff2;box-shadow:0 0 15px var(--neon-pink-dim);animation:_error-pulse_n8txo_1 2s ease-in-out infinite}._status-error_n8txo_356 ._statusIcon_n8txo_314{color:var(--neon-pink);filter:drop-shadow(0 0 8px var(--neon-pink-dim))}@keyframes _error-pulse_n8txo_1{0%,to{box-shadow:0 0 15px var(--neon-pink-dim)}50%{box-shadow:0 0 25px var(--neon-pink-dim),0 0 50px var(--neon-pink-dim)}}._statusPulse_n8txo_377{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--radius-sm);background:var(--neon-green);opacity:.2;animation:_status-pulse_n8txo_1 2s ease-in-out infinite;z-index:-1;pointer-events:none}@keyframes _status-pulse_n8txo_1{0%,to{opacity:.1}50%{opacity:.3}}._contextBar_n8txo_403{position:absolute;top:50%;right:-80px;transform:translateY(-50%);display:flex;align-items:center;gap:8px;background:#0a0a0ff2;border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:8px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px #0006}._contextBarBg_n8txo_419{width:60px;height:6px;background:var(--cyber-darker);border-radius:3px;overflow:hidden;border:1px solid var(--border-subtle)}._contextBarFill_n8txo_428{height:100%;border-radius:3px;transition:width var(--transition-normal);position:relative}._contextBarFill_n8txo_428:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:_shimmer_n8txo_1 2s linear infinite}@keyframes _shimmer_n8txo_1{0%{transform:translate(-100%)}to{transform:translate(100%)}}._contextBarFill_n8txo_428._context-danger_n8txo_451{background:linear-gradient(90deg,var(--neon-pink),#dc2626);box-shadow:0 0 10px var(--neon-pink-dim)}._contextBarFill_n8txo_428._context-warning_n8txo_456{background:linear-gradient(90deg,var(--neon-orange),#f59e0b);box-shadow:0 0 10px var(--neon-orange-dim)}._contextBarFill_n8txo_428._context-safe_n8txo_461{background:linear-gradient(90deg,var(--neon-green),#22c55e);box-shadow:0 0 10px var(--neon-green-dim)}._contextText_n8txo_466{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-secondary);min-width:40px;text-align:right}._dataHint_n8txo_478{position:absolute;top:-40px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#0a0a0ff2;border:1px solid var(--neon-cyan);border-radius:var(--radius-sm);padding:6px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 20px var(--neon-cyan-dim);animation:_hint-float_n8txo_1 .3s ease}@keyframes _hint-float_n8txo_1{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}._dataIcon_n8txo_506{font-size:14px;color:var(--neon-cyan);filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._dataCount_n8txo_512{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--neon-cyan)}._cyberCharacter_n8txo_8._selected_n8txo_19 ._hologramContainer_n8txo_86{animation:_selected-glow_n8txo_1 2s ease-in-out infinite}@keyframes _selected-glow_n8txo_1{0%,to{filter:drop-shadow(0 0 20px var(--cyber-color, var(--neon-cyan-dim)))}50%{filter:drop-shadow(0 0 40px var(--cyber-color, var(--neon-cyan-dim)))}}._cyberCharacter_n8txo_8:hover ._hologramContainer_n8txo_86{transform:scale(1.05)}._cyberCharacter_n8txo_8:hover ._outerRing_n8txo_96{border-width:3px;opacity:1}._cyberCharacter_n8txo_8:hover ._innerRing_n8txo_114{border-width:2px;opacity:.9}._messageEnvelope_12k2o_1{position:absolute;pointer-events:none;z-index:50;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));transition:opacity .3s ease}._particles_12k2o_9{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._particle_12k2o_9{position:absolute;width:6px;height:6px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:50%;animation:_particleFloat_12k2o_1 .6s ease-out infinite}@keyframes _particleFloat_12k2o_1{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx, -10px),var(--ty, 10px)) scale(0);opacity:0}}._panel_1c46t_5{position:fixed!important;top:64px!important;right:0!important;left:auto!important;bottom:0!important;width:420px!important;height:calc(100vh - 64px)!important;max-height:calc(100vh - 64px)!important;background:var(--cyber-panel, #11111a);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--border-medium, rgba(255, 255, 255, .12));display:flex!important;flex-direction:column!important;z-index:1000!important;animation:_panel-slide-in_1c46t_1 .3s ease;box-shadow:-10px 0 40px #00000080;overflow:hidden}._panel_1c46t_5:before{content:"";position:absolute;top:0;left:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--neon-cyan),var(--neon-purple),var(--neon-cyan));opacity:.5;box-shadow:0 0 20px var(--neon-cyan-dim)}@keyframes _panel-slide-in_1c46t_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}._header_1c46t_52{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border-medium);background:linear-gradient(180deg,var(--cyber-panel-light) 0%,var(--cyber-panel) 100%)}._header_1c46t_52:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._headerLeft_1c46t_72{display:flex;align-items:center;gap:16px}._backButton_1c46t_78{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:var(--cyber-darker);color:var(--neon-cyan);font-size:14px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}._backButton_1c46t_78:hover{background:var(--neon-cyan-dim);border-color:var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim);transform:scale(1.05)}._avatar_1c46t_100{width:56px;height:56px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:var(--neon-cyan);background:var(--cyber-darker);border:2px solid var(--border-medium);box-shadow:0 0 20px var(--neon-cyan-dim),inset 0 0 10px #00000080;position:relative}._avatar_1c46t_100:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:var(--radius-md);border:1px solid var(--neon-cyan);opacity:.3}._title_1c46t_129{flex:1}._name_1c46t_133{margin:0;font-size:18px;color:var(--text-bright);font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;text-shadow:0 0 10px var(--neon-cyan-dim)}._meta_1c46t_144{display:flex;align-items:center;gap:12px;margin-top:6px}._messageCount_1c46t_151{font-size:11px;color:var(--text-dim);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._closeButton_1c46t_159{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:var(--cyber-darker);color:var(--text-dim);font-size:18px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}._closeButton_1c46t_159:hover{background:var(--neon-pink-dim);border-color:var(--neon-pink);color:var(--neon-pink);box-shadow:0 0 15px var(--neon-pink-dim)}._actionButtons_1c46t_184{display:flex;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border-medium);background:var(--cyber-darker)}._actionButton_1c46t_184{flex:1;height:44px;font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:12px}._stats_1c46t_205{display:flex;justify-content:space-around;padding:24px;border-bottom:1px solid var(--border-medium);background:var(--neon-cyan-dim);position:relative}._stats_1c46t_205:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._statItem_1c46t_225{text-align:center}._statValue_1c46t_229{font-size:28px;font-weight:700;color:var(--neon-cyan);font-family:var(--font-mono);line-height:1;text-shadow:0 0 15px var(--neon-cyan-dim)}._statLabel_1c46t_238{font-size:11px;color:var(--text-dim);margin-top:6px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._messageList_1c46t_250{flex:1;display:flex;flex-direction:column;overflow:hidden}._messageListHeader_1c46t_257{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;font-size:13px;font-weight:700;color:var(--text-bright);border-bottom:1px solid var(--border-subtle);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;background:var(--cyber-panel-light)}._messageListCount_1c46t_272{background:var(--neon-cyan-dim);color:var(--neon-cyan);padding:4px 12px;border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);font-weight:700;border:1px solid var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan-dim)}._emptyState_1c46t_284{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);padding:40px}._emptyState_1c46t_284 p{margin-top:16px;font-size:14px;font-family:var(--font-mono)}._list_1c46t_303{flex:1;overflow-y:auto;padding:0}._list_1c46t_303::-webkit-scrollbar{width:6px}._list_1c46t_303::-webkit-scrollbar-track{background:var(--cyber-darker)}._list_1c46t_303::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}._list_1c46t_303::-webkit-scrollbar-thumb:hover{background:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan-dim)}._messageItem_1c46t_327{padding:16px 24px;border-bottom:1px solid var(--border-subtle);transition:all var(--transition-fast);display:flex;flex-direction:column;gap:8px;position:relative}._messageItem_1c46t_327:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border-subtle);transition:all var(--transition-fast)}._messageItem_1c46t_327:hover{background:var(--cyber-panel-light)}._messageItem_1c46t_327:hover:before{background:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan-dim)}._messageHeader_1c46t_357{display:flex;justify-content:space-between;align-items:center}._messageSender_1c46t_363{display:flex;align-items:center;font-size:13px;font-weight:600;color:var(--text-bright);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._messageTime_1c46t_374{font-size:11px;color:var(--text-dim);font-family:var(--font-mono)}._messageStatus_1c46t_380{display:flex;align-items:center;gap:8px}._messageSummary_1c46t_386{font-size:12px;color:var(--text-secondary);font-style:italic;padding-left:4px;font-family:var(--font-mono)}._messageContent_1c46t_394{padding-left:4px}._messageBody_1c46t_398{margin:0;color:var(--text-secondary);font-family:var(--font-mono);font-size:13px;line-height:1.6}._sidebar_9l9yw_1{width:360px;min-width:360px;background:#ffffff0d;border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;height:100%;overflow:hidden}._header_9l9yw_12{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}._header_9l9yw_12 h3{margin:0;font-size:16px;font-weight:600;color:#fff}._count_9l9yw_28{padding:4px 8px;background:#3b82f6;color:#fff;border-radius:12px;font-size:12px;font-weight:600}._loading_9l9yw_37{padding:16px;text-align:center;color:#ffffff80}._sessionList_9l9yw_43{flex:1;overflow-y:auto;padding:8px}._empty_9l9yw_49{padding:32px 16px;text-align:center;color:#ffffff80;font-size:14px}._sessionItem_9l9yw_56{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:12px;margin-bottom:8px;cursor:pointer;transition:all .2s ease;position:relative}._sessionItem_9l9yw_56:hover{background:#3b82f633;border-color:#3b82f6;transform:translate(2px);box-shadow:0 0 10px #3b82f64d}._sessionItem_9l9yw_56:active{transform:translate(1px);box-shadow:0 0 5px #3b82f633}._sessionId_9l9yw_79{font-size:13px;font-weight:500;color:#ffffffb3;word-break:break-all}._userMessage_9l9yw_86{font-size:14px;font-weight:600;color:#fff;margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}._sessionInfo_9l9yw_98{display:flex;gap:12px;font-size:12px;color:#fff9}._sessionInfo_9l9yw_98 span{display:flex;align-items:center;gap:4px}._time_9l9yw_111{color:#3b82f6;font-weight:500}._container_1oqck_8{position:relative;width:100%;height:100%;overflow:hidden;display:flex;background:linear-gradient(180deg,#0a0a0f,#0f0f18,#1a1a2e 60%,#0a0a0f)}._container_1oqck_8:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none}._grass_1oqck_30{position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(to top,var(--neon-cyan-dim) 0%,transparent 100%);opacity:.08}._decoration1_1oqck_41{position:absolute;bottom:80px;left:10%;font-size:24px;opacity:.4;color:var(--neon-cyan);animation:_cyber-float_1oqck_1 4s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-cyan-dim))}._decoration2_1oqck_52{position:absolute;bottom:100px;right:15%;font-size:28px;opacity:.3;color:var(--neon-purple);animation:_cyber-float_1oqck_1 5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-purple-dim))}._decoration3_1oqck_63{position:absolute;bottom:60px;left:30%;font-size:20px;opacity:.3;color:var(--neon-green);animation:_cyber-float_1oqck_1 4.5s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-green-dim))}._decoration4_1oqck_74{position:absolute;bottom:70px;right:35%;font-size:22px;opacity:.35;color:var(--neon-blue);animation:_cyber-float_1oqck_1 5.5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-blue-dim))}@keyframes _cyber-float_1oqck_1{0%,to{transform:translateY(0) scale(1);opacity:.4}50%{transform:translateY(-20px) scale(1.1);opacity:.6}}._background_1oqck_90{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}._grid_1oqck_100{position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(var(--border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px);background-size:40px 40px;opacity:.5}._particles_1oqck_113{position:absolute;top:0;left:0;right:0;bottom:0}._backgroundParticle_1oqck_121{position:absolute;width:3px;height:3px;background:var(--neon-cyan);border-radius:50%;animation:_cyber-rise_1oqck_1 linear infinite;box-shadow:0 0 6px var(--neon-cyan-dim)}@keyframes _cyber-rise_1oqck_1{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(-10vh) scale(1);opacity:0}}._hint_1oqck_151{position:absolute;bottom:80px;left:50%;transform:translate(-50%);color:var(--text-dim);font-size:12px;pointer-events:none;letter-spacing:.1em;font-family:var(--font-display);text-transform:uppercase}._stats_1oqck_164{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:20px;background:#0a0a0fcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:12px 28px;border-radius:var(--radius-xl);border:1px solid var(--border-bright);box-shadow:0 0 20px var(--neon-cyan-dim)}._stat_1oqck_164{display:flex;flex-direction:column;align-items:center;gap:4px}._statLabel_1oqck_187{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-display)}._statValue_1oqck_195{font-size:20px;font-weight:700;color:var(--neon-cyan);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-shadow:0 0 10px var(--neon-cyan-dim)}._statDivider_1oqck_204{color:var(--border-medium);font-size:16px}._loadingState_1oqck_212,._emptyState_1oqck_213{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);font-family:var(--font-mono);z-index:10}._spinner_1oqck_228{width:48px;height:48px;border:3px solid var(--border-subtle);border-top-color:var(--neon-cyan);border-radius:50%;animation:_cyber-spin_1oqck_1 1s linear infinite;box-shadow:0 0 15px var(--neon-cyan-dim)}@keyframes _cyber-spin_1oqck_1{to{transform:rotate(360deg)}}._loadingState_1oqck_212 p{margin-top:20px;font-size:14px;color:var(--neon-cyan);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;animation:_cyber-pulse_1oqck_1 2s ease-in-out infinite}._emptyIcon_1oqck_252{font-size:72px;margin-bottom:20px;opacity:.3;filter:drop-shadow(0 0 10px var(--neon-cyan-dim))}._emptyState_1oqck_213 h3{margin:0 0 12px;color:var(--text-bright);font-size:20px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em}._emptyState_1oqck_213 p{margin:4px 0;font-size:14px;color:var(--text-secondary)}._errorText_1oqck_274{color:var(--neon-pink);text-shadow:0 0 10px var(--neon-pink-dim)}._teamSelector_1oqck_282{display:flex;flex-direction:column;align-items:center;flex:1;height:100%;padding:48px 24px;overflow-y:auto}._selectorTitle_1oqck_292{font-size:32px;font-weight:700;color:var(--text-bright);margin-bottom:40px;display:flex;align-items:center;gap:16px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em;text-shadow:0 0 20px var(--neon-cyan-dim)}._teamList_1oqck_306{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;max-width:900px}._teamCard_1oqck_314{width:260px;padding:24px;background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);position:relative;box-shadow:var(--shadow-subtle)}._teamCard_1oqck_314:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--neon-cyan),var(--neon-purple));opacity:0;transition:opacity var(--transition-normal)}._teamCard_1oqck_314:hover{background:var(--cyber-panel-light);border-color:var(--neon-cyan);transform:translateY(-6px);box-shadow:0 12px 32px #00fff733,0 0 40px var(--neon-cyan-dim)}._teamCard_1oqck_314:hover:before{opacity:1}._teamCardName_1oqck_349{font-size:18px;font-weight:700;color:var(--text-bright);margin-bottom:12px;display:flex;align-items:center;gap:10px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._teamCardIcon_1oqck_362{font-size:24px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._teamCardInfo_1oqck_367{font-size:13px;color:var(--text-secondary);margin-bottom:16px;line-height:1.6;font-family:var(--font-mono)}._teamCardMeta_1oqck_375{font-size:11px;color:var(--neon-cyan);font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;text-shadow:0 0 8px var(--neon-cyan-dim)}._backButton_1oqck_388{position:absolute;top:24px;left:24px;padding:10px 20px;background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-fast);z-index:100;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._backButton_1oqck_388:hover{background:var(--cyber-panel-light);border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim)}._teamName_1oqck_413{position:absolute;top:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#0a0a0fcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:10px 24px;border-radius:var(--radius-xl);border:1px solid var(--border-bright);color:var(--text-bright);font-size:14px;font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;box-shadow:0 0 20px var(--neon-cyan-dim)}._teamIcon_1oqck_435{font-size:20px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._emptyDetail_1oqck_440{margin-top:12px;font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}._teamDivider_1oqck_447{margin:0 10px;opacity:.5;color:var(--border-medium)}._activeBadge_1oqck_453{margin-left:10px;padding:4px 10px;background:var(--neon-green);color:var(--cyber-black);border-radius:var(--radius-sm);font-size:10px;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;animation:_cyber-pulse_1oqck_1 2s ease-in-out infinite;box-shadow:0 0 10px var(--neon-green-dim)}@keyframes _cyber-pulse_1oqck_1{0%,to{opacity:1;box-shadow:0 0 10px var(--neon-green-dim)}50%{opacity:.8;box-shadow:0 0 20px var(--neon-green-dim),0 0 30px var(--neon-green-dim)}}._createdAt_1oqck_479{margin-left:16px;color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}._groupHouseTopDown_1oqck_491{position:absolute;pointer-events:none;transition:all var(--transition-normal);z-index:1}._groupHouseRoofTop_1oqck_498{position:relative;background:linear-gradient(135deg,#dc2626,#b91c1c,#991b1b);border:3px solid #7f1d1d;border-radius:var(--radius-md);box-shadow:0 6px 20px #0006,inset 0 2px 4px #fff3;display:flex;align-items:center;justify-content:center}._groupHouseRoofTop_1oqck_498:before{content:"";position:absolute;top:10%;left:10%;right:10%;bottom:10%;border:2px dashed rgba(255,255,255,.3);border-radius:var(--radius-sm)}._groupHouseLabel_1oqck_520{position:absolute;bottom:-36px;left:50%;transform:translate(-50%);background:#0a0a0ff2;border:2px solid var(--neon-orange);border-radius:var(--radius-md);padding:8px 18px;font-size:12px;font-weight:700;color:var(--neon-orange);white-space:nowrap;box-shadow:0 4px 16px #0006;z-index:10;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;text-shadow:0 0 8px var(--neon-orange-dim)}._centerCastleTopDown_1oqck_542{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:2}._centerCastleRoofMain_1oqck_549{position:relative;background:linear-gradient(135deg,#7c3aed,#6d28d9,#5b21b6);border:4px solid #4c1d95;border-radius:var(--radius-lg);box-shadow:0 10px 32px #00000080,inset 0 2px 8px #fff3;display:flex;align-items:center;justify-content:center}._centerCastleRoofMain_1oqck_549:before{content:"";position:absolute;top:15%;left:15%;right:15%;bottom:15%;border:3px dashed rgba(255,255,255,.3);border-radius:var(--radius-sm)}._centerCastleInner_1oqck_571{position:absolute;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:3px solid #d97706;border-radius:var(--radius-md);box-shadow:0 6px 20px #0006;display:flex;align-items:center;justify-content:center;font-size:36px}._centerCastleLabel_1oqck_583{position:absolute;bottom:-42px;left:50%;transform:translate(-50%);background:#0a0a0ff2;border:3px solid var(--neon-purple);border-radius:var(--radius-lg);padding:10px 24px;font-size:14px;font-weight:700;color:var(--neon-purple);white-space:nowrap;box-shadow:0 6px 24px #00000080;z-index:10;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;text-shadow:0 0 10px var(--neon-purple-dim)}._centerCastleLabel_1oqck_583:before{content:"⬡ ";margin-right:8px;font-size:16px}._characterTopDown_1oqck_611{position:absolute;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 6px 20px #0006,inset 0 2px 8px #ffffff4d;transition:all var(--transition-normal);cursor:pointer;pointer-events:auto}._characterTopDown_1oqck_611:hover{transform:scale(1.15);box-shadow:0 10px 32px #00000080,inset 0 2px 8px #fff6}._characterTopDown_1oqck_611._teamLead_1oqck_631{background:linear-gradient(135deg,#fbbf24,#f59e0b);border:4px solid #d97706;box-shadow:0 0 20px #fbbf244d}._characterTopDown_1oqck_611._subagent_1oqck_637{background:linear-gradient(135deg,#60a5fa,#3b82f6);border:3px solid #2563eb;box-shadow:0 0 20px #60a5fa4d}._characterTopDown_1oqck_611._worker_1oqck_643{background:linear-gradient(135deg,#4ade80,#22c55e);border:3px solid #16a34a;box-shadow:0 0 20px #4ade804d}._groundDecoration_1oqck_650{position:absolute;pointer-events:none;opacity:.6}._pathLine_1oqck_656{position:absolute;height:20px;background:linear-gradient(90deg,transparent 0%,rgba(234,179,8,.4) 20%,rgba(234,179,8,.6) 50%,rgba(234,179,8,.4) 80%,transparent 100%);transform-origin:center;pointer-events:none;z-index:0}._groupOutline_1oqck_672{position:absolute;border:2px dashed var(--border-bright);border-radius:var(--radius-xl);background:var(--neon-cyan-dim);pointer-events:none;transition:all var(--transition-normal)}._groupOutline_1oqck_672:hover{border-color:var(--neon-cyan);background:#00fff71a;box-shadow:0 0 30px var(--neon-cyan-dim)}._groupLabel_1oqck_687{position:absolute;top:-16px;left:50%;transform:translate(-50%);background:var(--cyber-panel);border:1px solid var(--neon-cyan);color:var(--neon-cyan);padding:6px 18px;border-radius:var(--radius-md);font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 0 15px var(--neon-cyan-dim);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}@keyframes _cyber-rotate_1oqck_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _cyber-rotate-reverse_1oqck_1{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes _orbit-pulse_1oqck_1{0%,to{opacity:.3}50%{opacity:.6}}._sunOrbit_1oqck_727{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-cyan);border-radius:50%;opacity:.2;pointer-events:none;animation:_orbit-pulse_1oqck_1 4s ease-in-out infinite}._sunOrbitInner_1oqck_739{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-purple);border-radius:50%;opacity:.15;pointer-events:none;animation:_orbit-pulse_1oqck_1 5s ease-in-out infinite reverse}._container_8225t_5{position:relative;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(180deg,#0a0a0f,#0f0f18,#1a1a2e 60%,#0a0a0f)}._container_8225t_5:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none;z-index:0}._header_8225t_31{display:flex;align-items:center;padding:20px 32px;background:linear-gradient(180deg,var(--cyber-panel) 0%,var(--cyber-dark) 100%);border-bottom:1px solid var(--border-medium);gap:20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;box-shadow:0 4px 20px #0000004d;flex-shrink:0;z-index:100}._header_8225t_31:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._backButton_8225t_56{padding:10px 20px;background:var(--cyber-panel-light);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:12px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;transition:all var(--transition-fast)}._backButton_8225t_56:hover{background:var(--neon-cyan-dim);border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim)}._title_8225t_77{margin:0;font-size:20px;font-weight:700;color:var(--text-bright);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em}._sessionId_8225t_87{color:var(--neon-cyan);font-family:var(--font-mono);font-size:14px;text-shadow:0 0 10px var(--neon-cyan-dim)}._charactersArea_8225t_97{flex:1;position:relative;overflow:hidden;width:100%;height:100%}._orbitRing_8225t_109{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-cyan);border-radius:50%;opacity:.15;pointer-events:none;animation:_orbit-pulse_8225t_1 3s ease-in-out infinite}._orbitRingInner_8225t_121{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px dashed var(--neon-purple);border-radius:50%;opacity:.1;pointer-events:none;animation:_orbit-pulse_8225t_1 4s ease-in-out infinite reverse}@keyframes _orbit-pulse_8225t_1{0%,to{opacity:.15}50%{opacity:.3}}._charactersArea_8225t_97:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(var(--border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px);background-size:40px 40px;opacity:.3;pointer-events:none}._emptyState_8225t_157{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);position:relative;z-index:1}._emptyIcon_8225t_168{font-size:72px;margin-bottom:20px;opacity:.3;color:var(--neon-cyan);filter:drop-shadow(0 0 10px var(--neon-cyan-dim));animation:_cyber-pulse_8225t_1 3s ease-in-out infinite}@keyframes _cyber-pulse_8225t_1{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.05)}}._emptyState_8225t_157 h3{margin:0 0 12px;font-size:20px;font-weight:700;color:var(--text-bright);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em}._emptyState_8225t_157 p{margin:0;font-size:14px;color:var(--text-secondary);font-family:var(--font-mono)}._characterCard_8225t_208{display:flex;flex-direction:column;align-items:center;padding:32px 40px;background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);min-width:160px;position:relative;box-shadow:var(--shadow-subtle);z-index:1}._characterCard_8225t_208:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--cyber-color, var(--neon-cyan)),var(--neon-purple));opacity:.5;transition:opacity var(--transition-normal)}._characterCard_8225t_208:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,var(--cyber-color, var(--neon-cyan-dim)) 0%,transparent 70%);opacity:0;transition:opacity var(--transition-normal);pointer-events:none;z-index:-1}._characterCard_8225t_208:hover{background:var(--cyber-panel-light);border-color:var(--cyber-color, var(--neon-cyan));transform:translateY(-8px);box-shadow:0 12px 40px var(--cyber-color, var(--neon-cyan-dim)),0 0 60px var(--cyber-color, var(--neon-cyan-dim))}._characterCard_8225t_208:hover:before{opacity:1}._characterCard_8225t_208:hover:after{opacity:.6}._hologramNode_8225t_275{position:relative;width:80px;height:80px;margin-bottom:20px;display:flex;align-items:center;justify-content:center}._nodeRing_8225t_285{position:absolute;width:100%;height:100%;border:2px solid transparent;border-top-color:var(--cyber-color, var(--neon-cyan));border-right-color:var(--cyber-color, var(--neon-cyan));border-radius:50%;animation:_node-rotate_8225t_1 8s linear infinite;opacity:.6}@keyframes _node-rotate_8225t_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._nodeIcon_8225t_302{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--cyber-darker);border:2px solid var(--cyber-color, var(--neon-cyan));border-radius:50%;font-size:28px;color:var(--cyber-color, var(--neon-cyan));box-shadow:0 0 20px var(--cyber-color, var(--neon-cyan-dim)),inset 0 0 10px #00000080;filter:drop-shadow(0 0 8px var(--cyber-color, var(--neon-cyan-dim)));z-index:5}._nodeGlow_8225t_320{position:absolute;width:120%;height:120%;border-radius:50%;background:radial-gradient(circle,var(--cyber-color, var(--neon-cyan-dim)) 0%,transparent 70%);animation:_node-glow_8225t_1 3s ease-in-out infinite;pointer-events:none}@keyframes _node-glow_8225t_1{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}._characterName_8225t_348{font-size:16px;font-weight:700;color:var(--text-bright);text-align:center;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}._characterCount_8225t_359{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px}._countLabel_8225t_367{font-size:10px;color:var(--text-dim);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em}._countValue_8225t_375{font-size:20px;font-weight:700;color:var(--cyber-color, var(--neon-cyan));font-family:var(--font-mono);text-shadow:0 0 10px var(--cyber-color, var(--neon-cyan-dim))}._charactersArea_8225t_97::-webkit-scrollbar{width:8px}._charactersArea_8225t_97::-webkit-scrollbar-track{background:var(--cyber-darker);border-radius:4px}._charactersArea_8225t_97::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--neon-cyan) 0%,var(--neon-blue) 100%);border-radius:4px;box-shadow:0 0 10px var(--neon-cyan-dim)}._charactersArea_8225t_97::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--neon-green) 0%,var(--neon-cyan) 100%);box-shadow:0 0 15px var(--neon-cyan-dim)}._layout_1krbo_4{height:100vh;overflow:hidden;background:var(--cyber-black)}._header_1krbo_10{background:linear-gradient(180deg,var(--cyber-panel) 0%,var(--cyber-dark) 100%);border-bottom:1px solid var(--border-medium);padding:0 24px;height:64px;line-height:64px;position:relative;box-shadow:0 4px 20px #00fff70d}._header_1krbo_10:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.3}._content_1krbo_31{flex:1;overflow:hidden;background:var(--bg-gradient-primary)}._mainContainer_1krbo_37{display:flex;height:100%;background:var(--bg-gradient-primary)}._leftPanel_1krbo_43{flex-shrink:0;border-right:1px solid var(--border-medium);display:flex;flex-direction:column;background:var(--cyber-panel);position:relative}._leftPanel_1krbo_43:before{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--neon-cyan),transparent);opacity:.2}._leftPanelHeader_1krbo_63{padding:12px 16px;border-bottom:1px solid var(--border-medium);font-size:12px;color:var(--text-secondary);font-weight:500;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;background:var(--cyber-darker)}._leftPanelCount_1krbo_78{font-size:11px;color:var(--neon-cyan);font-weight:600;font-family:var(--font-mono);text-shadow:0 0 8px var(--neon-cyan-dim)}._leftPanelBody_1krbo_86{flex:1;overflow:hidden}._rightPanel_1krbo_91{flex:1;overflow:hidden;background:var(--cyber-dark)}._modalActions_1krbo_97{margin-bottom:12px}._spinCenter_1krbo_101{text-align:center;padding:40px}._emptyCenter_1krbo_106{text-align:center;color:var(--text-dim);padding:40px;font-family:var(--font-mono)}._logCheckbox_1krbo_113{margin-right:8px;accent-color:var(--neon-cyan)}._logListContainer_1krbo_118{background:var(--cyber-panel);border:1px solid var(--border-medium);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-subtle)}._logListItem_1krbo_126{cursor:pointer;padding:10px 12px;border-bottom:1px solid var(--border-subtle);transition:all var(--transition-fast)}._logListItem_1krbo_126:hover{background:var(--neon-cyan-dim);border-color:var(--border-bright)}._logItemRow_1krbo_138{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap;gap:12px}._logItemRow_1krbo_138>span:first-child{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden}._logFileName_1krbo_155{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-family:var(--font-mono);font-size:13px}._logItemRow_1krbo_138>span:last-child{display:flex;align-items:center;flex-shrink:0;gap:8px}._logFileIcon_1krbo_171{margin-right:8px;color:var(--neon-cyan);flex-shrink:0;filter:drop-shadow(0 0 4px var(--neon-cyan-dim))}._loadingOverlay_1krbo_178{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0a0a0fe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:9999}._loadingText_1krbo_192{color:var(--neon-cyan);font-size:16px;font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;animation:_cyber-pulse_1krbo_1 2s ease-in-out infinite}._footer_1krbo_202{height:20px;background:var(--cyber-darker);border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:flex-end;padding:0 12px;flex-shrink:0}._footer_1krbo_202:after{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);opacity:.15}._footerRight_1krbo_224{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--text-dim);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}._footerText_1krbo_235{color:var(--text-dim);margin-right:2px}._footerLink_1krbo_240{display:inline-flex;align-items:center;gap:3px;color:var(--neon-cyan);text-decoration:none;transition:all var(--transition-fast)}._footerLink_1krbo_240:hover{color:var(--neon-green);text-shadow:0 0 8px var(--neon-cyan-dim)}._footerIcon_1krbo_254{width:12px;height:12px}._footerDivider_1krbo_259{color:var(--border-medium)}._guideContainer_1krbo_263{display:flex;align-items:center;justify-content:center;height:100%;background:var(--cyber-black);position:relative}._guideContainer_1krbo_263:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none}._guideContent_1krbo_283{max-width:560px;padding:40px;position:relative;z-index:1}._guideTitle_1krbo_290{font-size:28px;font-weight:700;color:var(--text-bright);margin:0 0 32px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em;text-align:center;text-shadow:0 0 20px var(--neon-cyan-dim)}._guideStep_1krbo_302{display:flex;gap:16px;margin-bottom:28px}._guideStepNum_1krbo_308{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--cyber-panel-light);color:var(--neon-cyan);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px;font-family:var(--font-display);border:2px solid var(--neon-cyan);box-shadow:0 0 15px var(--neon-cyan-dim);animation:_cyber-glow_1krbo_1 3s ease-in-out infinite}._guideStepBody_1krbo_327{flex:1;min-width:0}._guideText_1krbo_332{color:var(--text-secondary);font-size:14px;line-height:1.7;margin:0 0 12px;font-family:var(--font-mono)}._guideCode_1krbo_340{display:block;background:var(--cyber-panel);border:1px solid var(--border-bright);border-radius:var(--radius-sm);padding:12px 16px;color:var(--neon-cyan);font-size:13px;line-height:1.6;word-break:break-all;white-space:pre-wrap;font-family:var(--font-mono);box-shadow:inset 0 1px #ffffff08;position:relative}._guideCode_1krbo_340:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--neon-cyan),var(--neon-purple));opacity:.5}
package/dist/index.html CHANGED
@@ -6,8 +6,8 @@
6
6
  <title>Claude Code Viewer</title>
7
7
  <link rel="icon" href="/favicon.ico?v=1">
8
8
  <link rel="shortcut icon" href="/favicon.ico?v=1">
9
- <script type="module" crossorigin src="/assets/index-C_-JjmOS.js"></script>
10
- <link rel="stylesheet" crossorigin href="/assets/index-3yEEfIQ0.css">
9
+ <script type="module" crossorigin src="/assets/index-CHB68QfJ.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-DNWtHTSr.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-team-viewer",
3
- "version": "1.4.19",
3
+ "version": "1.4.21",
4
4
  "description": "Claude Code Logger visualization management tool",
5
5
  "license": "MIT",
6
6
  "main": "server/server.js",