wangchuan 3.1.0 → 4.1.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.d.ts +10 -2
- package/dist/bin/wangchuan.d.ts.map +1 -1
- package/dist/bin/wangchuan.js +43 -226
- package/dist/bin/wangchuan.js.map +1 -1
- package/dist/src/commands/doctor.d.ts +17 -6
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +233 -65
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/env.d.ts.map +1 -1
- package/dist/src/commands/env.js +36 -0
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/memory.d.ts +9 -0
- package/dist/src/commands/memory.d.ts.map +1 -0
- package/dist/src/commands/memory.js +182 -0
- package/dist/src/commands/memory.js.map +1 -0
- package/dist/src/commands/status.d.ts +20 -3
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +361 -51
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/sync.d.ts.map +1 -1
- package/dist/src/commands/sync.js +56 -0
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/watch.d.ts +4 -0
- package/dist/src/commands/watch.d.ts.map +1 -1
- package/dist/src/commands/watch.js +93 -4
- package/dist/src/commands/watch.js.map +1 -1
- package/dist/src/core/sync.d.ts.map +1 -1
- package/dist/src/core/sync.js +12 -1
- package/dist/src/core/sync.js.map +1 -1
- package/dist/src/i18n.d.ts.map +1 -1
- package/dist/src/i18n.js +52 -8
- package/dist/src/i18n.js.map +1 -1
- package/dist/src/types.d.ts +8 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +40 -53
- package/skill/claude/SKILL.md +24 -41
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory.ts — wangchuan memory command
|
|
3
|
+
*
|
|
4
|
+
* Browse and copy memory/config files across agents.
|
|
5
|
+
* Subcommands: list, show, copy, broadcast
|
|
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 { syncEngine } from '../core/sync.js';
|
|
12
|
+
import { cryptoEngine } from '../core/crypto.js';
|
|
13
|
+
import { validator } from '../utils/validator.js';
|
|
14
|
+
import { logger } from '../utils/logger.js';
|
|
15
|
+
import { t } from '../i18n.js';
|
|
16
|
+
import { AGENT_NAMES } from '../types.js';
|
|
17
|
+
import chalk from 'chalk';
|
|
18
|
+
export async function cmdMemory({ action, args, agent, file }) {
|
|
19
|
+
logger.banner(t('memory.banner'));
|
|
20
|
+
let cfg = config.load();
|
|
21
|
+
validator.requireInit(cfg);
|
|
22
|
+
cfg = ensureMigrated(cfg);
|
|
23
|
+
switch (action) {
|
|
24
|
+
case 'list': return memoryList(cfg, agent);
|
|
25
|
+
case 'show': return memoryShow(cfg, args);
|
|
26
|
+
case 'copy': return memoryCopy(cfg, args, file);
|
|
27
|
+
case 'broadcast': return memoryBroadcast(cfg, args, file);
|
|
28
|
+
default:
|
|
29
|
+
throw new Error(t('memory.unknownAction', { action }));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// ── Helpers ──────────────────────────────────────────────────────
|
|
33
|
+
/** Get syncFiles entries for a given agent (only whole-file entries, not jsonFields) */
|
|
34
|
+
function getAgentFileEntries(cfg, agentName) {
|
|
35
|
+
return syncEngine.buildFileEntries(cfg, undefined, agentName)
|
|
36
|
+
.filter(e => e.agentName === agentName);
|
|
37
|
+
}
|
|
38
|
+
function formatSize(bytes) {
|
|
39
|
+
if (bytes < 1024)
|
|
40
|
+
return `${bytes}B`;
|
|
41
|
+
if (bytes < 1024 * 1024)
|
|
42
|
+
return `${(bytes / 1024).toFixed(1)}KB`;
|
|
43
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
44
|
+
}
|
|
45
|
+
function formatTime(mtime) {
|
|
46
|
+
return mtime.toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai', hour12: false });
|
|
47
|
+
}
|
|
48
|
+
// ── list ──────────────────────────────────────────────────────────
|
|
49
|
+
function memoryList(cfg, agent) {
|
|
50
|
+
const profiles = cfg.profiles.default;
|
|
51
|
+
const agents = agent ? [agent] : [...AGENT_NAMES];
|
|
52
|
+
let anyFound = false;
|
|
53
|
+
for (const name of agents) {
|
|
54
|
+
const p = profiles[name];
|
|
55
|
+
if (!p.enabled)
|
|
56
|
+
continue;
|
|
57
|
+
const entries = getAgentFileEntries(cfg, name);
|
|
58
|
+
const existing = entries.filter(e => fs.existsSync(e.srcAbs));
|
|
59
|
+
if (existing.length === 0)
|
|
60
|
+
continue;
|
|
61
|
+
anyFound = true;
|
|
62
|
+
console.log(chalk.bold.cyan(` ${t('memory.list.agentHeader', { agent: name })}`));
|
|
63
|
+
for (const e of existing) {
|
|
64
|
+
const stat = fs.statSync(e.srcAbs);
|
|
65
|
+
const size = formatSize(stat.size);
|
|
66
|
+
const time = formatTime(stat.mtime);
|
|
67
|
+
const fileName = path.basename(e.srcAbs);
|
|
68
|
+
const encLabel = e.encrypt ? chalk.magenta(' [enc]') : '';
|
|
69
|
+
console.log(` ${chalk.white(fileName)} ${chalk.gray(size)} ${chalk.gray(time)}${encLabel}`);
|
|
70
|
+
}
|
|
71
|
+
console.log();
|
|
72
|
+
}
|
|
73
|
+
if (!anyFound) {
|
|
74
|
+
logger.info(t('memory.list.empty'));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// ── show ──────────────────────────────────────────────────────────
|
|
78
|
+
function memoryShow(cfg, args) {
|
|
79
|
+
if (args.length < 2) {
|
|
80
|
+
throw new Error(t('memory.argsRequired', { action: 'show' }));
|
|
81
|
+
}
|
|
82
|
+
const agentName = args[0];
|
|
83
|
+
const fileName = args[1];
|
|
84
|
+
const entries = getAgentFileEntries(cfg, agentName);
|
|
85
|
+
const entry = entries.find(e => path.basename(e.srcAbs) === fileName || e.repoRel.endsWith(fileName));
|
|
86
|
+
if (!entry || !fs.existsSync(entry.srcAbs)) {
|
|
87
|
+
throw new Error(t('memory.show.notFound', { agent: agentName, file: fileName }));
|
|
88
|
+
}
|
|
89
|
+
console.log(chalk.bold(` ${t('memory.show.header', { agent: agentName, file: fileName })}`));
|
|
90
|
+
console.log();
|
|
91
|
+
if (entry.encrypt) {
|
|
92
|
+
const keyPath = syncEngine.expandHome(cfg.keyPath);
|
|
93
|
+
const repoPath = syncEngine.expandHome(cfg.localRepoPath);
|
|
94
|
+
const repoAbs = path.join(repoPath, entry.repoRel);
|
|
95
|
+
if (fs.existsSync(repoAbs)) {
|
|
96
|
+
const decrypted = cryptoEngine.decryptString(fs.readFileSync(repoAbs, 'utf-8').trim(), keyPath);
|
|
97
|
+
console.log(decrypted);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Encrypt from local source for display
|
|
101
|
+
console.log(fs.readFileSync(entry.srcAbs, 'utf-8'));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
console.log(fs.readFileSync(entry.srcAbs, 'utf-8'));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// ── copy ──────────────────────────────────────────────────────────
|
|
109
|
+
function memoryCopy(cfg, args, filePattern) {
|
|
110
|
+
if (args.length < 2) {
|
|
111
|
+
throw new Error(t('memory.argsRequired', { action: 'copy' }));
|
|
112
|
+
}
|
|
113
|
+
const fromAgent = args[0];
|
|
114
|
+
const toAgent = args[1];
|
|
115
|
+
if (fromAgent === toAgent) {
|
|
116
|
+
throw new Error(t('memory.sameAgent'));
|
|
117
|
+
}
|
|
118
|
+
const copied = copyFiles(cfg, fromAgent, toAgent, filePattern);
|
|
119
|
+
if (copied === 0) {
|
|
120
|
+
logger.info(t('memory.copy.noFiles'));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
logger.ok(t('memory.copy.done', { count: copied, from: fromAgent, to: toAgent }));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// ── broadcast ────────────────────────────────────────────────────
|
|
127
|
+
function memoryBroadcast(cfg, args, filePattern) {
|
|
128
|
+
if (args.length < 1) {
|
|
129
|
+
throw new Error(t('memory.argsRequired', { action: 'broadcast' }));
|
|
130
|
+
}
|
|
131
|
+
const fromAgent = args[0];
|
|
132
|
+
const profiles = cfg.profiles.default;
|
|
133
|
+
const targets = [];
|
|
134
|
+
let totalCopied = 0;
|
|
135
|
+
for (const name of AGENT_NAMES) {
|
|
136
|
+
if (name === fromAgent)
|
|
137
|
+
continue;
|
|
138
|
+
const p = profiles[name];
|
|
139
|
+
if (!p.enabled)
|
|
140
|
+
continue;
|
|
141
|
+
const copied = copyFiles(cfg, fromAgent, name, filePattern);
|
|
142
|
+
if (copied > 0) {
|
|
143
|
+
targets.push(name);
|
|
144
|
+
totalCopied += copied;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (totalCopied === 0) {
|
|
148
|
+
logger.info(t('memory.copy.noFiles'));
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
logger.ok(t('memory.broadcast.done', {
|
|
152
|
+
count: totalCopied,
|
|
153
|
+
from: fromAgent,
|
|
154
|
+
agents: targets.join(', '),
|
|
155
|
+
}));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// ── Shared copy logic ────────────────────────────────────────────
|
|
159
|
+
function copyFiles(cfg, fromAgent, toAgent, filePattern) {
|
|
160
|
+
const fromEntries = getAgentFileEntries(cfg, fromAgent);
|
|
161
|
+
const toProfile = cfg.profiles.default[toAgent];
|
|
162
|
+
const toWsPath = syncEngine.expandHome(toProfile.workspacePath);
|
|
163
|
+
let copied = 0;
|
|
164
|
+
for (const entry of fromEntries) {
|
|
165
|
+
if (!fs.existsSync(entry.srcAbs))
|
|
166
|
+
continue;
|
|
167
|
+
if (entry.jsonExtract)
|
|
168
|
+
continue; // skip json field entries
|
|
169
|
+
const relFile = path.relative(syncEngine.expandHome(cfg.profiles.default[fromAgent].workspacePath), entry.srcAbs);
|
|
170
|
+
if (filePattern && !relFile.includes(filePattern))
|
|
171
|
+
continue;
|
|
172
|
+
const destPath = path.join(toWsPath, relFile);
|
|
173
|
+
if (fs.existsSync(destPath)) {
|
|
174
|
+
logger.warn(t('memory.copy.overwrite', { file: relFile }));
|
|
175
|
+
}
|
|
176
|
+
fs.mkdirSync(path.dirname(destPath), { recursive: true });
|
|
177
|
+
fs.copyFileSync(entry.srcAbs, destPath);
|
|
178
|
+
copied++;
|
|
179
|
+
}
|
|
180
|
+
return copied;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/commands/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* status.ts — wangchuan status command
|
|
2
|
+
* status.ts — wangchuan status command (enhanced)
|
|
3
|
+
*
|
|
4
|
+
* Default (no flag): compact one-screen summary:
|
|
5
|
+
* - Repo + branch + environment
|
|
6
|
+
* - Health score bar
|
|
7
|
+
* - "3 files changed since last sync"
|
|
8
|
+
* - Last sync timestamp
|
|
9
|
+
* - "Run `wangchuan sync` to update" hint
|
|
10
|
+
*
|
|
11
|
+
* --verbose / -v: full detail:
|
|
12
|
+
* - All managed files with local/repo status (from list.ts logic)
|
|
13
|
+
* - Line-level diff for changed files (from diff.ts logic)
|
|
14
|
+
* - Recent sync history (last 5)
|
|
15
|
+
* - Per-agent breakdown
|
|
3
16
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
export
|
|
17
|
+
import type { AgentName } from '../types.js';
|
|
18
|
+
export interface StatusOptions {
|
|
19
|
+
readonly agent?: AgentName | undefined;
|
|
20
|
+
readonly verbose?: boolean | undefined;
|
|
21
|
+
}
|
|
22
|
+
export declare function cmdStatus({ agent, verbose }?: StatusOptions): Promise<void>;
|
|
6
23
|
//# sourceMappingURL=status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/status.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmBH,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,aAAa,CAAC;AAGnF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAmFD,wBAAsB,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcrF"}
|