zen-gitsync 2.17.21 → 2.17.22
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 +16 -10
- package/package.json +7 -1
- package/scripts/release.js +214 -82
- package/src/ui/public/assets/{AgentEngineSelector-D_8VedA0.js → AgentEngineSelector-Dtvp5u3j.js} +1 -1
- package/src/ui/public/assets/{AgentView-CpKIfQLq.js → AgentView-BzfjNz7k.js} +1 -1
- package/src/ui/public/assets/{AppVersionBadge-kyk4Mmvf.js → AppVersionBadge-DAAnAFNp.js} +2 -2
- package/src/ui/public/assets/{BranchSelector-BUPiKcdW.js → BranchSelector-C20zVkp_.js} +1 -1
- package/src/ui/public/assets/{CommitForm-CMe1gjY-.js → CommitForm-COc-NwA8.js} +1 -1
- package/src/ui/public/assets/{CommonDialog-DMWtstZq.js → CommonDialog-B7r-EaIr.js} +1 -1
- package/src/ui/public/assets/EditorView-CWCzo4aE.js +1 -0
- package/src/ui/public/assets/{EditorView-mUmFBb7H.css → EditorView-DnMiWg3T.css} +1 -1
- package/src/ui/public/assets/{FileDiffViewer-CvN5b1ZC.js → FileDiffViewer-7HZ_CW13.js} +1 -1
- package/src/ui/public/assets/{FlowExecutionViewer-Ynr4q8qE.js → FlowExecutionViewer-YKYhtKmd.js} +1 -1
- package/src/ui/public/assets/{FlowOrchestrationWorkspace-DPDZc9uf.js → FlowOrchestrationWorkspace-Bg5pSrGY.js} +1 -1
- package/src/ui/public/assets/{IconButton-CFJkDLVG.js → IconButton-CyEyp9_D.js} +1 -1
- package/src/ui/public/assets/{LogList-CbfsCVsy.js → LogList-B0YcWT9U.js} +1 -1
- package/src/ui/public/assets/{MindmapView-D8A1V-Fd.js → MindmapView-CJI789Gz.js} +1 -1
- package/src/ui/public/assets/{MonitorView-Bm_vUP8Y.js → MonitorView-DVrInkz0.js} +1 -1
- package/src/ui/public/assets/{ProjectStartupButton-BBND5XcZ.js → ProjectStartupButton-BGrtaPiJ.js} +1 -1
- package/src/ui/public/assets/RecentDirectoriesChat-BsM5qfRX.js +1 -0
- package/src/ui/public/assets/RecentDirectoriesChat-vHT8jMxW.css +1 -0
- package/src/ui/public/assets/{RemoteManagerDialog-BVQeIr8U.js → RemoteManagerDialog-fGsXehZF.js} +1 -1
- package/src/ui/public/assets/{RemoteRepoCard-vuCu_cpA.js → RemoteRepoCard-CYXYYtM8.js} +1 -1
- package/src/ui/public/assets/{SourceMapView-BZjgxQM8.js → SourceMapView-BNyHS4uU.js} +1 -1
- package/src/ui/public/assets/{SvgIcon-D0hK-p1U.js → SvgIcon-Cgmy9qD6.js} +1 -1
- package/src/ui/public/assets/{TemplateManager-XoPZv_i6.js → TemplateManager-DUPI3yBg.js} +1 -1
- package/src/ui/public/assets/{UserInputNode-CZarmsrv.js → UserInputNode-DUbPMxsr.js} +1 -1
- package/src/ui/public/assets/WorkbenchView-AbJMHSJy.js +6 -0
- package/src/ui/public/assets/WorkbenchView-D8wqeEiu.css +1 -0
- package/src/ui/public/assets/{_plugin-vue_export-helper-N8Vc5eEs.js → _plugin-vue_export-helper-DBFEfstn.js} +4 -4
- package/src/ui/public/assets/{agentConversations-Da7zLPfP.js → agentConversations-CuFU_pdW.js} +1 -1
- package/src/ui/public/assets/configStore-6xFSX9E5.js +1 -0
- package/src/ui/public/assets/{gitStore-grKwgyHH.js → gitStore-BoFStoL3.js} +1 -1
- package/src/ui/public/assets/{index-BHYAwndE.js → index-BVkLqLHo.js} +5 -5
- package/src/ui/public/assets/{previewSandbox-D4455rKO.js → previewSandbox-BzitUMhT.js} +1 -1
- package/src/ui/public/index.html +10 -10
- package/src/ui/server/routes/config.js +4 -1
- package/src/ui/server/routes/workbench/index.js +15 -6
- package/src/ui/server/routes/workbench/jobActivity.js +254 -0
- package/src/ui/server/routes/workbench/jobActivity.test.js +270 -0
- package/src/ui/server/routes/workbench/liveJobs.js +3 -0
- package/src/ui/server/routes/workbench/orchestratorStore.js +53 -2
- package/src/ui/server/routes/workbench/orchestratorStore.progressReport.test.js +177 -0
- package/src/ui/server/routes/workbench/progressReport.js +54 -47
- package/src/ui/server/routes/workbench/progressReport.test.js +73 -42
- package/src/ui/server/routes/workbench/projectRegistry.js +28 -2
- package/src/ui/server/routes/workbench/projectRegistry.test.js +72 -0
- package/src/ui/server/routes/workbench/taskRunner.js +9 -0
- package/src/utils/selfUpdatePolicy.js +123 -0
- package/src/utils/selfUpdatePolicy.test.js +204 -0
- package/src/ui/public/assets/EditorView-C6msf9YP.js +0 -1
- package/src/ui/public/assets/RecentDirectoriesChat-BQbncY1L.css +0 -1
- package/src/ui/public/assets/RecentDirectoriesChat-D9fMFh8r.js +0 -1
- package/src/ui/public/assets/WorkbenchView-BLyXsdYw.css +0 -1
- package/src/ui/public/assets/WorkbenchView-CPur8WEj.js +0 -6
- package/src/ui/public/assets/configStore-BFb0I8eP.js +0 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
// Copyright 2026 xz333221
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// src/utils/selfUpdatePolicy.js 纯函数单元测试(node:test 内置)。
|
|
16
|
+
//
|
|
17
|
+
// 回归的核心一条:v2.17.21 那次 release 里 35 轮探针全报 404,结果是
|
|
18
|
+
// "npm install 一次都没真跑过"。这里用同样的输入序列断言"必须拿到真装机会"。
|
|
19
|
+
import { test } from 'node:test'
|
|
20
|
+
import assert from 'node:assert/strict'
|
|
21
|
+
import {
|
|
22
|
+
shouldAttemptInstall,
|
|
23
|
+
shouldFinalAttempt,
|
|
24
|
+
nextPollIntervalMs,
|
|
25
|
+
classifyInstallError,
|
|
26
|
+
FORCE_INSTALL_EVERY,
|
|
27
|
+
} from './selfUpdatePolicy.js'
|
|
28
|
+
|
|
29
|
+
const MISSING = { ok: false, status: 404 }
|
|
30
|
+
const NET_ERROR = { ok: false, status: 0, error: 'fetch failed' }
|
|
31
|
+
const OK = { ok: true, status: 206 }
|
|
32
|
+
|
|
33
|
+
// ========== 两个就绪信号 ==========
|
|
34
|
+
|
|
35
|
+
test('shouldAttemptInstall: packument 已有该版本 → 真装(即使探针说 404)', () => {
|
|
36
|
+
const plan = shouldAttemptInstall({ attempt: 1, probe: MISSING, packumentHasVersion: true })
|
|
37
|
+
assert.deepEqual(plan, { attempt: true, reason: 'packument-ready' })
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
test('shouldAttemptInstall: tarball 已可取 → 真装', () => {
|
|
41
|
+
const plan = shouldAttemptInstall({ attempt: 1, probe: OK, packumentHasVersion: false })
|
|
42
|
+
assert.deepEqual(plan, { attempt: true, reason: 'tarball-ready' })
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
test('shouldAttemptInstall: packument 优先于 tarball(两条路都在时按前者排 spec)', () => {
|
|
46
|
+
const plan = shouldAttemptInstall({ attempt: 1, probe: OK, packumentHasVersion: true })
|
|
47
|
+
assert.equal(plan.reason, 'packument-ready')
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
// ========== 探针"没结论"不许当结果 ==========
|
|
51
|
+
|
|
52
|
+
test('shouldAttemptInstall: 探针网络失败(status=0)→ 真装,不跳过', () => {
|
|
53
|
+
const plan = shouldAttemptInstall({ attempt: 1, probe: NET_ERROR, packumentHasVersion: false })
|
|
54
|
+
assert.deepEqual(plan, { attempt: true, reason: 'probe-failed' })
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
test('shouldAttemptInstall: 探针带 error 字段 → 真装,不跳过', () => {
|
|
58
|
+
const plan = shouldAttemptInstall({
|
|
59
|
+
attempt: 2,
|
|
60
|
+
probe: { ok: false, status: 0, error: 'ECONNRESET' },
|
|
61
|
+
packumentHasVersion: false,
|
|
62
|
+
})
|
|
63
|
+
assert.equal(plan.attempt, true)
|
|
64
|
+
assert.equal(plan.reason, 'probe-failed')
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
test('shouldAttemptInstall: 拿不到探针结果(undefined/null)→ 真装,不跳过', () => {
|
|
68
|
+
for (const probe of [undefined, null]) {
|
|
69
|
+
const plan = shouldAttemptInstall({ attempt: 1, probe, packumentHasVersion: false })
|
|
70
|
+
assert.equal(plan.attempt, true, `probe=${probe} 时必须真装`)
|
|
71
|
+
assert.equal(plan.reason, 'probe-failed')
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
test('shouldAttemptInstall: 老 Node 拿不到 fetch 时的 unknown 形态 → 真装', () => {
|
|
76
|
+
const plan = shouldAttemptInstall({
|
|
77
|
+
attempt: 1,
|
|
78
|
+
probe: { ok: true, unknown: true },
|
|
79
|
+
packumentHasVersion: false,
|
|
80
|
+
})
|
|
81
|
+
assert.deepEqual(plan, { attempt: true, reason: 'tarball-ready' })
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
// ========== 明确 404:可以跳过,但必须按期强制真试 ==========
|
|
85
|
+
|
|
86
|
+
test('shouldAttemptInstall: 探针 404 且未到强制轮 → 跳过', () => {
|
|
87
|
+
for (const attempt of [1, 2, 3]) {
|
|
88
|
+
const plan = shouldAttemptInstall({ attempt, probe: MISSING, packumentHasVersion: false })
|
|
89
|
+
assert.equal(plan.attempt, false, `第 ${attempt} 轮不该跳过以外的行为`)
|
|
90
|
+
assert.equal(plan.reason, 'probe-says-missing')
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
test('shouldAttemptInstall: 探针 404,第 4/8 轮强制真试', () => {
|
|
95
|
+
for (const attempt of [4, 8, 12]) {
|
|
96
|
+
const plan = shouldAttemptInstall({ attempt, probe: MISSING, packumentHasVersion: false })
|
|
97
|
+
assert.deepEqual(plan, { attempt: true, reason: 'forced' }, `第 ${attempt} 轮应强制`)
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
test('shouldAttemptInstall: 探针回 403/500 等非 404 状态 → 同样按强制节奏,不当成"可取"', () => {
|
|
102
|
+
const early = shouldAttemptInstall({ attempt: 1, probe: { ok: false, status: 500 }, packumentHasVersion: false })
|
|
103
|
+
assert.equal(early.attempt, false)
|
|
104
|
+
const forced = shouldAttemptInstall({ attempt: 4, probe: { ok: false, status: 500 }, packumentHasVersion: false })
|
|
105
|
+
assert.equal(forced.reason, 'forced')
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
test('shouldAttemptInstall: forceEvery=0 关闭强制 → 404 一直跳过(只有探针/超时兜底)', () => {
|
|
109
|
+
for (const attempt of [1, 4, 8, 40]) {
|
|
110
|
+
const plan = shouldAttemptInstall({
|
|
111
|
+
attempt,
|
|
112
|
+
probe: MISSING,
|
|
113
|
+
packumentHasVersion: false,
|
|
114
|
+
forceEvery: 0,
|
|
115
|
+
})
|
|
116
|
+
assert.equal(plan.attempt, false)
|
|
117
|
+
}
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
test('shouldAttemptInstall: forceEvery 可覆盖(测试/调参用)', () => {
|
|
121
|
+
const plan = shouldAttemptInstall({
|
|
122
|
+
attempt: 2,
|
|
123
|
+
probe: MISSING,
|
|
124
|
+
packumentHasVersion: false,
|
|
125
|
+
forceEvery: 2,
|
|
126
|
+
})
|
|
127
|
+
assert.equal(plan.reason, 'forced')
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
// ========== 事故回归:35 轮全 404,不许零真试 ==========
|
|
131
|
+
|
|
132
|
+
test('回归 v2.17.21:探针连续 35 轮 404 时,真试次数必须 ≥ 8 且第 4 轮就开始', () => {
|
|
133
|
+
const attempts = []
|
|
134
|
+
for (let attempt = 1; attempt <= 35; attempt += 1) {
|
|
135
|
+
const plan = shouldAttemptInstall({ attempt, probe: MISSING, packumentHasVersion: false })
|
|
136
|
+
if (plan.attempt) attempts.push(attempt)
|
|
137
|
+
}
|
|
138
|
+
// 旧实现:attempts 为空(probe.ok 恒 false → 一次 npm 都没调)
|
|
139
|
+
assert.ok(attempts.length > 0, '不允许出现"整轮零真试"')
|
|
140
|
+
assert.equal(attempts[0], FORCE_INSTALL_EVERY, '第 4 轮就必须开始真试,而不是等满 600s')
|
|
141
|
+
assert.ok(attempts.length >= 8, `600s(35 轮)里至少 8 次真装机会,实际 ${attempts.length}`)
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
// ========== 超时前的最后一次真试 ==========
|
|
145
|
+
|
|
146
|
+
test('shouldFinalAttempt: 整轮没真装过 → 补最后一次', () => {
|
|
147
|
+
assert.equal(shouldFinalAttempt({ installAttempts: 0, lastRoundAttempted: false }), true)
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
test('shouldFinalAttempt: 最后一轮刚试过 → 不补(几秒前才失败,再试无意义)', () => {
|
|
151
|
+
assert.equal(shouldFinalAttempt({ installAttempts: 9, lastRoundAttempted: true }), false)
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
test('shouldFinalAttempt: 试过但最后一轮在跳过 → 仍补一次', () => {
|
|
155
|
+
assert.equal(shouldFinalAttempt({ installAttempts: 8, lastRoundAttempted: false }), true)
|
|
156
|
+
})
|
|
157
|
+
|
|
158
|
+
// ========== 轮询间隔退避(窗口从 600s 提到 30 分钟后必须有) ==========
|
|
159
|
+
|
|
160
|
+
const INTERVAL_CFG = { fastWindowMs: 600_000, fastIntervalMs: 15_000, slowIntervalMs: 60_000 }
|
|
161
|
+
|
|
162
|
+
test('nextPollIntervalMs: 前段(600s 内)保持密集 15s', () => {
|
|
163
|
+
for (const elapsedMs of [0, 1_000, 599_999]) {
|
|
164
|
+
assert.equal(nextPollIntervalMs({ ...INTERVAL_CFG, elapsedMs }), 15_000, `elapsed=${elapsedMs}`)
|
|
165
|
+
}
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
test('nextPollIntervalMs: 到点即切到慢炖 60s(边界取后段)', () => {
|
|
169
|
+
assert.equal(nextPollIntervalMs({ ...INTERVAL_CFG, elapsedMs: 600_000 }), 60_000)
|
|
170
|
+
assert.equal(nextPollIntervalMs({ ...INTERVAL_CFG, elapsedMs: 1_500_000 }), 60_000)
|
|
171
|
+
})
|
|
172
|
+
|
|
173
|
+
test('nextPollIntervalMs: 30 分钟窗口的总轮数可控(不是"15s 跳 120 轮")', () => {
|
|
174
|
+
// 前 600s / 15s = 40 轮;剩下 1200s / 60s = 20 轮 → 60 轮封顶
|
|
175
|
+
const total = 600_000 / 15_000 + (1_800_000 - 600_000) / 60_000
|
|
176
|
+
assert.equal(total, 60)
|
|
177
|
+
assert.ok(total <= 60, '长窗口不许把日志刷成上百轮')
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
// ========== 失败归类(放弃时汇总"卡在哪") ==========
|
|
181
|
+
|
|
182
|
+
test('classifyInstallError: E404 / ETARGET → registry 还没就绪', () => {
|
|
183
|
+
assert.equal(classifyInstallError('npm error code E404\nnpm error 404 Not Found - GET https://...'), 'E404')
|
|
184
|
+
assert.equal(classifyInstallError('npm error code ETARGET\nnpm error No matching version found'), 'ETARGET')
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
test('classifyInstallError: EPERM / EBUSY → 文件被占(和"还没就绪"完全不同的处置)', () => {
|
|
188
|
+
assert.equal(classifyInstallError('npm warn cleanup Failed to remove some directories: EPERM'), 'EPERM')
|
|
189
|
+
assert.equal(classifyInstallError('npm error EBUSY: resource busy or locked'), 'EPERM')
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
test('classifyInstallError: 网络类与空输入不炸,各有短码', () => {
|
|
193
|
+
assert.equal(classifyInstallError('npm error code ENOTFOUND registry.npmjs.org'), 'ENOTFOUND')
|
|
194
|
+
assert.equal(classifyInstallError('npm error code ETIMEDOUT'), 'ETIMEDOUT')
|
|
195
|
+
assert.equal(classifyInstallError('npm error ECONNRESET'), 'ENETUNREACH')
|
|
196
|
+
assert.equal(classifyInstallError(''), '其他')
|
|
197
|
+
assert.equal(classifyInstallError(undefined), '其他')
|
|
198
|
+
assert.equal(classifyInstallError('some unknown failure'), '其他')
|
|
199
|
+
})
|
|
200
|
+
|
|
201
|
+
test('classifyInstallError: 两类同时出现时优先报文件占用(它是唯一要"动手"的那类)', () => {
|
|
202
|
+
const mixed = 'npm error code E404\nnpm error EPERM: operation not permitted'
|
|
203
|
+
assert.equal(classifyInstallError(mixed), 'EPERM')
|
|
204
|
+
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-C0FnF6B9.js";import{An as e,Cn as t,Dn as n,En as r,Er as i,H as a,Jn as o,Kn as s,Mn as c,Pn as ee,Pr as l,Qn as te,Qr as u,Rn as d,Tn as f,Un as p,Xn as m,Yr as h,_n as ne,a as g,br as _,cr as re,gn as ie,hn as v,jn as y,ln as b,lr as x,or as S,pr as C,qr as w,vn as T,wn as E,xn as ae,xr as oe,yn as D}from"./element-plus-Bx3j6vzG.js";import{o as se,r as O,t as ce}from"./vendor-CyWsJd6S.js";import{n as k,t as A}from"./_plugin-vue_export-helper-N8Vc5eEs.js";import{t as le}from"./SvgIcon-D0hK-p1U.js";import{t as ue}from"./configStore-BFb0I8eP.js";import{n as de,t as fe}from"./fileIcon-B5p5pGN9.js";import{a as pe,i as me,n as he,r as ge,s as _e,t as ve}from"./previewSandbox-D4455rKO.js";import{a as ye,c as be,l as xe,n as Se,o as Ce,r as we,s as Te}from"./monaco-DkJuNcCr.js";import{t as Ee}from"./useThemeObserver-DYxFoHh1.js";import{r as De,t as j}from"./flow-mindmap-OPE_D4da.js";import{r as Oe}from"./index-BHYAwndE.js";import{a as ke,i as Ae,n as je,o as Me,r as Ne,s as Pe,t as Fe}from"./agentConversations-Da7zLPfP.js";import{n as Ie,t as M}from"./AgentEngineSelector-D_8VedA0.js";function Le(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`javascript`,vue:`html`,html:`html`,htm:`html`,css:`css`,scss:`scss`,less:`less`,json:`json`,jsonc:`json`,md:`markdown`,markdown:`markdown`,yaml:`yaml`,yml:`yaml`,toml:`ini`,xml:`xml`,svg:`xml`,sh:`shell`,bash:`shell`,zsh:`shell`,fish:`shell`,ps1:`powershell`,py:`python`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,rb:`ruby`,php:`php`,c:`c`,cpp:`cpp`,h:`cpp`,cs:`csharp`,sql:`sql`,graphql:`graphql`,gql:`graphql`,txt:`plaintext`,log:`plaintext`,ini:`ini`,env:`ini`,gitignore:`ini`,dockerfile:`dockerfile`}[e.toLowerCase()]??`plaintext`}d(),C();var N={class:`mindmap-preview`},P={class:`mindmap-preview-canvas`},F=A(ee({__name:`MindmapPreview`,props:{content:{}},setup(e){let r=e,a=t(()=>j(r.content||``,`未命名文档`));return(e,t)=>(m(),n(`div`,N,[t[0]||=E(`div`,{class:`mindmap-preview-header`},[E(`span`,{class:`mindmap-preview-title`},`整篇导图`),E(`span`,{class:`mindmap-preview-hint`},`基于整篇 Markdown 自动生成 · 阅读模式`)],-1),E(`div`,P,[c(i(De),{data:a.value,"preview-mode":``},null,8,[`data`])])]))}}),[[`__scopeId`,`data-v-d2fe328b`]]);d(),C(),l(),b();var Re={class:`agent-panel-header`},ze=[`title`,`aria-label`],Be={class:`agent-panel-title`},Ve={key:1,class:`agent-panel-title`},He=[`title`,`aria-label`],I=[`title`],Ue={class:`agent-panel-convs`},We=[`data-theme`],L=[`title`],R={class:`agent-context-att-name`},z=[`title`,`aria-label`],Ge=A(ee({__name:`EditorAgentPanel`,props:{activeFilePath:{},activeFileName:{},active:{type:Boolean}},emits:[`close`],setup(a,{emit:ee}){let l=a,te=ee,{theme:d}=Ee(),h=t(()=>d.value===`dark`?`dark`:`light`),{sessions:ne,sessionsLoading:g,currentSessionId:re,messages:v,isStreaming:y,pendingQuestion:b,answeringQuestion:C,isSessionGenerating:T,currentEngine:oe,pendingEngine:A,isEngineLocked:le,pickEngine:ue,loadSessions:de,loadSession:fe,deleteSession:pe,renameSession:me,newSession:he,sendMessage:ge,answerQuestion:_e,stop:ve}=Pe(),ye=t(()=>le.value?oe.value:A.value);function be(e){le.value||ue(e)}let xe=t(()=>ke(ne.value,T)),Se=Ne(),Ce=Ae(),we=_(null),Te=_(null),De=_(null),j=_(null),Oe=_(null),{width:Le,narrow:N}=Ie(Oe),P=_(`chat`),F=_(null),Ge=_(!1),B=null,Ke=t(()=>!!l.activeFileName&&!Ge.value);function qe(e){return Array.from(e.children).find(e=>e.classList?.contains(`acu-input-attachments`))??null}function Je(){let e=Te.value?.$el;if(!e)return;let t=e.querySelector(`.agent-context-slot`);if(!Ke.value){if(!t)return;F.value=null,p(()=>t.remove());return}let n=F.value&&e.contains(F.value)?F.value:t;n||(n=document.createElement(`div`),n.className=`agent-context-slot`);let r=qe(e),i=r??e;n.parentElement!==i&&i.insertBefore(n,r?r.firstChild:e.firstChild),F.value=n}function Ye(e=!0){we.value?.scrollToBottom(e)}async function Xe(e){let t=Ge.value?void 0:l.activeFilePath||void 0;await ge(e.text,e.files,{openFilePath:t}),await p(),Ye()}function Ze(e){fe(e),P.value=`chat`}function Qe(){he(),P.value=`chat`}S(()=>v.value.length,()=>{p(()=>Ye(!1))});function $e(){let e=j.value;e&&typeof MutationObserver<`u`&&(B?.disconnect(),B=new MutationObserver(()=>Je()),B.observe(e,{childList:!0,subtree:!0}))}return S(()=>l.active,e=>{e&&(P.value=`chat`,de().catch(()=>{}),p(()=>{Je(),Ye(!1)}))}),S(N,e=>{e||(P.value=`chat`)}),S(()=>l.activeFilePath,()=>{Ge.value=!1}),S(Ke,e=>{e&&p(Je)}),o(()=>{de().catch(()=>{}),p(()=>{Je(),$e()})}),s(()=>{B?.disconnect(),B=null,F.value=null}),(t,o)=>(m(),n(`div`,{ref_key:`rootRef`,ref:Oe,class:`editor-agent-panel`},[E(`div`,Re,[i(N)&&P.value===`list`?(m(),n(D,{key:0},[E(`button`,{class:`agent-panel-icon-btn agent-panel-back-btn`,title:i(k)(`@EDITOR:返回对话`),"aria-label":i(k)(`@EDITOR:返回对话`),onClick:o[0]||=e=>P.value=`chat`},[...o[4]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`line`,{x1:`19`,y1:`12`,x2:`5`,y2:`12`}),E(`polyline`,{points:`12 19 5 12 12 5`})],-1)]],8,ze),E(`span`,Be,u(i(k)(`@EDITOR:会话列表`)),1)],64)):(m(),n(`span`,Ve,u(i(k)(`@EDITOR:g ai 对话`)),1)),o[7]||=E(`div`,{class:`agent-panel-spacer`},null,-1),!i(N)||P.value===`chat`?(m(),f(M,{key:2,class:`agent-panel-engine`,engine:ye.value,locked:i(le),onSelect:be},null,8,[`engine`,`locked`])):r(``,!0),i(N)&&P.value===`chat`?(m(),n(`button`,{key:3,class:`agent-panel-icon-btn agent-panel-list-btn`,title:i(k)(`@EDITOR:会话列表`),"aria-label":i(k)(`@EDITOR:会话列表`),onClick:o[1]||=e=>P.value=`list`},[...o[5]||=[e(`<svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" data-v-d910c906><line x1="8" y1="6" x2="21" y2="6" data-v-d910c906></line><line x1="8" y1="12" x2="21" y2="12" data-v-d910c906></line><line x1="8" y1="18" x2="21" y2="18" data-v-d910c906></line><line x1="3" y1="6" x2="3.01" y2="6" data-v-d910c906></line><line x1="3" y1="12" x2="3.01" y2="12" data-v-d910c906></line><line x1="3" y1="18" x2="3.01" y2="18" data-v-d910c906></line></svg>`,1)]],8,He)):r(``,!0),E(`button`,{class:`agent-panel-icon-btn`,title:i(k)(`@EDITOR:关闭对话`),onClick:o[2]||=e=>te(`close`)},[...o[6]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`},[E(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),E(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,I)]),E(`div`,{class:w([`agent-panel-body`,{"is-wide":!i(N)}])},[x(E(`div`,Ue,[c(i(O),{"show-search":!0,items:xe.value,"active-id":i(re),loading:i(g),labels:i(Se),onSelect:Ze,onNew:Qe,onRename:i(me),onDelete:i(pe)},null,8,[`items`,`active-id`,`loading`,`labels`,`onRename`,`onDelete`])],512),[[ie,!i(N)||P.value===`list`]]),x(E(`div`,{ref_key:`chatHostRef`,ref:De,class:`agent-panel-chat`},[c(i(ce),{ref_key:`chatRef`,ref:we,"show-input":!1,messages:i(v),"assistant-name":i(je),"assistant-avatar":i(Fe),theme:h.value,question:i(b),"question-submitting":i(C),"question-labels":i(Ce),onAnswer:i(_e)},null,8,[`messages`,`assistant-name`,`assistant-avatar`,`theme`,`question`,`question-submitting`,`question-labels`,`onAnswer`])],512),[[ie,!i(N)||P.value===`chat`]]),i(Le)>0?(m(),n(`div`,{key:0,ref_key:`composerRef`,ref:j,class:`agent-panel-composer acu-root`,"data-theme":h.value},[c(i(se),{ref_key:`inputRef`,ref:Te,disabled:i(y),generating:i(y),placeholder:i(y)?i(k)(`@AGENT:正在生成中...`):i(k)(`@AGENT:输入消息,Enter 发送`),"upload-config":{accept:i(Me)},onSend:Xe,onStop:i(ve)},null,8,[`disabled`,`generating`,`placeholder`,`upload-config`,`onStop`]),F.value?(m(),f(ae,{key:0,to:F.value},[Ke.value?(m(),n(`div`,{key:0,class:`agent-context-att`,title:a.activeFilePath||``},[o[9]||=E(`svg`,{class:`agent-context-att-icon`,viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.7`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[E(`path`,{d:`M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z`}),E(`polyline`,{points:`14 3 14 8 19 8`})],-1),E(`span`,R,u(a.activeFileName),1),E(`button`,{type:`button`,class:`agent-context-att-remove`,title:i(k)(`@EDITOR:不引用当前文档`),"aria-label":i(k)(`@EDITOR:不引用当前文档`),onClick:o[3]||=e=>Ge.value=!0},[...o[8]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`10`,height:`10`,fill:`none`,stroke:`currentColor`,"stroke-width":`3`,"stroke-linecap":`round`,"aria-hidden":`true`},[E(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),E(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,z)],8,L)):r(``,!0)],8,[`to`])):r(``,!0)],8,We)):r(``,!0)],2)],512))}}),[[`__scopeId`,`data-v-d910c906`]]);d(),C(),l(),b();var B={class:`sidebar-header`},Ke={class:`sidebar-title`},qe={class:`sidebar-actions`},Je={class:`sidebar-search`},Ye=[`placeholder`,`title`],Xe=[`title`,`aria-label`],Ze={key:0,class:`sidebar-tree`},Qe={key:1,class:`tree-arrow-spacer`},$e={class:`tree-icon mit-icon`,"aria-hidden":`true`},et=[`xlink:href`],tt=[`onClick`,`onContextmenu`],nt={key:1,class:`tree-arrow-spacer`},rt={key:2,class:`tree-icon mit-icon`,"aria-hidden":`true`},it=[`xlink:href`],at={key:3,class:`tree-icon mit-icon`,"aria-hidden":`true`},ot=[`xlink:href`],st=[`title`],ct={key:0,class:`tree-name-hit`},lt={key:4,class:`tree-loading`},ut={key:0,viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{"flex-shrink":`0`,color:`var(--color-warning)`}},dt={key:1,viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{"flex-shrink":`0`,color:`var(--text-tertiary)`}},ft=[`placeholder`],pt={key:0,class:`tree-node tree-inline-input-row`,style:{paddingLeft:`12px`}},mt={key:0,viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{"flex-shrink":`0`,color:`var(--color-warning)`}},ht={key:1,viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{"flex-shrink":`0`,color:`var(--text-tertiary)`}},gt=[`placeholder`],_t={key:1,class:`tree-empty`},vt={key:1,class:`sidebar-loading`},yt={class:`editor-main`},bt={key:0,class:`editor-tabs`},xt=[`onClick`,`title`],St={class:`tab-name`},Ct={key:0,class:`tab-dirty-dot`},wt=[`onClick`],Tt=[`title`],Et=[`disabled`,`title`],Dt=[`title`],Ot={key:1,class:`editor-empty`},kt={viewBox:`0 0 24 24`,width:`48`,height:`48`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{opacity:`.3`}},At={class:`editor-empty-hint`},jt={class:`editor-body`},Mt={key:0,class:`image-tab-placeholder`},Nt={viewBox:`0 0 24 24`,width:`56`,height:`56`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{opacity:`.35`}},Pt={class:`image-tab-placeholder-title`},Ft={class:`image-tab-placeholder-hint`},It={class:`preview-header`},Lt={class:`preview-title`},Rt={class:`preview-ext-badge`},zt=[`title`],Bt={class:`preview-body`},Vt=[`sandbox`,`srcdoc`],Ht=6e4,Ut=A(ee({__name:`EditorView`,props:{pendingFilePath:{}},setup(ee){self.MonacoEnvironment={getWorker(e,t){return t===`json`?new be:t===`css`||t===`scss`||t===`less`?new Te:t===`html`||t===`handlebars`||t===`razor`?new Ce:t===`typescript`||t===`javascript`?new ye:new xe}};let l=ee,d=ue(),b=Oe(),C=_([]),se=_(!1),O=_(``),ce=_(``),A=null;function De(){O.value=``,ce.value=``,A&&=(clearTimeout(A),null)}S(O,e=>{A&&clearTimeout(A),A=setTimeout(()=>{ce.value=e,A=null},180)}),s(()=>{A&&clearTimeout(A),Ae()});let j=null;function ke(){Ae(),d.ui.fileTreeAutoRefresh&&(j=setInterval(()=>{document.hidden||d.currentDirectory&&(O.value.trim()||M())},Ht))}function Ae(){j&&=(clearInterval(j),null)}S(()=>d.currentDirectory,()=>{ke()}),S(()=>d.ui.fileTreeAutoRefresh,()=>{ke()});async function je(e,t=0){let n=await(await fetch(`/api/browse_directory?path=${encodeURIComponent(e)}`)).json();return n.success?n.items.map(e=>({...e,depth:t,expanded:!1,loading:!1,children:(e.type,void 0)})):[]}async function Me(){let e=d.currentDirectory;if(e){se.value=!0;try{C.value=await je(e,0)}finally{se.value=!1}}}function Ne(e,t=new Set){for(let n of e)n.type===`directory`&&n.expanded&&(t.add(n.path),n.children&&Ne(n.children,t));return t}function Pe(e,t=0){return(e||[]).map(e=>{let n={name:e.name,path:e.path,type:e.type,depth:t,expanded:!1,loading:!1};return n.type===`directory`&&Array.isArray(e.children)&&(n.children=Pe(e.children,t+1),n.expanded=!0),n})}async function Fe(e){let t=d.currentDirectory;if(!t)return null;try{let n=await(await fetch(`/api/browse_directory_tree`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t,expand:e})})).json().catch(()=>null);return!n?.success||!Array.isArray(n.items)?null:Pe(n.items,0)}catch{return null}}function Ie(e,t){let n=new Map(e.map(e=>[e.path,e])),r=e.length!==t.length;if(!r){for(let n=0;n<t.length;n++)if(e[n].path!==t[n].path){r=!0;break}}for(let e=0;e<t.length;e++){let i=t[e],a=n.get(i.path);a&&(t[e]=a,a.name!==i.name&&(a.name=i.name,r=!0),a.type===`directory`&&a.expanded&&Array.isArray(i.children)&&(Array.isArray(a.children)?Ie(a.children,i.children)&&(a.children=i.children,r=!0):(a.children=i.children,r=!0)))}return r}async function M(e={}){if(!d.currentDirectory)return;let t=await Fe([...Ne(C.value)]);if(!t){e.notifyOnError&&g.error(k(`@EDITOR:刷新失败`));return}if(C.value.length===0){C.value=t;return}Ie(C.value,t)&&(C.value=t)}async function N(e){if(e.type===`directory`){if(e.expanded)e.expanded=!1;else{if(!e.children){e.loading=!0;try{e.children=await je(e.path,e.depth+1)}finally{e.loading=!1}}e.expanded=!0}}}function P(e){let t=[];for(let n of e)t.push(n),n.type===`directory`&&n.expanded&&n.children&&t.push(...P(n.children));return t}let Re=t(()=>ce.value.trim().toLowerCase());function ze(e,t){if(!t)return e;let n=[];for(let r of e){let e=r.children?ze(r.children,t):[],i=r.name.toLowerCase().includes(t);r.type===`directory`?(i||e.length>0)&&(r.expanded=!0,r.children!==void 0&&(r.children=e),n.push(r)):i&&n.push(r)}return n}let Be=t(()=>ze(C.value,Re.value)),Ve=t(()=>Re.value.length>0&&Be.value.length===0);function He(e){let t=ce.value.trim();if(!t)return[{text:e,hit:!1}];let n=e.toLowerCase(),r=t.toLowerCase(),i=[],a=0,o=n.indexOf(r,a);for(;o!==-1;)o>a&&i.push({text:e.slice(a,o),hit:!1}),i.push({text:e.slice(o,o+r.length),hit:!0}),a=o+r.length,o=n.indexOf(r,a);return a<e.length&&i.push({text:e.slice(a),hit:!1}),i}let I=_(null);function Ue(){let e=I.value;e&&(e.focus(),e.select())}function We(){O.value?(De(),I.value?.focus()):(I.value?.blur(),V.value?.focus())}let L=_([]),R=_(null),z=_(null);async function Ut(e){if(z.value=e,e.type!==`file`){N(e);return}let t=L.value.find(t=>t.path===e.path);if(console.log(`[debug-open-in-editor] EditorView openFile existing tab check:`,{path:e.path,found:!!t,tabsCount:L.value.length}),t){R.value=e.path,p(()=>Xt());return}let n=e.name.split(`.`).pop()||``;if(Fn.has(n.toLowerCase())){let t={path:e.path,name:e.name,content:``,originalContent:``,isDirty:!1,language:`plaintext`};L.value.push(t),R.value=e.path,J.value=!0;return}if(_e(e.name)){let t={path:e.path,name:e.name,content:``,originalContent:``,isDirty:!1,language:`office`};L.value.push(t),R.value=e.path,Y.value=!1,J.value=!0;return}try{let t=await fetch(`/api/editor/file?path=${encodeURIComponent(e.path)}`),r=await t.json();if(console.log(`[debug-open-in-editor] EditorView fetch /api/editor/file response:`,{path:e.path,status:t.status,data:r}),!r.success){g.error(`${k(`@EDITOR:打开文件失败: `)}${r.error}`);return}let i=Le(n),a={path:e.path,name:e.name,content:r.content,originalContent:r.content,isDirty:!1,language:i};console.log(`[debug-open-in-editor] EditorView pushing tab:`,{path:a.path,name:a.name,contentLen:a.content.length,lang:a.language}),L.value.push(a),R.value=e.path,console.log(`[debug-open-in-editor] EditorView tabs after push:`,L.value.length,`activeTabPath=`,R.value)}catch(e){console.log(`[debug-open-in-editor] EditorView fetch threw:`,e),g.error(`${k(`@EDITOR:打开文件失败: `)}${e.message}`)}}S(()=>l.pendingFilePath,async e=>{if(console.log(`[debug-open-in-editor] EditorView watcher fired, filePath=`,e),!e)return;await p();let t=e.split(/[\\/]/).pop()||e;console.log(`[debug-open-in-editor] EditorView calling openFile, name=`,t,`path=`,e),await Ut({name:t,path:e,type:`file`,depth:0}),console.log(`[debug-open-in-editor] EditorView openFile returned`)},{immediate:!0});function Wt(e,t){t.stopPropagation();let n=L.value.findIndex(t=>t.path===e);n!==-1&&(!L.value[n].isDirty||confirm(k(`@EDITOR:文件未保存,确认关闭?`)))&&(L.value.splice(n,1),R.value===e&&(R.value=L.value[Math.min(n,L.value.length-1)]?.path??null))}let Gt=()=>L.value.find(e=>e.path===R.value)??null,Kt=_(null),V=oe(null),qt=new Map;function Jt(e){let t=qt.get(e.path);return(!t||t.isDisposed())&&(t=we.createModel(e.content,e.language,Se.file(e.path)),qt.set(e.path,t)),t}function Yt(){if(!Kt.value)return;let e=document.documentElement.getAttribute(`data-theme`)===`dark`;V.value=we.create(Kt.value,{theme:e?`vs-dark`:`vs`,fontSize:13,lineHeight:20,fontFamily:`'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace`,minimap:{enabled:!0},scrollBeyondLastLine:!1,renderWhitespace:`selection`,automaticLayout:!0,tabSize:2,wordWrap:`off`,smoothScrolling:!0,cursorBlinking:`smooth`,padding:{top:8,bottom:8},editContext:!1}),V.value.onDidChangeModelContent(()=>{let e=Gt();if(!e)return;let t=V.value.getValue();e.content=t,e.isDirty=t!==e.originalContent}),V.value.onDidBlurEditorText(()=>{d.ui.editorAutoSave&&Gt()?.isDirty&&$t(!1),requestAnimationFrame(()=>{if(!H.value||H.value.offsetParent===null)return;let e=document.activeElement;e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.isContentEditable||e.classList?.contains(`native-edit-context`)||e.classList?.contains(`monaco-editor`))||Xt()})})}S(R,e=>{if(!V.value||!e)return;let t=L.value.find(t=>t.path===e);if(!t)return;let n=Jt(t);V.value.setModel(n),p(()=>Xt())});function Xt(){if(!V.value)return;V.value.focus();let e=document.querySelector(`.monaco-editor .native-edit-context`);e&&document.activeElement!==e&&requestAnimationFrame(()=>e.focus?.())}S(()=>L.value.filter(e=>e.isDirty).length,e=>{b.setDirtyCount(e)},{immediate:!0}),s(()=>b.setDirtyCount(0)),Ee(()=>{let e=document.documentElement.getAttribute(`data-theme`)===`dark`;we.setTheme(e?`vs-dark`:`vs`)});let Zt=null;function Qt(){if(Zt||!H.value)return;let e=[H.value],t=H.value.parentElement;for(;t;){if(t.classList.contains(`view-pane`)||t.classList.contains(`editor-pane`)){e.push(t);break}t=t.parentElement}Zt=new MutationObserver(()=>{H.value&&H.value.offsetParent!==null&&R.value&&V.value&&requestAnimationFrame(()=>{let e=document.activeElement;e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.isContentEditable||e.classList?.contains(`native-edit-context`)||e.classList?.contains(`monaco-editor`))||Xt()})});let n=Zt;e.forEach(e=>n.observe(e,{attributes:!0,attributeFilter:[`style`,`class`,`hidden`]}))}o(async()=>{Yt(),await Me(),Qt(),ke(),R.value&&p(()=>Xt())}),s(()=>{Zt?.disconnect(),Zt=null,V.value?.dispose(),qt.forEach(e=>e.dispose()),qt.clear()});async function $t(e=!1){let t=Gt();if(t)try{let n=await(await fetch(`/api/editor/file`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t.path,content:t.content})})).json();if(!n.success){g.error(`${k(`@EDITOR:保存失败: `)}${n.error}`);return}t.originalContent=t.content,t.isDirty=!1,e||g.success(k(`@EDITOR:已保存`))}catch(e){g.error(`${k(`@EDITOR:保存失败: `)}${e.message}`)}}function en(e){let t=e.ctrlKey||e.metaKey;if(t&&e.key.toLowerCase()===`f`){e.preventDefault(),Ue();return}t&&e.key===`s`&&(e.preventDefault(),$t())}o(()=>window.addEventListener(`keydown`,en)),s(()=>window.removeEventListener(`keydown`,en));let H=_(null),tn=_(220),nn=!1,rn=0,an=0;function on(e){nn=!0,rn=e.clientX,an=tn.value,document.addEventListener(`mousemove`,sn),document.addEventListener(`mouseup`,cn),e.preventDefault()}function sn(e){if(!nn)return;let t=e.clientX-rn;tn.value=Math.max(140,Math.min(400,an+t))}function cn(){nn=!1,document.removeEventListener(`mousemove`,sn),document.removeEventListener(`mouseup`,cn)}function ln(e){return e.type===`directory`?de(e.name):fe(e.name)}let U=_(null),W=_(null),G=_(null),un=_(null);function dn(){let e=z.value;return e?e.type===`directory`?{parentPath:e.path,afterNode:e,depth:e.depth+1}:{parentPath:e.path.includes(`/`)||e.path.includes(`\\`)?e.path.replace(/[\\/][^\\/]+$/,``):d.currentDirectory??``,afterNode:e,depth:e.depth}:{parentPath:d.currentDirectory??``,afterNode:null,depth:0}}async function fn(){let e=dn();z.value?.type===`directory`&&!z.value.expanded&&await N(z.value),U.value={...e,kind:`file`,value:``},await p(),G.value?.focus()}async function pn(){let e=dn();z.value?.type===`directory`&&!z.value.expanded&&await N(z.value),U.value={...e,kind:`directory`,value:``},await p(),G.value?.focus()}function mn(){U.value=null}async function hn(){let e=U.value;if(!e||!e.value.trim()){U.value=null;return}let t=e.value.trim(),n=e.parentPath.replace(/[/\\]$/,``)+`/`+t;if(e.kind===`file`){let e=await(await fetch(`/api/editor/file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:n})})).json();if(!e.success){g.error(e.error);return}g.success(k(`@EDITOR:创建成功`))}else{let e=await(await fetch(`/api/editor/directory`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:n})})).json();if(!e.success){g.error(e.error);return}g.success(k(`@EDITOR:创建成功`))}U.value=null,await M()}function gn(e){e.key===`Enter`&&(e.preventDefault(),hn()),e.key===`Escape`&&(e.preventDefault(),mn())}let K=_(null),_n=_(null);function vn(e,t){e.preventDefault(),K.value={x:e.clientX,y:e.clientY,node:t}}function q(){K.value=null}async function yn(){let e=K.value?.node;q(),e&&(z.value=e),e?.type===`directory`&&!e.expanded&&await N(e);let t=dn();U.value={...t,kind:`file`,value:``},await p(),G.value?.focus()}async function bn(){let e=K.value?.node;q(),e&&(z.value=e),e?.type===`directory`&&!e.expanded&&await N(e);let t=dn();U.value={...t,kind:`directory`,value:``},await p(),G.value?.focus()}async function xn(){let e=K.value?.node;q(),e&&(W.value={node:e,value:e.name},await p(),un.value?.focus(),un.value?.select())}async function Sn(){let e=W.value;if(!e||!e.value.trim()||e.value.trim()===e.node.name){W.value=null;return}let t=e.value.trim(),n=e.node.path.replace(/[\\/][^\\/]+$/,``).replace(/[/\\]$/,``)+`/`+t,r=await(await fetch(`/api/editor/rename`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldPath:e.node.path,newPath:n})})).json();if(!r.success){g.error(r.error);return}let i=L.value.find(t=>t.path===e.node.path);i&&(i.path=n,i.name=t,R.value===e.node.path&&(R.value=n)),W.value=null,await M()}function Cn(e){e.key===`Enter`&&(e.preventDefault(),Sn()),e.key===`Escape`&&(e.preventDefault(),W.value=null)}async function wn(){let e=K.value?.node;if(q(),!e)return;let t=e.type===`directory`?k(`@EDITOR:文件夹`):k(`@EDITOR:文件`);if(!confirm(`${k(`@EDITOR:确认删除`)} ${t} "${e.name}"?`))return;let n=await(await fetch(`/api/editor/entry?path=${encodeURIComponent(e.path)}`,{method:`DELETE`})).json();if(!n.success){g.error(n.error);return}let r=L.value.findIndex(t=>t.path===e.path);r!==-1&&(L.value.splice(r,1),R.value===e.path&&(R.value=L.value[Math.max(0,r-1)]?.path??null)),g.success(k(`@EDITOR:已删除`)),await M()}async function Tn(){let e=K.value?.node;if(q(),e)try{let t=await(await fetch(`/api/editor/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e.path})})).json();t.success||g.error(t.error)}catch(e){g.error(e?.message||String(e))}}function En(e){let t=d.currentDirectory;if(!t)return e;let n=e=>e.replace(/\\/g,`/`).replace(/\/+$/,``),r=n(t),i=n(e);return i===r?`.`:i.startsWith(r+`/`)?i.slice(r.length+1):i}async function Dn(e){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.left=`-9999px`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch{return!1}}async function On(){let e=K.value?.node;q(),e&&(await Dn(e.path)?g.success(k(`@EDITOR:已复制到剪贴板`)):g.error(k(`@EDITOR:复制失败`)))}async function kn(){let e=K.value?.node;q(),e&&(await Dn(En(e.path))?g.success(k(`@EDITOR:已复制到剪贴板`)):g.error(k(`@EDITOR:复制失败`)))}async function An(){let e=K.value?.node;if(q(),e)try{let t=await(await fetch(`/api/editor/open-in-vscode`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e.path})})).json();t.success||g.error(t.error||k(`@EDITOR:VSCode 未安装`))}catch(e){g.error(e?.message||String(e))}}let jn=new Set([`html`,`htm`]),Mn=t(()=>{let e=K.value?.node;if(!e||e.type!==`file`)return!1;let t=e.name.slice(e.name.lastIndexOf(`.`)+1).toLowerCase();return jn.has(t)});async function Nn(){let e=K.value?.node;if(q(),e)try{let t=await(await fetch(`/api/editor/open-in-browser`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e.path})})).json();t.success||g.error(t.error||k(`@EDITOR:浏览器打开失败`))}catch(e){g.error(e?.message||String(e))}}o(()=>document.addEventListener(`click`,q)),s(()=>document.removeEventListener(`click`,q));let Pn=new Set([`md`,`html`,`htm`,`svg`]),Fn=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`ico`,`bmp`]),J=_(!1),Y=_(!1),X=_(!1),In=_(!1),Ln=_(0),Z=t(()=>L.value.find(e=>e.path===R.value)??null),Rn=t(()=>Z.value?.language===`plaintext`&&Z.value?.content===``),zn=t(()=>Z.value?.language===`office`),Q=t(()=>(Z.value?.name??``).split(`.`).pop()?.toLowerCase()??``),Bn=t(()=>Pn.has(Q.value)||Fn.has(Q.value)||_e(Q.value)),Vn=t(()=>((Z.value?.content??``).match(/^#{1,6}\s+/gm)||[]).length),$=t(()=>Q.value===`md`&&Vn.value>0);S(R,()=>{J.value&&!Bn.value&&(J.value=!1),Y.value&&!$.value&&(Y.value=!1)});function Hn(){Bn.value&&(J.value||(Y.value=!1,X.value=!1),J.value=!J.value)}function Un(){$.value&&(Y.value||(J.value=!1,X.value=!1),Y.value=!Y.value)}function Wn(){X.value||(J.value=!1,Y.value=!1),X.value=!X.value,In.value=!0}let Gn=t(()=>{let e=Z.value;if(!e)return``;let t=Q.value,n=document.documentElement.getAttribute(`data-theme`)===`light`?`#ffffff`:`#0d1117`;return t===`html`||t===`htm`?he(e.content):t===`svg`?`<!DOCTYPE html><html><head><meta charset="utf-8"><style>html,body{margin:0;padding:0;background:${n};display:flex;align-items:center;justify-content:center;min-height:100vh;}svg{max-width:100%;max-height:90vh;}</style></head><body>${e.content}</body></html>`:``}),Kn=!1,qn=0,Jn=0;function Yn(e){Kn=!0,qn=e.clientX,Jn=Ln.value,document.addEventListener(`mousemove`,Xn),document.addEventListener(`mouseup`,Zn),e.preventDefault()}function Xn(e){if(!Kn)return;let t=e.clientX-qn;Ln.value=Math.max(200,Math.min(900,Jn+t))}function Zn(){Kn=!1,document.removeEventListener(`mousemove`,Xn),document.removeEventListener(`mouseup`,Zn)}return(t,o)=>(m(),n(D,null,[E(`div`,{class:`editor-view`,ref_key:`containerRef`,ref:H},[E(`div`,{class:`editor-sidebar`,style:h({width:tn.value+`px`})},[E(`div`,B,[E(`span`,Ke,u(i(k)(`@EDITOR:资源管理器`)),1),E(`div`,qe,[c(i(a),{content:i(k)(`@EDITOR:新建文件`),placement:`bottom`,"show-after":300},{default:re(()=>[E(`button`,{class:`sidebar-action-btn`,onClick:fn},[...o[11]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z`}),E(`polyline`,{points:`14 2 14 8 20 8`}),E(`line`,{x1:`12`,y1:`13`,x2:`12`,y2:`19`}),E(`line`,{x1:`9`,y1:`16`,x2:`15`,y2:`16`})],-1)]])]),_:1},8,[`content`]),c(i(a),{content:i(k)(`@EDITOR:新建文件夹`),placement:`bottom`,"show-after":300},{default:re(()=>[E(`button`,{class:`sidebar-action-btn`,onClick:pn},[...o[12]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`}),E(`line`,{x1:`12`,y1:`11`,x2:`12`,y2:`17`}),E(`line`,{x1:`9`,y1:`14`,x2:`15`,y2:`14`})],-1)]])]),_:1},8,[`content`]),c(i(a),{content:i(k)(`@EDITOR:刷新`),placement:`bottom`,"show-after":300},{default:re(()=>[E(`button`,{class:`sidebar-action-btn`,onClick:o[0]||=e=>M({notifyOnError:!0})},[...o[13]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`polyline`,{points:`1 4 1 10 7 10`}),E(`polyline`,{points:`23 20 23 14 17 14`}),E(`path`,{d:`M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15`})],-1)]])]),_:1},8,[`content`])])]),E(`div`,Je,[o[15]||=E(`svg`,{class:`sidebar-search-icon`,viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[E(`circle`,{cx:`11`,cy:`11`,r:`7`}),E(`line`,{x1:`21`,y1:`21`,x2:`16.65`,y2:`16.65`})],-1),x(E(`input`,{ref_key:`searchInputRef`,ref:I,"onUpdate:modelValue":o[1]||=e=>O.value=e,type:`text`,class:`sidebar-search-input`,placeholder:i(k)(`@EDITOR:搜索文件...`),title:i(k)(`@EDITOR:搜索文件...`),spellcheck:`false`,autocomplete:`off`,onKeydown:ne(We,[`escape`])},null,40,Ye),[[v,O.value]]),O.value?(m(),n(`button`,{key:0,class:`sidebar-search-clear`,title:i(k)(`@EDITOR:清除搜索`),"aria-label":i(k)(`@EDITOR:清除搜索`),onClick:De},[...o[14]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`12`,height:`12`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[E(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),E(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,Xe)):r(``,!0)]),se.value?(m(),n(`div`,vt,[...o[24]||=[E(`span`,{class:`spin-icon`},null,-1)]])):(m(),n(`div`,Ze,[(m(!0),n(D,null,te(P(Be.value),e=>(m(),n(D,{key:e.path},[W.value&&W.value.node.path===e.path?(m(),n(`div`,{key:0,class:`tree-node tree-inline-input-row`,style:h({paddingLeft:12+e.depth*14+`px`})},[e.type===`directory`?(m(),n(`span`,{key:0,class:w([`tree-arrow`,{expanded:e.expanded}])},[...o[16]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`10`,height:`10`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`polyline`,{points:`9 18 15 12 9 6`})],-1)]],2)):(m(),n(`span`,Qe)),(m(),n(`svg`,$e,[E(`use`,{"xlink:href":`#${ln(e)}`},null,8,et)])),x(E(`input`,{ref_for:!0,ref_key:`renameInputRef`,ref:un,"onUpdate:modelValue":o[2]||=e=>W.value.value=e,onKeydown:Cn,onBlur:Sn,onClick:o[3]||=T(()=>{},[`stop`])},null,544),[[v,W.value.value]])],4)):(m(),n(`div`,{key:1,class:w([`tree-node`,{"tree-node--dir":e.type===`directory`,"tree-node--file":e.type===`file`,"tree-node--active":R.value===e.path,"tree-node--selected":z.value?.path===e.path&&R.value!==e.path}]),style:h({paddingLeft:12+e.depth*14+`px`}),onClick:t=>Ut(e),onContextmenu:t=>vn(t,e)},[e.type===`directory`?(m(),n(`span`,{key:0,class:w([`tree-arrow`,{expanded:e.expanded}])},[...o[17]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`10`,height:`10`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`polyline`,{points:`9 18 15 12 9 6`})],-1)]],2)):(m(),n(`span`,nt)),e.type===`directory`?(m(),n(`svg`,rt,[E(`use`,{"xlink:href":`#${ln(e)}`},null,8,it)])):(m(),n(`svg`,at,[E(`use`,{"xlink:href":`#${ln(e)}`},null,8,ot)])),E(`span`,{class:`tree-name`,title:e.path},[(m(!0),n(D,null,te(He(e.name),(e,t)=>(m(),n(D,{key:t},[e.hit?(m(),n(`span`,ct,u(e.text),1)):(m(),n(D,{key:1},[y(u(e.text),1)],64))],64))),128))],8,st),e.loading?(m(),n(`span`,lt)):r(``,!0)],46,tt)),U.value&&U.value.afterNode?.path===e.path?(m(),n(`div`,{key:2,class:`tree-node tree-inline-input-row`,style:h({paddingLeft:12+U.value.depth*14+`px`})},[o[20]||=E(`span`,{class:`tree-arrow-spacer`},null,-1),U.value.kind===`directory`?(m(),n(`svg`,ut,[...o[18]||=[E(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`},null,-1)]])):(m(),n(`svg`,dt,[...o[19]||=[E(`path`,{d:`M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z`},null,-1),E(`polyline`,{points:`14 2 14 8 20 8`},null,-1)]])),x(E(`input`,{ref_for:!0,ref_key:`inlineInputRef`,ref:G,class:`tree-inline-input`,"onUpdate:modelValue":o[4]||=e=>U.value.value=e,placeholder:U.value.kind===`file`?i(k)(`@EDITOR:输入文件名`):i(k)(`@EDITOR:输入文件夹名`),onKeydown:gn,onBlur:mn,onClick:o[5]||=T(()=>{},[`stop`])},null,40,ft),[[v,U.value.value]])],4)):r(``,!0)],64))),128)),U.value&&U.value.afterNode===null?(m(),n(`div`,pt,[o[23]||=E(`span`,{class:`tree-arrow-spacer`},null,-1),U.value.kind===`directory`?(m(),n(`svg`,mt,[...o[21]||=[E(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`},null,-1)]])):(m(),n(`svg`,ht,[...o[22]||=[E(`path`,{d:`M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z`},null,-1),E(`polyline`,{points:`14 2 14 8 20 8`},null,-1)]])),x(E(`input`,{ref_key:`inlineInputRef`,ref:G,class:`tree-inline-input`,"onUpdate:modelValue":o[6]||=e=>U.value.value=e,placeholder:U.value.kind===`file`?i(k)(`@EDITOR:输入文件名`):i(k)(`@EDITOR:输入文件夹名`),onKeydown:gn,onBlur:mn,onClick:o[7]||=T(()=>{},[`stop`])},null,40,gt),[[v,U.value.value]])])):r(``,!0),!U.value&&(Ve.value||C.value.length===0)?(m(),n(`div`,_t,u(Ve.value?i(k)(`@EDITOR:未找到匹配文件`):i(k)(`@EDITOR:暂无文件`)),1)):r(``,!0)]))],4),E(`div`,{class:`editor-resizer`,onMousedown:on},null,32),E(`div`,yt,[L.value.length>0?(m(),n(`div`,bt,[(m(!0),n(D,null,te(L.value,e=>(m(),n(`div`,{key:e.path,class:w([`editor-tab`,{active:R.value===e.path,dirty:e.isDirty}]),onClick:t=>R.value=e.path,title:e.path},[E(`span`,St,u(e.name),1),e.isDirty?(m(),n(`span`,Ct)):r(``,!0),E(`button`,{class:`tab-close`,onClick:t=>Wt(e.path,t)},[...o[25]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`12`,height:`12`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`},[E(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),E(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,wt)],10,xt))),128)),o[29]||=E(`div`,{class:`editor-tabs-spacer`},null,-1),Bn.value?(m(),n(`button`,{key:0,class:w([`preview-toggle-btn`,{active:J.value}]),title:J.value?i(k)(`@EDITOR:关闭预览`):i(k)(`@EDITOR:打开预览`),onClick:Hn},[o[26]||=E(`svg`,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z`}),E(`circle`,{cx:`12`,cy:`12`,r:`3`})],-1),E(`span`,null,u(i(k)(`@EDITOR:预览`)),1)],10,Tt)):r(``,!0),$.value?(m(),n(`button`,{key:1,class:w([`preview-toggle-btn mindmap-toggle-btn`,{active:Y.value,disabled:!$.value}]),disabled:!$.value,title:$.value?Y.value?i(k)(`@EDITOR:关闭思维导图`):i(k)(`@EDITOR:打开思维导图`):i(k)(`@EDITOR:需要至少一个 # 标题`),onClick:Un},[o[27]||=e(`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-4ce372fa><circle cx="12" cy="12" r="2" data-v-4ce372fa></circle><circle cx="5" cy="6" r="1.6" data-v-4ce372fa></circle><circle cx="19" cy="6" r="1.6" data-v-4ce372fa></circle><circle cx="5" cy="18" r="1.6" data-v-4ce372fa></circle><circle cx="19" cy="18" r="1.6" data-v-4ce372fa></circle><line x1="11" y1="11" x2="6.4" y2="7" data-v-4ce372fa></line><line x1="13" y1="11" x2="17.6" y2="7" data-v-4ce372fa></line><line x1="11" y1="13" x2="6.4" y2="17" data-v-4ce372fa></line><line x1="13" y1="13" x2="17.6" y2="17" data-v-4ce372fa></line></svg>`,1),E(`span`,null,u(i(k)(`@EDITOR:思维导图`)),1)],10,Et)):r(``,!0),E(`button`,{class:w([`preview-toggle-btn agent-toggle-btn`,{active:X.value}]),title:X.value?i(k)(`@EDITOR:关闭 g ai 对话`):i(k)(`@EDITOR:打开 g ai 对话`),onClick:Wn},[o[28]||=E(`svg`,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M12 3l1.9 4.6L18.5 9.5l-4.6 1.9L12 16l-1.9-4.6L5.5 9.5l4.6-1.9z`}),E(`path`,{d:`M18 16.5l.9 2.1 2.1.9-2.1.9-.9 2.1-.9-2.1-2.1-.9 2.1-.9z`})],-1),E(`span`,null,u(i(k)(`@EDITOR:g ai 对话`)),1)],10,Dt)])):r(``,!0),L.value.length===0?(m(),n(`div`,Ot,[(m(),n(`svg`,kt,[...o[30]||=[E(`path`,{d:`M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z`},null,-1),E(`polyline`,{points:`14 2 14 8 20 8`},null,-1)]])),E(`p`,null,u(i(k)(`@EDITOR:从左侧选择文件打开`)),1),E(`p`,At,u(i(k)(`@EDITOR:Ctrl+S 保存`)),1)])):r(``,!0),E(`div`,jt,[E(`div`,{class:w([`monaco-container`,{hidden:L.value.length===0||Rn.value||zn.value}]),ref_key:`editorContainerRef`,ref:Kt},null,2),Rn.value&&L.value.length>0&&!J.value&&!Y.value?(m(),n(`div`,Mt,[(m(),n(`svg`,Nt,[...o[31]||=[E(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`},null,-1),E(`circle`,{cx:`9`,cy:`9`,r:`2`},null,-1),E(`path`,{d:`m21 15-5-5L5 21`},null,-1)]])),E(`p`,Pt,u(Z.value?.name),1),E(`p`,Ft,u(i(k)(`@EDITOR:这是图片文件,已在右侧预览面板中打开`)),1)])):r(``,!0),(J.value||Y.value||X.value)&&L.value.length>0?(m(),n(`div`,{key:1,class:`preview-resizer`,onMousedown:Yn},null,32)):r(``,!0),In.value?x((m(),f(Ge,{key:2,active:X.value&&L.value.length>0,"active-file-path":R.value,"active-file-name":Z.value?.name??``,style:h({flexBasis:Ln.value+`px`}),onClose:o[8]||=e=>X.value=!1},null,8,[`active`,`active-file-path`,`active-file-name`,`style`])),[[ie,X.value&&L.value.length>0]]):r(``,!0),(J.value||Y.value)&&L.value.length>0?(m(),n(`div`,{key:3,class:`preview-panel`,style:h({flexBasis:Ln.value+`px`})},[E(`div`,It,[E(`span`,Lt,u(Y.value?i(k)(`@EDITOR:思维导图`):i(k)(`@EDITOR:预览`)),1),E(`span`,Rt,u(Q.value.toUpperCase()),1),o[33]||=E(`div`,{class:`preview-header-spacer`},null,-1),E(`button`,{class:`preview-close-btn`,title:Y.value?i(k)(`@EDITOR:关闭思维导图`):i(k)(`@EDITOR:关闭预览`),onClick:o[9]||=e=>Y.value?Y.value=!1:J.value=!1},[...o[32]||=[E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`},[E(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),E(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,zt)]),E(`div`,Bt,[Y.value&&Q.value===`md`&&Z.value?(m(),f(F,{key:0,content:Z.value.content,class:`preview-mindmap`},null,8,[`content`])):J.value&&Q.value===`md`&&Z.value?(m(),f(me,{key:1,content:Z.value.content,class:`preview-markdown`},null,8,[`content`])):J.value&&[`html`,`htm`,`svg`].includes(Q.value)?(m(),n(`iframe`,{key:2,class:`preview-iframe`,sandbox:i(ve),srcdoc:Gn.value},null,8,Vt)):J.value&&i(Fn).has(Q.value)&&Z.value?(m(),f(pe,{key:3,"file-path":Z.value.path,"file-name":Z.value.name},null,8,[`file-path`,`file-name`])):J.value&&zn.value&&Z.value?(m(),f(ge,{key:4,"file-path":Z.value.path},null,8,[`file-path`])):r(``,!0)])],4)):r(``,!0)])])],512),(m(),f(ae,{to:`body`},[K.value?(m(),n(`div`,{key:0,ref_key:`ctxMenuRef`,ref:_n,class:`ctx-menu`,style:h({left:K.value.x+`px`,top:K.value.y+`px`}),onClick:o[10]||=T(()=>{},[`stop`])},[E(`button`,{class:`ctx-menu-item`,onClick:yn},[o[34]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z`}),E(`polyline`,{points:`14 2 14 8 20 8`}),E(`line`,{x1:`12`,y1:`13`,x2:`12`,y2:`19`}),E(`line`,{x1:`9`,y1:`16`,x2:`15`,y2:`16`})],-1),y(` `+u(i(k)(`@EDITOR:新建文件`)),1)]),E(`button`,{class:`ctx-menu-item`,onClick:bn},[o[35]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`}),E(`line`,{x1:`12`,y1:`11`,x2:`12`,y2:`17`}),E(`line`,{x1:`9`,y1:`14`,x2:`15`,y2:`14`})],-1),y(` `+u(i(k)(`@EDITOR:新建文件夹`)),1)]),o[42]||=E(`div`,{class:`ctx-menu-sep`},null,-1),E(`button`,{class:`ctx-menu-item`,onClick:On},[o[36]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),E(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})],-1),y(` `+u(i(k)(`@EDITOR:复制绝对路径`)),1)]),E(`button`,{class:`ctx-menu-item`,onClick:kn},[o[37]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`}),E(`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`})],-1),y(` `+u(i(k)(`@EDITOR:复制相对路径`)),1)]),o[43]||=E(`div`,{class:`ctx-menu-sep`},null,-1),Mn.value?(m(),n(`button`,{key:0,class:`ctx-menu-item`,onClick:Nn},[o[38]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`circle`,{cx:`12`,cy:`12`,r:`9`}),E(`line`,{x1:`3`,y1:`12`,x2:`21`,y2:`12`}),E(`path`,{d:`M12 3a13 13 0 0 1 3.5 9 13 13 0 0 1-3.5 9 13 13 0 0 1-3.5-9A13 13 0 0 1 12 3z`})],-1),y(` `+u(i(k)(`@EDITOR:在浏览器中打开`)),1)])):r(``,!0),E(`button`,{class:`ctx-menu-item`,onClick:Tn},[o[39]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`}),E(`path`,{d:`M3 7v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2`})],-1),y(` `+u(i(k)(`@EDITOR:在资源管理器中打开`)),1)]),E(`button`,{class:`ctx-menu-item`,onClick:An},[c(le,{"icon-class":`vscode`,"class-name":`ctx-menu-icon`}),y(` `+u(i(k)(`@EDITOR:在 VSCode 中打开`)),1)]),E(`button`,{class:`ctx-menu-item`,onClick:xn},[o[40]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),E(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})],-1),y(` `+u(i(k)(`@EDITOR:重命名`)),1)]),E(`button`,{class:`ctx-menu-item ctx-menu-item--danger`,onClick:wn},[o[41]||=E(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[E(`polyline`,{points:`3 6 5 6 21 6`}),E(`path`,{d:`M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6`}),E(`path`,{d:`M10 11v6`}),E(`path`,{d:`M14 11v6`}),E(`path`,{d:`M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2`})],-1),y(` `+u(i(k)(`@EDITOR:删除`)),1)])],4)):r(``,!0)]))],64))}}),[[`__scopeId`,`data-v-4ce372fa`]]);export{Ut as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.dir-chat[data-v-96ce7584]{height:min(420px,42vh);min-height:200px;margin-top:var(--spacing-sm);border-top:1px solid var(--border-color-light);padding-top:var(--spacing-sm);display:flex}.dir-chat[data-v-96ce7584]>.acu-chat{flex:1;min-width:0}.dir-chat--fill[data-v-96ce7584]{flex:auto;height:auto;min-height:0}.dir-chat[data-v-96ce7584] .acu-welcome{padding:var(--spacing-base);align-items:flex-start;overflow-y:auto}.dir-chat[data-v-96ce7584] .acu-welcome-inner{margin-block:auto}.dir-chat[data-v-96ce7584] .acu-welcome-logo{display:none}.dir-chat[data-v-96ce7584] .acu-welcome-title{font-size:var(--font-size-lg);margin-bottom:var(--spacing-xs)}.dir-chat[data-v-96ce7584] .acu-welcome-desc{font-size:var(--font-size-sm);margin-bottom:var(--spacing-base)}.dir-chat[data-v-96ce7584] .acu-welcome-grid{gap:var(--spacing-sm)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Cn as e,Dn as t,Er as n,Kn as r,Mn as i,Pn as a,Pr as o,Rn as s,Xn as c,pr as l,qr as u}from"./element-plus-Bx3j6vzG.js";import{t as d}from"./vendor-CyWsJd6S.js";import{n as f,t as p}from"./_plugin-vue_export-helper-N8Vc5eEs.js";import{t as m}from"./useThemeObserver-DYxFoHh1.js";import{i as h,n as g,s as _}from"./agentConversations-Da7zLPfP.js";s(),l(),o();var v=p(a({__name:`RecentDirectoriesChat`,props:{dirStatus:{},summary:{},fill:{type:Boolean}},setup(a){let o=a,{theme:s}=m(),l=e(()=>s.value===`dark`?`dark`:`light`),{messages:p,isStreaming:v,pendingQuestion:y,answeringQuestion:b,sendMessage:x,answerQuestion:S,stop:C}=_(),w=h(),T=e(()=>[{id:`priority`,label:f(`@13D1C:这些项目该先处理哪个?`),prompt:f(`@13D1C:这些项目里该先处理哪个?按优先级给我一个处理顺序,并说明每一项该做什么。`)},{id:`behind`,label:f(`@13D1C:哪些项目落后远端?`),prompt:f(`@13D1C:哪些项目落后远端?分别落后多少个提交?`)},{id:`pull-behind`,label:f(`@13D1C:落后远端的都帮我 pull 下代码`),prompt:f(`@13D1C:落后远端的项目都帮我 pull 下代码,逐个执行并汇报结果。`)},{id:`uncommitted`,label:f(`@13D1C:看一下各项目未提交的都改了什么`),prompt:f(`@13D1C:看一下各项目未提交的改动都改了什么,按项目列出来。`)}]);async function E(e){await x(e.text,e.files,{engine:`gai`,dirStatus:o.dirStatus,dirSummary:o.summary})}async function D(e){await E({text:e.prompt,files:[]})}return r(()=>{C()}),(e,r)=>(c(),t(`div`,{class:u([`dir-chat`,{"dir-chat--fill":a.fill}])},[i(n(d),{messages:n(p),"assistant-name":n(g),theme:l.value,disabled:n(v),generating:n(v),"show-avatar":!1,"upload-config":{enabled:!1},placeholder:n(v)?n(f)(`@13D1C:g ai 正在回答...`):n(f)(`@13D1C:追问 g ai:这批项目该怎么处理?`),"welcome-title":n(f)(`@13D1C:可以接着问 g ai`),"welcome-description":n(f)(`@13D1C:它已经拿到了这批目录的 Git 状态,可以直接问该先处理哪个、某个项目落后了什么。`),"preset-questions":T.value,question:n(y),"question-submitting":n(b),"question-labels":n(w),onSend:E,onSelect:D,onStop:n(C),onAnswer:n(S)},null,8,[`messages`,`assistant-name`,`theme`,`disabled`,`generating`,`placeholder`,`welcome-title`,`welcome-description`,`preset-questions`,`question`,`question-submitting`,`question-labels`,`onStop`,`onAnswer`])],2))}}),[[`__scopeId`,`data-v-96ce7584`]]);export{v as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.wb-ctx-menu[data-v-ef29ad59]{z-index:9999;background:var(--bg-container);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:140px;box-shadow:var(--shadow-md);-webkit-user-select:none;user-select:none;font-size:var(--font-size-mid);margin:0;padding:4px;list-style:none;position:fixed}.wb-ctx-menu__item[data-v-ef29ad59]{border-radius:var(--radius-base);cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;padding:6px 10px;display:flex}.wb-ctx-menu__item[data-v-ef29ad59]:hover{background:var(--tint-primary-12);color:var(--color-primary)}.wb-ctx-menu__item.is-disabled[data-v-ef29ad59]{cursor:progress;opacity:.6}.wb-ctx-menu__icon[data-v-ef29ad59]{justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.wb-log-details[data-v-5c82e125]{border:1px solid var(--border-color);border-radius:var(--radius-base);background:var(--bg-code);flex-direction:column;flex:1;height:100%;min-height:0;margin-top:6px;display:flex;overflow:auto}.wb-log-details__body[data-v-5c82e125]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.wb-job-chat[data-v-5c82e125]{flex:1;min-height:0}.wb-job-chat[data-v-5c82e125] .acu-chat-footer{display:none}.wb-job-chat[data-v-5c82e125] .acu-chat{background:0 0}.wb-job-chat[data-v-5c82e125] .acu-message-list-inner{gap:10px;padding:10px 12px 14px}.wb-job-chat[data-v-5c82e125] .acu-bubble{font-size:var(--font-size-sm)}.wb-job-chat[data-v-5c82e125] .acu-bubble-name{font-size:var(--font-size-xs)}.wb-log-summary[data-v-5c82e125]{cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.wb-log-summary[data-v-5c82e125]:hover{background:var(--tint-primary-06)}.wb-log-summary__left[data-v-5c82e125]{flex:1;align-items:center;gap:6px;min-width:0;display:inline-flex}.wb-log-summary__right[data-v-5c82e125]{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.wb-log-summary__meta[data-v-5c82e125]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.wb-log-copy[data-v-5c82e125]{font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-container);border:1px solid var(--border-color-medium);border-radius:var(--radius-base);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex-shrink:0;align-items:center;gap:3px;padding:2px 7px;font-weight:500;display:inline-flex}.wb-log-copy[data-v-5c82e125]:hover{background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-color:color-mix(in srgb, var(--color-primary) 35%, transparent);color:var(--color-primary)}.wb-log-copy[data-v-5c82e125]:active{background:color-mix(in srgb, var(--color-primary) 18%, transparent)}.wb-log-copy[data-v-5c82e125]:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 50%, transparent);outline-offset:1px}.wb-chat__foot[data-v-5c82e125]{border-top:1px solid color-mix(in srgb, var(--border-color) 60%, transparent);background:color-mix(in srgb, var(--text-tertiary) 3%, transparent);flex-shrink:0;justify-content:flex-end;gap:6px;padding:4px 10px 6px;display:flex}.wb-chat__action[data-v-5c82e125]{font-size:var(--font-size-xs);color:#6d28d9;background:color-mix(in srgb, var(--color-think) 10%, var(--bg-container));border:1px solid color-mix(in srgb, var(--color-think) 30%, transparent);border-radius:var(--radius-base);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);align-items:center;gap:3px;padding:2px 8px;font-weight:500;display:inline-flex}.wb-chat__action[data-v-5c82e125]:hover{background:color-mix(in srgb, var(--color-think) 18%, var(--bg-container));border-color:color-mix(in srgb, var(--color-think) 50%, transparent);color:#5b21b6}.wb-chat__action[data-v-5c82e125]:active{background:color-mix(in srgb, var(--color-think) 26%, var(--bg-container))}.wb-chat__action[data-v-5c82e125]:focus-visible{outline:2px solid color-mix(in srgb, var(--color-think) 50%, transparent);outline-offset:1px}.wb-log-fullscreen-dialog .el-dialog__body[data-v-5c82e125]{flex-direction:column;height:calc(100vh - 54px);padding:0 16px 16px;display:flex;overflow:hidden}.wb-log-fullscreen[data-v-5c82e125]{border:1px solid var(--border-color);border-radius:var(--radius-base);background:var(--bg-code);flex:1;min-height:0;display:flex;overflow:hidden}.wb-log-fullscreen__render[data-v-5c82e125]{min-height:0;font-size:var(--font-size-mid);color:var(--text-primary);flex:1;padding:14px 18px;line-height:1.65;overflow:auto}.wb-log-fullscreen__render[data-v-5c82e125] pre{margin:8px 0}.wb-log-fullscreen__empty[data-v-5c82e125]{color:var(--text-tertiary);padding:14px 18px;font-style:italic}.wb-log-summary__status[data-v-5c82e125]{font-weight:600;font-size:var(--font-size-sm);align-items:center;gap:6px;display:inline-flex}.wb-log-summary__status--running[data-v-5c82e125]{color:var(--color-warning-dark,var(--color-warning-dark))}.wb-log-summary__status--pending[data-v-5c82e125]{color:var(--color-primary)}.wb-log-summary__status--done[data-v-5c82e125]{color:var(--color-success-dark,#15803d)}.wb-log-summary__status--cancelled[data-v-5c82e125]{color:var(--color-gray-400)}.wb-log-summary__status--error[data-v-5c82e125]{color:var(--color-danger,var(--color-danger-light))}.wb-log-summary__icon[data-v-5c82e125]{font-size:var(--font-size-mid);line-height:1}.wb-log-summary__elapsed[data-v-5c82e125]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:2px;font-weight:400}.wb-log-dots[data-v-5c82e125]{align-items:center;gap:3px;margin-left:-2px;display:inline-flex}.wb-log-dots__dot[data-v-5c82e125]{opacity:.35;background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.4s ease-in-out infinite wb-log-dot-bounce-5c82e125}.wb-log-dots__dot[data-v-5c82e125]:nth-child(2){animation-delay:var(--transition-base)}.wb-log-dots__dot[data-v-5c82e125]:nth-child(3){animation-delay:.4s}.wb-log-details.is-running .wb-log-summary[data-v-5c82e125]{background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 8%, transparent)}.wb-log-details.is-pending .wb-log-summary[data-v-5c82e125]{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.wb-log-details.is-finished .wb-log-summary[data-v-5c82e125]{background:color-mix(in srgb, var(--color-success,var(--action-green)) 6%, transparent)}.wb-log-details.is-finished[data-v-5c82e125]{animation:1.5s ease-out wb-log-finished-flash-5c82e125}@keyframes wb-log-dot-bounce-5c82e125{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes wb-log-finished-flash-5c82e125{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-success,var(--action-green)) 50%, transparent)}60%{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-success,var(--action-green)) 0%, transparent)}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.wb-log-dots__dot[data-v-5c82e125],.wb-log-details.is-finished[data-v-5c82e125]{animation:none}}.exec-logs[data-v-7079b876]{flex-direction:column;gap:12px;height:100%;padding:16px 20px;display:flex;overflow:auto}.exec-logs__head[data-v-7079b876]{align-items:center;gap:12px;display:flex}.exec-logs__title-block[data-v-7079b876]{flex:1;align-items:baseline;gap:10px;min-width:0;display:flex}.exec-logs__stats[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.exec-logs__head-actions[data-v-7079b876]{flex-shrink:0;gap:8px;display:inline-flex}.exec-logs__config[data-v-7079b876]{background:var(--bg-subtle,var(--bg-container));border:1px solid var(--border-color);border-radius:var(--radius-md,6px);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 14px;display:flex}.exec-logs__config-label[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:600}.exec-logs__config-field[data-v-7079b876]{align-items:center;gap:8px;display:inline-flex}.exec-logs__config-name[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-tertiary)}.exec-logs__filter[data-v-7079b876]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exec-logs__filter-spacer[data-v-7079b876]{flex:1}.exec-logs__batch-meta[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.exec-logs__batch[data-v-7079b876]{background:color-mix(in srgb, var(--color-primary) 6%, transparent);border:1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);border-radius:var(--radius-md,6px);align-items:center;gap:12px;padding:8px 14px;display:flex}.exec-logs__list[data-v-7079b876]{flex-direction:column;flex:1;gap:10px;min-height:200px;display:flex}.exec-logs__empty[data-v-7079b876]{border:1px dashed var(--border-color);border-radius:var(--radius-md,6px);color:var(--text-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.exec-logs__empty-art[data-v-7079b876]{opacity:.5;margin-bottom:8px;font-size:36px}.exec-logs__empty-title[data-v-7079b876]{font-size:var(--font-size-base);color:var(--text-secondary);margin-bottom:4px;font-weight:600}.exec-logs__empty-hint[data-v-7079b876]{font-size:var(--font-size-sm);max-width:400px}.exec-logs__pager[data-v-7079b876]{justify-content:center;padding-top:8px;display:flex}.exec-card[data-v-7079b876]{background:var(--bg-container);border:1px solid var(--border-color);border-radius:var(--radius-md,6px);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.exec-card[data-v-7079b876]:hover{border-color:var(--color-primary)}.exec-card.is-selected[data-v-7079b876]{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.exec-card__head[data-v-7079b876]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.exec-card__status[data-v-7079b876]{font-size:var(--font-size-xs);border:1px solid;border-radius:999px;flex-shrink:0;padding:1px 8px;font-weight:600;display:inline-block}.exec-card__title[data-v-7079b876]{font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:360px;font-weight:600;overflow:hidden}.exec-card__spacer[data-v-7079b876]{flex:1}.exec-card__meta[data-v-7079b876]{font-size:var(--font-size-xs);color:var(--text-tertiary);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.exec-card__task[data-v-7079b876]{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.exec-card__time[data-v-7079b876]{font-variant-numeric:tabular-nums}.exec-card__exit[data-v-7079b876]{font-family:var(--font-mono,ui-monospace, monospace)}.exec-card__del[data-v-7079b876]{width:22px;height:22px;font-size:var(--font-size-md);color:var(--text-tertiary);border-radius:var(--radius-base);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.exec-card__del[data-v-7079b876]:hover{background:var(--tint-danger-14);color:var(--color-danger-bright,var(--color-danger-light))}.exec-card__error[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--color-danger-dark,#b91c1c);background:var(--tint-danger-06);border-left:2px solid var(--color-danger-bright,var(--color-danger-light));border-radius:var(--radius-base);font-family:var(--font-mono,ui-monospace, monospace);white-space:pre-wrap;word-break:break-word;margin:0;padding:6px 10px}.wb-sidebar[data-v-b7ae6143]{background:var(--bg-panel);flex-direction:column;flex-shrink:0;gap:18px;width:268px;padding:14px 12px 18px;display:flex;overflow-y:auto}.wb-section[data-v-b7ae6143]{flex-direction:column;flex-shrink:0;gap:8px;min-height:0;display:flex}.wb-section+.wb-section[data-v-b7ae6143]{padding-top:16px}.wb-section__head[data-v-b7ae6143]{align-items:center;gap:6px;padding:0 4px;display:flex}.wb-section__tag[data-v-b7ae6143]{height:18px;font-size:var(--font-size-xs);letter-spacing:.4px;color:var(--text-tertiary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-base);text-transform:uppercase;font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.wb-section__tag--accent[data-v-b7ae6143]{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 9%, transparent);border-color:var(--tint-primary-22)}.wb-section__title[data-v-b7ae6143]{font-size:var(--font-size-sm);color:var(--text-secondary);letter-spacing:.2px;flex:1;min-width:0;margin:0;font-weight:600}.wb-section__action[data-v-b7ae6143]{color:var(--text-tertiary);border-radius:var(--radius-base);cursor:pointer;width:28px;height:28px;font-size:var(--font-size-mid);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-section__action[data-v-b7ae6143]:hover{background:var(--tint-primary-12);color:var(--color-primary)}.wb-new-btn[data-v-b7ae6143]{border:1px dashed var(--tint-primary-35,color-mix(in srgb, var(--color-primary) 35%, transparent));border-radius:var(--radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 4%, transparent) 0%, color-mix(in srgb, var(--color-primary) 2%, transparent) 100%);width:100%;height:32px;color:var(--color-primary);font-size:var(--font-size-mid);letter-spacing:.05px;cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;padding:0 12px;font-weight:600;display:flex}.wb-new-btn__icon[data-v-b7ae6143]{font-size:var(--font-size-mid);transition:transform var(--transition-fast) var(--ease-custom);flex-shrink:0}.wb-new-btn__shortcut[data-v-b7ae6143]{display:none}.wb-new-btn[data-v-b7ae6143]:hover{background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 10%, transparent) 0%, color-mix(in srgb, var(--color-primary) 6%, transparent) 100%);color:var(--color-primary);border-style:solid;border-color:var(--tint-primary-50)}.wb-new-btn:hover .wb-new-btn__icon[data-v-b7ae6143]{transform:rotate(90deg)}.wb-new-btn[data-v-b7ae6143]:active{transform:scale(.99)}.wb-new-btn[data-v-b7ae6143]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-task-list[data-v-b7ae6143],.wb-prompt-list[data-v-b7ae6143]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wb-task-list.is-grouped .wb-task-item[data-v-b7ae6143]{margin-left:14px}.wb-task-item[data-v-b7ae6143]{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;display:flex;position:relative}.wb-task-item.is-running[data-v-b7ae6143]{background:color-mix(in srgb, var(--color-warning) 8%, transparent)}.wb-task-item.is-running[data-v-b7ae6143]:hover{background:color-mix(in srgb, var(--color-warning) 14%, transparent)}.wb-task-item[data-v-b7ae6143]:hover{background:var(--bg-container-hover);border-color:#0000;transform:translateY(-.5px)}.wb-task-item.active[data-v-b7ae6143]{background:color-mix(in srgb, var(--color-primary) 10%, var(--bg-container));box-shadow:0 1px 3px color-mix(in srgb, var(--color-primary) 12%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent);border-color:#0000}.wb-task-item.active[data-v-b7ae6143]:after{content:"";border-radius:var(--radius-base);background:linear-gradient(180deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 70%, #fff) 100%);width:3px;box-shadow:0 0 8px color-mix(in srgb, var(--color-primary) 50%, transparent), 0 1px 3px color-mix(in srgb, var(--color-primary) 25%, transparent);position:absolute;top:5px;bottom:5px;left:-1px}.wb-task-item.active .wb-task-item__title[data-v-b7ae6143],.wb-task-item.active .wb-task-item__del[data-v-b7ae6143]{color:var(--color-primary)}.wb-task-item__running-dot[data-v-b7ae6143]{background:var(--color-warning);width:6px;height:6px;box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);border-radius:50%;flex:none;margin-left:auto;animation:1.4s ease-in-out infinite wb-running-pulse-b7ae6143}@keyframes wb-running-pulse-b7ae6143{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);opacity:1;transform:scale(1)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-warning) 0%, transparent);opacity:.75;transform:scale(1.35)}}.wb-task-item__body[data-v-b7ae6143]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wb-task-item__title[data-v-b7ae6143]{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.05px;font-weight:500;line-height:1.3;overflow:hidden}.wb-task-item.is-other-project[data-v-b7ae6143]{opacity:.78}.wb-task-item.is-other-project[data-v-b7ae6143]:hover{opacity:1}.wb-task-item[data-v-b7ae6143]{cursor:grab}.wb-task-item.is-dragging[data-v-b7ae6143]{opacity:.5;cursor:grabbing;pointer-events:none}.wb-task-item.is-drop-before[data-v-b7ae6143]:before,.wb-task-item.is-drop-after[data-v-b7ae6143]:after{content:"";background:var(--color-primary);border-radius:var(--radius-xs);height:2px;box-shadow:0 0 8px color-mix(in srgb, var(--color-primary) 50%, transparent);pointer-events:none;position:absolute;left:8px;right:8px}.wb-task-item.is-drop-before[data-v-b7ae6143]:before{top:-2px}.wb-task-item.is-drop-after[data-v-b7ae6143]:after{bottom:-2px}.wb-task-group__head.is-no-drop[data-v-b7ae6143]{cursor:not-allowed;opacity:.55}.wb-task-item__action-group[data-v-b7ae6143]{border-radius:var(--radius-lg);background:linear-gradient(to right, transparent 0%, var(--bg-container-hover) 40%);opacity:0;pointer-events:none;transition:opacity var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);align-items:center;gap:2px;padding:1px 1px 1px 14px;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)translate(-2px)}.wb-task-item:hover .wb-task-item__action-group[data-v-b7ae6143],.wb-task-item.active .wb-task-item__action-group[data-v-b7ae6143]{opacity:1;pointer-events:auto;transform:translateY(-50%)translate(0)}.wb-task-item.active .wb-task-item__action-group[data-v-b7ae6143]{background:linear-gradient(to right, transparent 0%, color-mix(in srgb, var(--color-primary) 10%, var(--bg-container)) 40%)}.wb-task-item.is-running .wb-task-item__action-group[data-v-b7ae6143]{background:linear-gradient(to right, transparent 0%, color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 8%, var(--bg-panel)) 40%)}.wb-task-item__copy[data-v-b7ae6143]{color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;width:22px;height:22px;font-size:var(--font-size-sm);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-task-item__copy[data-v-b7ae6143]:hover{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.wb-task-item__copy[data-v-b7ae6143]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}.wb-task-item__copy[data-v-b7ae6143]:active{transform:scale(.9)}.wb-task-item__del[data-v-b7ae6143]{color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;width:22px;height:22px;font-size:var(--font-size-sm);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-task-item__del[data-v-b7ae6143]:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent);color:var(--color-danger)}.wb-task-item__del[data-v-b7ae6143]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset);opacity:1}.wb-task-item__del[data-v-b7ae6143],.wb-prompt-item__del[data-v-b7ae6143],.wb-sub-item__del[data-v-b7ae6143]{font-size:var(--font-size-mid)}.wb-prompt-item[data-v-b7ae6143]{border-radius:var(--radius-md);font-size:var(--font-size-mid);color:var(--text-primary);transition:background var(--transition-fast) var(--ease-custom);align-items:center;gap:8px;padding:7px 8px;display:flex;position:relative}.wb-prompt-item[data-v-b7ae6143]:hover{background:var(--bg-container-hover)}.wb-prompt-item:hover .wb-prompt-item__del[data-v-b7ae6143]{opacity:1}.wb-prompt-item__icon[data-v-b7ae6143]{border-radius:var(--radius-base);background:var(--tint-primary-08);width:22px;height:22px;color:var(--color-primary);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-prompt-item__name[data-v-b7ae6143]{font:inherit;text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;width:100%;min-width:0;color:var(--text-primary);letter-spacing:-.05px;background:0 0;border:none;flex:1;padding:0;font-weight:500;overflow:hidden}.wb-prompt-item__tag[data-v-b7ae6143]{border-radius:var(--radius-xs);max-width:96px;font-size:var(--font-size-xs);letter-spacing:.1px;background:var(--tint-primary-08);color:var(--color-primary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;padding:1px 6px;line-height:16px;overflow:hidden}.wb-prompt-item__tag--project[data-v-b7ae6143]{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color-light)}.wb-prompt-item__del[data-v-b7ae6143]{color:var(--text-tertiary);border-radius:var(--radius-xs);cursor:pointer;width:20px;height:20px;font-size:var(--font-size-sm);opacity:0;transition:opacity var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-prompt-item__del[data-v-b7ae6143]:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent);color:var(--color-danger)}.wb-prompt-item__del[data-v-b7ae6143]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset);opacity:1}.wb-empty[data-v-b7ae6143]{text-align:center;color:var(--text-tertiary);border-radius:var(--radius-md);background:linear-gradient(135deg, var(--bg-subtle) 0%, color-mix(in srgb, var(--tint-primary-06) 50%, transparent) 100%);border:1px dashed var(--border-color-light);flex-direction:column;align-items:center;gap:8px;padding:24px 14px 20px;display:flex;position:relative;overflow:hidden}.wb-empty[data-v-b7ae6143]:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--color-primary) 5%, transparent) 0%, transparent 70%);pointer-events:none;border-radius:50%;width:100px;height:100px;position:absolute;top:-25px;right:-25px}.wb-empty--compact[data-v-b7ae6143]{background:var(--bg-subtle);border-style:solid;flex-direction:row;justify-content:center;gap:0;padding:10px 12px}.wb-empty--compact[data-v-b7ae6143]:before{display:none}.wb-empty__art[data-v-b7ae6143]{border-radius:var(--radius-xl);background:linear-gradient(135deg, var(--tint-primary-12) 0%, var(--tint-primary-08) 100%);width:52px;height:52px;color:var(--color-primary);font-size:var(--font-size-2xl);box-shadow:0 4px 12px color-mix(in srgb, var(--color-primary) 10%, transparent);z-index:1;justify-content:center;align-items:center;margin-bottom:4px;display:flex;position:relative}.wb-empty__title[data-v-b7ae6143]{font-size:var(--font-size-base);letter-spacing:var(--letter-spacing-heading,-.25px);color:var(--text-secondary);z-index:1;font-weight:600;line-height:1.45;position:relative}.wb-empty--rich .wb-empty__hint[data-v-b7ae6143]{font-size:var(--font-size-sm);color:var(--text-tertiary);z-index:1;max-width:280px;line-height:1.6;position:relative}.wb-empty__cta[data-v-b7ae6143]{z-index:1;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:8px;display:flex;position:relative}.wb-pill[data-v-b7ae6143]{border-radius:var(--radius-lg);min-width:16px;height:16px;font-size:var(--font-size-xs);color:var(--text-tertiary);background:var(--bg-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:center;align-items:center;padding:0 5px;font-weight:600;display:inline-flex}.wb-section__count[data-v-b7ae6143]{background:var(--tint-primary-12);color:var(--color-primary)}.wb-task-group__head[data-v-b7ae6143]{border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--font-size-mid);color:var(--text-secondary);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;margin-bottom:2px;padding:5px 6px;font-weight:600;display:flex}.wb-task-group__head[data-v-b7ae6143]:hover{background:var(--bg-container-hover);color:var(--text-primary)}.wb-task-group__head.is-current[data-v-b7ae6143]{color:var(--color-primary);font-weight:600}.wb-task-group__caret[data-v-b7ae6143]{font-size:var(--font-size-sm);transition:transform var(--transition-fast);flex-shrink:0}.wb-task-group__icon[data-v-b7ae6143]{font-size:var(--font-size-base);opacity:.7;flex-shrink:0}.wb-task-group__name[data-v-b7ae6143]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.wb-task-group__count[data-v-b7ae6143]{min-width:14px;height:14px;font-size:var(--font-size-xs);background:var(--bg-subtle);padding:0 4px}.proj[data-v-43ec6df2]{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.proj__head[data-v-43ec6df2]{flex-shrink:0;align-items:center;gap:6px;padding:10px 12px 6px;display:flex}.proj__title[data-v-43ec6df2]{font-size:var(--font-size-sm);color:var(--text-secondary);flex:1;min-width:0;margin:0;font-weight:500}.proj__count[data-v-43ec6df2]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;text-align:right}.proj__tools[data-v-43ec6df2]{flex-direction:column;flex-shrink:0;gap:6px;padding:0 12px 8px;display:flex}.proj__search[data-v-43ec6df2]{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-subtle);height:24px;transition:border-color var(--transition-fast) var(--ease-custom);align-items:center;gap:5px;padding:0 7px;display:flex}.proj__search[data-v-43ec6df2]:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring-soft)}.proj__search-icon[data-v-43ec6df2]{font-size:var(--font-size-sm);color:var(--text-tertiary);flex-shrink:0}.proj__search-input[data-v-43ec6df2]{min-width:0;font-family:inherit;font-size:var(--font-size-sm);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1}.proj__search-input[data-v-43ec6df2]::placeholder{color:var(--text-tertiary)}.proj__toggles[data-v-43ec6df2]{align-items:center;gap:6px;display:flex}.proj__toggle[data-v-43ec6df2]{border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:0;height:22px;color:var(--text-tertiary);font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;flex:1 1 0;padding:0 6px;line-height:1}.proj__toggle>span[data-v-43ec6df2]{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.proj__toggle[data-v-43ec6df2]:hover{color:var(--text-secondary);border-color:var(--text-tertiary)}.proj__toggle.is-on[data-v-43ec6df2]{color:var(--color-primary);border-color:var(--color-primary);background:var(--tint-primary-12)}.proj__toggle[data-v-43ec6df2]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.proj__list[data-v-43ec6df2]{flex:auto;min-height:0;margin:0;padding:0 6px 8px;list-style:none;overflow-y:auto}.proj-item[data-v-43ec6df2]{border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom);outline:none;padding:7px 8px;position:relative}.proj-item[data-v-43ec6df2]:hover{background:var(--bg-container-hover)}.proj-item.is-active[data-v-43ec6df2]{background:linear-gradient(90deg, var(--tint-primary-10), var(--tint-primary-04));box-shadow:inset 0 0 0 1px var(--tint-primary-14)}.proj-item[data-v-43ec6df2]:focus-visible{outline:var(--focus-outline);outline-offset:-1px}.proj-item.is-running[data-v-43ec6df2]{background:color-mix(in srgb, var(--color-warning) 7%, transparent)}.proj-item--all[data-v-43ec6df2]{border-bottom:1px solid var(--border-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-bottom:4px}.proj-item__num[data-v-43ec6df2]{font-size:var(--font-size-xs);border-radius:var(--radius-base);color:var(--text-secondary);background:var(--bg-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 5px;line-height:15px}.proj-item__running-text[data-v-43ec6df2]{color:var(--color-warning);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.proj-item__row1[data-v-43ec6df2]{align-items:center;gap:6px;min-width:0;display:flex}.proj-item__icon[data-v-43ec6df2]{font-size:var(--font-size-mid);color:var(--text-tertiary);flex-shrink:0}.proj-item.is-active .proj-item__icon[data-v-43ec6df2]{color:var(--color-primary)}.proj-item__name[data-v-43ec6df2]{font-size:var(--font-size-mid);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;padding-right:44px;font-weight:500;line-height:1.4;overflow:hidden}.proj-item__signals[data-v-43ec6df2]{transition:opacity var(--transition-fast) var(--ease-custom);flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.proj-item:not(.is-missing):hover .proj-item__signals[data-v-43ec6df2]{opacity:0}.proj-item:not(.is-missing):has(.proj-item__action:focus-visible) .proj-item__signals[data-v-43ec6df2]{opacity:0}.proj-item__running[data-v-43ec6df2]{background:var(--color-warning);width:6px;height:6px;box-shadow:var(--dot-glow-warning);border-radius:50%;flex-shrink:0;animation:1.4s ease-in-out infinite proj-pulse-43ec6df2}@keyframes proj-pulse-43ec6df2{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.3)}}.proj-item__badge[data-v-43ec6df2]{font-size:var(--font-size-xs);border-radius:var(--radius-base);color:var(--color-primary);background:var(--tint-primary-12);flex-shrink:0;padding:0 5px;line-height:15px}.proj-item__actions[data-v-43ec6df2]{opacity:0;pointer-events:none;transition:opacity var(--transition-fast) var(--ease-custom);align-items:center;gap:2px;display:inline-flex;position:absolute;top:6px;right:8px}.proj-item:hover .proj-item__actions[data-v-43ec6df2]{opacity:1;pointer-events:auto}.proj-item:has(.proj-item__action:focus-visible) .proj-item__actions[data-v-43ec6df2]{opacity:1;pointer-events:auto}.proj-item:has(.proj-item__action.is-open) .proj-item__actions[data-v-43ec6df2]{opacity:1;pointer-events:auto}.proj-item__action[data-v-43ec6df2]{border-radius:var(--radius-base);width:20px;height:20px;color:var(--text-tertiary);font-size:var(--font-size-mid);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.proj-item__action[data-v-43ec6df2]:hover{color:var(--color-primary);background:var(--tint-primary-12)}.proj-item__action[data-v-43ec6df2]:active{color:var(--color-primary)}.proj-item__action[data-v-43ec6df2]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.proj-item__action.is-open[data-v-43ec6df2]{color:var(--color-primary);background:var(--tint-primary-12)}.proj-menu[data-v-43ec6df2]{font-size:var(--font-size-mid);color:var(--text-primary);margin:0;padding:2px 0;list-style:none}.proj-menu__item[data-v-43ec6df2]{border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);align-items:center;gap:9px;padding:7px 10px;display:flex}.proj-menu__item[data-v-43ec6df2]:hover,.proj-menu__item[data-v-43ec6df2]:focus-visible{background:var(--tint-primary-12);outline:none}.proj-menu__icon[data-v-43ec6df2]{width:16px;height:16px;font-size:var(--font-size-base);color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.proj-menu__icon[data-v-43ec6df2] svg{width:16px;height:16px}.proj-menu__img[data-v-43ec6df2]{object-fit:contain;-webkit-user-drag:none;width:16px;height:16px}.proj-menu__label[data-v-43ec6df2]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.proj-menu__hint[data-v-43ec6df2]{font-size:var(--font-size-xs);color:var(--text-tertiary);transition:color var(--transition-fast) var(--ease-custom);flex-shrink:0}.proj-menu__item:hover .proj-menu__hint[data-v-43ec6df2]{color:var(--color-primary)}.proj-menu__sep[data-v-43ec6df2]{background:var(--border-color);height:1px;margin:4px 6px}.proj-menu__title[data-v-43ec6df2]{font-size:var(--font-size-xs);letter-spacing:.3px;color:var(--text-tertiary);padding:4px 10px 3px;font-weight:600}.proj-menu__item--danger .proj-menu__label[data-v-43ec6df2]{color:var(--color-warning)}.proj-menu__item.is-missing .proj-menu__icon[data-v-43ec6df2]{opacity:.5;filter:grayscale(.65)}.proj-menu__item.is-missing:hover .proj-menu__icon[data-v-43ec6df2]{opacity:.85;filter:grayscale(.2)}.proj-item__row2[data-v-43ec6df2]{min-width:0;font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:center;gap:5px;margin-top:2px;display:flex}.proj-item__branch[data-v-43ec6df2]{min-width:0;max-width:130px;font-family:var(--font-mono,ui-monospace, monospace);align-items:center;gap:4px;display:inline-flex}.proj-item__branch-name[data-v-43ec6df2]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.proj-item__branch[data-v-43ec6df2] .proj-item__branch-icon{color:currentColor;flex-shrink:0;width:11px;height:11px}.proj-item__time[data-v-43ec6df2]{font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.proj-chip[data-v-43ec6df2]{font-size:var(--font-size-xs);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 6px;line-height:14px}.proj-chip--ahead[data-v-43ec6df2]{color:var(--color-primary);background:var(--tint-primary-12)}.proj-chip--behind[data-v-43ec6df2]{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 14%, transparent)}.proj-chip--dirty[data-v-43ec6df2]{color:var(--text-secondary);background:var(--bg-subtle)}.proj-chip--missing[data-v-43ec6df2]{color:var(--color-danger-light);background:color-mix(in srgb, var(--color-danger) 12%, transparent)}.proj-item__row3[data-v-43ec6df2]{align-items:center;gap:6px;margin-top:5px;display:flex}.proj-item__bar[data-v-43ec6df2]{border-radius:var(--radius-pill);background:var(--bg-subtle);flex:1;min-width:0;height:4px;overflow:hidden}.proj-item__bar-fill[data-v-43ec6df2]{border-radius:var(--radius-pill);background:var(--gradient-progress);height:100%;transition:width var(--transition-base) var(--ease-custom);display:block}.proj-item__progress-text[data-v-43ec6df2]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.proj-empty[data-v-43ec6df2]{text-align:center;border-radius:var(--radius-lg);background:var(--bg-subtle);margin:0 6px;padding:20px 12px;list-style:none}.proj-empty__title[data-v-43ec6df2]{font-size:var(--font-size-mid);color:var(--text-secondary);margin:0 0 4px}.proj-empty__hint[data-v-43ec6df2]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0;line-height:1.6}.proj-empty__clear[data-v-43ec6df2]{color:var(--color-primary);font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:2px 4px}.proj-empty__clear[data-v-43ec6df2]:hover{text-decoration:underline}.proj-empty__clear[data-v-43ec6df2]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.agents[data-v-0843acc2]{min-height:0;height:var(--wb-agents-h,auto);max-height:var(--wb-agents-h,42%);flex-direction:column;flex:none;display:flex;overflow:hidden}.agents__head[data-v-0843acc2]{flex-shrink:0;align-items:center;gap:6px;padding:10px 12px 6px;display:flex}.agents__title[data-v-0843acc2]{font-size:var(--font-size-sm);color:var(--text-secondary);flex:1;min-width:0;margin:0;font-weight:500}.agents__count[data-v-0843acc2]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.agents__count.is-live[data-v-0843acc2]{color:var(--color-warning)}.agents__list[data-v-0843acc2]{flex:auto;min-height:0;margin:0;padding:0 6px 8px;list-style:none;overflow-y:auto}.agent-item[data-v-0843acc2]{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-warning) 7%, transparent);margin-bottom:4px;padding:7px 8px}.agent-item__row1[data-v-0843acc2]{align-items:center;gap:6px;min-width:0;display:flex}.agent-item__dot[data-v-0843acc2]{background:var(--color-warning);width:6px;height:6px;box-shadow:var(--dot-glow-warning);border-radius:50%;flex-shrink:0;animation:1.4s ease-in-out infinite agent-pulse-0843acc2}.agent-item__dot.is-pending[data-v-0843acc2]{background:var(--text-tertiary);box-shadow:none;animation:none}@keyframes agent-pulse-0843acc2{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.3)}}.agent-item__project[data-v-0843acc2]{font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:500;overflow:hidden}.agent-item__status[data-v-0843acc2]{font-size:var(--font-size-xs);color:var(--color-warning);flex-shrink:0}.agent-item__task[data-v-0843acc2]{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0 12px;line-height:1.5;overflow:hidden}.agent-item__row3[data-v-0843acc2]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin:3px 0 0 12px;display:flex}.agent-item__elapsed[data-v-0843acc2]{margin-left:auto}.agents-empty[data-v-0843acc2]{text-align:center;font-size:var(--font-size-xs);color:var(--text-tertiary);padding:14px 10px;list-style:none}.kb[data-v-de96d0c8]{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.kb__toolbar[data-v-de96d0c8]{border-bottom:1px solid var(--border-color);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:8px 12px;display:flex}.kb__views[data-v-de96d0c8]{border-radius:var(--radius-lg);background:var(--bg-subtle);flex-shrink:0;align-items:center;gap:2px;padding:3px;display:inline-flex}.kb__view-btn[data-v-de96d0c8]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-base);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 10px;line-height:20px}.kb__view-btn[data-v-de96d0c8]:hover{color:var(--text-primary)}.kb__view-btn.is-active[data-v-de96d0c8]{background:var(--surface-elevated);box-shadow:var(--shadow-card-rest);color:var(--color-primary);font-weight:500}.kb__filters[data-v-de96d0c8]{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.kb__check[data-v-de96d0c8]{font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;display:inline-flex}.kb__check input[data-v-de96d0c8]{cursor:pointer}.kb__search[data-v-de96d0c8]{align-items:center;display:inline-flex;position:relative}.kb__search-icon[data-v-de96d0c8]{font-size:var(--font-size-sm);color:var(--text-tertiary);pointer-events:none;position:absolute;left:7px}.kb__search-input[data-v-de96d0c8]{width:168px;height:24px;font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast) var(--ease-custom), width var(--transition-base) var(--ease-custom);outline:none;padding:0 8px 0 24px}.kb__search-input[data-v-de96d0c8]:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring-soft);width:216px}.kb__search-input[data-v-de96d0c8]::placeholder{color:var(--text-tertiary)}.kb__columns[data-v-de96d0c8]{flex:auto;min-height:0;display:grid;overflow:hidden}.kb-col[data-v-de96d0c8]{border-left:1px solid var(--border-color);flex-direction:column;min-width:0;min-height:0;display:flex}.kb-col[data-v-de96d0c8]:first-child{border-left:none}.kb-col__head[data-v-de96d0c8]{border-bottom:1px solid var(--border-color-light);flex-shrink:0;align-items:center;gap:6px;padding:9px 10px 7px;display:flex}.kb-col__dot[data-v-de96d0c8]{background:var(--text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.kb-col--doing .kb-col__dot[data-v-de96d0c8]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:1.4s ease-in-out infinite kb-pulse-de96d0c8}.kb-col--done .kb-col__dot[data-v-de96d0c8]{background:var(--color-success);box-shadow:var(--dot-glow-success)}@keyframes kb-pulse-de96d0c8{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}.kb-col__title[data-v-de96d0c8]{font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-wide);color:var(--text-secondary);flex:1;min-width:0;margin:0;font-weight:500}.kb-col__count[data-v-de96d0c8]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.kb-col__list[data-v-de96d0c8]{flex:auto;min-height:0;margin:0;padding:0 8px 10px;list-style:none;overflow-y:auto}.kb-card[data-v-de96d0c8]{border:1px solid var(--border-color-light);border-radius:var(--radius-lg);background:var(--surface-elevated);box-shadow:var(--shadow-card-rest);cursor:pointer;transition:border-color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);margin-bottom:6px;padding:8px 10px;position:relative}.kb-card[data-v-de96d0c8]:hover{border-color:var(--border-card-hover);background:var(--surface-elevated);box-shadow:var(--shadow-card-lift);transform:translateY(-1px)}.kb-card.is-running[data-v-de96d0c8]{border-color:color-mix(in srgb, var(--color-warning) 45%, var(--border-color));background:color-mix(in srgb, var(--color-warning) 4%, var(--surface-elevated))}.kb-card.has-error[data-v-de96d0c8]{border-color:color-mix(in srgb, var(--color-danger) 40%, var(--border-color));background:color-mix(in srgb, var(--color-danger) 4%, var(--surface-elevated))}.kb-card__row1[data-v-de96d0c8]{min-width:0;font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:center;gap:4px;margin-bottom:4px;display:flex}.kb-card__running[data-v-de96d0c8]{background:var(--color-warning);width:6px;height:6px;box-shadow:var(--dot-glow-warning);border-radius:50%;flex-shrink:0;animation:1.4s ease-in-out infinite kb-pulse-de96d0c8}.kb-card__time[data-v-de96d0c8]{font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.kb-card__title[data-v-de96d0c8]{font-size:var(--font-size-mid);color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.kb-card__project[data-v-de96d0c8]{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0;overflow:hidden}.kb-card__actions[data-v-de96d0c8]{opacity:0;pointer-events:none;transition:opacity var(--transition-fast) var(--ease-custom);align-items:center;gap:2px;padding-left:12px;display:inline-flex;position:absolute;bottom:6px;right:8px}.kb-card:hover .kb-card__actions[data-v-de96d0c8],.kb-card:focus-within .kb-card__actions[data-v-de96d0c8]{opacity:1;pointer-events:auto}.kb-card:hover .kb-card__title[data-v-de96d0c8],.kb-card:focus-within .kb-card__title[data-v-de96d0c8],.kb-card:hover .kb-card__project[data-v-de96d0c8],.kb-card:focus-within .kb-card__project[data-v-de96d0c8]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 80px),#0000 calc(100% - 64px));mask-image:linear-gradient(90deg,#000 calc(100% - 80px),#0000 calc(100% - 64px))}.kb-card__btn[data-v-de96d0c8]{color:var(--text-tertiary);font-size:var(--font-size-xs);border-radius:var(--radius-base);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 5px;line-height:18px}.kb-card__btn[data-v-de96d0c8]:hover{color:var(--color-primary);background:var(--bg-subtle-hover)}.kb-card__btn--danger[data-v-de96d0c8]{font-size:var(--font-size-base);padding:0 4px}.kb-card__btn--danger[data-v-de96d0c8]:hover{color:var(--color-danger-light)}.kb-card__btn[data-v-de96d0c8]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.kb-col__empty[data-v-de96d0c8]{text-align:center;font-size:var(--font-size-xs);color:var(--text-tertiary);border:1px dashed var(--border-color-light);border-radius:var(--radius-lg);background:var(--bg-subtle);margin:0 2px;padding:18px 8px;list-style:none}.kb-col__add[data-v-de96d0c8]{margin:0;padding:0;list-style:none}.kb-col__add-btn[data-v-de96d0c8]{width:100%;font-size:var(--font-size-xs);color:var(--text-tertiary);border:1px dashed var(--border-color-medium);border-radius:var(--radius-lg);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;justify-content:center;align-items:center;gap:5px;padding:5px 10px;line-height:20px;display:flex}.kb-col__add-btn[data-v-de96d0c8]:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--bg-subtle)}.kb-col__add-btn[data-v-de96d0c8]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.kb-col__add-plus[data-v-de96d0c8]{font-size:var(--font-size-base);line-height:1}.kb-col__add-btn--solo[data-v-de96d0c8]{padding:18px 8px}.kb__table-wrap[data-v-de96d0c8]{flex:auto;min-height:0;overflow:auto}.kb-table[data-v-de96d0c8]{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.kb-table__th[data-v-de96d0c8]{z-index:1;text-align:left;font-size:var(--font-size-xs);color:var(--text-tertiary);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-filter);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:7px 10px;font-weight:500;position:sticky;top:0}.kb-table__th--narrow[data-v-de96d0c8]{width:96px}.kb-table__row[data-v-de96d0c8]{cursor:pointer;transition:background var(--transition-fast) var(--ease-custom)}.kb-table__row[data-v-de96d0c8]:hover{background:var(--bg-container-hover)}.kb-table__td[data-v-de96d0c8]{border-bottom:1px solid var(--border-color);color:var(--text-secondary);vertical-align:middle;padding:8px 10px}.kb-table__td--num[data-v-de96d0c8]{font-variant-numeric:tabular-nums}.kb-table__name[data-v-de96d0c8]{color:var(--text-primary)}.kb-table__project[data-v-de96d0c8]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-left:6px}.kb-table__status[data-v-de96d0c8]{font-size:var(--font-size-xs);border-radius:var(--radius-base);background:var(--bg-subtle);color:var(--text-secondary);padding:1px 6px}.kb-table__status.is-doing[data-v-de96d0c8]{color:var(--color-warning)}.kb-table__status.is-done[data-v-de96d0c8]{color:var(--color-success)}.kb-table__empty[data-v-de96d0c8]{text-align:center;color:var(--text-tertiary);padding:28px 10px}@media (width<=860px){.kb__columns[data-v-de96d0c8]{display:block;overflow-y:auto}.kb-col[data-v-de96d0c8]{border-left:none;border-top:1px solid var(--border-color)}.kb-col[data-v-de96d0c8]:first-child{border-top:none}.kb-col__list[data-v-de96d0c8]{overflow:visible}}.tep[data-v-88579c65]{vertical-align:middle}.tep__btn[data-v-88579c65]{border:1px solid var(--border-color);border-radius:var(--radius-pill);background:var(--bg-panel);height:22px;color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom);align-items:center;gap:5px;padding:0 8px;display:inline-flex}.tep__btn[data-v-88579c65]:hover,.tep__btn[data-v-88579c65]:focus-visible{color:var(--color-primary);border-color:var(--color-primary)}.tep__btn[data-v-88579c65]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.tep__btn-icon[data-v-88579c65]{font-size:var(--font-size-mid)}.tep__btn-caret[data-v-88579c65]{font-size:var(--font-size-xs);opacity:.7}.tep__item[data-v-88579c65]{align-items:center;gap:8px;min-width:132px;display:inline-flex}.tep__item-icon[data-v-88579c65]{font-size:var(--font-size-base);flex:none}.tep__item-name[data-v-88579c65]{flex:1}.tep__item-check[data-v-88579c65]{color:var(--color-primary);font-size:var(--font-size-sm)}.tep__item-missing[data-v-88579c65]{font-size:var(--font-size-xs);color:var(--text-tertiary,var(--text-secondary))}.acs[data-v-cb72fc94]{flex-direction:column;flex:1;min-height:0;display:flex}.acs__head[data-v-cb72fc94]{border-bottom:1px solid var(--border-color-light);flex:none;align-items:center;gap:6px;height:32px;padding:0 8px;display:flex}.acs__title[data-v-cb72fc94]{font-size:var(--font-size-xs);letter-spacing:.06em;color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:700;overflow:hidden}.acs__spacer[data-v-cb72fc94]{flex:1}.acs__engine[data-v-cb72fc94]{flex:none}.acs__icon-btn[data-v-cb72fc94]{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--text-tertiary);cursor:pointer;transition:var(--transition-ui-fast);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.acs__icon-btn[data-v-cb72fc94]:hover{background:var(--bg-hover);color:var(--text-secondary)}.acs__body[data-v-cb72fc94]{flex:1;grid-template:"stage"minmax(0,1fr)"composer"/minmax(0,1fr);min-height:0;display:grid}.acs__body.is-wide[data-v-cb72fc94]{grid-template-columns:240px minmax(0,1fr);grid-template-areas:"list chat""list composer"}.acs__convs[data-v-cb72fc94]{grid-area:stage;min-height:0;padding:8px;overflow-y:auto}.acs__chat[data-v-cb72fc94]{grid-area:stage;min-height:0;display:flex}.acs__body.is-wide .acs__convs[data-v-cb72fc94]{grid-area:list}.acs__body.is-wide .acs__chat[data-v-cb72fc94]{grid-area:chat}.acs__composer[data-v-cb72fc94]{padding:var(--acu-space-3) var(--acu-space-4) var(--acu-space-4);background:linear-gradient(to top, var(--acu-bg) 70%, transparent);grid-area:composer}.acs__chat[data-v-cb72fc94]>.acu-chat{flex:1;min-width:0}.acs__chat[data-v-cb72fc94] .acu-avatar--left{background:0 0}.acs__foot[data-v-cb72fc94]{border-top:1px solid var(--border-color-light);flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.acs__foot-label[data-v-cb72fc94]{font-size:var(--font-size-xs);color:var(--text-tertiary)}.acs__foot-hint[data-v-cb72fc94]{font-size:var(--font-size-xs);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.acs__notice[data-v-cb72fc94]{font-size:var(--font-size-xs);color:var(--color-warning);margin:0;line-height:1.5}.oc[data-v-b64a5618]{width:var(--wb-right-w,300px);border-left:1px solid var(--border-color-light);background:var(--bg-panel);min-height:0;transition:width var(--transition-base) var(--ease-custom);flex-direction:column;flex-shrink:0;display:flex}.board__cols.is-resizing .oc[data-v-b64a5618]{transition:none}.oc.is-collapsed[data-v-b64a5618]{width:32px}.oc__rail[data-v-b64a5618]{width:100%;min-height:0;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-direction:column;flex:auto;align-items:center;gap:8px;padding:10px 0;display:flex}.oc__rail[data-v-b64a5618]:hover{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.oc__rail[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.oc__rail-icon[data-v-b64a5618]{font-size:var(--font-size-base);flex-shrink:0}.oc__rail-live[data-v-b64a5618]{background:var(--color-success);width:6px;height:6px;box-shadow:var(--dot-glow-success);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite oc-pulse-b64a5618}.oc__rail-live.is-off[data-v-b64a5618]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:none}.oc__rail-text[data-v-b64a5618]{writing-mode:vertical-rl;letter-spacing:1px;font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none}.oc__head[data-v-b64a5618]{border-bottom:1px solid var(--border-color-light);flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;display:flex}.oc__live[data-v-b64a5618]{background:var(--color-success);width:6px;height:6px;box-shadow:var(--dot-glow-success);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite oc-pulse-b64a5618}.oc__live.is-off[data-v-b64a5618]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:none}@keyframes oc-pulse-b64a5618{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}.oc__title[data-v-b64a5618]{font-size:var(--font-size-sm);color:var(--text-secondary);flex:1;min-width:0;margin:0;font-weight:500}.oc__toggle[data-v-b64a5618]{color:var(--text-tertiary);font-size:var(--font-size-xs);border-radius:var(--radius-base);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:2px 6px}.oc__toggle[data-v-b64a5618]:hover:not(:disabled){color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 10%, transparent)}.oc__toggle[data-v-b64a5618]:disabled{opacity:.5;cursor:default}.oc__toggle[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__collapse[data-v-b64a5618]{width:22px;height:22px;color:var(--text-tertiary);border-radius:var(--radius-base);font-size:var(--font-size-mid);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.oc__collapse[data-v-b64a5618]:hover{color:var(--color-primary)}.oc__collapse[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__state[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-subtle);background-image:var(--gradient-accent-soft);flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;display:flex}.oc__state.is-paused[data-v-b64a5618]{color:var(--color-warning)}.oc__state-label[data-v-b64a5618]{color:var(--text-tertiary)}.oc__state-value[data-v-b64a5618]{font-weight:500}.oc__state-meta[data-v-b64a5618]{color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.oc__mode[data-v-b64a5618]{border-radius:var(--radius-pill);background:var(--bg-subtle);border:1px solid var(--border-color-light);flex-shrink:0;gap:2px;margin:8px 12px 0;padding:2px;display:flex}.oc__mode-btn[data-v-b64a5618]{border-radius:var(--radius-pill);height:22px;color:var(--text-tertiary);font-size:var(--font-size-xs);cursor:pointer;transition:var(--transition-ui-fast);background:0 0;border:none;flex:1}.oc__mode-btn[data-v-b64a5618]:hover{color:var(--text-secondary)}.oc__mode-btn.is-active[data-v-b64a5618]{background:var(--bg-panel);color:var(--color-primary);box-shadow:var(--shadow-xs,0 1px 2px #0000000f);font-weight:500}.oc__mode-btn[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__chat[data-v-b64a5618]{min-height:0}.oc__report[data-v-b64a5618]{flex-direction:column;flex:auto;min-height:0;padding:8px 0 0;display:flex}.oc__panel-title[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-tertiary);flex-shrink:0;align-items:center;gap:6px;margin:0 12px 6px;display:flex}.oc__report-head[data-v-b64a5618]{flex-shrink:0;align-items:center;gap:6px;margin:0 12px 6px;display:flex}.oc__report-head .oc__panel-title[data-v-b64a5618]{flex:1;min-width:0;margin:0}.oc__interval[data-v-b64a5618]{max-width:116px;height:22px;font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border-color-light);border-radius:var(--radius-pill);cursor:pointer;transition:border-color var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);outline:none;flex-shrink:0;padding:0 2px 0 6px;font-family:inherit}.oc__interval[data-v-b64a5618]:hover{color:var(--text-primary);border-color:var(--border-color)}.oc__interval[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__report-run[data-v-b64a5618]{border:1px solid var(--border-color-light);border-radius:var(--radius-pill);background:var(--bg-panel);height:22px;color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom);flex-shrink:0;align-items:center;gap:3px;padding:0 8px;font-family:inherit;display:inline-flex}.oc__report-run[data-v-b64a5618]:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-primary)}.oc__report-run[data-v-b64a5618]:disabled{opacity:.55;cursor:default}.oc__report-run[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__report-run-icon[data-v-b64a5618]{font-size:var(--font-size-xs)}.oc__report-run-icon.is-spin[data-v-b64a5618]{animation:1s linear infinite oc-spin-b64a5618}@keyframes oc-spin-b64a5618{to{transform:rotate(360deg)}}.oc__report-list[data-v-b64a5618]{flex:auto;min-height:0;margin:0;padding:0 10px 10px;list-style:none;overflow-y:auto}.rp[data-v-b64a5618]{border-radius:var(--radius-lg);background:var(--bg-subtle);border:1px solid var(--border-color-light);padding:8px 9px}.rp__head[data-v-b64a5618]{font-size:var(--font-size-xs);align-items:center;gap:6px;margin-bottom:4px;display:flex}.rp__trigger[data-v-b64a5618]{color:var(--color-primary);font-weight:500}.rp__trigger.is-auto[data-v-b64a5618]{color:var(--text-tertiary);font-weight:400}.rp__count[data-v-b64a5618]{color:var(--text-tertiary)}.rp__time[data-v-b64a5618]{color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.rp__text[data-v-b64a5618]{font-size:var(--font-size-sm);color:var(--text-primary);word-break:break-word;white-space:pre-wrap;margin:0;line-height:1.6}.rp__notice[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0;line-height:1.55}.rp__tasks[data-v-b64a5618]{border-top:1px dashed var(--border-color-light);flex-direction:column;gap:6px;margin:8px 0 0;padding:8px 0 0;list-style:none;display:flex}.rpt__title[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.rpt__meta[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px;margin:1px 0 0;display:flex}.rpt__project[data-v-b64a5618]{color:var(--text-secondary)}.rpt__line[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-tertiary);-webkit-line-clamp:2;line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;margin:2px 0 0;line-height:1.5;display:-webkit-box;overflow:hidden}.oc__history[data-v-b64a5618]{border-top:1px solid var(--border-color-light);flex-shrink:0;max-height:132px;padding:6px 10px 8px;overflow-y:auto}.oc__history-title[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0 2px 4px}.oc__history-list[data-v-b64a5618]{margin:0;padding:0;list-style:none}.oc__history-item[data-v-b64a5618]{border-radius:var(--radius-base);width:100%;color:var(--text-tertiary);font-size:var(--font-size-xs);text-align:left;cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:6px;padding:3px 6px;font-family:inherit;display:flex}.oc__history-item[data-v-b64a5618]:hover{background:var(--bg-subtle);color:var(--text-secondary)}.oc__history-item.is-active[data-v-b64a5618]{background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--text-primary)}.oc__history-item[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.oc__history-time[data-v-b64a5618]{font-variant-numeric:tabular-nums;flex-shrink:0}.oc__history-sum[data-v-b64a5618]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.oc-empty[data-v-b64a5618]{text-align:center;font-size:var(--font-size-xs);color:var(--text-tertiary);padding:20px 10px;list-style:none}.oc__git[data-v-b64a5618]{border-top:1px solid var(--border-color-light);flex-shrink:0;padding:8px 12px 10px}.oc__git-name[data-v-b64a5618]{color:var(--text-secondary);font-weight:500}.oc__git-list[data-v-b64a5618]{font-size:var(--font-size-xs);grid-template-columns:auto 1fr;gap:4px 10px;margin:0;display:grid}.oc__git-label[data-v-b64a5618]{color:var(--text-tertiary)}.oc__git-value[data-v-b64a5618]{text-align:right;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.oc__git-value.is-warn[data-v-b64a5618]{color:var(--color-warning)}.oc__git-value.is-danger[data-v-b64a5618]{color:var(--color-danger-light)}.oc__compose[data-v-b64a5618]{border-top:1px solid var(--border-color-light);flex-shrink:0;padding:8px 12px 10px}.oc__input[data-v-b64a5618]{resize:vertical;width:100%;min-height:76px;max-height:min(380px,45vh);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:border-color var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom);outline:none;padding:7px 8px;font-family:inherit;line-height:1.5}.oc__input[data-v-b64a5618]:focus{border-color:var(--input-border-focus);box-shadow:var(--input-shadow-focus)}.oc__input[data-v-b64a5618]::placeholder{color:var(--text-tertiary)}.oc__compose-foot[data-v-b64a5618]{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:6px;display:flex}.oc__attach[data-v-b64a5618]{width:26px;height:26px;color:var(--text-tertiary);font-size:var(--font-size-base);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.oc__attach[data-v-b64a5618]:hover:not(:disabled),.oc__attach.is-on[data-v-b64a5618]{color:var(--color-primary)}.oc__attach[data-v-b64a5618]:disabled{opacity:.4;cursor:default}.oc__attach[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__autorn[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;display:inline-flex}.oc__autorn input[data-v-b64a5618]{cursor:pointer}.oc__send[data-v-b64a5618]{border-radius:var(--radius-md);background:var(--gradient-accent);box-shadow:var(--btn-shadow);color:#fff;font-size:var(--font-size-sm);cursor:pointer;transition:box-shadow var(--transition-fast) var(--ease-custom), opacity var(--transition-fast) var(--ease-custom);border:none;align-items:center;gap:4px;margin-left:auto;padding:0 12px;line-height:24px;display:inline-flex}.oc__send[data-v-b64a5618]:hover:not(:disabled){background:var(--gradient-accent-hover);box-shadow:var(--btn-shadow-hover)}.oc__send[data-v-b64a5618]:disabled{opacity:.45;cursor:default}.oc__send[data-v-b64a5618]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__send-icon[data-v-b64a5618]{font-size:var(--font-size-sm)}.oc__hint[data-v-b64a5618]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:6px 0 0;line-height:1.5}@media (width<=860px){.oc[data-v-b64a5618]{border-left:none;border-top:1px solid var(--border-color);min-height:72vh}.oc__collapse[data-v-b64a5618]{display:none}}.pd[data-v-bc4078f5]{flex-direction:column;gap:14px;line-height:1.5;display:flex}.pd__intro[data-v-bc4078f5]{font-size:var(--font-size-sm);color:var(--text-tertiary);margin:0;line-height:1.6}.pd__field[data-v-bc4078f5]{flex-direction:column;gap:5px;display:flex}.pd__head[data-v-bc4078f5]{align-items:baseline;gap:8px;display:flex}.pd__label[data-v-bc4078f5]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.pd__count[data-v-bc4078f5]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.pd__area[data-v-bc4078f5]{box-sizing:border-box;resize:vertical;width:100%;min-height:92px;max-height:280px;font-size:var(--font-size-mid);color:var(--text-primary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast) var(--ease-custom);outline:none;padding:7px 9px;font-family:inherit;line-height:1.5}.pd__area[data-v-bc4078f5]:focus{border-color:var(--color-primary)}.pd__area[data-v-bc4078f5]::placeholder{color:var(--text-tertiary)}.pd__area[data-v-bc4078f5]:disabled{opacity:.55;cursor:not-allowed}.pd__hint[data-v-bc4078f5]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0;line-height:1.6}.pd__foot[data-v-bc4078f5]{align-items:center;gap:8px;width:100%;display:flex}.pd__foot-spacer[data-v-bc4078f5]{flex:1}.pd__btn[data-v-bc4078f5]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 12px;line-height:28px}.pd__btn[data-v-bc4078f5]:hover:not(:disabled){color:var(--color-primary);background:var(--bg-container-hover)}.pd__btn[data-v-bc4078f5]:disabled{opacity:.45;cursor:default}.pd__btn[data-v-bc4078f5]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.pd__btn--primary[data-v-bc4078f5]{background:var(--color-primary);color:#fff}.pd__btn--primary[data-v-bc4078f5]:hover:not(:disabled){background:var(--color-primary);color:#fff;opacity:.88}.nc[data-v-5e9238ae]{flex-direction:column;gap:14px;line-height:1.5;display:flex}.nc__field[data-v-5e9238ae]{flex-direction:column;gap:5px;display:flex}.nc__label[data-v-5e9238ae]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.nc__input[data-v-5e9238ae],.nc__select[data-v-5e9238ae]{width:100%;font-size:var(--font-size-mid);color:var(--text-primary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast) var(--ease-custom);box-sizing:border-box;outline:none;padding:7px 9px;font-family:inherit;line-height:1.5}.nc__input[data-v-5e9238ae]:focus,.nc__select[data-v-5e9238ae]:focus{border-color:var(--color-primary)}.nc__input[data-v-5e9238ae]::placeholder{color:var(--text-tertiary)}.nc__select[data-v-5e9238ae]{cursor:pointer}.nc__input--area[data-v-5e9238ae]{resize:vertical;min-height:92px;max-height:260px}.nc__hint[data-v-5e9238ae]{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.nc__error[data-v-5e9238ae]{font-size:var(--font-size-sm);border-radius:var(--radius-md);color:var(--color-danger-light);background:color-mix(in srgb, var(--color-danger) 10%, transparent);margin:0;padding:6px 8px}.nc__foot[data-v-5e9238ae]{align-items:center;gap:8px;width:100%;display:flex}.nc__foot-spacer[data-v-5e9238ae]{flex:1}.nc__btn[data-v-5e9238ae]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 12px;line-height:28px}.nc__btn[data-v-5e9238ae]:hover:not(:disabled){color:var(--color-primary);background:var(--bg-container-hover)}.nc__btn[data-v-5e9238ae]:disabled{opacity:.45;cursor:default}.nc__btn[data-v-5e9238ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.nc__btn--primary[data-v-5e9238ae]{background:var(--color-primary);color:#fff}.nc__btn--primary[data-v-5e9238ae]:hover:not(:disabled){background:var(--color-primary);color:#fff;opacity:.88}.board[data-v-5c12357b]{background:var(--bg-container);height:100%;min-height:0;color:var(--text-primary);--wb-left-w:264px;--wb-right-w:360px;flex-direction:column;display:flex}.board__top[data-v-5c12357b]{border-bottom:1px solid var(--border-color-light);background:var(--bg-panel);background-image:var(--gradient-accent-soft);flex-shrink:0;align-items:center;gap:16px;height:52px;padding:0 14px;display:flex}.board__brand[data-v-5c12357b]{align-items:center;gap:8px;min-width:0;display:flex}.board__live[data-v-5c12357b]{background:var(--color-success);width:8px;height:8px;box-shadow:var(--dot-glow-success);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite board-pulse-5c12357b}.board__live.is-off[data-v-5c12357b]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:none}@keyframes board-pulse-5c12357b{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.4)}}.board__brand-text[data-v-5c12357b]{min-width:0}.board__title[data-v-5c12357b]{font-size:var(--font-size-base);letter-spacing:var(--letter-spacing-heading);color:var(--text-primary);margin:0;font-weight:600;line-height:1.3}.board__subtitle[data-v-5c12357b]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0;line-height:1.3}.board__stats[data-v-5c12357b]{flex-wrap:wrap;align-items:center;gap:14px;min-width:0;margin-left:4px;display:flex}.board__stat[data-v-5c12357b]{font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:baseline;gap:4px;display:inline-flex}.board__stat-value[data-v-5c12357b]{font-size:var(--font-size-mid);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:500}.board__stat-value.is-live[data-v-5c12357b]{color:var(--color-warning)}.board__actions[data-v-5c12357b]{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.board__icon-btn[data-v-5c12357b]{color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;width:26px;height:26px;font-size:var(--font-size-base);transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.board__icon-btn[data-v-5c12357b]:hover{color:var(--color-primary);background:var(--bg-subtle-hover)}.board__icon-btn[data-v-5c12357b]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.board__scrim[data-v-5c12357b]{display:none}.board__cols[data-v-5c12357b]{flex:auto;min-height:0;display:flex;position:relative}.board__left[data-v-5c12357b]{width:var(--wb-left-w);background:var(--bg-panel);flex-direction:column;flex-shrink:0;min-height:0;display:flex}.board__splitter[data-v-5c12357b]{z-index:5;cursor:col-resize;touch-action:none;flex:0 0 5px;position:relative}.board__splitter[data-v-5c12357b]:after{content:"";width:1px;transition:background var(--transition-fast) var(--ease-custom);background:0 0;position:absolute;top:0;bottom:0;left:2px}.board__splitter[data-v-5c12357b]:hover:after,.board__splitter[data-v-5c12357b]:active:after,.board__cols.is-resizing .board__splitter[data-v-5c12357b]:after{background:var(--color-primary)}.board__splitter--h[data-v-5c12357b]{cursor:row-resize;flex:0 0 5px}.board__splitter--h[data-v-5c12357b]:after{background:var(--border-color);width:auto;height:1px;top:2px;bottom:auto;left:0}.board__splitter--h[data-v-5c12357b]:hover:after,.board__splitter--h[data-v-5c12357b]:active:after{background:var(--color-primary)}.board__main[data-v-5c12357b]{background:var(--surface-canvas);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.board__main-head[data-v-5c12357b]{flex-shrink:0;align-items:center;gap:10px;min-width:0;padding:10px 14px 8px;display:flex}.board__main-title[data-v-5c12357b]{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.board__project-name[data-v-5c12357b]{font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;flex-shrink:0;margin:0;font-weight:500}.board__project-path[data-v-5c12357b]{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.board__project-meta[data-v-5c12357b]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}@media (width<=1440px){.board[data-v-5c12357b]{--wb-left-w:224px;--wb-right-w:320px}}@media (width<=1180px){.board[data-v-5c12357b]{--wb-left-w:200px;--wb-right-w:280px}}@media (width>=1025px){.board__left[data-v-5c12357b]{transition:width var(--transition-base) var(--ease-custom)}.board__left.is-collapsed[data-v-5c12357b]{width:0;overflow:hidden}.board__cols.is-resizing .board__left[data-v-5c12357b]{transition:none}}@media (width<=1024px){.board__splitter--left[data-v-5c12357b]{display:none}.board__left[data-v-5c12357b]{z-index:20;width:min(var(--wb-left-w), 86vw);background:var(--bg-container);border-right:1px solid var(--border-color);box-shadow:var(--dialog-shadow);transition:transform var(--transition-base) var(--ease-custom);position:absolute;top:0;bottom:0;left:0}.board__left.is-collapsed[data-v-5c12357b]{pointer-events:none;transform:translate(-100%)}.board__scrim.is-on[data-v-5c12357b]{z-index:15;display:block;position:absolute;inset:0}}@media (width<=860px){.board[data-v-5c12357b]{--wb-right-w:100%}.board__splitter--right[data-v-5c12357b]{display:none}.board__cols[data-v-5c12357b]{flex-direction:column;overflow-y:auto}.board__main[data-v-5c12357b]{flex:none;min-height:72vh}.board__top[data-v-5c12357b]{flex-wrap:wrap;gap:6px 12px;height:auto;padding:8px 12px}.board__stats[data-v-5c12357b]{flex-basis:100%;order:3;gap:12px;margin-left:0}.board__actions[data-v-5c12357b]{margin-left:auto}}.workbench[data-v-dd181061]{background:var(--bg-container);height:100%;color:var(--text-primary);flex-direction:column;display:flex}.wb-editor[data-v-dd181061]{flex-direction:column;flex:auto;min-height:0;line-height:1.5;display:flex}.wb-editor-bar[data-v-dd181061]{border-bottom:1px solid var(--border-color-light);background:var(--bg-panel);background-image:var(--gradient-accent-soft);flex-shrink:0;align-items:center;gap:8px;height:34px;padding:0 12px;display:flex}.wb-back-btn[data-v-dd181061]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:4px;padding:0 6px;line-height:22px;display:inline-flex}.wb-back-btn[data-v-dd181061]:hover{color:var(--color-primary)}.wb-back-btn[data-v-dd181061]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.wb-back-btn__icon[data-v-dd181061]{font-size:var(--font-size-mid)}.wb-editor-bar__project[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.wb-editor-bar__hint[data-v-dd181061]{font-size:var(--font-size-xs);color:var(--text-tertiary);flex-shrink:0;margin-left:auto}.wb-editor-bar__repo[data-v-dd181061]{text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-size:var(--font-size-xs);border-radius:var(--radius-base);color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, transparent);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 6px;line-height:16px;overflow:hidden}.wb-task-desc[data-v-dd181061]{border-radius:var(--radius-md);background:var(--bg-subtle);flex-shrink:0;min-width:0;margin:0;padding:0;overflow:hidden}.wb-task-options[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-secondary);align-items:center;gap:12px;padding:8px 12px 0;display:flex}.wb-task-desc[open][data-v-dd181061]{background:var(--bg-container)}.wb-task-desc__summary[data-v-dd181061]{cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:8px 0;list-style:none;display:flex}.wb-task-desc__summary[data-v-dd181061]::-webkit-details-marker{display:none}.wb-task-desc__summary[data-v-dd181061]:hover{background:var(--bg-container-hover)}.wb-task-desc__caret[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-tertiary);transition:transform var(--transition-fast)}.wb-task-desc__label[data-v-dd181061]{letter-spacing:.1px;font-weight:500}.wb-task-desc__tag[data-v-dd181061]{font-size:var(--font-size-xs);color:var(--color-primary);align-items:center;gap:5px;margin-left:auto;font-weight:600;display:inline-flex}.wb-task-desc__tag-attachment[data-v-dd181061]{border-radius:var(--radius-lg);background:var(--tint-primary-14);min-width:18px;height:16px;color:var(--color-primary);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.wb-task-desc[open] .wb-task-desc__summary[data-v-dd181061]{margin-bottom:0}.wb-task-desc>.wb-textarea[data-v-dd181061],.wb-task-desc[data-v-dd181061]>.attachment-zone{margin:0 14px 0 0}.wb-task-desc>.wb-textarea[data-v-dd181061]{max-width:100%;margin-bottom:0}.wb-task-desc[data-v-dd181061]>.attachment-zone{margin-top:8px}.workbench__editor-row[data-v-dd181061]{flex:1;min-height:0;display:flex}.wb-splitter[data-v-dd181061]{cursor:col-resize;z-index:5;flex:0 0 5px;margin-right:-5px;position:relative}.wb-splitter[data-v-dd181061]:after{content:"";width:1px;transition:background var(--transition-fast) var(--ease-custom);background:0 0;position:absolute;top:0;bottom:0;left:2px}.wb-splitter[data-v-dd181061]:hover:after,.wb-splitter[data-v-dd181061]:active:after{background:var(--color-primary)}.wb-sidebar[data-v-dd181061]{background:var(--bg-panel);flex-direction:column;flex-shrink:0;gap:18px;width:268px;padding:14px 12px 18px;display:flex;overflow-y:auto}.wb-section[data-v-dd181061]{flex-direction:column;flex-shrink:0;gap:8px;min-height:0;display:flex}.wb-section+.wb-section[data-v-dd181061]{padding-top:16px}.wb-section__head[data-v-dd181061]{align-items:center;gap:6px;padding:0 4px;display:flex}.wb-section__tag[data-v-dd181061]{height:18px;font-size:var(--font-size-xs);letter-spacing:.4px;color:var(--text-tertiary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-base);text-transform:uppercase;font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.wb-section__tag--accent[data-v-dd181061]{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 9%, transparent);border-color:var(--tint-primary-22)}.wb-section__title[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-secondary);letter-spacing:.2px;flex:1;min-width:0;margin:0;font-weight:600}.wb-section__action[data-v-dd181061]{color:var(--text-tertiary);border-radius:var(--radius-base);cursor:pointer;width:28px;height:28px;font-size:var(--font-size-mid);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-section__action[data-v-dd181061]:hover{background:var(--tint-primary-12);color:var(--color-primary)}.wb-new-btn[data-v-dd181061]{border:1px dashed var(--tint-primary-35,color-mix(in srgb, var(--color-primary) 35%, transparent));border-radius:var(--radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 4%, transparent) 0%, color-mix(in srgb, var(--color-primary) 2%, transparent) 100%);width:100%;height:32px;color:var(--color-primary);font-size:var(--font-size-mid);letter-spacing:.05px;cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;padding:0 12px;font-weight:600;display:flex}.wb-new-btn__icon[data-v-dd181061]{font-size:var(--font-size-mid);transition:transform var(--transition-fast) var(--ease-custom);flex-shrink:0}.wb-new-btn__shortcut[data-v-dd181061]{display:none}.wb-new-btn[data-v-dd181061]:hover{background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 10%, transparent) 0%, color-mix(in srgb, var(--color-primary) 6%, transparent) 100%);color:var(--color-primary);border-style:solid;border-color:var(--tint-primary-50)}.wb-new-btn:hover .wb-new-btn__icon[data-v-dd181061]{transform:rotate(90deg)}.wb-new-btn[data-v-dd181061]:active{transform:scale(.99)}.wb-new-btn[data-v-dd181061]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-task-list[data-v-dd181061],.wb-prompt-list[data-v-dd181061]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wb-task-item[data-v-dd181061]{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;display:flex;position:relative}.wb-task-item[data-v-dd181061]:hover{background:var(--bg-container-hover);border-color:#0000;transform:translateY(-.5px)}.wb-task-item:hover .wb-task-item__del[data-v-dd181061]{opacity:1;transform:translate(0)}.wb-task-item.is-running[data-v-dd181061]{background:color-mix(in srgb, var(--color-warning) 8%, transparent)}.wb-task-item.is-running[data-v-dd181061]:hover{background:color-mix(in srgb, var(--color-warning) 14%, transparent);transform:none}.wb-task-item.active[data-v-dd181061]{background:color-mix(in srgb, var(--color-primary) 10%, var(--bg-container));box-shadow:0 1px 3px color-mix(in srgb, var(--color-primary) 12%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent);border-color:#0000}.wb-task-item.active[data-v-dd181061]:after{content:"";border-radius:var(--radius-base);background:linear-gradient(180deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 70%, #fff) 100%);width:3px;box-shadow:0 0 8px color-mix(in srgb, var(--color-primary) 50%, transparent), 0 1px 3px color-mix(in srgb, var(--color-primary) 25%, transparent);position:absolute;top:5px;bottom:5px;left:-1px}.wb-task-item.active .wb-task-item__title[data-v-dd181061]{color:var(--color-primary)}.wb-task-item.active .wb-task-item__del[data-v-dd181061]{opacity:1;color:var(--color-primary)}.wb-task-item__running-dot[data-v-dd181061]{background:var(--color-warning);width:6px;height:6px;box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);border-radius:50%;flex:none;margin-left:auto;animation:1.4s ease-in-out infinite wb-running-pulse-dd181061}@keyframes wb-running-pulse-dd181061{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);opacity:1;transform:scale(1)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-warning) 0%, transparent);opacity:.75;transform:scale(1.35)}}.wb-task-item__body[data-v-dd181061]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wb-task-item__title[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.05px;font-weight:500;line-height:1.3;overflow:hidden}.wb-task-item__meta[data-v-dd181061]{font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:center;gap:5px;line-height:1;display:flex}.wb-task-item__meta-item[data-v-dd181061]{font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-weight:500;display:inline-flex}.wb-task-item__meta-item--accent[data-v-dd181061]{color:var(--color-primary)}.wb-task-item__meta-item--project[data-v-dd181061]{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 14%, transparent);height:15px;color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 80%, var(--text-primary));font-size:var(--font-size-xs);letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;align-items:center;max-width:110px;padding:0 5px;font-weight:600;display:inline-flex;overflow:hidden}.wb-task-item.is-other-project[data-v-dd181061]{opacity:.78}.wb-task-item.is-other-project[data-v-dd181061]:hover{opacity:1}.wb-task-item__meta-icon[data-v-dd181061]{font-size:var(--font-size-xs);opacity:.85}.wb-task-item__num[data-v-dd181061]{min-width:14px;color:var(--text-secondary);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);padding:0 4px}.wb-task-item.active .wb-task-item__num[data-v-dd181061]{color:var(--color-primary);background:var(--tint-primary-14)}.wb-task-item__meta-item--running .wb-task-item__num[data-v-dd181061]{color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 85%, var(--text-primary));background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 18%, transparent);font-weight:600}.wb-task-item.is-running .wb-task-item__meta-icon[data-v-dd181061]{color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 80%, var(--text-primary));animation:1.4s ease-in-out infinite wb-task-running-icon-dd181061}@keyframes wb-task-running-icon-dd181061{0%,to{opacity:.55}50%{opacity:1}}.wb-task-item__del[data-v-dd181061]{color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;width:22px;height:22px;font-size:var(--font-size-sm);opacity:0;transition:opacity var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;transform:translate(-2px)}.wb-task-item__del[data-v-dd181061]:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent);color:var(--color-danger)}.wb-task-item__del[data-v-dd181061]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset);opacity:1}.wb-task-item__del[data-v-dd181061],.wb-prompt-item__del[data-v-dd181061]{font-size:var(--font-size-mid)}.wb-prompt-item[data-v-dd181061]{border-radius:var(--radius-md);font-size:var(--font-size-mid);color:var(--text-primary);transition:background var(--transition-fast) var(--ease-custom);align-items:center;gap:8px;padding:7px 8px;display:flex;position:relative}.wb-prompt-item[data-v-dd181061]:hover{background:var(--bg-container-hover)}.wb-prompt-item:hover .wb-prompt-item__del[data-v-dd181061]{opacity:1}.wb-prompt-item__icon[data-v-dd181061]{border-radius:var(--radius-base);background:var(--tint-primary-08);width:22px;height:22px;color:var(--color-primary);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-prompt-item__name[data-v-dd181061]{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-primary);letter-spacing:-.05px;flex:1;font-weight:500;overflow:hidden}.wb-prompt-item__tag[data-v-dd181061]{border-radius:var(--radius-xs);max-width:96px;font-size:var(--font-size-xs);letter-spacing:.1px;background:var(--tint-primary-08);color:var(--color-primary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;padding:1px 6px;line-height:16px;overflow:hidden}.wb-prompt-item__tag--project[data-v-dd181061]{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color-light)}.wb-prompt-item__del[data-v-dd181061]{color:var(--text-tertiary);border-radius:var(--radius-xs);cursor:pointer;width:20px;height:20px;font-size:var(--font-size-sm);opacity:0;transition:opacity var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-prompt-item__del[data-v-dd181061]:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent);color:var(--color-danger)}.wb-prompt-item__del[data-v-dd181061]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset);opacity:1}.wb-split[data-v-dd181061]{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 24px 14px;display:flex;overflow:hidden}.wb-placeholder[data-v-dd181061]{color:var(--text-tertiary);font-size:var(--font-size-mid);flex:1;justify-content:center;align-items:center;display:flex}.wb-execution-body[data-v-dd181061]{border:none;border-radius:0;flex:1;grid-template-columns:1fr;gap:16px;min-height:0;display:grid;overflow:hidden}.wb-exec-detail[data-v-dd181061]{background:0 0;flex-direction:column;gap:14px;min-width:0;min-height:0;padding:4px 4px 8px;display:flex;overflow:auto}.wb-split__header[data-v-dd181061]{flex-shrink:0;align-items:center;gap:10px;padding-bottom:4px;padding-right:8px;display:flex}.wb-split__title-wrap[data-v-dd181061]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.wb-split__title-wrap .wb-input--title[data-v-dd181061]{flex:1;min-width:0}.wb-copy-btn[data-v-dd181061]{appearance:none;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-container);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.wb-copy-btn[data-v-dd181061]:hover:not(:disabled){background:var(--tint-primary-12);border-color:var(--tint-primary-35);color:var(--color-primary)}.wb-copy-btn[data-v-dd181061]:active:not(:disabled){transform:scale(.94)}.wb-copy-btn[data-v-dd181061]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-copy-btn.is-flash[data-v-dd181061]{background:var(--tint-success-14,color-mix(in srgb, var(--color-success) 14%, transparent));border-color:var(--tint-success-35,color-mix(in srgb, var(--color-success) 35%, transparent));color:var(--color-success-dark,var(--color-success-dark))}.wb-copy-btn__icon[data-v-dd181061]{font-size:var(--font-size-mid);line-height:1}.wb-copy-btn__icon--check[data-v-dd181061]{font-size:var(--font-size-base);font-weight:800}.wb-copy-btn--inline[data-v-dd181061]{border-radius:var(--radius-md);width:22px;height:22px;margin-left:2px}.wb-copy-btn--inline .wb-copy-btn__icon[data-v-dd181061]{font-size:var(--font-size-xs)}@keyframes wb-ai-sparkle-pulse-dd181061{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.wb-no-claude-hint[data-v-dd181061]{border:1px solid color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 32%, transparent);background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 8%, transparent);height:32px;color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 75%, var(--text-primary));border-radius:var(--radius-md);font-size:var(--font-size-sm);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.wb-executor-split[data-v-dd181061]{flex-shrink:0}.wb-executor-split__hint[data-v-dd181061]{font-size:var(--font-size-xs);opacity:.85;border-left:1px solid #ffffff59;align-items:center;gap:4px;margin-left:6px;padding-left:8px;font-weight:400;display:inline-flex}.wb-executor-split__hint-icon[data-v-dd181061]{font-size:var(--font-size-sm)}.wb-executor-item[data-v-dd181061]{align-items:center;gap:8px;min-width:132px;display:inline-flex}.wb-executor-item__icon[data-v-dd181061]{font-size:var(--font-size-base);flex:none}.wb-executor-item__name[data-v-dd181061]{flex:1}.wb-executor-item__check[data-v-dd181061]{color:var(--el-color-primary)}.wb-executor-item__missing[data-v-dd181061]{font-size:var(--font-size-xs);color:var(--text-secondary,var(--el-text-color-secondary))}.wb-no-claude-hint__icon[data-v-dd181061]{font-size:var(--font-size-base);opacity:.9}.wb-no-claude-hint__text[data-v-dd181061]{letter-spacing:-.05px}.wb-no-claude-hint__link[data-v-dd181061]{color:var(--color-primary);border-bottom:1px dashed color-mix(in srgb, var(--color-primary) 45%, transparent);margin-left:2px;font-weight:600;text-decoration:none}.wb-no-claude-hint__link[data-v-dd181061]:hover{border-bottom-style:solid}.wb-logs-inline-btn[data-v-dd181061]{appearance:none;border:1px solid var(--border-color);background:var(--bg-container);height:32px;color:var(--text-secondary);border-radius:var(--radius-md);font-size:var(--font-size-mid);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;align-items:center;gap:5px;padding:0 12px;font-weight:500;display:inline-flex}.wb-logs-inline-btn[data-v-dd181061]:hover{background:var(--tint-primary-12);color:var(--color-primary);border-color:var(--tint-primary-35)}.wb-logs-inline-btn--danger[data-v-dd181061]{color:var(--text-secondary);border-color:var(--border-color);background:var(--bg-container)}.wb-logs-inline-btn--danger[data-v-dd181061]:hover{color:var(--color-danger,var(--color-danger-light));border-color:var(--tint-danger-50);background:var(--tint-danger-06)}.wb-logs-inline-btn[data-v-dd181061]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-logs-inline-btn__icon[data-v-dd181061]{font-size:var(--font-size-base)}.wb-input[data-v-dd181061],.wb-select[data-v-dd181061],.wb-textarea[data-v-dd181061]{color:var(--text-primary);background:var(--bg-container);border:1px solid var(--border-color-medium);border-radius:var(--radius-md);box-shadow:var(--wb-card-inset-shadow);transition:border-color var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);appearance:none;outline:none;font-family:inherit}.wb-input[data-v-dd181061]::placeholder,.wb-textarea[data-v-dd181061]::placeholder{color:var(--text-placeholder);font-weight:400}.wb-input[data-v-dd181061]{height:36px;font-size:var(--font-size-base);letter-spacing:-.05px;padding:0 12px;line-height:1.2}.wb-input[data-v-dd181061]:hover:not(:focus){border-color:var(--border-input-hover,#cbd5e1);background:var(--bg-container-hover)}.wb-input[data-v-dd181061]:focus{border-color:var(--color-primary);background:var(--bg-container);box-shadow:0 0 0 3px var(--tint-primary-18), var(--wb-card-inset-shadow)}.wb-input--title[data-v-dd181061]{height:36px;font-size:var(--font-size-base);letter-spacing:-.4px;border-color:var(--border-color);box-shadow:none;background:0 0;flex:1;padding:0 12px;font-weight:600}.wb-input--title[data-v-dd181061]:hover:not(:focus){border-color:var(--border-color-medium);background:var(--bg-container)}.wb-input--title[data-v-dd181061]:focus{border-color:var(--color-primary);background:var(--bg-container);box-shadow:0 0 0 3px var(--tint-primary-14)}.wb-input--title[data-v-dd181061]::placeholder{color:var(--text-placeholder);font-weight:500}.wb-select[data-v-dd181061]{height:36px;font-size:var(--font-size-mid);cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M3 4.5l3 3 3-3' fill='none' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-position:right 10px center;background-repeat:no-repeat;background-size:12px 12px;flex-shrink:0;min-width:168px;padding:0 32px 0 12px;font-weight:500}.wb-select[data-v-dd181061]:hover:not(:focus){border-color:var(--border-input-hover,#cbd5e1);background-color:var(--bg-container-hover)}.wb-select[data-v-dd181061]:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--tint-primary-18)}.wb-textarea[data-v-dd181061]{font-size:var(--font-size-mid);letter-spacing:-.05px;resize:vertical;box-sizing:border-box;background:var(--bg-container);width:100%;min-height:52px;box-shadow:none;border-color:var(--border-color);flex-shrink:0;padding:10px 14px;line-height:1.55;display:block}.wb-textarea[data-v-dd181061]::placeholder{color:var(--text-placeholder);line-height:1.55}.wb-textarea[data-v-dd181061]:hover:not(:focus){border-color:var(--border-color-medium);background:var(--bg-container-hover)}.wb-textarea[data-v-dd181061]:focus{border-color:var(--color-primary);background:var(--bg-container-hover);box-shadow:0 0 0 3px var(--tint-primary-14)}.wb-textarea--focus-expand[data-v-dd181061]:focus{max-height:500px;transition:max-height var(--transition-base) var(--ease-custom)}.wb-textarea--autogrow[data-v-dd181061]{resize:none;min-height:52px;max-height:320px;transition:height var(--transition-fast) var(--ease-custom);overflow-y:hidden}.wb-split__sub-header[data-v-dd181061]{flex-shrink:0;justify-content:space-between;align-items:center;margin-top:8px;display:flex}.wb-split__sub-header h4[data-v-dd181061]{font-size:var(--font-size-mid);color:var(--text-secondary);margin:0;font-weight:600}.wb-simple__header[data-v-dd181061]{border-left:2px solid var(--color-primary);flex-shrink:0;align-items:baseline;gap:10px;margin-top:8px;padding-left:8px;display:flex}.wb-simple__header h4[data-v-dd181061]{font-size:var(--font-size-mid);color:var(--text-primary);letter-spacing:-.05px;margin:0;font-weight:600}.wb-simple__hint[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-tertiary)}.wb-simple__status-row[data-v-dd181061]{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;margin-top:2px;display:flex}.wb-simple__status[data-v-dd181061]{width:8px;height:8px;transition:background var(--transition-fast) var(--ease-custom);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;gap:5px;padding:0;display:inline-flex}.wb-simple__status--dot[data-v-dd181061]{border-radius:50%}.wb-simple__status-text[data-v-dd181061]{display:none}.wb-simple__meta[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-tertiary);letter-spacing:-.05px;text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.wb-simple__meta--error[data-v-dd181061]{color:var(--color-danger)}.wb-simple__status[style*=--text-tertiary] .wb-simple__status-dot[data-v-dd181061]{background:var(--text-tertiary)}.wb-simple__stop[data-v-dd181061]{border-radius:var(--radius-base);border:1px solid var(--color-danger-bright);color:var(--color-danger-bright);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;margin-left:auto;padding:2px 10px;font-weight:600}.wb-simple__stop[data-v-dd181061]:hover:not(:disabled){background:var(--color-danger-bright);color:#fff}.wb-simple__stop[data-v-dd181061]:disabled{opacity:.45;cursor:not-allowed}.wb-simple__override[data-v-dd181061]{border-radius:var(--radius-md)}.wb-simple__override>.wb-textarea[data-v-dd181061]{margin-top:8px}.wb-simple__override-summary[data-v-dd181061]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;list-style:none;display:flex}.wb-simple__override-summary[data-v-dd181061]::-webkit-details-marker{display:none}.wb-simple__override-caret[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-tertiary);transition:transform var(--transition-fast) var(--ease-custom)}.wb-simple__override[open]>.wb-simple__override-summary .wb-simple__override-caret[data-v-dd181061]{color:var(--color-primary);transform:rotate(90deg)}.wb-simple__override.has-content>.wb-simple__override-summary[data-v-dd181061]{color:var(--text-primary)}.wb-simple__override-tag[data-v-dd181061]{font-size:var(--font-size-xs);border-radius:var(--radius-lg);background:var(--tint-primary-12,color-mix(in srgb, var(--color-primary) 12%, transparent));color:var(--color-primary);letter-spacing:.2px;padding:1px 6px;font-weight:600}.wb-simple-chat-wrap[data-v-dd181061]{border:1px solid var(--border-color);border-radius:var(--radius-base);background:var(--bg-code);--acu-bg:var(--bg-code);flex-direction:column;flex:1;min-height:0;margin-top:6px;display:flex;overflow:hidden}.wb-simple-chat[data-v-dd181061]{flex:1;min-height:0}.wb-simple-chat[data-v-dd181061] .acu-chat-footer{display:none}.wb-simple-chat[data-v-dd181061] .acu-chat,.wb-simple-chat[data-v-dd181061] .acu-message-list,.wb-simple-chat[data-v-dd181061] .acu-message-list-inner>*{background:0 0}.wb-simple-chat[data-v-dd181061] .acu-chat,.wb-simple-chat[data-v-dd181061] .acu-message-list{background:var(--bg-code)}.wb-simple-chat[data-v-dd181061] .acu-message-list-inner{gap:10px;max-width:100%;margin:0;padding:10px 8px 14px}.wb-simple-chat[data-v-dd181061] .acu-bubble-main{max-width:100%}.wb-simple-chat[data-v-dd181061] .acu-bubble{font-size:var(--font-size-sm);border-radius:var(--radius-lg)}.wb-simple-chat[data-v-dd181061] .acu-bubble-name{font-size:var(--font-size-xs)}.wb-simple-chat__footer[data-v-dd181061]{background:var(--bg-code);flex-shrink:0;padding:0 4px 4px}.wb-simple-chat__input[data-v-dd181061]{width:100%}.wb-form-item[data-v-dd181061]{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.wb-form-item__label[data-v-dd181061]{font-size:var(--font-size-sm);color:var(--text-secondary);letter-spacing:-.05px;font-weight:500}.wb-sub-list[data-v-dd181061]{flex-direction:column;flex:1;gap:8px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}@keyframes wb-progress-slide-dd181061{0%{background-position:-50% 0}to{background-position:150% 0}}@keyframes wb-card-glow-dd181061{0%,to{box-shadow:0 0 0 1px var(--tint-primary-30), 0 4px 18px -4px color-mix(in srgb, var(--color-primary) 25%, transparent)}50%{box-shadow:0 0 0 1px var(--tint-primary-50), 0 6px 24px -2px color-mix(in srgb, var(--color-primary) 38%, transparent)}}@keyframes wb-card-sweep-dd181061{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes wb-border-shimmer-dd181061{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes wb-status-dot-pulse-dd181061{0%,to{transform:scale(1);box-shadow:0 0 4px #ffffff73}50%{transform:scale(1.35);box-shadow:0 0 8px #ffffffd9}}@keyframes wb-status-dot-dd181061{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.wb-sub-expand-enter-active[data-v-dd181061],.wb-sub-expand-leave-active[data-v-dd181061]{transition:none}}.wb-sub-expand-enter-active[data-v-dd181061],.wb-sub-expand-leave-active[data-v-dd181061]{transition:grid-template-rows var(--transition-base,var(--transition-base)) var(--ease-custom), opacity var(--transition-fast) var(--ease-custom);overflow:hidden}.wb-sub-expand-enter-from[data-v-dd181061],.wb-sub-expand-leave-to[data-v-dd181061]{opacity:0;grid-template-rows:0fr}.wb-sub-expand-enter-to[data-v-dd181061],.wb-sub-expand-leave-from[data-v-dd181061]{opacity:1;grid-template-rows:1fr}.wb-sub-expand-inner[data-v-dd181061]{min-height:0;overflow:hidden}.wb-task-group__head[data-v-dd181061]{font-size:var(--font-size-mid);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-base);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;margin-top:4px;padding:8px 6px 4px;font-weight:600;display:flex}.wb-task-group__head[data-v-dd181061]:first-child{border-top:none;margin-top:0;padding-top:4px}.wb-task-group__head[data-v-dd181061]:hover{background:var(--tint-primary-08);color:var(--text-secondary)}.wb-task-group__head[data-v-dd181061]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}.wb-task-group__head.is-current[data-v-dd181061]{color:var(--color-primary);border-top-color:var(--tint-primary-30)}.wb-task-group__head.is-collapsed[data-v-dd181061]{background:var(--bg-subtle);border-top-style:solid;margin-top:6px;padding-top:6px;padding-bottom:6px}.wb-task-group__head.is-collapsed.is-current[data-v-dd181061]{background:color-mix(in srgb, var(--color-primary) 8%, var(--bg-subtle))}.wb-task-group__caret[data-v-dd181061]{font-size:var(--font-size-sm);opacity:.75;transition:transform var(--transition-fast) var(--ease-custom);flex-shrink:0}.wb-task-group__icon[data-v-dd181061]{font-size:var(--font-size-base);opacity:.8;flex-shrink:0}.wb-task-group__name[data-v-dd181061]{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.wb-task-group__count[data-v-dd181061]{min-width:18px}.wb-task-group__head.is-current .wb-task-group__count[data-v-dd181061]{background:var(--tint-primary-16,color-mix(in srgb, var(--color-primary) 16%, transparent));color:var(--color-primary)}.wb-meta-save[data-v-dd181061]{height:24px;font-size:var(--font-size-xs);letter-spacing:.1px;border-radius:var(--radius-xl);border:1px solid var(--border-color-medium);background:var(--bg-container);color:var(--text-tertiary);-webkit-user-select:none;user-select:none;transition:background var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);flex-shrink:0;align-items:center;gap:5px;padding:0 10px;font-weight:600;display:inline-flex}.wb-meta-save__dot[data-v-dd181061]{opacity:.85;background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.wb-meta-save__check[data-v-dd181061]{font-size:var(--font-size-sm);line-height:1}.wb-meta-save__bang[data-v-dd181061]{width:12px;height:12px;font-size:var(--font-size-xs);color:#fff;background:currentColor;border-radius:50%;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex}.wb-meta-save.is-saving[data-v-dd181061]{color:var(--color-primary);border-color:var(--tint-primary-35);background:color-mix(in srgb, var(--color-primary) 8%, var(--bg-container))}.wb-meta-save.is-saving .wb-meta-save__dot[data-v-dd181061]{animation:1.2s ease-in-out infinite wb-meta-pulse-dd181061}.wb-meta-save.is-saved[data-v-dd181061]{color:var(--color-success-dark,var(--color-success-dark));border-color:var(--tint-success-35);background:var(--tint-success-08)}.wb-meta-save.is-dirty[data-v-dd181061]{color:var(--color-warning-dark,var(--color-warning-dark));border-color:var(--tint-warning-45);background:var(--tint-warning-06)}.wb-meta-save.is-error[data-v-dd181061]{color:var(--color-danger-dark,#b91c1c);border-color:var(--tint-danger-45);background:var(--tint-danger-06)}@keyframes wb-meta-pulse-dd181061{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.wb-meta-save.is-saving .wb-meta-save__dot[data-v-dd181061]{animation:none}}.wb-logs-dialog{flex-direction:column;max-height:88vh;display:flex}.wb-logs-dialog .el-dialog__body{flex:auto;min-height:0;max-height:calc(88vh - 60px);padding:12px 20px 16px;overflow:auto}
|