cc-viewer 1.5.44 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/concepts/ar/KVCacheContent.md +42 -0
- package/concepts/da/KVCacheContent.md +42 -0
- package/concepts/de/KVCacheContent.md +42 -0
- package/concepts/en/KVCacheContent.md +42 -0
- package/concepts/es/KVCacheContent.md +42 -0
- package/concepts/fr/KVCacheContent.md +42 -0
- package/concepts/it/KVCacheContent.md +42 -0
- package/concepts/ja/KVCacheContent.md +42 -0
- package/concepts/ko/KVCacheContent.md +42 -0
- package/concepts/no/KVCacheContent.md +42 -0
- package/concepts/pl/KVCacheContent.md +42 -0
- package/concepts/pt-BR/KVCacheContent.md +42 -0
- package/concepts/ru/KVCacheContent.md +42 -0
- package/concepts/th/KVCacheContent.md +42 -0
- package/concepts/tr/KVCacheContent.md +42 -0
- package/concepts/uk/KVCacheContent.md +42 -0
- package/concepts/zh/KVCacheContent.md +42 -0
- package/concepts/zh-TW/KVCacheContent.md +42 -0
- package/dist/assets/{index-CKQx61Y7.css → index-BawBkbaU.css} +1 -1
- package/dist/assets/{index-Dp7cYMoT.js → index-D0IRVteu.js} +226 -226
- package/dist/index.html +2 -2
- package/interceptor.js +40 -12
- package/lib/context-watcher.js +7 -3
- package/lib/kv-cache-analyzer.js +155 -0
- package/lib/log-watcher.js +21 -0
- package/package.json +1 -1
- package/server.js +12 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# เนื้อหา KV-Cache
|
|
2
|
+
|
|
3
|
+
## KV-Cache คืออะไร?
|
|
4
|
+
|
|
5
|
+
KV-Cache (Key-Value Cache) เป็นกลไกหลักสำหรับการเร่งความเร็วระหว่างการอนุมานในโมเดลภาษาขนาดใหญ่ เมื่อคุณสนทนากับ Claude ทุกคำขอจะส่งประว��ติการสนทนาทั้งหมด (system prompt + คำจำกัดความเครื่องมือ + ข้อความในอดีต) หากต้องคำนวณทุกอย่างใหม่ทุกครั้ง มันจะใช้เวลานานและมีค่าใช้จ่ายสูง
|
|
6
|
+
|
|
7
|
+
บทบาทของ KV-Cache คือการเก็บเนื้อหาที่คำนวณแล้วไว้ในแคช เพื่อให้สามารถนำกลับมาใช้ใหม่ในคำขอครั้งต่อไป โดยข้ามการคำนวณซ้ำ
|
|
8
|
+
|
|
9
|
+
## วิธีการทำงานของแคช
|
|
10
|
+
|
|
11
|
+
Prompt caching ของ Anthropic รวมคีย์แคชในลำดับคงที่:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
System Prompt → Tools → Messages (จนถึงจุดแบ่งแคช)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
ตราบใดที่คำนำหน้านี้เหมือนกับคำขอก่อนหน้า API จะโจมตีแคช (ส่งกลับ `cache_read_input_tokens`) ซึ่งลดความล่าช้าและค่าใช้จ่ายอย่างมาก
|
|
18
|
+
|
|
19
|
+
## "เนื้อหา KV-Cache ปัจจุบัน" คืออะไร?
|
|
20
|
+
|
|
21
|
+
"เนื้อหา KV-Cache ปัจจุบัน" ที่แสดงใน cc-viewer คือเนื้อหาที่แยกออกมาจากคำขอ MainAgent ล่าสุดและทำเครื่องหมายว่าเป็นเนื้อหาที่แคช โดยเฉพาะรวมถึง:
|
|
22
|
+
|
|
23
|
+
- **System Prompt**: คำแนะนำระบบของ Claude Code รวมถึง CLAUDE.md ของคุณ คำอธิบายโครงการ ข้อมูลสภาพแวดล้อม เป็นต้น
|
|
24
|
+
- **Messages**: ส่วนที่แคชของประวัติการสนทนา (โดยปกติคือข้อความที่เก่ากว่า)
|
|
25
|
+
- **Tools**: รายการคำจำกัดความเครื่องมือที่พร้อมใช้งาน (เช่น Read, Write, Bash, เครื่องมือ MCP เป็นต้น)
|
|
26
|
+
|
|
27
|
+
เนื้อหานี้ถูกทำเครื่องหมายในเนื้อหาของคำขอ API ผ่าน `cache_control: { type: "ephemeral" }` เพื่อระบุขอบเขตแคช
|
|
28
|
+
|
|
29
|
+
## ทำไมต้องดูเนื้อหาแคช?
|
|
30
|
+
|
|
31
|
+
1. **ทำความเข้าใจบริบท**: รู้ว่า Claude "จำ" เนื้อหาใดในปัจจุบัน และช่วยให้คุณประเมินว่าพฤติกรรมนั้นตรงตามที่คาดไว้หรือไม่
|
|
32
|
+
2. **การปรับให้เหมาะสมของต้นทุน**: การโจมตีแคชมีค่าใช้จ่ายน้อยกว่าการคำนวณใหม่มาก การดูเนื้อหาแคชช่วยให้คุณเข้าใจว่าทำไมคำขอบางรายการจึงเรียกใช้การสร้างแคชใหม่
|
|
33
|
+
3. **การแก้ไขข้อบกพร่องในการสนทนา**: เมื่อคำตอบของ Claude ไม่ตรงตามที่คาดไว้ คุณสามารถตรวจสอบเนื้อหาแคชเพื่อยืนยันว่า system prompt และข้อความในอดีตถูกต้อง
|
|
34
|
+
4. **การนำทางคำแนะนำของผู้ใช้**: ผ่านรายการข้อความของผู้ใช้ในเนื้อหาแคช คุณสามารถข้ามไปยังตำแหน่งใดก็ได้ในการสนทนา
|
|
35
|
+
5. **การตรวจสอบคุณภาพบริบท**: ในระหว่างการแก้ไขข้อบกพร่องในแต่ละวัน การเปลี่ยนแปลงการกำหนดค่า Claude Code หรือการปรับ prompt KV-Cache-Text จะให้มุมมองที่เป็นศูนย์กลาง ซึ่งช่วยให้คุณยืนยันอย่างรวดเร็วว่าบริบทหลักไม่ได้เสื่อมลงหรือถูกปนเปื้อนด้วยเนื้อหาที่ไม่คาดคิด—โดยไม่ต้องตรวจสอบข้อความต้นฉบับทีละรายการ
|
|
36
|
+
|
|
37
|
+
## วงจรชีวิตของแคช
|
|
38
|
+
|
|
39
|
+
- **การสร้าง**: ในคำขอแรกหรือหลังจากความล้มเหลวของแคช API จะสร้างแคชใหม่ (`cache_creation_input_tokens`)
|
|
40
|
+
- **การโจมตี**: เมื่อคำขอต่อมามีคำนำหน้าที่สอดคล้องกัน แคชจะถูกนำกลับมาใช้ใหม่ (`cache_read_input_tokens`)
|
|
41
|
+
- **การหมดอายุ**: แคชมี TTL 5 นาที (ระยะเวลาการใช้งาน) และหมดอายุโดยอัตโนมัติหลังจากหมดเวลา
|
|
42
|
+
- **การสร้างใหม่**: เมื่อ system prompt รายการเครื่องมือ โมเดล หรือข้อความเปลี่ยนแปลง คีย์แคชไม่ตรงกัน ซึ่งเรียกใช้การสร้างใหม่
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# KV-Cache İçeriği
|
|
2
|
+
|
|
3
|
+
## KV-Cache Nedir?
|
|
4
|
+
|
|
5
|
+
KV-Cache (Key-Value Cache), büyük dil modellerinin çıkarım sürecinde temel hızlandırma mekanizmasıdır. Claude ile sohbet ettiğinizde, her istek tam konuşma geçmişini (system prompt + araç tanımları + geçmiş mesajlar) gönderir. Her seferinde her şey sıfırdan hesaplansaydı, bu çok zaman alıcı ve pahalı olurdu.
|
|
6
|
+
|
|
7
|
+
KV-Cache'in rolü: zaten hesaplanmış içeriği önbellekte depolamak, böylece bir sonraki istekte yeniden kullanılabilmesi ve tekrarlanan hesaplamaların atlanması.
|
|
8
|
+
|
|
9
|
+
## Önbellek Nasıl Çalışır
|
|
10
|
+
|
|
11
|
+
Anthropic'in prompt caching özelliği, önbellek anahtarlarını sabit bir sırayla birleştirir:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
System Prompt → Tools → Messages (cache breakpoint'e kadar)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Bu önek önceki istekle tamamen aynı olduğu sürece, API önbelleği vurur (`cache_read_input_tokens` döndürür), gecikmeyi ve maliyetleri önemli ölçüde azaltır.
|
|
18
|
+
|
|
19
|
+
## "Mevcut KV-Cache İçeriği" Nedir?
|
|
20
|
+
|
|
21
|
+
cc-viewer'da gösterilen "Mevcut KV-Cache İçeriği", en son MainAgent isteğinden çıkarılan ve önbelleğe alınmış olarak işaretlenen içeriktir. Özellikle şunları içerir:
|
|
22
|
+
|
|
23
|
+
- **System Prompt**: Claude Code'un sistem talimatları, CLAUDE.md'niz, proje açıklaması, ortam bilgisi vb. dahil
|
|
24
|
+
- **Messages**: Konuşma geçmişinin önbelleğe alınan kısmı (genellikle daha eski mesajlar)
|
|
25
|
+
- **Tools**: Mevcut araç tanımlarının listesi (Read, Write, Bash, MCP araçları vb.)
|
|
26
|
+
|
|
27
|
+
Bu içerik, API isteğinin body'sinde `cache_control: { type: "ephemeral" }` aracılığıyla işaretlenerek önbellek sınırını gösterir.
|
|
28
|
+
|
|
29
|
+
## Neden Önbellek İçeriğini Görüntülemelisiniz?
|
|
30
|
+
|
|
31
|
+
1. **Bağlamı Anlama**: Claude'un şu anda "hatırladığı" içeriği bilin ve davranışın beklentilerinize uygun olup olmadığını değerlendirmenize yardımcı olun
|
|
32
|
+
2. **Maliyet Optimizasyonu**: Önbellek isabetleri yeniden hesaplamadan çok daha az maliyetlidir. Önbellek içeriğini görüntülemek, belirli isteklerin neden önbellek yeniden oluşturmayı (cache rebuild) tetiklediğini anlamanıza yardımcı olur
|
|
33
|
+
3. **Konuşma Hata Ayıklama**: Claude'un yanıtı beklentilerinize uymadığında, önbellek içeriğini kontrol ederek system prompt ve geçmiş mesajların doğru olduğunu doğrulayabilirsiniz
|
|
34
|
+
4. **Kullanıcı Talimatı Gezintisi**: Önbellek içeriğindeki kullanıcı mesajları listesi aracılığıyla, konuşmada herhangi bir konuma hızlıca atlayabilirsiniz
|
|
35
|
+
5. **Bağlam Kalitesi İzleme**: Günlük hata ayıklama, Claude Code yapılandırmasını değiştirme veya prompt ayarlama sırasında, KV-Cache-Text merkezi bir bakış açısı sağlar ve temel bağlamın bozulmadığını ya da beklenmedik içerikle kirlenmediğini hızlıca doğrulamanıza yardımcı olur — orijinal mesajları tek tek gözden geçirmeye gerek kalmadan
|
|
36
|
+
|
|
37
|
+
## Önbelleğin Yaşam Döngüsü
|
|
38
|
+
|
|
39
|
+
- **Oluşturma**: İlk istekte veya önbellek geçersizleşmesinin ardından, API yeni bir önbellek oluşturur (`cache_creation_input_tokens`)
|
|
40
|
+
- **İsabet**: Sonraki isteklerin öneki tutarlı olduğunda, önbellek yeniden kullanılır (`cache_read_input_tokens`)
|
|
41
|
+
- **Sona Erme**: Önbelleğin 5 dakikalık bir TTL'si (yaşam süresi) vardır ve bu sürenin ardından otomatik olarak sona erer
|
|
42
|
+
- **Yeniden Oluşturma**: System prompt, araç listesi, model veya mesajlar değiştiğinde, önbellek anahtarı eşleşmez ve yeniden oluşturma tetiklenir
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Вміст KV-Cache
|
|
2
|
+
|
|
3
|
+
## Що таке KV-Cache?
|
|
4
|
+
|
|
5
|
+
KV-Cache (Key-Value Cache) — це основний механізм прискорення під час виведення у великих мовних моделях. Коли ви спілкуєтесь з Claude, кожен запит надсилає повну історію розмови (system prompt + визначення інструментів + історичні повідомлення). Якби все потрібно було обчислювати заново кожного разу, це було б дуже затратно за часом і коштами.
|
|
6
|
+
|
|
7
|
+
Роль KV-Cache полягає в: збереженні вже обчисленого вмісту в кеші, щоб його можна було повторно використовувати при наступному запиті, пропускаючи повторні обчислення.
|
|
8
|
+
|
|
9
|
+
## Як працює кеш
|
|
10
|
+
|
|
11
|
+
Prompt caching від Anthropic об'єднує ключі кешу у фіксованому порядку:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
System Prompt → Tools → Messages (до cache breakpoint)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Поки цей префікс ідентичний попередньому запиту, API потрапить у кеш (повертає `cache_read_input_tokens`), що різко зменшує затримку та витрати.
|
|
18
|
+
|
|
19
|
+
## Що таке "поточний вміст KV-Cache"?
|
|
20
|
+
|
|
21
|
+
"Поточний вміст KV-Cache", відображений у cc-viewer, — це вміст, витягнутий з останнього запиту MainAgent і позначений як кешований. Конкретно включає:
|
|
22
|
+
|
|
23
|
+
- **System Prompt**: Системні інструкції Claude Code, включаючи ваш CLAUDE.md, опис проекту, інформацію про середовище тощо
|
|
24
|
+
- **Messages**: Кешована частина історії розмови (зазвичай більш ранні повідомлення)
|
|
25
|
+
- **Tools**: Список доступних визначень інструментів (таких як Read, Write, Bash, інструменти MCP тощо)
|
|
26
|
+
|
|
27
|
+
Цей вміст позначається в тілі запиту API через `cache_control: { type: "ephemeral" }` для позначення межі кешу.
|
|
28
|
+
|
|
29
|
+
## Чому варто переглядати вміст кешу?
|
|
30
|
+
|
|
31
|
+
1. **Розуміння контексту**: Знайте, який вміст Claude наразі "пам'ятає", і допоможіть собі оцінити, чи поведінка відповідає очікуванням
|
|
32
|
+
2. **Оптимізація витрат**: Влучення в кеш коштує набагато менше, ніж перерахунок. Перегляд вмісту кешу допомагає зрозуміти, чому певні запити спричинили перебудову кешу (cache rebuild)
|
|
33
|
+
3. **Налагодження розмови**: Коли відповідь Claude не відповідає очікуванням, ви можете перевірити вміст кешу, щоб підтвердити, що system prompt і історичні повідомлення правильні
|
|
34
|
+
4. **Навігація за інструкціями користувача**: Через список повідомлень користувача у вмісті кешу ви можете швидко перейти до будь-якої позиції в розмові
|
|
35
|
+
5. **Моніторинг якості контексту**: Під час щоденного налагодження, зміни конфігурації Claude Code або коригування промптів, KV-Cache-Text забезпечує централізовану перспективу, яка допомагає вам швидко підтвердити, що основний контекст не погіршився або не був забруднений неочікуваним вмістом — без необхідності переглядати оригінальні повідомлення одне за одним
|
|
36
|
+
|
|
37
|
+
## Життєвий цикл кешу
|
|
38
|
+
|
|
39
|
+
- **Створення**: При першому запиті або після втрати чинності кешу, API створює новий кеш (`cache_creation_input_tokens`)
|
|
40
|
+
- **Влучення**: Коли наступні запити мають узгоджений префікс, кеш повторно використовується (`cache_read_input_tokens`)
|
|
41
|
+
- **Закінчення**: Кеш має TTL (час життя) 5 хвилин і автоматично закінчується після цього часу
|
|
42
|
+
- **Перебудова**: Коли system prompt, список інструментів, модель або повідомлення змінюються, ключ кешу не збігається, що спричиняє перебудову
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# KV-Cache 缓存内容
|
|
2
|
+
|
|
3
|
+
## 什么是 KV-Cache?
|
|
4
|
+
|
|
5
|
+
KV-Cache(Key-Value Cache)是大语言模型推理时的核心加速机制。当你与 Claude 对话时,每次请求都会发送完整的对话历史(system prompt + 工具定义 + 历史消息)。如果每次都从头计算这些内容,会非常耗时且昂贵。
|
|
6
|
+
|
|
7
|
+
KV-Cache 的作用是:将已经计算过的内容缓存起来,下次请求时直接复用,跳过重复计算。
|
|
8
|
+
|
|
9
|
+
## 缓存的工作原理
|
|
10
|
+
|
|
11
|
+
Anthropic 的 prompt caching 按照固定顺序拼接缓存键:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
System Prompt → Tools → Messages(到 cache breakpoint)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
只要这个前缀与上一次请求完全一致,API 就会命中缓存(返回 `cache_read_input_tokens`),大幅降低延迟和费用。
|
|
18
|
+
|
|
19
|
+
## "当前 KV-Cache 缓存内容"是什么?
|
|
20
|
+
|
|
21
|
+
cc-viewer 中显示的"当前 KV-Cache 缓存内容",是从最近一次 MainAgent 请求中提取的、被标记为缓存的内容。具体包括:
|
|
22
|
+
|
|
23
|
+
- **System Prompt**:Claude Code 的系统指令,包含你的 CLAUDE.md、项目说明、环境信息等
|
|
24
|
+
- **Messages**:对话历史中被缓存的部分(通常是较早的消息)
|
|
25
|
+
- **Tools**:当前可用的工具定义列表(如 Read、Write、Bash、MCP 工具等)
|
|
26
|
+
|
|
27
|
+
这些内容在 API 请求的 body 中通过 `cache_control: { type: "ephemeral" }` 标记来指示缓存边界。
|
|
28
|
+
|
|
29
|
+
## 为什么要查看缓存内容?
|
|
30
|
+
|
|
31
|
+
1. **理解上下文**:了解 Claude 当前"记住"了哪些内容,帮助你判断它的行为是否符合预期
|
|
32
|
+
2. **费用优化**:缓存命中时费用远低于重新计算。查看缓存内容可以帮助你理解为什么某些请求触发了缓存重建(cache rebuild)
|
|
33
|
+
3. **调试对话**:当 Claude 的回答不符合预期时,检查缓存内容可以确认 system prompt 和历史消息是否正确
|
|
34
|
+
4. **用户指令导航**:通过缓存内容中的用户消息列表,可以快速跳转到对话中的任意位置
|
|
35
|
+
5. **上下文质量监控**:在日常调试、修改 Claude Code 配置或调整 prompt 的过程中,KV-Cache-Text 提供了一个集中的视角,帮助你快速确认核心上下文是否出现劣化或被意外内容污染——无需逐条翻阅原始报文
|
|
36
|
+
|
|
37
|
+
## 缓存的生命周期
|
|
38
|
+
|
|
39
|
+
- **创建**:首次请求或缓存失效后,API 会创建新缓存(`cache_creation_input_tokens`)
|
|
40
|
+
- **命中**:后续请求前缀一致时复用缓存(`cache_read_input_tokens`)
|
|
41
|
+
- **过期**:缓存有 5 分钟的 TTL(存活时间),超时后自动失效
|
|
42
|
+
- **重建**:当 system prompt、工具列表、模型或消息发生变化时,缓存键不匹配,触发重建
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# KV-Cache 快取內容
|
|
2
|
+
|
|
3
|
+
## 什麼是 KV-Cache?
|
|
4
|
+
|
|
5
|
+
KV-Cache(Key-Value Cache)是大語言模型推理時的核心加速機制。當你與 Claude 對話時,每次請求都會發送完整的對話歷史(system prompt + 工具定義 + 歷史訊息)。如果每次都從頭計算這些內容,會非常耗時且昂貴。
|
|
6
|
+
|
|
7
|
+
KV-Cache 的作用是:將已經計算過的內容快取起來,下次請求時直接複用,跳過重複計算。
|
|
8
|
+
|
|
9
|
+
## 快取的工作原理
|
|
10
|
+
|
|
11
|
+
Anthropic 的 prompt caching 按照固定順序拼接快取鍵:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
System Prompt → Tools → Messages(到 cache breakpoint)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
只要這個前綴與上一次請求完全一致,API 就會命中快取(返回 `cache_read_input_tokens`),大幅降低延遲和費用。
|
|
18
|
+
|
|
19
|
+
## "當前 KV-Cache 快取內容"是什麼?
|
|
20
|
+
|
|
21
|
+
cc-viewer 中顯示的"當前 KV-Cache 快取內容",是從最近一次 MainAgent 請求中提取的、被標記為快取的內容。具體包括:
|
|
22
|
+
|
|
23
|
+
- **System Prompt**:Claude Code 的系統指令,包含你的 CLAUDE.md、專案說明、環境資訊等
|
|
24
|
+
- **Messages**:對話歷史中被快取的部分(通常是較早的訊息)
|
|
25
|
+
- **Tools**:當前可用的工具定義列表(如 Read、Write、Bash、MCP 工具等)
|
|
26
|
+
|
|
27
|
+
這些內容在 API 請求的 body 中通過 `cache_control: { type: "ephemeral" }` 標記來指示快取邊界。
|
|
28
|
+
|
|
29
|
+
## 為什麼要查看快取內容?
|
|
30
|
+
|
|
31
|
+
1. **理解上下文**:了解 Claude 當前「記住」了哪些內容,幫助你判斷它的行為是否符合預期
|
|
32
|
+
2. **費用優化**:快取命中時費用遠低於重新計算。查看快取內容可以幫助你理解為什麼某些請求觸發了快取重建(cache rebuild)
|
|
33
|
+
3. **調試對話**:當 Claude 的回答不符合預期時,檢查快取內容可以確認 system prompt 和歷史訊息是否正確
|
|
34
|
+
4. **使用者指令導航**:通過快取內容中的使用者訊息列表,可以快速跳轉到對話中的任意位置
|
|
35
|
+
5. **上下文品質監控**:在日常調試、修改 Claude Code 配置或調整 prompt 的過程中,KV-Cache-Text 提供了一個集中的視角,幫助你快速確認核心上下文是否出現劣化或被意外內容污染——無需逐條翻閱原始報文
|
|
36
|
+
|
|
37
|
+
## 快取的生命週期
|
|
38
|
+
|
|
39
|
+
- **建立**:首次請求或快取失效後,API 會建立新快取(`cache_creation_input_tokens`)
|
|
40
|
+
- **命中**:後續請求前綴一致時複用快取(`cache_read_input_tokens`)
|
|
41
|
+
- **過期**:快取有 5 分鐘的 TTL(存活時間),超時後自動失效
|
|
42
|
+
- **重建**:當 system prompt、工具列表、模型或訊息發生變化時,快取鍵不匹配,觸發重建
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
body{margin:0;background-color:#0d0d0d}*{scrollbar-width:thin;scrollbar-color:#3a3a3a #0d0d0d}@media(pointer:coarse){*{scrollbar-width:auto;scrollbar-color:auto}}@media(pointer:fine){*::-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}}.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-dropdown .logo-dropdown-menu .ant-dropdown-menu-item,.ant-dropdown .logo-dropdown-menu .ant-dropdown-menu-submenu-title{font-size:12px!important}.ant-tooltip .ant-tooltip-inner{background-color:#090909}.ant-tooltip .ant-tooltip-arrow:before,.ant-tooltip .ant-tooltip-arrow:after{background:#090909}.ant-modal-confirm .ant-modal-content{background-color:#1a1a1a;border:1px solid #2a2a2a}.ant-modal-confirm .ant-modal-confirm-title{color:#e6e6e6}.ant-modal-confirm .ant-modal-confirm-content{color:#aaa}.ant-modal-confirm .ant-btn-default{background-color:transparent;border-color:#444;color:#ccc}.ant-modal-confirm .ant-btn-default.ant-btn-default:hover,.ant-modal-confirm .ant-btn-default.ant-btn-default:focus{background-color:#2a2a2a;border-color:#666;color:#fff}.ant-modal-confirm .ant-btn-primary{background-color:#1668dc;border-color:#1668dc}.ant-modal-confirm .ant-btn-primary:hover{background-color:#1554ad;border-color:#1554ad}._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_1mwia_2{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}._logoWrap_1mwia_10{display:inline-flex;align-items:center;position:relative;margin-top:14px}._logoWrapActive_1mwia_17:after{content:"";position:absolute;top:-10px;bottom:-10px;left:0;right:-200px}._logoImage_1mwia_26{height:24px;width:24px;border-radius:3px;vertical-align:middle;opacity:.75;transition:opacity .2s;cursor:pointer}._logoImageActive_1mwia_36{opacity:1}._compactBtn_1mwia_41{font-size:12px;height:30px;line-height:28px}._compactBtnNoBorder_1mwia_47{font-size:12px;height:30px;line-height:28px;border:none}._tokenStatsTag_1mwia_55{border-radius:12px;cursor:pointer;background:#2a2a2a;border:1px solid #3a3a3a;color:#ccc}._tokenStatsIcon_1mwia_63{margin-right:4px}._liveTag_1mwia_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_1mwia_83{position:absolute;left:0;top:0;bottom:0;opacity:.35;transition:width .5s ease,background-color .3s;pointer-events:none}._liveTagContent_1mwia_93{position:relative;z-index:1;display:inline-flex;align-items:center}._liveTagHistory_1mwia_100{background:#2a2a2a;border-color:#424242;color:#d1d5db}._liveTagText_1mwia_106{margin-left:4px}._countdownStrong_1mwia_111{font-variant-numeric:tabular-nums}._qrcodePopover_1mwia_116{display:flex;flex-direction:column;align-items:center;padding:8px}._qrcodeSection_1mwia_123{display:flex;flex-direction:column;align-items:center;padding:16px;margin-bottom:12px;border:1px solid #333;border-radius:8px;background:#111}._qrcodeTitle_1mwia_134{font-size:14px;font-weight:600;color:#e5e5e5;margin-bottom:12px}._qrcodeUrlInput_1mwia_141{margin-top:12px;font-size:12px;font-family:Menlo,Monaco,monospace}._qrcodeUrlCopy_1mwia_147{cursor:pointer;color:#888;transition:color .2s}._qrcodeUrlCopy_1mwia_147:hover{color:#3b82f6}._settingsGroupBox_1mwia_158{border:1px solid #333;border-radius:8px;background:#111;padding:4px 16px;margin-bottom:12px}._settingsGroupTitle_1mwia_166{font-size:14px;font-weight:600;color:#e5e5e5;padding:12px 0 4px;border-bottom:1px solid #333}._settingsItem_1mwia_175{display:flex;justify-content:space-between;align-items:center;padding:12px 0}._settingsLabel_1mwia_182{font-size:14px}._tokenStatsEmpty_1mwia_187{padding:8px 4px;color:#999;font-size:13px}._tokenStatsContainer_1mwia_194{display:flex;gap:12px;align-items:flex-start}._tokenStatsColumn_1mwia_200{min-width:240px}._toolStatsColumn_1mwia_204{min-width:180px}._modelCard_1mwia_209{border:1px solid #333;border-radius:6px;padding:8px 10px;background:#111}._modelCardSpaced_1mwia_216{margin-bottom:10px}._modelName_1mwia_222{font-size:13px;font-weight:600;color:#e5e5e5;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._statsTable_1mwia_232{width:100%;border-collapse:collapse}._th_1mwia_237{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#888;font-weight:400;text-align:right}._td_1mwia_247{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#e5e5e5;text-align:right}._label_1mwia_256{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#aaa;font-weight:400;text-align:left}._rowBorder_1mwia_266{border-bottom:1px solid #2a2a2a}._rebuildCard_1mwia_270{border:1px solid #333;border-radius:6px;padding:8px 10px;margin-top:10px;background:#111}._rebuildTotalRow_1mwia_278{border-top:1px solid #444}._rebuildTotalRow_1mwia_278 td{font-weight:600}._promptExportBar_1mwia_287{margin-bottom:12px}._promptScrollArea_1mwia_291{max-height:500px;overflow:auto}._promptEmpty_1mwia_296{color:#999;padding:12px}._promptTimestamp_1mwia_302{color:#666;font-size:12px;margin:12px 0 4px;padding-bottom:6px}._textPromptCard_1mwia_310{margin:4px 0;background:#141414;border-radius:6px;border:1px solid #303030;padding:10px 14px}._preText_1mwia_319{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:#d9d9d9;margin:4px 0}._systemCollapse_1mwia_329{margin:4px 0;background:#1a1a1a;border:1px solid #303030;border-radius:6px}._systemLabel_1mwia_336{color:#888;font-size:12px}._preSys_1mwia_341{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#999;margin:0}._promptTextarea_1mwia_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_1mwia_367{display:flex;justify-content:center;padding:40px 0}._projectStatsEmpty_1mwia_373{color:#999;padding:40px 0;text-align:center;font-size:13px}._projectStatsContent_1mwia_380{display:flex;flex-direction:column;gap:16px}._projectStatsUpdated_1mwia_386{color:#666;font-size:12px;text-align:right}._projectStatsSummary_1mwia_392{display:grid;grid-template-columns:1fr 1fr;gap:10px}._projectStatCard_1mwia_398{background:#111;border:1px solid #333;border-radius:8px;padding:14px 12px;text-align:center}._projectStatValue_1mwia_406{font-size:22px;font-weight:700;color:#e5e5e5;font-family:monospace;font-variant-numeric:tabular-nums}._projectStatLabel_1mwia_414{font-size:12px;color:#888;margin-top:4px}._projectStatsSection_1mwia_420{display:flex;flex-direction:column;gap:10px}._projectStatsSectionTitle_1mwia_426{font-size:14px;font-weight:600;color:#ccc;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelCard_1mwia_434{background:#111;border:1px solid #333;border-radius:6px;padding:10px 12px}._projectStatsModelHeader_1mwia_441{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelName_1mwia_450{font-size:13px;font-weight:600;color:#e5e5e5}._projectStatsModelCount_1mwia_456{font-size:12px;color:#888;font-family:monospace}._pluginDirHint_1mwia_463{margin-bottom:12px;font-size:12px;color:#888}._pluginDirPath_1mwia_469{font-family:Menlo,Monaco,monospace;color:#aaa;cursor:pointer;padding:1px 4px;border-radius:3px;background:#1a1a1a}._pluginDirPath_1mwia_469:hover{color:#3b82f6}._pluginList_1mwia_482{display:flex;flex-direction:column;gap:8px}._pluginItem_1mwia_488{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #303030;border-radius:6px;background:#141414}._pluginInfo_1mwia_498{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_1mwia_506{font-size:14px;color:#e5e5e5;font-weight:500}._pluginFile_1mwia_512{font-size:12px;color:#666;font-family:Menlo,Monaco,monospace}._pluginHooks_1mwia_518{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_1mwia_525{font-size:11px;padding:0 5px;border-radius:3px;background:#1e3a5f;color:#6cb6ff;line-height:18px}._pluginActions_1mwia_534{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_1mwia_542{text-align:center;padding:32px 0;color:#999}._cachePopover_1mwia_549{max-width:600px}._cacheScrollArea_1mwia_553{max-height:450px;overflow-y:auto}._cachePopoverTitle_1mwia_558{font-size:14px;font-weight:600;color:#e5e5e5}._cachePopoverHeader_1mwia_564{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #333}._cacheCopyBtn_1mwia_570{font-size:14px;color:#888;cursor:pointer;transition:color .2s;margin-left:8px}._cacheCopyBtn_1mwia_570:hover{color:#e5e5e5}._cachePopoverEmpty_1mwia_582{padding:8px 4px;color:#999;font-size:13px}._cacheTokenInfo_1mwia_588{font-size:12px;font-family:monospace;color:#aaa;margin-bottom:8px}._cacheSection_1mwia_595{margin-bottom:10px}._cacheSectionTitle_1mwia_599{font-size:12px;font-weight:600;color:#aaa;margin-bottom:4px}._cacheCodeBlock_1mwia_606{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}._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}._wrapper_1rnhz_1{margin:6px 0;background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px}._header_1rnhz_9{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}._headerRight_1rnhz_16{display:flex;align-items:center;gap:12px;flex-shrink:0;white-space:nowrap}._filePath_1rnhz_24{color:#a78bfa;font-size:12px;font-weight:600}._toggle_1rnhz_30{color:#6b7280;font-size:11px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._diffSummary_1rnhz_39{font-size:11px;color:#6b7280}._diffBody_1rnhz_46{display:flex;font-family:SF Mono,Cascadia Code,Fira Code,Menlo,Consolas,monospace;font-size:12px;line-height:1.5}._gutter_1rnhz_54{flex-shrink:0;-webkit-user-select:none;user-select:none}._gutterRow_1rnhz_59{display:flex;height:18px}._lineNumOld_1rnhz_64,._lineNumNew_1rnhz_65{text-align:right;color:#484f58;padding:0 6px 0 2px;box-sizing:border-box}._prefix_1rnhz_72{width:16px;min-width:16px;text-align:center;font-weight:600}._codeWrap_1rnhz_80{flex:1;min-width:0;overflow-x:auto}._codeInner_1rnhz_87{display:inline-block;min-width:100%}._codeLine_1rnhz_92{white-space:pre;padding:0 4px;height:18px}._rowContext_1rnhz_100{background:#1a1a2e;color:#8b949e}._rowDel_1rnhz_105{background:#ef44441f;color:#fca5a5}._rowDel_1rnhz_105._gutterRow_1rnhz_59{background:#341f31}._rowDel_1rnhz_105._gutterRow_1rnhz_59 ._prefix_1rnhz_72{color:#ef4444}._rowAdd_1rnhz_116{background:#22c55e1f;color:#86efac}._rowAdd_1rnhz_116._gutterRow_1rnhz_59{background:#1b2f34}._rowAdd_1rnhz_116._gutterRow_1rnhz_59 ._prefix_1rnhz_72{color:#22c55e}._rowContext_1rnhz_100._gutterRow_1rnhz_59{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}._avatar_1b8ej_3{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}._avatarImg_1b8ej_13{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}._bubble_1b8ej_21{border-radius:8px;padding:10px 14px;max-width:100%;font-size:14px;line-height:1.6;word-break:break-word}._messageRow_1b8ej_32{display:flex;gap:10px;padding:8px 0}._messageRowEnd_1b8ej_38{display:flex;gap:10px;padding:8px 0;justify-content:flex-end}._contentCol_1b8ej_47{min-width:0;flex:1}._contentColLimited_1b8ej_52{min-width:0;max-width:80%;width:fit-content}._labelRow_1b8ej_60{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._labelRowEnd_1b8ej_67{display:flex;justify-content:flex-end;align-items:center;margin-bottom:2px}._labelRight_1b8ej_74{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}._labelText_1b8ej_82{font-size:11px}._timeText_1b8ej_86,._timeTextNoMargin_1b8ej_92{font-size:10px;color:#6b7280;flex-shrink:0}._labelTextRight_1b8ej_98{font-size:11px;margin-left:auto}._bubbleUser_1b8ej_105{background:#1668dc;color:#e5e7eb}._bubbleAssistant_1b8ej_111{background:#141414;color:#e5e7eb;transition:box-shadow 0s;position:relative}._bubbleHighlight_1b8ej_119{box-shadow:0 0 10px #1668dc99}._bubbleHighlightFading_1b8ej_123{box-shadow:0 0 10px #1668dc00;transition:box-shadow 5s ease-out}._borderSvg_1b8ej_128{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgFading_1b8ej_137{opacity:0;transition:opacity 5s ease-out}._borderRect_1b8ej_142{animation:_dashRotate_1b8ej_1 4s linear infinite}@keyframes _dashRotate_1b8ej_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._bubblePlan_1b8ej_151{background:#141428;border:5px solid #1668dc;font-size:12px;color:#e5e7eb}._bubbleSubAgent_1b8ej_159{background:#1a1a2e;color:#e5e7eb}._bubbleSelection_1b8ej_165{background:#1a3a1a;color:#e5e7eb}._systemTagLabel_1b8ej_173{font-size:12px}._skillLabel_1b8ej_177{font-size:12px;color:#a78bfa}._systemTagPre_1b8ej_182{font-size:12px;color:#9ca3af;white-space:pre-wrap;word-break:break-all;margin:0}._collapseMargin_1b8ej_190{margin:4px 0}._collapseNoMargin_1b8ej_194{margin:0}._thinkingLabel_1b8ej_200{font-size:12px}._bashCollapseLabel_1b8ej_204{font-size:12px;color:#9ca3af}._toolBox_1b8ej_211{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._toolLabel_1b8ej_220{color:#a78bfa}._codePre_1b8ej_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_1b8ej_238{color:#7dd3fc;font-size:11px}._descSpan_1b8ej_245{color:#6b7280;font-weight:400}._secondarySpan_1b8ej_250{color:#6b7280}._patternSpan_1b8ej_254{color:#fbbf24}._kvContainer_1b8ej_260{margin-top:4px;font-size:11px}._kvItem_1b8ej_265{margin:2px 0}._kvKey_1b8ej_269{color:#7dd3fc}._kvValue_1b8ej_273{color:#9ca3af}._toolResult_1b8ej_279{background:#111827;border:1px solid #1e293b;border-radius:6px;padding:6px 10px;margin:2px 0 6px;font-size:11px}._toolResultLabel_1b8ej_288{font-size:11px}._compactLabel_1b8ej_294{font-size:12px;color:#93c5fd}._compactPre_1b8ej_299{font-size:12px;color:#d1d5db;white-space:pre-wrap;word-break:break-all;margin:0}._viewRequestBtn_1b8ej_309{font-size:10px;color:#555;cursor:pointer;margin-left:6px;flex-shrink:0}._viewRequestBtn_1b8ej_309:hover{color:#93c5fd}._optionList_1b8ej_323{padding-left:8px}._optionDesc_1b8ej_327{color:#555;margin-left:6px;font-weight:400}._questionText_1b8ej_335{font-size:13px;color:#ccc;margin-bottom:4px}._questionSpacing_1b8ej_341{margin-bottom:10px}._option_1b8ej_323{font-size:12px;padding:1px 0}._askQuestionBox_1b8ej_354{background:#0d1f0d;border:1px solid #2ea043;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askQuestionHeader_1b8ej_363{display:inline-block;background:#1a3a1a;color:#7ee787;font-size:10px;padding:1px 6px;border-radius:4px;margin-bottom:4px;font-weight:600}._askQuestionText_1b8ej_374{color:#e5e7eb;font-size:13px;margin-bottom:4px}._askOptionItem_1b8ej_380{font-size:12px;color:#9ca3af;padding:1px 0;display:flex;align-items:center;gap:4px}._askOptionSelected_1b8ej_389{color:#e5e7eb;font-weight:600}._askCheckSvg_1b8ej_394{flex-shrink:0;vertical-align:middle}._planModeBox_1b8ej_401{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._planModeLabel_1b8ej_410{color:#93c5fd;font-weight:600}._planModePermissions_1b8ej_415{margin-top:6px;padding-top:6px;border-top:1px solid #1e3a5f}._planModePermLabel_1b8ej_421{color:#6b7280;font-size:11px;margin-bottom:2px}._planModeHeader_1b8ej_427{display:flex;justify-content:space-between;align-items:center}._planStatusBadge_1b8ej_433{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px;line-height:1.6}._planStatusApproved_1b8ej_441{border-color:#22c55e}._planStatusApproved_1b8ej_441._planStatusBadge_1b8ej_433{background:#22c55e26;color:#4ade80}._planStatusRejected_1b8ej_450{border-color:#ef4444}._planStatusRejected_1b8ej_450._planStatusBadge_1b8ej_433{background:#ef444426;color:#f87171}._planStatusPending_1b8ej_459{border-color:#1668dc}._planStatusPending_1b8ej_459._planStatusBadge_1b8ej_433{background:#1668dc26;color:#93c5fd}._planFeedback_1b8ej_468{margin-top:6px;padding:6px 8px;background:#ef444414;border-radius:4px;font-size:12px;color:#e5e7eb}._planFeedbackLabel_1b8ej_477{color:#f87171;font-weight:600}._planApprovalActions_1b8ej_482{display:flex;gap:8px;margin-top:8px}._planApproveBtn_1b8ej_488{padding:4px 16px;border-radius:4px;border:1px solid #22c55e;background:#22c55e26;color:#4ade80;font-size:13px;cursor:pointer;transition:background .15s}._planApproveBtn_1b8ej_488:hover{background:#22c55e4d}._planRejectBtn_1b8ej_503{padding:4px 16px;border-radius:4px;border:1px solid #ef4444;background:#ef444426;color:#f87171;font-size:13px;cursor:pointer;transition:background .15s}._planRejectBtn_1b8ej_503:hover{background:#ef44444d}._planOptionBtn_1b8ej_518{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planOptionBtn_1b8ej_518:hover{background:#6b72804d}._planFeedbackInputWrap_1b8ej_533{margin-top:8px}._planFeedbackTextarea_1b8ej_537{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_1b8ej_537:focus{border-color:#3b82f6}._planFeedbackBtnRow_1b8ej_557{display:flex;gap:8px;margin-top:6px;justify-content:flex-end}._planFeedbackSendBtn_1b8ej_564{padding:4px 16px;border-radius:4px;border:1px solid #3b82f6;background:#3b82f633;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackSendBtn_1b8ej_564:hover{background:#3b82f659}._planFeedbackSendBtn_1b8ej_564:disabled{opacity:.4;cursor:not-allowed}._planFeedbackCancelBtn_1b8ej_584{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackCancelBtn_1b8ej_584:hover{background:#6b72804d}._askQuestionInteractive_1b8ej_601{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askRadioGroup_1b8ej_610{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askRadioItem_1b8ej_618{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_1b8ej_618:hover{color:#fff}._askRadioItemSelected_1b8ej_633{color:#58a6ff}._askRadioDot_1b8ej_637{flex-shrink:0;font-size:13px;line-height:1}._askRadioGroup_1b8ej_610 .ant-radio-wrapper,._askCheckboxGroup_1b8ej_644 .ant-checkbox-wrapper{color:#d1d5db;font-size:12px;padding:3px 0;cursor:pointer;pointer-events:auto}._askRadioGroup_1b8ej_610 .ant-radio-wrapper>span,._askRadioGroup_1b8ej_610 .ant-radio{cursor:pointer;pointer-events:auto}._askRadioGroup_1b8ej_610 .ant-radio-input{cursor:pointer}._askCheckboxGroup_1b8ej_644{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askOtherInput_1b8ej_670{margin-top:4px;margin-left:24px;width:calc(100% - 24px)}._askOtherInput_1b8ej_670 .ant-input{background:#1f2937;border-color:#4b5563;color:#e5e7eb;font-size:12px}._askSubmitRow_1b8ej_683{display:flex;justify-content:flex-end;margin-top:8px}._askSubmitBtn_1b8ej_689{padding:4px 20px;border-radius:4px;border:1px solid #1668dc;background:#1668dc33;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._askSubmitBtn_1b8ej_689:hover{background:#1668dc59}._askSubmitBtn_1b8ej_689:disabled{opacity:.4;cursor:not-allowed}._askMarkdownLayout_1b8ej_709{display:flex;gap:12px;margin-top:4px}._askMarkdownLayout_1b8ej_709>:first-child{flex:1;min-width:0}._askMarkdownPreview_1b8ej_720{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_1b8ej_720 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}/**
|
|
1
|
+
body{margin:0;background-color:#0d0d0d}*{scrollbar-width:thin;scrollbar-color:#3a3a3a #0d0d0d}@media(pointer:coarse){*{scrollbar-width:auto;scrollbar-color:auto}}@media(pointer:fine){*::-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}}.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-dropdown .logo-dropdown-menu .ant-dropdown-menu-item,.ant-dropdown .logo-dropdown-menu .ant-dropdown-menu-submenu-title{font-size:12px!important}.ant-tooltip .ant-tooltip-inner{background-color:#090909}.ant-tooltip .ant-tooltip-arrow:before,.ant-tooltip .ant-tooltip-arrow:after{background:#090909}.ant-modal-confirm .ant-modal-content{background-color:#1a1a1a;border:1px solid #2a2a2a}.ant-modal-confirm .ant-modal-confirm-title{color:#e6e6e6}.ant-modal-confirm .ant-modal-confirm-content{color:#aaa}.ant-modal-confirm .ant-btn-default{background-color:transparent;border-color:#444;color:#ccc}.ant-modal-confirm .ant-btn-default.ant-btn-default:hover,.ant-modal-confirm .ant-btn-default.ant-btn-default:focus{background-color:#2a2a2a;border-color:#666;color:#fff}.ant-modal-confirm .ant-btn-primary{background-color:#1668dc;border-color:#1668dc}.ant-modal-confirm .ant-btn-primary:hover{background-color:#1554ad;border-color:#1554ad}._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_ilyap_2{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}._logoWrap_ilyap_10{display:inline-flex;align-items:center;position:relative;margin-top:14px}._logoWrapActive_ilyap_17:after{content:"";position:absolute;top:-10px;bottom:-10px;left:0;right:-200px}._logoImage_ilyap_26{height:24px;width:24px;border-radius:3px;vertical-align:middle;opacity:.75;transition:opacity .2s;cursor:pointer}._logoImageActive_ilyap_36{opacity:1}._compactBtn_ilyap_41{font-size:12px;height:30px;line-height:28px}._compactBtnNoBorder_ilyap_47{font-size:12px;height:30px;line-height:28px;border:none}._tokenStatsTag_ilyap_55{border-radius:12px;cursor:pointer;background:#2a2a2a;border:1px solid #3a3a3a;color:#ccc}._tokenStatsIcon_ilyap_63{margin-right:4px}._liveTag_ilyap_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_ilyap_83{position:absolute;left:0;top:0;bottom:0;opacity:.35;transition:width .5s ease,background-color .3s;pointer-events:none}._liveTagContent_ilyap_93{position:relative;z-index:1;display:inline-flex;align-items:center}._liveTagHistory_ilyap_100{background:#2a2a2a;border-color:#424242;color:#d1d5db}._liveTagText_ilyap_106{margin-left:4px}._countdownStrong_ilyap_111{font-variant-numeric:tabular-nums}._qrcodePopover_ilyap_116{display:flex;flex-direction:column;align-items:center;padding:8px}._qrcodeSection_ilyap_123{display:flex;flex-direction:column;align-items:center;padding:16px;margin-bottom:12px;border:1px solid #333;border-radius:8px;background:#111}._qrcodeTitle_ilyap_134{font-size:14px;font-weight:600;color:#e5e5e5;margin-bottom:12px}._qrcodeUrlInput_ilyap_141{margin-top:12px;font-size:12px;font-family:Menlo,Monaco,monospace}._qrcodeUrlCopy_ilyap_147{cursor:pointer;color:#888;transition:color .2s}._qrcodeUrlCopy_ilyap_147:hover{color:#3b82f6}._settingsGroupBox_ilyap_158{border:1px solid #333;border-radius:8px;background:#111;padding:4px 16px;margin-bottom:12px}._settingsGroupTitle_ilyap_166{font-size:14px;font-weight:600;color:#e5e5e5;padding:12px 0 4px;border-bottom:1px solid #333}._settingsItem_ilyap_175{display:flex;justify-content:space-between;align-items:center;padding:12px 0}._settingsLabel_ilyap_182{font-size:14px}._tokenStatsEmpty_ilyap_187{padding:8px 4px;color:#999;font-size:13px}._tokenStatsContainer_ilyap_194{display:flex;gap:12px;align-items:flex-start}._tokenStatsColumn_ilyap_200{min-width:240px}._toolStatsColumn_ilyap_204{min-width:180px}._modelCard_ilyap_209{border:1px solid #333;border-radius:6px;padding:8px 10px;background:#111}._modelCardSpaced_ilyap_216{margin-bottom:10px}._modelName_ilyap_222{font-size:13px;font-weight:600;color:#e5e5e5;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._statsTable_ilyap_232{width:100%;border-collapse:collapse}._th_ilyap_237{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#888;font-weight:400;text-align:right}._td_ilyap_247{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#e5e5e5;text-align:right}._label_ilyap_256{padding:2px 12px;font-size:12px;font-family:monospace;white-space:nowrap;color:#aaa;font-weight:400;text-align:left}._rowBorder_ilyap_266{border-bottom:1px solid #2a2a2a}._rebuildCard_ilyap_270{border:1px solid #333;border-radius:6px;padding:8px 10px;margin-top:10px;background:#111}._rebuildTotalRow_ilyap_278{border-top:1px solid #444}._rebuildTotalRow_ilyap_278 td{font-weight:600}._promptExportBar_ilyap_287{margin-bottom:12px}._promptScrollArea_ilyap_291{max-height:500px;overflow:auto}._promptEmpty_ilyap_296{color:#999;padding:12px}._promptTimestamp_ilyap_302{color:#666;font-size:12px;margin:12px 0 4px;padding-bottom:6px}._textPromptCard_ilyap_310{margin:4px 0;background:#141414;border-radius:6px;border:1px solid #303030;padding:10px 14px}._preText_ilyap_319{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:#d9d9d9;margin:4px 0}._systemCollapse_ilyap_329{margin:4px 0;background:#1a1a1a;border:1px solid #303030;border-radius:6px}._systemLabel_ilyap_336{color:#888;font-size:12px}._preSys_ilyap_341{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:#999;margin:0}._promptTextarea_ilyap_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_ilyap_367{display:flex;justify-content:center;padding:40px 0}._projectStatsEmpty_ilyap_373{color:#999;padding:40px 0;text-align:center;font-size:13px}._projectStatsContent_ilyap_380{display:flex;flex-direction:column;gap:16px}._projectStatsUpdated_ilyap_386{color:#666;font-size:12px;text-align:right}._projectStatsSummary_ilyap_392{display:grid;grid-template-columns:1fr 1fr;gap:10px}._projectStatCard_ilyap_398{background:#111;border:1px solid #333;border-radius:8px;padding:14px 12px;text-align:center}._projectStatValue_ilyap_406{font-size:22px;font-weight:700;color:#e5e5e5;font-family:monospace;font-variant-numeric:tabular-nums}._projectStatLabel_ilyap_414{font-size:12px;color:#888;margin-top:4px}._projectStatsSection_ilyap_420{display:flex;flex-direction:column;gap:10px}._projectStatsSectionTitle_ilyap_426{font-size:14px;font-weight:600;color:#ccc;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelCard_ilyap_434{background:#111;border:1px solid #333;border-radius:6px;padding:10px 12px}._projectStatsModelHeader_ilyap_441{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #333}._projectStatsModelName_ilyap_450{font-size:13px;font-weight:600;color:#e5e5e5}._projectStatsModelCount_ilyap_456{font-size:12px;color:#888;font-family:monospace}._pluginDirHint_ilyap_463{margin-bottom:12px;font-size:12px;color:#888}._pluginDirPath_ilyap_469{font-family:Menlo,Monaco,monospace;color:#aaa;cursor:pointer;padding:1px 4px;border-radius:3px;background:#1a1a1a}._pluginDirPath_ilyap_469:hover{color:#3b82f6}._pluginList_ilyap_482{display:flex;flex-direction:column;gap:8px}._pluginItem_ilyap_488{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #303030;border-radius:6px;background:#141414}._pluginInfo_ilyap_498{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_ilyap_506{font-size:14px;color:#e5e5e5;font-weight:500}._pluginFile_ilyap_512{font-size:12px;color:#666;font-family:Menlo,Monaco,monospace}._pluginHooks_ilyap_518{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_ilyap_525{font-size:11px;padding:0 5px;border-radius:3px;background:#1e3a5f;color:#6cb6ff;line-height:18px}._pluginActions_ilyap_534{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_ilyap_542{text-align:center;padding:32px 0;color:#999}._cachePopover_ilyap_549{max-width:800px}._cacheScrollArea_ilyap_553{max-height:450px;overflow-y:auto}._cachePopoverTitle_ilyap_558{font-size:14px;font-weight:600;color:#e5e5e5}._cachePopoverHeader_ilyap_564{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #333}._cacheCopyBtn_ilyap_570{font-size:14px;color:#888;cursor:pointer;transition:color .2s;margin-left:8px}._cacheCopyBtn_ilyap_570:hover{color:#e5e5e5}._cachePopoverEmpty_ilyap_582{padding:8px 4px;color:#999;font-size:13px}._cacheTokenInfo_ilyap_588{display:flex;align-items:center;font-size:12px;font-family:monospace;color:#aaa;margin-bottom:8px}._cacheSection_ilyap_597{margin-bottom:10px}._cacheSectionTitle_ilyap_601{font-size:12px;font-weight:600;color:#aaa;margin-bottom:4px}._cacheCodeBlock_ilyap_608{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_ilyap_622{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_ilyap_636{margin-left:auto;font-size:11px;color:#1668dc;cursor:pointer;border:1px solid #1668dc;border-radius:3px;padding:1px 6px;white-space:nowrap}._cacheNavBtn_ilyap_636:hover{background:#1668dc26}._cacheNavList_ilyap_651{width:600px;max-height:300px;overflow-y:auto}._cacheNavItem_ilyap_657{padding:4px 8px;font-size:12px;color:#ccc;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}._cacheNavItem_ilyap_657:hover{background:#1668dc33;color:#fff}._cacheBlockHighlight_ilyap_673{box-shadow:0 0 10px #1668dc99;transition:box-shadow .2s ease-in}._cacheBlockHighlightFading_ilyap_678{box-shadow:0 0 10px #1668dc00;transition:box-shadow 3s ease-out}._cacheBorderSvg_ilyap_683{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._cacheBorderSvgFading_ilyap_692{opacity:0;transition:opacity 3s ease-out}._cacheBorderRect_ilyap_697{animation:_cacheDashRotate_ilyap_1 4s linear infinite}@keyframes _cacheDashRotate_ilyap_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}._wrapper_1rnhz_1{margin:6px 0;background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px}._header_1rnhz_9{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}._headerRight_1rnhz_16{display:flex;align-items:center;gap:12px;flex-shrink:0;white-space:nowrap}._filePath_1rnhz_24{color:#a78bfa;font-size:12px;font-weight:600}._toggle_1rnhz_30{color:#6b7280;font-size:11px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._diffSummary_1rnhz_39{font-size:11px;color:#6b7280}._diffBody_1rnhz_46{display:flex;font-family:SF Mono,Cascadia Code,Fira Code,Menlo,Consolas,monospace;font-size:12px;line-height:1.5}._gutter_1rnhz_54{flex-shrink:0;-webkit-user-select:none;user-select:none}._gutterRow_1rnhz_59{display:flex;height:18px}._lineNumOld_1rnhz_64,._lineNumNew_1rnhz_65{text-align:right;color:#484f58;padding:0 6px 0 2px;box-sizing:border-box}._prefix_1rnhz_72{width:16px;min-width:16px;text-align:center;font-weight:600}._codeWrap_1rnhz_80{flex:1;min-width:0;overflow-x:auto}._codeInner_1rnhz_87{display:inline-block;min-width:100%}._codeLine_1rnhz_92{white-space:pre;padding:0 4px;height:18px}._rowContext_1rnhz_100{background:#1a1a2e;color:#8b949e}._rowDel_1rnhz_105{background:#ef44441f;color:#fca5a5}._rowDel_1rnhz_105._gutterRow_1rnhz_59{background:#341f31}._rowDel_1rnhz_105._gutterRow_1rnhz_59 ._prefix_1rnhz_72{color:#ef4444}._rowAdd_1rnhz_116{background:#22c55e1f;color:#86efac}._rowAdd_1rnhz_116._gutterRow_1rnhz_59{background:#1b2f34}._rowAdd_1rnhz_116._gutterRow_1rnhz_59 ._prefix_1rnhz_72{color:#22c55e}._rowContext_1rnhz_100._gutterRow_1rnhz_59{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}._avatar_1b8ej_3{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}._avatarImg_1b8ej_13{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}._bubble_1b8ej_21{border-radius:8px;padding:10px 14px;max-width:100%;font-size:14px;line-height:1.6;word-break:break-word}._messageRow_1b8ej_32{display:flex;gap:10px;padding:8px 0}._messageRowEnd_1b8ej_38{display:flex;gap:10px;padding:8px 0;justify-content:flex-end}._contentCol_1b8ej_47{min-width:0;flex:1}._contentColLimited_1b8ej_52{min-width:0;max-width:80%;width:fit-content}._labelRow_1b8ej_60{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._labelRowEnd_1b8ej_67{display:flex;justify-content:flex-end;align-items:center;margin-bottom:2px}._labelRight_1b8ej_74{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}._labelText_1b8ej_82{font-size:11px}._timeText_1b8ej_86,._timeTextNoMargin_1b8ej_92{font-size:10px;color:#6b7280;flex-shrink:0}._labelTextRight_1b8ej_98{font-size:11px;margin-left:auto}._bubbleUser_1b8ej_105{background:#1668dc;color:#e5e7eb}._bubbleAssistant_1b8ej_111{background:#141414;color:#e5e7eb;transition:box-shadow 0s;position:relative}._bubbleHighlight_1b8ej_119{box-shadow:0 0 10px #1668dc99}._bubbleHighlightFading_1b8ej_123{box-shadow:0 0 10px #1668dc00;transition:box-shadow 5s ease-out}._borderSvg_1b8ej_128{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgFading_1b8ej_137{opacity:0;transition:opacity 5s ease-out}._borderRect_1b8ej_142{animation:_dashRotate_1b8ej_1 4s linear infinite}@keyframes _dashRotate_1b8ej_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._bubblePlan_1b8ej_151{background:#141428;border:5px solid #1668dc;font-size:12px;color:#e5e7eb}._bubbleSubAgent_1b8ej_159{background:#1a1a2e;color:#e5e7eb}._bubbleSelection_1b8ej_165{background:#1a3a1a;color:#e5e7eb}._systemTagLabel_1b8ej_173{font-size:12px}._skillLabel_1b8ej_177{font-size:12px;color:#a78bfa}._systemTagPre_1b8ej_182{font-size:12px;color:#9ca3af;white-space:pre-wrap;word-break:break-all;margin:0}._collapseMargin_1b8ej_190{margin:4px 0}._collapseNoMargin_1b8ej_194{margin:0}._thinkingLabel_1b8ej_200{font-size:12px}._bashCollapseLabel_1b8ej_204{font-size:12px;color:#9ca3af}._toolBox_1b8ej_211{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._toolLabel_1b8ej_220{color:#a78bfa}._codePre_1b8ej_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_1b8ej_238{color:#7dd3fc;font-size:11px}._descSpan_1b8ej_245{color:#6b7280;font-weight:400}._secondarySpan_1b8ej_250{color:#6b7280}._patternSpan_1b8ej_254{color:#fbbf24}._kvContainer_1b8ej_260{margin-top:4px;font-size:11px}._kvItem_1b8ej_265{margin:2px 0}._kvKey_1b8ej_269{color:#7dd3fc}._kvValue_1b8ej_273{color:#9ca3af}._toolResult_1b8ej_279{background:#111827;border:1px solid #1e293b;border-radius:6px;padding:6px 10px;margin:2px 0 6px;font-size:11px}._toolResultLabel_1b8ej_288{font-size:11px}._compactLabel_1b8ej_294{font-size:12px;color:#93c5fd}._compactPre_1b8ej_299{font-size:12px;color:#d1d5db;white-space:pre-wrap;word-break:break-all;margin:0}._viewRequestBtn_1b8ej_309{font-size:10px;color:#555;cursor:pointer;margin-left:6px;flex-shrink:0}._viewRequestBtn_1b8ej_309:hover{color:#93c5fd}._optionList_1b8ej_323{padding-left:8px}._optionDesc_1b8ej_327{color:#555;margin-left:6px;font-weight:400}._questionText_1b8ej_335{font-size:13px;color:#ccc;margin-bottom:4px}._questionSpacing_1b8ej_341{margin-bottom:10px}._option_1b8ej_323{font-size:12px;padding:1px 0}._askQuestionBox_1b8ej_354{background:#0d1f0d;border:1px solid #2ea043;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askQuestionHeader_1b8ej_363{display:inline-block;background:#1a3a1a;color:#7ee787;font-size:10px;padding:1px 6px;border-radius:4px;margin-bottom:4px;font-weight:600}._askQuestionText_1b8ej_374{color:#e5e7eb;font-size:13px;margin-bottom:4px}._askOptionItem_1b8ej_380{font-size:12px;color:#9ca3af;padding:1px 0;display:flex;align-items:center;gap:4px}._askOptionSelected_1b8ej_389{color:#e5e7eb;font-weight:600}._askCheckSvg_1b8ej_394{flex-shrink:0;vertical-align:middle}._planModeBox_1b8ej_401{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._planModeLabel_1b8ej_410{color:#93c5fd;font-weight:600}._planModePermissions_1b8ej_415{margin-top:6px;padding-top:6px;border-top:1px solid #1e3a5f}._planModePermLabel_1b8ej_421{color:#6b7280;font-size:11px;margin-bottom:2px}._planModeHeader_1b8ej_427{display:flex;justify-content:space-between;align-items:center}._planStatusBadge_1b8ej_433{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px;line-height:1.6}._planStatusApproved_1b8ej_441{border-color:#22c55e}._planStatusApproved_1b8ej_441._planStatusBadge_1b8ej_433{background:#22c55e26;color:#4ade80}._planStatusRejected_1b8ej_450{border-color:#ef4444}._planStatusRejected_1b8ej_450._planStatusBadge_1b8ej_433{background:#ef444426;color:#f87171}._planStatusPending_1b8ej_459{border-color:#1668dc}._planStatusPending_1b8ej_459._planStatusBadge_1b8ej_433{background:#1668dc26;color:#93c5fd}._planFeedback_1b8ej_468{margin-top:6px;padding:6px 8px;background:#ef444414;border-radius:4px;font-size:12px;color:#e5e7eb}._planFeedbackLabel_1b8ej_477{color:#f87171;font-weight:600}._planApprovalActions_1b8ej_482{display:flex;gap:8px;margin-top:8px}._planApproveBtn_1b8ej_488{padding:4px 16px;border-radius:4px;border:1px solid #22c55e;background:#22c55e26;color:#4ade80;font-size:13px;cursor:pointer;transition:background .15s}._planApproveBtn_1b8ej_488:hover{background:#22c55e4d}._planRejectBtn_1b8ej_503{padding:4px 16px;border-radius:4px;border:1px solid #ef4444;background:#ef444426;color:#f87171;font-size:13px;cursor:pointer;transition:background .15s}._planRejectBtn_1b8ej_503:hover{background:#ef44444d}._planOptionBtn_1b8ej_518{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planOptionBtn_1b8ej_518:hover{background:#6b72804d}._planFeedbackInputWrap_1b8ej_533{margin-top:8px}._planFeedbackTextarea_1b8ej_537{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_1b8ej_537:focus{border-color:#3b82f6}._planFeedbackBtnRow_1b8ej_557{display:flex;gap:8px;margin-top:6px;justify-content:flex-end}._planFeedbackSendBtn_1b8ej_564{padding:4px 16px;border-radius:4px;border:1px solid #3b82f6;background:#3b82f633;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackSendBtn_1b8ej_564:hover{background:#3b82f659}._planFeedbackSendBtn_1b8ej_564:disabled{opacity:.4;cursor:not-allowed}._planFeedbackCancelBtn_1b8ej_584{padding:4px 16px;border-radius:4px;border:1px solid #6b7280;background:#6b728026;color:#d1d5db;font-size:13px;cursor:pointer;transition:background .15s}._planFeedbackCancelBtn_1b8ej_584:hover{background:#6b72804d}._askQuestionInteractive_1b8ej_601{background:#0d1528;border:1px solid #1668dc;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px}._askRadioGroup_1b8ej_610{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askRadioItem_1b8ej_618{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_1b8ej_618:hover{color:#fff}._askRadioItemSelected_1b8ej_633{color:#58a6ff}._askRadioDot_1b8ej_637{flex-shrink:0;font-size:13px;line-height:1}._askRadioGroup_1b8ej_610 .ant-radio-wrapper,._askCheckboxGroup_1b8ej_644 .ant-checkbox-wrapper{color:#d1d5db;font-size:12px;padding:3px 0;cursor:pointer;pointer-events:auto}._askRadioGroup_1b8ej_610 .ant-radio-wrapper>span,._askRadioGroup_1b8ej_610 .ant-radio{cursor:pointer;pointer-events:auto}._askRadioGroup_1b8ej_610 .ant-radio-input{cursor:pointer}._askCheckboxGroup_1b8ej_644{display:flex;flex-direction:column;gap:2px;padding-left:4px;margin-top:4px}._askOtherInput_1b8ej_670{margin-top:4px;margin-left:24px;width:calc(100% - 24px)}._askOtherInput_1b8ej_670 .ant-input{background:#1f2937;border-color:#4b5563;color:#e5e7eb;font-size:12px}._askSubmitRow_1b8ej_683{display:flex;justify-content:flex-end;margin-top:8px}._askSubmitBtn_1b8ej_689{padding:4px 20px;border-radius:4px;border:1px solid #1668dc;background:#1668dc33;color:#60a5fa;font-size:13px;cursor:pointer;transition:background .15s}._askSubmitBtn_1b8ej_689:hover{background:#1668dc59}._askSubmitBtn_1b8ej_689:disabled{opacity:.4;cursor:not-allowed}._askMarkdownLayout_1b8ej_709{display:flex;gap:12px;margin-top:4px}._askMarkdownLayout_1b8ej_709>:first-child{flex:1;min-width:0}._askMarkdownPreview_1b8ej_720{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_1b8ej_720 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}/**
|
|
2
2
|
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
|
|
3
3
|
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
|
4
4
|
* https://github.com/chjj/term.js
|