pi-llama-cpp 0.9.2 → 0.11.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 +163 -27
- package/package.json +4 -3
- package/src/api/client.ts +76 -32
- package/src/constants.ts +28 -3
- package/src/index.ts +4 -12
- package/src/interfaces/events.ts +14 -3
- package/src/interfaces/server.ts +20 -0
- package/src/interfaces/settings.ts +69 -0
- package/src/managers/command.ts +285 -43
- package/src/managers/events.ts +50 -12
- package/src/managers/server.ts +90 -17
- package/src/managers/settings.ts +268 -0
- package/src/models/baseModel.ts +32 -17
- package/src/models/legacyModel.ts +2 -2
- package/src/models/routerModel.ts +3 -3
- package/src/server.ts +86 -21
- package/src/sse/client.ts +28 -16
- package/src/sse/manager.ts +23 -10
- package/src/ui/serverListEditor.ts +481 -0
- package/src/utils/errors.ts +5 -0
- package/src/utils/settingsStore.ts +60 -0
- package/src/utils/urls.ts +16 -0
- package/tests/commandManager.test.ts +256 -11
- package/tests/events.test.ts +229 -64
- package/tests/mocks.ts +145 -32
- package/tests/server.test.ts +54 -6
- package/tests/serverListEditor.test.ts +637 -0
- package/tests/serverManager.test.ts +282 -39
- package/tests/settings.test.ts +793 -0
- package/tests/settingsStore.test.ts +209 -0
- package/tests/sseManager.test.ts +98 -0
- package/src/interfaces/auth.ts +0 -6
- package/src/resolver.ts +0 -149
- package/src/utils/cache.ts +0 -39
- package/src/utils/mutex.ts +0 -24
- package/tests/resolver.test.ts +0 -184
package/tests/server.test.ts
CHANGED
|
@@ -1,28 +1,36 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it } from "vitest";
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { POLLING_TIMEOUT, SERVER_TIMEOUT } from "../src/constants";
|
|
2
3
|
import { ServerStatus } from "../src/enums/serverStatus";
|
|
4
|
+
import type { LlamaSettingsManager } from "../src/managers/settings";
|
|
3
5
|
import { Server } from "../src/server";
|
|
4
|
-
import { createMockServer, mockRpc } from "./mocks";
|
|
6
|
+
import { createMockServer, makeSettingsStub, mockRpc } from "./mocks";
|
|
7
|
+
|
|
8
|
+
// Injected into every real Server below; fresh per test so per-case
|
|
9
|
+
// overrides never leak. The Server constructor resolves the API key eagerly
|
|
10
|
+
// (ApiClient built there) — the stub's placeholder key is never consumed.
|
|
11
|
+
let settings: LlamaSettingsManager;
|
|
5
12
|
|
|
6
13
|
beforeEach(() => {
|
|
7
14
|
mockRpc.mockClear();
|
|
15
|
+
settings = makeSettingsStub();
|
|
8
16
|
});
|
|
9
17
|
|
|
10
18
|
describe("Server providerId", () => {
|
|
11
19
|
it("should generate a unique provider ID from baseUrl", () => {
|
|
12
|
-
const server = new Server("http://127.0.0.1:8080");
|
|
20
|
+
const server = new Server(settings, { baseUrl: "http://127.0.0.1:8080" });
|
|
13
21
|
expect(server.providerId).toBe("llama-server=http://127.0.0.1:8080");
|
|
14
22
|
});
|
|
15
23
|
|
|
16
24
|
it("should generate different IDs for different baseUrls", () => {
|
|
17
|
-
const server1 = new Server("http://127.0.0.1:8080");
|
|
18
|
-
const server2 = new Server("http://127.0.0.1:8081");
|
|
25
|
+
const server1 = new Server(settings, { baseUrl: "http://127.0.0.1:8080" });
|
|
26
|
+
const server2 = new Server(settings, { baseUrl: "http://127.0.0.1:8081" });
|
|
19
27
|
expect(server1.providerId).not.toBe(server2.providerId);
|
|
20
28
|
});
|
|
21
29
|
});
|
|
22
30
|
|
|
23
31
|
describe("Server providerName", () => {
|
|
24
32
|
it("should generate a human-readable provider name", () => {
|
|
25
|
-
const server = new Server("http://127.0.0.1:8080");
|
|
33
|
+
const server = new Server(settings, { baseUrl: "http://127.0.0.1:8080" });
|
|
26
34
|
expect(server.providerName).toBe("Llama.cpp (http://127.0.0.1:8080)");
|
|
27
35
|
});
|
|
28
36
|
});
|
|
@@ -146,6 +154,46 @@ describe("Server postRequest", () => {
|
|
|
146
154
|
});
|
|
147
155
|
});
|
|
148
156
|
|
|
157
|
+
describe("Server timeouts", () => {
|
|
158
|
+
it("should resolve timeouts from the injected settings", () => {
|
|
159
|
+
const server = new Server(settings, { baseUrl: "http://127.0.0.1:8080" });
|
|
160
|
+
|
|
161
|
+
expect(server.serverTimeout).toBe(SERVER_TIMEOUT);
|
|
162
|
+
expect(server.pollingTimeout).toBe(POLLING_TIMEOUT);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
it("should return resolved custom values", () => {
|
|
166
|
+
vi.mocked(settings.resolveTimeouts).mockReturnValue({
|
|
167
|
+
pollingTimeout: 90000,
|
|
168
|
+
serverTimeout: 2000,
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
const server = new Server(settings, {
|
|
172
|
+
baseUrl: "http://127.0.0.1:8080",
|
|
173
|
+
customId: "my-id",
|
|
174
|
+
customName: "My Server",
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
expect(server.pollingTimeout).toBe(90000);
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
it("should read timeouts live from settings", () => {
|
|
181
|
+
const server = new Server(settings, { baseUrl: "http://127.0.0.1:8080" });
|
|
182
|
+
|
|
183
|
+
vi.mocked(settings.resolveTimeouts).mockReturnValue({
|
|
184
|
+
pollingTimeout: 120000,
|
|
185
|
+
serverTimeout: 3000,
|
|
186
|
+
});
|
|
187
|
+
expect(server.pollingTimeout).toBe(120000);
|
|
188
|
+
|
|
189
|
+
vi.mocked(settings.resolveTimeouts).mockReturnValue({
|
|
190
|
+
pollingTimeout: 90000,
|
|
191
|
+
serverTimeout: 2000,
|
|
192
|
+
});
|
|
193
|
+
expect(server.pollingTimeout).toBe(90000);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
|
|
149
197
|
describe("Server isReady", () => {
|
|
150
198
|
it("should return READY when health status is ok", async () => {
|
|
151
199
|
mockRpc.mockResolvedValueOnce({ status: "ok" });
|