@crewx/dreaming 0.1.0-rc.8 → 0.1.0-rc.81

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,8 +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;
44
+ exports.summarizeAnalysis = summarizeAnalysis;
45
+ const fs = __importStar(require("fs"));
6
46
  const sdk_1 = require("@crewx/sdk");
7
47
  const VERIFY_COMMANDS = [
8
48
  'tsc', 'npm test', 'npm run test', 'npm run lint', 'eslint',
@@ -13,14 +53,14 @@ const BASH_ERROR_PATTERNS = [
13
53
  /does not exist/i, /FAILED/, /✗/, /ERR!/,
14
54
  ];
15
55
  const ERROR_CATEGORIES = [
16
- [/Type .+ is not assignable to type/i, '타입 불일치'],
17
- [/Cannot find module/i, '모듈 경로 오류'],
18
- [/Property .+ does not exist/i, '존재하지 않는 프로퍼티'],
19
- [/Expected \d+ arguments/i, '인자 수 불일치'],
20
- [/Cannot find name/i, '미선언 변수/함수'],
21
- [/has no exported member/i, 'export 누락'],
22
- [/FAIL|AssertionError|expect\(/i, '테스트 실패'],
23
- [/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'],
24
64
  ];
25
65
  const FILE_PLACEHOLDERS = new Set(['Read File', 'Edit File', 'Write File', 'Terminal', '{}', '']);
26
66
  function normalizeToolName(name) {
@@ -102,21 +142,27 @@ function detectProvider(stdoutLines) {
102
142
  return 'claude';
103
143
  return null;
104
144
  }
105
- 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) {
106
152
  if (!Array.isArray(logs))
107
153
  return [];
108
154
  const logEntries = logs;
109
155
  const stdoutLines = logEntries
110
156
  .filter((e) => e.level === 'stdout' && e.message)
111
157
  .map((e) => e.message);
112
- const provider = detectProvider(stdoutLines);
158
+ const provider = resolveProvider(metaProvider, stdoutLines);
113
159
  const allEntries = [];
114
160
  for (const entry of logEntries) {
115
161
  if (entry.level === 'info' && entry.message) {
116
162
  allEntries.push(...(0, sdk_1.defaultParseEvent)(entry.message, entry.timestamp));
117
163
  }
118
- else if (entry.level === 'stdout' && entry.message && provider) {
119
- 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));
120
166
  }
121
167
  }
122
168
  if (!allEntries.length)
@@ -348,8 +394,6 @@ function analyzeTask(row, spans) {
348
394
  logs = parsed;
349
395
  }
350
396
  catch { }
351
- const toolCalls = extractToolCallsFromLogs(logs);
352
- const duration = row.duration_ms != null ? Math.round(row.duration_ms / 1000) : null;
353
397
  let metaProvider = null;
354
398
  if (row.metadata) {
355
399
  try {
@@ -357,6 +401,8 @@ function analyzeTask(row, spans) {
357
401
  }
358
402
  catch { }
359
403
  }
404
+ const toolCalls = extractToolCallsFromLogs(logs, metaProvider ?? undefined);
405
+ const duration = row.duration_ms != null ? Math.round(row.duration_ms / 1000) : null;
360
406
  const timeline = buildTimeline(toolCalls);
361
407
  const patterns = detectPatterns(timeline);
362
408
  const readFiles = new Set();
@@ -392,6 +438,9 @@ function analyzeTask(row, spans) {
392
438
  promptSummary,
393
439
  resultSummary,
394
440
  duration,
441
+ startedAt: row.started_at ?? null,
442
+ completedAt: row.completed_at ?? null,
443
+ durationMs: row.duration_ms ?? null,
395
444
  toolCount: toolCalls.length,
396
445
  timeline,
397
446
  patterns,
@@ -411,4 +460,120 @@ function analyzeTask(row, spans) {
411
460
  hasStruggles: patterns.struggles.length > 0,
412
461
  };
413
462
  }
463
+ exports.READ_ONLY_TOOLS = new Set([
464
+ 'Read', 'Grep', 'Find', 'Glob',
465
+ ]);
466
+ exports.READ_ONLY_BASH_PREFIXES = [
467
+ 'git status', 'git log', 'git branch', 'git diff --stat', 'git show',
468
+ 'git remote', 'git rev-parse', 'git ls-files',
469
+ 'pwd', 'ls ', 'ls\n', 'echo ',
470
+ 'cat ', 'head ', 'tail ',
471
+ 'npx crewx memory index', 'npx crewx memory find', 'npx crewx memory get',
472
+ 'npx crewx doc toc', 'npx crewx doc section', 'npx crewx doc status',
473
+ 'npx crewx search',
474
+ 'npx skill tsserver find', 'npx skill tsserver refs', 'npx skill tsserver type',
475
+ 'crewx memory index', 'crewx memory find', 'crewx memory get',
476
+ 'crewx doc toc', 'crewx doc section', 'crewx doc status',
477
+ 'crewx search',
478
+ 'crewx agent ls', 'crewx agent list',
479
+ 'crewx wbs status',
480
+ ];
481
+ const MUTATING_BASH_PATTERNS = [
482
+ /\bgit\s+(commit|push|pull|merge|rebase|reset|checkout|switch|add|rm)\b/,
483
+ /\bnpm\s+(install|ci|publish|run\s+(test|lint|build))\b/,
484
+ /\bnpx\s+tsc\b/,
485
+ /\bpnpm\s+(install|run)\b/,
486
+ /\bvitest\b/, /\bjest\b/,
487
+ ];
488
+ function isReadOnlyToolCall(name, input) {
489
+ const normalized = normalizeToolName(name);
490
+ if (exports.READ_ONLY_TOOLS.has(normalized))
491
+ return true;
492
+ if (normalized !== 'Bash')
493
+ return false;
494
+ if (!input)
495
+ return false;
496
+ const firstLine = input.split('\n')[0].trimStart();
497
+ if (MUTATING_BASH_PATTERNS.some((re) => re.test(firstLine)))
498
+ return false;
499
+ return exports.READ_ONLY_BASH_PREFIXES.some((prefix) => firstLine.startsWith(prefix));
500
+ }
501
+ function checkFileStaleness(filePath, taskCompletedAt) {
502
+ try {
503
+ const stat = fs.statSync(filePath);
504
+ if (taskCompletedAt) {
505
+ const taskTime = Date.parse(taskCompletedAt);
506
+ if (!Number.isNaN(taskTime) && stat.mtimeMs > taskTime)
507
+ return 'stale';
508
+ }
509
+ return 'ok';
510
+ }
511
+ catch {
512
+ return 'unknown';
513
+ }
514
+ }
515
+ function toActivityLogEntry(e, taskCompletedAt) {
516
+ if (!isReadOnlyToolCall(e.name, e.input))
517
+ return null;
518
+ if (e.isError)
519
+ return null;
520
+ let filePath = null;
521
+ let status = 'ok';
522
+ if (e.name === 'Read' && e.filePath) {
523
+ const fp = Array.isArray(e.filePath) ? e.filePath[0] ?? null : e.filePath;
524
+ filePath = fp;
525
+ if (fp)
526
+ status = checkFileStaleness(fp, taskCompletedAt);
527
+ }
528
+ const cmd = e.name === 'Bash' ? (e.bashCmd ?? e.input?.slice(0, 150) ?? null) : (e.input?.slice(0, 150) ?? null);
529
+ return { tool: e.name, cmd, result: e.resultPreview ?? null, filePath, status };
530
+ }
531
+ function extractActivityLogEntries(analyses) {
532
+ const entries = [];
533
+ for (const a of analyses) {
534
+ for (const e of a.timeline) {
535
+ const entry = toActivityLogEntry(e, a.completedAt);
536
+ if (entry)
537
+ entries.push(entry);
538
+ }
539
+ }
540
+ return entries;
541
+ }
542
+ function buildActivityLog(analyses, threadId, agentId, lookback, tokenBudget) {
543
+ const allEntries = extractActivityLogEntries(analyses);
544
+ const included = [];
545
+ let budgetUsed = 0;
546
+ let truncated = false;
547
+ for (const e of allEntries) {
548
+ const size = (e.result?.length ?? 0) + (e.cmd?.length ?? 0) + 80;
549
+ if (budgetUsed + size > tokenBudget && included.length > 0) {
550
+ truncated = true;
551
+ break;
552
+ }
553
+ included.push(e);
554
+ budgetUsed += size;
555
+ }
556
+ return { threadId, agentId, lookback, totalEntries: allEntries.length, entries: included, truncated, budgetUsed };
557
+ }
558
+ function summarizeAnalysis(a) {
559
+ const toolCounts = {};
560
+ for (const e of a.timeline) {
561
+ const name = e.name || '?';
562
+ toolCounts[name] = (toolCounts[name] ?? 0) + 1;
563
+ }
564
+ return {
565
+ taskId: a.taskId,
566
+ agentId: a.agentId,
567
+ status: a.status,
568
+ duration: a.duration,
569
+ startedAt: a.startedAt,
570
+ completedAt: a.completedAt,
571
+ toolCount: a.toolCount,
572
+ toolCounts,
573
+ editFiles: a.behavior.editFiles,
574
+ readFiles: a.behavior.readFiles,
575
+ hasStruggles: a.hasStruggles,
576
+ promptSummary: a.promptSummary,
577
+ };
578
+ }
414
579
  //# sourceMappingURL=analyzer.js.map
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,8CAUC;AA8ED,4DA6DC;AAoLD,kCAsEC;AA6CD,gDAYC;AAID,gDAWC;AAyBD,8DAUC;AAKD,4CAuBC;AAMD,8CAoBC;AAxlBD,uCAAyB;AACzB,oCAAmF;AAcnF,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ;IAC3D,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;CACjD,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC1B,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc;IACrD,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM;CACzC,CAAC;AAEF,MAAM,gBAAgB,GAAuB;IAC3C,CAAC,oCAAoC,EAAE,eAAe,CAAC;IACvD,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;IAC5C,CAAC,6BAA6B,EAAE,kBAAkB,CAAC;IACnD,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IACtD,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;IACrD,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;IAC7C,CAAC,+BAA+B,EAAE,cAAc,CAAC;IACjD,CAAC,+BAA+B,EAAE,cAAc,CAAC;CAClD,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAIlG,SAAgB,iBAAiB,CAAC,IAA+B;IAC/D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACxD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,MAAM,CAAC;IAC/D,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACtC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACtD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,KAAoB;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1F,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9C,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1E,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EAAE,CAAC;YAC1E,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,SAAS,cAAc,CAAC,WAAqB;IAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC;YAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,CAAC,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAY,CAAC;IACzF,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,OAAO,OAAO,CAAC;IACzG,IAAI,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC;QAAE,OAAO,SAAS,CAAC;IACnG,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,UAAU,CAAC;IAC3E,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC;AASD,SAAS,eAAe,CAAC,YAAgC,EAAE,WAAqB;IAC9E,MAAM,GAAG,GAAG,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAI,GAAG,IAAI,GAAG,IAAI,sBAAgB;QAAE,OAAO,GAAG,CAAC;IAC/C,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAYD,SAAgB,wBAAwB,CAAC,IAAe,EAAE,YAAqB;IAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,UAAU,GAAG,IAAuE,CAAC;IAC3F,MAAM,WAAW,GAAG,UAAU;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAiB,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAyC,EAAE,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,uBAAiB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACrD,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAgB,EAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClD,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAgB;gBACtB,SAAS,EAAG,CAA4B,CAAC,SAAS,IAAI,IAAI;gBAC1D,IAAI,EAAE,iBAAiB,CAAE,CAA2B,CAAC,QAAQ,CAAC;gBAC9D,KAAK,EAAG,CAA4B,CAAC,SAAS,IAAI,IAAI;gBACtD,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,IAAI;aACpB,CAAC;YACF,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;YACxB,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;oBACrC,SAAS;gBACX,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,CAAsE,CAAC;YACvF,IAAI,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAE,CAAC;gBAC9C,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;gBACtC,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;oBAC7B,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;wBAC/B,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;wBACvC,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;wBAClD,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAID,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACtD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACxB,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,cAAc,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB,EAAE,KAAoB;IACjE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAA2B;QACvC,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO;QACpE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;KACrD,CAAC;IACF,IAAI,SAAS,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,CAAC,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,KAAgB;IACtC,MAAM,OAAO,GAAuE,EAAE,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,SAAS;QAC7D,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;QACvD,IAAI,GAAG;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,SAAS,eAAe,CAAC,GAAkB;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,EAAe;IACnC,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAc,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,GAAkB;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,SAAwB;IAC7C,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,KAAK,GAAkB;YAC3B,IAAI;YACJ,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,aAAa,EAAE,EAAE,CAAC,aAAa;YAC/B,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3D,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChF,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC;QACtD,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YAChC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5C,IAAI,MAAM,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;gBAC/B,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3E,KAAK,CAAC,aAAa,GAAG,eAAe,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAID,SAAS,cAAc,CAAC,QAAyB;IAI/C,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,MAAM,UAAU,GAAuB,EAAE,CAAC;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM;YAAE,SAAS;QAE1E,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAE,CAAC;QAC/C,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1C,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;oBAC/E,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;oBACtC,MAAM;gBACR,CAAC;YACH,CAAC;YACD,CAAC,EAAE,CAAC;QACN,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;YAC/B,MAAM,SAAS,GAA2B,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACpE,KAAK,MAAM,CAAC,IAAI,KAAK;wBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;oBACnE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAC3F,SAAS,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,WAAW,CAAC,MAAM;gBAC7B,SAAS;gBACT,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,eAAe,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC9C,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;oBAAE,SAAS,EAAE,CAAC;qBAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;oBAAE,SAAS,EAAE,CAAC;;oBACtF,MAAM;gBACX,CAAC,EAAE,CAAC;YACN,CAAC;YACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnC,CAAC;AAID,SAAgB,WAAW,CAAC,GAAY,EAAE,KAAgB;IACxD,IAAI,IAAI,GAAc,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,GAAG,MAAM,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC,CAAmB,CAAC;IAE7B,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC;YAAC,YAAY,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAA2B,CAAC,QAAQ,IAAI,IAAI,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAc,CAAC;IACrH,CAAC;IAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,EAAE,YAAY,IAAI,SAAS,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,IAAI,SAAS,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC;IAElC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ;YACtB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzD,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACzD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACpF,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAAC,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,CAAC,QAAQ;gBAAE,UAAU,EAAE,CAAC;QAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAEjF,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnF,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,EAAE;QACd,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,YAAY;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa;QACb,aAAa;QACb,QAAQ;QACR,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;QACjC,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;QACrC,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;QACnC,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,QAAQ;QACR,QAAQ;QACR,QAAQ,EAAE;YACR,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;YACzB,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;YACzB,SAAS;SACV;QACD,OAAO,EAAE;YACP,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;YACpC,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACtE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;YACtC,WAAW,EAAE,UAAU;SACxB;QACD,MAAM;QACN,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;QACtE,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;KAC5C,CAAC;AACJ,CAAC;AAQY,QAAA,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAC/B,CAAC,CAAC;AAMU,QAAA,uBAAuB,GAAa;IAC/C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU;IACpE,YAAY,EAAE,eAAe,EAAE,cAAc;IAC7C,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IAC7B,MAAM,EAAE,OAAO,EAAE,OAAO;IACxB,wBAAwB,EAAE,uBAAuB,EAAE,sBAAsB;IACzE,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB;IACpE,kBAAkB;IAClB,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB;IAC/E,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB;IAC7D,eAAe,EAAE,mBAAmB,EAAE,kBAAkB;IACxD,cAAc;IACd,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB;CACnB,CAAC;AAMF,MAAM,sBAAsB,GAAa;IACvC,wEAAwE;IACxE,wDAAwD;IACxD,eAAe;IACf,0BAA0B;IAC1B,YAAY,EAAE,UAAU;CACzB,CAAC;AAGF,SAAgB,kBAAkB,CAAC,IAAY,EAAE,KAAoB;IACnE,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,uBAAe,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,EAAE,CAAC;IAGpD,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1E,OAAO,+BAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,CAAC;AAID,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,eAA+B;IAClF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ;gBAAE,OAAO,OAAO,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAGD,SAAS,kBAAkB,CAAC,CAAgB,EAAE,eAA+B;IAC3E,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE3B,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,MAAM,GAA+B,IAAI,CAAC;IAE9C,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1E,QAAQ,GAAG,EAAE,CAAC;QACd,IAAI,EAAE;YAAE,MAAM,GAAG,kBAAkB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAEjH,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAClF,CAAC;AAMD,SAAgB,yBAAyB,CAAC,QAAwB;IAChE,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,SAAgB,gBAAgB,CAC9B,QAAwB,EACxB,QAAgB,EAChB,OAAe,EACf,QAAgB,EAChB,WAAmB;IAEnB,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACjE,IAAI,UAAU,GAAG,IAAI,GAAG,WAAW,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACR,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACpH,CAAC;AAMD,SAAgB,iBAAiB,CAAC,CAAe;IAC/C,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU;QACV,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;QAC/B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;QAC/B,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;KAC/B,CAAC;AACJ,CAAC"}
@@ -1,4 +1,14 @@
1
- import type { TaskAnalysis, TaskSummaryRow } from './types.js';
2
- export declare function renderTaskFull(r: TaskAnalysis): string;
1
+ import type { ActivityLog, ContinueResult, TaskAnalysis, TaskSummaryRow } from './types.js';
2
+ export interface RenderDetailOptions {
3
+ maxTimeline?: number | null;
4
+ }
5
+ export declare function renderTaskFull(r: TaskAnalysis, opts?: RenderDetailOptions): string;
3
6
  export declare function renderThreadTaskList(rows: TaskSummaryRow[], threadId: string, recent: number): string;
7
+ export declare function renderContinue(result: ContinueResult, opts?: RenderDetailOptions): string;
8
+ export declare function renderActivityLogXml(log: ActivityLog): string;
9
+ export interface CalAction {
10
+ label: string;
11
+ cmd: string;
12
+ }
13
+ export declare function buildCalFooter(actions: CalAction[]): string;
4
14
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AA+B9E,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAwFtD;AAWD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BrG"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"AAAA,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"}
@@ -2,6 +2,41 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderTaskFull = renderTaskFull;
4
4
  exports.renderThreadTaskList = renderThreadTaskList;
5
+ exports.renderContinue = renderContinue;
6
+ exports.renderActivityLogXml = renderActivityLogXml;
7
+ exports.buildCalFooter = buildCalFooter;
8
+ function relativeTime(iso, nowMs = Date.now()) {
9
+ if (!iso)
10
+ return null;
11
+ const t = Date.parse(iso);
12
+ if (Number.isNaN(t))
13
+ return null;
14
+ const s = Math.floor((nowMs - t) / 1000);
15
+ if (s <= 0)
16
+ return 'just now';
17
+ if (s < 60)
18
+ return `${s}s ago`;
19
+ const m = Math.floor(s / 60);
20
+ if (m < 60)
21
+ return `${m}m ago`;
22
+ const h = Math.floor(m / 60);
23
+ if (h < 24)
24
+ return `${h}h ago`;
25
+ return `${Math.floor(h / 24)}d ago`;
26
+ }
27
+ function renderTimeLine(r) {
28
+ const parts = [];
29
+ if (r.startedAt)
30
+ parts.push(`started_at: ${r.startedAt}`);
31
+ if (r.completedAt)
32
+ parts.push(`completed_at: ${r.completedAt}`);
33
+ if (r.duration != null)
34
+ parts.push(`duration: ${r.duration}s`);
35
+ const rel = relativeTime(r.completedAt ?? r.startedAt);
36
+ if (rel)
37
+ parts.push(`relative_time: ${rel}`);
38
+ return parts.length ? parts.join(' | ') : null;
39
+ }
5
40
  function renderTimelineEntry(e, numWidth, num) {
6
41
  const n = String(num).padStart(numWidth);
7
42
  if (e.name === 'Read' || e.name === 'Grep' || e.name === 'Find') {
@@ -12,9 +47,9 @@ function renderTimelineEntry(e, numWidth, num) {
12
47
  const fp = Array.isArray(e.filePath) ? e.filePath.join(', ') : (e.filePath ?? '');
13
48
  let suffix = '';
14
49
  if (e.editCount === 2)
15
- suffix = ' ← 같은 파일 재수정';
50
+ suffix = ' ← same file edited again';
16
51
  else if ((e.editCount ?? 0) > 2)
17
- suffix = ` ← 같은 파일 ${e.editCount}번째 수정`;
52
+ suffix = ` ← same file ${e.editCount}th edit`;
18
53
  return ` ${n}. ${e.name.padEnd(5)} ${fp}${suffix}`;
19
54
  }
20
55
  if (e.name === 'Bash') {
@@ -28,17 +63,34 @@ function renderTimelineEntry(e, numWidth, num) {
28
63
  const hint = e.input ? e.input.slice(0, 80) : '';
29
64
  return ` ${n}. ${(e.name || '?').padEnd(5)} ${hint}`;
30
65
  }
31
- function renderTaskFull(r) {
66
+ function visibleTimelineIndices(len, maxTimeline) {
67
+ if (maxTimeline == null || maxTimeline <= 0 || len <= maxTimeline) {
68
+ return { indices: Array.from({ length: len }, (_, i) => i), omittedAt: null, omittedCount: 0 };
69
+ }
70
+ const head = Math.ceil(maxTimeline / 2);
71
+ const tail = Math.floor(maxTimeline / 2);
72
+ const indices = [];
73
+ for (let i = 0; i < head; i++)
74
+ indices.push(i);
75
+ for (let i = len - tail; i < len; i++)
76
+ indices.push(i);
77
+ return { indices, omittedAt: len - tail, omittedCount: len - head - tail };
78
+ }
79
+ function renderTaskFull(r, opts) {
80
+ const maxTimeline = opts?.maxTimeline ?? null;
32
81
  const out = [];
33
82
  out.push(`\n━━━ Dreaming: task ${r.taskId} ━━━`);
34
83
  const pTag = r.metaProvider ? ` (${r.metaProvider})` : '';
35
84
  out.push(`Agent: ${r.agentId}${pTag} | Status: ${r.status} | Duration: ${r.duration != null ? r.duration + 's' : '-'} | Tools: ${r.toolCount} calls`);
85
+ const timeLine = renderTimeLine(r);
86
+ if (timeLine)
87
+ out.push(timeLine);
36
88
  if (r.promptSummary)
37
- out.push(`📋 지시: ${r.promptSummary}`);
89
+ out.push(`📋 Instruction: ${r.promptSummary}`);
38
90
  if (r.resultSummary)
39
- out.push(`📝 결론: ${r.resultSummary}`);
91
+ out.push(`📝 Result: ${r.resultSummary}`);
40
92
  if (!r.timeline.length) {
41
- out.push('\n (tool call 데이터 없음)');
93
+ out.push('\n (No task activity recorded - logs may have been cleaned up or no tool calls were captured)');
42
94
  return out.join('\n');
43
95
  }
44
96
  const anno = {};
@@ -47,42 +99,46 @@ function renderTaskFull(r) {
47
99
  const file = top ? top[0] : '(unknown)';
48
100
  const errHint = s.errorCategories[0] ?? (s.errors[0] ? s.errors[0].slice(0, 50) : '');
49
101
  const cause = errHint ? ` — ${errHint}` : '';
50
- anno[s.endIdx] = `💡 삽질: ${file} ${s.failCount + 1}회 수정 (${s.startIdx + 1}→${s.endIdx + 1})${cause}`;
102
+ anno[s.endIdx] = `💡 Struggle: ${file} ${s.failCount + 1} edits (${s.startIdx + 1}→${s.endIdx + 1})${cause}`;
51
103
  }
52
104
  for (const e of r.patterns.efficients) {
53
105
  const parts = [];
54
106
  if (e.readCount > 0)
55
- parts.push(`Read ${e.readCount}개`);
56
- parts.push(`Edit ${e.editCount}개`);
57
- parts.push('검증 한방 통과');
58
- anno[e.endIdx] = `💡 효율: ${parts.join(' → ')}`;
107
+ parts.push(`Read ${e.readCount} items`);
108
+ parts.push(`Edit ${e.editCount} items`);
109
+ parts.push('verification passed on first try');
110
+ anno[e.endIdx] = `💡 Efficiency: ${parts.join(' → ')}`;
59
111
  }
60
- out.push('\n[타임라인]');
112
+ out.push('\n[Timeline]');
61
113
  const nw = String(r.timeline.length).length;
62
- for (let i = 0; i < r.timeline.length; i++) {
114
+ const { indices, omittedAt, omittedCount } = visibleTimelineIndices(r.timeline.length, maxTimeline);
115
+ for (const i of indices) {
116
+ if (i === omittedAt && omittedCount > 0) {
117
+ out.push(` ... ${omittedCount} omitted (view all: --full) ...`);
118
+ }
63
119
  out.push(renderTimelineEntry(r.timeline[i], nw, i + 1));
64
120
  if (anno[i] !== undefined)
65
121
  out.push(` ${anno[i]}`);
66
122
  }
67
123
  const skillEntries = Object.entries(r.skills).sort((a, b) => b[1].count - a[1].count);
68
124
  if (skillEntries.length > 0) {
69
- out.push('\n[스킬 사용]');
125
+ out.push('\n[Skill Usage]');
70
126
  for (const [name, data] of skillEntries) {
71
127
  const subs = Object.entries(data.subCmds).sort((a, b) => b[1] - a[1]).map(([s]) => s);
72
128
  const subStr = subs.length > 0 ? ` (${subs.join(', ')})` : '';
73
- out.push(` ${name.padEnd(16)} ${String(data.count).padStart(2)}회${subStr}`);
129
+ out.push(` ${name.padEnd(16)} ${String(data.count).padStart(2)} calls${subStr}`);
74
130
  }
75
131
  }
76
- out.push('\n[회고 요약]');
132
+ out.push('\n[Reflection Summary]');
77
133
  if (r.patterns.efficients.length > 0) {
78
- out.push(` ✅ 효율 패턴: Read→Edit→검증 한방 통과 ${r.patterns.efficients.length}건`);
134
+ out.push(` ✅ Efficient patterns: Read→Edit→verification passed on first try ${r.patterns.efficients.length} items`);
79
135
  }
80
136
  if (r.patterns.struggles.length > 0) {
81
137
  const details = r.patterns.struggles.map((s) => {
82
138
  const top = Object.entries(s.editFiles).sort((a, b) => b[1] - a[1])[0];
83
- return top ? `${top[0]} ${top[1]}회` : null;
139
+ return top ? `${top[0]} ${top[1]} edits` : null;
84
140
  }).filter((x) => x !== null).join(', ');
85
- out.push(` ⚠️ 삽질 패턴: 같은 파일 반복 수정 ${r.patterns.struggles.length}건 (${details})`);
141
+ out.push(` ⚠️ Struggle pattern: repeated edits to the same file ${r.patterns.struggles.length} items (${details})`);
86
142
  const cats = {};
87
143
  for (const s of r.patterns.struggles) {
88
144
  for (const c of s.errorCategories)
@@ -90,25 +146,25 @@ function renderTaskFull(r) {
90
146
  }
91
147
  const topCat = Object.entries(cats).sort((a, b) => b[1] - a[1])[0];
92
148
  if (topCat)
93
- out.push(` 💡 인사이트: 에러 대부분 ${topCat[0]} (${topCat[1]}건)`);
149
+ out.push(` 💡 Insight: most errors are ${topCat[0]} (${topCat[1]} items)`);
94
150
  }
95
151
  if (!r.patterns.efficients.length && !r.patterns.struggles.length) {
96
- out.push(' 📊 특이 패턴 없음 — 일반적인 작업 흐름');
152
+ out.push(' 📊 No unusual patterns; typical work flow');
97
153
  }
98
154
  const si = r.skillInsights;
99
155
  if (si.hasEdits && !si.hasDoc) {
100
- out.push(' 📚 설계서 미참조 — doc 호출 없이 Edit 시작 (설계서 먼저 확인하면 삽질 줄일 수 있음)');
156
+ out.push(' 📚 Design doc not referenced; editing began without doc calls');
101
157
  }
102
158
  if (!si.hasMemory) {
103
- out.push(' 🧠 메모리 미확인 — 과거 기록 확인 없이 작업 (이전 결정과 충돌 가능)');
159
+ out.push(' 🧠 Memory not checked; prior decisions may have been missed');
104
160
  }
105
161
  if (si.hasTsserver) {
106
162
  const tsCount = r.skills['tsserver']?.count ?? 0;
107
- out.push(` 🔍 코드 분석 활용 — tsserver ${tsCount}회 사용`);
163
+ out.push(` 🔍 Code analysis used: tsserver ${tsCount} calls`);
108
164
  }
109
165
  if (si.hasSearch) {
110
166
  const sCount = r.skills['crewx/search']?.count ?? 0;
111
- out.push(` 🔎 검색 활용 — crewx/search ${sCount}회 사용`);
167
+ out.push(` 🔎 Search used: crewx/search ${sCount} calls`);
112
168
  }
113
169
  return out.join('\n');
114
170
  }
@@ -123,11 +179,11 @@ function statusEmoji(status) {
123
179
  }
124
180
  function renderThreadTaskList(rows, threadId, recent) {
125
181
  const out = [];
126
- out.push(`\n━━━ Dreaming: thread ${threadId} — 최근 ${recent}건 ━━━`);
127
- out.push(`태스크 목록: ${rows.length}건`);
182
+ out.push(`\n━━━ Dreaming: thread ${threadId} — last ${recent} items ━━━`);
183
+ out.push(`Task list: ${rows.length} items`);
128
184
  out.push('');
129
185
  if (!rows.length) {
130
- out.push(' (태스크 없음)');
186
+ out.push(' (No tasks)');
131
187
  return out.join('\n');
132
188
  }
133
189
  const idW = Math.max(...rows.map((r) => r.taskId.length));
@@ -141,7 +197,93 @@ function renderThreadTaskList(rows, threadId, recent) {
141
197
  out.push(` ${num}. ${icon} ${r.taskId.padEnd(idW)} | ${r.agentId.padEnd(agentW)} | ${r.status.padEnd(9)} | ${dur.padStart(5)} | ${prompt}`);
142
198
  }
143
199
  out.push('');
144
- out.push(` 드릴다운: crewx dreaming --task=<id>`);
200
+ out.push(` Drilldown: crewx dreaming --task=<id>`);
201
+ return out.join('\n');
202
+ }
203
+ function renderActivitySummaryLine(s) {
204
+ const icon = statusEmoji(s.status);
205
+ const order = ['Bash', 'Read', 'Edit', 'Write', 'Grep', 'Find'];
206
+ const seen = new Set(order);
207
+ const keys = [...order.filter((k) => s.toolCounts[k]), ...Object.keys(s.toolCounts).filter((k) => !seen.has(k))];
208
+ const toolStr = keys.length
209
+ ? keys.map((k) => `${k} ${s.toolCounts[k]} calls`).join(', ')
210
+ : 'no tool calls';
211
+ const dur = s.duration != null ? ` | ${s.duration}s` : '';
212
+ const rel = relativeTime(s.completedAt ?? s.startedAt);
213
+ const relStr = rel ? ` | ${rel}` : '';
214
+ const struggle = s.hasStruggles ? ' | ⚠️ struggle' : '';
215
+ return ` - ${s.taskId} | ${icon} ${s.status}${dur}${relStr} | ${toolStr}${struggle}`;
216
+ }
217
+ function renderContinue(result, opts) {
218
+ const out = [];
219
+ out.push(`\n━━━ Continue previous work ━━━`);
220
+ out.push(`Thread: ${result.thread} | Agent: ${result.agent}`);
221
+ if (!result.latest) {
222
+ out.push('\n (No previous work - no completed task for this agent was found in this thread)');
223
+ return out.join('\n');
224
+ }
225
+ out.push('\n[Latest Task]');
226
+ out.push(renderTaskFull(result.latest, opts));
227
+ if (result.previous.length > 0) {
228
+ out.push('\n[Previous Task Summary]');
229
+ for (const s of result.previous) {
230
+ out.push(renderActivitySummaryLine(s));
231
+ }
232
+ }
233
+ return out.join('\n');
234
+ }
235
+ function xmlEscape(s) {
236
+ return s
237
+ .replace(/&/g, '&amp;')
238
+ .replace(/</g, '&lt;')
239
+ .replace(/>/g, '&gt;')
240
+ .replace(/"/g, '&quot;');
241
+ }
242
+ function renderActivityLogXml(log) {
243
+ if (log.lookback === 0)
244
+ return '';
245
+ if (!log.entries.length && log.totalEntries === 0)
246
+ return '';
247
+ const lines = [];
248
+ lines.push(`<activity_log thread_id="${xmlEscape(log.threadId)}" agent_id="${xmlEscape(log.agentId)}" lookback="${log.lookback}">`);
249
+ if (!log.entries.length) {
250
+ lines.push(' <!-- no reusable read-only results found in previous tasks -->');
251
+ }
252
+ else {
253
+ lines.push(' <!-- read-only results from previous tasks — use these; do not re-run unless marked stale -->');
254
+ for (const e of log.entries) {
255
+ const toolAttr = `tool="${xmlEscape(e.tool)}"`;
256
+ const cmdAttr = e.cmd ? ` cmd="${xmlEscape(e.cmd)}"` : '';
257
+ const reusedAttr = e.status === 'stale' ? ' reused="stale"' : ' reused="ok"';
258
+ if (e.status === 'stale') {
259
+ lines.push(` <entry ${toolAttr}${cmdAttr}${reusedAttr}>⚠️ changed since — re-read</entry>`);
260
+ }
261
+ else if (e.result) {
262
+ lines.push(` <entry ${toolAttr}${cmdAttr}${reusedAttr}>`);
263
+ lines.push(xmlEscape(e.result));
264
+ lines.push(` </entry>`);
265
+ }
266
+ else {
267
+ lines.push(` <entry ${toolAttr}${cmdAttr}${reusedAttr} />`);
268
+ }
269
+ }
270
+ if (log.truncated) {
271
+ const omitted = log.totalEntries - log.entries.length;
272
+ lines.push(` <!-- ${omitted} more entries omitted — token budget reached (${log.budgetUsed} chars used) -->`);
273
+ }
274
+ }
275
+ lines.push('</activity_log>');
276
+ return lines.join('\n');
277
+ }
278
+ function buildCalFooter(actions) {
279
+ if (!actions.length)
280
+ return '';
281
+ const out = [];
282
+ out.push('\n━━━ Next Actions ━━━');
283
+ for (const a of actions) {
284
+ out.push(`${a.label}:`);
285
+ out.push(` ${a.cmd}`);
286
+ }
145
287
  return out.join('\n');
146
288
  }
147
289
  //# sourceMappingURL=renderer.js.map