cc-viewer 1.6.26 → 1.6.27

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.
@@ -29,7 +29,7 @@ body{margin:0;background-color:#0d0d0d}::selection{background-color:#264f78;colo
29
29
  * The original design remains. The terminal itself
30
30
  * has been extended to include xterm CSI codes, among
31
31
  * other features.
32
- */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}._terminalPanel_1o3u4_1{height:100%;display:flex;flex-direction:column;background:#0a0a0a}._terminalContainer_1o3u4_8{flex:1;overflow:hidden;padding:4px 8px;touch-action:none;overscroll-behavior:contain}._terminalContainer_1o3u4_8 .xterm-helper-textarea{caret-color:transparent!important}._terminalToolbar_1o3u4_21{height:35px;flex-shrink:0;display:flex;align-items:center;padding:0 8px;gap:4px;border-top:1px solid #1f1f1f;background:#0d0d0d}._toolbarBtn_1o3u4_32{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid #333;border-radius:4px;background:#1a1a1a;color:#aaa;font-size:12px;cursor:pointer;white-space:nowrap}._toolbarBtn_1o3u4_32:hover{background:#2a2a2a;color:#ddd;border-color:#555}._toolbarBtnDisabled_1o3u4_52{opacity:.4;cursor:not-allowed}._toolbarBtnDisabled_1o3u4_52:hover{background:#1a1a1a;color:#aaa;border-color:#333}._toolbarBtn_1o3u4_32 svg{width:14px;height:14px}._virtualKeybar_1o3u4_67{display:flex;gap:6px;padding:8px 10px;background:#111;border-top:1px solid #222;overflow-x:auto;flex-shrink:0;-webkit-overflow-scrolling:touch}._virtualKey_1o3u4_67{flex-shrink:0;padding:12px 20px;border:1px solid #333;border-radius:8px;background:#1a1a1a;color:#ccc;font-size:15px;font-family:Menlo,Monaco,monospace;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:pan-x;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}._virtualKeyPressed_1o3u4_98{background:#333;border-color:#555;color:#fff}._helpBtn_ovmho_1{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#1a1a1a;border:1px solid #444;color:#aaa;font-size:11px;line-height:1;cursor:pointer;margin-left:4px;vertical-align:middle;transition:background .2s;-webkit-user-select:none;user-select:none}._helpBtn_ovmho_1:hover{background:#333}._modalBody_ovmho_24{max-height:60vh;overflow-y:auto;overflow-x:hidden;line-height:1.7;color:#d9d9d9;word-break:break-word}._modalBody_ovmho_24 h1,._modalBody_ovmho_24 h2,._modalBody_ovmho_24 h3{margin-top:.8em;color:#f0f0f0}._modalBody_ovmho_24 p{margin:.5em 0}._modalBody_ovmho_24 code{background:#2a2a2a;padding:1px 4px;border-radius:3px;font-size:.9em;color:#e8ab6a}._modalBody_ovmho_24 pre{background:#1a1a1a;padding:12px;border-radius:6px;overflow-x:auto;color:#d9d9d9;max-width:100%;box-sizing:border-box}._modalBody_ovmho_24 a{color:#5b9bd5}._modalBody_ovmho_24 strong{color:#f0f0f0}._spinWrap_ovmho_70{display:flex;justify-content:center;padding:40px 0}._modalBody_ovmho_24 textarea{width:100%;min-height:200px;background:#1a1a1a;color:#d9d9d9;font-family:monospace;font-size:13px;line-height:1.6;border:1px solid #333;border-radius:6px;padding:10px 14px;resize:vertical;outline:none;box-sizing:border-box}@media(max-width:768px){._modalBody_ovmho_24{font-size:13px;line-height:1.6;max-height:75vh}._modalBody_ovmho_24 h1{font-size:18px}._modalBody_ovmho_24 h2{font-size:16px}._modalBody_ovmho_24 h3{font-size:14px}._modalBody_ovmho_24 pre{font-size:12px;padding:8px}._modalBody_ovmho_24 code,._modalBody_ovmho_24 textarea{font-size:12px}}._headerBar_85daq_2{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}._logoWrap_85daq_10{display:inline-flex;align-items:center;position:relative;margin-top:14px}._logoWrapActive_85daq_17:after{content:"";position:absolute;top:-10px;bottom:-10px;left:0;right:-200px}._logoImage_85daq_26{height:24px;width:24px;border-radius:3px;vertical-align:middle;opacity:.75;transition:opacity .2s;cursor:pointer}._logoImageActive_85daq_36{opacity:1}._compactBtn_85daq_41{font-size:12px;height:30px;line-height:28px}._compactBtnNoBorder_85daq_47{font-size:12px;height:30px;line-height:28px;border:none}._tokenStatsTag_85daq_55{border-radius:12px;cursor:pointer;background:#2a2a2a;border:1px solid #3a3a3a;color:#ccc}._tokenStatsIcon_85daq_63{margin-right:4px}._liveTag_85daq_68{position:relative;display:inline-flex;align-items:center;border-radius:12px;border:1px solid;padding:0 10px;height:22px;font-size:12px;line-height:22px;overflow:hidden;transition:border-color .3s,color .3s;white-space:nowrap}._liveTagFill_85daq_83{position:absolute;left:0;top:0;bottom:0;opacity:.35;transition:width .5s ease,background-color .3s;pointer-events:none}._liveTagContent_85daq_93{position:relative;z-index:1;display:inline-flex;align-items:center}._liveTagHistory_85daq_100{background:#2a2a2a;border-color:#424242;color:#d1d5db}._liveTagText_85daq_106{margin-left:4px}._countdownStrong_85daq_111{font-variant-numeric:tabular-nums}._qrcodePopover_85daq_116{display:flex;flex-direction:column;align-items:center;padding:8px}._qrcodeSection_85daq_123{display:flex;flex-direction:column;align-items:center;padding:16px;margin-bottom:12px;border:1px solid #333;border-radius:8px;background:#111}._qrcodeTitle_85daq_134{font-size:14px;font-weight:600;color:#e5e5e5;margin-bottom:12px}._qrcodeUrlInput_85daq_141{margin-top:12px;font-size:12px;font-family:Menlo,Monaco,monospace}._qrcodeUrlCopy_85daq_147{cursor:pointer;color:#888;transition:color .2s}._qrcodeUrlCopy_85daq_147:hover{color:#3b82f6}._settingsGroupBox_85daq_158{border:1px solid #333;border-radius:8px;background:#111;padding:4px 16px;margin-bottom:12px}._settingsGroupTitle_85daq_166{font-size:14px;font-weight:600;color:#e5e5e5;padding:12px 0 4px;border-bottom:1px solid #333}._settingsItem_85daq_175{display:flex;justify-content:space-between;align-items:center;padding:12px 0}._settingsLabel_85daq_182{font-size:14px}._tokenStatsEmpty_85daq_187{padding:8px 4px;color:#999;font-size:13px}._tokenStatsContainer_85daq_194{display:flex;gap:12px;align-items:flex-start}._tokenStatsColumn_85daq_200{min-width:240px}._toolStatsColumn_85daq_204{min-width:180px}._modelCard_85daq_209{border:1px solid #333;border-radius:6px;padding:8px 10px;background:#111}._modelCardSpaced_85daq_216{margin-bottom:10px}._modelName_85daq_222{font-size:13px;font-weight:600;color:#e5e5e5;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._statsTable_85daq_232{width:100%;border-collapse:collapse}._th_85daq_237{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#888;font-weight:400;text-align:right}._td_85daq_247{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#e5e5e5;text-align:right}._label_85daq_256{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#aaa;font-weight:400;text-align:left}._rowBorder_85daq_266{border-bottom:1px solid #2a2a2a}._rebuildCard_85daq_270{border:1px solid #333;border-radius:6px;padding:8px 10px;margin-top:10px;background:#111}._rebuildTotalRow_85daq_278{border-top:1px solid #444}._rebuildTotalRow_85daq_278 td{font-weight:600}._promptExportBar_85daq_287{margin-bottom:12px}._promptScrollArea_85daq_291{max-height:500px;overflow:auto}._promptEmpty_85daq_296{color:#999;padding:12px}._promptTimestamp_85daq_302{color:#666;font-size:12px;margin:12px 0 4px;padding-bottom:6px}._textPromptCard_85daq_310{margin:4px 0;background:#141414;border-radius:6px;border:1px solid #303030;padding:10px 14px}._preText_85daq_319{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:#d9d9d9;margin:4px 0}._systemCollapse_85daq_329{margin:4px 0;background:#1a1a1a;border:1px solid #303030;border-radius:6px}._systemLabel_85daq_336{color:#888;font-size:12px}._preSys_85daq_341{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#999;margin:0}._promptTextarea_85daq_351{box-sizing:border-box;background:#000;width:100%;min-height:400px;color:#d9d9d9;font-family:monospace;font-size:13px;line-height:1.6;border:none;resize:vertical;padding:10px 14px;outline:none}._projectStatsCenter_85daq_367{display:flex;justify-content:center;padding:40px 0}._projectStatsEmpty_85daq_373{color:#999;padding:40px 0;text-align:center;font-size:13px}._projectStatsContent_85daq_380{display:flex;flex-direction:column;gap:16px}._projectStatsUpdated_85daq_386{color:#666;font-size:12px;text-align:right}._projectStatsSummary_85daq_392{display:grid;grid-template-columns:1fr 1fr;gap:10px}._projectStatCard_85daq_398{background:#111;border:1px solid #333;border-radius:8px;padding:14px 12px;text-align:center}._projectStatValue_85daq_406{font-size:22px;font-weight:700;color:#e5e5e5;font-family:monospace;font-variant-numeric:tabular-nums}._projectStatLabel_85daq_414{font-size:12px;color:#888;margin-top:4px}._projectStatsSection_85daq_420{display:flex;flex-direction:column;gap:10px}._projectStatsSectionTitle_85daq_426{font-size:14px;font-weight:600;color:#ccc;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelCard_85daq_434{background:#111;border:1px solid #333;border-radius:6px;padding:10px 12px}._projectStatsModelHeader_85daq_441{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelName_85daq_450{font-size:13px;font-weight:600;color:#e5e5e5}._projectStatsModelCount_85daq_456{font-size:12px;color:#888;font-family:monospace}._pluginDirHint_85daq_463{margin-bottom:12px;font-size:12px;color:#888}._pluginDirPath_85daq_469{font-family:Menlo,Monaco,monospace;color:#aaa;cursor:pointer;padding:1px 4px;border-radius:3px;background:#1a1a1a}._pluginDirPath_85daq_469:hover{color:#3b82f6}._pluginList_85daq_482{display:flex;flex-direction:column;gap:8px}._pluginItem_85daq_488{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #303030;border-radius:6px;background:#141414}._pluginInfo_85daq_498{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_85daq_506{font-size:14px;color:#e5e5e5;font-weight:500}._pluginFile_85daq_512{font-size:12px;color:#666;font-family:Menlo,Monaco,monospace}._pluginHooks_85daq_518{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_85daq_525{font-size:11px;padding:0 5px;border-radius:3px;background:#1e3a5f;color:#6cb6ff;line-height:18px}._pluginActions_85daq_534{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_85daq_542{text-align:center;padding:32px 0;color:#999}._cachePopover_85daq_549{max-width:800px}._cacheScrollArea_85daq_553{max-height:450px;overflow-y:auto}._cachePopoverTitle_85daq_558{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#e5e5e5}._cachePopoverHeader_85daq_567{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #333}._cacheCopyBtn_85daq_573{font-size:14px;color:#888;cursor:pointer;transition:color .2s;margin-left:8px}._cacheCopyBtn_85daq_573:hover{color:#e5e5e5}._cachePopoverEmpty_85daq_585{padding:8px 4px;color:#999;font-size:13px}._cacheTokenInfo_85daq_591{display:flex;align-items:center;font-size:12px;font-family:monospace;color:#aaa;margin-bottom:8px}._cacheSection_85daq_600{margin-bottom:10px}._cacheSectionTitle_85daq_604{font-size:12px;font-weight:600;color:#aaa;margin-bottom:4px}._cacheCodeBlock_85daq_611{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#ccc;background:#111;border:1px solid #2a2a2a;border-radius:4px;padding:8px;margin:4px 0;font-family:Menlo,Monaco,monospace}._cacheCodeBlockSystem_85daq_625{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#ccc;background:#0d1b2a;border:1px solid #1b3a5c;border-radius:4px;padding:8px;margin:4px 0;font-family:Menlo,Monaco,monospace}._cacheNavBtn_85daq_639{margin-left:auto;font-size:11px;color:#1668dc;cursor:pointer;border:1px solid #1668dc;border-radius:3px;padding:1px 6px;white-space:nowrap}._cacheNavBtn_85daq_639:hover{background:#1668dc26}._cacheNavList_85daq_654{width:600px;max-height:300px;overflow-y:auto}._cacheNavItem_85daq_660{padding:4px 8px;font-size:12px;color:#ccc;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}._cacheNavItem_85daq_660:hover{background:#1668dc33;color:#fff}._cacheBlockHighlight_85daq_676{box-shadow:0 0 10px #1668dc99;transition:box-shadow .2s ease-in}._cacheBlockHighlightFading_85daq_681{box-shadow:0 0 10px #1668dc00;transition:box-shadow 3s ease-out}._cacheBorderSvg_85daq_686{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._cacheBorderSvgFading_85daq_695{opacity:0;transition:opacity 3s ease-out}._cacheBorderRect_85daq_700{animation:_cacheDashRotate_85daq_1 4s linear infinite}@keyframes _cacheDashRotate_85daq_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._centerEmpty_oxhcp_1{display:flex;align-items:center;justify-content:center;height:100%}._scrollContainer_oxhcp_8{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;will-change:scroll-position}._listItem_oxhcp_15{cursor:pointer;padding:8px 12px;border-left:3px solid transparent;border-bottom:1px solid #1f1f1f;transition:background .15s}._listItem_oxhcp_15:hover{background:#151515}._listItemActive_oxhcp_27{background:#1a2332;border-left-color:#3b82f6}._listItemActive_oxhcp_27:hover{background:#1a2332}._itemContent_oxhcp_36{width:100%;min-width:0}._itemHeader_oxhcp_41{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}._tagNoMargin_oxhcp_49{margin:0;font-size:12px}._modelName_oxhcp_54{font-size:12px}._time_oxhcp_58{font-size:12px;color:#6b7280;margin-left:auto}._detailRow_oxhcp_64{display:flex;gap:8px;font-size:12px;align-items:center}._urlText_oxhcp_71{color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}._duration_oxhcp_80{color:#6b7280;flex-shrink:0}._statusOk_oxhcp_85{color:#52c41a;opacity:.5;flex-shrink:0}._statusErr_oxhcp_91{color:#ef4444;flex-shrink:0}._statusDefault_oxhcp_96{color:#9ca3af;flex-shrink:0}._usageBox_oxhcp_101{background:#111;border-radius:4px;padding:3px 6px;margin-top:4px;font-size:12px;color:#6b7280;line-height:1.6}._cacheDot_oxhcp_111{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 3px;vertical-align:middle}._cacheDotLoss_oxhcp_120{background-color:#8b1a1a;cursor:help}._cacheDotNormal_oxhcp_125{background-color:#3a3a3a}._GzYRV{line-height:1.2;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}._3eOF8{margin-right:5px;font-weight:700}._3eOF8+._3eOF8{margin-left:-5px}._1MFti{cursor:pointer}._f10Tu{font-size:1.2em;margin-right:5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}._1UmXx:after{content:"▸"}._1LId0:after{content:"▾"}._1pNG9{margin-right:5px}._1pNG9:after{content:"...";font-size:.8em}._2IvMF{background:#eee}._2bkNM{margin:0;padding:0 10px}._1BXBN{margin:0;padding:0}._1MGIk{font-weight:600;margin-right:5px;color:#000}._3uHL6{color:#000}._2T6PJ,._1Gho6{color:#df113a}._vGjyY{color:#2a3f3c}._1bQdo{color:#0b75f5}._3zQKs{color:#469038}._1xvuR{color:#43413d}._oLqym,._2AXVT,._2KJWg{color:#000}._11RoI{background:#002b36}._17H2C,._3QHg2,._3fDAz{color:#fdf6e3}._2bSDX{font-weight:bolder;margin-right:5px;color:#fdf6e3}._gsbQL{color:#fdf6e3}._LaAZe,._GTKgm{color:#81b5ac}._Chy1W{color:#cb4b16}._2bveF{color:#d33682}._2vRm-{color:#ae81ff}._1prJR{color:#268bd2}._container_1h2lr_1{background:#0d1117;border-radius:6px;border:1px solid #2a2a2a;padding:12px;font-size:13px;font-family:monospace;overflow:auto}._tag_17wfp_1{display:inline-block;font-size:10px;color:#6b7280;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:3px;padding:0 4px;margin-left:6px;cursor:pointer;line-height:18px;vertical-align:middle;transition:color .2s,border-color .2s;-webkit-user-select:none;user-select:none}._tag_17wfp_1:hover{color:#93c5fd;border-color:#93c5fd4d}._tagActive_17wfp_22{color:#93c5fd;border-color:#93c5fd40}._tagLoading_17wfp_27{cursor:wait;opacity:.7}._spinner_17wfp_32{display:inline-block;width:10px;height:10px;border:1.5px solid rgba(147,197,253,.3);border-top-color:#93c5fd;border-radius:50%;animation:_spin_17wfp_32 .6s linear infinite;margin-right:3px;vertical-align:middle}@keyframes _spin_17wfp_32{to{transform:rotate(360deg)}}._root_1a6ku_1{display:flex;height:100%;min-height:0;gap:0}._sidebar_1a6ku_9{width:220px;flex-shrink:0;border-right:1px solid #2a2a2a;overflow-y:auto;padding:4px 0;-webkit-overflow-scrolling:touch}._section_1a6ku_18{-webkit-user-select:none;user-select:none}._sectionHeader_1a6ku_22{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;cursor:pointer;color:#d1d5db;font-size:12px;font-weight:600;transition:background .15s;background:none;border:0;text-align:left;font:inherit}._sectionHeader_1a6ku_22:hover{background:#ffffff0d}._sectionHeader_1a6ku_22:focus-visible{outline:1px solid rgba(99,179,237,.75);outline-offset:-1px}._arrow_1a6ku_48{font-size:10px;color:#888;flex-shrink:0}._sectionTitle_1a6ku_54{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._sectionCount_1a6ku_62{font-size:11px;color:#666;background:#1f1f1f;border-radius:10px;padding:0 6px;line-height:18px}._sectionBody_1a6ku_71{padding:2px 0}._historyToggle_1a6ku_76{display:flex;align-items:center;gap:6px;width:100%;padding:4px 10px 4px 14px;cursor:pointer;color:#666;font-size:11px;transition:color .15s,background .15s;background:none;border:0;text-align:left;font:inherit}._historyToggle_1a6ku_76:hover{color:#888;background:#ffffff08}._historyToggle_1a6ku_76:focus-visible{outline:1px solid rgba(99,179,237,.75);outline-offset:-1px}._historyToggleLabel_1a6ku_102{flex:1}._item_1a6ku_107{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 10px 5px 24px;font-size:12px;color:#888;cursor:pointer;transition:background .15s,color .15s;background:none;border:0;text-align:left;font:inherit}._item_1a6ku_107:hover{background:#ffffff0a;color:#d1d5db}._item_1a6ku_107:focus-visible{outline:1px solid rgba(99,179,237,.75);outline-offset:-1px}._itemActive_1a6ku_133{background:#63b3ed1f;color:#63b3ed}._itemActive_1a6ku_133:hover{background:#63b3ed29;color:#63b3ed}._itemContent_1a6ku_143{flex:1;min-width:0;overflow:hidden}._itemLabel_1a6ku_149{font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}._itemSublabel_1a6ku_157{font-size:10px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}._itemTime_1a6ku_166{font-size:9px;color:#555;flex-shrink:0;margin-left:4px;font-family:monospace}._content_1a6ku_175{flex:1;min-width:0;overflow:auto;padding:12px 16px;-webkit-overflow-scrolling:touch}._contentEmpty_1a6ku_183{height:100%;display:flex;align-items:center;justify-content:center}._contentInner_1a6ku_190{padding-bottom:20px}._emptyWrap_1a6ku_194{display:flex;align-items:center;justify-content:center;height:200px}._roleHeader_1a6ku_202{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:nowrap}._roleBadge_1a6ku_210{font-size:10px;font-weight:600;letter-spacing:.04em;padding:2px 7px;border-radius:4px;flex-shrink:0}._role_user_1a6ku_219{background:#3b82f62e;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}._role_assistant_1a6ku_225{background:#8b5cf62e;color:#a78bfa;border:1px solid rgba(139,92,246,.3)}._roleLabel_1a6ku_231{font-size:11px;color:#666;flex:1;min-width:0}._contentTime_1a6ku_238{margin-left:auto;font-size:10px;color:#555;font-family:monospace;flex-shrink:0}._turnDivider_1a6ku_246{border:none;border-top:1px solid #1e1e1e;margin:14px 0}._textBlock_1a6ku_253{margin-bottom:8px;border:1px solid #222;border-radius:6px;overflow:hidden}._textBlockBar_1a6ku_260{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#141414;border-bottom:1px solid #222}._textBlockBody_1a6ku_269{padding:10px 12px;font-size:13px;line-height:1.7;color:#d1d5db;word-break:break-word}._textBlockCompact_1a6ku_277{position:relative;padding:8px 10px;font-size:12px;color:#aaa}._textBlockCompactFloat_1a6ku_284{float:right;margin-left:6px;margin-bottom:2px}._thinkingBlock_1a6ku_291{margin-bottom:8px;border:1px solid #2a2a1e;border-radius:6px;overflow:hidden;background:#111108}._thinkingHeader_1a6ku_299{display:flex;align-items:center;gap:6px;padding:5px 10px;cursor:pointer;font-size:12px;color:#888;transition:background .15s}._thinkingHeader_1a6ku_299:hover{background:#ffffc808}._thinkingPreview_1a6ku_314{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666;font-size:11px}._thinkingBody_1a6ku_324{padding:8px 12px;border-top:1px solid #2a2a1e}._toolBlock_1a6ku_330{margin-bottom:8px;border:1px solid #222;border-radius:6px;overflow:hidden}._toolBlockResult_1a6ku_337{border-color:#1a2a1a}._toolBlockError_1a6ku_341{border-color:#2a1a1a}._toolBlockHeader_1a6ku_345{display:flex;align-items:center;gap:8px;padding:5px 10px;background:#141414;border-bottom:1px solid #222;font-size:12px;flex-wrap:wrap}._toolBlockBody_1a6ku_356{padding:8px 10px;font-size:12px}._toolName_1a6ku_361{color:#d1d5db;font-weight:500;font-family:monospace}._toolId_1a6ku_367{color:#555;font-size:10px;font-family:monospace;margin-left:auto}._errorLabel_1a6ku_374{font-size:10px;color:#f87171;background:#ef44441f;border:1px solid rgba(239,68,68,.25);border-radius:3px;padding:1px 5px}._blockTag_1a6ku_384{font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:3px;background:#1a1a1a;color:#666;border:1px solid #2a2a2a;flex-shrink:0}._blockTagText_1a6ku_397{background:#3b82f61a;color:#60a5fa;border-color:#3b82f633}._blockTagThinking_1a6ku_403{background:#eab3081a;color:#ca8a04;border-color:#eab30833}._blockTagResult_1a6ku_409{background:#22c55e1a;color:#4ade80;border-color:#22c55e33}._blockTagError_1a6ku_415{background:#ef44441a;color:#f87171;border-color:#ef444433}._jsonBlock_1a6ku_422{margin-bottom:8px;border:1px solid #222;border-radius:6px;overflow:hidden}._jsonBlockLabel_1a6ku_429{font-size:10px;color:#666;padding:3px 10px;background:#141414;border-bottom:1px solid #222;font-family:monospace}._blockSeparator_1a6ku_439{border:none;border-top:1px solid #2a2a2a;margin:16px 0}._markdownBody_1a6ku_446{font-size:13px;line-height:1.7;color:#d1d5db;word-break:break-word}._container_ty3f8_1{height:100%;overflow:auto;padding:0 16px;-webkit-overflow-scrolling:touch;will-change:scroll-position}._emptyState_ty3f8_9{display:flex;align-items:center;justify-content:center;height:100%}._urlSection_ty3f8_16{padding:12px 0;border-bottom:1px solid #1f1f1f;display:flex;align-items:flex-start}._urlLeft_ty3f8_23{flex:1;min-width:0}._tokenStatsBox_ty3f8_28{flex-shrink:0;padding-left:12px;display:flex;align-items:center}._tokenGrid_ty3f8_35{display:flex;border:1px solid #303030;border-radius:6px;overflow:hidden;min-width:360px;font-size:11px;line-height:1.6}._tokenRows_ty3f8_45{flex:1}._tokenRow_ty3f8_45{display:flex}._tokenRowBorder_ty3f8_53{border-top:1px solid #303030}._tokenLabel_ty3f8_57{color:#888;padding:4px 8px;white-space:nowrap;font-weight:600}._tokenTd_ty3f8_64{flex:1;color:#d1d5db;text-align:right;padding:4px 8px;font-family:monospace;white-space:nowrap}._tokenHitRate_ty3f8_73{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#d1d5db;padding:4px 8px;font-family:monospace;white-space:nowrap;border-left:1px solid #303030;min-width:100px}._tokenHitRateLabel_ty3f8_86{color:#888;font-size:10px;font-family:sans-serif}._tokenRowBorder_ty3f8_53 td{border-top:1px solid #303030}._urlText_ty3f8_96{color:#d1d5db;font-size:13px;margin-bottom:8px;word-break:break-all}._metaText_ty3f8_103,._headersContainer_ty3f8_107{font-size:12px}._headerRow_ty3f8_111{display:flex;padding:4px 0;border-bottom:1px solid #1f1f1f}._headerKey_ty3f8_117{min-width:200px;flex-shrink:0}._headerValue_ty3f8_122{word-break:break-all;margin-left:8px}._streamingBox_ty3f8_127{padding:20px;background:#1a1a1a;border-radius:6px;border:1px solid #2a2a2a}._bodyToolbar_ty3f8_134{display:flex;gap:8px;margin-bottom:8px}._rawTextPre_ty3f8_140{background:#0d1117;border:1px solid #2a2a2a;border-radius:6px;padding:12px;font-size:12px;color:#e5e7eb;overflow:auto;max-height:600px;white-space:pre-wrap;word-break:break-all}._tabContent_ty3f8_153{padding:12px 0}._collapseSpacing_ty3f8_157{margin-bottom:16px}._bodyLabel_ty3f8_161{margin:0}._bodyHeader_ty3f8_165{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}._diffSection_ty3f8_172{margin-bottom:16px}._diffToggle_ty3f8_176{display:inline-block;margin-bottom:8px;cursor:pointer}._diffIcon_ty3f8_182{font-size:12px;margin-left:4px}._viewInChatBtn_ty3f8_187{display:inline-flex;align-items:center;height:26px;border-radius:13px;border:1px solid #424242;background:transparent;color:#888;cursor:pointer;font-size:12px;transition:all .2s;padding:0 10px;white-space:nowrap}._viewInChatBtn_ty3f8_187:hover{border-color:#666;color:#d1d5db;background:#ffffff0f}._reminderSelect_ty3f8_208{min-width:140px;font-size:12px}._reminderSelect_ty3f8_208 .ant-select-selector.ant-select-selector{border-radius:2px;border-color:#424242;background:transparent;min-height:26px;height:auto;padding:0 8px;font-family:monospace}._reminderSelect_ty3f8_208 .ant-select-selection-placeholder{font-size:11px}._avatar_s8m0t_3{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}._avatarImg_s8m0t_13{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}._bubble_s8m0t_21{border-radius:8px;padding:10px 14px;max-width:100%;font-size:14px;line-height:1.6;word-break:break-word}._messageRow_s8m0t_32{display:flex;gap:10px;padding:8px 0}._messageRowEnd_s8m0t_38{display:flex;gap:10px;padding:8px 0;justify-content:flex-end}._contentCol_s8m0t_47{min-width:0;flex:1}._contentColLimited_s8m0t_52{min-width:0;max-width:80%;width:fit-content}._labelRow_s8m0t_60{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._labelRowEnd_s8m0t_67{display:flex;justify-content:flex-end;align-items:center;margin-bottom:2px}._labelRight_s8m0t_74{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}._labelText_s8m0t_82{font-size:11px}._timeText_s8m0t_86,._timeTextNoMargin_s8m0t_92{font-size:10px;color:#6b7280;flex-shrink:0}._labelTextRight_s8m0t_98{font-size:11px;margin-left:auto}._bubbleUser_s8m0t_105{background:#1668dc;color:#e5e7eb}._bubbleAssistant_s8m0t_111{background:#141414;color:#e5e7eb;transition:box-shadow 0s;position:relative}._bubbleHighlight_s8m0t_119{box-shadow:0 0 10px #1668dc99}._bubbleHighlightFading_s8m0t_123{box-shadow:0 0 10px #1668dc00;transition:box-shadow 5s ease-out}._borderSvg_s8m0t_128{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgFading_s8m0t_137{opacity:0;transition:opacity 5s ease-out}._borderRect_s8m0t_142{animation:_dashRotate_s8m0t_1 4s linear infinite}@keyframes _dashRotate_s8m0t_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._bubblePlan_s8m0t_151{background:#141428;border:5px solid #1668dc;font-size:12px;color:#e5e7eb}._bubbleSubAgent_s8m0t_159{background:#1a1a2e;color:#e5e7eb}._bubbleSelection_s8m0t_165{background:#1a3a1a;color:#e5e7eb}._systemTagLabel_s8m0t_173{font-size:12px}._skillLabel_s8m0t_177{font-size:12px;color:#a78bfa}._systemTagPre_s8m0t_182{font-size:12px;color:#9ca3af;white-space:pre-wrap;word-break:break-all;margin:0}._collapseMargin_s8m0t_190{margin:4px 0}._collapseNoMargin_s8m0t_194{margin:0}._thinkingLabel_s8m0t_200{font-size:12px}._bashCollapseLabel_s8m0t_204{font-size:12px;color:#9ca3af}._toolBox_s8m0t_211{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._toolLabel_s8m0t_220{color:#a78bfa}._codePre_s8m0t_226{font-size:12px;margin:4px 0 0;white-space:pre-wrap;word-break:break-all;background:#0d1117;border-radius:4px;padding:6px 8px}._pathTag_s8m0t_238{color:#7dd3fc;font-size:11px}._pathTagClickable_s8m0t_243{color:#7dd3fc;font-size:11px;cursor:pointer}._pathTagClickable_s8m0t_243:hover{text-decoration:underline;color:#93c5fd}._descSpan_s8m0t_256{color:#6b7280;font-weight:400}._secondarySpan_s8m0t_261{color:#6b7280}._patternSpan_s8m0t_265{color:#fbbf24}._kvContainer_s8m0t_271{margin-top:4px;font-size:11px}._kvItem_s8m0t_276{margin:2px 0}._kvKey_s8m0t_280{color:#7dd3fc}._kvValue_s8m0t_284{color:#9ca3af}._toolResult_s8m0t_290{background:#111827;border:1px solid #1e293b;border-radius:6px;padding:6px 10px;margin:2px 0 6px;font-size:11px}._toolResultLabel_s8m0t_299{font-size:11px}._compactLabel_s8m0t_305{font-size:12px;color:#93c5fd}._compactPre_s8m0t_310{font-size:12px;color:#d1d5db;white-space:pre-wrap;word-break:break-all;margin:0}._viewRequestBtn_s8m0t_320{font-size:10px;color:#555;cursor:pointer;margin-left:6px;flex-shrink:0}._viewRequestBtn_s8m0t_320:hover{color:#93c5fd}._optionList_s8m0t_334{padding-left:8px}._optionDesc_s8m0t_338{color:#555;margin-left:6px;font-weight:400}._questionText_s8m0t_346{font-size:13px;color:#ccc;margin-bottom:4px}._questionSpacing_s8m0t_352{margin-bottom:10px}._option_s8m0t_334{font-size:12px;padding:1px 0}._askQuestionBox_s8m0t_365{background:#0d1f0d;border:1px solid #2ea043;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askQuestionHeader_s8m0t_374{display:inline-block;background:#1a3a1a;color:#7ee787;font-size:10px;padding:1px 6px;border-radius:4px;margin-bottom:4px;font-weight:600}._askQuestionText_s8m0t_385{color:#e5e7eb;font-size:13px;margin-bottom:4px}._askOptionItem_s8m0t_391{font-size:12px;color:#9ca3af;padding:1px 0;display:flex;align-items:center;gap:4px}._askOptionSelected_s8m0t_400{color:#e5e7eb;font-weight:600}._askCheckSvg_s8m0t_405{flex-shrink:0;vertical-align:middle}._planModeBox_s8m0t_412{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._planModeLabel_s8m0t_421{color:#93c5fd;font-weight:600}._planModePermissions_s8m0t_426{margin-top:6px;padding-top:6px;border-top:1px solid #1e3a5f}._planModePermLabel_s8m0t_432{color:#6b7280;font-size:11px;margin-bottom:2px}._planModeHeader_s8m0t_438{display:flex;justify-content:space-between;align-items:center}._planStatusBadge_s8m0t_444{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px;line-height:1.6}._planStatusApproved_s8m0t_452{border-color:#22c55e}._planStatusApproved_s8m0t_452._planStatusBadge_s8m0t_444{background:#22c55e26;color:#4ade80}._planStatusRejected_s8m0t_461{border-color:#ef4444}._planStatusRejected_s8m0t_461._planStatusBadge_s8m0t_444{background:#ef444426;color:#f87171}._planStatusPending_s8m0t_470{border-color:#1668dc}._planStatusPending_s8m0t_470._planStatusBadge_s8m0t_444{background:#1668dc26;color:#93c5fd}._planFeedback_s8m0t_479{margin-top:6px;padding:6px 8px;background:#ef444414;border-radius:4px;font-size:12px;color:#e5e7eb}._planFeedbackLabel_s8m0t_488{color:#f87171;font-weight:600}._planApprovalActions_s8m0t_493{display:flex;gap:8px;margin-top:8px}._planApproveBtn_s8m0t_499{padding:4px 16px;border-radius:4px;border:1px solid #22c55e;background:#22c55e26;color:#4ade80;font-size:13px;cursor:pointer;transition:background .15s}._planApproveBtn_s8m0t_499:hover{background:#22c55e4d}._planRejectBtn_s8m0t_514{padding:4px 16px;border-radius:4px;border:1px solid #ef4444;background:#ef444426;color:#f87171;font-size:13px;cursor:pointer;transition:background .15s}._planRejectBtn_s8m0t_514:hover{background:#ef44444d}._planOptionBtn_s8m0t_529{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planOptionBtn_s8m0t_529:hover{background:#6b72804d}._planFeedbackInputWrap_s8m0t_544{margin-top:8px}._planFeedbackTextarea_s8m0t_548{width:100%;min-height:60px;max-height:120px;padding:8px 10px;border-radius:4px;border:1px solid #4b5563;background:#1f2937;color:#e5e7eb;font-size:13px;line-height:1.5;resize:vertical;font-family:inherit;outline:none}._planFeedbackTextarea_s8m0t_548:focus{border-color:#3b82f6}._planFeedbackBtnRow_s8m0t_568{display:flex;gap:8px;margin-top:6px;justify-content:flex-end}._planFeedbackSendBtn_s8m0t_575{padding:4px 16px;border-radius:4px;border:1px solid #3b82f6;background:#3b82f633;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackSendBtn_s8m0t_575:hover{background:#3b82f659}._planFeedbackSendBtn_s8m0t_575:disabled{opacity:.4;cursor:not-allowed}._planFeedbackCancelBtn_s8m0t_595{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackCancelBtn_s8m0t_595:hover{background:#6b72804d}._askQuestionInteractive_s8m0t_612{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askRadioGroup_s8m0t_621{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askRadioItem_s8m0t_629{color:#d1d5db;font-size:12px;padding:3px 0;cursor:pointer;display:flex;align-items:baseline;gap:6px;-webkit-user-select:none;user-select:none}._askRadioItem_s8m0t_629:hover{color:#fff}._askRadioItemSelected_s8m0t_644{color:#58a6ff}._askRadioDot_s8m0t_648{flex-shrink:0;font-size:13px;line-height:1}._askRadioGroup_s8m0t_621 .ant-radio-wrapper,._askCheckboxGroup_s8m0t_655 .ant-checkbox-wrapper{color:#d1d5db;font-size:12px;padding:3px 0;cursor:pointer;pointer-events:auto}._askRadioGroup_s8m0t_621 .ant-radio-wrapper>span,._askRadioGroup_s8m0t_621 .ant-radio{cursor:pointer;pointer-events:auto}._askRadioGroup_s8m0t_621 .ant-radio-input{cursor:pointer}._askCheckboxGroup_s8m0t_655{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askOtherInput_s8m0t_681{margin-top:4px;margin-left:24px;width:calc(100% - 24px)}._askOtherInput_s8m0t_681 .ant-input{background:#1f2937;border-color:#4b5563;color:#e5e7eb;font-size:12px}._askSubmitRow_s8m0t_694{display:flex;justify-content:flex-end;margin-top:8px}._askSubmitBtn_s8m0t_700{padding:4px 20px;border-radius:4px;border:1px solid #1668dc;background:#1668dc33;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._askSubmitBtn_s8m0t_700:hover{background:#1668dc59}._askSubmitBtn_s8m0t_700:disabled{opacity:.4;cursor:not-allowed}._askMarkdownLayout_s8m0t_720{display:flex;gap:12px;margin-top:4px}._askMarkdownLayout_s8m0t_720>:first-child{flex:1;min-width:0}._askMarkdownPreview_s8m0t_731{flex:1;min-width:0;background:#0d1117;border:1px solid #2a2a3e;border-radius:6px;padding:8px 10px;font-size:12px;color:#d1d5db;max-height:240px;overflow-y:auto}._askMarkdownPreview_s8m0t_731 pre{white-space:pre-wrap;word-break:break-all;margin:0;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.5}._wrapper_cz5ph_1{margin:6px 0;background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px}._header_cz5ph_9{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}._headerRight_cz5ph_16{display:flex;align-items:center;gap:12px;flex-shrink:0;white-space:nowrap}._filePath_cz5ph_24{color:#a78bfa;font-size:12px;font-weight:600}._filePathClickable_cz5ph_30{color:#a78bfa;font-size:12px;font-weight:600;cursor:pointer}._filePathClickable_cz5ph_30:hover{text-decoration:underline;color:#c4b5fd}._toggle_cz5ph_42{color:#6b7280;font-size:11px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._diffSummary_cz5ph_51{font-size:11px;color:#6b7280}._diffBody_cz5ph_58{display:flex;font-family:SF Mono,Cascadia Code,Fira Code,Menlo,Consolas,monospace;font-size:12px;line-height:1.5}._gutter_cz5ph_66{flex-shrink:0;-webkit-user-select:none;user-select:none}._gutterRow_cz5ph_71{display:flex;height:18px}._lineNumOld_cz5ph_76,._lineNumNew_cz5ph_77{text-align:right;color:#484f58;padding:0 6px 0 2px;box-sizing:border-box}._prefix_cz5ph_84{width:16px;min-width:16px;text-align:center;font-weight:600}._codeWrap_cz5ph_92{flex:1;min-width:0;overflow-x:auto}._codeInner_cz5ph_99{display:inline-block;min-width:100%}._codeLine_cz5ph_104{white-space:pre;padding:0 4px;height:18px}._rowContext_cz5ph_112{background:#1a1a2e;color:#8b949e}._rowDel_cz5ph_117{background:#ef44441f;color:#fca5a5}._rowDel_cz5ph_117._gutterRow_cz5ph_71{background:#341f31}._rowDel_cz5ph_117._gutterRow_cz5ph_71 ._prefix_cz5ph_84{color:#ef4444}._rowAdd_cz5ph_128{background:#22c55e1f;color:#86efac}._rowAdd_cz5ph_128._gutterRow_cz5ph_71{background:#1b2f34}._rowAdd_cz5ph_128._gutterRow_cz5ph_71 ._prefix_cz5ph_84{color:#22c55e}._rowContext_cz5ph_112._gutterRow_cz5ph_71{background:#1a1a2e}._plainResult_1uh60_1{background:#111;border-radius:6px;font-size:12px}._plainTitle_1uh60_7{font-size:11px}._plainPre_1uh60_11{color:#d1d5db;margin:0;white-space:pre-wrap;word-break:break-all;font-size:12px;padding:8px 12px}._codeResult_1uh60_20{background:#0d1117;border-radius:6px;border:1px solid #1e2a3a;overflow:hidden}._codeHeader_1uh60_27{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;background:#161b22;border-bottom:1px solid #1e2a3a}._codeTitle_1uh60_36{font-size:11px;color:#8b949e}._codeToggle_1uh60_41{font-size:11px;color:#484f58;cursor:pointer;-webkit-user-select:none;user-select:none}._codePre_1uh60_48{margin:0;padding:8px 12px;font-size:12px;line-height:1.5;overflow:auto;max-height:500px}._markdownBody_1uh60_57{padding:8px 12px;font-size:13px;line-height:1.6;overflow:auto;max-height:500px}._fileExplorer_1g58f_1{width:240px;flex-shrink:0;background:#111;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none}._header_1g58f_12{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #2a2a2a;flex-shrink:0}._headerTitle_1g58f_21{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}._collapseBtn_1g58f_29{width:20px;height:20px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0}._collapseBtn_1g58f_29:hover{color:#ccc;background:#2a2a2a}._treeContainer_1g58f_48{flex:1;overflow:auto;padding:4px 0}._treeItem_1g58f_54{display:flex;align-items:center;height:26px;padding:0 8px;cursor:pointer;color:#ccc;font-size:13px;white-space:nowrap;transition:background .1s}._treeItem_1g58f_54:hover{background:#1a1a1a}._treeItem_1g58f_54._treeItemSelected_1g58f_70{background:#532f00}._arrow_1g58f_74{width:16px;flex-shrink:0;color:#666;display:flex;align-items:center;justify-content:center}._icon_1g58f_83{width:16px;height:16px;flex-shrink:0;margin-right:6px;display:flex;align-items:center;justify-content:center}._fileName_1g58f_93{overflow:hidden;text-overflow:ellipsis}._fileNameInput_1g58f_98{background:transparent;border:none;border-bottom:1px solid #528bff;color:#ccc;font-size:13px;font-family:inherit;padding:0;margin:0;outline:none;width:100%;min-width:40px;height:20px;line-height:20px}._loading_1g58f_114{color:#555;font-size:12px;padding:4px 8px}._error_1g58f_120{color:#ff6b6b;font-size:12px;padding:4px 8px}._treeItemGitIgnored_1g58f_126{opacity:.4}._fileContentView_1wg5i_1{display:flex;flex-direction:column;height:100%;background:#0d0d0d;animation:_slideInFromRight_1wg5i_1 .25s ease-out}@keyframes _slideInFromRight_1wg5i_1{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}._editorBanner_1wg5i_20{padding:6px 16px;background:#1a3a2a;color:#4ade80;font-size:12px;text-align:center;flex-shrink:0;border-bottom:1px solid #2a5a3a;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}._editorBanner_1wg5i_20:hover{background:#245a3a}._header_1wg5i_37{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid #2a2a2a;background:#111;flex-shrink:0}._headerLeft_1wg5i_47{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._headerRight_1wg5i_55{display:flex;align-items:center;gap:10px;flex-shrink:0}._backBtn_1wg5i_62{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_1wg5i_62:hover{color:#ccc;background:#1a1a1a}._filePath_1wg5i_83{font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fileSize_1wg5i_91{font-size:11px;color:#666;flex-shrink:0;margin-left:8px}._closeBtn_1wg5i_98{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid #3a3a3a;background:#1a1a1a;color:#888;border-radius:6px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}._closeBtn_1wg5i_98:hover{background:#2a2a2a;color:#fff;border-color:#4a4a4a}._saveBtn_1wg5i_119{display:flex;align-items:center;gap:5px;padding:4px 12px;border:1px solid #3a3a3a;background:#1a1a1a;color:#ccc;font-size:12px;border-radius:6px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}._saveBtn_1wg5i_119:hover:not(:disabled){background:#2a2a2a;color:#fff;border-color:#4a4a4a}._saveBtn_1wg5i_119:disabled{opacity:.4;cursor:not-allowed}._saveStatus_1wg5i_145{font-size:11px;color:#888;white-space:nowrap}._saveStatusSaved_1wg5i_151{color:#4caf50}._saveStatusFailed_1wg5i_155{color:#ff6b6b}._contentContainer_1wg5i_159{flex:1;overflow:hidden;background:#0d0d0d;display:flex;min-height:0;min-width:0}._editorWrapper_1wg5i_168{flex:1;display:flex;min-height:0;min-width:0;overflow:hidden}._lineNumCol_1wg5i_176{flex-shrink:0;width:56px;overflow:hidden;background:#0d0d0d;border-right:1px solid #2a2a2a;-webkit-user-select:none;user-select:none;padding-top:4px}._lineNumRow_1wg5i_186{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}._editorCol_1wg5i_196{flex:1;min-width:0;min-height:0;display:flex}._editorCol_1wg5i_196 .cm-theme{flex:1;display:flex;min-height:0;min-width:0}._editorCol_1wg5i_196 .cm-editor{flex:1;min-width:0;min-height:0}._loading_1wg5i_216{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#666;font-size:14px}._error_1wg5i_226{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#ff6b6b;font-size:14px}._imageViewer_1vf1x_1{display:flex;flex-direction:column;height:100%;background:#0d0d0d}._header_1vf1x_8{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid #2a2a2a;background:#111;flex-shrink:0}._headerLeft_1vf1x_18{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._headerRight_1vf1x_26{display:flex;align-items:center;gap:10px;flex-shrink:0}._backBtn_1vf1x_33{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_1vf1x_33:hover{color:#ccc;background:#1a1a1a}._filePath_1vf1x_54{font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fileSize_1vf1x_62{font-size:11px;color:#666;flex-shrink:0}._toolbar_1vf1x_68{display:flex;align-items:center;gap:4px;padding:6px 16px;background:#111;border-bottom:1px solid #2a2a2a;flex-shrink:0}._toolBtn_1vf1x_78{width:28px;height:28px;border:1px solid #3a3a3a;background:#1a1a1a;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s,border-color .15s}._toolBtn_1vf1x_78:hover{background:#2a2a2a;color:#fff;border-color:#4a4a4a}._zoomLabel_1vf1x_99{font-size:11px;color:#888;min-width:42px;text-align:center;-webkit-user-select:none;user-select:none}._canvasArea_1vf1x_107{flex:1;overflow:hidden;position:relative;cursor:grab;background-color:#1a1a1a;background-image:linear-gradient(45deg,#222 25%,transparent 25%),linear-gradient(-45deg,#222 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#222 75%),linear-gradient(-45deg,transparent 75%,#222 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}._canvasArea_1vf1x_107._dragging_1vf1x_122{cursor:grabbing}._imageWrap_1vf1x_126{position:absolute;top:0;left:0;transform-origin:0 0}._imageWrap_1vf1x_126 img{display:block;max-width:none;image-rendering:auto}._statusBar_1vf1x_139{display:flex;align-items:center;gap:16px;padding:4px 16px;background:#111;border-top:1px solid #2a2a2a;flex-shrink:0;font-size:11px;color:#666}._loading_1vf1x_151{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#666;font-size:14px}._error_1vf1x_161{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#ff6b6b;font-size:14px}._gitChanges_nt7bg_1{width:240px;flex-shrink:0;background:#111;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none}._header_nt7bg_12{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #2a2a2a;flex-shrink:0}._headerTitle_nt7bg_21{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}._collapseBtn_nt7bg_29{width:20px;height:20px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0}._collapseBtn_nt7bg_29:hover{color:#ccc;background:#2a2a2a}._changesContainer_nt7bg_48{flex:1;overflow:auto;padding:4px 0}._changeItem_nt7bg_54{display:flex;align-items:center;height:26px;padding:0 8px;cursor:pointer;color:#ccc;font-size:13px;white-space:nowrap;transition:background .1s;gap:6px}._changeItem_nt7bg_54:hover{background:#1a1a1a}._changeItem_nt7bg_54._changeItemSelected_nt7bg_71{background:#532f00}._dirItem_nt7bg_75{display:flex;align-items:center;height:26px;padding:0 8px;color:#999;font-size:13px;white-space:nowrap;gap:6px}._dirArrow_nt7bg_86{width:16px;flex-shrink:0;color:#666;display:flex;align-items:center;justify-content:center}._dirName_nt7bg_95{overflow:hidden;text-overflow:ellipsis}._status_nt7bg_100{width:16px;flex-shrink:0;font-size:11px;font-weight:600;text-align:center;margin-left:auto}._icon_nt7bg_109{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center}._fileName_nt7bg_118{overflow:hidden;text-overflow:ellipsis;flex:1}._loading_nt7bg_124{color:#555;font-size:12px;padding:8px 12px}._error_nt7bg_130{color:#ff6b6b;font-size:12px;padding:8px 12px}._empty_nt7bg_136{color:#666;font-size:12px;padding:8px 12px;text-align:center}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
32
+ */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}._terminalPanel_1o3u4_1{height:100%;display:flex;flex-direction:column;background:#0a0a0a}._terminalContainer_1o3u4_8{flex:1;overflow:hidden;padding:4px 8px;touch-action:none;overscroll-behavior:contain}._terminalContainer_1o3u4_8 .xterm-helper-textarea{caret-color:transparent!important}._terminalToolbar_1o3u4_21{height:35px;flex-shrink:0;display:flex;align-items:center;padding:0 8px;gap:4px;border-top:1px solid #1f1f1f;background:#0d0d0d}._toolbarBtn_1o3u4_32{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid #333;border-radius:4px;background:#1a1a1a;color:#aaa;font-size:12px;cursor:pointer;white-space:nowrap}._toolbarBtn_1o3u4_32:hover{background:#2a2a2a;color:#ddd;border-color:#555}._toolbarBtnDisabled_1o3u4_52{opacity:.4;cursor:not-allowed}._toolbarBtnDisabled_1o3u4_52:hover{background:#1a1a1a;color:#aaa;border-color:#333}._toolbarBtn_1o3u4_32 svg{width:14px;height:14px}._virtualKeybar_1o3u4_67{display:flex;gap:6px;padding:8px 10px;background:#111;border-top:1px solid #222;overflow-x:auto;flex-shrink:0;-webkit-overflow-scrolling:touch}._virtualKey_1o3u4_67{flex-shrink:0;padding:12px 20px;border:1px solid #333;border-radius:8px;background:#1a1a1a;color:#ccc;font-size:15px;font-family:Menlo,Monaco,monospace;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:pan-x;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}._virtualKeyPressed_1o3u4_98{background:#333;border-color:#555;color:#fff}._helpBtn_ovmho_1{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#1a1a1a;border:1px solid #444;color:#aaa;font-size:11px;line-height:1;cursor:pointer;margin-left:4px;vertical-align:middle;transition:background .2s;-webkit-user-select:none;user-select:none}._helpBtn_ovmho_1:hover{background:#333}._modalBody_ovmho_24{max-height:60vh;overflow-y:auto;overflow-x:hidden;line-height:1.7;color:#d9d9d9;word-break:break-word}._modalBody_ovmho_24 h1,._modalBody_ovmho_24 h2,._modalBody_ovmho_24 h3{margin-top:.8em;color:#f0f0f0}._modalBody_ovmho_24 p{margin:.5em 0}._modalBody_ovmho_24 code{background:#2a2a2a;padding:1px 4px;border-radius:3px;font-size:.9em;color:#e8ab6a}._modalBody_ovmho_24 pre{background:#1a1a1a;padding:12px;border-radius:6px;overflow-x:auto;color:#d9d9d9;max-width:100%;box-sizing:border-box}._modalBody_ovmho_24 a{color:#5b9bd5}._modalBody_ovmho_24 strong{color:#f0f0f0}._spinWrap_ovmho_70{display:flex;justify-content:center;padding:40px 0}._modalBody_ovmho_24 textarea{width:100%;min-height:200px;background:#1a1a1a;color:#d9d9d9;font-family:monospace;font-size:13px;line-height:1.6;border:1px solid #333;border-radius:6px;padding:10px 14px;resize:vertical;outline:none;box-sizing:border-box}@media(max-width:768px){._modalBody_ovmho_24{font-size:13px;line-height:1.6;max-height:75vh}._modalBody_ovmho_24 h1{font-size:18px}._modalBody_ovmho_24 h2{font-size:16px}._modalBody_ovmho_24 h3{font-size:14px}._modalBody_ovmho_24 pre{font-size:12px;padding:8px}._modalBody_ovmho_24 code,._modalBody_ovmho_24 textarea{font-size:12px}}._headerBar_85daq_2{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}._logoWrap_85daq_10{display:inline-flex;align-items:center;position:relative;margin-top:14px}._logoWrapActive_85daq_17:after{content:"";position:absolute;top:-10px;bottom:-10px;left:0;right:-200px}._logoImage_85daq_26{height:24px;width:24px;border-radius:3px;vertical-align:middle;opacity:.75;transition:opacity .2s;cursor:pointer}._logoImageActive_85daq_36{opacity:1}._compactBtn_85daq_41{font-size:12px;height:30px;line-height:28px}._compactBtnNoBorder_85daq_47{font-size:12px;height:30px;line-height:28px;border:none}._tokenStatsTag_85daq_55{border-radius:12px;cursor:pointer;background:#2a2a2a;border:1px solid #3a3a3a;color:#ccc}._tokenStatsIcon_85daq_63{margin-right:4px}._liveTag_85daq_68{position:relative;display:inline-flex;align-items:center;border-radius:12px;border:1px solid;padding:0 10px;height:22px;font-size:12px;line-height:22px;overflow:hidden;transition:border-color .3s,color .3s;white-space:nowrap}._liveTagFill_85daq_83{position:absolute;left:0;top:0;bottom:0;opacity:.35;transition:width .5s ease,background-color .3s;pointer-events:none}._liveTagContent_85daq_93{position:relative;z-index:1;display:inline-flex;align-items:center}._liveTagHistory_85daq_100{background:#2a2a2a;border-color:#424242;color:#d1d5db}._liveTagText_85daq_106{margin-left:4px}._countdownStrong_85daq_111{font-variant-numeric:tabular-nums}._qrcodePopover_85daq_116{display:flex;flex-direction:column;align-items:center;padding:8px}._qrcodeSection_85daq_123{display:flex;flex-direction:column;align-items:center;padding:16px;margin-bottom:12px;border:1px solid #333;border-radius:8px;background:#111}._qrcodeTitle_85daq_134{font-size:14px;font-weight:600;color:#e5e5e5;margin-bottom:12px}._qrcodeUrlInput_85daq_141{margin-top:12px;font-size:12px;font-family:Menlo,Monaco,monospace}._qrcodeUrlCopy_85daq_147{cursor:pointer;color:#888;transition:color .2s}._qrcodeUrlCopy_85daq_147:hover{color:#3b82f6}._settingsGroupBox_85daq_158{border:1px solid #333;border-radius:8px;background:#111;padding:4px 16px;margin-bottom:12px}._settingsGroupTitle_85daq_166{font-size:14px;font-weight:600;color:#e5e5e5;padding:12px 0 4px;border-bottom:1px solid #333}._settingsItem_85daq_175{display:flex;justify-content:space-between;align-items:center;padding:12px 0}._settingsLabel_85daq_182{font-size:14px}._tokenStatsEmpty_85daq_187{padding:8px 4px;color:#999;font-size:13px}._tokenStatsContainer_85daq_194{display:flex;gap:12px;align-items:flex-start}._tokenStatsColumn_85daq_200{min-width:240px}._toolStatsColumn_85daq_204{min-width:180px}._modelCard_85daq_209{border:1px solid #333;border-radius:6px;padding:8px 10px;background:#111}._modelCardSpaced_85daq_216{margin-bottom:10px}._modelName_85daq_222{font-size:13px;font-weight:600;color:#e5e5e5;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._statsTable_85daq_232{width:100%;border-collapse:collapse}._th_85daq_237{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#888;font-weight:400;text-align:right}._td_85daq_247{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#e5e5e5;text-align:right}._label_85daq_256{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#aaa;font-weight:400;text-align:left}._rowBorder_85daq_266{border-bottom:1px solid #2a2a2a}._rebuildCard_85daq_270{border:1px solid #333;border-radius:6px;padding:8px 10px;margin-top:10px;background:#111}._rebuildTotalRow_85daq_278{border-top:1px solid #444}._rebuildTotalRow_85daq_278 td{font-weight:600}._promptExportBar_85daq_287{margin-bottom:12px}._promptScrollArea_85daq_291{max-height:500px;overflow:auto}._promptEmpty_85daq_296{color:#999;padding:12px}._promptTimestamp_85daq_302{color:#666;font-size:12px;margin:12px 0 4px;padding-bottom:6px}._textPromptCard_85daq_310{margin:4px 0;background:#141414;border-radius:6px;border:1px solid #303030;padding:10px 14px}._preText_85daq_319{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:#d9d9d9;margin:4px 0}._systemCollapse_85daq_329{margin:4px 0;background:#1a1a1a;border:1px solid #303030;border-radius:6px}._systemLabel_85daq_336{color:#888;font-size:12px}._preSys_85daq_341{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#999;margin:0}._promptTextarea_85daq_351{box-sizing:border-box;background:#000;width:100%;min-height:400px;color:#d9d9d9;font-family:monospace;font-size:13px;line-height:1.6;border:none;resize:vertical;padding:10px 14px;outline:none}._projectStatsCenter_85daq_367{display:flex;justify-content:center;padding:40px 0}._projectStatsEmpty_85daq_373{color:#999;padding:40px 0;text-align:center;font-size:13px}._projectStatsContent_85daq_380{display:flex;flex-direction:column;gap:16px}._projectStatsUpdated_85daq_386{color:#666;font-size:12px;text-align:right}._projectStatsSummary_85daq_392{display:grid;grid-template-columns:1fr 1fr;gap:10px}._projectStatCard_85daq_398{background:#111;border:1px solid #333;border-radius:8px;padding:14px 12px;text-align:center}._projectStatValue_85daq_406{font-size:22px;font-weight:700;color:#e5e5e5;font-family:monospace;font-variant-numeric:tabular-nums}._projectStatLabel_85daq_414{font-size:12px;color:#888;margin-top:4px}._projectStatsSection_85daq_420{display:flex;flex-direction:column;gap:10px}._projectStatsSectionTitle_85daq_426{font-size:14px;font-weight:600;color:#ccc;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelCard_85daq_434{background:#111;border:1px solid #333;border-radius:6px;padding:10px 12px}._projectStatsModelHeader_85daq_441{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelName_85daq_450{font-size:13px;font-weight:600;color:#e5e5e5}._projectStatsModelCount_85daq_456{font-size:12px;color:#888;font-family:monospace}._pluginDirHint_85daq_463{margin-bottom:12px;font-size:12px;color:#888}._pluginDirPath_85daq_469{font-family:Menlo,Monaco,monospace;color:#aaa;cursor:pointer;padding:1px 4px;border-radius:3px;background:#1a1a1a}._pluginDirPath_85daq_469:hover{color:#3b82f6}._pluginList_85daq_482{display:flex;flex-direction:column;gap:8px}._pluginItem_85daq_488{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #303030;border-radius:6px;background:#141414}._pluginInfo_85daq_498{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_85daq_506{font-size:14px;color:#e5e5e5;font-weight:500}._pluginFile_85daq_512{font-size:12px;color:#666;font-family:Menlo,Monaco,monospace}._pluginHooks_85daq_518{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_85daq_525{font-size:11px;padding:0 5px;border-radius:3px;background:#1e3a5f;color:#6cb6ff;line-height:18px}._pluginActions_85daq_534{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_85daq_542{text-align:center;padding:32px 0;color:#999}._cachePopover_85daq_549{max-width:800px}._cacheScrollArea_85daq_553{max-height:450px;overflow-y:auto}._cachePopoverTitle_85daq_558{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#e5e5e5}._cachePopoverHeader_85daq_567{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #333}._cacheCopyBtn_85daq_573{font-size:14px;color:#888;cursor:pointer;transition:color .2s;margin-left:8px}._cacheCopyBtn_85daq_573:hover{color:#e5e5e5}._cachePopoverEmpty_85daq_585{padding:8px 4px;color:#999;font-size:13px}._cacheTokenInfo_85daq_591{display:flex;align-items:center;font-size:12px;font-family:monospace;color:#aaa;margin-bottom:8px}._cacheSection_85daq_600{margin-bottom:10px}._cacheSectionTitle_85daq_604{font-size:12px;font-weight:600;color:#aaa;margin-bottom:4px}._cacheCodeBlock_85daq_611{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#ccc;background:#111;border:1px solid #2a2a2a;border-radius:4px;padding:8px;margin:4px 0;font-family:Menlo,Monaco,monospace}._cacheCodeBlockSystem_85daq_625{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#ccc;background:#0d1b2a;border:1px solid #1b3a5c;border-radius:4px;padding:8px;margin:4px 0;font-family:Menlo,Monaco,monospace}._cacheNavBtn_85daq_639{margin-left:auto;font-size:11px;color:#1668dc;cursor:pointer;border:1px solid #1668dc;border-radius:3px;padding:1px 6px;white-space:nowrap}._cacheNavBtn_85daq_639:hover{background:#1668dc26}._cacheNavList_85daq_654{width:600px;max-height:300px;overflow-y:auto}._cacheNavItem_85daq_660{padding:4px 8px;font-size:12px;color:#ccc;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}._cacheNavItem_85daq_660:hover{background:#1668dc33;color:#fff}._cacheBlockHighlight_85daq_676{box-shadow:0 0 10px #1668dc99;transition:box-shadow .2s ease-in}._cacheBlockHighlightFading_85daq_681{box-shadow:0 0 10px #1668dc00;transition:box-shadow 3s ease-out}._cacheBorderSvg_85daq_686{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._cacheBorderSvgFading_85daq_695{opacity:0;transition:opacity 3s ease-out}._cacheBorderRect_85daq_700{animation:_cacheDashRotate_85daq_1 4s linear infinite}@keyframes _cacheDashRotate_85daq_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._centerEmpty_oxhcp_1{display:flex;align-items:center;justify-content:center;height:100%}._scrollContainer_oxhcp_8{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;will-change:scroll-position}._listItem_oxhcp_15{cursor:pointer;padding:8px 12px;border-left:3px solid transparent;border-bottom:1px solid #1f1f1f;transition:background .15s}._listItem_oxhcp_15:hover{background:#151515}._listItemActive_oxhcp_27{background:#1a2332;border-left-color:#3b82f6}._listItemActive_oxhcp_27:hover{background:#1a2332}._itemContent_oxhcp_36{width:100%;min-width:0}._itemHeader_oxhcp_41{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}._tagNoMargin_oxhcp_49{margin:0;font-size:12px}._modelName_oxhcp_54{font-size:12px}._time_oxhcp_58{font-size:12px;color:#6b7280;margin-left:auto}._detailRow_oxhcp_64{display:flex;gap:8px;font-size:12px;align-items:center}._urlText_oxhcp_71{color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}._duration_oxhcp_80{color:#6b7280;flex-shrink:0}._statusOk_oxhcp_85{color:#52c41a;opacity:.5;flex-shrink:0}._statusErr_oxhcp_91{color:#ef4444;flex-shrink:0}._statusDefault_oxhcp_96{color:#9ca3af;flex-shrink:0}._usageBox_oxhcp_101{background:#111;border-radius:4px;padding:3px 6px;margin-top:4px;font-size:12px;color:#6b7280;line-height:1.6}._cacheDot_oxhcp_111{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 3px;vertical-align:middle}._cacheDotLoss_oxhcp_120{background-color:#8b1a1a;cursor:help}._cacheDotNormal_oxhcp_125{background-color:#3a3a3a}._GzYRV{line-height:1.2;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}._3eOF8{margin-right:5px;font-weight:700}._3eOF8+._3eOF8{margin-left:-5px}._1MFti{cursor:pointer}._f10Tu{font-size:1.2em;margin-right:5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}._1UmXx:after{content:"▸"}._1LId0:after{content:"▾"}._1pNG9{margin-right:5px}._1pNG9:after{content:"...";font-size:.8em}._2IvMF{background:#eee}._2bkNM{margin:0;padding:0 10px}._1BXBN{margin:0;padding:0}._1MGIk{font-weight:600;margin-right:5px;color:#000}._3uHL6{color:#000}._2T6PJ,._1Gho6{color:#df113a}._vGjyY{color:#2a3f3c}._1bQdo{color:#0b75f5}._3zQKs{color:#469038}._1xvuR{color:#43413d}._oLqym,._2AXVT,._2KJWg{color:#000}._11RoI{background:#002b36}._17H2C,._3QHg2,._3fDAz{color:#fdf6e3}._2bSDX{font-weight:bolder;margin-right:5px;color:#fdf6e3}._gsbQL{color:#fdf6e3}._LaAZe,._GTKgm{color:#81b5ac}._Chy1W{color:#cb4b16}._2bveF{color:#d33682}._2vRm-{color:#ae81ff}._1prJR{color:#268bd2}._container_1h2lr_1{background:#0d1117;border-radius:6px;border:1px solid #2a2a2a;padding:12px;font-size:13px;font-family:monospace;overflow:auto}._tag_17wfp_1{display:inline-block;font-size:10px;color:#6b7280;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:3px;padding:0 4px;margin-left:6px;cursor:pointer;line-height:18px;vertical-align:middle;transition:color .2s,border-color .2s;-webkit-user-select:none;user-select:none}._tag_17wfp_1:hover{color:#93c5fd;border-color:#93c5fd4d}._tagActive_17wfp_22{color:#93c5fd;border-color:#93c5fd40}._tagLoading_17wfp_27{cursor:wait;opacity:.7}._spinner_17wfp_32{display:inline-block;width:10px;height:10px;border:1.5px solid rgba(147,197,253,.3);border-top-color:#93c5fd;border-radius:50%;animation:_spin_17wfp_32 .6s linear infinite;margin-right:3px;vertical-align:middle}@keyframes _spin_17wfp_32{to{transform:rotate(360deg)}}._root_1a6ku_1{display:flex;height:100%;min-height:0;gap:0}._sidebar_1a6ku_9{width:220px;flex-shrink:0;border-right:1px solid #2a2a2a;overflow-y:auto;padding:4px 0;-webkit-overflow-scrolling:touch}._section_1a6ku_18{-webkit-user-select:none;user-select:none}._sectionHeader_1a6ku_22{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;cursor:pointer;color:#d1d5db;font-size:12px;font-weight:600;transition:background .15s;background:none;border:0;text-align:left;font:inherit}._sectionHeader_1a6ku_22:hover{background:#ffffff0d}._sectionHeader_1a6ku_22:focus-visible{outline:1px solid rgba(99,179,237,.75);outline-offset:-1px}._arrow_1a6ku_48{font-size:10px;color:#888;flex-shrink:0}._sectionTitle_1a6ku_54{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._sectionCount_1a6ku_62{font-size:11px;color:#666;background:#1f1f1f;border-radius:10px;padding:0 6px;line-height:18px}._sectionBody_1a6ku_71{padding:2px 0}._historyToggle_1a6ku_76{display:flex;align-items:center;gap:6px;width:100%;padding:4px 10px 4px 14px;cursor:pointer;color:#666;font-size:11px;transition:color .15s,background .15s;background:none;border:0;text-align:left;font:inherit}._historyToggle_1a6ku_76:hover{color:#888;background:#ffffff08}._historyToggle_1a6ku_76:focus-visible{outline:1px solid rgba(99,179,237,.75);outline-offset:-1px}._historyToggleLabel_1a6ku_102{flex:1}._item_1a6ku_107{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 10px 5px 24px;font-size:12px;color:#888;cursor:pointer;transition:background .15s,color .15s;background:none;border:0;text-align:left;font:inherit}._item_1a6ku_107:hover{background:#ffffff0a;color:#d1d5db}._item_1a6ku_107:focus-visible{outline:1px solid rgba(99,179,237,.75);outline-offset:-1px}._itemActive_1a6ku_133{background:#63b3ed1f;color:#63b3ed}._itemActive_1a6ku_133:hover{background:#63b3ed29;color:#63b3ed}._itemContent_1a6ku_143{flex:1;min-width:0;overflow:hidden}._itemLabel_1a6ku_149{font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}._itemSublabel_1a6ku_157{font-size:10px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}._itemTime_1a6ku_166{font-size:9px;color:#555;flex-shrink:0;margin-left:4px;font-family:monospace}._content_1a6ku_175{flex:1;min-width:0;overflow:auto;padding:12px 16px;-webkit-overflow-scrolling:touch}._contentEmpty_1a6ku_183{height:100%;display:flex;align-items:center;justify-content:center}._contentInner_1a6ku_190{padding-bottom:20px}._emptyWrap_1a6ku_194{display:flex;align-items:center;justify-content:center;height:200px}._roleHeader_1a6ku_202{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:nowrap}._roleBadge_1a6ku_210{font-size:10px;font-weight:600;letter-spacing:.04em;padding:2px 7px;border-radius:4px;flex-shrink:0}._role_user_1a6ku_219{background:#3b82f62e;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}._role_assistant_1a6ku_225{background:#8b5cf62e;color:#a78bfa;border:1px solid rgba(139,92,246,.3)}._roleLabel_1a6ku_231{font-size:11px;color:#666;flex:1;min-width:0}._contentTime_1a6ku_238{margin-left:auto;font-size:10px;color:#555;font-family:monospace;flex-shrink:0}._turnDivider_1a6ku_246{border:none;border-top:1px solid #1e1e1e;margin:14px 0}._textBlock_1a6ku_253{margin-bottom:8px;border:1px solid #222;border-radius:6px;overflow:hidden}._textBlockBar_1a6ku_260{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#141414;border-bottom:1px solid #222}._textBlockBody_1a6ku_269{padding:10px 12px;font-size:13px;line-height:1.7;color:#d1d5db;word-break:break-word}._textBlockCompact_1a6ku_277{position:relative;padding:8px 10px;font-size:12px;color:#aaa}._textBlockCompactFloat_1a6ku_284{float:right;margin-left:6px;margin-bottom:2px}._thinkingBlock_1a6ku_291{margin-bottom:8px;border:1px solid #2a2a1e;border-radius:6px;overflow:hidden;background:#111108}._thinkingHeader_1a6ku_299{display:flex;align-items:center;gap:6px;padding:5px 10px;cursor:pointer;font-size:12px;color:#888;transition:background .15s}._thinkingHeader_1a6ku_299:hover{background:#ffffc808}._thinkingPreview_1a6ku_314{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666;font-size:11px}._thinkingBody_1a6ku_324{padding:8px 12px;border-top:1px solid #2a2a1e}._toolBlock_1a6ku_330{margin-bottom:8px;border:1px solid #222;border-radius:6px;overflow:hidden}._toolBlockResult_1a6ku_337{border-color:#1a2a1a}._toolBlockError_1a6ku_341{border-color:#2a1a1a}._toolBlockHeader_1a6ku_345{display:flex;align-items:center;gap:8px;padding:5px 10px;background:#141414;border-bottom:1px solid #222;font-size:12px;flex-wrap:wrap}._toolBlockBody_1a6ku_356{padding:8px 10px;font-size:12px}._toolName_1a6ku_361{color:#d1d5db;font-weight:500;font-family:monospace}._toolId_1a6ku_367{color:#555;font-size:10px;font-family:monospace;margin-left:auto}._errorLabel_1a6ku_374{font-size:10px;color:#f87171;background:#ef44441f;border:1px solid rgba(239,68,68,.25);border-radius:3px;padding:1px 5px}._blockTag_1a6ku_384{font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:3px;background:#1a1a1a;color:#666;border:1px solid #2a2a2a;flex-shrink:0}._blockTagText_1a6ku_397{background:#3b82f61a;color:#60a5fa;border-color:#3b82f633}._blockTagThinking_1a6ku_403{background:#eab3081a;color:#ca8a04;border-color:#eab30833}._blockTagResult_1a6ku_409{background:#22c55e1a;color:#4ade80;border-color:#22c55e33}._blockTagError_1a6ku_415{background:#ef44441a;color:#f87171;border-color:#ef444433}._jsonBlock_1a6ku_422{margin-bottom:8px;border:1px solid #222;border-radius:6px;overflow:hidden}._jsonBlockLabel_1a6ku_429{font-size:10px;color:#666;padding:3px 10px;background:#141414;border-bottom:1px solid #222;font-family:monospace}._blockSeparator_1a6ku_439{border:none;border-top:1px solid #2a2a2a;margin:16px 0}._markdownBody_1a6ku_446{font-size:13px;line-height:1.7;color:#d1d5db;word-break:break-word}._container_ty3f8_1{height:100%;overflow:auto;padding:0 16px;-webkit-overflow-scrolling:touch;will-change:scroll-position}._emptyState_ty3f8_9{display:flex;align-items:center;justify-content:center;height:100%}._urlSection_ty3f8_16{padding:12px 0;border-bottom:1px solid #1f1f1f;display:flex;align-items:flex-start}._urlLeft_ty3f8_23{flex:1;min-width:0}._tokenStatsBox_ty3f8_28{flex-shrink:0;padding-left:12px;display:flex;align-items:center}._tokenGrid_ty3f8_35{display:flex;border:1px solid #303030;border-radius:6px;overflow:hidden;min-width:360px;font-size:11px;line-height:1.6}._tokenRows_ty3f8_45{flex:1}._tokenRow_ty3f8_45{display:flex}._tokenRowBorder_ty3f8_53{border-top:1px solid #303030}._tokenLabel_ty3f8_57{color:#888;padding:4px 8px;white-space:nowrap;font-weight:600}._tokenTd_ty3f8_64{flex:1;color:#d1d5db;text-align:right;padding:4px 8px;font-family:monospace;white-space:nowrap}._tokenHitRate_ty3f8_73{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#d1d5db;padding:4px 8px;font-family:monospace;white-space:nowrap;border-left:1px solid #303030;min-width:100px}._tokenHitRateLabel_ty3f8_86{color:#888;font-size:10px;font-family:sans-serif}._tokenRowBorder_ty3f8_53 td{border-top:1px solid #303030}._urlText_ty3f8_96{color:#d1d5db;font-size:13px;margin-bottom:8px;word-break:break-all}._metaText_ty3f8_103,._headersContainer_ty3f8_107{font-size:12px}._headerRow_ty3f8_111{display:flex;padding:4px 0;border-bottom:1px solid #1f1f1f}._headerKey_ty3f8_117{min-width:200px;flex-shrink:0}._headerValue_ty3f8_122{word-break:break-all;margin-left:8px}._streamingBox_ty3f8_127{padding:20px;background:#1a1a1a;border-radius:6px;border:1px solid #2a2a2a}._bodyToolbar_ty3f8_134{display:flex;gap:8px;margin-bottom:8px}._rawTextPre_ty3f8_140{background:#0d1117;border:1px solid #2a2a2a;border-radius:6px;padding:12px;font-size:12px;color:#e5e7eb;overflow:auto;max-height:600px;white-space:pre-wrap;word-break:break-all}._tabContent_ty3f8_153{padding:12px 0}._collapseSpacing_ty3f8_157{margin-bottom:16px}._bodyLabel_ty3f8_161{margin:0}._bodyHeader_ty3f8_165{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}._diffSection_ty3f8_172{margin-bottom:16px}._diffToggle_ty3f8_176{display:inline-block;margin-bottom:8px;cursor:pointer}._diffIcon_ty3f8_182{font-size:12px;margin-left:4px}._viewInChatBtn_ty3f8_187{display:inline-flex;align-items:center;height:26px;border-radius:13px;border:1px solid #424242;background:transparent;color:#888;cursor:pointer;font-size:12px;transition:all .2s;padding:0 10px;white-space:nowrap}._viewInChatBtn_ty3f8_187:hover{border-color:#666;color:#d1d5db;background:#ffffff0f}._reminderSelect_ty3f8_208{min-width:140px;font-size:12px}._reminderSelect_ty3f8_208 .ant-select-selector.ant-select-selector{border-radius:2px;border-color:#424242;background:transparent;min-height:26px;height:auto;padding:0 8px;font-family:monospace}._reminderSelect_ty3f8_208 .ant-select-selection-placeholder{font-size:11px}._avatar_s8m0t_3{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}._avatarImg_s8m0t_13{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}._bubble_s8m0t_21{border-radius:8px;padding:10px 14px;max-width:100%;font-size:14px;line-height:1.6;word-break:break-word}._messageRow_s8m0t_32{display:flex;gap:10px;padding:8px 0}._messageRowEnd_s8m0t_38{display:flex;gap:10px;padding:8px 0;justify-content:flex-end}._contentCol_s8m0t_47{min-width:0;flex:1}._contentColLimited_s8m0t_52{min-width:0;max-width:80%;width:fit-content}._labelRow_s8m0t_60{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._labelRowEnd_s8m0t_67{display:flex;justify-content:flex-end;align-items:center;margin-bottom:2px}._labelRight_s8m0t_74{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}._labelText_s8m0t_82{font-size:11px}._timeText_s8m0t_86,._timeTextNoMargin_s8m0t_92{font-size:10px;color:#6b7280;flex-shrink:0}._labelTextRight_s8m0t_98{font-size:11px;margin-left:auto}._bubbleUser_s8m0t_105{background:#1668dc;color:#e5e7eb}._bubbleAssistant_s8m0t_111{background:#141414;color:#e5e7eb;transition:box-shadow 0s;position:relative}._bubbleHighlight_s8m0t_119{box-shadow:0 0 10px #1668dc99}._bubbleHighlightFading_s8m0t_123{box-shadow:0 0 10px #1668dc00;transition:box-shadow 5s ease-out}._borderSvg_s8m0t_128{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgFading_s8m0t_137{opacity:0;transition:opacity 5s ease-out}._borderRect_s8m0t_142{animation:_dashRotate_s8m0t_1 4s linear infinite}@keyframes _dashRotate_s8m0t_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._bubblePlan_s8m0t_151{background:#141428;border:5px solid #1668dc;font-size:12px;color:#e5e7eb}._bubbleSubAgent_s8m0t_159{background:#1a1a2e;color:#e5e7eb}._bubbleSelection_s8m0t_165{background:#1a3a1a;color:#e5e7eb}._systemTagLabel_s8m0t_173{font-size:12px}._skillLabel_s8m0t_177{font-size:12px;color:#a78bfa}._systemTagPre_s8m0t_182{font-size:12px;color:#9ca3af;white-space:pre-wrap;word-break:break-all;margin:0}._collapseMargin_s8m0t_190{margin:4px 0}._collapseNoMargin_s8m0t_194{margin:0}._thinkingLabel_s8m0t_200{font-size:12px}._bashCollapseLabel_s8m0t_204{font-size:12px;color:#9ca3af}._toolBox_s8m0t_211{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._toolLabel_s8m0t_220{color:#a78bfa}._codePre_s8m0t_226{font-size:12px;margin:4px 0 0;white-space:pre-wrap;word-break:break-all;background:#0d1117;border-radius:4px;padding:6px 8px}._pathTag_s8m0t_238{color:#7dd3fc;font-size:11px}._pathTagClickable_s8m0t_243{color:#7dd3fc;font-size:11px;cursor:pointer}._pathTagClickable_s8m0t_243:hover{text-decoration:underline;color:#93c5fd}._descSpan_s8m0t_256{color:#6b7280;font-weight:400}._secondarySpan_s8m0t_261{color:#6b7280}._patternSpan_s8m0t_265{color:#fbbf24}._kvContainer_s8m0t_271{margin-top:4px;font-size:11px}._kvItem_s8m0t_276{margin:2px 0}._kvKey_s8m0t_280{color:#7dd3fc}._kvValue_s8m0t_284{color:#9ca3af}._toolResult_s8m0t_290{background:#111827;border:1px solid #1e293b;border-radius:6px;padding:6px 10px;margin:2px 0 6px;font-size:11px}._toolResultLabel_s8m0t_299{font-size:11px}._compactLabel_s8m0t_305{font-size:12px;color:#93c5fd}._compactPre_s8m0t_310{font-size:12px;color:#d1d5db;white-space:pre-wrap;word-break:break-all;margin:0}._viewRequestBtn_s8m0t_320{font-size:10px;color:#555;cursor:pointer;margin-left:6px;flex-shrink:0}._viewRequestBtn_s8m0t_320:hover{color:#93c5fd}._optionList_s8m0t_334{padding-left:8px}._optionDesc_s8m0t_338{color:#555;margin-left:6px;font-weight:400}._questionText_s8m0t_346{font-size:13px;color:#ccc;margin-bottom:4px}._questionSpacing_s8m0t_352{margin-bottom:10px}._option_s8m0t_334{font-size:12px;padding:1px 0}._askQuestionBox_s8m0t_365{background:#0d1f0d;border:1px solid #2ea043;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askQuestionHeader_s8m0t_374{display:inline-block;background:#1a3a1a;color:#7ee787;font-size:10px;padding:1px 6px;border-radius:4px;margin-bottom:4px;font-weight:600}._askQuestionText_s8m0t_385{color:#e5e7eb;font-size:13px;margin-bottom:4px}._askOptionItem_s8m0t_391{font-size:12px;color:#9ca3af;padding:1px 0;display:flex;align-items:center;gap:4px}._askOptionSelected_s8m0t_400{color:#e5e7eb;font-weight:600}._askCheckSvg_s8m0t_405{flex-shrink:0;vertical-align:middle}._planModeBox_s8m0t_412{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._planModeLabel_s8m0t_421{color:#93c5fd;font-weight:600}._planModePermissions_s8m0t_426{margin-top:6px;padding-top:6px;border-top:1px solid #1e3a5f}._planModePermLabel_s8m0t_432{color:#6b7280;font-size:11px;margin-bottom:2px}._planModeHeader_s8m0t_438{display:flex;justify-content:space-between;align-items:center}._planStatusBadge_s8m0t_444{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px;line-height:1.6}._planStatusApproved_s8m0t_452{border-color:#22c55e}._planStatusApproved_s8m0t_452._planStatusBadge_s8m0t_444{background:#22c55e26;color:#4ade80}._planStatusRejected_s8m0t_461{border-color:#ef4444}._planStatusRejected_s8m0t_461._planStatusBadge_s8m0t_444{background:#ef444426;color:#f87171}._planStatusPending_s8m0t_470{border-color:#1668dc}._planStatusPending_s8m0t_470._planStatusBadge_s8m0t_444{background:#1668dc26;color:#93c5fd}._planFeedback_s8m0t_479{margin-top:6px;padding:6px 8px;background:#ef444414;border-radius:4px;font-size:12px;color:#e5e7eb}._planFeedbackLabel_s8m0t_488{color:#f87171;font-weight:600}._planApprovalActions_s8m0t_493{display:flex;gap:8px;margin-top:8px}._planApproveBtn_s8m0t_499{padding:4px 16px;border-radius:4px;border:1px solid #22c55e;background:#22c55e26;color:#4ade80;font-size:13px;cursor:pointer;transition:background .15s}._planApproveBtn_s8m0t_499:hover{background:#22c55e4d}._planRejectBtn_s8m0t_514{padding:4px 16px;border-radius:4px;border:1px solid #ef4444;background:#ef444426;color:#f87171;font-size:13px;cursor:pointer;transition:background .15s}._planRejectBtn_s8m0t_514:hover{background:#ef44444d}._planOptionBtn_s8m0t_529{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planOptionBtn_s8m0t_529:hover{background:#6b72804d}._planFeedbackInputWrap_s8m0t_544{margin-top:8px}._planFeedbackTextarea_s8m0t_548{width:100%;min-height:60px;max-height:120px;padding:8px 10px;border-radius:4px;border:1px solid #4b5563;background:#1f2937;color:#e5e7eb;font-size:13px;line-height:1.5;resize:vertical;font-family:inherit;outline:none}._planFeedbackTextarea_s8m0t_548:focus{border-color:#3b82f6}._planFeedbackBtnRow_s8m0t_568{display:flex;gap:8px;margin-top:6px;justify-content:flex-end}._planFeedbackSendBtn_s8m0t_575{padding:4px 16px;border-radius:4px;border:1px solid #3b82f6;background:#3b82f633;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackSendBtn_s8m0t_575:hover{background:#3b82f659}._planFeedbackSendBtn_s8m0t_575:disabled{opacity:.4;cursor:not-allowed}._planFeedbackCancelBtn_s8m0t_595{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackCancelBtn_s8m0t_595:hover{background:#6b72804d}._askQuestionInteractive_s8m0t_612{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askRadioGroup_s8m0t_621{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askRadioItem_s8m0t_629{color:#d1d5db;font-size:12px;padding:3px 0;cursor:pointer;display:flex;align-items:baseline;gap:6px;-webkit-user-select:none;user-select:none}._askRadioItem_s8m0t_629:hover{color:#fff}._askRadioItemSelected_s8m0t_644{color:#58a6ff}._askRadioDot_s8m0t_648{flex-shrink:0;font-size:13px;line-height:1}._askRadioGroup_s8m0t_621 .ant-radio-wrapper,._askCheckboxGroup_s8m0t_655 .ant-checkbox-wrapper{color:#d1d5db;font-size:12px;padding:3px 0;cursor:pointer;pointer-events:auto}._askRadioGroup_s8m0t_621 .ant-radio-wrapper>span,._askRadioGroup_s8m0t_621 .ant-radio{cursor:pointer;pointer-events:auto}._askRadioGroup_s8m0t_621 .ant-radio-input{cursor:pointer}._askCheckboxGroup_s8m0t_655{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askOtherInput_s8m0t_681{margin-top:4px;margin-left:24px;width:calc(100% - 24px)}._askOtherInput_s8m0t_681 .ant-input{background:#1f2937;border-color:#4b5563;color:#e5e7eb;font-size:12px}._askSubmitRow_s8m0t_694{display:flex;justify-content:flex-end;margin-top:8px}._askSubmitBtn_s8m0t_700{padding:4px 20px;border-radius:4px;border:1px solid #1668dc;background:#1668dc33;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._askSubmitBtn_s8m0t_700:hover{background:#1668dc59}._askSubmitBtn_s8m0t_700:disabled{opacity:.4;cursor:not-allowed}._askMarkdownLayout_s8m0t_720{display:flex;gap:12px;margin-top:4px}._askMarkdownLayout_s8m0t_720>:first-child{flex:1;min-width:0}._askMarkdownPreview_s8m0t_731{flex:1;min-width:0;background:#0d1117;border:1px solid #2a2a3e;border-radius:6px;padding:8px 10px;font-size:12px;color:#d1d5db;max-height:240px;overflow-y:auto}._askMarkdownPreview_s8m0t_731 pre{white-space:pre-wrap;word-break:break-all;margin:0;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.5}._wrapper_cz5ph_1{margin:6px 0;background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px}._header_cz5ph_9{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}._headerRight_cz5ph_16{display:flex;align-items:center;gap:12px;flex-shrink:0;white-space:nowrap}._filePath_cz5ph_24{color:#a78bfa;font-size:12px;font-weight:600}._filePathClickable_cz5ph_30{color:#a78bfa;font-size:12px;font-weight:600;cursor:pointer}._filePathClickable_cz5ph_30:hover{text-decoration:underline;color:#c4b5fd}._toggle_cz5ph_42{color:#6b7280;font-size:11px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._diffSummary_cz5ph_51{font-size:11px;color:#6b7280}._diffBody_cz5ph_58{display:flex;font-family:SF Mono,Cascadia Code,Fira Code,Menlo,Consolas,monospace;font-size:12px;line-height:1.5}._gutter_cz5ph_66{flex-shrink:0;-webkit-user-select:none;user-select:none}._gutterRow_cz5ph_71{display:flex;height:18px}._lineNumOld_cz5ph_76,._lineNumNew_cz5ph_77{text-align:right;color:#484f58;padding:0 6px 0 2px;box-sizing:border-box}._prefix_cz5ph_84{width:16px;min-width:16px;text-align:center;font-weight:600}._codeWrap_cz5ph_92{flex:1;min-width:0;overflow-x:auto}._codeInner_cz5ph_99{display:inline-block;min-width:100%}._codeLine_cz5ph_104{white-space:pre;padding:0 4px;height:18px}._rowContext_cz5ph_112{background:#1a1a2e;color:#8b949e}._rowDel_cz5ph_117{background:#ef44441f;color:#fca5a5}._rowDel_cz5ph_117._gutterRow_cz5ph_71{background:#341f31}._rowDel_cz5ph_117._gutterRow_cz5ph_71 ._prefix_cz5ph_84{color:#ef4444}._rowAdd_cz5ph_128{background:#22c55e1f;color:#86efac}._rowAdd_cz5ph_128._gutterRow_cz5ph_71{background:#1b2f34}._rowAdd_cz5ph_128._gutterRow_cz5ph_71 ._prefix_cz5ph_84{color:#22c55e}._rowContext_cz5ph_112._gutterRow_cz5ph_71{background:#1a1a2e}._plainResult_1uh60_1{background:#111;border-radius:6px;font-size:12px}._plainTitle_1uh60_7{font-size:11px}._plainPre_1uh60_11{color:#d1d5db;margin:0;white-space:pre-wrap;word-break:break-all;font-size:12px;padding:8px 12px}._codeResult_1uh60_20{background:#0d1117;border-radius:6px;border:1px solid #1e2a3a;overflow:hidden}._codeHeader_1uh60_27{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;background:#161b22;border-bottom:1px solid #1e2a3a}._codeTitle_1uh60_36{font-size:11px;color:#8b949e}._codeToggle_1uh60_41{font-size:11px;color:#484f58;cursor:pointer;-webkit-user-select:none;user-select:none}._codePre_1uh60_48{margin:0;padding:8px 12px;font-size:12px;line-height:1.5;overflow:auto;max-height:500px}._markdownBody_1uh60_57{padding:8px 12px;font-size:13px;line-height:1.6;overflow:auto;max-height:500px}._fileExplorer_1g58f_1{width:240px;flex-shrink:0;background:#111;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none}._header_1g58f_12{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #2a2a2a;flex-shrink:0}._headerTitle_1g58f_21{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}._collapseBtn_1g58f_29{width:20px;height:20px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0}._collapseBtn_1g58f_29:hover{color:#ccc;background:#2a2a2a}._treeContainer_1g58f_48{flex:1;overflow:auto;padding:4px 0}._treeItem_1g58f_54{display:flex;align-items:center;height:26px;padding:0 8px;cursor:pointer;color:#ccc;font-size:13px;white-space:nowrap;transition:background .1s}._treeItem_1g58f_54:hover{background:#1a1a1a}._treeItem_1g58f_54._treeItemSelected_1g58f_70{background:#532f00}._arrow_1g58f_74{width:16px;flex-shrink:0;color:#666;display:flex;align-items:center;justify-content:center}._icon_1g58f_83{width:16px;height:16px;flex-shrink:0;margin-right:6px;display:flex;align-items:center;justify-content:center}._fileName_1g58f_93{overflow:hidden;text-overflow:ellipsis}._fileNameInput_1g58f_98{background:transparent;border:none;border-bottom:1px solid #528bff;color:#ccc;font-size:13px;font-family:inherit;padding:0;margin:0;outline:none;width:100%;min-width:40px;height:20px;line-height:20px}._loading_1g58f_114{color:#555;font-size:12px;padding:4px 8px}._error_1g58f_120{color:#ff6b6b;font-size:12px;padding:4px 8px}._treeItemGitIgnored_1g58f_126{opacity:.4}._fileContentView_7x6gt_1{display:flex;flex-direction:column;height:100%;background:#0d0d0d;animation:_slideInFromRight_7x6gt_1 .25s ease-out}@keyframes _slideInFromRight_7x6gt_1{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}._closing_7x6gt_20{animation:_slideOutToRight_7x6gt_1 .2s ease-in forwards}@keyframes _slideOutToRight_7x6gt_1{0%{transform:translate(0);opacity:1}to{transform:translate(-40px);opacity:0}}._editorBanner_7x6gt_35{padding:6px 16px;background:#1a3a2a;color:#4ade80;font-size:12px;text-align:center;flex-shrink:0;border-bottom:1px solid #2a5a3a;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}._editorBanner_7x6gt_35:hover{background:#245a3a}._header_7x6gt_52{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid #2a2a2a;background:#111;flex-shrink:0}._headerLeft_7x6gt_62{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._headerRight_7x6gt_70{display:flex;align-items:center;gap:10px;flex-shrink:0}._backBtn_7x6gt_77{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_7x6gt_77:hover{color:#ccc;background:#1a1a1a}._filePath_7x6gt_98{font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fileSize_7x6gt_106{font-size:11px;color:#666;flex-shrink:0;margin-left:8px}._closeBtn_7x6gt_113{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid #3a3a3a;background:#1a1a1a;color:#888;border-radius:6px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}._closeBtn_7x6gt_113:hover{background:#2a2a2a;color:#fff;border-color:#4a4a4a}._saveBtn_7x6gt_134{display:flex;align-items:center;gap:5px;padding:4px 12px;border:1px solid #3a3a3a;background:#1a1a1a;color:#ccc;font-size:12px;border-radius:6px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}._saveBtn_7x6gt_134:hover:not(:disabled){background:#2a2a2a;color:#fff;border-color:#4a4a4a}._saveBtn_7x6gt_134:disabled{opacity:.4;cursor:not-allowed}._saveStatus_7x6gt_160{font-size:11px;color:#888;white-space:nowrap}._saveStatusSaved_7x6gt_166{color:#4caf50}._saveStatusFailed_7x6gt_170{color:#ff6b6b}._contentContainer_7x6gt_174{flex:1;overflow:hidden;background:#0d0d0d;display:flex;min-height:0;min-width:0}._editorWrapper_7x6gt_183{flex:1;display:flex;min-height:0;min-width:0;overflow:hidden}._lineNumCol_7x6gt_191{flex-shrink:0;width:56px;overflow:hidden;background:#0d0d0d;border-right:1px solid #2a2a2a;-webkit-user-select:none;user-select:none;padding-top:4px}._lineNumRow_7x6gt_201{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}._editorCol_7x6gt_211{flex:1;min-width:0;min-height:0;display:flex}._editorCol_7x6gt_211 .cm-theme{flex:1;display:flex;min-height:0;min-width:0}._editorCol_7x6gt_211 .cm-editor{flex:1;min-width:0;min-height:0}._loading_7x6gt_231{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#666;font-size:14px}._error_7x6gt_241{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#ff6b6b;font-size:14px}._imageViewer_1vf1x_1{display:flex;flex-direction:column;height:100%;background:#0d0d0d}._header_1vf1x_8{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid #2a2a2a;background:#111;flex-shrink:0}._headerLeft_1vf1x_18{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._headerRight_1vf1x_26{display:flex;align-items:center;gap:10px;flex-shrink:0}._backBtn_1vf1x_33{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_1vf1x_33:hover{color:#ccc;background:#1a1a1a}._filePath_1vf1x_54{font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fileSize_1vf1x_62{font-size:11px;color:#666;flex-shrink:0}._toolbar_1vf1x_68{display:flex;align-items:center;gap:4px;padding:6px 16px;background:#111;border-bottom:1px solid #2a2a2a;flex-shrink:0}._toolBtn_1vf1x_78{width:28px;height:28px;border:1px solid #3a3a3a;background:#1a1a1a;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s,border-color .15s}._toolBtn_1vf1x_78:hover{background:#2a2a2a;color:#fff;border-color:#4a4a4a}._zoomLabel_1vf1x_99{font-size:11px;color:#888;min-width:42px;text-align:center;-webkit-user-select:none;user-select:none}._canvasArea_1vf1x_107{flex:1;overflow:hidden;position:relative;cursor:grab;background-color:#1a1a1a;background-image:linear-gradient(45deg,#222 25%,transparent 25%),linear-gradient(-45deg,#222 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#222 75%),linear-gradient(-45deg,transparent 75%,#222 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}._canvasArea_1vf1x_107._dragging_1vf1x_122{cursor:grabbing}._imageWrap_1vf1x_126{position:absolute;top:0;left:0;transform-origin:0 0}._imageWrap_1vf1x_126 img{display:block;max-width:none;image-rendering:auto}._statusBar_1vf1x_139{display:flex;align-items:center;gap:16px;padding:4px 16px;background:#111;border-top:1px solid #2a2a2a;flex-shrink:0;font-size:11px;color:#666}._loading_1vf1x_151{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#666;font-size:14px}._error_1vf1x_161{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#ff6b6b;font-size:14px}._gitChanges_nt7bg_1{width:240px;flex-shrink:0;background:#111;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none}._header_nt7bg_12{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #2a2a2a;flex-shrink:0}._headerTitle_nt7bg_21{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}._collapseBtn_nt7bg_29{width:20px;height:20px;border:none;background:none;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0}._collapseBtn_nt7bg_29:hover{color:#ccc;background:#2a2a2a}._changesContainer_nt7bg_48{flex:1;overflow:auto;padding:4px 0}._changeItem_nt7bg_54{display:flex;align-items:center;height:26px;padding:0 8px;cursor:pointer;color:#ccc;font-size:13px;white-space:nowrap;transition:background .1s;gap:6px}._changeItem_nt7bg_54:hover{background:#1a1a1a}._changeItem_nt7bg_54._changeItemSelected_nt7bg_71{background:#532f00}._dirItem_nt7bg_75{display:flex;align-items:center;height:26px;padding:0 8px;color:#999;font-size:13px;white-space:nowrap;gap:6px}._dirArrow_nt7bg_86{width:16px;flex-shrink:0;color:#666;display:flex;align-items:center;justify-content:center}._dirName_nt7bg_95{overflow:hidden;text-overflow:ellipsis}._status_nt7bg_100{width:16px;flex-shrink:0;font-size:11px;font-weight:600;text-align:center;margin-left:auto}._icon_nt7bg_109{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center}._fileName_nt7bg_118{overflow:hidden;text-overflow:ellipsis;flex:1}._loading_nt7bg_124{color:#555;font-size:12px;padding:8px 12px}._error_nt7bg_130{color:#ff6b6b;font-size:12px;padding:8px 12px}._empty_nt7bg_136{color:#666;font-size:12px;padding:8px 12px;text-align:center}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
33
33
  Theme: GitHub Dark
34
34
  Description: Dark theme as seen on github.com
35
35
  Author: github.com
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-D3V7nrsz.js"></script>
10
- <link rel="stylesheet" crossorigin href="/assets/index-Bp_VsiSj.css">
9
+ <script type="module" crossorigin src="/assets/index-CX2k5Bow.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-DGeFNfQD.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
package/interceptor.js CHANGED
@@ -11,7 +11,7 @@ import { homedir } from 'node:os';
11
11
  import { fileURLToPath } from 'node:url';
12
12
  import { dirname, join, basename } from 'node:path';
13
13
  import { LOG_DIR } from './findcc.js';
14
- import { assembleStreamMessage, cleanupTempFiles, findRecentLog, isAnthropicApiPath, isMainAgentRequest, migrateConversationContext } from './lib/interceptor-core.js';
14
+ import { assembleStreamMessage, cleanupTempFiles, findRecentLog, isAnthropicApiPath, isMainAgentRequest, rotateLogFile } from './lib/interceptor-core.js';
15
15
 
16
16
 
17
17
 
@@ -85,6 +85,20 @@ function resolveResumeChoice(choice) {
85
85
  return result;
86
86
  }
87
87
 
88
+ // Delta storage: 增量存储开关和状态(默认开启,设置 CCV_DISABLE_DELTA=1 关闭)
89
+ // 注意:delta 计算依赖 mainAgent 请求串行(Claude CLI 保证),不做并发互斥
90
+ const _deltaStorageEnabled = process.env.CCV_DISABLE_DELTA !== '1';
91
+ let _lastMessagesCount = 0; // 上一次 mainAgent 写入的完整 messages 数量
92
+ let _mainAgentDeltaCount = 0; // mainAgent 请求计数器(用于触发定期 checkpoint)
93
+ const CHECKPOINT_INTERVAL = 10; // 每 N 条 mainAgent 请求写一个 checkpoint
94
+
95
+ /** Delta storage: completed 写入成功后更新状态 */
96
+ function _commitDeltaState(originalLength) {
97
+ if (_deltaStorageEnabled && originalLength > 0) {
98
+ _lastMessagesCount = originalLength;
99
+ }
100
+ }
101
+
88
102
  // Teammate 子进程检测:--parent-session-id(旧模式)或 --agent-name(原生 team 模式)
89
103
  const _isTeammate = process.argv.includes('--parent-session-id') || process.argv.includes('--agent-name');
90
104
  // 提取 teammate 元数据(--agent-name worker-1 --team-name fix-ts-errors)
@@ -184,21 +198,24 @@ export function resetWorkspace() {
184
198
  LOG_FILE = '';
185
199
  }
186
200
 
187
- const MAX_LOG_SIZE = 150 * 1024 * 1024; // 150MB
201
+ const MAX_LOG_SIZE = 250 * 1024 * 1024; // 250MB
188
202
 
189
203
  function checkAndRotateLogFile() {
190
204
  // Teammate 不做日志轮转,由 leader 负责
191
205
  if (_isTeammate) return;
192
206
  try {
193
- if (!existsSync(LOG_FILE)) return;
194
- const size = statSync(LOG_FILE).size;
195
- if (size >= MAX_LOG_SIZE) {
196
- const oldFile = LOG_FILE;
197
- const { filePath } = generateNewLogFilePath();
198
- LOG_FILE = filePath;
199
- migrateConversationContext(oldFile, filePath);
207
+ if (!existsSync(LOG_FILE) || statSync(LOG_FILE).size < MAX_LOG_SIZE) return;
208
+ } catch { return; }
209
+ const { filePath } = generateNewLogFilePath();
210
+ const result = rotateLogFile(LOG_FILE, filePath, MAX_LOG_SIZE);
211
+ if (result.rotated) {
212
+ LOG_FILE = result.newFile;
213
+ // 重置 delta 状态,强制下一条 mainAgent 请求写完整 checkpoint
214
+ if (_deltaStorageEnabled) {
215
+ _lastMessagesCount = 0;
216
+ _mainAgentDeltaCount = 0;
200
217
  }
201
- } catch { }
218
+ }
202
219
  }
203
220
 
204
221
  // 从环境变量 ANTHROPIC_BASE_URL 提取域名用于请求匹配
@@ -356,7 +373,7 @@ export function setupInterceptor() {
356
373
  }
357
374
  } catch { }
