@appkit/llamacpp-cli 1.9.0 → 1.10.0
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/CHANGELOG.md +16 -0
- package/README.md +171 -42
- package/dist/cli.js +75 -10
- package/dist/cli.js.map +1 -1
- package/dist/commands/completion.d.ts +9 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +83 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/monitor.js +1 -1
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/ps.d.ts +1 -3
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +36 -115
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/router/config.d.ts +1 -0
- package/dist/commands/router/config.d.ts.map +1 -1
- package/dist/commands/router/config.js +7 -2
- package/dist/commands/router/config.js.map +1 -1
- package/dist/commands/router/logs.d.ts +12 -0
- package/dist/commands/router/logs.d.ts.map +1 -0
- package/dist/commands/router/logs.js +238 -0
- package/dist/commands/router/logs.js.map +1 -0
- package/dist/commands/tui.d.ts +2 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/commands/tui.js +27 -0
- package/dist/commands/tui.js.map +1 -0
- package/dist/lib/completion.d.ts +5 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +195 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/model-downloader.d.ts +5 -1
- package/dist/lib/model-downloader.d.ts.map +1 -1
- package/dist/lib/model-downloader.js +53 -20
- package/dist/lib/model-downloader.js.map +1 -1
- package/dist/lib/router-logger.d.ts +61 -0
- package/dist/lib/router-logger.d.ts.map +1 -0
- package/dist/lib/router-logger.js +200 -0
- package/dist/lib/router-logger.js.map +1 -0
- package/dist/lib/router-manager.d.ts.map +1 -1
- package/dist/lib/router-manager.js +1 -0
- package/dist/lib/router-manager.js.map +1 -1
- package/dist/lib/router-server.d.ts +9 -0
- package/dist/lib/router-server.d.ts.map +1 -1
- package/dist/lib/router-server.js +169 -57
- package/dist/lib/router-server.js.map +1 -1
- package/dist/tui/ConfigApp.d.ts +7 -0
- package/dist/tui/ConfigApp.d.ts.map +1 -0
- package/dist/tui/ConfigApp.js +1002 -0
- package/dist/tui/ConfigApp.js.map +1 -0
- package/dist/tui/HistoricalMonitorApp.d.ts.map +1 -1
- package/dist/tui/HistoricalMonitorApp.js +85 -49
- package/dist/tui/HistoricalMonitorApp.js.map +1 -1
- package/dist/tui/ModelsApp.d.ts +7 -0
- package/dist/tui/ModelsApp.d.ts.map +1 -0
- package/dist/tui/ModelsApp.js +362 -0
- package/dist/tui/ModelsApp.js.map +1 -0
- package/dist/tui/MultiServerMonitorApp.d.ts +6 -1
- package/dist/tui/MultiServerMonitorApp.d.ts.map +1 -1
- package/dist/tui/MultiServerMonitorApp.js +1038 -122
- package/dist/tui/MultiServerMonitorApp.js.map +1 -1
- package/dist/tui/RootNavigator.d.ts +7 -0
- package/dist/tui/RootNavigator.d.ts.map +1 -0
- package/dist/tui/RootNavigator.js +55 -0
- package/dist/tui/RootNavigator.js.map +1 -0
- package/dist/tui/SearchApp.d.ts +6 -0
- package/dist/tui/SearchApp.d.ts.map +1 -0
- package/dist/tui/SearchApp.js +451 -0
- package/dist/tui/SearchApp.js.map +1 -0
- package/dist/tui/SplashScreen.d.ts +16 -0
- package/dist/tui/SplashScreen.d.ts.map +1 -0
- package/dist/tui/SplashScreen.js +129 -0
- package/dist/tui/SplashScreen.js.map +1 -0
- package/dist/types/router-config.d.ts +1 -0
- package/dist/types/router-config.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +41 -10
- package/src/commands/monitor.ts +1 -1
- package/src/commands/ps.ts +44 -133
- package/src/commands/router/config.ts +9 -2
- package/src/commands/router/logs.ts +256 -0
- package/src/commands/tui.ts +25 -0
- package/src/lib/model-downloader.ts +57 -20
- package/src/lib/router-logger.ts +201 -0
- package/src/lib/router-manager.ts +1 -0
- package/src/lib/router-server.ts +193 -62
- package/src/tui/ConfigApp.ts +1085 -0
- package/src/tui/HistoricalMonitorApp.ts +88 -49
- package/src/tui/ModelsApp.ts +368 -0
- package/src/tui/MultiServerMonitorApp.ts +1163 -122
- package/src/tui/RootNavigator.ts +74 -0
- package/src/tui/SearchApp.ts +511 -0
- package/src/tui/SplashScreen.ts +149 -0
- package/src/types/router-config.ts +1 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createModelsUI = createModelsUI;
|
|
40
|
+
const blessed_1 = __importDefault(require("blessed"));
|
|
41
|
+
const model_scanner_js_1 = require("../lib/model-scanner.js");
|
|
42
|
+
const state_manager_js_1 = require("../lib/state-manager.js");
|
|
43
|
+
const launchctl_manager_js_1 = require("../lib/launchctl-manager.js");
|
|
44
|
+
const format_utils_js_1 = require("../utils/format-utils.js");
|
|
45
|
+
const fs = __importStar(require("fs/promises"));
|
|
46
|
+
const SearchApp_js_1 = require("./SearchApp.js");
|
|
47
|
+
/**
|
|
48
|
+
* Models management TUI
|
|
49
|
+
* Display installed models and allow deletion
|
|
50
|
+
*/
|
|
51
|
+
async function createModelsUI(screen, onBack, onSearch) {
|
|
52
|
+
let models = [];
|
|
53
|
+
let selectedIndex = 0;
|
|
54
|
+
let isLoading = false;
|
|
55
|
+
// Create content box
|
|
56
|
+
const contentBox = blessed_1.default.box({
|
|
57
|
+
top: 0,
|
|
58
|
+
left: 0,
|
|
59
|
+
width: '100%',
|
|
60
|
+
height: '100%',
|
|
61
|
+
tags: true,
|
|
62
|
+
scrollable: true,
|
|
63
|
+
alwaysScroll: true,
|
|
64
|
+
keys: true,
|
|
65
|
+
vi: true,
|
|
66
|
+
mouse: true,
|
|
67
|
+
scrollbar: {
|
|
68
|
+
ch: '█',
|
|
69
|
+
style: {
|
|
70
|
+
fg: 'blue',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
screen.append(contentBox);
|
|
75
|
+
// Render models view
|
|
76
|
+
async function render() {
|
|
77
|
+
const termWidth = screen.width || 80;
|
|
78
|
+
const divider = '─'.repeat(termWidth - 2);
|
|
79
|
+
let content = '';
|
|
80
|
+
// Header
|
|
81
|
+
content += '{bold}{blue-fg}═══ Models Management{/blue-fg}{/bold}\n\n';
|
|
82
|
+
if (isLoading) {
|
|
83
|
+
content += '{cyan-fg}⏳ Loading models...{/cyan-fg}\n';
|
|
84
|
+
contentBox.setContent(content);
|
|
85
|
+
screen.render();
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (models.length === 0) {
|
|
89
|
+
content += '{yellow-fg}No models found{/yellow-fg}\n\n';
|
|
90
|
+
content += '{dim}Models directory: ' + await state_manager_js_1.stateManager.getModelsDirectory() + '{/dim}\n';
|
|
91
|
+
content += '{dim}Download models: Press [S] to search HuggingFace{/dim}\n';
|
|
92
|
+
content += '\n' + divider + '\n';
|
|
93
|
+
content += `{gray-fg}[S]earch [ESC] Back [Q]uit{/gray-fg}`;
|
|
94
|
+
contentBox.setContent(content);
|
|
95
|
+
screen.render();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// System info
|
|
99
|
+
const totalSize = models.reduce((sum, m) => sum + m.size, 0);
|
|
100
|
+
content += `{bold}Total: ${models.length} models{/bold} - ${(0, format_utils_js_1.formatBytes)(totalSize)}\n`;
|
|
101
|
+
content += divider + '\n';
|
|
102
|
+
// Get all servers to check dependencies
|
|
103
|
+
const allServers = await state_manager_js_1.stateManager.getAllServers();
|
|
104
|
+
// Table header
|
|
105
|
+
content += '{bold} │ Model File │ Size │ Modified │ Servers{/bold}\n';
|
|
106
|
+
content += divider + '\n';
|
|
107
|
+
// Model rows
|
|
108
|
+
for (let i = 0; i < models.length; i++) {
|
|
109
|
+
const model = models[i];
|
|
110
|
+
const isSelected = i === selectedIndex;
|
|
111
|
+
// Count servers using this model
|
|
112
|
+
const serversUsingModel = allServers.filter(s => s.modelPath === model.path);
|
|
113
|
+
const serverCount = serversUsingModel.length;
|
|
114
|
+
// Selection indicator
|
|
115
|
+
const indicator = isSelected ? '►' : ' ';
|
|
116
|
+
// Model filename (truncate if too long)
|
|
117
|
+
const maxFilenameLen = 46;
|
|
118
|
+
let filename = model.filename;
|
|
119
|
+
if (filename.length > maxFilenameLen) {
|
|
120
|
+
filename = filename.substring(0, maxFilenameLen - 3) + '...';
|
|
121
|
+
}
|
|
122
|
+
filename = filename.padEnd(maxFilenameLen);
|
|
123
|
+
// Size
|
|
124
|
+
const size = model.sizeFormatted.padStart(11);
|
|
125
|
+
// Modified date
|
|
126
|
+
const modified = (0, format_utils_js_1.formatDateShort)(model.modified).padStart(11);
|
|
127
|
+
// Servers count with color coding
|
|
128
|
+
let serversText = '';
|
|
129
|
+
let serversTextPlain = '';
|
|
130
|
+
if (serverCount === 0) {
|
|
131
|
+
serversText = '{green-fg}0 servers{/green-fg}';
|
|
132
|
+
serversTextPlain = '0 servers';
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const runningCount = serversUsingModel.filter(s => s.status === 'running').length;
|
|
136
|
+
if (runningCount > 0) {
|
|
137
|
+
serversText = `{yellow-fg}${serverCount} (${runningCount} running){/yellow-fg}`;
|
|
138
|
+
serversTextPlain = `${serverCount} (${runningCount} running)`;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
serversText = `{gray-fg}${serverCount} stopped{/gray-fg}`;
|
|
142
|
+
serversTextPlain = `${serverCount} stopped`;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Build row content
|
|
146
|
+
let rowContent = '';
|
|
147
|
+
if (isSelected) {
|
|
148
|
+
// Selected row: cyan background with bright white text
|
|
149
|
+
rowContent = `{cyan-bg}{15-fg}${indicator} │ ${filename} │ ${size} │ ${modified} │ ${serversTextPlain}{/15-fg}{/cyan-bg}`;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// Normal row: with colored server text
|
|
153
|
+
rowContent = `${indicator} │ ${filename} │ ${size} │ ${modified} │ ${serversText}`;
|
|
154
|
+
}
|
|
155
|
+
content += rowContent + '\n';
|
|
156
|
+
}
|
|
157
|
+
// Footer
|
|
158
|
+
content += '\n' + divider + '\n';
|
|
159
|
+
content += '{gray-fg}[↑/↓] Navigate [D]elete [S]earch [R]efresh [ESC] Back [Q]uit{/gray-fg}';
|
|
160
|
+
contentBox.setContent(content);
|
|
161
|
+
screen.render();
|
|
162
|
+
}
|
|
163
|
+
// Load models
|
|
164
|
+
async function loadModels() {
|
|
165
|
+
isLoading = true;
|
|
166
|
+
await render();
|
|
167
|
+
models = await model_scanner_js_1.modelScanner.scanModels();
|
|
168
|
+
selectedIndex = Math.min(selectedIndex, Math.max(0, models.length - 1));
|
|
169
|
+
isLoading = false;
|
|
170
|
+
await render();
|
|
171
|
+
}
|
|
172
|
+
// Delete selected model
|
|
173
|
+
async function deleteModel() {
|
|
174
|
+
if (models.length === 0)
|
|
175
|
+
return;
|
|
176
|
+
const model = models[selectedIndex];
|
|
177
|
+
const allServers = await state_manager_js_1.stateManager.getAllServers();
|
|
178
|
+
const serversUsingModel = allServers.filter(s => s.modelPath === model.path);
|
|
179
|
+
// Show confirmation dialog
|
|
180
|
+
const confirmBox = blessed_1.default.message({
|
|
181
|
+
parent: screen,
|
|
182
|
+
top: 'center',
|
|
183
|
+
left: 'center',
|
|
184
|
+
width: '60%',
|
|
185
|
+
height: 'shrink',
|
|
186
|
+
border: { type: 'line' },
|
|
187
|
+
style: {
|
|
188
|
+
border: { fg: 'red' },
|
|
189
|
+
fg: 'white',
|
|
190
|
+
},
|
|
191
|
+
tags: true,
|
|
192
|
+
});
|
|
193
|
+
let confirmText = `{bold}Delete model: ${model.filename}?{/bold}\n\n`;
|
|
194
|
+
confirmText += `Size: ${model.sizeFormatted}\n\n`;
|
|
195
|
+
if (serversUsingModel.length > 0) {
|
|
196
|
+
confirmText += `{yellow-fg}⚠️ This model has ${serversUsingModel.length} server(s) configured:{/yellow-fg}\n`;
|
|
197
|
+
for (const server of serversUsingModel) {
|
|
198
|
+
const statusColor = server.status === 'running' ? 'green-fg' : 'gray-fg';
|
|
199
|
+
confirmText += ` - ${server.id} ({${statusColor}}${server.status}{/${statusColor}})\n`;
|
|
200
|
+
}
|
|
201
|
+
confirmText += `\n{yellow-fg}These servers will be deleted before removing the model.{/yellow-fg}\n\n`;
|
|
202
|
+
}
|
|
203
|
+
confirmText += `Type 'yes' to confirm:\n\n\n\n`; // Extra lines for input box space
|
|
204
|
+
// Create input box for confirmation
|
|
205
|
+
const inputBox = blessed_1.default.textbox({
|
|
206
|
+
parent: confirmBox,
|
|
207
|
+
bottom: 1,
|
|
208
|
+
left: 2,
|
|
209
|
+
right: 2,
|
|
210
|
+
height: 3,
|
|
211
|
+
inputOnFocus: true,
|
|
212
|
+
border: { type: 'line' },
|
|
213
|
+
style: {
|
|
214
|
+
border: { fg: 'cyan' },
|
|
215
|
+
focus: { border: { fg: 'green' } },
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
confirmBox.setContent(confirmText);
|
|
219
|
+
screen.append(confirmBox);
|
|
220
|
+
confirmBox.focus();
|
|
221
|
+
inputBox.focus();
|
|
222
|
+
screen.render();
|
|
223
|
+
inputBox.on('submit', async (value) => {
|
|
224
|
+
screen.remove(confirmBox);
|
|
225
|
+
if (value.toLowerCase() !== 'yes') {
|
|
226
|
+
await render();
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
// Show deleting message
|
|
230
|
+
isLoading = true;
|
|
231
|
+
contentBox.setContent('{cyan-fg}⏳ Deleting model...{/cyan-fg}');
|
|
232
|
+
screen.render();
|
|
233
|
+
try {
|
|
234
|
+
// Delete all servers using this model
|
|
235
|
+
for (const server of serversUsingModel) {
|
|
236
|
+
// Unload service (stops and removes from launchd)
|
|
237
|
+
try {
|
|
238
|
+
await launchctl_manager_js_1.launchctlManager.unloadService(server.plistPath);
|
|
239
|
+
if (server.status === 'running') {
|
|
240
|
+
await launchctl_manager_js_1.launchctlManager.waitForServiceStop(server.label, 5000);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
// Continue even if unload fails
|
|
245
|
+
}
|
|
246
|
+
// Delete plist
|
|
247
|
+
await launchctl_manager_js_1.launchctlManager.deletePlist(server.plistPath);
|
|
248
|
+
// Delete server config
|
|
249
|
+
await state_manager_js_1.stateManager.deleteServerConfig(server.id);
|
|
250
|
+
}
|
|
251
|
+
// Delete model file
|
|
252
|
+
await fs.unlink(model.path);
|
|
253
|
+
// Reload models
|
|
254
|
+
await loadModels();
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
// Show error
|
|
258
|
+
const errorBox = blessed_1.default.message({
|
|
259
|
+
parent: screen,
|
|
260
|
+
top: 'center',
|
|
261
|
+
left: 'center',
|
|
262
|
+
width: '60%',
|
|
263
|
+
height: 'shrink',
|
|
264
|
+
border: { type: 'line' },
|
|
265
|
+
style: {
|
|
266
|
+
border: { fg: 'red' },
|
|
267
|
+
fg: 'red',
|
|
268
|
+
},
|
|
269
|
+
tags: true,
|
|
270
|
+
});
|
|
271
|
+
const errorMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
272
|
+
errorBox.display(`{bold}Delete failed{/bold}\n\n${errorMsg}\n\nPress any key to continue`, () => {
|
|
273
|
+
screen.remove(errorBox);
|
|
274
|
+
isLoading = false;
|
|
275
|
+
render();
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
inputBox.on('cancel', () => {
|
|
280
|
+
screen.remove(confirmBox);
|
|
281
|
+
render();
|
|
282
|
+
});
|
|
283
|
+
inputBox.key(['escape'], () => {
|
|
284
|
+
screen.remove(confirmBox);
|
|
285
|
+
render();
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
// Store key handler references for cleanup
|
|
289
|
+
const keyHandlers = {
|
|
290
|
+
up: () => {
|
|
291
|
+
if (models.length === 0)
|
|
292
|
+
return;
|
|
293
|
+
selectedIndex = Math.max(0, selectedIndex - 1);
|
|
294
|
+
render();
|
|
295
|
+
},
|
|
296
|
+
down: () => {
|
|
297
|
+
if (models.length === 0)
|
|
298
|
+
return;
|
|
299
|
+
selectedIndex = Math.min(models.length - 1, selectedIndex + 1);
|
|
300
|
+
render();
|
|
301
|
+
},
|
|
302
|
+
delete: () => {
|
|
303
|
+
deleteModel();
|
|
304
|
+
},
|
|
305
|
+
search: async () => {
|
|
306
|
+
// Cleanup current handlers before switching views
|
|
307
|
+
cleanup();
|
|
308
|
+
// Open search view
|
|
309
|
+
await (0, SearchApp_js_1.createSearchUI)(screen, async () => {
|
|
310
|
+
// onBack callback - return to models view
|
|
311
|
+
// Re-register handlers
|
|
312
|
+
registerHandlers();
|
|
313
|
+
screen.append(contentBox);
|
|
314
|
+
await loadModels();
|
|
315
|
+
});
|
|
316
|
+
},
|
|
317
|
+
refresh: () => {
|
|
318
|
+
loadModels();
|
|
319
|
+
},
|
|
320
|
+
escape: async () => {
|
|
321
|
+
cleanup();
|
|
322
|
+
await onBack();
|
|
323
|
+
},
|
|
324
|
+
quit: () => {
|
|
325
|
+
screen.destroy();
|
|
326
|
+
process.exit(0);
|
|
327
|
+
},
|
|
328
|
+
};
|
|
329
|
+
// Cleanup function to unregister all handlers
|
|
330
|
+
function cleanup() {
|
|
331
|
+
screen.unkey('up', keyHandlers.up);
|
|
332
|
+
screen.unkey('k', keyHandlers.up);
|
|
333
|
+
screen.unkey('down', keyHandlers.down);
|
|
334
|
+
screen.unkey('j', keyHandlers.down);
|
|
335
|
+
screen.unkey('d', keyHandlers.delete);
|
|
336
|
+
screen.unkey('D', keyHandlers.delete);
|
|
337
|
+
screen.unkey('s', keyHandlers.search);
|
|
338
|
+
screen.unkey('S', keyHandlers.search);
|
|
339
|
+
screen.unkey('r', keyHandlers.refresh);
|
|
340
|
+
screen.unkey('R', keyHandlers.refresh);
|
|
341
|
+
screen.unkey('escape', keyHandlers.escape);
|
|
342
|
+
screen.unkey('q', keyHandlers.quit);
|
|
343
|
+
screen.unkey('Q', keyHandlers.quit);
|
|
344
|
+
screen.unkey('C-c', keyHandlers.quit);
|
|
345
|
+
screen.remove(contentBox);
|
|
346
|
+
}
|
|
347
|
+
// Register key handlers
|
|
348
|
+
function registerHandlers() {
|
|
349
|
+
screen.key(['up', 'k'], keyHandlers.up);
|
|
350
|
+
screen.key(['down', 'j'], keyHandlers.down);
|
|
351
|
+
screen.key(['d', 'D'], keyHandlers.delete);
|
|
352
|
+
screen.key(['s', 'S'], keyHandlers.search);
|
|
353
|
+
screen.key(['r', 'R'], keyHandlers.refresh);
|
|
354
|
+
screen.key(['escape'], keyHandlers.escape);
|
|
355
|
+
screen.key(['q', 'Q', 'C-c'], keyHandlers.quit);
|
|
356
|
+
}
|
|
357
|
+
// Register initial handlers
|
|
358
|
+
registerHandlers();
|
|
359
|
+
// Initial load
|
|
360
|
+
await loadModels();
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=ModelsApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelsApp.js","sourceRoot":"","sources":["../../src/tui/ModelsApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import blessed from 'blessed';
|
|
2
2
|
import { ServerConfig } from '../types/server-config.js';
|
|
3
|
-
export
|
|
3
|
+
export interface MonitorUIControls {
|
|
4
|
+
pause: () => void;
|
|
5
|
+
resume: () => void;
|
|
6
|
+
getServers: () => ServerConfig[];
|
|
7
|
+
}
|
|
8
|
+
export declare function createMultiServerMonitorUI(screen: blessed.Widgets.Screen, servers: ServerConfig[], skipConnectingMessage?: boolean, directJumpIndex?: number, onModels?: (controls: MonitorUIControls) => void, onFirstRender?: () => void): Promise<MonitorUIControls>;
|
|
4
9
|
//# sourceMappingURL=MultiServerMonitorApp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiServerMonitorApp.d.ts","sourceRoot":"","sources":["../../src/tui/MultiServerMonitorApp.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiServerMonitorApp.d.ts","sourceRoot":"","sources":["../../src/tui/MultiServerMonitorApp.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAqB,MAAM,2BAA2B,CAAC;AA0B5E,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,YAAY,EAAE,CAAC;CAClC;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAC9B,OAAO,EAAE,YAAY,EAAE,EACvB,qBAAqB,GAAE,OAAe,EACtC,eAAe,CAAC,EAAE,MAAM,EACxB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,EAChD,aAAa,CAAC,EAAE,MAAM,IAAI,GACzB,OAAO,CAAC,iBAAiB,CAAC,CA8vD5B"}
|