wangchuan 2.15.0 → 2.17.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 +49 -1
- package/dist/bin/wangchuan.js.map +1 -1
- package/dist/src/commands/changelog.d.ts +10 -0
- package/dist/src/commands/changelog.d.ts.map +1 -0
- package/dist/src/commands/changelog.js +112 -0
- package/dist/src/commands/changelog.js.map +1 -0
- package/dist/src/commands/cleanup.d.ts +20 -0
- package/dist/src/commands/cleanup.d.ts.map +1 -0
- package/dist/src/commands/cleanup.js +137 -0
- package/dist/src/commands/cleanup.js.map +1 -0
- package/dist/src/commands/config-mgmt.d.ts +12 -0
- package/dist/src/commands/config-mgmt.d.ts.map +1 -0
- package/dist/src/commands/config-mgmt.js +88 -0
- package/dist/src/commands/config-mgmt.js.map +1 -0
- package/dist/src/commands/search.d.ts +16 -0
- package/dist/src/commands/search.d.ts.map +1 -0
- package/dist/src/commands/search.js +126 -0
- package/dist/src/commands/search.js.map +1 -0
- package/dist/src/commands/tag.d.ts +16 -0
- package/dist/src/commands/tag.d.ts.map +1 -0
- package/dist/src/commands/tag.js +107 -0
- package/dist/src/commands/tag.js.map +1 -0
- package/dist/src/core/sync.d.ts.map +1 -1
- package/dist/src/core/sync.js +22 -2
- package/dist/src/core/sync.js.map +1 -1
- package/dist/src/core/tags.d.ts +19 -0
- package/dist/src/core/tags.d.ts.map +1 -0
- package/dist/src/core/tags.js +110 -0
- package/dist/src/core/tags.js.map +1 -0
- package/dist/src/i18n.d.ts.map +1 -1
- package/dist/src/i18n.js +63 -1
- package/dist/src/i18n.js.map +1 -1
- package/dist/src/utils/prompt.d.ts +15 -5
- package/dist/src/utils/prompt.d.ts.map +1 -1
- package/dist/src/utils/prompt.js +111 -18
- package/dist/src/utils/prompt.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/wangchuan.js
CHANGED
|
@@ -26,6 +26,11 @@ import { cmdSnapshot } from '../src/commands/snapshot.js';
|
|
|
26
26
|
import { cmdSummary } from '../src/commands/summary.js';
|
|
27
27
|
import { cmdSetup } from '../src/commands/setup.js';
|
|
28
28
|
import { cmdHealth } from '../src/commands/health.js';
|
|
29
|
+
import { cmdSearch } from '../src/commands/search.js';
|
|
30
|
+
import { cmdConfigMgmt } from '../src/commands/config-mgmt.js';
|
|
31
|
+
import { cmdChangelog } from '../src/commands/changelog.js';
|
|
32
|
+
import { cmdTag } from '../src/commands/tag.js';
|
|
33
|
+
import { cmdCleanup } from '../src/commands/cleanup.js';
|
|
29
34
|
import { logger } from '../src/utils/logger.js';
|
|
30
35
|
import { t } from '../src/i18n.js';
|
|
31
36
|
import { AGENT_NAMES } from '../src/types.js';
|
|
@@ -42,7 +47,7 @@ const program = new Command();
|
|
|
42
47
|
program
|
|
43
48
|
.name('wangchuan')
|
|
44
49
|
.description(t('cli.description'))
|
|
45
|
-
.version('2.
|
|
50
|
+
.version('2.17.0');
|
|
46
51
|
// ── init ────────────────────────────────────────────────────────
|
|
47
52
|
program
|
|
48
53
|
.command('init')
|
|
@@ -210,6 +215,49 @@ program
|
|
|
210
215
|
.action(async () => {
|
|
211
216
|
await run(() => cmdHealth());
|
|
212
217
|
});
|
|
218
|
+
// ── search ──────────────────────────────────────────────────
|
|
219
|
+
program
|
|
220
|
+
.command('search <query>')
|
|
221
|
+
.description(t('cli.cmd.search'))
|
|
222
|
+
.option('-a, --agent <name>', t('cli.cmd.agent'), parseAgent)
|
|
223
|
+
.option('-i, --ignore-case', t('cli.cmd.search.ignoreCase'), false)
|
|
224
|
+
.option('--regex', t('cli.cmd.search.regex'), false)
|
|
225
|
+
.option('-C, --context <lines>', t('cli.cmd.search.context'), parseInt)
|
|
226
|
+
.action(async (query, opts) => {
|
|
227
|
+
await run(() => cmdSearch({ query, ...opts }));
|
|
228
|
+
});
|
|
229
|
+
// ── config export/import ────────────────────────────────────
|
|
230
|
+
program
|
|
231
|
+
.command('config <action> [file]')
|
|
232
|
+
.description(t('cli.cmd.config'))
|
|
233
|
+
.action(async (action, file) => {
|
|
234
|
+
await run(() => cmdConfigMgmt({ action, file }));
|
|
235
|
+
});
|
|
236
|
+
// ── changelog ───────────────────────────────────────────────
|
|
237
|
+
program
|
|
238
|
+
.command('changelog')
|
|
239
|
+
.description(t('cli.cmd.changelog'))
|
|
240
|
+
.option('-l, --limit <n>', t('cli.cmd.changelog.limit'), parseInt)
|
|
241
|
+
.action(async (opts) => {
|
|
242
|
+
await run(() => cmdChangelog({ limit: opts.limit ?? 5 }));
|
|
243
|
+
});
|
|
244
|
+
// ── tag ──────────────────────────────────────────────────────
|
|
245
|
+
program
|
|
246
|
+
.command('tag <action> [pattern] [tags...]')
|
|
247
|
+
.description(t('cli.cmd.tag'))
|
|
248
|
+
.action(async (action, pattern, tags) => {
|
|
249
|
+
await run(() => cmdTag({ action, pattern, tags: tags ?? [] }));
|
|
250
|
+
});
|
|
251
|
+
// ── cleanup ──────────────────────────────────────────────────
|
|
252
|
+
program
|
|
253
|
+
.command('cleanup')
|
|
254
|
+
.description(t('cli.cmd.cleanup'))
|
|
255
|
+
.option('-a, --agent <name>', t('cli.cmd.agent'), parseAgent)
|
|
256
|
+
.option('--auto', t('cli.cmd.cleanup.auto'), false)
|
|
257
|
+
.option('--days <n>', t('cli.cmd.cleanup.days'), parseInt)
|
|
258
|
+
.action(async (opts) => {
|
|
259
|
+
await run(() => cmdCleanup(opts));
|
|
260
|
+
});
|
|
213
261
|
// ── Error handler ───────────────────────────────────────────────
|
|
214
262
|
async function run(fn) {
|
|
215
263
|
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,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* changelog.ts — wangchuan changelog command
|
|
3
|
+
*
|
|
4
|
+
* Show what changed in each sync — parse git log + diffstat from the sync repo.
|
|
5
|
+
*/
|
|
6
|
+
export interface ChangelogOptions {
|
|
7
|
+
readonly limit?: number | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function cmdChangelog({ limit }?: ChangelogOptions): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=changelog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../src/commands/changelog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AASD,wBAAsB,YAAY,CAAC,EAAE,KAAS,EAAE,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEtF"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* changelog.ts — wangchuan changelog command
|
|
3
|
+
*
|
|
4
|
+
* Show what changed in each sync — parse git log + diffstat from the sync repo.
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { simpleGit } from 'simple-git';
|
|
9
|
+
import { config } from '../core/config.js';
|
|
10
|
+
import { ensureMigrated } from '../core/migrate.js';
|
|
11
|
+
import { syncEngine } from '../core/sync.js';
|
|
12
|
+
import { validator } from '../utils/validator.js';
|
|
13
|
+
import { logger } from '../utils/logger.js';
|
|
14
|
+
import { t } from '../i18n.js';
|
|
15
|
+
import chalk from 'chalk';
|
|
16
|
+
export async function cmdChangelog({ limit = 5 } = {}) {
|
|
17
|
+
logger.banner(t('changelog.banner'));
|
|
18
|
+
let cfg = config.load();
|
|
19
|
+
validator.requireInit(cfg);
|
|
20
|
+
cfg = ensureMigrated(cfg);
|
|
21
|
+
const repoPath = syncEngine.expandHome(cfg.localRepoPath);
|
|
22
|
+
if (!fs.existsSync(path.join(repoPath, '.git'))) {
|
|
23
|
+
logger.info(t('changelog.noRepo'));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const git = simpleGit(repoPath, {
|
|
27
|
+
maxConcurrentProcesses: 1,
|
|
28
|
+
timeout: { block: 30_000 },
|
|
29
|
+
});
|
|
30
|
+
// Get recent commits
|
|
31
|
+
const logResult = await git.log({ maxCount: limit });
|
|
32
|
+
if (logResult.all.length === 0) {
|
|
33
|
+
logger.info(t('changelog.empty'));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
for (const commit of logResult.all) {
|
|
37
|
+
const date = new Date(commit.date).toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' });
|
|
38
|
+
const shortHash = commit.hash.slice(0, 7);
|
|
39
|
+
// Header: hash + message + date
|
|
40
|
+
console.log(` ${chalk.yellow(shortHash)} ${chalk.bold.white(commit.message)} ${chalk.gray(date)}`);
|
|
41
|
+
// Get diffstat for this commit
|
|
42
|
+
try {
|
|
43
|
+
const diffRaw = await git.diff([
|
|
44
|
+
`${commit.hash}~1..${commit.hash}`,
|
|
45
|
+
'--stat',
|
|
46
|
+
'--stat-width=80',
|
|
47
|
+
]);
|
|
48
|
+
// Parse diffstat output
|
|
49
|
+
const changes = parseDiffStat(diffRaw);
|
|
50
|
+
for (const change of changes) {
|
|
51
|
+
const icon = change.type === 'added' ? chalk.green('+')
|
|
52
|
+
: change.type === 'deleted' ? chalk.red('-')
|
|
53
|
+
: chalk.yellow('~');
|
|
54
|
+
const coloredFile = change.type === 'added' ? chalk.green(change.file)
|
|
55
|
+
: change.type === 'deleted' ? chalk.red(change.file)
|
|
56
|
+
: chalk.yellow(change.file);
|
|
57
|
+
const stats = change.insertions + change.deletions > 0
|
|
58
|
+
? chalk.gray(` (+${change.insertions} -${change.deletions})`)
|
|
59
|
+
: '';
|
|
60
|
+
console.log(` ${icon} ${coloredFile}${stats}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// First commit or other git error — just show the commit header
|
|
65
|
+
console.log(chalk.gray(` ${t('changelog.firstCommit')}`));
|
|
66
|
+
}
|
|
67
|
+
console.log();
|
|
68
|
+
}
|
|
69
|
+
logger.info(t('changelog.shown', { count: logResult.all.length }));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Parse git diff --stat output into structured file changes.
|
|
73
|
+
* Lines look like: " agents/claude/MEMORY.md | 10 +++---"
|
|
74
|
+
* The summary line looks like: " 3 files changed, 15 insertions(+), 5 deletions(-)"
|
|
75
|
+
*/
|
|
76
|
+
function parseDiffStat(raw) {
|
|
77
|
+
const lines = raw.split('\n').filter(l => l.trim().length > 0);
|
|
78
|
+
const changes = [];
|
|
79
|
+
for (const line of lines) {
|
|
80
|
+
// Skip the summary line
|
|
81
|
+
if (line.includes('files changed') || line.includes('file changed'))
|
|
82
|
+
continue;
|
|
83
|
+
if (line.includes('insertion') || line.includes('deletion'))
|
|
84
|
+
continue;
|
|
85
|
+
// Match: " path/to/file | N ++--" or " path/to/file (new) | N +++"
|
|
86
|
+
const match = line.match(/^\s*(.+?)\s*\|\s*(\d+)\s*([+-]*)\s*$/);
|
|
87
|
+
if (!match)
|
|
88
|
+
continue;
|
|
89
|
+
const file = match[1].trim();
|
|
90
|
+
const totalChanges = parseInt(match[2], 10);
|
|
91
|
+
const changeSummary = match[3] ?? '';
|
|
92
|
+
const insertions = (changeSummary.match(/\+/g) ?? []).length;
|
|
93
|
+
const deletions = (changeSummary.match(/-/g) ?? []).length;
|
|
94
|
+
// Scale to actual counts
|
|
95
|
+
const totalMarks = insertions + deletions;
|
|
96
|
+
const scaledIns = totalMarks > 0 ? Math.round((insertions / totalMarks) * totalChanges) : 0;
|
|
97
|
+
const scaledDel = totalMarks > 0 ? totalChanges - scaledIns : 0;
|
|
98
|
+
let type;
|
|
99
|
+
if (deletions === 0 && insertions > 0) {
|
|
100
|
+
type = 'added';
|
|
101
|
+
}
|
|
102
|
+
else if (insertions === 0 && deletions > 0) {
|
|
103
|
+
type = 'deleted';
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
type = 'modified';
|
|
107
|
+
}
|
|
108
|
+
changes.push({ file, type, insertions: scaledIns, deletions: scaledDel });
|
|
109
|
+
}
|
|
110
|
+
return changes;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=changelog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../../src/commands/changelog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cleanup.ts — wangchuan cleanup command
|
|
3
|
+
*
|
|
4
|
+
* Scans all synced files and detects:
|
|
5
|
+
* - stale: not modified in >N days (default 90) — yellow warning
|
|
6
|
+
* - dormant: not modified in >2N days (default 180) — red warning
|
|
7
|
+
* - phantom: configured but file doesn't exist locally — gray
|
|
8
|
+
*
|
|
9
|
+
* Options:
|
|
10
|
+
* --auto auto-disable agent profiles where all files are phantom
|
|
11
|
+
* --days customize stale threshold (default 90)
|
|
12
|
+
*/
|
|
13
|
+
import type { AgentName } from '../types.js';
|
|
14
|
+
export interface CleanupOptions {
|
|
15
|
+
readonly agent?: AgentName | undefined;
|
|
16
|
+
readonly auto?: boolean | undefined;
|
|
17
|
+
readonly days?: number | undefined;
|
|
18
|
+
}
|
|
19
|
+
export declare function cmdCleanup(opts: CleanupOptions): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,KAAK,EAAE,SAAS,EAA8B,MAAM,aAAa,CAAC;AAGzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAuDD,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsFpE"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cleanup.ts — wangchuan cleanup command
|
|
3
|
+
*
|
|
4
|
+
* Scans all synced files and detects:
|
|
5
|
+
* - stale: not modified in >N days (default 90) — yellow warning
|
|
6
|
+
* - dormant: not modified in >2N days (default 180) — red warning
|
|
7
|
+
* - phantom: configured but file doesn't exist locally — gray
|
|
8
|
+
*
|
|
9
|
+
* Options:
|
|
10
|
+
* --auto auto-disable agent profiles where all files are phantom
|
|
11
|
+
* --days customize stale threshold (default 90)
|
|
12
|
+
*/
|
|
13
|
+
import fs from 'fs';
|
|
14
|
+
import { config } from '../core/config.js';
|
|
15
|
+
import { ensureMigrated } from '../core/migrate.js';
|
|
16
|
+
import { buildFileEntries } from '../core/sync.js';
|
|
17
|
+
import { validator } from '../utils/validator.js';
|
|
18
|
+
import { logger } from '../utils/logger.js';
|
|
19
|
+
import { t } from '../i18n.js';
|
|
20
|
+
import chalk from 'chalk';
|
|
21
|
+
import { AGENT_NAMES } from '../types.js';
|
|
22
|
+
function classifyEntry(entry, staleDays) {
|
|
23
|
+
if (!fs.existsSync(entry.srcAbs)) {
|
|
24
|
+
return {
|
|
25
|
+
repoRel: entry.repoRel,
|
|
26
|
+
agentName: entry.agentName,
|
|
27
|
+
status: 'phantom',
|
|
28
|
+
daysSinceModified: null,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const stat = fs.statSync(entry.srcAbs);
|
|
32
|
+
const ageMs = Date.now() - stat.mtimeMs;
|
|
33
|
+
const ageDays = Math.floor(ageMs / (1000 * 60 * 60 * 24));
|
|
34
|
+
const dormantDays = staleDays * 2;
|
|
35
|
+
let status = 'ok';
|
|
36
|
+
if (ageDays >= dormantDays) {
|
|
37
|
+
status = 'dormant';
|
|
38
|
+
}
|
|
39
|
+
else if (ageDays >= staleDays) {
|
|
40
|
+
status = 'stale';
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
repoRel: entry.repoRel,
|
|
44
|
+
agentName: entry.agentName,
|
|
45
|
+
status,
|
|
46
|
+
daysSinceModified: ageDays,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const STATUS_ICON = {
|
|
50
|
+
ok: chalk.green('✔'),
|
|
51
|
+
stale: chalk.yellow('⚠'),
|
|
52
|
+
dormant: chalk.red('●'),
|
|
53
|
+
phantom: chalk.gray('◌'),
|
|
54
|
+
};
|
|
55
|
+
const STATUS_LABEL_KEY = {
|
|
56
|
+
ok: 'cleanup.ok',
|
|
57
|
+
stale: 'cleanup.stale',
|
|
58
|
+
dormant: 'cleanup.dormant',
|
|
59
|
+
phantom: 'cleanup.phantom',
|
|
60
|
+
};
|
|
61
|
+
export async function cmdCleanup(opts) {
|
|
62
|
+
logger.banner(t('cleanup.banner'));
|
|
63
|
+
let cfg = config.load();
|
|
64
|
+
validator.requireInit(cfg);
|
|
65
|
+
cfg = ensureMigrated(cfg);
|
|
66
|
+
if (opts.agent) {
|
|
67
|
+
console.log(chalk.bold(` ${t('cleanup.filterAgent', { agent: opts.agent })}`));
|
|
68
|
+
}
|
|
69
|
+
const staleDays = opts.days ?? 90;
|
|
70
|
+
const entries = buildFileEntries(cfg, undefined, opts.agent);
|
|
71
|
+
const classified = entries.map(e => classifyEntry(e, staleDays));
|
|
72
|
+
const staleEntries = classified.filter(e => e.status === 'stale');
|
|
73
|
+
const dormantEntries = classified.filter(e => e.status === 'dormant');
|
|
74
|
+
const phantomEntries = classified.filter(e => e.status === 'phantom');
|
|
75
|
+
const okEntries = classified.filter(e => e.status === 'ok');
|
|
76
|
+
// Print results grouped by status
|
|
77
|
+
if (phantomEntries.length > 0) {
|
|
78
|
+
console.log(`\n ${chalk.gray(chalk.bold(t('cleanup.phantomHeader')))}`);
|
|
79
|
+
for (const e of phantomEntries) {
|
|
80
|
+
console.log(` ${STATUS_ICON.phantom} ${chalk.gray(e.repoRel)}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (dormantEntries.length > 0) {
|
|
84
|
+
console.log(`\n ${chalk.red(chalk.bold(t('cleanup.dormantHeader')))}`);
|
|
85
|
+
for (const e of dormantEntries) {
|
|
86
|
+
console.log(` ${STATUS_ICON.dormant} ${chalk.white(e.repoRel)} ${chalk.red(`${e.daysSinceModified}d`)}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (staleEntries.length > 0) {
|
|
90
|
+
console.log(`\n ${chalk.yellow(chalk.bold(t('cleanup.staleHeader')))}`);
|
|
91
|
+
for (const e of staleEntries) {
|
|
92
|
+
console.log(` ${STATUS_ICON.stale} ${chalk.white(e.repoRel)} ${chalk.yellow(`${e.daysSinceModified}d`)}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Summary
|
|
96
|
+
console.log();
|
|
97
|
+
console.log(` ${t('cleanup.summary', {
|
|
98
|
+
total: classified.length,
|
|
99
|
+
ok: okEntries.length,
|
|
100
|
+
stale: staleEntries.length,
|
|
101
|
+
dormant: dormantEntries.length,
|
|
102
|
+
phantom: phantomEntries.length,
|
|
103
|
+
})}`);
|
|
104
|
+
// Auto-cleanup: disable agents where ALL files are phantom
|
|
105
|
+
if (opts.auto && phantomEntries.length > 0) {
|
|
106
|
+
console.log();
|
|
107
|
+
const agentPhantomCounts = new Map();
|
|
108
|
+
const agentTotalCounts = new Map();
|
|
109
|
+
for (const e of classified) {
|
|
110
|
+
agentTotalCounts.set(e.agentName, (agentTotalCounts.get(e.agentName) ?? 0) + 1);
|
|
111
|
+
if (e.status === 'phantom') {
|
|
112
|
+
agentPhantomCounts.set(e.agentName, (agentPhantomCounts.get(e.agentName) ?? 0) + 1);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const toDisable = [];
|
|
116
|
+
for (const name of AGENT_NAMES) {
|
|
117
|
+
const total = agentTotalCounts.get(name) ?? 0;
|
|
118
|
+
const phantom = agentPhantomCounts.get(name) ?? 0;
|
|
119
|
+
if (total > 0 && phantom === total) {
|
|
120
|
+
toDisable.push(name);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (toDisable.length > 0) {
|
|
124
|
+
const raw = JSON.parse(JSON.stringify(cfg));
|
|
125
|
+
const profiles = raw['profiles']['default'];
|
|
126
|
+
for (const name of toDisable) {
|
|
127
|
+
profiles[name]['enabled'] = false;
|
|
128
|
+
console.log(` ${chalk.yellow('→')} ${t('cleanup.autoDisabled', { agent: name })}`);
|
|
129
|
+
}
|
|
130
|
+
config.save(raw);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
logger.info(t('cleanup.noAutoAction'));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config-mgmt.ts — wangchuan config export/import command
|
|
3
|
+
*
|
|
4
|
+
* Export the full wangchuan config (minus sensitive local-only fields) to a
|
|
5
|
+
* portable JSON file, and import it on another machine.
|
|
6
|
+
*/
|
|
7
|
+
export interface ConfigMgmtOptions {
|
|
8
|
+
readonly action: string;
|
|
9
|
+
readonly file?: string | undefined;
|
|
10
|
+
}
|
|
11
|
+
export declare function cmdConfigMgmt({ action, file }: ConfigMgmtOptions): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=config-mgmt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-mgmt.d.ts","sourceRoot":"","sources":["../../../src/commands/config-mgmt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAwED,wBAAsB,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBtF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config-mgmt.ts — wangchuan config export/import command
|
|
3
|
+
*
|
|
4
|
+
* Export the full wangchuan config (minus sensitive local-only fields) to a
|
|
5
|
+
* portable JSON file, and import it on another machine.
|
|
6
|
+
*/
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import { config } from '../core/config.js';
|
|
10
|
+
import { ensureMigrated } from '../core/migrate.js';
|
|
11
|
+
import { validator } from '../utils/validator.js';
|
|
12
|
+
import { logger } from '../utils/logger.js';
|
|
13
|
+
import { t } from '../i18n.js';
|
|
14
|
+
/** Fields that are local-only and should not be exported */
|
|
15
|
+
const LOCAL_ONLY_FIELDS = [
|
|
16
|
+
'localRepoPath',
|
|
17
|
+
'keyPath',
|
|
18
|
+
'hostname',
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Export config to a portable JSON file.
|
|
22
|
+
* Strips local-only fields (keyPath content, localRepoPath, hostname).
|
|
23
|
+
*/
|
|
24
|
+
function exportConfig(filePath) {
|
|
25
|
+
let cfg = config.load();
|
|
26
|
+
validator.requireInit(cfg);
|
|
27
|
+
cfg = ensureMigrated(cfg);
|
|
28
|
+
// Build export object, excluding local-only fields
|
|
29
|
+
const exported = {};
|
|
30
|
+
for (const [key, value] of Object.entries(cfg)) {
|
|
31
|
+
if (!LOCAL_ONLY_FIELDS.includes(key)) {
|
|
32
|
+
exported[key] = value;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exported['_exportedAt'] = new Date().toISOString();
|
|
36
|
+
const absPath = path.resolve(filePath);
|
|
37
|
+
fs.writeFileSync(absPath, JSON.stringify(exported, null, 2), 'utf-8');
|
|
38
|
+
logger.ok(t('configMgmt.exported', { path: absPath }));
|
|
39
|
+
logger.info(t('configMgmt.exportHint'));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Import config from an exported JSON file.
|
|
43
|
+
* Merges into current config, preserving local-only fields.
|
|
44
|
+
*/
|
|
45
|
+
function importConfig(filePath) {
|
|
46
|
+
const absPath = path.resolve(filePath);
|
|
47
|
+
if (!fs.existsSync(absPath)) {
|
|
48
|
+
throw new Error(t('configMgmt.fileNotFound', { path: absPath }));
|
|
49
|
+
}
|
|
50
|
+
let imported;
|
|
51
|
+
try {
|
|
52
|
+
imported = JSON.parse(fs.readFileSync(absPath, 'utf-8'));
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
throw new Error(t('configMgmt.invalidFile', { error: err.message }));
|
|
56
|
+
}
|
|
57
|
+
// Load current config (must be initialized so local-only fields exist)
|
|
58
|
+
const current = config.load();
|
|
59
|
+
validator.requireInit(current);
|
|
60
|
+
// Remove metadata from imported data
|
|
61
|
+
delete imported['_exportedAt'];
|
|
62
|
+
// Remove local-only fields from imported data (use current values)
|
|
63
|
+
for (const field of LOCAL_ONLY_FIELDS) {
|
|
64
|
+
delete imported[field];
|
|
65
|
+
}
|
|
66
|
+
// Merge: imported values override current, but local-only fields are preserved
|
|
67
|
+
const merged = { ...current, ...imported };
|
|
68
|
+
config.save(merged);
|
|
69
|
+
logger.ok(t('configMgmt.imported', { path: absPath }));
|
|
70
|
+
}
|
|
71
|
+
const DEFAULT_EXPORT_FILE = 'wangchuan-config-export.json';
|
|
72
|
+
export async function cmdConfigMgmt({ action, file }) {
|
|
73
|
+
logger.banner(t('configMgmt.banner'));
|
|
74
|
+
switch (action) {
|
|
75
|
+
case 'export':
|
|
76
|
+
exportConfig(file ?? DEFAULT_EXPORT_FILE);
|
|
77
|
+
break;
|
|
78
|
+
case 'import':
|
|
79
|
+
if (!file) {
|
|
80
|
+
throw new Error(t('configMgmt.importFileRequired'));
|
|
81
|
+
}
|
|
82
|
+
importConfig(file);
|
|
83
|
+
break;
|
|
84
|
+
default:
|
|
85
|
+
throw new Error(t('configMgmt.unknownAction', { action }));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=config-mgmt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-mgmt.js","sourceRoot":"","sources":["../../../src/commands/config-mgmt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* search.ts — wangchuan search command
|
|
3
|
+
*
|
|
4
|
+
* Search across all synced (non-encrypted) text files for a query string or regex.
|
|
5
|
+
* Shows file path, line number, and matching line with context.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentName } from '../types.js';
|
|
8
|
+
export interface SearchOptions {
|
|
9
|
+
readonly query: string;
|
|
10
|
+
readonly agent?: AgentName | undefined;
|
|
11
|
+
readonly ignoreCase?: boolean | undefined;
|
|
12
|
+
readonly regex?: boolean | undefined;
|
|
13
|
+
readonly context?: number | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare function cmdSearch(opts: SearchOptions): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AA2ED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiElE"}
|