@ob1-sg/horizon 0.1.11 → 0.1.12

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyCA,OAAO,iBAAiB,CAAC;AACzB,OAAO,gBAAgB,CAAC;AAwjBxB,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAiI1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0CA,OAAO,iBAAiB,CAAC;AACzB,OAAO,gBAAgB,CAAC;AAqkBxB,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqI1C"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ import { isRunningOnGcp, stopGcpInstance } from './lib/gcp.js';
12
12
  import { checkForUncompletedTickets } from './lib/linear-quick-check.js';
13
13
  import { getVersion } from './lib/version.js';
14
14
  import { checkForUpdates, displayUpdateNotification } from './lib/update-checker.js';
15
+ import { box, BOLD, CYAN, YELLOW, RESET } from './lib/ui.js';
15
16
  import { ensureHorizonDir, ensureHorizonDocsDir, ensureGitignore, loadExistingConfig, saveEnvConfig, saveMcpConfig, copyPromptsToProject, checkAndDisplayCliAvailability, autoSelectProvider, validateLinearKey, fetchLinearTeams, checkLinearStatuses, createLinearStatuses, checkCodexLinearMcp, createPromptInterface, promptSecret, promptSelect, } from './lib/setup.js';
16
17
  // Import providers to register them
17
18
  import './lib/claude.js';
