@qvac/llm-llamacpp 0.53.2 → 0.55.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 +31 -1
- package/addon.d.ts +1 -0
- package/addon.js +15 -16
- package/fit.d.ts +63 -0
- package/fit.js +31 -0
- package/index.d.ts +37 -1
- package/index.js +3 -0
- package/package.json +7 -3
- package/prebuilds/android-arm64/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/darwin-arm64/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/darwin-arm64/qvac__llm-llamacpp.bare.exports +15 -21
- package/prebuilds/darwin-x64/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/darwin-x64/qvac__llm-llamacpp.bare.exports +30 -22
- package/prebuilds/ios-arm64/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/ios-arm64/qvac__llm-llamacpp.bare.exports +16 -22
- package/prebuilds/ios-arm64-simulator/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/ios-arm64-simulator/qvac__llm-llamacpp.bare.exports +16 -22
- package/prebuilds/ios-x64-simulator/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/ios-x64-simulator/qvac__llm-llamacpp.bare.exports +31 -23
- package/prebuilds/linux-arm64/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/linux-x64/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/win32-x64/qvac__llm-llamacpp.bare +0 -0
- package/prebuilds/win32-x64/qvac__llm-llamacpp.bare.exports +0 -0
package/README.md
CHANGED
|
@@ -16,6 +16,7 @@ This native C++ addon, built using the `Bare` Runtime, simplifies running Large
|
|
|
16
16
|
- [6. Run Inference](#6-run-inference)
|
|
17
17
|
- [7. Release Resources](#7-release-resources)
|
|
18
18
|
- [API behavior by state](#api-behavior-by-state)
|
|
19
|
+
- [Assessing fit](#assessing-fit)
|
|
19
20
|
- [Fine-tuning](#fine-tuning)
|
|
20
21
|
- [Quickstart Example](#quickstart-example)
|
|
21
22
|
- [Other Examples](#other-examples)
|
|
@@ -44,7 +45,7 @@ BitNet models require special backend handling on Adreno GPUs. When a BitNet mod
|
|
|
44
45
|
|
|
45
46
|
**Dependencies:**
|
|
46
47
|
- inference-addon-cpp (≥1.3.3): C++ addon framework (multi-job scheduler)
|
|
47
|
-
- @qvac/fabric (^0.
|
|
48
|
+
- @qvac/fabric (^0.18.0): Shared llama.cpp/ggml/mtmd inference engine. The desktop runtime ships in the `@qvac/fabric-<host>` platform package that `@qvac/fabric` installs as an optional dependency, so install without `--omit=optional` and keep both present before `bare-make generate`/`build`. Android and iOS apps add `@qvac/fabric` and `@qvac/fabric-android-arm64` or `@qvac/fabric-ios` as direct dependencies at the same exact version.
|
|
48
49
|
- Bare Runtime (≥1.24.0): JavaScript runtime
|
|
49
50
|
- Linux requires Clang/LLVM 22 with libc++
|
|
50
51
|
## Installation
|
|
@@ -360,6 +361,35 @@ So a cancelled batch that contained queued prompts rejects with `Cancelled`; cal
|
|
|
360
361
|
Cancelling a queued job resolves immediately, whether or not the slots it was waiting for are held by an unrelated run — you never wait out someone else's generation to cancel your own queued work.
|
|
361
362
|
|
|
362
363
|
|
|
364
|
+
## Assessing fit
|
|
365
|
+
|
|
366
|
+
`assessFit` projects a load against the memory free right now. It reads GGUF metadata and never weight data, so the registry's weightless copy of a model answers the same as the model itself and the projection can run before anything is downloaded.
|
|
367
|
+
|
|
368
|
+
```js
|
|
369
|
+
const LlmLlamacpp = require('@qvac/llm-llamacpp')
|
|
370
|
+
|
|
371
|
+
const fit = LlmLlamacpp.assessFit({
|
|
372
|
+
modelPath: '/models/model.gguf',
|
|
373
|
+
params: { 'ctx-size': '4096' }
|
|
374
|
+
})
|
|
375
|
+
|
|
376
|
+
fit.status // 'fits' | 'does-not-fit' | 'error'
|
|
377
|
+
fit.reason // 'fits', 'does-not-fit', 'model-unreadable', 'no-backend-device' or 'unsupported-config'
|
|
378
|
+
fit.gpuLayers // what fits, which is not always what the request asked for
|
|
379
|
+
fit.ctxSize
|
|
380
|
+
fit.devices // one row per device the model was assigned to, then a `host` row
|
|
381
|
+
fit.deviceBytes // model, context and compute summed across the devices, host excluded
|
|
382
|
+
fit.hostBytes // the same, for the trailing host row
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
`params` takes the load in llama's own CLI spelling without the leading `--`, exactly as the loader takes it: `ctx-size`, `tensor-split`, `override-tensor`, `cpu-moe`, `no-kv-offload` and the rest. Each is dispatched through llama's argument table, so a placement pinned there reaches the projection. A setting llama does not recognise, or a flag asked to be off that can only assert itself, is `status: "error"` with `unsupported-config`.
|
|
386
|
+
|
|
387
|
+
Pinning `gpu-layers` fixes the placement: the fitter refuses to move layers off a device the load claimed, so the answer is whether that exact placement fits, never a reduced one. Leave it unset for a projection that can place the model itself.
|
|
388
|
+
|
|
389
|
+
`minCtxSize` sets a floor the fitter may not reduce the context below, defaulting to llama's own `fit-ctx` of 4096. `marginBytes` is the memory to leave free on every device, defaulting to llama's `fit-target` of 1 GiB per device. `backendsDir` is where the dynamically-loaded ggml backends live.
|
|
390
|
+
|
|
391
|
+
A model the fitter cannot read is `status: "error"`; only a broken request throws.
|
|
392
|
+
|
|
363
393
|
## Fine-tuning
|
|
364
394
|
|
|
365
395
|
The library supports **LoRA finetuning** of GGUF models: train small adapter weights on top of a base model, then save the adapter and load it at inference time via the `lora` config option. You can pause and resume training from checkpoints.
|
package/addon.d.ts
CHANGED
|
@@ -88,6 +88,7 @@ export type MappedAddonEvent = {
|
|
|
88
88
|
* `FinetuneProgress`, or `null` to drop it.
|
|
89
89
|
*/
|
|
90
90
|
export declare function mapAddonEvent(rawEvent: unknown, rawData: unknown, rawError: unknown): MappedAddonEvent | null;
|
|
91
|
+
export declare function resolveBackendsDir(): string;
|
|
91
92
|
/**
|
|
92
93
|
* An interface between Bare addon in C++ and JS runtime.
|
|
93
94
|
*/
|
package/addon.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LlamaInterface = void 0;
|
|
4
4
|
exports.mapAddonEvent = mapAddonEvent;
|
|
5
|
+
exports.resolveBackendsDir = resolveBackendsDir;
|
|
5
6
|
/* eslint-disable @typescript-eslint/no-require-imports -- Bare modules expose CommonJS export shapes. */
|
|
6
7
|
const fs = require("bare-fs");
|
|
7
8
|
const path = require("bare-path");
|
|
9
|
+
const fabricBackends = require("@qvac/fabric/backends");
|
|
8
10
|
// Index-matched to the C++ GenerationStopReason enum (SequenceDriver.hpp).
|
|
9
11
|
const STOP_REASONS = [
|
|
10
12
|
"none",
|
|
@@ -70,24 +72,20 @@ function mapAddonEvent(rawEvent, rawData, rawError) {
|
|
|
70
72
|
}
|
|
71
73
|
return { type: type, data: rawData, error: rawError };
|
|
72
74
|
}
|
|
73
|
-
// The ggml compute backends ship
|
|
74
|
-
// (
|
|
75
|
+
// The ggml compute backends ship next to the @qvac/fabric runtime
|
|
76
|
+
// (<root>/<host>/qvac__fabric). We deliberately do not copy them into this
|
|
75
77
|
// addon to avoid duplicating tens of MB per fabric consumer. On desktop,
|
|
76
|
-
//
|
|
77
|
-
// mobile the package tree isn't resolvable at runtime (the worklet
|
|
78
|
-
// packed bundle), so fall back to this addon's own prebuilds, where
|
|
79
|
-
// packaging stages the backends. The native side appends
|
|
80
|
-
// ("<host>/qvac__fabric") to whichever root we return.
|
|
78
|
+
// @qvac/fabric/backends resolves that root in whichever package holds the
|
|
79
|
+
// runtime. On mobile the package tree isn't resolvable at runtime (the worklet
|
|
80
|
+
// runs from a packed bundle), so fall back to this addon's own prebuilds, where
|
|
81
|
+
// the mobile packaging stages the backends. The native side appends
|
|
82
|
+
// BACKENDS_SUBDIR ("<host>/qvac__fabric") to whichever root we return.
|
|
81
83
|
function resolveBackendsDir() {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
// Mobile worklets cannot resolve the @qvac/fabric package tree.
|
|
90
|
-
}
|
|
84
|
+
// fabric's resolver only checks that the platform package resolves, not that
|
|
85
|
+
// its prebuilds are on disk.
|
|
86
|
+
const fabricRoot = fabricBackends.resolveBackendsDir();
|
|
87
|
+
if (fabricRoot !== null && fs.existsSync(fabricRoot))
|
|
88
|
+
return fabricRoot;
|
|
91
89
|
return path.join(__dirname, "prebuilds");
|
|
92
90
|
}
|
|
93
91
|
/**
|
|
@@ -192,4 +190,5 @@ exports.LlamaInterface = LlamaInterface;
|
|
|
192
190
|
module.exports = {
|
|
193
191
|
LlamaInterface,
|
|
194
192
|
mapAddonEvent,
|
|
193
|
+
resolveBackendsDir,
|
|
195
194
|
};
|
package/fit.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export interface LlamaFitRequest {
|
|
2
|
+
/** Absolute path to the GGUF, or to the registry's weightless copy. */
|
|
3
|
+
modelPath: string;
|
|
4
|
+
/**
|
|
5
|
+
* The load, in llama's own CLI spelling without the leading `--`, exactly as
|
|
6
|
+
* the loader takes it: `ctx-size`, `tensor-split`, `override-tensor`,
|
|
7
|
+
* `cpu-moe`, `no-kv-offload` and the rest. Each is dispatched through llama's
|
|
8
|
+
* argument table, so a placement pinned here reaches the projection.
|
|
9
|
+
*
|
|
10
|
+
* A setting llama does not recognise, or a flag asked to be off that can only
|
|
11
|
+
* assert itself, is `status: "error"` with `unsupported-config`.
|
|
12
|
+
*/
|
|
13
|
+
params?: Record<string, string>;
|
|
14
|
+
/** Floor the fitter may not reduce the context below. */
|
|
15
|
+
minCtxSize?: number;
|
|
16
|
+
/** Memory to leave free on every device. */
|
|
17
|
+
marginBytes?: number;
|
|
18
|
+
/** Where the dynamically-loaded ggml backends live. */
|
|
19
|
+
backendsDir?: string;
|
|
20
|
+
}
|
|
21
|
+
export type LlamaFitStatus = 'fits' | 'does-not-fit' | 'error';
|
|
22
|
+
export type LlamaFitReason = 'fits' | 'does-not-fit' | 'model-unreadable' | 'no-backend-device' | 'unsupported-config';
|
|
23
|
+
export interface LlamaFitDevice {
|
|
24
|
+
name: string;
|
|
25
|
+
totalBytes: number;
|
|
26
|
+
freeBytes: number;
|
|
27
|
+
modelBytes: number;
|
|
28
|
+
contextBytes: number;
|
|
29
|
+
computeBytes: number;
|
|
30
|
+
}
|
|
31
|
+
export interface LlamaFitResult {
|
|
32
|
+
status: LlamaFitStatus;
|
|
33
|
+
reason: LlamaFitReason;
|
|
34
|
+
/** The layer count the placement resolved to. */
|
|
35
|
+
gpuLayers: number;
|
|
36
|
+
ctxSize: number;
|
|
37
|
+
/** One row per device the model was assigned to, then a `host` row. */
|
|
38
|
+
devices: LlamaFitDevice[];
|
|
39
|
+
/** Model, context and compute summed across the devices, host excluded. */
|
|
40
|
+
deviceBytes: number;
|
|
41
|
+
/** The same, for the trailing host row. */
|
|
42
|
+
hostBytes: number;
|
|
43
|
+
trainCtxSize: number;
|
|
44
|
+
expertCount: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Projects one model against the memory free right now, reading GGUF metadata
|
|
48
|
+
* and never weight data. The registry's weightless copy of a model answers the
|
|
49
|
+
* same as the model itself, so this can run before anything is downloaded.
|
|
50
|
+
*
|
|
51
|
+
* A model the fitter cannot read comes back as `status: "error"`; only a broken
|
|
52
|
+
* request throws.
|
|
53
|
+
*
|
|
54
|
+
* Runs synchronously on the calling thread and builds the model twice without
|
|
55
|
+
* allocating weights, so a caller that must stay responsive runs it off its
|
|
56
|
+
* own loop.
|
|
57
|
+
*
|
|
58
|
+
* The projection reads the model's vocabulary, and llama asserts on a
|
|
59
|
+
* vocabulary it finds inconsistent. An assert aborts rather than throwing, so
|
|
60
|
+
* a corrupt file ends the process instead of returning a status: take the
|
|
61
|
+
* model from a source you trust, or call this behind a process boundary.
|
|
62
|
+
*/
|
|
63
|
+
export declare function assessFit(request: LlamaFitRequest): LlamaFitResult;
|
package/fit.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assessFit = assessFit;
|
|
4
|
+
const addon_1 = require("./addon");
|
|
5
|
+
/**
|
|
6
|
+
* Projects one model against the memory free right now, reading GGUF metadata
|
|
7
|
+
* and never weight data. The registry's weightless copy of a model answers the
|
|
8
|
+
* same as the model itself, so this can run before anything is downloaded.
|
|
9
|
+
*
|
|
10
|
+
* A model the fitter cannot read comes back as `status: "error"`; only a broken
|
|
11
|
+
* request throws.
|
|
12
|
+
*
|
|
13
|
+
* Runs synchronously on the calling thread and builds the model twice without
|
|
14
|
+
* allocating weights, so a caller that must stay responsive runs it off its
|
|
15
|
+
* own loop.
|
|
16
|
+
*
|
|
17
|
+
* The projection reads the model's vocabulary, and llama asserts on a
|
|
18
|
+
* vocabulary it finds inconsistent. An assert aborts rather than throwing, so
|
|
19
|
+
* a corrupt file ends the process instead of returning a status: take the
|
|
20
|
+
* model from a source you trust, or call this behind a process boundary.
|
|
21
|
+
*/
|
|
22
|
+
function assessFit(request) {
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports -- native binding is resolved lazily from package prebuilds.
|
|
24
|
+
const binding = require('./binding.js');
|
|
25
|
+
return binding.assessFit({
|
|
26
|
+
...request,
|
|
27
|
+
backendsDir: typeof request.backendsDir === 'string' && request.backendsDir.length > 0
|
|
28
|
+
? request.backendsDir
|
|
29
|
+
: (0, addon_1.resolveBackendsDir)()
|
|
30
|
+
});
|
|
31
|
+
}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import QvacLogger = require("@qvac/logging");
|
|
2
2
|
import { QvacResponse } from "@qvac/infer-base";
|
|
3
|
+
import { assessFit as assessFitImpl, type LlamaFitDevice, type LlamaFitRequest, type LlamaFitResult, type LlamaFitStatus } from "./fit";
|
|
3
4
|
import type * as AddonModule from "./addon";
|
|
4
5
|
type BareEventMap = Record<string | symbol, unknown[]>;
|
|
5
6
|
/** Aliases: inside the namespace, `QvacResponse` resolves to its own member. */
|
|
@@ -63,6 +64,7 @@ interface LlmLlamacppConstructor {
|
|
|
63
64
|
readonly prototype: LlmLlamacpp;
|
|
64
65
|
/** Returns the first shard (matching `-NNNNN-of-MMMMM.gguf`) or the sole entry for single-file models. */
|
|
65
66
|
readonly pickPrimaryGgufPath: typeof pickPrimaryGgufPath;
|
|
67
|
+
readonly assessFit: typeof assessFitImpl;
|
|
66
68
|
}
|
|
67
69
|
/** LLM client wrapping the native LlamaInterface for inference, finetuning, and pause/resume. */
|
|
68
70
|
declare const LlmLlamacpp: LlmLlamacppConstructor;
|
|
@@ -133,7 +135,8 @@ declare namespace LlmLlamacpp {
|
|
|
133
135
|
verbosity?: NumericLike;
|
|
134
136
|
"main-gpu"?: NumericLike | string;
|
|
135
137
|
/**
|
|
136
|
-
* How to split the model across GPUs
|
|
138
|
+
* How to split the model across devices: local GPUs, plus remote ones
|
|
139
|
+
* registered with `rpc-servers`.
|
|
137
140
|
*
|
|
138
141
|
* - 'none' (default) — pin the whole model to a single GPU.
|
|
139
142
|
* - 'layer' — pipeline parallelism; each GPU holds a contiguous slice of
|
|
@@ -188,6 +191,35 @@ declare namespace LlmLlamacpp {
|
|
|
188
191
|
"flash-attn"?: "on" | "off" | "auto" | "enabled" | "disabled" | "true" | "false" | "0" | "1";
|
|
189
192
|
/** Proportions for distributing layers/rows across GPUs (e.g. '1,1' for equal split, '3,1' for 75/25). */
|
|
190
193
|
"tensor-split"?: string;
|
|
194
|
+
/**
|
|
195
|
+
* Comma-separated `host:port` endpoints of remote `ggml-rpc-server`
|
|
196
|
+
* processes, e.g. `'10.0.0.1:50052,10.0.0.2:50052'`. Their devices join the
|
|
197
|
+
* local ones and can then be selected with `devices`, letting a single
|
|
198
|
+
* model run split across several machines.
|
|
199
|
+
*
|
|
200
|
+
* Only the machine loading the model needs the model file. Every endpoint
|
|
201
|
+
* must be reachable at load time — an unreachable one fails the load rather
|
|
202
|
+
* than being skipped. Endpoints must run a server built from the same
|
|
203
|
+
* qvac-fabric revision as this addon, since the RPC wire protocol is
|
|
204
|
+
* versioned and mismatched builds refuse to connect.
|
|
205
|
+
* With the default `split-mode: 'none'`, `devices` must name one device;
|
|
206
|
+
* automatic single-device selection never picks an RPC device.
|
|
207
|
+
* A load also fails if its final device selection uses none of the devices
|
|
208
|
+
* registered by these endpoints.
|
|
209
|
+
*
|
|
210
|
+
* The channel is unauthenticated: use it only on a trusted private network.
|
|
211
|
+
*/
|
|
212
|
+
"rpc-servers"?: string;
|
|
213
|
+
/**
|
|
214
|
+
* Explicit ggml device list, e.g. `'RPC0,RPC1'`. Overrides automatic
|
|
215
|
+
* placement, including the multi-GPU behaviour of spreading across every
|
|
216
|
+
* visible device — which is rarely what you want once remote devices are
|
|
217
|
+
* registered, since the list then mixes local and remote. Names come from
|
|
218
|
+
* the ggml registry (`RPC0`, `RPC1`, … for remote devices, in the order
|
|
219
|
+
* given to `rpc-servers`). Multiple names require `split-mode: 'layer'`
|
|
220
|
+
* or `'tensor'`; the default `'none'` accepts only one device.
|
|
221
|
+
*/
|
|
222
|
+
devices?: string;
|
|
191
223
|
"cache-type-k"?: string;
|
|
192
224
|
"cache-type-v"?: string;
|
|
193
225
|
/**
|
|
@@ -646,5 +678,9 @@ declare namespace LlmLlamacpp {
|
|
|
646
678
|
stats?: FinetuneStats;
|
|
647
679
|
}
|
|
648
680
|
type QvacResponse<Output = any> = InferQvacResponseOf<Output>;
|
|
681
|
+
type FitRequest = LlamaFitRequest;
|
|
682
|
+
type FitResult = LlamaFitResult;
|
|
683
|
+
type FitStatus = LlamaFitStatus;
|
|
684
|
+
type FitDevice = LlamaFitDevice;
|
|
649
685
|
}
|
|
650
686
|
export = LlmLlamacpp;
|
package/index.js
CHANGED
|
@@ -7,6 +7,7 @@ const BatchHandler = require("./batchHandler");
|
|
|
7
7
|
/* eslint-enable @typescript-eslint/no-require-imports */
|
|
8
8
|
const infer_base_1 = require("@qvac/infer-base");
|
|
9
9
|
const addon_1 = require("./addon");
|
|
10
|
+
const fit_1 = require("./fit");
|
|
10
11
|
const { runBusyError } = BatchHandler;
|
|
11
12
|
function normalizeRunOptions(runOptions) {
|
|
12
13
|
if (runOptions === undefined) {
|
|
@@ -257,6 +258,7 @@ function sanitizePromptForLog(prompt) {
|
|
|
257
258
|
/** LLM client wrapping the native LlamaInterface for inference, finetuning, and pause/resume. */
|
|
258
259
|
const LlmLlamacpp = class LlmLlamacpp {
|
|
259
260
|
static pickPrimaryGgufPath = pickPrimaryGgufPath;
|
|
261
|
+
static assessFit = fit_1.assessFit;
|
|
260
262
|
// Attached for tests; untyped because `typeof QvacResponse` is not nameable by consumers.
|
|
261
263
|
static QvacResponse = infer_base_1.QvacResponse;
|
|
262
264
|
addon;
|
|
@@ -786,6 +788,7 @@ const LlmLlamacpp = class LlmLlamacpp {
|
|
|
786
788
|
// Runtime-redundant: ESM named imports need the top-level `module.exports.X =` form.
|
|
787
789
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access -- `module.exports` is untyped CommonJS surface. */
|
|
788
790
|
module.exports.pickPrimaryGgufPath = pickPrimaryGgufPath;
|
|
791
|
+
module.exports.assessFit = fit_1.assessFit;
|
|
789
792
|
module.exports.QvacResponse = infer_base_1.QvacResponse;
|
|
790
793
|
module.exports = LlmLlamacpp;
|
|
791
794
|
/* eslint-enable @typescript-eslint/no-unsafe-member-access */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qvac/llm-llamacpp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.55.0",
|
|
4
4
|
"description": "llama addon for qvac",
|
|
5
5
|
"addon": true,
|
|
6
6
|
"scripts": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:mobile:generate": "npm run generate:benchmark-shards && bare ./scripts/generate-mobile-integration-tests.js",
|
|
23
23
|
"test:mobile:validate": "npm run generate:benchmark-shards && node scripts/validate-mobile-tests.js && node scripts/validate-mobile-manifest.js",
|
|
24
24
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
25
|
-
"check:generated": "npm run build:ts && out=$(git status --porcelain --untracked-files=all -- index.js addon.js batchHandler.js addonLogging.js index.d.ts addon.d.ts batchHandler.d.ts addonLogging.d.ts) && { [ -z \"$out\" ] || { echo \"$out\"; exit 1; }; }",
|
|
25
|
+
"check:generated": "npm run build:ts && out=$(git status --porcelain --untracked-files=all -- index.js addon.js batchHandler.js addonLogging.js fit.js index.d.ts addon.d.ts batchHandler.d.ts addonLogging.d.ts fit.d.ts) && { [ -z \"$out\" ] || { echo \"$out\"; exit 1; }; }",
|
|
26
26
|
"test:types": "npm run typecheck && npm run check:generated && npm run test:types:consumer",
|
|
27
27
|
"test:types:consumer": "tsc --noEmit -p test/types/tsconfig.cjs.json && tsc --noEmit -p test/types/tsconfig.esm.json",
|
|
28
28
|
"test:dts": "tsc -p tsconfig.dts.json",
|
|
@@ -56,6 +56,8 @@
|
|
|
56
56
|
"addonLogging.js",
|
|
57
57
|
"addonLogging.d.ts",
|
|
58
58
|
"addon.d.ts",
|
|
59
|
+
"fit.js",
|
|
60
|
+
"fit.d.ts",
|
|
59
61
|
"prebuilds",
|
|
60
62
|
"index.d.ts",
|
|
61
63
|
"LICENSE",
|
|
@@ -71,6 +73,8 @@
|
|
|
71
73
|
"bugs": "https://github.com/tetherto/qvac/issues",
|
|
72
74
|
"homepage": "https://qvac.tether.io",
|
|
73
75
|
"devDependencies": {
|
|
76
|
+
"@qvac/fabric-android-arm64": "^0.18.0",
|
|
77
|
+
"@qvac/fabric-ios": "^0.18.0",
|
|
74
78
|
"@types/node": "^24.2.1",
|
|
75
79
|
"bare-crypto": "^1.15.3",
|
|
76
80
|
"bare-process": "^4.2.2",
|
|
@@ -92,7 +96,7 @@
|
|
|
92
96
|
"typescript-eslint": "^8.63.0"
|
|
93
97
|
},
|
|
94
98
|
"dependencies": {
|
|
95
|
-
"@qvac/fabric": "^0.
|
|
99
|
+
"@qvac/fabric": "^0.18.0",
|
|
96
100
|
"@qvac/infer-base": "^0.6.2",
|
|
97
101
|
"@qvac/logging": "^0.1.0",
|
|
98
102
|
"bare-fs": "^4.5.1",
|
|
Binary file
|
|
Binary file
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
],
|
|
8
8
|
"current_versions": [
|
|
9
9
|
{
|
|
10
|
-
"version": "0.
|
|
10
|
+
"version": "0.55"
|
|
11
11
|
}
|
|
12
12
|
],
|
|
13
13
|
"exported_symbols": [
|
|
@@ -47,8 +47,10 @@
|
|
|
47
47
|
"__ZNSt3__119piecewise_constructE",
|
|
48
48
|
"__ZN8picojson12last_error_tIbE1sE",
|
|
49
49
|
"__ZGVN28qvac_lib_inference_addon_cpp11JsInterface10instances_E",
|
|
50
|
+
"__ZGVZN30qvac_lib_inference_addon_llama9assessFitEP8js_env_sP18js_callback_info_sE8fitMutex",
|
|
50
51
|
"__ZNSt3__19__any_imp17__unique_typeinfoINS_6vectorINS_4pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_7variantIJdxEEEEENS7_ISC_EEEEE4__idE",
|
|
51
52
|
"__ZN28qvac_lib_inference_addon_cpp6logger8JsLogger13logger_async_E",
|
|
53
|
+
"__ZGVZN30qvac_lib_inference_addon_llama21isProcessScopedOptionERK10common_argE8excluded",
|
|
52
54
|
"__ZGVN28qvac_lib_inference_addon_cpp6logger8JsLogger10log_queue_E",
|
|
53
55
|
"__ZGVN8picojson12last_error_tIbE1sE",
|
|
54
56
|
"__ZGVN28qvac_lib_inference_addon_cpp6logger8JsLogger12queue_mutex_E",
|
|
@@ -64,11 +66,13 @@
|
|
|
64
66
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface13instancesMtx_E",
|
|
65
67
|
"__ZN30qvac_lib_inference_addon_llama22BATCH_OUTPUT_TYPE_NAMEE",
|
|
66
68
|
"__ZN28qvac_lib_inference_addon_cpp6logger8JsLogger10log_queue_E",
|
|
69
|
+
"__ZZN30qvac_lib_inference_addon_llama21isProcessScopedOptionERK10common_argE8excluded",
|
|
67
70
|
"__ZNSt3__19__any_imp17__unique_typeinfoINS_6vectorIN10LlamaModel6PromptENS_9allocatorIS4_EEEEE4__idE",
|
|
68
71
|
"__ZNSt3__16ranges5__cpo4findE",
|
|
69
72
|
"__ZN30qvac_lib_inference_addon_llama10JsBatchIds11kMintPrefixE",
|
|
70
73
|
"__ZGVN28qvac_lib_inference_addon_cpp11JsInterface13instancesMtx_E",
|
|
71
74
|
"__ZZN30qvac_lib_inference_addon_llama10JsBatchIds4mintEvE4next",
|
|
75
|
+
"__ZZN30qvac_lib_inference_addon_llama9assessFitEP8js_env_sP18js_callback_info_sE8fitMutex",
|
|
72
76
|
"__ZNSt3__19__any_imp17__unique_typeinfoIN28qvac_lib_inference_addon_cpp6Output5ErrorEE4__idE",
|
|
73
77
|
"__ZNSt3__19__any_imp17__unique_typeinfoINS_6vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS6_IS8_EEEEE4__idE"
|
|
74
78
|
]
|
|
@@ -111,9 +115,9 @@
|
|
|
111
115
|
"__ZN30qvac_lib_inference_addon_llama5utils21restoreRecurrentStateEP13llama_contextiRKNS0_22RecurrentStateSnapshotE",
|
|
112
116
|
"__ZN14LlamaFinetuner8finetuneERKN30qvac_lib_inference_addon_llama21LlamaFinetuningParamsEPN22FinetuneTerminalResult5StatsENSt3__18functionIFvRKN24llama_finetuning_helpers21FinetuneProgressStatsEEEE",
|
|
113
117
|
"__ZN30qvac_lib_inference_addon_llama5utils25selectReasoningBudgetTagsERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES9_RKNS1_6vectorIS7_NS5_IS7_EEEERKNS1_8optionalINS0_13ReasoningTagsEEE",
|
|
118
|
+
"__ZThn16_N14MtmdLlmContext12syncPositionEi",
|
|
114
119
|
"__ZN30qvac_lib_inference_addon_llama8batching7Request20isOptHasTokensToFeedERKNSt3__18optionalIS1_EE",
|
|
115
120
|
"__ZThn16_NK14TextLlmContext24getThinkingBlockDiscardsEv",
|
|
116
|
-
"__ZThn16_N14MtmdLlmContext12syncPositionEi",
|
|
117
121
|
"__ZN12CacheManager14writeCacheFileERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
|
|
118
122
|
"__ZN30qvac_lib_inference_addon_llama5utils22ReasoningRollbackState19restorePrefillEntryEP13llama_contexti",
|
|
119
123
|
"__ZN30qvac_lib_inference_addon_llama5utils24isDeepSeekV4ArchitectureENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE",
|
|
@@ -222,8 +226,8 @@
|
|
|
222
226
|
"__ZN24llama_finetuning_helpers25setCurrentCheckpointStateEPNS_23TrainingCheckpointStateE",
|
|
223
227
|
"__ZN10LlamaModel17processConcurrentERKNS_6PromptEy",
|
|
224
228
|
"__ZN14TextLlmContext26captureReasoningBoundaryAtEi",
|
|
225
|
-
"__ZN24llama_finetuning_helpers12readTextFileERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
|
|
226
229
|
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler26completeGroupRequestLockedERKNSt3__110shared_ptrINS1_10BatchGroupEEE",
|
|
230
|
+
"__ZN24llama_finetuning_helpers12readTextFileERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
|
|
227
231
|
"__ZNK30qvac_lib_inference_addon_llama8batching19MultiRequestBatcher9requestAtEj",
|
|
228
232
|
"__ZN26LlamaLazyInitializeBackend17incrementRefCountEv",
|
|
229
233
|
"__ZN30qvac_lib_inference_addon_llama5utils23getChatTemplateForModelEPK11llama_modelRKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE",
|
|
@@ -380,19 +384,20 @@
|
|
|
380
384
|
"__ZN14TextLlmContext8setNPastEi",
|
|
381
385
|
"__ZN19LlamaBackendsHandleD1Ev",
|
|
382
386
|
"__ZN30qvac_lib_inference_addon_llama7parsers31validateReasoningBudgetOverrideEd",
|
|
387
|
+
"__ZN22load_fit_normalization23collectRpcRegistrationsERKNSt3__16vectorINS0_12basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEENS5_IS7_EEEERKNS1_IhNS5_IhEEEEbRKNS0_8functionIFP16ggml_backend_regPKcEEE",
|
|
383
388
|
"__ZN30qvac_lib_inference_addon_llama5utils18validateToolChoiceERKNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEERKNS1_6vectorI16common_chat_toolNS6_ISD_EEEE",
|
|
384
389
|
"__ZN30qvac_lib_inference_addon_llama23ReasoningBlockCompactor26recordCloseMarkerForReplayEi",
|
|
385
|
-
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler10stepLockedEPNSt3__111unique_lockINS2_5mutexEEE",
|
|
386
390
|
"__ZN30qvac_lib_inference_addon_llama5utils22ReasoningRollbackState19capturePrefillEntryEP13llama_contextii",
|
|
387
|
-
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchSchedulerD2Ev",
|
|
388
391
|
"__ZN30qvac_lib_inference_addon_llama5utils22ReasoningRollbackState5resetEv",
|
|
392
|
+
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler10stepLockedEPNSt3__111unique_lockINS2_5mutexEEE",
|
|
393
|
+
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchSchedulerD2Ev",
|
|
394
|
+
"__ZNK14TextLlmContext8getNPastEv",
|
|
389
395
|
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler27applyDeferredTeardownLockedEv",
|
|
390
396
|
"__ZN14TextLlmContext32recordPostReasoningTokenIfActiveEi",
|
|
391
397
|
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler15StepUnlockGuardD2Ev",
|
|
392
398
|
"__ZN30qvac_lib_inference_addon_llama8batching7RequestC2EjO11PrefillPlanji",
|
|
393
399
|
"__ZN10LlamaModel18initBatchSchedulerERNS_15ReloadableStateE",
|
|
394
400
|
"__ZN30qvac_lib_inference_addon_llama5utils22RecurrentStateSnapshotC2EOS1_",
|
|
395
|
-
"__ZNK14TextLlmContext8getNPastEv",
|
|
396
401
|
"__ZN12CacheManager17isFileInitializedERKNSt3__14__fs10filesystem4pathE",
|
|
397
402
|
"__ZN10LlamaModelC2EONSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES7_ONS0_13unordered_mapIS6_S6_NS0_4hashIS6_EENS0_8equal_toIS6_EENS4_INS0_4pairIKS6_S6_EEEEEE",
|
|
398
403
|
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler12submitLockedEONS1_13QueuedRequestE",
|
|
@@ -441,6 +446,7 @@
|
|
|
441
446
|
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler29serviceNextMediaSegmentLockedEPNSt3__111unique_lockINS2_5mutexEEE",
|
|
442
447
|
"__ZN30qvac_lib_inference_addon_llama5utils13isGemma4ModelEPK11llama_model",
|
|
443
448
|
"__ZN14TextLlmContext16generateResponseERKNSt3__18functionIFvRKNS0_12basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEE",
|
|
449
|
+
"__ZN22load_fit_normalization31validateMobileMultiDeviceConfigERKNSt3__113unordered_mapINS0_12basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES7_NS0_4hashIS7_EENS0_8equal_toIS7_EENS5_INS0_4pairIKS7_S7_EEEEEE16llama_split_mode",
|
|
444
450
|
"__ZN24llama_finetuning_helpers24schedulerOptimizerParamsEPv",
|
|
445
451
|
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler19cancelPendingLockedEv",
|
|
446
452
|
"__ZN24llama_finetuning_helpers21tryHandlePauseRequestEP16ggml_opt_contextPNS_23TrainingCheckpointStateEbxx",
|
|
@@ -519,7 +525,6 @@
|
|
|
519
525
|
"__ZN14MtmdLlmContext27resetToolDefinitionsDroppedEv",
|
|
520
526
|
"__ZNK30qvac_lib_inference_addon_llama8batching19MultiRequestBatcher12chunkSizeForEj",
|
|
521
527
|
"__ZNK14LlamaFinetuner30getPausedCheckpointStateSharedEv",
|
|
522
|
-
"_bare_get_module_name_v0",
|
|
523
528
|
"__ZN14LlamaFinetuner22prepareTrainingDatasetERKN30qvac_lib_inference_addon_llama21LlamaFinetuningParamsE",
|
|
524
529
|
"__ZNK30qvac_lib_inference_addon_llama8batching20RuntimeStatsSnapshot9elapsedMsEv",
|
|
525
530
|
"__ZN14TextLlmContext13resetStopFlagEv",
|
|
@@ -532,6 +537,7 @@
|
|
|
532
537
|
"__ZNK13ModelMetaData16checkInitializedEv",
|
|
533
538
|
"__ZN14TextLlmContext13onLogitsReadyEijRKNSt3__18functionIFvRKNS0_12basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEEP10LlamaBatch",
|
|
534
539
|
"__ZN30qvac_lib_inference_addon_llama7parsers26parseReasoningBudgetConfigENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE",
|
|
540
|
+
"_bare_get_module_name_v0",
|
|
535
541
|
"__ZNK14TextLlmContext9saveCacheERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
|
|
536
542
|
"__ZN30qvac_lib_inference_addon_llama5utils36replayTokensThroughDecoderForTestingEP13llama_contextiRKNSt3__16vectorIiNS3_9allocatorIiEEEEibiNS3_8functionIFiS2_11llama_batchEEE",
|
|
537
543
|
"__ZN30qvac_lib_inference_addon_llama8batching24ContinuousBatchScheduler18notifyDoneNoexceptEj",
|
|
@@ -561,18 +567,11 @@
|
|
|
561
567
|
"__ZN14MtmdLlmContext9loadCacheERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"
|
|
562
568
|
],
|
|
563
569
|
"weak": [
|
|
564
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm2ELm2EEE10__dispatchB8ne190102IOZNS0_12__assignmentINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE16__generic_assignB8ne190102IRKNS0_17__copy_assignmentISE_LNS0_6_TraitE1EEEEEvOT_EUlRSM_OT0_E_JRNS0_6__baseILSI_1EJxdbSD_EEERKSU_EEEDcSM_DpT0_",
|
|
565
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm3EEE10__dispatchB8ne190102IOZNS0_6__ctorINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE19__generic_constructB8ne190102IRKNS0_18__copy_constructorISE_LNS0_6_TraitE1EEEEEvRSF_OT_EUlSO_E_JRKNS0_6__baseILSI_1EJxdbSD_EEEEEEDcSN_DpT0_",
|
|
566
570
|
"__ZZZN28qvac_lib_inference_addon_cpp16OutputCallBackJs26initializeProcessingThreadENSt3__110shared_ptrINS_11OutputQueueEEEENKUlvE_clEvENUlP11uv_handle_sE_8__invokeES7_",
|
|
567
|
-
"
|
|
571
|
+
"__ZN30qvac_lib_inference_addon_llama9assessFitEP8js_env_sP18js_callback_info_s",
|
|
568
572
|
"__ZN30qvac_lib_inference_addon_llama6cancelEP8js_env_sP18js_callback_info_s",
|
|
569
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm2EEE10__dispatchB8ne190102IOZNS0_6__ctorINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE19__generic_constructB8ne190102IRKNS0_18__copy_constructorISE_LNS0_6_TraitE1EEEEEvRSF_OT_EUlSO_E_JRKNS0_6__baseILSI_1EJxdbSD_EEEEEEDcSN_DpT0_",
|
|
570
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm0EEE10__dispatchB8ne190102IOZNS0_6__ctorINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE19__generic_constructB8ne190102INS0_18__move_constructorISE_LNS0_6_TraitE1EEEEEvRSF_OT_EUlSM_E_JONS0_6__baseILSI_1EJxdbSD_EEEEEEDcSL_DpT0_",
|
|
571
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm1ELm1EEE10__dispatchB8ne190102IOZNS0_12__assignmentINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE16__generic_assignB8ne190102IRKNS0_17__copy_assignmentISE_LNS0_6_TraitE1EEEEEvOT_EUlRSM_OT0_E_JRNS0_6__baseILSI_1EJxdbSD_EEERKSU_EEEDcSM_DpT0_",
|
|
572
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm0EEE10__dispatchB8ne190102IONS1_9__variant15__value_visitorIZZN28qvac_lib_inference_addon_cpp9out_handl27JsRuntimeStatsOutputHandlerC1EvENKUlRKNS_6vectorINS_4pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_7variantIJdxEEEEENSG_ISL_EEEEE_clESP_EUlOT_E_EEJRKNS0_6__baseILNS0_6_TraitE0EJdxEEEEEEDcSR_DpT0_",
|
|
573
573
|
"__ZZN28qvac_lib_inference_addon_cpp2js11JsAsyncTask3runEP8js_env_sNSt3__18functionIFvvEEEENUlP11uv_handle_sE_8__invokeES9_",
|
|
574
574
|
"__ZN30qvac_lib_inference_addon_llama11activeSlotsEP8js_env_sP18js_callback_info_s",
|
|
575
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm1EEE10__dispatchB8ne190102IONS1_9__variant15__value_visitorIZZN28qvac_lib_inference_addon_cpp9out_handl27JsRuntimeStatsOutputHandlerC1EvENKUlRKNS_6vectorINS_4pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_7variantIJdxEEEEENSG_ISL_EEEEE_clESP_EUlOT_E_EEJRKNS0_6__baseILNS0_6_TraitE0EJdxEEEEEEDcSR_DpT0_",
|
|
576
575
|
"__ZN28qvac_lib_inference_addon_cpp6logger8JsLogger13asyncCallbackEP10uv_async_s",
|
|
577
576
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface6cancelEP8js_env_sP18js_callback_info_s",
|
|
578
577
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface10activeJobsEP8js_env_sP18js_callback_info_s",
|
|
@@ -580,20 +579,15 @@
|
|
|
580
579
|
"__ZN30qvac_lib_inference_addon_llama8finetuneEP8js_env_sP18js_callback_info_s",
|
|
581
580
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface13releaseLoggerEP8js_env_sP18js_callback_info_s",
|
|
582
581
|
"__ZZN28qvac_lib_inference_addon_cpp16OutputCallBackJs16drainAndTeardownEPNS0_5StateEbbENUlP11uv_handle_sE_8__invokeES4_",
|
|
583
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm1EEE10__dispatchB8ne190102IOZNS0_6__ctorINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE19__generic_constructB8ne190102INS0_18__move_constructorISE_LNS0_6_TraitE1EEEEEvRSF_OT_EUlSM_E_JONS0_6__baseILSI_1EJxdbSD_EEEEEEDcSL_DpT0_",
|
|
584
582
|
"__ZN30qvac_lib_inference_addon_llama14createInstanceEP8js_env_sP18js_callback_info_s",
|
|
585
583
|
"__ZZN28qvac_lib_inference_addon_cpp6logger8JsLogger22closeAsyncHandleLockedEvENUlP11uv_handle_sE_8__invokeES3_",
|
|
586
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm0ELm0EEE10__dispatchB8ne190102IOZNS0_12__assignmentINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE16__generic_assignB8ne190102IRKNS0_17__copy_assignmentISE_LNS0_6_TraitE1EEEEEvOT_EUlRSM_OT0_E_JRNS0_6__baseILSI_1EJxdbSD_EEERKSU_EEEDcSM_DpT0_",
|
|
587
584
|
"__ZN30qvac_lib_inference_addon_llama6runJobEP8js_env_sP18js_callback_info_s",
|
|
588
585
|
"__ZN28qvac_lib_inference_addon_cpp2js11JsAsyncTask10onCompleteEP10uv_async_s",
|
|
589
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm3ELm3EEE10__dispatchB8ne190102IOZNS0_12__assignmentINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE16__generic_assignB8ne190102IRKNS0_17__copy_assignmentISE_LNS0_6_TraitE1EEEEEvOT_EUlRSM_OT0_E_JRNS0_6__baseILSI_1EJxdbSD_EEERKSU_EEEDcSM_DpT0_",
|
|
590
586
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface15destroyInstanceEP8js_env_sP18js_callback_info_s",
|
|
591
587
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface8activateEP8js_env_sP18js_callback_info_s",
|
|
592
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm0EEE10__dispatchB8ne190102IOZNS0_6__ctorINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE19__generic_constructB8ne190102IRKNS0_18__copy_constructorISE_LNS0_6_TraitE1EEEEEvRSF_OT_EUlSO_E_JRKNS0_6__baseILSI_1EJxdbSD_EEEEEEDcSN_DpT0_",
|
|
593
588
|
"__ZN28qvac_lib_inference_addon_cpp6logger8JsLogger13onEnvTeardownEPv",
|
|
594
|
-
"__ZNSt3__116__variant_detail12__visitation6__base12__dispatcherIJLm1EEE10__dispatchB8ne190102IOZNS0_6__ctorINS0_8__traitsIJxdbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE19__generic_constructB8ne190102IRKNS0_18__copy_constructorISE_LNS0_6_TraitE1EEEEEvRSF_OT_EUlSO_E_JRKNS0_6__baseILSI_1EJxdbSD_EEEEEEDcSN_DpT0_",
|
|
595
589
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface9setLoggerEP8js_env_sP18js_callback_info_s",
|
|
596
|
-
"
|
|
590
|
+
"__ZZN30qvac_lib_inference_addon_llama20applyLlamaLoadParamsEP8js_env_sN28qvac_lib_inference_addon_cpp2js6ObjectER13common_paramsENUliPPcE_8__invokeEiS8_",
|
|
597
591
|
"__ZN28qvac_lib_inference_addon_cpp11JsInterface11loadWeightsEP8js_env_sP18js_callback_info_s",
|
|
598
592
|
"__ZN28qvac_lib_inference_addon_cpp16OutputCallBackJs13onEnvTeardownEPv",
|
|
599
593
|
"__ZN28qvac_lib_inference_addon_cpp2js11JsAsyncTask13onEnvTeardownEP22js_deferred_teardown_sPv",
|
|
Binary file
|