cc-viewer 1.3.6 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ body{margin:0;background-color:#0d0d0d}*{scrollbar-width:thin;scrollbar-color:#3a3a3a #0d0d0d}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:#0d0d0d}*::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:#555}.diff-view{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px}.diff-line-del{background:#ef444426;color:#fca5a5;padding:0 4px}.diff-line-add{background:#22c55e26;color:#86efac;padding:0 4px}.code-highlight{color:#e6edf3}.hl-keyword{color:#ff7b72}.hl-string{color:#a5d6ff}.hl-comment{color:#8b949e;font-style:italic}.hl-number{color:#79c0ff}.hl-linenum{color:#484f58;-webkit-user-select:none;user-select:none}.chat-md pre{background:#0d1117;border:1px solid #2a2a2a;border-radius:6px;padding:12px;overflow-x:auto;font-size:13px;line-height:1.5}.chat-md code{background:#1a1a2e;padding:2px 6px;border-radius:4px;font-size:13px;color:#e5e7eb}.chat-md pre code{background:none;padding:0}.chat-md p{margin:6px 0}.chat-md ul,.chat-md ol{padding-left:20px;margin:6px 0}.chat-md li{margin:2px 0}.chat-md h1,.chat-md h2,.chat-md h3{margin:12px 0 6px;color:#fff}.chat-md h1{font-size:1.3em}.chat-md h2{font-size:1.15em}.chat-md h3{font-size:1.05em}.chat-md blockquote{border-left:3px solid #3b82f6;margin:8px 0;padding:4px 12px;color:#9ca3af}.chat-md table{border-collapse:collapse;margin:8px 0;font-size:13px}.chat-md th,.chat-md td{border:1px solid #2a2a2a;padding:6px 10px}.chat-md th{background:#1a1a1a;color:#fff}.chat-md a{color:#60a5fa}.chat-md hr{border:none;border-top:1px solid #2a2a2a;margin:12px 0}.chat-md strong{color:#f1f5f9}.chat-md em{color:#cbd5e1}.ant-tooltip .ant-tooltip-inner{background-color:#090909}.ant-tooltip .ant-tooltip-arrow:before,.ant-tooltip .ant-tooltip-arrow:after{background:#090909}._helpBtn_cvsqb_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_cvsqb_1:hover{background:#333}._modalBody_cvsqb_24{max-height:60vh;overflow-y:auto;line-height:1.7}._modalBody_cvsqb_24 h1,._modalBody_cvsqb_24 h2,._modalBody_cvsqb_24 h3{margin-top:.8em}._modalBody_cvsqb_24 p{margin:.5em 0}._modalBody_cvsqb_24 code{background:#2a2a2a;padding:1px 4px;border-radius:3px;font-size:.9em}._modalBody_cvsqb_24 pre{background:#1a1a1a;padding:12px;border-radius:6px;overflow-x:auto}._spinWrap_cvsqb_54{display:flex;justify-content:center;padding:40px 0}._modalBody_cvsqb_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}._headerBar_1ata5_2{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}._titleText_1ata5_11{color:#fff;font-size:18px;cursor:pointer}._logoImage_1ata5_17{height:24px;width:24px;margin-right:6px;border-radius:3px;vertical-align:text-bottom}._titleArrow_1ata5_25{font-size:12px;margin-left:4px}._tokenStatsTag_1ata5_31{border-radius:12px;cursor:pointer;background:#2a2a2a;border:1px solid #3a3a3a;color:#ccc}._tokenStatsIcon_1ata5_39{margin-right:4px}._liveTag_1ata5_44{border-radius:12px}._liveDotWrap_1ata5_48{display:inline-flex;align-items:center;justify-content:center;width:10px;height:10px;vertical-align:middle;margin-right:2px;position:relative;top:-1px}._liveTag_1ata5_44 .ant-badge-status-processing{animation:_breathe_1ata5_1 2.5s ease-in-out infinite}@keyframes _breathe_1ata5_1{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}._liveSpinner_1ata5_70{display:block;animation:_spinPlusStar_1ata5_1 2s linear infinite}._liveSpinnerDiag_1ata5_75{animation:_diagFade_1ata5_1 2s ease-in-out infinite}@keyframes _spinPlusStar_1ata5_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _diagFade_1ata5_1{0%,to{opacity:1}50%{opacity:0}}._inflightList_1ata5_90{min-width:180px}._inflightItem_1ata5_94{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px}._inflightItem_1ata5_94+._inflightItem_1ata5_94{border-top:1px solid #333}._inflightTag_1ata5_106{color:#52c41a;font-weight:500;white-space:nowrap}._inflightModel_1ata5_112{color:#999;white-space:nowrap}._inflightTime_1ata5_117{color:#666;margin-left:auto;white-space:nowrap}._liveTagHistory_1ata5_123{background:#2a2a2a;border-color:#424242;color:#d1d5db}._liveTagText_1ata5_129{margin-left:4px}._countdownStrong_1ata5_134{font-variant-numeric:tabular-nums}._langSelector_1ata5_139,._settingsBtn_1ata5_150{color:#888;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #555;border-radius:4px;padding:2px 8px}._settingsBtn_1ata5_150:hover{color:#bbb;border-color:#777}._settingsItem_1ata5_166{display:flex;justify-content:space-between;align-items:center;padding:12px 0}._settingsLabel_1ata5_173{font-size:14px}._tokenStatsEmpty_1ata5_178{padding:8px 4px;color:#999;font-size:13px}._tokenStatsContainer_1ata5_185{display:flex;gap:12px;align-items:flex-start}._tokenStatsColumn_1ata5_191{min-width:240px}._toolStatsColumn_1ata5_195{min-width:180px}._modelCard_1ata5_200{border:1px solid #333;border-radius:6px;padding:8px 10px;background:#111}._modelCardSpaced_1ata5_207{margin-bottom:10px}._modelName_1ata5_213{font-size:13px;font-weight:600;color:#e5e5e5;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._statsTable_1ata5_223{width:100%;border-collapse:collapse}._th_1ata5_228{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#888;font-weight:400;text-align:right}._td_1ata5_238{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#e5e5e5;text-align:right}._label_1ata5_247{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#aaa;font-weight:400;text-align:left}._rowBorder_1ata5_257{border-bottom:1px solid #2a2a2a}._rebuildCard_1ata5_261{border:1px solid #333;border-radius:6px;padding:8px 10px;margin-top:10px;background:#111}._rebuildTotalRow_1ata5_269{border-top:1px solid #444}._rebuildTotalRow_1ata5_269 td{font-weight:600}._promptExportBar_1ata5_278{margin-bottom:12px}._promptScrollArea_1ata5_282{max-height:500px;overflow:auto}._promptEmpty_1ata5_287{color:#999;padding:12px}._promptTimestamp_1ata5_293{color:#666;font-size:12px;margin:12px 0 4px;padding-bottom:6px}._textPromptCard_1ata5_301{margin:4px 0;background:#141414;border-radius:6px;border:1px solid #303030;padding:10px 14px}._preText_1ata5_310{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:#d9d9d9;margin:4px 0}._systemCollapse_1ata5_320{margin:4px 0;background:#1a1a1a;border:1px solid #303030;border-radius:6px}._systemLabel_1ata5_327{color:#888;font-size:12px}._preSys_1ata5_332{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#999;margin:0}._promptTextarea_1ata5_342{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_1ata5_358{display:flex;justify-content:center;padding:40px 0}._projectStatsEmpty_1ata5_364{color:#999;padding:40px 0;text-align:center;font-size:13px}._projectStatsContent_1ata5_371{display:flex;flex-direction:column;gap:16px}._projectStatsUpdated_1ata5_377{color:#666;font-size:12px;text-align:right}._projectStatsSummary_1ata5_383{display:grid;grid-template-columns:1fr 1fr;gap:10px}._projectStatCard_1ata5_389{background:#111;border:1px solid #333;border-radius:8px;padding:14px 12px;text-align:center}._projectStatValue_1ata5_397{font-size:22px;font-weight:700;color:#e5e5e5;font-family:monospace;font-variant-numeric:tabular-nums}._projectStatLabel_1ata5_405{font-size:12px;color:#888;margin-top:4px}._projectStatsSection_1ata5_411{display:flex;flex-direction:column;gap:10px}._projectStatsSectionTitle_1ata5_417{font-size:14px;font-weight:600;color:#ccc;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelCard_1ata5_425{background:#111;border:1px solid #333;border-radius:6px;padding:10px 12px}._projectStatsModelHeader_1ata5_432{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelName_1ata5_441{font-size:13px;font-weight:600;color:#e5e5e5}._projectStatsModelCount_1ata5_447{font-size:12px;color:#888;font-family:monospace}._centerEmpty_ckz8l_1{display:flex;align-items:center;justify-content:center;height:100%}._scrollContainer_ckz8l_8{overflow:auto;height:100%}._listItem_ckz8l_13{cursor:pointer;padding:8px 12px;border-left:3px solid transparent;border-bottom:1px solid #1f1f1f;transition:background .15s}._listItem_ckz8l_13:hover{background:#151515}._listItemActive_ckz8l_25{background:#1a2332;border-left-color:#3b82f6}._listItemActive_ckz8l_25:hover{background:#1a2332}._itemContent_ckz8l_34{width:100%;min-width:0}._itemHeader_ckz8l_39{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}._tagNoMargin_ckz8l_47{margin:0;font-size:12px}._modelName_ckz8l_52{font-size:12px}._time_ckz8l_56{font-size:12px;color:#6b7280;margin-left:auto}._detailRow_ckz8l_62{display:flex;gap:8px;font-size:12px;align-items:center}._urlText_ckz8l_69{color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}._duration_ckz8l_78{color:#6b7280;flex-shrink:0}._statusOk_ckz8l_83{color:#52c41a;opacity:.5;flex-shrink:0}._statusErr_ckz8l_89{color:#ef4444;flex-shrink:0}._statusDefault_ckz8l_94{color:#9ca3af;flex-shrink:0}._usageBox_ckz8l_99{background:#111;border-radius:4px;padding:3px 6px;margin-top:4px;font-size:12px;color:#6b7280;line-height:1.6}._cacheDot_ckz8l_109{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 3px;vertical-align:middle}._cacheDotLoss_ckz8l_118{background-color:#8b1a1a;cursor:help}._cacheDotNormal_ckz8l_123{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}._container_y3z3z_1{height:100%;overflow:auto;padding:0 16px}._emptyState_y3z3z_7{display:flex;align-items:center;justify-content:center;height:100%}._urlSection_y3z3z_14{padding:12px 0;border-bottom:1px solid #1f1f1f;display:flex;align-items:flex-start}._urlLeft_y3z3z_21{flex:1;min-width:0}._tokenStatsBox_y3z3z_26{flex-shrink:0;padding-left:12px;display:flex;align-items:center}._tokenGrid_y3z3z_33{display:flex;border:1px solid #303030;border-radius:6px;overflow:hidden;min-width:360px;font-size:11px;line-height:1.6}._tokenRows_y3z3z_43{flex:1}._tokenRow_y3z3z_43{display:flex}._tokenRowBorder_y3z3z_51{border-top:1px solid #303030}._tokenLabel_y3z3z_55{color:#888;padding:4px 8px;white-space:nowrap;font-weight:600}._tokenTd_y3z3z_62{flex:1;color:#d1d5db;text-align:right;padding:4px 8px;font-family:monospace;white-space:nowrap}._tokenHitRate_y3z3z_71{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_y3z3z_84{color:#888;font-size:10px;font-family:sans-serif}._tokenRowBorder_y3z3z_51 td{border-top:1px solid #303030}._urlText_y3z3z_94{color:#d1d5db;font-size:13px;margin-bottom:8px;word-break:break-all}._metaText_y3z3z_101,._headersContainer_y3z3z_105{font-size:12px}._headerRow_y3z3z_109{display:flex;padding:4px 0;border-bottom:1px solid #1f1f1f}._headerKey_y3z3z_115{min-width:200px;flex-shrink:0}._headerValue_y3z3z_120{word-break:break-all;margin-left:8px}._streamingBox_y3z3z_125{padding:20px;background:#1a1a1a;border-radius:6px;border:1px solid #2a2a2a}._bodyToolbar_y3z3z_132{display:flex;gap:8px;margin-bottom:8px}._rawTextPre_y3z3z_138{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_y3z3z_151{padding:12px 0}._collapseSpacing_y3z3z_155{margin-bottom:16px}._bodyLabel_y3z3z_159{margin:0}._bodyHeader_y3z3z_163{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}._diffSection_y3z3z_170{margin-bottom:16px}._diffToggle_y3z3z_174{display:inline-block;margin-bottom:8px;cursor:pointer}._diffIcon_y3z3z_180{font-size:12px;margin-left:4px}._viewInChatBtn_y3z3z_185{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_y3z3z_185:hover{border-color:#666;color:#d1d5db;background:#ffffff0f}._reminderSelect_y3z3z_206{min-width:140px;font-size:12px}._reminderSelect_y3z3z_206 .ant-select-selector{border-radius:2px!important;border-color:#424242!important;background:transparent!important;min-height:26px!important;height:auto!important;padding:0 8px!important;font-family:monospace}._reminderSelect_y3z3z_206 .ant-select-selection-placeholder{font-size:11px}._wrapper_1o255_1{margin:6px 0}._header_1o255_5{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}._filePath_1o255_12{color:#a78bfa;font-size:12px;font-weight:600}._toggle_1o255_18{color:#6b7280;font-size:11px;cursor:pointer;-webkit-user-select:none;user-select:none}._code_1o255_25{margin:0;font-size:12px;line-height:1.5;overflow:auto}._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}._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)}}._avatar_c2gb9_3{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}._avatarImg_c2gb9_13{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}._bubble_c2gb9_21{border-radius:8px;padding:10px 14px;max-width:100%;font-size:14px;line-height:1.6;word-break:break-word}._messageRow_c2gb9_32{display:flex;gap:10px;padding:8px 0}._messageRowEnd_c2gb9_38{display:flex;gap:10px;padding:8px 0;justify-content:flex-end}._contentCol_c2gb9_47{min-width:0;flex:1}._contentColLimited_c2gb9_52{min-width:0;max-width:80%;width:fit-content}._labelRow_c2gb9_60{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._labelRowEnd_c2gb9_67{display:flex;justify-content:flex-end;align-items:center;margin-bottom:2px}._labelRight_c2gb9_74{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}._labelText_c2gb9_82{font-size:11px}._timeText_c2gb9_86,._timeTextNoMargin_c2gb9_92{font-size:10px;color:#6b7280;flex-shrink:0}._labelTextRight_c2gb9_98{font-size:11px;margin-left:auto}._bubbleUser_c2gb9_105{background:#1668dc;color:#e5e7eb}._bubbleAssistant_c2gb9_111{background:#141414;color:#e5e7eb;transition:box-shadow 0s;position:relative}._bubbleHighlight_c2gb9_119{box-shadow:0 0 10px #1668dc99}._bubbleHighlightFading_c2gb9_123{box-shadow:0 0 10px #1668dc00;transition:box-shadow 5s ease-out}._borderSvg_c2gb9_128{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgFading_c2gb9_137{opacity:0;transition:opacity 5s ease-out}._borderRect_c2gb9_142{animation:_dashRotate_c2gb9_1 4s linear infinite}@keyframes _dashRotate_c2gb9_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._bubblePlan_c2gb9_151{background:#141428;border:5px solid #1668dc;font-size:12px;color:#e5e7eb}._bubbleSubAgent_c2gb9_159{background:#1a1a2e;color:#e5e7eb}._bubbleSelection_c2gb9_165{background:#1a3a1a;color:#e5e7eb}._systemTagLabel_c2gb9_173{font-size:12px}._skillLabel_c2gb9_177{font-size:12px;color:#a78bfa}._systemTagPre_c2gb9_182{font-size:12px;color:#9ca3af;white-space:pre-wrap;word-break:break-all;margin:0}._collapseMargin_c2gb9_190{margin:4px 0}._collapseNoMargin_c2gb9_194{margin:0}._thinkingLabel_c2gb9_200{font-size:12px}._toolBox_c2gb9_206{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._toolLabel_c2gb9_215{color:#a78bfa}._codePre_c2gb9_221{font-size:12px;margin:4px 0 0;white-space:pre-wrap;word-break:break-all;background:#0d1117;border-radius:4px;padding:6px 8px}._pathTag_c2gb9_233{color:#7dd3fc;font-size:11px}._descSpan_c2gb9_240{color:#6b7280;font-weight:400}._secondarySpan_c2gb9_245{color:#6b7280}._patternSpan_c2gb9_249{color:#fbbf24}._kvContainer_c2gb9_255{margin-top:4px;font-size:11px}._kvItem_c2gb9_260{margin:2px 0}._kvKey_c2gb9_264{color:#7dd3fc}._kvValue_c2gb9_268{color:#9ca3af}._toolResult_c2gb9_274{background:#111827;border:1px solid #1e293b;border-radius:6px;padding:6px 10px;margin:2px 0 6px;font-size:11px}._toolResultLabel_c2gb9_283{font-size:11px}._compactLabel_c2gb9_289{font-size:12px;color:#93c5fd}._compactPre_c2gb9_294{font-size:12px;color:#d1d5db;white-space:pre-wrap;word-break:break-all;margin:0}._viewRequestBtn_c2gb9_304{font-size:10px;color:#555;cursor:pointer;margin-left:6px;flex-shrink:0}._viewRequestBtn_c2gb9_304:hover{color:#93c5fd}._optionList_c2gb9_318{padding-left:8px}._optionDesc_c2gb9_322{color:#555;margin-left:6px;font-weight:400}._questionText_c2gb9_330{font-size:13px;color:#ccc;margin-bottom:4px}._questionSpacing_c2gb9_336{margin-bottom:10px}._option_c2gb9_318{font-size:12px;padding:1px 0}._centerEmpty_1j3v3_1{display:flex;align-items:center;justify-content:center;height:100%}._container_1j3v3_8{height:100%;overflow:auto;padding:16px 24px;display:flex;flex-direction:column}._sessionDividerText_1j3v3_16{font-size:11px;color:#555}._lastResponseLabel_1j3v3_21{font-size:11px}._resizer_yamj2_1{width:6px;cursor:col-resize;background:#1f1f1f;flex-shrink:0;transition:background .2s}._resizer_yamj2_1:hover{background:#3b82f6}._layout_16uf8_1{height:100vh;overflow:hidden}._header_16uf8_6{background:#111;border-bottom:1px solid #1f1f1f;padding:0 24px;height:60px;line-height:60px}._content_16uf8_14{flex:1;overflow:hidden}._mainContainer_16uf8_19{display:flex;height:100%}._leftPanel_16uf8_24{flex-shrink:0;border-right:1px solid #1f1f1f;display:flex;flex-direction:column;background:#0a0a0a}._leftPanelHeader_16uf8_32{padding:10px 16px;border-bottom:1px solid #1f1f1f;font-size:13px;color:#9ca3af;font-weight:500;display:flex;justify-content:space-between;align-items:center}._leftPanelCount_16uf8_43{font-size:12px;color:#555;font-weight:400}._leftPanelBody_16uf8_49{flex:1;overflow:hidden}._rightPanel_16uf8_54{flex:1;overflow:hidden;background:#0d0d0d}._modalActions_16uf8_60{margin-bottom:12px}._spinCenter_16uf8_64{text-align:center;padding:40px}._emptyCenter_16uf8_69{text-align:center;color:#999;padding:40px}._logCheckbox_16uf8_75{margin-right:8px}._logListContainer_16uf8_79{background:#0d0d0d;border-radius:8px;overflow:hidden}._logListItem_16uf8_85{cursor:pointer;padding:8px 12px;border-bottom:1px solid #222}._logItemRow_16uf8_91{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap;gap:12px}._logItemRow_16uf8_91>span:first-child{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden}._logFileName_16uf8_108{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._logItemRow_16uf8_91>span:last-child{display:flex;align-items:center;flex-shrink:0;gap:8px}._logFileIcon_16uf8_121{margin-right:8px;color:#3b82f6;flex-shrink:0}._loadingOverlay_16uf8_127{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999}._loadingText_16uf8_140{color:#fff;font-size:16px;font-weight:700}._footer_16uf8_146{height:18px;background:#000;display:flex;align-items:center;justify-content:flex-end;padding:0 12px;flex-shrink:0}._footerRight_16uf8_156{display:flex;align-items:center;gap:6px;font-size:11px;color:#555}._footerLink_16uf8_164{display:inline-flex;align-items:center;gap:3px;color:#555;text-decoration:none}._footerLink_16uf8_164:hover{color:#888}._footerIcon_16uf8_176{width:12px;height:12px}._footerDivider_16uf8_181{color:#333}._footerText_16uf8_185{color:#555}._guideContainer_16uf8_189{display:flex;align-items:center;justify-content:center;height:100%;background:#0a0a0a}._guideContent_16uf8_197{max-width:560px;padding:40px}._guideIcon_16uf8_202{margin-bottom:20px;opacity:.6}._guideTitle_16uf8_207{font-size:20px;font-weight:600;color:#e0e0e0;margin:0 0 28px}._guideStep_16uf8_214{display:flex;gap:14px;margin-bottom:22px}._guideStepNum_16uf8_220{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:#1a1a2e;color:#7c8aff;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;margin-top:1px}._guideStepBody_16uf8_235{flex:1;min-width:0}._guideText_16uf8_240{color:#aaa;font-size:14px;line-height:1.6;margin:0 0 8px}._guideCode_16uf8_247{display:block;background:#141414;border:1px solid #252525;border-radius:6px;padding:10px 14px;color:#8b9cf7;font-size:13px;line-height:1.5;word-break:break-all;white-space:pre-wrap}
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-CyQGlRiR.js"></script>
10
- <link rel="stylesheet" crossorigin href="/assets/index-BF9IACDI.css">
9
+ <script type="module" crossorigin src="/assets/index-D3R8xYSC.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-DmF5H2KN.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
package/interceptor.js CHANGED
@@ -496,6 +496,13 @@ export function setupInterceptor() {
496
496
  }
497
497
  }
