cc-wechat 0.2.0 → 0.3.0

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/patch.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * cc-wechat 补丁工具
4
- * 绕过 Claude Code 的 Channels 云控检查(tengu_harbor feature flag + accessToken auth)
5
- * 用法:node dist/patch.js npx cc-wechat patch
3
+ * cc-wechat 补丁工具(双模式)
4
+ * - 二进制模式(exe):按固定字符串搜索替换
5
+ * - AST 模式(cli.js / npm 安装):acorn 解析 JS AST,按语义特征定位
6
6
  */
7
7
  export {};
package/dist/patch.js CHANGED
@@ -1,38 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * cc-wechat 补丁工具
4
- * 绕过 Claude Code 的 Channels 云控检查(tengu_harbor feature flag + accessToken auth)
5
- * 用法:node dist/patch.js npx cc-wechat patch
3
+ * cc-wechat 补丁工具(双模式)
4
+ * - 二进制模式(exe):按固定字符串搜索替换
5
+ * - AST 模式(cli.js / npm 安装):acorn 解析 JS AST,按语义特征定位
6
6
  */
7
7
  import fs from 'node:fs';
8
8
  import path from 'node:path';
9
9
  import { homedir } from 'node:os';
10
10
  import { execSync } from 'node:child_process';
11
- // 补丁定义:[特征字符串, 替换字符串, 说明]
12
- const PATCHES = [
13
- // 1. Channels feature flag 云控
14
- [
15
- 'function PaH(){return lA("tengu_harbor",!1)}',
16
- 'function PaH(){return !0 }',
17
- 'Channels feature flag (tengu_harbor)',
18
- ],
19
- // 2. S1_ gate auth 检查
20
- [
21
- 'if(!yf()?.accessToken)',
22
- 'if( false )',
23
- 'Channel gate accessToken check',
24
- ],
25
- // 3. UI 层 noAuth 检查
26
- [
27
- 'noAuth:!yf()?.accessToken',
28
- 'noAuth: false ',
29
- 'UI noAuth display check',
30
- ],
11
+ import { createRequire } from 'node:module';
12
+ // ─── 二进制模式补丁定义 ──────────────────────────────────
13
+ const BINARY_PATCHES = [
14
+ ['function PaH(){return lA("tengu_harbor",!1)}', 'function PaH(){return !0 }', 'Channels feature flag (tengu_harbor)'],
15
+ ['if(!yf()?.accessToken)', 'if( false )', 'Channel gate auth check'],
16
+ ['noAuth:!yf()?.accessToken', 'noAuth: false ', 'UI noAuth display check'],
31
17
  ];
32
- /** 查找 claude 可执行文件路径 */
18
+ // ─── 查找 claude ──────────────────────────────────────────
33
19
  function findClaudeExe() {
34
20
  const home = homedir();
35
- // 1. which/where(最可靠)
36
21
  try {
37
22
  const cmd = process.platform === 'win32' ? 'where claude 2>nul' : 'which claude 2>/dev/null';
38
23
  const p = execSync(cmd, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim().split('\n')[0].trim();
@@ -40,7 +25,6 @@ function findClaudeExe() {
40
25
  return p;
41
26
  }
42
27
  catch { /* ignore */ }
43
- // 2. 常见安装路径
44
28
  const candidates = [
45
29
  path.join(home, '.local', 'bin', 'claude.exe'),
46
30
  path.join(home, '.local', 'bin', 'claude'),
@@ -53,16 +37,12 @@ function findClaudeExe() {
53
37
  path.join(home, 'AppData', 'Local', 'Programs', 'claude-code', 'claude.exe'),
54
38
  path.join(home, 'AppData', 'Local', 'claude-code', 'claude.exe'),
55
39
  path.join(home, 'AppData', 'Local', 'AnthropicClaude', 'claude.exe'),
56
- '/usr/local/bin/claude',
57
- '/opt/homebrew/bin/claude',
58
- '/usr/bin/claude',
59
- '/snap/bin/claude',
40
+ '/usr/local/bin/claude', '/opt/homebrew/bin/claude', '/usr/bin/claude', '/snap/bin/claude',
60
41
  ];
61
42
  for (const p of candidates) {
62
43
  if (fs.existsSync(p))
63
44
  return p;
64
45
  }
65
- // 3. npm global prefix 动态查找
66
46
  try {
67
47
  const prefix = execSync('npm config get prefix', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
68
48
  if (prefix) {
@@ -73,7 +53,6 @@ function findClaudeExe() {
73
53
  }
74
54
  }
75
55
  catch { /* ignore */ }
76
- // 4. PATH 逐目录搜索(兜底)
77
56
  const pathDirs = (process.env.PATH || '').split(process.platform === 'win32' ? ';' : ':');
78
57
  const exeNames = process.platform === 'win32' ? ['claude.exe', 'claude.cmd'] : ['claude'];
79
58
  for (const dir of pathDirs) {
@@ -85,26 +64,22 @@ function findClaudeExe() {
85
64
  }
86
65
  return null;
87
66
  }
88
- /** wrapper/cmd 解析到真正包含代码的文件(exe cli.js) */
67
+ // ─── 解析到真正的可 patch 文件 ────────────────────────────
89
68
  function resolvePatchTarget(claudePath) {
90
69
  const ext = path.extname(claudePath).toLowerCase();
91
70
  const dir = path.dirname(claudePath);
92
- // exe 或大文件(>1MB)→ 直接 patch
93
71
  if (ext === '.exe')
94
72
  return claudePath;
95
73
  const stat = fs.statSync(claudePath);
96
74
  if (stat.size > 1_000_000)
97
75
  return claudePath;
98
- // .cmd / 小文件 → npm wrapper,查找 cli.js
99
76
  const cliJs = path.join(dir, 'node_modules', '@anthropic-ai', 'claude-code', 'cli.js');
100
77
  if (fs.existsSync(cliJs))
101
78
  return cliJs;
102
- // 读 .cmd 内容提取路径
103
79
  if (ext === '.cmd') {
104
80
  try {
105
81
  const content = fs.readFileSync(claudePath, 'utf-8');
106
- const match = content.match(/node_modules[\\/]@anthropic-ai[\\/]claude-code[\\/]cli\.js/);
107
- if (match) {
82
+ if (content.match(/node_modules[\\/]@anthropic-ai[\\/]claude-code[\\/]cli\.js/)) {
108
83
  const resolved = path.join(dir, 'node_modules', '@anthropic-ai', 'claude-code', 'cli.js');
109
84
  if (fs.existsSync(resolved))
110
85
  return resolved;
@@ -112,7 +87,6 @@ function resolvePatchTarget(claudePath) {
112
87
  }
113
88
  catch { /* ignore */ }
114
89
  }
115
- // symlink → resolve
116
90
  try {
117
91
  const realPath = fs.realpathSync(claudePath);
118
92
  if (realPath !== claudePath)
@@ -121,34 +95,66 @@ function resolvePatchTarget(claudePath) {
121
95
  catch { /* ignore */ }
122
96
  return claudePath;
123
97
  }
124
- function patch() {
125
- console.log('\n cc-wechat patch — Claude Code Channels 补丁\n');
126
- const claudePath = findClaudeExe();
127
- if (!claudePath) {
128
- console.error(' 找不到 Claude Code。请确认已安装。');
129
- process.exit(1);
98
+ // ─── 判断是否二进制文件 ──────────────────────────────────
99
+ function isBinaryFile(filePath) {
100
+ const ext = path.extname(filePath).toLowerCase();
101
+ if (ext === '.exe')
102
+ return true;
103
+ const header = Buffer.alloc(4);
104
+ const fd = fs.openSync(filePath, 'r');
105
+ fs.readSync(fd, header, 0, 4, 0);
106
+ fs.closeSync(fd);
107
+ if (header[0] === 0x4D && header[1] === 0x5A)
108
+ return true;
109
+ if (header[0] === 0x7F && header[1] === 0x45)
110
+ return true;
111
+ if (header[0] === 0xFE && header[1] === 0xED)
112
+ return true;
113
+ if (header[0] === 0xCF && header[1] === 0xFA)
114
+ return true;
115
+ return false;
116
+ }
117
+ // ─── 写入结果 ──────────────────────────────────────────────
118
+ function writeResult(exePath, buf) {
119
+ const backupPath = exePath + '.bak';
120
+ if (!fs.existsSync(backupPath)) {
121
+ fs.copyFileSync(exePath, backupPath);
122
+ console.log(`\n 📦 已备份: ${backupPath}`);
130
123
  }
131
- const exePath = resolvePatchTarget(claudePath);
132
- if (exePath !== claudePath) {
133
- console.log(` 查找: ${claudePath}`);
134
- console.log(` 解析: ${exePath}`);
124
+ try {
125
+ fs.writeFileSync(exePath, buf);
126
+ console.log('\n 补丁已直接写入,立即生效!\n');
135
127
  }
136
- console.log(` 目标: ${exePath}`);
137
- // 读取二进制
138
- const buf = fs.readFileSync(exePath);
139
- let totalPatched = 0;
140
- let alreadyPatched = 0;
141
- for (const [original, replacement, desc] of PATCHES) {
142
- if (original.length !== replacement.length) {
143
- console.error(` 错误: "${desc}" 长度不匹配 (${original.length} vs ${replacement.length})`);
144
- process.exit(1);
128
+ catch {
129
+ const tmpPath = exePath + '.patched';
130
+ fs.writeFileSync(tmpPath, buf);
131
+ console.log(`\n ⚠️ Claude Code 正在运行,无法直接写入。`);
132
+ console.log(` 补丁已保存到: ${tmpPath}\n`);
133
+ console.log(' 请退出所有 Claude Code 后执行:\n');
134
+ if (process.platform === 'win32') {
135
+ const dir = path.dirname(exePath);
136
+ const name = path.basename(exePath);
137
+ console.log(` cd "${dir}"`);
138
+ console.log(` Move-Item ${name} ${name}.old -Force`);
139
+ console.log(` Move-Item ${name}.patched ${name} -Force`);
140
+ }
141
+ else {
142
+ console.log(` mv "${exePath}" "${exePath}.old"`);
143
+ console.log(` mv "${tmpPath}" "${exePath}"`);
145
144
  }
145
+ console.log();
146
+ }
147
+ console.log(' 恢复方法: npx cc-wechat unpatch\n');
148
+ }
149
+ // ─── 二进制模式 patch ──────────────────────────────────────
150
+ function patchBinary(exePath) {
151
+ console.log(' 模式: 二进制字符串搜索\n');
152
+ const buf = fs.readFileSync(exePath);
153
+ let patched = 0, skipped = 0;
154
+ for (const [original, replacement, desc] of BINARY_PATCHES) {
146
155
  const origBuf = Buffer.from(original);
147
156
  const patchBuf = Buffer.from(replacement);
148
- // 搜索所有出现位置
149
- let pos = 0;
150
- let count = 0;
151
- let alreadyCount = 0;
157
+ let pos = 0, count = 0;
152
158
  while (true) {
153
159
  const idx = buf.indexOf(origBuf, pos);
154
160
  if (idx === -1)
@@ -157,7 +163,7 @@ function patch() {
157
163
  count++;
158
164
  pos = idx + 1;
159
165
  }
160
- // 检查是否已经 patch
166
+ let alreadyCount = 0;
161
167
  pos = 0;
162
168
  while (true) {
163
169
  const idx = buf.indexOf(patchBuf, pos);
@@ -167,76 +173,196 @@ function patch() {
167
173
  pos = idx + 1;
168
174
  }
169
175
  if (count > 0) {
170
- console.log(` [PATCH] ${desc}: ${count} 处已修补`);
171
- totalPatched += count;
176
+ console.log(` ${desc} ${count} 处已修补`);
177
+ patched += count;
172
178
  }
173
179
  else if (alreadyCount > 0) {
174
- console.log(` [SKIP] ${desc}: 已修补过 (${alreadyCount} 处)`);
175
- alreadyPatched += alreadyCount;
180
+ console.log(` ⏭️ ${desc} 已修补`);
181
+ skipped += alreadyCount;
176
182
  }
177
183
  else {
178
- console.log(` [WARN] ${desc}: 未找到特征字符串(CC 版本可能已更新)`);
184
+ console.log(` ⚠️ ${desc} 未找到`);
179
185
  }
180
186
  }
181
- if (totalPatched === 0 && alreadyPatched > 0) {
182
- console.log('\n 所有补丁已生效,无需操作。\n');
187
+ if (patched === 0 && skipped > 0) {
188
+ console.log('\n 所有补丁已生效。\n');
183
189
  return;
184
190
  }
185
- if (totalPatched === 0) {
186
- console.error('\n 未找到任何可修补的位置。Claude Code 版本可能不兼容。\n');
191
+ if (patched === 0) {
192
+ console.error('\n 未找到可修补位置。\n');
187
193
  process.exit(1);
188
194
  }
189
- // 备份
190
- const backupPath = exePath + '.bak';
191
- if (!fs.existsSync(backupPath)) {
192
- fs.copyFileSync(exePath, backupPath);
193
- console.log(` [BACKUP] 已备份到 ${backupPath}`);
194
- }
195
- // 写入 先写临时文件再替换
196
- const tmpPath = exePath + '.patched';
197
- fs.writeFileSync(tmpPath, buf);
198
- console.log(`\n 补丁已写入 ${tmpPath}`);
199
- console.log(' 请关闭所有 Claude Code 进程后手动替换:\n');
200
- if (process.platform === 'win32') {
201
- const dir = path.dirname(exePath);
202
- const name = path.basename(exePath);
203
- console.log(` cd ${dir}`);
204
- console.log(` Move-Item ${name} ${name}.old -Force`);
205
- console.log(` Move-Item ${name}.patched ${name} -Force\n`);
195
+ writeResult(exePath, buf);
196
+ }
197
+ // ─── AST 模式 patch ──────────────────────────────────────
198
+ async function patchAst(exePath) {
199
+ console.log(' 模式: AST 语义分析\n');
200
+ // 动态下载 acorn
201
+ const acornPath = path.join(homedir(), '.cache', 'cc-channel-patch', 'acorn.js');
202
+ if (!fs.existsSync(acornPath)) {
203
+ console.log(' 下载 acorn 解析器...');
204
+ fs.mkdirSync(path.dirname(acornPath), { recursive: true });
205
+ const resp = await fetch('https://unpkg.com/acorn@8.14.0/dist/acorn.js');
206
+ if (!resp.ok)
207
+ throw new Error(`下载 acorn 失败: HTTP ${resp.status}`);
208
+ fs.writeFileSync(acornPath, await resp.text());
209
+ }
210
+ const require = createRequire(import.meta.url);
211
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
212
+ const acorn = require(acornPath);
213
+ let code = fs.readFileSync(exePath, 'utf-8');
214
+ let shebang = '';
215
+ if (code.startsWith('#!')) {
216
+ const idx = code.indexOf('\n');
217
+ shebang = code.slice(0, idx + 1);
218
+ code = code.slice(idx + 1);
219
+ }
220
+ let ast;
221
+ try {
222
+ ast = acorn.parse(code, { ecmaVersion: 2022, sourceType: 'module' });
223
+ }
224
+ catch (e) {
225
+ console.error(` AST 解析失败: ${e.message}`);
226
+ process.exit(1);
227
+ }
228
+ const src = (node) => code.slice(node.start, node.end);
229
+ function findNodes(node, predicate, results = []) {
230
+ if (!node || typeof node !== 'object')
231
+ return results;
232
+ const n = node;
233
+ if (predicate(n))
234
+ results.push(n);
235
+ for (const key in n) {
236
+ const val = n[key];
237
+ if (val && typeof val === 'object') {
238
+ if (Array.isArray(val))
239
+ val.forEach(child => findNodes(child, predicate, results));
240
+ else
241
+ findNodes(val, predicate, results);
242
+ }
243
+ }
244
+ return results;
245
+ }
246
+ const replacements = [];
247
+ let patchCount = 0;
248
+ // Patch 1: tengu_harbor
249
+ const harborCalls = findNodes(ast, n => n.type === 'CallExpression' && n.arguments?.length === 2 &&
250
+ n.arguments[0]?.type === 'Literal' && n.arguments[0]?.value === 'tengu_harbor');
251
+ let harborPatched = false;
252
+ for (const call of harborCalls) {
253
+ const arg = call.arguments[1];
254
+ if (arg.type === 'UnaryExpression' && arg.operator === '!' && arg.argument?.type === 'Literal' && arg.argument?.value === 1) {
255
+ replacements.push({ start: arg.start, end: arg.end, replacement: '!0' });
256
+ patchCount++;
257
+ console.log(` ✅ tengu_harbor flag → !0`);
258
+ break;
259
+ }
260
+ if (arg.type === 'UnaryExpression' && arg.operator === '!' && arg.argument?.type === 'Literal' && arg.argument?.value === 0) {
261
+ harborPatched = true;
262
+ console.log(' ⏭️ tengu_harbor flag — 已修补');
263
+ break;
264
+ }
265
+ }
266
+ // Patch 2: channel decision function
267
+ const markerLiterals = findNodes(ast, n => n.type === 'Literal' && n.value === 'channels feature is not currently available');
268
+ let qMqPatched = false;
269
+ if (markerLiterals.length > 0) {
270
+ const markerPos = markerLiterals[0].start;
271
+ const enclosing = findNodes(ast, n => (n.type === 'FunctionDeclaration' || n.type === 'FunctionExpression') && n.start < markerPos && n.end > markerPos).sort((a, b) => (a.end - a.start) - (b.end - b.start));
272
+ if (enclosing.length > 0) {
273
+ const fn = enclosing[0];
274
+ const body = fn.body?.body;
275
+ if (body?.length && body[0].type === 'IfStatement' && src(body[0]).includes('claude/channel')) {
276
+ const newBody = '{' + src(body[0]) + 'return{action:"register"}}';
277
+ replacements.push({ start: fn.body.start, end: fn.body.end, replacement: newBody });
278
+ patchCount++;
279
+ console.log(` ✅ Channel decision — 绕过 check 2-7`);
280
+ }
281
+ }
282
+ }
283
+ else if (code.includes('claude/channel capability') && !code.includes('channels feature is not currently available')) {
284
+ qMqPatched = true;
285
+ console.log(' ⏭️ Channel decision — 已修补');
286
+ }
287
+ // Patch 3: UI notice
288
+ const policyProps = findNodes(ast, n => n.type === 'Property' && n.key?.type === 'Identifier' && n.key?.name === 'policyBlocked' &&
289
+ n.value != null && src(n.value).includes('channelsEnabled'));
290
+ let noticePatched = false;
291
+ if (policyProps.length > 0) {
292
+ const propPos = policyProps[0].start;
293
+ const noticeFuncs = findNodes(ast, n => (n.type === 'FunctionDeclaration' || n.type === 'FunctionExpression') && n.start < propPos && n.end > propPos).sort((a, b) => (a.end - a.start) - (b.end - b.start));
294
+ if (noticeFuncs.length > 0) {
295
+ const nf = noticeFuncs[0];
296
+ const firstCalls = findNodes(nf.body.body[0], n => n.type === 'CallExpression' && n.callee?.type === 'Identifier');
297
+ const getAllowed = firstCalls.length > 0 ? src(firstCalls[0]) : '$N()';
298
+ const mapCalls = findNodes(nf, n => n.type === 'CallExpression' && n.callee?.type === 'MemberExpression' && n.callee?.property?.name === 'map');
299
+ const formatter = mapCalls.length > 0 && mapCalls[0].arguments?.[0] ? src(mapCalls[0].arguments[0]) : 'naH';
300
+ const newBody = '{let A=' + getAllowed + ';let q=A.length>0?A.map(' + formatter + ').join(", "):"";return{channels:A,disabled:!1,noAuth:!1,policyBlocked:!1,list:q}}';
301
+ replacements.push({ start: nf.body.start, end: nf.body.end, replacement: newBody });
302
+ patchCount++;
303
+ console.log(` ✅ UI notice — disabled/noAuth/policyBlocked 全部置 false`);
304
+ }
305
+ }
306
+ else if (code.includes('policyBlocked') && !code.includes('channelsEnabled!==!0')) {
307
+ noticePatched = true;
308
+ console.log(' ⏭️ UI notice — 已修补');
309
+ }
310
+ if (patchCount === 0) {
311
+ if (harborPatched || qMqPatched || noticePatched) {
312
+ console.log('\n 所有补丁已生效。\n');
313
+ return;
314
+ }
315
+ console.error('\n 未找到可修补位置。CC 版本可能不兼容。\n');
316
+ process.exit(1);
317
+ }
318
+ replacements.sort((a, b) => b.start - a.start);
319
+ let newCode = code;
320
+ for (const r of replacements) {
321
+ newCode = newCode.slice(0, r.start) + r.replacement + newCode.slice(r.end);
322
+ }
323
+ writeResult(exePath, Buffer.from(shebang + newCode, 'utf-8'));
324
+ }
325
+ // ─── patch 入口 ────────────────────────────────────────────
326
+ async function patch() {
327
+ console.log('\n cc-wechat patch — Claude Code Channels 补丁\n');
328
+ const claudePath = findClaudeExe();
329
+ if (!claudePath) {
330
+ console.error(' 找不到 Claude Code。\n');
331
+ process.exit(1);
332
+ }
333
+ const exePath = resolvePatchTarget(claudePath);
334
+ console.log(` 查找: ${claudePath}`);
335
+ if (exePath !== claudePath)
336
+ console.log(` 解析: ${exePath}`);
337
+ console.log(` 目标: ${exePath}\n`);
338
+ if (isBinaryFile(exePath)) {
339
+ patchBinary(exePath);
206
340
  }
207
341
  else {
208
- console.log(` mv "${exePath}" "${exePath}.old"`);
209
- console.log(` mv "${tmpPath}" "${exePath}"\n`);
342
+ await patchAst(exePath);
210
343
  }
211
- console.log(` 恢复方法: 用 ${backupPath} 替换即可\n`);
212
344
  }
213
345
  function unpatch() {
214
346
  console.log('\n cc-wechat unpatch — 恢复原始 Claude Code\n');
215
347
  const claudePath = findClaudeExe();
216
348
  if (!claudePath) {
217
- console.error(' 找不到 Claude Code');
349
+ console.error(' 找不到 Claude Code。\n');
218
350
  process.exit(1);
219
351
  }
220
352
  const exePath = resolvePatchTarget(claudePath);
221
353
  const backupPath = exePath + '.bak';
222
354
  if (!fs.existsSync(backupPath)) {
223
- console.error(` 未找到备份文件 ${backupPath}`);
355
+ console.error(` 未找到备份 ${backupPath}\n`);
224
356
  process.exit(1);
225
357
  }
226
- const tmpPath = exePath + '.restore';
227
- fs.copyFileSync(backupPath, tmpPath);
228
- console.log(` 已准备恢复文件 ${tmpPath}`);
229
- console.log(' 请关闭所有 Claude Code 进程后手动替换:\n');
230
- if (process.platform === 'win32') {
231
- const dir = path.dirname(exePath);
232
- const name = path.basename(exePath);
233
- console.log(` cd ${dir}`);
234
- console.log(` Move-Item ${name} ${name}.patched -Force`);
235
- console.log(` Move-Item ${name}.restore ${name} -Force\n`);
358
+ try {
359
+ fs.copyFileSync(backupPath, exePath);
360
+ console.log(' 已恢复。\n');
236
361
  }
237
- else {
238
- console.log(` mv "${exePath}" "${exePath}.patched"`);
239
- console.log(` mv "${tmpPath}" "${exePath}"\n`);
362
+ catch {
363
+ const tmpPath = exePath + '.restore';
364
+ fs.copyFileSync(backupPath, tmpPath);
365
+ console.log(` ⚠️ CC 正在运行,恢复文件: ${tmpPath}\n`);
240
366
  }
241
367
  }
242
368
  // 入口
@@ -245,6 +371,6 @@ if (cmd === 'unpatch' || cmd === 'restore') {
245
371
  unpatch();
246
372
  }
247
373
  else {
248
- patch();
374
+ patch().catch(e => { console.error(` 错误: ${e.message}\n`); process.exit(1); });
249
375
  }
250
376
  //# sourceMappingURL=patch.js.map
package/dist/patch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-wechat",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "WeChat channel for Claude Code via iLink Bot API",
5
5
  "type": "module",
6
6
  "bin": {