wezard 2.7.1 → 2.7.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/CLAUDE.md +1 -1
- package/README.md +4 -4
- package/cli/wezard.sh +9 -2
- package/dist/daemon/chat-name.js +6 -4
- package/dist/daemon/chat-name.js.map +1 -1
- package/dist/daemon/handoff.js +8 -1
- package/dist/daemon/handoff.js.map +1 -1
- package/dist/daemon/index.js +43 -34
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/jobs.js +3 -2
- package/dist/daemon/jobs.js.map +1 -1
- package/dist/daemon/message-events.js +184 -142
- package/dist/daemon/message-events.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +33 -6
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/wezard-session.js +24 -2
- package/dist/daemon/wezard-session.js.map +1 -1
- package/dist/daemon/wizard.js +4 -3
- 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/config.js +2 -12
- package/dist/shared/config.js.map +1 -1
- package/package.json +1 -1
- package/dist/daemon/top-only-nudge.js +0 -29
- package/dist/daemon/top-only-nudge.js.map +0 -1
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** 记下 `now` 这一次之后这个群的账, 与这一次是否该提醒 (fire = 窗口内的次数, 0 = 不提)。
|
|
2
|
-
* 提醒过就清空窗口: 冷却期满之后要重新攒够一窗才再提, 而不是冷却一过立刻因为旧账又响一次。 */
|
|
3
|
-
export const step = (row, now, p) => {
|
|
4
|
-
const at = [...(row?.at ?? []).filter((t) => now - t < p.windowMs), now];
|
|
5
|
-
const cooling = row?.nudgedAt !== undefined && now - row.nudgedAt < p.cooldownMs;
|
|
6
|
-
const fire = !cooling && at.length >= p.threshold ? at.length : 0;
|
|
7
|
-
const nudgedAt = fire ? now : row?.nudgedAt;
|
|
8
|
-
return { row: { at: fire ? [] : at, ...(nudgedAt !== undefined ? { nudgedAt } : {}) }, fire };
|
|
9
|
-
};
|
|
10
|
-
/** 七天没动静的群不留账 —— 冷却最长也就按天算。 */
|
|
11
|
-
const STALE_MS = 7 * 24 * 60 * 60 * 1000;
|
|
12
|
-
export const gcNudge = (rows, now = Date.now()) => Object.fromEntries(Object.entries(rows).filter(([, r]) => Math.max(r.nudgedAt ?? 0, ...r.at) > now - STALE_MS));
|
|
13
|
-
/** config_set 路径里写哪个键: 聊天名好认, 但路径按 `.` 切段 —— 名字里带点就退回 principal。 */
|
|
14
|
-
export const policyKeyOf = (name, base) => (name && !name.includes(".") ? name : base);
|
|
15
|
-
/** 挂进管家信箱的那一行。`chat` = config_set 路径里写的聊天 (名字或 principal)。 */
|
|
16
|
-
export const renderNudge = (chat, n, windowMin, cooldownH) => `本群最近 ${windowMin} 分钟有 ${n} 次 wizard 间公开往来 (派活气泡 + 回复都进了群)。人下次在群里跟你说话时顺带问一句要不要开**顶层模式** (人只和你 / 人点名的 wizard 说话, wizard 之间一律私聊、过程只在 rolepage): 人说开 → \`config_set({path:"chatPolicy.${chat}.topOnly", value:true})\`; 人不开就别再提 (${cooldownH} 小时内守护进程不再提醒)`;
|
|
17
|
-
/** 公开往来的计数器: `count(chat)` 在每条 wizard 间公开气泡进群时调一次。策略每次现读 (热生效); 阈值或窗口为 0 = 关。 */
|
|
18
|
-
export const createTopOnlyNudge = (o) => ({
|
|
19
|
-
count: (chat) => {
|
|
20
|
-
const p = o.policy();
|
|
21
|
-
if (p.threshold <= 0 || p.windowMs <= 0)
|
|
22
|
-
return;
|
|
23
|
-
const { row, fire } = step(o.store.get(chat), (o.now ?? Date.now)(), p);
|
|
24
|
-
o.store.set(chat, row);
|
|
25
|
-
if (fire)
|
|
26
|
-
o.nudge(chat, fire);
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
//# sourceMappingURL=top-only-nudge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"top-only-nudge.js","sourceRoot":"","sources":["../../daemon/top-only-nudge.ts"],"names":[],"mappings":"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"}
|