cc-wechat 0.6.2 → 0.6.4

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/cli.js CHANGED
@@ -97,33 +97,39 @@ function status() {
97
97
  }
98
98
  // ─── main ────────────────────────────────────────────
99
99
  const command = process.argv[2];
100
- switch (command) {
101
- case 'install':
102
- case 'setup':
103
- install();
104
- break;
105
- case 'login':
106
- login();
107
- break;
108
- case 'patch':
109
- case 'unpatch': {
110
- // 动态导入 patch 模块,传递命令
111
- process.argv[2] = command;
112
- await import('./patch.js');
113
- break;
100
+ if (!command && !process.stdin.isTTY) {
101
+ // 无参数 + 非 TTY(MCP stdio 模式)→ 启动 MCP server
102
+ await import('./server.js');
103
+ }
104
+ else {
105
+ switch (command) {
106
+ case 'install':
107
+ case 'setup':
108
+ install();
109
+ break;
110
+ case 'login':
111
+ login();
112
+ break;
113
+ case 'patch':
114
+ case 'unpatch': {
115
+ // 动态导入 patch 模块,传递命令
116
+ process.argv[2] = command;
117
+ await import('./patch.js');
118
+ break;
119
+ }
120
+ case 'status':
121
+ status();
122
+ break;
123
+ case 'help':
124
+ case '--help':
125
+ case '-h':
126
+ case undefined:
127
+ help();
128
+ break;
129
+ default:
130
+ console.error(`未知命令: ${command}`);
131
+ help();
132
+ process.exit(1);
114
133
  }
115
- case 'status':
116
- status();
117
- break;
118
- case 'help':
119
- case '--help':
120
- case '-h':
121
- case undefined:
122
- help();
123
- break;
124
- default:
125
- console.error(`未知命令: ${command}`);
126
- help();
127
- process.exit(1);
128
134
  }
129
135
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/store.js CHANGED
@@ -1,15 +1,38 @@
1
1
  /**
2
2
  * cc-wechat 凭证持久化 — account.json 原子写入 + sync buf
3
3
  */
4
- import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
4
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
5
5
  import { homedir } from 'node:os';
6
6
  import { join } from 'node:path';
7
7
  const ACCOUNT_FILE = 'account.json';
8
8
  const SYNC_BUF_FILE = 'sync-buf.txt';
9
+ let migrated = false;
10
+ /**
11
+ * 旧版凭证自动迁移到 default profile 目录
12
+ */
13
+ function migrateOldState() {
14
+ if (migrated)
15
+ return;
16
+ migrated = true;
17
+ const base = join(homedir(), '.claude', 'channels', 'wechat');
18
+ const oldAccount = join(base, ACCOUNT_FILE);
19
+ if (!existsSync(oldAccount))
20
+ return;
21
+ const defaultDir = join(base, 'default');
22
+ // default 目录已有凭证则不覆盖
23
+ if (existsSync(join(defaultDir, ACCOUNT_FILE)))
24
+ return;
25
+ mkdirSync(defaultDir, { recursive: true });
26
+ renameSync(oldAccount, join(defaultDir, ACCOUNT_FILE));
27
+ const oldBuf = join(base, SYNC_BUF_FILE);
28
+ if (existsSync(oldBuf))
29
+ renameSync(oldBuf, join(defaultDir, SYNC_BUF_FILE));
30
+ }
9
31
  /**
10
32
  * 获取状态目录路径,不存在则自动创建
11
33
  */
12
34
  export function getStateDir() {
35
+ migrateOldState();
13
36
  const profile = process.env.WECHAT_PROFILE || 'default';
14
37
  const dir = join(homedir(), '.claude', 'channels', 'wechat', profile);
15
38
  mkdirSync(dir, { recursive: true });
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC1C,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.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.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "WeChat channel for Claude Code via iLink Bot API",
5
5
  "type": "module",
6
6
  "bin": {
package/src/cli.ts CHANGED
@@ -109,16 +109,21 @@ function status(): void {
109
109
  // ─── main ────────────────────────────────────────────
110
110
 
111
111
  const command = process.argv[2];
112
- switch (command) {
113
- case 'install': case 'setup': install(); break;
114
- case 'login': login(); break;
115
- case 'patch': case 'unpatch': {
116
- // 动态导入 patch 模块,传递命令
117
- process.argv[2] = command;
118
- await import('./patch.js');
119
- break;
112
+ if (!command && !process.stdin.isTTY) {
113
+ // 无参数 + TTY(MCP stdio 模式)→ 启动 MCP server
114
+ await import('./server.js');
115
+ } else {
116
+ switch (command) {
117
+ case 'install': case 'setup': install(); break;
118
+ case 'login': login(); break;
119
+ case 'patch': case 'unpatch': {
120
+ // 动态导入 patch 模块,传递命令
121
+ process.argv[2] = command;
122
+ await import('./patch.js');
123
+ break;
124
+ }
125
+ case 'status': status(); break;
126
+ case 'help': case '--help': case '-h': case undefined: help(); break;
127
+ default: console.error(`未知命令: ${command}`); help(); process.exit(1);
120
128
  }
121
- case 'status': status(); break;
122
- case 'help': case '--help': case '-h': case undefined: help(); break;
123
- default: console.error(`未知命令: ${command}`); help(); process.exit(1);
124
129
  }
package/src/store.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * cc-wechat 凭证持久化 — account.json 原子写入 + sync buf
3
3
  */
4
4
 
5
- import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
5
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
6
6
  import { homedir } from 'node:os';
7
7
  import { join } from 'node:path';
8
8
  import type { AccountData } from './types.js';
@@ -10,10 +10,31 @@ import type { AccountData } from './types.js';
10
10
  const ACCOUNT_FILE = 'account.json';
11
11
  const SYNC_BUF_FILE = 'sync-buf.txt';
12
12
 
13
+ let migrated = false;
14
+
15
+ /**
16
+ * 旧版凭证自动迁移到 default profile 目录
17
+ */
18
+ function migrateOldState(): void {
19
+ if (migrated) return;
20
+ migrated = true;
21
+ const base = join(homedir(), '.claude', 'channels', 'wechat');
22
+ const oldAccount = join(base, ACCOUNT_FILE);
23
+ if (!existsSync(oldAccount)) return;
24
+ const defaultDir = join(base, 'default');
25
+ // default 目录已有凭证则不覆盖
26
+ if (existsSync(join(defaultDir, ACCOUNT_FILE))) return;
27
+ mkdirSync(defaultDir, { recursive: true });
28
+ renameSync(oldAccount, join(defaultDir, ACCOUNT_FILE));
29
+ const oldBuf = join(base, SYNC_BUF_FILE);
30
+ if (existsSync(oldBuf)) renameSync(oldBuf, join(defaultDir, SYNC_BUF_FILE));
31
+ }
32
+
13
33
  /**
14
34
  * 获取状态目录路径,不存在则自动创建
15
35
  */
16
36
  export function getStateDir(): string {
37
+ migrateOldState();
17
38
  const profile = process.env.WECHAT_PROFILE || 'default';
18
39
  const dir = join(homedir(), '.claude', 'channels', 'wechat', profile);
19
40
  mkdirSync(dir, { recursive: true });