358
375
 
359
- // 用户新指令边界:检查日志文件大小,超过 200MB 则切换新文件
376
+ // 用户新指令边界:检查日志文件大小,超过 250MB 则切换新文件
360
377
  if (requestEntry?.mainAgent) {
361
378
  checkAndRotateLogFile();
362
379
  // 仅 mainAgent 请求时缓存模型名,避免 SubAgent 覆盖
@@ -369,6 +386,36 @@ export function setupInterceptor() {
369
386
  }
370
387
  }
371
388
 
389
+ // Delta storage:仅 mainAgent 且开关启用时,将 body.messages 转为增量格式
390
+ let _deltaOriginalMessagesLength = 0; // 缓存本次请求的原始 messages 长度,用于 completed 后更新状态
391
+ if (_deltaStorageEnabled && requestEntry?.mainAgent && Array.isArray(requestEntry.body?.messages)) {
392
+ const messages = requestEntry.body.messages;
393
+ _deltaOriginalMessagesLength = messages.length;
394
+ _mainAgentDeltaCount++;
395
+
396
+ // 判断是否需要写 checkpoint
397
+ const needsCheckpoint =
398
+ _lastMessagesCount === 0 || // 进程重启 / 首次请求
399
+ messages.length < _lastMessagesCount || // messages 缩短(/clear、context 压缩)
400
+ (_mainAgentDeltaCount % CHECKPOINT_INTERVAL === 0); // 定期 checkpoint
401
+
402
+ if (needsCheckpoint) {
403
+ // checkpoint:保持完整 messages,标记 _isCheckpoint
404
+ requestEntry._deltaFormat = 1;
405
+ requestEntry._totalMessageCount = messages.length;
406
+ requestEntry._conversationId = 'mainAgent';
407
+ requestEntry._isCheckpoint = true;
408
+ } else {
409
+ // delta:只保留新增的 messages
410
+ const delta = messages.slice(_lastMessagesCount);
411
+ requestEntry._deltaFormat = 1;
412
+ requestEntry._totalMessageCount = messages.length;
413
+ requestEntry._conversationId = 'mainAgent';
414
+ requestEntry._isCheckpoint = false;
415
+ requestEntry.body.messages = delta;
416
+ }
417
+ }
418
+
372
419
  // 生成唯一请求 ID,用于关联在途请求和完成请求
