cc-viewer 1.9.0 → 1.9.2
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/README.md +3 -1
- package/cli.js +33 -4
- package/concepts/ar/UltraPlan.md +1 -1
- package/concepts/da/UltraPlan.md +1 -1
- package/concepts/de/UltraPlan.md +1 -1
- package/concepts/en/UltraPlan.md +1 -1
- package/concepts/es/UltraPlan.md +1 -1
- package/concepts/fr/UltraPlan.md +1 -1
- package/concepts/it/UltraPlan.md +1 -1
- package/concepts/ja/UltraPlan.md +1 -1
- package/concepts/ko/UltraPlan.md +1 -1
- package/concepts/no/UltraPlan.md +1 -1
- package/concepts/pl/UltraPlan.md +1 -1
- package/concepts/pt-BR/UltraPlan.md +1 -1
- package/concepts/ru/UltraPlan.md +1 -1
- package/concepts/th/UltraPlan.md +1 -1
- package/concepts/tr/UltraPlan.md +1 -1
- package/concepts/uk/UltraPlan.md +1 -1
- package/concepts/zh/UltraPlan.md +1 -1
- package/concepts/zh-TW/UltraPlan.md +1 -1
- package/dist/assets/App-DJ4yNvwz.css +1 -0
- package/dist/assets/App-DPRn6oGn.js +2 -0
- package/dist/assets/{MdxEditorPanel-3j8rS3IT.js → MdxEditorPanel-Ci4ldhd7.js} +1 -1
- package/dist/assets/{MdxEditorPanel-Dpn-4ydO.css → MdxEditorPanel-DTfdj6GS.css} +1 -1
- package/dist/assets/Mobile-Dq-KcO1s.js +1 -0
- package/dist/assets/ProxyStatsModal-CUFpqt1s.js +1 -0
- package/dist/assets/{_baseUniq-B3e4JaL0.js → _baseUniq-CwQykUuc.js} +1 -1
- package/dist/assets/{arc-DnoPn_qY.js → arc-EdUdBxtG.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-DrPKTbxH.js → architectureDiagram-Q4EWVU46-DtBIdElY.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-CEaO0Vcw.js → blockDiagram-DXYQGD6D-guNZIKkZ.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-BLaawFeg.js → c4Diagram-AHTNJAMY-xV5vB-Z9.js} +1 -1
- package/dist/assets/{channel-DnYR1fF4.js → channel-DYEktNap.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-Bfd4edKZ.js → chunk-4BX2VUAB-ZTkItpvj.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-t2nMQmY7.js → chunk-4TB4RGXK-dYIewyyR.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-C6tLOjGX.js → chunk-55IACEB6-CSsPNgPX.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-dWCvxbCb.js → chunk-EDXVE4YY-CnMiuqzQ.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-BHELZLPK.js → chunk-FMBD7UC4-CVpATPZ3.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-C8XTkH1S.js → chunk-OYMX7WX6-Dpq4s8dW.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-CD0j6SAs.js → chunk-QZHKN3VN-Bnojh6X6.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-D4dKfXJJ.js → chunk-YZCP3GAM-BYqK4Dsa.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-ClGF33bF.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-ClGF33bF.js +1 -0
- package/dist/assets/clone-CFj55h49.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-BF2HsiSD.js → cose-bilkent-S5V4N54A-OJ7mmWyV.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-f3h967yx.js → dagre-KV5264BT-B1Kwd_Rk.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-B9PzHQfh.js → diagram-5BDNPKRD-D8qrw8sp.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-kR953Bqm.js → diagram-G4DWMVQ6-ip-N4ho8.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-DAewa2eg.js → diagram-MMDJMWI5-2PZaskUF.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-C8HNTH6I.js → diagram-TYMM5635-CeAOQUZP.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-BQ5P8wWK.js → erDiagram-SMLLAGMA-BCBaEYEb.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-BIpEkrMR.js → flowDiagram-DWJPFMVM-CsGyIqcX.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-CWqSfB5v.js → ganttDiagram-T4ZO3ILL-COsj3FZ-.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-Ba-9yEbQ.js → gitGraphDiagram-UUTBAWPF-DvQVQGJG.js} +1 -1
- package/dist/assets/{graph-D3zXKQ6P.js → graph-BSB9fDSP.js} +1 -1
- package/dist/assets/index-BLzca-ta.css +1 -0
- package/dist/assets/{index-G3xd-gLo.js → index-BRw4Iz2O.js} +1 -1
- package/dist/assets/{index-DClD_EkN.js → index-Bo-12bug.js} +1 -1
- package/dist/assets/{index-DSd5P3WQ.js → index-BuVComcY.js} +1 -1
- package/dist/assets/{index-HLrnYsI1.js → index-CNNAYjkF.js} +1 -1
- package/dist/assets/index-Ci38xZiX.js +2 -0
- package/dist/assets/{index-Bm3A5VLb.js → index-DKufsAzx.js} +1 -1
- package/dist/assets/{index-C9N0rZ7Z.js → index-DXBfwPYD.js} +1 -1
- package/dist/assets/{index-Q8wp4Nof.js → index-eM2ih5n7.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-Cxm79ZJR.js → infoDiagram-42DDH7IO-eNucS4iW.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-Cd0vZP1B.js → ishikawaDiagram-UXIWVN3A-Dxxj-gUX.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-B2b57HXk.js → journeyDiagram-VCZTEJTY-yJJzVEBb.js} +1 -1
- package/dist/assets/{jszip.min-Bj5uiEb2.js → jszip.min-ByI0ds5u.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-YCERiUCO.js → kanban-definition-6JOO6SKY-2rfTi2zw.js} +1 -1
- package/dist/assets/{layout-Do5TlO2U.js → layout-DTmHj0Wm.js} +1 -1
- package/dist/assets/{linear-BiJNTDgN.js → linear-BOA3a9FE.js} +1 -1
- package/dist/assets/{mermaid.core-Dg0McRZt.js → mermaid.core-5H-NR79H.js} +3 -3
- package/dist/assets/{min-T51iefht.js → min-CpjFTEec.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-Cu_GJxY3.js → mindmap-definition-QFDTVHPH-B8KCjFgB.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-DldHHZXi.js → pieDiagram-DEJITSTG-BARy96g5.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-BzyTPNAJ.js → quadrantDiagram-34T5L4WZ-DYoTapuI.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-C5xxFkvG.js → requirementDiagram-MS252O5E-EeANLLK2.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-OxdjoaE1.js → sankeyDiagram-XADWPNL6-DmQ-YVPj.js} +1 -1
- package/dist/assets/seqResourceLoaders-B0p7e_lM.js +2 -0
- package/dist/assets/seqResourceLoaders-BsMFNfvR.css +41 -0
- package/dist/assets/{sequenceDiagram-FGHM5R23-C7c89uIS.js → sequenceDiagram-FGHM5R23-SZtW0rYC.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-ssdJnDrO.js → stateDiagram-FHFEXIEX-CEygsIld.js} +1 -1
- package/dist/assets/{stateDiagram-v2-QKLJ7IA2-BP-0WClK.js → stateDiagram-v2-QKLJ7IA2-BU1XPhBe.js} +1 -1
- package/dist/assets/{timeline-definition-GMOUNBTQ-sWScEpSM.js → timeline-definition-GMOUNBTQ-DhPBaQBt.js} +1 -1
- package/dist/assets/{vendor-antd-DKIytXho.js → vendor-antd-CS_S2mBN.js} +1 -1
- package/dist/assets/{vendor-codemirror-4qgXq03k.js → vendor-codemirror-B5l-VbBO.js} +1 -1
- package/dist/assets/{vendor-mdxeditor-D5Z5D9fq.js → vendor-mdxeditor-Cz09a1_I.js} +2 -2
- package/dist/assets/{vendor-qrcode-B7lb5qk1.js → vendor-qrcode-qbbntD6-.js} +1 -1
- package/dist/assets/{vendor-virtuoso-BqoXlbhH.js → vendor-virtuoso-Sk8fQ4Hx.js} +1 -1
- package/dist/assets/{vennDiagram-DHZGUBPP-DNfXR0ge.js → vennDiagram-DHZGUBPP-NniTHxDw.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-JXd--CRD.js → wardley-RL74JXVD-D9SNOrDw.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DHmNyVPM.js → wardleyDiagram-NUSXRM2D-DvHXKNza.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-CTb0gltZ.js → xychartDiagram-5P7HB3ND-CaiwPTQB.js} +1 -1
- package/dist/index.html +5 -5
- package/package.json +1 -1
- package/server/interceptor.js +192 -24
- package/server/lib/ask/ask-store.js +7 -3
- package/server/lib/async-file-lock.js +29 -5
- package/server/lib/auth.js +71 -54
- package/server/lib/chat-queue.js +67 -4
- package/server/lib/config-backup.js +8 -5
- package/server/lib/credential-access.js +233 -0
- package/server/lib/credential-migrate.js +147 -0
- package/server/lib/credential-store.js +120 -0
- package/server/lib/credential-vault.js +112 -0
- package/server/lib/file-access-policy.js +16 -0
- package/server/lib/git-diff.js +49 -20
- package/server/lib/im/im-config.js +81 -31
- package/server/lib/im-deny.js +22 -8
- package/server/lib/json-store.js +264 -0
- package/server/lib/log-watcher.js +9 -1
- package/server/lib/prefs-store.js +8 -33
- package/server/lib/same-origin.js +22 -0
- package/server/lib/session-pin-store.js +7 -14
- package/server/lib/v2/convert.js +1 -1
- package/server/lib/v2/layout.js +53 -3
- package/server/lib/v2/live-feed.js +41 -4
- package/server/lib/v2/resume-list.js +150 -0
- package/server/lib/v2/session-select.js +63 -14
- package/server/lib/v2/v2-writer.js +172 -34
- package/server/lib/v2/view-router.js +83 -0
- package/server/lib/view-root.js +209 -0
- package/server/pty-manager.js +809 -163
- package/server/routes/ask-perm.js +21 -1
- package/server/routes/auth.js +21 -1
- package/server/routes/events.js +123 -7
- package/server/routes/expert.js +46 -14
- package/server/routes/files-content.js +72 -7
- package/server/routes/files-fs.js +28 -3
- package/server/routes/git.js +31 -5
- package/server/routes/im.js +15 -2
- package/server/routes/preferences.js +59 -46
- package/server/routes/project-meta.js +32 -3
- package/server/routes/proxy-stats.js +33 -5
- package/server/routes/resume.js +457 -0
- package/server/routes/search.js +23 -1
- package/server/routes/skills.js +18 -2
- package/server/routes/v2.js +6 -1
- package/server/routes/workspaces.js +18 -5
- package/server/server.js +199 -25
- package/server/system-prompt-templates/presets/GLM-5.2.md +0 -1
- package/server/system-prompt-templates/presets/GLM-5.3.md +0 -1
- package/server/system-prompt-templates/presets/Qwen-3.md +0 -1
- package/server/system-prompt-templates/presets/deepseek-v4-flash.md +0 -1
- package/server/system-prompt-templates/presets/deepseek-v4-pro.md +0 -1
- package/server/system-prompt-templates/presets/kimi-k2.7-code.md +0 -1
- package/server/system-prompt-templates/presets/kimi-k3.md +1 -1
- package/server/system-prompt-templates/systemPromptModel.md +0 -1
- package/server/workspace-registry.js +150 -75
- package/ultraAgents/code-expert.json +1 -1
- package/dist/assets/App-M61pqQEx.css +0 -1
- package/dist/assets/App-_HfxMJvv.js +0 -2
- package/dist/assets/Mobile-DaRLB7Gh.js +0 -1
- package/dist/assets/ProxyStatsModal-dlPIDlx-.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-BecPAAuk.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-BecPAAuk.js +0 -1
- package/dist/assets/clone-B0_ghF3F.js +0 -1
- package/dist/assets/index-CjbBUDGP.js +0 -2
- package/dist/assets/index-Nvk8r3tO.css +0 -1
- package/dist/assets/seqResourceLoaders-B_FSQh3U.css +0 -41
- package/dist/assets/seqResourceLoaders-hqLhsiGO.js +0 -2
package/README.md
CHANGED
|
@@ -191,7 +191,7 @@ By default, remote (LAN) access requires the `?token=` query that ccv prints at
|
|
|
191
191
|
* Remote devices opening the LAN URL (without a token) are shown a minimal password page; entering the correct password sets an `HttpOnly` cookie and the page refreshes into the app. The existing `?token=` URL keeps working in parallel.
|
|
192
192
|
* An **empty password means no protection at all** — it is allowed, but the admin UI shows a clear security warning.
|
|
193
193
|
* **Global default + per-project override:** by default one password covers every project. From the QR popover the admin can switch between **This project** and **Global** — set a project-specific password that overrides the global default for that project only, or remove the override to inherit the global setting again. (A disabled project override means "no protection for this project", which is different from removing it.)
|
|
194
|
-
* The on/off state
|
|
194
|
+
* The on/off state is persisted alongside your other settings in cc-viewer's `preferences.json` — a global `auth` key plus an optional `authByProject` map (file mode `0600`). The password itself is **not** kept there: it is encrypted at rest (AES-256-GCM) in `credentials.json` under the same data root, with the machine-local key in `master.key` (both mode `0600`). The login cookie is tied to the per-launch token, so restarting ccv requires remote devices to log in again.
|
|
195
195
|
|
|
196
196
|
### Container / cloud deployment (remote admin)
|
|
197
197
|
|
|
@@ -205,6 +205,8 @@ cc-viewer works in a single container or on a cloud host where you reach the UI
|
|
|
205
205
|
* **Security recommendations for a public/cloud deployment:** enable password login (or keep the random `?token=` URL secret), and put the instance behind a reverse proxy that terminates HTTPS. Persist the log/settings directory by mounting a volume at the path pointed to by `CCV_LOG_DIR` (default `~/.claude/cc-viewer`) so your preferences, auth password, and IM credentials survive container restarts.
|
|
206
206
|
* **Reverse-proxy note:** access control is based on the socket peer address (`X-Forwarded-For` is deliberately not trusted, to prevent spoofing). This does not affect remote admins — they authenticate by token/password, not by IP. It only means "same-container" detection relies on a real loopback connection.
|
|
207
207
|
|
|
208
|
+
* **Design doc:** how local config maps to a cloud database and the cloud-sync model (cloud-authoritative, local read-only fallback) is described in [Config Convergence & Cloud-Sync Advisory](./docs/config-cloud-sync.md) ([中文](./docs/config-cloud-sync.zh.md)). This is a proposal, not yet implemented.
|
|
209
|
+
|
|
208
210
|
|
|
209
211
|
### Model-specific system prompts
|
|
210
212
|
|
package/cli.js
CHANGED
|
@@ -19,6 +19,7 @@ import { normalizeBasePath } from './server/lib/base-path.js';
|
|
|
19
19
|
import { mergeSettingsIntoArgs } from './server/lib/settings-merge.js';
|
|
20
20
|
import { splitSdkLaunchArgs, resolveLaunchSystemPrompt, insertBeforeDashDash } from './server/lib/launch-config.js';
|
|
21
21
|
import { createHardenedCleanup, installWinKeypressFallback } from './server/lib/term-signals.js';
|
|
22
|
+
import { reportSwallowed } from '@ccv/core/error-report';
|
|
22
23
|
|
|
23
24
|
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
|
24
25
|
|
|
@@ -552,7 +553,7 @@ async function runCliMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
552
553
|
}
|
|
553
554
|
|
|
554
555
|
// 3. 启动 PTY 中的 claude
|
|
555
|
-
const { spawnClaude,
|
|
556
|
+
const { spawnClaude, killAllMain, onPtyExit } = await import('./server/pty-manager.js');
|
|
556
557
|
const { isCodeFuseManagedEnvironment } = await import('./server/lib/codefuse-managed-mode.js');
|
|
557
558
|
const codeFuseManaged = isCodeFuseManagedEnvironment();
|
|
558
559
|
let managedExitCode = 0;
|
|
@@ -566,8 +567,20 @@ async function runCliMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
566
567
|
// cannot look like a second cleanup request and force the hardened 130 exit path.
|
|
567
568
|
removeManagedExitListener?.();
|
|
568
569
|
removeManagedExitListener = null;
|
|
569
|
-
|
|
570
|
-
|
|
570
|
+
// Kill ALL main PTYs, not just the active one — cross-project /resume keeps
|
|
571
|
+
// the previous project's main PTY alive, and it must not outlive this process
|
|
572
|
+
// as an orphan (node-pty children are session leaders; no OS cascade kill).
|
|
573
|
+
// killAllMain is idempotent and equals killPty() in the single-PTY case.
|
|
574
|
+
killAllMain();
|
|
575
|
+
// Reap scratch/resume children too — without this they outlive the main
|
|
576
|
+
// process as orphans (node-pty children are session leaders; the OS does
|
|
577
|
+
// not cascade-kill them). killAllScratch is idempotent.
|
|
578
|
+
return Promise.all([
|
|
579
|
+
serverMod.stopViewer(),
|
|
580
|
+
import('./server/scratch-pty-manager.js')
|
|
581
|
+
.then(({ killAllScratch }) => killAllScratch())
|
|
582
|
+
.catch((e) => reportSwallowed('cli.cleanup.scratch', e)),
|
|
583
|
+
]);
|
|
571
584
|
},
|
|
572
585
|
exit: (code) => process.exit(code ?? managedExitCode),
|
|
573
586
|
});
|
|
@@ -589,6 +602,16 @@ async function runCliMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
589
602
|
process.exit(1);
|
|
590
603
|
}
|
|
591
604
|
|
|
605
|
+
// Keep the launcher-verified executable available to later workspace launches
|
|
606
|
+
// (POST /api/workspaces/launch → deps.workspaceClaudePath). Without this the
|
|
607
|
+
// route falls back to resolveNativePath(), which can pick a DIFFERENT binary
|
|
608
|
+
// than the one just spawned (e.g. the npm global build instead of the
|
|
609
|
+
// CodeFuse-managed one) — on managed machines that binary is SIGKILLed on
|
|
610
|
+
// exec, so a [+] project launch dies instantly (the "terminal loads history
|
|
611
|
+
// but claude never starts" bug). Restores the wiring dropped in f209f508.
|
|
612
|
+
serverMod.setWorkspaceClaudeArgs(extraClaudeArgs);
|
|
613
|
+
serverMod.setWorkspaceClaudePath(claudePath, isNpmVersion);
|
|
614
|
+
|
|
592
615
|
// 4. 自动打开浏览器
|
|
593
616
|
const protocol = serverMod.getProtocol();
|
|
594
617
|
const basePath = normalizeBasePath(process.env.CCV_BASE_PATH);
|
|
@@ -898,7 +921,13 @@ async function runSdkMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
898
921
|
const cleanup = createHardenedCleanup({
|
|
899
922
|
doCleanup: () => {
|
|
900
923
|
sdkManager.stopSession();
|
|
901
|
-
|
|
924
|
+
// Reap scratch/resume children (see runCliMode cleanup); idempotent.
|
|
925
|
+
return Promise.all([
|
|
926
|
+
serverMod.stopViewer(),
|
|
927
|
+
import('./server/scratch-pty-manager.js')
|
|
928
|
+
.then(({ killAllScratch }) => killAllScratch())
|
|
929
|
+
.catch((e) => reportSwallowed('cli.cleanup.scratch', e)),
|
|
930
|
+
]);
|
|
902
931
|
},
|
|
903
932
|
});
|
|
904
933
|
process.on('SIGINT', cleanup);
|
package/concepts/ar/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/da/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/de/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/en/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/es/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/fr/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/it/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/ja/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/ko/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/no/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/pl/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/ru/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/th/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/tr/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/uk/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
package/concepts/zh/UltraPlan.md
CHANGED
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
|
@@ -114,7 +114,7 @@ Workflow:
|
|
|
114
114
|
- Each teammate, according to their own role, covers the review dimensions one by one and independently outputs a report;
|
|
115
115
|
- After consolidating the reports, perform a cross-review to identify conflicts or shared concerns;
|
|
116
116
|
- Distill specific, actionable modification suggestions and annotate them with priority levels (P0/P1/P2/P3);
|
|
117
|
-
- Upon completion, adopt P0 items
|
|
117
|
+
- Upon completion, adopt P0 items; adopt P1 and P2 items selectively based on evaluation; disregard P3 items.
|
|
118
118
|
- After execution is complete, close the team (`TeamDelete`);
|
|
119
119
|
- If the `TeamDelete` tool is unavailable, notify each teammate to exit individually;
|
|
120
120
|
</system-reminder></textarea>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._liveTag_8g4c3_3{position:relative;display:inline-flex;align-items:center;justify-content:flex-start;border-radius:999px;border:1px solid;border-color:var(--ctx-color);color:var(--ctx-color);padding:0 10px;height:100%;font-size:12px;line-height:1;overflow:hidden;transition:border-color .3s,color .3s;white-space:nowrap;background:var(--bg-base-pure)}._liveTagFill_8g4c3_23{position:absolute;left:0;top:0;bottom:0;width:var(--ctx-percent, 0);background-color:var(--ctx-color);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.25) 0,rgba(255,255,255,.25) 2px,transparent 2px,transparent 7px);opacity:.35;transition:width .5s ease,background-color .3s;pointer-events:none}._liveTagContent_8g4c3_44{position:relative;z-index:1;display:inline-flex;align-items:center}._liveTagHistory_8g4c3_52{background:var(--bg-surface);border-color:var(--border-light);color:var(--text-primary)}._liveTagText_8g4c3_59{margin-left:4px;font-variant-numeric:tabular-nums}._cachePopoverPlaceholder_8g4c3_65{min-width:300px}._modeRow_fpcoi_1{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}._modeLeft_fpcoi_9{display:flex;align-items:center;gap:10px}._modeRight_fpcoi_15{display:flex;align-items:center;gap:8px}._overrideWarn_fpcoi_22{font-size:12px;color:var(--color-warning, #d4810a)}._previewLabel_fpcoi_27{font-size:13px;color:var(--text-secondary, #888)}._previewBox_fpcoi_36{border:1px solid var(--border-primary);border-radius:8px;background:transparent;padding:12px 14px;min-height:320px;max-height:60vh;overflow:auto}._previewEmpty_fpcoi_46{font-size:13px;color:var(--text-secondary, #888)}._hint_fpcoi_51{margin-top:10px;font-size:12px;color:var(--text-secondary, #888);line-height:1.6}._dirLine_fpcoi_58{word-break:break-all}._warn_fpcoi_62{margin-top:10px;font-size:12px;color:var(--color-warning, #d4810a)}._tabRow_fpcoi_71{display:flex;align-items:flex-end;gap:8px;padding:0 4px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}._tabRow_fpcoi_71::-webkit-scrollbar{display:none}._tabBtn_fpcoi_90{display:inline-flex;align-items:center;gap:5px;padding:9px 14px;font-size:12px;line-height:1.6;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._tabBtn_fpcoi_90:hover{color:var(--color-primary)}._tabBtn_fpcoi_90:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}._tabBtn_fpcoi_90._tabActive_fpcoi_118{background:var(--bg-container);color:var(--color-primary);border-color:var(--border-primary);border-bottom-color:var(--bg-container);border-radius:10px 10px 0 0;font-weight:500;margin-bottom:-1px;position:relative;z-index:1}._tabRow_fpcoi_71>._tabBtn_fpcoi_90._tabActive_fpcoi_118,._tabWrap_fpcoi_132:has(>._tabBtn_fpcoi_90._tabActive_fpcoi_118){position:sticky;left:0;right:0;z-index:2}[data-theme=light] ._tabBtn_fpcoi_90._tabActive_fpcoi_118{box-shadow:0 -3px 8px #0000000f}._editorBox_fpcoi_33{background:var(--bg-container);border-radius:8px;overflow:hidden;padding:4px;position:relative}[data-theme=light] ._editorBox_fpcoi_33{box-shadow:0 3px 8px #00000014}._editorBox_fpcoi_33 .ant-input{background:transparent;border:1px solid var(--border-primary);border-radius:8px;box-shadow:none;padding:12px 14px;font-size:12px;line-height:1.5;color:var(--text-primary)}._editorBox_fpcoi_33 .ant-input:hover{border-color:var(--border-primary);background:transparent}._editorBox_fpcoi_33 .ant-input:focus{border-color:var(--color-primary-pale);box-shadow:none}._editorBox_fpcoi_33 .ant-input[disabled]{color:var(--text-muted);background:transparent}._tabWrap_fpcoi_132{position:relative;display:inline-flex;align-items:center;flex-shrink:0}._tabTitle_fpcoi_199{white-space:nowrap}._tabDelete_fpcoi_204{position:absolute;top:2px;inset-inline-end:4px;width:14px;height:14px;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border-primary);color:var(--text-secondary);font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;z-index:2}._tabWrap_fpcoi_132:hover ._tabDelete_fpcoi_204{opacity:1}._tabDelete_fpcoi_204:hover{color:var(--color-error, #d4380d);border-color:var(--color-error, #d4380d)}@media(max-width:768px){._tabDelete_fpcoi_204{opacity:1}}._addBtn_fpcoi_237{display:inline-flex;align-items:center;align-self:center;gap:5px;padding:6px 14px;font-size:12px;line-height:1.6;margin-left:4px;margin-bottom:2px;border:none;border-radius:14px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._addBtn_fpcoi_237:hover{color:var(--color-primary);background:var(--bg-surface)}._addBtn_fpcoi_237:disabled{cursor:not-allowed;opacity:.5}[data-theme=light] ._addBtn_fpcoi_237{color:var(--text-secondary)}._scopeBadge_fpcoi_270{font-size:10px;line-height:1.4;padding:0 4px;border-radius:6px;background:var(--bg-surface);color:var(--text-muted)}._scopeBadgeDisabled_fpcoi_280{color:var(--color-warning, #d48806)}._tabBtn_fpcoi_90._tabDisabled_fpcoi_285{opacity:.55}._builtinScopeRow_fpcoi_290{display:inline-flex;align-items:center;gap:6px;margin-left:12px}._dirtyDot_fpcoi_298{width:6px;height:6px;border-radius:50%;background:var(--color-primary);flex-shrink:0}._titleRow_fpcoi_307{display:inline-flex;align-items:center;gap:8px}._helpBtn_fpcoi_315{align-self:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--border-primary);background:var(--bg-elevated);color:var(--text-secondary);font-size:11px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:help;flex-shrink:0;-webkit-user-select:none;user-select:none}._helpBtn_fpcoi_315:hover{color:var(--color-primary);border-color:var(--color-primary)}._paramDocBtn_fpcoi_338{align-self:center;height:18px;padding:0 8px;border-radius:999px;border:1px solid var(--border-primary);background:var(--bg-elevated);color:var(--text-secondary);font-size:11px;font-weight:400;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;-webkit-user-select:none;user-select:none;white-space:nowrap;max-width:40vw;overflow:hidden;text-overflow:ellipsis}._paramDocBtn_fpcoi_338:hover{color:var(--color-primary);border-color:var(--color-primary)}._paramDocBtn_fpcoi_338:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}._docBox_fpcoi_370{max-height:65vh;overflow:auto;font-size:13px;line-height:1.6}._docIntro_fpcoi_379{color:var(--text-secondary);font-size:12px;line-height:1.6;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--border-primary)}._addModalBody_fpcoi_389{display:flex;flex-direction:column;gap:14px;margin-top:4px}._addModalField_fpcoi_395{display:flex;flex-direction:column;gap:6px}._fieldLabelRow_fpcoi_400{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary, #888)}._addError_fpcoi_408{font-size:12px;color:var(--color-error, #d4380d)}._presetSelect_fpcoi_412,._addNameAutoComplete_fpcoi_416{width:100%}._presetMatched_fpcoi_419{font-size:11px;color:var(--color-text-secondary, #888)}._panel_1nxl3_1{display:flex;flex-direction:column;gap:14px}._required_1nxl3_7{margin-left:2px;color:var(--color-error-light, #ff7b7b)}._optional_1nxl3_12{margin-left:6px;font-size:12px;font-weight:400;color:var(--text-secondary)}._row_1nxl3_19{display:flex;align-items:center;justify-content:space-between;gap:12px}._label_1nxl3_26{font-size:14px;font-weight:500}._control_1nxl3_31{display:inline-flex;align-items:center;gap:10px}._field_1nxl3_37{display:flex;flex-direction:column;gap:6px}._fieldLabel_1nxl3_43{font-size:13px;color:var(--text-secondary)}._help_1nxl3_48{font-size:12px;color:var(--text-secondary);line-height:1.4}._warn_1nxl3_54{font-size:12px;line-height:1.5;color:var(--color-error-light, #ff7b7b)}._hint_1nxl3_60{font-size:12px;line-height:1.5;color:var(--text-secondary)}._helpIcon_1nxl3_67{margin-left:6px;color:var(--text-tertiary, #999);cursor:help;font-size:13px}._detailsToggle_1nxl3_74{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;padding:0;border:none;background:none;cursor:pointer;font-size:12px;color:var(--text-secondary)}._detailsToggle_1nxl3_74:hover{color:var(--text-primary, var(--text-secondary))}._details_1nxl3_74{display:flex;flex-direction:column;gap:10px}._actions_1nxl3_98{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-secondary)}._testBtn_1nxl3_108{margin-right:auto}._tabRow_1q32a_4{display:flex;align-items:flex-end;gap:6px;padding:0 8px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}._tabRow_1q32a_4::-webkit-scrollbar{display:none}._tabBtn_1q32a_24{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;font-size:14px;line-height:1.5;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .18s,border-color .18s,background .18s;white-space:nowrap;flex-shrink:0;-webkit-user-select:none;user-select:none}._tabBtn_1q32a_24:hover{color:var(--color-primary)}._tabBtn_1q32a_24._tabBtnActive_1q32a_52,._tabBtn_1q32a_24._tabBtnActive_1q32a_52:hover{background:var(--bg-container);color:var(--color-primary);border-color:var(--border-primary);border-bottom:2px solid var(--bg-container);border-radius:10px 10px 0 0;font-weight:500;margin-bottom:-1px;position:relative;z-index:2}._toolBody_1q32a_8{border:1px solid var(--border-primary);border-top:none;border-radius:8px;background:var(--bg-container);padding:18px 20px;min-width:0}[data-theme=light] ._toolBody_1q32a_8{box-shadow:0 3px 8px #00000014}[data-theme=light] ._tabBtnActive_1q32a_52{box-shadow:0 -3px 8px #0000000f}[data-theme=dark] ._toolBody_1q32a_8 .ant-input,[data-theme=dark] ._toolBody_1q32a_8 .ant-input-affix-wrapper,[data-theme=dark] ._toolBody_1q32a_8 .ant-select-selector{background-color:var(--bg-elevated)}._scrollBody_mzpnt_1{height:100%;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:4px 2px;background:var(--bg-container)}._headerBar_mzpnt_15{display:flex;align-items:center;gap:8px}._refreshBtn_mzpnt_21{flex:0 0 auto}._statusTag_mzpnt_27{display:inline-flex;align-items:center;gap:8px;margin-left:auto}._statusTag_mzpnt_27 .ant-tag{margin-inline-end:0}._center_mzpnt_38{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 0;color:var(--text-secondary)}._hint_mzpnt_48{color:var(--text-secondary);font-size:13px}._chip_dnl8s_4{position:relative;line-height:0;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s}._chip_dnl8s_4:hover{opacity:.75}._logo_dnl8s_16{display:block;transition:color .15s}._connecting_dnl8s_22{opacity:.5}._dotError_dnl8s_27{position:absolute;right:-2px;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--color-error, #ff4d4f);pointer-events:none}._dotReconnecting_dnl8s_39{position:absolute;right:-2px;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--color-warning, #f59e0b);pointer-events:none;animation:_imDotPulse_dnl8s_1 1.2s ease-in-out infinite}@keyframes _imDotPulse_dnl8s_1{0%,to{opacity:1}50%{opacity:.3}}@media(prefers-reduced-motion:reduce){._dotReconnecting_dnl8s_39{animation:none}}._helpIcon_bz60b_6{margin-left:6px;font-size:13px;color:var(--text-tertiary, var(--text-muted, #999));cursor:help;vertical-align:middle}._helpIconBtn_bz60b_14{background:none;border:none;padding:0;margin:0 0 0 6px;cursor:pointer;color:var(--text-tertiary, var(--text-muted, #999));font-size:13px;vertical-align:middle;display:inline-flex;align-items:center}._helpIconBtn_bz60b_14:hover{color:var(--color-primary)}._modelCard_bz60b_30{border:1px solid var(--border-secondary);border-radius:6px;padding:8px 10px;background:var(--bg-container)}._modelName_bz60b_36{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-secondary)}._statsTable_bz60b_44{width:100%;border-collapse:collapse}._th_bz60b_48{padding:2px 12px;font-size:12px;font-family:var(--font-mono);white-space:nowrap;color:var(--text-tertiary);font-weight:400;text-align:right}._td_bz60b_57{padding:2px 12px;font-size:12px;font-family:var(--font-mono);white-space:nowrap;color:var(--text-primary);text-align:right}._label_bz60b_65{padding:2px 12px;font-size:12px;font-family:var(--font-mono);white-space:nowrap;color:var(--text-light);font-weight:400;text-align:left}._rowBorder_bz60b_74{border-bottom:1px solid var(--border-primary)}._rebuildTotalRow_bz60b_77{border-top:1px solid var(--border-light)}._rebuildTotalRow_bz60b_77 td{font-weight:600}._cachePopoverEmpty_bz60b_83{padding:8px 4px;color:var(--text-tertiary);font-size:13px}._toolChipGrid_bz60b_88{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 6px 2px}._cacheToolChip_bz60b_94{font-size:11px;padding:0 6px;border-radius:3px;background:var(--bg-surface);color:var(--text-secondary);line-height:18px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--border-primary);cursor:help}._titleIcon_bz60b_108{margin-right:8px}._detailMarkdownCard_bz60b_113{border:1px solid var(--border-secondary);border-radius:6px;padding:8px 10px;background:var(--bg-container)}._memoryMarkdown_bz60b_120{font-size:12.5px;line-height:1.55;color:var(--text-primary);word-break:break-word}._memoryMarkdown_bz60b_120 p{margin:0 0 6px}._memoryMarkdown_bz60b_120 ul,._memoryMarkdown_bz60b_120 ol{margin:4px 0 6px;padding-left:20px}._memoryMarkdown_bz60b_120 li{margin:2px 0}._memoryMarkdown_bz60b_120 h1,._memoryMarkdown_bz60b_120 h2,._memoryMarkdown_bz60b_120 h3,._memoryMarkdown_bz60b_120 h4{font-size:13px;font-weight:600;margin:8px 0 4px;color:var(--text-primary)}._memoryMarkdown_bz60b_120 h1{font-size:14px}._memoryMarkdown_bz60b_120 a{color:var(--primary-color, #1677ff);text-decoration:none;cursor:pointer}._memoryMarkdown_bz60b_120 a:hover{text-decoration:underline}._memoryMarkdown_bz60b_120 code{font-family:var(--font-mono);font-size:12px;padding:1px 4px;border-radius:3px;background:var(--bg-surface);color:var(--text-primary)}._memoryMarkdown_bz60b_120 pre{margin:6px 0;padding:8px 10px;border-radius:4px;background:var(--bg-surface);overflow-x:auto}._memoryMarkdown_bz60b_120 pre code{padding:0;background:transparent;font-size:12px}._memoryMarkdown_bz60b_120 blockquote{margin:4px 0;padding:2px 8px;border-left:3px solid var(--border-hover);color:var(--text-secondary)}._memoryMarkdown_bz60b_120 hr{margin:8px 0;border:none;border-top:1px solid var(--border-secondary)}._quickMenuGroup_bz60b_191{position:relative}._quickMenuRow_bz60b_195{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;color:var(--text-primary);font-size:13px;padding:6px 12px;text-align:left;cursor:pointer;border-radius:4px;white-space:nowrap}._quickMenuGroup_bz60b_191:hover ._quickMenuRow_bz60b_195,._quickMenuGroupOpen_bz60b_212 ._quickMenuRow_bz60b_195{background:var(--border-secondary)}._quickMenuRowIcon_bz60b_216{display:flex;align-items:center;color:var(--text-tertiary)}._quickMenuRowIcon_bz60b_216 svg{width:14px;height:14px}._quickMenuLabel_bz60b_227{flex:1}._quickMenuValue_bz60b_232{color:var(--text-tertiary);font-size:12px}._quickMenuCaret_bz60b_237{color:var(--text-tertiary);font-size:10px}._quickMenuSubWrap_bz60b_245{display:none;position:absolute;left:100%;bottom:-5px;padding-left:6px;z-index:1}._quickMenuGroupOpen_bz60b_212 ._quickMenuSubWrap_bz60b_245{display:block}._quickMenuSub_bz60b_245{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:8px;padding:4px;min-width:76px;max-height:60vh;overflow-y:auto;box-shadow:0 6px 16px #0000002e}._quickMenuOption_bz60b_275{background:none;border:none;color:var(--text-primary);font-size:13px;padding:5px 12px;text-align:left;cursor:pointer;border-radius:4px;white-space:nowrap}._quickMenuOption_bz60b_275:hover{background:var(--border-secondary)}._quickMenuOption_bz60b_275._quickMenuOptionActive_bz60b_291{color:var(--color-primary);font-weight:500}._headerBar_c6kuq_2{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}._logoWrap_c6kuq_10{display:inline-flex;align-items:center;position:relative;margin-top:14px}._logoWrapActive_c6kuq_17:after{content:"";position:absolute;top:-10px;bottom:-10px;left:0;right:-200px}._logoImage_c6kuq_26{height:24px;width:24px;border-radius:3px;vertical-align:middle;opacity:.75;transition:opacity .2s;cursor:pointer}._logoImageActive_c6kuq_36{opacity:1}._compactBtn_c6kuq_43{font-size:12px;height:30px;display:inline-flex;align-items:center;justify-content:center}._compactBtnNoBorder_c6kuq_52{width:30px;height:30px;min-width:30px;padding:0;border:none;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center}._compactBtnNoBorder_c6kuq_52 .anticon{display:inline-flex;align-items:center;justify-content:center;line-height:0}._headerProjectName_c6kuq_79{font-size:12px;color:inherit;white-space:nowrap}._newProjectPlusBtn_c6kuq_88{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-inline-start:4px;padding:0;background:transparent;border:1px dashed var(--text-muted);border-radius:4px;color:var(--text-muted);font-size:10px;line-height:1;cursor:pointer;transition:color .2s,border-color .2s}._newProjectPlusBtn_c6kuq_88:hover{color:var(--text-primary);border-color:var(--text-primary)}._newProjectPlusBtn_c6kuq_88:focus,._newProjectPlusBtn_c6kuq_88:focus-visible{outline:none}._countdownStrong_c6kuq_117{font-variant-numeric:tabular-nums}._qrcodePopover_c6kuq_122{display:flex;flex-direction:column;align-items:center;padding:8px}._qrcodeSection_c6kuq_129{display:flex;flex-direction:column;align-items:center;padding:16px;margin-bottom:12px;border:1px solid var(--border-secondary);border-radius:8px;background:var(--bg-container)}._qrcodeTitle_c6kuq_140{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:12px}._qrcodeUrlInput_c6kuq_147{margin-top:12px;font-size:12px;font-family:var(--font-mono)}._qrcodeUrlCopy_c6kuq_153{cursor:pointer;color:var(--text-tertiary);transition:color .2s}._qrcodeUrlCopy_c6kuq_153:hover{color:var(--color-primary-light)}._authSection_c6kuq_164{display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;width:100%;margin-top:12px;padding:12px;border:1px solid var(--border-secondary);border-radius:8px;background:var(--bg-container);gap:8px}._authHeaderRow_c6kuq_178{display:flex;align-items:center;justify-content:space-between}._authTitle_c6kuq_184{font-size:13px;font-weight:600;color:var(--text-primary)}._authPasswordLabel_c6kuq_190{font-size:12px;color:var(--text-secondary)}._authPasswordInput_c6kuq_195{font-size:12px;font-family:var(--font-mono)}._authSaveBtn_c6kuq_200{align-self:flex-end}._authEmptyWarn_c6kuq_204{font-size:12px;color:var(--color-error-light);line-height:1.4}._settingsGroupBox_c6kuq_212{border:1px solid var(--border-secondary);border-radius:8px;background:var(--bg-container);padding:4px 16px;margin-bottom:12px}._settingsGroupTitle_c6kuq_220{font-size:14px;font-weight:600;color:var(--text-primary);padding:12px 0 4px;border-bottom:1px solid var(--border-secondary)}._settingsItem_c6kuq_229{display:flex;justify-content:space-between;align-items:center;padding:12px 0}._settingsLabel_c6kuq_236{font-size:14px}._settingsHelpIcon_c6kuq_241{font-size:16px;color:var(--text-disabled);cursor:help;margin-left:4px}._settingsDivider_c6kuq_248{border-top:1px solid var(--border-primary);margin:12px 0}._logDirInput_c6kuq_253{margin-top:8px;background:var(--bg-base-alt);border-color:var(--border-light);color:var(--text-primary);font-family:var(--font-mono);font-size:13px}._claudeExecutableInput_c6kuq_262{width:100%;margin-top:8px;font-family:var(--font-mono);font-size:12px}._claudeExecutableHint_c6kuq_269{margin-top:6px;color:var(--text-tertiary);font-size:12px;line-height:1.5;overflow-wrap:anywhere}._tokenStatsEmpty_c6kuq_278{padding:8px 4px;color:var(--text-tertiary);font-size:13px}._tokenStatsContainer_c6kuq_285{display:flex;gap:12px;align-items:flex-start}._tokenStatsColumn_c6kuq_291{min-width:240px}._toolStatsColumn_c6kuq_295{min-width:180px}._modelCardSpaced_c6kuq_301{margin-bottom:10px}._rebuildCard_c6kuq_310{border:1px solid var(--border-secondary);border-radius:6px;padding:8px 10px;margin-top:10px;background:var(--bg-container)}._promptExportBar_c6kuq_319{margin-bottom:12px}._promptScrollArea_c6kuq_323{max-height:500px;overflow:auto}._promptEmpty_c6kuq_328{color:var(--text-tertiary);padding:12px}._promptTimestamp_c6kuq_334{color:var(--text-muted);font-size:12px;margin:12px 0 4px;padding-bottom:6px}._textPromptCard_c6kuq_342{margin:4px 0;background:var(--bg-container);border-radius:6px;border:1px solid var(--border-secondary);padding:10px 14px}._preText_c6kuq_351{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:var(--text-primary);margin:4px 0}._systemCollapse_c6kuq_361{margin:4px 0;background:var(--bg-elevated);border:1px solid var(--border-secondary);border-radius:6px}._systemLabel_c6kuq_368{color:var(--text-tertiary);font-size:12px}._preSys_c6kuq_373{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:var(--text-tertiary);margin:0}._promptTextarea_c6kuq_383{box-sizing:border-box;background:var(--bg-base-pure);width:100%;min-height:400px;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;line-height:1.6;border:none;resize:vertical;padding:10px 14px;outline:none}._projectStatsCenter_c6kuq_399{display:flex;justify-content:center;padding:40px 0}._projectStatsEmpty_c6kuq_405{color:var(--text-tertiary);padding:40px 0;text-align:center;font-size:13px}._projectStatsContent_c6kuq_412{display:flex;flex-direction:column;gap:16px}._projectStatsUpdated_c6kuq_418{color:var(--text-muted);font-size:12px;text-align:right}._projectStatsSummary_c6kuq_424{display:grid;grid-template-columns:1fr 1fr;gap:10px}._projectStatCard_c6kuq_430{background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:8px;padding:14px 12px;text-align:center}._projectStatValue_c6kuq_438{font-size:22px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono);font-variant-numeric:tabular-nums}._projectStatLabel_c6kuq_446{font-size:12px;color:var(--text-tertiary);margin-top:4px}._projectStatsSection_c6kuq_452{display:flex;flex-direction:column;gap:10px}._projectStatsSectionTitle_c6kuq_458{font-size:14px;font-weight:600;color:var(--text-secondary);padding-bottom:4px;border-bottom:1px solid var(--border-secondary)}._projectStatsModelCard_c6kuq_466{background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:6px;padding:10px 12px}._projectStatsModelHeader_c6kuq_473{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-secondary)}._projectStatsModelName_c6kuq_482{font-size:13px;font-weight:600;color:var(--text-primary)}._projectStatsModelCount_c6kuq_488{font-size:12px;color:var(--text-tertiary);font-family:var(--font-mono)}._cacheCopyBtn_c6kuq_496{font-size:14px;color:var(--text-tertiary);cursor:pointer;transition:color .2s;margin-left:8px}._cacheCopyBtn_c6kuq_496:hover{color:var(--text-primary)}._cacheTokenInfo_c6kuq_508{display:flex;align-items:center;font-size:12px;font-family:var(--font-mono);color:var(--text-light);margin-bottom:8px}._cacheCodeBlock_c6kuq_521{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:var(--text-secondary);background:var(--bg-container);border:1px solid var(--border-primary);border-radius:4px;padding:8px;margin:4px 0;font-family:var(--font-mono)}._cacheCodeBlockSystem_c6kuq_535{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:var(--text-secondary);background:var(--bg-code-system);border:1px solid var(--border-code-system);border-radius:4px;padding:8px;margin:4px 0;font-family:var(--font-mono)}._cacheNavBtn_c6kuq_549{margin-left:auto;font-size:11px;color:var(--color-primary);cursor:pointer;border:1px solid var(--color-primary);border-radius:3px;padding:1px 6px;white-space:nowrap}._cacheNavBtn_c6kuq_549:hover{background:var(--color-primary-bg-light)}._cacheNavList_c6kuq_564{width:600px;max-height:300px;overflow-y:auto}._cacheNavItem_c6kuq_570{padding:4px 8px;font-size:12px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}._cacheNavItem_c6kuq_570:hover{background:var(--color-primary-bg-lighter);color:var(--text-white)}._cacheBlockHighlight_c6kuq_586{box-shadow:0 0 10px var(--color-primary-shadow);transition:box-shadow .2s ease-in}._cacheBlockHighlightFading_c6kuq_591{box-shadow:0 0 10px transparent;transition:box-shadow 3s ease-out}._cacheBorderSvg_c6kuq_596{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._cacheBorderSvgFading_c6kuq_605{opacity:0;transition:opacity 3s ease-out}._cacheBorderRect_c6kuq_610{animation:_cacheDashRotate_c6kuq_1 4s linear infinite}@keyframes _cacheDashRotate_c6kuq_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}._thLeft_c6kuq_620{text-align:left}._cacheWriteToken_c6kuq_635{color:var(--color-code-orange)}._cacheReadToken_c6kuq_639{color:var(--color-success)}._cacheCtxPercent_c6kuq_643{color:var(--text-tertiary);margin-left:6px}._qrcodeIcon_c6kuq_663{width:30px;height:30px;padding:6px;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;border-radius:6px;transition:color .15s ease,background-color .15s ease;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;background:none;border:none}._qrcodeIcon_c6kuq_663:hover{color:var(--text-primary);background:var(--bg-hover, rgba(0, 0, 0, .04))}._qrcodeIcon_c6kuq_663:focus-visible{outline:2px solid var(--primary-color, #1677ff);outline-offset:1px}._approvalBell_c6kuq_689{position:relative;width:30px;height:30px;padding:6px;box-sizing:border-box;color:var(--color-warning, #faad14);cursor:pointer;border-radius:6px;transition:color .15s ease,background-color .15s ease;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;background:none;border:none}._approvalBell_c6kuq_689:hover{color:var(--text-primary);background:var(--bg-hover, rgba(0, 0, 0, .04))}._approvalBell_c6kuq_689:focus-visible{outline:2px solid var(--primary-color, #1677ff);outline-offset:1px}._approvalBellBadge_c6kuq_714{position:absolute;top:0;right:0;min-width:14px;height:14px;padding:0 3px;box-sizing:border-box;background:var(--color-error, #ff4d4f);color:#fff;font-size:9px;line-height:14px;border-radius:7px;text-align:center;font-weight:600}._proxySwapIcon_c6kuq_731{margin-right:4px;font-size:11px}._proxyProfileTag_c6kuq_737{border-radius:12px;background:var(--border-secondary);border:1px solid var(--border-light);color:var(--text-tertiary);font-size:12px;cursor:pointer;transition:color .2s,border-color .2s}._proxyProfileTag_c6kuq_737:hover{color:var(--text-secondary);border-color:var(--text-disabled)}._activeProcessChip_c6kuq_754{margin-inline-start:4px}._projectTabsStrip_c6kuq_762{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:44vw;overflow-x:auto;scrollbar-width:none}._projectTabsStrip_c6kuq_762::-webkit-scrollbar{display:none}._projectTab_c6kuq_762{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;min-width:60px;max-width:180px;border-radius:12px;background:var(--border-secondary);border:1px solid var(--border-light);color:var(--text-tertiary);font-size:12px;line-height:1;white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none;transition:color .2s,border-color .2s,box-shadow .2s;flex-shrink:0;box-sizing:border-box}._projectTab_c6kuq_762:hover{color:var(--text-secondary);border-color:var(--text-disabled)}._projectTabActive_c6kuq_803,._projectTabActive_c6kuq_803:hover{color:var(--color-primary);font-weight:600;background:var(--color-primary-bg-light);border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}._projectTabDot_c6kuq_812{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0}._projectTabRing_c6kuq_822,._projectTabRingActive_c6kuq_823{width:8px;height:8px;border-radius:50%;border:1.6px solid var(--text-muted);border-top-color:transparent;flex-shrink:0;box-sizing:border-box}._projectTabRingActive_c6kuq_823{border-color:var(--color-primary);border-top-color:transparent}._projectTabRingSpin_c6kuq_836{animation:_ccvProjectTabRingSpin_c6kuq_1 .7s linear infinite}._projectTabsStripSpinner_c6kuq_840{align-self:center;margin-right:2px}@keyframes _ccvProjectTabRingSpin_c6kuq_1{to{transform:rotate(360deg)}}._projectTabName_c6kuq_847{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}._projectTabIdx_c6kuq_856{flex-shrink:0;white-space:nowrap}._projectTabClose_c6kuq_860{width:16px;height:16px;padding:0;border:none;border-radius:3px;background:none;color:inherit;font-size:12px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s,color .15s;flex-shrink:0}._projectTabActive_c6kuq_803 ._projectTabClose_c6kuq_860,._projectTab_c6kuq_762:hover ._projectTabClose_c6kuq_860,._projectTab_c6kuq_762:focus-within ._projectTabClose_c6kuq_860{opacity:1}._projectTabClose_c6kuq_860:hover{background:var(--border-light);color:var(--text-primary)}._pinnedShortcut_c6kuq_892{height:24px;margin-top:11px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;color:var(--text-tertiary);opacity:.75;cursor:pointer;transition:opacity .2s,color .2s}._pinnedShortcut_c6kuq_892:hover{opacity:1;color:var(--text-secondary)}._pinnedShortcut_c6kuq_892 .anticon{display:inline-flex;align-items:center;justify-content:center;line-height:0}._themeToggle_c6kuq_921{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:30px;height:30px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background-color .2s ease,color .2s ease;flex-shrink:0;outline:none}._themeToggle_c6kuq_921:hover{background:var(--color-bg-hover, rgba(127, 127, 127, .12));color:var(--text-primary)}._themeToggle_c6kuq_921:focus-visible{box-shadow:0 0 0 2px var(--primary-color, #1677ff)}._themeToggleIcon_c6kuq_947{display:block}._headerRightRow_c6kuq_952 .ant-space-item{display:inline-flex;align-items:center}._headerCountdownTag_c6kuq_958{height:30px;margin:0;padding:0 10px;display:inline-flex;align-items:center;background:var(--bg-surface);border:1px solid var(--border-hover);border-radius:6px;line-height:1}._centerEmpty_1ivpu_1{display:flex;align-items:center;justify-content:center;height:100%}._scrollContainer_1ivpu_8{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;will-change:scroll-position}._listItem_1ivpu_15{cursor:pointer;padding:8px 12px;border-left:6px solid transparent;border-right:1px solid var(--border-primary);border-top:1px solid transparent;border-bottom:1px solid var(--border-primary);transition:background .15s}._listItem_1ivpu_15:hover{border-left-color:var(--border-hover)}._listItemActive_1ivpu_29{background:var(--color-primary-bg-faint);border-left-color:var(--color-primary-light);border-right:1px solid var(--color-primary-light);border-top:1px solid var(--color-primary-light);border-bottom:1px solid var(--color-primary-light)}._listItemActive_1ivpu_29,._listItemActive_1ivpu_29:hover{background:var(--color-primary-bg-faint);border-left-color:var(--color-primary-light);border-right-color:var(--color-primary-light);border-top-color:var(--color-primary-light);border-bottom-color:var(--color-primary-light)}._itemContent_1ivpu_46{width:100%;min-width:0}._itemHeader_1ivpu_51{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}._tagNoMargin_1ivpu_59{margin:0;font-size:12px}._modelName_1ivpu_64{font-size:12px;color:var(--text-tertiary)}._modelNameMain_1ivpu_69{color:var(--color-code-orange)}._time_1ivpu_73{font-size:12px;color:var(--text-gray);margin-left:auto}._detailRow_1ivpu_79{display:flex;gap:8px;font-size:12px;align-items:center}._urlText_1ivpu_86{color:var(--text-disabled);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}._duration_1ivpu_95{color:var(--text-gray);flex-shrink:0}._statusOk_1ivpu_100{color:var(--color-success);opacity:.5;flex-shrink:0}._statusErr_1ivpu_106{color:var(--color-error);flex-shrink:0}._statusDefault_1ivpu_111{color:var(--text-tertiary);flex-shrink:0}._usageBox_1ivpu_116{background:var(--bg-container);border-radius:4px;padding:3px 6px;margin-top:4px;font-size:12px;color:var(--text-gray);line-height:1.6}._cacheDot_1ivpu_126{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 3px;vertical-align:middle}._cacheDotLoss_1ivpu_135{background-color:var(--color-red-dark-bg);cursor:help}._cacheDotNormal_1ivpu_140{background-color:var(--border-hover)}._cacheDotTools_1ivpu_145{background-color:var(--color-code-purple);box-shadow:0 0 0 1.5px var(--color-purple-border)}._tagMainAgent_1ivpu_150{color:var(--color-code-orange);border-color:var(--color-code-orange-border);background:var(--color-code-orange-bg)}._tagPlan_1ivpu_156{color:var(--color-error-muted);border-color:var(--color-error-muted);background-color:var(--bg-base-pure)}._tagMuted_1ivpu_162{color:var(--text-muted);border-color:var(--border-light);background-color:var(--bg-base-pure)}._tooltipPreLine_1ivpu_168{white-space:pre-line}._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_b5r6a_1{background:var(--bg-container);border-radius:6px;border:1px solid var(--border-primary);padding:12px;font-size:13px;font-family:var(--font-mono);overflow:auto}._root_5oh1m_1{display:flex;height:100%;min-height:0;gap:0}._sidebar_5oh1m_9{width:220px;flex-shrink:0;border-right:1px solid var(--border-primary);overflow-y:auto;padding:4px 0;-webkit-overflow-scrolling:touch}._section_5oh1m_18{-webkit-user-select:none;user-select:none}._sectionHeader_5oh1m_22{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;cursor:pointer;color:var(--text-primary);font-size:12px;font-weight:600;transition:background .15s;background:none;border:0;text-align:left;font:inherit}._sectionHeader_5oh1m_22:hover{background:var(--overlay-light-faint)}._sectionHeader_5oh1m_22:focus-visible{outline:1px solid var(--color-primary-outline);outline-offset:-1px}._arrow_5oh1m_48{font-size:10px;color:var(--text-tertiary);flex-shrink:0}._sectionTitle_5oh1m_54{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._sectionCount_5oh1m_62{font-size:11px;color:var(--text-muted);background:var(--bg-elevated);border-radius:10px;padding:0 6px;line-height:18px}._sectionBody_5oh1m_71{padding:2px 0}._historyToggle_5oh1m_76{display:flex;align-items:center;gap:6px;width:100%;padding:4px 10px 4px 14px;cursor:pointer;color:var(--text-muted);font-size:11px;transition:color .15s,background .15s;background:none;border:0;text-align:left;font:inherit}._historyToggle_5oh1m_76:hover{color:var(--text-tertiary);background:var(--overlay-light-faint)}._historyToggle_5oh1m_76:focus-visible{outline:1px solid var(--color-primary-outline);outline-offset:-1px}._historyToggleLabel_5oh1m_102{flex:1}._item_5oh1m_107{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 9px 4px 23px;font-size:12px;color:var(--text-tertiary);cursor:pointer;transition:background .15s,color .15s;background:none;border:1px solid transparent;border-radius:4px;box-sizing:border-box;text-align:left;font:inherit}._item_5oh1m_107:hover{background:var(--overlay-light-faint);color:var(--text-primary)}._item_5oh1m_107:focus-visible{outline:1px solid var(--color-primary-outline);outline-offset:-1px}._itemActive_5oh1m_135,._itemActive_5oh1m_135:hover{background:var(--color-primary-bg-faint);color:var(--color-primary);border-color:var(--color-primary-light)}._itemContent_5oh1m_142{flex:1;min-width:0;overflow:hidden}._itemLabel_5oh1m_148{font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}._itemSublabel_5oh1m_156{font-size:10px;color:var(--text-disabled);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}._itemTime_5oh1m_165{font-size:9px;color:var(--text-disabled);flex-shrink:0;margin-left:4px;font-family:var(--font-mono)}._contentWrap_5oh1m_176{flex:1;min-width:0;display:flex;flex-direction:column}._content_5oh1m_174{flex:1;min-width:0;min-height:0;overflow:auto;padding:12px 16px;-webkit-overflow-scrolling:touch}._contentEmpty_5oh1m_192{height:100%;display:flex;align-items:center;justify-content:center}._contentInner_5oh1m_199{padding-bottom:20px}._emptyWrap_5oh1m_203{display:flex;align-items:center;justify-content:center;height:200px}._roleHeader_5oh1m_211{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:nowrap}._roleBadge_5oh1m_219{font-size:10px;font-weight:600;letter-spacing:.04em;padding:2px 7px;border-radius:4px;flex-shrink:0}._role_user_5oh1m_228{background:var(--color-primary-bg-lighter);color:var(--color-primary-lighter);border:1px solid var(--color-primary-bg-medium)}._role_assistant_5oh1m_234{background:var(--color-purple-bg);color:var(--color-code-purple);border:1px solid var(--color-purple-border)}._role_system_5oh1m_240{background:var(--color-warning-bg-faint);color:var(--color-warning);border:1px solid var(--color-warning-border-light)}._roleLabel_5oh1m_246{font-size:11px;color:var(--text-muted);flex:1;min-width:0}._contentTime_5oh1m_253{margin-left:auto;font-size:10px;color:var(--text-disabled);font-family:var(--font-mono);flex-shrink:0}._stepDivider_5oh1m_261{border:none;border-top:1px solid var(--border-primary);margin:14px 0}._textBlock_5oh1m_268{margin-bottom:8px;border:1px solid var(--border-primary);border-radius:6px;overflow:hidden}._textBlockBar_5oh1m_275{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-container);border-bottom:1px solid var(--border-primary)}._textBlockBody_5oh1m_284{padding:10px 12px;font-size:13px;line-height:1.7;color:var(--text-primary);word-break:break-word}._textBlockCompact_5oh1m_292{position:relative;padding:8px 10px;font-size:12px;color:var(--text-light)}._textBlockCompactFloat_5oh1m_299{float:right;margin-left:6px;margin-bottom:2px}._thinkingBlock_5oh1m_306{margin-bottom:8px;border:1px solid var(--color-thinking-border);border-radius:6px;overflow:hidden;background:var(--color-thinking-bg)}._thinkingHeader_5oh1m_314{display:flex;align-items:center;gap:6px;padding:5px 10px;cursor:pointer;font-size:12px;color:var(--text-tertiary);transition:background .15s}._thinkingHeader_5oh1m_314:hover{background:var(--overlay-light-faint)}._thinkingPreview_5oh1m_329{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:11px}._thinkingBody_5oh1m_339{padding:8px 12px;border-top:1px solid var(--color-thinking-border)}._toolBlock_5oh1m_345{margin-bottom:8px;border:1px solid var(--border-primary);border-radius:6px;overflow:hidden}._toolBlockResult_5oh1m_352{border-color:var(--color-green-border)}._toolBlockError_5oh1m_356{border-color:var(--color-red-dark-border)}._toolBlockHeader_5oh1m_360{display:flex;align-items:center;gap:8px;padding:5px 10px;background:var(--bg-container);border-bottom:1px solid var(--border-primary);font-size:12px;flex-wrap:wrap}._toolBlockBody_5oh1m_371{padding:8px 10px;font-size:12px}._toolName_5oh1m_376{color:var(--text-primary);font-weight:500;font-family:var(--font-mono)}._toolId_5oh1m_382{color:var(--text-disabled);font-size:10px;font-family:var(--font-mono);margin-left:auto}._errorLabel_5oh1m_389{font-size:10px;color:var(--color-error-light);background:var(--color-error-bg-light);border:1px solid var(--color-error-border);border-radius:3px;padding:1px 5px}._blockTag_5oh1m_399{font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:3px;background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-primary);flex-shrink:0}._blockTagText_5oh1m_412{background:var(--color-primary-bg-faint);color:var(--color-primary-lighter);border-color:var(--color-primary-bg-lighter)}._blockTagThinking_5oh1m_418{background:var(--color-warning-bg-faint);color:var(--color-warning);border-color:var(--color-warning-border-light)}._blockTagResult_5oh1m_424{background:var(--color-green-dark-bg);color:var(--color-success);border-color:var(--color-green-dark-border)}._blockTagError_5oh1m_430{background:var(--color-error-bg-faint);color:var(--color-error-light);border-color:var(--color-error-border-light)}._jsonBlock_5oh1m_437{margin-bottom:8px;border:1px solid var(--border-primary);border-radius:6px;overflow:hidden}._jsonBlockLabel_5oh1m_444{font-size:10px;color:var(--text-muted);padding:3px 10px;background:var(--bg-container);border-bottom:1px solid var(--border-primary);font-family:var(--font-mono)}._blockSeparator_5oh1m_454{border:none;border-top:1px solid var(--border-primary);margin:16px 0}._markdownBody_5oh1m_461{font-size:13px;line-height:1.7;color:var(--text-primary);word-break:break-word}._contentToolbar_5oh1m_469{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:8px 16px 0;flex-shrink:0}._contentToolbarLabel_5oh1m_478{font-size:11px;color:var(--text-muted)}._rawPre_5oh1m_484{background:var(--bg-code-dark);border:1px solid var(--border-primary);border-radius:6px;padding:12px;font-size:12px;color:var(--text-primary);white-space:pre-wrap;word-break:break-all;margin:0}._toolAdded_5oh1m_497{color:var(--color-success)}._toolRemoved_5oh1m_501{color:var(--color-error);text-decoration:line-through}._toolDiffTag_5oh1m_506{margin-left:6px;font-size:9px;font-family:var(--font-ui);text-decoration:none;opacity:.85}._toolDiffSummary_5oh1m_514{margin-left:6px;font-size:11px;font-family:var(--font-mono);display:inline-flex;gap:4px;flex-shrink:0}._toolDiffSummaryAdd_5oh1m_523{color:var(--color-success)}._toolDiffSummaryRemove_5oh1m_527{color:var(--color-error)}._container_1958y_1{height:100%;overflow:hidden;padding:0 16px;display:flex;flex-direction:column;background:var(--bg-base)}._emptyState_1958y_10{display:flex;align-items:center;justify-content:center;height:100%}._urlSection_1958y_17{padding:12px 0;border-bottom:1px solid var(--border-primary);display:flex;align-items:flex-start;flex-shrink:0}._urlLeft_1958y_25{flex:1;min-width:0}._tokenStatsBox_1958y_30{flex-shrink:0;padding-left:12px;display:flex;align-items:center}._tokenGrid_1958y_37{display:flex;border:1px solid var(--border-secondary);border-radius:6px;overflow:hidden;min-width:360px;font-size:11px;line-height:1.6}._tokenRows_1958y_47{flex:1}._tokenRow_1958y_47{display:flex}._tokenRowBorder_1958y_55{border-top:1px solid var(--border-secondary)}._tokenLabel_1958y_59{color:var(--text-tertiary);padding:4px 8px;white-space:nowrap;font-weight:600}._tokenTd_1958y_66{flex:1;color:var(--text-primary);text-align:right;padding:4px 8px;font-family:var(--font-mono);white-space:nowrap}._tokenHitRate_1958y_75{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-primary);padding:4px 8px;font-family:var(--font-mono);white-space:nowrap;border-left:1px solid var(--border-secondary);min-width:100px}._tokenHitRateLabel_1958y_88{color:var(--text-tertiary);font-size:10px;font-family:var(--font-ui)}._tokenRowBorder_1958y_55 td{border-top:1px solid var(--border-secondary)}._urlText_1958y_98{color:var(--text-primary);font-size:13px;margin-bottom:8px;word-break:break-all}._metaText_1958y_105,._headersContainer_1958y_109{font-size:12px}._headerRow_1958y_113{display:flex;padding:4px 0;border-bottom:1px solid var(--border-primary)}._headerKey_1958y_119{min-width:200px;flex-shrink:0}._headerValue_1958y_124{word-break:break-all;margin-left:8px}._streamingBox_1958y_129{padding:20px;background:var(--bg-elevated);border-radius:6px;border:1px solid var(--border-primary)}._bodyToolbar_1958y_136{display:flex;gap:8px;margin-bottom:8px}._rawTextPre_1958y_142{background:var(--bg-code-dark);border:1px solid var(--border-primary);border-radius:6px;padding:12px;font-size:12px;color:var(--text-primary);overflow:auto;max-height:600px;white-space:pre-wrap;word-break:break-all}._tabContent_1958y_155{padding:16px 0 0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}._collapseSpacing_1958y_163{margin-bottom:16px}._bodyLabel_1958y_167{margin:0}._bodyHeader_1958y_171{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}._diffSection_1958y_178{margin-bottom:16px}._diffToggle_1958y_182{display:inline-block;margin-bottom:8px;cursor:pointer}._diffIcon_1958y_188{font-size:12px;margin-left:4px}._viewInChatBtn_1958y_193{display:inline-flex;align-items:center;height:26px;border-radius:13px;border:1px solid var(--border-light);background:#0000;color:var(--text-tertiary);cursor:pointer;font-size:12px;transition:all .2s;padding:0 10px;white-space:nowrap}._viewInChatBtn_1958y_193:hover{border-color:var(--text-muted);color:var(--text-primary);background:var(--overlay-light-faint)}._reminderSelect_1958y_214{min-width:140px;font-size:12px}._reminderSelect_1958y_214 .ant-select-selector.ant-select-selector{border-radius:2px;border-color:var(--border-light);background:#0000;min-height:26px;height:auto;padding:0 8px;font-family:var(--font-mono)}._reminderSelect_1958y_214 .ant-select-selection-placeholder{font-size:11px}._diffHeaderRow_1958y_233{display:flex;align-items:center;gap:8px}._diffSpaceRight_1958y_239{margin-left:auto}._reminderFilterWrapper_1958y_243{display:inline-flex;align-items:center;gap:4px}._reminderLabel_1958y_249{color:var(--text-tertiary);font-size:12px;font-family:var(--font-mono)}._cacheTabContent_1958y_255{padding-top:0;overflow:hidden}._userPromptList_1958y_260{width:600px;max-height:300px;overflow-y:auto}._userPromptItem_1958y_266{padding:4px 8px;font-size:12px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}._userPromptNavBtn_1958y_277{margin-left:auto;font-size:11px;color:var(--color-primary);cursor:pointer;border:1px solid var(--color-primary);border-radius:3px;padding:1px 6px;white-space:nowrap}._cacheContent_1958y_288{padding:8px 0;height:100%;display:flex;flex-direction:column}._cacheTokenBar_1958y_295{display:flex;align-items:center;font-size:12px;font-family:var(--font-mono);color:var(--text-light);margin-bottom:12px;flex-shrink:0}._cacheTokenWrite_1958y_305{color:var(--color-code-orange)}._cacheTokenRead_1958y_309{color:var(--color-success)}._cacheCopyIcon_1958y_313{margin-left:8px;cursor:pointer;color:var(--text-tertiary);transition:color .2s}._cacheScrollArea_1958y_320{flex:1;overflow-y:auto;min-height:0}._cacheSectionBlock_1958y_326{margin-bottom:12px}._cacheSectionHeader_1958y_330{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:6px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px}._cacheCollapseArrow_1958y_342{display:inline-block;transition:transform .2s;font-size:10px}._cachePre_1958y_348{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:var(--text-secondary);background:var(--bg-container);border:1px solid var(--border-primary);border-radius:4px;padding:8px;margin:4px 0;font-family:var(--font-mono)}._cacheHighlightSvg_1958y_362{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._cachePreSystem_1958y_371{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:var(--text-secondary);background:var(--bg-code-system);border:1px solid var(--border-code-system);border-radius:4px;padding:8px;margin:4px 0;font-family:var(--font-mono)}._container_1958y_1 .ant-tabs>.ant-tabs-nav{margin-bottom:0}._container_1958y_1 .ant-tabs{flex:1;min-height:0;display:flex;flex-direction:column}._container_1958y_1 .ant-tabs>.ant-tabs-content-holder{flex:1;min-height:0}._container_1958y_1 .ant-tabs-content,._container_1958y_1 .ant-tabs-tabpane-active{height:100%}._resizer_pzn4b_1{width:6px;cursor:col-resize;background:var(--bg-elevated);flex-shrink:0;transition:background .2s}._resizer_pzn4b_1:hover{background:var(--color-primary-light)}._flag_1q4ri_3{display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1;cursor:help;-webkit-user-select:none;user-select:none;height:14px;background:none;border:none;padding:0;color:inherit;font-family:inherit}._flag_1q4ri_3:focus-visible{outline:2px solid var(--primary-color, #1677ff);outline-offset:2px;border-radius:2px}._popover_1q4ri_27{color:var(--text-secondary);font-size:13px;line-height:22px}._meta_1q4ri_33{color:var(--text-tertiary);font-size:12px}._usagePill_4carx_4{position:relative;display:inline-flex;align-items:center;justify-content:flex-start;border-radius:999px;border:1px solid;border-color:var(--text-disabled);color:var(--text-disabled);padding:0 7px;height:15px;font-size:11px;line-height:1;overflow:hidden;white-space:nowrap;cursor:default;background:var(--bg-base-pure)}._usageFill_4carx_12{position:absolute;left:0;top:0;bottom:0;width:var(--usage-percent, 0);background-color:#999;opacity:.2;transition:width .5s ease;pointer-events:none}._usageContent_4carx_38{position:relative;z-index:1;display:inline-flex;align-items:center}._usageText_4carx_45{font-variant-numeric:tabular-nums}._pop_4carx_50{min-width:220px;font-size:12px;color:var(--text-primary)}._popTitle_4carx_56{font-weight:600;margin-bottom:6px}._popTable_4carx_62{border-collapse:collapse}._popTable_4carx_62 td{padding-top:3px;padding-bottom:3px;vertical-align:middle}._tdName_4carx_67{color:var(--text-secondary);padding-right:5px;white-space:nowrap}._tdBar_4carx_67{padding-right:5px;white-space:nowrap}._tdReset_4carx_85{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}._bar_4carx_94{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100px;height:14px;border-radius:999px;border:1px solid var(--text-disabled);overflow:hidden;background:var(--bg-base-pure);vertical-align:middle}._barFill_4carx_108{position:absolute;left:0;top:0;bottom:0;background-color:var(--text-secondary);opacity:.15;pointer-events:none}._barText_4carx_118{position:relative;z-index:1;font-size:11px;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-primary)}
|