wezard 2.0.4 → 2.0.6
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/dist/daemon/cc-session.js +2 -0
- package/dist/daemon/cc-session.js.map +1 -1
- package/dist/daemon/inbound.js +25 -34
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +2 -2
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +66 -24
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/peers.js +11 -0
- package/dist/daemon/peers.js.map +1 -1
- package/dist/shared/detail-render.js +147 -69
- package/dist/shared/detail-render.js.map +1 -1
- package/dist/shared/role-render.js +11 -6
- package/dist/shared/role-render.js.map +1 -1
- package/dist/shared/role-view.js +9 -4
- package/dist/shared/role-view.js.map +1 -1
- package/package.json +1 -1
- package/web/chat.css +59 -68
- package/web/chat.js +27 -29
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
// (同一条消息, 从发话方看靠右、从收信方看靠左, 服务端不该替它决定)。
|
|
3
3
|
//
|
|
4
4
|
// 入 发话方说的那句 (userQuery), markdown 由客户端渲染
|
|
5
|
-
// 出 该 wizard 这一轮的回复: 复用 renderTurnGroup (文本 + 工具细节
|
|
6
|
-
//
|
|
5
|
+
// 出 该 wizard 这一轮的回复: 复用 renderTurnGroup (文本 + 工具细节), 去掉问句 ——
|
|
6
|
+
// 问句已经是上面那条入消息了; 本轮用量单独走 `meta`, 客户端写在名字那一行
|
|
7
7
|
// 断点 视角 role 自己的 /clear /new
|
|
8
8
|
import { renderCutMark, renderTurnGroup, escHtml, hashStr, tagSig } from "./detail-render.js";
|
|
9
9
|
import { isKeepaliveTurn, isTurn, staleAt, turnDone } from "./chat-view.js";
|
|
10
10
|
import { teammateOf, unwrapMates } from "./role-view.js";
|
|
11
11
|
// 入消息顶上的一行归因: 这句话不是人打的字时说清是谁派的。
|
|
12
|
+
// 没有「公开」标记 —— 公开与否是**会话窗口**这一层的事, 不是消息这一层的:
|
|
13
|
+
// send_peer 的 channel 就是 `isPublic ? channelOf(self) : ""` (daemon/index.ts),
|
|
14
|
+
// convKeyOf 又只按 channel 分窗, 于是公开的一句必在 `c:<base>` 群窗、私聊的必在
|
|
15
|
+
// `p:<对端>` 私窗。在群窗里标「公开」等于给每条消息盖一个恒真的章。
|
|
12
16
|
// 时刻不在这里 —— 它写在气泡外的 .mwho 上 (每条消息只报一次时间), 所以
|
|
13
17
|
// 没有归因要说时整行省掉, 免得留下一条空的内边距。
|
|
14
18
|
const mateChip = (mate) => mate === undefined ? "" : `<span class="mchip sys">agent team${mate ? ` · ${escHtml(mate)}` : ""}</span>`;
|
|
@@ -17,7 +21,6 @@ const inMeta = (r) => {
|
|
|
17
21
|
r.origin ? `<span class="mchip graph" title="graph ${escHtml(r.origin.runId)}">🕸 轮 ${r.origin.round}/${r.origin.rounds} · 步 ${r.origin.step}/${r.origin.steps}</span>` : "",
|
|
18
22
|
r.from?.kind === "task" ? `<span class="mchip task">⏰ 定时 ${escHtml(r.from.taskId ?? "")}</span>` : "",
|
|
19
23
|
mateChip(teammateOf(r.userQuery)),
|
|
20
|
-
r.from?.kind === "peer" && r.from.public ? `<span class="mchip pub">公开</span>` : "",
|
|
21
24
|
r.from?.job ? `<span class="mchip job">📋 ${escHtml(r.from.job)}</span>` : "",
|
|
22
25
|
].filter(Boolean);
|
|
23
26
|
return bits.length ? `<div class="mmeta">${bits.join("")}</div>` : "";
|
|
@@ -36,12 +39,14 @@ const base = (m, dir) => ({
|
|
|
36
39
|
});
|
|
37
40
|
export const renderMsg = (m, records, dir, now) => {
|
|
38
41
|
const r = m.turn;
|
|
39
|
-
const html = m.dir === "in"
|
|
42
|
+
const { html, meta } = m.dir === "in"
|
|
43
|
+
? { html: renderIn(r), meta: "" }
|
|
44
|
+
: renderTurnGroup(r, now, childrenOf(records, r.id, now), false);
|
|
40
45
|
const live = m.dir === "out" && !turnDone(r, now);
|
|
41
46
|
return {
|
|
42
47
|
id: m.id, turnId: r.id, dir: m.dir, ...base(m, dir), ts: m.ts,
|
|
43
48
|
ping: isKeepaliveTurn(r),
|
|
44
|
-
html, sig: hashStr(html),
|
|
49
|
+
html, meta, sig: hashStr(html + meta),
|
|
45
50
|
staleAt: live ? staleAt(r) : 0,
|
|
46
51
|
};
|
|
47
52
|
};
|
|
@@ -49,7 +54,7 @@ export const renderMark = (mk, role, dir) => {
|
|
|
49
54
|
const f = renderCutMark(mk);
|
|
50
55
|
return {
|
|
51
56
|
id: `m:${mk.id}`, turnId: mk.id, dir: "mark", ...base({ from: role, to: role, channel: "" }, dir),
|
|
52
|
-
ts: mk.createdAt, ping: false, html: f.html, sig: f.sig, staleAt: 0,
|
|
57
|
+
ts: mk.createdAt, ping: false, html: f.html, meta: "", sig: f.sig, staleAt: 0,
|
|
53
58
|
};
|
|
54
59
|
};
|
|
55
60
|
//# sourceMappingURL=role-render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-render.js","sourceRoot":"","sources":["../../shared/role-render.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,uCAAuC;AACvC,EAAE;AACF,6CAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"role-render.js","sourceRoot":"","sources":["../../shared/role-render.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,uCAAuC;AACvC,EAAE;AACF,6CAA6C;AAC7C,iEAAiE;AACjE,mDAAmD;AACnD,+BAA+B;AAC/B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAqB,MAAM,oBAAoB,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,WAAW,EAA4B,MAAM,gBAAgB,CAAC;AA0BnF,gCAAgC;AAChC,4CAA4C;AAC5C,8EAA8E;AAC9E,0DAA0D;AAC1D,uCAAuC;AACvC,6CAA6C;AAC7C,4BAA4B;AAC5B,MAAM,QAAQ,GAAG,CAAC,IAAwB,EAAU,EAAE,CACpD,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qCAAqC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAE5G,MAAM,MAAM,GAAG,CAAC,CAAmB,EAAU,EAAE;IAC7C,MAAM,IAAI,GAAG;QACX,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,0CAA0C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;QAC5K,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,iCAAiC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACrG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;KAC9E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,CAAmB,EAAU,EAAE,CAC/C,MAAM,CAAC,wCAAwC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE;IAC7E,uEAAuE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAEzI,kEAAkE;AAClE,MAAM,UAAU,GAAG,CAAC,OAAgC,EAAE,MAAc,EAAE,GAAW,EAAkB,EAAE,CACnG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC;KAC/C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;KACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAEzC,MAAM,IAAI,GAAG,CAAC,CAAuC,EAAE,GAAc,EAAE,EAAE,CAAC,CAAC;IACzE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;IAC1C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAM,EAAE,OAAgC,EAAE,GAAc,EAAE,GAAW,EAAe,EAAE;IAC9G,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACjB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI;QACnC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE;QAC7D,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACrC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAoB,EAAE,IAAY,EAAE,GAAc,EAAe,EAAE;IAC5F,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO;QACL,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;QACjG,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/shared/role-view.js
CHANGED
|
@@ -127,7 +127,11 @@ const msgText = (m) => {
|
|
|
127
127
|
const t = [...m.turn.items].reverse().find((it) => it.t === "text");
|
|
128
128
|
return t?.body ?? "";
|
|
129
129
|
};
|
|
130
|
-
const
|
|
130
|
+
const bodyOf = (m) => (m ? stripMd(msgText(m)).slice(0, 80) : "");
|
|
131
|
+
const previewOf = (m, dir) => m ? `${dir.nameOf(m.from)}: ${bodyOf(m)}` : "";
|
|
132
|
+
/** 最后一条有正文的消息 —— 只有工具调用、或还在跑没吐字的那一轮没有可预览的话,
|
|
133
|
+
* 预览越过它落在上一句真话上, 而不是留白。 */
|
|
134
|
+
const lastSaid = (ms) => [...ms].reverse().find((m) => bodyOf(m) !== "");
|
|
131
135
|
const SUB_MAX = 40;
|
|
132
136
|
/** 一个 role 参与的全部会话, 最近活动在前。wizard 的 home 频道即使还没说过话也在列。 */
|
|
133
137
|
export const convsOf = (all_, role, dir, now) => {
|
|
@@ -145,7 +149,7 @@ export const convsOf = (all_, role, dir, now) => {
|
|
|
145
149
|
return {
|
|
146
150
|
key, kind: "wizard", name: dir.nameOf(peer), label: dir.labelOf(peer), base: "", peer,
|
|
147
151
|
status: dir.status(peer, now),
|
|
148
|
-
lastTs: last?.ts ?? 0, preview: previewOf(
|
|
152
|
+
lastTs: last?.ts ?? 0, preview: previewOf(lastSaid(ms), dir), count: ms.length, subs: [],
|
|
149
153
|
};
|
|
150
154
|
}
|
|
151
155
|
const base = key.slice(2);
|
|
@@ -159,7 +163,8 @@ export const convsOf = (all_, role, dir, now) => {
|
|
|
159
163
|
const last = pair[pair.length - 1] ?? seen[seen.length - 1];
|
|
160
164
|
return {
|
|
161
165
|
role: r, name: dir.nameOf(r), label: dir.labelOf(r), count: pair.length,
|
|
162
|
-
|
|
166
|
+
// 标题行已经是它的名字, 预览只放正文。
|
|
167
|
+
lastTs: last?.ts ?? 0, preview: bodyOf(lastSaid(pair) ?? lastSaid(seen)), status: dir.status(r, now),
|
|
163
168
|
};
|
|
164
169
|
})
|
|
165
170
|
// 与我有往来的排前, 再按最近。
|
|
@@ -169,7 +174,7 @@ export const convsOf = (all_, role, dir, now) => {
|
|
|
169
174
|
key, kind: "group", base,
|
|
170
175
|
name: dir.chatName(base) || (base.startsWith("user:") ? dir.nameOf(humanOf(base)) : base.replace(/^chat:/, "").slice(0, 10)),
|
|
171
176
|
label: "💬",
|
|
172
|
-
lastTs: last?.ts ?? 0, preview: previewOf(
|
|
177
|
+
lastTs: last?.ts ?? 0, preview: previewOf(lastSaid(all), dir), count: all.length, subs,
|
|
173
178
|
};
|
|
174
179
|
})
|
|
175
180
|
.sort((a, b) => b.lastTs - a.lastTs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-view.js","sourceRoot":"","sources":["../../shared/role-view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"role-view.js","sourceRoot":"","sources":["../../shared/role-view.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/web/chat.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Rolepage 外壳。消息正文 (
|
|
1
|
+
/* Rolepage 外壳。消息正文 (气泡 / 过程框) 的样式来自 detail-render 的 SHARED_CSS/TURN_CSS,
|
|
2
2
|
由 /chat/app.css 拼在本文件之前 —— 这里管骨架、会话列表、左右气泡与页脚总账。
|
|
3
3
|
视觉只押一处: 「视角」。我说的靠右、染成视角色; 别人说的靠左、带头像; 气泡对面
|
|
4
4
|
那片空白是一道门 —— 点下去就换成对方的视角。其余一律安静。 */
|
|
@@ -10,12 +10,14 @@
|
|
|
10
10
|
--mute: #6a7483;
|
|
11
11
|
--faint: #9aa3af;
|
|
12
12
|
--line: #d9dee6;
|
|
13
|
+
--them: #f3f4f6; /* 别人说的话 —— 浅灰 */
|
|
14
|
+
--them-soft: #e8eaee;
|
|
15
|
+
--them-line: #d9dce2;
|
|
13
16
|
--mine: #eef3fd; /* 当前视角说的话 */
|
|
14
17
|
--mine-soft: #e2eafa; /* 它内部还要再沉一档的块 (代码/结果/折叠头) */
|
|
15
18
|
--mine-line: #c9d7f3;
|
|
16
19
|
--accent: #2f55c9; /* 视角色: 名字的点、选中态、自己的气泡描边 */
|
|
17
20
|
--priv: #9a5b10; /* 私聊 */
|
|
18
|
-
--pub: #237a55; /* 公开 */
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
html { height: 100% }
|
|
@@ -211,13 +213,17 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
211
213
|
.si .pv:empty { display: none }
|
|
212
214
|
|
|
213
215
|
/* 执行中的 wizard: 头像角上一盏呼吸灯 (同关系图的 .wav .live)。 */
|
|
214
|
-
.ci > .av
|
|
215
|
-
.ci > .av .live
|
|
216
|
+
.ci > .av { position: relative }
|
|
217
|
+
.ci > .av .live {
|
|
216
218
|
position: absolute; right: 1px; bottom: -3px; width: 9px; height: 9px;
|
|
217
219
|
border-radius: 50%; background: #1a7f37; border: 2px solid #fff;
|
|
218
220
|
animation: pulse 1.4s infinite;
|
|
219
221
|
}
|
|
220
|
-
|
|
222
|
+
/* 子项的头像太小, 角上挂不住一盏看得清的灯 —— 挪到名字右边, 与回复头上的 .tg-dot 同大。 */
|
|
223
|
+
.si .l1 .live {
|
|
224
|
+
flex: none; align-self: center; width: 7px; height: 7px;
|
|
225
|
+
border-radius: 50%; background: #1a7f37; animation: pulse 1.4s infinite;
|
|
226
|
+
}
|
|
221
227
|
|
|
222
228
|
/* ── 右栏头: 这个群聊 / 私聊是什么 ───────────────────────────────── */
|
|
223
229
|
.main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; background: var(--card) }
|
|
@@ -227,13 +233,8 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
227
233
|
}
|
|
228
234
|
.chathead .back { display: none; border: 0; background: none; font-size: 22px; color: var(--mute); cursor: pointer; padding: 0 4px }
|
|
229
235
|
.ch-who { display: flex; gap: 11px; align-items: center; min-width: 0; flex: 1 }
|
|
230
|
-
.ch-who > .av:not(.mosaic) { font-size: 26px; line-height: 1; flex: none }
|
|
231
|
-
.ch-who .l { min-width: 0; display: flex; flex-direction: column; gap: 1px }
|
|
232
236
|
.ch-who .t { font-size: 16px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
233
|
-
.ch-who > .t { flex: none }
|
|
234
|
-
.ch-who .tr { display: flex; align-items: center; gap: 6px; min-width: 0 }
|
|
235
|
-
.ch-who .jump { flex: none; display: inline-flex; padding: 3px; border-radius: 5px; color: var(--mute) }
|
|
236
|
-
.ch-who .jump:hover { color: var(--accent); background: var(--line) }
|
|
237
|
+
.ch-who > .t:not(:only-child) { flex: none }
|
|
237
238
|
.ch-who .sub { font-size: 11.5px; color: var(--mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
238
239
|
.ch-acts { display: flex; gap: 8px; align-items: center; flex: none; font-size: 12px; color: var(--mute) }
|
|
239
240
|
.vb {
|
|
@@ -264,6 +265,9 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
264
265
|
background: var(--card); font-size: 14px; line-height: 22px; text-align: center; cursor: default; padding: 0;
|
|
265
266
|
}
|
|
266
267
|
.mcol { min-width: 0; max-width: min(78% + var(--av), 760px + var(--av)); display: flex; flex-direction: column; gap: 4px }
|
|
268
|
+
/* 带过程框的那条占满这一列: 列宽本来跟着内容走, 框一收起内容变窄, 整条就跟着缩。 */
|
|
269
|
+
.mcol:has(.steps) { width: 100% }
|
|
270
|
+
.mcol:has(.steps) > .mb { align-self: stretch }
|
|
267
271
|
.mrow.mine { flex-direction: row-reverse }
|
|
268
272
|
.mrow.mine .mcol { align-items: flex-end }
|
|
269
273
|
.mwho { font-size: 11.5px; color: var(--mute); display: flex; gap: 6px; align-items: center; flex-wrap: wrap }
|
|
@@ -271,40 +275,40 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
271
275
|
.mwho .ch { font-size: 10.5px; border-radius: 4px; padding: 0 4px }
|
|
272
276
|
.mwho .ch.priv { color: var(--priv); background: #9a5b1014 }
|
|
273
277
|
/* 时刻只此一处 —— 气泡外, 跟着名字走。等宽数字让一列时间对得齐。 */
|
|
274
|
-
.mwho .mt { color: var(--faint); font-family: ui-monospace, Menlo, monospace; font-variant-numeric: tabular-nums }
|
|
278
|
+
.mwho .mt, .say-cap .mt { color: var(--faint); font-family: ui-monospace, Menlo, monospace; font-variant-numeric: tabular-nums }
|
|
275
279
|
.mb { min-width: 0; max-width: 100% }
|
|
276
|
-
/* 卡片里那份时刻是详情页要的, 这里已经写在 .mwho 上了 —— 同一条消息不报两次时间。 */
|
|
277
|
-
.mb .tg-time { display: none }
|
|
278
280
|
|
|
279
|
-
/* 入消息 (问句) 是一颗气泡; 出消息 (回复)
|
|
280
|
-
|
|
281
|
+
/* 入消息 (问句) 是一颗气泡; 出消息 (回复) 是虚线的过程框 + 终句的气泡 —— 没有外层
|
|
282
|
+
卡片, 直接排在对话底上。气泡不描实线边: 谁说的只靠底色分 (--bub), 线只留给虚线的过程框。 */
|
|
283
|
+
.mrow { --bub: var(--them); --bub-soft: var(--them-soft); --bub-line: var(--them-line) }
|
|
284
|
+
.mrow.mine { --bub: var(--mine); --bub-soft: var(--mine-soft); --bub-line: var(--mine-line) }
|
|
285
|
+
.mb > .bubble.mq { border-radius: 14px }
|
|
286
|
+
.mb .bubble { border: 0 }
|
|
287
|
+
.say-cap { font-size: 11.5px; color: var(--mute) }
|
|
281
288
|
.mb .mq .mmeta { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; padding: 8px 14px 0; font-size: 11px; color: var(--faint) }
|
|
282
|
-
.mb .mq .md-body { padding: 10px 14px }
|
|
283
289
|
.mb .mq .mmeta + .md-body { padding-top: 4px }
|
|
284
290
|
.mchip { border-radius: 4px; padding: 0 5px; background: #f1f3f6; color: var(--mute) }
|
|
285
291
|
.mchip.priv { color: var(--priv); background: #9a5b1014 }
|
|
286
|
-
.mchip.pub { color: var(--pub); background: #237a5514 }
|
|
287
292
|
.mchip.graph { color: #6639ba; background: #8250df12 }
|
|
288
293
|
.mchip.sys { color: #0a7d6b; background: #0a7d6b12 }
|
|
289
294
|
|
|
290
|
-
/*
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
.mrow
|
|
294
|
-
.mrow
|
|
295
|
-
.mrow
|
|
296
|
-
.mrow
|
|
297
|
-
.mrow
|
|
298
|
-
.mrow
|
|
299
|
-
.mrow
|
|
300
|
-
.mrow
|
|
301
|
-
/* 展开的工具正文 (command / diff / 文件内容)
|
|
302
|
-
|
|
303
|
-
.mrow
|
|
304
|
-
.mrow
|
|
305
|
-
|
|
306
|
-
.mrow.mine .mb .
|
|
307
|
-
.mrow.mine .mb .tool-body { border-left-color: var(--mine-line) }
|
|
295
|
+
/* 气泡与过程框同一种底色: 都是这个人发出来的 —— 自己的是视角色, 别人的是浅灰。
|
|
296
|
+
TURN_CSS 里写死的白卡 / 灰底 (嵌套气泡、代码块、折叠头) 在有色底上会显成一张张
|
|
297
|
+
贴纸 —— 这里把它们收回到底色上, 需要再沉一档的才用 --bub-soft。 */
|
|
298
|
+
.mrow .mb :is(.bubble.mq, .say > .bubble, .steps) { background: var(--bub); border-color: var(--bub-line) }
|
|
299
|
+
.mrow .mb .steps :is(.bubble, .typing) { background: transparent }
|
|
300
|
+
.mrow .mb .bubble.user,
|
|
301
|
+
.mrow .mb .md-body code, .mrow .mb .md-body pre,
|
|
302
|
+
.mrow .mb details:not(.tool-call) > summary,
|
|
303
|
+
.mrow .mb .tool-body section > h2, .mrow .mb .diff-meta,
|
|
304
|
+
.mrow .mb .tool-call > summary:hover { background: var(--bub-soft); border-color: var(--bub-line) }
|
|
305
|
+
.mrow .mb .md-body pre code { background: transparent }
|
|
306
|
+
/* 展开的工具正文 (command / diff / 文件内容) 是裸 section, 吃的是 TURN_CSS 的白底。 */
|
|
307
|
+
.mrow .mb .tool-body section { background: transparent; border-color: var(--bub-line) }
|
|
308
|
+
.mrow .mb .bubble details { border-color: var(--bub-line) }
|
|
309
|
+
.mrow .mb .tool-body { border-left-color: var(--bub-line) }
|
|
310
|
+
/* 气泡跟着行靠右; 嵌在过程框里的子 agent 不翻 —— 那不是我说的。 */
|
|
311
|
+
.mrow.mine .mb > .turn-group > .bubbles > .say { align-self: flex-end; align-items: flex-end }
|
|
308
312
|
/* 工具正文是展开时才取的 (chat.js loadTool) —— 空壳期间说一句在干什么。 */
|
|
309
313
|
.tool-body[data-lazy-turn]:empty::before { content: "加载中…"; color: #8c959f; font-size: 12px }
|
|
310
314
|
.tool-body[data-lazy-turn][data-err]:empty::before { content: "加载失败 · 收起再展开重试"; color: #cf222e }
|
|
@@ -342,38 +346,28 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
342
346
|
.flip { transition: none }
|
|
343
347
|
}
|
|
344
348
|
|
|
345
|
-
/* ──
|
|
346
|
-
/* section
|
|
347
|
-
|
|
349
|
+
/* ── 一轮回复 ───────────────────────────────────────────────────── */
|
|
350
|
+
/* 只是一根竖轴, 不是卡片: section 的默认白底 / 边框在这里收掉。本轮的账 (模型 /
|
|
351
|
+
token / 耗时) 是一串小字: 消息自己的写在名字那一行 (.mstat) 与终句气泡头上
|
|
352
|
+
(.say-cap), 嵌在过程框里的子 agent 没有名字行, 压在它那一段的末尾 (.tg-head)。 */
|
|
348
353
|
.turn-group {
|
|
349
|
-
display: flex; flex-direction: column; gap:
|
|
350
|
-
padding:
|
|
351
|
-
|
|
352
|
-
}
|
|
353
|
-
.
|
|
354
|
-
|
|
355
|
-
padding
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
.tg-dot
|
|
359
|
-
.tg-
|
|
360
|
-
.tg-tok {
|
|
361
|
-
font-size: 11px; color: #57606a; background: #f1f3f6; border-radius: 9px;
|
|
362
|
-
padding: 1px 7px; font-family: ui-monospace, Menlo, monospace;
|
|
363
|
-
}
|
|
364
|
-
.turn-group .bubbles { margin-top: 0 }
|
|
365
|
-
/* 上下文断点 (/clear、/new、会话轮换): 断点条来自 TURN_CSS, 这里再给整张卡片
|
|
366
|
-
多留一口气 + 描边, 让"这一轮读不到上一轮"在滚动中一眼可辨。 */
|
|
367
|
-
.turn-group.cut { margin-top: 12px }
|
|
368
|
-
.turn-group.cut-clear, .turn-group.cut-new {
|
|
369
|
-
border-color: #d4a72c66; box-shadow: 0 1px 2px #1f23280a, 0 0 0 3px #d4a72c14;
|
|
370
|
-
}
|
|
371
|
-
/* graph 派的一轮: 卡片本身也着色, 滚动时不必读归因条就知道这不是人发的。 */
|
|
372
|
-
.turn-group.graph { border-color: #8250df44 }
|
|
354
|
+
display: flex; flex-direction: column; gap: 8px;
|
|
355
|
+
padding: 0; border: 0; border-radius: 0; background: none;
|
|
356
|
+
}
|
|
357
|
+
.tg-head { order: 9; display: flex; align-items: center; gap: 4px 10px; flex-wrap: wrap; padding: 0 2px }
|
|
358
|
+
.mstat { display: inline-flex; align-items: center; gap: 4px 10px; flex-wrap: wrap }
|
|
359
|
+
:is(.tg-head, .mstat, .say-cap) :is(.chip.model, .chip.tier), .tg-tok {
|
|
360
|
+
padding: 0; border: 0; border-radius: 0; background: none; font-weight: 400;
|
|
361
|
+
font-size: 10.5px; color: var(--faint); font-family: ui-monospace, Menlo, monospace;
|
|
362
|
+
}
|
|
363
|
+
.tg-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; display: none }
|
|
364
|
+
.tg-dot.live { display: block; background: #1a7f37; animation: pulse 1.4s infinite }
|
|
373
365
|
|
|
374
366
|
/* ── 🏓 keepalive 折叠 ──────────────────────────────────────────────
|
|
375
367
|
保温 ping 不是对话, 但它是真花销 —— 所以留在时间轴上, 只是收成一行虚线。 */
|
|
376
|
-
|
|
368
|
+
/* summary 的灰底 / 底线是 SHARED_CSS 里通用 details 的 —— 圆角得自己裁, 底线只在展开时才是分割线。 */
|
|
369
|
+
.ping-fold { border: 1px dashed #d8dee4; border-radius: 10px; background: #fbfcfd; overflow: hidden }
|
|
370
|
+
.ping-fold:not([open]) > .ping-sum { border-bottom: 0 }
|
|
377
371
|
.ping-fold > .ping-sum {
|
|
378
372
|
display: flex; align-items: center; gap: 8px; padding: 6px 12px;
|
|
379
373
|
cursor: pointer; list-style: none; font-size: 11.5px; color: #8c959f;
|
|
@@ -392,8 +386,6 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
392
386
|
.ping-fold .ping-body {
|
|
393
387
|
display: flex; flex-direction: column; gap: 10px; padding: 2px 10px 10px;
|
|
394
388
|
}
|
|
395
|
-
/* 展开后的 ping 轮次压一档: 它们是背景噪声, 不该和真对话卡片一样醒目。 */
|
|
396
|
-
.ping-fold .turn-group { box-shadow: none }
|
|
397
389
|
.ping-fold .mcol { max-width: 100% }
|
|
398
390
|
.ping-fold .flip { display: none }
|
|
399
391
|
|
|
@@ -408,7 +400,6 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
408
400
|
.thread { padding: 12px }
|
|
409
401
|
.mcol { max-width: calc(86% + var(--av)) }
|
|
410
402
|
.flip { min-width: 16px; padding: 0 4px; font-size: 0 }
|
|
411
|
-
.turn-group { padding: 12px }
|
|
412
403
|
.thread { padding-bottom: calc(12px + env(safe-area-inset-bottom)) }
|
|
413
404
|
.usage { padding: 8px 12px; gap: 6px 14px }
|
|
414
405
|
.usage .u-kvs, .usage .leg { flex-wrap: wrap }
|
|
@@ -729,5 +720,5 @@ span.av.go:hover { background: #2f55c924; box-shadow: 0 0 0 3px #2f55c924 }
|
|
|
729
720
|
会话标题条与页脚总账只属于对话视图。 */
|
|
730
721
|
.pane { flex: 1; min-height: 0; display: flex; flex-direction: column; background: #fafbfc }
|
|
731
722
|
|
|
732
|
-
/*
|
|
723
|
+
/* 过程框里的工具行是 nowrap 的 —— 不裁一刀会把整列撑出横向滚动。 */
|
|
733
724
|
.mb > .turn-group { overflow: hidden }
|
package/web/chat.js
CHANGED
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
return (x.getMonth() + 1) + '-' + pad(x.getDate()) + ' ' + pad(x.getHours()) + ':' +
|
|
81
81
|
pad(x.getMinutes()) + ':' + pad(x.getSeconds());
|
|
82
82
|
};
|
|
83
|
-
/** 一条消息的时刻 —— 只写在气泡外面这一处,
|
|
83
|
+
/** 一条消息的时刻 —— 只写在气泡外面这一处, 气泡里不再重复。 */
|
|
84
84
|
var stamp = function (ts) {
|
|
85
85
|
return '<time class="mt" title="' + esc(fmtFull(ts)) + '">' + esc(fmtHM(ts)) + '</time>';
|
|
86
86
|
};
|
|
@@ -192,6 +192,12 @@
|
|
|
192
192
|
for (var i = 0; i < el.children.length; i++) if (el.children[i].classList.contains(cls)) return el.children[i];
|
|
193
193
|
return null;
|
|
194
194
|
};
|
|
195
|
+
// 一轮回复 (.tg-head) 与过程框 (.steps-head) 是同一副骨架: 头 + .bubbles。
|
|
196
|
+
var headOf = function (el) { return childBy(el, 'tg-head') || childBy(el, 'steps-head'); };
|
|
197
|
+
var swapHead = function (ex, nc) {
|
|
198
|
+
var eh = headOf(ex), nh = headOf(nc);
|
|
199
|
+
if (eh && nh) eh.innerHTML = nh.innerHTML;
|
|
200
|
+
};
|
|
195
201
|
var reconcile = function (cur, next) {
|
|
196
202
|
var open = snapOpen(cur), existing = {};
|
|
197
203
|
Array.prototype.forEach.call(cur.children, function (c) {
|
|
@@ -203,8 +209,7 @@
|
|
|
203
209
|
if (ex.getAttribute('data-sig') === nc.getAttribute('data-sig')) return ex;
|
|
204
210
|
var eb = childBy(ex, 'bubbles'), nb = childBy(nc, 'bubbles');
|
|
205
211
|
if (eb && nb) {
|
|
206
|
-
|
|
207
|
-
if (eh && nh) eh.innerHTML = nh.innerHTML;
|
|
212
|
+
swapHead(ex, nc);
|
|
208
213
|
reconcile(eb, nb);
|
|
209
214
|
ex.setAttribute('data-sig', nc.getAttribute('data-sig') || '');
|
|
210
215
|
return ex;
|
|
@@ -249,6 +254,14 @@
|
|
|
249
254
|
if (d.open && d.classList && d.classList.contains('tool-call')) loadTool(d);
|
|
250
255
|
}, true);
|
|
251
256
|
|
|
257
|
+
// 过程框的收起: 框头与框内空白是开关; 落在某一行工具上的点击归那一行自己。
|
|
258
|
+
// 收起态只是节点上的一个 class —— reconcile 认键留节点, 往框里添调用时它跟着留下。
|
|
259
|
+
inner.addEventListener('click', function (e) {
|
|
260
|
+
var s = e.target.closest && e.target.closest('.steps');
|
|
261
|
+
if (!s) return;
|
|
262
|
+
if (e.target.closest('.steps-head') || e.target === s || e.target === childBy(s, 'bubbles')) s.classList.toggle('folded');
|
|
263
|
+
});
|
|
264
|
+
|
|
252
265
|
// ── 左栏: 当前 role 的名片 + 会话列表 ──
|
|
253
266
|
var convOf = function (key) { return R.convs.filter(function (c) { return c.key === key; })[0]; };
|
|
254
267
|
|
|
@@ -283,8 +296,8 @@
|
|
|
283
296
|
ms.map(function (m) { return '<i>' + esc(m.label || roleLabel(m.role)) + '</i>'; }).join('') + '</span>';
|
|
284
297
|
};
|
|
285
298
|
|
|
286
|
-
var line = function (title, ts, pv) {
|
|
287
|
-
return '<span class="b"><span class="l1"><span class="t">' + title + '</span>' +
|
|
299
|
+
var line = function (title, ts, pv, lamp) {
|
|
300
|
+
return '<span class="b"><span class="l1"><span class="t">' + title + '</span>' + (lamp || '') +
|
|
288
301
|
'<span class="ts">' + esc(fmtAgo(ts)) + '</span></span>' +
|
|
289
302
|
'<span class="pv">' + esc(pv) + '</span></span>';
|
|
290
303
|
};
|
|
@@ -299,8 +312,8 @@
|
|
|
299
312
|
var sel = s.role === WITH;
|
|
300
313
|
return '<button class="si' + (sel ? ' on' : '') + '" data-conv="' + esc(c.key) + '" data-with="' + esc(s.role) + '" ' +
|
|
301
314
|
'title="' + esc('我与 ' + nameOf(s.role) + ' 在这里的 ' + s.count + ' 条往来') + '">' +
|
|
302
|
-
goSpan('av', s.role, esc(s.label)
|
|
303
|
-
line(nm(s.role, s.name, true), s.lastTs, s.preview) + '</button>';
|
|
315
|
+
goSpan('av', s.role, esc(s.label)) +
|
|
316
|
+
line(nm(s.role, s.name, true), s.lastTs, s.preview, lampOf(s.status)) + '</button>';
|
|
304
317
|
}).join('') + '</div>'
|
|
305
318
|
: '';
|
|
306
319
|
var sel = on && !WITH;
|
|
@@ -485,14 +498,6 @@
|
|
|
485
498
|
putUsage($('#ch-usage'), !wiz && WITH && VIEW === 'msgs' ? R.winStats : null);
|
|
486
499
|
};
|
|
487
500
|
|
|
488
|
-
// 只有真群 (`chat:<roomid>`) 才有跳转: `user:` 是人与 bot 的单聊, userid 指向的是人自己而不是这段会话。
|
|
489
|
-
var JUMP = '<svg viewBox="0 0 16 16" width="13" height="13" aria-hidden="true"><path d="M9.5 2.5h4v4M13.5 2.5 7.5 8.5M11.5 9.5v3a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>';
|
|
490
|
-
var openInWecom = function (base) {
|
|
491
|
-
return base.indexOf('chat:') === 0
|
|
492
|
-
? '<a class="jump" href="wxwork://openconversation?roomid=' + encodeURIComponent(base.slice(5)) + '" title="在企业微信中打开这个群聊">' + JUMP + '</a>'
|
|
493
|
-
: '';
|
|
494
|
-
};
|
|
495
|
-
|
|
496
501
|
// ── 右栏头: 这个群聊 / 私聊是什么 (关系 / 日程视图时是视图名) ──
|
|
497
502
|
var renderHead = function () {
|
|
498
503
|
var who = $('#ch-who'), acts = $('#ch-acts');
|
|
@@ -505,16 +510,7 @@
|
|
|
505
510
|
}
|
|
506
511
|
var c = convOf(CONV);
|
|
507
512
|
if (!c) { who.innerHTML = ''; acts.innerHTML = ''; return; }
|
|
508
|
-
|
|
509
|
-
who.innerHTML = avatarOf(c) + '<span class="l"><span class="t">' + nm(c.peer, c.name, true) + '</span>' +
|
|
510
|
-
'<span class="sub">私聊 · ' + c.count + ' 条</span></span>';
|
|
511
|
-
} else {
|
|
512
|
-
var ms = membersOf(c);
|
|
513
|
-
who.innerHTML = avatarOf(c) + '<span class="l"><span class="tr"><span class="t">' + esc(c.name) + '</span>' + openInWecom(c.base) + '</span>' +
|
|
514
|
-
'<span class="sub">群聊 · ' + ms.length + ' 位成员 · ' +
|
|
515
|
-
ms.slice(0, 8).map(function (m) { return esc(m.label || roleLabel(m.role)); }).join('') +
|
|
516
|
-
(ms.length > 8 ? '…' : '') + '</span></span>';
|
|
517
|
-
}
|
|
513
|
+
who.innerHTML = '<span class="t">' + (c.kind === 'wizard' ? nm(c.peer, c.name, true) : esc(c.name)) + '</span>';
|
|
518
514
|
acts.innerHTML = WITH
|
|
519
515
|
? '<span class="with">只看我与 ' + nm(WITH, '', true) + '</span><button class="vb" id="ch-all">看全部</button>'
|
|
520
516
|
: '';
|
|
@@ -541,9 +537,11 @@
|
|
|
541
537
|
// 群里我不是收信方的那条 (X → Y), 头上写清是说给谁的。
|
|
542
538
|
var to = !mine && m.to !== ROLE && group ? '<span class="to">→ ' + nm(m.to, m.toName, true) + '</span>' : '';
|
|
543
539
|
var priv = !m.channel && group ? '<span class="ch priv">私聊</span>' : '';
|
|
540
|
+
// 本轮的账 (呼吸点 + 模型 / token / 耗时) 跟在时刻后面 —— 片段是服务端渲染好的。
|
|
541
|
+
var stat = m.meta ? '<span class="mstat">' + m.meta + '</span>' : '';
|
|
544
542
|
var who = mine
|
|
545
|
-
? '<span class="to">' + (m.to && m.to !== 'human:' ? '→ ' + nm(m.to, m.toName, true) : '') + '</span>' + stamp(m.ts)
|
|
546
|
-
: nm(m.from, m.fromName, true) + to + priv + stamp(m.ts);
|
|
543
|
+
? '<span class="to">' + (m.to && m.to !== 'human:' ? '→ ' + nm(m.to, m.toName, true) : '') + '</span>' + stamp(m.ts) + stat
|
|
544
|
+
: nm(m.from, m.fromName, true) + to + priv + stamp(m.ts) + stat;
|
|
547
545
|
var sw = canSwitch(other);
|
|
548
546
|
var flip = '<button class="flip" data-r="' + esc(other) + '"' + (sw ? '' : ' disabled tabindex="-1"') +
|
|
549
547
|
' aria-label="' + esc(sw ? '切到 ' + nameOf(other) + ' 的视角' : '') + '">' +
|
|
@@ -654,8 +652,8 @@
|
|
|
654
652
|
var ec = eb && eb.firstElementChild, nc = nb && nb.firstElementChild;
|
|
655
653
|
var ebb = ec && childBy(ec, 'bubbles'), nbb = nc && childBy(nc, 'bubbles');
|
|
656
654
|
if (ebb && nbb) {
|
|
657
|
-
var
|
|
658
|
-
if (
|
|
655
|
+
var es = cur.querySelector('.mwho .mstat'), ns = next.querySelector('.mwho .mstat');
|
|
656
|
+
if (es && ns) es.innerHTML = ns.innerHTML;
|
|
659
657
|
reconcile(ebb, nbb);
|
|
660
658
|
['data-sig', 'data-stale-at'].forEach(function (a) { cur.setAttribute(a, next.getAttribute(a)); });
|
|
661
659
|
} else {
|