373
420
  const requestId = `${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
374
421
  if (requestEntry) {
@@ -447,6 +494,7 @@ export function setupInterceptor() {
447
494
  delete requestEntry.inProgress;
448
495
  delete requestEntry.requestId;
449
496
  appendFileSync(LOG_FILE, JSON.stringify(requestEntry) + '\n---\n');
497
+ _commitDeltaState(_deltaOriginalMessagesLength);
450
498
  // Release memory: clear large objects after disk write
451
499
  streamedContent = '';
452
500
  requestEntry.response = null;
@@ -455,6 +503,7 @@ export function setupInterceptor() {
455
503
  delete requestEntry.inProgress;
456
504
  delete requestEntry.requestId;
457
505
  appendFileSync(LOG_FILE, JSON.stringify(requestEntry) + '\n---\n');
506
+ _commitDeltaState(_deltaOriginalMessagesLength);
458
507
  streamedContent = '';
459
508
  requestEntry.response = null;
460
509
  }
@@ -487,6 +536,7 @@ export function setupInterceptor() {
487
536
  delete requestEntry.inProgress;
488
537
  delete requestEntry.requestId;
489
538
  appendFileSync(LOG_FILE, JSON.stringify(requestEntry) + '\n---\n');
539
+ _commitDeltaState(_deltaOriginalMessagesLength);
490
540
  }
491
541
  } else {
492
542
  // 对于非流式响应,可以安全读取body
@@ -513,10 +563,12 @@ export function setupInterceptor() {
513
563
  delete requestEntry.requestId;
514
564
 
515
565
  appendFileSync(LOG_FILE, JSON.stringify(requestEntry) + '\n---\n');
566
+ _commitDeltaState(_deltaOriginalMessagesLength);
516
567
  } catch (err) {
517
568
  delete requestEntry.inProgress;
518
569
  delete requestEntry.requestId;
519
570
  appendFileSync(LOG_FILE, JSON.stringify(requestEntry) + '\n---\n');
571
+ _commitDeltaState(_deltaOriginalMessagesLength);
520
572
  }
521
573
  }
522
574
  }
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Delta Reconstructor — 增量日志重建模块
3
+ *
4
+ * 将 delta 格式的日志条目重建为完整的 messages 数组。
5
+ * 仅处理 mainAgent 条目,teammate/旧格式条目直接跳过。
6
+ *
7
+ * 提供两种 API:
8
+ * - reconstructEntries(entries): 批量重建,用于 readLogFile() 和 readLocalLog()
9
+ * - createIncrementalReconstructor(): 有状态的增量重建器,用于 watcher 逐条重建
10
+ */
11
+
12
+ /**
13
+ * 判断一个条目是否为 checkpoint(应重置累积状态)。
14
+ * 三种情况视为 checkpoint:
15
+ * 1. 无 _deltaFormat 字段 → 旧格式全量条目
16
+ * 2. _isCheckpoint === true → 显式 checkpoint
17
+ * 3. _totalMessageCount === body.messages.length → 隐式 checkpoint(delta 长度 === 总长度)
18
+ */
19
+ function isCheckpointEntry(entry) {
20
+ // 无 _deltaFormat:旧格式全量条目
21
+ if (!entry._deltaFormat) return true;
22
+ // 显式 checkpoint
23
+ if (entry._isCheckpoint) return true;
24
+ // 隐式 checkpoint:delta 长度等于总长度
25
+ const msgs = entry.body?.messages;
26
+ if (Array.isArray(msgs) && entry._totalMessageCount === msgs.length) return true;
27
+ return false;
28
+ }
29
+
30
+ /**
31
+ * 判断一个条目是否为需要重建的 delta 条目(mainAgent + _deltaFormat)。
32
+ */
33
+ function isDeltaEntry(entry) {
34
+ return entry._deltaFormat && entry.mainAgent;
35
+ }
36
+
37
+ /**
38
+ * 批量重建 — 用于 readLogFile() 和 readLocalLog()。
39
+ * 输入已去重的条目数组,输出重建后的条目数组(原地修改 body.messages)。
40
+ * 非 mainAgent delta 条目不受影响。
41
+ *
42
+ * @param {Array} entries - 已去重、按时间顺序排列的条目数组
43
+ * @returns {Array} 重建后的条目数组(同一引用,原地修改)
44
+ */
45
+ export function reconstructEntries(entries) {
46
+ // 第一遍:正向重建
47
+ let accumulated = []; // mainAgent 累积 messages
48
+ const broken = []; // 记录重建失败的条目索引(用于第二遍补偿)
49
+
50
+ for (let i = 0; i < entries.length; i++) {
51
+ const entry = entries[i];
52
+ if (!isDeltaEntry(entry)) {
53
+ // 非 delta 条目(旧格式 / teammate):如果是 mainAgent 旧格式,重置累积状态
54
+ if (entry.mainAgent && Array.isArray(entry.body?.messages)) {
55
+ accumulated = [...entry.body.messages];
56
+ }
57
+ continue;
58
+ }
59
+
60
+ // delta 条目处理
61
+ const msgs = entry.body?.messages;
62
+ if (!Array.isArray(msgs)) continue;
63
+
64
+ if (isCheckpointEntry(entry)) {
65
+ // checkpoint:用当前 messages 重置累积状态
66
+ accumulated = [...msgs];
67
+ } else {
68
+ // delta:拼接到累积数组
69
+ accumulated = [...accumulated, ...msgs];
70
+ // 挂载重建后的完整 messages(checkpoint/旧格式条目保持不变)
71
+ entry.body.messages = accumulated;
72
+ if (entry._totalMessageCount && accumulated.length !== entry._totalMessageCount) {
73
+ broken.push(i);
74
+ }
75
+ }
76
+ }
77
+
78
+ // 第二遍:补偿修复 — 用后续最近的 checkpoint 回填断裂的条目
79
+ if (broken.length > 0) {
80
+ _compensateBrokenEntries(entries, broken);
81
+ }
82
+
83
+ return entries;
84
+ }
85
+
86
+ /**
87
+ * 补偿修复:对断裂的 delta 条目,从后续最近的 checkpoint 中提取完整 messages 回填。
88
+ * checkpoint 包含截至该点的完整历史,可以据此反推之前条目的 messages。
89
+ */
90
+ function _compensateBrokenEntries(entries, brokenIndices) {
91
+ for (const brokenIdx of brokenIndices) {
92
+ const brokenEntry = entries[brokenIdx];
93
+ const expectedCount = brokenEntry._totalMessageCount;
94
+ if (!expectedCount) continue;
95
+
96
+ // 向后查找最近的 checkpoint 或旧格式全量条目
97
+ for (let j = brokenIdx + 1; j < entries.length; j++) {
98
+ const candidate = entries[j];
99
+ if (!candidate.mainAgent || !Array.isArray(candidate.body?.messages)) continue;
100
+
101
+ const candidateMsgs = candidate.body.messages;
102
+ const candidateTotal = candidate._totalMessageCount || candidateMsgs.length;
103
+
104
+ // 候选条目必须是 checkpoint/旧格式且包含足够的 messages
105
+ const isFullEntry = !candidate._deltaFormat || isCheckpointEntry(candidate);
106
+ if (isFullEntry && candidateTotal >= expectedCount) {
107
+ // 从完整 messages 中截取前 expectedCount 条作为补偿
108
+ brokenEntry.body.messages = candidateMsgs.slice(0, expectedCount);
109
+ break;
110
+ }
111
+ }
112
+ }
113
+ }
114
+
115
+ /**
116
+ * 创建有状态的增量重建器 — 用于 watcher 逐条重建。
117
+ * 每次调用 reconstruct(entry) 处理一条新条目。
118
+ *
119
+ * @returns {{ reconstruct: (entry: object) => object }}
120
+ */
121
+ export function createIncrementalReconstructor() {
122
+ let accumulated = []; // mainAgent 累积 messages
123
+
124
+ return {
125
+ /**
126
+ * 重建单条条目。
127
+ * - 非 delta 条目:如果是 mainAgent 旧格式,更新累积状态,原样返回
128
+ * - checkpoint:重置累积状态,原样返回
129
+ * - delta:拼接重建,修改 body.messages 后返回
130
+ *
131
+ * @param {object} entry - 单条日志条目
132
+ * @returns {object} 重建后的条目(同一引用)
133
+ */
134
+ reconstruct(entry) {
135
+ // 跳过 inProgress 条目:它会被同一请求的 completed 条目覆盖,
136
+ // 如果两者都处理会导致 accumulated 重复拼接相同的 delta
137
+ if (entry.inProgress) return entry;
138
+
139
+ if (!isDeltaEntry(entry)) {
140
+ // 非 delta 条目:如果是 mainAgent 旧格式,更新累积状态
141
+ if (entry.mainAgent && Array.isArray(entry.body?.messages)) {
142
+ accumulated = [...entry.body.messages];
143
+ }
144
+ return entry;
145
+ }
146
+
147
+ const msgs = entry.body?.messages;
148
+ if (!Array.isArray(msgs)) return entry;
149
+
150
+ if (isCheckpointEntry(entry)) {
151
+ // checkpoint:重置累积状态
152
+ accumulated = [...msgs];
153
+ } else {
154
+ // delta:拼接
155
+ accumulated = [...accumulated, ...msgs];
156
+ entry.body.messages = accumulated;
157
+ }
158
+
159
+ return entry;
160
+ },
161
+
162
+ /**
163
+ * 重置累积状态(用于 full_reload 等场景)。
164
+ */
165
+ reset() {
166
+ accumulated = [];
167
+ }
168
+ };
169
+ }
@@ -201,7 +201,9 @@ export function migrateConversationContext(oldFile, newFile) {
201
201
  const entry = JSON.parse(parts[i]);
202
202
  if (entry.mainAgent) {
203
203
  const msgs = entry.body?.messages;
204
- if (Array.isArray(msgs) && msgs.length === 1) {
204
+ // Delta storage: 使用 _totalMessageCount(delta 条目)或 msgs.length(旧格式)
205
+ const msgCount = entry._totalMessageCount || (Array.isArray(msgs) ? msgs.length : 0);
206
+ if (msgCount === 1) {
205
207
  originIndex = i;
206
208
  break;
207
209
  }
@@ -236,3 +238,27 @@ export function migrateConversationContext(oldFile, newFile) {
236
238
  }
237
239
  } catch { }
238
240
  }
241
+
242
+ /**
243
+ * Rotate log file when it exceeds maxSize.
244
+ * Creates an empty new file (no content migration) and appends '\n' to old file
245
+ * to trigger fs.watchFile callback for watcher migration.
246
+ *
247
+ * @param {string} currentFile - current log file path
248
+ * @param {string} newFile - new log file path to rotate to
249
+ * @param {number} maxSize - max file size in bytes
250
+ * @returns {{ rotated: boolean, oldFile?: string, newFile?: string }}
251
+ */
252
+ export function rotateLogFile(currentFile, newFile, maxSize) {
253
+ try {
254
+ if (!existsSync(currentFile)) return { rotated: false };
255
+ const size = statSync(currentFile).size;
256
+ if (size < maxSize) return { rotated: false };
257
+ // 不迁移旧内容,创建空新文件(立即创建,避免 watcher 时序窗口)
258
+ try { writeFileSync(newFile, ''); } catch { }
259
+ // 触发旧文件 watcher 回调,使其检测到文件变更并切换到新文件
260
+ try { appendFileSync(currentFile, '\n'); } catch { }
261
+ return { rotated: true, oldFile: currentFile, newFile };
262
+ } catch { }
263
+ return { rotated: false };
264
+ }