webml-kit 0.4.0 → 0.4.1
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/package.json +3 -3
- package/dist/cache.d.ts +0 -46
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js +0 -161
- package/dist/cache.js.map +0 -1
- package/dist/decision.d.ts +0 -182
- package/dist/decision.d.ts.map +0 -1
- package/dist/decision.js +0 -789
- package/dist/decision.js.map +0 -1
- package/dist/device.d.ts +0 -86
- package/dist/device.d.ts.map +0 -1
- package/dist/device.js +0 -195
- package/dist/device.js.map +0 -1
- package/dist/gpu-recovery.d.ts +0 -61
- package/dist/gpu-recovery.d.ts.map +0 -1
- package/dist/gpu-recovery.js +0 -105
- package/dist/gpu-recovery.js.map +0 -1
- package/dist/hub.d.ts +0 -97
- package/dist/hub.d.ts.map +0 -1
- package/dist/hub.js +0 -142
- package/dist/hub.js.map +0 -1
- package/dist/index.d.ts +0 -63
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -65
- package/dist/index.js.map +0 -1
- package/dist/inputs.d.ts +0 -27
- package/dist/inputs.d.ts.map +0 -1
- package/dist/inputs.js +0 -155
- package/dist/inputs.js.map +0 -1
- package/dist/loader.d.ts +0 -100
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -246
- package/dist/loader.js.map +0 -1
- package/dist/model-client.d.ts +0 -149
- package/dist/model-client.d.ts.map +0 -1
- package/dist/model-client.js +0 -318
- package/dist/model-client.js.map +0 -1
- package/dist/model-worker.d.ts +0 -16
- package/dist/model-worker.d.ts.map +0 -1
- package/dist/model-worker.js +0 -340
- package/dist/model-worker.js.map +0 -1
- package/dist/onnx-pipeline.d.ts +0 -20
- package/dist/onnx-pipeline.d.ts.map +0 -1
- package/dist/onnx-pipeline.js +0 -462
- package/dist/onnx-pipeline.js.map +0 -1
- package/dist/pipelines/index.d.ts +0 -28
- package/dist/pipelines/index.d.ts.map +0 -1
- package/dist/pipelines/index.js +0 -140
- package/dist/pipelines/index.js.map +0 -1
- package/dist/shim-ort.d.ts +0 -6
- package/dist/shim-ort.d.ts.map +0 -1
- package/dist/shim-ort.js +0 -38
- package/dist/shim-ort.js.map +0 -1
- package/dist/streaming.d.ts +0 -55
- package/dist/streaming.d.ts.map +0 -1
- package/dist/streaming.js +0 -142
- package/dist/streaming.js.map +0 -1
- package/dist/types.d.ts +0 -200
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/webml-kit.browser.js +0 -2568
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webml-kit",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Framework-agnostic utilities for loading and running ML models in the browser via WebGPU/WASM",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
"url": "git+https://github.com/hemanth/webml-kit.git"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@huggingface/transformers": "^4.
|
|
55
|
+
"@huggingface/transformers": "^4.3.0",
|
|
56
56
|
"kokoro-js": "^1.2.1",
|
|
57
|
-
"onnxruntime-web": "^1.
|
|
57
|
+
"onnxruntime-web": "^1.30.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@webgpu/types": "^0.1.69",
|
package/dist/cache.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model cache visibility utilities.
|
|
3
|
-
*
|
|
4
|
-
* Transformers.js uses the Cache API internally to persist downloaded model
|
|
5
|
-
* files. This module gives users visibility into what's cached, letting them
|
|
6
|
-
* skip "downloading…" UX for returning users or clear storage on mobile.
|
|
7
|
-
*/
|
|
8
|
-
import type { CachedModel, CacheBackend } from './types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Detect which cache backend is available.
|
|
11
|
-
* Priority: Cache API → OPFS → IndexedDB
|
|
12
|
-
*/
|
|
13
|
-
export declare function getCacheBackend(): Promise<CacheBackend>;
|
|
14
|
-
/**
|
|
15
|
-
* Check if a specific model is already cached locally.
|
|
16
|
-
*
|
|
17
|
-
* ```ts
|
|
18
|
-
* if (await isCached('onnx-community/Bonsai-1.7B-ONNX')) {
|
|
19
|
-
* // Skip "downloading..." UI
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export declare function isCached(modelId: string): Promise<boolean>;
|
|
24
|
-
/**
|
|
25
|
-
* Get total cache size in bytes used by downloaded models.
|
|
26
|
-
*/
|
|
27
|
-
export declare function getCacheSize(): Promise<number>;
|
|
28
|
-
/**
|
|
29
|
-
* List all cached models with metadata.
|
|
30
|
-
*/
|
|
31
|
-
export declare function listCachedModels(): Promise<CachedModel[]>;
|
|
32
|
-
/**
|
|
33
|
-
* Clear cached model files.
|
|
34
|
-
*
|
|
35
|
-
* @param modelId - Specific model to clear, or omit to clear all.
|
|
36
|
-
*
|
|
37
|
-
* ```ts
|
|
38
|
-
* // Clear a specific model
|
|
39
|
-
* await clearCache('onnx-community/Bonsai-1.7B-ONNX');
|
|
40
|
-
*
|
|
41
|
-
* // Clear all cached models
|
|
42
|
-
* await clearCache();
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
export declare function clearCache(modelId?: string): Promise<void>;
|
|
46
|
-
//# sourceMappingURL=cache.d.ts.map
|
package/dist/cache.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU5D;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAmB7D;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBhE;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CASpD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CA0C/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhE"}
|
package/dist/cache.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model cache visibility utilities.
|
|
3
|
-
*
|
|
4
|
-
* Transformers.js uses the Cache API internally to persist downloaded model
|
|
5
|
-
* files. This module gives users visibility into what's cached, letting them
|
|
6
|
-
* skip "downloading…" UX for returning users or clear storage on mobile.
|
|
7
|
-
*/
|
|
8
|
-
import { formatSize } from './device.js';
|
|
9
|
-
/** Supported model cache name prefixes */
|
|
10
|
-
const CACHE_PREFIXES = ['transformers-cache', 'webml-kit'];
|
|
11
|
-
function isModelCache(name) {
|
|
12
|
-
return CACHE_PREFIXES.some(prefix => name.startsWith(prefix));
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Detect which cache backend is available.
|
|
16
|
-
* Priority: Cache API → OPFS → IndexedDB
|
|
17
|
-
*/
|
|
18
|
-
export async function getCacheBackend() {
|
|
19
|
-
if (typeof caches !== 'undefined') {
|
|
20
|
-
return 'cache-api';
|
|
21
|
-
}
|
|
22
|
-
if (typeof navigator !== 'undefined' && 'storage' in navigator) {
|
|
23
|
-
try {
|
|
24
|
-
const root = await navigator.storage.getDirectory();
|
|
25
|
-
if (root)
|
|
26
|
-
return 'opfs';
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
// OPFS not available
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (typeof indexedDB !== 'undefined') {
|
|
33
|
-
return 'indexeddb';
|
|
34
|
-
}
|
|
35
|
-
return 'cache-api'; // fallback, will fail gracefully
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Check if a specific model is already cached locally.
|
|
39
|
-
*
|
|
40
|
-
* ```ts
|
|
41
|
-
* if (await isCached('onnx-community/Bonsai-1.7B-ONNX')) {
|
|
42
|
-
* // Skip "downloading..." UI
|
|
43
|
-
* }
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export async function isCached(modelId) {
|
|
47
|
-
if (typeof caches === 'undefined')
|
|
48
|
-
return false;
|
|
49
|
-
try {
|
|
50
|
-
const keys = await caches.keys();
|
|
51
|
-
const matchedCaches = keys.filter(k => isModelCache(k));
|
|
52
|
-
for (const cacheName of matchedCaches) {
|
|
53
|
-
const cache = await caches.open(cacheName);
|
|
54
|
-
const cacheKeys = await cache.keys();
|
|
55
|
-
const hasModel = cacheKeys.some(req => req.url.includes(encodeURIComponent(modelId)) || req.url.includes(modelId));
|
|
56
|
-
if (hasModel)
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
// Cache API not available or permission denied
|
|
62
|
-
}
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Get total cache size in bytes used by downloaded models.
|
|
67
|
-
*/
|
|
68
|
-
export async function getCacheSize() {
|
|
69
|
-
if (typeof navigator === 'undefined' || !('storage' in navigator))
|
|
70
|
-
return 0;
|
|
71
|
-
try {
|
|
72
|
-
const estimate = await navigator.storage.estimate();
|
|
73
|
-
return estimate.usage ?? 0;
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
return 0;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* List all cached models with metadata.
|
|
81
|
-
*/
|
|
82
|
-
export async function listCachedModels() {
|
|
83
|
-
if (typeof caches === 'undefined')
|
|
84
|
-
return [];
|
|
85
|
-
const models = [];
|
|
86
|
-
try {
|
|
87
|
-
const keys = await caches.keys();
|
|
88
|
-
const matchedCaches = keys.filter(k => isModelCache(k));
|
|
89
|
-
for (const cacheName of matchedCaches) {
|
|
90
|
-
const cache = await caches.open(cacheName);
|
|
91
|
-
const cacheKeys = await cache.keys();
|
|
92
|
-
// Group by model ID (extract from URL pattern)
|
|
93
|
-
const modelUrls = new Map();
|
|
94
|
-
for (const request of cacheKeys) {
|
|
95
|
-
const url = request.url;
|
|
96
|
-
// HF URLs: https://huggingface.co/{org}/{model}/resolve/{rev}/{file}
|
|
97
|
-
const match = url.match(/huggingface\.co\/([^/]+\/[^/]+)\//);
|
|
98
|
-
const id = match ? match[1] : (url.split('/').filter(Boolean).slice(-2).join('/') || url);
|
|
99
|
-
const response = await cache.match(request);
|
|
100
|
-
const size = response
|
|
101
|
-
? Number(response.headers.get('content-length') ?? 0)
|
|
102
|
-
: 0;
|
|
103
|
-
modelUrls.set(id, (modelUrls.get(id) ?? 0) + size);
|
|
104
|
-
}
|
|
105
|
-
for (const [modelId, sizeBytes] of modelUrls) {
|
|
106
|
-
models.push({
|
|
107
|
-
modelId,
|
|
108
|
-
sizeBytes,
|
|
109
|
-
size: formatSize(sizeBytes),
|
|
110
|
-
lastAccessed: new Date(), // Cache API doesn't track this
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
// Cache API not available
|
|
117
|
-
}
|
|
118
|
-
return models;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Clear cached model files.
|
|
122
|
-
*
|
|
123
|
-
* @param modelId - Specific model to clear, or omit to clear all.
|
|
124
|
-
*
|
|
125
|
-
* ```ts
|
|
126
|
-
* // Clear a specific model
|
|
127
|
-
* await clearCache('onnx-community/Bonsai-1.7B-ONNX');
|
|
128
|
-
*
|
|
129
|
-
* // Clear all cached models
|
|
130
|
-
* await clearCache();
|
|
131
|
-
* ```
|
|
132
|
-
*/
|
|
133
|
-
export async function clearCache(modelId) {
|
|
134
|
-
if (typeof caches === 'undefined')
|
|
135
|
-
return;
|
|
136
|
-
try {
|
|
137
|
-
const keys = await caches.keys();
|
|
138
|
-
const matchedCaches = keys.filter(k => isModelCache(k));
|
|
139
|
-
for (const cacheName of matchedCaches) {
|
|
140
|
-
if (!modelId) {
|
|
141
|
-
// Clear entire cache
|
|
142
|
-
await caches.delete(cacheName);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
// Clear specific model
|
|
146
|
-
const cache = await caches.open(cacheName);
|
|
147
|
-
const cacheKeys = await cache.keys();
|
|
148
|
-
for (const request of cacheKeys) {
|
|
149
|
-
if (request.url.includes(encodeURIComponent(modelId)) ||
|
|
150
|
-
request.url.includes(modelId)) {
|
|
151
|
-
await cache.delete(request);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
// Cache API not available
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=cache.js.map
|
package/dist/cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/decision.d.ts
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Jev System One / OpenJev Decision Engine for webml-kit.
|
|
3
|
-
*
|
|
4
|
-
* Provides direct logit readout choice evaluation, direct binary evaluation (noul),
|
|
5
|
-
* and continuous scoring evaluation over structured application state.
|
|
6
|
-
*
|
|
7
|
-
* Supports OpenJev models (minicpm5-2b, qwen3-0.6b, qwen3.5-4b) using @wllama/wllama
|
|
8
|
-
* in browser/worker environments with WebGPU/WASM, and a high-performance,
|
|
9
|
-
* calibrated zero-dependency heuristic fallback for Node.js, test, or offline environments.
|
|
10
|
-
*
|
|
11
|
-
* @packageDocumentation
|
|
12
|
-
*/
|
|
13
|
-
export type OpenJevModelPreset = 'minicpm5-2b' | 'qwen3-0.6b' | 'qwen3.5-4b' | (string & {});
|
|
14
|
-
export interface OpenJevModelInfo {
|
|
15
|
-
id: string;
|
|
16
|
-
name: string;
|
|
17
|
-
url: string;
|
|
18
|
-
family: 'minicpm' | 'qwen' | string;
|
|
19
|
-
sizeMB: number;
|
|
20
|
-
}
|
|
21
|
-
export declare const OPENJEV_MODELS: Record<string, OpenJevModelInfo>;
|
|
22
|
-
export interface DecisionProgressEvent {
|
|
23
|
-
status: 'downloading' | 'loading' | 'compiling' | 'ready';
|
|
24
|
-
loaded: number;
|
|
25
|
-
total: number;
|
|
26
|
-
percent: number;
|
|
27
|
-
detail?: string;
|
|
28
|
-
}
|
|
29
|
-
export type DecisionProgressCallback = (event: DecisionProgressEvent) => void;
|
|
30
|
-
export interface DecisionEngineOptions {
|
|
31
|
-
/** Model preset or custom model ID (default: 'qwen3-0.6b') */
|
|
32
|
-
model?: OpenJevModelPreset;
|
|
33
|
-
/** Custom direct URL to GGUF model file */
|
|
34
|
-
modelUrl?: string;
|
|
35
|
-
/** Execution mode: 'auto' (try wllama, fallback to heuristic), 'wllama', or 'heuristic' */
|
|
36
|
-
mode?: 'auto' | 'wllama' | 'heuristic';
|
|
37
|
-
/** Path config for @wllama/wllama assets */
|
|
38
|
-
wasmPaths?: {
|
|
39
|
-
default?: string;
|
|
40
|
-
'single-thread/wllama.wasm'?: string;
|
|
41
|
-
'multi-thread/wllama.wasm'?: string;
|
|
42
|
-
};
|
|
43
|
-
/** Callback for model download and initialization progress */
|
|
44
|
-
onProgress?: DecisionProgressCallback;
|
|
45
|
-
/** Default threshold for noul evaluation (default: 0.5) */
|
|
46
|
-
noulThreshold?: number;
|
|
47
|
-
}
|
|
48
|
-
export interface ChoiceInput {
|
|
49
|
-
/** Application state context (object, string, array, etc.) */
|
|
50
|
-
state: unknown;
|
|
51
|
-
/** Question or instruction to evaluate */
|
|
52
|
-
question?: string;
|
|
53
|
-
/** Alternative alias for question */
|
|
54
|
-
instructions?: string;
|
|
55
|
-
/** Options to evaluate: array of labels or key-description criteria object */
|
|
56
|
-
options: string[] | Record<string, string>;
|
|
57
|
-
}
|
|
58
|
-
export interface ChoiceResult {
|
|
59
|
-
/** Selected winning option */
|
|
60
|
-
choice: string;
|
|
61
|
-
/** Confidence score between 0.0 and 1.0 */
|
|
62
|
-
confidence: number;
|
|
63
|
-
/** Probability distribution across options (sums to ~1.0) */
|
|
64
|
-
probabilities: Record<string, number>;
|
|
65
|
-
/** Execution time in milliseconds */
|
|
66
|
-
latencyMs: number;
|
|
67
|
-
}
|
|
68
|
-
export interface NoulInput {
|
|
69
|
-
/** Application state context */
|
|
70
|
-
state: unknown;
|
|
71
|
-
/** Condition or statement to evaluate */
|
|
72
|
-
statement?: string;
|
|
73
|
-
/** Alternative alias for statement */
|
|
74
|
-
instructions?: string;
|
|
75
|
-
/** Pass threshold (default: 0.5) */
|
|
76
|
-
threshold?: number;
|
|
77
|
-
}
|
|
78
|
-
export interface NoulResult {
|
|
79
|
-
/** Probability (0.0 to 1.0) that the condition holds true */
|
|
80
|
-
noul: number;
|
|
81
|
-
/** Whether noul >= threshold */
|
|
82
|
-
passed: boolean;
|
|
83
|
-
/** Execution time in milliseconds */
|
|
84
|
-
latencyMs: number;
|
|
85
|
-
}
|
|
86
|
-
export interface ScoreInput {
|
|
87
|
-
/** Application state context */
|
|
88
|
-
state: unknown;
|
|
89
|
-
/** Evaluation instructions */
|
|
90
|
-
instructions?: string;
|
|
91
|
-
/** Alternative alias for instructions */
|
|
92
|
-
question?: string;
|
|
93
|
-
/** Ordered evaluation levels: array of level names or level map */
|
|
94
|
-
criteria: string[] | Record<string, string> | Record<number, string>;
|
|
95
|
-
}
|
|
96
|
-
export interface ScoreResult {
|
|
97
|
-
/** Probability-weighted continuous score along levels */
|
|
98
|
-
score: number;
|
|
99
|
-
/** Confidence score between 0.0 and 1.0 */
|
|
100
|
-
confidence: number;
|
|
101
|
-
/** Probability distribution across criteria levels */
|
|
102
|
-
probabilities: Record<string, number>;
|
|
103
|
-
/** Execution time in milliseconds */
|
|
104
|
-
latencyMs: number;
|
|
105
|
-
}
|
|
106
|
-
export interface DecisionEngine {
|
|
107
|
-
readonly model: string;
|
|
108
|
-
readonly isHeuristic: boolean;
|
|
109
|
-
readonly isLoaded: boolean;
|
|
110
|
-
init(): Promise<void>;
|
|
111
|
-
choice(input: ChoiceInput): Promise<ChoiceResult>;
|
|
112
|
-
directChoice(input: ChoiceInput): Promise<ChoiceResult>;
|
|
113
|
-
noul(input: NoulInput): Promise<NoulResult>;
|
|
114
|
-
score(input: ScoreInput): Promise<ScoreResult>;
|
|
115
|
-
dispose(): Promise<void> | void;
|
|
116
|
-
}
|
|
117
|
-
interface NormalizedOption {
|
|
118
|
-
key: string;
|
|
119
|
-
description: string;
|
|
120
|
-
}
|
|
121
|
-
export declare function normalizeOptions(rawOptions: string[] | Record<string, string>): NormalizedOption[];
|
|
122
|
-
interface NormalizedLevel {
|
|
123
|
-
index: number;
|
|
124
|
-
key: string;
|
|
125
|
-
description: string;
|
|
126
|
-
}
|
|
127
|
-
export declare function normalizeCriteria(rawCriteria: string[] | Record<string, string> | Record<number, string>): NormalizedLevel[];
|
|
128
|
-
export declare function validateModelOptions(options: DecisionEngineOptions): {
|
|
129
|
-
modelId: string;
|
|
130
|
-
modelUrl: string;
|
|
131
|
-
mode: 'auto' | 'wllama' | 'heuristic';
|
|
132
|
-
};
|
|
133
|
-
export declare class HeuristicDecisionEngine implements DecisionEngine {
|
|
134
|
-
readonly model: string;
|
|
135
|
-
readonly isHeuristic: boolean;
|
|
136
|
-
private _isLoaded;
|
|
137
|
-
private options;
|
|
138
|
-
constructor(options?: DecisionEngineOptions);
|
|
139
|
-
get isLoaded(): boolean;
|
|
140
|
-
init(): Promise<void>;
|
|
141
|
-
choice(input: ChoiceInput): Promise<ChoiceResult>;
|
|
142
|
-
directChoice(input: ChoiceInput): Promise<ChoiceResult>;
|
|
143
|
-
noul(input: NoulInput): Promise<NoulResult>;
|
|
144
|
-
score(input: ScoreInput): Promise<ScoreResult>;
|
|
145
|
-
dispose(): void;
|
|
146
|
-
}
|
|
147
|
-
export declare class OpenJevWllamaEngine implements DecisionEngine {
|
|
148
|
-
readonly model: string;
|
|
149
|
-
readonly isHeuristic: boolean;
|
|
150
|
-
private _isLoaded;
|
|
151
|
-
private options;
|
|
152
|
-
private modelUrl;
|
|
153
|
-
private wllamaInstance;
|
|
154
|
-
constructor(options?: DecisionEngineOptions);
|
|
155
|
-
get isLoaded(): boolean;
|
|
156
|
-
init(): Promise<void>;
|
|
157
|
-
choice(input: ChoiceInput): Promise<ChoiceResult>;
|
|
158
|
-
directChoice(input: ChoiceInput): Promise<ChoiceResult>;
|
|
159
|
-
noul(input: NoulInput): Promise<NoulResult>;
|
|
160
|
-
score(input: ScoreInput): Promise<ScoreResult>;
|
|
161
|
-
dispose(): Promise<void>;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Creates a DecisionEngine configured for OpenJev System One decision evaluations.
|
|
165
|
-
*
|
|
166
|
-
* Automatically selects OpenJev via Wllama in browser/worker environments with WebGPU/WASM,
|
|
167
|
-
* and falls back to a calibrated zero-dependency heuristic engine in Node.js or test environments.
|
|
168
|
-
*
|
|
169
|
-
* @param options - Configuration options (model preset, mode, wasm paths, onProgress)
|
|
170
|
-
* @returns Configured DecisionEngine instance
|
|
171
|
-
*/
|
|
172
|
-
export declare function createDecisionEngine(options?: DecisionEngineOptions): DecisionEngine;
|
|
173
|
-
/**
|
|
174
|
-
* Executes a one-shot direct choice evaluation over application state with zero boilerplate.
|
|
175
|
-
*
|
|
176
|
-
* @param input - Evaluation state, question, and options (array or criteria record)
|
|
177
|
-
* @param options - Decision engine configuration options
|
|
178
|
-
* @returns ChoiceResult containing winning choice, confidence, and calibrated probabilities
|
|
179
|
-
*/
|
|
180
|
-
export declare function directChoice(input: ChoiceInput, options?: DecisionEngineOptions): Promise<ChoiceResult>;
|
|
181
|
-
export {};
|
|
182
|
-
//# sourceMappingURL=decision.d.ts.map
|
package/dist/decision.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"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"}
|