wezard 1.3.13 → 1.3.16

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.
@@ -6,13 +6,13 @@ const stripAnsi = (s) =>
6
6
  s.replace(/\[[0-9;?]*[A-Za-z]/g, "");
7
7
  // Parse the `/usage` panel (Usage tab). Layout, per Claude Code v2.1.x:
8
8
  // Current session
9
- // ██████�? 22% used
9
+ // ██████… 22% used
10
10
  // Resets 11:10pm (Asia/Shanghai)
11
11
  // Current week (all models)
12
- // ██████�? 82% used
12
+ // ██████… 82% used
13
13
  // Resets Jul 10 at 2pm (Asia/Shanghai)
14
14
  // What's contributing to your limits usage?
15
- // 62% of your usage was at >150k context �? factor headlines
15
+ // 62% of your usage was at >150k context ← factor headlines
16
16
  // Section headers switch the bucket; "% used" / "Resets" lines fill it.
17
17
  export const parseUsagePanel = (text) => {
18
18
  const limits = [];
@@ -26,14 +26,14 @@ export const parseUsagePanel = (text) => {
26
26
  limits.push(cur); cur = undefined; };
27
27
  for (const raw of stripAnsi(text).split("\n")) {
28
28
  const line = raw.trim();
29
- // A factor headline ("N% of your usage �?") also ends any open limit block.
29
+ // A factor headline ("N% of your usage …") also ends any open limit block.
30
30
  const fm = factor.exec(raw);
31
31
  if (fm) {
32
32
  close();
33
33
  factors.push(`${fm[1]}%${fm[2]}`.replace(/\s+/g, " ").trim());
34
34
  continue;
35
35
  }
36
- // A "Current �?" line with no % is a new limit header (generic over
36
+ // A "Current …" line with no % is a new limit header (generic over
37
37
  // session / week (all models) / week (<model>) / any future bucket).
38
38
  const hm = header.exec(line);
39
39
  if (hm && !pctUsed.test(line) && !/resets/i.test(line)) {
@@ -138,17 +138,17 @@ export const captureQuota = async (cfg, log) => {
138
138
  };
139
139
  const bar20 = (pct) => {
140
140
  const n = Math.max(0, Math.min(20, Math.round((pct / 100) * 20)));
141
- return "�?".repeat(n) + "�?".repeat(20 - n);
141
+ return "█".repeat(n) + "░".repeat(20 - n);
142
142
  };
143
- // Map the raw panel label to a WeCom heading. Generic: "session" �? 5h window,
144
- // "week (X)" �? 本周·X, "week" �? 本周, anything else passes through verbatim so a
143
+ // Map the raw panel label to a WeCom heading. Generic: "session" → 5h window,
144
+ // "week (X)" → 本周·X, "week" → 本周, anything else passes through verbatim so a
145
145
  // future limit bucket still renders.
146
146
  const headingFor = (label) => {
147
147
  if (/^session\b/i.test(label))
148
- return "�? 当前 5h 窗口";
148
+ return "⏰ 当前 5h 窗口";
149
149
  const wk = /^week\s*(?:\(([^)]*)\))?/i.exec(label);
150
150
  if (wk)
151
- return wk[1] ? `🗓�? 本周 · ${wk[1]}` : "🗓�? 本周";
151
+ return wk[1] ? `🗓️ 本周 · ${wk[1]}` : "🗓️ 本周";
152
152
  return `📊 ${label}`;
153
153
  };
154
154
  export const renderQuotaReport = (r) => {
@@ -159,14 +159,14 @@ export const renderQuotaReport = (r) => {
159
159
  out.push(` 重置: ${l.resets}`);
160
160
  }
161
161
  if (r.limits.length === 0) {
162
- out.push("", "⚠️ 未能�? /usage 面板读到额度数字");
162
+ out.push("", "⚠️ 未能从 /usage 面板读到额度数字");
163
163
  if (r.raw)
164
164
  out.push("```", r.raw.split("\n").filter((l) => l.trim()).slice(0, 12).join("\n"), "```");
165
165
  }
166
166
  if (r.factors.length) {
167
- out.push("", "🔎 额度构成 (�?24h · 本机本地会话估算)");
167
+ out.push("", "🔎 额度构成 (近24h · 本机本地会话估算)");
168
168
  for (const f of r.factors.slice(0, 6))
169
- out.push(` �? ${f}`);
169
+ out.push(` • ${f}`);
170
170
  }
171
171
  return out.join("\n");
172
172
  };
@@ -1 +1 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../daemon/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../daemon/quota.ts"],"names":[],"mappings":"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"}
@@ -19,22 +19,38 @@
19
19
  // evidence — the normal input box renders one too — so the digit + dot +
20
20
  // non-space content are all load-bearing.
21
21
  const MODAL_OPTION_ROW = /^\s*[❯>]\s*\d+\.\s+\S/mu;
22
- // Picker footer. Present on every modal picker, absent from the idle input box.
22
+ // Picker footer. Present on Claude Code's pickers; CodeBuddy 的权限确认框没有它
23
+ // (快捷键提示内联在选项文案里, 如 "(escape)"), 由三件套形状判据补位, 见 isModalPane。
23
24
  const MODAL_FOOTER = /Esc to cancel/iu;
24
25
  // Title line of the confirm, surfaced in the failure reason so the user knows
25
26
  // what is waiting for them. Optional — detection never depends on it.
26
- const MODAL_TITLE = /^\s*((?:Do|Would|Should) you .+?)\s*$/mu;
27
+ // "Are you sure …?" 是 CodeBuddy 权限确认框的问句形态。
28
+ const MODAL_TITLE = /^\s*((?:(?:Do|Would|Should) you|Are you sure) .+?)\s*$/mu;
29
+ // CodeBuddy 把确认框画成整圈圆角边框, capture-pane 的每一行都带 `│` 前后缀,
30
+ // 所有行首锚定的判据 (选项行/标题/footer) 因此全部落空 —— 这正是 skipAll 哨兵
31
+ // 在 CodeBuddy 子代理 confirm 上失明的成因之一。判定前逐行剥掉行首行尾的框线;
32
+ // 内容中间的字面 `|` (管道) 不受影响。
33
+ const stripBoxBorders = (pane) => pane
34
+ .split("\n")
35
+ .map((l) => l.replace(/^\s*[│┃|]/u, "").replace(/\s*[│┃|]\s*$/u, ""))
36
+ .join("\n");
27
37
  /**
28
- * Conservative by construction: BOTH an option row and the footer must be
29
- * present. A false positive blocks a legitimate message, which is worse than
30
- * missing an exotic picker layout — an "Esc to cancel" appearing inside pasted
31
- * text cannot fabricate a numbered option row above itself, and a message that
32
- * merely lists "1. …" cannot fabricate the footer.
38
+ * Conservative by construction: an option row PLUS a second independent piece of
39
+ * evidence must both be present — either the "Esc to cancel" footer (Claude
40
+ * Code 系全部 picker), or the permission three-piece option shape (裸 Yes +
41
+ * "Yes, and…" + No, CodeBuddy 的权限确认框没有 footer, 这是它唯一的稳定指纹)。
42
+ * A false positive blocks a legitimate message, which is worse than missing an
43
+ * exotic picker layout — pasted text cannot fabricate a highlighted numbered
44
+ * option row, and a message that merely lists "1. …" fabricates neither the
45
+ * footer nor the full Yes/Yes,and/No triple.
33
46
  */
34
47
  export const isModalPane = (pane) => {
35
- if (!pane || !MODAL_OPTION_ROW.test(pane) || !MODAL_FOOTER.test(pane))
48
+ const p = stripBoxBorders(pane ?? "");
49
+ if (!p || !MODAL_OPTION_ROW.test(p))
36
50
  return { modal: false };
37
- return { modal: true, title: pane.match(MODAL_TITLE)?.[1] };
51
+ if (!MODAL_FOOTER.test(p) && !hasPermissionShape(parseModalOptions(p)))
52
+ return { modal: false };
53
+ return { modal: true, title: p.match(MODAL_TITLE)?.[1] };
38
54
  };
39
55
  // ── 选项解析 + 代按 ────────────────────────────────────────────────────
40
56
  // 只服务一个场景: 用户刚在企微卡片上显式批准了某次调用, 而 Claude Code 在 hook
@@ -50,8 +66,9 @@ export const isModalPane = (pane) => {
50
66
  /** 编号选项行: "❯ 1. Yes" / " 2. No, and tell Claude…"。 */
51
67
  const OPTION_ROW = /^\s*(?:[❯>]\s*)?(\d+)\.\s+(\S.*?)\s*$/u;
52
68
  /** 权限确认框的标题形状。plan review("Would you like to proceed?")也在此列 —— 但它
53
- * 的选项文案不是裸 "Yes", pickModalAnswer 会自然放弃, 不需要在标题上再排除。 */
54
- const PERMISSION_TITLE = /^(?:Do|Would|Should) you /iu;
69
+ * 的选项文案不是裸 "Yes", pickModalAnswer 会自然放弃, 不需要在标题上再排除。
70
+ * "Are you sure …" 是 CodeBuddy 权限确认框的问句。 */
71
+ const PERMISSION_TITLE = /^(?:(?:Do|Would|Should) you|Are you sure) /iu;
55
72
  /**
56
73
  * 抽出**最后一组**连续编号选项(从 1 开始)。
57
74
  * 为什么取最后一组: 当前屏上可能同时留着一个已答完的旧确认(它的选项行还在),
@@ -60,7 +77,7 @@ const PERMISSION_TITLE = /^(?:Do|Would|Should) you /iu;
60
77
  export const parseModalOptions = (pane) => {
61
78
  const groups = [];
62
79
  let cur = [];
63
- for (const line of (pane ?? "").split("\n")) {
80
+ for (const line of stripBoxBorders(pane ?? "").split("\n")) {
64
81
  const m = OPTION_ROW.exec(line);
65
82
  if (!m) {
66
83
  // 选项行之间允许空行(部分布局会插一行), 非空的非选项行才断组。
@@ -103,4 +120,82 @@ export const pickModalAnswer = (options, title) => {
103
120
  return undefined;
104
121
  return { index: plainYes.index, label: plainYes.label };
105
122
  };
123
+ /** 权限确认框的三件套形状: 裸 "Yes" + "Yes, and/allow…" 放宽变体 + "No" 打头的
124
+ * 拒绝项齐全。AskUserQuestion 的是非题只有 Yes/No 两项、plan review 没有裸
125
+ * "Yes" —— 都天然不命中。既是哨兵选材的判据, 也是无 footer 布局 (CodeBuddy)
126
+ * 下 isModalPane 的 modal 证据。 */
127
+ const hasPermissionShape = (options) => options.some((o) => /^yes\s*$/iu.test(o.label))
128
+ && options.some((o) => /^yes,\s/iu.test(o.label))
129
+ && options.some((o) => /^no\b/iu.test(o.label));
130
+ /**
131
+ * skipAll 哨兵版选材 (mirror 主动读屏, 无任何审批上下文): 按**选项形状**
132
+ * (hasPermissionShape) 认权限确认框, 不看标题 —— CodeBuddy 的 MCP 权限 picker
133
+ * 标题只有一个 "Confirm", PERMISSION_TITLE 认不出。
134
+ * 仍只挑一次性裸 "Yes": 放宽静态权限的变体永不自动选中。挑不出返回 undefined。
135
+ */
136
+ export const pickAutoAllowAnswer = (options) => {
137
+ if (!hasPermissionShape(options))
138
+ return undefined;
139
+ const plainYes = options.find((o) => /^yes\s*$/iu.test(o.label));
140
+ if (!plainYes)
141
+ return undefined;
142
+ return { index: plainYes.index, label: plainYes.label };
143
+ };
144
+ const CONFIRM_HEADER = /^\s*Confirm\b(?:\s*[·:]\s*(@?\S+))?/u;
145
+ // 框顶线 / 分隔线: 只由框线字符与空白组成的行。空行也命中 (正文为空时继续上溯)。
146
+ const BOX_RULE = /^[\s─━╭╮╰╯┌┐└┘├┤┬┴═║╔╗╚╝]*$/u;
147
+ const CONFIRM_QUESTION = /^\s*(?:(?:Do|Would|Should) you|Are you sure)\b.*\?\s*$/iu;
148
+ export const parseConfirmContext = (pane) => {
149
+ const lines = stripBoxBorders(pane ?? "").split("\n");
150
+ // 正文的下界 = 最后一组选项的 "1." 行; 上界 = Confirm 头 / 框线(正文已开始时)。
151
+ let firstOpt = lines.length;
152
+ for (let i = lines.length - 1; i >= 0; i--) {
153
+ if (/^\s*(?:[❯>]\s*)?1\.\s+\S/u.test(lines[i])) {
154
+ firstOpt = i;
155
+ break;
156
+ }
157
+ }
158
+ let agent;
159
+ const body = [];
160
+ // 正文收完后 (bodyDone) 继续上溯只为找 Confirm 头 —— 正文与头之间隔着空行,
161
+ // 一碰空行就停会把 `@子代理名` 丢掉; 碰到头以外的实际内容才真正停。
162
+ let bodyDone = false;
163
+ for (let i = firstOpt - 1; i >= 0; i--) {
164
+ const line = lines[i];
165
+ const h = CONFIRM_HEADER.exec(line);
166
+ if (h) {
167
+ agent = h[1] || undefined;
168
+ break;
169
+ }
170
+ if (BOX_RULE.test(line)) {
171
+ bodyDone = body.length > 0;
172
+ continue;
173
+ }
174
+ if (CONFIRM_QUESTION.test(line) || OPTION_ROW.test(line))
175
+ continue;
176
+ if (bodyDone)
177
+ break;
178
+ body.unshift(line.trim());
179
+ }
180
+ const text = body.join("\n");
181
+ const inner = /(?:^|[^\w])toolName:\s*"([^"]+)"/u.exec(text)?.[1];
182
+ const params = /params:\s*(\{[\s\S]*)$/u.exec(text)?.[1]?.trim();
183
+ let input;
184
+ // params 可能被 pane 宽度截断 → JSON.parse 失败时保留原文, 卡上仍可读。
185
+ if (params !== undefined) {
186
+ try {
187
+ input = JSON.parse(params);
188
+ }
189
+ catch {
190
+ input = { params };
191
+ }
192
+ }
193
+ const first = body.find((l) => l.length > 0);
194
+ const toolName = inner ?? (first && first.length <= 60 ? first : undefined) ?? "权限确认";
195
+ if (input === undefined) {
196
+ const rest = body.filter((l) => l && l !== toolName).join("\n").trim();
197
+ input = rest ? { 参数: rest } : {};
198
+ }
199
+ return { toolName, toolInput: input, agent };
200
+ };
106
201
  //# sourceMappingURL=modal-pane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-pane.js","sourceRoot":"","sources":["../../shared/modal-pane.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,yBAAyB;AACzB,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,+EAA+E;AAC/E,yBAAyB;AACzB,EAAE;AACF,8EAA8E;AAC9E,oBAAoB;AAEpB,4EAA4E;AAC5E,yEAAyE;AACzE,0CAA0C;AAC1C,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAEnD,gFAAgF;AAChF,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,8EAA8E;AAC9E,sEAAsE;AACtE,MAAM,WAAW,GAAG,yCAAyC,CAAC;AAQ9D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAoB,EAAE;IAC5D,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC/F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC,CAAC;AAEF,oEAAoE;AACpE,oDAAoD;AACpD,gDAAgD;AAChD,gCAAgC;AAChC,EAAE;AACF,mCAAmC;AACnC,gEAAgE;AAChE,kCAAkC;AAClC,mEAAmE;AACnE,0CAA0C;AAC1C,2CAA2C;AAE3C,uDAAuD;AACvD,MAAM,UAAU,GAAG,wCAAwC,CAAC;AAE5D;yDACyD;AACzD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AASvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAiB,EAAE;IAC/D,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,GAAG,GAAkB,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,mCAAmC;YACnC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC;YAAC,CAAC;YACnD,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnF,mBAAmB;QACnB,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,GAAG,GAAG,EAAE,CAAC;QAAC,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3D,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,CAAC;AAOF,2DAA2D;AAC3D,uDAAuD;AACvD,2CAA2C;AAC3C,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAW,EAAE,CACxD,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAE,KAAc,EAA2B,EAAE;IACjG,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC1D,CAAC,CAAC"}
1
+ {"version":3,"file":"modal-pane.js","sourceRoot":"","sources":["../../shared/modal-pane.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,9 @@ export const tagBadge = (target) => {
139
139
  export const withTagHeader = (target, content, seq) => {
140
140
  const tag = tagOfKey(target);
141
141
  const head = [tag ? `${labelFor(tag)} #${tag}` : "🧙", seq ?? ""].filter(Boolean).join(" ");
142
- return `${head} ${content}`;
142
+ // 栅栏必须顶行首才被 WeCom 认作代码块 —— 同行拼头会把 ``` 挤成字面文本。
143
+ // HEADER_RE 尾部的 \s* 吃得掉换行,parseTagHeader 剥头不受影响。
144
+ const sep = content.startsWith("```") ? "\n" : " ";
145
+ return `${head}${sep}${content}`;
143
146
  };
144
147
  //# sourceMappingURL=session-label.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-label.js","sourceRoot":"","sources":["../../shared/session-label.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-label.js","sourceRoot":"","sources":["../../shared/session-label.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,25 @@ PERMISSION_MODE=$(printf '%s' "$PAYLOAD" | jq -r '.permission_mode // ""')
74
74
  # 与主会话一致, 而不是落到无人可点的 ask 兜底。
75
75
  AGENT_ID=$(printf '%s' "$PAYLOAD" | jq -r '.agent_id // empty')
76
76
  AGENT_TYPE=$(printf '%s' "$PAYLOAD" | jq -r '.agent_type // empty')
77
+ # 子代理判定: agent 标记, 或转录本身落在 subagents/ 布局 —— 部分 CodeBuddy 版本
78
+ # 不带 agent_id/agent_type, 路径是唯一证据。决定谁有资格写模式档案 (见 record_mode)。
79
+ IS_SUBAGENT=0
80
+ [[ -n "$AGENT_ID" || -n "$AGENT_TYPE" ]] && IS_SUBAGENT=1
81
+ case "$TRANSCRIPT_PATH" in */subagents/agent-*.jsonl) IS_SUBAGENT=1 ;; esac
82
+
83
+ # ── DeferExecuteTool 下钻 (CodeBuddy 延迟加载工具的外层包装) ──────────────
84
+ # ToolSearch 发现的 deferred/MCP 工具经 DeferExecuteTool(toolName, …) 代为派发。
85
+ # 外层名对整条审批链都是噪音: matcher/danger/allow/deny 匹配不到真实工具, 卡片上
86
+ # 也只剩一个不知所云的 DeferExecuteTool。换成内层工具名+入参再走后面的短路与
87
+ # daemon 裁决 (内层入参字段名各版本有出入, 依次探测; 都没有则剥掉包装字段取余)。
88
+ if [[ "$TOOL_NAME" == "DeferExecuteTool" ]]; then
89
+ INNER_NAME=$(printf '%s' "$TOOL_INPUT" | jq -r '.toolName // .tool_name // .name // empty')
90
+ if [[ -n "$INNER_NAME" ]]; then
91
+ TOOL_NAME="$INNER_NAME"
92
+ TOOL_INPUT=$(printf '%s' "$TOOL_INPUT" \
93
+ | jq -c '(.toolInput // .tool_input // .arguments // .args // .input) // del(.toolName, .tool_name, .name)')
94
+ fi
95
+ fi
77
96
 
78
97
  # CLI 后端: 与下方 ExitPlanMode 同款判别 — transcript 落在 ~/.codebuddy/ 即
79
98
  # codebuddy。daemon 的 AskUserQuestion 分支据此走去重逻辑 (codebuddy 的 hook
@@ -98,7 +117,7 @@ is_inherit_mode() { case "$1" in ""|ignore|current|inherit) return 0 ;; *) re
98
117
  # 父会话模式档案。子代理是另起的 CLI 实例, 既拿不到父的 --permission-mode, 自己
99
118
  # 的 permissions.defaultMode 通常也没写 —— payload 里只剩继承语义值或空。主线程
100
119
  # 每次把实际模式写进 <stateDir>/modes/<sid>, 子代理按 transcript 反推父 sid 读回,
101
- # 这是唯一能把父子模式对上的旁路。只有主线程 (无 agent_id) 才写, 否则子代理的
120
+ # 这是唯一能把父子模式对上的旁路。只有主线程 (IS_SUBAGENT=0) 才写, 否则子代理的
102
121
  # default 会把父的 bypassPermissions 覆盖掉。
103
122
  MODE_DIR="$STATE_DIR/modes"
104
123
 
@@ -135,7 +154,9 @@ recall_mode() {
135
154
  EFFECTIVE_MODE="$PERMISSION_MODE"
136
155
  if is_inherit_mode "$EFFECTIVE_MODE"; then
137
156
  EFFECTIVE_MODE=$(recall_mode)
138
- elif [[ -z "$AGENT_ID" ]]; then
157
+ elif [[ "$IS_SUBAGENT" == "0" ]]; then
158
+ # 只认 AGENT_ID 会漏掉不带 agent 标记的子代理 —— 它上报的 default 若落盘,
159
+ # 就把父会话的 bypass 档案覆盖了。IS_SUBAGENT 把转录布局也算进证据。
139
160
  record_mode "$EFFECTIVE_MODE"
140
161
  fi
141
162
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wezard",
3
- "version": "1.3.13",
3
+ "version": "1.3.16",
4
4
  "description": "Bridge Claude Code and WeCom: PreToolUse approval cards + bidirectional tmux session mirror with image paste",
5
5
  "type": "module",
6
6
  "license": "MIT",