cc-team-viewer 1.4.33 → 1.4.34

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.
@@ -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_nulz7_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;transition:width .3s ease,min-width .3s ease}._sidebar_nulz7_1._collapsed_nulz7_13{width:60px;min-width:60px}._header_nulz7_18{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}._collapsed_nulz7_13 ._header_nulz7_18{justify-content:center;padding:16px 8px}._collapseButton_nulz7_32{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#ffffffb3;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s ease}._collapseButton_nulz7_32:hover{background:#3b82f64d;border-color:#3b82f6;color:#fff}._collapsedContent_nulz7_49{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 8px}._collapsedCount_nulz7_58{font-size:24px;font-weight:700;color:#3b82f6;text-shadow:0 0 10px rgba(59,130,246,.5)}._collapsedLabel_nulz7_65{font-size:11px;color:#ffffff80;margin-top:8px;text-transform:uppercase;letter-spacing:.05em}._header_nulz7_18 h3{margin:0;font-size:16px;font-weight:600;color:#fff}._count_nulz7_80{padding:4px 8px;background:#3b82f6;color:#fff;border-radius:12px;font-size:12px;font-weight:600}._loading_nulz7_89{padding:16px;text-align:center;color:#ffffff80}._sessionList_nulz7_95{flex:1;overflow-y:auto;padding:8px}._empty_nulz7_101{padding:32px 16px;text-align:center;color:#ffffff80;font-size:14px}._sessionItem_nulz7_108{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_nulz7_108:hover{background:#3b82f633;border-color:#3b82f6;transform:translate(2px);box-shadow:0 0 10px #3b82f64d}._sessionItem_nulz7_108:active{transform:translate(1px);box-shadow:0 0 5px #3b82f633}._sessionId_nulz7_131{font-size:13px;font-weight:500;color:#ffffffb3;word-break:break-all}._userMessage_nulz7_138{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_nulz7_150{display:flex;gap:12px;font-size:12px;color:#fff9}._sessionInfo_nulz7_150 span{display:flex;align-items:center;gap:4px}._time_nulz7_163{color:#3b82f6;font-weight:500}._container_fx2ff_8{position:relative;width:100%;height:100%;overflow:hidden;display:flex;background:linear-gradient(180deg,#0a0a0f,#0f0f18,#1a1a2e 60%,#0a0a0f)}._container_fx2ff_8:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none}._grass_fx2ff_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_fx2ff_41{position:absolute;bottom:80px;left:10%;font-size:24px;opacity:.4;color:var(--neon-cyan);animation:_cyber-float_fx2ff_1 4s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-cyan-dim))}._decoration2_fx2ff_52{position:absolute;bottom:100px;right:15%;font-size:28px;opacity:.3;color:var(--neon-purple);animation:_cyber-float_fx2ff_1 5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-purple-dim))}._decoration3_fx2ff_63{position:absolute;bottom:60px;left:30%;font-size:20px;opacity:.3;color:var(--neon-green);animation:_cyber-float_fx2ff_1 4.5s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-green-dim))}._decoration4_fx2ff_74{position:absolute;bottom:70px;right:35%;font-size:22px;opacity:.35;color:var(--neon-blue);animation:_cyber-float_fx2ff_1 5.5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-blue-dim))}@keyframes _cyber-float_fx2ff_1{0%,to{transform:translateY(0) scale(1);opacity:.4}50%{transform:translateY(-20px) scale(1.1);opacity:.6}}._background_fx2ff_90{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}._grid_fx2ff_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_fx2ff_113{position:absolute;top:0;left:0;right:0;bottom:0}._backgroundParticle_fx2ff_121{position:absolute;width:3px;height:3px;background:var(--neon-cyan);border-radius:50%;animation:_cyber-rise_fx2ff_1 linear infinite;box-shadow:0 0 6px var(--neon-cyan-dim)}@keyframes _cyber-rise_fx2ff_1{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(-10vh) scale(1);opacity:0}}._hint_fx2ff_151{color:var(--text-dim);font-size:12px;pointer-events:none;letter-spacing:.1em;font-family:var(--font-display);text-transform:uppercase}._stats_fx2ff_160{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_fx2ff_160{display:flex;flex-direction:column;align-items:center;gap:4px}._statLabel_fx2ff_183{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-display)}._statValue_fx2ff_191{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_fx2ff_200{color:var(--border-medium);font-size:16px}._loadingState_fx2ff_208{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}._emptyState_fx2ff_223{display:flex;flex-direction:row;align-items:center;gap:16px;color:var(--text-dim);font-family:var(--font-mono);z-index:10;flex-wrap:wrap;justify-content:center;padding:20px}._spinner_fx2ff_236{width:48px;height:48px;border:3px solid var(--border-subtle);border-top-color:var(--neon-cyan);border-radius:50%;animation:_cyber-spin_fx2ff_1 1s linear infinite;box-shadow:0 0 15px var(--neon-cyan-dim)}@keyframes _cyber-spin_fx2ff_1{to{transform:rotate(360deg)}}._loadingState_fx2ff_208 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_fx2ff_1 2s ease-in-out infinite}._emptyIcon_fx2ff_260{font-size:48px;opacity:.3;filter:drop-shadow(0 0 10px var(--neon-cyan-dim))}._emptyState_fx2ff_223 h3{margin:0;color:var(--text-bright);font-size:20px;font-family:var(--font-mono);text-transform:none;letter-spacing:0}._emptyState_fx2ff_223 p{margin:0;font-size:14px;color:var(--text-secondary)}._errorText_fx2ff_281{color:var(--neon-pink);text-shadow:0 0 10px var(--neon-pink-dim)}._teamSelector_fx2ff_289{display:flex;flex-direction:column;align-items:center;flex:1;height:100%;padding:48px 24px;overflow-y:auto}._selectorTitle_fx2ff_299{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_fx2ff_313{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;max-width:900px;position:relative;min-height:200px}._teamCard_fx2ff_323{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_fx2ff_323: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_fx2ff_323: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_fx2ff_323:hover:before{opacity:1}._teamCardName_fx2ff_358{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_fx2ff_371{font-size:24px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._teamCardInfo_fx2ff_376{font-size:13px;color:var(--text-secondary);margin-bottom:16px;line-height:1.6;font-family:var(--font-mono)}._teamCardMeta_fx2ff_384{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_fx2ff_397{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_fx2ff_397: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_fx2ff_422{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_fx2ff_444{font-size:20px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._emptyDetail_fx2ff_449{margin-top:12px;font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}._teamDivider_fx2ff_456{margin:0 10px;opacity:.5;color:var(--border-medium)}._activeBadge_fx2ff_462{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_fx2ff_1 2s ease-in-out infinite;box-shadow:0 0 10px var(--neon-green-dim)}@keyframes _cyber-pulse_fx2ff_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_fx2ff_488{margin-left:16px;color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}._groupHouseTopDown_fx2ff_500{position:absolute;pointer-events:none;transition:all var(--transition-normal);z-index:1}._groupHouseRoofTop_fx2ff_507{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_fx2ff_507: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_fx2ff_529{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_fx2ff_551{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:2}._centerCastleRoofMain_fx2ff_558{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_fx2ff_558: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_fx2ff_580{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_fx2ff_592{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_fx2ff_592:before{content:"⬡ ";margin-right:8px;font-size:16px}._characterTopDown_fx2ff_620{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_fx2ff_620:hover{transform:scale(1.15);box-shadow:0 10px 32px #00000080,inset 0 2px 8px #fff6}._characterTopDown_fx2ff_620._teamLead_fx2ff_640{background:linear-gradient(135deg,#fbbf24,#f59e0b);border:4px solid #d97706;box-shadow:0 0 20px #fbbf244d}._characterTopDown_fx2ff_620._subagent_fx2ff_646{background:linear-gradient(135deg,#60a5fa,#3b82f6);border:3px solid #2563eb;box-shadow:0 0 20px #60a5fa4d}._characterTopDown_fx2ff_620._worker_fx2ff_652{background:linear-gradient(135deg,#4ade80,#22c55e);border:3px solid #16a34a;box-shadow:0 0 20px #4ade804d}._groundDecoration_fx2ff_659{position:absolute;pointer-events:none;opacity:.6}._pathLine_fx2ff_665{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_fx2ff_681{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_fx2ff_681:hover{border-color:var(--neon-cyan);background:#00fff71a;box-shadow:0 0 30px var(--neon-cyan-dim)}._groupLabel_fx2ff_696{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_fx2ff_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _cyber-rotate-reverse_fx2ff_1{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes _orbit-pulse_fx2ff_1{0%,to{opacity:.3}50%{opacity:.6}}._sunOrbit_fx2ff_736{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_fx2ff_1 4s ease-in-out infinite}._sunOrbitInner_fx2ff_748{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_fx2ff_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_v00c5_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;transition:width .3s ease,min-width .3s ease}._sidebar_v00c5_1._collapsed_v00c5_13{width:60px;min-width:60px}._sidebar_v00c5_1._collapsed_v00c5_13 ._sessionItem_v00c5_19,._sidebar_v00c5_1._collapsed_v00c5_13 ._sessionList_v00c5_20,._sidebar_v00c5_1._collapsed_v00c5_13 ._loading_v00c5_21,._sidebar_v00c5_1._collapsed_v00c5_13 ._empty_v00c5_22{display:none!important;visibility:hidden!important;position:absolute!important;left:-9999px!important}._header_v00c5_29{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}._collapsed_v00c5_13 ._header_v00c5_29{justify-content:center;padding:16px 8px}._collapseButton_v00c5_43{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#ffffffb3;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s ease}._collapseButton_v00c5_43:hover{background:#3b82f64d;border-color:#3b82f6;color:#fff}._collapsedContent_v00c5_60{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:20px 8px;position:relative;height:100%}._collapsedCount_v00c5_71{position:sticky;top:10px;z-index:10;font-size:24px;font-weight:700;color:#3b82f6;text-shadow:0 0 10px rgba(59,130,246,.5);margin-top:10px}._collapsedLabel_v00c5_82{position:sticky;top:40px;z-index:10;font-size:11px;color:#ffffff80;margin-top:8px;text-transform:uppercase;letter-spacing:.05em}._header_v00c5_29 h3{margin:0;font-size:16px;font-weight:600;color:#fff}._count_v00c5_100{padding:4px 8px;background:#3b82f6;color:#fff;border-radius:12px;font-size:12px;font-weight:600}._loading_v00c5_21{padding:16px;text-align:center;color:#ffffff80}._sessionList_v00c5_20{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;position:relative;z-index:1;display:flex;flex-direction:column}._empty_v00c5_22{padding:32px 16px;text-align:center;color:#ffffff80;font-size:14px}._sessionItem_v00c5_19{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_v00c5_19:hover{background:#3b82f633;border-color:#3b82f6;transform:translate(2px);box-shadow:0 0 10px #3b82f64d}._sessionItem_v00c5_19:active{transform:translate(1px);box-shadow:0 0 5px #3b82f633}._sessionId_v00c5_156{font-size:13px;font-weight:500;color:#ffffffb3;word-break:break-all}._userMessage_v00c5_163{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_v00c5_175{display:flex;gap:12px;font-size:12px;color:#fff9}._sessionInfo_v00c5_175 span{display:flex;align-items:center;gap:4px}._time_v00c5_188{color:#3b82f6;font-weight:500}._container_fx2ff_8{position:relative;width:100%;height:100%;overflow:hidden;display:flex;background:linear-gradient(180deg,#0a0a0f,#0f0f18,#1a1a2e 60%,#0a0a0f)}._container_fx2ff_8:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-gradient-glow);pointer-events:none}._grass_fx2ff_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_fx2ff_41{position:absolute;bottom:80px;left:10%;font-size:24px;opacity:.4;color:var(--neon-cyan);animation:_cyber-float_fx2ff_1 4s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-cyan-dim))}._decoration2_fx2ff_52{position:absolute;bottom:100px;right:15%;font-size:28px;opacity:.3;color:var(--neon-purple);animation:_cyber-float_fx2ff_1 5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-purple-dim))}._decoration3_fx2ff_63{position:absolute;bottom:60px;left:30%;font-size:20px;opacity:.3;color:var(--neon-green);animation:_cyber-float_fx2ff_1 4.5s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--neon-green-dim))}._decoration4_fx2ff_74{position:absolute;bottom:70px;right:35%;font-size:22px;opacity:.35;color:var(--neon-blue);animation:_cyber-float_fx2ff_1 5.5s ease-in-out infinite reverse;filter:drop-shadow(0 0 8px var(--neon-blue-dim))}@keyframes _cyber-float_fx2ff_1{0%,to{transform:translateY(0) scale(1);opacity:.4}50%{transform:translateY(-20px) scale(1.1);opacity:.6}}._background_fx2ff_90{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}._grid_fx2ff_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_fx2ff_113{position:absolute;top:0;left:0;right:0;bottom:0}._backgroundParticle_fx2ff_121{position:absolute;width:3px;height:3px;background:var(--neon-cyan);border-radius:50%;animation:_cyber-rise_fx2ff_1 linear infinite;box-shadow:0 0 6px var(--neon-cyan-dim)}@keyframes _cyber-rise_fx2ff_1{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(-10vh) scale(1);opacity:0}}._hint_fx2ff_151{color:var(--text-dim);font-size:12px;pointer-events:none;letter-spacing:.1em;font-family:var(--font-display);text-transform:uppercase}._stats_fx2ff_160{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_fx2ff_160{display:flex;flex-direction:column;align-items:center;gap:4px}._statLabel_fx2ff_183{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-display)}._statValue_fx2ff_191{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_fx2ff_200{color:var(--border-medium);font-size:16px}._loadingState_fx2ff_208{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}._emptyState_fx2ff_223{display:flex;flex-direction:row;align-items:center;gap:16px;color:var(--text-dim);font-family:var(--font-mono);z-index:10;flex-wrap:wrap;justify-content:center;padding:20px}._spinner_fx2ff_236{width:48px;height:48px;border:3px solid var(--border-subtle);border-top-color:var(--neon-cyan);border-radius:50%;animation:_cyber-spin_fx2ff_1 1s linear infinite;box-shadow:0 0 15px var(--neon-cyan-dim)}@keyframes _cyber-spin_fx2ff_1{to{transform:rotate(360deg)}}._loadingState_fx2ff_208 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_fx2ff_1 2s ease-in-out infinite}._emptyIcon_fx2ff_260{font-size:48px;opacity:.3;filter:drop-shadow(0 0 10px var(--neon-cyan-dim))}._emptyState_fx2ff_223 h3{margin:0;color:var(--text-bright);font-size:20px;font-family:var(--font-mono);text-transform:none;letter-spacing:0}._emptyState_fx2ff_223 p{margin:0;font-size:14px;color:var(--text-secondary)}._errorText_fx2ff_281{color:var(--neon-pink);text-shadow:0 0 10px var(--neon-pink-dim)}._teamSelector_fx2ff_289{display:flex;flex-direction:column;align-items:center;flex:1;height:100%;padding:48px 24px;overflow-y:auto}._selectorTitle_fx2ff_299{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_fx2ff_313{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;max-width:900px;position:relative;min-height:200px}._teamCard_fx2ff_323{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_fx2ff_323: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_fx2ff_323: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_fx2ff_323:hover:before{opacity:1}._teamCardName_fx2ff_358{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_fx2ff_371{font-size:24px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._teamCardInfo_fx2ff_376{font-size:13px;color:var(--text-secondary);margin-bottom:16px;line-height:1.6;font-family:var(--font-mono)}._teamCardMeta_fx2ff_384{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_fx2ff_397{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_fx2ff_397: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_fx2ff_422{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_fx2ff_444{font-size:20px;filter:drop-shadow(0 0 6px var(--neon-cyan-dim))}._emptyDetail_fx2ff_449{margin-top:12px;font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}._teamDivider_fx2ff_456{margin:0 10px;opacity:.5;color:var(--border-medium)}._activeBadge_fx2ff_462{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_fx2ff_1 2s ease-in-out infinite;box-shadow:0 0 10px var(--neon-green-dim)}@keyframes _cyber-pulse_fx2ff_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_fx2ff_488{margin-left:16px;color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}._groupHouseTopDown_fx2ff_500{position:absolute;pointer-events:none;transition:all var(--transition-normal);z-index:1}._groupHouseRoofTop_fx2ff_507{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_fx2ff_507: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_fx2ff_529{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_fx2ff_551{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:2}._centerCastleRoofMain_fx2ff_558{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_fx2ff_558: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_fx2ff_580{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_fx2ff_592{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_fx2ff_592:before{content:"⬡ ";margin-right:8px;font-size:16px}._characterTopDown_fx2ff_620{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_fx2ff_620:hover{transform:scale(1.15);box-shadow:0 10px 32px #00000080,inset 0 2px 8px #fff6}._characterTopDown_fx2ff_620._teamLead_fx2ff_640{background:linear-gradient(135deg,#fbbf24,#f59e0b);border:4px solid #d97706;box-shadow:0 0 20px #fbbf244d}._characterTopDown_fx2ff_620._subagent_fx2ff_646{background:linear-gradient(135deg,#60a5fa,#3b82f6);border:3px solid #2563eb;box-shadow:0 0 20px #60a5fa4d}._characterTopDown_fx2ff_620._worker_fx2ff_652{background:linear-gradient(135deg,#4ade80,#22c55e);border:3px solid #16a34a;box-shadow:0 0 20px #4ade804d}._groundDecoration_fx2ff_659{position:absolute;pointer-events:none;opacity:.6}._pathLine_fx2ff_665{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_fx2ff_681{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_fx2ff_681:hover{border-color:var(--neon-cyan);background:#00fff71a;box-shadow:0 0 30px var(--neon-cyan-dim)}._groupLabel_fx2ff_696{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_fx2ff_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _cyber-rotate-reverse_fx2ff_1{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes _orbit-pulse_fx2ff_1{0%,to{opacity:.3}50%{opacity:.6}}._sunOrbit_fx2ff_736{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_fx2ff_1 4s ease-in-out infinite}._sunOrbitInner_fx2ff_748{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_fx2ff_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}
@@ -440,5 +440,5 @@ https://github.com/highlightjs/highlight.js/issues/2277`),nn=he,Mt=Le),ot===void
440
440
  ]`,b={scope:"string",variants:[m,d,g,h]},y={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:(A=>{const V=[];return A.forEach(H=>{V.push(H),H.toLowerCase()===H?V.push(H.toUpperCase()):V.push(H.toLowerCase())}),V})(S),built_in:w},N=A=>A.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,s,P,e.C_BLOCK_COMMENT_MODE,b,y,O]},L={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(L);const j=[M,P,e.C_BLOCK_COMMENT_MODE,b,y,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/},s,L,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,s,P,e.C_BLOCK_COMMENT_MODE,b,y]}]},{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]},b,y]}}function Hq(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+)*/),s={"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:">"},d=[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:s},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])*",b={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"}]},y={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:s}]},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:s},{match:[/(include|extend)\s+/,o],scope:{2:"title.class"},keywords:s},{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:[y]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[g,{begin:n}],relevance:0},b,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:s},{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,d),relevance:0}].concat(u,d);m.contains=O,y.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:s,contains:O}}];return d.unshift(u),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:s,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(k).concat(d).concat(O)}}function Y_(e){return e?typeof e=="string"?e:e.source:null}function Ul(e){return Hn("(?=",e,")")}function Hn(...e){return e.map(n=>Y_(n)).join("")}function Vq(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Xr(...e){return"("+(Vq(e).capture?"":"?:")+e.map(r=>Y_(r)).join("|")+")"}const o0=e=>Hn(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Wq=["Protocol","Type"].map(o0),VS=["init","self"].map(o0),Uq=["Any","Self"],wg=["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"],WS=["false","nil","true"],qq=["assignment","associativity","higherThan","left","lowerThan","none","right"],Gq=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],US=["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"],Q_=Xr(/[/=\-+!*%<>&|^~?]/,/[\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]/),Z_=Xr(Q_,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Eg=Hn(Q_,Z_,"*"),J_=Xr(/[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]/),rf=Xr(J_,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),fa=Hn(J_,rf,"*"),nd=Hn(/[A-Z]/,rf,"*"),Kq=["attached","autoclosure",Hn(/convention\(/,Xr("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Hn(/objc\(/,fa,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Xq=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function Yq(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],o={match:[/\./,Xr(...Wq,...VS)],className:{2:"keyword"}},i={match:Hn(/\./,Xr(...wg)),relevance:0},s=wg.filter(ie=>typeof ie=="string").concat(["_|0"]),c=wg.filter(ie=>typeof ie!="string").concat(Uq).map(o0),u={variants:[{className:"keyword",match:Xr(...c,...VS)}]},d={$pattern:Xr(/\b\w+/,/#\w+/),keyword:s.concat(Gq),literal:WS},m=[o,i,u],g={match:Hn(/\./,Xr(...US)),relevance:0},h={className:"built_in",match:Hn(/\b/,Xr(...US),/(?=\()/)},v=[g,h],b={match:/->/,relevance:0},y={className:"operator",relevance:0,variants:[{match:Eg},{match:`\\.(\\.|${Z_})+`}]},S=[b,y],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:Hn(/\\/,ie,/[0\\tnr"']/)},{match:Hn(/\\/,ie,/u\{[0-9a-fA-F]{1,8}\}/)}]}),N=(ie="")=>({className:"subst",match:Hn(/\\/,ie,/[\t ]*(?:[\r\n]|\r\n)/)}),O=(ie="")=>({className:"subst",label:"interpol",begin:Hn(/\\/,ie,/\(/),end:/\)/}),I=(ie="")=>({begin:Hn(ie,/"""/),end:Hn(/"""/,ie),contains:[R(ie),N(ie),O(ie)]}),P=(ie="")=>({begin:Hn(ie,/"/),end:Hn(/"/,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]}],L={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:k},j=ie=>{const ve=Hn(ie,/\//),$e=Hn(/\//,ie);return{begin:ve,end:$e,contains:[...k,{scope:"comment",begin:`#(?!.*${$e})`,end:/$/}]}},D={scope:"regexp",variants:[j("###"),j("##"),j("#"),L]},A={match:Hn(/`/,fa,/`/)},V={className:"variable",match:/\$\d+/},H={className:"variable",match:`\\$${rf}+`},W=[A,V,H],z={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:Xq,contains:[...S,_,M]}]}},K={scope:"keyword",match:Hn(/@/,Xr(...Kq),Ul(Xr(/\(/,/\s+/)))},q={scope:"meta",match:Hn(/@/,fa)},B=[z,K,q],U={match:Ul(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Hn(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,rf,"+")},{className:"type",match:nd,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Hn(/\s+&\s+/,Ul(nd)),relevance:0}]},G={begin:/</,end:/>/,keywords:d,contains:[...r,...m,...B,b,U]};U.contains.push(G);const X={match:Hn(fa,/\s*:/),keywords:"_|0",relevance:0},Z={begin:/\(/,end:/\)/,relevance:0,keywords:d,contains:["self",X,...r,D,...m,...v,...S,_,M,...W,...B,U]},te={begin:/</,end:/>/,keywords:"repeat each",contains:[...r,U]},pe={begin:Xr(Ul(Hn(fa,/\s*:/)),Ul(Hn(fa,/\s+/,fa,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:fa}]},le={begin:/\(/,end:/\)/,keywords:d,contains:[pe,...r,...m,...S,_,M,...B,U,Z],endsParent:!0,illegal:/["']/},fe={match:[/(func|macro)/,/\s+/,Xr(A.match,fa,Eg)],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+/,Eg],className:{1:"keyword",3:"title"}},me={begin:[/precedencegroup/,/\s+/,nd],className:{1:"keyword",3:"title"},contains:[U],keywords:[...qq,...WS],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+/,fa,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:d,contains:[te,...m,{begin:/:/,end:/\{/,keywords:d,contains:[{scope:"title.class.inherited",match:nd},...m],relevance:0}]};for(const ie of M.variants){const ve=ie.contains.find(Te=>Te.label==="interpol");ve.keywords=d;const $e=[...m,...v,...S,_,M,...W];ve.contains=[...$e,{begin:/\(/,end:/\)/,contains:["self",...$e]}]}return{name:"Swift",keywords:d,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 Ls="[0-9](_*[0-9])*",rd=`\\.(${Ls})`,od="[0-9a-fA-F](_*[0-9a-fA-F])*",Qq={className:"number",variants:[{begin:`(\\b(${Ls})((${rd})|\\.)?|(${rd}))[eE][+-]?(${Ls})[fFdD]?\\b`},{begin:`\\b(${Ls})((${rd})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${rd})[fFdD]?\\b`},{begin:`\\b(${Ls})[fFdD]\\b`},{begin:`\\b0[xX]((${od})\\.?|(${od})?\\.(${od}))[pP][+-]?(${Ls})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${od})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Zq(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},s={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(s);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(s,{className:"string"}),"self"]}]},d=Qq,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,s,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]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
