cc-wechat 0.1.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,70 +1,160 @@
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
- // 补丁定义:[特征字符串, 替换字符串, 说明]
11
- const PATCHES = [
12
- // 1. Channels feature flag 云控
13
- [
14
- 'function PaH(){return lA("tengu_harbor",!1)}',
15
- 'function PaH(){return !0 }',
16
- 'Channels feature flag (tengu_harbor)',
17
- ],
18
- // 2. S1_ gate auth 检查
19
- [
20
- 'if(!yf()?.accessToken)',
21
- 'if( false )',
22
- 'Channel gate accessToken check',
23
- ],
24
- // 3. UI 层 noAuth 检查
25
- [
26
- 'noAuth:!yf()?.accessToken',
27
- 'noAuth: false ',
28
- 'UI noAuth display check',
29
- ],
10
+ import { execSync } from 'node:child_process';
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'],
30
17
  ];
31
- /** 查找 claude.exe 路径 */
18
+ // ─── 查找 claude ──────────────────────────────────────────
32
19
  function findClaudeExe() {
20
+ const home = homedir();
21
+ try {
22
+ const cmd = process.platform === 'win32' ? 'where claude 2>nul' : 'which claude 2>/dev/null';
23
+ const p = execSync(cmd, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim().split('\n')[0].trim();
24
+ if (p && fs.existsSync(p))
25
+ return p;
26
+ }
27
+ catch { /* ignore */ }
33
28
  const candidates = [
34
- path.join(homedir(), '.local', 'bin', 'claude.exe'),
35
- path.join(homedir(), '.local', 'bin', 'claude'),
36
- // npm 全局安装
37
- path.join(homedir(), 'AppData', 'Roaming', 'npm', 'node_modules', '@anthropic-ai', 'claude-code', 'cli.js'),
29
+ path.join(home, '.local', 'bin', 'claude.exe'),
30
+ path.join(home, '.local', 'bin', 'claude'),
31
+ path.join(home, 'AppData', 'Roaming', 'npm', 'node_modules', '@anthropic-ai', 'claude-code', 'cli.js'),
32
+ path.join(home, 'AppData', 'Roaming', 'npm', 'claude.cmd'),
33
+ path.join(home, 'scoop', 'shims', 'claude.exe'),
34
+ path.join('C:', 'ProgramData', 'chocolatey', 'bin', 'claude.exe'),
35
+ path.join('C:', 'Program Files', 'Claude Code', 'claude.exe'),
36
+ path.join('C:', 'Program Files (x86)', 'Claude Code', 'claude.exe'),
37
+ path.join(home, 'AppData', 'Local', 'Programs', 'claude-code', 'claude.exe'),
38
+ path.join(home, 'AppData', 'Local', 'claude-code', 'claude.exe'),
39
+ path.join(home, 'AppData', 'Local', 'AnthropicClaude', 'claude.exe'),
40
+ '/usr/local/bin/claude', '/opt/homebrew/bin/claude', '/usr/bin/claude', '/snap/bin/claude',
38
41
  ];
39
42
  for (const p of candidates) {
40
43
  if (fs.existsSync(p))
41
44
  return p;
42
45
  }
46
+ try {
47
+ const prefix = execSync('npm config get prefix', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
48
+ if (prefix) {
49
+ for (const c of [path.join(prefix, 'claude.cmd'), path.join(prefix, 'claude'), path.join(prefix, 'bin', 'claude')]) {
50
+ if (fs.existsSync(c))
51
+ return c;
52
+ }
53
+ }
54
+ }
55
+ catch { /* ignore */ }
56
+ const pathDirs = (process.env.PATH || '').split(process.platform === 'win32' ? ';' : ':');
57
+ const exeNames = process.platform === 'win32' ? ['claude.exe', 'claude.cmd'] : ['claude'];
58
+ for (const dir of pathDirs) {
59
+ for (const name of exeNames) {
60
+ const p = path.join(dir, name);
61
+ if (fs.existsSync(p))
62
+ return p;
63
+ }
64
+ }
43
65
  return null;
44
66
  }
45
- function patch() {
46
- console.log('\n cc-wechat patch — Claude Code Channels 补丁\n');
47
- const exePath = findClaudeExe();
48
- if (!exePath) {
49
- console.error(' 找不到 Claude Code。请确认已安装。');
50
- process.exit(1);
67
+ // ─── 解析到真正的可 patch 文件 ────────────────────────────
68
+ function resolvePatchTarget(claudePath) {
69
+ const ext = path.extname(claudePath).toLowerCase();
70
+ const dir = path.dirname(claudePath);
71
+ if (ext === '.exe')
72
+ return claudePath;
73
+ const stat = fs.statSync(claudePath);
74
+ if (stat.size > 1_000_000)
75
+ return claudePath;
76
+ const cliJs = path.join(dir, 'node_modules', '@anthropic-ai', 'claude-code', 'cli.js');
77
+ if (fs.existsSync(cliJs))
78
+ return cliJs;
79
+ if (ext === '.cmd') {
80
+ try {
81
+ const content = fs.readFileSync(claudePath, 'utf-8');
82
+ if (content.match(/node_modules[\\/]@anthropic-ai[\\/]claude-code[\\/]cli\.js/)) {
83
+ const resolved = path.join(dir, 'node_modules', '@anthropic-ai', 'claude-code', 'cli.js');
84
+ if (fs.existsSync(resolved))
85
+ return resolved;
86
+ }
87
+ }
88
+ catch { /* ignore */ }
51
89
  }
52
- console.log(` 目标: ${exePath}`);
53
- // 读取二进制
54
- const buf = fs.readFileSync(exePath);
55
- let totalPatched = 0;
56
- let alreadyPatched = 0;
57
- for (const [original, replacement, desc] of PATCHES) {
58
- if (original.length !== replacement.length) {
59
- console.error(` 错误: "${desc}" 长度不匹配 (${original.length} vs ${replacement.length})`);
60
- process.exit(1);
90
+ try {
91
+ const realPath = fs.realpathSync(claudePath);
92
+ if (realPath !== claudePath)
93
+ return resolvePatchTarget(realPath);
94
+ }
95
+ catch { /* ignore */ }
96
+ return claudePath;
97
+ }
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}`);
123
+ }
124
+ try {
125
+ fs.writeFileSync(exePath, buf);
126
+ console.log('\n ✅ 补丁已直接写入,立即生效!\n');
127
+ }
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`);
61
140
  }
141
+ else {
142
+ console.log(` mv "${exePath}" "${exePath}.old"`);
143
+ console.log(` mv "${tmpPath}" "${exePath}"`);
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) {
62
155
  const origBuf = Buffer.from(original);
63
156
  const patchBuf = Buffer.from(replacement);
64
- // 搜索所有出现位置
65
- let pos = 0;
66
- let count = 0;
67
- let alreadyCount = 0;
157
+ let pos = 0, count = 0;
68
158
  while (true) {
69
159
  const idx = buf.indexOf(origBuf, pos);
70
160
  if (idx === -1)
@@ -73,7 +163,7 @@ function patch() {
73
163
  count++;
74
164
  pos = idx + 1;
75
165
  }
76
- // 检查是否已经 patch
166
+ let alreadyCount = 0;
77
167
  pos = 0;
78
168
  while (true) {
79
169
  const idx = buf.indexOf(patchBuf, pos);
@@ -83,75 +173,196 @@ function patch() {
83
173
  pos = idx + 1;
84
174
  }
85
175
  if (count > 0) {
86
- console.log(` [PATCH] ${desc}: ${count} 处已修补`);
87
- totalPatched += count;
176
+ console.log(` ${desc} ${count} 处已修补`);
177
+ patched += count;
88
178
  }
89
179
  else if (alreadyCount > 0) {
90
- console.log(` [SKIP] ${desc}: 已修补过 (${alreadyCount} 处)`);
91
- alreadyPatched += alreadyCount;
180
+ console.log(` ⏭️ ${desc} 已修补`);
181
+ skipped += alreadyCount;
92
182
  }
93
183
  else {
94
- console.log(` [WARN] ${desc}: 未找到特征字符串(CC 版本可能已更新)`);
184
+ console.log(` ⚠️ ${desc} 未找到`);
95
185
  }
96
186
  }
97
- if (totalPatched === 0 && alreadyPatched > 0) {
98
- console.log('\n 所有补丁已生效,无需操作。\n');
187
+ if (patched === 0 && skipped > 0) {
188
+ console.log('\n 所有补丁已生效。\n');
99
189
  return;
100
190
  }
101
- if (totalPatched === 0) {
102
- console.error('\n 未找到任何可修补的位置。Claude Code 版本可能不兼容。\n');
191
+ if (patched === 0) {
192
+ console.error('\n 未找到可修补位置。\n');
103
193
  process.exit(1);
104
194
  }
105
- // 备份
106
- const backupPath = exePath + '.bak';
107
- if (!fs.existsSync(backupPath)) {
108
- fs.copyFileSync(exePath, backupPath);
109
- console.log(` [BACKUP] 已备份到 ${backupPath}`);
110
- }
111
- // 写入 先写临时文件再替换
112
- const tmpPath = exePath + '.patched';
113
- fs.writeFileSync(tmpPath, buf);
114
- console.log(`\n 补丁已写入 ${tmpPath}`);
115
- console.log(' 请关闭所有 Claude Code 进程后手动替换:\n');
116
- if (process.platform === 'win32') {
117
- const dir = path.dirname(exePath);
118
- const name = path.basename(exePath);
119
- console.log(` cd ${dir}`);
120
- console.log(` Move-Item ${name} ${name}.old -Force`);
121
- 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);
122
340
  }
123
341
  else {
124
- console.log(` mv "${exePath}" "${exePath}.old"`);
125
- console.log(` mv "${tmpPath}" "${exePath}"\n`);
342
+ await patchAst(exePath);
126
343
  }
127
- console.log(` 恢复方法: 用 ${backupPath} 替换即可\n`);
128
344
  }
129
345
  function unpatch() {
130
346
  console.log('\n cc-wechat unpatch — 恢复原始 Claude Code\n');
131
- const exePath = findClaudeExe();
132
- if (!exePath) {
133
- console.error(' 找不到 Claude Code');
347
+ const claudePath = findClaudeExe();
348
+ if (!claudePath) {
349
+ console.error(' 找不到 Claude Code。\n');
134
350
  process.exit(1);
135
351
  }
352
+ const exePath = resolvePatchTarget(claudePath);
136
353
  const backupPath = exePath + '.bak';
137
354
  if (!fs.existsSync(backupPath)) {
138
- console.error(` 未找到备份文件 ${backupPath}`);
355
+ console.error(` 未找到备份 ${backupPath}\n`);
139
356
  process.exit(1);
140
357
  }
141
- const tmpPath = exePath + '.restore';
142
- fs.copyFileSync(backupPath, tmpPath);
143
- console.log(` 已准备恢复文件 ${tmpPath}`);
144
- console.log(' 请关闭所有 Claude Code 进程后手动替换:\n');
145
- if (process.platform === 'win32') {
146
- const dir = path.dirname(exePath);
147
- const name = path.basename(exePath);
148
- console.log(` cd ${dir}`);
149
- console.log(` Move-Item ${name} ${name}.patched -Force`);
150
- console.log(` Move-Item ${name}.restore ${name} -Force\n`);
358
+ try {
359
+ fs.copyFileSync(backupPath, exePath);
360
+ console.log(' 已恢复。\n');
151
361
  }
152
- else {
153
- console.log(` mv "${exePath}" "${exePath}.patched"`);
154
- console.log(` mv "${tmpPath}" "${exePath}"\n`);
362
+ catch {
363
+ const tmpPath = exePath + '.restore';
364
+ fs.copyFileSync(backupPath, tmpPath);
365
+ console.log(` ⚠️ CC 正在运行,恢复文件: ${tmpPath}\n`);
155
366
  }
156
367
  }
157
368
  // 入口
@@ -160,6 +371,6 @@ if (cmd === 'unpatch' || cmd === 'restore') {
160
371
  unpatch();
161
372
  }
162
373
  else {
163
- patch();
374
+ patch().catch(e => { console.error(` 错误: ${e.message}\n`); process.exit(1); });
164
375
  }
165
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.1.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": {