@k1e1n04/mav 0.1.19 → 0.1.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k1e1n04/mav",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "Multi-agent view — manage multiple AI CLI sessions in one terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,7 @@
1
1
  import type { SessionManager } from '../session-manager.js';
2
2
  import type { KeyInfo, TerminalUI } from './terminal.js';
3
3
  export declare class OverviewUI {
4
+ private static readonly HORIZONTAL_MARGIN;
4
5
  private static readonly ANSI;
5
6
  private static readonly STATUS_GROUPS;
6
7
  private static readonly AGENT_TYPES;
@@ -26,11 +27,21 @@ export declare class OverviewUI {
26
27
  private getStatusRank;
27
28
  private countByStatus;
28
29
  private stripAnsi;
30
+ private visibleLength;
31
+ private getRenderWidth;
32
+ private getContentWidth;
33
+ private insetLine;
34
+ private finalizeLines;
29
35
  private padRight;
36
+ private fitPlain;
37
+ private fitVisible;
30
38
  private color;
31
39
  private getStatusColor;
32
40
  private makeRule;
33
- private formatSummary;
41
+ private wrapPlainText;
42
+ private wrapPathText;
43
+ private wrapVisibleParts;
44
+ private formatSummaryLines;
34
45
  private buildMainLines;
35
46
  private buildPromptLines;
36
47
  private render;
@@ -1,6 +1,7 @@
1
1
  import { getAgentDefaults, resolveSessionArgs } from '../agent-launch.js';
2
2
  import { completePath } from './path-completion.js';
3
3
  export class OverviewUI {
4
+ static HORIZONTAL_MARGIN = 1;
4
5
  static ANSI = {
5
6
  reset: '\x1b[0m',
6
7
  bold: '\x1b[1m',
@@ -273,13 +274,47 @@ export class OverviewUI {
273
274
  stripAnsi(value) {
274
275
  return value.replace(/\x1b\[[0-9;]*m/g, '');
275
276
  }
277
+ visibleLength(value) {
278
+ return this.stripAnsi(value).length;
279
+ }
280
+ getRenderWidth() {
281
+ return Math.max(20, this.terminal.cols || 80);
282
+ }
283
+ getContentWidth() {
284
+ return Math.max(10, this.getRenderWidth() - (OverviewUI.HORIZONTAL_MARGIN * 2));
285
+ }
286
+ insetLine(line) {
287
+ if (line.length === 0)
288
+ return '';
289
+ return `${' '.repeat(OverviewUI.HORIZONTAL_MARGIN)}${line}`;
290
+ }
291
+ finalizeLines(lines) {
292
+ const maxWidth = this.getRenderWidth();
293
+ return lines.map((line) => {
294
+ const inset = this.insetLine(line);
295
+ return this.fitVisible(inset, maxWidth);
296
+ });
297
+ }
276
298
  padRight(value, width) {
277
- const visibleLength = this.stripAnsi(value).length;
299
+ const visibleLength = this.visibleLength(value);
278
300
  if (visibleLength >= width) {
279
301
  return value;
280
302
  }
281
303
  return value + ' '.repeat(width - visibleLength);
282
304
  }
305
+ fitPlain(value, width) {
306
+ if (width <= 0)
307
+ return '';
308
+ if (value.length <= width)
309
+ return value;
310
+ if (width === 1)
311
+ return '…';
312
+ return `${value.slice(0, width - 1)}…`;
313
+ }
314
+ fitVisible(value, width) {
315
+ const plain = this.stripAnsi(value);
316
+ return plain.length <= width ? value : this.fitPlain(plain, width);
317
+ }
283
318
  color(text, ...codes) {
284
319
  return `${codes.join('')}${text}${OverviewUI.ANSI.reset}`;
285
320
  }
@@ -297,29 +332,103 @@ export class OverviewUI {
297
332
  return OverviewUI.ANSI.fgSlate;
298
333
  }
299
334
  }
300
- makeRule(label, width = 64) {
335
+ makeRule(label, width = this.getRenderWidth()) {
301
336
  const text = ` ${label} `;
302
337
  if (text.length >= width) {
303
- return text;
338
+ return this.fitPlain(text, width);
304
339
  }
305
340
  const fill = '─'.repeat(width - text.length);
306
341
  return text + fill;
307
342
  }
308
- formatSummary() {
343
+ wrapPlainText(text, width) {
344
+ if (width <= 0)
345
+ return [''];
346
+ const words = text.split(/\s+/).filter(Boolean);
347
+ if (words.length === 0)
348
+ return [''];
349
+ const lines = [];
350
+ let current = '';
351
+ for (const word of words) {
352
+ const next = current ? `${current} ${word}` : word;
353
+ if (next.length <= width) {
354
+ current = next;
355
+ continue;
356
+ }
357
+ if (current) {
358
+ lines.push(current);
359
+ current = '';
360
+ }
361
+ if (word.length <= width) {
362
+ current = word;
363
+ }
364
+ else {
365
+ lines.push(this.fitPlain(word, width));
366
+ }
367
+ }
368
+ if (current) {
369
+ lines.push(current);
370
+ }
371
+ return lines;
372
+ }
373
+ wrapPathText(text, width) {
374
+ if (width <= 0)
375
+ return [''];
376
+ if (text.length <= width)
377
+ return [text];
378
+ const lines = [];
379
+ let remaining = text;
380
+ while (remaining.length > width) {
381
+ const slice = remaining.slice(0, width + 1);
382
+ const breakIndex = slice.lastIndexOf('/');
383
+ if (breakIndex > 0) {
384
+ lines.push(remaining.slice(0, breakIndex));
385
+ remaining = remaining.slice(breakIndex);
386
+ continue;
387
+ }
388
+ lines.push(remaining.slice(0, width));
389
+ remaining = remaining.slice(width);
390
+ }
391
+ if (remaining.length > 0) {
392
+ lines.push(remaining);
393
+ }
394
+ return lines;
395
+ }
396
+ wrapVisibleParts(parts, width) {
397
+ if (width <= 0)
398
+ return [''];
399
+ const lines = [];
400
+ let current = '';
401
+ for (const part of parts) {
402
+ const next = current ? `${current} · ${part}` : part;
403
+ if (this.visibleLength(next) <= width) {
404
+ current = next;
405
+ continue;
406
+ }
407
+ if (current) {
408
+ lines.push(current);
409
+ }
410
+ current = this.visibleLength(part) <= width ? part : this.fitVisible(part, width);
411
+ }
412
+ if (current) {
413
+ lines.push(current);
414
+ }
415
+ return lines;
416
+ }
417
+ formatSummaryLines(width) {
309
418
  const parts = OverviewUI.STATUS_GROUPS.map((group) => {
310
419
  const count = this.countByStatus(group.status);
311
420
  return this.color(`${group.label} ${count}`, OverviewUI.ANSI.bold, this.getStatusColor(group.status));
312
421
  });
313
- return parts.join(' · ');
422
+ return this.wrapVisibleParts(parts, width);
314
423
  }
315
424
  buildMainLines() {
316
425
  const orderedSessions = this.getOrderedSessions();
317
426
  const selectedId = this.manager.selectedSession?.id;
427
+ const width = this.getContentWidth();
318
428
  const lines = [
319
- '╭────────────────────────────── mav overview ──────────────────────────────╮',
320
- `│ ${this.padRight('AGENTS', 74)} │`,
321
- `│ ${this.padRight(this.formatSummary(), 74)} │`,
322
- '╰──────────────────────────────────────────────────────────────────────────╯',
429
+ this.color(this.makeRule('mav overview', width), OverviewUI.ANSI.dim),
430
+ 'AGENTS',
431
+ ...this.formatSummaryLines(width),
323
432
  '',
324
433
  ];
325
434
  const cwdGroups = this.groupByCwd(orderedSessions);
@@ -339,7 +448,7 @@ export class OverviewUI {
339
448
  const sessionTitle = session.displayName ?? session.id;
340
449
  const sessionLabel = session.type ? `${sessionTitle} (${session.type})` : sessionTitle;
341
450
  const prefix = session.id === selectedId ? '> ' : ' ';
342
- const sessionLine = `${prefix}${statusIcon} ${sessionLabel} ${this.getStatusLabel(session.status)}`;
451
+ const sessionLine = this.fitPlain(`${prefix}${statusIcon} ${sessionLabel} ${this.getStatusLabel(session.status)}`, width);
343
452
  lines.push(session.id === selectedId
344
453
  ? this.color(sessionLine, OverviewUI.ANSI.bold, color)
345
454
  : this.color(sessionLine, color));
@@ -348,54 +457,51 @@ export class OverviewUI {
348
457
  }
349
458
  }
350
459
  if (orderedSessions.length === 0) {
351
- lines.push(this.makeRule('empty'));
352
- lines.push(' No sessions. Press n to add one.');
460
+ lines.push(this.color(this.makeRule('empty', width), OverviewUI.ANSI.dim));
461
+ lines.push(this.fitPlain(' No sessions. Press n to add one.', width));
353
462
  lines.push('');
354
463
  }
355
- lines.push('╭──────────────────────────────── controls ────────────────────────────────╮');
356
- lines.push(`│ ${this.padRight('↑/↓ or j/k move Enter detail Ctrl+] back n new d delete q quit', 74)} │`);
357
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯');
358
- return lines;
464
+ lines.push(this.color(this.makeRule('controls', width), OverviewUI.ANSI.dim));
465
+ lines.push(...this.wrapPlainText('↑/↓ or j/k move Enter detail Ctrl+] back n new d delete q quit', width));
466
+ return this.finalizeLines(lines);
359
467
  }
360
468
  buildPromptLines() {
361
469
  const state = this.promptState;
362
470
  if (!state)
363
471
  return [];
364
- const lines = ['', '╭──────────────────────────────── prompt ──────────────────────────────────╮'];
472
+ const width = this.getContentWidth();
473
+ const lines = ['', this.color(this.makeRule('prompt', width), OverviewUI.ANSI.dim)];
365
474
  if (state.mode === 'agent') {
366
- lines.push(`│ ${this.padRight('Select agent type', 74)} │`);
367
- lines.push('│ │');
475
+ lines.push(this.fitPlain('Select agent type', width));
476
+ lines.push('');
368
477
  for (const [index, agentType] of OverviewUI.AGENT_TYPES.entries()) {
369
- lines.push(`│ ${this.padRight(`${index === state.selectedIndex ? '> ' : ' '}${agentType}`, 74)} │`);
478
+ lines.push(this.fitPlain(`${index === state.selectedIndex ? '> ' : ' '}${agentType}`, width));
370
479
  }
371
- lines.push('│ │');
372
- lines.push(`│ ${this.padRight('Enter: select Esc: cancel', 74)} │`);
373
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯');
374
- return lines;
480
+ lines.push('');
481
+ lines.push(...this.wrapPlainText('Enter: select Esc: cancel', width));
482
+ return this.finalizeLines(lines);
375
483
  }
376
484
  if (state.mode === 'cwd') {
377
- lines.push(`│ ${this.padRight(`cwd for ${state.agentType}`, 74)} │`);
378
- lines.push(`│ ${this.padRight(state.value, 74)} │`);
485
+ lines.push(this.fitPlain(`cwd for ${state.agentType}`, width));
486
+ lines.push(...this.wrapPathText(state.value, width));
379
487
  if (state.candidates.length > 1) {
380
- lines.push('│ │');
381
- lines.push(`│ ${this.padRight('Candidates:', 74)} │`);
488
+ lines.push('');
489
+ lines.push(this.fitPlain('Candidates:', width));
382
490
  for (const candidate of state.candidates.slice(0, 8)) {
383
- lines.push(`│ ${this.padRight(` ${candidate}`, 74)} │`);
491
+ lines.push(...this.wrapPathText(` ${candidate}`, width));
384
492
  }
385
493
  }
386
- lines.push('│ │');
387
- lines.push(`│ ${this.padRight('Tab: complete Enter: confirm Esc: cancel', 74)} │`);
388
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯');
389
- return lines;
494
+ lines.push('');
495
+ lines.push(...this.wrapPlainText('Tab: complete Enter: confirm Esc: cancel', width));
496
+ return this.finalizeLines(lines);
390
497
  }
391
- lines.push(`│ ${this.padRight('Error', 74)} │`);
498
+ lines.push(this.fitPlain('Error', width));
392
499
  for (const line of state.message.split('\n')) {
393
- lines.push(`│ ${this.padRight(line, 74)} │`);
500
+ lines.push(this.fitPlain(line, width));
394
501
  }
395
- lines.push('│ │');
396
- lines.push(`│ ${this.padRight('Enter/Esc/q: close', 74)} │`);
397
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯');
398
- return lines;
502
+ lines.push('');
503
+ lines.push(...this.wrapPlainText('Enter/Esc/q: close', width));
504
+ return this.finalizeLines(lines);
399
505
  }
400
506
  render() {
401
507
  if (!this.visible)
@@ -1 +1 @@
1
- {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../src/ui/overview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../src/ui/overview.ts"],"names":[],"mappings":"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"}
package/lua/mav/init.lua CHANGED
@@ -16,6 +16,24 @@ M._timer = nil
16
16
  M._last_updated = nil
17
17
  M._last_session = nil
18
18
 
19
+ local function normalize_path(path)
20
+ if type(path) ~= "string" or path == "" then
21
+ return nil
22
+ end
23
+
24
+ local uv = vim.uv or vim.loop
25
+ local real = uv and uv.fs_realpath(path) or nil
26
+ return real or path
27
+ end
28
+
29
+ local function current_cwd_matches(session)
30
+ if not session or type(session.cwd) ~= "string" or session.cwd == "" then
31
+ return false
32
+ end
33
+
34
+ return normalize_path(vim.fn.getcwd()) == normalize_path(session.cwd)
35
+ end
36
+
19
37
  local function read_session()
20
38
  return state.read(M._opts.state_file)
21
39
  end
@@ -42,6 +60,9 @@ function M.poll_once()
42
60
  end
43
61
 
44
62
  if session.updatedAt == M._last_updated then
63
+ if M._opts.auto_follow and not current_cwd_matches(M._last_session) then
64
+ follow.follow(M._last_session, M._opts)
65
+ end
45
66
  return M._last_session
46
67
  end
47
68
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k1e1n04/mav",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "Multi-agent view — manage multiple AI CLI sessions in one terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,6 +11,8 @@ type PromptState =
11
11
  | null
12
12
 
13
13
  export class OverviewUI {
14
+ private static readonly HORIZONTAL_MARGIN = 1
15
+
14
16
  private static readonly ANSI = {
15
17
  reset: '\x1b[0m',
16
18
  bold: '\x1b[1m',
@@ -323,14 +325,51 @@ export class OverviewUI {
323
325
  return value.replace(/\x1b\[[0-9;]*m/g, '')
324
326
  }
325
327
 
328
+ private visibleLength(value: string): number {
329
+ return this.stripAnsi(value).length
330
+ }
331
+
332
+ private getRenderWidth(): number {
333
+ return Math.max(20, this.terminal.cols || 80)
334
+ }
335
+
336
+ private getContentWidth(): number {
337
+ return Math.max(10, this.getRenderWidth() - (OverviewUI.HORIZONTAL_MARGIN * 2))
338
+ }
339
+
340
+ private insetLine(line: string): string {
341
+ if (line.length === 0) return ''
342
+ return `${' '.repeat(OverviewUI.HORIZONTAL_MARGIN)}${line}`
343
+ }
344
+
345
+ private finalizeLines(lines: string[]): string[] {
346
+ const maxWidth = this.getRenderWidth()
347
+ return lines.map((line) => {
348
+ const inset = this.insetLine(line)
349
+ return this.fitVisible(inset, maxWidth)
350
+ })
351
+ }
352
+
326
353
  private padRight(value: string, width: number): string {
327
- const visibleLength = this.stripAnsi(value).length
354
+ const visibleLength = this.visibleLength(value)
328
355
  if (visibleLength >= width) {
329
356
  return value
330
357
  }
331
358
  return value + ' '.repeat(width - visibleLength)
332
359
  }
333
360
 
361
+ private fitPlain(value: string, width: number): string {
362
+ if (width <= 0) return ''
363
+ if (value.length <= width) return value
364
+ if (width === 1) return '…'
365
+ return `${value.slice(0, width - 1)}…`
366
+ }
367
+
368
+ private fitVisible(value: string, width: number): string {
369
+ const plain = this.stripAnsi(value)
370
+ return plain.length <= width ? value : this.fitPlain(plain, width)
371
+ }
372
+
334
373
  private color(text: string, ...codes: string[]): string {
335
374
  return `${codes.join('')}${text}${OverviewUI.ANSI.reset}`
336
375
  }
@@ -350,31 +389,117 @@ export class OverviewUI {
350
389
  }
351
390
  }
352
391
 
353
- private makeRule(label: string, width = 64): string {
392
+ private makeRule(label: string, width = this.getRenderWidth()): string {
354
393
  const text = ` ${label} `
355
394
  if (text.length >= width) {
356
- return text
395
+ return this.fitPlain(text, width)
357
396
  }
358
397
  const fill = '─'.repeat(width - text.length)
359
398
  return text + fill
360
399
  }
361
400
 
362
- private formatSummary(): string {
401
+ private wrapPlainText(text: string, width: number): string[] {
402
+ if (width <= 0) return ['']
403
+ const words = text.split(/\s+/).filter(Boolean)
404
+ if (words.length === 0) return ['']
405
+
406
+ const lines: string[] = []
407
+ let current = ''
408
+ for (const word of words) {
409
+ const next = current ? `${current} ${word}` : word
410
+ if (next.length <= width) {
411
+ current = next
412
+ continue
413
+ }
414
+
415
+ if (current) {
416
+ lines.push(current)
417
+ current = ''
418
+ }
419
+
420
+ if (word.length <= width) {
421
+ current = word
422
+ } else {
423
+ lines.push(this.fitPlain(word, width))
424
+ }
425
+ }
426
+
427
+ if (current) {
428
+ lines.push(current)
429
+ }
430
+
431
+ return lines
432
+ }
433
+
434
+ private wrapPathText(text: string, width: number): string[] {
435
+ if (width <= 0) return ['']
436
+ if (text.length <= width) return [text]
437
+
438
+ const lines: string[] = []
439
+ let remaining = text
440
+
441
+ while (remaining.length > width) {
442
+ const slice = remaining.slice(0, width + 1)
443
+ const breakIndex = slice.lastIndexOf('/')
444
+ if (breakIndex > 0) {
445
+ lines.push(remaining.slice(0, breakIndex))
446
+ remaining = remaining.slice(breakIndex)
447
+ continue
448
+ }
449
+
450
+ lines.push(remaining.slice(0, width))
451
+ remaining = remaining.slice(width)
452
+ }
453
+
454
+ if (remaining.length > 0) {
455
+ lines.push(remaining)
456
+ }
457
+
458
+ return lines
459
+ }
460
+
461
+ private wrapVisibleParts(parts: string[], width: number): string[] {
462
+ if (width <= 0) return ['']
463
+
464
+ const lines: string[] = []
465
+ let current = ''
466
+ for (const part of parts) {
467
+ const next = current ? `${current} · ${part}` : part
468
+ if (this.visibleLength(next) <= width) {
469
+ current = next
470
+ continue
471
+ }
472
+
473
+ if (current) {
474
+ lines.push(current)
475
+ }
476
+
477
+ current = this.visibleLength(part) <= width ? part : this.fitVisible(part, width)
478
+ }
479
+
480
+ if (current) {
481
+ lines.push(current)
482
+ }
483
+
484
+ return lines
485
+ }
486
+
487
+ private formatSummaryLines(width: number): string[] {
363
488
  const parts = OverviewUI.STATUS_GROUPS.map((group) => {
364
489
  const count = this.countByStatus(group.status)
365
490
  return this.color(`${group.label} ${count}`, OverviewUI.ANSI.bold, this.getStatusColor(group.status))
366
491
  })
367
- return parts.join(' · ')
492
+ return this.wrapVisibleParts(parts, width)
368
493
  }
369
494
 
370
495
  private buildMainLines(): string[] {
371
496
  const orderedSessions = this.getOrderedSessions()
372
497
  const selectedId = this.manager.selectedSession?.id
498
+ const width = this.getContentWidth()
373
499
  const lines = [
374
- '╭────────────────────────────── mav overview ──────────────────────────────╮',
375
- `│ ${this.padRight('AGENTS', 74)} │`,
376
- `│ ${this.padRight(this.formatSummary(), 74)} │`,
377
- '╰──────────────────────────────────────────────────────────────────────────╯',
500
+ this.color(this.makeRule('mav overview', width), OverviewUI.ANSI.dim),
501
+ 'AGENTS',
502
+ ...this.formatSummaryLines(width),
378
503
  '',
379
504
  ]
380
505
 
@@ -397,7 +522,10 @@ export class OverviewUI {
397
522
  const sessionTitle = session.displayName ?? session.id
398
523
  const sessionLabel = session.type ? `${sessionTitle} (${session.type})` : sessionTitle
399
524
  const prefix = session.id === selectedId ? '> ' : ' '
400
- const sessionLine = `${prefix}${statusIcon} ${sessionLabel} ${this.getStatusLabel(session.status)}`
525
+ const sessionLine = this.fitPlain(
526
+ `${prefix}${statusIcon} ${sessionLabel} ${this.getStatusLabel(session.status)}`,
527
+ width
528
+ )
401
529
  lines.push(session.id === selectedId
402
530
  ? this.color(sessionLine, OverviewUI.ANSI.bold, color)
403
531
  : this.color(sessionLine, color))
@@ -408,58 +536,55 @@ export class OverviewUI {
408
536
  }
409
537
 
410
538
  if (orderedSessions.length === 0) {
411
- lines.push(this.makeRule('empty'))
412
- lines.push(' No sessions. Press n to add one.')
539
+ lines.push(this.color(this.makeRule('empty', width), OverviewUI.ANSI.dim))
540
+ lines.push(this.fitPlain(' No sessions. Press n to add one.', width))
413
541
  lines.push('')
414
542
  }
415
543
 
416
- lines.push('╭──────────────────────────────── controls ────────────────────────────────╮')
417
- lines.push(`│ ${this.padRight('↑/↓ or j/k move Enter detail Ctrl+] back n new d delete q quit', 74)} │`)
418
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯')
419
- return lines
544
+ lines.push(this.color(this.makeRule('controls', width), OverviewUI.ANSI.dim))
545
+ lines.push(...this.wrapPlainText('↑/↓ or j/k move Enter detail Ctrl+] back n new d delete q quit', width))
546
+ return this.finalizeLines(lines)
420
547
  }
421
548
 
422
549
  private buildPromptLines(): string[] {
423
550
  const state = this.promptState
424
551
  if (!state) return []
425
552
 
426
- const lines = ['', '╭──────────────────────────────── prompt ──────────────────────────────────╮']
553
+ const width = this.getContentWidth()
554
+ const lines = ['', this.color(this.makeRule('prompt', width), OverviewUI.ANSI.dim)]
427
555
  if (state.mode === 'agent') {
428
- lines.push(`│ ${this.padRight('Select agent type', 74)} │`)
429
- lines.push('│ │')
556
+ lines.push(this.fitPlain('Select agent type', width))
557
+ lines.push('')
430
558
  for (const [index, agentType] of OverviewUI.AGENT_TYPES.entries()) {
431
- lines.push(`│ ${this.padRight(`${index === state.selectedIndex ? '> ' : ' '}${agentType}`, 74)} │`)
559
+ lines.push(this.fitPlain(`${index === state.selectedIndex ? '> ' : ' '}${agentType}`, width))
432
560
  }
433
- lines.push('│ │')
434
- lines.push(`│ ${this.padRight('Enter: select Esc: cancel', 74)} │`)
435
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯')
436
- return lines
561
+ lines.push('')
562
+ lines.push(...this.wrapPlainText('Enter: select Esc: cancel', width))
563
+ return this.finalizeLines(lines)
437
564
  }
438
565
 
439
566
  if (state.mode === 'cwd') {
440
- lines.push(`│ ${this.padRight(`cwd for ${state.agentType}`, 74)} │`)
441
- lines.push(`│ ${this.padRight(state.value, 74)} │`)
567
+ lines.push(this.fitPlain(`cwd for ${state.agentType}`, width))
568
+ lines.push(...this.wrapPathText(state.value, width))
442
569
  if (state.candidates.length > 1) {
443
- lines.push('│ │')
444
- lines.push(`│ ${this.padRight('Candidates:', 74)} │`)
570
+ lines.push('')
571
+ lines.push(this.fitPlain('Candidates:', width))
445
572
  for (const candidate of state.candidates.slice(0, 8)) {
446
- lines.push(`│ ${this.padRight(` ${candidate}`, 74)} │`)
573
+ lines.push(...this.wrapPathText(` ${candidate}`, width))
447
574
  }
448
575
  }
449
- lines.push('│ │')
450
- lines.push(`│ ${this.padRight('Tab: complete Enter: confirm Esc: cancel', 74)} │`)
451
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯')
452
- return lines
576
+ lines.push('')
577
+ lines.push(...this.wrapPlainText('Tab: complete Enter: confirm Esc: cancel', width))
578
+ return this.finalizeLines(lines)
453
579
  }
454
580
 
455
- lines.push(`│ ${this.padRight('Error', 74)} │`)
581
+ lines.push(this.fitPlain('Error', width))
456
582
  for (const line of state.message.split('\n')) {
457
- lines.push(`│ ${this.padRight(line, 74)} │`)
583
+ lines.push(this.fitPlain(line, width))
458
584
  }
459
- lines.push('│ │')
460
- lines.push(`│ ${this.padRight('Enter/Esc/q: close', 74)} │`)
461
- lines.push('╰──────────────────────────────────────────────────────────────────────────╯')
462
- return lines
585
+ lines.push('')
586
+ lines.push(...this.wrapPlainText('Enter/Esc/q: close', width))
587
+ return this.finalizeLines(lines)
463
588
  }
464
589
 
465
590
  private render(): void {