wangchuan 3.0.0 → 4.0.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.
Files changed (72) hide show
  1. package/README.md +146 -174
  2. package/README.zh-CN.md +254 -0
  3. package/dist/bin/wangchuan.d.ts +10 -2
  4. package/dist/bin/wangchuan.d.ts.map +1 -1
  5. package/dist/bin/wangchuan.js +30 -233
  6. package/dist/bin/wangchuan.js.map +1 -1
  7. package/dist/src/agents/codex.d.ts +9 -0
  8. package/dist/src/agents/codex.d.ts.map +1 -0
  9. package/dist/src/agents/codex.js +20 -0
  10. package/dist/src/agents/codex.js.map +1 -0
  11. package/dist/src/agents/index.d.ts.map +1 -1
  12. package/dist/src/agents/index.js +2 -0
  13. package/dist/src/agents/index.js.map +1 -1
  14. package/dist/src/commands/completions.js +2 -2
  15. package/dist/src/commands/completions.js.map +1 -1
  16. package/dist/src/commands/doctor.d.ts +17 -6
  17. package/dist/src/commands/doctor.d.ts.map +1 -1
  18. package/dist/src/commands/doctor.js +233 -65
  19. package/dist/src/commands/doctor.js.map +1 -1
  20. package/dist/src/commands/list.d.ts.map +1 -1
  21. package/dist/src/commands/list.js +1 -0
  22. package/dist/src/commands/list.js.map +1 -1
  23. package/dist/src/commands/status.d.ts +20 -3
  24. package/dist/src/commands/status.d.ts.map +1 -1
  25. package/dist/src/commands/status.js +321 -51
  26. package/dist/src/commands/status.js.map +1 -1
  27. package/dist/src/commands/sync.d.ts.map +1 -1
  28. package/dist/src/commands/sync.js +51 -0
  29. package/dist/src/commands/sync.js.map +1 -1
  30. package/dist/src/commands/template.js +1 -1
  31. package/dist/src/commands/template.js.map +1 -1
  32. package/dist/src/core/config.d.ts +9 -9
  33. package/dist/src/core/config.d.ts.map +1 -1
  34. package/dist/src/core/config.js +11 -11
  35. package/dist/src/core/config.js.map +1 -1
  36. package/dist/src/core/crypto.d.ts +10 -10
  37. package/dist/src/core/crypto.d.ts.map +1 -1
  38. package/dist/src/core/crypto.js +19 -19
  39. package/dist/src/core/crypto.js.map +1 -1
  40. package/dist/src/core/git.d.ts +2 -2
  41. package/dist/src/core/git.js +9 -9
  42. package/dist/src/core/git.js.map +1 -1
  43. package/dist/src/core/json-field.d.ts +5 -5
  44. package/dist/src/core/json-field.d.ts.map +1 -1
  45. package/dist/src/core/json-field.js +5 -5
  46. package/dist/src/core/json-field.js.map +1 -1
  47. package/dist/src/core/sync.d.ts +9 -9
  48. package/dist/src/core/sync.js +47 -47
  49. package/dist/src/core/sync.js.map +1 -1
  50. package/dist/src/i18n.d.ts.map +1 -1
  51. package/dist/src/i18n.js +24 -10
  52. package/dist/src/i18n.js.map +1 -1
  53. package/dist/src/types.d.ts +24 -23
  54. package/dist/src/types.d.ts.map +1 -1
  55. package/dist/src/types.js +3 -3
  56. package/dist/src/types.js.map +1 -1
  57. package/dist/src/utils/linediff.d.ts +6 -5
  58. package/dist/src/utils/linediff.d.ts.map +1 -1
  59. package/dist/src/utils/linediff.js +10 -9
  60. package/dist/src/utils/linediff.js.map +1 -1
  61. package/dist/test/crypto.test.d.ts +1 -1
  62. package/dist/test/crypto.test.js +16 -16
  63. package/dist/test/crypto.test.js.map +1 -1
  64. package/dist/test/json-field.test.d.ts +1 -1
  65. package/dist/test/json-field.test.js +13 -13
  66. package/dist/test/json-field.test.js.map +1 -1
  67. package/dist/test/sync.test.d.ts +8 -8
  68. package/dist/test/sync.test.js +122 -113
  69. package/dist/test/sync.test.js.map +1 -1
  70. package/package.json +1 -1
  71. package/skill/SKILL.md +40 -53
  72. package/skill/claude/SKILL.md +10 -41
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/commands/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/commands/template.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,29 @@
1
1
  /**
2
- * config.ts — 全局配置管理
2
+ * config.ts — Global configuration management
3
3
  *
4
- * 配置文件:~/.wangchuan/config.json
5
- * 密钥文件:~/.wangchuan/master.key
4
+ * Config file: ~/.wangchuan/config.json
5
+ * Key file: ~/.wangchuan/master.key
6
6
  */