441
441
  `},d]}}const Jq=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_-]*/}}),eG=["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"],tG=["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"],nG=[...eG,...tG],rG=["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(),oG=["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(),aG=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),iG=["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 sG(e){const t=e.regex,n=Jq(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},o="and or not only",i=/@-?\w[\w]*(-\w+)*/,s="[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:"\\."+s,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+oG.join("|")+")"},{begin:":(:)?("+aG.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+iG.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:rG.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+nG.join("|")+")\\b"}]}}const lG=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_-]*/}}),cG=["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"],uG=["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"],dG=[...cG,...uG],fG=["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(),mG=["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(),pG=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),gG=["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 hG(e){const t=lG(e),n=pG,r=mG,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("+dG.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("+gG.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:fG.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 vG(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/}]},s=e.inherit(i,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={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,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,s,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:[d],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[d],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:d}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function bG(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 yG(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}]},s={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,o]},c=e.inherit(s,{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},b={begin:/\{/,end:/\}/,contains:[v],illegal:"\\n",relevance:0},y={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},b,y,i,s],E=[...S];return E.pop(),E.push(c),v.contains=E,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}function xG(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},s={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}]},d={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(d,{contains:[]}),h=e.inherit(m,{contains:[]});d.contains.push(h),m.contains.push(g);let v=[n,u];return[d,m,g,h].forEach(E=>{E.contains=E.contains.concat(v)}),v=v.concat(d,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,d,m,{className:"quote",begin:"^>\\s+",contains:v,end:"$"},o,r,u,s,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function SG(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"}}),s={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:/\\"/},d={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}),b={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},y=["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:y,literal:S,built_in:[...w,..._,"set","shopt",...R,...N]},contains:[v,e.SHEBANG(),b,g,i,s,E,c,u,d,m,n]}}function CG(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"],s=["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"],d=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],m=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],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,b=[...d,...u].filter(N=>!m.includes(N)),y={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(b,{when:N=>N.length<3}),literal:i,type:c,built_in:g},contains:[{scope:"type",match:w(s)},_,E,y,r,o,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,S]}}const wG="_fileContentView_1ti8s_1",EG="_header_1ti8s_8",_G="_headerLeft_1ti8s_18",$G="_backBtn_1ti8s_26",NG="_filePath_1ti8s_47",RG="_fileSize_1ti8s_55",OG="_contentContainer_1ti8s_61",IG="_codeBlock_1ti8s_68",TG="_lineNumberCol_1ti8s_76",MG="_lineNumberRow_1ti8s_84",PG="_codeCol_1ti8s_94",kG="_codeContent_1ti8s_100",jG="_lineContentRow_1ti8s_121",AG="_loading_1ti8s_126",LG="_error_1ti8s_135",Er={fileContentView:wG,header:EG,headerLeft:_G,backBtn:$G,filePath:NG,fileSize:RG,contentContainer:OG,codeBlock:IG,lineNumberCol:TG,lineNumberRow:MG,codeCol:PG,codeContent:kG,lineContentRow:jG,loading:AG,error:LG};pr.registerLanguage("javascript",Mq);pr.registerLanguage("typescript",kq);pr.registerLanguage("python",jq);pr.registerLanguage("java",Aq);pr.registerLanguage("cpp",Lq);pr.registerLanguage("csharp",Bq);pr.registerLanguage("go",zq);pr.registerLanguage("rust",Dq);pr.registerLanguage("php",Fq);pr.registerLanguage("ruby",Hq);pr.registerLanguage("swift",Yq);pr.registerLanguage("kotlin",Zq);pr.registerLanguage("css",sG);pr.registerLanguage("scss",hG);pr.registerLanguage("xml",vG);pr.registerLanguage("json",bG);pr.registerLanguage("yaml",yG);pr.registerLanguage("markdown",xG);pr.registerLanguage("bash",SG);pr.registerLanguage("sql",CG);const BG={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 zG(e){var n;const t=(n=e.split(".").pop())==null?void 0:n.toLowerCase();return BG[t]||null}function DG(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function FG({filePath:e,onClose:t}){const[n,r]=f.useState(null),[o,i]=f.useState(null),[s,c]=f.useState(0),u=f.useRef(!0),d=f.useRef(null),m=f.useRef(null),g=f.useRef(null),h=f.useRef(null);return f.useEffect(()=>(u.current=!0,r(null),i(null),fetch(`/api/file-content?path=${encodeURIComponent(e)}`).then(v=>v.ok?v.json():v.json().then(b=>{throw new Error(b.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]),f.useEffect(()=>{if(n&&d.current){const v=zG(e),b=n.split(`
442
442
  `);if(v)try{const S=pr.highlight(n,{language:v}).value.split(`
