@appkit/llamacpp-cli 1.4.1 → 1.6.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 +21 -0
- package/MONITORING-ACCURACY-FIX.md +199 -0
- package/PER-PROCESS-METRICS.md +190 -0
- package/README.md +136 -1
- package/dist/cli.js +21 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +12 -3
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/monitor.d.ts +2 -0
- package/dist/commands/monitor.d.ts.map +1 -0
- package/dist/commands/monitor.js +126 -0
- package/dist/commands/monitor.js.map +1 -0
- package/dist/commands/ps.d.ts +3 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +75 -5
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/server-show.d.ts.map +1 -1
- package/dist/commands/server-show.js +10 -3
- package/dist/commands/server-show.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +14 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/lib/history-manager.d.ts +46 -0
- package/dist/lib/history-manager.d.ts.map +1 -0
- package/dist/lib/history-manager.js +157 -0
- package/dist/lib/history-manager.js.map +1 -0
- package/dist/lib/metrics-aggregator.d.ts +40 -0
- package/dist/lib/metrics-aggregator.d.ts.map +1 -0
- package/dist/lib/metrics-aggregator.js +211 -0
- package/dist/lib/metrics-aggregator.js.map +1 -0
- package/dist/lib/system-collector.d.ts +80 -0
- package/dist/lib/system-collector.d.ts.map +1 -0
- package/dist/lib/system-collector.js +311 -0
- package/dist/lib/system-collector.js.map +1 -0
- package/dist/tui/HistoricalMonitorApp.d.ts +5 -0
- package/dist/tui/HistoricalMonitorApp.d.ts.map +1 -0
- package/dist/tui/HistoricalMonitorApp.js +490 -0
- package/dist/tui/HistoricalMonitorApp.js.map +1 -0
- package/dist/tui/MonitorApp.d.ts +4 -0
- package/dist/tui/MonitorApp.d.ts.map +1 -0
- package/dist/tui/MonitorApp.js +315 -0
- package/dist/tui/MonitorApp.js.map +1 -0
- package/dist/tui/MultiServerMonitorApp.d.ts +4 -0
- package/dist/tui/MultiServerMonitorApp.d.ts.map +1 -0
- package/dist/tui/MultiServerMonitorApp.js +712 -0
- package/dist/tui/MultiServerMonitorApp.js.map +1 -0
- package/dist/types/history-types.d.ts +30 -0
- package/dist/types/history-types.d.ts.map +1 -0
- package/dist/types/history-types.js +11 -0
- package/dist/types/history-types.js.map +1 -0
- package/dist/types/monitor-types.d.ts +123 -0
- package/dist/types/monitor-types.d.ts.map +1 -0
- package/dist/types/monitor-types.js +3 -0
- package/dist/types/monitor-types.js.map +1 -0
- package/dist/types/server-config.d.ts +1 -0
- package/dist/types/server-config.d.ts.map +1 -1
- package/dist/types/server-config.js.map +1 -1
- package/dist/utils/downsample-utils.d.ts +35 -0
- package/dist/utils/downsample-utils.d.ts.map +1 -0
- package/dist/utils/downsample-utils.js +107 -0
- package/dist/utils/downsample-utils.js.map +1 -0
- package/dist/utils/file-utils.d.ts +6 -0
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +38 -0
- package/dist/utils/file-utils.js.map +1 -1
- package/dist/utils/process-utils.d.ts +35 -2
- package/dist/utils/process-utils.d.ts.map +1 -1
- package/dist/utils/process-utils.js +220 -25
- package/dist/utils/process-utils.js.map +1 -1
- package/docs/images/.gitkeep +1 -0
- package/package.json +5 -1
- package/src/cli.ts +21 -4
- package/src/commands/create.ts +14 -4
- package/src/commands/monitor.ts +110 -0
- package/src/commands/ps.ts +88 -5
- package/src/commands/server-show.ts +10 -3
- package/src/commands/start.ts +15 -2
- package/src/lib/history-manager.ts +172 -0
- package/src/lib/metrics-aggregator.ts +257 -0
- package/src/lib/system-collector.ts +315 -0
- package/src/tui/HistoricalMonitorApp.ts +548 -0
- package/src/tui/MonitorApp.ts +386 -0
- package/src/tui/MultiServerMonitorApp.ts +792 -0
- package/src/types/history-types.ts +39 -0
- package/src/types/monitor-types.ts +162 -0
- package/src/types/server-config.ts +1 -0
- package/src/utils/downsample-utils.ts +128 -0
- package/src/utils/file-utils.ts +40 -0
- package/src/utils/process-utils.ts +243 -25
- package/test-load.sh +100 -0
package/dist/commands/create.js
CHANGED
|
@@ -164,10 +164,19 @@ async function createCommand(model, options) {
|
|
|
164
164
|
throw new Error('Server failed to start. Check logs with: llamacpp server logs --errors');
|
|
165
165
|
}
|
|
166
166
|
// 12. Update config with running status
|
|
167
|
-
|
|
168
|
-
// 13.
|
|
167
|
+
let updatedConfig = await status_checker_1.statusChecker.updateServerStatus(config);
|
|
168
|
+
// 13. Parse Metal (GPU) memory allocation from logs
|
|
169
|
+
// Wait a few seconds for model to start loading (large models take time)
|
|
170
|
+
console.log(chalk_1.default.dim('Detecting Metal (GPU) memory allocation...'));
|
|
171
|
+
await new Promise(resolve => setTimeout(resolve, 8000)); // 8 second delay
|
|
172
|
+
const metalMemoryMB = await (0, file_utils_1.parseMetalMemoryFromLog)(updatedConfig.stderrPath);
|
|
173
|
+
if (metalMemoryMB) {
|
|
174
|
+
updatedConfig = { ...updatedConfig, metalMemoryMB };
|
|
175
|
+
console.log(chalk_1.default.dim(`Metal memory: ${metalMemoryMB.toFixed(0)} MB`));
|
|
176
|
+
}
|
|
177
|
+
// 14. Save server config
|
|
169
178
|
await state_manager_1.stateManager.saveServerConfig(updatedConfig);
|
|
170
|
-
//
|
|
179
|
+
// 15. Display success message
|
|
171
180
|
console.log();
|
|
172
181
|
console.log(chalk_1.default.green('✅ Server created and started successfully!'));
|
|
173
182
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"AAMA,wBAAsB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGvE"}
|
|
@@ -0,0 +1,126 @@
|
|
|
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.monitorCommand = monitorCommand;
|
|
40
|
+
const blessed_1 = __importDefault(require("blessed"));
|
|
41
|
+
const state_manager_js_1 = require("../lib/state-manager.js");
|
|
42
|
+
const MonitorApp_js_1 = require("../tui/MonitorApp.js");
|
|
43
|
+
const MultiServerMonitorApp_js_1 = require("../tui/MultiServerMonitorApp.js");
|
|
44
|
+
async function monitorCommand(identifier) {
|
|
45
|
+
// Initialize state manager
|
|
46
|
+
await state_manager_js_1.stateManager.initialize();
|
|
47
|
+
// Get all servers
|
|
48
|
+
const allServers = await state_manager_js_1.stateManager.getAllServers();
|
|
49
|
+
if (allServers.length === 0) {
|
|
50
|
+
throw new Error(`No servers configured.\n\n` +
|
|
51
|
+
`Create a server first: llamacpp server create <model>`);
|
|
52
|
+
}
|
|
53
|
+
// Create blessed screen
|
|
54
|
+
const screen = blessed_1.default.screen({
|
|
55
|
+
smartCSR: true,
|
|
56
|
+
title: 'llama.cpp Server Monitor',
|
|
57
|
+
});
|
|
58
|
+
// Determine which UI to launch
|
|
59
|
+
if (identifier) {
|
|
60
|
+
// User specified a server - single server mode
|
|
61
|
+
const server = await state_manager_js_1.stateManager.findServer(identifier);
|
|
62
|
+
if (!server) {
|
|
63
|
+
screen.destroy();
|
|
64
|
+
throw new Error(`Server not found: ${identifier}\n\n` +
|
|
65
|
+
`Use: llamacpp ps\n` +
|
|
66
|
+
`Or create a new server: llamacpp server create <model>`);
|
|
67
|
+
}
|
|
68
|
+
// Update server status to reflect actual launchctl state
|
|
69
|
+
const { statusChecker } = await Promise.resolve().then(() => __importStar(require('../lib/status-checker.js')));
|
|
70
|
+
const status = await statusChecker.checkServer(server);
|
|
71
|
+
server.status = status.isRunning ? 'running' : 'stopped';
|
|
72
|
+
server.pid = status.pid || undefined;
|
|
73
|
+
// Check if server is running
|
|
74
|
+
if (server.status !== 'running') {
|
|
75
|
+
screen.destroy();
|
|
76
|
+
throw new Error(`Server ${server.modelName} is not running.\n\n` +
|
|
77
|
+
`Start it first: llamacpp server start ${server.id}`);
|
|
78
|
+
}
|
|
79
|
+
// Launch single-server TUI
|
|
80
|
+
await (0, MonitorApp_js_1.createMonitorUI)(screen, server);
|
|
81
|
+
}
|
|
82
|
+
else if (allServers.length === 1) {
|
|
83
|
+
// Only one server - single server mode
|
|
84
|
+
const server = allServers[0];
|
|
85
|
+
// Update server status to reflect actual launchctl state
|
|
86
|
+
const { statusChecker } = await Promise.resolve().then(() => __importStar(require('../lib/status-checker.js')));
|
|
87
|
+
const status = await statusChecker.checkServer(server);
|
|
88
|
+
server.status = status.isRunning ? 'running' : 'stopped';
|
|
89
|
+
server.pid = status.pid || undefined;
|
|
90
|
+
// Check if server is running
|
|
91
|
+
if (server.status !== 'running') {
|
|
92
|
+
screen.destroy();
|
|
93
|
+
throw new Error(`Server ${server.modelName} is not running.\n\n` +
|
|
94
|
+
`Start it first: llamacpp server start ${server.id}`);
|
|
95
|
+
}
|
|
96
|
+
// Launch single-server TUI
|
|
97
|
+
await (0, MonitorApp_js_1.createMonitorUI)(screen, server);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Multiple servers - multi-server mode
|
|
101
|
+
// Update all server statuses to reflect actual launchctl state
|
|
102
|
+
const { statusChecker } = await Promise.resolve().then(() => __importStar(require('../lib/status-checker.js')));
|
|
103
|
+
for (const server of allServers) {
|
|
104
|
+
const status = await statusChecker.checkServer(server);
|
|
105
|
+
server.status = status.isRunning ? 'running' : 'stopped';
|
|
106
|
+
server.pid = status.pid || undefined;
|
|
107
|
+
}
|
|
108
|
+
// Filter to only running servers for monitoring
|
|
109
|
+
const runningServers = allServers.filter(s => s.status === 'running');
|
|
110
|
+
if (runningServers.length === 0) {
|
|
111
|
+
screen.destroy();
|
|
112
|
+
throw new Error(`No servers are currently running.\n\n` +
|
|
113
|
+
`Start a server first:\n` +
|
|
114
|
+
allServers
|
|
115
|
+
.map((s) => ` llamacpp server start ${s.id} # ${s.modelName}`)
|
|
116
|
+
.join('\n'));
|
|
117
|
+
}
|
|
118
|
+
// Launch multi-server TUI (pass all servers so we can see stopped ones too)
|
|
119
|
+
await (0, MultiServerMonitorApp_js_1.createMultiServerMonitorUI)(screen, allServers);
|
|
120
|
+
}
|
|
121
|
+
// Render the screen
|
|
122
|
+
screen.render();
|
|
123
|
+
// Note: TUI functions handle their own key events and exit directly
|
|
124
|
+
// The process will stay alive until user presses Q/Ctrl+C
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ps.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"AAgGA,wBAAsB,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDjG"}
|
package/dist/commands/ps.js
CHANGED
|
@@ -6,11 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.psCommand = psCommand;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
9
|
+
const blessed_1 = __importDefault(require("blessed"));
|
|
9
10
|
const state_manager_1 = require("../lib/state-manager");
|
|
10
11
|
const status_checker_1 = require("../lib/status-checker");
|
|
11
12
|
const format_utils_1 = require("../utils/format-utils");
|
|
12
13
|
const process_utils_1 = require("../utils/process-utils");
|
|
13
|
-
|
|
14
|
+
const MultiServerMonitorApp_js_1 = require("../tui/MultiServerMonitorApp.js");
|
|
15
|
+
async function showStaticTable() {
|
|
14
16
|
const servers = await state_manager_1.stateManager.getAllServers();
|
|
15
17
|
if (servers.length === 0) {
|
|
16
18
|
console.log(chalk_1.default.yellow('No servers configured.'));
|
|
@@ -48,12 +50,14 @@ async function psCommand() {
|
|
|
48
50
|
const uptime = server.status === 'running' && server.lastStarted
|
|
49
51
|
? (0, format_utils_1.formatUptime)(server.lastStarted)
|
|
50
52
|
: '-';
|
|
51
|
-
// Get memory usage for running servers
|
|
53
|
+
// Get memory usage for running servers (CPU + Metal GPU memory)
|
|
52
54
|
let memoryText = '-';
|
|
53
55
|
if (server.status === 'running' && server.pid) {
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
|
|
56
|
+
const cpuMemoryBytes = await (0, process_utils_1.getProcessMemory)(server.pid);
|
|
57
|
+
if (cpuMemoryBytes !== null) {
|
|
58
|
+
const metalMemoryBytes = server.metalMemoryMB ? server.metalMemoryMB * 1024 * 1024 : 0;
|
|
59
|
+
const totalMemoryBytes = cpuMemoryBytes + metalMemoryBytes;
|
|
60
|
+
memoryText = (0, format_utils_1.formatBytes)(totalMemoryBytes);
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
table.push([
|
|
@@ -79,4 +83,70 @@ async function psCommand() {
|
|
|
79
83
|
console.log(chalk_1.default.red('\n⚠️ Some servers have crashed. Check logs with: llamacpp server logs <id> --errors'));
|
|
80
84
|
}
|
|
81
85
|
}
|
|
86
|
+
async function psCommand(identifier, options) {
|
|
87
|
+
// If --table flag is set, show static table (backward compatibility)
|
|
88
|
+
if (options?.table) {
|
|
89
|
+
await showStaticTable();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// Get all servers and update their statuses
|
|
93
|
+
const servers = await state_manager_1.stateManager.getAllServers();
|
|
94
|
+
if (servers.length === 0) {
|
|
95
|
+
console.log(chalk_1.default.yellow('No servers configured.'));
|
|
96
|
+
console.log(chalk_1.default.dim('\nCreate a server: llamacpp server create <model-filename>'));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Update all server statuses
|
|
100
|
+
const updated = await status_checker_1.statusChecker.updateAllServerStatuses();
|
|
101
|
+
// If identifier is provided, find the server and jump to detail view
|
|
102
|
+
if (identifier) {
|
|
103
|
+
const server = await findServer(identifier, updated);
|
|
104
|
+
if (!server) {
|
|
105
|
+
console.log(chalk_1.default.red(`❌ Server not found: ${identifier}`));
|
|
106
|
+
console.log(chalk_1.default.dim('\nAvailable servers:'));
|
|
107
|
+
updated.forEach((s) => {
|
|
108
|
+
console.log(chalk_1.default.dim(` - ${s.id} (port ${s.port})`));
|
|
109
|
+
});
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
// Find the server index for direct jump
|
|
113
|
+
const serverIndex = updated.findIndex(s => s.id === server.id);
|
|
114
|
+
// Launch multi-server TUI with direct jump to detail view
|
|
115
|
+
const screen = blessed_1.default.screen({
|
|
116
|
+
smartCSR: true,
|
|
117
|
+
title: 'llama.cpp Multi-Server Monitor',
|
|
118
|
+
fullUnicode: true,
|
|
119
|
+
});
|
|
120
|
+
await (0, MultiServerMonitorApp_js_1.createMultiServerMonitorUI)(screen, updated, true, serverIndex); // fromPs = true, directJumpIndex
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// No identifier - launch multi-server TUI
|
|
124
|
+
const runningServers = updated.filter((s) => s.status === 'running');
|
|
125
|
+
// Launch multi-server TUI (shows all servers, not just running ones)
|
|
126
|
+
const screen = blessed_1.default.screen({
|
|
127
|
+
smartCSR: true,
|
|
128
|
+
title: 'llama.cpp Multi-Server Monitor',
|
|
129
|
+
fullUnicode: true,
|
|
130
|
+
});
|
|
131
|
+
await (0, MultiServerMonitorApp_js_1.createMultiServerMonitorUI)(screen, updated, true); // fromPs = true
|
|
132
|
+
}
|
|
133
|
+
// Helper function to find server by identifier
|
|
134
|
+
async function findServer(identifier, servers) {
|
|
135
|
+
// Try by port
|
|
136
|
+
const port = parseInt(identifier);
|
|
137
|
+
if (!isNaN(port)) {
|
|
138
|
+
const server = servers.find(s => s.port === port);
|
|
139
|
+
if (server)
|
|
140
|
+
return server;
|
|
141
|
+
}
|
|
142
|
+
// Try by exact ID
|
|
143
|
+
const byId = servers.find(s => s.id === identifier);
|
|
144
|
+
if (byId)
|
|
145
|
+
return byId;
|
|
146
|
+
// Try by partial model name
|
|
147
|
+
const byModel = servers.find(s => s.modelName.toLowerCase().includes(identifier.toLowerCase()));
|
|
148
|
+
if (byModel)
|
|
149
|
+
return byModel;
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
82
152
|
//# sourceMappingURL=ps.js.map
|
package/dist/commands/ps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps.js","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ps.js","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-show.d.ts","sourceRoot":"","sources":["../../src/commands/server-show.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server-show.d.ts","sourceRoot":"","sources":["../../src/commands/server-show.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiIzE"}
|
|
@@ -66,9 +66,16 @@ async function serverShowCommand(identifier) {
|
|
|
66
66
|
console.log(`${chalk_1.default.bold('Uptime:')} ${uptime}`);
|
|
67
67
|
}
|
|
68
68
|
if (updatedServer.pid) {
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
|
|
69
|
+
const cpuMemoryBytes = await (0, process_utils_1.getProcessMemory)(updatedServer.pid);
|
|
70
|
+
if (cpuMemoryBytes !== null) {
|
|
71
|
+
const metalMemoryBytes = updatedServer.metalMemoryMB ? updatedServer.metalMemoryMB * 1024 * 1024 : 0;
|
|
72
|
+
const totalMemoryBytes = cpuMemoryBytes + metalMemoryBytes;
|
|
73
|
+
if (metalMemoryBytes > 0) {
|
|
74
|
+
console.log(`${chalk_1.default.bold('Memory:')} ${(0, format_utils_1.formatBytes)(totalMemoryBytes)} (CPU: ${(0, format_utils_1.formatBytes)(cpuMemoryBytes)}, GPU: ${(0, format_utils_1.formatBytes)(metalMemoryBytes)})`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(`${chalk_1.default.bold('Memory:')} ${(0, format_utils_1.formatBytes)(cpuMemoryBytes)} (CPU only)`);
|
|
78
|
+
}
|
|
72
79
|
}
|
|
73
80
|
}
|
|
74
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-show.js","sourceRoot":"","sources":["../../src/commands/server-show.ts"],"names":[],"mappings":";;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"server-show.js","sourceRoot":"","sources":["../../src/commands/server-show.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EpE"}
|
package/dist/commands/start.js
CHANGED
|
@@ -8,6 +8,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
8
8
|
const state_manager_1 = require("../lib/state-manager");
|
|
9
9
|
const launchctl_manager_1 = require("../lib/launchctl-manager");
|
|
10
10
|
const status_checker_1 = require("../lib/status-checker");
|
|
11
|
+
const file_utils_1 = require("../utils/file-utils");
|
|
11
12
|
async function startCommand(identifier) {
|
|
12
13
|
// Initialize state manager
|
|
13
14
|
await state_manager_1.stateManager.initialize();
|
|
@@ -52,8 +53,19 @@ async function startCommand(identifier) {
|
|
|
52
53
|
throw new Error(`Server failed to start. Check logs with: llamacpp server logs ${server.id}`);
|
|
53
54
|
}
|
|
54
55
|
// 7. Update server status
|
|
55
|
-
await status_checker_1.statusChecker.updateServerStatus(server);
|
|
56
|
-
// 8.
|
|
56
|
+
let updatedServer = await status_checker_1.statusChecker.updateServerStatus(server);
|
|
57
|
+
// 8. Parse Metal (GPU) memory allocation if not already captured
|
|
58
|
+
if (!updatedServer.metalMemoryMB) {
|
|
59
|
+
console.log(chalk_1.default.dim('Detecting Metal (GPU) memory allocation...'));
|
|
60
|
+
await new Promise(resolve => setTimeout(resolve, 8000)); // 8 second delay
|
|
61
|
+
const metalMemoryMB = await (0, file_utils_1.parseMetalMemoryFromLog)(updatedServer.stderrPath);
|
|
62
|
+
if (metalMemoryMB) {
|
|
63
|
+
updatedServer = { ...updatedServer, metalMemoryMB };
|
|
64
|
+
await state_manager_1.stateManager.saveServerConfig(updatedServer);
|
|
65
|
+
console.log(chalk_1.default.dim(`Metal memory: ${metalMemoryMB.toFixed(0)} MB`));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// 9. Display success
|
|
57
69
|
console.log();
|
|
58
70
|
console.log(chalk_1.default.green('✅ Server started successfully!'));
|
|
59
71
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ServerMetrics, SystemMetrics } from '../types/monitor-types.js';
|
|
2
|
+
import { HistorySnapshot, TimeWindow } from '../types/history-types.js';
|
|
3
|
+
export declare class HistoryManager {
|
|
4
|
+
private serverId;
|
|
5
|
+
private historyDir;
|
|
6
|
+
private historyPath;
|
|
7
|
+
private readonly MAX_AGE_MS;
|
|
8
|
+
constructor(serverId: string);
|
|
9
|
+
/**
|
|
10
|
+
* Append a new snapshot to history (with auto-pruning)
|
|
11
|
+
*/
|
|
12
|
+
appendSnapshot(serverMetrics: ServerMetrics, systemMetrics?: SystemMetrics): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Load all snapshots within specified time window
|
|
15
|
+
*/
|
|
16
|
+
loadHistory(windowHours: number): Promise<HistorySnapshot[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Load history for specific time window type
|
|
19
|
+
*/
|
|
20
|
+
loadHistoryByWindow(window: TimeWindow): Promise<HistorySnapshot[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Get file path for server history
|
|
23
|
+
*/
|
|
24
|
+
getHistoryPath(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Check if history file exists
|
|
27
|
+
*/
|
|
28
|
+
hasHistory(): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Clear all history for server
|
|
31
|
+
*/
|
|
32
|
+
clearHistory(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Load full history data from file
|
|
35
|
+
*/
|
|
36
|
+
private loadHistoryData;
|
|
37
|
+
/**
|
|
38
|
+
* Prune snapshots older than maxAge
|
|
39
|
+
*/
|
|
40
|
+
private pruneOldSnapshots;
|
|
41
|
+
/**
|
|
42
|
+
* Filter snapshots by time window
|
|
43
|
+
*/
|
|
44
|
+
private filterByTimeWindow;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=history-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-manager.d.ts","sourceRoot":"","sources":["../../src/lib/history-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAe,eAAe,EAAqB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAExG,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAEtC,QAAQ,EAAE,MAAM;IAM5B;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDhG;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBlE;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIzE;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IASpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC;;OAEG;YACW,eAAe;IAa7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAI3B"}
|