wezard 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +133 -72
- package/cli/wezard.sh +6 -3
- package/dist/daemon/chat-name.js +6 -2
- package/dist/daemon/chat-name.js.map +1 -1
- package/dist/daemon/detail.js +53 -9
- package/dist/daemon/detail.js.map +1 -1
- package/dist/daemon/inbound.js +1 -1
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +117 -10
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +74 -17
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/tasks.js +1 -1
- package/dist/daemon/tasks.js.map +1 -1
- package/dist/daemon/wizard.js +2 -0
- package/dist/daemon/wizard.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/chat-http.js +25 -5
- package/dist/shared/chat-http.js.map +1 -1
- package/dist/shared/chat-render.js +16 -1
- package/dist/shared/chat-render.js.map +1 -1
- package/dist/shared/detail-render.js +2 -1
- package/dist/shared/detail-render.js.map +1 -1
- package/dist/shared/detail-store.js +12 -5
- package/dist/shared/detail-store.js.map +1 -1
- package/dist/shared/std.js +17 -0
- package/dist/shared/std.js.map +1 -1
- package/dist/shared/world.js +191 -0
- package/dist/shared/world.js.map +1 -0
- package/dist/svr/index.js +1 -1
- package/dist/svr/index.js.map +1 -1
- package/package.json +1 -1
- package/web/chat.css +267 -0
- package/web/chat.js +454 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detail-store.js","sourceRoot":"","sources":["../../shared/detail-store.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"detail-store.js","sourceRoot":"","sources":["../../shared/detail-store.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/std.js
CHANGED
|
@@ -6,4 +6,21 @@ export const truncate = (s, max) => (s.length <= max ? s : `${s.slice(0, max)}
|
|
|
6
6
|
export const truncateWithCount = (s, max) => s.length <= max ? s : `${s.slice(0, max)}…(+${s.length - max})`;
|
|
7
7
|
/** Flatten to a single line first — for text going into a one-line bubble. */
|
|
8
8
|
export const clipLine = (s, max) => truncate(s.replace(/\s+/g, " ").trim(), max);
|
|
9
|
+
/** `Promise.all(xs.map(f))` 但同时在飞的不超过 `limit` 个。
|
|
10
|
+
*
|
|
11
|
+
* 存在的理由是一次真实事故: 一个 `Promise.all` 铺在几百个 target 上, 每个各自
|
|
12
|
+
* spawn 两次 tmux —— 七百个并发子进程瞬间打穿 fd 上限, tmux server 被拖垮,
|
|
13
|
+
* 守护进程随后崩进重启循环 (同 CLAUDE.md 记的 launchd fd 那一条)。凡是 f 会
|
|
14
|
+
* spawn 进程或开文件的, 就不该用裸 Promise.all。
|
|
15
|
+
* 结果顺序与输入一致。 */
|
|
16
|
+
export const mapLimit = async (xs, limit, f) => {
|
|
17
|
+
const out = new Array(xs.length);
|
|
18
|
+
let next = 0;
|
|
19
|
+
const worker = async () => {
|
|
20
|
+
for (let i = next++; i < xs.length; i = next++)
|
|
21
|
+
out[i] = await f(xs[i], i);
|
|
22
|
+
};
|
|
23
|
+
await Promise.all(Array.from({ length: Math.max(1, Math.min(limit, xs.length)) }, worker));
|
|
24
|
+
return out;
|
|
25
|
+
};
|
|
9
26
|
//# sourceMappingURL=std.js.map
|
package/dist/shared/std.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"std.js","sourceRoot":"","sources":["../../shared/std.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1F,4DAA4D;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1G,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAClE,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC;AAElE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"std.js","sourceRoot":"","sources":["../../shared/std.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1F,4DAA4D;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1G,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAClE,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC;AAElE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AAEzG;;;;;;iBAMiB;AACjB,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAgB,EAChB,KAAa,EACb,CAAkC,EACpB,EAAE;IAChB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3F,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
// 世界视图 —— 把「谁存在、谁是谁生的、谁在驱动谁、谁被排了什么」折成一张图。
|
|
2
|
+
//
|
|
3
|
+
// chat-view 回答的是**一个聊天内部**的问题 (这个 chat 有哪些 `#tag`、某一路的
|
|
4
|
+
// 线程长什么样)。但 wizard 早就不止活在一个聊天里了: 分身可以生在别的群、
|
|
5
|
+
// send_peer 跨群寻址、一个工单的成员散在几个聊天、定时任务指向任意一个 target。
|
|
6
|
+
// 那些关系在 chat-view 里一条都画不出来 —— 它的第一步就是 `baseOfKey === base`。
|
|
7
|
+
//
|
|
8
|
+
// 本模块因此换一个折叠轴: 不按聊天切, 按**关系**切。
|
|
9
|
+
//
|
|
10
|
+
// 节点 = wizard (会话 + 身份), 按所属聊天聚簇
|
|
11
|
+
// 边 = clone (家谱) / peer (派活) / graph (流水线一步); 定时是节点上的计数
|
|
12
|
+
//
|
|
13
|
+
// 两类数据源, 边界明确:
|
|
14
|
+
// • 观测到的 (turn 记录): peer / graph 边与定时计数 —— 真发生过的往来。24h TTL,
|
|
15
|
+
// 标准 detail 存储, 所以独立 svr 收到 POST 之后画出来的图与本机一模一样。
|
|
16
|
+
// • 登记的 (wizard / job / schedule 注册表): 身份、家谱、工单、日程 —— 它们是
|
|
17
|
+
// 「安排」, 不随 TTL 消失, 但只有 daemon 有。svr 拿不到就退化成只画观测边。
|
|
18
|
+
//
|
|
19
|
+
// 纯函数, 无 IO: 注册表侧的东西由调用方以 WorldFacts 喂进来。
|
|
20
|
+
import { baseOfKey, labelFor, tagOfKey } from "./session-label.js";
|
|
21
|
+
import { isTurn, staleAt, isGhostTurn } from "./chat-view.js";
|
|
22
|
+
export const EMPTY_FACTS = { wizards: [], jobs: [], schedules: [], chatNames: {} };
|
|
23
|
+
// ── 相关性 ────────────────────────────────────────────────────────────
|
|
24
|
+
// 一台跑了几个月的机器上, "所有绑过的会话"是几百个 —— 它们绝大多数是几周前
|
|
25
|
+
// 干完一件事就再没动过的 `#tag`。把它们全画出来不是"完整", 是把图变成一堵墙:
|
|
26
|
+
// 真正在协作的那十几个 wizard 淹没在里面, 而那恰恰是这张图存在的理由。
|
|
27
|
+
//
|
|
28
|
+
// 所以画的是**当下的协作网络**, 判据四条, 满足其一即入选:
|
|
29
|
+
// 1. 在当前聊天里 —— 这一页的主题就是它, 不筛
|
|
30
|
+
// 2. 是某条边的端点 —— 关系是图的主语, 有关系就必须在场 (哪怕它已经凉了)
|
|
31
|
+
// 3. 还活着 / 正在跑 —— 此刻能叫得动的人
|
|
32
|
+
// 4. 最近动过 —— 刚停下的那些, 人还记得
|
|
33
|
+
// 其余的按聊天计数收进 `hidden`, 不是删掉, 是折起来。
|
|
34
|
+
const RECENT_MS = 6 * 3600_000;
|
|
35
|
+
/** 每个聊天最多画这么多 —— 相关性之上再加一道闸: 当前聊天本身就可能有几十个
|
|
36
|
+
* `#tag`, 全列出来同样读不动。按最近活动截断, 余下的进 `hidden`。 */
|
|
37
|
+
const PER_CHAT_MAX = 14;
|
|
38
|
+
const SELF_CHAT_MAX = 24;
|
|
39
|
+
// ── 折叠 ──────────────────────────────────────────────────────────────
|
|
40
|
+
const liveTurns = (records, now) => records.filter(isTurn).filter((r) => !isGhostTurn(r, now) && !r.agent && !!r.target);
|
|
41
|
+
const stripMd = (s) => s.replace(/[`*_~|#>]/g, "").replace(/\s+/g, " ").trim();
|
|
42
|
+
const previewOf = (r) => {
|
|
43
|
+
const texts = r.items.filter((it) => it.t === "text");
|
|
44
|
+
return stripMd(texts[texts.length - 1]?.body ?? r.userQuery ?? "").slice(0, 100);
|
|
45
|
+
};
|
|
46
|
+
/** 一条边的身份 —— 同一对端点同一种类只留一条, count 累加。 */
|
|
47
|
+
const edgeKey = (kind, from, to) => `${kind}\u0000${from}\u0000${to}`;
|
|
48
|
+
const bumpEdge = (m, kind, from, to, ts, tag) => {
|
|
49
|
+
if (!from || !to || from === to)
|
|
50
|
+
return m;
|
|
51
|
+
const k = edgeKey(kind, from, to);
|
|
52
|
+
const cur = m.get(k);
|
|
53
|
+
const merge = (list, v) => v ? [...new Set([...(list ?? []), v])] : list;
|
|
54
|
+
return m.set(k, {
|
|
55
|
+
kind,
|
|
56
|
+
from,
|
|
57
|
+
to,
|
|
58
|
+
count: (cur?.count ?? 0) + 1,
|
|
59
|
+
lastTs: Math.max(cur?.lastTs ?? 0, ts),
|
|
60
|
+
cross: baseOfKey(from) !== baseOfKey(to),
|
|
61
|
+
jobs: merge(cur?.jobs, tag?.jobs),
|
|
62
|
+
runs: merge(cur?.runs, tag?.runs),
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
/** 家谱序: 先根后分身, depth = 到根的距离。环路 (记录可手改) 在 seen 处截断。 */
|
|
66
|
+
const lineageOrder = (targets, parentOf) => {
|
|
67
|
+
const inSet = new Set(targets);
|
|
68
|
+
const kids = targets.reduce((m, t) => {
|
|
69
|
+
const p = parentOf(t);
|
|
70
|
+
return p && inSet.has(p) ? m.set(p, [...(m.get(p) ?? []), t]) : m;
|
|
71
|
+
}, new Map());
|
|
72
|
+
const roots = targets.filter((t) => { const p = parentOf(t); return !p || !inSet.has(p); });
|
|
73
|
+
const walk = (t, depth, seen) => seen.has(t)
|
|
74
|
+
? []
|
|
75
|
+
: [{ target: t, depth }, ...(kids.get(t) ?? []).flatMap((k) => walk(k, depth + 1, new Set([...seen, t])))];
|
|
76
|
+
const ordered = roots.flatMap((r) => walk(r, 0, new Set()));
|
|
77
|
+
// 环里的节点一个根都走不到 —— 补在后面, 宁可扁平也不能让它整段消失。
|
|
78
|
+
const seen = new Set(ordered.map((o) => o.target));
|
|
79
|
+
return [...ordered, ...targets.filter((t) => !seen.has(t)).map((target) => ({ target, depth: 0 }))];
|
|
80
|
+
};
|
|
81
|
+
export const buildWorld = (records, facts, scope, now) => {
|
|
82
|
+
const turns = liveTurns(records, now);
|
|
83
|
+
const byTarget = turns.reduce((m, r) => m.set(r.target, [...(m.get(r.target) ?? []), r]), new Map());
|
|
84
|
+
const factOf = new Map(facts.wizards.map((w) => [w.target, w]));
|
|
85
|
+
// 节点集 = 登记过的 ∪ 跑过轮次的。两边都要: 一个刚 spawn 还没开口的分身只在
|
|
86
|
+
// 注册表里, 一条 24h 内跑过但注册表已被清掉的会话只在 turn 记录里。
|
|
87
|
+
const targets = [...new Set([...factOf.keys(), ...byTarget.keys()])];
|
|
88
|
+
const nodes = targets.map((target) => {
|
|
89
|
+
const f = factOf.get(target);
|
|
90
|
+
const rs = (byTarget.get(target) ?? []).sort((a, b) => a.createdAt - b.createdAt);
|
|
91
|
+
const last = rs[rs.length - 1];
|
|
92
|
+
const tag = tagOfKey(target);
|
|
93
|
+
const base = baseOfKey(target);
|
|
94
|
+
const chat = f?.chat ?? facts.chatNames[base] ?? "";
|
|
95
|
+
const until = rs.reduce((mx, r) => Math.max(mx, staleAt(r)), 0);
|
|
96
|
+
return {
|
|
97
|
+
target,
|
|
98
|
+
base,
|
|
99
|
+
tag,
|
|
100
|
+
chat,
|
|
101
|
+
name: (f?.name ?? "").trim() || (chat ? (tag ? `${chat}#${tag}` : chat) : tag || target),
|
|
102
|
+
label: tag ? labelFor(tag) : "🧙",
|
|
103
|
+
description: f?.description ?? "",
|
|
104
|
+
cwd: f?.cwd || [...rs].reverse().find((r) => r.cwd)?.cwd || "",
|
|
105
|
+
model: f?.model || [...rs].reverse().find((r) => r.model)?.model || "",
|
|
106
|
+
cli: f?.cli || last?.cli || "",
|
|
107
|
+
busy: f?.busy ?? false,
|
|
108
|
+
alive: f?.alive ?? false,
|
|
109
|
+
known: !!f,
|
|
110
|
+
self: target === scope.self,
|
|
111
|
+
local: base === scope.base,
|
|
112
|
+
parent: f?.parent,
|
|
113
|
+
inherited: !!(f?.clonedFrom ?? ""),
|
|
114
|
+
bornAt: f?.bornAt,
|
|
115
|
+
lastTs: Math.max(f?.lastActivity ?? 0, rs.reduce((mx, r) => Math.max(mx, r.updatedAt), 0)),
|
|
116
|
+
turns: rs.length,
|
|
117
|
+
preview: (last ? previewOf(last) : "") || f?.summary || "",
|
|
118
|
+
runningUntil: until > now ? until : 0,
|
|
119
|
+
taskTurns: rs.filter((r) => r.from?.kind === "task").length,
|
|
120
|
+
peerTurns: rs.filter((r) => r.from?.kind === "peer").length,
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
const known = new Set(nodes.map((n) => n.target));
|
|
124
|
+
// 一条边的两端都必须是节点 —— 派活方可能已经被回收, 那条边就无处落脚, 画一个
|
|
125
|
+
// 悬空端点只会让人以为漏了谁。
|
|
126
|
+
const link = (m, kind, from, to, ts, tag) => known.has(from) && known.has(to) ? bumpEdge(m, kind, from, to, ts, tag) : m;
|
|
127
|
+
// 观测边 —— 真的发生过的往来, 从 turn 记录里读。
|
|
128
|
+
const observed = turns.reduce((m, r) => {
|
|
129
|
+
const to = r.target;
|
|
130
|
+
const f = r.from;
|
|
131
|
+
// 定时任务没有"派活的一方" —— 它是节点上的计数 (taskTurns), 不是一条边。
|
|
132
|
+
const m1 = f?.kind === "peer" && f.from ? link(m, "peer", f.from, to, r.createdAt, { jobs: f.job }) : m;
|
|
133
|
+
// graph: 上一步的 tag 喂给这一步 —— 同聊天内解析成 target。
|
|
134
|
+
const prev = r.origin?.fromTag;
|
|
135
|
+
return prev !== undefined
|
|
136
|
+
? link(m1, "graph", prev ? `${baseOfKey(to)}#${prev}` : baseOfKey(to), to, r.createdAt, { runs: r.origin.runId })
|
|
137
|
+
: m1;
|
|
138
|
+
}, new Map());
|
|
139
|
+
// 登记边 —— 家谱。观测不到 (分身可能一句话没说), 但它是最稳定的一种关系。
|
|
140
|
+
const withClones = facts.wizards.reduce((m, w) => (w.parent ? link(m, "clone", w.parent, w.target, w.bornAt ?? 0) : m), observed);
|
|
141
|
+
const edges = [...withClones.values()].sort((a, b) => b.lastTs - a.lastTs);
|
|
142
|
+
// 有关系的一律留下 —— 边的端点被筛掉, 那条边就没地方落脚了。
|
|
143
|
+
const linked = new Set(edges.flatMap((e) => [e.from, e.to]));
|
|
144
|
+
const pinned = new Set([
|
|
145
|
+
...linked,
|
|
146
|
+
...facts.jobs.filter((j) => j.status === "open").flatMap((j) => [j.owner, ...j.members.map((mm) => mm.target)]),
|
|
147
|
+
...facts.schedules.map((x) => x.target),
|
|
148
|
+
]);
|
|
149
|
+
const relevant = (n) => n.local || n.self || pinned.has(n.target) || n.busy || n.alive || now - n.lastTs < RECENT_MS;
|
|
150
|
+
const parentOf = (t) => factOf.get(t)?.parent;
|
|
151
|
+
const byTs = (a, b) => b.lastTs - a.lastTs;
|
|
152
|
+
const bases = [...new Set(nodes.map((n) => n.base))];
|
|
153
|
+
const chats = bases
|
|
154
|
+
.map((base) => {
|
|
155
|
+
const mine = nodes.filter((n) => n.base === base);
|
|
156
|
+
const self = base === scope.base;
|
|
157
|
+
const kept = mine.filter(relevant).sort(byTs).slice(0, self ? SELF_CHAT_MAX : PER_CHAT_MAX);
|
|
158
|
+
return {
|
|
159
|
+
base,
|
|
160
|
+
name: facts.chatNames[base] ?? mine[0]?.chat ?? "",
|
|
161
|
+
self,
|
|
162
|
+
members: lineageOrder(kept.map((n) => n.target), parentOf),
|
|
163
|
+
hidden: mine.length - kept.length,
|
|
164
|
+
};
|
|
165
|
+
})
|
|
166
|
+
// 一个成员都留不下的聊天整张卡片都不画 —— 一张只写着「另有 12 个已停」的空卡
|
|
167
|
+
// 除了占位什么也没说。
|
|
168
|
+
.filter((c) => c.members.length > 0)
|
|
169
|
+
// 自己的聊天永远第一; 其余按最近活动。
|
|
170
|
+
.sort((a, b) => {
|
|
171
|
+
if (a.self !== b.self)
|
|
172
|
+
return a.self ? -1 : 1;
|
|
173
|
+
const ts = (c) => Math.max(0, ...c.members.map((mm) => nodes.find((n) => n.target === mm.target)?.lastTs ?? 0));
|
|
174
|
+
return ts(b) - ts(a);
|
|
175
|
+
});
|
|
176
|
+
// 节点表跟着卡片走 —— 画不出来的节点下发了也只是流量 (这条路由是被轮询的)。
|
|
177
|
+
const shown = new Set(chats.flatMap((c) => c.members.map((mm) => mm.target)));
|
|
178
|
+
return {
|
|
179
|
+
at: now,
|
|
180
|
+
base: scope.base,
|
|
181
|
+
self: scope.self,
|
|
182
|
+
chats,
|
|
183
|
+
nodes: nodes.filter((n) => shown.has(n.target)).sort(byTs),
|
|
184
|
+
// 两端都还在图上的边才画得出来。
|
|
185
|
+
edges: edges.filter((e) => shown.has(e.from) && shown.has(e.to)),
|
|
186
|
+
jobs: [...facts.jobs].sort((a, b) => (b.closedAt ?? b.openedAt) - (a.closedAt ?? a.openedAt)),
|
|
187
|
+
schedules: [...facts.schedules].sort((a, b) => a.nextAt - b.nextAt),
|
|
188
|
+
degraded: facts.wizards.length === 0,
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=world.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../shared/world.ts"],"names":[],"mappings":"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"}
|
package/dist/svr/index.js
CHANGED
|
@@ -114,7 +114,7 @@ const isDetailRecord = (v) => {
|
|
|
114
114
|
const r = v;
|
|
115
115
|
if (typeof r.id !== "string" || !r.id)
|
|
116
116
|
return false;
|
|
117
|
-
if (r.kind !== "tool" && r.kind !== "approval" && r.kind !== "turn" && r.kind !== "mark")
|
|
117
|
+
if (r.kind !== "tool" && r.kind !== "approval" && r.kind !== "turn" && r.kind !== "mark" && r.kind !== "chat")
|
|
118
118
|
return false;
|
|
119
119
|
if (typeof r.createdAt !== "number")
|
|
120
120
|
return false;
|
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/package.json
CHANGED
package/web/chat.css
CHANGED
|
@@ -213,3 +213,270 @@ body { overflow: hidden; overscroll-behavior: none }
|
|
|
213
213
|
.statusbar { gap: 10px; padding: 7px 12px calc(7px + env(safe-area-inset-bottom)) }
|
|
214
214
|
.sb-io, .statusbar .model { display: none }
|
|
215
215
|
}
|
|
216
|
+
|
|
217
|
+
/* UA 的 [hidden] 规则和 `.gbar{display:flex}` 这类类选择器同权重, 而作者样式
|
|
218
|
+
胜出 —— 于是 el.hidden=true 的元素照旧显示 (空的 gbar 会剩一条带边框的窄带)。
|
|
219
|
+
一条 !important 把 hidden 的语义钉死, 三块视图容器的显隐都靠它。 */
|
|
220
|
+
[hidden] { display: none !important }
|
|
221
|
+
|
|
222
|
+
/* ══ 视图切换 ═══════════════════════════════════════════════════════ */
|
|
223
|
+
/* 三栏并列在顶栏右端。会话 key (.sub) 在窄屏下先让位 —— 它是调试信息, 而切换
|
|
224
|
+
视图是主操作。 */
|
|
225
|
+
.topbar .views { margin-left: auto; display: flex; gap: 2px; flex: none }
|
|
226
|
+
.topbar .vb {
|
|
227
|
+
font: inherit; font-size: 12px; color: #57606a; background: transparent;
|
|
228
|
+
border: 1px solid transparent; border-radius: 7px; padding: 3px 11px; cursor: pointer;
|
|
229
|
+
}
|
|
230
|
+
.topbar .vb:hover { background: #f6f8fa; color: #1f2328 }
|
|
231
|
+
.topbar .vb.on { background: #0969da; border-color: #0969da; color: #fff; font-weight: 600 }
|
|
232
|
+
.topbar .sub { min-width: 0 }
|
|
233
|
+
|
|
234
|
+
/* 关系/日程栏不需要那条 288px 的会话列表占着半张桌子 —— 图要横向铺开。 */
|
|
235
|
+
.pane { flex: 1; min-height: 0; display: flex; flex-direction: column; background: #fafbfc }
|
|
236
|
+
.app.wide .side { width: 216px }
|
|
237
|
+
|
|
238
|
+
/* ── 侧栏: wizard 身份 ─────────────────────────────────────────────── */
|
|
239
|
+
/* 名字之外还要有职责与出身, 否则一列 `#tag` 说不出谁是谁。两行都单行省略,
|
|
240
|
+
会话行的高度必须可预期 —— 侧栏是要能一眼扫完的。 */
|
|
241
|
+
.tag-job {
|
|
242
|
+
font-size: 11.5px; color: #0550ae; margin-top: 2px;
|
|
243
|
+
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
244
|
+
}
|
|
245
|
+
.tag-kin { margin-top: 2px }
|
|
246
|
+
.tag-kin .kin {
|
|
247
|
+
font-size: 10.5px; color: #6639ba; background: #8250df12; border-radius: 4px;
|
|
248
|
+
padding: 0 5px; font-family: ui-monospace, Menlo, monospace;
|
|
249
|
+
display: inline-block; max-width: 100%; overflow: hidden;
|
|
250
|
+
text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* ══ 关系图 ═════════════════════════════════════════════════════════ */
|
|
254
|
+
.wtools {
|
|
255
|
+
flex: none; display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
|
|
256
|
+
padding: 8px 20px; background: #fff; border-bottom: 1px solid #d0d7de;
|
|
257
|
+
font-size: 11.5px; color: #57606a;
|
|
258
|
+
}
|
|
259
|
+
.wlegend { display: flex; gap: 6px; flex-wrap: wrap }
|
|
260
|
+
/* 图例同时是开关 —— 边一多就得能关掉几种; 把"图例"和"过滤器"做成两样东西
|
|
261
|
+
只会让人在两处之间对照颜色。 */
|
|
262
|
+
.wtools .chip {
|
|
263
|
+
display: flex; align-items: center; gap: 5px; font: inherit; cursor: pointer;
|
|
264
|
+
background: #fff; border: 1px solid #d0d7de; border-radius: 13px; padding: 2px 10px;
|
|
265
|
+
color: #8c959f;
|
|
266
|
+
}
|
|
267
|
+
.wtools .chip i { width: 14px; height: 0; border-top: 2px solid var(--c); opacity: .35 }
|
|
268
|
+
.wtools .chip b { font-variant-numeric: tabular-nums; font-weight: 700 }
|
|
269
|
+
.wtools .chip.on { color: #1f2328; border-color: var(--c) }
|
|
270
|
+
.wtools .chip.on i { opacity: 1 }
|
|
271
|
+
.wtools .chip.clear, .wtools .chip.only { border-color: #d0d7de; color: #57606a }
|
|
272
|
+
.wtools .chip.only.on { border-color: #0969da; color: #0550ae; background: #ddf4ff }
|
|
273
|
+
.wtools .wstat { margin-left: auto; color: #8c959f; font-variant-numeric: tabular-nums }
|
|
274
|
+
.wtools .wstat b { color: #0969da }
|
|
275
|
+
.wtools .warn { color: #9a6700 }
|
|
276
|
+
.wtools .hint { margin-left: 10px; color: #b1bac4 }
|
|
277
|
+
|
|
278
|
+
.wscroll { flex: 1; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch }
|
|
279
|
+
.wmap { position: relative; padding: 18px 20px 28px; min-width: min-content }
|
|
280
|
+
/* 有关系的节点带一道左侧色条 —— 76 个会话里哪几个真的在协作, 不点开也看得见。 */
|
|
281
|
+
.wnode.rel::before {
|
|
282
|
+
content: ""; position: absolute; left: 1px; top: 8px; bottom: 8px;
|
|
283
|
+
width: 2px; border-radius: 1px; background: #0969da66;
|
|
284
|
+
}
|
|
285
|
+
/* 连线层铺满整张图并且不吃事件 —— 节点的点击/双击必须照常穿过去。 */
|
|
286
|
+
.wedges { position: absolute; inset: 0; pointer-events: none; overflow: visible }
|
|
287
|
+
.wgrid {
|
|
288
|
+
position: relative; display: grid; gap: 16px;
|
|
289
|
+
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
290
|
+
align-items: start;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.wchat { background: #fff; border: 1px solid #d0d7de; border-radius: 12px; overflow: hidden }
|
|
294
|
+
/* 当前聊天是读图的锚点, 给它一道明确的边 —— 其余的群一律等价, 不再分轻重。 */
|
|
295
|
+
.wchat.self { border-color: #0969da66; box-shadow: 0 0 0 3px #0969da10 }
|
|
296
|
+
.wch {
|
|
297
|
+
display: flex; align-items: baseline; gap: 8px; padding: 9px 13px;
|
|
298
|
+
border-bottom: 1px solid #eaeef2; background: #f6f8fa;
|
|
299
|
+
}
|
|
300
|
+
.wchat.self .wch { background: #f0f6ff }
|
|
301
|
+
.wch .nm {
|
|
302
|
+
font-size: 13px; font-weight: 700; min-width: 0; overflow: hidden;
|
|
303
|
+
text-overflow: ellipsis; white-space: nowrap;
|
|
304
|
+
}
|
|
305
|
+
.wch .here {
|
|
306
|
+
font-size: 10px; color: #0969da; background: #0969da14; border-radius: 4px; padding: 1px 5px;
|
|
307
|
+
}
|
|
308
|
+
.wch .ct {
|
|
309
|
+
margin-left: auto; font-size: 11px; color: #8c959f; flex: none;
|
|
310
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
311
|
+
}
|
|
312
|
+
.wch .ct em { color: #1a7f37; font-style: normal; font-weight: 700 }
|
|
313
|
+
/* 左内边距是同卡片内连线的车道 —— 一条 `#a → #b` 的派活边从这里绕过去, 不必
|
|
314
|
+
拐出卡片 (拐出去就会被滚动容器裁掉)。 */
|
|
315
|
+
.wrows { padding: 7px 10px 10px 22px; display: flex; flex-direction: column; gap: 3px }
|
|
316
|
+
|
|
317
|
+
.wnode {
|
|
318
|
+
position: relative; display: flex; gap: 8px; align-items: flex-start;
|
|
319
|
+
padding: 6px 8px; border-radius: 8px; cursor: pointer;
|
|
320
|
+
border: 1px solid transparent; transition: opacity .15s, background .12s;
|
|
321
|
+
}
|
|
322
|
+
.wnode:hover { background: #f6f8fa }
|
|
323
|
+
.wnode.self { background: #fffbe8 }
|
|
324
|
+
.wnode.sel { background: #eef4fc; border-color: #0969da55 }
|
|
325
|
+
/* 聚焦时无关节点压暗而不是移除 —— 位置不动, 连点几个节点版面也不跳。 */
|
|
326
|
+
.wnode.dim { opacity: .3 }
|
|
327
|
+
.wnode.cold .wav { filter: grayscale(1); opacity: .55 }
|
|
328
|
+
/* 缩进本身就是家谱; 这道折线只是把"缩给谁看"指实。 */
|
|
329
|
+
.wnode .lin {
|
|
330
|
+
position: absolute; left: -9px; top: 0; bottom: 50%; width: 9px;
|
|
331
|
+
border-left: 1.5px solid #d8cdf0; border-bottom: 1.5px solid #d8cdf0;
|
|
332
|
+
border-bottom-left-radius: 6px;
|
|
333
|
+
}
|
|
334
|
+
.wav {
|
|
335
|
+
position: relative; width: 26px; height: 26px; flex: none; border-radius: 8px;
|
|
336
|
+
background: #f1f3f6; border: 1px solid #eaeef2;
|
|
337
|
+
display: flex; align-items: center; justify-content: center; font-size: 14px;
|
|
338
|
+
}
|
|
339
|
+
.wav .live {
|
|
340
|
+
position: absolute; right: -3px; bottom: -3px; width: 9px; height: 9px;
|
|
341
|
+
border-radius: 50%; background: #1a7f37; border: 2px solid #fff;
|
|
342
|
+
animation: pulse 1.4s infinite;
|
|
343
|
+
}
|
|
344
|
+
.wbody { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 1px }
|
|
345
|
+
.wl1 { display: flex; align-items: baseline; gap: 6px; min-width: 0 }
|
|
346
|
+
.wname {
|
|
347
|
+
font-size: 12.5px; font-weight: 600; min-width: 0; overflow: hidden;
|
|
348
|
+
text-overflow: ellipsis; white-space: nowrap;
|
|
349
|
+
}
|
|
350
|
+
.wnode.run .wname { color: #1a7f37 }
|
|
351
|
+
.wtag {
|
|
352
|
+
flex: none; font-size: 10.5px; color: #57606a; background: #f1f3f6;
|
|
353
|
+
border-radius: 4px; padding: 0 5px; font-family: ui-monospace, Menlo, monospace;
|
|
354
|
+
}
|
|
355
|
+
.wtag.def { color: #8c959f }
|
|
356
|
+
.wih { flex: none; font-size: 11px; color: #6639ba }
|
|
357
|
+
.wts {
|
|
358
|
+
margin-left: auto; flex: none; font-size: 10.5px; color: #8c959f;
|
|
359
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
360
|
+
}
|
|
361
|
+
.wjob { font-size: 11.5px; color: #0550ae; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
|
362
|
+
.wprev {
|
|
363
|
+
font-size: 11.5px; color: #656d76; overflow: hidden; line-height: 1.4;
|
|
364
|
+
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
|
|
365
|
+
}
|
|
366
|
+
.wmeta {
|
|
367
|
+
font-size: 10.5px; color: #8c959f; font-family: ui-monospace, Menlo, monospace;
|
|
368
|
+
display: flex; gap: 4px; flex-wrap: wrap; margin-top: 1px;
|
|
369
|
+
}
|
|
370
|
+
.wmeta .sep { opacity: .45 }
|
|
371
|
+
|
|
372
|
+
/* ══ 日程 ═══════════════════════════════════════════════════════════ */
|
|
373
|
+
.plan-in { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 20px 28px }
|
|
374
|
+
.psec { max-width: 900px; margin: 0 auto 22px }
|
|
375
|
+
.psec h3 {
|
|
376
|
+
display: flex; align-items: baseline; gap: 8px; font-size: 13px; margin: 0 0 10px;
|
|
377
|
+
padding-bottom: 7px; border-bottom: 1px solid #d0d7de;
|
|
378
|
+
}
|
|
379
|
+
.psec h3 span {
|
|
380
|
+
font-size: 11px; color: #8c959f; font-weight: 400;
|
|
381
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
382
|
+
}
|
|
383
|
+
.pempty { color: #8c959f; font-size: 12px; padding: 18px 0; text-align: center }
|
|
384
|
+
|
|
385
|
+
/* 未来 12 小时的刻度条 —— 「今晚还有几枪要响」比一张日期列表更该先看见。 */
|
|
386
|
+
.strip {
|
|
387
|
+
background: #fff; border: 1px solid #d0d7de; border-radius: 10px;
|
|
388
|
+
padding: 10px 14px 9px; margin-bottom: 12px;
|
|
389
|
+
}
|
|
390
|
+
.strip .axis {
|
|
391
|
+
position: relative; height: 13px; font-size: 10px; color: #8c959f;
|
|
392
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
393
|
+
}
|
|
394
|
+
.strip .tk { position: absolute; transform: translateX(-50%); white-space: nowrap }
|
|
395
|
+
.strip .tk:first-child { transform: none }
|
|
396
|
+
.strip .rail {
|
|
397
|
+
position: relative; height: 8px; border-radius: 4px; background: #eaeef2; margin: 3px 0 7px;
|
|
398
|
+
}
|
|
399
|
+
.strip .pin {
|
|
400
|
+
position: absolute; top: -3px; width: 8px; height: 14px; margin-left: -4px;
|
|
401
|
+
border-radius: 3px; background: #9a6700; box-shadow: 0 0 0 2px #fff;
|
|
402
|
+
}
|
|
403
|
+
.strip .cap { font-size: 11px; color: #8c959f }
|
|
404
|
+
|
|
405
|
+
.prow {
|
|
406
|
+
display: flex; gap: 14px; background: #fff; border: 1px solid #d0d7de;
|
|
407
|
+
border-radius: 10px; padding: 10px 14px; margin-bottom: 7px;
|
|
408
|
+
}
|
|
409
|
+
.prow .pl { flex: none; width: 152px; border-right: 1px dashed #eaeef2; padding-right: 12px }
|
|
410
|
+
.pwhen { font-size: 11.5px; color: #9a6700; font-weight: 600 }
|
|
411
|
+
.pnext {
|
|
412
|
+
display: flex; align-items: baseline; gap: 6px; margin-top: 3px;
|
|
413
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
414
|
+
}
|
|
415
|
+
.pnext b { font-size: 12.5px; font-variant-numeric: tabular-nums }
|
|
416
|
+
.pnext span { font-size: 10.5px; color: #8c959f }
|
|
417
|
+
.prow .pr { min-width: 0; flex: 1 }
|
|
418
|
+
.ph { display: flex; align-items: center; gap: 7px; flex-wrap: wrap }
|
|
419
|
+
.ph .note { font-size: 11px; color: #57606a }
|
|
420
|
+
.ph .pid {
|
|
421
|
+
margin-left: auto; font-size: 10px; color: #b1bac4;
|
|
422
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
423
|
+
}
|
|
424
|
+
.ptext { font-size: 12px; color: #1f2328; margin-top: 4px; line-height: 1.5; word-break: break-word }
|
|
425
|
+
.pfoot { font-size: 10.5px; color: #8c959f; margin-top: 4px }
|
|
426
|
+
|
|
427
|
+
/* wizard 徽标 —— 日程/工单里凡是提到一个 wizard 都用它, 同聊天的可点进线程。 */
|
|
428
|
+
.wchip {
|
|
429
|
+
display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px;
|
|
430
|
+
background: #f1f3f6; border: 1px solid #eaeef2; border-radius: 12px; padding: 1px 8px;
|
|
431
|
+
max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
432
|
+
}
|
|
433
|
+
.wchip.go { cursor: pointer; border-color: #0969da33; color: #0550ae }
|
|
434
|
+
.wchip.go:hover { background: #ddf4ff; border-color: #0969da }
|
|
435
|
+
|
|
436
|
+
.jrow { background: #fff; border: 1px solid #d0d7de; border-radius: 10px; padding: 10px 14px; margin-bottom: 7px }
|
|
437
|
+
.jrow.open { border-color: #1a7f3755; box-shadow: 0 0 0 3px #1a7f370d }
|
|
438
|
+
.jh { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap }
|
|
439
|
+
.jid {
|
|
440
|
+
font-size: 10.5px; color: #57606a; background: #f1f3f6; border-radius: 4px;
|
|
441
|
+
padding: 0 6px; font-family: ui-monospace, Menlo, monospace;
|
|
442
|
+
}
|
|
443
|
+
.jt { font-size: 13px; font-weight: 600; min-width: 0 }
|
|
444
|
+
.jst { font-size: 10.5px; color: #8c959f }
|
|
445
|
+
.jrow.open .jst { color: #1a7f37; font-weight: 700 }
|
|
446
|
+
.jts {
|
|
447
|
+
margin-left: auto; font-size: 10.5px; color: #8c959f;
|
|
448
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
449
|
+
}
|
|
450
|
+
.jm { display: flex; flex-direction: column; gap: 3px; margin-top: 7px }
|
|
451
|
+
.jmm { display: flex; align-items: center; gap: 6px; min-width: 0 }
|
|
452
|
+
.jmm em {
|
|
453
|
+
font-style: normal; font-size: 11.5px; color: #656d76; min-width: 0;
|
|
454
|
+
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
455
|
+
}
|
|
456
|
+
.jmm .tmp {
|
|
457
|
+
font-style: normal; font-size: 9.5px; color: #9a6700; background: #d4a72c22;
|
|
458
|
+
border-radius: 3px; padding: 0 4px;
|
|
459
|
+
}
|
|
460
|
+
.jmm.none { font-size: 11.5px; color: #b1bac4 }
|
|
461
|
+
.jsum {
|
|
462
|
+
font-size: 12px; color: #1f2328; margin-top: 8px; padding-top: 8px;
|
|
463
|
+
border-top: 1px dashed #eaeef2; line-height: 1.5; white-space: pre-wrap;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
@media (max-width: 760px) {
|
|
467
|
+
.app.wide .side { display: none }
|
|
468
|
+
.topbar .sub { display: none }
|
|
469
|
+
.topbar .vb { padding: 3px 8px }
|
|
470
|
+
.wmap { padding: 12px }
|
|
471
|
+
.wgrid { grid-template-columns: 1fr }
|
|
472
|
+
.plan-in { padding: 12px }
|
|
473
|
+
.prow { flex-direction: column; gap: 6px }
|
|
474
|
+
.prow .pl { width: auto; border-right: 0; border-bottom: 1px dashed #eaeef2; padding: 0 0 6px }
|
|
475
|
+
.pnext { margin-top: 1px }
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
/* 相关性筛掉的那些 —— 说一声它们还在, 但不占图的位置 (见 shared/world 的说明)。 */
|
|
479
|
+
.wmore {
|
|
480
|
+
padding: 5px 13px 9px; font-size: 10.5px; color: #b1bac4;
|
|
481
|
+
border-top: 1px dashed #eaeef2; margin-top: 2px;
|
|
482
|
+
}
|