wangchuan 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +146 -174
  2. package/README.zh-CN.md +254 -0
  3. package/dist/bin/wangchuan.d.ts +10 -2
  4. package/dist/bin/wangchuan.d.ts.map +1 -1
  5. package/dist/bin/wangchuan.js +30 -233
  6. package/dist/bin/wangchuan.js.map +1 -1
  7. package/dist/src/agents/codex.d.ts +9 -0
  8. package/dist/src/agents/codex.d.ts.map +1 -0
  9. package/dist/src/agents/codex.js +20 -0
  10. package/dist/src/agents/codex.js.map +1 -0
  11. package/dist/src/agents/index.d.ts.map +1 -1
  12. package/dist/src/agents/index.js +2 -0
  13. package/dist/src/agents/index.js.map +1 -1
  14. package/dist/src/commands/completions.js +2 -2
  15. package/dist/src/commands/completions.js.map +1 -1
  16. package/dist/src/commands/doctor.d.ts +17 -6
  17. package/dist/src/commands/doctor.d.ts.map +1 -1
  18. package/dist/src/commands/doctor.js +233 -65
  19. package/dist/src/commands/doctor.js.map +1 -1
  20. package/dist/src/commands/list.d.ts.map +1 -1
  21. package/dist/src/commands/list.js +1 -0
  22. package/dist/src/commands/list.js.map +1 -1
  23. package/dist/src/commands/status.d.ts +20 -3
  24. package/dist/src/commands/status.d.ts.map +1 -1
  25. package/dist/src/commands/status.js +321 -51
  26. package/dist/src/commands/status.js.map +1 -1
  27. package/dist/src/commands/sync.d.ts.map +1 -1
  28. package/dist/src/commands/sync.js +51 -0
  29. package/dist/src/commands/sync.js.map +1 -1
  30. package/dist/src/commands/template.js +1 -1
  31. package/dist/src/commands/template.js.map +1 -1
  32. package/dist/src/core/config.d.ts +9 -9
  33. package/dist/src/core/config.d.ts.map +1 -1
  34. package/dist/src/core/config.js +11 -11
  35. package/dist/src/core/config.js.map +1 -1
  36. package/dist/src/core/crypto.d.ts +10 -10
  37. package/dist/src/core/crypto.d.ts.map +1 -1
  38. package/dist/src/core/crypto.js +19 -19
  39. package/dist/src/core/crypto.js.map +1 -1
  40. package/dist/src/core/git.d.ts +2 -2
  41. package/dist/src/core/git.js +9 -9
  42. package/dist/src/core/git.js.map +1 -1
  43. package/dist/src/core/json-field.d.ts +5 -5
  44. package/dist/src/core/json-field.d.ts.map +1 -1
  45. package/dist/src/core/json-field.js +5 -5
  46. package/dist/src/core/json-field.js.map +1 -1
  47. package/dist/src/core/sync.d.ts +9 -9
  48. package/dist/src/core/sync.js +47 -47
  49. package/dist/src/core/sync.js.map +1 -1
  50. package/dist/src/i18n.d.ts.map +1 -1
  51. package/dist/src/i18n.js +24 -10
  52. package/dist/src/i18n.js.map +1 -1
  53. package/dist/src/types.d.ts +24 -23
  54. package/dist/src/types.d.ts.map +1 -1
  55. package/dist/src/types.js +3 -3
  56. package/dist/src/types.js.map +1 -1
  57. package/dist/src/utils/linediff.d.ts +6 -5
  58. package/dist/src/utils/linediff.d.ts.map +1 -1
  59. package/dist/src/utils/linediff.js +10 -9
  60. package/dist/src/utils/linediff.js.map +1 -1
  61. package/dist/test/crypto.test.d.ts +1 -1
  62. package/dist/test/crypto.test.js +16 -16
  63. package/dist/test/crypto.test.js.map +1 -1
  64. package/dist/test/json-field.test.d.ts +1 -1
  65. package/dist/test/json-field.test.js +13 -13
  66. package/dist/test/json-field.test.js.map +1 -1
  67. package/dist/test/sync.test.d.ts +8 -8
  68. package/dist/test/sync.test.js +122 -113
  69. package/dist/test/sync.test.js.map +1 -1
  70. package/package.json +1 -1
  71. package/skill/SKILL.md +40 -53
  72. package/skill/claude/SKILL.md +10 -41