@@ -45,22 +46,12 @@ async function runLoop(podName, iteration) {
45
46
  initLoopLogger(podName, iteration);
46
47
  // Initialize stats tracking for this loop iteration
47
48
  initLoopStats(podName, iteration);
48
- console.log(`\n${'='.repeat(24)} LOOP ${iteration} ${'='.repeat(24)}`);
49
- console.log(`Pod: ${podName}`);
50
- console.log(`Provider: ${config.provider}`);
51
- if (config.provider === 'codex') {
52
- console.log(`Codex Model: ${config.codexModel}`);
53
- console.log(`Agent Reasoning: A1=${config.codexAgentReasoning.agent1}, A2=${config.codexAgentReasoning.agent2}, A3=${config.codexAgentReasoning.agent3}`);
54
- }
55
- else {
56
- console.log(`Claude Model: ${config.claudeModel}`);
57
- }
58
- console.log(`Output Dir: ${getCurrentOutputDir()}\n`);
49
+ console.log('\n' + box([` Log Directory: ${getCurrentOutputDir()} `], { title: `Loop ${iteration}`, color: CYAN, width: 60 }));
59
50
  const loopStart = Date.now();
60
51
  // ═══════════════════════════════════════════════════════════════════════════
61
52
  // AGENT 1: Linear Reader (uses configured provider)
62
53
  // ═══════════════════════════════════════════════════════════════════════════
63
- console.log('Agent 1: Linear Reader starting...');
54
+ console.log(`\n${BOLD}▸ Agent 1: Linear Reader${RESET}`);
64
55
  const agent1Provider = createProvider(config.provider);
65
56
  const agent1BasePrompt = await loadPrompt('agent1-linear-reader');
66
57
  const agent1Prompt = `## Agent Instance
@@ -111,7 +102,27 @@ ${agent1BasePrompt}`;
111
102
  const agent1Output = agent1Result.finalOutput;
112
103
  // Check if there's no work (look for the signal in the output)
113
104
  if (agent1Output.includes('no_work: true') || agent1Output.includes('NO_WORK')) {
114
- console.log('No work available.');
105
+ // Extract reason from agent output (format: "NO_WORK\n\nReason: ...")
106
+ const reasonMatch = agent1Output.match(/Reason:\s*([\s\S]*)/i);
107
+ const reason = reasonMatch?.[1]?.trim() || 'No actionable issues found.';
108
+ // Wrap reason text to fit box width, then display
109
+ const boxWidth = 64;
110
+ const innerWidth = boxWidth - 4; // borders + padding
111
+ const words = reason.split(/\s+/);
112
+ const wrappedLines = [];
113
+ let currentLine = '';
114
+ for (const word of words) {
115
+ if (currentLine && (currentLine.length + 1 + word.length) > innerWidth) {
116
+ wrappedLines.push(` ${currentLine}`);
117
+ currentLine = word;
118
+ }
119
+ else {
120
+ currentLine = currentLine ? `${currentLine} ${word}` : word;
121
+ }
122
+ }
123
+ if (currentLine)
124
+ wrappedLines.push(` ${currentLine}`);
125
+ console.log('\n' + box([` ${YELLOW}Create tickets in Linear to give Horizon work.${RESET}`, '', ...wrappedLines], { title: 'No Work', color: YELLOW, width: boxWidth }));
115
126
  // If GCP auto-stop is enabled, check if we're on GCP and stop the instance
116
127
  if (config.gcpAutoStop) {
117
128
  console.log('GCP auto-stop is enabled. Checking if running on GCP...');
@@ -205,7 +216,7 @@ ${agent1BasePrompt}`;
205
216
  // ═══════════════════════════════════════════════════════════════════════════
206
217
  // AGENT 2: Worker (uses configured provider - Claude or Codex)
207
218
  // ═══════════════════════════════════════════════════════════════════════════
208
- console.log('\nAgent 2: Worker starting...');
219
+ console.log(`\n${BOLD}▸ Agent 2: Worker${RESET}`);
209
220
  // Use configured provider for Agent 2
210
221
  const agent2Provider = createProvider(config.provider);
211
222
  // Build attachment context section if we have downloaded files
@@ -280,7 +291,7 @@ ${workerBasePrompt}`;
280
291
  // ═══════════════════════════════════════════════════════════════════════════
281
292
  // AGENT 3: Linear Writer (uses configured provider)
282
293
  // ═══════════════════════════════════════════════════════════════════════════
283
- console.log('\nAgent 3: Linear Writer starting...');
294
+ console.log(`\n${BOLD}▸ Agent 3: Linear Writer${RESET}`);
284
295
  const agent3Provider = createProvider(config.provider);
285
296
  const writerBasePrompt = await loadPrompt('agent3-linear-writer');
286
297
  // Format cost strings with estimated marker for Codex
@@ -393,7 +404,7 @@ function displayBanner() {
393
404
  ██║ ██║╚██████╔╝██║ ██║██║███████╗╚██████╔╝██║ ╚████║
394
405
  ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝
395
406
 
396
- Autonomous Product Development System ⚡ v${version}
407
+ Complete Linear Tickets with Long-Running Agents ⚡ v${version}
397
408
  ════════════════════════════════════════════════════════════════`;
398
409
  console.log(banner);
399
410
  }
@@ -401,21 +412,17 @@ function displayBanner() {
401
412
  * Displays a safety warning about AI coding agents.
402
413
  */
403
414
  function displaySafetyWarning() {
404
- console.log(`
405
- ┌─────────────────────────────────────────────────────────────────┐
406
- ⚠️ SAFETY WARNING │
407
- ├─────────────────────────────────────────────────────────────────┤
408
- Horizon uses AI coding agents (Claude Code, Codex) that are │
409
- granted permissions to read, write, and execute code. │
410
- │ │
411
- │ • Coding agents may make mistakes │
412
- They may take actions that could be harmful to your system
413
- Always review changes before merging to production │
414
- │ │
415
- │ We recommend running Horizon in a sandboxed environment or │
416
- │ virtual machine for added safety. │
417
- └─────────────────────────────────────────────────────────────────┘
418
- `);
415
+ console.log('\n' + box([
416
+ ' Horizon uses AI coding agents (Claude Code, Codex) that are ',
417
+ ' granted permissions to read, write, and execute code. ',
418
+ ' ',
419
+ ' * Coding agents may make mistakes ',
420
+ ' * They may take actions that could be harmful to your system ',
421
+ ' * Always review changes before merging to production ',
422
+ ' ',
423
+ ' We recommend running Horizon in a sandboxed environment or ',
424
+ ' virtual machine for added safety. ',
425
+ ], { title: 'Safety Warning', width: 65 }) + '\n');
419
426
  }
420
427
  /**
421
428
  * Runs minimal first-run setup if credentials are missing.
@@ -538,7 +545,7 @@ export async function main() {
538
545
  process.exit(1);
539
546
  }
540
547
  // Sync prompts from package to .horizon/prompts/ (ensures they're always up-to-date)
541
- copyPromptsToProject();
548
+ const promptSync = copyPromptsToProject();
542
549
  let config = getConfig();
543
550
  // Check if Linear credentials are configured
544
551
  if (!config.linearApiKey || !config.linearTeamId) {
@@ -551,29 +558,9 @@ export async function main() {
551
558
  // Reload config after setup (rebuild from updated process.env)
552
559
  config = getConfig(true);
553
560
  }
554
- // Display config summary
555
- console.log(` Working directory: ${config.workingDirectory}`);
556
- console.log(` Branch: ${getCurrentBranch()}`);
557
- console.log(` Provider: ${config.provider}`);
558
- if (config.provider === 'codex') {
559
- console.log(` Codex Model: ${config.codexModel}`);
560
- console.log(` Reasoning Effort (default): ${config.codexReasoningEffort}`);
561
- console.log(` Agent Reasoning: A1=${config.codexAgentReasoning.agent1}, A2=${config.codexAgentReasoning.agent2}, A3=${config.codexAgentReasoning.agent3}`);
562
- }
563
- else {
564
- console.log(` Claude Model: ${config.claudeModel}`);
565
- }
566
- if (config.maxIterations > 0) {
567
- console.log(` Max Iterations: ${config.maxIterations}`);
568
- }
569
- if (config.gcpAutoStop) {
570
- console.log(` GCP Auto-Stop: enabled`);
571
- }
572
- console.log(` Merge Mode: ${config.mergeMode}`);
573
561
  // Check if ∞ statuses exist in Linear, create if needed
574
562
  const statusesExist = await checkLinearStatuses(config.linearApiKey, config.linearTeamId);
575
563
  if (!statusesExist) {
576
- console.log('\n Creating ∞ workflow statuses in Linear...');
577
564
  const result = await createLinearStatuses(config.linearApiKey, config.linearTeamId);
578
565
  if (!result.success) {
579
566
  console.log('\n❌ Failed to create ∞ statuses. Please check Linear permissions.');
@@ -582,16 +569,7 @@ export async function main() {
582
569
  }
583
570
  process.exit(1);
584
571
  }
585
- // Show status creation summary
586
- if (result.created.length > 0) {
587
- console.log(` Created ${result.created.length} status(es)`);
588
- }
589
- if (result.existing.length > 0) {
590
- console.log(` Found ${result.existing.length} existing status(es)`);
591
- }
592
572
  }
593
- console.log(' Linear Team: ' + config.linearTeamId);
594
- console.log(' ∞ Statuses: ✓ configured');
595
573
  // Check Codex Linear MCP if using Codex provider
596
574
  if (config.provider === 'codex') {
597
575
  const hasLinearMcp = checkCodexLinearMcp();
@@ -600,11 +578,39 @@ export async function main() {
600
578
  console.log(' Run: horizon config');
601
579
  process.exit(1);
602
580
  }
603
- console.log(' Codex Linear MCP: ✓ configured');
604
581
  }
605
582
  // Generate pod name once at startup - persists for entire Horizon session
606
583
  const podName = generatePodName();
607
- console.log(` Pod: ${podName}`);
584
+ // Build provider display string
585
+ const providerDisplay = config.provider === 'codex'
586
+ ? `Codex (${config.codexModel})`
587
+ : `Claude (${config.claudeModel.charAt(0).toUpperCase() + config.claudeModel.slice(1)})`;
588
+ // Build CLI availability display
589
+ const cliParts = [];
590
+ if (cliAvailability.claude)
591
+ cliParts.push('Claude ✓');
592
+ if (cliAvailability.codex)
593
+ cliParts.push('Codex ✓');
594
+ // Build init box lines
595
+ const detectionLines = [
596
+ ` CLIs Available ${cliParts.join(' ')} `,
597
+ ` Agent Prompts ${promptSync.copied} files synced `,
598
+ ];
599
+ const configLines = [
600
+ ` Working Directory ${config.workingDirectory} `,
601
+ ` Agent Branch ${getCurrentBranch()} `,
602
+ ` Provider ${providerDisplay} `,
603
+ ` Merge Mode ${promptSync.mergeMode} `,
604
+ ` Linear Team ${config.linearTeamId} ∞ prefixed statuses `,
605
+ ` Current Pod ${podName} `,
606
+ ];
607
+ if (config.maxIterations > 0) {
608
+ configLines.push(` Max Iterations ${config.maxIterations} `);
609
+ }
610
+ if (config.gcpAutoStop) {
611
+ configLines.push(` GCP Auto-Stop enabled `);
612
+ }
613
+ console.log('\n' + box([...detectionLines, ...configLines], { title: 'Horizon', width: 60, dividerAfter: [detectionLines.length - 1] }));
608
614
  let iteration = 0;
609
615
  while (config.maxIterations === 0 || iteration < config.maxIterations) {
610
616
  try {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAe,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAwB,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,gCAAgC,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAO,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,YAAY,GAMb,MAAM,gBAAgB,CAAC;AAGxB,oCAAoC;AACpC,OAAO,iBAAiB,CAAC;AACzB,OAAO,gBAAgB,CAAC;AAExB;;;GAGG;AACH,SAAS,sBAAsB,CAAC,YAAoB;IAClD,yCAAyC;IACzC,MAAM,QAAQ,GAAG;QACf,qCAAqC;QACrC,2CAA2C;QAC3C,mEAAmE;QACnE,6BAA6B;QAC7B,kCAAkC;QAClC,kBAAkB,EAAG,oCAAoC;KAC1D,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,SAAiB;IACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,mDAAmD;IACnD,6DAA6D;IAC7D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,oDAAoD;IACpD,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAElC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CACpB,CAAC,oBAAoB,mBAAmB,EAAE,IAAI,CAAC,EAC/C,EAAE,KAAK,EAAE,QAAQ,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CACvD,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,8EAA8E;IAC9E,oDAAoD;IACpD,8EAA8E;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,2BAA2B,KAAK,EAAE,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG;;yBAEE,OAAO,aAAa,SAAS;;;kBAGpC,OAAO;qBACJ,SAAS;;;;;gBAKd,MAAM,CAAC,YAAY;;;;;;EAMjC,gBAAgB,EAAE,CAAC;IAEnB,iCAAiC;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7E,wDAAwD;IACxD,MAAM,WAAW,GAAyB,EAAE,UAAU,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAErF,gCAAgC;IAChC,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,WAAW;QAClB,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC7F,EAAE,CAAC,CAAC,EACL,WAAW,EACX,yBAAyB,CAC1B,CAAC;IAEF,+DAA+D;IAC/D,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,MAAM,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE;QACnD,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,MAAM,EAAE,YAAY,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC;IAE9C,+DAA+D;IAC/D,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/E,sEAAsE;QACtE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,6BAA6B,CAAC;QAEzE,kDAAkD;QAClD,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,oBAAoB;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;gBACvE,YAAY,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;gBACtC,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,IAAI,WAAW;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;QAEvD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CACpB,CAAC,KAAK,MAAM,iDAAiD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC,EAC1F,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CACrD,CAAC,CAAC;QAEH,2EAA2E;QAC3E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;gBACxC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;oBACxE,4CAA4C;oBAC5C,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,MAAM,mBAAmB,GAAG,MAAM,CAAC,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;QACxE,MAAM,oBAAoB,GAAG,MAAM,CAAC,yBAAyB,GAAG,EAAE,GAAG,IAAI,CAAC;QAC1E,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,mBAAmB;QAEnD,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,yBAAyB,aAAa,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAElC,2BAA2B;YAC3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;YACtD,MAAM,WAAW,GAAG,kBAAkB,IAAI,mBAAmB,CAAC;YAE9D,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;gBACtF,OAAO,CAAC,oCAAoC;YAC9C,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;gBAClF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAE1F,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,KAAK,4BAA4B,CAAC,CAAC;gBAC9E,OAAO,CAAC,gCAAgC;YAC1C,CAAC;YAED,gCAAgC;YAChC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;YAChC,MAAM,SAAS,GAAG,yBAAyB,YAAY,CAAC,SAAS,UAAU,YAAY,CAAC,OAAO,iBAAiB,YAAY,CAAC,SAAS,UAAU,YAAY,CAAC,OAAO,aAAa,YAAY,CAAC,QAAQ,WAAW,CAAC;YAClN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,WAAW,iDAAiD,CAAC,CAAC;gBACxG,OAAO,CAAC,2BAA2B;YACrC,CAAC;YAED,4CAA4C;YAC5C,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,KAAK,CAAC,CAAC;YAC5F,OAAO,CAAC,GAAG,CAAC,6DAA6D,MAAM,CAAC,yBAAyB,2BAA2B,oBAAoB,YAAY,CAAC,CAAC;QACxK,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,gFAAgF;IAChF,8EAA8E;IAC9E,IAAI,eAAe,GAAa,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAE7D,IAAI,eAAe,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,2DAA2D;YAC3D,4FAA4F;YAC5F,MAAM,YAAY,GAAG,gCAAgC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACjF,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;YAElF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,iEAAiE;gBACjE,MAAM,WAAW,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;oBACjG,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,cAAc,eAAe,CAAC,MAAM,gBAAgB,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,+DAA+D;IAC/D,8EAA8E;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,oBAAoB,KAAK,EAAE,CAAC,CAAC;IAElD,sCAAsC;IACtC,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvD,+DAA+D;IAC/D,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;QAClD,CAAC,CAAC;;;;;;EAMJ,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE9C;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,yEAAyE;IACzE,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG;;yBAEE,OAAO,aAAa,SAAS;;;kBAGpC,OAAO;qBACJ,SAAS;;;;;gBAKd,MAAM,CAAC,YAAY;;;;;;;;EAQjC,YAAY;EACZ,iBAAiB;;;EAGjB,gBAAgB,EAAE,CAAC;IAEnB,gCAAgC;IAChC,IAAI,YAA4B,CAAC;IACjC,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,YAAY,GAAG,MAAM,yBAAyB,CAC5C,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;YACzB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,eAAe,EAAE,MAAM,CAAC,oBAAoB;SAC7C,EAAE,CAAC,CAAC,EACL,WAAW,EACX,kBAAkB,CACnB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,MAAM,yBAAyB,CAC5C,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;YACzB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,MAAM,CAAC,WAAW;SAC1B,EAAE,CAAC,CAAC,EACL,WAAW,EACX,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;IACpG,CAAC;IAED,oBAAoB;IACpB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IACzF,MAAM,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE;QACnD,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,MAAM,EAAE,YAAY,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC;IAE9C,8EAA8E;IAC9E,oDAAoD;IACpD,8EAA8E;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,2BAA2B,KAAK,EAAE,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAElE,sDAAsD;IACtD,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa;QAC9C,CAAC,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;QACjD,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa;QAC9C,CAAC,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;QACjD,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvC,MAAM,YAAY,GAAG;;yBAEE,OAAO,aAAa,SAAS;;;kBAGpC,OAAO;qBACJ,SAAS;;;uCAGS,OAAO;;;;gBAI9B,MAAM,CAAC,YAAY;;;;;;;;EAQjC,YAAY;;;;;;EAMZ,YAAY;;;;;;SAML,OAAO;UACN,SAAS;;;cAGL,MAAM,CAAC,QAAQ;WAClB,WAAW;UACZ,aAAa;cACT,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;eACvC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE;;;cAGhK,MAAM,CAAC,QAAQ;WAClB,WAAW;UACZ,aAAa;cACT,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;eACvC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE;eAC/J,YAAY,CAAC,QAAQ;kBAClB,YAAY,CAAC,WAAW;;;iBAGzB,CAAC,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;oBAC1I,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;qBACjE,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE;;;;EAI1R,gBAAgB,EAAE,CAAC;IAEnB,gCAAgC;IAChC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/E,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,WAAW;QAClB,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC7F,EAAE,CAAC,CAAC,EACL,WAAW,EACX,yBAAyB,CAC1B,CAAC;IAEF,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB;IACpB,MAAM,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE;QACnD,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,MAAM,EAAE,YAAY,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,iBAAiB,EAAE,CAAC;IAE1B,aAAa;IACb,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,QAAQ,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,gBAAgB,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa;IACpB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG;;;;;;;;8DAQ6C,OAAO;iEACJ,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QACrB,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;KAClE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,eAAgC;IAC7D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE1D,MAAM,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAC;QAE5C,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEzB,yBAAyB;QACzB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,MAAM,WAAW,GAA2B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/D,KAAK,EAAE,IAAI,CAAC,GAAG;gBACf,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG;aACpC,CAAC,CAAC,CAAC;YAEJ,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;QAClD,CAAC;QAED,iDAAiD;QACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,IAAI,CAAC,CAAC;QAE7C,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,gBAAgB,GAA8B;YAClD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,0DAA0D,EAAE;YACzG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE;YACzE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;SAClE,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAE9D,qBAAqB;QACrB,MAAM,SAAS,GAAiB;YAC9B,YAAY,EAAE,MAAM;YACpB,aAAa,EAAE,OAAO;YACtB,QAAQ;YACR,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,MAAM;YACjD,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,SAAS;YAClD,oBAAoB,EAAE,cAAc,CAAC,oBAAoB,IAAI,MAAM;YACnE,aAAa,EAAE,cAAc,CAAC,aAAa,IAAI,CAAC;YAChD,SAAS;SACV,CAAC;QAEF,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,aAAa,CAAC,MAAM,CAAC,CAAC;QACtB,eAAe,EAAE,CAAC;QAElB,mDAAmD;QACnD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,aAAa,EAAE,CAAC;IAChB,oBAAoB,EAAE,CAAC;IAEvB,wDAAwD;IACxD,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,yBAAyB,CAAC,YAAY,CAAC,CAAC;IAExC,wDAAwD;IACxD,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oCAAoC;IACpC,gBAAgB,EAAE,CAAC;IACnB,oBAAoB,EAAE,CAAC;IACvB,eAAe,EAAE,CAAC;IAElB,qEAAqE;IACrE,MAAM,eAAe,GAAG,8BAA8B,EAAE,CAAC;IACzD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,oEAAoE;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qFAAqF;IACrF,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAE1C,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;IAEzB,6CAA6C;IAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+DAA+D;QAC/D,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,wDAAwD;IACxD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,YAAa,EAAE,MAAM,CAAC,YAAa,CAAC,CAAC;IAC5F,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,YAAa,EAAE,MAAM,CAAC,YAAa,CAAC,CAAC;QAEtF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;YACjF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,gCAAgC;IAChC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO;QACjD,CAAC,CAAC,UAAU,MAAM,CAAC,UAAU,GAAG;QAChC,CAAC,CAAC,WAAW,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAE3F,iCAAiC;IACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,eAAe,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,eAAe,CAAC,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEpD,uBAAuB;IACvB,MAAM,cAAc,GAAG;QACrB,uBAAuB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAC9C,uBAAuB,UAAU,CAAC,MAAM,iBAAiB;KAC1D,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,uBAAuB,MAAM,CAAC,gBAAgB,IAAI;QAClD,uBAAuB,gBAAgB,EAAE,IAAI;QAC7C,uBAAuB,eAAe,IAAI;QAC1C,uBAAuB,UAAU,CAAC,SAAS,IAAI;QAC/C,uBAAuB,MAAM,CAAC,YAAY,wBAAwB;QAClE,uBAAuB,OAAO,IAAI;KACnC,CAAC;IAEF,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CACpB,CAAC,GAAG,cAAc,EAAE,GAAG,WAAW,CAAC,EACnC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAC3E,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,OAAO,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAClC,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,SAAS,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,iBAAiB,4BAA4B,CAAC,CAAC;YAC9E,MAAM,KAAK,CAAC,MAAM,CAAC,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,mEAAmE;AACnE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/lib/claude.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAIvE,OAAO,EAAE,WAAW,EAA2D,MAAM,eAAe,CAAC;AAmLrG,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmIrG;AAGD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAgC/D;AAqDD,wBAAgB,oBAAoB,IAAI,WAAW,CAElD"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/lib/claude.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAIvE,OAAO,EAAE,WAAW,EAA2D,MAAM,eAAe,CAAC;AA8RrG,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiIrG;AAGD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAgC/D;AAqDD,wBAAgB,oBAAoB,IAAI,WAAW,CAElD"}
@@ -5,14 +5,20 @@ import { parseRateLimitReset, isRateLimitError } from './rate-limit.js';
5
5
  import { getConfig, getRepoRoot } from '../config.js';
6
6
  import { logAgentOutput, logTerminalOutput } from './output-logger.js';
7
7
  import { registerClaudeProvider } from './provider.js';
8
- // ANSI color codes
9
- const BOLD = '\x1b[1m';
10
- const DIM = '\x1b[2m';
11
- const YELLOW = '\x1b[33m';
12
- const GREEN = '\x1b[32m';
13
- const RESET = '\x1b[0m';
8
+ import { BOLD, DIM, YELLOW, GREEN, BLUE, RESET, box, renderMarkdown } from './ui.js';
14
9
  // Track subagent ID -> description mapping
15
10
  const subagentMap = new Map();
11
+ // Track the last main-agent tool_use ID for correlating tool results
12
+ let lastMainToolUseId = null;
13
+ // MCP tool call collapsing state
14
+ let mcpConsecutiveCount = 0;
15
+ const MCP_SHOW_LIMIT = 3;
16
+ // Dimmed compact format for MCP calls beyond the show limit
17
+ function formatMcpCompact(name, input) {
18
+ const short = name.replace(/^mcp__/, '').replace(/__/, ':');
19
+ const sig = input ? formatToolSignature(short, input) : short;
20
+ return `${DIM} ○ ${sig}${RESET}`;
21
+ }
16
22
  // Helper: Extract short model name
17
23
  function modelName(model) {
18
24
  if (!model)
@@ -58,26 +64,101 @@ function extractToolValue(input) {
58
64
  function formatNumber(num) {
59
65
  return num.toLocaleString();
60
66
  }
67
+ // Truncate string to max length
68
+ function truncate(str, maxLen = 120) {
69
+ if (str.length <= maxLen)
70
+ return str;
71
+ return str.substring(0, maxLen) + '...';
72
+ }
73
+ // Format tool calls as function signatures: Read(file_path="src/file.ts", offset=1)
74
+ function formatToolSignature(name, input) {
75
+ const params = Object.entries(input)
76
+ .filter(([, v]) => v !== undefined && v !== null)
77
+ .map(([k, v]) => {
78
+ if (typeof v === 'string')
79
+ return `${k}="${truncate(cleanPath(v), 60)}"`;
80
+ if (typeof v === 'object')
81
+ return `${k}={...}`;
82
+ return `${k}=${v}`;
83
+ })
84
+ .join(', ');
85
+ return `${name}(${truncate(params, 120)})`;
86
+ }
87
+ // Format tool results with tree connector, capped at 3 lines
88
+ function formatToolResult(toolUseResult) {
89
+ let text = '';
90
+ if (toolUseResult.file && typeof toolUseResult.file.content === 'string') {
91
+ text = toolUseResult.file.content;
92
+ }
93
+ else if (typeof toolUseResult.stdout === 'string') {
94
+ text = toolUseResult.stdout;
95
+ }
96
+ else if (typeof toolUseResult.content === 'string') {
97
+ text = toolUseResult.content;
98
+ }
99
+ if (!text.trim())
100
+ return null;
101
+ const lines = text.split('\n').filter(l => l.trim());
102
+ const preview = lines.slice(0, 3);
103
+ const more = lines.length > 3;
104
+ return preview.map((line, i) => {
105
+ const prefix = i === 0 ? '└ ' : ' ';
106
+ return `${DIM} ${prefix}${truncate(line, 100)}${RESET}`;
107
+ }).join('\n') + (more ? `\n${DIM} ...${RESET}` : '');
108
+ }
61
109
  // Process a single JSON line and return formatted output
62
110
  function processJsonLine(json) {
63
111
  // System init
64
112
  if (json.type === 'system' && json.subtype === 'init') {
65
113
  const tools = Array.isArray(json.tools) ? json.tools.length : 0;
66
- return `${BOLD}\n🚀 SESSION START\n Model: ${json.model}\n Tools: ${tools} available${RESET}`;
114
+ return '\n' + box([` Model: ${json.model} | Tools: ${tools} available `], { title: 'SESSION START', color: BLUE, width: 60 });
67
115
  }
68
116
  // System status
69
117
  if (json.type === 'system' && json.subtype === 'status') {
70
- return `${DIM}${String(json.status).toUpperCase()}...${RESET}`;
118
+ return `${BLUE}${DIM}≡ Working...${RESET}`;
71
119
  }
72
120
  // Context compaction
73
121
  if (json.type === 'system' && json.subtype === 'compact_boundary') {
74
122
  const metadata = json.compact_metadata;
75
123
  const preTokens = metadata?.pre_tokens ? Math.floor(metadata.pre_tokens / 1000) : '?';
76
- return `${DIM}📦 Context compacted (was ${preTokens}k tokens)${RESET}`;
124
+ return `${DIM}~ Context compacted (was ${preTokens}k tokens)${RESET}`;
77
125
  }
78
126
  // Task notification
79
127
  if (json.type === 'system' && json.subtype === 'task_notification') {
80
- return `${GREEN} DONE: ${json.summary}${RESET}`;
128
+ return `${GREEN} Done: ${json.summary}${RESET}`;
129
+ }
130
+ // Tool results (type: "user" with tool_use_result)
131
+ if (json.type === 'user') {
132
+ const message = json.message;
133
+ const content = message?.content;
134
+ if (Array.isArray(content)) {
135
+ const lines = [];
136
+ for (const item of content) {
137
+ if (item.type === 'tool_result' && item.tool_use_id === lastMainToolUseId) {
138
+ const resultContent = item.content;
139
+ if (item.is_error && typeof resultContent === 'string') {
140
+ lines.push(`${YELLOW} └ Error: ${truncate(resultContent, 100)}${RESET}`);
141
+ }
142
+ else if (Array.isArray(resultContent)) {
143
+ // tool_result content can be an array of content blocks
144
+ for (const block of resultContent) {
145
+ if (typeof block === 'object' && block !== null) {
146
+ const result = formatToolResult(block);
147
+ if (result)
148
+ lines.push(result);
149
+ }
150
+ }
151
+ }
152
+ else if (typeof resultContent === 'object' && resultContent !== null) {
153
+ const result = formatToolResult(resultContent);
154
+ if (result)
155
+ lines.push(result);
156
+ }
157
+ }
158
+ }
159
+ return lines.length > 0 ? lines.join('\n') : null;
160
+ }
161
+ return null;
81
162
  }
82
163
  // Result (session end)
83
164
  if (json.type === 'result') {
@@ -103,12 +184,12 @@ function processJsonLine(json) {
103
184
  const durationSec = Math.floor((json.duration_ms || 0) / 1000);
104
185
  const totalCost = (json.total_cost_usd || 0).toFixed(2);
105
186
  const numTurns = json.num_turns || 0;
106
- return `${BOLD}\n📊 SESSION END
107
- Duration: ${durationSec}s
108
- Cost: $${totalCost}
109
- Turns: ${numTurns}
110
- ${modelBreakdown.join('\n ')}
111
- TOTAL: in=${formatNumber(totalIn)} out=${formatNumber(totalOut)} cache_read=${formatNumber(totalCacheRead)} cache_write=${formatNumber(totalCacheWrite)}${RESET}`;
187
+ const endLines = [
188
+ ` Duration: ${durationSec}s | Cost: $${totalCost} | Turns: ${numTurns} `,
189
+ ...modelBreakdown.map(l => ` ${l} `),
190
+ ` TOTAL: in=${formatNumber(totalIn)} out=${formatNumber(totalOut)} cache_read=${formatNumber(totalCacheRead)} cache_write=${formatNumber(totalCacheWrite)} `,
191
+ ];
192
+ return '\n' + box(endLines, { title: 'SESSION END', color: BLUE, width: 80, dividerAfter: [0] });
112
193
  }
113
194
  // Assistant messages
114
195
  if (json.type === 'assistant') {
@@ -117,39 +198,61 @@ function processJsonLine(json) {
117
198
  const pct = message?.usage ? contextPct(message.usage) : 0;
118
199
  const parentId = json.parent_tool_use_id;
119
200
  const content = message?.content || [];
201
+ const tag = `${DIM}[${model}/${pct}%]${RESET}`;
202
+ // Detect if all tool_use items at top level are MCP calls
203
+ const toolUseItems = content.filter(i => i.type === 'tool_use' && parentId === null);
204
+ const allMcp = toolUseItems.length > 0 && toolUseItems.every(i => (i.name || '').startsWith('mcp__'));
205
+ if (allMcp) {
206
+ mcpConsecutiveCount++;
207
+ if (mcpConsecutiveCount > MCP_SHOW_LIMIT) {
208
+ // Show dimmed compact line instead of full green-dot format
209
+ const compactLines = toolUseItems.map(i => formatMcpCompact(i.name || 'unknown', i.input || {}));
210
+ return compactLines.join('\n');
211
+ }
212
+ }
120
213
  const lines = [];
214
+ // Reset MCP count when a non-MCP message arrives
215
+ if (!allMcp) {
216
+ mcpConsecutiveCount = 0;
217
+ }
121
218
  for (const item of content) {
122
219
  if (item.name === 'Task') {
123
220
  // Main agent spawning a subagent
124
221
  const input = item.input;
125
222
  const desc = input?.description || 'unknown';
126
- const agentType = input?.subagent_type || 'unknown';
127
223
  // Store mapping for later
128
224
  if (item.id) {
129
225
  subagentMap.set(item.id, desc);
130
226
  }
131
- lines.push(`${YELLOW}\n🤖 [${model}/main/${pct}%] SPAWN: ${desc}\n Agent: ${agentType}${RESET}`);
227
+ lines.push(`${YELLOW} Spawn: ${desc} ${tag}${RESET}`);
132
228
  }
133
229
  else if (item.name === 'TaskOutput') {
134
- // Skip TaskOutput messages
135
230
  continue;
136
231
  }
137
232
  else if (item.type === 'tool_use') {
138
- const value = item.input ? extractToolValue(item.input) : '';
139
233
  if (parentId === null) {
140
- // Main agent tool call
141
- lines.push(`${DIM}🔧 [${model}/main/${pct}%] ${item.name}: ${value}${RESET}`);
234
+ // Main agent tool call - green dot + function signature
235
+ const sig = item.input ? formatToolSignature(item.name || 'unknown', item.input) : (item.name || 'unknown');
236
+ lines.push(`${GREEN}${BOLD}●${RESET} ${sig} ${tag}`);
237
+ // Track for tool result correlation
238
+ if (item.id)
239
+ lastMainToolUseId = item.id;
142
240
  }
143
241
  else {
144
- // Subagent tool call - resolve parent ID to description
242
+ // Subagent tool call - indented with arrow
145
243
  const parentDesc = subagentMap.get(parentId) || parentId;
146
- lines.push(`${DIM} [${model}/${parentDesc}] ${item.name}: ${value}${RESET}`);
244
+ const value = item.input ? extractToolValue(item.input) : '';
245
+ lines.push(`${DIM} ${parentDesc} ▸ ${item.name}: ${value}${RESET}`);
147
246
  }
148
247
  }
248
+ else if (item.type === 'thinking') {
249
+ // Thinking indicator
250
+ lines.push(`${DIM}* Thinking...${RESET}`);
251
+ }
149
252
  else if (item.type === 'text' && item.text) {
150
253
  if (parentId === null) {
151
- // Main agent text - show full text
152
- lines.push(`💬 [${model}/main/${pct}%] ${item.text}`);
254
+ // Main agent text - clean without emoji prefix
255
+ lines.push(`${renderMarkdown(item.text)} ${tag}`);
153
256
  }
154
257
  // Skip subagent text to reduce noise
155
258
  }
@@ -160,8 +263,10 @@ function processJsonLine(json) {
160
263
  }
161
264
  // Legacy function for backwards compatibility
162
265
  export async function spawnClaude(options, agentNumber) {
163
- // Clear subagent map for new session
266
+ // Clear state for new session
164
267
  subagentMap.clear();
268
+ lastMainToolUseId = null;
269
+ mcpConsecutiveCount = 0;
165
270
  return new Promise((resolve, reject) => {
166
271
  const config = getConfig();
167
272
  const args = [
@@ -180,14 +285,10 @@ export async function spawnClaude(options, agentNumber) {
180
285
  if (options.allowedTools && options.allowedTools.length > 0) {
181
286
  args.push('--allowedTools', options.allowedTools.join(','));
182
287
  }
183
- const spawnMsg = `${BOLD}Spawning: claude ${args.join(' ')}${RESET}`;
184
- const cwdMsg = `${DIM} Working directory: ${config.workingDirectory}${RESET}`;
288
+ const spawnMsg = `${DIM} spawning claude --model ${options.model} --verbose ...${RESET}`;
185
289
  console.log(spawnMsg);
186
- console.log(cwdMsg);
187
- // Log spawn info to terminal log
188
290
  if (agentNumber !== undefined) {
189
291
  logTerminalOutput(agentNumber, spawnMsg).catch(() => { });
190
- logTerminalOutput(agentNumber, cwdMsg).catch(() => { });
191
292
  }
192
293
  const proc = spawn('claude', args, {
193
294
  stdio: ['pipe', 'pipe', 'pipe'],