wezard 1.3.15 → 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.
@@ -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,22 +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));
106
130
  /**
107
- * skipAll 哨兵版选材 (mirror 主动读屏, 无任何审批上下文): 按**选项形状**认权限
108
- * 确认框 —— 裸 "Yes" + "Yes, and/allow…" 放宽变体 + "No" 打头的拒绝项三件齐全。
109
- * 不看标题: CodeBuddy 的 MCP 权限 picker 标题只有一个 "Confirm", PERMISSION_TITLE
110
- * 认不出; 反过来 AskUserQuestion 的是非题标题可能长得像权限确认 ("Do you want me
111
- * to …?") 但只有 Yes/No 两项 —— 那是用户的问题, 不是权限门, 靠三件套排除。
112
- * 仍只挑一次性裸 "Yes": 放宽静态权限的变体永不选中。挑不出返回 undefined。
131
+ * skipAll 哨兵版选材 (mirror 主动读屏, 无任何审批上下文): 按**选项形状**
132
+ * (hasPermissionShape) 认权限确认框, 不看标题 —— CodeBuddy 的 MCP 权限 picker
133
+ * 标题只有一个 "Confirm", PERMISSION_TITLE 认不出。
134
+ * 仍只挑一次性裸 "Yes": 放宽静态权限的变体永不自动选中。挑不出返回 undefined。
113
135
  */
114
136
  export const pickAutoAllowAnswer = (options) => {
137
+ if (!hasPermissionShape(options))
138
+ return undefined;
115
139
  const plainYes = options.find((o) => /^yes\s*$/iu.test(o.label));
116
140
  if (!plainYes)
117
141
  return undefined;
118
- if (!options.some((o) => /^yes,\s/iu.test(o.label)))
119
- return undefined;
120
- if (!options.some((o) => /^no\b/iu.test(o.label)))
121
- return undefined;
122
142
  return { index: plainYes.index, label: plainYes.label };
123
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
+ };
124
201
  //# sourceMappingURL=modal-pane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-pane.js","sourceRoot":"","sources":["../../shared/modal-pane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modal-pane.js","sourceRoot":"","sources":["../../shared/modal-pane.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wezard",
3
- "version": "1.3.15",
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",