@@ -1,51 +1,201 @@
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
17
  import fs from 'fs';
18
+ import path from 'path';
19
+ import crypto from 'crypto';
5
20
  import { config } from '../core/config.js';
6
21
  import { resolveGitBranch } from '../core/config.js';
7
22
  import { ensureMigrated } from '../core/migrate.js';
8
23
  import { gitEngine } from '../core/git.js';
9
24
  import { syncEngine } from '../core/sync.js';
25
+ import { cryptoEngine } from '../core/crypto.js';
10
26
  import { syncLock } from '../core/sync-lock.js';
27
+ import { readSyncHistory } from '../core/sync-history.js';
11
28
  import { validator } from '../utils/validator.js';
29
+ import { diffText } from '../utils/linediff.js';
12
30
  import { logger } from '../utils/logger.js';
13
31
  import { t } from '../i18n.js';
14
32
  import { AGENT_NAMES } from '../types.js';
15
33
  import chalk from 'chalk';
16
- export async function cmdStatus({ agent } = {}) {
34
+ // ── Health score helpers (from health.ts) ───────────────────────
35
+ function clamp(n) {
36
+ return Math.max(0, Math.min(100, Math.round(n)));
37
+ }
38
+ function renderBar(score, width = 20) {
39
+ const filled = Math.round((score / 100) * width);
40
+ const empty = width - filled;
41
+ const bar = '█'.repeat(filled) + '░'.repeat(empty);
42
+ const color = score >= 80 ? chalk.green : score >= 50 ? chalk.yellow : chalk.red;
43
+ return `${color(bar)} ${score}/100`;
44
+ }
45
+ function computeFreshness(repoPath) {
46
+ const meta = syncEngine.readSyncMeta(repoPath);
47
+ if (!meta)
48
+ return 0;
49
+ const ageMs = Date.now() - new Date(meta.lastSyncAt).getTime();
50
+ const ageDays = ageMs / (1000 * 60 * 60 * 24);
51
+ return clamp(100 - ageDays * 10);
52
+ }
53
+ function computeCoverage(entries) {
54
+ if (entries.length === 0)
55
+ return 100;
56
+ const existing = entries.filter(e => fs.existsSync(e.srcAbs)).length;
57
+ return clamp((existing / entries.length) * 100);
58
+ }
59
+ function computeIntegrity(repoPath) {
60
+ const integrityPath = path.join(repoPath, 'integrity.json');
61
+ if (!fs.existsSync(integrityPath))
62
+ return 100;
63
+ let manifest;
64
+ try {
65
+ manifest = JSON.parse(fs.readFileSync(integrityPath, 'utf-8'));
66
+ }
67
+ catch {
68
+ return 100;
69
+ }
70
+ const total = Object.keys(manifest.checksums).length;
71
+ if (total === 0)
72
+ return 100;
73
+ let passing = 0;
74
+ for (const [repoRel, expectedHash] of Object.entries(manifest.checksums)) {
75
+ const absPath = path.join(repoPath, repoRel);
76
+ if (!fs.existsSync(absPath))
77
+ continue;
78
+ const actualHash = crypto.createHash('sha256').update(fs.readFileSync(absPath)).digest('hex');
79
+ if (actualHash === expectedHash)
80
+ passing++;
81
+ }
82
+ return clamp((passing / total) * 100);
83
+ }
84
+ function computeEncryption(entries) {
85
+ if (entries.length === 0)
86
+ return 100;
87
+ const sensitivePatterns = ['.env', 'key', 'secret', 'token', 'credential', 'password', 'mcp'];
88
+ const sensitiveEntries = entries.filter(e => sensitivePatterns.some(p => e.repoRel.toLowerCase().includes(p)));
89
+ if (sensitiveEntries.length === 0)
90
+ return 100;
91
+ const encSensitive = sensitiveEntries.filter(e => e.encrypt).length;
92
+ return clamp((encSensitive / sensitiveEntries.length) * 100);
93
+ }
94
+ function computeOverall(repoPath, entries) {
95
+ const freshness = computeFreshness(repoPath);
96
+ const coverage = computeCoverage(entries);
97
+ const integrity = computeIntegrity(repoPath);
98
+ const encryption = computeEncryption(entries);
99
+ return clamp((freshness + coverage + integrity + encryption) / 4);
100
+ }
101
+ // ── Tier labels for list view ──────────────────────────────────
102
+ const TIER_LABELS = {
103
+ openclaw: 'OpenClaw',
104
+ claude: 'Claude',
105
+ gemini: 'Gemini',
106
+ codebuddy: 'CodeBuddy',
107
+ workbuddy: 'WorkBuddy',
108
+ cursor: 'Cursor',
109
+ codex: 'Codex',
110
+ shared: '', // filled via t()
111
+ };
112
+ // ── Main command ────────────────────────────────────────────────
113
+ export async function cmdStatus({ agent, verbose } = {}) {
17
114
  logger.banner(t('status.banner'));
18
115
  let cfg = config.load();
19
116
  validator.requireInit(cfg);
20
117
  cfg = ensureMigrated(cfg);
21
118
  const repoPath = syncEngine.expandHome(cfg.localRepoPath);
119
+ if (verbose) {
120
+ await renderVerbose(cfg, repoPath, agent);
121
+ }
122
+ else {
123
+ await renderCompact(cfg, repoPath, agent);
124
+ }
125
+ }
126
+ // ── Compact view (default) ──────────────────────────────────────
127
+ async function renderCompact(cfg, repoPath, agent) {
128
+ // Header
22
129
  console.log(chalk.bold(' ' + t('status.repo')) + chalk.cyan(cfg.repo));
23
- console.log(chalk.bold(' ' + t('status.local')) + repoPath);
24
130
  console.log(chalk.bold(' ' + t('status.branch')) + chalk.yellow(resolveGitBranch(cfg)));
25
131
  console.log(chalk.bold(' ' + t('status.env')) + chalk.magenta(cfg.environment ?? 'default'));
26
132
  if (agent)
27
133
  console.log(chalk.bold(' ' + t('status.agent')) + chalk.cyan(agent));
28
134
  console.log();
29
- // ── Sync lock status ──────────────────────────────────────────
30
- const lock = syncLock.read();
31
- if (lock) {
32
- let lockAlive;
33
- try {
34
- process.kill(lock.pid, 0);
35
- lockAlive = true;
36
- }
37
- catch {
38
- lockAlive = false;
39
- }
40
- if (lockAlive) {
41
- console.log(chalk.yellow(` ${t('status.lockActive', { pid: lock.pid, startedAt: lock.startedAt })}`));
135
+ // Health score bar
136
+ const entries = syncEngine.buildFileEntries(cfg, undefined, agent);
137
+ const health = computeOverall(repoPath, entries);
138
+ console.log(chalk.bold(' ' + t('status.healthLabel')) + renderBar(health));
139
+ console.log();
140
+ // Sync lock warning
141
+ renderLockWarning();
142
+ // Workspace diff summary
143
+ try {
144
+ const diff = await syncEngine.diff(cfg, agent);
145
+ const total = diff.added.length + diff.modified.length + diff.missing.length;
146
+ if (total === 0) {
147
+ logger.ok(' ' + t('status.noSync'));
42
148
  }
43
149
  else {
44
- console.log(chalk.red(` 🔴 ${t('status.lockStale', { pid: lock.pid })}`));
150
+ console.log(` ${chalk.yellow('+')} ${diff.added.length} ${t('status.addedLabel')} ` +
151
+ `${chalk.yellow('~')} ${diff.modified.length} ${t('status.modifiedLabel')} ` +
152
+ `${chalk.red('-')} ${diff.missing.length} ${t('status.missingLabel')}`);
45
153
  }
154
+ }
155
+ catch (err) {
156
+ logger.warn(t('status.diffFailed', { error: err.message }));
157
+ }
158
+ // Last sync
159
+ const meta = syncEngine.readSyncMeta(repoPath);
160
+ if (meta) {
161
+ const ts = new Date(meta.lastSyncAt).toLocaleString();
46
162
  console.log();
163
+ console.log(` ${t('status.lastSync')} ${chalk.gray(ts)} ${chalk.gray(`(${meta.hostname})`)}`);
47
164
  }
48
- // ── Recent commits ──────────────────────────────────────────────
165
+ // Agent discovery hints
166
+ renderDiscoveryHints(cfg);
167
+ // Hint
168
+ console.log();
169
+ logger.info(` ${t('status.syncHint')}`);
170
+ logger.info(` ${t('status.verboseHint')}`);
171
+ }
172
+ // ── Verbose view (--verbose) ────────────────────────────────────
173
+ async function renderVerbose(cfg, repoPath, agent) {
174
+ // Header
175
+ console.log(chalk.bold(' ' + t('status.repo')) + chalk.cyan(cfg.repo));
176
+ console.log(chalk.bold(' ' + t('status.local')) + repoPath);
177
+ console.log(chalk.bold(' ' + t('status.branch')) + chalk.yellow(resolveGitBranch(cfg)));
178
+ console.log(chalk.bold(' ' + t('status.env')) + chalk.magenta(cfg.environment ?? 'default'));
179
+ if (agent)
180
+ console.log(chalk.bold(' ' + t('status.agent')) + chalk.cyan(agent));
181
+ console.log();
182
+ // Sync lock warning
183
+ renderLockWarning();
184
+ // ── Health score ────────────────────────────────────────────
185
+ const allEntries = syncEngine.buildFileEntries(cfg, undefined, agent);
186
+ const freshness = computeFreshness(repoPath);
187
+ const coverage = computeCoverage(allEntries);
188
+ const integrity = computeIntegrity(repoPath);
189
+ const encryption = computeEncryption(allEntries);
190
+ const overall = clamp((freshness + coverage + integrity + encryption) / 4);
191
+ console.log(chalk.bold(` ${t('status.healthLabel')}`));
192
+ console.log(` ${t('health.freshness').padEnd(14)} ${renderBar(freshness)}`);
193
+ console.log(` ${t('health.coverage').padEnd(14)} ${renderBar(coverage)}`);
194
+ console.log(` ${t('health.integrity').padEnd(14)} ${renderBar(integrity)}`);
195
+ console.log(` ${t('health.encryption').padEnd(14)} ${renderBar(encryption)}`);
196
+ console.log(chalk.bold(` ${t('health.overall').padEnd(14)} ${renderBar(overall)}`));
197
+ console.log();
198
+ // ── Recent commits ─────────────────────────────────────────
49
199
  try {
50
200
  const logs = await gitEngine.log(repoPath, 3);
51
201
  if (logs.length > 0) {
@@ -60,25 +210,7 @@ export async function cmdStatus({ agent } = {}) {
60
210
  catch {
61
211
  logger.warn(t('status.cannotReadLog'));
62
212
  }
63
- // ── Git worktree status ─────────────────────────────────────────
64
- const gitStatus = await gitEngine.status(repoPath);
65
- if (gitStatus !== null) {
66
- const { modified, created, deleted, not_added } = gitStatus;
67
- const hasPending = modified.length + created.length + deleted.length + not_added.length > 0;
68
- if (hasPending) {
69
- console.log(chalk.bold(' ' + t('status.uncommitted')));
70
- modified.forEach(f => console.log(` ${chalk.yellow('M')} ${f}`));
71
- created.forEach(f => console.log(` ${chalk.green('A')} ${f}`));
72
- deleted.forEach(f => console.log(` ${chalk.red('D')} ${f}`));
73
- not_added.forEach(f => console.log(` ${chalk.gray('?')} ${f}`));
74
- console.log();
75
- }
76
- else {
77
- logger.ok(' ' + t('status.inSync'));
78
- console.log();
79
- }
80
- }
81
- // ── Workspace diff ──────────────────────────────────────────────
213
+ // ── Workspace diff ─────────────────────────────────────────
82
214
  try {
83
215
  const diff = await syncEngine.diff(cfg, agent);
84
216
  const total = diff.added.length + diff.modified.length + diff.missing.length;
@@ -95,7 +227,7 @@ export async function cmdStatus({ agent } = {}) {
95
227
  `${chalk.yellow('~')} ${diff.modified.length} ${t('status.modifiedLabel')} ` +
96
228
  `${chalk.red('-')} ${diff.missing.length} ${t('status.missingLabel')}`);
97
229
  }
98
- // ── Conflict detection ──────────────────────────────────────
230
+ // Conflict detection
99
231
  if (diff.modified.length > 0) {
100
232
  const meta = syncEngine.readSyncMeta(repoPath);
101
233
  if (meta) {
@@ -112,7 +244,6 @@ export async function cmdStatus({ agent } = {}) {
112
244
  }
113
245
  }
114
246
  if (conflictFiles.length > 0) {
115
- // Check if remote also has newer commits
116
247
  try {
117
248
  const branch = resolveGitBranch(cfg);
118
249
  const ahead = await gitEngine.fetchAndCheckRemoteAhead(repoPath, branch);
@@ -126,9 +257,7 @@ export async function cmdStatus({ agent } = {}) {
126
257
  logger.info(` ${t('status.conflictHint')}`);
127
258
  }
128
259
  }
129
- catch {
130
- // Fetch failed — skip conflict check silently
131
- }
260
+ catch { /* Fetch failed — skip conflict check */ }
132
261
  }
133
262
  }
134
263
  }
@@ -136,17 +265,40 @@ export async function cmdStatus({ agent } = {}) {
136
265
  catch (err) {
137
266
  logger.warn(t('status.diffFailed', { error: err.message }));
138
267
  }
139
- // ── File inventory ──────────────────────────────────────────────
268
+ // ── Line-level diff ────────────────────────────────────────
140
269
  console.log();
141
- const entries = syncEngine.buildFileEntries(cfg, undefined, agent);
142
- console.log(chalk.bold(` ${t('status.inventory', { count: entries.length })}`));
143
- for (const e of entries) {
144
- const mark = fs.existsSync(e.srcAbs) ? chalk.green('✔') : chalk.red('✖');
145
- const encLabel = e.encrypt ? chalk.gray('[enc]') : '';
146
- const jfLabel = e.jsonExtract ? chalk.blue(t('status.fieldLabel')) : '';
147
- console.log(` ${mark} ${e.repoRel} ${encLabel}${jfLabel}`);
270
+ await renderLineDiff(cfg, repoPath, agent);
271
+ // ── File inventory (from list.ts) ──────────────────────────
272
+ console.log();
273
+ renderFileInventory(cfg, repoPath, agent);
274
+ // ── Sync history (last 5) ──────────────────────────────────
275
+ console.log();
276
+ renderHistory(5);
277
+ // ── Agent discovery hints ──────────────────────────────────
278
+ renderDiscoveryHints(cfg);
279
+ }
280
+ // ── Shared helpers ──────────────────────────────────────────────
281
+ function renderLockWarning() {
282
+ const lock = syncLock.read();
283
+ if (!lock)
284
+ return;
285
+ let lockAlive;
286
+ try {
287
+ process.kill(lock.pid, 0);
288
+ lockAlive = true;
289
+ }
290
+ catch {
291
+ lockAlive = false;
148
292
  }
149
- // ── Agent discovery hints ────────────────────────────────────────
293
+ if (lockAlive) {
294
+ console.log(chalk.yellow(` ⚠ ${t('status.lockActive', { pid: lock.pid, startedAt: lock.startedAt })}`));
295
+ }
296
+ else {
297
+ console.log(chalk.red(` 🔴 ${t('status.lockStale', { pid: lock.pid })}`));
298
+ }
299
+ console.log();
300
+ }
301
+ function renderDiscoveryHints(cfg) {
150
302
  const profiles = cfg.profiles.default;
151
303
  const discovered = [];
152
304
  for (const name of AGENT_NAMES) {
@@ -167,4 +319,122 @@ export async function cmdStatus({ agent } = {}) {
167
319
  }
168
320
  }
169
321
  }
322
+ async function renderLineDiff(cfg, repoPath, agent) {
323
+ const keyPath = syncEngine.expandHome(cfg.keyPath);
324
+ const entries = syncEngine.buildFileEntries(cfg, undefined, agent);
325
+ let totalChanged = 0;
326
+ for (const entry of entries) {
327
+ const srcExists = fs.existsSync(entry.srcAbs);
328
+ const repoAbs = path.join(repoPath, entry.repoRel);
329
+ const repoExists = fs.existsSync(repoAbs);
330
+ if (srcExists && !repoExists) {
331
+ console.log(chalk.bold.green(` +++ ${entry.repoRel}`) + chalk.gray(' ' + t('diff.newFile')));
332
+ console.log();
333
+ totalChanged++;
334
+ continue;
335
+ }
336
+ if (!srcExists && repoExists) {
337
+ console.log(chalk.bold.red(` --- ${entry.repoRel}`) + chalk.gray(' ' + t('diff.missingFile')));
338
+ console.log();
339
+ totalChanged++;
340
+ continue;
341
+ }
342
+ if (!srcExists && !repoExists)
343
+ continue;
344
+ const localText = fs.readFileSync(entry.srcAbs, 'utf-8');
345
+ let repoText;
346
+ if (entry.encrypt) {
347
+ try {
348
+ repoText = cryptoEngine.decryptString(fs.readFileSync(repoAbs, 'utf-8').trim(), keyPath);
349
+ }
350
+ catch {
351
+ console.log(chalk.yellow(` ~ ${entry.repoRel}`) + chalk.gray(' ' + t('diff.cannotDecrypt')));
352
+ console.log();
353
+ totalChanged++;
354
+ continue;
355
+ }
356
+ }
357
+ else {
358
+ repoText = fs.readFileSync(repoAbs, 'utf-8');
359
+ }
360
+ const diffLines = diffText(repoText, localText);
361
+ if (diffLines.length === 0)
362
+ continue;
363
+ const encLabel = entry.encrypt ? chalk.gray(' [enc]') : '';
364
+ console.log(chalk.bold(` ~~~ ${entry.repoRel}`) + encLabel);
365
+ for (const line of diffLines) {
366
+ if (line.content === '...') {
367
+ console.log(chalk.gray(' ...'));
368
+ }
369
+ else if (line.type === 'added') {
370
+ console.log(chalk.green(` + ${line.content}`));
371
+ }
372
+ else if (line.type === 'removed') {
373
+ console.log(chalk.red(` - ${line.content}`));
374
+ }
375
+ else {
376
+ console.log(chalk.gray(` ${line.content}`));
377
+ }
378
+ }
379
+ console.log();
380
+ totalChanged++;
381
+ }
382
+ if (totalChanged === 0) {
383
+ logger.ok(' ' + t('diff.noDiff'));
384
+ }
385
+ else {
386
+ logger.info(' ' + t('diff.filesDiffer', { count: totalChanged }));
387
+ }
388
+ }
389
+ function renderFileInventory(cfg, repoPath, agent) {
390
+ const entries = syncEngine.buildFileEntries(cfg, undefined, agent);
391
+ // Group by agentName
392
+ const groups = new Map();
393
+ for (const e of entries) {
394
+ if (!groups.has(e.agentName))
395
+ groups.set(e.agentName, []);
396
+ groups.get(e.agentName).push(e);
397
+ }
398
+ let totalFiles = 0;
399
+ const order = ['shared', ...AGENT_NAMES];
400
+ for (const tier of order) {
401
+ const group = groups.get(tier);
402
+ if (!group || group.length === 0)
403
+ continue;
404
+ const label = tier === 'shared' ? t('list.tierShared') : TIER_LABELS[tier];
405
+ console.log(chalk.bold.cyan(` ▸ ${label}`));
406
+ for (const e of group) {
407
+ const localExists = fs.existsSync(e.srcAbs);
408
+ const repoExists = fs.existsSync(`${repoPath}/${e.repoRel}`);
409
+ const localMark = localExists ? chalk.green('✔') : chalk.red('✖');
410
+ const repoMark = repoExists ? chalk.green('✔') : chalk.gray('·');
411
+ const encLabel = e.encrypt ? chalk.magenta('[enc]') : ' ';
412
+ const jsonLabel = e.jsonExtract ? chalk.yellow(t('list.fieldLabel')) : ' ';
413
+ console.log(` ${localMark} ${t('list.localLabel')} ${repoMark} ${t('list.repoLabel')} ${encLabel} ${jsonLabel} ${chalk.white(e.repoRel)}`);
414
+ }
415
+ console.log();
416
+ totalFiles += group.length;
417
+ }
418
+ console.log(chalk.gray(` ${t('list.totalFiles', { count: totalFiles })}`));
419
+ console.log(chalk.gray(` ${t('list.legend')}`));
420
+ }
421
+ function renderHistory(limit) {
422
+ const events = readSyncHistory();
423
+ if (events.length === 0) {
424
+ logger.info(' ' + t('history.empty'));
425
+ return;
426
+ }
427
+ const shown = events.slice(-limit).reverse();
428
+ console.log(chalk.bold(` ${t('status.historyLabel')}`));
429
+ for (const ev of shown) {
430
+ const time = ev.timestamp.replace('T', ' ').slice(0, 19);
431
+ const action = ev.action.padEnd(6);
432
+ const files = String(ev.fileCount).padStart(3);
433
+ const host = ev.hostname;
434
+ const actionColor = ev.action === 'push' ? chalk.green(action)
435
+ : ev.action === 'pull' ? chalk.cyan(action)
436
+ : chalk.yellow(action);
437
+ console.log(` ${chalk.white(time)} ${actionColor} ${files} files ${chalk.gray(host)}`);
438
+ }
439
+ }
170
440
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAC;AAIxG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;CACvG;AAED,wBAAsB,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAE,WAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuB5G"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAC;AAiDxG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;CACvG;AAED,wBAAsB,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAE,WAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0B5G"}
@@ -6,6 +6,8 @@
6
6
  * 3. Then push local changes
7
7
  */
8
8
  import os from 'os';
9
+ import fs from 'fs';
10
+ import path from 'path';
9
11
  import { config } from '../core/config.js';
10
12
  import { resolveGitBranch } from '../core/config.js';
11
13
  import { ensureMigrated } from '../core/migrate.js';
@@ -20,6 +22,53 @@ import { logger } from '../utils/logger.js';
20
22
  import { t } from '../i18n.js';
21
23
  import chalk from 'chalk';
22
24
  import ora from 'ora';
25
+ const WANGCHUAN_DIR = path.join(os.homedir(), '.wangchuan');
26
+ const SNAPSHOTS_DIR = path.join(WANGCHUAN_DIR, 'snapshots');
27
+ const MAX_AUTO_SNAPSHOTS = 5;
28
+ /** Create an auto-snapshot before sync (silent, no user output) */
29
+ function autoSnapshot(repoPath) {
30
+ try {
31
+ if (!fs.existsSync(repoPath))
32
+ return;
33
+ const snapshotName = `auto-${new Date().toISOString().replace(/[:.]/g, '-')}`;
34
+ const snapshotDir = path.join(SNAPSHOTS_DIR, snapshotName);
35
+ fs.mkdirSync(snapshotDir, { recursive: true });
36
+ copyDirSync(repoPath, snapshotDir);
37
+ // Prune old auto-snapshots
38
+ pruneAutoSnapshots(MAX_AUTO_SNAPSHOTS);
39
+ }
40
+ catch {
41
+ // Silent failure — snapshot is a safety net, not a blocker
42
+ }
43
+ }
44
+ function copyDirSync(src, dest) {
45
+ if (!fs.existsSync(src))
46
+ return;
47
+ fs.mkdirSync(dest, { recursive: true });
48
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
49
+ const srcPath = path.join(src, entry.name);
50
+ const destPath = path.join(dest, entry.name);
51
+ if (entry.isDirectory()) {
52
+ copyDirSync(srcPath, destPath);
53
+ }
54
+ else {
55
+ fs.copyFileSync(srcPath, destPath);
56
+ }
57
+ }
58
+ }
59
+ function pruneAutoSnapshots(max) {
60
+ if (!fs.existsSync(SNAPSHOTS_DIR))
61
+ return;
62
+ const autoDirs = fs.readdirSync(SNAPSHOTS_DIR)
63
+ .filter(d => d.startsWith('auto-') && fs.statSync(path.join(SNAPSHOTS_DIR, d)).isDirectory())
64
+ .sort();
65
+ if (autoDirs.length <= max)
66
+ return;
67
+ const toRemove = autoDirs.slice(0, autoDirs.length - max);
68
+ for (const dir of toRemove) {
69
+ fs.rmSync(path.join(SNAPSHOTS_DIR, dir), { recursive: true, force: true });
70
+ }
71
+ }
23
72
  export async function cmdSync({ agent, dryRun, only, exclude } = {}) {
24
73
  logger.banner(t('sync.banner'));
25
74
  let cfg = config.load();
@@ -36,6 +85,8 @@ export async function cmdSync({ agent, dryRun, only, exclude } = {}) {
36
85
  if (dryRun)
37
86
  logger.info(chalk.yellow(t('dryRun.enabled')));
38
87
  const filter = (only?.length || exclude?.length) ? { only, exclude } : undefined;
88
+ // ── Auto-snapshot before sync (silent safety net) ────────────
89
+ autoSnapshot(repoPath);
39
90
  // ── Acquire sync lock ─────────────────────────────────────────
40
91
  await syncLock.acquire(repoPath);
41
92
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAe,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAO,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAY,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAW,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAa,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAY,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAe,oBAAoB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAoB,YAAY,CAAC;AAE7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAQ,KAAK,CAAC;AAExB,MAAM,aAAa,GAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AAC7D,MAAM,aAAa,GAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,mEAAmE;AACnE,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QACrC,MAAM,YAAY,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC5D,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACnC,2BAA2B;QAC3B,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,IAAY;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO;IAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC;SAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5F,IAAI,EAAE,CAAC;IACV,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO;IACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAkB,EAAE;IAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhC,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/C,IAAI,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,IAAI,IAAI,EAAE,MAAM;QAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,EAAE,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,gEAAgE;IAChE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEvB,iEAAiE;IACjE,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,GAA0C,EAC1C,QAAgB,EAChB,QAAgB,EAChB,KAAkD,EAClD,MAA2B,EAC3B,MAAiC;IAEjC,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,+DAA+D;IAC/D,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,UAAqC,CAAC;IAC1C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE;oBAC9B,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;oBAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM;iBACvC,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,IAAI,WAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpE,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,UAAU,GACZ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEtC,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,+DAA+D;QAC/D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE;gBACrC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM;gBAChC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;aACxC,CAAC,CAAC,CAAC;YACJ,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACvD,UAAU,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAChE,CAAC;aAAM,CAAC;YACR,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEnE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtF,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;oBACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBACD,UAAU,GAAG,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC;oBAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACtD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAG,EAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC;QACD,CAAC,CAAC,yBAAyB;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,8DAA8D;IAC9D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE;YAC9B,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;YAC3C,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI,GAAG;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACnG,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC7G,IAAI,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACnC,eAAe,CAAC;YACd,SAAS,EAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,MAAM,EAAO,MAAM;YACnB,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;YACzC,KAAK,EAAQ,KAAK;YAClB,SAAS,EAAI,UAAU;YACvB,SAAS,EAAI,cAAc;YAC3B,GAAG,EAAU,UAAU,CAAC,GAAG;YAC3B,QAAQ;SACT,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,CACjD,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CACxC,CAAC,CAAC;QAEH,sBAAsB;QACtB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;AAC1E,CAAC"}
@@ -21,7 +21,7 @@ const TEMPLATES = [
21
21
  {
22
22
  name: 'full',
23
23
  descKey: 'template.desc.full',
24
- agents: ['openclaw', 'claude', 'gemini', 'codebuddy', 'workbuddy', 'cursor'],
24
+ agents: ['openclaw', 'claude', 'gemini', 'codebuddy', 'workbuddy', 'cursor', 'codex'],
25
25
  },
26
26
  {
27
27
  name: 'developer',