peerllm-host-cli 1.9.9 → 1.9.11
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/dist/cli/commands/dashboard.d.ts.map +1 -1
- package/dist/cli/commands/dashboard.js +7 -8
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/models.d.ts.map +1 -1
- package/dist/cli/commands/models.js +6 -6
- package/dist/cli/commands/models.js.map +1 -1
- package/dist/core/models-fs.d.ts.map +1 -1
- package/dist/core/models-fs.js +29 -3
- package/dist/core/models-fs.js.map +1 -1
- package/dist/core/orchestrator.d.ts +4 -13
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +83 -118
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/runner-pool.d.ts +72 -0
- package/dist/core/runner-pool.d.ts.map +1 -0
- package/dist/core/runner-pool.js +233 -0
- package/dist/core/runner-pool.js.map +1 -0
- package/dist/core/shared-runner.d.ts +3 -0
- package/dist/core/shared-runner.d.ts.map +1 -1
- package/dist/core/shared-runner.js +44 -3
- package/dist/core/shared-runner.js.map +1 -1
- package/dist/daemon/methods.js +1 -1
- package/dist/daemon/methods.js.map +1 -1
- package/dist/shared/protocol.d.ts +1 -1
- package/dist/shared/protocol.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
import { stat } from "node:fs/promises";
|
|
2
1
|
import { arch as osArch, platform as osPlatform } from "node:os";
|
|
3
|
-
import { join } from "node:path";
|
|
4
2
|
import { HttpTransportType, HubConnectionBuilder, LogLevel, } from "@microsoft/signalr";
|
|
5
|
-
import { buildHostCapacity
|
|
3
|
+
import { buildHostCapacity } from "./capacity.js";
|
|
6
4
|
import { getLogger } from "./logger.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { getLLMDirectory, listModelsSync } from "./models-fs.js";
|
|
10
|
-
import { SharedGGUFRunner } from "./shared-runner.js";
|
|
5
|
+
import { listModelsSync } from "./models-fs.js";
|
|
6
|
+
import { RunnerPool, CapacityExceededError } from "./runner-pool.js";
|
|
11
7
|
import { TokenRateTracker } from "./token-rate.js";
|
|
12
8
|
const DEFAULT_HUB_URL = "https://api.peerllm.com/hosthub";
|
|
13
9
|
const HEARTBEAT_INTERVAL_MS = 5 * 1000;
|
|
14
10
|
const CLEANUP_INTERVAL_MS = 60 * 1000;
|
|
15
11
|
const CONVERSATION_IDLE_LIMIT_MS = 5 * 60 * 1000;
|
|
16
|
-
const DEFAULT_MODEL_FALLBACK = "mistral-7b-instruct-v0.1.Q8_0";
|
|
17
12
|
export class OrchestratorService {
|
|
18
13
|
opts;
|
|
19
14
|
connection = null;
|
|
@@ -25,7 +20,10 @@ export class OrchestratorService {
|
|
|
25
20
|
status = "disconnected";
|
|
26
21
|
suspendedByServer = false;
|
|
27
22
|
url;
|
|
28
|
-
|
|
23
|
+
// Pool of resident model runners (one worker per model), RAM-gated. Lets the
|
|
24
|
+
// host hold several models at once for network traffic instead of thrashing a
|
|
25
|
+
// single runner between models (S13-13).
|
|
26
|
+
pool;
|
|
29
27
|
sessions = new Map();
|
|
30
28
|
tokensIn = new TokenRateTracker();
|
|
31
29
|
tokensOut = new TokenRateTracker();
|
|
@@ -33,22 +31,13 @@ export class OrchestratorService {
|
|
|
33
31
|
constructor(opts) {
|
|
34
32
|
this.opts = opts;
|
|
35
33
|
this.url = opts.hubUrl ?? DEFAULT_HUB_URL;
|
|
36
|
-
this.
|
|
37
|
-
paths: opts.paths,
|
|
38
|
-
config: { schemaVersion: 1, lastWriter: "cli", schemaUpdatedAt: "" },
|
|
39
|
-
});
|
|
40
|
-
this.sharedRunner.setWorkerCrashCallback((crash) => {
|
|
41
|
-
getLogger().error(`💥 llmWorker crash: model="${crash.model}" — clearing all active sessions`);
|
|
42
|
-
// All conversations are lost when the worker process dies — clear the session map
|
|
43
|
-
// so subsequent prompts trigger a fresh model load rather than using stale state.
|
|
44
|
-
this.sessions.clear();
|
|
45
|
-
});
|
|
34
|
+
this.pool = new RunnerPool({ paths: opts.paths });
|
|
46
35
|
}
|
|
47
36
|
getStatus() {
|
|
48
37
|
return this.status;
|
|
49
38
|
}
|
|
50
|
-
|
|
51
|
-
return this.
|
|
39
|
+
getLoadedModels() {
|
|
40
|
+
return this.pool.loadedModels();
|
|
52
41
|
}
|
|
53
42
|
getTokenStats() {
|
|
54
43
|
return { in: this.tokensIn.getStats(), out: this.tokensOut.getStats() };
|
|
@@ -84,10 +73,8 @@ export class OrchestratorService {
|
|
|
84
73
|
this.isConnecting = false;
|
|
85
74
|
throw new Error("hostId or hostName missing from config");
|
|
86
75
|
}
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
config: cfg,
|
|
90
|
-
});
|
|
76
|
+
// The pool pushes the current config onto each runner at load time, so no
|
|
77
|
+
// boot-time env refresh is needed here.
|
|
91
78
|
this.setStatus("connecting");
|
|
92
79
|
getLogger().info("orchestrator: connecting to hub", this.url);
|
|
93
80
|
const connection = new HubConnectionBuilder()
|
|
@@ -137,15 +124,23 @@ export class OrchestratorService {
|
|
|
137
124
|
};
|
|
138
125
|
connection.on("StartConversationV2", handleStartConversation);
|
|
139
126
|
connection.on("StartConversation", handleStartConversation);
|
|
140
|
-
|
|
141
|
-
|
|
127
|
+
// Concurrent prompts are fine now: the pool admits/loads models one at a time
|
|
128
|
+
// (serialized internally) but serves prompts to already-resident models in
|
|
129
|
+
// parallel — different models on different workers. No host-side serialization.
|
|
130
|
+
const handleRun = (req) => {
|
|
131
|
+
void this.handlePrompt(req);
|
|
132
|
+
};
|
|
133
|
+
connection.on("RunPrompt", handleRun);
|
|
134
|
+
connection.on("RunPromptV2", handleRun);
|
|
142
135
|
const handleClose = (conversationId) => {
|
|
143
136
|
this.cleanupConversation(conversationId);
|
|
144
137
|
};
|
|
145
138
|
connection.on("CloseConversation", handleClose);
|
|
146
139
|
connection.on("CloseConversationV2", handleClose);
|
|
147
140
|
connection.on("cancelrequest", (conversationId) => {
|
|
148
|
-
this.
|
|
141
|
+
const modelName = this.sessions.get(conversationId)?.modelName;
|
|
142
|
+
if (modelName)
|
|
143
|
+
this.pool.getRunner(modelName)?.cancel(conversationId);
|
|
149
144
|
});
|
|
150
145
|
connection.on("Suspended", (event) => {
|
|
151
146
|
getLogger().warn("orchestrator: host suspended", JSON.stringify(event));
|
|
@@ -178,10 +173,10 @@ export class OrchestratorService {
|
|
|
178
173
|
this.intentionalDisconnect = true;
|
|
179
174
|
this.stopTimers();
|
|
180
175
|
try {
|
|
181
|
-
await this.
|
|
176
|
+
await this.pool.disposeAll("shutdown");
|
|
182
177
|
}
|
|
183
178
|
catch (err) {
|
|
184
|
-
getLogger().warn("orchestrator:
|
|
179
|
+
getLogger().warn("orchestrator: pool dispose error:", err.message);
|
|
185
180
|
}
|
|
186
181
|
if (this.connection) {
|
|
187
182
|
try {
|
|
@@ -201,10 +196,10 @@ export class OrchestratorService {
|
|
|
201
196
|
// permanently and blocks every future reconnect).
|
|
202
197
|
this.stopTimers();
|
|
203
198
|
try {
|
|
204
|
-
await this.
|
|
199
|
+
await this.pool.disposeAll("shutdown");
|
|
205
200
|
}
|
|
206
201
|
catch (err) {
|
|
207
|
-
getLogger().warn("orchestrator:
|
|
202
|
+
getLogger().warn("orchestrator: pool dispose error (suspended):", err.message);
|
|
208
203
|
}
|
|
209
204
|
const conn = this.connection;
|
|
210
205
|
this.connection = null; // Null out before stop so connect() guard passes on retry
|
|
@@ -306,9 +301,17 @@ export class OrchestratorService {
|
|
|
306
301
|
try {
|
|
307
302
|
// Report the model actually resident on this host (ground truth) so the
|
|
308
303
|
// network shows it directly instead of inferring from routing history.
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
304
|
+
// The host may now hold several models at once. The heartbeat contract is
|
|
305
|
+
// still single-model (backwards-compatible — backend routes by one resident
|
|
306
|
+
// model until Phase 2), so report a "primary": a pinned model wins, else the
|
|
307
|
+
// most-recently-used. Reporting the full set is Phase 2 (S13-13 backend).
|
|
308
|
+
const states = this.pool.residentStates();
|
|
309
|
+
const primary = states.length
|
|
310
|
+
? [...states].sort((a, b) => Number(b.loadType === "manual") - Number(a.loadType === "manual") ||
|
|
311
|
+
b.lastUsedAt - a.lastUsedAt)[0]
|
|
312
|
+
: null;
|
|
313
|
+
const resident = primary
|
|
314
|
+
? { model: primary.modelId, pinned: primary.loadType === "manual" }
|
|
312
315
|
: { model: null, pinned: false };
|
|
313
316
|
const capacity = await buildHostCapacity(hostId, gpuIndex, this.sessions.size, resident);
|
|
314
317
|
await this.connection.send("HeartbeatV2", capacity);
|
|
@@ -325,45 +328,60 @@ export class OrchestratorService {
|
|
|
325
328
|
getLogger().warn("orchestrator: prompt missing conversationId or requestId");
|
|
326
329
|
return;
|
|
327
330
|
}
|
|
328
|
-
let session = this.sessions.get(conversationId);
|
|
329
|
-
if (!session) {
|
|
330
|
-
session = {
|
|
331
|
-
modelName: req.modelName ?? DEFAULT_MODEL_FALLBACK,
|
|
332
|
-
lastActive: Date.now(),
|
|
333
|
-
};
|
|
334
|
-
this.sessions.set(conversationId, session);
|
|
335
|
-
}
|
|
336
|
-
const modelName = session.modelName;
|
|
337
331
|
try {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
332
|
+
// Resolve which model to run. Priority:
|
|
333
|
+
// 1. An explicit model on the request — one-shot calls like compliance
|
|
334
|
+
// tests fire RunPrompt(V2) directly, with no prior StartConversation.
|
|
335
|
+
// 2. The model pinned to this conversation by StartConversation(V2).
|
|
336
|
+
// We deliberately do NOT fall back to a hardcoded default: silently running
|
|
337
|
+
// the wrong model masks routing/contract bugs (a compliance test for gpt-oss
|
|
338
|
+
// must never quietly load mistral instead).
|
|
339
|
+
const requestedModel = req.modelName ?? req.model ?? req.llmName;
|
|
340
|
+
let session = this.sessions.get(conversationId);
|
|
341
|
+
const modelName = requestedModel ?? session?.modelName;
|
|
342
|
+
if (!modelName) {
|
|
343
|
+
throw new Error(`No model specified for conversation ${conversationId}: the request carried ` +
|
|
344
|
+
`no model field and no StartConversation set one. Refusing to guess a default.`);
|
|
345
|
+
}
|
|
346
|
+
if (!session) {
|
|
347
|
+
session = { modelName, lastActive: Date.now() };
|
|
348
|
+
this.sessions.set(conversationId, session);
|
|
349
|
+
}
|
|
350
|
+
else if (requestedModel && requestedModel !== session.modelName) {
|
|
351
|
+
getLogger().info(`orchestrator: conversation ${conversationId} model override ` +
|
|
352
|
+
`${session.modelName} → ${requestedModel}`);
|
|
353
|
+
session.modelName = requestedModel;
|
|
354
|
+
}
|
|
355
|
+
// Acquire (load if needed) the runner for this model from the pool. The
|
|
356
|
+
// pool runs system-RAM admission control + idle-LRU eviction; if the model
|
|
357
|
+
// can't fit even after evicting idle residents it throws CapacityExceeded,
|
|
358
|
+
// and we reroute (the model lives in RAM on CPU/unified hosts, so a load
|
|
359
|
+
// with no headroom would OOM-kill the process).
|
|
360
|
+
const cfg = await this.opts.config.load();
|
|
361
|
+
let runner;
|
|
362
|
+
try {
|
|
363
|
+
runner = await this.pool.acquire(modelName, cfg);
|
|
364
|
+
}
|
|
365
|
+
catch (err) {
|
|
366
|
+
if (err instanceof CapacityExceededError) {
|
|
367
|
+
getLogger().warn(`orchestrator: insufficient RAM for ${modelName} — ${err.detail}`);
|
|
347
368
|
await this.send("EmitToken", {
|
|
348
369
|
requestId,
|
|
349
370
|
content: "",
|
|
350
371
|
error: "CAPACITY_EXCEEDED",
|
|
351
372
|
errorDetails: {
|
|
352
373
|
reason: "ram",
|
|
353
|
-
requiredRAM_MB:
|
|
354
|
-
availableRAM_MB: Math.round(
|
|
355
|
-
reservedRAM_MB:
|
|
374
|
+
requiredRAM_MB: err.footprintMB,
|
|
375
|
+
availableRAM_MB: Math.round(err.freeRamMB),
|
|
376
|
+
reservedRAM_MB: err.reserveMB,
|
|
356
377
|
modelName,
|
|
357
|
-
message:
|
|
378
|
+
message: err.message,
|
|
358
379
|
},
|
|
359
380
|
isFinal: true,
|
|
360
381
|
});
|
|
361
382
|
return; // let the orchestrator reroute to another host
|
|
362
383
|
}
|
|
363
|
-
|
|
364
|
-
// Preserve the original arg (undefined → runner auto-selects a GPU); the
|
|
365
|
-
// `?? 0` default above is only for sampling a concrete GPU index.
|
|
366
|
-
await this.sharedRunner.loadModel(modelName, cfg.selectedGpuIndex);
|
|
384
|
+
throw err;
|
|
367
385
|
}
|
|
368
386
|
const promptText = req.prompt ?? req.content ?? "";
|
|
369
387
|
const promptOptions = {};
|
|
@@ -373,7 +391,7 @@ export class OrchestratorService {
|
|
|
373
391
|
promptOptions.temperature = req.temperature;
|
|
374
392
|
let chunkCount = 0;
|
|
375
393
|
const startTime = Date.now();
|
|
376
|
-
const result = await
|
|
394
|
+
const result = await runner.prompt(conversationId, promptText, async (chunk) => {
|
|
377
395
|
chunkCount++;
|
|
378
396
|
this.tokensOut.add(1); // streaming rate driven by emit chunks
|
|
379
397
|
await this.send("EmitToken", {
|
|
@@ -406,63 +424,10 @@ export class OrchestratorService {
|
|
|
406
424
|
});
|
|
407
425
|
}
|
|
408
426
|
}
|
|
409
|
-
/**
|
|
410
|
-
* Pre-flight system-RAM check before loading a model. Decisions are made against
|
|
411
|
-
* *measured* available RAM (which already reflects other processes), keeping a
|
|
412
|
-
* proportional reserve (see ramReserveMB) free for the OS and everything else on
|
|
413
|
-
* the box. On a discrete-GPU host the footprint is just the CPU-side overhead, so
|
|
414
|
-
* this rarely blocks there; on unified/CPU hosts it charges the full model size.
|
|
415
|
-
*/
|
|
416
|
-
async checkRamCapacity(modelName, cfg, gpuIndex) {
|
|
417
|
-
const inputs = await sampleMemoryInputs(gpuIndex);
|
|
418
|
-
const reserveMB = ramReserveMB(inputs.ramTotalMB);
|
|
419
|
-
const unified = isUnifiedMemory({
|
|
420
|
-
utilizationType: inputs.utilizationType,
|
|
421
|
-
computeMode: cfg.computeMode,
|
|
422
|
-
totalVramMB: inputs.totalVRAM,
|
|
423
|
-
totalRamMB: inputs.ramTotalMB,
|
|
424
|
-
});
|
|
425
|
-
// GGUF size on disk is the dominant RAM cost; missing/unreadable → 0 (allow).
|
|
426
|
-
const modelPath = join(getLLMDirectory(this.opts.paths, cfg), `${modelName}.gguf`);
|
|
427
|
-
let fileSizeMB = 0;
|
|
428
|
-
try {
|
|
429
|
-
fileSizeMB = (await stat(modelPath)).size / 1024 / 1024;
|
|
430
|
-
}
|
|
431
|
-
catch {
|
|
432
|
-
// unknown size — fall through to optimistic allow
|
|
433
|
-
}
|
|
434
|
-
// Mirror the runner's layer decision so discrete partial-offload is accounted for.
|
|
435
|
-
const modelInfo = parseModelFilename(modelName);
|
|
436
|
-
const useAllGpuLayers = osPlatform() === "linux" || (osPlatform() === "darwin" && osArch() === "arm64");
|
|
437
|
-
const gpuLayers = useAllGpuLayers
|
|
438
|
-
? modelInfo.layers
|
|
439
|
-
: calculateGpuLayersFromConfig(inputs.totalVRAM, modelInfo, cfg.computeMode, cfg.gpuLayers);
|
|
440
|
-
const footprintMB = estimateModelRamFootprintMB({
|
|
441
|
-
fileSizeMB,
|
|
442
|
-
unifiedMemory: unified,
|
|
443
|
-
gpuLayers,
|
|
444
|
-
totalLayers: modelInfo.layers,
|
|
445
|
-
});
|
|
446
|
-
const reservePct = Math.round((reserveMB / inputs.ramTotalMB) * 100);
|
|
447
|
-
if (footprintMB <= 0) {
|
|
448
|
-
return {
|
|
449
|
-
hasCapacity: true,
|
|
450
|
-
footprintMB,
|
|
451
|
-
freeRamMB: inputs.ramFreeMB,
|
|
452
|
-
reserveMB,
|
|
453
|
-
detail: "footprint unknown — allowing",
|
|
454
|
-
};
|
|
455
|
-
}
|
|
456
|
-
const hasCapacity = inputs.ramFreeMB - footprintMB >= reserveMB;
|
|
457
|
-
const detail = `needs ~${(footprintMB / 1024).toFixed(1)}GB, ${(inputs.ramFreeMB / 1024).toFixed(1)}GB free, ` +
|
|
458
|
-
`reserve ${(reserveMB / 1024).toFixed(1)}GB (${reservePct}% of ${(inputs.ramTotalMB / 1024).toFixed(0)}GB)`;
|
|
459
|
-
getLogger().info(`orchestrator: RAM check (${unified ? "unified" : "discrete"}) ${modelName} ${detail} → ` +
|
|
460
|
-
`${hasCapacity ? "OK" : "INSUFFICIENT"}`);
|
|
461
|
-
return { hasCapacity, footprintMB, freeRamMB: inputs.ramFreeMB, reserveMB, detail };
|
|
462
|
-
}
|
|
463
427
|
cleanupConversation(conversationId) {
|
|
464
|
-
|
|
465
|
-
|
|
428
|
+
const session = this.sessions.get(conversationId);
|
|
429
|
+
if (this.sessions.delete(conversationId) && session) {
|
|
430
|
+
this.pool.getRunner(session.modelName)?.clearConversation(conversationId);
|
|
466
431
|
}
|
|
467
432
|
}
|
|
468
433
|
startCleanupLoop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { SharedGGUFRunner, type ModelState, type TransitionReason } from "./shared-runner.js";
|
|
2
|
+
import type { ResolvedPaths } from "./paths.js";
|
|
3
|
+
import type { HostConfig } from "../shared/config-types.js";
|
|
4
|
+
export declare class CapacityExceededError extends Error {
|
|
5
|
+
readonly footprintMB: number;
|
|
6
|
+
readonly freeRamMB: number;
|
|
7
|
+
readonly reserveMB: number;
|
|
8
|
+
readonly detail: string;
|
|
9
|
+
constructor(footprintMB: number, freeRamMB: number, reserveMB: number, detail: string);
|
|
10
|
+
}
|
|
11
|
+
export interface RunnerPoolEnv {
|
|
12
|
+
paths: ResolvedPaths;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Eviction order for resident models when a new model needs room: auto-loaded
|
|
16
|
+
* before manually-pinned, and within each class least-recently-used first.
|
|
17
|
+
* Pure so the policy is unit-tested independent of worker/memory plumbing.
|
|
18
|
+
*/
|
|
19
|
+
export declare function orderEvictionCandidates<T extends {
|
|
20
|
+
loadType: "auto" | "manual";
|
|
21
|
+
lastUsedAt: number;
|
|
22
|
+
}>(items: readonly T[]): T[];
|
|
23
|
+
/**
|
|
24
|
+
* RunnerPool — holds multiple model runners resident at once (one worker process
|
|
25
|
+
* per model), gated by system-RAM admission control.
|
|
26
|
+
*
|
|
27
|
+
* This replaces the single shared runner on the network path. A host approved
|
|
28
|
+
* for several models can now serve them without unloading/reloading on every
|
|
29
|
+
* cross-model request — which on memory-constrained Metal hosts was thrashing
|
|
30
|
+
* the GPU into OOM (see S13-13). When a new model won't fit, idle models are
|
|
31
|
+
* evicted LRU (auto-loaded before manual, never one mid-inference); if it still
|
|
32
|
+
* won't fit, the request is rejected so the orchestrator reroutes.
|
|
33
|
+
*
|
|
34
|
+
* Admission is serialized (one load/evict decision at a time) so two concurrent
|
|
35
|
+
* loads can't both pass the RAM check and over-commit. Prompts to *already
|
|
36
|
+
* loaded* models run concurrently — different models on different workers, and
|
|
37
|
+
* each runner serializes its own contexts internally.
|
|
38
|
+
*/
|
|
39
|
+
export declare class RunnerPool {
|
|
40
|
+
private readonly env;
|
|
41
|
+
private readonly runners;
|
|
42
|
+
private admissionChain;
|
|
43
|
+
constructor(env: RunnerPoolEnv);
|
|
44
|
+
/** All currently-loaded model states (for the heartbeat resident-model report). */
|
|
45
|
+
residentStates(): ModelState[];
|
|
46
|
+
/** The runner currently serving `modelName`, if any (for cancel/clear routing). */
|
|
47
|
+
getRunner(modelName: string): SharedGGUFRunner | null;
|
|
48
|
+
/** Per-model summary of everything resident, for the daemon `models` status RPC. */
|
|
49
|
+
loadedModels(): {
|
|
50
|
+
modelName: string;
|
|
51
|
+
gpuLayers: number;
|
|
52
|
+
activeContexts: number;
|
|
53
|
+
}[];
|
|
54
|
+
/** Aggregate stats across all resident runners. */
|
|
55
|
+
getStats(): {
|
|
56
|
+
residentModels: number;
|
|
57
|
+
activeContexts: number;
|
|
58
|
+
models: string[];
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Ensure `modelName` is loaded and return its runner. Runs RAM admission +
|
|
62
|
+
* idle-LRU eviction. Throws CapacityExceededError if it won't fit.
|
|
63
|
+
*/
|
|
64
|
+
acquire(modelName: string, cfg: HostConfig): Promise<SharedGGUFRunner>;
|
|
65
|
+
private _loadWithAdmission;
|
|
66
|
+
private _getOrCreate;
|
|
67
|
+
private _evictUntilFits;
|
|
68
|
+
private _capacity;
|
|
69
|
+
/** Dispose every resident runner (daemon shutdown / suspension). */
|
|
70
|
+
disposeAll(reason?: TransitionReason): Promise<void>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=runner-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner-pool.d.ts","sourceRoot":"","sources":["../../src/core/runner-pool.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAK5D,qBAAa,qBAAsB,SAAQ,KAAK;IAE5C,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAHd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM;CAK1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EACnG,KAAK,EAAE,SAAS,CAAC,EAAE,GAClB,CAAC,EAAE,CAKL;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAU;IAMT,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAG/D,OAAO,CAAC,cAAc,CAAuC;gBAEhC,GAAG,EAAE,aAAa;IAE/C,mFAAmF;IACnF,cAAc,IAAI,UAAU,EAAE;IAS9B,mFAAmF;IACnF,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIrD,oFAAoF;IACpF,YAAY,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE;IAWlF,mDAAmD;IACnD,QAAQ,IAAI;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAYhF;;;OAGG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAa9D,kBAAkB;IA0BhC,OAAO,CAAC,YAAY;YAoBN,eAAe;YAqCf,SAAS;IAqDvB,oEAAoE;IAC9D,UAAU,CAAC,MAAM,GAAE,gBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;CASvE"}
|