@appkit/llamacpp-cli 1.8.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.
Files changed (116) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +249 -40
  3. package/dist/cli.js +154 -10
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/completion.d.ts +9 -0
  6. package/dist/commands/completion.d.ts.map +1 -0
  7. package/dist/commands/completion.js +83 -0
  8. package/dist/commands/completion.js.map +1 -0
  9. package/dist/commands/monitor.js +1 -1
  10. package/dist/commands/monitor.js.map +1 -1
  11. package/dist/commands/ps.d.ts +1 -3
  12. package/dist/commands/ps.d.ts.map +1 -1
  13. package/dist/commands/ps.js +36 -115
  14. package/dist/commands/ps.js.map +1 -1
  15. package/dist/commands/router/config.d.ts +11 -0
  16. package/dist/commands/router/config.d.ts.map +1 -0
  17. package/dist/commands/router/config.js +100 -0
  18. package/dist/commands/router/config.js.map +1 -0
  19. package/dist/commands/router/logs.d.ts +12 -0
  20. package/dist/commands/router/logs.d.ts.map +1 -0
  21. package/dist/commands/router/logs.js +238 -0
  22. package/dist/commands/router/logs.js.map +1 -0
  23. package/dist/commands/router/restart.d.ts +2 -0
  24. package/dist/commands/router/restart.d.ts.map +1 -0
  25. package/dist/commands/router/restart.js +39 -0
  26. package/dist/commands/router/restart.js.map +1 -0
  27. package/dist/commands/router/start.d.ts +2 -0
  28. package/dist/commands/router/start.d.ts.map +1 -0
  29. package/dist/commands/router/start.js +60 -0
  30. package/dist/commands/router/start.js.map +1 -0
  31. package/dist/commands/router/status.d.ts +2 -0
  32. package/dist/commands/router/status.d.ts.map +1 -0
  33. package/dist/commands/router/status.js +116 -0
  34. package/dist/commands/router/status.js.map +1 -0
  35. package/dist/commands/router/stop.d.ts +2 -0
  36. package/dist/commands/router/stop.d.ts.map +1 -0
  37. package/dist/commands/router/stop.js +36 -0
  38. package/dist/commands/router/stop.js.map +1 -0
  39. package/dist/commands/tui.d.ts +2 -0
  40. package/dist/commands/tui.d.ts.map +1 -0
  41. package/dist/commands/tui.js +27 -0
  42. package/dist/commands/tui.js.map +1 -0
  43. package/dist/lib/completion.d.ts +5 -0
  44. package/dist/lib/completion.d.ts.map +1 -0
  45. package/dist/lib/completion.js +195 -0
  46. package/dist/lib/completion.js.map +1 -0
  47. package/dist/lib/model-downloader.d.ts +5 -1
  48. package/dist/lib/model-downloader.d.ts.map +1 -1
  49. package/dist/lib/model-downloader.js +53 -20
  50. package/dist/lib/model-downloader.js.map +1 -1
  51. package/dist/lib/router-logger.d.ts +61 -0
  52. package/dist/lib/router-logger.d.ts.map +1 -0
  53. package/dist/lib/router-logger.js +200 -0
  54. package/dist/lib/router-logger.js.map +1 -0
  55. package/dist/lib/router-manager.d.ts +103 -0
  56. package/dist/lib/router-manager.d.ts.map +1 -0
  57. package/dist/lib/router-manager.js +394 -0
  58. package/dist/lib/router-manager.js.map +1 -0
  59. package/dist/lib/router-server.d.ts +61 -0
  60. package/dist/lib/router-server.d.ts.map +1 -0
  61. package/dist/lib/router-server.js +485 -0
  62. package/dist/lib/router-server.js.map +1 -0
  63. package/dist/tui/ConfigApp.d.ts +7 -0
  64. package/dist/tui/ConfigApp.d.ts.map +1 -0
  65. package/dist/tui/ConfigApp.js +1002 -0
  66. package/dist/tui/ConfigApp.js.map +1 -0
  67. package/dist/tui/HistoricalMonitorApp.d.ts.map +1 -1
  68. package/dist/tui/HistoricalMonitorApp.js +85 -49
  69. package/dist/tui/HistoricalMonitorApp.js.map +1 -1
  70. package/dist/tui/ModelsApp.d.ts +7 -0
  71. package/dist/tui/ModelsApp.d.ts.map +1 -0
  72. package/dist/tui/ModelsApp.js +362 -0
  73. package/dist/tui/ModelsApp.js.map +1 -0
  74. package/dist/tui/MultiServerMonitorApp.d.ts +6 -1
  75. package/dist/tui/MultiServerMonitorApp.d.ts.map +1 -1
  76. package/dist/tui/MultiServerMonitorApp.js +1038 -122
  77. package/dist/tui/MultiServerMonitorApp.js.map +1 -1
  78. package/dist/tui/RootNavigator.d.ts +7 -0
  79. package/dist/tui/RootNavigator.d.ts.map +1 -0
  80. package/dist/tui/RootNavigator.js +55 -0
  81. package/dist/tui/RootNavigator.js.map +1 -0
  82. package/dist/tui/SearchApp.d.ts +6 -0
  83. package/dist/tui/SearchApp.d.ts.map +1 -0
  84. package/dist/tui/SearchApp.js +451 -0
  85. package/dist/tui/SearchApp.js.map +1 -0
  86. package/dist/tui/SplashScreen.d.ts +16 -0
  87. package/dist/tui/SplashScreen.d.ts.map +1 -0
  88. package/dist/tui/SplashScreen.js +129 -0
  89. package/dist/tui/SplashScreen.js.map +1 -0
  90. package/dist/types/router-config.d.ts +19 -0
  91. package/dist/types/router-config.d.ts.map +1 -0
  92. package/dist/types/router-config.js +3 -0
  93. package/dist/types/router-config.js.map +1 -0
  94. package/package.json +1 -1
  95. package/src/cli.ts +121 -10
  96. package/src/commands/monitor.ts +1 -1
  97. package/src/commands/ps.ts +44 -133
  98. package/src/commands/router/config.ts +116 -0
  99. package/src/commands/router/logs.ts +256 -0
  100. package/src/commands/router/restart.ts +36 -0
  101. package/src/commands/router/start.ts +60 -0
  102. package/src/commands/router/status.ts +119 -0
  103. package/src/commands/router/stop.ts +33 -0
  104. package/src/commands/tui.ts +25 -0
  105. package/src/lib/model-downloader.ts +57 -20
  106. package/src/lib/router-logger.ts +201 -0
  107. package/src/lib/router-manager.ts +414 -0
  108. package/src/lib/router-server.ts +538 -0
  109. package/src/tui/ConfigApp.ts +1085 -0
  110. package/src/tui/HistoricalMonitorApp.ts +88 -49
  111. package/src/tui/ModelsApp.ts +368 -0
  112. package/src/tui/MultiServerMonitorApp.ts +1163 -122
  113. package/src/tui/RootNavigator.ts +74 -0
  114. package/src/tui/SearchApp.ts +511 -0
  115. package/src/tui/SplashScreen.ts +149 -0
  116. package/src/types/router-config.ts +25 -0
