@k1e1n04/mav 0.1.18 → 0.1.19

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,216 +1,166 @@
1
- import blessed from 'neo-blessed';
2
1
  import { getAgentDefaults, resolveSessionArgs } from '../agent-launch.js';
3
2
  import { completePath } from './path-completion.js';
4
3
  export class OverviewUI {
4
+ static ANSI = {
5
+ reset: '\x1b[0m',
6
+ bold: '\x1b[1m',
7
+ dim: '\x1b[2m',
8
+ fgSlate: '\x1b[38;5;245m',
9
+ fgGreen: '\x1b[38;5;42m',
10
+ fgAmber: '\x1b[38;5;221m',
11
+ fgCyan: '\x1b[38;5;81m',
12
+ fgRed: '\x1b[38;5;203m',
13
+ };
5
14
  static STATUS_GROUPS = [
6
15
  { status: 'running', label: 'Working' },
7
16
  { status: 'idle', label: 'Waiting' },
8
17
  { status: 'done', label: 'Complete' },
9
18
  { status: 'error', label: 'Failed' },
10
19
  ];
11
- static STATUS_COLORS = {
12
- running: 'cyan',
13
- idle: 'yellow',
14
- done: 'green',
15
- error: 'red',
16
- };
17
- screen;
20
+ static AGENT_TYPES = ['claude-code', 'codex', 'gemini-cli', 'copilot'];
21
+ terminal;
18
22
  manager;
19
23
  onSessionCreated;
20
- listBox;
21
- promptOpen = false;
22
- constructor(screen, manager, onSessionCreated) {
23
- this.screen = screen;
24
+ promptState = null;
25
+ displaySessionIds = [];
26
+ visible = false;
27
+ constructor(terminal, manager, onSessionCreated) {
28
+ this.terminal = terminal;
24
29
  this.manager = manager;
25
30
  this.onSessionCreated = onSessionCreated;
26
- this.listBox = blessed.list({
27
- parent: screen,
28
- top: 0,
29
- left: 0,
30
- width: '100%',
31
- height: '100%',
32
- border: { type: 'line' },
33
- label: ' AGENTS ',
34
- tags: true,
35
- style: {
36
- selected: { bg: 'blue', fg: 'white' },
37
- border: { fg: 'cyan' },
38
- },
39
- // keys: true を設定すると blessed 組み込みの up()/down() もカスタムハンドラーと
40
- // 同時に実行され、selected がヘッダー行(cwd名やステータスグループ名)に一時的に
41
- // 移動してしまう競合が起きる。矢印キーはカスタムハンドラーのみで処理する。
42
- mouse: true,
43
- });
44
- this.bindKeys();
45
31
  this.syncList();
46
32
  manager.on('data', (sessionId) => {
47
33
  if (sessionId !== this.manager.selectedSession?.id) {
48
34
  return;
49
35
  }
50
36
  this.syncList();
51
- screen.render();
37
+ this.render();
52
38
  });
53
39
  manager.on('exit', () => {
54
40
  this.syncList();
55
- screen.render();
41
+ this.render();
56
42
  });
57
43
  manager.on('status', () => {
58
44
  this.syncList();
59
- screen.render();
45
+ this.render();
60
46
  });
61
47
  manager.on('name', () => {
62
48
  this.syncList();
63
- screen.render();
49
+ this.render();
64
50
  });
65
- // removeSession() は emitSelection() を呼ぶが、OverviewUI は 'selection' を
66
- // listen していないため、index.ts の exit ハンドラ経由で自動削除された場合に
67
- // UI が再描画されない。'selection' を listen して確実に同期する。
68
51
  manager.on('selection', () => {
69
52
  this.syncList();
70
- screen.render();
53
+ this.render();
71
54
  });
72
55
  }
73
- bindKeys() {
74
- this.listBox.key(['up', 'k'], () => {
75
- if (this.manager.sessions.length === 0)
76
- return;
56
+ handleKeypress(str, key) {
57
+ if (this.promptState?.mode === 'agent') {
58
+ this.handleAgentPromptKeypress(key);
59
+ return;
60
+ }
61
+ if (this.promptState?.mode === 'cwd') {
62
+ this.handleCwdPromptKeypress(key);
63
+ return;
64
+ }
65
+ if (this.promptState?.mode === 'error') {
66
+ if (key.name === 'enter' || key.name === 'return' || key.name === 'escape' || str === 'q') {
67
+ this.promptState = null;
68
+ this.render();
69
+ }
70
+ return;
71
+ }
72
+ if ((key.name === 'up' || str === 'k') && this.manager.sessions.length > 0) {
77
73
  this.moveSelection(-1);
78
- // syncList() と screen.render() は moveSelection() → selectSession() →
79
- // emitSelection() → 'selection' イベント経由で自動的に呼ばれる
80
- });
81
- this.listBox.key(['down', 'j'], () => {
82
- if (this.manager.sessions.length === 0)
83
- return;
74
+ return;
75
+ }
76
+ if ((key.name === 'down' || str === 'j') && this.manager.sessions.length > 0) {
84
77
  this.moveSelection(1);
85
- // syncList() と screen.render() は moveSelection() → selectSession() →
86
- // emitSelection() → 'selection' イベント経由で自動的に呼ばれる
87
- });
88
- this.listBox.key('n', () => {
78
+ return;
79
+ }
80
+ if (str === 'n') {
89
81
  this.showAddPrompt();
90
- });
91
- this.listBox.key(['d', 'C-x'], () => {
82
+ return;
83
+ }
84
+ if (str === 'd' || (key.ctrl && key.name === 'x')) {
92
85
  const session = this.manager.selectedSession;
93
86
  if (session) {
94
87
  this.manager.removeSession(session.id);
95
88
  this.syncList();
96
- this.screen.render();
89
+ this.render();
97
90
  }
98
- });
91
+ }
99
92
  }
100
- showAddPrompt() {
101
- if (this.promptOpen)
93
+ handleAgentPromptKeypress(key) {
94
+ const state = this.promptState;
95
+ if (!state || state.mode !== 'agent')
102
96
  return;
103
- this.promptOpen = true;
104
- const agentTypes = ['claude-code', 'codex', 'gemini-cli', 'copilot'];
105
- const prompt = blessed.list({
106
- parent: this.screen,
107
- top: 'center',
108
- left: 'center',
109
- width: 40,
110
- height: agentTypes.length + 4,
111
- border: { type: 'line' },
112
- label: ' Select agent type ',
113
- items: agentTypes,
114
- keys: true,
115
- style: {
116
- selected: { bg: 'blue', fg: 'white' },
117
- border: { fg: 'green' },
118
- },
119
- });
120
- const close = () => {
121
- this.promptOpen = false;
122
- prompt.destroy();
123
- this.listBox.focus();
124
- this.screen.render();
125
- };
126
- prompt.key('enter', () => {
127
- const selectedIdx = prompt.selected ?? 0;
128
- const selected = agentTypes[selectedIdx];
129
- prompt.destroy();
130
- this.screen.render();
131
- this.showCwdPrompt(selected);
132
- });
133
- prompt.key('escape', close);
134
- prompt.focus();
135
- this.screen.render();
97
+ if (key.name === 'escape') {
98
+ this.promptState = null;
99
+ this.render();
100
+ return;
101
+ }
102
+ if (key.name === 'up') {
103
+ state.selectedIndex =
104
+ (state.selectedIndex - 1 + OverviewUI.AGENT_TYPES.length) % OverviewUI.AGENT_TYPES.length;
105
+ this.render();
106
+ return;
107
+ }
108
+ if (key.name === 'down') {
109
+ state.selectedIndex = (state.selectedIndex + 1) % OverviewUI.AGENT_TYPES.length;
110
+ this.render();
111
+ return;
112
+ }
113
+ if (key.name === 'enter' || key.name === 'return') {
114
+ const agentType = OverviewUI.AGENT_TYPES[state.selectedIndex];
115
+ this.promptState = {
116
+ mode: 'cwd',
117
+ agentType,
118
+ value: process.cwd(),
119
+ candidates: [],
120
+ };
121
+ this.render();
122
+ }
136
123
  }
137
- showCwdPrompt(agentType) {
138
- let value = process.cwd();
139
- let candidateList = null;
140
- const box = blessed.box({
141
- parent: this.screen,
142
- top: 'center',
143
- left: 'center',
144
- width: 60,
145
- height: 3,
146
- border: { type: 'line' },
147
- label: ' cwd Tab:補完 Enter:確定 Esc:キャンセル ',
148
- style: { border: { fg: 'green' } },
149
- });
150
- const renderInput = () => {
151
- box.setContent(value);
152
- this.screen.render();
153
- };
154
- const closeCandidates = () => {
155
- if (candidateList) {
156
- candidateList.destroy();
157
- candidateList = null;
158
- }
159
- };
160
- const cleanup = () => {
161
- this.screen.removeListener('keypress', onKeypress);
162
- closeCandidates();
163
- this.promptOpen = false;
164
- box.destroy();
165
- this.listBox.focus();
166
- this.screen.render();
167
- };
168
- const onKeypress = (_ch, key) => {
169
- if (!key)
170
- return;
171
- closeCandidates();
172
- if (key.name === 'enter' || key.name === 'return') {
173
- const expanded = value.trim().replace(/^~/, process.env.HOME ?? '~') || process.cwd();
174
- cleanup();
175
- this.spawnAgent(agentType, expanded);
176
- }
177
- else if (key.name === 'escape') {
178
- cleanup();
179
- }
180
- else if (key.name === 'tab') {
181
- const { completed, candidates } = completePath(value);
182
- value = completed;
183
- if (candidates.length > 1) {
184
- const maxVisible = Math.min(candidates.length, 8);
185
- candidateList = blessed.list({
186
- parent: this.screen,
187
- top: '50%',
188
- left: 'center',
189
- width: 60,
190
- height: maxVisible + 2,
191
- border: { type: 'line' },
192
- items: candidates,
193
- keys: false,
194
- style: { border: { fg: 'cyan' } },
195
- });
196
- }
197
- renderInput();
198
- }
199
- else if (key.name === 'backspace') {
200
- value = value.slice(0, -1);
201
- renderInput();
202
- }
203
- else if (!key.ctrl && !key.meta && key.sequence?.length === 1) {
204
- value += key.sequence;
205
- renderInput();
206
- }
207
- };
208
- // 現在のキーイベント(enter)がこのリスナーに届かないよう1tick遅らせる
209
- setImmediate(() => {
210
- this.screen.on('keypress', onKeypress);
211
- });
212
- box.focus();
213
- renderInput();
124
+ handleCwdPromptKeypress(key) {
125
+ const state = this.promptState;
126
+ if (!state || state.mode !== 'cwd')
127
+ return;
128
+ if (key.name === 'escape') {
129
+ this.promptState = null;
130
+ this.render();
131
+ return;
132
+ }
133
+ if (key.name === 'enter' || key.name === 'return') {
134
+ const expanded = state.value.trim().replace(/^~/, process.env.HOME ?? '~') || process.cwd();
135
+ const agentType = state.agentType;
136
+ this.promptState = null;
137
+ this.render();
138
+ this.spawnAgent(agentType, expanded);
139
+ return;
140
+ }
141
+ if (key.name === 'tab') {
142
+ const { completed, candidates } = completePath(state.value);
143
+ state.value = completed;
144
+ state.candidates = candidates;
145
+ this.render();
146
+ return;
147
+ }
148
+ state.candidates = [];
149
+ if (key.name === 'backspace') {
150
+ state.value = state.value.slice(0, -1);
151
+ this.render();
152
+ return;
153
+ }
154
+ if (!key.ctrl && !key.meta && key.sequence?.length === 1) {
155
+ state.value += key.sequence;
156
+ this.render();
157
+ }
158
+ }
159
+ showAddPrompt() {
160
+ if (this.promptState)
161
+ return;
162
+ this.promptState = { mode: 'agent', selectedIndex: 0 };
163
+ this.render();
214
164
  }
215
165
  spawnAgent(agentType, cwd) {
216
166
  const defaults = getAgentDefaults(agentType);
@@ -236,60 +186,12 @@ export class OverviewUI {
236
186
  this.onSessionCreated?.(session);
237
187
  }
238
188
  showError(message) {
239
- const overlay = blessed.box({
240
- parent: this.screen,
241
- top: 'center',
242
- left: 'center',
243
- width: 50,
244
- height: message.split('\n').length + 4,
245
- border: { type: 'line' },
246
- label: ' Error ',
247
- content: `\n ${message.split('\n').join('\n ')}`,
248
- style: { border: { fg: 'red' }, label: { fg: 'red' } },
249
- keys: true,
250
- mouse: true,
251
- });
252
- overlay.key(['enter', 'escape', 'q'], () => {
253
- overlay.destroy();
254
- this.listBox.focus();
255
- this.screen.render();
256
- });
257
- overlay.focus();
258
- this.screen.render();
189
+ this.promptState = { mode: 'error', message };
190
+ this.render();
259
191
  }
260
192
  syncList() {
261
193
  const orderedSessions = this.getOrderedSessions();
262
- const items = [];
263
- const selectedId = this.manager.selectedSession?.id;
264
- let selectedDisplayIndex = -1;
265
- const cwdGroups = this.groupByCwd(orderedSessions);
266
- for (const [cwd, sessions] of cwdGroups) {
267
- items.push(` {bold}${this.shortenPath(cwd)}{/bold}`);
268
- for (const group of OverviewUI.STATUS_GROUPS) {
269
- const groupSessions = sessions.filter((s) => s.status === group.status);
270
- if (groupSessions.length === 0)
271
- continue;
272
- items.push(` ${group.label}`);
273
- for (const session of groupSessions) {
274
- const statusIcon = session.status === 'running' ? '⣾'
275
- : session.status === 'idle' ? '○'
276
- : session.status === 'done' ? '✓'
277
- : '✗';
278
- const sessionTitle = session.displayName ?? session.id;
279
- const sessionLabel = session.type ? `${sessionTitle} (${session.type})` : sessionTitle;
280
- const content = `${statusIcon} ${sessionLabel} ${this.getStatusLabel(session.status)}`;
281
- const color = OverviewUI.STATUS_COLORS[session.status];
282
- items.push(` {${color}-fg}${content}{/${color}-fg}`);
283
- if (session.id === selectedId) {
284
- selectedDisplayIndex = items.length - 1;
285
- }
286
- }
287
- }
288
- }
289
- this.listBox.setItems(items);
290
- if (selectedDisplayIndex >= 0) {
291
- this.listBox.select(selectedDisplayIndex);
292
- }
194
+ this.displaySessionIds = orderedSessions.map((session) => session.id);
293
195
  }
294
196
  groupByCwd(sessions) {
295
197
  const map = new Map();
@@ -322,18 +224,17 @@ export class OverviewUI {
322
224
  });
323
225
  }
324
226
  moveSelection(direction) {
325
- const orderedSessions = this.getOrderedSessions();
326
227
  const selectedId = this.manager.selectedSession?.id;
327
- const currentIndex = selectedId
328
- ? orderedSessions.findIndex((session) => session.id === selectedId)
329
- : -1;
228
+ if (this.displaySessionIds.length === 0)
229
+ return;
230
+ const currentIndex = selectedId ? this.displaySessionIds.indexOf(selectedId) : -1;
330
231
  const nextIndex = currentIndex === -1
331
232
  ? 0
332
- : Math.max(0, Math.min(orderedSessions.length - 1, currentIndex + direction));
333
- const nextSession = orderedSessions[nextIndex];
334
- if (!nextSession)
233
+ : (currentIndex + direction + this.displaySessionIds.length) % this.displaySessionIds.length;
234
+ const nextSessionId = this.displaySessionIds[nextIndex];
235
+ if (!nextSessionId)
335
236
  return;
336
- const managerIndex = this.manager.sessions.findIndex((session) => session.id === nextSession.id);
237
+ const managerIndex = this.manager.sessions.findIndex((session) => session.id === nextSessionId);
337
238
  if (managerIndex >= 0) {
338
239
  this.manager.selectSession(managerIndex);
339
240
  }
@@ -366,20 +267,155 @@ export class OverviewUI {
366
267
  return 99;
367
268
  }
368
269
  }
270
+ countByStatus(status) {
271
+ return this.manager.sessions.filter((session) => session.status === status).length;
272
+ }
273
+ stripAnsi(value) {
274
+ return value.replace(/\x1b\[[0-9;]*m/g, '');
275
+ }
276
+ padRight(value, width) {
277
+ const visibleLength = this.stripAnsi(value).length;
278
+ if (visibleLength >= width) {
279
+ return value;
280
+ }
281
+ return value + ' '.repeat(width - visibleLength);
282
+ }
283
+ color(text, ...codes) {
284
+ return `${codes.join('')}${text}${OverviewUI.ANSI.reset}`;
285
+ }
286
+ getStatusColor(status) {
287
+ switch (status) {
288
+ case 'running':
289
+ return OverviewUI.ANSI.fgGreen;
290
+ case 'idle':
291
+ return OverviewUI.ANSI.fgAmber;
292
+ case 'done':
293
+ return OverviewUI.ANSI.fgCyan;
294
+ case 'error':
295
+ return OverviewUI.ANSI.fgRed;
296
+ default:
297
+ return OverviewUI.ANSI.fgSlate;
298
+ }
299
+ }
300
+ makeRule(label, width = 64) {
301
+ const text = ` ${label} `;
302
+ if (text.length >= width) {
303
+ return text;
304
+ }
305
+ const fill = '─'.repeat(width - text.length);
306
+ return text + fill;
307
+ }
308
+ formatSummary() {
309
+ const parts = OverviewUI.STATUS_GROUPS.map((group) => {
310
+ const count = this.countByStatus(group.status);
311
+ return this.color(`${group.label} ${count}`, OverviewUI.ANSI.bold, this.getStatusColor(group.status));
312
+ });
313
+ return parts.join(' · ');
314
+ }
315
+ buildMainLines() {
316
+ const orderedSessions = this.getOrderedSessions();
317
+ const selectedId = this.manager.selectedSession?.id;
318
+ const lines = [
319
+ '╭────────────────────────────── mav overview ──────────────────────────────╮',
320
+ `│ ${this.padRight('AGENTS', 74)} │`,
321
+ `│ ${this.padRight(this.formatSummary(), 74)} │`,
322
+ '╰──────────────────────────────────────────────────────────────────────────╯',
323
+ '',
324
+ ];
325
+ const cwdGroups = this.groupByCwd(orderedSessions);
326
+ for (const [cwd, sessions] of cwdGroups) {
327
+ lines.push(this.color(this.makeRule(this.shortenPath(cwd)), OverviewUI.ANSI.dim));
328
+ for (const group of OverviewUI.STATUS_GROUPS) {
329
+ const groupSessions = sessions.filter((s) => s.status === group.status);
330
+ if (groupSessions.length === 0)
331
+ continue;
332
+ lines.push(this.color(` ${group.label} (${groupSessions.length})`, OverviewUI.ANSI.bold, this.getStatusColor(group.status)));
333
+ for (const session of groupSessions) {
334
+ const color = this.getStatusColor(session.status);
335
+ const statusIcon = session.status === 'running' ? '⣾'
336
+ : session.status === 'idle' ? '○'
337
+ : session.status === 'done' ? '✓'
338
+ : '✗';
339
+ const sessionTitle = session.displayName ?? session.id;
340
+ const sessionLabel = session.type ? `${sessionTitle} (${session.type})` : sessionTitle;
341
+ const prefix = session.id === selectedId ? '> ' : ' ';
342
+ const sessionLine = `${prefix}${statusIcon} ${sessionLabel} ${this.getStatusLabel(session.status)}`;
343
+ lines.push(session.id === selectedId
344
+ ? this.color(sessionLine, OverviewUI.ANSI.bold, color)
345
+ : this.color(sessionLine, color));
346
+ }
347
+ lines.push('');
348
+ }
349
+ }
350
+ if (orderedSessions.length === 0) {
351
+ lines.push(this.makeRule('empty'));
352
+ lines.push(' No sessions. Press n to add one.');
353
+ lines.push('');
354
+ }
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;
359
+ }
360
+ buildPromptLines() {
361
+ const state = this.promptState;
362
+ if (!state)
363
+ return [];
364
+ const lines = ['', '╭──────────────────────────────── prompt ──────────────────────────────────╮'];
365
+ if (state.mode === 'agent') {
366
+ lines.push(`│ ${this.padRight('Select agent type', 74)} │`);
367
+ lines.push('│ │');
368
+ for (const [index, agentType] of OverviewUI.AGENT_TYPES.entries()) {
369
+ lines.push(`│ ${this.padRight(`${index === state.selectedIndex ? '> ' : ' '}${agentType}`, 74)} │`);
370
+ }
371
+ lines.push('│ │');
372
+ lines.push(`│ ${this.padRight('Enter: select Esc: cancel', 74)} │`);
373
+ lines.push('╰──────────────────────────────────────────────────────────────────────────╯');
374
+ return lines;
375
+ }
376
+ if (state.mode === 'cwd') {
377
+ lines.push(`│ ${this.padRight(`cwd for ${state.agentType}`, 74)} │`);
378
+ lines.push(`│ ${this.padRight(state.value, 74)} │`);
379
+ if (state.candidates.length > 1) {
380
+ lines.push('│ │');
381
+ lines.push(`│ ${this.padRight('Candidates:', 74)} │`);
382
+ for (const candidate of state.candidates.slice(0, 8)) {
383
+ lines.push(`│ ${this.padRight(` ${candidate}`, 74)} │`);
384
+ }
385
+ }
386
+ lines.push('│ │');
387
+ lines.push(`│ ${this.padRight('Tab: complete Enter: confirm Esc: cancel', 74)} │`);
388
+ lines.push('╰──────────────────────────────────────────────────────────────────────────╯');
389
+ return lines;
390
+ }
391
+ lines.push(`│ ${this.padRight('Error', 74)} │`);
392
+ for (const line of state.message.split('\n')) {
393
+ lines.push(`│ ${this.padRight(line, 74)} │`);
394
+ }
395
+ lines.push('│ │');
396
+ lines.push(`│ ${this.padRight('Enter/Esc/q: close', 74)} │`);
397
+ lines.push('╰──────────────────────────────────────────────────────────────────────────╯');
398
+ return lines;
399
+ }
400
+ render() {
401
+ if (!this.visible)
402
+ return;
403
+ this.terminal.render([...this.buildMainLines(), ...this.buildPromptLines()].join('\n'));
404
+ }
369
405
  show() {
370
- this.listBox.show();
371
- this.listBox.focus();
406
+ this.visible = true;
372
407
  this.syncList();
373
- this.screen.render();
408
+ this.render();
374
409
  }
375
410
  isPromptOpen() {
376
- return this.promptOpen;
411
+ return this.promptState != null;
377
412
  }
378
413
  resizeSelectedSession() {
379
414
  this.syncList();
415
+ this.render();
380
416
  }
381
417
  hide() {
382
- this.listBox.hide();
418
+ this.visible = false;
383
419
  }
384
420
  }
385
421
  //# sourceMappingURL=overview.js.map
@@ -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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"}