wangchuan 2.8.0 → 2.10.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 (61) hide show
  1. package/dist/bin/wangchuan.js +18 -1
  2. package/dist/bin/wangchuan.js.map +1 -1
  3. package/dist/src/agents/claude.d.ts +6 -0
  4. package/dist/src/agents/claude.d.ts.map +1 -0
  5. package/dist/src/agents/claude.js +27 -0
  6. package/dist/src/agents/claude.js.map +1 -0
  7. package/dist/src/agents/codebuddy.d.ts +6 -0
  8. package/dist/src/agents/codebuddy.d.ts.map +1 -0
  9. package/dist/src/agents/codebuddy.js +33 -0
  10. package/dist/src/agents/codebuddy.js.map +1 -0
  11. package/dist/src/agents/cursor.d.ts +6 -0
  12. package/dist/src/agents/cursor.d.ts.map +1 -0
  13. package/dist/src/agents/cursor.js +32 -0
  14. package/dist/src/agents/cursor.js.map +1 -0
  15. package/dist/src/agents/gemini.d.ts +6 -0
  16. package/dist/src/agents/gemini.d.ts.map +1 -0
  17. package/dist/src/agents/gemini.js +22 -0
  18. package/dist/src/agents/gemini.js.map +1 -0
  19. package/dist/src/agents/index.d.ts +26 -0
  20. package/dist/src/agents/index.d.ts.map +1 -0
  21. package/dist/src/agents/index.js +56 -0
  22. package/dist/src/agents/index.js.map +1 -0
  23. package/dist/src/agents/openclaw.d.ts +6 -0
  24. package/dist/src/agents/openclaw.d.ts.map +1 -0
  25. package/dist/src/agents/openclaw.js +25 -0
  26. package/dist/src/agents/openclaw.js.map +1 -0
  27. package/dist/src/agents/types.d.ts +15 -0
  28. package/dist/src/agents/types.d.ts.map +1 -0
  29. package/dist/src/agents/types.js +5 -0
  30. package/dist/src/agents/types.js.map +1 -0
  31. package/dist/src/agents/workbuddy.d.ts +6 -0
  32. package/dist/src/agents/workbuddy.d.ts.map +1 -0
  33. package/dist/src/agents/workbuddy.js +34 -0
  34. package/dist/src/agents/workbuddy.js.map +1 -0
  35. package/dist/src/commands/init.d.ts +7 -0
  36. package/dist/src/commands/init.d.ts.map +1 -1
  37. package/dist/src/commands/init.js +47 -13
  38. package/dist/src/commands/init.js.map +1 -1
  39. package/dist/src/commands/key.d.ts +11 -0
  40. package/dist/src/commands/key.d.ts.map +1 -0
  41. package/dist/src/commands/key.js +146 -0
  42. package/dist/src/commands/key.js.map +1 -0
  43. package/dist/src/commands/report.d.ts +11 -0
  44. package/dist/src/commands/report.d.ts.map +1 -0
  45. package/dist/src/commands/report.js +141 -0
  46. package/dist/src/commands/report.js.map +1 -0
  47. package/dist/src/core/config.d.ts +3 -3
  48. package/dist/src/core/config.d.ts.map +1 -1
  49. package/dist/src/core/config.js +5 -143
  50. package/dist/src/core/config.js.map +1 -1
  51. package/dist/src/core/sync.d.ts.map +1 -1
  52. package/dist/src/core/sync.js +128 -0
  53. package/dist/src/core/sync.js.map +1 -1
  54. package/dist/src/i18n.d.ts.map +1 -1
  55. package/dist/src/i18n.js +47 -0
  56. package/dist/src/i18n.js.map +1 -1
  57. package/dist/src/types.d.ts +5 -1
  58. package/dist/src/types.d.ts.map +1 -1
  59. package/dist/src/types.js +5 -1
  60. package/dist/src/types.js.map +1 -1
  61. package/package.json +1 -1
@@ -18,6 +18,8 @@ import { cmdSync } from '../src/commands/sync.js';
18
18
  import { cmdWatch } from '../src/commands/watch.js';
19
19
  import { cmdEnv } from '../src/commands/env.js';
20
20
  import { cmdAgent } from '../src/commands/agent.js';