@@ -0,0 +1,200 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.RequestTimer = exports.RouterLogger = void 0;
37
+ const fs = __importStar(require("fs/promises"));
38
+ const path = __importStar(require("path"));
39
+ const file_utils_1 = require("../utils/file-utils");
40
+ class RouterLogger {
41
+ constructor(verbose = false) {
42
+ this.verbose = verbose;
43
+ this.logFilePath = path.join((0, file_utils_1.getLogsDir)(), 'router.log');
44
+ }
45
+ /**
46
+ * Log a request with timing and outcome
47
+ */
48
+ async logRequest(entry) {
49
+ // Human-readable format for console
50
+ const humanLog = this.formatHumanReadable(entry);
51
+ // Output request activity to stdout (separate from system messages on stderr)
52
+ console.log(humanLog);
53
+ // Verbose mode: append detailed JSON to log file
54
+ if (this.verbose) {
55
+ const jsonLog = JSON.stringify(entry) + '\n';
56
+ try {
57
+ await fs.appendFile(this.logFilePath, jsonLog, 'utf-8');
58
+ }
59
+ catch (error) {
60
+ console.error('[Router Logger] Failed to write to log file:', error);
61
+ }
62
+ }
63
+ }
64
+ /**
65
+ * Format log entry for human reading (console output)
66
+ */
67
+ formatHumanReadable(entry) {
68
+ const { timestamp, model, endpoint, method, status, statusCode, durationMs, error, backend, prompt } = entry;
69
+ // Color coding based on status (using ANSI codes)
70
+ const statusColor = status === 'success' ? '\x1b[32m' : '\x1b[31m'; // Green or Red
71
+ const resetColor = '\x1b[0m';
72
+ // Base log format (no [Router] prefix, no icons)
73
+ let log = `${statusColor}${statusCode}${resetColor} ${method} ${endpoint} → ${model}`;
74
+ // Add backend if available
75
+ if (backend) {
76
+ log += ` (${backend})`;
77
+ }
78
+ // Add duration
79
+ log += ` ${durationMs}ms`;
80
+ // Add prompt preview if available
81
+ if (prompt) {
82
+ log += ` | "${prompt}"`;
83
+ }
84
+ // Add error if present
85
+ if (error) {
86
+ log += ` | Error: ${error}`;
87
+ }
88
+ return log;
89
+ }
90
+ /**
91
+ * Format log entry for LLM parsing (verbose JSON format)
92
+ */
93
+ static formatForLLM(entry) {
94
+ return JSON.stringify(entry, null, 2);
95
+ }
96
+ /**
97
+ * Read log file and return all entries (for verbose mode)
98
+ */
99
+ async readLogs(limit) {
100
+ try {
101
+ const content = await fs.readFile(this.logFilePath, 'utf-8');
102
+ const lines = content.trim().split('\n').filter(line => line);
103
+ // Parse JSON entries
104
+ const entries = lines
105
+ .map(line => {
106
+ try {
107
+ return JSON.parse(line);
108
+ }
109
+ catch {
110
+ return null;
111
+ }
112
+ })
113
+ .filter((entry) => entry !== null);
114
+ // Apply limit if specified
115
+ if (limit && limit > 0) {
116
+ return entries.slice(-limit);
117
+ }
118
+ return entries;
119
+ }
120
+ catch (error) {
121
+ // Log file doesn't exist or can't be read
122
+ return [];
123
+ }
124
+ }
125
+ /**
126
+ * Clear the log file
127
+ */
128
+ async clearLogs() {
129
+ try {
130
+ await fs.writeFile(this.logFilePath, '', 'utf-8');
131
+ console.error('[Router Logger] Log file cleared');
132
+ }
133
+ catch (error) {
134
+ console.error('[Router Logger] Failed to clear log file:', error);
135
+ }
136
+ }
137
+ /**
138
+ * Get log file size
139
+ */
140
+ async getLogFileSize() {
141
+ try {
142
+ const stats = await fs.stat(this.logFilePath);
143
+ return stats.size;
144
+ }
145
+ catch {
146
+ return 0;
147
+ }
148
+ }
149
+ /**
150
+ * Rotate log file if it exceeds threshold
151
+ */
152
+ async rotateIfNeeded(thresholdMB = 100) {
153
+ const size = await this.getLogFileSize();
154
+ const thresholdBytes = thresholdMB * 1024 * 1024;
155
+ if (size > thresholdBytes) {
156
+ try {
157
+ // Generate timestamp
158
+ const timestamp = new Date()
159
+ .toISOString()
160
+ .replace(/T/, '-')
161
+ .replace(/:/g, '-')
162
+ .replace(/\..+/, '');
163
+ const logsDir = (0, file_utils_1.getLogsDir)();
164
+ const archivedPath = path.join(logsDir, `router.${timestamp}.log`);
165
+ // Rename current log to archived version
166
+ await fs.rename(this.logFilePath, archivedPath);
167
+ console.error(`[Router Logger] Rotated log file to ${archivedPath}`);
168
+ return true;
169
+ }
170
+ catch (error) {
171
+ console.error('[Router Logger] Failed to rotate log file:', error);
172
+ return false;
173
+ }
174
+ }
175
+ return false;
176
+ }
177
+ }
178
+ exports.RouterLogger = RouterLogger;
179
+ /**
180
+ * Utility class for tracking request timing
181
+ */
182
+ class RequestTimer {
183
+ constructor() {
184
+ this.startTime = Date.now();
185
+ }
186
+ /**
187
+ * Get elapsed time in milliseconds
188
+ */
189
+ elapsed() {
190
+ return Date.now() - this.startTime;
191
+ }
192
+ /**
193
+ * Get current ISO timestamp
194
+ */
195
+ static now() {
196
+ return new Date().toISOString();
197
+ }
198
+ }
199
+ exports.RequestTimer = RequestTimer;
200
+ //# sourceMappingURL=router-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-logger.js","sourceRoot":"","sources":["../../src/lib/router-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { RouterConfig } from '../types/router-config';
2
+ export interface RouterServiceStatus {
3
+ isRunning: boolean;
4
+ pid: number | null;
5
+ exitCode: number | null;
6
+ lastExitReason?: string;
7
+ }
8
+ export declare class RouterManager {
9
+ private configDir;
10
+ private logsDir;
11
+ private configPath;
12
+ private launchAgentsDir;
13
+ constructor();
14
+ /**
15
+ * Initialize router directories
16
+ */
17
+ initialize(): Promise<void>;
18
+ /**
19
+ * Get default router configuration
20
+ */
21
+ getDefaultConfig(): RouterConfig;
22
+ /**
23
+ * Load router configuration
24
+ */
25
+ loadConfig(): Promise<RouterConfig | null>;
26
+ /**
27
+ * Save router configuration
28
+ */
29
+ saveConfig(config: RouterConfig): Promise<void>;
30
+ /**
31
+ * Update router configuration with partial changes
32
+ */
33
+ updateConfig(updates: Partial<RouterConfig>): Promise<void>;
34
+ /**
35
+ * Delete router configuration
36
+ */
37
+ deleteConfig(): Promise<void>;
38
+ /**
39
+ * Generate plist XML content for the router
40
+ */
41
+ generatePlist(config: RouterConfig): string;
42
+ /**
43
+ * Create and write plist file
44
+ */
45
+ createPlist(config: RouterConfig): Promise<void>;
46
+ /**
47
+ * Delete plist file
48
+ */
49
+ deletePlist(config: RouterConfig): Promise<void>;
50
+ /**
51
+ * Load service (register with launchctl)
52
+ */
53
+ loadService(plistPath: string): Promise<void>;
54
+ /**
55
+ * Unload service (unregister from launchctl)
56
+ */
57
+ unloadService(plistPath: string): Promise<void>;
58
+ /**
59
+ * Start service
60
+ */
61
+ startService(label: string): Promise<void>;
62
+ /**
63
+ * Stop service
64
+ */
65
+ stopService(label: string): Promise<void>;
66
+ /**
67
+ * Get service status from launchctl
68
+ */
69
+ getServiceStatus(label: string): Promise<RouterServiceStatus>;
70
+ /**
71
+ * Interpret exit code to human-readable reason
72
+ */
73
+ private interpretExitCode;
74
+ /**
75
+ * Wait for service to start (with timeout)
76
+ */
77
+ waitForServiceStart(label: string, timeoutMs?: number): Promise<boolean>;
78
+ /**
79
+ * Wait for service to stop (with timeout)
80
+ */
81
+ waitForServiceStop(label: string, timeoutMs?: number): Promise<boolean>;
82
+ /**
83
+ * Start router service
84
+ */
85
+ start(): Promise<void>;
86
+ /**
87
+ * Stop router service
88
+ */
89
+ stop(): Promise<void>;
90
+ /**
91
+ * Restart router service
92
+ */
93
+ restart(): Promise<void>;
94
+ /**
95
+ * Get router status
96
+ */
97
+ getStatus(): Promise<{
98
+ config: RouterConfig;
99
+ status: RouterServiceStatus;
100
+ } | null>;
101
+ }
102
+ export declare const routerManager: RouterManager;
103
+ //# sourceMappingURL=router-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-manager.d.ts","sourceRoot":"","sources":["../../src/lib/router-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAatD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAS;;IAShC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;OAEG;IACH,gBAAgB,IAAI,YAAY;IAiBhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAOhD;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAkE3C;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyCnE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5E;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAY3E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAA;KAAE,GAAG,IAAI,CAAC;CASzF;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC"}