443
- `);m.current.innerHTML=S.map((E,w)=>`<div class="${Er.lineNumberRow}">${w+1}</div>`).join(""),d.current.innerHTML=S.map(E=>`<div class="${Er.lineContentRow}">${E||" "}</div>`).join("")}catch{m.current.innerHTML=b.map((y,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),d.current.innerHTML=b.map(y=>`<div class="${Er.lineContentRow}">${y||" "}</div>`).join("")}else m.current.innerHTML=b.map((y,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),d.current.innerHTML=b.map(y=>`<div class="${Er.lineContentRow}">${y||" "}</div>`).join("")}},[n,e]),f.useEffect(()=>{const v=g.current,b=h.current;if(!v||!b)return;const y=()=>{b.scrollTop=v.scrollTop};return v.addEventListener("scroll",y),()=>v.removeEventListener("scroll",y)}),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})]}),s>0&&C.jsx("span",{className:Er.fileSize,children:DG(s)})]}),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:d})})})]})]})]})}const HG="_centerEmpty_8tuwm_1",VG="_container_8tuwm_8",WG="_sessionDividerText_8tuwm_18",UG="_lastResponseLabel_8tuwm_23",qG="_splitContainer_8tuwm_27",GG="_chatSection_8tuwm_34",KG="_messageListWrap_8tuwm_192",XG="_stickyBottomBtn_8tuwm_200",YG="_navSidebar_8tuwm_369",QG="_navBtn_8tuwm_381",ZG="_navBtnActive_8tuwm_401",Kr={centerEmpty:HG,container:VG,sessionDividerText:WG,lastResponseLabel:UG,splitContainer:qG,chatSection:GG,messageListWrap:KG,stickyBottomBtn:XG,navSidebar:YG,navBtn:QG,navBtnActive:ZG},{Text:qS}=Wo,JG=20;function eK(){return 100+Math.random()*50}function GS(e){var o;const t={};for(const i of e)if(i.role==="assistant"&&Array.isArray(i.content))for(const s of i.content)s.type==="tool_use"&&(t[s.id]=s);const n={},r={};for(const i of e)if(i.role==="user"&&Array.isArray(i.content)){for(const s of i.content)if(s.type==="tool_result"){const c=t[s.tool_use_id];let u="工具返回",d=null,m=null;if(c)if(d=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=y_(s);n[s.tool_use_id]={label:u,toolName:d,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 tK extends Q.Component{constructor(n){super(n);kt(this,"handleStickToBottom",()=>{this.setState({stickyBottom:!0},()=>{const n=this.containerRef.current;n&&(n.scrollTop=n.scrollHeight)})});kt(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,s,c,u;const r=n.mainAgentSessions!==this.props.mainAgentSessions||((i=n.mainAgentSessions)==null?void 0:i.length)!==((s=this.props.mainAgentSessions)==null?void 0:s.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 d=this.buildAllItems();this.setState({allItems:d,visibleCount:d.length})}if(!n.scrollToTimestamp&&this.props.scrollToTimestamp){const d=this.buildAllItems();this.setState({allItems:d,visibleCount:d.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>JG)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)})},eK()))}_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 b;const{userProfile:s,collapseToolResults:c,expandThinking:u,onViewRequest:d}=this.props,{toolUseMap:m,toolResultMap:g,readContentMap:h}=GS(n),v=[];for(let y=0;y<n.length;y++){const S=n[y],E=S.content,w=S._timestamp||null,_=w?i[w]:void 0,R=_!=null&&d?{requestIndex:_,onViewRequest:d}:{};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"&&((b=k.input)!=null&&b.questions)){I=k.input.questions;const L=y_(M);try{P=JSON.parse(L).answers||{}}catch{}break}}I&&v.push(C.jsx(Bo,{role:"user-selection",questions:I,answers:P,timestamp:w,userProfile:s,...R},`${r}-selection-${y}`))}else{const{commands:I,textBlocks:P,skillBlocks:M}=v_(E);for(let k=0;k<I.length;k++)v.push(C.jsx(Bo,{role:"user",text:I[k],timestamp:w,userProfile:s,modelInfo:o,...R},`${r}-cmd-${y}-${k}`));for(const k of M){const L=k.text.match(/^#\s+(.+)$/m),j=L?L[1]:"Skill";v.push(C.jsx(Bo,{role:"skill-loaded",text:k.text,skillName:j,timestamp:w,...R},`${r}-skill-${y}`))}for(let k=0;k<P.length;k++){const L=/^Implement the following plan:/i.test((P[k].text||"").trim());v.push(C.jsx(Bo,{role:L?"plan-prompt":"user",text:P[k].text,timestamp:w,userProfile:s,modelInfo:o,...R},`${r}-user-${y}-${k}`))}}}else if(typeof E=="string"&&!qv(E)){const N=/^Implement the following plan:/i.test(E.trim());v.push(C.jsx(Bo,{role:N?"plan-prompt":"user",text:E,timestamp:w,userProfile:s,modelInfo:o,...R},`${r}-user-${y}`))}}else S.role==="assistant"&&(Array.isArray(E)?v.push(C.jsx(Bo,{role:"assistant",content:E,toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${y}`)):typeof E=="string"&&v.push(C.jsx(Bo,{role:"assistant",content:[{type:"text",text:E}],toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${y}`)))}return v}buildItemsFromRequests(n,r,o,i,s){const c=[];IS(null);const u=s?(s.id||s.name||"").split("@")[0].toLowerCase():null;for(let d=0;d<n.length;d++){const m=n[d];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(Bo,{role:"user",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:d,onViewRequest:i},`req-${d}-user`)):h.role==="assistant"&&c.push(C.jsx(Bo,{role:"assistant",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:d,onViewRequest:i},`req-${d}-assistant`))}return c}buildAllItems(){var y,S,E,w;const{mainAgentSessions:n,requests:r,collapseToolResults:o,expandThinking:i,onViewRequest:s}=this.props;if((!n||n.length===0)&&r&&r.length>0)return this.buildItemsFromRequests(r,o,i,s);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[_])&&((y=r[_].body)!=null&&y.model)){u=r[_].body.model;break}}const d=IS(u),m=[],g={},h=[];if(r)for(let _=0;_<r.length;_++){const R=r[_];if(!R.timestamp)continue;const N=xc(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=GS(((w=R.body)==null?void 0:w.messages)||[]).toolResultMap;h.push({timestamp:R.timestamp,content:O,toolResultMap:I,label:Xd(N.type,N.subType),requestIndex:_})}}}let v=0;n.forEach((_,R)=>{var O,I,P,M;R>0&&m.push(C.jsx(oS,{style:{borderColor:"#333",margin:"16px 0"},children:C.jsx(qS,{className:Kr.sessionDividerText,children:"Session"})},`session-div-${R}`));const N=this.renderSessionMessages(_.messages,`s${R}`,d,c);for(const k of N){const L=k.props.timestamp;for(;v<h.length&&L&&h[v].timestamp<=L;){const j=h[v];j.timestamp&&(g[j.timestamp]=m.length),m.push(C.jsx(Bo,{role:"sub-agent-chat",content:j.content,toolResultMap:j.toolResultMap,label:j.label,timestamp:j.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:j.requestIndex,onViewRequest:s},`sub-chat-${v}`)),v++}L&&(g[L]=m.length),m.push(k)}for(;v<h.length;){const k=h[v],L=R<n.length-1&&((I=(O=n[R+1].messages)==null?void 0:O[0])==null?void 0:I._timestamp);if(L&&k.timestamp>L)break;k.timestamp&&(g[k.timestamp]=m.length),m.push(C.jsx(Bo,{role:"sub-agent-chat",content:k.content,toolResultMap:k.toolResultMap,label:k.label,timestamp:k.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:k.requestIndex,onViewRequest:s},`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(oS,{style:{borderColor:"#2a2a2a",margin:"8px 0"},children:C.jsx(qS,{type:"secondary",className:Kr.lastResponseLabel,children:"Last Response"})})},"resp-divider")),_.entryTimestamp&&(g[_.entryTimestamp]=m.length),m.push(C.jsx(Bo,{role:"assistant",content:k,timestamp:_.entryTimestamp,modelInfo:d,collapseToolResults:o,expandThinking:i,toolResultMap:{}},"resp-asst")))}});const{scrollToTimestamp:b}=this.props;return this._scrollTargetIdx=b&&g[b]!=null?g[b]:null,this._tsItemMap=g,m}render(){const{mainAgentSessions:n,cliMode:r}=this.props,{allItems:o,visibleCount:i,loading:s}=this.state,c=!n||n.length===0;if(c&&!r)return C.jsx("div",{className:Kr.centerEmpty,children:C.jsx(co,{description:"暂无 MainAgent 对话数据"})});if(s&&!r)return C.jsx("div",{className:Kr.centerEmpty,children:C.jsx(Wi,{size:"large"})});const u=this._scrollTargetIdx,{highlightTs:d,highlightFading:m}=this.state,g=d&&this._tsItemMap&&this._tsItemMap[d]!=null?this._tsItemMap[d]:null,h=o.slice(0,i),{stickyBottom:v}=this.state,b=v?null:C.jsxs("button",{className:Kr.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"})})]}),y=c||s?C.jsxs("div",{className:Kr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Kr.container,children:!r||s?C.jsx("div",{className:Kr.centerEmpty,children:s?C.jsx(Wi,{size:"large"}):C.jsx(co,{description:"暂无 MainAgent 对话数据"})}):null}),b]}):C.jsxs("div",{className:Kr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Kr.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})}),b]});return r?C.jsxs("div",{ref:this.splitContainerRef,className:Kr.splitContainer,children:[C.jsx("div",{className:Kr.navSidebar,children:C.jsx("button",{className:this.state.fileExplorerOpen?Kr.navBtnActive:Kr.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(_q,{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:Kr.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(FG,{filePath:this.state.currentFile,onClose:()=>this.setState({currentFile:null})}):y})})]})]}):y}}function nK(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,s=t.teamMember||null;if(e.length===0)return[{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:s}];const c=e[e.length-1],u=c.messages?c.messages.length:0,d=u>0&&n.length<u*.5&&u-n.length>4;if(o&&o===c.userId&&!d){const g=[...e];return g[g.length-1]={...c,messages:n,response:r,entryTimestamp:i,teamMember:s||c.teamMember},g}else return[...e,{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:s}]}function rK(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=nK(n,r));return n}function oK({requests:e,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,chatScrollToTs:i,onScrollTsDone:s,cliMode:c,onBackToTeam:u}){const d=f.useMemo(()=>rK(e,!0),[e]);return console.log("[ChatViewPage] requests.length:",e.length,"sessions.length:",d.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(mr,{type:"text",size:"small",onClick:u,children:"← 监控"}),C.jsx("span",{style:{marginLeft:12,fontWeight:500},children:"对话视图"})]}),C.jsx(tK,{requests:e,mainAgentSessions:d,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,scrollToTimestamp:i,onScrollTsDone:s,cliMode:c})]})}const aK="_cyberCharacter_n8txo_8",iK="_hovered_n8txo_15",sK="_selected_n8txo_19",lK="_unreadBadge_n8txo_26",cK="_unreadCount_n8txo_52",uK="_pulse_n8txo_59",dK="_hologramContainer_n8txo_86",fK="_outerRing_n8txo_96",mK="_innerRing_n8txo_114",pK="_cyberCore_n8txo_142",gK="_cyberIcon_n8txo_178",hK="_dataFlow_n8txo_197",vK="_glowEffect_n8txo_220",bK="_nameTag_n8txo_248",yK="_contextBadge_n8txo_272",xK="_statusIndicator_n8txo_293",SK="_statusIcon_n8txo_314",CK="_statusText_n8txo_320",wK="_statusPulse_n8txo_377",EK="_contextBar_n8txo_403",_K="_contextBarBg_n8txo_419",$K="_contextBarFill_n8txo_428",NK="_shimmer_n8txo_1",RK="_contextText_n8txo_466",OK="_dataHint_n8txo_478",IK="_dataIcon_n8txo_506",TK="_dataCount_n8txo_512",er={cyberCharacter:aK,hovered:iK,selected:sK,unreadBadge:lK,"badge-glow":"_badge-glow_n8txo_1",unreadCount:cK,pulse:uK,"cyber-pulse":"_cyber-pulse_n8txo_1",hologramContainer:dK,outerRing:fK,"cyber-rotate":"_cyber-rotate_n8txo_1",innerRing:mK,"cyber-rotate-reverse":"_cyber-rotate-reverse_n8txo_1",cyberCore:pK,"cyber-node":"_cyber-node_n8txo_173",cyberIcon:gK,"icon-pulse":"_icon-pulse_n8txo_1",dataFlow:hK,"data-flow":"_data-flow_n8txo_1",glowEffect:vK,"glow-pulse":"_glow-pulse_n8txo_1",nameTag:bK,contextBadge:yK,statusIndicator:xK,statusIcon:SK,statusText:CK,"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:wK,"status-pulse":"_status-pulse_n8txo_1",contextBar:EK,contextBarBg:_K,contextBarFill:$K,shimmer:NK,"context-danger":"_context-danger_n8txo_451","context-warning":"_context-warning_n8txo_456","context-safe":"_context-safe_n8txo_461",contextText:RK,dataHint:OK,"hint-float":"_hint-float_n8txo_1",dataIcon:IK,dataCount:TK,"selected-glow":"_selected-glow_n8txo_1"},KS={"team-lead":"⬡",subagent:"◈",worker:"⬢",explorer:"◉",analyst:"⌬",tester:"⌘",reviewer:"⌖",mainagent:"⬡",agent:"◈"},XS={active:"▶",working:"◍",idle:"◌",error:"⚠"};class e$ extends Q.Component{constructor(){super(...arguments);kt(this,"state",{isHovered:!1});kt(this,"handleClick",()=>{const{character:n,onSelect:r}=this.props;r(n)});kt(this,"handleMouseEnter",()=>{this.setState({isHovered:!0})});kt(this,"handleMouseLeave",()=>{this.setState({isHovered:!1})})}getMessageCount(){var i,s;const{character:n}=this.props,r=((i=n.messages)==null?void 0:i.filter(c=>!c.read).length)||0,o=((s=n.messages)==null?void 0:s.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:s}=this.getMessageCount(),c=this.getCharacterTypeClass(),u=this.getCyberColor(),d=this.getContextPercent(),m=KS[n.type]||KS.subagent,g=XS[n.status]||XS.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}),d!==null&&C.jsxs("span",{className:er.contextBadge,style:{background:d>60?"rgba(239, 68, 68, 0.3)":d>40?"rgba(251, 191, 36, 0.3)":"rgba(0, 255, 247, 0.2)",color:d>60?"#ef4444":d>40?"#fbbf24":"#00fff7",border:`1px solid ${d>60?"#ef4444":d>40?"#fbbf24":"#00fff7"}44`,boxShadow:d>60?"0 0 8px rgba(239, 68, 68, 0.3)":d>40?"0 0 8px rgba(251, 191, 36, 0.3)":"0 0 8px rgba(0, 255, 247, 0.2)"},children:[d,"%"]}),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&&s>0&&C.jsxs("div",{className:er.dataHint,children:[C.jsx("span",{className:er.dataIcon,children:"⌬"}),C.jsx("span",{className:er.dataCount,children:s})]})]})}}const MK="_messageEnvelope_12k2o_1",PK="_particles_12k2o_9",kK="_particle_12k2o_9",_g={messageEnvelope:MK,particles:PK,particle:kK};class jK extends Q.Component{constructor(n){super(n);kt(this,"animate",()=>{const r=performance.now()-this.startTime,o=this.props.duration||1500,i=Math.min(r/o,1),s=i<.5?2*i*i:1-Math.pow(-2*i+2,2)/2;this.setState({progress:s}),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,s=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:_g.messageEnvelope,style:{left:s,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:_g.particles,children:Array.from({length:5}).map((d,m)=>{const g=m*.1,h=Math.max(0,o-g)/(1-g);return C.jsx("div",{className:_g.particle,style:{animationDelay:`${g}s`,opacity:1-h}},m)})})]})}}const AK="_panel_1c46t_5",LK="_header_1c46t_52",BK="_headerLeft_1c46t_72",zK="_avatar_1c46t_100",DK="_title_1c46t_129",FK="_name_1c46t_133",HK="_meta_1c46t_144",VK="_messageCount_1c46t_151",WK="_closeButton_1c46t_159",UK="_actionButtons_1c46t_184",qK="_actionButton_1c46t_184",GK="_stats_1c46t_205",KK="_statItem_1c46t_225",XK="_statValue_1c46t_229",YK="_statLabel_1c46t_238",QK="_messageList_1c46t_250",ZK="_messageListHeader_1c46t_257",JK="_messageListCount_1c46t_272",eX="_emptyState_1c46t_284",tX="_list_1c46t_303",nX="_messageItem_1c46t_327",rX="_messageHeader_1c46t_357",oX="_messageSender_1c46t_363",aX="_messageTime_1c46t_374",iX="_messageStatus_1c46t_380",sX="_messageSummary_1c46t_386",lX="_messageContent_1c46t_394",cX="_messageBody_1c46t_398",yn={panel:AK,header:LK,headerLeft:BK,avatar:zK,title:DK,name:FK,meta:HK,messageCount:VK,closeButton:WK,actionButtons:UK,actionButton:qK,stats:GK,statItem:KK,statValue:XK,statLabel:YK,messageList:QK,messageListHeader:ZK,messageListCount:JK,emptyState:eX,list:tX,messageItem:nX,messageHeader:rX,messageSender:oX,messageTime:aX,messageStatus:iX,messageSummary:sX,messageContent:lX,messageBody:cX},{Text:WY,Paragraph:uX}=Wo;function dX(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 t$ extends Q.Component{render(){const{character:t,visible:n,onClose:r,onViewNetworkRequests:o,onViewConversation:i,sessionMode:s,sessionId:c}=this.props;if(!n||!t)return null;const u=t.messages||[],d=u.filter(g=>!dX(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(uo,{color:t.status==="active"?"green":"default",children:t.status==="active"?"工作中":"空闲"}),C.jsxs("span",{className:yn.messageCount,children:[d.length," 条消息"]})]})]})]}),C.jsx("button",{className:yn.closeButton,onClick:r,children:"✕"})]}),C.jsxs("div",{className:yn.actionButtons,children:[C.jsx(mr,{type:"primary",icon:C.jsx(r_,{}),onClick:()=>{s&&c?window.location.hash=`/raw?session=${c}&agent=${encodeURIComponent(t.name)}`:o==null||o(t)},className:yn.actionButton,children:"查看请求"}),C.jsx(mr,{icon:C.jsx(o_,{}),onClick:()=>{s&&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:d.length}),C.jsx("div",{className:yn.statLabel,children:"消息"})]}),C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:new Set(d.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:d.length})]}),d.length===0?C.jsxs("div",{className:yn.emptyState,children:[C.jsx(tz,{style:{fontSize:48,color:"#333"}}),C.jsx("p",{children:"暂无消息记录"})]}):C.jsx(hc,{className:yn.list,dataSource:[...d].reverse(),renderItem:(g,h)=>{const v=g.read!==!1,b=g.timestamp||new Date().toISOString(),y=g.color||"#888";return C.jsxs(hc.Item,{className:yn.messageItem,children:[C.jsxs("div",{className:yn.messageHeader,children:[C.jsxs("div",{className:yn.messageSender,children:[C.jsx(iz,{style:{marginRight:4,color:y,fontSize:11}}),C.jsx("span",{style:{color:y,fontWeight:500},children:g.from})]}),C.jsxs("div",{className:yn.messageStatus,children:[C.jsx("span",{className:yn.messageTime,children:new Date(b).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),!v&&C.jsx(Bd,{status:"processing"})]})]}),g.summary&&C.jsx("div",{className:yn.messageSummary,children:g.summary}),C.jsx("div",{className:yn.messageContent,children:C.jsx(uX,{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 a0(e){const{onFullReload:t,onLogUpdate:n,onUpdateInfo:r,onTeamStats:o,onSessionsUpdate:i,team:s,session:c,projectSessions:u}=e,d=f.useRef(null),m=f.useRef(null),g=f.useRef(t),h=f.useRef(n),v=f.useRef(r),b=f.useRef(o),y=f.useRef(i);g.current=t,h.current=n,v.current=r,b.current=o,y.current=i;const S=f.useCallback(()=>{if(!s&&!c&&!u){console.log("[useSSE] No team, session or projectSessions parameter, skipping connection");return}d.current&&d.current.close();let E;if(s?E=`/events?team=${encodeURIComponent(s)}`:c?E=`/events?session=${encodeURIComponent(c)}`:u&&(E=`/events?projectSessions=${encodeURIComponent(u)}`),console.log("[useSSE] Connecting to:",E),d.current){const _=d.current;if(_.readyState===EventSource.OPEN||_.readyState===EventSource.CONNECTING){console.log("[useSSE] Already connected or connecting, skipping");return}_.close()}const w=new EventSource(E);d.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=b.current)==null||R.call(b,N)}catch{}}),w.addEventListener("sessions_update",_=>{var R;try{const N=JSON.parse(_.data);(R=y.current)==null||R.call(y,N)}catch{}}),w.onerror=()=>{console.log("[useSSE] Connection error, reconnecting in 3s..."),w.close(),d.current=null,m.current=setTimeout(S,3e3)}},[s,c,u]);return f.useEffect(()=>{if(!(!s&&!c&&!u))return console.log("[useSSE] Effect running, team:",s,"session:",c,"projectSessions:",u),S(),()=>{console.log("[useSSE] Cleanup"),d.current&&d.current.close(),m.current&&clearTimeout(m.current)}},[S,s,c,u]),{eventSource:d.current}}const fX="_sidebar_nulz7_1",mX="_collapsed_nulz7_13",pX="_header_nulz7_18",gX="_collapseButton_nulz7_32",hX="_collapsedContent_nulz7_49",vX="_collapsedCount_nulz7_58",bX="_collapsedLabel_nulz7_65",yX="_count_nulz7_80",xX="_loading_nulz7_89",SX="_sessionList_nulz7_95",CX="_empty_nulz7_101",wX="_sessionItem_nulz7_108",EX="_sessionId_nulz7_131",_X="_userMessage_nulz7_138",$X="_sessionInfo_nulz7_150",NX="_time_nulz7_163",zr={sidebar:fX,collapsed:mX,header:pX,collapseButton:gX,collapsedContent:hX,collapsedCount:vX,collapsedLabel:bX,count:yX,loading:xX,sessionList:SX,empty:CX,sessionItem:wX,sessionId:EX,userMessage:_X,sessionInfo:$X,time:NX};function RX(e){if(!e)return"";const t=new Date(e),r=new Date-t,o=Math.floor(r/6e4),i=Math.floor(r/36e5),s=Math.floor(r/864e5);return o<1?"刚刚":o<60?`${o}m 前`:i<24?`${i}h 前`:s<7?`${s}d 前`:t.toLocaleDateString("zh-CN",{month:"short",day:"numeric"})}function OX({projectId:e,onSelectSession:t,defaultCollapsed:n=!1}){const[r,o]=f.useState([]),[i,s]=f.useState(!0),[c,u]=f.useState(n),d=f.useRef(null);f.useEffect(()=>{console.log("[SessionSidebar] Component mounted"),console.log("[SessionSidebar] projectId:",e),console.log("[SessionSidebar] onSelectSession type:",typeof t),d.current&&console.log("[SessionSidebar] Container ref found:",d.current);const g=h=>{const v=h.target.closest("[data-session-id]");if(v){const b=v.getAttribute("data-session-id"),y=r.find(S=>S.id===b);y&&(console.log("[SessionSidebar] Native click event triggered for session:",b),m(y))}};return d.current&&(d.current.addEventListener("click",g),console.log("[SessionSidebar] Native click listener attached")),()=>{console.log("[SessionSidebar] Component unmounted"),d.current&&d.current.removeEventListener("click",g)}},[e,t,r]),a0({projectSessions:e,onSessionsUpdate:g=>{o(g.sessions||[]),s(!1)}});const m=g=>{console.log("[SessionSidebar] Session clicked:",g.id),console.log("[SessionSidebar] Session object:",g),console.log("[SessionSidebar] onSelectSession function:",typeof t);try{t(g)}catch(v){console.error("[SessionSidebar] Error calling onSelectSession:",v)}const h=`/session-monitor?session=${g.id}`;console.log("[SessionSidebar] Setting hash to:",h);try{window.location.hash=h}catch(v){console.error("[SessionSidebar] Error setting hash:",v)}};return C.jsxs("div",{className:`${zr.sidebar} ${c?zr.collapsed:""}`,ref:d,children:[C.jsxs("div",{className:zr.header,children:[!c&&C.jsx("h3",{children:"Sessions"}),!c&&C.jsx("span",{className:zr.count,children:r.length}),C.jsx("button",{className:zr.collapseButton,onClick:()=>u(!c),title:c?"展开侧边栏":"收起侧边栏",children:c?"→":"←"})]}),c?C.jsxs("div",{className:zr.collapsedContent,children:[C.jsx("div",{className:zr.collapsedCount,children:r.length}),C.jsx("div",{className:zr.collapsedLabel,children:"Sessions"})]}):i?C.jsx("div",{className:zr.loading,children:"Loading..."}):C.jsx("div",{className:zr.sessionList,children:r.length===0?C.jsx("div",{className:zr.empty,children:"No sessions"}):r.map(g=>C.jsxs("div",{className:zr.sessionItem,onClick:h=>{console.log("[SessionSidebar] Click event fired",h.target),m(g)},"data-session-id":g.id,children:[g.lastUserMessage&&C.jsx("div",{className:zr.userMessage,children:g.lastUserMessage}),C.jsx("div",{className:zr.sessionId,children:g.id}),C.jsxs("div",{className:zr.sessionInfo,children:[C.jsx("span",{className:zr.time,children:RX(g.lastTimestamp)}),C.jsxs("span",{children:[g.requestCount," requests"]}),g.agents.length>0&&C.jsxs("span",{children:[g.agents.length," agents"]})]})]},g.id))})]})}const IX="_container_fx2ff_8",TX="_grass_fx2ff_30",MX="_decoration1_fx2ff_41",PX="_decoration2_fx2ff_52",kX="_decoration3_fx2ff_63",jX="_decoration4_fx2ff_74",AX="_background_fx2ff_90",LX="_grid_fx2ff_100",BX="_particles_fx2ff_113",zX="_backgroundParticle_fx2ff_121",DX="_hint_fx2ff_151",FX="_stats_fx2ff_160",HX="_stat_fx2ff_160",VX="_statLabel_fx2ff_183",WX="_statValue_fx2ff_191",UX="_statDivider_fx2ff_200",qX="_loadingState_fx2ff_208",GX="_emptyState_fx2ff_223",KX="_spinner_fx2ff_236",XX="_emptyIcon_fx2ff_260",YX="_errorText_fx2ff_281",QX="_teamSelector_fx2ff_289",ZX="_selectorTitle_fx2ff_299",JX="_teamList_fx2ff_313",eY="_teamCard_fx2ff_323",tY="_teamCardName_fx2ff_358",nY="_teamCardIcon_fx2ff_371",rY="_teamCardInfo_fx2ff_376",oY="_teamCardMeta_fx2ff_384",aY="_backButton_fx2ff_397",iY="_teamName_fx2ff_422",sY="_teamIcon_fx2ff_444",lY="_emptyDetail_fx2ff_449",cY="_teamDivider_fx2ff_456",uY="_activeBadge_fx2ff_462",dY="_createdAt_fx2ff_488",fY="_sunOrbit_fx2ff_736",mY="_sunOrbitInner_fx2ff_748",jt={container:IX,grass:TX,decoration1:MX,decoration2:PX,decoration3:kX,decoration4:jX,background:AX,grid:LX,particles:BX,backgroundParticle:zX,hint:DX,stats:FX,stat:HX,statLabel:VX,statValue:WX,statDivider:UX,loadingState:qX,emptyState:GX,spinner:KX,emptyIcon:XX,errorText:YX,teamSelector:QX,selectorTitle:ZX,teamList:JX,teamCard:eY,teamCardName:tY,teamCardIcon:nY,teamCardInfo:rY,teamCardMeta:oY,backButton:aY,teamName:iY,teamIcon:sY,emptyDetail:lY,teamDivider:cY,activeBadge:uY,createdAt:dY,sunOrbit:fY,sunOrbitInner:mY},pY=(e,t)=>({"team-lead":"#fbbf24",subagent:"#3b82f6",worker:"#22c55e",explorer:"#8b5cf6",analyst:"#ec4899",tester:"#06b6d4",reviewer:"#f59e0b"})[e],YS=e=>({"team-lead":"🤠",subagent:"👤",worker:"🔧",explorer:"🔍",analyst:"📊",tester:"🧪",reviewer:"👁️"})[e]||"👤";class gY extends Q.Component{constructor(){super(...arguments);kt(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:[]});kt(this,"containerRef",Q.createRef());kt(this,"resizeObserver",null);kt(this,"_lastNotifiedMemberRequests",null);kt(this,"_loadedTeamId",null);kt(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:s}=this.props;s&&s(i,{stats:o})}}catch(r){console.error("Failed to refresh team stats:",r)}});kt(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 s=n.id||n.name,{onTeamDataChange:c}=this.props;c&&c(s,{inbox:i})}}catch(r){console.error("Failed to refresh team messages:",r)}});kt(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,s=o.find(c=>c.id===i||c.name===i);s&&this.selectTeamWithoutNavigation(s)}})}catch(n){console.error("Failed to load teams:",n),this.setState({loading:!1,error:n.message})}});kt(this,"handleSessionSelect",n=>{console.log("[handleSessionSelect] Called, session:",n)});kt(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,s=o==null?void 0:o[r];if((s==null?void 0:s.stats)&&(s==null?void 0:s.inbox)!==void 0){console.log("[handleSelectTeam] Using cached data from global state:",s),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:s.stats,teamMessages:s.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 d=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(d=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||d)&&i(r,{stats:u,inbox:d}),this.setState({currentTeam:n,teamStats:u,teamMessages:d},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`})});kt(this,"selectTeamWithoutNavigation",async n=>{const r=n.id||n.name,{teamData:o,onTeamDataChange:i}=this.props,s=o==null?void 0:o[r];if((s==null?void 0:s.stats)&&(s==null?void 0:s.inbox)!==void 0){console.log("[selectTeamWithoutNavigation] Using cached data from global state:",s),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:s.stats,teamMessages:s.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 d=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(d=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||d)&&i(r,{stats:u,inbox:d}),this.setState({currentTeam:n,teamStats:u,teamMessages:d},()=>{this.initializeCharacters()})});kt(this,"handleBackToSelector",()=>{this.setState({currentTeam:null,characters:[],memberGroups:[],teamStats:null}),window.location.hash="/team"});kt(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)}});kt(this,"handleWindowResize",()=>{this.handleResize()});kt(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)}))});kt(this,"handleCloseDetail",()=>{this.setState({selectedCharacter:null})});kt(this,"handleViewNetworkRequests",n=>{var i,s;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(s=this.state.currentTeam)!=null&&s.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:"")});kt(this,"handleViewConversation",n=>{var i,s;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(s=this.state.currentTeam)!=null&&s.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:"")});kt(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"});kt(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 s=n.replace(i,"");s&&s!==n&&!r.includes(s)&&r.push(s)}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)})),s={};i.forEach(({prefixes:u})=>{u.forEach(d=>{s[d]=(s[d]||0)+1})});const c={};return i.forEach(({member:u,prefixes:d})=>{let m=u.name;for(const g of d)if(s[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 s=n/2,c=r/2,{teamLead:u,groups:d}=this.groupMembersByPrefix(o.members),m=Object.keys(d).sort(),g=m.length;console.log("=== Team Layout Debug ==="),console.log("teamLead:",u==null?void 0:u.name),console.log("groups:",d),console.log("groupNames:",m),console.log("groupCount:",g),console.log("centerX:",s,"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:pY("team-lead"),x:s-50,y:c-50,status:_>0?"active":"idle",mood:"idle",messages:R,avatar:YS(u.agentType),unreadCount:_};v.push(N),console.log("Added team-lead (Sun):",N)}const b=Math.min(n,r),y=Math.max(b*.32,220);m.forEach((w,_)=>{const R=d[w],N=R.length,I=2*Math.PI/g*_-Math.PI/2,P=s+y*Math.cos(I),M=c+y*Math.sin(I);console.log(`
443
+ `);m.current.innerHTML=S.map((E,w)=>`<div class="${Er.lineNumberRow}">${w+1}</div>`).join(""),d.current.innerHTML=S.map(E=>`<div class="${Er.lineContentRow}">${E||" "}</div>`).join("")}catch{m.current.innerHTML=b.map((y,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),d.current.innerHTML=b.map(y=>`<div class="${Er.lineContentRow}">${y||" "}</div>`).join("")}else m.current.innerHTML=b.map((y,S)=>`<div class="${Er.lineNumberRow}">${S+1}</div>`).join(""),d.current.innerHTML=b.map(y=>`<div class="${Er.lineContentRow}">${y||" "}</div>`).join("")}},[n,e]),f.useEffect(()=>{const v=g.current,b=h.current;if(!v||!b)return;const y=()=>{b.scrollTop=v.scrollTop};return v.addEventListener("scroll",y),()=>v.removeEventListener("scroll",y)}),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})]}),s>0&&C.jsx("span",{className:Er.fileSize,children:DG(s)})]}),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:d})})})]})]})]})}const HG="_centerEmpty_8tuwm_1",VG="_container_8tuwm_8",WG="_sessionDividerText_8tuwm_18",UG="_lastResponseLabel_8tuwm_23",qG="_splitContainer_8tuwm_27",GG="_chatSection_8tuwm_34",KG="_messageListWrap_8tuwm_192",XG="_stickyBottomBtn_8tuwm_200",YG="_navSidebar_8tuwm_369",QG="_navBtn_8tuwm_381",ZG="_navBtnActive_8tuwm_401",Kr={centerEmpty:HG,container:VG,sessionDividerText:WG,lastResponseLabel:UG,splitContainer:qG,chatSection:GG,messageListWrap:KG,stickyBottomBtn:XG,navSidebar:YG,navBtn:QG,navBtnActive:ZG},{Text:qS}=Wo,JG=20;function eK(){return 100+Math.random()*50}function GS(e){var o;const t={};for(const i of e)if(i.role==="assistant"&&Array.isArray(i.content))for(const s of i.content)s.type==="tool_use"&&(t[s.id]=s);const n={},r={};for(const i of e)if(i.role==="user"&&Array.isArray(i.content)){for(const s of i.content)if(s.type==="tool_result"){const c=t[s.tool_use_id];let u="工具返回",d=null,m=null;if(c)if(d=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=y_(s);n[s.tool_use_id]={label:u,toolName:d,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 tK extends Q.Component{constructor(n){super(n);kt(this,"handleStickToBottom",()=>{this.setState({stickyBottom:!0},()=>{const n=this.containerRef.current;n&&(n.scrollTop=n.scrollHeight)})});kt(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,s,c,u;const r=n.mainAgentSessions!==this.props.mainAgentSessions||((i=n.mainAgentSessions)==null?void 0:i.length)!==((s=this.props.mainAgentSessions)==null?void 0:s.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 d=this.buildAllItems();this.setState({allItems:d,visibleCount:d.length})}if(!n.scrollToTimestamp&&this.props.scrollToTimestamp){const d=this.buildAllItems();this.setState({allItems:d,visibleCount:d.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>JG)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)})},eK()))}_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 b;const{userProfile:s,collapseToolResults:c,expandThinking:u,onViewRequest:d}=this.props,{toolUseMap:m,toolResultMap:g,readContentMap:h}=GS(n),v=[];for(let y=0;y<n.length;y++){const S=n[y],E=S.content,w=S._timestamp||null,_=w?i[w]:void 0,R=_!=null&&d?{requestIndex:_,onViewRequest:d}:{};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"&&((b=k.input)!=null&&b.questions)){I=k.input.questions;const L=y_(M);try{P=JSON.parse(L).answers||{}}catch{}break}}I&&v.push(C.jsx(Bo,{role:"user-selection",questions:I,answers:P,timestamp:w,userProfile:s,...R},`${r}-selection-${y}`))}else{const{commands:I,textBlocks:P,skillBlocks:M}=v_(E);for(let k=0;k<I.length;k++)v.push(C.jsx(Bo,{role:"user",text:I[k],timestamp:w,userProfile:s,modelInfo:o,...R},`${r}-cmd-${y}-${k}`));for(const k of M){const L=k.text.match(/^#\s+(.+)$/m),j=L?L[1]:"Skill";v.push(C.jsx(Bo,{role:"skill-loaded",text:k.text,skillName:j,timestamp:w,...R},`${r}-skill-${y}`))}for(let k=0;k<P.length;k++){const L=/^Implement the following plan:/i.test((P[k].text||"").trim());v.push(C.jsx(Bo,{role:L?"plan-prompt":"user",text:P[k].text,timestamp:w,userProfile:s,modelInfo:o,...R},`${r}-user-${y}-${k}`))}}}else if(typeof E=="string"&&!qv(E)){const N=/^Implement the following plan:/i.test(E.trim());v.push(C.jsx(Bo,{role:N?"plan-prompt":"user",text:E,timestamp:w,userProfile:s,modelInfo:o,...R},`${r}-user-${y}`))}}else S.role==="assistant"&&(Array.isArray(E)?v.push(C.jsx(Bo,{role:"assistant",content:E,toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${y}`)):typeof E=="string"&&v.push(C.jsx(Bo,{role:"assistant",content:[{type:"text",text:E}],toolResultMap:g,readContentMap:h,timestamp:w,modelInfo:o,collapseToolResults:c,expandThinking:u,...R},`${r}-asst-${y}`)))}return v}buildItemsFromRequests(n,r,o,i,s){const c=[];IS(null);const u=s?(s.id||s.name||"").split("@")[0].toLowerCase():null;for(let d=0;d<n.length;d++){const m=n[d];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(Bo,{role:"user",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:d,onViewRequest:i},`req-${d}-user`)):h.role==="assistant"&&c.push(C.jsx(Bo,{role:"assistant",content:h.content,timestamp:m.timestamp,collapseToolResults:r,expandThinking:o,requestIndex:d,onViewRequest:i},`req-${d}-assistant`))}return c}buildAllItems(){var y,S,E,w;const{mainAgentSessions:n,requests:r,collapseToolResults:o,expandThinking:i,onViewRequest:s}=this.props;if((!n||n.length===0)&&r&&r.length>0)return this.buildItemsFromRequests(r,o,i,s);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[_])&&((y=r[_].body)!=null&&y.model)){u=r[_].body.model;break}}const d=IS(u),m=[],g={},h=[];if(r)for(let _=0;_<r.length;_++){const R=r[_];if(!R.timestamp)continue;const N=xc(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=GS(((w=R.body)==null?void 0:w.messages)||[]).toolResultMap;h.push({timestamp:R.timestamp,content:O,toolResultMap:I,label:Xd(N.type,N.subType),requestIndex:_})}}}let v=0;n.forEach((_,R)=>{var O,I,P,M;R>0&&m.push(C.jsx(oS,{style:{borderColor:"#333",margin:"16px 0"},children:C.jsx(qS,{className:Kr.sessionDividerText,children:"Session"})},`session-div-${R}`));const N=this.renderSessionMessages(_.messages,`s${R}`,d,c);for(const k of N){const L=k.props.timestamp;for(;v<h.length&&L&&h[v].timestamp<=L;){const j=h[v];j.timestamp&&(g[j.timestamp]=m.length),m.push(C.jsx(Bo,{role:"sub-agent-chat",content:j.content,toolResultMap:j.toolResultMap,label:j.label,timestamp:j.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:j.requestIndex,onViewRequest:s},`sub-chat-${v}`)),v++}L&&(g[L]=m.length),m.push(k)}for(;v<h.length;){const k=h[v],L=R<n.length-1&&((I=(O=n[R+1].messages)==null?void 0:O[0])==null?void 0:I._timestamp);if(L&&k.timestamp>L)break;k.timestamp&&(g[k.timestamp]=m.length),m.push(C.jsx(Bo,{role:"sub-agent-chat",content:k.content,toolResultMap:k.toolResultMap,label:k.label,timestamp:k.timestamp,collapseToolResults:o,expandThinking:i,requestIndex:k.requestIndex,onViewRequest:s},`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(oS,{style:{borderColor:"#2a2a2a",margin:"8px 0"},children:C.jsx(qS,{type:"secondary",className:Kr.lastResponseLabel,children:"Last Response"})})},"resp-divider")),_.entryTimestamp&&(g[_.entryTimestamp]=m.length),m.push(C.jsx(Bo,{role:"assistant",content:k,timestamp:_.entryTimestamp,modelInfo:d,collapseToolResults:o,expandThinking:i,toolResultMap:{}},"resp-asst")))}});const{scrollToTimestamp:b}=this.props;return this._scrollTargetIdx=b&&g[b]!=null?g[b]:null,this._tsItemMap=g,m}render(){const{mainAgentSessions:n,cliMode:r}=this.props,{allItems:o,visibleCount:i,loading:s}=this.state,c=!n||n.length===0;if(c&&!r)return C.jsx("div",{className:Kr.centerEmpty,children:C.jsx(co,{description:"暂无 MainAgent 对话数据"})});if(s&&!r)return C.jsx("div",{className:Kr.centerEmpty,children:C.jsx(Wi,{size:"large"})});const u=this._scrollTargetIdx,{highlightTs:d,highlightFading:m}=this.state,g=d&&this._tsItemMap&&this._tsItemMap[d]!=null?this._tsItemMap[d]:null,h=o.slice(0,i),{stickyBottom:v}=this.state,b=v?null:C.jsxs("button",{className:Kr.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"})})]}),y=c||s?C.jsxs("div",{className:Kr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Kr.container,children:!r||s?C.jsx("div",{className:Kr.centerEmpty,children:s?C.jsx(Wi,{size:"large"}):C.jsx(co,{description:"暂无 MainAgent 对话数据"})}):null}),b]}):C.jsxs("div",{className:Kr.messageListWrap,children:[C.jsx("div",{ref:this.containerRef,className:Kr.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})}),b]});return r?C.jsxs("div",{ref:this.splitContainerRef,className:Kr.splitContainer,children:[C.jsx("div",{className:Kr.navSidebar,children:C.jsx("button",{className:this.state.fileExplorerOpen?Kr.navBtnActive:Kr.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(_q,{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:Kr.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(FG,{filePath:this.state.currentFile,onClose:()=>this.setState({currentFile:null})}):y})})]})]}):y}}function nK(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,s=t.teamMember||null;if(e.length===0)return[{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:s}];const c=e[e.length-1],u=c.messages?c.messages.length:0,d=u>0&&n.length<u*.5&&u-n.length>4;if(o&&o===c.userId&&!d){const g=[...e];return g[g.length-1]={...c,messages:n,response:r,entryTimestamp:i,teamMember:s||c.teamMember},g}else return[...e,{userId:o,messages:n,response:r,entryTimestamp:i,teamMember:s}]}function rK(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=nK(n,r));return n}function oK({requests:e,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,chatScrollToTs:i,onScrollTsDone:s,cliMode:c,onBackToTeam:u}){const d=f.useMemo(()=>rK(e,!0),[e]);return console.log("[ChatViewPage] requests.length:",e.length,"sessions.length:",d.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(mr,{type:"text",size:"small",onClick:u,children:"← 监控"}),C.jsx("span",{style:{marginLeft:12,fontWeight:500},children:"对话视图"})]}),C.jsx(tK,{requests:e,mainAgentSessions:d,userProfile:t,collapseToolResults:n,expandThinking:r,onViewRequest:o,scrollToTimestamp:i,onScrollTsDone:s,cliMode:c})]})}const aK="_cyberCharacter_n8txo_8",iK="_hovered_n8txo_15",sK="_selected_n8txo_19",lK="_unreadBadge_n8txo_26",cK="_unreadCount_n8txo_52",uK="_pulse_n8txo_59",dK="_hologramContainer_n8txo_86",fK="_outerRing_n8txo_96",mK="_innerRing_n8txo_114",pK="_cyberCore_n8txo_142",gK="_cyberIcon_n8txo_178",hK="_dataFlow_n8txo_197",vK="_glowEffect_n8txo_220",bK="_nameTag_n8txo_248",yK="_contextBadge_n8txo_272",xK="_statusIndicator_n8txo_293",SK="_statusIcon_n8txo_314",CK="_statusText_n8txo_320",wK="_statusPulse_n8txo_377",EK="_contextBar_n8txo_403",_K="_contextBarBg_n8txo_419",$K="_contextBarFill_n8txo_428",NK="_shimmer_n8txo_1",RK="_contextText_n8txo_466",OK="_dataHint_n8txo_478",IK="_dataIcon_n8txo_506",TK="_dataCount_n8txo_512",er={cyberCharacter:aK,hovered:iK,selected:sK,unreadBadge:lK,"badge-glow":"_badge-glow_n8txo_1",unreadCount:cK,pulse:uK,"cyber-pulse":"_cyber-pulse_n8txo_1",hologramContainer:dK,outerRing:fK,"cyber-rotate":"_cyber-rotate_n8txo_1",innerRing:mK,"cyber-rotate-reverse":"_cyber-rotate-reverse_n8txo_1",cyberCore:pK,"cyber-node":"_cyber-node_n8txo_173",cyberIcon:gK,"icon-pulse":"_icon-pulse_n8txo_1",dataFlow:hK,"data-flow":"_data-flow_n8txo_1",glowEffect:vK,"glow-pulse":"_glow-pulse_n8txo_1",nameTag:bK,contextBadge:yK,statusIndicator:xK,statusIcon:SK,statusText:CK,"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:wK,"status-pulse":"_status-pulse_n8txo_1",contextBar:EK,contextBarBg:_K,contextBarFill:$K,shimmer:NK,"context-danger":"_context-danger_n8txo_451","context-warning":"_context-warning_n8txo_456","context-safe":"_context-safe_n8txo_461",contextText:RK,dataHint:OK,"hint-float":"_hint-float_n8txo_1",dataIcon:IK,dataCount:TK,"selected-glow":"_selected-glow_n8txo_1"},KS={"team-lead":"⬡",subagent:"◈",worker:"⬢",explorer:"◉",analyst:"⌬",tester:"⌘",reviewer:"⌖",mainagent:"⬡",agent:"◈"},XS={active:"▶",working:"◍",idle:"◌",error:"⚠"};class e$ extends Q.Component{constructor(){super(...arguments);kt(this,"state",{isHovered:!1});kt(this,"handleClick",()=>{const{character:n,onSelect:r}=this.props;r(n)});kt(this,"handleMouseEnter",()=>{this.setState({isHovered:!0})});kt(this,"handleMouseLeave",()=>{this.setState({isHovered:!1})})}getMessageCount(){var i,s;const{character:n}=this.props,r=((i=n.messages)==null?void 0:i.filter(c=>!c.read).length)||0,o=((s=n.messages)==null?void 0:s.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:s}=this.getMessageCount(),c=this.getCharacterTypeClass(),u=this.getCyberColor(),d=this.getContextPercent(),m=KS[n.type]||KS.subagent,g=XS[n.status]||XS.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}),d!==null&&C.jsxs("span",{className:er.contextBadge,style:{background:d>60?"rgba(239, 68, 68, 0.3)":d>40?"rgba(251, 191, 36, 0.3)":"rgba(0, 255, 247, 0.2)",color:d>60?"#ef4444":d>40?"#fbbf24":"#00fff7",border:`1px solid ${d>60?"#ef4444":d>40?"#fbbf24":"#00fff7"}44`,boxShadow:d>60?"0 0 8px rgba(239, 68, 68, 0.3)":d>40?"0 0 8px rgba(251, 191, 36, 0.3)":"0 0 8px rgba(0, 255, 247, 0.2)"},children:[d,"%"]}),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&&s>0&&C.jsxs("div",{className:er.dataHint,children:[C.jsx("span",{className:er.dataIcon,children:"⌬"}),C.jsx("span",{className:er.dataCount,children:s})]})]})}}const MK="_messageEnvelope_12k2o_1",PK="_particles_12k2o_9",kK="_particle_12k2o_9",_g={messageEnvelope:MK,particles:PK,particle:kK};class jK extends Q.Component{constructor(n){super(n);kt(this,"animate",()=>{const r=performance.now()-this.startTime,o=this.props.duration||1500,i=Math.min(r/o,1),s=i<.5?2*i*i:1-Math.pow(-2*i+2,2)/2;this.setState({progress:s}),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,s=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:_g.messageEnvelope,style:{left:s,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:_g.particles,children:Array.from({length:5}).map((d,m)=>{const g=m*.1,h=Math.max(0,o-g)/(1-g);return C.jsx("div",{className:_g.particle,style:{animationDelay:`${g}s`,opacity:1-h}},m)})})]})}}const AK="_panel_1c46t_5",LK="_header_1c46t_52",BK="_headerLeft_1c46t_72",zK="_avatar_1c46t_100",DK="_title_1c46t_129",FK="_name_1c46t_133",HK="_meta_1c46t_144",VK="_messageCount_1c46t_151",WK="_closeButton_1c46t_159",UK="_actionButtons_1c46t_184",qK="_actionButton_1c46t_184",GK="_stats_1c46t_205",KK="_statItem_1c46t_225",XK="_statValue_1c46t_229",YK="_statLabel_1c46t_238",QK="_messageList_1c46t_250",ZK="_messageListHeader_1c46t_257",JK="_messageListCount_1c46t_272",eX="_emptyState_1c46t_284",tX="_list_1c46t_303",nX="_messageItem_1c46t_327",rX="_messageHeader_1c46t_357",oX="_messageSender_1c46t_363",aX="_messageTime_1c46t_374",iX="_messageStatus_1c46t_380",sX="_messageSummary_1c46t_386",lX="_messageContent_1c46t_394",cX="_messageBody_1c46t_398",yn={panel:AK,header:LK,headerLeft:BK,avatar:zK,title:DK,name:FK,meta:HK,messageCount:VK,closeButton:WK,actionButtons:UK,actionButton:qK,stats:GK,statItem:KK,statValue:XK,statLabel:YK,messageList:QK,messageListHeader:ZK,messageListCount:JK,emptyState:eX,list:tX,messageItem:nX,messageHeader:rX,messageSender:oX,messageTime:aX,messageStatus:iX,messageSummary:sX,messageContent:lX,messageBody:cX},{Text:WY,Paragraph:uX}=Wo;function dX(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 t$ extends Q.Component{render(){const{character:t,visible:n,onClose:r,onViewNetworkRequests:o,onViewConversation:i,sessionMode:s,sessionId:c}=this.props;if(!n||!t)return null;const u=t.messages||[],d=u.filter(g=>!dX(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(uo,{color:t.status==="active"?"green":"default",children:t.status==="active"?"工作中":"空闲"}),C.jsxs("span",{className:yn.messageCount,children:[d.length," 条消息"]})]})]})]}),C.jsx("button",{className:yn.closeButton,onClick:r,children:"✕"})]}),C.jsxs("div",{className:yn.actionButtons,children:[C.jsx(mr,{type:"primary",icon:C.jsx(r_,{}),onClick:()=>{s&&c?window.location.hash=`/raw?session=${c}&agent=${encodeURIComponent(t.name)}`:o==null||o(t)},className:yn.actionButton,children:"查看请求"}),C.jsx(mr,{icon:C.jsx(o_,{}),onClick:()=>{s&&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:d.length}),C.jsx("div",{className:yn.statLabel,children:"消息"})]}),C.jsxs("div",{className:yn.statItem,children:[C.jsx("div",{className:yn.statValue,children:new Set(d.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:d.length})]}),d.length===0?C.jsxs("div",{className:yn.emptyState,children:[C.jsx(tz,{style:{fontSize:48,color:"#333"}}),C.jsx("p",{children:"暂无消息记录"})]}):C.jsx(hc,{className:yn.list,dataSource:[...d].reverse(),renderItem:(g,h)=>{const v=g.read!==!1,b=g.timestamp||new Date().toISOString(),y=g.color||"#888";return C.jsxs(hc.Item,{className:yn.messageItem,children:[C.jsxs("div",{className:yn.messageHeader,children:[C.jsxs("div",{className:yn.messageSender,children:[C.jsx(iz,{style:{marginRight:4,color:y,fontSize:11}}),C.jsx("span",{style:{color:y,fontWeight:500},children:g.from})]}),C.jsxs("div",{className:yn.messageStatus,children:[C.jsx("span",{className:yn.messageTime,children:new Date(b).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),!v&&C.jsx(Bd,{status:"processing"})]})]}),g.summary&&C.jsx("div",{className:yn.messageSummary,children:g.summary}),C.jsx("div",{className:yn.messageContent,children:C.jsx(uX,{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 a0(e){const{onFullReload:t,onLogUpdate:n,onUpdateInfo:r,onTeamStats:o,onSessionsUpdate:i,team:s,session:c,projectSessions:u}=e,d=f.useRef(null),m=f.useRef(null),g=f.useRef(t),h=f.useRef(n),v=f.useRef(r),b=f.useRef(o),y=f.useRef(i);g.current=t,h.current=n,v.current=r,b.current=o,y.current=i;const S=f.useCallback(()=>{if(!s&&!c&&!u){console.log("[useSSE] No team, session or projectSessions parameter, skipping connection");return}d.current&&d.current.close();let E;if(s?E=`/events?team=${encodeURIComponent(s)}`:c?E=`/events?session=${encodeURIComponent(c)}`:u&&(E=`/events?projectSessions=${encodeURIComponent(u)}`),console.log("[useSSE] Connecting to:",E),d.current){const _=d.current;if(_.readyState===EventSource.OPEN||_.readyState===EventSource.CONNECTING){console.log("[useSSE] Already connected or connecting, skipping");return}_.close()}const w=new EventSource(E);d.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=b.current)==null||R.call(b,N)}catch{}}),w.addEventListener("sessions_update",_=>{var R;try{const N=JSON.parse(_.data);(R=y.current)==null||R.call(y,N)}catch{}}),w.onerror=()=>{console.log("[useSSE] Connection error, reconnecting in 3s..."),w.close(),d.current=null,m.current=setTimeout(S,3e3)}},[s,c,u]);return f.useEffect(()=>{if(!(!s&&!c&&!u))return console.log("[useSSE] Effect running, team:",s,"session:",c,"projectSessions:",u),S(),()=>{console.log("[useSSE] Cleanup"),d.current&&d.current.close(),m.current&&clearTimeout(m.current)}},[S,s,c,u]),{eventSource:d.current}}const fX="_sidebar_v00c5_1",mX="_collapsed_v00c5_13",pX="_sessionItem_v00c5_19",gX="_sessionList_v00c5_20",hX="_loading_v00c5_21",vX="_empty_v00c5_22",bX="_header_v00c5_29",yX="_collapseButton_v00c5_43",xX="_collapsedContent_v00c5_60",SX="_collapsedCount_v00c5_71",CX="_collapsedLabel_v00c5_82",wX="_count_v00c5_100",EX="_sessionId_v00c5_156",_X="_userMessage_v00c5_163",$X="_sessionInfo_v00c5_175",NX="_time_v00c5_188",zr={sidebar:fX,collapsed:mX,sessionItem:pX,sessionList:gX,loading:hX,empty:vX,header:bX,collapseButton:yX,collapsedContent:xX,collapsedCount:SX,collapsedLabel:CX,count:wX,sessionId:EX,userMessage:_X,sessionInfo:$X,time:NX};function RX(e){if(!e)return"";const t=new Date(e),r=new Date-t,o=Math.floor(r/6e4),i=Math.floor(r/36e5),s=Math.floor(r/864e5);return o<1?"刚刚":o<60?`${o}m 前`:i<24?`${i}h 前`:s<7?`${s}d 前`:t.toLocaleDateString("zh-CN",{month:"short",day:"numeric"})}function OX({projectId:e,onSelectSession:t,defaultCollapsed:n=!1}){const[r,o]=f.useState([]),[i,s]=f.useState(!0),[c,u]=f.useState(n),d=f.useRef(null);f.useEffect(()=>{console.log("[SessionSidebar] Component mounted"),console.log("[SessionSidebar] projectId:",e),console.log("[SessionSidebar] onSelectSession type:",typeof t),d.current&&console.log("[SessionSidebar] Container ref found:",d.current);const g=h=>{const v=h.target.closest("[data-session-id]");if(v){const b=v.getAttribute("data-session-id"),y=r.find(S=>S.id===b);y&&(console.log("[SessionSidebar] Native click event triggered for session:",b),m(y))}};return d.current&&(d.current.addEventListener("click",g),console.log("[SessionSidebar] Native click listener attached")),()=>{console.log("[SessionSidebar] Component unmounted"),d.current&&d.current.removeEventListener("click",g)}},[e,t,r]),a0({projectSessions:e,onSessionsUpdate:g=>{o(g.sessions||[]),s(!1)}});const m=g=>{console.log("[SessionSidebar] Session clicked:",g.id),console.log("[SessionSidebar] Session object:",g),console.log("[SessionSidebar] onSelectSession function:",typeof t);try{t(g)}catch(v){console.error("[SessionSidebar] Error calling onSelectSession:",v)}const h=`/session-monitor?session=${g.id}`;console.log("[SessionSidebar] Setting hash to:",h);try{window.location.hash=h}catch(v){console.error("[SessionSidebar] Error setting hash:",v)}};return C.jsxs("div",{className:`${zr.sidebar} ${c?zr.collapsed:""}`,ref:d,children:[C.jsxs("div",{className:zr.header,children:[!c&&C.jsx("h3",{children:"Sessions"}),!c&&C.jsx("span",{className:zr.count,children:r.length}),C.jsx("button",{className:zr.collapseButton,onClick:()=>u(!c),title:c?"展开侧边栏":"收起侧边栏",children:c?"→":"←"})]}),c?C.jsxs("div",{className:zr.collapsedContent,children:[C.jsx("div",{className:zr.collapsedCount,children:r.length}),C.jsx("div",{className:zr.collapsedLabel,children:"Sessions"})]}):i?C.jsx("div",{className:zr.loading,children:"Loading..."}):C.jsx("div",{className:zr.sessionList,style:{display:c?"none":"block"},children:r.length===0?C.jsx("div",{className:zr.empty,children:"No sessions"}):r.map(g=>C.jsxs("div",{className:zr.sessionItem,style:{display:c?"none":"block"},onClick:h=>{console.log("[SessionSidebar] Click event fired",h.target),m(g)},"data-session-id":g.id,children:[g.lastUserMessage&&C.jsx("div",{className:zr.userMessage,children:g.lastUserMessage}),C.jsx("div",{className:zr.sessionId,children:g.id}),C.jsxs("div",{className:zr.sessionInfo,children:[C.jsx("span",{className:zr.time,children:RX(g.lastTimestamp)}),C.jsxs("span",{children:[g.requestCount," requests"]}),g.agents.length>0&&C.jsxs("span",{children:[g.agents.length," agents"]})]})]},g.id))})]})}const IX="_container_fx2ff_8",TX="_grass_fx2ff_30",MX="_decoration1_fx2ff_41",PX="_decoration2_fx2ff_52",kX="_decoration3_fx2ff_63",jX="_decoration4_fx2ff_74",AX="_background_fx2ff_90",LX="_grid_fx2ff_100",BX="_particles_fx2ff_113",zX="_backgroundParticle_fx2ff_121",DX="_hint_fx2ff_151",FX="_stats_fx2ff_160",HX="_stat_fx2ff_160",VX="_statLabel_fx2ff_183",WX="_statValue_fx2ff_191",UX="_statDivider_fx2ff_200",qX="_loadingState_fx2ff_208",GX="_emptyState_fx2ff_223",KX="_spinner_fx2ff_236",XX="_emptyIcon_fx2ff_260",YX="_errorText_fx2ff_281",QX="_teamSelector_fx2ff_289",ZX="_selectorTitle_fx2ff_299",JX="_teamList_fx2ff_313",eY="_teamCard_fx2ff_323",tY="_teamCardName_fx2ff_358",nY="_teamCardIcon_fx2ff_371",rY="_teamCardInfo_fx2ff_376",oY="_teamCardMeta_fx2ff_384",aY="_backButton_fx2ff_397",iY="_teamName_fx2ff_422",sY="_teamIcon_fx2ff_444",lY="_emptyDetail_fx2ff_449",cY="_teamDivider_fx2ff_456",uY="_activeBadge_fx2ff_462",dY="_createdAt_fx2ff_488",fY="_sunOrbit_fx2ff_736",mY="_sunOrbitInner_fx2ff_748",jt={container:IX,grass:TX,decoration1:MX,decoration2:PX,decoration3:kX,decoration4:jX,background:AX,grid:LX,particles:BX,backgroundParticle:zX,hint:DX,stats:FX,stat:HX,statLabel:VX,statValue:WX,statDivider:UX,loadingState:qX,emptyState:GX,spinner:KX,emptyIcon:XX,errorText:YX,teamSelector:QX,selectorTitle:ZX,teamList:JX,teamCard:eY,teamCardName:tY,teamCardIcon:nY,teamCardInfo:rY,teamCardMeta:oY,backButton:aY,teamName:iY,teamIcon:sY,emptyDetail:lY,teamDivider:cY,activeBadge:uY,createdAt:dY,sunOrbit:fY,sunOrbitInner:mY},pY=(e,t)=>({"team-lead":"#fbbf24",subagent:"#3b82f6",worker:"#22c55e",explorer:"#8b5cf6",analyst:"#ec4899",tester:"#06b6d4",reviewer:"#f59e0b"})[e],YS=e=>({"team-lead":"🤠",subagent:"👤",worker:"🔧",explorer:"🔍",analyst:"📊",tester:"🧪",reviewer:"👁️"})[e]||"👤";class gY extends Q.Component{constructor(){super(...arguments);kt(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:[]});kt(this,"containerRef",Q.createRef());kt(this,"resizeObserver",null);kt(this,"_lastNotifiedMemberRequests",null);kt(this,"_loadedTeamId",null);kt(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:s}=this.props;s&&s(i,{stats:o})}}catch(r){console.error("Failed to refresh team stats:",r)}});kt(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 s=n.id||n.name,{onTeamDataChange:c}=this.props;c&&c(s,{inbox:i})}}catch(r){console.error("Failed to refresh team messages:",r)}});kt(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,s=o.find(c=>c.id===i||c.name===i);s&&this.selectTeamWithoutNavigation(s)}})}catch(n){console.error("Failed to load teams:",n),this.setState({loading:!1,error:n.message})}});kt(this,"handleSessionSelect",n=>{console.log("[handleSessionSelect] Called, session:",n)});kt(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,s=o==null?void 0:o[r];if((s==null?void 0:s.stats)&&(s==null?void 0:s.inbox)!==void 0){console.log("[handleSelectTeam] Using cached data from global state:",s),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:s.stats,teamMessages:s.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 d=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(d=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||d)&&i(r,{stats:u,inbox:d}),this.setState({currentTeam:n,teamStats:u,teamMessages:d},()=>{this.initializeCharacters(),window.location.hash=`/monitor?team=${encodeURIComponent(r)}`})});kt(this,"selectTeamWithoutNavigation",async n=>{const r=n.id||n.name,{teamData:o,onTeamDataChange:i}=this.props,s=o==null?void 0:o[r];if((s==null?void 0:s.stats)&&(s==null?void 0:s.inbox)!==void 0){console.log("[selectTeamWithoutNavigation] Using cached data from global state:",s),this._loadedTeamId=r,this.setState({currentTeam:n,teamStats:s.stats,teamMessages:s.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 d=[];try{const m=await fetch(`/api/teams/${n.id}/inbox`);m.ok&&(d=(await m.json()).messages||[])}catch(m){console.error("Failed to load team inbox:",m)}this._loadedTeamId=r,i&&(u||d)&&i(r,{stats:u,inbox:d}),this.setState({currentTeam:n,teamStats:u,teamMessages:d},()=>{this.initializeCharacters()})});kt(this,"handleBackToSelector",()=>{this.setState({currentTeam:null,characters:[],memberGroups:[],teamStats:null}),window.location.hash="/team"});kt(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)}});kt(this,"handleWindowResize",()=>{this.handleResize()});kt(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)}))});kt(this,"handleCloseDetail",()=>{this.setState({selectedCharacter:null})});kt(this,"handleViewNetworkRequests",n=>{var i,s;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(s=this.state.currentTeam)!=null&&s.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:"")});kt(this,"handleViewConversation",n=>{var i,s;const r=new URLSearchParams;((i=this.state.currentTeam)!=null&&i.id||(s=this.state.currentTeam)!=null&&s.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:"")});kt(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"});kt(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 s=n.replace(i,"");s&&s!==n&&!r.includes(s)&&r.push(s)}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)})),s={};i.forEach(({prefixes:u})=>{u.forEach(d=>{s[d]=(s[d]||0)+1})});const c={};return i.forEach(({member:u,prefixes:d})=>{let m=u.name;for(const g of d)if(s[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 s=n/2,c=r/2,{teamLead:u,groups:d}=this.groupMembersByPrefix(o.members),m=Object.keys(d).sort(),g=m.length;console.log("=== Team Layout Debug ==="),console.log("teamLead:",u==null?void 0:u.name),console.log("groups:",d),console.log("groupNames:",m),console.log("groupCount:",g),console.log("centerX:",s,"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:pY("team-lead"),x:s-50,y:c-50,status:_>0?"active":"idle",mood:"idle",messages:R,avatar:YS(u.agentType),unreadCount:_};v.push(N),console.log("Added team-lead (Sun):",N)}const b=Math.min(n,r),y=Math.max(b*.32,220);m.forEach((w,_)=>{const R=d[w],N=R.length,I=2*Math.PI/g*_-Math.PI/2,P=s+y*Math.cos(I),M=c+y*Math.sin(I);console.log(`
444
444
  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 L=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+L*Math.cos(z),q=M+L*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],A=280;h.push({name:w,x:P,y:M,width:A,height:A,color:D,memberCount:N,orbitRadius:L}),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:YS(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 s=n/2,c=r/2,{teamLead:u,groups:d}=this.groupMembersByPrefix(o.members),m=Object.keys(d).sort(),g=m.length,h=[],v=[],b=Math.min(n,r),y=Math.max(b*.22,150);if(u){const S=this.state.characters.find(E=>E.type==="team-lead");S&&h.push({...S,x:s-50,y:c-50})}m.forEach((S,E)=>{const w=d[S],_=w.length,N=2*Math.PI/g*E-Math.PI/2,O=s+y*Math.cos(N),I=c+y*Math.sin(N);let P=[];const M=85;if(_>1){const D=2*Math.PI/_;w.forEach((A,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"}],L=k[E%k.length],j=280;v.push({name:S,x:O,y:I,width:j,height:j,color:L,memberCount:_,orbitRadius:M}),w.forEach(D=>{const A=this.state.characters.find(V=>V.name===D.name);if(A){const V=w.findIndex(H=>H.name===D.name);h.push({...A,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 s=this.props.selectedTeam;if(!this.state.currentTeam||this.state.currentTeam.id!==s.id){const c=this.state.teams.find(u=>u.id===s.id||u.name===s.id);c&&this.selectTeamWithoutNavigation(c)}}if(n.requests!==this.props.requests){this.updateCharactersFromRequests(),this.checkForNewMessages(n.requests,this.props.requests);const s=((o=n.requests)==null?void 0:o.length)||0,c=((i=this.props.requests)==null?void 0:i.length)||0,u=s>0&&c>s;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(d=>{const m=d.name.toLowerCase(),g=n.filter(h=>{var S,E,w,_,R,N;if(d.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)===d.id}if((h.teamMember||"").split("@")[0].toLowerCase()===m||((_=(w=h.body)==null?void 0:w.metadata)==null?void 0:_.agent_id)===d.id)return!0;const y=(R=h.body)!=null&&R.system&&typeof((N=h.body)==null?void 0:N.system)=="string"?h.body.system.toLowerCase():"";return!!(y.includes(m)&&y.includes("teammate"))});i[d.name]=g});const s=o.characters.map(d=>{var R,N,O,I;const m=i[d.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,L=P.cache_creation_input_tokens||0,j=M+k+L,D=2e5;let A=0;j>0&&(A=Math.round(j/D*100)),h={inputTokens:M,cacheRead:k,cacheCreate:L,totalInput:j,contextPercent:A}}let b=null;for(let P=m.length-1;P>=0;P--){const M=m[P];if((O=M.response)!=null&&O.body&&M.timestamp){b=new Date(M.timestamp).getTime();break}}const y=b&&Date.now()-b<1e4;let S="idle";y&&(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=y?"active":"idle",w=((I=d.contextInfo)==null?void 0:I.contextPercent)??null,_=(h==null?void 0:h.contextPercent)??null;return d.status===E&&d.mood===S&&w===_?d:{...d,status:E,mood:S,contextInfo:h}}),c=s.some((d,m)=>d!==o.characters[m]),u=Object.keys(i).some(d=>JSON.stringify(i[d])!==JSON.stringify(o.memberRequests[d]||[]));if(!c&&!u)return null;if(r&&typeof r=="function"){const d=JSON.stringify(i),m=this._lastNotifiedMemberRequests?JSON.stringify(this._lastNotifiedMemberRequests):null;d!==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:s,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(s=>{var u,d,m;return(((u=n.url)==null?void 0:u.toLowerCase())||"").includes(s.name.toLowerCase())||((m=(d=n.body)==null?void 0:d.metadata)==null?void 0:m.agent_id)===s.id}),i=r.find(s=>s.type==="team-lead")||r[0];if(o&&i&&o.id!==i.id){const s={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,s]})),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:s,currentTeam:c,teams:u,teamStats:d,memberGroups:m}=this.state,{requests:g,viewMode:h,teamData:v,onTeamDataChange:b}=this.props;return i?C.jsx("div",{className:jt.container,ref:this.containerRef,children:C.jsxs("div",{className:jt.loadingState,children:[C.jsx("div",{className:jt.spinner}),C.jsx("p",{children:"加载团队配置中..."})]})}):h==="team"?C.jsxs("div",{className:jt.container,ref:this.containerRef,children:[C.jsx(OX,{projectId:this.props.projectName,onSelectSession:this.handleSessionSelect}),C.jsxs("div",{className:jt.teamSelector,children:[C.jsxs("div",{className:jt.selectorTitle,children:[C.jsx("span",{className:jt.teamIcon,children:"👥"}),"选择要观察的团队"]}),C.jsx("div",{className:jt.teamList,children:u.length===0?C.jsxs("div",{className:jt.emptyState,children:[C.jsx("div",{className:jt.emptyIcon,children:"📭"}),C.jsx("h3",{children:"暂无可用团队"}),C.jsx("p",{children:"请先创建团队,在 claude code 中显式声明需要他创建团队并添加成员"}),C.jsx("div",{className:jt.hint,children:"团队配置存储在 ~/.claude/teams/"})]}):u.map(y=>{var S;return C.jsxs("div",{className:jt.teamCard,onClick:()=>this.handleSelectTeam(y),children:[C.jsxs("div",{className:jt.teamCardName,children:[C.jsx("span",{className:jt.teamCardIcon,children:"👥"}),y.name,y.isActive&&C.jsx("span",{className:jt.activeBadge,children:"活跃中"})]}),C.jsx("div",{className:jt.teamCardInfo,children:y.description||"暂无描述"}),C.jsxs("div",{className:jt.teamCardMeta,children:[((S=y.members)==null?void 0:S.length)||0," 成员",y.createdAt&&C.jsxs("span",{className:jt.createdAt,children:["创建于 ",new Date(y.createdAt).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})]})]})]},y.id||y.name)})})]})]}):s?C.jsx("div",{className:jt.container,ref:this.containerRef,children:C.jsxs("div",{className:jt.emptyState,children:[C.jsx("div",{className:jt.emptyIcon,children:"👥"}),C.jsx("h3",{children:"暂无团队配置"}),C.jsx("p",{children:"请先创建团队并添加成员"}),s&&C.jsxs("p",{className:jt.errorText,children:["错误: ",s]}),C.jsx("div",{className:jt.hint,children:"团队配置存储在 ~/.claude/teams/"}),c&&c.members&&c.members.length===0&&C.jsxs("p",{className:jt.emptyDetail,children:['团队 "',c.name,'" 暂无成员,请添加成员后刷新']})]})}):h==="monitor"&&n.length===0?C.jsx("div",{className:jt.container,ref:this.containerRef,children:C.jsxs("div",{className:jt.loadingState,children:[C.jsx("div",{className:jt.spinner}),C.jsx("p",{children:"加载团队数据中..."})]})}):C.jsxs("div",{className:jt.container,ref:this.containerRef,children:[C.jsx("div",{className:jt.backButton,onClick:this.handleBackToSelector,children:"← 返回团队列表"}),c&&C.jsxs("div",{className:jt.teamName,children:[C.jsx("span",{className:jt.teamIcon,children:"👥"}),c.name,C.jsx("span",{className:jt.teamDivider,children:"|"}),n.length," 成员"]}),C.jsxs("div",{className:jt.background,children:[C.jsx("div",{className:jt.grid}),C.jsx("div",{className:jt.particles,children:Array.from({length:15}).map((y,S)=>C.jsx("div",{className:jt.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:jt.grass}),C.jsx("div",{className:jt.decoration1,children:"🌳"}),C.jsx("div",{className:jt.decoration2,children:"🌲"}),C.jsx("div",{className:jt.decoration3,children:"🌻"}),C.jsx("div",{className:jt.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:jt.sunOrbit,style:{width:"75%",height:"75%",maxWidth:"700px",maxHeight:"700px"}}),C.jsx("div",{className:jt.sunOrbitInner,style:{width:"45%",height:"45%",maxWidth:"400px",maxHeight:"400px"}})]}),m.map((y,S)=>{const E=y.color||{primary:"#00fff7",secondary:"#00a8ff"},w=y.orbitRadius||85;return C.jsxs("div",{style:{position:"absolute",left:y.x,top:y.y,transform:"translate(-50%, -50%)",zIndex:5,width:y.width,height:y.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:y.name})]},S)})]}),C.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:n.map(y=>C.jsx("div",{style:{position:"absolute",left:y.x,top:y.y,transform:"translate(-50%, -50%)",pointerEvents:"auto",zIndex:y.type==="team-lead"?15:10},children:C.jsx(e$,{character:y,isSelected:(o==null?void 0:o.id)===y.id,onSelect:this.handleSelectCharacter})},y.id))}),r.map(y=>C.jsx(jK,{from:y.from,to:y.to,duration:1200,onComplete:()=>this.handleAnimationComplete(y.id)},y.id)),C.jsx(t$,{character:o,visible:!!o,onClose:this.handleCloseDetail,onViewNetworkRequests:this.handleViewNetworkRequests,onViewConversation:this.handleViewConversation,onBackToTeam:this.handleBackToTeam}),C.jsx("div",{className:jt.hint,children:"点击角色查看详情 · 观察消息流动"}),C.jsxs("div",{className:jt.stats,children:[C.jsxs("div",{className:jt.stat,children:[C.jsx("span",{className:jt.statLabel,children:"成员"}),C.jsx("span",{className:jt.statValue,children:n.length})]}),C.jsx("div",{className:jt.statDivider,children:"|"}),C.jsxs("div",{className:jt.stat,children:[C.jsx("span",{className:jt.statLabel,children:"活跃"}),C.jsx("span",{className:jt.statValue,children:n.filter(y=>y.status==="active").length})]}),C.jsx("div",{className:jt.statDivider,children:"|"}),C.jsxs("div",{className:jt.stat,children:[C.jsx("span",{className:jt.statLabel,children:"消息"}),C.jsx("span",{className:jt.statValue,children:(d==null?void 0:d.messageCount)??0})]}),C.jsx("div",{className:jt.statDivider,children:"|"}),C.jsxs("div",{className:jt.stat,children:[C.jsx("span",{className:jt.statLabel,children:"请求"}),C.jsx("span",{className:jt.statValue,children:g.length})]})]})]})}}function hY({requests:e,projectName:t,selectedTeam:n,viewMode:r,onMemberRequestsChange:o,teamData:i,onTeamDataChange:s}){return C.jsx("div",{style:{display:"flex",height:"100%"},children:C.jsx(f.Suspense,{fallback:C.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"#999"},children:"加载中..."}),children:C.jsx(gY,{requests:e,projectName:t,selectedTeam:n,viewMode:r,onMemberRequestsChange:o,teamData:i,onTeamDataChange:s})})})}const vY="_container_8225t_5",bY="_header_8225t_31",yY="_backButton_8225t_56",xY="_title_8225t_77",SY="_sessionId_8225t_87",CY="_charactersArea_8225t_97",wY="_orbitRing_8225t_109",EY="_orbitRingInner_8225t_121",_Y="_emptyState_8225t_157",$Y="_emptyIcon_8225t_168",ua={container:vY,header:bY,backButton:yY,title:xY,sessionId:SY,charactersArea:CY,orbitRing:wY,orbitRingInner:EY,emptyState:_Y,emptyIcon:$Y},QS=["#fbbf24","#00fff7","#00ff88","#ff6600","#bf00ff","#ff00ff","#00a8ff","#f59e0b"];function NY({sessionId:e,projectName:t,requests:n}){const r=f.useRef(null),[o,i]=f.useState(null),[s,c]=f.useState([]),[u,d]=f.useState({}),[m,g]=f.useState(null),[h,v]=f.useState(n||[]);a0({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 b=f.useRef(new Map),y=f.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&&!Ud(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 L=I.agentName||Ud(I);if(L){const j=L;w.has(j)||w.set(j,{id:j,name:L,type:"agent",color:QS[w.size%QS.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 A,V;const M=I.requests||[];let k=null;for(let H=M.length-1;H>=0;H--){const W=M[H];if((A=W.response)!=null&&A.body&&typeof W.response.body=="object"){k=W;break}}let L=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)),L={inputTokens:W,cacheRead:z,cacheCreate:K,totalInput:q,contextPercent:B}}I.contextInfo=L;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}})}),b.current=w,console.log("[SessionView] characterMap built, size:",w.size),w},[h]);f.useEffect(()=>{if(y.size>0){const w=Array.from(y.values()).sort((_,R)=>_.type==="mainagent"?-1:R.type==="mainagent"?1:0);console.log("[SessionView] Built characters from requests:",w.length),c(w)}},[y]),f.useEffect(()=>{if(!r.current||s.length===0)return;const w=()=>{const R=r.current.getBoundingClientRect(),N=R.width/2,O=R.height/2,I=s.find(L=>L.type==="mainagent"),P=s.filter(L=>L.type!=="mainagent"),M=P.length,k={};if(I&&(k[I.id]={x:N,y:O}),M>0){const L=Math.min(N,O)*.45,j=Math.max(0,(M-3)*30),A=Math.max(L,180)+j,V=2*Math.PI/M;P.forEach((H,W)=>{const z=V*W-Math.PI/2,K=N+A*Math.cos(z),q=O+A*Math.sin(z);k[H.id]={x:K,y:q}})}d(k)};return w(),window.addEventListener("resize",w),()=>window.removeEventListener("resize",w)},[s]),f.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 _=b.current.get(w.id);console.log("[SessionView] charData:",_),g(_?{...w,..._,messages:w.messages||[]}:w)};return C.jsxs("div",{className:ua.container,children:[C.jsxs("div",{className:ua.header,children:[C.jsx("button",{className:ua.backButton,onClick:()=>window.location.hash="/team",children:"← 返回"}),C.jsxs("h2",{className:ua.title,children:["Session: ",C.jsx("span",{className:ua.sessionId,children:e})]})]}),C.jsxs("div",{className:ua.charactersArea,ref:r,children:[s.length>1&&C.jsxs(C.Fragment,{children:[C.jsx("div",{className:ua.orbitRing,style:{width:"90%",height:"90%",maxWidth:"700px",maxHeight:"700px"}}),C.jsx("div",{className:ua.orbitRingInner,style:{width:"60%",height:"60%",maxWidth:"450px",maxHeight:"450px"}})]}),s.length===0?C.jsxs("div",{className:ua.emptyState,children:[C.jsx("div",{className:ua.emptyIcon,children:"◌"}),C.jsx("h3",{children:"NO DATA"}),C.jsx("p",{children:"Waiting for request stream..."})]}):s.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(e$,{character:w,isSelected:(m==null?void 0:m.id)===w.id,onSelect:E})},w.id)})]}),m&&C.jsx(t$,{character:m,visible:!!m,sessionMode:!0,sessionId:e,onClose:()=>g(null)})]})}function RY({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(f.Suspense,{fallback:C.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"#999"},children:"加载中..."}),children:C.jsx(NY,{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 OY(){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 IY(e,t){return t?t.toLowerCase()==="mainagent"?e.mainAgent===!0:e.agentName===t:!0}const TY="_layout_1krbo_4",MY="_header_1krbo_10",PY="_content_1krbo_31",kY="_loadingOverlay_1krbo_178",jY="_loadingText_1krbo_192",ql={layout:TY,header:MY,content:PY,loadingOverlay:kY,loadingText:jY};function AY(e,t){const[n,r]=f.useState(0),o=f.useRef(null);return f.useEffect(()=>{if(!e){r(0),o.current&&cancelAnimationFrame(o.current);return}const i=performance.now(),s=Math.min(800,Math.max(300,t*10)),c=()=>{const u=performance.now(),d=Math.min((u-i)/s,1);r(Math.round(d*t)),d<1&&(o.current=requestAnimationFrame(c))};return o.current=requestAnimationFrame(c),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t]),n}function LY(){const[e,t]=f.useState([]),[n,r]=f.useState(null),[o,i]=f.useState("team"),[s,c]=f.useState("request"),[u,d]=f.useState(380),[m,g]=f.useState(!1),[h,v]=f.useState(null),[b,y]=f.useState(""),[S,E]=f.useState(!0),[w,_]=f.useState(!0),[R,N]=f.useState(!1),[O,I]=f.useState(!1),[P,M]=f.useState(0),[k,L]=f.useState(!1),[j,D]=f.useState(null),[A,V]=f.useState(null),[H,W]=f.useState(null),[z,K]=f.useState(null),[q,B]=f.useState(!1),[U,G]=f.useState({}),[X,Z]=f.useState({}),{cacheExpireAt:te,cacheType:pe}=OY(),le=AY(O,P),fe=f.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())})},[]);a0({team:(j==null?void 0:j.id)||(j==null?void 0:j.name)||null,session:A||null,onFullReload:ae=>{Array.isArray(ae)&&(console.log("[App useSSE] onFullReload:",ae.length,"entries"),t(ae))},onLogUpdate:fe});const we=f.useRef({hasTeam:!1,hasSession:!1});f.useEffect(()=>{const ae=(j==null?void 0:j.id)||(j==null?void 0:j.name),Ae=A,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,A]),f.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),y(ae.projectName||"")}).catch(()=>{}),fetch("/api/cli-mode").then(ae=>ae.json()).then(ae=>{ae.cliMode&&L(!0)}).catch(()=>{}),ce(),window.addEventListener("hashchange",ce),()=>{window.removeEventListener("hashchange",ce)}),[]);const ce=f.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=f.useCallback(ae=>{r(ae),$e({idx:ae})},[]),be=f.useCallback(ae=>{c(ae),$e({tab:ae})},[]),Se=f.useCallback(ae=>{i("chat"),K(ae),$e({scrollTs:ae})},[]),ge=f.useCallback(ae=>{i("raw"),r(ae),$e({idx:ae})},[]),ie=f.useCallback(ae=>{G(ae)},[]),ve=f.useCallback((ae,Ae)=>{Z(Fe=>({...Fe,[ae]:{...Fe[ae],...Ae,loadedAt:Date.now()}}))},[]),$e=f.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=Nz(e||[]),De=m?e||[]:Te,ke=f.useMemo(()=>{const ae=window.location.hash.slice(1),[,Ae]=ae.split("?");return new URLSearchParams(Ae||"").get("member")||null},[o]),je=f.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!Ud(Fe);const Je=Ud(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=f.useMemo(()=>!A||!H?e||[]:(e||[]).filter(ae=>IY(ae,H)),[A,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(xa,{theme:{algorithm:ZL.darkAlgorithm,token:{colorBgContainer:"#111",colorBgLayout:"#0a0a0a",colorBgElevated:"#1a1a1a",colorBorder:"#2a2a2a"}},children:[O&&C.jsx("div",{className:ql.loadingOverlay,children:C.jsxs("div",{className:ql.loadingText,children:["Loading...(",le,")"]})}),C.jsxs(fi,{className:ql.layout,children:[C.jsx(fi.Header,{className:ql.header,children:C.jsx(Lh,{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:b,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:ql.content,children:C.jsx(BY,{viewMode:o,requests:De,allRequests:e,selectedIndex:n,currentTab:s,scrollCenter:q,chatScrollToTs:z,userProfile:h,collapseToolResults:S,expandThinking:w,expandDiff:R,leftPanelWidth:u,selectedTeam:j,selectedSession:A,currentAgent:H,projectName:b,currentMember:ke,filteredMemberRequests:je,filteredAgentRequests:Pe,onSelectRequest:me,onScrollDone:()=>B(!1),onTabChange:be,onViewInChat:Se,onViewRequest:ge,onResize:d,memberRequests:U,onMemberRequestsChange:ie,teamData:X,onTeamDataChange:ve})})]})]})}function BY(e){var A;console.log("[MainContent] props.requests.length:",(A=e.requests)==null?void 0:A.length);const{viewMode:t,requests:n,allRequests:r,selectedIndex:o,currentTab:i,scrollCenter:s,chatScrollToTs:c,userProfile:u,collapseToolResults:d,expandThinking:m,expandDiff:g,leftPanelWidth:h,selectedTeam:v,selectedSession:b,currentAgent:y,projectName:S,currentMember:E,filteredMemberRequests:w,filteredAgentRequests:_,onSelectRequest:R,onScrollDone:N,onTabChange:O,onViewInChat:I,onViewRequest:P,onResize:M,memberRequests:k,onMemberRequestsChange:L,teamData:j,onTeamDataChange:D}=e;if(t==="raw"){const V=b?_:w;return console.log("[MainContent] raw view:",{selectedSession:b,currentAgent:y,currentMember:E,memberRequestKeys:Object.keys(k),filteredCount:V.length,allRequestsCount:r.length}),C.jsx(bW,{requests:V,selectedIndex:o,currentTab:i,scrollCenter:s,onSelectRequest:R,onScrollDone:N,onTabChange:O,onViewInChat:I,expandDiff:g,leftPanelWidth:h,onResize:M,onBackToTeam:()=>{if(b)window.location.hash=`/session-monitor?session=${encodeURIComponent(b)}`;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=b?_:w;return console.log("[MainContent] chat view:",{selectedSession:b,currentAgent:y,currentMember:E,memberRequestKeys:Object.keys(k),filteredCount:V.length,allRequestsCount:r.length}),C.jsx(oK,{requests:V,userProfile:u,collapseToolResults:d,expandThinking:m,onViewRequest:P,chatScrollToTs:c,onScrollTsDone:()=>{},cliMode:!1,onBackToTeam:()=>{if(b)window.location.hash=`/session-monitor?session=${encodeURIComponent(b)}`;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(hY,{requests:n,projectName:S,selectedTeam:v,viewMode:t,onMemberRequestsChange:L,teamData:j,onTeamDataChange:D}):t==="session-monitor"?C.jsx(RY,{requests:n,projectName:S,selectedSession:b,viewMode:t}):null}const zY=F3.createRoot(document.getElementById("root"));zY.render(C.jsx(LY,{}));
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-Dk54uNMw.js"></script>
10
- <link rel="stylesheet" crossorigin href="/assets/index-C4EaPvFf.css">
9
+ <script type="module" crossorigin src="/assets/index-rsTSYwIV.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-BmcN1r4F.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.33",
3
+ "version": "1.4.34",
4
4
  "description": "Claude Code Logger visualization management tool",
5
5
  "license": "MIT",
6
6
  "main": "server/server.js",