@crewx/memory 0.1.23-rc.3 → 0.1.23-rc.30

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/cli.js CHANGED
@@ -192,13 +192,13 @@ async function main(inputArgs) {
192
192
  console.log('Usage: npx memory mindmap <subcommand> [agent_id] [args]');
193
193
  console.log('');
194
194
  console.log('Subcommands:');
195
- console.log(' build <agent_id> - 그래프 빌드');
196
- console.log(' show <agent_id> [--period=stm|mtm|ltm] [--format=mermaid|text] - 그래프 요약');
197
- console.log(' related <agent_id> <memory_id> - 연결된 기억 조회');
198
- console.log(' add <agent_id> <from_id> <to_id> [type] - 수동 연결 추가');
199
- console.log(' remove <agent_id> <from_id> <to_id> - 연결 제거');
200
- console.log(' html - 공용 HTML 생성');
201
- console.log(' open [agent_id] - 브라우저에서 열기');
195
+ console.log(' build <agent_id> - Build graph');
196
+ console.log(' show <agent_id> [--period=stm|mtm|ltm] [--format=mermaid|text] - Graph summary');
197
+ console.log(' related <agent_id> <memory_id> - View related memories');
198
+ console.log(' add <agent_id> <from_id> <to_id> [type] - Add manual relation');
199
+ console.log(' remove <agent_id> <from_id> <to_id> - Remove relation');
200
+ console.log(' html - Generate shared HTML');
201
+ console.log(' open [agent_id] - Open in browser');
202
202
  process.exit(1);
203
203
  }
