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 +33 -27
- package/dist/cli.js.map +1 -1
- package/dist/store.js +24 -1
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +16 -11
- package/src/store.ts +22 -1
package/dist/cli.js
CHANGED
|
@@ -97,33 +97,39 @@ function status() {
|
|
|
97
97
|
}
|
|
98
98
|
// ─── main ────────────────────────────────────────────
|
|
99
99
|
const command = process.argv[2];
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,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,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,qBAAqB;IACrB,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAAE,OAAO;IACvD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,MAAM,CAAC;QAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,eAAe,EAAE,CAAC;IAClB,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"}
|
package/package.json
CHANGED
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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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 });
|