@appkit/llamacpp-cli 1.1.1 → 1.3.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 +129 -16
- package/dist/cli.js +61 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.d.ts +10 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +136 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/create.d.ts +11 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +160 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +17 -3
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/ps.js +1 -1
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/pull.js +1 -1
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/run.d.ts +5 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +22 -3
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/server-show.d.ts +2 -0
- package/dist/commands/server-show.d.ts.map +1 -0
- package/dist/commands/server-show.js +121 -0
- package/dist/commands/server-show.js.map +1 -0
- package/dist/commands/start.d.ts +1 -10
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +31 -121
- package/dist/commands/start.js.map +1 -1
- package/dist/lib/config-generator.d.ts +2 -2
- package/dist/lib/config-generator.d.ts.map +1 -1
- package/dist/lib/config-generator.js +6 -6
- package/dist/lib/config-generator.js.map +1 -1
- package/dist/lib/launchctl-manager.d.ts.map +1 -1
- package/dist/lib/launchctl-manager.js +4 -4
- package/dist/lib/launchctl-manager.js.map +1 -1
- package/dist/lib/state-manager.d.ts +4 -0
- package/dist/lib/state-manager.d.ts.map +1 -1
- package/dist/lib/state-manager.js +11 -0
- package/dist/lib/state-manager.js.map +1 -1
- package/dist/types/server-config.d.ts +2 -2
- package/dist/types/server-config.d.ts.map +1 -1
- package/dist/utils/log-parser.d.ts +10 -0
- package/dist/utils/log-parser.d.ts.map +1 -1
- package/dist/utils/log-parser.js +51 -3
- package/dist/utils/log-parser.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +61 -8
- package/src/commands/config.ts +155 -0
- package/src/commands/create.ts +153 -0
- package/src/commands/list.ts +1 -1
- package/src/commands/logs.ts +20 -3
- package/src/commands/ps.ts +1 -1
- package/src/commands/pull.ts +1 -1
- package/src/commands/run.ts +27 -3
- package/src/commands/server-show.ts +126 -0
- package/src/commands/start.ts +39 -112
- package/src/lib/config-generator.ts +8 -8
- package/src/lib/launchctl-manager.ts +5 -3
- package/src/lib/state-manager.ts +12 -0
- package/src/types/server-config.ts +2 -2
- package/src/utils/log-parser.ts +54 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.3.0](https://github.com/appkitstudio/llamacpp-cli/compare/v1.2.0...v1.3.0) (2025-12-30)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add server config command with host parameter support ([11faf4c](https://github.com/appkitstudio/llamacpp-cli/commit/11faf4c4031696be8e49efb6dbe73f4c5f5bee50))
|
|
11
|
+
|
|
12
|
+
## [1.2.0](https://github.com/appkitstudio/llamacpp-cli/compare/v1.1.1...v1.2.0) (2025-12-09)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* add 'show' command to display server configuration and status details ([1f615eb](https://github.com/appkitstudio/llamacpp-cli/commit/1f615ebe369ae9d61b087a79fc17787e4a56d3b5))
|
|
18
|
+
* add support for one-shot message mode in 'run' command ([853d62a](https://github.com/appkitstudio/llamacpp-cli/commit/853d62ab9ef9ec8c4e45213f00453d7b28648124))
|
|
19
|
+
* implement 'create' command for server management and update related documentation ([39996e2](https://github.com/appkitstudio/llamacpp-cli/commit/39996e26f412dd593d9c253322a90d17907dfff4))
|
|
20
|
+
|
|
5
21
|
## [1.1.1](https://github.com/appkitstudio/llamacpp-cli/compare/v1.1.0...v1.1.1) (2025-12-09)
|
|
6
22
|
|
|
7
23
|
|
package/README.md
CHANGED
|
@@ -70,8 +70,8 @@ llamacpp pull bartowski/Llama-3.2-3B-Instruct-GGUF/llama-3.2-3b-instruct-q4_k_m.
|
|
|
70
70
|
# List local models
|
|
71
71
|
llamacpp ls
|
|
72
72
|
|
|
73
|
-
#
|
|
74
|
-
llamacpp server
|
|
73
|
+
# Create and start a server (auto-assigns port, uses smart defaults)
|
|
74
|
+
llamacpp server create llama-3.2-3b-instruct-q4_k_m.gguf
|
|
75
75
|
|
|
76
76
|
# View running servers
|
|
77
77
|
llamacpp ps
|
|
@@ -79,9 +79,15 @@ llamacpp ps
|
|
|
79
79
|
# Chat with your model interactively
|
|
80
80
|
llamacpp server run llama-3.2-3b
|
|
81
81
|
|
|
82
|
+
# Or send a single message (non-interactive)
|
|
83
|
+
llamacpp server run llama-3.2-3b -m "What is the capital of France?"
|
|
84
|
+
|
|
82
85
|
# Stop a server
|
|
83
86
|
llamacpp server stop llama-3.2-3b
|
|
84
87
|
|
|
88
|
+
# Start a stopped server
|
|
89
|
+
llamacpp server start llama-3.2-3b
|
|
90
|
+
|
|
85
91
|
# View logs
|
|
86
92
|
llamacpp server logs llama-3.2-3b -f
|
|
87
93
|
```
|
|
@@ -126,11 +132,11 @@ The server is fully compatible with OpenAI's API format, so you can use it with
|
|
|
126
132
|
|
|
127
133
|
### Example Output
|
|
128
134
|
|
|
129
|
-
|
|
135
|
+
Creating a server:
|
|
130
136
|
```
|
|
131
|
-
$ llamacpp server
|
|
137
|
+
$ llamacpp server create llama-3.2-3b-instruct-q4_k_m.gguf
|
|
132
138
|
|
|
133
|
-
✓ Server started successfully!
|
|
139
|
+
✓ Server created and started successfully!
|
|
134
140
|
|
|
135
141
|
Model: llama-3.2-3b-instruct-q4_k_m.gguf
|
|
136
142
|
Port: 9000
|
|
@@ -165,6 +171,12 @@ Assistant: The capital of France is Paris...
|
|
|
165
171
|
You: exit
|
|
166
172
|
```
|
|
167
173
|
|
|
174
|
+
One-shot message:
|
|
175
|
+
```
|
|
176
|
+
$ llamacpp server run llama-3.2-3b -m "What is the capital of France?"
|
|
177
|
+
Assistant: The capital of France is Paris...
|
|
178
|
+
```
|
|
179
|
+
|
|
168
180
|
## Commands
|
|
169
181
|
|
|
170
182
|
### `llamacpp ls`
|
|
@@ -252,32 +264,115 @@ Shows:
|
|
|
252
264
|
|
|
253
265
|
## Server Management
|
|
254
266
|
|
|
255
|
-
### `llamacpp server
|
|
256
|
-
|
|
267
|
+
### `llamacpp server create <model> [options]`
|
|
268
|
+
Create and start a new llama-server instance.
|
|
257
269
|
|
|
258
270
|
```bash
|
|
259
|
-
llamacpp server
|
|
260
|
-
llamacpp server
|
|
271
|
+
llamacpp server create llama-3.2-3b-instruct-q4_k_m.gguf
|
|
272
|
+
llamacpp server create llama-3.2-3b-instruct-q4_k_m.gguf --port 8080 --ctx-size 16384 --verbose
|
|
273
|
+
|
|
274
|
+
# Enable remote access (WARNING: security implications)
|
|
275
|
+
llamacpp server create llama-3.2-3b-instruct-q4_k_m.gguf --host 0.0.0.0
|
|
261
276
|
```
|
|
262
277
|
|
|
263
278
|
**Options:**
|
|
264
279
|
- `-p, --port <number>` - Port number (default: auto-assign from 9000)
|
|
280
|
+
- `-h, --host <address>` - Bind address (default: `127.0.0.1` for localhost only, use `0.0.0.0` for remote access)
|
|
265
281
|
- `-t, --threads <number>` - Thread count (default: half of CPU cores)
|
|
266
282
|
- `-c, --ctx-size <number>` - Context size (default: based on model size)
|
|
267
283
|
- `-g, --gpu-layers <number>` - GPU layers (default: 60)
|
|
284
|
+
- `-v, --verbose` - Enable verbose HTTP logging (default: enabled)
|
|
285
|
+
|
|
286
|
+
**⚠️ Security Warning:** Using `--host 0.0.0.0` binds the server to all network interfaces, allowing remote access from your local network and potentially the internet. Only use this if you understand the security implications and need remote access. For local development, keep the default `127.0.0.1` (localhost only).
|
|
268
287
|
|
|
269
|
-
### `llamacpp server
|
|
270
|
-
|
|
288
|
+
### `llamacpp server show <identifier>`
|
|
289
|
+
Show detailed configuration and status information for a server.
|
|
271
290
|
|
|
272
291
|
```bash
|
|
292
|
+
llamacpp server show llama-3.2-3b # By partial name
|
|
293
|
+
llamacpp server show 9000 # By port
|
|
294
|
+
llamacpp server show llama-3-2-3b # By server ID
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Displays:**
|
|
298
|
+
- Server ID, model name, and path
|
|
299
|
+
- Current status (running/stopped/crashed)
|
|
300
|
+
- Host and port
|
|
301
|
+
- PID (process ID)
|
|
302
|
+
- Runtime info (uptime, memory usage)
|
|
303
|
+
- Configuration (host, threads, context size, GPU layers, verbose logging)
|
|
304
|
+
- Timestamps (created, last started/stopped)
|
|
305
|
+
- System paths (plist file, log files)
|
|
306
|
+
- Quick commands for common next actions
|
|
307
|
+
|
|
308
|
+
**Identifiers:** Port number, server ID, partial model name
|
|
309
|
+
|
|
310
|
+
### `llamacpp server config <identifier> [options]`
|
|
311
|
+
Update server configuration parameters without recreating the server.
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
# Update context size and restart
|
|
315
|
+
llamacpp server config llama-3.2-3b --ctx-size 8192 --restart
|
|
316
|
+
|
|
317
|
+
# Update threads without restarting
|
|
318
|
+
llamacpp server config 9000 --threads 8
|
|
319
|
+
|
|
320
|
+
# Enable remote access (WARNING: security implications)
|
|
321
|
+
llamacpp server config llama-3.2-3b --host 0.0.0.0 --restart
|
|
322
|
+
|
|
323
|
+
# Toggle verbose logging
|
|
324
|
+
llamacpp server config llama-3.2-3b --no-verbose --restart
|
|
325
|
+
|
|
326
|
+
# Update multiple parameters
|
|
327
|
+
llamacpp server config llama-3.2-3b --threads 8 --ctx-size 16384 --gpu-layers 40 --restart
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**Options:**
|
|
331
|
+
- `-h, --host <address>` - Update bind address (`127.0.0.1` for localhost, `0.0.0.0` for remote access)
|
|
332
|
+
- `-t, --threads <number>` - Update thread count
|
|
333
|
+
- `-c, --ctx-size <number>` - Update context size
|
|
334
|
+
- `-g, --gpu-layers <number>` - Update GPU layers
|
|
335
|
+
- `-v, --verbose` - Enable verbose logging
|
|
336
|
+
- `--no-verbose` - Disable verbose logging
|
|
337
|
+
- `-r, --restart` - Automatically restart server if running
|
|
338
|
+
|
|
339
|
+
**Note:** Changes require a server restart to take effect. Use `--restart` to automatically stop and start the server with the new configuration.
|
|
340
|
+
|
|
341
|
+
**⚠️ Security Warning:** Using `--host 0.0.0.0` binds the server to all network interfaces, allowing remote access. Only use this if you understand the security implications.
|
|
342
|
+
|
|
343
|
+
**Identifiers:** Port number, server ID, partial model name
|
|
344
|
+
|
|
345
|
+
### `llamacpp server start <identifier>`
|
|
346
|
+
Start an existing stopped server.
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
llamacpp server start llama-3.2-3b # By partial name
|
|
350
|
+
llamacpp server start 9000 # By port
|
|
351
|
+
llamacpp server start llama-3-2-3b # By server ID
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**Identifiers:** Port number, server ID, partial model name, or model filename
|
|
355
|
+
|
|
356
|
+
### `llamacpp server run <identifier> [options]`
|
|
357
|
+
Run an interactive chat session with a model, or send a single message.
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Interactive mode (REPL)
|
|
273
361
|
llamacpp server run llama-3.2-3b # By partial name
|
|
274
362
|
llamacpp server run 9000 # By port
|
|
275
363
|
llamacpp server run llama-3-2-3b # By server ID
|
|
364
|
+
|
|
365
|
+
# One-shot mode (single message and exit)
|
|
366
|
+
llamacpp server run llama-3.2-3b -m "What is the capital of France?"
|
|
367
|
+
llamacpp server run 9000 --message "Explain quantum computing in simple terms"
|
|
276
368
|
```
|
|
277
369
|
|
|
370
|
+
**Options:**
|
|
371
|
+
- `-m, --message <text>` - Send a single message and exit (non-interactive mode)
|
|
372
|
+
|
|
278
373
|
**Identifiers:** Port number, server ID, partial model name, or model filename
|
|
279
374
|
|
|
280
|
-
|
|
375
|
+
In interactive mode, type `exit` or press Ctrl+C to end the session.
|
|
281
376
|
|
|
282
377
|
### `llamacpp server stop <identifier>`
|
|
283
378
|
Stop a running server by model name, port, or ID.
|
|
@@ -298,10 +393,19 @@ llamacpp server rm 9000
|
|
|
298
393
|
### `llamacpp server logs <identifier> [options]`
|
|
299
394
|
View server logs with smart filtering.
|
|
300
395
|
|
|
396
|
+
**Default (verbose enabled):**
|
|
301
397
|
```bash
|
|
302
|
-
# Compact one-liner format (default)
|
|
303
398
|
llamacpp server logs llama-3.2-3b
|
|
304
399
|
# Output: 2025-12-09 18:02:23 POST /v1/chat/completions 127.0.0.1 200 "What is..." 305 22 1036
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
**Without `--verbose` on server:**
|
|
403
|
+
```bash
|
|
404
|
+
llamacpp server logs llama-3.2-3b
|
|
405
|
+
# Output: Only internal server logs (cache, slots) - no HTTP request logs
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**More examples:**
|
|
305
409
|
|
|
306
410
|
# Full HTTP JSON request/response
|
|
307
411
|
llamacpp server logs llama-3.2-3b --http
|
|
@@ -331,12 +435,21 @@ llamacpp server logs llama-3.2-3b --filter "error|warning"
|
|
|
331
435
|
- `--filter <pattern>` - Custom grep pattern for filtering
|
|
332
436
|
- `--stdout` - Show stdout instead of stderr (rarely needed)
|
|
333
437
|
|
|
334
|
-
**
|
|
438
|
+
**Output Formats:**
|
|
439
|
+
|
|
440
|
+
Default compact format:
|
|
335
441
|
```
|
|
336
442
|
TIMESTAMP METHOD ENDPOINT IP STATUS "MESSAGE..." TOKENS_IN TOKENS_OUT TIME_MS
|
|
337
443
|
```
|
|
338
444
|
|
|
339
|
-
The compact format shows one line per
|
|
445
|
+
The compact format shows one line per HTTP request and includes:
|
|
446
|
+
- User's message (first 50 characters)
|
|
447
|
+
- Token counts (prompt tokens in, completion tokens out)
|
|
448
|
+
- Total response time in milliseconds
|
|
449
|
+
|
|
450
|
+
**Note:** Verbose logging is now enabled by default. HTTP request logs are available by default.
|
|
451
|
+
|
|
452
|
+
Use `--http` to see full request/response JSON, or `--verbose` option to see all internal server logs.
|
|
340
453
|
|
|
341
454
|
## Configuration
|
|
342
455
|
|
|
@@ -401,7 +514,7 @@ brew install llama.cpp
|
|
|
401
514
|
### Port already in use
|
|
402
515
|
llamacpp-cli will automatically find the next available port. Or specify a custom port:
|
|
403
516
|
```bash
|
|
404
|
-
llamacpp server
|
|
517
|
+
llamacpp server create model.gguf --port 8080
|
|
405
518
|
```
|
|
406
519
|
|
|
407
520
|
### Server won't start
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ const commander_1 = require("commander");
|
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
const list_1 = require("./commands/list");
|
|
10
10
|
const ps_1 = require("./commands/ps");
|
|
11
|
+
const create_1 = require("./commands/create");
|
|
11
12
|
const start_1 = require("./commands/start");
|
|
12
13
|
const run_1 = require("./commands/run");
|
|
13
14
|
const stop_1 = require("./commands/stop");
|
|
@@ -17,6 +18,8 @@ const rm_1 = require("./commands/rm");
|
|
|
17
18
|
const logs_1 = require("./commands/logs");
|
|
18
19
|
const search_1 = require("./commands/search");
|
|
19
20
|
const show_1 = require("./commands/show");
|
|
21
|
+
const server_show_1 = require("./commands/server-show");
|
|
22
|
+
const config_1 = require("./commands/config");
|
|
20
23
|
const program = new commander_1.Command();
|
|
21
24
|
program
|
|
22
25
|
.name('llamacpp')
|
|
@@ -114,20 +117,69 @@ program
|
|
|
114
117
|
const server = program
|
|
115
118
|
.command('server')
|
|
116
119
|
.description('Manage llama-server instances');
|
|
117
|
-
//
|
|
120
|
+
// Create a new server
|
|
118
121
|
server
|
|
119
|
-
.command('
|
|
120
|
-
.description('
|
|
122
|
+
.command('create')
|
|
123
|
+
.description('Create and start a new llama-server instance')
|
|
121
124
|
.argument('<model>', 'Model filename or path')
|
|
122
125
|
.option('-p, --port <number>', 'Port number (default: auto-assign)', parseInt)
|
|
126
|
+
.option('-h, --host <address>', 'Bind address (default: 127.0.0.1, use 0.0.0.0 for remote access)')
|
|
123
127
|
.option('-t, --threads <number>', 'Thread count (default: auto)', parseInt)
|
|
124
128
|
.option('-c, --ctx-size <number>', 'Context size (default: auto)', parseInt)
|
|
125
129
|
.option('-g, --gpu-layers <number>', 'GPU layers (default: 60)', parseInt)
|
|
126
|
-
.option('-v, --
|
|
127
|
-
.option('--no-log-timestamps', 'Disable timestamps in log messages')
|
|
130
|
+
.option('-v, --verbose', 'Enable verbose HTTP logging (detailed request/response info)')
|
|
128
131
|
.action(async (model, options) => {
|
|
129
132
|
try {
|
|
130
|
-
await (0,
|
|
133
|
+
await (0, create_1.createCommand)(model, options);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
// Show server details
|
|
141
|
+
server
|
|
142
|
+
.command('show')
|
|
143
|
+
.description('Show server configuration details')
|
|
144
|
+
.argument('<identifier>', 'Server identifier: port (9000), server ID (llama-3-2-3b), or partial model name')
|
|
145
|
+
.action(async (identifier) => {
|
|
146
|
+
try {
|
|
147
|
+
await (0, server_show_1.serverShowCommand)(identifier);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
// Update server configuration
|
|
155
|
+
server
|
|
156
|
+
.command('config')
|
|
157
|
+
.description('Update server configuration parameters')
|
|
158
|
+
.argument('<identifier>', 'Server identifier: port (9000), server ID (llama-3-2-3b), or partial model name')
|
|
159
|
+
.option('-h, --host <address>', 'Update bind address (127.0.0.1 for localhost, 0.0.0.0 for remote access)')
|
|
160
|
+
.option('-t, --threads <number>', 'Update thread count', parseInt)
|
|
161
|
+
.option('-c, --ctx-size <number>', 'Update context size', parseInt)
|
|
162
|
+
.option('-g, --gpu-layers <number>', 'Update GPU layers', parseInt)
|
|
163
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
164
|
+
.option('--no-verbose', 'Disable verbose logging')
|
|
165
|
+
.option('-r, --restart', 'Automatically restart server if running')
|
|
166
|
+
.action(async (identifier, options) => {
|
|
167
|
+
try {
|
|
168
|
+
await (0, config_1.serverConfigCommand)(identifier, options);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
// Start an existing server
|
|
176
|
+
server
|
|
177
|
+
.command('start')
|
|
178
|
+
.description('Start an existing stopped server')
|
|
179
|
+
.argument('<identifier>', 'Server identifier: port (9000), server ID (llama-3-2-3b), or partial model name')
|
|
180
|
+
.action(async (identifier) => {
|
|
181
|
+
try {
|
|
182
|
+
await (0, start_1.startCommand)(identifier);
|
|
131
183
|
}
|
|
132
184
|
catch (error) {
|
|
133
185
|
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
|
@@ -139,9 +191,10 @@ server
|
|
|
139
191
|
.command('run')
|
|
140
192
|
.description('Run an interactive chat session with a model')
|
|
141
193
|
.argument('<model>', 'Model identifier: port (9000), server ID (llama-3-2-3b), partial name, or model filename')
|
|
142
|
-
.
|
|
194
|
+
.option('-m, --message <text>', 'Send a single message and exit (non-interactive mode)')
|
|
195
|
+
.action(async (model, options) => {
|
|
143
196
|
try {
|
|
144
|
-
await (0, run_1.runCommand)(model);
|
|
197
|
+
await (0, run_1.runCommand)(model, options);
|
|
145
198
|
}
|
|
146
199
|
catch (error) {
|
|
147
200
|
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,sCAA0C;AAC1C,4CAAgD;AAChD,wCAA4C;AAC5C,0CAA8C;AAC9C,8CAAkD;AAClD,0CAA8C;AAC9C,sCAA0C;AAC1C,0CAA8C;AAC9C,8CAAkD;AAClD,0CAA8C;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,sCAA0C;AAC1C,8CAAkD;AAClD,4CAAgD;AAChD,wCAA4C;AAC5C,0CAA8C;AAC9C,8CAAkD;AAClD,0CAA8C;AAC9C,sCAA0C;AAC1C,0CAA8C;AAC9C,8CAAkD;AAClD,0CAA8C;AAC9C,wDAA2D;AAC3D,8CAAwD;AAExD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,cAAc;AACd,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,IAAA,kBAAW,GAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,uBAAuB;AACvB,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,IAAA,cAAS,GAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAChE,MAAM,CAAC,sBAAsB,EAAE,mCAAmC,EAAE,QAAQ,CAAC;KAC7E,MAAM,CAAC,kBAAkB,EAAE,0DAA0D,EAAE,CAAC,GAAG,EAAE,EAAE;IAC9F,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC,CAAC;KACD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE;IACvC,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,qBAAqB;AACrB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,cAAc,EAAE,kEAAkE,CAAC;KAC5F,MAAM,CAAC,uBAAuB,EAAE,wCAAwC,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAAO,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,IAAA,kBAAW,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,mBAAmB;AACnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yCAAyC,CAAC;KACtD,QAAQ,CAAC,cAAc,EAAE,kEAAkE,CAAC;KAC5F,MAAM,CAAC,uBAAuB,EAAE,wDAAwD,CAAC;KACzF,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAAO,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,IAAA,kBAAW,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,kDAAkD,CAAC;KAC/D,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;IAC9B,IAAI,CAAC;QACH,MAAM,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,MAAM,MAAM,GAAG,OAAO;KACnB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAEhD,sBAAsB;AACtB,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC7C,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,EAAE,QAAQ,CAAC;KAC7E,MAAM,CAAC,sBAAsB,EAAE,kEAAkE,CAAC;KAClG,MAAM,CAAC,wBAAwB,EAAE,8BAA8B,EAAE,QAAQ,CAAC;KAC1E,MAAM,CAAC,yBAAyB,EAAE,8BAA8B,EAAE,QAAQ,CAAC;KAC3E,MAAM,CAAC,2BAA2B,EAAE,0BAA0B,EAAE,QAAQ,CAAC;KACzE,MAAM,CAAC,eAAe,EAAE,8DAA8D,CAAC;KACvF,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE;IACvC,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,cAAc,EAAE,iFAAiF,CAAC;KAC3G,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,IAAA,+BAAiB,EAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,8BAA8B;AAC9B,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wCAAwC,CAAC;KACrD,QAAQ,CAAC,cAAc,EAAE,iFAAiF,CAAC;KAC3G,MAAM,CAAC,sBAAsB,EAAE,0EAA0E,CAAC;KAC1G,MAAM,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,QAAQ,CAAC;KACjE,MAAM,CAAC,yBAAyB,EAAE,qBAAqB,EAAE,QAAQ,CAAC;KAClE,MAAM,CAAC,2BAA2B,EAAE,mBAAmB,EAAE,QAAQ,CAAC;KAClE,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,cAAc,EAAE,yBAAyB,CAAC;KACjD,MAAM,CAAC,eAAe,EAAE,yCAAyC,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAAO,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,IAAA,4BAAmB,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,2BAA2B;AAC3B,MAAM;KACH,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,cAAc,EAAE,iFAAiF,CAAC;KAC3G,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,IAAA,oBAAY,EAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,oCAAoC;AACpC,MAAM;KACH,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,8CAA8C,CAAC;KAC3D,QAAQ,CAAC,SAAS,EAAE,0FAA0F,CAAC;KAC/G,MAAM,CAAC,sBAAsB,EAAE,uDAAuD,CAAC;KACvF,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE;IACvC,IAAI,CAAC;QACH,MAAM,IAAA,gBAAU,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uBAAuB,CAAC;KACpC,QAAQ,CAAC,cAAc,EAAE,iFAAiF,CAAC;KAC3G,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,IAAA,kBAAW,EAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,MAAM;KACH,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,4EAA4E,CAAC;KACzF,QAAQ,CAAC,cAAc,EAAE,iFAAiF,CAAC;KAC3G,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,EAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,YAAY;AACZ,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,cAAc,EAAE,iFAAiF,CAAC;KAC3G,MAAM,CAAC,cAAc,EAAE,gCAAgC,CAAC;KACxD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,QAAQ,CAAC;KACjF,MAAM,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC7D,MAAM,CAAC,UAAU,EAAE,0BAA0B,CAAC;KAC9C,MAAM,CAAC,WAAW,EAAE,6CAA6C,CAAC;KAClE,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,UAAU,EAAE,+CAA+C,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAAO,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,IAAA,kBAAW,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ConfigUpdateOptions {
|
|
2
|
+
host?: string;
|
|
3
|
+
threads?: number;
|
|
4
|
+
ctxSize?: number;
|
|
5
|
+
gpuLayers?: number;
|
|
6
|
+
verbose?: boolean;
|
|
7
|
+
restart?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function serverConfigCommand(identifier: string, options: ConfigUpdateOptions): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwIf"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.serverConfigCommand = serverConfigCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const state_manager_1 = require("../lib/state-manager");
|
|
9
|
+
const status_checker_1 = require("../lib/status-checker");
|
|
10
|
+
const launchctl_manager_1 = require("../lib/launchctl-manager");
|
|
11
|
+
async function serverConfigCommand(identifier, options) {
|
|
12
|
+
// Find the server
|
|
13
|
+
const server = await state_manager_1.stateManager.findServer(identifier);
|
|
14
|
+
if (!server) {
|
|
15
|
+
console.error(chalk_1.default.red(`❌ Server not found: ${identifier}`));
|
|
16
|
+
console.log(chalk_1.default.dim('\nAvailable servers:'));
|
|
17
|
+
const allServers = await state_manager_1.stateManager.getAllServers();
|
|
18
|
+
if (allServers.length === 0) {
|
|
19
|
+
console.log(chalk_1.default.dim(' (none)'));
|
|
20
|
+
console.log(chalk_1.default.dim('\nCreate a server: llamacpp server create <model-filename>'));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
allServers.forEach(s => {
|
|
24
|
+
console.log(chalk_1.default.dim(` - ${s.id} (port ${s.port})`));
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
// Check if any config options were provided
|
|
30
|
+
const hasChanges = options.host !== undefined ||
|
|
31
|
+
options.threads !== undefined ||
|
|
32
|
+
options.ctxSize !== undefined ||
|
|
33
|
+
options.gpuLayers !== undefined ||
|
|
34
|
+
options.verbose !== undefined;
|
|
35
|
+
if (!hasChanges) {
|
|
36
|
+
console.error(chalk_1.default.red('❌ No configuration changes specified'));
|
|
37
|
+
console.log(chalk_1.default.dim('\nAvailable options:'));
|
|
38
|
+
console.log(chalk_1.default.dim(' --host <address> Bind address (127.0.0.1 or 0.0.0.0)'));
|
|
39
|
+
console.log(chalk_1.default.dim(' --threads <n> Number of threads'));
|
|
40
|
+
console.log(chalk_1.default.dim(' --ctx-size <n> Context size'));
|
|
41
|
+
console.log(chalk_1.default.dim(' --gpu-layers <n> GPU layers'));
|
|
42
|
+
console.log(chalk_1.default.dim(' --verbose Enable verbose logging'));
|
|
43
|
+
console.log(chalk_1.default.dim(' --no-verbose Disable verbose logging'));
|
|
44
|
+
console.log(chalk_1.default.dim(' --restart Auto-restart if running'));
|
|
45
|
+
console.log(chalk_1.default.dim('\nExample:'));
|
|
46
|
+
console.log(chalk_1.default.dim(` llamacpp server config ${server.id} --ctx-size 8192 --restart`));
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
// Check current status
|
|
50
|
+
const updatedServer = await status_checker_1.statusChecker.updateServerStatus(server);
|
|
51
|
+
const wasRunning = updatedServer.status === 'running';
|
|
52
|
+
if (wasRunning && !options.restart) {
|
|
53
|
+
console.warn(chalk_1.default.yellow('⚠️ Server is currently running'));
|
|
54
|
+
console.log(chalk_1.default.dim('Changes will require a restart to take effect.'));
|
|
55
|
+
console.log(chalk_1.default.dim('Use --restart flag to automatically restart the server.\n'));
|
|
56
|
+
}
|
|
57
|
+
// Show what will change
|
|
58
|
+
console.log(chalk_1.default.bold('Configuration Changes:'));
|
|
59
|
+
console.log('─'.repeat(70));
|
|
60
|
+
if (options.host !== undefined) {
|
|
61
|
+
console.log(`${chalk_1.default.bold('Host:')} ${chalk_1.default.dim(server.host)} → ${chalk_1.default.green(options.host)}`);
|
|
62
|
+
// Security warning for 0.0.0.0
|
|
63
|
+
if (options.host === '0.0.0.0') {
|
|
64
|
+
console.log(chalk_1.default.yellow('\n⚠️ WARNING: Binding to 0.0.0.0 allows remote access from any network interface.'));
|
|
65
|
+
console.log(chalk_1.default.yellow(' This exposes your server to your local network and potentially the internet.'));
|
|
66
|
+
console.log(chalk_1.default.yellow(' Use 127.0.0.1 for localhost-only access (recommended for local development).\n'));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (options.threads !== undefined) {
|
|
70
|
+
console.log(`${chalk_1.default.bold('Threads:')} ${chalk_1.default.dim(server.threads.toString())} → ${chalk_1.default.green(options.threads.toString())}`);
|
|
71
|
+
}
|
|
72
|
+
if (options.ctxSize !== undefined) {
|
|
73
|
+
console.log(`${chalk_1.default.bold('Context Size:')} ${chalk_1.default.dim(server.ctxSize.toLocaleString())} → ${chalk_1.default.green(options.ctxSize.toLocaleString())}`);
|
|
74
|
+
}
|
|
75
|
+
if (options.gpuLayers !== undefined) {
|
|
76
|
+
console.log(`${chalk_1.default.bold('GPU Layers:')} ${chalk_1.default.dim(server.gpuLayers.toString())} → ${chalk_1.default.green(options.gpuLayers.toString())}`);
|
|
77
|
+
}
|
|
78
|
+
if (options.verbose !== undefined) {
|
|
79
|
+
const oldValue = server.verbose ? 'enabled' : 'disabled';
|
|
80
|
+
const newValue = options.verbose ? 'enabled' : 'disabled';
|
|
81
|
+
console.log(`${chalk_1.default.bold('Verbose Logs:')} ${chalk_1.default.dim(oldValue)} → ${chalk_1.default.green(newValue)}`);
|
|
82
|
+
}
|
|
83
|
+
console.log('');
|
|
84
|
+
// Stop server if running and restart flag is set
|
|
85
|
+
if (wasRunning && options.restart) {
|
|
86
|
+
console.log(chalk_1.default.dim('Stopping server...'));
|
|
87
|
+
await launchctl_manager_1.launchctlManager.stopService(server.label);
|
|
88
|
+
// Wait a moment for clean shutdown
|
|
89
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
90
|
+
}
|
|
91
|
+
// Update configuration
|
|
92
|
+
const updatedConfig = {
|
|
93
|
+
...server,
|
|
94
|
+
...(options.host !== undefined && { host: options.host }),
|
|
95
|
+
...(options.threads !== undefined && { threads: options.threads }),
|
|
96
|
+
...(options.ctxSize !== undefined && { ctxSize: options.ctxSize }),
|
|
97
|
+
...(options.gpuLayers !== undefined && { gpuLayers: options.gpuLayers }),
|
|
98
|
+
...(options.verbose !== undefined && { verbose: options.verbose }),
|
|
99
|
+
};
|
|
100
|
+
await state_manager_1.stateManager.updateServerConfig(server.id, updatedConfig);
|
|
101
|
+
// Regenerate plist with new configuration
|
|
102
|
+
console.log(chalk_1.default.dim('Regenerating service configuration...'));
|
|
103
|
+
await launchctl_manager_1.launchctlManager.createPlist(updatedConfig);
|
|
104
|
+
// Restart server if it was running and restart flag is set
|
|
105
|
+
if (wasRunning && options.restart) {
|
|
106
|
+
console.log(chalk_1.default.dim('Starting server with new configuration...'));
|
|
107
|
+
await launchctl_manager_1.launchctlManager.loadService(updatedConfig.plistPath);
|
|
108
|
+
await launchctl_manager_1.launchctlManager.startService(updatedConfig.label);
|
|
109
|
+
// Wait and verify
|
|
110
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
111
|
+
const finalStatus = await status_checker_1.statusChecker.updateServerStatus(updatedConfig);
|
|
112
|
+
if (finalStatus.status === 'running') {
|
|
113
|
+
console.log(chalk_1.default.green(`✅ Server restarted successfully with new configuration`));
|
|
114
|
+
console.log(chalk_1.default.dim(` Port: http://localhost:${finalStatus.port}`));
|
|
115
|
+
if (finalStatus.pid) {
|
|
116
|
+
console.log(chalk_1.default.dim(` PID: ${finalStatus.pid}`));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
console.error(chalk_1.default.red('❌ Server failed to start with new configuration'));
|
|
121
|
+
console.log(chalk_1.default.dim(' Check logs: ') + `llamacpp server logs ${server.id} --errors`);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
console.log(chalk_1.default.green('✅ Configuration updated successfully'));
|
|
127
|
+
if (wasRunning && !options.restart) {
|
|
128
|
+
console.log(chalk_1.default.yellow('\n⚠️ Server is still running with old configuration'));
|
|
129
|
+
console.log(chalk_1.default.dim(' Restart to apply changes: ') + `llamacpp server stop ${server.id} && llamacpp server start ${server.id}`);
|
|
130
|
+
}
|
|
131
|
+
else if (!wasRunning) {
|
|
132
|
+
console.log(chalk_1.default.dim('\n Start server: ') + `llamacpp server start ${server.id}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface CreateOptions {
|
|
2
|
+
port?: number;
|
|
3
|
+
host?: string;
|
|
4
|
+
threads?: number;
|
|
5
|
+
ctxSize?: number;
|
|
6
|
+
gpuLayers?: number;
|
|
7
|
+
verbose?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function createCommand(model: string, options: CreateOptions): Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAYA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmIxF"}
|