7
7
  import type { WangchuanConfig } from '../types.js';
8
8
  export declare const CONFIG_VERSION = 2;
9
9
  export declare const config: {
10
10
  /** Read config, return null if not found */
11
11
  readonly load: () => WangchuanConfig | null;
12
- /** 保存配置到磁盘 */
12
+ /** Save config to disk */
13
13
  readonly save: (cfg: WangchuanConfig) => void;
14
- /** 探测远程仓库的默认分支 */
14
+ /** Detect the default branch of a remote repository */
15
15
  readonly detectDefaultBranch: (repo: string) => Promise<string>;
16
- /** 初始化目录和配置文件,返回新建的配置对象 */
16
+ /** Initialize directory and config file, return the new config object */
17
17
  readonly initialize: (repo: string) => Promise<WangchuanConfig>;
18
- /** 浅合并两个配置(override 优先) */
18
+ /** Shallow merge two configs (override takes priority) */
19
19
  readonly merge: (base: WangchuanConfig, override: Partial<WangchuanConfig>) => WangchuanConfig;
20
- /** 默认配置(迁移时使用) */
20
+ /** Defaults (used during migration) */
21
21
  readonly defaults: {
22
22
  readonly profiles: import("../types.js").AgentProfiles;
23
23
  readonly shared: import("../types.js").SharedConfig;
24
24
  readonly version: 2;
25
25
  };
26
- /** 常用路径常量 */
26
+ /** Common path constants */
27
27
  readonly paths: {
28
28
  readonly dir: string;
29
29
  readonly config: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,eAAO,MAAM,cAAc,IAAI,CAAC;AAQhC,eAAO,MAAM,MAAM;IACjB,4CAA4C;yBACpC,eAAe,GAAG,IAAI;IAsB9B,cAAc;yBACJ,eAAe,KAAG,IAAI;IAMhC,kBAAkB;yCACc,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;IAaxD,2BAA2B;gCACJ,MAAM,KAAG,OAAO,CAAC,eAAe,CAAC;IAiBxD,2BAA2B;2BACf,eAAe,YAAY,OAAO,CAAC,eAAe,CAAC,KAAG,eAAe;IAIjF,kBAAkB;;;;;;IAOlB,aAAa;;;;;;;CAOL,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAK7D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,eAAO,MAAM,cAAc,IAAI,CAAC;AAQhC,eAAO,MAAM,MAAM;IACjB,4CAA4C;yBACpC,eAAe,GAAG,IAAI;IAsB9B,0BAA0B;yBAChB,eAAe,KAAG,IAAI;IAMhC,uDAAuD;yCACvB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;IAaxD,yEAAyE;gCAClD,MAAM,KAAG,OAAO,CAAC,eAAe,CAAC;IAiBxD,0DAA0D;2BAC9C,eAAe,YAAY,OAAO,CAAC,eAAe,CAAC,KAAG,eAAe;IAIjF,uCAAuC;;;;;;IAOvC,4BAA4B;;;;;;;CAOpB,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAK7D"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * config.ts — 全局配置管理
2
+ * config.ts — Global configuration management
3
3
  *
4
- * 配置文件:~/.wangchuan/config.json
5
- * 密钥文件:~/.wangchuan/master.key
4
+ * Config file: ~/.wangchuan/config.json
5
+ * Key file: ~/.wangchuan/master.key
6
6
  */
7
7
  import fs from 'fs';
8
8
  import os from 'os';
@@ -16,9 +16,9 @@ const CONFIG_PATH = path.join(WANGCHUAN_DIR, 'config.json');
16
16
  const KEY_PATH = path.join(WANGCHUAN_DIR, 'master.key');
17
17
  const EXAMPLE_PATH = fileURLToPath(new URL('../../.wangchuan/config.example.json', import.meta.url));
18
18
  export const CONFIG_VERSION = 2;
19
- /** 默认配置骨架 v2 — derived from agent definitions in src/agents/ */
19
+ /** Default config skeleton v2 — derived from agent definitions in src/agents/ */
20
20
  const DEFAULT_PROFILES = buildDefaultProfiles();
21
- /** 共享层默认配置 — derived from agent definitions in src/agents/ */
21
+ /** Shared tier default config — derived from agent definitions in src/agents/ */
22
22
  const DEFAULT_SHARED = buildDefaultShared();
23
23
  export const config = {
24
24
  /** Read config, return null if not found */
@@ -45,13 +45,13 @@ export const config = {
45
45
  }
46
46
  return parsed;
47
47
  },
48
- /** 保存配置到磁盘 */
48
+ /** Save config to disk */
49
49
  save(cfg) {
50
50
  fs.mkdirSync(WANGCHUAN_DIR, { recursive: true });
51
51
  fs.writeFileSync(CONFIG_PATH, JSON.stringify(cfg, null, 2), 'utf-8');
52
52
  logger.debug(t('config.saved', { path: CONFIG_PATH }));
53
53
  },
54
- /** 探测远程仓库的默认分支 */
54
+ /** Detect the default branch of a remote repository */
55
55
  async detectDefaultBranch(repo) {
56
56
  try {
57
57
  const { execSync } = await import('child_process');
@@ -65,7 +65,7 @@ export const config = {
65
65
  return 'main';
66
66
  }
67
67
  },
68
- /** 初始化目录和配置文件,返回新建的配置对象 */
68
+ /** Initialize directory and config file, return the new config object */
69
69
  async initialize(repo) {
70
70
  fs.mkdirSync(WANGCHUAN_DIR, { recursive: true });
71
71
  const branch = await this.detectDefaultBranch(repo);
@@ -82,17 +82,17 @@ export const config = {
82
82
  this.save(cfg);
83
83
  return cfg;
84
84
  },
85
- /** 浅合并两个配置(override 优先) */
85
+ /** Shallow merge two configs (override takes priority) */
86
86
  merge(base, override) {
87
87
  return { ...base, ...override };
88
88
  },
89
- /** 默认配置(迁移时使用) */
89
+ /** Defaults (used during migration) */
90
90
  defaults: {
91
91
  profiles: DEFAULT_PROFILES,
92
92
  shared: DEFAULT_SHARED,
93
93
  version: CONFIG_VERSION,
94
94
  },
95
- /** 常用路径常量 */
95
+ /** Common path constants */
96
96
  paths: {
97
97
  dir: WANGCHUAN_DIR,
98
98
  config: CONFIG_PATH,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,24 @@
1
1
  /**
2
- * crypto.ts — AES-256-GCM 加解密模块
2
+ * crypto.ts — AES-256-GCM encryption/decryption module
3
3
  *
4
- * 密钥文件格式:32 字节随机数据,以十六进制字符串存储(64 chars
5
- * 密文文件格式:IV(12B) | AuthTag(16B) | CipherText → Base64 写入 .enc 文件
4
+ * Key file format: 32 bytes of random data, stored as hex string (64 chars)
5
+ * Ciphertext format: IV(12B) | AuthTag(16B) | CipherText → Base64 written to .enc file
6
6
  */
7
7
  export declare const cryptoEngine: {
8
8
  /**
9
- * 生成新主密钥并写入文件(mode 0o600
10
- * 返回原始 32 字节 Buffer,供测试断言使用
9
+ * Generate a new master key and write to file (mode 0o600).
10
+ * Returns the raw 32-byte Buffer for test assertions.
11
11
  */
12
12
  readonly generateKey: (keyPath: string) => Buffer;
13
- /** 密钥文件是否存在 */
13
+ /** Check if key file exists */
14
14
  readonly hasKey: (keyPath: string) => boolean;
15
- /** 加密源文件,密文写入 destPath(通常以 .enc 结尾) */
15
+ /** Encrypt source file, write ciphertext to destPath (typically ending in .enc) */
16
16
  readonly encryptFile: (srcPath: string, destPath: string, keyPath: string) => void;
17
- /** 解密 .enc 文件,明文写入 destPath */
17
+ /** Decrypt .enc file, write plaintext to destPath */
18
18
  readonly decryptFile: (srcPath: string, destPath: string, keyPath: string) => void;
19
- /** 加密任意字符串,返回 Base64 密文 */
19
+ /** Encrypt an arbitrary string, return Base64 ciphertext */
20
20
  readonly encryptString: (plaintext: string, keyPath: string) => string;
21
- /** 解密 Base64 密文,返回原始字符串 */
21
+ /** Decrypt Base64 ciphertext, return original string */
22
22
  readonly decryptString: (b64: string, keyPath: string) => string;
23
23
  };
24
24
  //# sourceMappingURL=crypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/core/crypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH,eAAO,MAAM,YAAY;IACvB;;;OAGG;oCACkB,MAAM,KAAG,MAAM;IAQpC,eAAe;+BACC,MAAM,KAAG,OAAO;IAIhC,uCAAuC;oCAClB,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,IAAI;IASrE,+BAA+B;oCACV,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,IAAI;IASrE,2BAA2B;wCACF,MAAM,WAAW,MAAM,KAAG,MAAM;IAKzD,2BAA2B;kCACR,MAAM,WAAW,MAAM,KAAG,MAAM;CAI3C,CAAC"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/core/crypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH,eAAO,MAAM,YAAY;IACvB;;;OAGG;oCACkB,MAAM,KAAG,MAAM;IAQpC,+BAA+B;+BACf,MAAM,KAAG,OAAO;IAIhC,mFAAmF;oCAC9D,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,IAAI;IASrE,qDAAqD;oCAChC,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,IAAI;IASrE,4DAA4D;wCACnC,MAAM,WAAW,MAAM,KAAG,MAAM;IAKzD,wDAAwD;kCACrC,MAAM,WAAW,MAAM,KAAG,MAAM;CAI3C,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * crypto.ts — AES-256-GCM 加解密模块
2
+ * crypto.ts — AES-256-GCM encryption/decryption module
3
3
  *
4
- * 密钥文件格式:32 字节随机数据,以十六进制字符串存储(64 chars
5
- * 密文文件格式:IV(12B) | AuthTag(16B) | CipherText → Base64 写入 .enc 文件
4
+ * Key file format: 32 bytes of random data, stored as hex string (64 chars)
5
+ * Ciphertext format: IV(12B) | AuthTag(16B) | CipherText → Base64 written to .enc file
6
6
  */
7
7
  import crypto from 'crypto';
8
8
  import fs from 'fs';
@@ -10,20 +10,20 @@ import path from 'path';
10
10
  import { logger } from '../utils/logger.js';
11
11
  const ALGO = 'aes-256-gcm';
12
12
  const KEY_BYTES = 32; // 256 bit
13
- const IV_BYTES = 12; // 96 bit (GCM 推荐)
13
+ const IV_BYTES = 12; // 96 bit (GCM recommended)
14
14
  const TAG_BYTES = 16; // 128 bit auth tag
15
- /** 从文件加载并验证主密钥 */
15
+ /** Load and validate the master key from file */
16
16
  function loadKey(keyPath) {
17
17
  if (!fs.existsSync(keyPath)) {
18
- throw new Error(`密钥文件不存在: ${keyPath}\n请先运行 wangchuan init 生成密钥。`);
18
+ throw new Error(`Key file not found: ${keyPath}\nPlease run wangchuan init to generate a key.`);
19
19
  }
20
20
  const hex = fs.readFileSync(keyPath, 'utf-8').trim();
21
21
  if (hex.length !== KEY_BYTES * 2) {
22
- throw new Error(`密钥文件格式无效,期望 ${KEY_BYTES * 2} 个十六进制字符`);
22
+ throw new Error(`Invalid key file format, expected ${KEY_BYTES * 2} hex characters`);
23
23
  }
24
24
  return Buffer.from(hex, 'hex');
25
25
  }
26
- /** 加密 Buffer → Base64 字符串(格式:IV + AuthTag + CipherText */
26
+ /** Encrypt Buffer → Base64 string (format: IV + AuthTag + CipherText) */
27
27
  function encryptBuffer(plaintext, key) {
28
28
  const iv = crypto.randomBytes(IV_BYTES);
29
29
  const cipher = crypto.createCipheriv(ALGO, key, iv);
@@ -31,7 +31,7 @@ function encryptBuffer(plaintext, key) {
31
31
  const tag = cipher.getAuthTag();
32
32
  return Buffer.concat([iv, tag, enc]).toString('base64');
33
33
  }
34
- /** Base64 密文原始 Buffer */
34
+ /** Base64 ciphertextoriginal Buffer */
35
35
  function decryptBuffer(b64, key) {
36
36
  const data = Buffer.from(b64, 'base64');
37
37
  const iv = data.subarray(0, IV_BYTES);
@@ -43,44 +43,44 @@ function decryptBuffer(b64, key) {
43
43
  }
44
44
  export const cryptoEngine = {
45
45
  /**
46
- * 生成新主密钥并写入文件(mode 0o600
47
- * 返回原始 32 字节 Buffer,供测试断言使用
46
+ * Generate a new master key and write to file (mode 0o600).
47
+ * Returns the raw 32-byte Buffer for test assertions.
48
48
  */
49
49
  generateKey(keyPath) {
50
50
  fs.mkdirSync(path.dirname(keyPath), { recursive: true });
51
51
  const key = crypto.randomBytes(KEY_BYTES);
52
52
  fs.writeFileSync(keyPath, key.toString('hex'), { mode: 0o600, encoding: 'utf-8' });
53
- logger.ok(`主密钥已生成: ${keyPath}`);
53
+ logger.ok(`Master key generated: ${keyPath}`);
54
54
  return key;
55
55
  },
56
- /** 密钥文件是否存在 */
56
+ /** Check if key file exists */
57
57
  hasKey(keyPath) {
58
58
  return fs.existsSync(keyPath);
59
59
  },
60
- /** 加密源文件,密文写入 destPath(通常以 .enc 结尾) */
60
+ /** Encrypt source file, write ciphertext to destPath (typically ending in .enc) */
61
61
  encryptFile(srcPath, destPath, keyPath) {
62
62
  const key = loadKey(keyPath);
63
63
  const plaintext = fs.readFileSync(srcPath);
64
64
  const encrypted = encryptBuffer(plaintext, key);
65
65
  fs.mkdirSync(path.dirname(destPath), { recursive: true });
66
66
  fs.writeFileSync(destPath, encrypted, 'utf-8');
67
- logger.debug(`已加密: ${srcPath} → ${destPath}`);
67
+ logger.debug(`Encrypted: ${srcPath} → ${destPath}`);
68
68
  },
69
- /** 解密 .enc 文件,明文写入 destPath */
69
+ /** Decrypt .enc file, write plaintext to destPath */
70
70
  decryptFile(srcPath, destPath, keyPath) {
71
71
  const key = loadKey(keyPath);
72
72
  const encrypted = fs.readFileSync(srcPath, 'utf-8').trim();
73
73
  const plaintext = decryptBuffer(encrypted, key);
74
74
  fs.mkdirSync(path.dirname(destPath), { recursive: true });
75
75
  fs.writeFileSync(destPath, plaintext);
76
- logger.debug(`已解密: ${srcPath} → ${destPath}`);
76
+ logger.debug(`Decrypted: ${srcPath} → ${destPath}`);
77
77
  },
78
- /** 加密任意字符串,返回 Base64 密文 */
78
+ /** Encrypt an arbitrary string, return Base64 ciphertext */
79
79
  encryptString(plaintext, keyPath) {
80
80
  const key = loadKey(keyPath);
81
81
  return encryptBuffer(Buffer.from(plaintext, 'utf-8'), key);
82
82
  },
83
- /** 解密 Base64 密文,返回原始字符串 */
83
+ /** Decrypt Base64 ciphertext, return original string */
84
84
  decryptString(b64, keyPath) {
85
85
  const key = loadKey(keyPath);
86
86
  return decryptBuffer(b64, key).toString('utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/core/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/core/crypto.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * git.ts — simple-git 封装,提供幂等的 Git 操作
2
+ * git.ts — simple-git wrapper providing idempotent Git operations
3
3
  *
4
- * simple-git v3 ESM 下必须使用具名导入 { simpleGit } 而非默认导入。
4
+ * simple-git v3 requires named import { simpleGit } under ESM (not default import).
5
5
  */
6
6
  import type { DefaultLogFields } from 'simple-git';
7
7
  import type { CommitResult } from '../types.js';
@@ -1,7 +1,7 @@
1
1
  /**
2
- * git.ts — simple-git 封装,提供幂等的 Git 操作
2
+ * git.ts — simple-git wrapper providing idempotent Git operations
3
3
  *
4
- * simple-git v3 ESM 下必须使用具名导入 { simpleGit } 而非默认导入。
4
+ * simple-git v3 requires named import { simpleGit } under ESM (not default import).
5
5
  */
6
6
  import { simpleGit } from 'simple-git';
7
7
  import fs from 'fs';
@@ -16,13 +16,13 @@ function createGit(repoPath) {
16
16
  export const gitEngine = {
17
17
  async cloneOrFetch(remoteUrl, localPath, branch = 'main') {
18
18
  if (fs.existsSync(path.join(localPath, '.git'))) {
19
- logger.debug(`仓库已存在,执行 fetch: ${localPath}`);
19
+ logger.debug(`Repo exists, running fetch: ${localPath}`);
20
20
  const git = createGit(localPath);
21
21
  await git.fetch('origin', branch);
22
22
  await git.reset(['--hard', `origin/${branch}`]);
23
23
  }
24
24
  else {
25
- logger.debug(`克隆仓库: ${remoteUrl} → ${localPath}`);
25
+ logger.debug(`Cloning repo: ${remoteUrl} → ${localPath}`);
26
26
  fs.mkdirSync(localPath, { recursive: true });
27
27
  await simpleGit().clone(remoteUrl, localPath, ['--branch', branch, '--single-branch']);
28
28
  }
@@ -38,14 +38,14 @@ export const gitEngine = {
38
38
  await git.add('.');
39
39
  const status = await git.status();
40
40
  if (status.isClean()) {
41
- logger.info('没有新的变更需要提交');
41
+ logger.info('No new changes to commit');
42
42
  return { committed: false, pushed: false };
43
43
  }
44
- logger.debug(`暂存文件: ${status.staged.join(', ')}`);
44
+ logger.debug(`Staged files: ${status.staged.join(', ')}`);
45
45
  const commitResult = await git.commit(message);
46
46
  logger.debug(`commit: ${commitResult.commit}`);
47
47
  await git.push('origin', branch);
48
- logger.debug(`已推送到 origin/${branch}`);
48
+ logger.debug(`Pushed to origin/${branch}`);
49
49
  return { committed: true, pushed: true, sha: commitResult.commit };
50
50
  },
51
51
  async status(localPath) {
@@ -62,9 +62,9 @@ export const gitEngine = {
62
62
  return remotes.find(r => r.name === 'origin')?.refs?.fetch ?? null;
63
63
  },
64
64
  async rollback(localPath) {
65
- logger.warn('正在回滚最近一次 commit');
65
+ logger.warn('Rolling back the last commit...');
66
66
  await createGit(localPath).reset(['--soft', 'HEAD~1']);
67
- logger.warn('回滚完成,本地变更已保留在暂存区');
67
+ logger.warn('Rollback complete, local changes preserved in staging area');
68
68
  },
69
69
  /**
70
70
  * Fetch from remote and check if remote branch is ahead of local.
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/core/git.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,MAAQ,IAAI,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,SAAS,SAAS,CAAC,QAAgB;IACjC,OAAO,SAAS,CAAC,QAAQ,EAAE;QACzB,sBAAsB,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAM,GAAG,MAAM;QACtE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,SAAS,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC;YAClD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,MAAM,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,MAAM,GAAG,MAAM;QAC3C,MAAM,GAAG,GAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAM,GAAG,MAAM;QACrE,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAEjC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QAElC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,WAAW,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/C,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;QAEtC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,CAAC,GAAG,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,wBAAwB,CAAC,SAAiB,EAAE,MAAM,GAAG,MAAM;QAC/D,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,MAAM,KAAK,GAAI,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,CAAC,CAAC;QAC7C,gCAAgC;QAChC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,iDAAiD;QACjD,IAAI,CAAC;YAAC,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YAC3B,4CAA4C;YAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAc;QAClD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACzB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxD,OAAO,IAAI,KAAK,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAc,EAAE,UAAmB;QACvE,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,UAAU,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,SAAS,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAc;QAClD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,GAAW,EAAE,QAAgB;QAC7D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAc;QAClD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;YACvC,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,oCAAoC,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;CACO,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/core/git.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  /**
2
- * json-field.ts — JSON 字段级提取与合并
2
+ * json-field.ts — JSON field-level extraction and merge
3
3
  *
4
- * 支持从大 JSON 文件中 pick 指定顶层字段进行同步,
5
- * pull merge 回目标 JSON(不破坏其他字段)。
4
+ * Supports picking specified top-level fields from large JSON files for sync;
5
+ * merges fields back into target JSON on pull (without destroying other fields).
6
6
  */
7
7
  type JsonObject = Record<string, unknown>;
8
- /** 从对象中提取指定顶层字段 */
8
+ /** Extract specified top-level fields from an object */
9
9
  export declare function extractFields(obj: JsonObject, fields: readonly string[]): JsonObject;
10
- /** 将提取的字段 shallow merge 回目标对象(仅覆盖提取字段,保留其余) */
10
+ /** Shallow merge extracted fields back into target object (only overwrites extracted fields, preserves the rest) */
11
11
  export declare function mergeFields(target: JsonObject, partial: JsonObject): JsonObject;
12
12
  export declare const jsonField: {
13
13
  readonly extractFields: typeof extractFields;
@@ -1 +1 @@
1
- {"version":3,"file":"json-field.d.ts","sourceRoot":"","sources":["../../../src/core/json-field.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,mBAAmB;AACnB,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAMpF;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,CAE/E;AAED,eAAO,MAAM,SAAS;;;CAA0C,CAAC"}
1
+ {"version":3,"file":"json-field.d.ts","sourceRoot":"","sources":["../../../src/core/json-field.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAMpF;AAED,oHAAoH;AACpH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,CAE/E;AAED,eAAO,MAAM,SAAS;;;CAA0C,CAAC"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * json-field.ts — JSON 字段级提取与合并
2
+ * json-field.ts — JSON field-level extraction and merge
3
3
  *
4
- * 支持从大 JSON 文件中 pick 指定顶层字段进行同步,
5
- * pull merge 回目标 JSON(不破坏其他字段)。
4
+ * Supports picking specified top-level fields from large JSON files for sync;
5
+ * merges fields back into target JSON on pull (without destroying other fields).
6
6
  */
7
- /** 从对象中提取指定顶层字段 */
7
+ /** Extract specified top-level fields from an object */
8
8
  export function extractFields(obj, fields) {
9
9
  const result = {};
10
10
  for (const f of fields) {
@@ -13,7 +13,7 @@ export function extractFields(obj, fields) {
13
13
  }
14
14
  return result;
15
15
  }
16
- /** 将提取的字段 shallow merge 回目标对象(仅覆盖提取字段,保留其余) */
16
+ /** Shallow merge extracted fields back into target object (only overwrites extracted fields, preserves the rest) */
17
17
  export function mergeFields(target, partial) {
18
18
  return { ...target, ...partial };
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json-field.js","sourceRoot":"","sources":["../../../src/core/json-field.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,mBAAmB;AACnB,MAAM,UAAU,aAAa,CAAC,GAAe,EAAE,MAAyB;IACtE,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,WAAW,CAAC,MAAkB,EAAE,OAAmB;IACjE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,aAAa,EAAE,WAAW,EAAW,CAAC"}
1
+ {"version":3,"file":"json-field.js","sourceRoot":"","sources":["../../../src/core/json-field.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAAC,GAAe,EAAE,MAAyB;IACtE,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,WAAW,CAAC,MAAkB,EAAE,OAAmB;IACjE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,aAAa,EAAE,WAAW,EAAW,CAAC"}
@@ -1,16 +1,16 @@
1
1
  /**
2
- * sync.ts — 同步引擎核心
2
+ * sync.ts — Core sync engine
3
3
  *
4
- * 三个方向:
5
- * stageToRepo 工作区本地仓库目录(推送前准备)
6
- * restoreFromRepo 本地仓库目录工作区(拉取后还原)
7
- * diff 对比两侧,返回差异摘要
4
+ * Three directions:
5
+ * stageToRepo workspacelocal repo directory (pre-push staging)
6
+ * restoreFromRepo local repo directory workspace (post-pull restore)
7
+ * diff compare both sides, return diff summary
8
8
  *
9
- * 支持三层同步:
10
- * shared — agent 共享(skillsMCP 模板、共享记忆)
11
- * agents/* — per-agent 跨环境同步
9
+ * Supports two-tier sync:
10
+ * shared — cross-agent sharing (skills, MCP templates, shared memory)
11
+ * agents/* — per-agent cross-environment sync
12
12
  *
13
- * 所有方法支持可选的 agent 过滤参数,只操作指定智能体的文件。
13
+ * All methods accept an optional agent filter parameter to operate on a specific agent's files only.
14
14
  */
15
15
  import type { WangchuanConfig, FileEntry, StageResult, RestoreResult, DiffResult, AgentName, FilterOptions } from '../types.js';
16
16
  export declare function expandHome(p: string): string;