@crewx/dreaming 0.1.0-rc.17 → 0.1.0-rc.171

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.
@@ -1,9 +1,48 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.READ_ONLY_BASH_PREFIXES = exports.READ_ONLY_TOOLS = void 0;
3
37
  exports.normalizeToolName = normalizeToolName;
4
38
  exports.extractToolCallsFromLogs = extractToolCallsFromLogs;
5
39
  exports.analyzeTask = analyzeTask;
40
+ exports.isReadOnlyToolCall = isReadOnlyToolCall;
41
+ exports.checkFileStaleness = checkFileStaleness;
42
+ exports.extractActivityLogEntries = extractActivityLogEntries;
43
+ exports.buildActivityLog = buildActivityLog;
6
44
  exports.summarizeAnalysis = summarizeAnalysis;
45
+ const fs = __importStar(require("fs"));
7
46
  const sdk_1 = require("@crewx/sdk");
8
47
  const VERIFY_COMMANDS = [
9
48
  'tsc', 'npm test', 'npm run test', 'npm run lint', 'eslint',
@@ -14,14 +53,14 @@ const BASH_ERROR_PATTERNS = [
14
53
  /does not exist/i, /FAILED/, /✗/, /ERR!/,
15
54
  ];
16
55
  const ERROR_CATEGORIES = [
17
- [/Type .+ is not assignable to type/i, '타입 불일치'],
18
- [/Cannot find module/i, '모듈 경로 오류'],
19
- [/Property .+ does not exist/i, '존재하지 않는 프로퍼티'],
20
- [/Expected \d+ arguments/i, '인자 수 불일치'],
21
- [/Cannot find name/i, '미선언 변수/함수'],
22
- [/has no exported member/i, 'export 누락'],
23
- [/FAIL|AssertionError|expect\(/i, '테스트 실패'],
24
- [/SyntaxError|Unexpected token/i, '구문 오류'],
56
+ [/Type .+ is not assignable to type/i, 'Type mismatch'],
57
+ [/Cannot find module/i, 'Module path error'],
58
+ [/Property .+ does not exist/i, 'Missing property'],
59
+ [/Expected \d+ arguments/i, 'Argument count mismatch'],
60
+ [/Cannot find name/i, 'Undeclared variable/function'],
61
+ [/has no exported member/i, 'Missing export'],
62
+ [/FAIL|AssertionError|expect\(/i, 'Test failure'],
63
+ [/SyntaxError|Unexpected token/i, 'Syntax error'],
25
64
  ];
26
65
  const FILE_PLACEHOLDERS = new Set(['Read File', 'Edit File', 'Write File', 'Terminal', '{}', '']);
27
66
  function normalizeToolName(name) {
@@ -103,21 +142,27 @@ function detectProvider(stdoutLines) {
103
142
  return 'claude';
104
143
  return null;
105
144
  }
106
- function extractToolCallsFromLogs(logs) {
145
+ function resolveProvider(metaProvider, stdoutLines) {
146
+ const key = metaProvider?.split('/').pop();
147
+ if (key && key in sdk_1.BUILTIN_ADAPTERS)
148
+ return key;
149
+ return detectProvider(stdoutLines);
150
+ }
151
+ function extractToolCallsFromLogs(logs, metaProvider) {
107
152
  if (!Array.isArray(logs))
108
153
  return [];
109
154
  const logEntries = logs;
110
155
  const stdoutLines = logEntries
111
156
  .filter((e) => e.level === 'stdout' && e.message)
112
157
  .map((e) => e.message);
113
- const provider = detectProvider(stdoutLines);
158
+ const provider = resolveProvider(metaProvider, stdoutLines);
114
159
  const allEntries = [];
115
160
  for (const entry of logEntries) {
116
161
  if (entry.level === 'info' && entry.message) {
117
162
  allEntries.push(...(0, sdk_1.defaultParseEvent)(entry.message, entry.timestamp));
118
163
  }
119
- else if (entry.level === 'stdout' && entry.message && provider) {
120
- allEntries.push(...(0, sdk_1.parseStdoutEvent)('', entry.message, provider));
164
+ else if (entry.level === 'stdout' && entry.message) {
165
+ allEntries.push(...(0, sdk_1.parseStdoutEvent)('', entry.message, provider ?? undefined));
121
166
  }
122
167
  }
123
168
  if (!allEntries.length)
@@ -341,16 +386,7 @@ function detectPatterns(timeline) {
341
386
  }
342
387
  return { struggles, efficients };
343
388
  }
344
- function analyzeTask(row, spans) {
345
- let logs = [];
346
- try {
347
- const parsed = JSON.parse(row.logs ?? '[]');
348
- if (Array.isArray(parsed))
349
- logs = parsed;
350
- }
351
- catch { }
352
- const toolCalls = extractToolCallsFromLogs(logs);
353
- const duration = row.duration_ms != null ? Math.round(row.duration_ms / 1000) : null;
389
+ function analyzeTask(row, spans, logs = []) {
354
390
  let metaProvider = null;
355
391
  if (row.metadata) {
356
392
  try {
@@ -358,6 +394,8 @@ function analyzeTask(row, spans) {
358
394
  }
359
395
  catch { }
360
396
  }
397
+ const toolCalls = extractToolCallsFromLogs(logs, metaProvider ?? undefined);
398
+ const duration = row.duration_ms != null ? Math.round(row.duration_ms / 1000) : null;
361
399
  const timeline = buildTimeline(toolCalls);
362
400
  const patterns = detectPatterns(timeline);
363
401
  const readFiles = new Set();
@@ -384,7 +422,9 @@ function analyzeTask(row, spans) {
384
422
  const hasTsserver = !!(skills['tsserver'] && skills['tsserver'].count > 0);
385
423
  const hasSearch = !!(skills['crewx/search'] && skills['crewx/search'].count > 0);
386
424
  const promptSummary = row.prompt ? row.prompt.split('\n')[0].slice(0, 120) : null;
387
- const resultSummary = row.result ? row.result.split('\n')[0].slice(0, 120) : null;
425
+ const resultSummary = row.result
426
+ ? (0, sdk_1.sanitizeLegacyUiCardText)(row.result).split('\n')[0].slice(0, 120)
427
+ : null;
388
428
  return {
389
429
  taskId: row.id,
390
430
  agentId: row.agent_id,
@@ -415,6 +455,98 @@ function analyzeTask(row, spans) {
415
455
  hasStruggles: patterns.struggles.length > 0,
416
456
  };
417
457
  }
458
+ exports.READ_ONLY_TOOLS = new Set([
459
+ 'Read', 'Grep', 'Find', 'Glob',
460
+ ]);
461
+ exports.READ_ONLY_BASH_PREFIXES = [
462
+ 'git status', 'git log', 'git branch', 'git diff --stat', 'git show',
463
+ 'git remote', 'git rev-parse', 'git ls-files',
464
+ 'pwd', 'ls ', 'ls\n', 'echo ',
465
+ 'cat ', 'head ', 'tail ',
466
+ 'npx skill tsserver find', 'npx skill tsserver refs', 'npx skill tsserver type',
467
+ 'crewx memory index', 'crewx memory find', 'crewx memory get',
468
+ 'crewx doc toc', 'crewx doc section', 'crewx doc status',
469
+ 'crewx search',
470
+ 'crewx agent ls', 'crewx agent list',
471
+ 'crewx wbs status',
472
+ ];
473
+ const MUTATING_BASH_PATTERNS = [
474
+ /\bgit\s+(commit|push|pull|merge|rebase|reset|checkout|switch|add|rm)\b/,
475
+ /\bnpm\s+(install|ci|publish|run\s+(test|lint|build))\b/,
476
+ /\bnpx\s+tsc\b/,
477
+ /\bpnpm\s+(install|run)\b/,
478
+ /\bvitest\b/, /\bjest\b/,
479
+ ];
480
+ function isReadOnlyToolCall(name, input) {
481
+ const normalized = normalizeToolName(name);
482
+ if (exports.READ_ONLY_TOOLS.has(normalized))
483
+ return true;
484
+ if (normalized !== 'Bash')
485
+ return false;
486
+ if (!input)
487
+ return false;
488
+ const firstLine = input.split('\n')[0].trimStart();
489
+ if (MUTATING_BASH_PATTERNS.some((re) => re.test(firstLine)))
490
+ return false;
491
+ return exports.READ_ONLY_BASH_PREFIXES.some((prefix) => firstLine.startsWith(prefix));
492
+ }
493
+ function checkFileStaleness(filePath, taskCompletedAt) {
494
+ try {
495
+ const stat = fs.statSync(filePath);
496
+ if (taskCompletedAt) {
497
+ const taskTime = Date.parse(taskCompletedAt);
498
+ if (!Number.isNaN(taskTime) && stat.mtimeMs > taskTime)
499
+ return 'stale';
500
+ }
501
+ return 'ok';
502
+ }
503
+ catch {
504
+ return 'unknown';
505
+ }
506
+ }
507
+ function toActivityLogEntry(e, taskCompletedAt) {
508
+ if (!isReadOnlyToolCall(e.name, e.input))
509
+ return null;
510
+ if (e.isError)
511
+ return null;
512
+ let filePath = null;
513
+ let status = 'ok';
514
+ if (e.name === 'Read' && e.filePath) {
515
+ const fp = Array.isArray(e.filePath) ? e.filePath[0] ?? null : e.filePath;
516
+ filePath = fp;
517
+ if (fp)
518
+ status = checkFileStaleness(fp, taskCompletedAt);
519
+ }
520
+ const cmd = e.name === 'Bash' ? (e.bashCmd ?? e.input?.slice(0, 150) ?? null) : (e.input?.slice(0, 150) ?? null);
521
+ return { tool: e.name, cmd, result: e.resultPreview ?? null, filePath, status };
522
+ }
523
+ function extractActivityLogEntries(analyses) {
524
+ const entries = [];
525
+ for (const a of analyses) {
526
+ for (const e of a.timeline) {
527
+ const entry = toActivityLogEntry(e, a.completedAt);
528
+ if (entry)
529
+ entries.push(entry);
530
+ }
531
+ }
532
+ return entries;
533
+ }
534
+ function buildActivityLog(analyses, threadId, agentId, lookback, tokenBudget) {
535
+ const allEntries = extractActivityLogEntries(analyses);
536
+ const included = [];
537
+ let budgetUsed = 0;
538
+ let truncated = false;
539
+ for (const e of allEntries) {
540
+ const size = (e.result?.length ?? 0) + (e.cmd?.length ?? 0) + 80;
541
+ if (budgetUsed + size > tokenBudget && included.length > 0) {
542
+ truncated = true;
543
+ break;
544
+ }
545
+ included.push(e);
546
+ budgetUsed += size;
547
+ }
548
+ return { threadId, agentId, lookback, totalEntries: allEntries.length, entries: included, truncated, budgetUsed };
549
+ }
418
550
  function summarizeAnalysis(a) {
419
551
  const toolCounts = {};
420
552
  for (const e of a.timeline) {
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import type { ContinueResult, TaskAnalysis, TaskSummaryRow } from './types.js';
1
+ import type { ActivityLog, ContinueResult, TaskAnalysis, TaskSummaryRow } from './types.js';
2
2
  export interface RenderDetailOptions {
3
3
  maxTimeline?: number | null;
4
4
  }
5
5
  export declare function renderTaskFull(r: TaskAnalysis, opts?: RenderDetailOptions): string;
6
6
  export declare function renderThreadTaskList(rows: TaskSummaryRow[], threadId: string, recent: number): string;
7
7
  export declare function renderContinue(result: ContinueResult, opts?: RenderDetailOptions): string;
8
+ export declare function renderActivityLogXml(log: ActivityLog): string;
8
9
  export interface CalAction {
9
10
  label: string;
10
11
  cmd: string;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,YAAY,EACZ,cAAc,EAEf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAElC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA2ED,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAgGlF;AAWD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BrG;AAwBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAqBzF;AAID,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAKD,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAS3D"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EAEd,YAAY,EACZ,cAAc,EAEf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAElC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA2ED,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAgGlF;AAWD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BrG;AAwBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAqBzF;AAuBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAqC7D;AAID,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAKD,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAS3D"}
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderTaskFull = renderTaskFull;
4
4
  exports.renderThreadTaskList = renderThreadTaskList;
5
5
  exports.renderContinue = renderContinue;
6
+ exports.renderActivityLogXml = renderActivityLogXml;
6
7
  exports.buildCalFooter = buildCalFooter;
8
+ const sdk_1 = require("@crewx/sdk");
7
9
  function relativeTime(iso, nowMs = Date.now()) {
8
10
  if (!iso)
9
11
  return null;
@@ -46,9 +48,9 @@ function renderTimelineEntry(e, numWidth, num) {
46
48
  const fp = Array.isArray(e.filePath) ? e.filePath.join(', ') : (e.filePath ?? '');
47
49
  let suffix = '';
48
50
  if (e.editCount === 2)
49
- suffix = ' ← 같은 파일 재수정';
51
+ suffix = ' ← same file edited again';
50
52
  else if ((e.editCount ?? 0) > 2)
51
- suffix = ` ← 같은 파일 ${e.editCount}번째 수정`;
53
+ suffix = ` ← same file ${e.editCount}th edit`;
52
54
  return ` ${n}. ${e.name.padEnd(5)} ${fp}${suffix}`;
53
55
  }
54
56
  if (e.name === 'Bash') {
@@ -85,11 +87,11 @@ function renderTaskFull(r, opts) {
85
87
  if (timeLine)
86
88
  out.push(timeLine);
87
89
  if (r.promptSummary)
88
- out.push(`📋 지시: ${r.promptSummary}`);
90
+ out.push(`📋 Instruction: ${r.promptSummary}`);
89
91
  if (r.resultSummary)
90
- out.push(`📝 결론: ${r.resultSummary}`);
92
+ out.push(`📝 Result: ${(0, sdk_1.sanitizeLegacyUiCardText)(r.resultSummary)}`);
91
93
  if (!r.timeline.length) {
92
- out.push('\n (작업 기록 없음 — 로그가 정리되었거나 tool call이 없습니다)');
94
+ out.push('\n (No task activity recorded - logs may have been cleaned up or no tool calls were captured)');
93
95
  return out.join('\n');
94
96
  }
95
97
  const anno = {};
@@ -98,22 +100,22 @@ function renderTaskFull(r, opts) {
98
100
  const file = top ? top[0] : '(unknown)';
99
101
  const errHint = s.errorCategories[0] ?? (s.errors[0] ? s.errors[0].slice(0, 50) : '');
100
102
  const cause = errHint ? ` — ${errHint}` : '';
101
- anno[s.endIdx] = `💡 삽질: ${file} ${s.failCount + 1}회 수정 (${s.startIdx + 1}→${s.endIdx + 1})${cause}`;
103
+ anno[s.endIdx] = `💡 Struggle: ${file} ${s.failCount + 1} edits (${s.startIdx + 1}→${s.endIdx + 1})${cause}`;
102
104
  }
103
105
  for (const e of r.patterns.efficients) {
104
106
  const parts = [];
105
107
  if (e.readCount > 0)
106
- parts.push(`Read ${e.readCount}개`);
107
- parts.push(`Edit ${e.editCount}개`);
108
- parts.push('검증 한방 통과');
109
- anno[e.endIdx] = `💡 효율: ${parts.join(' → ')}`;
108
+ parts.push(`Read ${e.readCount} items`);
109
+ parts.push(`Edit ${e.editCount} items`);
110
+ parts.push('verification passed on first try');
111
+ anno[e.endIdx] = `💡 Efficiency: ${parts.join(' → ')}`;
110
112
  }
111
- out.push('\n[타임라인]');
113
+ out.push('\n[Timeline]');
112
114
  const nw = String(r.timeline.length).length;
113
115
  const { indices, omittedAt, omittedCount } = visibleTimelineIndices(r.timeline.length, maxTimeline);
114
116
  for (const i of indices) {
115
117
  if (i === omittedAt && omittedCount > 0) {
116
- out.push(` … ${omittedCount}개 생략 (전체 보기: --full) …`);
118
+ out.push(` ... ${omittedCount} omitted (view all: --full) ...`);
117
119
  }
118
120
  out.push(renderTimelineEntry(r.timeline[i], nw, i + 1));
119
121
  if (anno[i] !== undefined)
@@ -121,23 +123,23 @@ function renderTaskFull(r, opts) {
121
123
  }
122
124
  const skillEntries = Object.entries(r.skills).sort((a, b) => b[1].count - a[1].count);
123
125
  if (skillEntries.length > 0) {
124
- out.push('\n[스킬 사용]');
126
+ out.push('\n[Skill Usage]');
125
127
  for (const [name, data] of skillEntries) {
126
128
  const subs = Object.entries(data.subCmds).sort((a, b) => b[1] - a[1]).map(([s]) => s);
127
129
  const subStr = subs.length > 0 ? ` (${subs.join(', ')})` : '';
128
- out.push(` ${name.padEnd(16)} ${String(data.count).padStart(2)}회${subStr}`);
130
+ out.push(` ${name.padEnd(16)} ${String(data.count).padStart(2)} calls${subStr}`);
129
131
  }
130
132
  }
131
- out.push('\n[회고 요약]');
133
+ out.push('\n[Reflection Summary]');
132
134
  if (r.patterns.efficients.length > 0) {
133
- out.push(` ✅ 효율 패턴: Read→Edit→검증 한방 통과 ${r.patterns.efficients.length}건`);
135
+ out.push(` ✅ Efficient patterns: Read→Edit→verification passed on first try ${r.patterns.efficients.length} items`);
134
136
  }
135
137
  if (r.patterns.struggles.length > 0) {
136
138
  const details = r.patterns.struggles.map((s) => {
137
139
  const top = Object.entries(s.editFiles).sort((a, b) => b[1] - a[1])[0];
138
- return top ? `${top[0]} ${top[1]}회` : null;
140
+ return top ? `${top[0]} ${top[1]} edits` : null;
139
141
  }).filter((x) => x !== null).join(', ');
140
- out.push(` ⚠️ 삽질 패턴: 같은 파일 반복 수정 ${r.patterns.struggles.length}건 (${details})`);
142
+ out.push(` ⚠️ Struggle pattern: repeated edits to the same file ${r.patterns.struggles.length} items (${details})`);
141
143
  const cats = {};
142
144
  for (const s of r.patterns.struggles) {
143
145
  for (const c of s.errorCategories)
@@ -145,25 +147,25 @@ function renderTaskFull(r, opts) {
145
147
  }
146
148
  const topCat = Object.entries(cats).sort((a, b) => b[1] - a[1])[0];
147
149
  if (topCat)
148
- out.push(` 💡 인사이트: 에러 대부분 ${topCat[0]} (${topCat[1]}건)`);
150
+ out.push(` 💡 Insight: most errors are ${topCat[0]} (${topCat[1]} items)`);
149
151
  }
150
152
  if (!r.patterns.efficients.length && !r.patterns.struggles.length) {
151
- out.push(' 📊 특이 패턴 없음 — 일반적인 작업 흐름');
153
+ out.push(' 📊 No unusual patterns; typical work flow');
152
154
  }
153
155
  const si = r.skillInsights;
154
156
  if (si.hasEdits && !si.hasDoc) {
155
- out.push(' 📚 설계서 미참조 — doc 호출 없이 Edit 시작 (설계서 먼저 확인하면 삽질 줄일 수 있음)');
157
+ out.push(' 📚 Design doc not referenced; editing began without doc calls');
156
158
  }
157
159
  if (!si.hasMemory) {
158
- out.push(' 🧠 메모리 미확인 — 과거 기록 확인 없이 작업 (이전 결정과 충돌 가능)');
160
+ out.push(' 🧠 Memory not checked; prior decisions may have been missed');
159
161
  }
160
162
  if (si.hasTsserver) {
161
163
  const tsCount = r.skills['tsserver']?.count ?? 0;
162
- out.push(` 🔍 코드 분석 활용 — tsserver ${tsCount}회 사용`);
164
+ out.push(` 🔍 Code analysis used: tsserver ${tsCount} calls`);
163
165
  }
164
166
  if (si.hasSearch) {
165
167
  const sCount = r.skills['crewx/search']?.count ?? 0;
166
- out.push(` 🔎 검색 활용 — crewx/search ${sCount}회 사용`);
168
+ out.push(` 🔎 Search used: crewx/search ${sCount} calls`);
167
169
  }
168
170
  return out.join('\n');
169
171
  }
@@ -178,11 +180,11 @@ function statusEmoji(status) {
178
180
  }
179
181
  function renderThreadTaskList(rows, threadId, recent) {
180
182
  const out = [];
181
- out.push(`\n━━━ Dreaming: thread ${threadId} — 최근 ${recent}건 ━━━`);
182
- out.push(`태스크 목록: ${rows.length}건`);
183
+ out.push(`\n━━━ Dreaming: thread ${threadId} — last ${recent} items ━━━`);
184
+ out.push(`Task list: ${rows.length} items`);
183
185
  out.push('');
184
186
  if (!rows.length) {
185
- out.push(' (태스크 없음)');
187
+ out.push(' (No tasks)');
186
188
  return out.join('\n');
187
189
  }
188
190
  const idW = Math.max(...rows.map((r) => r.taskId.length));
@@ -196,7 +198,7 @@ function renderThreadTaskList(rows, threadId, recent) {
196
198
  out.push(` ${num}. ${icon} ${r.taskId.padEnd(idW)} | ${r.agentId.padEnd(agentW)} | ${r.status.padEnd(9)} | ${dur.padStart(5)} | ${prompt}`);
197
199
  }
198
200
  out.push('');
199
- out.push(` 드릴다운: crewx dreaming --task=<id>`);
201
+ out.push(` Drilldown: crewx dreaming --task=<id>`);
200
202
  return out.join('\n');
201
203
  }
202
204
  function renderActivitySummaryLine(s) {
@@ -205,37 +207,80 @@ function renderActivitySummaryLine(s) {
205
207
  const seen = new Set(order);
206
208
  const keys = [...order.filter((k) => s.toolCounts[k]), ...Object.keys(s.toolCounts).filter((k) => !seen.has(k))];
207
209
  const toolStr = keys.length
208
- ? keys.map((k) => `${k} ${s.toolCounts[k]}회`).join(', ')
209
- : 'tool 호출 없음';
210
+ ? keys.map((k) => `${k} ${s.toolCounts[k]} calls`).join(', ')
211
+ : 'no tool calls';
210
212
  const dur = s.duration != null ? ` | ${s.duration}s` : '';
211
213
  const rel = relativeTime(s.completedAt ?? s.startedAt);
212
214
  const relStr = rel ? ` | ${rel}` : '';
213
- const struggle = s.hasStruggles ? ' | ⚠️ 삽질' : '';
215
+ const struggle = s.hasStruggles ? ' | ⚠️ struggle' : '';
214
216
  return ` - ${s.taskId} | ${icon} ${s.status}${dur}${relStr} | ${toolStr}${struggle}`;
215
217
  }
216
218
  function renderContinue(result, opts) {
217
219
  const out = [];
218
- out.push(`\n━━━ 이전 내 작업 이어보기 ━━━`);
220
+ out.push(`\n━━━ Continue previous work ━━━`);
219
221
  out.push(`Thread: ${result.thread} | Agent: ${result.agent}`);
220
222
  if (!result.latest) {
221
- out.push('\n (이전 작업 없음 — 이 thread에서 해당 agent의 완료된 작업을 찾지 못했습니다)');
223
+ out.push('\n (No previous work - no completed task for this agent was found in this thread)');
222
224
  return out.join('\n');
223
225
  }
224
- out.push('\n[직전 작업]');
226
+ out.push('\n[Latest Task]');
225
227
  out.push(renderTaskFull(result.latest, opts));
226
228
  if (result.previous.length > 0) {
227
- out.push('\n[이전 작업 요약]');
229
+ out.push('\n[Previous Task Summary]');
228
230
  for (const s of result.previous) {
229
231
  out.push(renderActivitySummaryLine(s));
230
232
  }
231
233
  }
232
234
  return out.join('\n');
233
235
  }
236
+ function xmlEscape(s) {
237
+ return s
238
+ .replace(/&/g, '&amp;')
239
+ .replace(/</g, '&lt;')
240
+ .replace(/>/g, '&gt;')
241
+ .replace(/"/g, '&quot;');
242
+ }
243
+ function renderActivityLogXml(log) {
244
+ if (log.lookback === 0)
245
+ return '';
246
+ if (!log.entries.length && log.totalEntries === 0)
247
+ return '';
248
+ const lines = [];
249
+ lines.push(`<activity_log thread_id="${xmlEscape(log.threadId)}" agent_id="${xmlEscape(log.agentId)}" lookback="${log.lookback}">`);
250
+ if (!log.entries.length) {
251
+ lines.push(' <!-- no reusable read-only results found in previous tasks -->');
252
+ }
253
+ else {
254
+ lines.push(' <!-- read-only results from previous tasks — use these; do not re-run unless marked stale -->');
255
+ for (const e of log.entries) {
256
+ const toolAttr = `tool="${xmlEscape(e.tool)}"`;
257
+ const cmdAttr = e.cmd ? ` cmd="${xmlEscape(e.cmd)}"` : '';
258
+ const reusedAttr = e.status === 'stale' ? ' reused="stale"' : ' reused="ok"';
259
+ if (e.status === 'stale') {
260
+ lines.push(` <entry ${toolAttr}${cmdAttr}${reusedAttr}>⚠️ changed since — re-read</entry>`);
261
+ }
262
+ else if (e.result) {
263
+ lines.push(` <entry ${toolAttr}${cmdAttr}${reusedAttr}>`);
264
+ lines.push(xmlEscape(e.result));
265
+ lines.push(` </entry>`);
266
+ }
267
+ else {
268
+ lines.push(` <entry ${toolAttr}${cmdAttr}${reusedAttr} />`);
269
+ }
270
+ }
271
+ if (log.truncated) {
272
+ const omitted = log.totalEntries - log.entries.length;
273
+ lines.push(` <!-- ${omitted} more entries omitted — token budget reached (${log.budgetUsed} chars used) -->`);
274
+ }
275
+ }
276
+ lines.push('</activity_log>');
277
+ return lines.join('\n');
278
+ }
234
279
  function buildCalFooter(actions) {
235
280
  if (!actions.length)
236
281
  return '';
237
282
  const out = [];
238
- out.push('\n━━━ 다음 액션 ━━━');
283
+ out.push('\n━━━ Next Actions ━━━');
239
284
  for (const a of actions) {
240
285
  out.push(`${a.label}:`);
241
286
  out.push(` ${a.cmd}`);