matex-cli 1.2.47 → 1.2.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/utils/tui.js CHANGED
@@ -122,44 +122,97 @@ class TUI {
122
122
  * Draw a premium glowing code container (turns cyan)
123
123
  */
124
124
  static drawGlowingContainer(title, language, content) {
125
- const width = Math.min(process.stdout.columns || 80, 100);
126
- const innerWidth = width - 4;
127
- // Premium Cyan Glow
125
+ const width = 76;
126
+ const innerWidth = width - 8;
128
127
  const glow = chalk_1.default.hex('#06b6d4');
129
- const bright = chalk_1.default.hex('#22d3ee');
130
- const dark = chalk_1.default.hex('#164e63');
131
- console.log();
132
- // Top shadow/glow
133
- console.log(dark(` .${'·'.repeat(width - 4)}.`));
134
- // Header
135
- const headerText = ` ${title} [${language}] `;
136
- const headerPad = Math.max(0, innerWidth - headerText.length);
137
- console.log(glow(' ╭─') + bright.bold.bgHex('#083344')(headerText) + glow('─'.repeat(headerPad - 2)) + glow('╮'));
138
- // Content
128
+ const border = chalk_1.default.hex('#164e63');
129
+ const shadow = chalk_1.default.hex('#083344');
130
+ console.log('\n' + shadow(` ┌${'─'.repeat(width - 4)}┐`));
131
+ const header = ` ${title.toUpperCase()} • ${language} `;
132
+ const hPad = Math.max(0, width - 8 - header.length);
133
+ console.log(glow(' │ ') + chalk_1.default.bgHex('#164e63').white.bold(header) + border('─'.repeat(hPad)) + glow(' │'));
139
134
  const lines = content.split('\n');
140
- // Limit display to 20 lines to keep it small/compact
141
- const displayLines = lines.length > 20 ? lines.slice(0, 18) : lines;
135
+ const displayLines = lines.length > 25 ? lines.slice(0, 23) : lines;
142
136
  displayLines.forEach(line => {
143
- // Trim to width
144
- const displayLine = line.length > innerWidth - 2 ? line.substring(0, innerWidth - 5) + '...' : line;
145
- const pad = Math.max(0, innerWidth - 2 - displayLine.length);
146
- console.log(glow(' │ ') + chalk_1.default.white(displayLine) + ' '.repeat(pad) + glow(' │'));
137
+ const displayLine = line.length > innerWidth ? line.substring(0, innerWidth - 3) + '...' : line;
138
+ const pad = Math.max(0, innerWidth - displayLine.length);
139
+ console.log(border(' │ ') + chalk_1.default.white(displayLine) + ' '.repeat(pad) + border(' │'));
147
140
  });
148
- if (lines.length > 20) {
149
- const hiddenText = chalk_1.default.italic.gray(`... ${lines.length - 18} more lines ...`);
150
- const pad = Math.max(0, innerWidth - 2 - (`... ${lines.length - 18} more lines ...`).length);
151
- console.log(glow(' │ ') + hiddenText + ' '.repeat(pad) + glow(' │'));
141
+ if (lines.length > 25) {
142
+ console.log(border(' │ ') + chalk_1.default.italic.gray(`... ${lines.length - 23} more lines ...`).padEnd(innerWidth) + border(' │'));
152
143
  }
153
- // Footer
154
- console.log(glow(' ╰' + '─'.repeat(innerWidth) + '╯'));
155
- console.log(dark(` '${'·'.repeat(width - 4)}'`));
156
- console.log();
144
+ console.log(shadow(` └${'─'.repeat(width - 4)}┘\n`));
145
+ }
146
+ /**
147
+ * Nebula Thinking Box: Starry background effect for deliberation
148
+ */
149
+ static drawThinkingBox(agent, thought) {
150
+ const width = Math.min(process.stdout.columns || 80, 70);
151
+ const innerWidth = width - 10;
152
+ const starColor = chalk_1.default.hex('#6366f1');
153
+ const nebulaColor = chalk_1.default.hex('#a855f7');
154
+ console.log('\n' + starColor(` ✧ . * . ✧ . * . ✧`));
155
+ console.log(nebulaColor(` ╭${'─'.repeat(width - 4)}╮`));
156
+ console.log(nebulaColor(' │ ') + nebulaColor.bold(`[ ${agent} is deliberating... ]`).padEnd(width - 6) + nebulaColor(' │'));
157
+ console.log(nebulaColor(' ├' + '╌'.repeat(width - 4) + '┤'));
158
+ const words = thought.split(' ');
159
+ let currentLine = '';
160
+ words.forEach(word => {
161
+ if ((currentLine + ' ' + word).trim().length <= innerWidth) {
162
+ currentLine = currentLine ? currentLine + ' ' + word : word;
163
+ }
164
+ else {
165
+ if (currentLine)
166
+ console.log(nebulaColor(' │ ') + chalk_1.default.italic.dim(currentLine.padEnd(innerWidth)) + nebulaColor(' │'));
167
+ currentLine = word;
168
+ }
169
+ });
170
+ if (currentLine)
171
+ console.log(nebulaColor(' │ ') + chalk_1.default.italic.dim(currentLine.padEnd(innerWidth)) + nebulaColor(' │'));
172
+ console.log(nebulaColor(` ╰${'─'.repeat(width - 4)}╯`));
173
+ console.log(starColor(` * . ✧ . * . ✧ . *`));
174
+ }
175
+ /**
176
+ * Live Streaming: Start a technical block container
177
+ */
178
+ static drawStreamingStart(title, language) {
179
+ const width = 76;
180
+ const glow = chalk_1.default.hex('#06b6d4');
181
+ const border = chalk_1.default.hex('#164e63');
182
+ const shadow = chalk_1.default.hex('#083344');
183
+ console.log('\n' + shadow(` ┌${'─'.repeat(width - 4)}┐`));
184
+ const header = ` ${title.toUpperCase()} • ${language} `;
185
+ const hPad = Math.max(0, width - 8 - header.length);
186
+ console.log(glow(' │ ') + chalk_1.default.bgHex('#164e63').white.bold(header) + border('─'.repeat(hPad)) + glow(' │'));
187
+ }
188
+ /**
189
+ * Live Streaming: Add a line to the active container
190
+ */
191
+ static drawStreamingLine(content) {
192
+ const width = 76;
193
+ const innerWidth = width - 8;
194
+ const border = chalk_1.default.hex('#164e63');
195
+ // Handle multi-line content if passed
196
+ const lines = content.split('\n');
197
+ lines.forEach(line => {
198
+ const displayLine = line.length > innerWidth ? line.substring(0, innerWidth - 3) + '...' : line;
199
+ const pad = Math.max(0, innerWidth - displayLine.length);
200
+ console.log(border(' │ ') + chalk_1.default.white(displayLine) + ' '.repeat(pad) + border(' │'));
201
+ });
202
+ }
203
+ /**
204
+ * Live Streaming: Close the container
205
+ */
206
+ static drawStreamingEnd() {
207
+ const width = 76;
208
+ const shadow = chalk_1.default.hex('#083344');
209
+ console.log(shadow(` └${'─'.repeat(width - 4)}┘\n`));
157
210
  }
158
211
  /**
159
212
  * Draw Ajay Vai's premium summary with a human chat bubble vibe
160
213
  */
161
214
  static drawSummaryBox(content) {
162
- const width = Math.min(process.stdout.columns || 80, 76);
215
+ const width = 74;
163
216
  const innerWidth = width - 6;
164
217
  const magenta = chalk_1.default.hex('#ff69b4');
165
218
  const pinkBright = chalk_1.default.hex('#ff99cc');
@@ -232,69 +285,38 @@ class TUI {
232
285
  agent.includes('Sunil') ? chalk_1.default.blue :
233
286
  agent.includes('Sandip') ? chalk_1.default.hex('#FF69B4') :
234
287
  agent.includes('Bishal') ? chalk_1.default.yellow :
235
- agent.includes('Hype') ? chalk_1.default.hex('#fbbf24') :
236
- agent.includes('Nerd') ? chalk_1.default.hex('#06b6d4') :
237
- agent.includes('Chill') ? chalk_1.default.hex('#22c55e') :
238
- agent.includes('Lil') ? chalk_1.default.hex('#888888') :
239
- agent.includes('Narayan') ? chalk_1.default.green :
240
- chalk_1.default.green;
241
- // Glow color is a brighter version of the agent color
242
- const glowColor = isBigBro ? chalk_1.default.hex('#FF9642') :
243
- agent.includes('Ajay') ? chalk_1.default.hex('#ff77ff') :
244
- agent.includes('Sunil') ? chalk_1.default.hex('#66aaff') :
245
- agent.includes('Sandip') ? chalk_1.default.hex('#ff99cc') :
246
- agent.includes('Bishal') ? chalk_1.default.hex('#ffee66') :
247
- agent.includes('Hype') ? chalk_1.default.hex('#ffe066') :
248
- agent.includes('Nerd') ? chalk_1.default.hex('#33ddee') :
249
- agent.includes('Chill') ? chalk_1.default.hex('#66ff88') :
250
- agent.includes('Lil') ? chalk_1.default.hex('#aaaaaa') :
251
- chalk_1.default.hex('#66ff88');
288
+ agent.includes('Narayan') ? chalk_1.default.green : chalk_1.default.cyan;
289
+ const glowColor = isBigBro ? chalk_1.default.hex('#fbbf24') : color;
252
290
  const icon = isBigBro ? '🔥' :
253
291
  agent.includes('Ajay') ? '🚀' :
254
292
  agent.includes('Sunil') ? '🧬' :
255
293
  agent.includes('Sandip') ? '🎨' :
256
294
  agent.includes('Bishal') ? '🛠️' :
257
- agent.includes('Hype') ? '🎉' :
258
- agent.includes('Nerd') ? '🤓' :
259
- agent.includes('Chill') ? '😎' :
260
- agent.includes('Lil') ? '😰' :
261
- agent.includes('Narayan') ? '🛡️' : '🛡️';
262
- const width = Math.min(process.stdout.columns || 80, 76);
263
- const innerWidth = width - 6;
264
- // Top glow shimmer
265
- console.log(glowColor(` ░${''.repeat(width - 4)}░`));
266
- // Top border with premium double-line
267
- console.log(color(` ╔${'═'.repeat(width - 4)}╗`));
268
- // Header with agent name
269
- const headerText = `${icon} ${agent}`;
270
- const pad = Math.max(0, innerWidth - headerText.length);
271
- console.log(color(' ║ ') + color.bold(headerText) + ' '.repeat(pad) + color(' ║'));
272
- // Separator with dots for premium feel
273
- console.log(color(' ╠') + glowColor('·'.repeat(width - 4)) + color('╣'));
274
- // Content lines with word wrap
295
+ agent.includes('Narayan') ? '🛡️' : '🤖';
296
+ const width = 76;
297
+ const innerWidth = width - 10;
298
+ // Robust Elite Header
299
+ console.log('\n' + color(` ┌${''.repeat(width - 4)}┐`));
300
+ const header = ` ${icon} ${agent.toUpperCase()} `;
301
+ const hPad = Math.max(0, width - 8 - header.length);
302
+ console.log(color(' │ ') + chalk_1.default.bgHex('#1a1a1a').white.bold(header) + color('╊'.repeat(hPad)) + color(' │'));
303
+ console.log(color(' ') + glowColor('─'.repeat(width - 6)) + color(' │'));
304
+ // Wrapped Content
275
305
  const words = message.split(' ');
276
306
  let currentLine = '';
277
- const wrappedLines = [];
278
307
  words.forEach(word => {
279
308
  if ((currentLine + ' ' + word).trim().length <= innerWidth) {
280
309
  currentLine = currentLine ? currentLine + ' ' + word : word;
281
310
  }
282
311
  else {
283
312
  if (currentLine)
284
- wrappedLines.push(currentLine);
285
- currentLine = word.length > innerWidth ? word.substring(0, innerWidth) : word;
313
+ console.log(color(' │ ') + chalk_1.default.white(currentLine.padEnd(innerWidth)) + color(' │'));
314
+ currentLine = word;
286
315
  }
287
316
  });
288
317
  if (currentLine)
289
- wrappedLines.push(currentLine);
290
- wrappedLines.forEach(line => {
291
- const linePad = Math.max(0, innerWidth - line.length);
292
- console.log(color(' ║ ') + chalk_1.default.white(line) + ' '.repeat(linePad) + color(' ║'));
293
- });
294
- // Bottom border
295
- console.log(color(` ╚${'═'.repeat(width - 4)}╝`));
296
- // Bottom glow shimmer
297
- console.log(glowColor(` ░${'░'.repeat(width - 4)}░`));
318
+ console.log(color(' │ ') + chalk_1.default.white(currentLine.padEnd(innerWidth)) + color(' │'));
319
+ console.log(color(` └${'─'.repeat(width - 4)}┘\n`));
298
320
  }
299
321
  /**
300
322
  * Simple log with a prefix
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/utils/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/utils/tui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matex-cli",
3
- "version": "1.2.47",
3
+ "version": "1.2.49",
4
4
  "description": "Official CLI tool for MATEX AI - Access powerful AI models from your terminal",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -246,9 +246,9 @@ If a file is too large to read entirely (e.g., thousands of lines):
246
246
  for (const line of lines) {
247
247
  // 1. Technical Block Detection
248
248
  const codeBlockMatch = line.match(/```(\w+)?/);
249
- const fileStartMatch = line.match(/<file path="([^"]+)">/);
250
- const patchStartMatch = line.match(/<<<< SEARCH/);
251
- const summaryStartMatch = line.match(/<summary>/);
249
+ const fileStartMatch = line.match(/<file path="([^"]+)">/i);
250
+ const patchStartMatch = line.match(/<<<< SEARCH/i);
251
+ const summaryStartMatch = line.match(/<summary>/i);
252
252
 
253
253
  if (!technicalType && (codeBlockMatch || fileStartMatch || patchStartMatch || summaryStartMatch)) {
254
254
  // Flush pending agent dialogue
@@ -264,15 +264,15 @@ If a file is too large to read entirely (e.g., thousands of lines):
264
264
 
265
265
  if (codeBlockMatch) {
266
266
  technicalType = 'code';
267
- codeLang = codeBlockMatch[1] || 'bash';
268
- process.stdout.write(chalk.gray('\n [⚡] Building technical block...\n'));
267
+ codeLang = (codeBlockMatch[1] || 'bash').toUpperCase();
268
+ TUI.drawStreamingStart('TECHNICAL BLOCK', codeLang);
269
269
  } else if (fileStartMatch) {
270
270
  technicalType = 'file';
271
271
  technicalPath = fileStartMatch[1];
272
- process.stdout.write(chalk.cyan(`\n [📂] Creating file: ${technicalPath}...\n`));
272
+ TUI.drawStreamingStart('NEW FILE', technicalPath);
273
273
  } else if (patchStartMatch) {
274
274
  technicalType = 'patch';
275
- process.stdout.write(chalk.yellow('\n [📂] Applying surgical patch...\n'));
275
+ TUI.drawStreamingStart('PATCH', 'SURGICAL EDIT');
276
276
  } else if (summaryStartMatch) {
277
277
  technicalType = 'summary';
278
278
  process.stdout.write(chalk.magenta('\n [📝] Generating Ajay\'s Work Summary...\n'));
@@ -281,9 +281,9 @@ If a file is too large to read entirely (e.g., thousands of lines):
281
281
  }
282
282
 
283
283
  // 2. Technical Block End Detection
284
- const fileEndMatch = line.match(/<\/file>/);
285
- const patchEndMatch = line.match(/>>>> REPLACE/);
286
- const summaryEndMatch = line.match(/<\/summary>/);
284
+ const fileEndMatch = line.match(/<\/file>/i);
285
+ const patchEndMatch = line.match(/>>>> REPLACE/i);
286
+ const summaryEndMatch = line.match(/<\/summary>/i);
287
287
  const isCodeEnd = technicalType === 'code' && line.trim() === '```';
288
288
 
289
289
  if (isCodeEnd || fileEndMatch || patchEndMatch || summaryEndMatch) {
@@ -291,11 +291,7 @@ If a file is too large to read entirely (e.g., thousands of lines):
291
291
  if (technicalType === 'summary' || summaryEndMatch) {
292
292
  TUI.drawSummaryBox(displayContent);
293
293
  } else {
294
- // Handle the display
295
- let title = technicalType === 'file' ? `📄 NEW: ${technicalPath || 'Untitled'}` :
296
- technicalType === 'patch' ? `🔧 PATCH` : `⚡ ${codeLang.toUpperCase()}`;
297
-
298
- TUI.drawGlowingContainer(title, technicalType === 'code' ? codeLang : 'text', displayContent);
294
+ TUI.drawStreamingEnd();
299
295
  }
300
296
  technicalBuffer = '';
301
297
  technicalType = null;
@@ -307,6 +303,9 @@ If a file is too large to read entirely (e.g., thousands of lines):
307
303
  // 3. Content Handling
308
304
  if (technicalType) {
309
305
  technicalBuffer += line + '\n';
306
+ if (technicalType !== 'summary') {
307
+ TUI.drawStreamingLine(line);
308
+ }
310
309
  continue;
311
310
  }
312
311
 
@@ -356,8 +355,8 @@ If a file is too large to read entirely (e.g., thousands of lines):
356
355
 
357
356
  // Final flushes
358
357
  if (currentAgent && agentBuffer.trim()) {
359
- if ((currentAgent as string).toLowerCase() === 'ajay vai') {
360
- process.stdout.write(`\n${chalk.magenta.bold(`[${currentAgent}]:`)} ${chalk.white(agentBuffer.trim())}\n`);
358
+ if ((currentAgent as string).toLowerCase().includes('ajay vai')) {
359
+ TUI.drawSummaryBox(agentBuffer.trim());
361
360
  } else {
362
361
  TUI.drawSwarmDialogue(currentAgent as string, agentBuffer.trim());
363
362
  }
@@ -368,9 +367,12 @@ If a file is too large to read entirely (e.g., thousands of lines):
368
367
  if (technicalType === 'summary') {
369
368
  TUI.drawSummaryBox(technicalBuffer.trim());
370
369
  } else {
371
- TUI.drawGlowingContainer('Final technical content', 'text', technicalBuffer.trim());
370
+ TUI.drawStreamingEnd();
372
371
  }
373
- process.stdout.write('\n');
372
+ } else if (fullResponse.toLowerCase().includes('<summary>') && !fullResponse.toLowerCase().includes('</summary>')) {
373
+ // Emergency fallback for split/unclosed summary tags
374
+ const summaryContent = fullResponse.split(/<summary>/i).pop() || '';
375
+ if (summaryContent.trim()) TUI.drawSummaryBox(summaryContent.trim());
374
376
  }
375
377
 
376
378
  console.log();
@@ -228,9 +228,9 @@ If a file is too large to read entirely (e.g., thousands of lines):
228
228
  for (const line of lines) {
229
229
  // 1. Technical Block Detection
230
230
  const codeBlockMatch = line.match(/```(\w+)?/);
231
- const fileStartMatch = line.match(/<file path="([^"]+)">/);
232
- const patchStartMatch = line.match(/<<<< SEARCH/);
233
- const summaryStartMatch = line.match(/<summary>/);
231
+ const fileStartMatch = line.match(/<file path="([^"]+)">/i);
232
+ const patchStartMatch = line.match(/<<<< SEARCH/i);
233
+ const summaryStartMatch = line.match(/<summary>/i);
234
234
 
235
235
  if (!technicalType && (codeBlockMatch || fileStartMatch || patchStartMatch || summaryStartMatch)) {
236
236
  // Flush pending agent dialogue
@@ -246,15 +246,15 @@ If a file is too large to read entirely (e.g., thousands of lines):
246
246
 
247
247
  if (codeBlockMatch) {
248
248
  technicalType = 'code';
249
- codeLang = codeBlockMatch[1] || 'bash';
250
- process.stdout.write(chalk.gray('\n [⚡] Building technical block...\n'));
249
+ codeLang = (codeBlockMatch[1] || 'bash').toUpperCase();
250
+ TUI.drawStreamingStart('TECHNICAL BLOCK', codeLang);
251
251
  } else if (fileStartMatch) {
252
252
  technicalType = 'file';
253
253
  technicalPath = fileStartMatch[1];
254
- process.stdout.write(chalk.cyan(`\n [📂] Creating file: ${technicalPath}...\n`));
254
+ TUI.drawStreamingStart('NEW FILE', technicalPath);
255
255
  } else if (patchStartMatch) {
256
256
  technicalType = 'patch';
257
- process.stdout.write(chalk.yellow('\n [📂] Applying surgical patch...\n'));
257
+ TUI.drawStreamingStart('PATCH', 'SURGICAL EDIT');
258
258
  } else if (summaryStartMatch) {
259
259
  technicalType = 'summary';
260
260
  process.stdout.write(chalk.magenta('\n [📝] Generating Ajay\'s Work Summary...\n'));
@@ -263,9 +263,9 @@ If a file is too large to read entirely (e.g., thousands of lines):
263
263
  }
264
264
 
265
265
  // 2. Technical Block End Detection
266
- const fileEndMatch = line.match(/<\/file>/);
267
- const patchEndMatch = line.match(/>>>> REPLACE/);
268
- const summaryEndMatch = line.match(/<\/summary>/);
266
+ const fileEndMatch = line.match(/<\/file>/i);
267
+ const patchEndMatch = line.match(/>>>> REPLACE/i);
268
+ const summaryEndMatch = line.match(/<\/summary>/i);
269
269
  const isCodeEnd = technicalType === 'code' && line.trim() === '```';
270
270
 
271
271
  if (isCodeEnd || fileEndMatch || patchEndMatch || summaryEndMatch) {
@@ -273,11 +273,7 @@ If a file is too large to read entirely (e.g., thousands of lines):
273
273
  if (technicalType === 'summary' || summaryEndMatch) {
274
274
  TUI.drawSummaryBox(displayContent);
275
275
  } else {
276
- // Handle the display
277
- let title = technicalType === 'file' ? `📄 NEW: ${technicalPath || 'Untitled'}` :
278
- technicalType === 'patch' ? `🔧 PATCH` : `⚡ ${codeLang.toUpperCase()}`;
279
-
280
- TUI.drawGlowingContainer(title, technicalType === 'code' ? codeLang : 'text', displayContent);
276
+ TUI.drawStreamingEnd();
281
277
  }
282
278
  technicalBuffer = '';
283
279
  technicalType = null;
@@ -289,6 +285,9 @@ If a file is too large to read entirely (e.g., thousands of lines):
289
285
  // 3. Content Handling
290
286
  if (technicalType) {
291
287
  technicalBuffer += line + '\n';
288
+ if (technicalType !== 'summary') {
289
+ TUI.drawStreamingLine(line);
290
+ }
292
291
  continue;
293
292
  }
294
293
 
@@ -338,21 +337,23 @@ If a file is too large to read entirely (e.g., thousands of lines):
338
337
 
339
338
  // Final flushes
340
339
  if (currentAgent && agentBuffer.trim()) {
341
- if ((currentAgent as string).toLowerCase() === 'ajay vai') {
342
- process.stdout.write(`\n${chalk.magenta.bold(`[${currentAgent}]:`)} ${chalk.white(agentBuffer.trim())}\n`);
340
+ if ((currentAgent as string).toLowerCase().includes('ajay vai')) {
341
+ TUI.drawSummaryBox(agentBuffer.trim());
343
342
  } else {
344
343
  TUI.drawSwarmDialogue(currentAgent as string, agentBuffer.trim());
345
344
  }
346
345
  }
347
346
 
348
- // Final technical flush
347
+ // Final technical flush (Summary Fallback)
349
348
  if (technicalType && technicalBuffer.trim()) {
350
349
  if (technicalType === 'summary') {
351
350
  TUI.drawSummaryBox(technicalBuffer.trim());
352
351
  } else {
353
- TUI.drawGlowingContainer('Final technical content', 'text', technicalBuffer.trim());
352
+ TUI.drawStreamingEnd();
354
353
  }
355
- process.stdout.write('\n');
354
+ } else if (fullResponse.toLowerCase().includes('<summary>') && !fullResponse.toLowerCase().includes('</summary>')) {
355
+ const summaryContent = fullResponse.split(/<summary>/i).pop() || '';
356
+ if (summaryContent.trim()) TUI.drawSummaryBox(summaryContent.trim());
356
357
  }
357
358
 
358
359
  console.log();
@@ -147,8 +147,7 @@ export class AgentOrchestrator {
147
147
  const cleaned = this.cleanText(thought);
148
148
  if (!cleaned) return;
149
149
 
150
- TUI.drawStatusBar(`${config.name} is thinking...`);
151
- console.log(chalk.gray(` 💭 ${chalk.italic(config.name)}: `) + chalk.italic.dim(cleaned));
150
+ TUI.drawThinkingBox(config.name, cleaned);
152
151
  }
153
152
 
154
153
  /**
@@ -175,57 +175,47 @@ export class Patcher {
175
175
  const replaceLines = block.replace.split('\n');
176
176
 
177
177
  const isNewFile = !block.search;
178
- const isLarge = replaceLines.length > 8;
178
+ const isLarge = replaceLines.length > 12;
179
179
  const shouldTruncate = isLarge && !full;
180
180
 
181
- const displaySearch = shouldTruncate ? searchLines.slice(0, 5) : searchLines;
182
- const displayReplace = shouldTruncate ? replaceLines.slice(0, 5) : replaceLines;
181
+ const displaySearch = shouldTruncate ? searchLines.slice(0, 8) : searchLines;
182
+ const displayReplace = shouldTruncate ? replaceLines.slice(0, 8) : replaceLines;
183
183
 
184
- process.stdout.write('\n');
184
+ const redGlow = chalk.hex('#ef4444');
185
+ const greenGlow = chalk.hex('#22c55e');
186
+ const border = chalk.hex('#334155');
185
187
 
186
- // 1. Title Bar with Traffic Lights
187
- const type = isNewFile ? '🆕 NEW FILE' : '📂 PATCH';
188
+ console.log('\n' + border(` ┌${'─'.repeat(width - 4)}┐`));
189
+ const type = isNewFile ? '🆕 NEW FILE' : '🔧 PATCH';
188
190
  const title = ` ${type}: ${block.filePath} `;
189
- const trafficLights = chalk.red('') + ' ' + chalk.yellow('') + ' ' + chalk.green('');
191
+ console.log(border('') + chalk.bgHex('#1e293b').cyan.bold(title).padEnd(width - 6) + border(''));
192
+ console.log(border(' ├' + '╌'.repeat(width - 4) + '┤'));
190
193
 
191
- console.log(chalk.gray('┏' + '━'.repeat(width - 2) + '┓'));
192
- console.log(chalk.gray('┃ ') + trafficLights + ' ' + chalk.cyan.bold(title).padEnd(width - 10) + chalk.gray(' ┃'));
193
- console.log(chalk.gray('┣' + '━'.repeat(width - 2) + '┫'));
194
-
195
- // 2. Search Block (Deletions) - Only for patches
196
194
  if (!isNewFile) {
197
195
  displaySearch.forEach((line) => {
198
- const prefix = chalk.red('┃ ') + chalk.bgRed.white(' - ') + ' ';
199
- const content = chalk.red(line.substring(0, width - 10));
200
- console.log(prefix + content.padEnd(width - 8) + chalk.gray(' ┃'));
196
+ const displayLine = line.length > width - 12 ? line.substring(0, width - 15) + '...' : line;
197
+ console.log(redGlow(' │ ') + chalk.bgRed.white(' - ') + ' ' + redGlow(displayLine.padEnd(width - 10)) + redGlow(' │'));
201
198
  });
202
-
203
- if (shouldTruncate && searchLines.length > 5) {
204
- console.log(chalk.red('┃ ') + chalk.gray(` ... (${searchLines.length - 5} more lines hidden)`).padEnd(width - 5) + chalk.gray(' ┃'));
199
+ if (shouldTruncate && searchLines.length > 8) {
200
+ console.log(redGlow(' │ ') + chalk.dim(` ... ${searchLines.length - 8} more lines removed ...`).padEnd(width - 6) + redGlow(' │'));
205
201
  }
206
-
207
- // Separator between search and replace
208
- console.log(chalk.gray('┣' + '╍'.repeat(width - 2) + '┫'));
202
+ console.log(border(' ├' + '─'.repeat(width - 4) + '┤'));
209
203
  }
210
204
 
211
- // 3. Replace Block (Additions)
212
205
  displayReplace.forEach((line) => {
213
- const prefix = chalk.green('┃ ') + chalk.bgGreen.black(' + ') + ' ';
214
- const content = chalk.green(line.substring(0, width - 10));
215
- console.log(prefix + content.padEnd(width - 8) + chalk.gray(' ┃'));
206
+ const displayLine = line.length > width - 12 ? line.substring(0, width - 15) + '...' : line;
207
+ console.log(greenGlow(' │ ') + chalk.bgGreen.black(' + ') + ' ' + greenGlow(displayLine.padEnd(width - 10)) + greenGlow(' │'));
216
208
  });
217
209
 
218
- if (shouldTruncate && replaceLines.length > 5) {
219
- console.log(chalk.green(' ') + chalk.gray(` ... (${replaceLines.length - 5} more lines hidden)`).padEnd(width - 5) + chalk.gray(' '));
210
+ if (shouldTruncate && replaceLines.length > 8) {
211
+ console.log(greenGlow(' ') + chalk.dim(` ... ${replaceLines.length - 8} more lines added ...`).padEnd(width - 6) + greenGlow(' '));
220
212
  }
221
213
 
222
- // 4. Footer
223
- console.log(chalk.gray('┗' + '━'.repeat(width - 2) + '┛'));
224
-
214
+ console.log(border(` └${'─'.repeat(width - 4)}┘`));
225
215
  if (shouldTruncate) {
226
- console.log(chalk.yellow(' 💡 Note: This diff is minimized. Use (v) to see full code.'));
216
+ console.log(chalk.gray(' (Minimized view. Use full response or "v" to see all changes.)'));
227
217
  }
228
- process.stdout.write('\n');
218
+ console.log();
229
219
 
230
220
  return shouldTruncate;
231
221
  }