21
+ import { cmdKey } from '../src/commands/key.js';
22
+ import { cmdReport } from '../src/commands/report.js';
21
23
  import { logger } from '../src/utils/logger.js';
22
24
  import { t } from '../src/i18n.js';
23
25
  import { AGENT_NAMES } from '../src/types.js';
@@ -31,7 +33,7 @@ const program = new Command();
31
33
  program
32
34
  .name('wangchuan')
33
35
  .description(t('cli.description'))
34
- .version('2.8.0');
36
+ .version('2.10.0');
35
37
  // ── init ────────────────────────────────────────────────────────
36
38
  program
37
39
  .command('init')
@@ -132,6 +134,21 @@ program
132
134
  .action(async (action, name) => {
133
135
  await run(() => cmdAgent({ action, name }));
134
136
  });
137
+ // ── key ─────────────────────────────────────────────────────
138
+ program
139
+ .command('key <action> [hex]')
140
+ .description(t('cli.cmd.key.desc'))
141
+ .action(async (action, hex) => {
142
+ await run(() => cmdKey({ action, hex }));
143
+ });
144
+ // ── report ──────────────────────────────────────────────────
145
+ program
146
+ .command('report')
147
+ .description(t('cli.cmd.report'))
148
+ .option('--json', t('cli.cmd.report.json'), false)
149
+ .action(async (opts) => {
150
+ await run(() => cmdReport(opts));
151
+ });
135
152
  // ── Error handler ───────────────────────────────────────────────
