@appkit/llamacpp-cli 2.0.0 → 2.2.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/README.md +271 -277
- package/dist/cli.js +133 -23
- package/dist/cli.js.map +1 -1
- package/dist/commands/admin/config.d.ts +1 -1
- package/dist/commands/admin/config.js +5 -5
- package/dist/commands/admin/config.js.map +1 -1
- package/dist/commands/admin/log-config.d.ts +11 -0
- package/dist/commands/admin/log-config.d.ts.map +1 -0
- package/dist/commands/admin/log-config.js +159 -0
- package/dist/commands/admin/log-config.js.map +1 -0
- package/dist/commands/admin/logs.d.ts +2 -3
- package/dist/commands/admin/logs.d.ts.map +1 -1
- package/dist/commands/admin/logs.js +6 -48
- package/dist/commands/admin/logs.js.map +1 -1
- package/dist/commands/admin/status.d.ts.map +1 -1
- package/dist/commands/admin/status.js +1 -0
- package/dist/commands/admin/status.js.map +1 -1
- package/dist/commands/config.d.ts +1 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +74 -196
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/create.d.ts +3 -2
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +36 -98
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +7 -24
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/internal/server-wrapper.d.ts +15 -0
- package/dist/commands/internal/server-wrapper.d.ts.map +1 -0
- package/dist/commands/internal/server-wrapper.js +126 -0
- package/dist/commands/internal/server-wrapper.js.map +1 -0
- package/dist/commands/logs-all.d.ts +0 -2
- package/dist/commands/logs-all.d.ts.map +1 -1
- package/dist/commands/logs-all.js +1 -61
- package/dist/commands/logs-all.js.map +1 -1
- package/dist/commands/logs.d.ts +2 -5
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +104 -120
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/migrate-labels.d.ts +12 -0
- package/dist/commands/migrate-labels.d.ts.map +1 -0
- package/dist/commands/migrate-labels.js +160 -0
- package/dist/commands/migrate-labels.js.map +1 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +2 -1
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/rm.d.ts.map +1 -1
- package/dist/commands/rm.js +22 -48
- package/dist/commands/rm.js.map +1 -1
- package/dist/commands/router/config.d.ts +1 -1
- package/dist/commands/router/config.js +6 -6
- package/dist/commands/router/config.js.map +1 -1
- package/dist/commands/router/logs.d.ts +2 -4
- package/dist/commands/router/logs.d.ts.map +1 -1
- package/dist/commands/router/logs.js +34 -189
- package/dist/commands/router/logs.js.map +1 -1
- package/dist/commands/router/status.d.ts.map +1 -1
- package/dist/commands/router/status.js +1 -0
- package/dist/commands/router/status.js.map +1 -1
- package/dist/commands/server-show.d.ts.map +1 -1
- package/dist/commands/server-show.js +3 -0
- package/dist/commands/server-show.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +21 -72
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +10 -26
- package/dist/commands/stop.js.map +1 -1
- package/dist/launchers/llamacpp-admin +8 -0
- package/dist/launchers/llamacpp-router +8 -0
- package/dist/launchers/llamacpp-server +8 -0
- package/dist/lib/admin-manager.d.ts +4 -0
- package/dist/lib/admin-manager.d.ts.map +1 -1
- package/dist/lib/admin-manager.js +42 -18
- package/dist/lib/admin-manager.js.map +1 -1
- package/dist/lib/admin-server.d.ts +48 -1
- package/dist/lib/admin-server.d.ts.map +1 -1
- package/dist/lib/admin-server.js +632 -238
- package/dist/lib/admin-server.js.map +1 -1
- package/dist/lib/config-generator.d.ts +1 -0
- package/dist/lib/config-generator.d.ts.map +1 -1
- package/dist/lib/config-generator.js +12 -5
- package/dist/lib/config-generator.js.map +1 -1
- package/dist/lib/keyboard-manager.d.ts +162 -0
- package/dist/lib/keyboard-manager.d.ts.map +1 -0
- package/dist/lib/keyboard-manager.js +247 -0
- package/dist/lib/keyboard-manager.js.map +1 -0
- package/dist/lib/label-migration.d.ts +65 -0
- package/dist/lib/label-migration.d.ts.map +1 -0
- package/dist/lib/label-migration.js +458 -0
- package/dist/lib/label-migration.js.map +1 -0
- package/dist/lib/launchctl-manager.d.ts +9 -0
- package/dist/lib/launchctl-manager.d.ts.map +1 -1
- package/dist/lib/launchctl-manager.js +65 -19
- package/dist/lib/launchctl-manager.js.map +1 -1
- package/dist/lib/log-management-service.d.ts +51 -0
- package/dist/lib/log-management-service.d.ts.map +1 -0
- package/dist/lib/log-management-service.js +124 -0
- package/dist/lib/log-management-service.js.map +1 -0
- package/dist/lib/log-workers.d.ts +70 -0
- package/dist/lib/log-workers.d.ts.map +1 -0
- package/dist/lib/log-workers.js +217 -0
- package/dist/lib/log-workers.js.map +1 -0
- package/dist/lib/model-downloader.d.ts +9 -1
- package/dist/lib/model-downloader.d.ts.map +1 -1
- package/dist/lib/model-downloader.js +98 -1
- package/dist/lib/model-downloader.js.map +1 -1
- package/dist/lib/model-management-service.d.ts +60 -0
- package/dist/lib/model-management-service.d.ts.map +1 -0
- package/dist/lib/model-management-service.js +246 -0
- package/dist/lib/model-management-service.js.map +1 -0
- package/dist/lib/model-management-service.test.d.ts +2 -0
- package/dist/lib/model-management-service.test.d.ts.map +1 -0
- package/dist/lib/model-management-service.test.js.map +1 -0
- package/dist/lib/model-scanner.d.ts +15 -3
- package/dist/lib/model-scanner.d.ts.map +1 -1
- package/dist/lib/model-scanner.js +174 -17
- package/dist/lib/model-scanner.js.map +1 -1
- package/dist/lib/openapi-spec.d.ts +1335 -0
- package/dist/lib/openapi-spec.d.ts.map +1 -0
- package/dist/lib/openapi-spec.js +1017 -0
- package/dist/lib/openapi-spec.js.map +1 -0
- package/dist/lib/router-logger.d.ts +1 -1
- package/dist/lib/router-logger.d.ts.map +1 -1
- package/dist/lib/router-logger.js +13 -11
- package/dist/lib/router-logger.js.map +1 -1
- package/dist/lib/router-manager.d.ts +4 -0
- package/dist/lib/router-manager.d.ts.map +1 -1
- package/dist/lib/router-manager.js +30 -18
- package/dist/lib/router-manager.js.map +1 -1
- package/dist/lib/router-server.d.ts +6 -0
- package/dist/lib/router-server.d.ts.map +1 -1
- package/dist/lib/router-server.js +534 -20
- package/dist/lib/router-server.js.map +1 -1
- package/dist/lib/server-config-service.d.ts +51 -0
- package/dist/lib/server-config-service.d.ts.map +1 -0
- package/dist/lib/server-config-service.js +328 -0
- package/dist/lib/server-config-service.js.map +1 -0
- package/dist/lib/server-config-service.test.d.ts +2 -0
- package/dist/lib/server-config-service.test.d.ts.map +1 -0
- package/dist/lib/server-config-service.test.js.map +1 -0
- package/dist/lib/server-lifecycle-service.d.ts +172 -0
- package/dist/lib/server-lifecycle-service.d.ts.map +1 -0
- package/dist/lib/server-lifecycle-service.js +619 -0
- package/dist/lib/server-lifecycle-service.js.map +1 -0
- package/dist/lib/state-manager.d.ts +18 -1
- package/dist/lib/state-manager.d.ts.map +1 -1
- package/dist/lib/state-manager.js +51 -2
- package/dist/lib/state-manager.js.map +1 -1
- package/dist/lib/status-checker.d.ts +11 -4
- package/dist/lib/status-checker.d.ts.map +1 -1
- package/dist/lib/status-checker.js +34 -1
- package/dist/lib/status-checker.js.map +1 -1
- package/dist/lib/validation-service.d.ts +43 -0
- package/dist/lib/validation-service.d.ts.map +1 -0
- package/dist/lib/validation-service.js +112 -0
- package/dist/lib/validation-service.js.map +1 -0
- package/dist/lib/validation-service.test.d.ts +2 -0
- package/dist/lib/validation-service.test.d.ts.map +1 -0
- package/dist/lib/validation-service.test.js.map +1 -0
- package/dist/scripts/http-log-filter.sh +8 -0
- package/dist/tui/ConfigApp.d.ts.map +1 -1
- package/dist/tui/ConfigApp.js +222 -184
- package/dist/tui/ConfigApp.js.map +1 -1
- package/dist/tui/HistoricalMonitorApp.d.ts.map +1 -1
- package/dist/tui/HistoricalMonitorApp.js +12 -0
- package/dist/tui/HistoricalMonitorApp.js.map +1 -1
- package/dist/tui/ModelsApp.d.ts.map +1 -1
- package/dist/tui/ModelsApp.js +93 -17
- package/dist/tui/ModelsApp.js.map +1 -1
- package/dist/tui/MonitorApp.d.ts.map +1 -1
- package/dist/tui/MonitorApp.js +1 -3
- package/dist/tui/MonitorApp.js.map +1 -1
- package/dist/tui/MultiServerMonitorApp.d.ts +3 -3
- package/dist/tui/MultiServerMonitorApp.d.ts.map +1 -1
- package/dist/tui/MultiServerMonitorApp.js +724 -508
- package/dist/tui/MultiServerMonitorApp.js.map +1 -1
- package/dist/tui/RootNavigator.d.ts.map +1 -1
- package/dist/tui/RootNavigator.js +17 -1
- package/dist/tui/RootNavigator.js.map +1 -1
- package/dist/tui/RouterApp.d.ts +6 -0
- package/dist/tui/RouterApp.d.ts.map +1 -0
- package/dist/tui/RouterApp.js +928 -0
- package/dist/tui/RouterApp.js.map +1 -0
- package/dist/tui/SearchApp.d.ts.map +1 -1
- package/dist/tui/SearchApp.js +27 -6
- package/dist/tui/SearchApp.js.map +1 -1
- package/dist/tui/shared/modal-controller.d.ts +65 -0
- package/dist/tui/shared/modal-controller.d.ts.map +1 -0
- package/dist/tui/shared/modal-controller.js +625 -0
- package/dist/tui/shared/modal-controller.js.map +1 -0
- package/dist/tui/shared/overlay-utils.d.ts +7 -0
- package/dist/tui/shared/overlay-utils.d.ts.map +1 -0
- package/dist/tui/shared/overlay-utils.js +54 -0
- package/dist/tui/shared/overlay-utils.js.map +1 -0
- package/dist/types/admin-config.d.ts +15 -2
- package/dist/types/admin-config.d.ts.map +1 -1
- package/dist/types/model-info.d.ts +5 -0
- package/dist/types/model-info.d.ts.map +1 -1
- package/dist/types/router-config.d.ts +2 -2
- package/dist/types/router-config.d.ts.map +1 -1
- package/dist/types/server-config.d.ts +8 -0
- package/dist/types/server-config.d.ts.map +1 -1
- package/dist/types/server-config.js +25 -0
- package/dist/types/server-config.js.map +1 -1
- package/dist/utils/http-log-filter.d.ts +10 -0
- package/dist/utils/http-log-filter.d.ts.map +1 -0
- package/dist/utils/http-log-filter.js +84 -0
- package/dist/utils/http-log-filter.js.map +1 -0
- package/dist/utils/log-parser.d.ts.map +1 -1
- package/dist/utils/log-parser.js +7 -4
- package/dist/utils/log-parser.js.map +1 -1
- package/dist/utils/log-utils.d.ts +59 -4
- package/dist/utils/log-utils.d.ts.map +1 -1
- package/dist/utils/log-utils.js +150 -11
- package/dist/utils/log-utils.js.map +1 -1
- package/dist/utils/shard-utils.d.ts +72 -0
- package/dist/utils/shard-utils.d.ts.map +1 -0
- package/dist/utils/shard-utils.js +168 -0
- package/dist/utils/shard-utils.js.map +1 -0
- package/package.json +18 -4
- package/src/launchers/llamacpp-admin +8 -0
- package/src/launchers/llamacpp-router +8 -0
- package/src/launchers/llamacpp-server +8 -0
- package/web/dist/assets/index-C7zA1ach.js +50 -0
- package/web/dist/assets/index-aLnMmRR8.css +1 -0
- package/web/dist/index.html +2 -2
- package/web/dist/assets/index-Bin89Lwr.css +0 -1
- package/web/dist/assets/index-CVmonw3T.js +0 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-utils.js","sourceRoot":"","sources":["../../src/utils/log-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,kCAOC;AAKD,wCAMC;AAOD,sCA8BC;
|
|
1
|
+
{"version":3,"file":"log-utils.js","sourceRoot":"","sources":["../../src/utils/log-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Information about a sharded model file
|
|
3
|
+
*/
|
|
4
|
+
export interface ShardInfo {
|
|
5
|
+
/** True if this file follows a shard naming pattern */
|
|
6
|
+
isSharded: boolean;
|
|
7
|
+
/** 1-based shard index (e.g., 1 for "Model-00001-of-00009.gguf") */
|
|
8
|
+
shardIndex?: number;
|
|
9
|
+
/** Total number of shards in the set */
|
|
10
|
+
shardCount?: number;
|
|
11
|
+
/** Base model name without shard suffix (e.g., "Model" from "Model-00001-of-00009.gguf") */
|
|
12
|
+
baseModelName?: string;
|
|
13
|
+
/** Regex pattern to match all shards in the set */
|
|
14
|
+
shardPattern?: RegExp;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validation result for shard completeness
|
|
18
|
+
*/
|
|
19
|
+
export interface ShardValidation {
|
|
20
|
+
/** True if all expected shards are present */
|
|
21
|
+
complete: boolean;
|
|
22
|
+
/** Array of missing shard indices (1-based) */
|
|
23
|
+
missing: number[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parse a filename to detect if it's a sharded model and extract shard information
|
|
27
|
+
*
|
|
28
|
+
* @param filename - The filename to parse (basename, not full path)
|
|
29
|
+
* @returns ShardInfo object with detection results
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* parseShardFilename('Model-00001-of-00009.gguf')
|
|
33
|
+
* // Returns: { isSharded: true, shardIndex: 1, shardCount: 9, baseModelName: 'Model', ... }
|
|
34
|
+
*
|
|
35
|
+
* parseShardFilename('regular-model.gguf')
|
|
36
|
+
* // Returns: { isSharded: false }
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseShardFilename(filename: string): ShardInfo;
|
|
39
|
+
/**
|
|
40
|
+
* Find all shard files matching the given shard info in a directory
|
|
41
|
+
*
|
|
42
|
+
* @param directory - Directory to search (absolute path)
|
|
43
|
+
* @param shardInfo - Shard information from parseShardFilename
|
|
44
|
+
* @returns Array of absolute paths to all matching shards, sorted by index
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* const shardInfo = parseShardFilename('Model-00001-of-00003.gguf');
|
|
48
|
+
* const shards = await findAllShards('/Users/user/models', shardInfo);
|
|
49
|
+
* // Returns: ['/Users/user/models/Model-00001-of-00003.gguf', ...]
|
|
50
|
+
*/
|
|
51
|
+
export declare function findAllShards(directory: string, shardInfo: ShardInfo): Promise<string[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Validate that all expected shards are present
|
|
54
|
+
*
|
|
55
|
+
* @param foundShards - Array of shard file paths (in any order)
|
|
56
|
+
* @param expectedCount - Total number of shards expected
|
|
57
|
+
* @returns ShardValidation with completeness status and missing indices
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* const paths = ['/m/Model-00001-of-00003.gguf', '/m/Model-00003-of-00003.gguf'];
|
|
61
|
+
* const result = validateShardCompleteness(paths, 3);
|
|
62
|
+
* // Returns: { complete: false, missing: [2] }
|
|
63
|
+
*/
|
|
64
|
+
export declare function validateShardCompleteness(foundShards: string[], expectedCount: number): ShardValidation;
|
|
65
|
+
/**
|
|
66
|
+
* Calculate total size of all shard files
|
|
67
|
+
*
|
|
68
|
+
* @param shardPaths - Array of absolute paths to shard files
|
|
69
|
+
* @returns Total size in bytes
|
|
70
|
+
*/
|
|
71
|
+
export declare function calculateTotalShardSize(shardPaths: string[]): Promise<number>;
|
|
72
|
+
//# sourceMappingURL=shard-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-utils.d.ts","sourceRoot":"","sources":["../../src/utils/shard-utils.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CA0B9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EAAE,EACrB,aAAa,EAAE,MAAM,GACpB,eAAe,CAwBjB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAcnF"}
|
|
@@ -0,0 +1,168 @@
|
|
|
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.parseShardFilename = parseShardFilename;
|
|
37
|
+
exports.findAllShards = findAllShards;
|
|
38
|
+
exports.validateShardCompleteness = validateShardCompleteness;
|
|
39
|
+
exports.calculateTotalShardSize = calculateTotalShardSize;
|
|
40
|
+
const fs = __importStar(require("fs/promises"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
/**
|
|
43
|
+
* Standard shard pattern: Model-00001-of-00009.gguf
|
|
44
|
+
* Also matches variations like: Model-part-00001-of-00009.gguf
|
|
45
|
+
*/
|
|
46
|
+
const SHARD_PATTERN = /^(.+?)(?:-part)?-(\d{5})-of-(\d{5})\.gguf$/i;
|
|
47
|
+
/**
|
|
48
|
+
* Parse a filename to detect if it's a sharded model and extract shard information
|
|
49
|
+
*
|
|
50
|
+
* @param filename - The filename to parse (basename, not full path)
|
|
51
|
+
* @returns ShardInfo object with detection results
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* parseShardFilename('Model-00001-of-00009.gguf')
|
|
55
|
+
* // Returns: { isSharded: true, shardIndex: 1, shardCount: 9, baseModelName: 'Model', ... }
|
|
56
|
+
*
|
|
57
|
+
* parseShardFilename('regular-model.gguf')
|
|
58
|
+
* // Returns: { isSharded: false }
|
|
59
|
+
*/
|
|
60
|
+
function parseShardFilename(filename) {
|
|
61
|
+
const match = filename.match(SHARD_PATTERN);
|
|
62
|
+
if (!match) {
|
|
63
|
+
return { isSharded: false };
|
|
64
|
+
}
|
|
65
|
+
const [, baseName, indexStr, countStr] = match;
|
|
66
|
+
const shardIndex = parseInt(indexStr, 10);
|
|
67
|
+
const shardCount = parseInt(countStr, 10);
|
|
68
|
+
// Create pattern to match all shards in the set
|
|
69
|
+
// Example: "Model" -> /^Model(?:-part)?-\d{5}-of-\d{5}\.gguf$/i
|
|
70
|
+
const escapedBase = baseName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
71
|
+
const shardPattern = new RegExp(`^${escapedBase}(?:-part)?-\\d{5}-of-${countStr}\\.gguf$`, 'i');
|
|
72
|
+
return {
|
|
73
|
+
isSharded: true,
|
|
74
|
+
shardIndex,
|
|
75
|
+
shardCount,
|
|
76
|
+
baseModelName: baseName,
|
|
77
|
+
shardPattern,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Find all shard files matching the given shard info in a directory
|
|
82
|
+
*
|
|
83
|
+
* @param directory - Directory to search (absolute path)
|
|
84
|
+
* @param shardInfo - Shard information from parseShardFilename
|
|
85
|
+
* @returns Array of absolute paths to all matching shards, sorted by index
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* const shardInfo = parseShardFilename('Model-00001-of-00003.gguf');
|
|
89
|
+
* const shards = await findAllShards('/Users/user/models', shardInfo);
|
|
90
|
+
* // Returns: ['/Users/user/models/Model-00001-of-00003.gguf', ...]
|
|
91
|
+
*/
|
|
92
|
+
async function findAllShards(directory, shardInfo) {
|
|
93
|
+
if (!shardInfo.isSharded || !shardInfo.shardPattern) {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const files = await fs.readdir(directory);
|
|
98
|
+
const matchingFiles = files.filter(file => shardInfo.shardPattern.test(file));
|
|
99
|
+
// Sort by shard index (extract from filename)
|
|
100
|
+
const sortedFiles = matchingFiles.sort((a, b) => {
|
|
101
|
+
const aMatch = a.match(/-(\d{5})-of-/);
|
|
102
|
+
const bMatch = b.match(/-(\d{5})-of-/);
|
|
103
|
+
if (!aMatch || !bMatch)
|
|
104
|
+
return 0;
|
|
105
|
+
return parseInt(aMatch[1], 10) - parseInt(bMatch[1], 10);
|
|
106
|
+
});
|
|
107
|
+
return sortedFiles.map(file => path.join(directory, file));
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
// Directory doesn't exist or not accessible
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Validate that all expected shards are present
|
|
116
|
+
*
|
|
117
|
+
* @param foundShards - Array of shard file paths (in any order)
|
|
118
|
+
* @param expectedCount - Total number of shards expected
|
|
119
|
+
* @returns ShardValidation with completeness status and missing indices
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* const paths = ['/m/Model-00001-of-00003.gguf', '/m/Model-00003-of-00003.gguf'];
|
|
123
|
+
* const result = validateShardCompleteness(paths, 3);
|
|
124
|
+
* // Returns: { complete: false, missing: [2] }
|
|
125
|
+
*/
|
|
126
|
+
function validateShardCompleteness(foundShards, expectedCount) {
|
|
127
|
+
// Extract shard indices from paths
|
|
128
|
+
const foundIndices = new Set();
|
|
129
|
+
for (const shardPath of foundShards) {
|
|
130
|
+
const filename = path.basename(shardPath);
|
|
131
|
+
const match = filename.match(/-(\d{5})-of-/);
|
|
132
|
+
if (match) {
|
|
133
|
+
foundIndices.add(parseInt(match[1], 10));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Check for missing indices (1-based)
|
|
137
|
+
const missing = [];
|
|
138
|
+
for (let i = 1; i <= expectedCount; i++) {
|
|
139
|
+
if (!foundIndices.has(i)) {
|
|
140
|
+
missing.push(i);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
complete: missing.length === 0,
|
|
145
|
+
missing,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Calculate total size of all shard files
|
|
150
|
+
*
|
|
151
|
+
* @param shardPaths - Array of absolute paths to shard files
|
|
152
|
+
* @returns Total size in bytes
|
|
153
|
+
*/
|
|
154
|
+
async function calculateTotalShardSize(shardPaths) {
|
|
155
|
+
let totalSize = 0;
|
|
156
|
+
for (const shardPath of shardPaths) {
|
|
157
|
+
try {
|
|
158
|
+
const stats = await fs.stat(shardPath);
|
|
159
|
+
totalSize += stats.size;
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
// Skip files that don't exist or can't be accessed
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return totalSize;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=shard-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-utils.js","sourceRoot":"","sources":["../../src/utils/shard-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appkit/llamacpp-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "CLI tool to manage local llama.cpp servers on macOS",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -10,14 +10,23 @@
|
|
|
10
10
|
"dist/",
|
|
11
11
|
"bin/",
|
|
12
12
|
"web/dist/",
|
|
13
|
+
"src/launchers/",
|
|
13
14
|
"README.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
16
17
|
"scripts": {
|
|
17
18
|
"dev": "tsx src/cli.ts",
|
|
18
|
-
"build": "tsc",
|
|
19
|
+
"build": "tsc && npm run postbuild",
|
|
20
|
+
"postbuild": "cp -r src/launchers dist/ && chmod +x dist/launchers/llamacpp-server dist/launchers/llamacpp-router dist/launchers/llamacpp-admin",
|
|
19
21
|
"start": "node dist/cli.js",
|
|
20
22
|
"clean": "rm -rf dist",
|
|
23
|
+
"test": "vitest run",
|
|
24
|
+
"test:watch": "vitest",
|
|
25
|
+
"test:ui": "vitest --ui",
|
|
26
|
+
"test:coverage": "vitest run --coverage",
|
|
27
|
+
"test:validation": "vitest run src/lib/validation-service.test.ts",
|
|
28
|
+
"test:model": "vitest run src/lib/model-management-service.test.ts",
|
|
29
|
+
"test:config": "vitest run src/lib/server-config-service.test.ts",
|
|
21
30
|
"verify-package": "node scripts/verify-package.js",
|
|
22
31
|
"prepublishOnly": "npm run build && cd web && npm install && npm run build && cd .. && npm run verify-package",
|
|
23
32
|
"release": "commit-and-tag-version",
|
|
@@ -52,15 +61,20 @@
|
|
|
52
61
|
"blessed": "^0.1.81",
|
|
53
62
|
"chalk": "^4.1.2",
|
|
54
63
|
"cli-table3": "^0.6.5",
|
|
55
|
-
"commander": "^13.0.0"
|
|
64
|
+
"commander": "^13.0.0",
|
|
65
|
+
"swagger-ui-dist": "^5.31.1",
|
|
66
|
+
"swagger-ui-express": "^5.0.1"
|
|
56
67
|
},
|
|
57
68
|
"devDependencies": {
|
|
58
69
|
"@types/asciichart": "^1.5.8",
|
|
59
70
|
"@types/blessed": "^0.1.27",
|
|
60
71
|
"@types/node": "^20.12.7",
|
|
72
|
+
"@vitest/coverage-v8": "^2.1.9",
|
|
73
|
+
"@vitest/ui": "^2.1.9",
|
|
61
74
|
"commit-and-tag-version": "^12.6.1",
|
|
62
75
|
"tsx": "^4.7.2",
|
|
63
|
-
"typescript": "^5.4.5"
|
|
76
|
+
"typescript": "^5.4.5",
|
|
77
|
+
"vitest": "^2.1.9"
|
|
64
78
|
},
|
|
65
79
|
"engines": {
|
|
66
80
|
"node": ">=18.0.0"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# llamacpp-cli admin launcher wrapper
|
|
3
|
+
# This script invokes Node.js but appears as "llamacpp-admin" in process lists and macOS notifications
|
|
4
|
+
# First argument is the full path to node executable
|
|
5
|
+
NODE_PATH="$1"
|
|
6
|
+
shift
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
8
|
+
exec "$NODE_PATH" "$SCRIPT_DIR/../lib/admin-server.js" "$@"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# llamacpp-cli router launcher wrapper
|
|
3
|
+
# This script invokes Node.js but appears as "llamacpp-router" in process lists and macOS notifications
|
|
4
|
+
# First argument is the full path to node executable
|
|
5
|
+
NODE_PATH="$1"
|
|
6
|
+
shift
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
8
|
+
exec "$NODE_PATH" "$SCRIPT_DIR/../lib/router-server.js" "$@"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# llamacpp-cli launcher wrapper
|
|
3
|
+
# This script invokes Node.js but appears as "llamacpp-server" in process lists and macOS notifications
|
|
4
|
+
# First argument is the full path to node executable
|
|
5
|
+
NODE_PATH="$1"
|
|
6
|
+
shift
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
8
|
+
exec "$NODE_PATH" "$SCRIPT_DIR/../cli.js" "$@"
|