wezard 2.2.2 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +9 -6
- package/README.md +5 -5
- package/config.example.jsonc +12 -0
- package/dist/cli/init.js +2 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/daemon/approval.js +90 -6
- package/dist/daemon/approval.js.map +1 -1
- package/dist/daemon/chat-log.js +6 -1
- package/dist/daemon/chat-log.js.map +1 -1
- package/dist/daemon/chat-name.js +15 -0
- package/dist/daemon/chat-name.js.map +1 -1
- package/dist/daemon/config-api.js +265 -70
- package/dist/daemon/config-api.js.map +1 -1
- package/dist/daemon/danger.js +15 -0
- package/dist/daemon/danger.js.map +1 -1
- package/dist/daemon/detail.js +49 -0
- package/dist/daemon/detail.js.map +1 -1
- package/dist/daemon/handoff.js +12 -5
- package/dist/daemon/handoff.js.map +1 -1
- package/dist/daemon/idle-nudge.js +55 -0
- package/dist/daemon/idle-nudge.js.map +1 -0
- package/dist/daemon/inbound.js +19 -14
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +1509 -259
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/jobs.js +180 -32
- package/dist/daemon/jobs.js.map +1 -1
- package/dist/daemon/last-response.js +15 -0
- package/dist/daemon/last-response.js.map +1 -1
- package/dist/daemon/memory-steward.js +124 -68
- package/dist/daemon/memory-steward.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +506 -124
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/mirror-store.js.map +1 -1
- package/dist/daemon/model-select.js +102 -0
- package/dist/daemon/model-select.js.map +1 -1
- package/dist/daemon/notices.js +147 -33
- package/dist/daemon/notices.js.map +1 -1
- package/dist/daemon/peers.js +261 -124
- package/dist/daemon/peers.js.map +1 -1
- package/dist/daemon/pending-items.js +171 -0
- package/dist/daemon/pending-items.js.map +1 -0
- package/dist/daemon/receipts.js +428 -80
- package/dist/daemon/receipts.js.map +1 -1
- package/dist/daemon/route.js +133 -19
- package/dist/daemon/route.js.map +1 -1
- package/dist/daemon/spawn-tmux.js +24 -13
- package/dist/daemon/spawn-tmux.js.map +1 -1
- package/dist/daemon/steward-guard.js +32 -0
- package/dist/daemon/steward-guard.js.map +1 -0
- package/dist/daemon/task-registry.js +1 -1
- package/dist/daemon/task-registry.js.map +1 -1
- package/dist/daemon/tasks.js +12 -4
- package/dist/daemon/tasks.js.map +1 -1
- package/dist/daemon/usage.js +4 -11
- package/dist/daemon/usage.js.map +1 -1
- package/dist/daemon/wizard-memory.js +36 -4
- package/dist/daemon/wizard-memory.js.map +1 -1
- package/dist/daemon/wizard.js +174 -87
- package/dist/daemon/wizard.js.map +1 -1
- package/dist/mcp/server.js +209 -132
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/charter-view.js +35 -0
- package/dist/shared/charter-view.js.map +1 -0
- package/dist/shared/chat-http.js +134 -32
- package/dist/shared/chat-http.js.map +1 -1
- package/dist/shared/chat-render.js +6 -3
- package/dist/shared/chat-render.js.map +1 -1
- package/dist/shared/chat-view.js +17 -6
- package/dist/shared/chat-view.js.map +1 -1
- package/dist/shared/cli-backends.js +2 -0
- package/dist/shared/cli-backends.js.map +1 -1
- package/dist/shared/config-meta.js +91 -0
- package/dist/shared/config-meta.js.map +1 -0
- package/dist/shared/config-writer.js +5 -6
- package/dist/shared/config-writer.js.map +1 -1
- package/dist/shared/config.js +273 -294
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/daemon-token.js +18 -0
- package/dist/shared/daemon-token.js.map +1 -0
- package/dist/shared/detail-render.js +233 -20
- package/dist/shared/detail-render.js.map +1 -1
- package/dist/shared/detail-store.js +33 -12
- package/dist/shared/detail-store.js.map +1 -1
- package/dist/shared/effort.js +11 -0
- package/dist/shared/effort.js.map +1 -0
- package/dist/shared/keepalive.js +5 -5
- package/dist/shared/keepalive.js.map +1 -1
- package/dist/shared/model-prices.js +258 -0
- package/dist/shared/model-prices.js.map +1 -0
- package/dist/shared/pricing.js +55 -0
- package/dist/shared/pricing.js.map +1 -0
- package/dist/shared/reminder.js +18 -4
- package/dist/shared/reminder.js.map +1 -1
- package/dist/shared/role-render.js +210 -8
- package/dist/shared/role-render.js.map +1 -1
- package/dist/shared/role-view.js +104 -26
- package/dist/shared/role-view.js.map +1 -1
- package/dist/shared/session-label.js +4 -0
- package/dist/shared/session-label.js.map +1 -1
- package/dist/shared/task-file.js +16 -1
- package/dist/shared/task-file.js.map +1 -1
- package/dist/shared/turn-state.js +24 -0
- package/dist/shared/turn-state.js.map +1 -0
- package/dist/shared/world.js +116 -13
- package/dist/shared/world.js.map +1 -1
- package/dist/svr/index.js +2 -1
- package/dist/svr/index.js.map +1 -1
- package/hooks/pre-tool-use.sh +15 -3
- package/package.json +1 -1
- package/web/chat.css +226 -74
- package/web/chat.js +1075 -370
package/dist/svr/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../svr/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../svr/index.ts"],"names":[],"mappings":"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"}
|
package/hooks/pre-tool-use.sh
CHANGED
|
@@ -196,8 +196,18 @@ fi
|
|
|
196
196
|
# 1. cli/sync.ts (legacy claude-internal): mcp__wezard__<tool>
|
|
197
197
|
# 2. .claude-plugin/plugin.json: mcp__plugin_wezard_wezard__<tool>
|
|
198
198
|
# 用 *wezard__* 同时覆盖两种前缀。
|
|
199
|
+
# 例外: 改全机设置的「写」不在白名单 —— set_model scope:"default" (改 CLI 全局设置)。
|
|
200
|
+
# 它落回下面的正常审批; 首次绑定不受影响: 绑定走 IM 魔法短语 (claim.ts), 不经这个工具,
|
|
201
|
+
# 而绑定前没有审批人时 daemon 回 ask, 由本地 CLI 的原生确认框兜住, 不会卡死。
|
|
202
|
+
# config_set 放行: 它按路径分级, 放权项 (allowFrom / approval.* …) 由守护进程自己推确认卡,
|
|
203
|
+
# 那张卡不经 hook, danger.skipAll 也压不过; 在这里再拦一道就是一次改动两张卡。
|
|
199
204
|
if [[ "$TOOL_NAME" == mcp__*wezard__* ]]; then
|
|
200
|
-
|
|
205
|
+
case "${TOOL_NAME##*wezard__}" in
|
|
206
|
+
# 任意深度找: DeferExecuteTool 剥包装失败时真实入参可能还套着一层, 只看顶层就失败开放。
|
|
207
|
+
set_model) WRITES=$(printf '%s' "$TOOL_INPUT" | jq -r '[.. | objects | .scope?] | index("default") != null') ;;
|
|
208
|
+
*) WRITES=false ;;
|
|
209
|
+
esac
|
|
210
|
+
[[ "$WRITES" == "false" ]] && emit "allow" "wezard mcp self-call bypass"
|
|
201
211
|
fi
|
|
202
212
|
|
|
203
213
|
# wezard 自家 Skill (slash commands like /wezard:audit) 也是本地插件代码, 无须审批。
|
|
@@ -217,8 +227,10 @@ if [[ "$TOOL_NAME" == "Bash" ]]; then
|
|
|
217
227
|
emit "allow" "read-only bypass"
|
|
218
228
|
fi
|
|
219
229
|
# wezard CLI 同理: /wezard:audit /wezard:update 这些 slash command 的 ! bash 都打到本 daemon,
|
|
220
|
-
# 自己审自己没意义,
|
|
221
|
-
|
|
230
|
+
# 自己审自己没意义, 也避免首次绑定时无处推卡。只认「整条命令就是一次 wezard 子命令」:
|
|
231
|
+
# 曾经命令里任意位置出现 wezard 一词就放行, `curl …/config/set; true wezard` 由此免审。
|
|
232
|
+
if [[ "$CMD" =~ ^[[:space:]]*([^[:space:]]*/)?wezard(\.sh)?[[:space:]]+(status|logs|pending|audit|update|reload|config-path|mirror-status|version|help)([[:space:]]|$) ]] \
|
|
233
|
+
&& [[ ! "$CMD" =~ [\;\|\&\>\<\`\$\(] ]]; then
|
|
222
234
|
emit "allow" "wezard self-call bypass"
|
|
223
235
|
fi
|
|
224
236
|
fi
|
package/package.json
CHANGED
package/web/chat.css
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
--mine-line: #c9d7f3;
|
|
19
19
|
--accent: #2f55c9; /* 视角色: 名字的点、选中态、自己的气泡描边 */
|
|
20
20
|
--priv: #9a5b10; /* 私聊 */
|
|
21
|
+
--human: #12715a; /* 人名 —— 青绿, 与 wizard (墨色) 和群名 (暗金) 三分 */
|
|
22
|
+
--chat: #7d6410; /* 群名 —— 暗金, 与 role 名 (墨色 + 视角色的点) 分开: 群是频道不是 role */
|
|
21
23
|
/* 头像底: 不透明, 且由 card/accent 推出 —— 叠在选中/高亮/关系图任何底色上都不变色, 换主题时随 token 走。 */
|
|
22
24
|
--av-bg: var(--card);
|
|
23
25
|
--av-line: var(--line);
|
|
@@ -42,10 +44,13 @@ button { font: inherit; color: inherit }
|
|
|
42
44
|
.nm { font-weight: 600 }
|
|
43
45
|
.nm::before { content: "."; color: var(--accent); font-weight: 700 }
|
|
44
46
|
.nm.human::before, .nm.task::before, .nm.system::before, .nm.chat::before { content: none }
|
|
47
|
+
.nm.chat, .ch-who .sub .up { color: var(--chat) }
|
|
48
|
+
.nm.human { color: var(--human) }
|
|
45
49
|
|
|
46
50
|
/* ── 侧栏: 我 + 会话 ─────────────────────────────────────────────── */
|
|
47
51
|
.side {
|
|
48
|
-
|
|
52
|
+
/* 宽屏按页宽 25% 放大, 窄时不低于 332px。 */
|
|
53
|
+
width: max(332px, 25vw); flex: none; background: var(--card); border-right: 1px solid var(--line);
|
|
49
54
|
display: flex; flex-direction: column; min-height: 0;
|
|
50
55
|
}
|
|
51
56
|
|
|
@@ -59,14 +64,14 @@ button { font: inherit; color: inherit }
|
|
|
59
64
|
flex-wrap: nowrap; align-items: stretch;
|
|
60
65
|
}
|
|
61
66
|
.rolebar > .who { min-width: 0 }
|
|
62
|
-
.rolebar .id { display: flex; gap:
|
|
67
|
+
.rolebar .id { display: flex; gap: 10px; align-items: center; min-width: 0 }
|
|
63
68
|
/* 与会话项头像同一套不透明底, 放大到名片尺寸。 */
|
|
64
69
|
.rolebar .id .av {
|
|
65
|
-
flex: none; display: grid; place-items: center; width:
|
|
66
|
-
background: var(--av-bg); box-shadow: inset 0 0 0 1px var(--av-line); font-size:
|
|
70
|
+
flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px;
|
|
71
|
+
background: var(--av-bg); box-shadow: inset 0 0 0 1px var(--av-line); font-size: 23px; line-height: 1;
|
|
67
72
|
}
|
|
68
|
-
.rolebar .id .l { min-width: 0; display: flex; flex-direction: column; gap:
|
|
69
|
-
.rolebar .id .nm { font-size:
|
|
73
|
+
.rolebar .id .l { min-width: 0; display: flex; flex-direction: column; gap: 2px }
|
|
74
|
+
.rolebar .id .nm { font-size: 15.5px; line-height: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
70
75
|
/* 职责是一句话, 至多两行; 截掉的悬停看全文 (chat.js 的截断提示)。 */
|
|
71
76
|
.rolebar .job {
|
|
72
77
|
margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--ink); opacity: .8; word-break: break-word;
|
|
@@ -76,29 +81,21 @@ button { font: inherit; color: inherit }
|
|
|
76
81
|
.rolebar .facts { display: flex; flex-wrap: wrap; gap: 0 10px; font-size: 11.5px; line-height: 1.45; color: var(--faint); min-width: 0 }
|
|
77
82
|
/* 每条自身不折行; 独占一行仍超宽 (长路径 / 长群名) 才省略。 */
|
|
78
83
|
.rolebar .facts span { white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis }
|
|
84
|
+
.rolebar .facts .fx { cursor: pointer }
|
|
85
|
+
.rolebar .facts .fx:hover, .rolebar .facts .fx.on { color: var(--accent) }
|
|
86
|
+
.rolebar .facts .fx.bad { color: #cf222e }
|
|
79
87
|
.rolebar .go { cursor: pointer; color: var(--accent) }
|
|
80
88
|
.rolebar .go:hover { text-decoration: underline }
|
|
81
|
-
/* 分隔线两端收进来, 与上面搜索框的左右边距对齐, 不顶满侧栏。 */
|
|
82
|
-
.acts { flex: none; display: flex; justify-content: center; align-items: center; gap: 2px; margin: 0 10px; padding: 4px 0 8px; border-bottom: 1px solid var(--line) }
|
|
83
|
-
.acts:empty { display: none }
|
|
84
|
-
/* 旧外壳 (daemon 未重启) 里它还在名片内 —— 那里不需要自己的内边距与分隔线。 */
|
|
85
|
-
.rolebar .acts { margin: 0; padding: 0; border: 0 }
|
|
86
|
-
/* 入口: 图标 + 名字 + 淡色副标题, 无框无底; hover 才浮出一层浅底, 打开着的染视角色。 */
|
|
87
|
-
.bd {
|
|
88
|
-
flex: none; padding: 1px 4px; border: 0; border-radius: 4px; background: none; cursor: pointer; white-space: nowrap;
|
|
89
|
-
font-size: 12px; color: var(--mute); transition: color .12s;
|
|
90
|
-
}
|
|
91
|
-
.bd:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px }
|
|
92
|
-
.bd.on { color: var(--accent); font-weight: 600 }
|
|
93
|
-
.bd.bad { color: #cf222e }
|
|
94
|
-
.acts .sep { color: var(--line); font-size: 12px; user-select: none }
|
|
95
89
|
/* session 切换: name 右边一个小号文字触发器 + 浮层列表。name 先省略, 触发器不让位。 */
|
|
96
90
|
.rolebar .id .l { flex: 1 }
|
|
97
91
|
.rolebar .nl { display: flex; align-items: center; gap: 8px; min-width: 0 }
|
|
98
92
|
#rb-st { flex: none; display: inline-flex }
|
|
99
93
|
.rolebar .nl .nm { min-width: 0; flex: 0 1 auto }
|
|
100
|
-
.rolebar .nl .cp { min-width: 0; flex: 0 1 auto; display: inline-flex; cursor:
|
|
94
|
+
.rolebar .nl .cp { min-width: 0; flex: 0 1 auto; display: inline-flex; align-items: center; gap: 4px; cursor: pointer }
|
|
101
95
|
.rolebar .nl .cp:hover .nm { text-decoration: underline dotted var(--faint); text-underline-offset: 3px }
|
|
96
|
+
/* 复制提示用 ⧉ 小图标, 不用 cursor:copy —— 那颗绿色的加号读起来像「添加」。 */
|
|
97
|
+
.rolebar .nl .cp::after { content: "⧉"; flex: none; font-size: 12px; color: var(--faint); display: none }
|
|
98
|
+
.rolebar .nl .cp:hover::after { display: inline }
|
|
102
99
|
.toast {
|
|
103
100
|
position: fixed; left: 50%; bottom: 28px; z-index: 1000; transform: translate(-50%, 8px);
|
|
104
101
|
padding: 6px 12px; border-radius: 8px; font-size: 12.5px; color: #fff; background: rgba(28, 36, 48, .88);
|
|
@@ -126,6 +123,9 @@ button { font: inherit; color: inherit }
|
|
|
126
123
|
opacity: 0; transform: translateY(-4px); pointer-events: none; transition: opacity .12s, transform .12s;
|
|
127
124
|
}
|
|
128
125
|
.sp.open .sp-list { opacity: 1; transform: none; pointer-events: auto }
|
|
126
|
+
/* 贴着右沿的下拉: 以触发器右下角为锚向左下展开, 宽度随选项。 */
|
|
127
|
+
.sp.end .sp-list { left: auto; right: 0; width: auto; min-width: 104px }
|
|
128
|
+
.sp-ic { flex: none; align-self: center; font-size: 12px; line-height: 1; margin-right: 1px }
|
|
129
129
|
.sp-it {
|
|
130
130
|
width: 100%; display: flex; gap: 10px; align-items: baseline;
|
|
131
131
|
background: none; border: 0; border-radius: 6px; padding: 6px 8px; cursor: pointer; text-align: left; font-size: 12px;
|
|
@@ -138,13 +138,14 @@ button { font: inherit; color: inherit }
|
|
|
138
138
|
|
|
139
139
|
/* ── 用量条: 一组轮次的总账 ─────────────────────────────────────────
|
|
140
140
|
一个组件两处挂: 整页页脚 (wizard 的总账) / 聊天窗口底 (人与某个 wizard 这段往来的账)。
|
|
141
|
-
永远单行: 主人 · 模型 · 指标 · 图例, I/O
|
|
141
|
+
永远单行: 主人 · 模型 · 指标 · 图例, I/O 分布是贴顶的色带 (兼作上边线)。排不下时 chat.js 的 fitUsage
|
|
142
142
|
按容器宽度一级级加 f-* 藏掉次要的 (分布文字 → 名字 → 耗时), 不按视口断点。 */
|
|
143
143
|
.usage {
|
|
144
144
|
/* 整条只有一个字号、一个间隔: 指标、模型名、主人、图例都用它。 */
|
|
145
145
|
--u-gap: 14px;
|
|
146
146
|
flex: none; display: flex; align-items: center; flex-wrap: nowrap; gap: var(--u-gap); overflow: hidden; white-space: nowrap;
|
|
147
|
-
position: relative; padding:
|
|
147
|
+
position: relative; padding: 8px 20px; background: var(--paper);
|
|
148
|
+
box-shadow: inset 0 1px var(--line); /* 没有分布 (total=0) 时的上边线; 有分布时被色带盖住 */
|
|
148
149
|
font-family: ui-monospace, Menlo, monospace; font-size: 11.5px; color: var(--mute);
|
|
149
150
|
font-variant-numeric: tabular-nums;
|
|
150
151
|
}
|
|
@@ -153,20 +154,21 @@ button { font: inherit; color: inherit }
|
|
|
153
154
|
.usage .u-who { display: flex; align-items: center; gap: 4px; max-width: 200px }
|
|
154
155
|
.usage .u-nm { overflow: hidden; text-overflow: ellipsis; color: var(--faint) }
|
|
155
156
|
.usage .u-lb { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; color: var(--accent) }
|
|
157
|
+
.usage .u-ef { margin-left: -4px; white-space: nowrap; color: var(--mute) }
|
|
156
158
|
.usage .u-ic { font-style: normal; margin-right: 4px }
|
|
157
159
|
.usage .u-kvs, .usage .leg { display: flex; gap: var(--u-gap) }
|
|
158
160
|
.usage .kv { white-space: nowrap }
|
|
159
|
-
/* I/O 分布 = bar
|
|
161
|
+
/* I/O 分布 = bar 的上边线: 横跨整宽的细色带, 不占行, 替掉 border-top; 悬停加粗一点好瞄准某一段。 */
|
|
160
162
|
.usage .bar {
|
|
161
|
-
position: absolute; left: 0; right: 0;
|
|
163
|
+
position: absolute; left: 0; right: 0; top: 0; height: 1px; display: flex;
|
|
162
164
|
background: var(--line); transition: height .12s;
|
|
163
165
|
}
|
|
164
|
-
.usage .bar:hover { height:
|
|
166
|
+
.usage .bar:hover { height: 3px }
|
|
165
167
|
.usage .bar .seg { flex: 1 1 0; min-width: 2px; height: 100% }
|
|
166
168
|
.usage .leg { margin-left: auto }
|
|
167
169
|
.usage .lg { display: flex; align-items: center; gap: 4px; white-space: nowrap }
|
|
168
170
|
.usage .lg i { width: 7px; height: 7px; border-radius: 50%; flex: none }
|
|
169
|
-
.usage.f-
|
|
171
|
+
.usage.f-cnt .kv-turns, .usage.f-cnt .kv-tools, .usage.f-cnt .kv-api, .usage.f-leg .leg, .usage.f-nm .u-nm { display: none }
|
|
170
172
|
|
|
171
173
|
/* 群聊头像 = 参与者头像拼图: 1 格居中, 2 格左右, 3/4 格田字。 */
|
|
172
174
|
.mosaic {
|
|
@@ -187,6 +189,24 @@ button { font: inherit; color: inherit }
|
|
|
187
189
|
}
|
|
188
190
|
.convs h2:first-child { margin-top: 6px }
|
|
189
191
|
.convs h2 span { font-weight: 400; color: var(--faint); font-variant-numeric: tabular-nums }
|
|
192
|
+
/* 会话列表 ↔ 关系图的小开关: 两个视图的第一行标题右端, 同一个位置。 */
|
|
193
|
+
.convs h2 .vt {
|
|
194
|
+
margin-left: auto; align-self: center; display: inline-flex; align-items: center; gap: 4px;
|
|
195
|
+
border: 0; background: none; padding: 2px 6px; border-radius: 5px; cursor: pointer;
|
|
196
|
+
font-size: 11px; font-weight: 400; color: var(--mute);
|
|
197
|
+
}
|
|
198
|
+
.convs h2 .vt:hover { background: #eef1f4; color: var(--accent) }
|
|
199
|
+
/* 时间范围下拉 (与名片里的 session 下拉同一个 .sp) 靠右, 视图开关紧跟在它后面。
|
|
200
|
+
标题行把 span 一律染淡, 下拉里的字照回正常色。 */
|
|
201
|
+
.convs h2 .sp[data-dd="win"] { margin-left: auto; align-self: center; align-items: center }
|
|
202
|
+
.convs h2 .sp[data-dd="win"] + .vt { margin-left: 0 }
|
|
203
|
+
.convs h2 .sp .sp-it { color: var(--ink) }
|
|
204
|
+
.convs h2 .sp .sp-it.on { color: var(--accent) }
|
|
205
|
+
.convs h2 .sp-list span { color: inherit }
|
|
206
|
+
/* 关系图那一行字多 (范围 · 计数 · 名册缺席 · 看全部 · 开关): 一律不折行, 让范围那段先省略。 */
|
|
207
|
+
.convs h2 { white-space: nowrap; min-width: 0 }
|
|
208
|
+
.convs h2 > * { flex: none }
|
|
209
|
+
.convs h2 > span:first-of-type { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis }
|
|
190
210
|
|
|
191
211
|
/* 群下的子项 (.si) 与私聊项 (.ci) 同一套尺寸 —— 只有一份。 */
|
|
192
212
|
.ci, .si {
|
|
@@ -211,10 +231,25 @@ button { font: inherit; color: inherit }
|
|
|
211
231
|
.ci .pv, .si .pv { display: block; font-size: 12px; color: var(--mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
212
232
|
.ci .pv:empty, .si .pv:empty { display: none }
|
|
213
233
|
.ci .tag { font-size: 10.5px; border-radius: 4px; padding: 0 4px; flex: none }
|
|
234
|
+
.ci-chevron {
|
|
235
|
+
flex: none; align-self: center; position: relative; z-index: 1; width: 20px; height: 20px; padding: 0; border: 0;
|
|
236
|
+
background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center;
|
|
237
|
+
color: var(--faint); transition: color .12s, transform .12s;
|
|
238
|
+
}
|
|
239
|
+
.ci-chevron::before { content: "›"; font-size: 16px; font-weight: 300; display: flex; align-items: center; justify-content: center; line-height: 1 }
|
|
240
|
+
.ci-chevron:hover { color: var(--accent) }
|
|
241
|
+
.ci-chevron.on::before { transform: rotate(90deg) }
|
|
214
242
|
/* 头像与名字是进入那个 role 视角的入口 —— 侧栏项、会话头、消息行同一种读法。
|
|
215
243
|
它们嵌在整行那颗按钮里; 行本身悬停不变底色, 只有入口自己亮起。z-index 保证没有兄弟盖住命中区。 */
|
|
216
244
|
.nm.go, .av.go { position: relative; z-index: 1; cursor: pointer }
|
|
217
|
-
.nm.go:hover {
|
|
245
|
+
.nm.go:hover { text-decoration: underline; text-underline-offset: 2px }
|
|
246
|
+
/* 名字旁的 ⇄: 只在能切的名字悬停时露出 —— inline-block 同样不吃下划线 */
|
|
247
|
+
.nm .sw { display: none; margin-left: 4px; font-style: normal; font-weight: 400; font-size: 12px; color: var(--faint) }
|
|
248
|
+
.nm.go:hover .sw { display: inline-block }
|
|
249
|
+
/* 名字旁「+N」: 视角外它还在和几个 role 说话 —— inline-block 不吃名字 hover 的下划线 */
|
|
250
|
+
.nm .oc { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 8px; line-height: 15px; font-size: 10.5px; font-weight: 600;
|
|
251
|
+
color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); vertical-align: 1px }
|
|
252
|
+
.nm.go:hover .oc { background: color-mix(in srgb, var(--accent) 20%, transparent) }
|
|
218
253
|
span.av.go { border-radius: 8px; transition: background .12s, box-shadow .12s }
|
|
219
254
|
span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot) }
|
|
220
255
|
.ci .tag.priv { color: var(--priv); background: #9a5b1014 }
|
|
@@ -224,6 +259,10 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
224
259
|
/* 竖线的 x 与关系图里的竖向连线对齐: 都在项左缘 +10px (关系树 ul 缩进 20 - 线距 li 10)。 */
|
|
225
260
|
.subs { margin: 0 0 6px 10px; border-left: 1px solid var(--line); padding-left: 2px }
|
|
226
261
|
.si { color: var(--ink) }
|
|
262
|
+
/* 「chat 内全部」下与我无往来的子项: 整行淡下去、名字不加粗, 一眼分得出不是我的往来; 选中 / 悬停时恢复。 */
|
|
263
|
+
.si.far { opacity: .58 }
|
|
264
|
+
.si.far .t { font-weight: 400 }
|
|
265
|
+
.si.far:hover, .si.far.on { opacity: 1 }
|
|
227
266
|
.si-more {
|
|
228
267
|
display: block; width: 100%; text-align: center; padding: 4px 8px; border: 0;
|
|
229
268
|
background: transparent; cursor: pointer; font-size: 11.5px; color: var(--mute);
|
|
@@ -247,6 +286,11 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
247
286
|
background: var(--card); border-bottom: 1px solid var(--line);
|
|
248
287
|
}
|
|
249
288
|
.chathead .back { display: none; border: 0; background: none; font-size: 22px; color: var(--mute); cursor: pointer; padding: 0 4px }
|
|
289
|
+
/* 跳过来之后的返回 (工单页 / 移交行): 同一副无框箭头, 宽屏也露出。 */
|
|
290
|
+
.chathead .back.jb { display: block; flex: none; margin-right: -4px }
|
|
291
|
+
.chathead .back.jb:hover { color: var(--accent) }
|
|
292
|
+
/* 有跳转返回时窄屏只留它一个箭头: 先回跳转前; 没有它时 #tb-back 才是回会话列表。 */
|
|
293
|
+
.chathead:has(.back.jb) #tb-back { display: none }
|
|
250
294
|
.ch-who { display: flex; gap: 11px; align-items: center; min-width: 0; flex: 1 }
|
|
251
295
|
/* 一对一的两端头像: 同单个角色头像的画法, 后一个略压住前一个。 */
|
|
252
296
|
.ch-who .pair { display: flex; flex: none; align-items: center }
|
|
@@ -261,8 +305,10 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
261
305
|
.ch-who .t { min-width: 0; font-size: 16px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
262
306
|
.ch-who > .t:not(:only-child) { flex: 0 1 auto }
|
|
263
307
|
.ch-who .sub { min-width: 0; font-size: 11.5px; color: var(--mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
308
|
+
/* 副标题里的群名: 回到整个群的入口, 平时只是一行灰字, 悬停才像链接。 */
|
|
309
|
+
.ch-who .sub .up { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer }
|
|
310
|
+
.ch-who .sub .up:hover { text-decoration: underline }
|
|
264
311
|
.ch-acts { display: flex; gap: 8px; align-items: center; flex: 0 1 auto; min-width: 0; font-size: 12px; color: var(--mute) }
|
|
265
|
-
.ch-acts .with { min-width: 0; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
266
312
|
.ch-acts .vb { flex: none }
|
|
267
313
|
.vb {
|
|
268
314
|
font-size: 12.5px; background: var(--card); border: 1px solid var(--line); border-radius: 7px;
|
|
@@ -298,7 +344,6 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
298
344
|
.mrow.mine { flex-direction: row-reverse }
|
|
299
345
|
.mrow.mine .mcol { align-items: flex-end }
|
|
300
346
|
.mwho { font-size: 11.5px; color: var(--mute); display: flex; gap: 6px; align-items: center; flex-wrap: wrap }
|
|
301
|
-
.mwho .to { color: var(--faint); display: inline-flex; gap: 6px; align-items: center; min-width: 0; max-width: 100% }
|
|
302
347
|
.mwho .nm { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
303
348
|
.mwho .ch { font-size: 10.5px; border-radius: 4px; padding: 0 4px }
|
|
304
349
|
.mwho .ch.priv { color: var(--priv); background: #9a5b1014 }
|
|
@@ -323,6 +368,38 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
323
368
|
.mchip.priv { color: var(--priv); background: #9a5b1014 }
|
|
324
369
|
.mchip.graph { color: #6639ba; background: #8250df12 }
|
|
325
370
|
.mchip.sys { color: #0a7d6b; background: #0a7d6b12 }
|
|
371
|
+
/* 回执: 定论着色 —— 已交是常态不抢眼, 反问 / 报错要人看一眼, 没答案的几种灰红。 */
|
|
372
|
+
.mchip.rcpt { border: 0; font: inherit; font-size: 11px; line-height: 16px; color: #1a7f37; background: #1a7f3712 }
|
|
373
|
+
button.mchip.rcpt { cursor: pointer }
|
|
374
|
+
button.mchip.rcpt:hover { text-decoration: underline }
|
|
375
|
+
.mchip.rcpt:is(.st-need, .st-error) { color: #9a6700; background: #9a670014 }
|
|
376
|
+
.mchip.rcpt:is(.st-timeout, .st-silent, .st-dead, .st-canceled) { color: #cf222e; background: #cf222e10 }
|
|
377
|
+
/* 说给谁 (inline): 塞进正文第一段开头的头像 + 名字, 像行内 mention; 小圆角底色, 点它走移交行同一套跳转。 */
|
|
378
|
+
.to-in {
|
|
379
|
+
display: inline-flex; align-items: center; gap: 3px; vertical-align: baseline; padding: 1px 6px; border-radius: 5px;
|
|
380
|
+
line-height: 18px; background: color-mix(in srgb, #0969da 10%, transparent); color: var(--ink);
|
|
381
|
+
cursor: pointer; transition: background .12s;
|
|
382
|
+
}
|
|
383
|
+
.to-in:hover { background: color-mix(in srgb, #0969da 20%, transparent) }
|
|
384
|
+
.to-in .av { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); font-size: 10px; line-height: 14px; text-align: center; align-self: center }
|
|
385
|
+
.to-in .nm { font-weight: 500; font-size: 13px }
|
|
386
|
+
.to-in .nm::before { content: none }
|
|
387
|
+
/* 移交行里的对方: 小头像 + 名字。整行是入口 (开双方的往来), 悬停时整行提亮。 */
|
|
388
|
+
.handoff .ho-who { display: inline-flex; align-items: center; gap: 3px; color: var(--ink) }
|
|
389
|
+
.handoff .ho-line[data-hto]:hover { background: var(--av-hot); border-radius: 6px }
|
|
390
|
+
.handoff .ho-who .av { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); font-size: 10px; line-height: 14px; text-align: center }
|
|
391
|
+
.handoff .ho-who .nm { font-weight: 500 }
|
|
392
|
+
/* 过程框收起后移交行仍露在框头下 —— 活交给了谁, 不该和普通工具输出一起藏起来。 */
|
|
393
|
+
.steps.folded > .bubbles:has(> .bubble.tool .handoff) { display: flex; flex-direction: column }
|
|
394
|
+
.steps.folded > .bubbles > :not(:has(.handoff)) { display: none }
|
|
395
|
+
.steps.folded > .bubbles > .bubble.tool > :not(.handoff) { display: none }
|
|
396
|
+
.steps.folded .handoff .ho-line { padding-left: 6px }
|
|
397
|
+
.steps.folded .handoff .ho-text { margin-left: 6px }
|
|
398
|
+
.steps.folded .handoff.pub > .say { margin-left: 6px }
|
|
399
|
+
/* 公开移交那句是这一行的发话人在群里说的话: 气泡取这一行自己的底色 (过程框里 --bub 被重置成白卡,
|
|
400
|
+
所以在 .mb 上先把行色存一份), 与普通消息同一颗。 */
|
|
401
|
+
.mrow .mb { --row-bub: var(--bub); --row-bub-line: var(--bub-line) }
|
|
402
|
+
.mrow .mb .steps .handoff.pub > .say > .bubble { background: var(--row-bub); border-color: var(--row-bub-line) }
|
|
326
403
|
|
|
327
404
|
/* 气泡与过程框同一种底色: 都是这个人发出来的 —— 自己的是视角色, 别人的是浅灰。
|
|
328
405
|
TURN_CSS 里写死的白卡 / 灰底 (嵌套气泡、代码块、折叠头) 在有色底上会显成一张张
|
|
@@ -331,7 +408,7 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
331
408
|
.mrow .mb .steps :is(.bubble, .typing) { background: transparent }
|
|
332
409
|
.mrow .mb .bubble.user,
|
|
333
410
|
.mrow .mb .md-body code, .mrow .mb .md-body pre,
|
|
334
|
-
.mrow .mb details:not(.tool-call) > summary,
|
|
411
|
+
.mrow .mb details:not(.tool-call, .handoff) > summary,
|
|
335
412
|
.mrow .mb .tool-body section > h2, .mrow .mb .diff-meta,
|
|
336
413
|
.mrow .mb .tool-call > summary:hover { background: var(--bub-soft); border-color: var(--bub-line) }
|
|
337
414
|
.mrow .mb .md-body pre code { background: transparent }
|
|
@@ -372,32 +449,6 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
372
449
|
/* 说给谁: 贴着气泡写在门里, 与气泡首行对齐。不吃点击 —— 点到它就是点门。
|
|
373
450
|
门竖排: 描述在上、换视角箭头在下, 描述折几行箭头就跟着往下让, 两者不叠。
|
|
374
451
|
contain: size —— 门的内容不参与这一行的高度, 描述再长也不撑高一行。 */
|
|
375
|
-
.flip:has(.dest) {
|
|
376
|
-
flex-direction: column; justify-content: flex-start; gap: 6px; contain: size;
|
|
377
|
-
padding: calc(var(--av) + 12px) 4px 0;
|
|
378
|
-
}
|
|
379
|
-
/* 只留向下的吸附: 原先的 bottom 吸附会把箭头往上拽到视窗中线, 越过上面的描述。 */
|
|
380
|
-
.flip:has(.dest) .fi { bottom: auto; flex: none }
|
|
381
|
-
/* 门比描述矮 (一行短气泡) 时不许把描述压扁, 宁可溢到行外。 */
|
|
382
|
-
.flip:has(.dest) .dest { flex: none }
|
|
383
|
-
/* 压过 .mrow.mine .flip 的 flex-end: 竖排后那条是纵轴, 会把描述推到行底。 */
|
|
384
|
-
.mrow .flip:has(.dest) { justify-content: flex-start }
|
|
385
|
-
.mrow.them .flip:has(.dest) { align-items: flex-start }
|
|
386
|
-
.mrow.mine .flip:has(.dest) { align-items: flex-end }
|
|
387
|
-
.flip .dest {
|
|
388
|
-
max-width: 100%; font-size: 11px; line-height: 1.45; color: var(--faint); pointer-events: none;
|
|
389
|
-
display: flex; align-items: center; gap: 4px; max-height: calc(3 * 1.45em); overflow: hidden;
|
|
390
|
-
}
|
|
391
|
-
.flip .dest .arr { font-style: normal; flex: none }
|
|
392
|
-
.flip .dest .dav {
|
|
393
|
-
flex: none; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line); background: var(--card);
|
|
394
|
-
display: grid; place-items: center; font-size: 11px; line-height: 1;
|
|
395
|
-
}
|
|
396
|
-
.flip .dest .dn { min-width: 0; overflow-wrap: anywhere }
|
|
397
|
-
.mrow.them .flip .dest { text-align: left }
|
|
398
|
-
.mrow.mine .flip .dest { text-align: right; justify-content: flex-end }
|
|
399
|
-
.flip[disabled] .dest { color: var(--faint) }
|
|
400
|
-
.mwho .to { display: none }
|
|
401
452
|
.mwho .av.go { cursor: pointer }
|
|
402
453
|
.mwho .av.go:hover { border-color: var(--accent); background: #2f55c914 }
|
|
403
454
|
|
|
@@ -425,7 +476,10 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
425
476
|
}
|
|
426
477
|
.tg-head { order: 9; display: flex; align-items: center; gap: 4px 10px; flex-wrap: wrap; padding: 0 2px }
|
|
427
478
|
.mstat { display: inline-flex; align-items: center; gap: 4px 10px; flex-wrap: wrap }
|
|
428
|
-
|
|
479
|
+
/* 两方对话里只藏模型 / ctx —— 时刻与耗时每条 wizard 消息都留着。 */
|
|
480
|
+
.mrow.two :is(.mstat, .say-cap, .ho-acct) :is(.chip, .tg-tok) { display: none }
|
|
481
|
+
.ho-acct { display: inline-flex; align-items: center; gap: 4px 8px }
|
|
482
|
+
:is(.tg-head, .mstat, .say-cap, .ho-acct) :is(.chip.model, .chip.tier), .tg-tok, .tg-dur {
|
|
429
483
|
padding: 0; border: 0; border-radius: 0; background: none; font-weight: 400;
|
|
430
484
|
font-size: 10.5px; color: var(--faint); font-family: ui-monospace, Menlo, monospace;
|
|
431
485
|
}
|
|
@@ -460,8 +514,7 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
460
514
|
}
|
|
461
515
|
.ping-fold .mcol { max-width: 100% }
|
|
462
516
|
.ping-fold .flip { display: none }
|
|
463
|
-
.ping-fold
|
|
464
|
-
/* 折叠里的气泡同是白底 —— 描一圈虚线跟对话气泡分开, 与外框一个语气。 */
|
|
517
|
+
.ping-fold /* 折叠里的气泡同是白底 —— 描一圈虚线跟对话气泡分开, 与外框一个语气。 */
|
|
465
518
|
.ping-fold .mb :is(.bubble.mq, .say > .bubble) { border: 1px dashed var(--bub-line) }
|
|
466
519
|
|
|
467
520
|
@media (max-width: 760px) {
|
|
@@ -475,9 +528,7 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
475
528
|
.thread { padding: 12px }
|
|
476
529
|
.mcol { max-width: calc(86% + var(--av)) }
|
|
477
530
|
.flip { min-width: 16px; padding: 0 4px; font-size: 0 }
|
|
478
|
-
|
|
479
|
-
.mwho .to { display: inline-flex }
|
|
480
|
-
.thread { padding-bottom: calc(12px + env(safe-area-inset-bottom)) }
|
|
531
|
+
.thread { padding-bottom: calc(12px + env(safe-area-inset-bottom)) }
|
|
481
532
|
.usage { padding: 8px 12px }
|
|
482
533
|
.usage.page { padding-bottom: calc(8px + env(safe-area-inset-bottom)) }
|
|
483
534
|
}
|
|
@@ -620,20 +671,16 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
620
671
|
.wst::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #b1bac4 }
|
|
621
672
|
.wst.run { background: #dafbe1; color: #1a7f37 }
|
|
622
673
|
.wst.run::before { background: #1a7f37; animation: pulse 1.4s infinite }
|
|
674
|
+
.wst.wait { background: #fbefff; color: #8250df }
|
|
675
|
+
.wst.wait::before { background: #8250df; animation: pulse 1.4s infinite }
|
|
623
676
|
.wst.off { background: transparent; color: var(--faint); box-shadow: inset 0 0 0 1px var(--line) }
|
|
624
677
|
.wst.off::before { background: transparent; box-shadow: inset 0 0 0 1.5px #b1bac4 }
|
|
625
678
|
.wst:empty { padding: 0; background: none; box-shadow: none }
|
|
626
679
|
.wst:empty::before { width: 7px; height: 7px }
|
|
627
680
|
/* ══ 关系图 · 关系树 (家谱与派活合成一棵, 以当前 role 为中心) ══════════
|
|
628
681
|
它替换的是侧栏的会话列表: 标题、图例与会话列表的分组标题同一种读法, 卡片就是会话项 (.ci)。 */
|
|
629
|
-
.tview .tall {
|
|
630
|
-
margin-left: auto; border: 0; background: none; padding: 0 2px; cursor: pointer; font-size: 11px; color: var(--faint);
|
|
631
|
-
text-decoration: underline dotted; text-underline-offset: 3px;
|
|
632
|
-
}
|
|
633
|
-
.tview .tall:hover { color: var(--accent) }
|
|
634
682
|
.tview h2 .warn { color: #9a6700; font-weight: 400 }
|
|
635
683
|
.tree.all > li + li { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #eaeef2 }
|
|
636
|
-
.tfold { flex: none; font-size: 10px; font-weight: 400; color: var(--faint); border: 1px dashed var(--line); border-radius: 8px; padding: 0 5px; line-height: 14px }
|
|
637
684
|
.tsolo { font-size: 11.5px; color: var(--faint); margin: 0 8px 10px }
|
|
638
685
|
.tview .pempty { padding: 18px 8px }
|
|
639
686
|
|
|
@@ -653,6 +700,7 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
653
700
|
}
|
|
654
701
|
.tree li.spawn { --lc: #d4700f }
|
|
655
702
|
.tree li.clone { --lc: #8250df }
|
|
703
|
+
.tree li.fork { --lc: #b39ddb }
|
|
656
704
|
.tree li.peer { --lc: #0969da }
|
|
657
705
|
.tree li.job { --lc: #bf8700 }
|
|
658
706
|
.tree li.graph { --lc: #0a7d6b }
|
|
@@ -662,6 +710,8 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
662
710
|
/* 连接用的祖先: 没和视角对过话, 只为把对过话的后代挂回家谱 —— 淡一档。 */
|
|
663
711
|
.tci.via { opacity: .55 }
|
|
664
712
|
.tci.via:hover { opacity: 1 }
|
|
713
|
+
.tci.ghost { opacity: .5; filter: grayscale(1) }
|
|
714
|
+
.tci.ghost:hover { opacity: .8 }
|
|
665
715
|
.tlab { position: absolute; left: 4px; top: -8px; display: flex; gap: 3px; z-index: 2 }
|
|
666
716
|
.tlab .ek { box-shadow: 0 0 0 2px var(--card) }
|
|
667
717
|
|
|
@@ -672,11 +722,53 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
672
722
|
}
|
|
673
723
|
.ek.spawn { color: #a8642a; background: #d4700f12 }
|
|
674
724
|
.ek.clone { color: #7a5bb8; background: #8250df12 }
|
|
725
|
+
.ek.clone[data-cpoint] { cursor: pointer }
|
|
726
|
+
.ek.clone[data-cpoint]:hover { background: #8250df2e }
|
|
727
|
+
.ek.fork { color: #8f7bb8; background: #8250df0a }
|
|
675
728
|
.ek.peer { color: #4a74b0; background: #0969da10 }
|
|
676
729
|
.ek.job { color: #94741f; background: #bf870014 }
|
|
677
730
|
.ek.graph { color: #3d8577; background: #0a7d6b12 }
|
|
678
731
|
.ek.cross { font-weight: 400; background: #fff; box-shadow: inset 0 0 0 1px var(--line) }
|
|
679
732
|
|
|
733
|
+
/* ══ 宪章 · 按节 ═══════════════════════════════════════════════════ */
|
|
734
|
+
/* 通用 details summary (SHARED_CSS) 带灰底、大写和 ::before 箭头 —— 这里全部重置, 箭头自己画。 */
|
|
735
|
+
.cmix { display: flex; height: 8px; border-radius: 4px; overflow: hidden; gap: 2px; margin: 2px 0 6px }
|
|
736
|
+
.cmix i { display: block; min-width: 3px; background: #c4cbd3 }
|
|
737
|
+
.cmix i.top { background: #57606a }
|
|
738
|
+
.csec { border-top: 1px solid #eaeef2 }
|
|
739
|
+
.csec:first-of-type { border-top: 0 }
|
|
740
|
+
.csec > summary {
|
|
741
|
+
display: grid; grid-template-columns: 14px minmax(0, 1fr) minmax(60px, 160px) 92px; align-items: center; gap: 10px;
|
|
742
|
+
padding: 9px 4px; margin: 0 -4px; border-radius: 6px; border: 0; background: none;
|
|
743
|
+
cursor: pointer; list-style: none; user-select: none;
|
|
744
|
+
font-size: 13px; font-weight: 400; color: var(--ink); text-transform: none; letter-spacing: 0;
|
|
745
|
+
}
|
|
746
|
+
.csec > summary::-webkit-details-marker { display: none }
|
|
747
|
+
.csec > summary::before { content: "▸"; font-size: 11px; color: var(--faint); transition: transform .12s; justify-self: center }
|
|
748
|
+
.csec[open] > summary::before { content: "▸"; transform: rotate(90deg) }
|
|
749
|
+
.csec > summary:hover { background: #f6f8fa }
|
|
750
|
+
.csec .ct { overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
751
|
+
.csec[open] .ct { font-weight: 600 }
|
|
752
|
+
.csec .cbar { height: 6px; border-radius: 3px; background: #eaeef2; overflow: hidden }
|
|
753
|
+
.csec .cbar i { display: block; height: 100%; border-radius: 3px; background: #afb8c1 }
|
|
754
|
+
.csec.top .cbar i { background: #57606a }
|
|
755
|
+
.csec .cn { text-align: right; font-size: 11.5px; color: var(--mute); font-family: ui-monospace, Menlo, monospace; white-space: nowrap }
|
|
756
|
+
.csec .cn small { color: var(--faint); margin-left: 6px }
|
|
757
|
+
.csec .md-body { font-size: 13px; line-height: 1.6; margin: 0 0 12px 24px; padding: 2px 0 2px 12px; border-left: 2px solid #eaeef2; overflow-wrap: anywhere }
|
|
758
|
+
.csec .md-body > :first-child { margin-top: 0 }
|
|
759
|
+
.csec .md-body > :last-child { margin-bottom: 0 }
|
|
760
|
+
.csec .md-body ul { padding-left: 18px }
|
|
761
|
+
.csec .md-body pre { white-space: pre-wrap }
|
|
762
|
+
/* 关系 / 日程 / 宪章这类视图名很短, 窄屏上该让位的是副标题, 不是标题。 */
|
|
763
|
+
.outer .ch-who .t { flex-shrink: 0 }
|
|
764
|
+
.psec h3 .cx { white-space: nowrap; margin-left: auto; border: 0; background: none; padding: 0; cursor: pointer; font: 11px/1 inherit; color: var(--mute) }
|
|
765
|
+
.psec h3 .cx:hover { color: var(--ink) }
|
|
766
|
+
@media (max-width: 640px) {
|
|
767
|
+
.csec > summary { grid-template-columns: 14px minmax(0, 1fr) 84px }
|
|
768
|
+
.csec .cbar { display: none }
|
|
769
|
+
.csec .md-body { margin-left: 8px }
|
|
770
|
+
}
|
|
771
|
+
|
|
680
772
|
/* ══ 日程 · 总览 / 任务卡 ════════════════════════════════════════════ */
|
|
681
773
|
.pstats {
|
|
682
774
|
max-width: 900px; margin: 0 auto 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px;
|
|
@@ -751,13 +843,14 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
751
843
|
.jmm .tmp, .jmm .wchip { flex: none; white-space: nowrap }
|
|
752
844
|
|
|
753
845
|
/* ── 搜索 (⌘K): 名片下、关系/日程入口上的搜索框 + 居中浮层 ──────────────
|
|
754
|
-
入口与会话项同圆角,
|
|
846
|
+
入口与会话项同圆角, 无边框, 只靠浅灰底与侧栏白底区分; 悬停 / 键盘聚焦都只是底色再沉一档, 不描边。
|
|
847
|
+
浮层的结果行沿用会话项的两行读法。 */
|
|
755
848
|
.sbox {
|
|
756
|
-
flex: none; display: flex; align-items: center; gap: 8px; margin: 10px 10px 4px; padding:
|
|
757
|
-
border:
|
|
758
|
-
cursor: pointer; text-align: left; transition:
|
|
849
|
+
flex: none; display: flex; align-items: center; gap: 8px; margin: 10px 10px 4px; padding: 8px 11px;
|
|
850
|
+
border: 0; border-radius: 9px; background: var(--paper); color: var(--faint);
|
|
851
|
+
cursor: pointer; text-align: left; transition: background .12s, color .12s;
|
|
759
852
|
}
|
|
760
|
-
.sbox:hover
|
|
853
|
+
.sbox:hover, .sbox:focus-visible { background: var(--them-soft); color: var(--mute); outline: none }
|
|
761
854
|
.sbox .ic, .sk-in .ic { flex: none; display: inline-flex }
|
|
762
855
|
.sbox .ic svg, .sk-in .ic svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round }
|
|
763
856
|
.sbox .lb { flex: 1; min-width: 0; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
@@ -840,4 +933,63 @@ span.av.go:hover { background: var(--av-hot); box-shadow: 0 0 0 3px var(--av-hot
|
|
|
840
933
|
|
|
841
934
|
/* 搜索跳到的那一句: 气泡闪一圈视角色。 */
|
|
842
935
|
.mrow.hit .mb > * { animation: hit 1.6s ease-out }
|
|
936
|
+
/* clone 徽标落到的那次 clone_wizard 调用: 调用框本身再闪一圈。 */
|
|
937
|
+
.mrow .bubble.tool.hit { animation: hit 2.4s ease-out }
|
|
843
938
|
@keyframes hit { 0%, 30% { box-shadow: 0 0 0 3px #2f55c955 } 100% { box-shadow: 0 0 0 3px #2f55c900 } }
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
/* ══ 工单 (j:<id>) —— 工单页与工单列表都在主区; 侧栏 / 关系图只挂 📋 标记 ══════════════
|
|
942
|
+
进度徽标: 开着 = 已落定 / 一共 (琥珀), 收了 = 收工 (灰); 有人卡住另挂一枚紫色「N 卡住」。 */
|
|
943
|
+
.jtag { flex: none; margin-left: 6px; font-size: 10.5px; line-height: 15px; padding: 0 5px; border-radius: 4px; color: var(--faint); background: #f1f3f6; font-weight: 500 }
|
|
944
|
+
.jtag.open { color: #94741f; background: #bf870014 }
|
|
945
|
+
.jstuck { flex: none; margin-left: 4px; font-size: 10.5px; line-height: 15px; padding: 0 5px; border-radius: 4px; color: #8250df; background: #fbefff; font-weight: 500 }
|
|
946
|
+
.jmk { flex: none; margin-left: 4px; padding: 0 3px; border-radius: 4px; font-size: 10.5px; opacity: .8; cursor: pointer }
|
|
947
|
+
.jmk:hover { opacity: 1; background: #bf870022 }
|
|
948
|
+
.jmk i { font-style: normal; margin-left: 1px; color: #94741f; font-size: 10px }
|
|
949
|
+
.ek.jmk { margin-left: 0; opacity: 1; color: #94741f; background: #bf870014 }
|
|
950
|
+
.ek.jmk:hover { background: #bf870033 }
|
|
951
|
+
/* 消息上的工单 badge: 📋 标题 + 进度, 点了进工单页。 */
|
|
952
|
+
.mchip.job { display: inline-flex; align-items: center; gap: 3px; max-width: 260px; border: 0; font: inherit; font-size: 11px; line-height: 16px; color: #94741f; background: #bf870014; cursor: pointer }
|
|
953
|
+
.mchip.job:hover { background: #bf870030 }
|
|
954
|
+
.mchip.job .jt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0 }
|
|
955
|
+
.mchip.job .jtag { margin-left: 2px }
|
|
956
|
+
/* 工单列表 (主区): 与侧栏会话项同一种行; 已收工的淡一档, 悬停回满。 */
|
|
957
|
+
.jlist h2 { margin: 14px 4px 6px; font-size: 12px; font-weight: 500; color: var(--mute) }
|
|
958
|
+
.jlist h2 span { margin-left: 6px; font-weight: 400; color: var(--faint) }
|
|
959
|
+
.jlist .ci { width: 100% }
|
|
960
|
+
.jclosed .ci { opacity: .55 }
|
|
961
|
+
.jclosed .ci:hover { opacity: 1 }
|
|
962
|
+
/* 工单页的开工 / 收工两行。 */
|
|
963
|
+
.tg-job { margin: 6px auto; max-width: 560px; padding: 8px 12px; border-radius: 8px; border: 1px dashed #bf870066; background: #bf870008; font-size: 12px; color: var(--mute) }
|
|
964
|
+
.tg-job .jh { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap }
|
|
965
|
+
.tg-job .jh .jt { color: var(--ink); font-weight: 500 }
|
|
966
|
+
.tg-job .jh .s { margin-left: auto; color: var(--faint); font-size: 11px }
|
|
967
|
+
.tg-job .jmem { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px }
|
|
968
|
+
.tg-job .jmem li { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap }
|
|
969
|
+
/* 派给成员的那段活原样分行, 太长收在 4 行 (悬停看全文)。 */
|
|
970
|
+
.tg-job .jmem em { flex-basis: 100%; padding-left: 40px; font-style: normal; color: var(--faint); white-space: pre-wrap; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden }
|
|
971
|
+
.tg-job .jmem .go { border: 0; background: none; padding: 0; font: inherit; color: var(--accent); cursor: pointer }
|
|
972
|
+
.tg-job .ja { flex-basis: 100%; padding-left: 40px; color: var(--faint); font-family: ui-monospace, monospace; font-size: 11px }
|
|
973
|
+
.tg-job .jo { flex: none; font-size: 10.5px; padding: 0 5px; border-radius: 4px; color: #1a7f37; background: #1a7f3712 }
|
|
974
|
+
.tg-job .jo.st-run { color: #94741f; background: #bf870014 }
|
|
975
|
+
.tg-job .jo.st-none { color: var(--faint); background: #f1f3f6 }
|
|
976
|
+
.tg-job .jo:is(.st-timeout, .st-silent, .st-dead, .st-canceled) { color: #cf222e; background: #cf222e10 }
|
|
977
|
+
.tg-job .md-body { margin-top: 6px; color: var(--ink); overflow-wrap: anywhere }
|
|
978
|
+
.tg-job .md-body.jplan { color: var(--mute) }
|
|
979
|
+
/* 关系图: 正在看一张工单时只亮它的当事人与两端都是当事人的线。 */
|
|
980
|
+
.tree.jsel .tci.jout { opacity: .3 }
|
|
981
|
+
.tree.jsel .tci.jout:hover { opacity: 1 }
|
|
982
|
+
.tree.jsel li.jdim { --lc: #d0d7de }
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
.jstage { flex: none; margin-left: 6px; font-size: 10.5px; line-height: 15px; padding: 0 5px; border-radius: 4px; color: #0969da; background: #0969da12; font-weight: 500 }
|
|
986
|
+
.jstage.wait { color: #94741f; background: #bf870022 }
|
|
987
|
+
.jcrumb { font-weight: 400; color: var(--faint); margin-right: 2px }
|
|
988
|
+
.jcrumb button { border: 0; background: none; padding: 0; font: inherit; color: var(--accent); cursor: pointer }
|
|
989
|
+
.jcrumb i { font-style: normal; margin: 0 4px }
|
|
990
|
+
.tg-job .jrole { flex: none; font-size: 10.5px; padding: 0 5px; border-radius: 4px; color: #8250df; background: #fbefff }
|
|
991
|
+
.tg-job .jfork { font-size: 11px; color: var(--faint) }
|
|
992
|
+
.tg-job .jkids { margin-top: 8px; padding-top: 6px; border-top: 1px dashed var(--line, #0001) }
|
|
993
|
+
.tg-job .jkids .jn { font-size: 11px; color: var(--faint) }
|
|
994
|
+
.tg-job .jorigin, .tg-job .jcrit { margin-top: 6px }
|
|
995
|
+
.tg-job .jc { text-align: left }
|