204
204
  switch (subcommand) {
@@ -348,7 +348,7 @@ async function main(inputArgs) {
348
348
  case 'merge':
349
349
  if (!rest[0] || !rest[1]) {
350
350
  console.log('Error: two memory_ids are required');
351
- console.log('Usage: node cli.ts merge <agent_id> <id1> <id2> [--summary="병합 요약"]');
351
+ console.log('Usage: node cli.ts merge <agent_id> <id1> <id2> [--summary="merge summary"]');
352
352
  process.exit(1);
353
353
  }
354
354
  engine.merge(agentId, rest[0], rest[1], options);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
@@ -172,7 +172,7 @@ class MemoryEngine {
172
172
  const raw = fs_1.default.readFileSync(path_1.default.join(entriesDir, file), 'utf-8');
173
173
  const { data, content } = (0, parser_1.parseFrontmatter)(raw);
174
174
  const bodyText = content.replace(/^#[^\n]*\n*/m, '').trim();
175
- const hasBody = Boolean(bodyText) && bodyText !== '(상세 내용을 여기에 추가)';
175
+ const hasBody = Boolean(bodyText) && bodyText !== '(Add details here)';
176
176
  const entry = data;
177
177
  entries.push({ ...entry, file, hasBody });
178
178
  }
@@ -217,16 +217,16 @@ class MemoryEngine {
217
217
  });
218
218
  const filename = `${id}.md`;
219
219
  const filepath = path_1.default.join(this.getEntriesDir(agentId), filename);
220
- const body = options.body ?? '(상세 내용을 여기에 추가)';
220
+ const body = options.body ?? '(Add details here)';
221
221
  const content = `${frontmatter}\n\n# ${summary}\n\n${body}\n`;
222
222
  fs_1.default.writeFileSync(filepath, content, 'utf-8');
223
- console.log(`✅ 저장 완료: data/${agentId}/entries/${filename}`);
223
+ console.log(`✅ Saved: data/${agentId}/entries/${filename}`);
224
224
  console.log(` ID: ${id}`);
225
- console.log(` Tags: ${tags.join(', ') || '(없음)'}`);
225
+ console.log(` Tags: ${tags.join(', ') || '(none)'}`);
226
226
  console.log(` Category: ${category}`);
227
227
  try {
228
228
  this.markSummaryDirty(agentId);
229
- console.log(` 📝 summary.md 갱신 예약됨`);
229
+ console.log(` 📝 summary.md update scheduled`);
230
230
  }
231
231
  catch (_e) {
232
232
  }
@@ -252,11 +252,11 @@ class MemoryEngine {
252
252
  }
253
253
  const cutoff24h = new Date(Date.now() - this.shortTermHours * 60 * 60 * 1000).toISOString();
254
254
  const shortTermEntries = entries.filter((e) => this.toEntryTimestamp(e) >= cutoff24h);
255
- console.log(`# ${agentId} 기억 요약\n`);
255
+ console.log(`# ${agentId} memory summary\n`);
256
256
  const summaryLastUpdated = fs_1.default.existsSync(summaryPath)
257
257
  ? (0, parser_1.parseFrontmatter)(fs_1.default.readFileSync(summaryPath, 'utf-8')).data.last_updated ?? '-'
258
258
  : '-';
259
- console.log(`> ${entries.length} | 토픽 ${topics.length} | 갱신: ${summaryLastUpdated}`);
259
+ console.log(`> ${entries.length} items | topics ${topics.length} items | updated: ${summaryLastUpdated}`);
260
260
  if (options.full) {
261
261
  const byCat = {};
262
262
  for (const entry of entries) {
@@ -278,7 +278,7 @@ class MemoryEngine {
278
278
  return bImp - aImp;
279
279
  return this.toEntryTimestamp(b).localeCompare(this.toEntryTimestamp(a));
280
280
  });
281
- console.log(`## 🔥 최근 작업 (24h)\n`);
281
+ console.log(`## 🔥 last Task (24h)\n`);
282
282
  for (const e of sortedShortTerm) {
283
283
  const star = e.important ? '⭐ ' : '';
284
284
  console.log(`- ${star}[${e.id}] ${e.summary} (${this.getPrimaryTag(e)})`);
@@ -302,7 +302,7 @@ class MemoryEngine {
302
302
  const diffDays = Math.max(1, Math.floor((newest.getTime() - oldest.getTime()) / msPerDay) + 1);
303
303
  const toMD = (d) => `${String(d.getMonth() + 1).padStart(2, '0')}/${String(d.getDate()).padStart(2, '0')}`;
304
304
  console.log('---');
305
- console.log(`📋 토픽 요약 (${toMD(oldest)} ~ ${toMD(newest)}, ${diffDays}일간)\n`);
305
+ console.log(`📋 Topic summary (${toMD(oldest)} ~ ${toMD(newest)}, ${diffDays} days)\n`);
306
306
  }
307
307
  }
308
308
  console.log(summaryBody.trim());
@@ -310,7 +310,7 @@ class MemoryEngine {
310
310
  else {
311
311
  for (const tag of topics.sort()) {
312
312
  const count = entries.filter((e) => this.getPrimaryTag(e) === tag).length;
313
- console.log(`- **${tag}** (${count})`);
313
+ console.log(`- **${tag}** (${count} items)`);
314
314
  }
315
315
  }
316
316
  }
@@ -343,15 +343,15 @@ class MemoryEngine {
343
343
  byCategory[category] = [];
344
344
  byCategory[category].push(entry);
345
345
  }
346
- let md = `# ${agentId} 메모리\n\n`;
346
+ let md = `# ${agentId} memory\n\n`;
347
347
  md += `> Last Updated: ${today}\n`;
348
348
  md += `> Total: ${entries.length} memories\n\n`;
349
- md += `## 🔥 최근 ${this.recentDays}일\n\n`;
349
+ md += `## 🔥 Last ${this.recentDays} days\n\n`;
350
350
  if (recent.length === 0) {
351
- md += `(없음)\n\n`;
351
+ md += `(none)\n\n`;
352
352
  }
353
353
  else {
354
- md += `| ID | 날짜 | 카테고리 | 요약 | 상세 |\n`;
354
+ md += `| ID | Date | Category | Summary | Details |\n`;
355
355
  md += `|----|------|----------|------|------|\n`;
356
356
  for (const entry of recent) {
357
357
  const detailIcon = entry.hasBody ? '📄' : '-';
@@ -359,33 +359,33 @@ class MemoryEngine {
359
359
  }
360
360
  md += `\n`;
361
361
  }
362
- md += `## 🏷️ 카테고리별\n\n`;
362
+ md += `## 🏷️ By category\n\n`;
363
363
  for (const [category, items] of Object.entries(byCategory).sort()) {
364
- md += `- **${category}**: ${items.length}건\n`;
364
+ md += `- **${category}**: ${items.length} items\n`;
365
365
  }
366
366
  const olderCount = entries.length - recent.length;
367
367
  const oldestDate = entries[entries.length - 1]?.date ?? '-';
368
368
  const newestDate = entries[0]?.date ?? '-';
369
- md += `\n## 📊 통계\n\n`;
370
- md += `- 전체: ${entries.length} (${oldestDate} ~ ${newestDate})\n`;
371
- md += `- 최근 ${this.recentDays}일: ${recent.length}건\n`;
369
+ md += `\n## 📊 Stats\n\n`;
370
+ md += `- Total: ${entries.length} items (${oldestDate} ~ ${newestDate})\n`;
371
+ md += `- Last ${this.recentDays} days: ${recent.length} items\n`;
372
372
  if (olderCount > 0)
373
- md += `- ${this.recentDays} 이전: ${olderCount}건\n`;
373
+ md += `- Older than ${this.recentDays} days: ${olderCount} items\n`;
374
374
  return md;
375
375
  }
376
376
  topic(agentId, topicName) {
377
377
  const entries = this.loadAllEntries(agentId);
378
378
  const filtered = entries.filter((e) => this.getPrimaryTag(e) === topicName);
379
379
  if (filtered.length === 0) {
380
- console.log(`토픽 '${topicName}'에 해당하는 기억이 없습니다.`);
380
+ console.log(`No memories found for topic '${topicName}'.`);
381
381
  return;
382
382
  }
383
- console.log(`## 📂 토픽: ${topicName} (${filtered.length})\n`);
383
+ console.log(`## 📂 Topic: ${topicName} (${filtered.length} items)\n`);
384
384
  for (const entry of filtered) {
385
385
  console.log(`### [${entry.date}] ${entry.summary}`);
386
- console.log(`- 파일: data/${agentId}/entries/${entry.file}`);
387
- console.log(`- 카테고리: ${entry.category ?? '-'}`);
388
- console.log(`- 태그: ${(entry.tags ?? []).join(', ') || '-'}`);
386
+ console.log(`- File: data/${agentId}/entries/${entry.file}`);
387
+ console.log(`- Category: ${entry.category ?? '-'}`);
388
+ console.log(`- Tags: ${(entry.tags ?? []).join(', ') || '-'}`);
389
389
  console.log('');
390
390
  }
391
391
  }
@@ -396,10 +396,10 @@ class MemoryEngine {
396
396
  .slice(0, 10);
397
397
  const filtered = entries.filter((e) => e.date >= cutoff);
398
398
  if (filtered.length === 0) {
399
- console.log(`최근 ${days} 내 기억이 없습니다.`);
399
+ console.log(`No memories found in the last ${days} days.`);
400
400
  return;
401
401
  }
402
- console.log(`## 🔥 최근 ${days} (${filtered.length})\n`);
402
+ console.log(`## 🔥 Last ${days} days (${filtered.length} items)\n`);
403
403
  for (const entry of filtered) {
404
404
  const detailIcon = entry.hasBody ? ' 📄' : '';
405
405
  const timestamp = String(entry.date).includes('T')
@@ -411,7 +411,7 @@ class MemoryEngine {
411
411
  find(agentId, keyword) {
412
412
  const entriesDir = this.getEntriesDir(agentId);
413
413
  if (!fs_1.default.existsSync(entriesDir)) {
414
- console.log('기억이 없습니다.');
414
+ console.log('No memories found.');
415
415
  return;
416
416
  }
417
417
  const files = fs_1.default.readdirSync(entriesDir).filter((f) => f.endsWith('.md'));
@@ -423,18 +423,18 @@ class MemoryEngine {
423
423
  entries.push({ ...entry, file, body });
424
424
  }
425
425
  if (entries.length === 0) {
426
- console.log('기억이 없습니다.');
426
+ console.log('No memories found.');
427
427
  return;
428
428
  }
429
429
  const kcEntries = entries;
430
430
  const results = (0, knowledge_core_1.searchEntries)(kcEntries, keyword, { summary: 3, tags: 2, body: 1 });
431
431
  if (results.length === 0) {
432
- console.log(`'${keyword}' 관련 기억을 찾을 수 없습니다.`);
432
+ console.log(`No related memories found for '${keyword}'.`);
433
433
  return;
434
434
  }
435
- console.log(`## 🔍 검색 결과: "${keyword}" (${results.length}건, BM25 점수순)\n`);
435
+ console.log(`## 🔍 Search results: "${keyword}" (${results.length} items, sorted by BM25 score)\n`);
436
436
  for (const entry of results) {
437
- const score = entry._score != null ? ` [${entry._score}]` : '';
437
+ const score = entry._score != null ? ` [${entry._score}pts]` : '';
438
438
  console.log(`[${entry.id}] [${entry.date}] [${this.getPrimaryTag(entry)}]${score} ${entry.summary}`);
439
439
  }
440
440
  const resultTags = [...new Set(results.flatMap(e => e.tags ?? []))].slice(0, 3);
@@ -470,7 +470,7 @@ class MemoryEngine {
470
470
  const raw = fs_1.default.readFileSync(path_1.default.join(entriesDir, e.file), 'utf-8');
471
471
  const { content: rawContent } = (0, parser_1.parseFrontmatter)(raw);
472
472
  const body = rawContent.replace(/^#[^\n]*\n*/m, '').trim();
473
- if (body !== '(상세 내용을 여기에 추가)')
473
+ if (body !== '(Add details here)')
474
474
  content = body;
475
475
  }
476
476
  catch (_err) {
@@ -494,10 +494,10 @@ class MemoryEngine {
494
494
  filters.push(`category=${options.category}`);
495
495
  if (options.tag)
496
496
  filters.push(`tag=${options.tag}`);
497
- console.log(`조건에 맞는 기억이 없습니다. (${filters.join(', ') || '전체'})`);
497
+ console.log(`No memories match the filters. (${filters.join(', ') || 'all'})`);
498
498
  return;
499
499
  }
500
- console.log(`## 📋 목록: ${agentId} (${filtered.length})\n`);
500
+ console.log(`## 📋 List: ${agentId} (${filtered.length} items)\n`);
501
501
  for (const entry of filtered) {
502
502
  console.log(`[${entry.id}] [${entry.date}] [${this.getPrimaryTag(entry)}] ${entry.summary}`);
503
503
  }
@@ -518,7 +518,7 @@ class MemoryEngine {
518
518
  stats(agentId) {
519
519
  const entries = this.loadAllEntries(agentId);
520
520
  if (entries.length === 0) {
521
- console.log('기억이 없습니다.');
521
+ console.log('No memories found.');
522
522
  return;
523
523
  }
524
524
  const byCategory = {};
@@ -532,15 +532,15 @@ class MemoryEngine {
532
532
  byTag[tag] = (byTag[tag] ?? 0) + 1;
533
533
  }
534
534
  }
535
- console.log(`# ${agentId} 통계 (${entries.length})\n`);
536
- console.log(`## 카테고리별`);
535
+ console.log(`# ${agentId} Stats (${entries.length} items)\n`);
536
+ console.log(`## By category`);
537
537
  for (const [cat, count] of Object.entries(byCategory).sort((a, b) => b[1] - a[1])) {
538
- console.log(` ${cat}: ${count}건`);
538
+ console.log(` ${cat}: ${count} items`);
539
539
  }
540
- console.log(`\n## 태그 Top 20`);
540
+ console.log(`\n## Top 20 Tags`);
541
541
  const sortedTags = Object.entries(byTag).sort((a, b) => b[1] - a[1]).slice(0, 20);
542
542
  for (const [tag, count] of sortedTags) {
543
- console.log(` ${tag}: ${count}건`);
543
+ console.log(` ${tag}: ${count} items`);
544
544
  }
545
545
  const topCategories = Object.entries(byCategory).sort((a, b) => b[1] - a[1]).map(t => t[0]);
546
546
  const statsCtx = {
@@ -557,7 +557,7 @@ class MemoryEngine {
557
557
  tags(agentId) {
558
558
  const entries = this.loadAllEntries(agentId);
559
559
  if (entries.length === 0) {
560
- console.log('기억이 없습니다.');
560
+ console.log('No memories found.');
561
561
  return;
562
562
  }
563
563
  const byTag = {};
@@ -568,18 +568,18 @@ class MemoryEngine {
568
568
  }
569
569
  const sortedTags = Object.entries(byTag).sort((a, b) => b[1] - a[1]);
570
570
  if (sortedTags.length === 0) {
571
- console.log('태그가 없습니다.');
571
+ console.log('No tags found.');
572
572
  return;
573
573
  }
574
- console.log(`## 🏷️ 전체 태그 (${sortedTags.length})\n`);
574
+ console.log(`## 🏷️ All tags (${sortedTags.length} items)\n`);
575
575
  for (const [tag, count] of sortedTags) {
576
- console.log(` ${tag}: ${count}건`);
576
+ console.log(` ${tag}: ${count} items`);
577
577
  }
578
578
  }
579
579
  get(agentId, memoryId) {
580
580
  const entriesDir = this.getEntriesDir(agentId);
581
581
  if (!fs_1.default.existsSync(entriesDir)) {
582
- console.log('기억이 없습니다.');
582
+ console.log('No memories found.');
583
583
  return;
584
584
  }
585
585
  const files = fs_1.default.readdirSync(entriesDir).filter((f) => f.endsWith('.md'));
@@ -591,10 +591,10 @@ class MemoryEngine {
591
591
  const d = data;
592
592
  console.log(`## 📄 ${d.summary}\n`);
593
593
  console.log(`- ID: ${d.id}`);
594
- console.log(`- 날짜: ${d.date}`);
595
- console.log(`- 카테고리: ${d.category ?? '-'}`);
596
- console.log(`- 태그: ${(d.tags ?? []).join(', ') || '-'}`);
597
- console.log(`- 파일: data/${agentId}/entries/${file}`);
594
+ console.log(`- Date: ${d.date}`);
595
+ console.log(`- Category: ${d.category ?? '-'}`);
596
+ console.log(`- Tags: ${(d.tags ?? []).join(', ') || '-'}`);
597
+ console.log(`- File: data/${agentId}/entries/${file}`);
598
598
  console.log(`\n---\n`);
599
599
  console.log(content.trim());
600
600
  const graphPath = path_1.default.join(this.getAgentDir(agentId), 'graph.json');
@@ -611,7 +611,7 @@ class MemoryEngine {
611
611
  nodeMap[n.id] = n;
612
612
  });
613
613
  console.log(`\n---\n`);
614
- console.log(`## 🔗 연관 기억 (${relatedEdges.length})\n`);
614
+ console.log(`## 🔗 Related memories (${relatedEdges.length} items)\n`);
615
615
  for (const edge of relatedEdges) {
616
616
  const otherId = edge.from === memoryId ? edge.to : edge.from;
617
617
  const other = nodeMap[otherId];
@@ -638,12 +638,12 @@ class MemoryEngine {
638
638
  return;
639
639
  }
640
640
  }
641
- console.log(`ID '${memoryId}' 찾을 수 없습니다.`);
641
+ console.log(`ID '${memoryId}' not found.`);
642
642
  }
643
643
  update(agentId, memoryId, options = {}) {
644
644
  const entry = this.findEntryById(agentId, memoryId);
645
645
  if (!entry) {
646
- console.log(`❌ ID '${memoryId}' 찾을 수 없습니다.`);
646
+ console.log(`❌ ID '${memoryId}' not found.`);
647
647
  process.exit(1);
648
648
  }
649
649
  const { filePath, data, content } = entry;
@@ -664,11 +664,11 @@ class MemoryEngine {
664
664
  else if (options['no-important']) {
665
665
  delete newData['important'];
666
666
  }
667
- const newBody = options.body ?? existingBody ?? '(상세 내용을 여기에 추가)';
667
+ const newBody = options.body ?? existingBody ?? '(Add details here)';
668
668
  const newFrontmatter = (0, parser_1.stringifyFrontmatter)(newData);
669
669
  const newContent = `${newFrontmatter}\n\n# ${String(newData['summary'])}\n\n${newBody}\n`;
670
670
  fs_1.default.writeFileSync(filePath, newContent, 'utf-8');
671
- console.log(`✅ 수정 완료: ${entry.file}`);
671
+ console.log(`✅ Updated: ${entry.file}`);
672
672
  console.log(` ID: ${memoryId}`);
673
673
  if (options.summary)
674
674
  console.log(` Summary: ${String(newData['summary'])}`);
@@ -677,28 +677,28 @@ class MemoryEngine {
677
677
  if (options.tags)
678
678
  console.log(` Tags: ${newData['tags'].join(', ')}`);
679
679
  if (options.body)
680
- console.log(` Body: (업데이트됨)`);
680
+ console.log(` Body: (updated)`);
681
681
  }
682
682
  delete(agentId, memoryId, options = {}) {
683
683
  const entry = this.findEntryById(agentId, memoryId);
684
684
  if (!entry) {
685
- console.log(`❌ ID '${memoryId}' 찾을 수 없습니다.`);
685
+ console.log(`❌ ID '${memoryId}' not found.`);
686
686
  process.exit(1);
687
687
  }
688
688
  if (!options.force) {
689
- console.log(`⚠️ 삭제 대상: [${entry.data.id}] ${entry.data.summary}`);
690
- console.log(` 파일: ${entry.file}`);
691
- console.log(`\n--force 옵션을 추가하면 삭제됩니다.`);
692
- console.log(`예: memory delete ${agentId} ${memoryId} --force`);
689
+ console.log(`⚠️ Delete target: [${entry.data.id}] ${entry.data.summary}`);
690
+ console.log(` File: ${entry.file}`);
691
+ console.log(`\nAdd --force to delete it.`);
692
+ console.log(`Example: memory delete ${agentId} ${memoryId} --force`);
693
693
  return;
694
694
  }
695
695
  fs_1.default.unlinkSync(entry.filePath);
696
- console.log(`🗑️ 삭제 완료: ${entry.file}`);
696
+ console.log(`🗑️ Deleted: ${entry.file}`);
697
697
  console.log(` ID: ${memoryId}`);
698
698
  console.log(` Summary: ${entry.data.summary}`);
699
699
  try {
700
700
  this.markSummaryDirty(agentId);
701
- console.log(` 📝 summary.md 갱신 예약됨`);
701
+ console.log(` 📝 summary.md update scheduled`);
702
702
  }
703
703
  catch (_e) {
704
704
  }
@@ -707,27 +707,27 @@ class MemoryEngine {
707
707
  const entry1 = this.findEntryById(agentId, memoryId1);
708
708
  const entry2 = this.findEntryById(agentId, memoryId2);
709
709
  if (!entry1) {
710
- console.log(`❌ ID '${memoryId1}' 찾을 수 없습니다.`);
710
+ console.log(`❌ ID '${memoryId1}' not found.`);
711
711
  process.exit(1);
712
712
  }
713
713
  if (!entry2) {
714
- console.log(`❌ ID '${memoryId2}' 찾을 수 없습니다.`);
714
+ console.log(`❌ ID '${memoryId2}' not found.`);
715
715
  process.exit(1);
716
716
  }
717
717
  const body1 = entry1.content.replace(/^#[^\n]*\n*/m, '').trim();
718
718
  const body2 = entry2.content.replace(/^#[^\n]*\n*/m, '').trim();
719
719
  const mergedSummary = options.summary ?? `${entry1.data.summary} + ${entry2.data.summary}`;
720
- const mergedBody = `## 병합된 기억 1 (${entry1.data.id}, ${entry1.data.date})
720
+ const mergedBody = `## Merged memory 1 (${entry1.data.id}, ${entry1.data.date})
721
721
  ${entry1.data.summary}
722
722
 
723
- ${body1 !== '(상세 내용을 여기에 추가)' ? body1 : '(상세 없음)'}
723
+ ${body1 !== '(Add details here)' ? body1 : '(No details)'}
724
724
 
725
725
  ---
726
726
 
727
- ## 병합된 기억 2 (${entry2.data.id}, ${entry2.data.date})
727
+ ## Merged memory 2 (${entry2.data.id}, ${entry2.data.date})
728
728
  ${entry2.data.summary}
729
729
 
730
- ${body2 !== '(상세 내용을 여기에 추가)' ? body2 : '(상세 없음)'}`;
730
+ ${body2 !== '(Add details here)' ? body2 : '(No details)'}`;
731
731
  const mergedTags = [
732
732
  ...new Set([...(entry1.data.tags ?? []), ...(entry2.data.tags ?? [])]),
733
733
  ];
@@ -749,10 +749,10 @@ ${body2 !== '(상세 내용을 여기에 추가)' ? body2 : '(상세 없음)'}`;
749
749
  fs_1.default.writeFileSync(filepath, newContent, 'utf-8');
750
750
  fs_1.default.unlinkSync(entry1.filePath);
751
751
  fs_1.default.unlinkSync(entry2.filePath);
752
- console.log(`🔀 병합 완료!`);
753
- console.log(` ID: ${newId}`);
754
- console.log(` 파일: ${filename}`);
755
- console.log(` 병합된 기억: [${memoryId1}] + [${memoryId2}]`);
752
+ console.log(`🔀 Merge complete!`);
753
+ console.log(` New ID: ${newId}`);
754
+ console.log(` New file: ${filename}`);
755
+ console.log(` Merged memory: [${memoryId1}] + [${memoryId2}]`);
756
756
  console.log(` Summary: ${mergedSummary}`);
757
757
  }
758
758
  buildFallbackSummary(entries) {
@@ -778,7 +778,7 @@ ${body2 !== '(상세 내용을 여기에 추가)' ? body2 : '(상세 없음)'}`;
778
778
  const oldest = dates[0];
779
779
  const newest = dates[dates.length - 1];
780
780
  const rangeLabel = oldest && newest ? `, ${toMD(oldest)}~${toMD(newest)}` : '';
781
- body += `## ${topic} (${items.length}건${rangeLabel})\n`;
781
+ body += `## ${topic} (${items.length} items${rangeLabel})\n`;
782
782
  for (const e of items)
783
783
  body += `- [${e.date}] ${e.summary}\n`;
784
784
  for (const e of items)
@@ -861,13 +861,13 @@ ${body2 !== '(상세 내용을 여기에 추가)' ? body2 : '(상세 없음)'}`;
861
861
  for (const entry of newItems) {
862
862
  const importantTag = entry.important ? ' [important]' : '';
863
863
  p += `- [${entry.id}] [${entry.date}] [${this.getPrimaryTag(entry)}]${importantTag} ${entry.summary}`;
864
- if (entry.body && entry.body !== '(상세 내용을 여기에 추가)') {
864
+ if (entry.body && entry.body !== '(Add details here)') {
865
865
  p += ` — ${entry.body.slice(0, 200)}`;
866
866
  }
867
867
  p += ` (file: entries/${entry.file})\n`;
868
868
  }
869
869
  p += `\n## Instructions:\n`;
870
- p += `- Group by topic, each topic as ## heading with entry count and date range, e.g. "## mcp-http (4건, 01/28~02/14)"\n`;
870
+ p += `- Group by topic, each topic as ## heading with entry count and date range, e.g. "## mcp-http (4 items, 01/28~02/14)"\n`;
871
871
  p += `- Write concise Korean summary per topic (2-5 sentences)\n`;
872
872
  p += `- After each topic summary, list relevant entry file links as "→ [entries/filename](entries/filename)"\n`;
873
873
  p += `- Highlight key decisions, insights, and action items\n`;
@@ -917,26 +917,26 @@ ${body2 !== '(상세 내용을 여기에 추가)' ? body2 : '(상세 없음)'}`;
917
917
  summarize(agentId, options = {}) {
918
918
  const entries = this.loadAllEntries(agentId);
919
919
  if (entries.length === 0) {
920
- console.log('기억이 없습니다.');
920
+ console.log('No memories found.');
921
921
  return;
922
922
  }
923
- console.log(`📝 요약 생성 시작 (${entries.length} 엔트리)\n`);
923
+ console.log(`📝 Starting summary generation (${entries.length} items entries)\n`);
924
924
  const result = this.generateSummary(agentId, { force: options.force });
925
925
  if (result.status === 'up-to-date') {
926
- console.log('✅ summary.md 최신 상태입니다.');
926
+ console.log('✅ summary.md is up to date.');
927
927
  }
928
928
  else if (result.status === 'fallback') {
929
- console.log(`📋 폴백 요약 생성 완료 (AI 호출 실패)`);
929
+ console.log(`📋 Fallback summary generated (AI call failed)`);
930
930
  }
931
931
  else if (result.status === 'updated') {
932
- console.log(`🤖 요약 완료 (${result.newEntries} 반영)`);
932
+ console.log(`🤖 Summary complete (${result.newEntries} items applied)`);
933
933
  }
934
- console.log(` 파일: data/${agentId}/summary.md`);
935
- console.log(` 엔트리: ${result.entryCount}개`);
934
+ console.log(` File: data/${agentId}/summary.md`);
935
+ console.log(` entries: ${result.entryCount} items`);
936
936
  }
937
937
  summarizeDirty() {
938
938
  if (!fs_1.default.existsSync(this.dataDir)) {
939
- console.log(`💡 디바운스 cron 등록:`);
939
+ console.log(`💡 Register debounce cron:`);
940
940
  console.log(`npx cron add "*/1 * * * *" "npx memory summarize-dirty" --mode command --name "memory-debounce"`);
941
941
  return;
942
942
  }
@@ -951,42 +951,42 @@ ${body2 !== '(상세 내용을 여기에 추가)' ? body2 : '(상세 없음)'}`;
951
951
  try {
952
952
  const result = this.generateSummary(agentId);
953
953
  if (result.status === 'updated') {
954
- console.log(`🤖 ${agentId} summary.md 갱신 (${result.newEntries} 반영)`);
954
+ console.log(`🤖 ${agentId} summary.md updated (${result.newEntries} items applied)`);
955
955
  }
956
956
  else if (result.status === 'fallback') {
957
- console.log(`📋 ${agentId} 폴백 요약 생성 완료 (AI 호출 실패)`);
957
+ console.log(`📋 ${agentId} Fallback summary generated (AI call failed)`);
958
958
  }
959
959
  else if (result.status === 'up-to-date') {
960
- console.log(`✅ ${agentId} summary.md 최신 상태입니다.`);
960
+ console.log(`✅ ${agentId} summary.md is up to date.`);
961
961
  }
962
962
  else if (result.status === 'empty') {
963
- console.log(`ℹ️ ${agentId} 요약할 기억이 없습니다.`);
963
+ console.log(`ℹ️ ${agentId} has no memories to summarize.`);
964
964
  }
965
965
  fs_1.default.unlinkSync(dirtyPath);
966
966
  }
967
967
  catch (e) {
968
- console.error(`❌ ${agentId} summary.md 갱신 실패: ${e.message}`);
968
+ console.error(`❌ ${agentId} summary.md update failed: ${e.message}`);
969
969
  }
970
970
  }
971
- console.log(`💡 디바운스 cron 등록:`);
971
+ console.log(`💡 Register debounce cron:`);
972
972
  console.log(`npx cron add "*/1 * * * *" "npx memory summarize-dirty" --mode command --name "memory-debounce"`);
973
973
  }
974
974
  search(agentId, query) {
975
975
  const entries = this.loadAllEntries(agentId);
976
976
  if (entries.length === 0) {
977
- console.log('기억이 없습니다.');
977
+ console.log('No memories found.');
978
978
  return;
979
979
  }
980
980
  const memoryList = entries
981
981
  .map((e) => `[${e.id}] [${e.date}] [${this.getPrimaryTag(e)}] ${e.summary}`)
982
982
  .join('\n');
983
- const task = `기억 목록:\n${memoryList}\n\n질문: "${query}"`;
983
+ const task = `Memory list:\n${memoryList}\n\nQuestion: "${query}"`;
984
984
  try {
985
- console.log(`🔍 "${query}" 검색 중... (${this.searcherAgent})\n`);
985
+ console.log(`🔍 "${query}" searching... (${this.searcherAgent})\n`);
986
986
  const result = (0, child_process_1.execSync)(`${CREWX_CLI} q "${this.searcherAgent} ${task.replace(/"/g, '\\"').replace(/\n/g, ' ')}"`, { encoding: 'utf-8', timeout: this.searcherTimeout, stdio: ['pipe', 'pipe', 'pipe'] });
987
987
  const parsed = parseCrewxResponse(result);
988
988
  if (parsed) {
989
- console.log(`## 🧠 시맨틱 검색 결과\n`);
989
+ console.log(`## 🧠 Semantic search results\n`);
990
990
  console.log(parsed);
991
991
  }
992
992
  else {
@@ -996,12 +996,12 @@ ${body2 !== '(상세 내용을 여기에 추가)' ? body2 : '(상세 없음)'}`;
996
996
  catch (error) {
997
997
  const err = error;
998
998
  if (err.code === 'ETIMEDOUT' || err.killed) {
999
- console.log('검색 실패: 시간 초과 (최대 5)');
999
+ console.log('Search failed: timed out (max 5 minutes)');
1000
1000
  }
1001
1001
  else {
1002
- console.log('검색 실패:', err.message);
1002
+ console.log('Search failed:', err.message);
1003
1003
  }
1004
- console.log('\n💡 Tip: find 명령으로 키워드 검색을 시도해보세요.');
1004
+ console.log('\n💡 Tip: try keyword search with the find command.');
1005
1005
  }
1006
1006
  }
1007
1007
  }