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.
- package/dist/bin/wangchuan.js +18 -1
- package/dist/bin/wangchuan.js.map +1 -1
- package/dist/src/agents/claude.d.ts +6 -0
- package/dist/src/agents/claude.d.ts.map +1 -0
- package/dist/src/agents/claude.js +27 -0
- package/dist/src/agents/claude.js.map +1 -0
- package/dist/src/agents/codebuddy.d.ts +6 -0
- package/dist/src/agents/codebuddy.d.ts.map +1 -0
- package/dist/src/agents/codebuddy.js +33 -0
- package/dist/src/agents/codebuddy.js.map +1 -0
- package/dist/src/agents/cursor.d.ts +6 -0
- package/dist/src/agents/cursor.d.ts.map +1 -0
- package/dist/src/agents/cursor.js +32 -0
- package/dist/src/agents/cursor.js.map +1 -0
- package/dist/src/agents/gemini.d.ts +6 -0
- package/dist/src/agents/gemini.d.ts.map +1 -0
- package/dist/src/agents/gemini.js +22 -0
- package/dist/src/agents/gemini.js.map +1 -0
- package/dist/src/agents/index.d.ts +26 -0
- package/dist/src/agents/index.d.ts.map +1 -0
- package/dist/src/agents/index.js +56 -0
- package/dist/src/agents/index.js.map +1 -0
- package/dist/src/agents/openclaw.d.ts +6 -0
- package/dist/src/agents/openclaw.d.ts.map +1 -0
- package/dist/src/agents/openclaw.js +25 -0
- package/dist/src/agents/openclaw.js.map +1 -0
- package/dist/src/agents/types.d.ts +15 -0
- package/dist/src/agents/types.d.ts.map +1 -0
- package/dist/src/agents/types.js +5 -0
- package/dist/src/agents/types.js.map +1 -0
- package/dist/src/agents/workbuddy.d.ts +6 -0
- package/dist/src/agents/workbuddy.d.ts.map +1 -0
- package/dist/src/agents/workbuddy.js +34 -0
- package/dist/src/agents/workbuddy.js.map +1 -0
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +47 -13
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/key.d.ts +11 -0
- package/dist/src/commands/key.d.ts.map +1 -0
- package/dist/src/commands/key.js +146 -0
- package/dist/src/commands/key.js.map +1 -0
- package/dist/src/commands/report.d.ts +11 -0
- package/dist/src/commands/report.d.ts.map +1 -0
- package/dist/src/commands/report.js +141 -0
- package/dist/src/commands/report.js.map +1 -0
- package/dist/src/core/config.d.ts +3 -3
- package/dist/src/core/config.d.ts.map +1 -1
- package/dist/src/core/config.js +5 -143
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/sync.d.ts.map +1 -1
- package/dist/src/core/sync.js +128 -0
- package/dist/src/core/sync.js.map +1 -1
- package/dist/src/i18n.d.ts.map +1 -1
- package/dist/src/i18n.js +47 -0
- package/dist/src/i18n.js.map +1 -1
- package/dist/src/types.d.ts +5 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +5 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/wangchuan.js
CHANGED
|
@@ -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.
|
|
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":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAQ,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAO,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAS,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAO,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAS,wBAAwB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAc,gBAAgB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAE,WAAiC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;KACjC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"wangchuan.js","sourceRoot":"","sources":["../../bin/wangchuan.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -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
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
// ──
|
|
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
|
-
|
|
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
|
-
|
|
47
|
-
|
|
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,
|
|
50
|
-
spinner.succeed(t('init.repoReady', { path:
|
|
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":"AAAA
|
|
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"}
|