136
153
  async function run(fn) {
137
154
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"wangchuan.js","sourceRoot":"","sources":["../../bin/wangchuan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wangchuan.js","sourceRoot":"","sources":["../../bin/wangchuan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Claude agent definition
3
+ */
4
+ import type { AgentDefinition } from './types.js';
5
+ export declare const claude: AgentDefinition;
6
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/agents/claude.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,MAAM,EAAE,eAoBpB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Claude agent definition
3
+ */
4
+ import os from 'os';
5
+ import path from 'path';
6
+ export const claude = {
7
+ name: 'claude',
8
+ profile: {
9
+ enabled: true,
10
+ workspacePath: path.join(os.homedir(), '.claude-internal'),
11
+ syncFiles: [
12
+ { src: 'CLAUDE.md', encrypt: false },
13
+ { src: 'settings.json', encrypt: true },
14
+ ],
15
+ jsonFields: [
16
+ {
17
+ src: '.claude.json',
18
+ fields: ['mcpServers'],
19
+ repoName: 'mcpServers.json',
20
+ encrypt: true,
21
+ },
22
+ ],
23
+ },
24
+ sharedSkills: { dir: 'skills/' },
25
+ sharedMcp: { src: '.claude.json', field: 'mcpServers' },
26
+ };
27
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/agents/claude.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,MAAM,MAAM,GAAoB;IACrC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC;QAC1D,SAAS,EAAE;YACT,EAAE,GAAG,EAAE,WAAW,EAAM,OAAO,EAAE,KAAK,EAAE;YACxC,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAG;SACzC;QACD,UAAU,EAAE;YACV;gBACE,GAAG,EAAO,cAAc;gBACxB,MAAM,EAAI,CAAC,YAAY,CAAC;gBACxB,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAG,IAAI;aACf;SACF;KACF;IACD,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;IAChC,SAAS,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE;CACxD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CodeBuddy agent definition
3
+ */
4
+ import type { AgentDefinition } from './types.js';
5
+ export declare const codebuddy: AgentDefinition;
6
+ //# sourceMappingURL=codebuddy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codebuddy.d.ts","sourceRoot":"","sources":["../../../src/agents/codebuddy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,SAAS,EAAE,eA0BvB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * CodeBuddy agent definition
3
+ */
4
+ import os from 'os';
5
+ import path from 'path';
6
+ export const codebuddy = {
7
+ name: 'codebuddy',
8
+ profile: {
9
+ enabled: true,
10
+ workspacePath: path.join(os.homedir(), '.codebuddy'),
11
+ syncFiles: [
12
+ { src: 'MEMORY.md', encrypt: true },
13
+ { src: 'CODEBUDDY.md', encrypt: false },
14
+ ],
15
+ jsonFields: [
16
+ {
17
+ src: 'mcp.json',
18
+ fields: ['mcpServers'],
19
+ repoName: 'mcpServers.json',
20
+ encrypt: true,
21
+ },
22
+ {
23
+ src: 'settings.json',
24
+ fields: ['enabledPlugins'],
25
+ repoName: 'settings-sync.json',
26
+ encrypt: true,
27
+ },
28
+ ],
29
+ },
30
+ sharedSkills: { dir: 'skills/' },
31
+ sharedMcp: { src: 'mcp.json', field: 'mcpServers' },
32
+ };
33
+ //# sourceMappingURL=codebuddy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codebuddy.js","sourceRoot":"","sources":["../../../src/agents/codebuddy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC;QACpD,SAAS,EAAE;YACT,EAAE,GAAG,EAAE,WAAW,EAAM,OAAO,EAAE,IAAI,EAAG;YACxC,EAAE,GAAG,EAAE,cAAc,EAAG,OAAO,EAAE,KAAK,EAAE;SACzC;QACD,UAAU,EAAE;YACV;gBACE,GAAG,EAAO,UAAU;gBACpB,MAAM,EAAI,CAAC,YAAY,CAAC;gBACxB,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAG,IAAI;aACf;YACD;gBACE,GAAG,EAAO,eAAe;gBACzB,MAAM,EAAI,CAAC,gBAAgB,CAAC;gBAC5B,QAAQ,EAAE,oBAAoB;gBAC9B,OAAO,EAAG,IAAI;aACf;SACF;KACF;IACD,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;IAChC,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;CACpD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Cursor agent definition
3
+ */
4
+ import type { AgentDefinition } from './types.js';
5
+ export declare const cursor: AgentDefinition;
6
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/agents/cursor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,MAAM,EAAE,eAyBpB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Cursor agent definition
3
+ */
4
+ import os from 'os';
5
+ import path from 'path';
6
+ export const cursor = {
7
+ name: 'cursor',
8
+ profile: {
9
+ enabled: true,
10
+ workspacePath: path.join(os.homedir(), '.cursor'),
11
+ syncFiles: [],
12
+ syncDirs: [
13
+ { src: 'rules/', encrypt: false },
14
+ ],
15
+ jsonFields: [
16
+ {
17
+ src: 'mcp.json',
18
+ fields: ['mcpServers'],
19
+ repoName: 'mcpServers.json',
20
+ encrypt: true,
21
+ },
22
+ {
23
+ src: 'cli-config.json',
24
+ fields: ['permissions', 'model', 'enabledPlugins'],
25
+ repoName: 'cli-config-sync.json',
26
+ encrypt: true,
27
+ },
28
+ ],
29
+ },
30
+ sharedMcp: { src: 'mcp.json', field: 'mcpServers' },
31
+ };
32
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/agents/cursor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,MAAM,MAAM,GAAoB;IACrC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QACjD,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;SAClC;QACD,UAAU,EAAE;YACV;gBACE,GAAG,EAAO,UAAU;gBACpB,MAAM,EAAI,CAAC,YAAY,CAAC;gBACxB,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAG,IAAI;aACf;YACD;gBACE,GAAG,EAAO,iBAAiB;gBAC3B,MAAM,EAAI,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC;gBACpD,QAAQ,EAAE,sBAAsB;gBAChC,OAAO,EAAG,IAAI;aACf;SACF;KACF;IACD,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;CACpD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Gemini agent definition
3
+ */
4
+ import type { AgentDefinition } from './types.js';
5
+ export declare const gemini: AgentDefinition;
6
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/agents/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,MAAM,EAAE,eAepB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Gemini agent definition
3
+ */
4
+ import os from 'os';
5
+ import path from 'path';
6
+ export const gemini = {
7
+ name: 'gemini',
8
+ profile: {
9
+ enabled: true,
10
+ workspacePath: path.join(os.homedir(), '.gemini'),
11
+ syncFiles: [],
12
+ jsonFields: [
13
+ {
14
+ src: 'settings.internal.json',
15
+ fields: ['security', 'model', 'general'],
16
+ repoName: 'settings-sync.json',
17
+ encrypt: true,
18
+ },
19
+ ],
20
+ },
21
+ };
22
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/agents/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,MAAM,MAAM,GAAoB;IACrC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QACjD,SAAS,EAAE,EAAE;QACb,UAAU,EAAE;YACV;gBACE,GAAG,EAAO,wBAAwB;gBAClC,MAAM,EAAI,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;gBAC1C,QAAQ,EAAE,oBAAoB;gBAC9B,OAAO,EAAG,IAAI;aACf;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * agents/index.ts — Agent registry
3
+ *
4
+ * Each agent is defined in its own file. This module collects them into
5
+ * AGENT_DEFINITIONS, which is the single source of truth for:
6
+ * - AGENT_NAMES (types.ts)
7
+ * - DEFAULT_PROFILES and DEFAULT_SHARED (config.ts)
8
+ *
9
+ * To add a new agent, create a new file in src/agents/ and add it to
10
+ * the imports below — no changes needed in types.ts or config.ts.
11
+ */
12
+ import type { AgentDefinition } from './types.js';
13
+ import type { AgentProfiles, SharedConfig } from '../types.js';
14
+ /**
15
+ * Ordered list of all agent definitions.
16
+ * The order here determines AGENT_NAMES order and iteration order.
17
+ */
18
+ export declare const AGENT_DEFINITIONS: readonly AgentDefinition[];
19
+ /** Derive AGENT_NAMES tuple from definitions (keeps type safety) */
20
+ export declare const AGENT_NAMES_FROM_DEFS: string[];
21
+ /** Build AgentProfiles from definitions */
22
+ export declare function buildDefaultProfiles(): AgentProfiles;
23
+ /** Build SharedConfig from definitions */
24
+ export declare function buildDefaultShared(): SharedConfig;
25
+ export type { AgentDefinition } from './types.js';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS/D;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAO9C,CAAC;AAEX,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,UAAqC,CAAC;AAExE,2CAA2C;AAC3C,wBAAgB,oBAAoB,IAAI,aAAa,CAMpD;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,IAAI,YAAY,CAgBjD;AAED,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * agents/index.ts — Agent registry
3
+ *
4
+ * Each agent is defined in its own file. This module collects them into
5
+ * AGENT_DEFINITIONS, which is the single source of truth for:
6
+ * - AGENT_NAMES (types.ts)
7
+ * - DEFAULT_PROFILES and DEFAULT_SHARED (config.ts)
8
+ *
9
+ * To add a new agent, create a new file in src/agents/ and add it to
10
+ * the imports below — no changes needed in types.ts or config.ts.
11
+ */
12
+ import { openclaw } from './openclaw.js';
13
+ import { claude } from './claude.js';
14
+ import { gemini } from './gemini.js';
15
+ import { codebuddy } from './codebuddy.js';
16
+ import { workbuddy } from './workbuddy.js';
17
+ import { cursor } from './cursor.js';
18
+ /**
19
+ * Ordered list of all agent definitions.
20
+ * The order here determines AGENT_NAMES order and iteration order.
21
+ */
22
+ export const AGENT_DEFINITIONS = [
23
+ openclaw,
24
+ claude,
25
+ gemini,
26
+ codebuddy,
27
+ workbuddy,
28
+ cursor,
29
+ ];
30
+ /** Derive AGENT_NAMES tuple from definitions (keeps type safety) */
31
+ export const AGENT_NAMES_FROM_DEFS = AGENT_DEFINITIONS.map(d => d.name);
32
+ /** Build AgentProfiles from definitions */
33
+ export function buildDefaultProfiles() {
34
+ const profiles = {};
35
+ for (const def of AGENT_DEFINITIONS) {
36
+ profiles[def.name] = def.profile;
37
+ }
38
+ return profiles;
39
+ }
40
+ /** Build SharedConfig from definitions */
41
+ export function buildDefaultShared() {
42
+ const skillSources = AGENT_DEFINITIONS
43
+ .filter(d => d.sharedSkills)
44
+ .map(d => ({ agent: d.name, dir: d.sharedSkills.dir }));
45
+ const mcpSources = AGENT_DEFINITIONS
46
+ .filter(d => d.sharedMcp)
47
+ .map(d => ({ agent: d.name, src: d.sharedMcp.src, field: d.sharedMcp.field }));
48
+ return {
49
+ skills: { sources: skillSources },
50
+ mcp: { sources: mcpSources },
51
+ syncFiles: [
52
+ { src: 'memory/SHARED.md', workspacePath: '~/.openclaw/workspace', encrypt: true },
53
+ ],
54
+ };
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAO,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAS,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAS,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAS,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,MAAM;CACE,CAAC;AAEX,oEAAoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAExE,2CAA2C;AAC3C,MAAM,UAAU,oBAAoB;IAClC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,CAAC;IACD,OAAO,QAAoC,CAAC;AAC9C,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,kBAAkB;IAChC,MAAM,YAAY,GAAG,iBAAiB;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAa,EAAE,GAAG,EAAE,CAAC,CAAC,YAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,iBAAiB;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAa,EAAE,GAAG,EAAE,CAAC,CAAC,SAAU,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,SAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE5F,OAAO;QACL,MAAM,EAAK,EAAE,OAAO,EAAE,YAAY,EAAE;QACpC,GAAG,EAAQ,EAAE,OAAO,EAAE,UAAU,EAAE;QAClC,SAAS,EAAE;YACT,EAAE,GAAG,EAAE,kBAAkB,EAAE,aAAa,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,EAAE;SACnF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * OpenClaw agent definition
3
+ */
4
+ import type { AgentDefinition } from './types.js';
5
+ export declare const openclaw: AgentDefinition;
6
+ //# sourceMappingURL=openclaw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../../src/agents/openclaw.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,QAAQ,EAAE,eAkBtB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * OpenClaw agent definition
3
+ */
4
+ import os from 'os';
5
+ import path from 'path';
6
+ export const openclaw = {
7
+ name: 'openclaw',
8
+ profile: {
9
+ enabled: true,
10
+ workspacePath: path.join(os.homedir(), '.openclaw', 'workspace'),
11
+ syncFiles: [
12
+ { src: 'MEMORY.md', encrypt: true },
13
+ { src: 'AGENTS.md', encrypt: false },
14
+ { src: 'SOUL.md', encrypt: false },
15
+ { src: 'IDENTITY.md', encrypt: false },
16
+ { src: 'USER.md', encrypt: true },
17
+ ],
18
+ syncDirs: [
19
+ { src: 'memory/', encrypt: true },
20
+ ],
21
+ },
22
+ sharedSkills: { dir: 'skills/' },
23
+ sharedMcp: { src: 'config/mcporter.json', field: 'mcpServers' },
24
+ };
25
+ //# sourceMappingURL=openclaw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../../src/agents/openclaw.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC;QAChE,SAAS,EAAE;YACT,EAAE,GAAG,EAAE,WAAW,EAAI,OAAO,EAAE,IAAI,EAAG;YACtC,EAAE,GAAG,EAAE,WAAW,EAAI,OAAO,EAAE,KAAK,EAAE;YACtC,EAAE,GAAG,EAAE,SAAS,EAAM,OAAO,EAAE,KAAK,EAAE;YACtC,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE;YACtC,EAAE,GAAG,EAAE,SAAS,EAAM,OAAO,EAAE,IAAI,EAAG;SACvC;QACD,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;SAClC;KACF;IACD,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;IAChC,SAAS,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE;CAChE,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Agent definition type — each agent plugin exports one of these.
3
+ */
4
+ import type { AgentProfile, SharedSkillSource, SharedMcpSource } from '../types.js';
5
+ export interface AgentDefinition {
6
+ /** Agent identifier (must be unique, becomes part of AgentName union) */
7
+ readonly name: string;
8
+ /** Sync profile for this agent */
9
+ readonly profile: AgentProfile;
10
+ /** If this agent contributes skills to the shared pool */
11
+ readonly sharedSkills?: Pick<SharedSkillSource, 'dir'>;
12
+ /** If this agent contributes MCP config to the shared pool */
13
+ readonly sharedMcp?: Pick<SharedMcpSource, 'src' | 'field'>;
14
+ }
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACvD,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;CAC7D"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Agent definition type — each agent plugin exports one of these.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WorkBuddy agent definition
3
+ */
4
+ import type { AgentDefinition } from './types.js';
5
+ export declare const workbuddy: AgentDefinition;
6
+ //# sourceMappingURL=workbuddy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workbuddy.d.ts","sourceRoot":"","sources":["../../../src/agents/workbuddy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,SAAS,EAAE,eA2BvB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * WorkBuddy agent definition
3
+ */
4
+ import os from 'os';
5
+ import path from 'path';
6
+ export const workbuddy = {
7
+ name: 'workbuddy',
8
+ profile: {
9
+ enabled: true,
10
+ workspacePath: path.join(os.homedir(), '.workbuddy'),
11
+ syncFiles: [
12
+ { src: 'MEMORY.md', encrypt: true },
13
+ { src: 'IDENTITY.md', encrypt: false },
14
+ { src: 'SOUL.md', encrypt: false },
15
+ { src: 'USER.md', encrypt: true },
16
+ ],
17
+ jsonFields: [
18
+ {
19
+ src: 'mcp.json',
20
+ fields: ['mcpServers'],
21
+ repoName: 'mcpServers.json',
22
+ encrypt: true,
23
+ },
24
+ {
25
+ src: 'settings.json',
26
+ fields: ['enabledPlugins'],
27
+ repoName: 'settings-sync.json',
28
+ encrypt: true,
29
+ },
30
+ ],
31
+ },
32
+ sharedMcp: { src: 'mcp.json', field: 'mcpServers' },
33
+ };
34
+ //# sourceMappingURL=workbuddy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workbuddy.js","sourceRoot":"","sources":["../../../src/agents/workbuddy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC;QACpD,SAAS,EAAE;YACT,EAAE,GAAG,EAAE,WAAW,EAAI,OAAO,EAAE,IAAI,EAAG;YACtC,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE;YACtC,EAAE,GAAG,EAAE,SAAS,EAAM,OAAO,EAAE,KAAK,EAAE;YACtC,EAAE,GAAG,EAAE,SAAS,EAAM,OAAO,EAAE,IAAI,EAAG;SACvC;QACD,UAAU,EAAE;YACV;gBACE,GAAG,EAAO,UAAU;gBACpB,MAAM,EAAI,CAAC,YAAY,CAAC;gBACxB,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAG,IAAI;aACf;YACD;gBACE,GAAG,EAAO,eAAe;gBACzB,MAAM,EAAI,CAAC,gBAAgB,CAAC;gBAC5B,QAAQ,EAAE,oBAAoB;gBAC9B,OAAO,EAAG,IAAI;aACf;SACF;KACF;IACD,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;CACpD,CAAC"}
@@ -1,5 +1,12 @@
1
1
  /**
2
2
  * init.ts — wangchuan init command
3
+ *
4
+ * Idempotent initialization:
5
+ * - Config exists + same repo → "already initialized", exit 0
6
+ * - Config exists + different repo → suggest --force
7
+ * - Config exists + repo dir missing → re-clone without --force
8
+ * - Key exists → skip key generation
9
+ * - --force → full overwrite
3
10
  */
4
11
  import type { InitOptions, WangchuanConfig } from '../types.js';
5
12
  export declare function cmdInit({ repo, force, key }: InitOptions): Promise<WangchuanConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKhE,wBAAsB,OAAO,CAAC,EAAE,IAAI,EAAE,KAAa,EAAE,GAAG,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAmDjG"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKhE,wBAAsB,OAAO,CAAC,EAAE,IAAI,EAAE,KAAa,EAAE,GAAG,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAgDjG"}
@@ -1,5 +1,12 @@
1
1
  /**
2
2
  * init.ts — wangchuan init command
3
+ *
4
+ * Idempotent initialization:
5
+ * - Config exists + same repo → "already initialized", exit 0
6
+ * - Config exists + different repo → suggest --force
7
+ * - Config exists + repo dir missing → re-clone without --force
8
+ * - Key exists → skip key generation
9
+ * - --force → full overwrite
3
10
  */
4
11
  import { config } from '../core/config.js';
5
12
  import { cryptoEngine } from '../core/crypto.js';
@@ -17,15 +24,44 @@ export async function cmdInit({ repo, force = false, key }) {
17
24
  }
18
25
  const existing = config.load();
19
26
  if (existing !== null && !force) {
20
- logger.warn(t('init.alreadyInit', { repo: existing.repo }));
21
- logger.info(t('init.useForce'));
27
+ const sameRepo = normalizeRepo(existing.repo) === normalizeRepo(repo);
28
+ const repoDir = existing.localRepoPath;
29
+ const repoDirExists = fs.existsSync(path.join(repoDir, '.git'));
30
+ if (sameRepo && repoDirExists) {
31
+ // Fully initialized with the same repo — nothing to do
32
+ logger.ok(t('init.alreadySame'));
33
+ return existing;
34
+ }
35
+ if (!sameRepo) {
36
+ // Different repo — require --force
37
+ logger.warn(t('init.differentRepo', { existing: existing.repo }));
38
+ logger.info(t('init.useForceSwitch'));
39
+ return existing;
40
+ }
41
+ // Same repo but repo dir is missing — re-clone
42
+ logger.info(t('init.repoMissing'));
43
+ await ensureKey(existing, key);
44
+ await cloneRepo(repo, existing.localRepoPath, existing.branch);
45
+ logger.ok('\n' + t('init.complete'));
22
46
  return existing;
23
47
  }
24
- // ── Write config ────────────────────────────────────────────────
48
+ // ── Fresh init or --force ─────────────────────────────────────
25
49
  let spinner = ora(t('init.writingConfig')).start();
26
50
  const cfg = await config.initialize(repo);
27
51
  spinner.succeed(t('init.configSaved', { path: config.paths.config }));
28
- // ── Key ─────────────────────────────────────────────────────────
52
+ await ensureKey(cfg, key);
53
+ await cloneRepo(repo, cfg.localRepoPath, cfg.branch);
54
+ logger.ok('\n' + t('init.complete'));
55
+ logger.step(t('init.nextPull'));
56
+ logger.step(t('init.nextPush'));
57
+ return cfg;
58
+ }
59
+ /** Normalize a git URL for comparison (strip trailing .git and slashes) */
60
+ function normalizeRepo(url) {
61
+ return url.replace(/\/+$/, '').replace(/\.git$/, '');
62
+ }
63
+ /** Ensure the master key exists (import, generate, or skip) */
64
+ async function ensureKey(cfg, key) {
29
65
  if (key) {
30
66
  const hex = key.trim();
31
67
  if (!/^[0-9a-fA-F]{64}$/.test(hex)) {
@@ -36,26 +72,24 @@ export async function cmdInit({ repo, force = false, key }) {
36
72
  logger.ok(t('init.keyImported', { path: cfg.keyPath }));
37
73
  }
38
74
  else if (!cryptoEngine.hasKey(cfg.keyPath)) {
39
- spinner = ora(t('init.generatingKey')).start();
75
+ const spinner = ora(t('init.generatingKey')).start();
40
76
  cryptoEngine.generateKey(cfg.keyPath);
41
77
  spinner.succeed(t('init.keyGenerated', { path: cfg.keyPath }));
42
78
  }
43
79
  else {
44
80
  logger.info(t('init.keyExists', { path: cfg.keyPath }));
45
81
  }
46
- // ── Clone/fetch repo ────────────────────────────────────────────
47
- spinner = ora(t('init.cloningRepo', { repo })).start();
82
+ }
83
+ /** Clone or fetch the repo */
84
+ async function cloneRepo(repo, localPath, branch) {
85
+ const spinner = ora(t('init.cloningRepo', { repo })).start();
48
86
  try {
49
- await gitEngine.cloneOrFetch(repo, cfg.localRepoPath, cfg.branch);
50
- spinner.succeed(t('init.repoReady', { path: cfg.localRepoPath }));
87
+ await gitEngine.cloneOrFetch(repo, localPath, branch);
88
+ spinner.succeed(t('init.repoReady', { path: localPath }));
51
89
  }
52
90
  catch (err) {
53
91
  spinner.fail(t('init.cloneFailed'));
54
92
  throw new Error(t('init.gitFailed', { error: err.message }));
55
93
  }
56
- logger.ok('\n' + t('init.complete'));
57
- logger.step(t('init.nextPull'));
58
- logger.step(t('init.nextPush'));
59
- return cfg;
60
94
  }
61
95
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * key.ts — wangchuan key rotate|export|import command
3
+ *
4
+ * Key lifecycle management: rotation, export, and import of master encryption key.
5
+ */
6
+ export interface KeyOptions {
7
+ readonly action: string;
8
+ readonly hex?: string | undefined;
9
+ }
10
+ export declare function cmdKey({ action, hex }: KeyOptions): Promise<void>;
11
+ //# sourceMappingURL=key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../../src/commands/key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AA2HD,wBAAsB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvE"}