498
498
 
499
+ // 在发起请求前先写入一条无 response 的条目,让前端可以检测在途请求
500
+ if (requestEntry) {
501
+ try {
502
+ appendFileSync(LOG_FILE, JSON.stringify(requestEntry, null, 2) + '\n---\n');
503
+ } catch { }
504
+ }
505
+
499
506
  const response = await _originalFetch.apply(this, arguments);
500
507
 
501
508
  if (requestEntry) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-viewer",
3
- "version": "1.3.6",
3
+ "version": "1.3.8",
4
4
  "description": "Claude Code Logger visualization management tool",
5
5
  "license": "MIT",
6
6
  "main": "server.js",
package/server.js CHANGED
@@ -103,13 +103,20 @@ function readLogFile() {
103
103
  try {
104
104
  const content = readFileSync(LOG_FILE, 'utf-8');
105
105
  const entries = content.split('\n---\n').filter(line => line.trim());
106
- return entries.map(entry => {
106
+ const parsed = entries.map(entry => {
107
107
  try {
108
108
  return JSON.parse(entry);
109
109
  } catch {
110
110
  return null;
111
111
  }
112
112
  }).filter(Boolean);
113
+ // 去重:同一 timestamp+url 的条目,后出现的(带 response)覆盖先出现的(在途)
114
+ const map = new Map();
115
+ for (const entry of parsed) {
116
+ const key = `${entry.timestamp}|${entry.url}`;
117
+ map.set(key, entry);
118
+ }
119
+ return Array.from(map.values());
113
120
  } catch (err) {
114
121
  console.error('Error reading log file:', err);
115
122
  return [];
@@ -504,14 +511,23 @@ function handleRequest(req, res) {
504
511
  .filter(f => f.endsWith('.jsonl'))
505
512
  .sort()
506
513
  .reverse();
514
+ // 从项目统计缓存中读取 per-file 数据,避免逐文件扫描
515
+ let statsFiles = null;
516
+ try {
517
+ const statsFile = join(projectDir, `${project}.json`);
518
+ if (existsSync(statsFile)) {
519
+ statsFiles = JSON.parse(readFileSync(statsFile, 'utf-8')).files;
520
+ }
521
+ } catch { }
507
522
  for (const f of files) {
508
523
  const match = f.match(/^(.+?)_(\d{8}_\d{6})\.jsonl$/);
509
524
  if (!match) continue;
510
525
  const ts = match[2];
511
526
  const filePath = join(projectDir, f);
512
527
  const size = statSync(filePath).size;
528
+ const turns = statsFiles?.[f]?.summary?.sessionCount || 0;
513
529
  if (!grouped[project]) grouped[project] = [];
514
- grouped[project].push({ file: `${project}/${f}`, timestamp: ts, size });
530
+ grouped[project].push({ file: `${project}/${f}`, timestamp: ts, size, turns });
515
531
  }
516
532
  }
517
533
  }
@@ -1 +0,0 @@
1
- body{margin:0;background-color:#0d0d0d}*{scrollbar-width:thin;scrollbar-color:#3a3a3a #0d0d0d}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:#0d0d0d}*::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:#555}.diff-view{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px}.diff-line-del{background:#ef444426;color:#fca5a5;padding:0 4px}.diff-line-add{background:#22c55e26;color:#86efac;padding:0 4px}.code-highlight{color:#e6edf3}.hl-keyword{color:#ff7b72}.hl-string{color:#a5d6ff}.hl-comment{color:#8b949e;font-style:italic}.hl-number{color:#79c0ff}.hl-linenum{color:#484f58;-webkit-user-select:none;user-select:none}.chat-md pre{background:#0d1117;border:1px solid #2a2a2a;border-radius:6px;padding:12px;overflow-x:auto;font-size:13px;line-height:1.5}.chat-md code{background:#1a1a2e;padding:2px 6px;border-radius:4px;font-size:13px;color:#e5e7eb}.chat-md pre code{background:none;padding:0}.chat-md p{margin:6px 0}.chat-md ul,.chat-md ol{padding-left:20px;margin:6px 0}.chat-md li{margin:2px 0}.chat-md h1,.chat-md h2,.chat-md h3{margin:12px 0 6px;color:#fff}.chat-md h1{font-size:1.3em}.chat-md h2{font-size:1.15em}.chat-md h3{font-size:1.05em}.chat-md blockquote{border-left:3px solid #3b82f6;margin:8px 0;padding:4px 12px;color:#9ca3af}.chat-md table{border-collapse:collapse;margin:8px 0;font-size:13px}.chat-md th,.chat-md td{border:1px solid #2a2a2a;padding:6px 10px}.chat-md th{background:#1a1a1a;color:#fff}.chat-md a{color:#60a5fa}.chat-md hr{border:none;border-top:1px solid #2a2a2a;margin:12px 0}.chat-md strong{color:#f1f5f9}.chat-md em{color:#cbd5e1}._helpBtn_cvsqb_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_cvsqb_1:hover{background:#333}._modalBody_cvsqb_24{max-height:60vh;overflow-y:auto;line-height:1.7}._modalBody_cvsqb_24 h1,._modalBody_cvsqb_24 h2,._modalBody_cvsqb_24 h3{margin-top:.8em}._modalBody_cvsqb_24 p{margin:.5em 0}._modalBody_cvsqb_24 code{background:#2a2a2a;padding:1px 4px;border-radius:3px;font-size:.9em}._modalBody_cvsqb_24 pre{background:#1a1a1a;padding:12px;border-radius:6px;overflow-x:auto}._spinWrap_cvsqb_54{display:flex;justify-content:center;padding:40px 0}._modalBody_cvsqb_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}._headerBar_19oju_2{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}._titleText_19oju_11{color:#fff;font-size:18px;cursor:pointer}._logoImage_19oju_17{height:24px;width:24px;margin-right:6px;border-radius:3px;vertical-align:text-bottom}._titleArrow_19oju_25{font-size:12px;margin-left:4px}._tokenStatsTag_19oju_31{border-radius:12px;cursor:pointer;background:#2a2a2a;border:1px solid #3a3a3a;color:#ccc}._tokenStatsIcon_19oju_39{margin-right:4px}._liveTag_19oju_44{border-radius:12px}._liveTag_19oju_44 .ant-badge-status-processing{animation:_breathe_19oju_1 2.5s ease-in-out infinite}@keyframes _breathe_19oju_1{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}._liveTagHistory_19oju_57{background:#2a2a2a;border-color:#424242;color:#d1d5db}._liveTagText_19oju_63{margin-left:4px}._countdownStrong_19oju_68{font-variant-numeric:tabular-nums}._langSelector_19oju_73,._settingsBtn_19oju_84{color:#888;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #555;border-radius:4px;padding:2px 8px}._settingsBtn_19oju_84:hover{color:#bbb;border-color:#777}._settingsItem_19oju_100{display:flex;justify-content:space-between;align-items:center;padding:12px 0}._settingsLabel_19oju_107{font-size:14px}._tokenStatsEmpty_19oju_112{padding:8px 4px;color:#999;font-size:13px}._tokenStatsContainer_19oju_119{display:flex;gap:12px;align-items:flex-start}._tokenStatsColumn_19oju_125{min-width:240px}._toolStatsColumn_19oju_129{min-width:180px}._modelCard_19oju_134{border:1px solid #333;border-radius:6px;padding:8px 10px;background:#111}._modelCardSpaced_19oju_141{margin-bottom:10px}._modelName_19oju_147{font-size:13px;font-weight:600;color:#e5e5e5;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._statsTable_19oju_157{width:100%;border-collapse:collapse}._th_19oju_162{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#888;font-weight:400;text-align:right}._td_19oju_172{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#e5e5e5;text-align:right}._label_19oju_181{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#aaa;font-weight:400;text-align:left}._rowBorder_19oju_191{border-bottom:1px solid #2a2a2a}._rebuildCard_19oju_195{border:1px solid #333;border-radius:6px;padding:8px 10px;margin-top:10px;background:#111}._rebuildTotalRow_19oju_203{border-top:1px solid #444}._rebuildTotalRow_19oju_203 td{font-weight:600}._promptExportBar_19oju_212{margin-bottom:12px}._promptScrollArea_19oju_216{max-height:500px;overflow:auto}._promptEmpty_19oju_221{color:#999;padding:12px}._promptTimestamp_19oju_227{color:#666;font-size:12px;margin:12px 0 4px;padding-bottom:6px}._textPromptCard_19oju_235{margin:4px 0;background:#141414;border-radius:6px;border:1px solid #303030;padding:10px 14px}._preText_19oju_244{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:#d9d9d9;margin:4px 0}._systemCollapse_19oju_254{margin:4px 0;background:#1a1a1a;border:1px solid #303030;border-radius:6px}._systemLabel_19oju_261{color:#888;font-size:12px}._preSys_19oju_266{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#999;margin:0}._promptTextarea_19oju_276{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_19oju_292{display:flex;justify-content:center;padding:40px 0}._projectStatsEmpty_19oju_298{color:#999;padding:40px 0;text-align:center;font-size:13px}._projectStatsContent_19oju_305{display:flex;flex-direction:column;gap:16px}._projectStatsUpdated_19oju_311{color:#666;font-size:12px;text-align:right}._projectStatsSummary_19oju_317{display:grid;grid-template-columns:1fr 1fr;gap:10px}._projectStatCard_19oju_323{background:#111;border:1px solid #333;border-radius:8px;padding:14px 12px;text-align:center}._projectStatValue_19oju_331{font-size:22px;font-weight:700;color:#e5e5e5;font-family:monospace;font-variant-numeric:tabular-nums}._projectStatLabel_19oju_339{font-size:12px;color:#888;margin-top:4px}._projectStatsSection_19oju_345{display:flex;flex-direction:column;gap:10px}._projectStatsSectionTitle_19oju_351{font-size:14px;font-weight:600;color:#ccc;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelCard_19oju_359{background:#111;border:1px solid #333;border-radius:6px;padding:10px 12px}._projectStatsModelHeader_19oju_366{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelName_19oju_375{font-size:13px;font-weight:600;color:#e5e5e5}._projectStatsModelCount_19oju_381{font-size:12px;color:#888;font-family:monospace}._centerEmpty_ckz8l_1{display:flex;align-items:center;justify-content:center;height:100%}._scrollContainer_ckz8l_8{overflow:auto;height:100%}._listItem_ckz8l_13{cursor:pointer;padding:8px 12px;border-left:3px solid transparent;border-bottom:1px solid #1f1f1f;transition:background .15s}._listItem_ckz8l_13:hover{background:#151515}._listItemActive_ckz8l_25{background:#1a2332;border-left-color:#3b82f6}._listItemActive_ckz8l_25:hover{background:#1a2332}._itemContent_ckz8l_34{width:100%;min-width:0}._itemHeader_ckz8l_39{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}._tagNoMargin_ckz8l_47{margin:0;font-size:12px}._modelName_ckz8l_52{font-size:12px}._time_ckz8l_56{font-size:12px;color:#6b7280;margin-left:auto}._detailRow_ckz8l_62{display:flex;gap:8px;font-size:12px;align-items:center}._urlText_ckz8l_69{color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}._duration_ckz8l_78{color:#6b7280;flex-shrink:0}._statusOk_ckz8l_83{color:#52c41a;opacity:.5;flex-shrink:0}._statusErr_ckz8l_89{color:#ef4444;flex-shrink:0}._statusDefault_ckz8l_94{color:#9ca3af;flex-shrink:0}._usageBox_ckz8l_99{background:#111;border-radius:4px;padding:3px 6px;margin-top:4px;font-size:12px;color:#6b7280;line-height:1.6}._cacheDot_ckz8l_109{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 3px;vertical-align:middle}._cacheDotLoss_ckz8l_118{background-color:#8b1a1a;cursor:help}._cacheDotNormal_ckz8l_123{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}._container_y3z3z_1{height:100%;overflow:auto;padding:0 16px}._emptyState_y3z3z_7{display:flex;align-items:center;justify-content:center;height:100%}._urlSection_y3z3z_14{padding:12px 0;border-bottom:1px solid #1f1f1f;display:flex;align-items:flex-start}._urlLeft_y3z3z_21{flex:1;min-width:0}._tokenStatsBox_y3z3z_26{flex-shrink:0;padding-left:12px;display:flex;align-items:center}._tokenGrid_y3z3z_33{display:flex;border:1px solid #303030;border-radius:6px;overflow:hidden;min-width:360px;font-size:11px;line-height:1.6}._tokenRows_y3z3z_43{flex:1}._tokenRow_y3z3z_43{display:flex}._tokenRowBorder_y3z3z_51{border-top:1px solid #303030}._tokenLabel_y3z3z_55{color:#888;padding:4px 8px;white-space:nowrap;font-weight:600}._tokenTd_y3z3z_62{flex:1;color:#d1d5db;text-align:right;padding:4px 8px;font-family:monospace;white-space:nowrap}._tokenHitRate_y3z3z_71{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_y3z3z_84{color:#888;font-size:10px;font-family:sans-serif}._tokenRowBorder_y3z3z_51 td{border-top:1px solid #303030}._urlText_y3z3z_94{color:#d1d5db;font-size:13px;margin-bottom:8px;word-break:break-all}._metaText_y3z3z_101,._headersContainer_y3z3z_105{font-size:12px}._headerRow_y3z3z_109{display:flex;padding:4px 0;border-bottom:1px solid #1f1f1f}._headerKey_y3z3z_115{min-width:200px;flex-shrink:0}._headerValue_y3z3z_120{word-break:break-all;margin-left:8px}._streamingBox_y3z3z_125{padding:20px;background:#1a1a1a;border-radius:6px;border:1px solid #2a2a2a}._bodyToolbar_y3z3z_132{display:flex;gap:8px;margin-bottom:8px}._rawTextPre_y3z3z_138{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_y3z3z_151{padding:12px 0}._collapseSpacing_y3z3z_155{margin-bottom:16px}._bodyLabel_y3z3z_159{margin:0}._bodyHeader_y3z3z_163{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}._diffSection_y3z3z_170{margin-bottom:16px}._diffToggle_y3z3z_174{display:inline-block;margin-bottom:8px;cursor:pointer}._diffIcon_y3z3z_180{font-size:12px;margin-left:4px}._viewInChatBtn_y3z3z_185{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_y3z3z_185:hover{border-color:#666;color:#d1d5db;background:#ffffff0f}._reminderSelect_y3z3z_206{min-width:140px;font-size:12px}._reminderSelect_y3z3z_206 .ant-select-selector{border-radius:2px!important;border-color:#424242!important;background:transparent!important;min-height:26px!important;height:auto!important;padding:0 8px!important;font-family:monospace}._reminderSelect_y3z3z_206 .ant-select-selection-placeholder{font-size:11px}._wrapper_1o255_1{margin:6px 0}._header_1o255_5{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}._filePath_1o255_12{color:#a78bfa;font-size:12px;font-weight:600}._toggle_1o255_18{color:#6b7280;font-size:11px;cursor:pointer;-webkit-user-select:none;user-select:none}._code_1o255_25{margin:0;font-size:12px;line-height:1.5;overflow:auto}._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}._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)}}._avatar_1od17_3{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}._avatarImg_1od17_13{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}._bubble_1od17_21{border-radius:8px;padding:10px 14px;max-width:100%;font-size:14px;line-height:1.6;word-break:break-word}._messageRow_1od17_32{display:flex;gap:10px;padding:8px 0}._messageRowEnd_1od17_38{display:flex;gap:10px;padding:8px 0;justify-content:flex-end}._contentCol_1od17_47{min-width:0;flex:1}._contentColLimited_1od17_52{min-width:0;max-width:80%;width:fit-content}._labelRow_1od17_60{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._labelRight_1od17_67{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}._labelText_1od17_75{font-size:11px}._timeText_1od17_79,._timeTextNoMargin_1od17_85{font-size:10px;color:#6b7280;flex-shrink:0}._labelTextRight_1od17_91{font-size:11px;margin-left:auto}._bubbleUser_1od17_98{background:#1668dc;color:#e5e7eb}._bubbleAssistant_1od17_104{background:#141414;color:#e5e7eb;transition:box-shadow 0s;position:relative}._bubbleHighlight_1od17_112{box-shadow:0 0 10px #1668dc99}._bubbleHighlightFading_1od17_116{box-shadow:0 0 10px #1668dc00;transition:box-shadow 5s ease-out}._borderSvg_1od17_121{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgFading_1od17_130{opacity:0;transition:opacity 5s ease-out}._borderRect_1od17_135{animation:_dashRotate_1od17_1 4s linear infinite}@keyframes _dashRotate_1od17_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._bubblePlan_1od17_144{background:#141428;border:5px solid #1668dc;font-size:12px;color:#e5e7eb}._bubbleSubAgent_1od17_152{background:#1a1a2e;color:#e5e7eb}._bubbleSelection_1od17_158{background:#1a3a1a;color:#e5e7eb}._systemTagLabel_1od17_166{font-size:12px}._skillLabel_1od17_170{font-size:12px;color:#a78bfa}._systemTagPre_1od17_175{font-size:12px;color:#9ca3af;white-space:pre-wrap;word-break:break-all;margin:0}._collapseMargin_1od17_183{margin:4px 0}._collapseNoMargin_1od17_187{margin:0}._thinkingLabel_1od17_193{font-size:12px}._toolBox_1od17_199{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._toolLabel_1od17_208{color:#a78bfa}._codePre_1od17_214{font-size:12px;margin:4px 0 0;white-space:pre-wrap;word-break:break-all;background:#0d1117;border-radius:4px;padding:6px 8px}._pathTag_1od17_226{color:#7dd3fc;font-size:11px}._descSpan_1od17_233{color:#6b7280;font-weight:400}._secondarySpan_1od17_238{color:#6b7280}._patternSpan_1od17_242{color:#fbbf24}._kvContainer_1od17_248{margin-top:4px;font-size:11px}._kvItem_1od17_253{margin:2px 0}._kvKey_1od17_257{color:#7dd3fc}._kvValue_1od17_261{color:#9ca3af}._toolResult_1od17_267{background:#111827;border:1px solid #1e293b;border-radius:6px;padding:6px 10px;margin:2px 0 6px;font-size:11px}._toolResultLabel_1od17_276{font-size:11px}._compactLabel_1od17_282{font-size:12px;color:#93c5fd}._compactPre_1od17_287{font-size:12px;color:#d1d5db;white-space:pre-wrap;word-break:break-all;margin:0}._viewRequestBtn_1od17_297{font-size:10px;color:#555;cursor:pointer;margin-left:6px;flex-shrink:0}._viewRequestBtn_1od17_297:hover{color:#93c5fd}._optionList_1od17_311{padding-left:8px}._optionDesc_1od17_315{color:#555;margin-left:6px;font-weight:400}._questionText_1od17_323{font-size:13px;color:#ccc;margin-bottom:4px}._questionSpacing_1od17_329{margin-bottom:10px}._option_1od17_311{font-size:12px;padding:1px 0}._centerEmpty_1j3v3_1{display:flex;align-items:center;justify-content:center;height:100%}._container_1j3v3_8{height:100%;overflow:auto;padding:16px 24px;display:flex;flex-direction:column}._sessionDividerText_1j3v3_16{font-size:11px;color:#555}._lastResponseLabel_1j3v3_21{font-size:11px}._resizer_yamj2_1{width:6px;cursor:col-resize;background:#1f1f1f;flex-shrink:0;transition:background .2s}._resizer_yamj2_1:hover{background:#3b82f6}._layout_16uf8_1{height:100vh;overflow:hidden}._header_16uf8_6{background:#111;border-bottom:1px solid #1f1f1f;padding:0 24px;height:60px;line-height:60px}._content_16uf8_14{flex:1;overflow:hidden}._mainContainer_16uf8_19{display:flex;height:100%}._leftPanel_16uf8_24{flex-shrink:0;border-right:1px solid #1f1f1f;display:flex;flex-direction:column;background:#0a0a0a}._leftPanelHeader_16uf8_32{padding:10px 16px;border-bottom:1px solid #1f1f1f;font-size:13px;color:#9ca3af;font-weight:500;display:flex;justify-content:space-between;align-items:center}._leftPanelCount_16uf8_43{font-size:12px;color:#555;font-weight:400}._leftPanelBody_16uf8_49{flex:1;overflow:hidden}._rightPanel_16uf8_54{flex:1;overflow:hidden;background:#0d0d0d}._modalActions_16uf8_60{margin-bottom:12px}._spinCenter_16uf8_64{text-align:center;padding:40px}._emptyCenter_16uf8_69{text-align:center;color:#999;padding:40px}._logCheckbox_16uf8_75{margin-right:8px}._logListContainer_16uf8_79{background:#0d0d0d;border-radius:8px;overflow:hidden}._logListItem_16uf8_85{cursor:pointer;padding:8px 12px;border-bottom:1px solid #222}._logItemRow_16uf8_91{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap;gap:12px}._logItemRow_16uf8_91>span:first-child{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden}._logFileName_16uf8_108{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._logItemRow_16uf8_91>span:last-child{display:flex;align-items:center;flex-shrink:0;gap:8px}._logFileIcon_16uf8_121{margin-right:8px;color:#3b82f6;flex-shrink:0}._loadingOverlay_16uf8_127{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999}._loadingText_16uf8_140{color:#fff;font-size:16px;font-weight:700}._footer_16uf8_146{height:18px;background:#000;display:flex;align-items:center;justify-content:flex-end;padding:0 12px;flex-shrink:0}._footerRight_16uf8_156{display:flex;align-items:center;gap:6px;font-size:11px;color:#555}._footerLink_16uf8_164{display:inline-flex;align-items:center;gap:3px;color:#555;text-decoration:none}._footerLink_16uf8_164:hover{color:#888}._footerIcon_16uf8_176{width:12px;height:12px}._footerDivider_16uf8_181{color:#333}._footerText_16uf8_185{color:#555}._guideContainer_16uf8_189{display:flex;align-items:center;justify-content:center;height:100%;background:#0a0a0a}._guideContent_16uf8_197{max-width:560px;padding:40px}._guideIcon_16uf8_202{margin-bottom:20px;opacity:.6}._guideTitle_16uf8_207{font-size:20px;font-weight:600;color:#e0e0e0;margin:0 0 28px}._guideStep_16uf8_214{display:flex;gap:14px;margin-bottom:22px}._guideStepNum_16uf8_220{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:#1a1a2e;color:#7c8aff;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;margin-top:1px}._guideStepBody_16uf8_235{flex:1;min-width:0}._guideText_16uf8_240{color:#aaa;font-size:14px;line-height:1.6;margin:0 0 8px}._guideCode_16uf8_247{display:block;background:#141414;border:1px solid #252525;border-radius:6px;padding:10px 14px;color:#8b9cf7;font-size:13px;line-height:1.5;word-break:break-all;white-space:pre-wrap}