@ai-ecoverse/kev.js 0.1.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/dist/model.js ADDED
@@ -0,0 +1,179 @@
1
+ // Kev runtime over onnxruntime (web or node): the state runs once, every question runs as a continuation of the
2
+ // state's cache (Gated DeltaNet recurrent + conv states, KV of the full-attention layers), and the pointer head reads
3
+ // each question's <decide> and </opt> hidden states. Exact isolation: branches never see each other.
4
+ import { pyJsonDumps, toAnswers, toRecord, validate } from "./api.js";
5
+ import { encode } from "./encode.js";
6
+ const halfToFloat = (() => {
7
+ const f = new Float32Array(1), u = new Uint32Array(f.buffer);
8
+ return (h) => {
9
+ const s = (h & 0x8000) << 16, e = (h >> 10) & 0x1f, m = h & 0x3ff;
10
+ if (e === 0)
11
+ return (s ? -1 : 1) * m * 2 ** -24;
12
+ if (e === 31) {
13
+ u[0] = s | 0x7f800000 | (m << 13);
14
+ return f[0];
15
+ }
16
+ u[0] = s | ((e + 112) << 23) | (m << 13);
17
+ return f[0];
18
+ };
19
+ })();
20
+ function toFloat32(t) {
21
+ const d = t.data;
22
+ if (d instanceof Float32Array)
23
+ return d;
24
+ if (d instanceof Uint16Array) {
25
+ const out = new Float32Array(d.length);
26
+ for (let i = 0; i < d.length; i++)
27
+ out[i] = halfToFloat(d[i]);
28
+ return out;
29
+ }
30
+ return Float32Array.from(d); // Float16Array, where the runtime returns one
31
+ }
32
+ export class Kev {
33
+ manifest;
34
+ variant;
35
+ tokenizer;
36
+ ort;
37
+ session;
38
+ head;
39
+ opts;
40
+ cache = new Map();
41
+ queue = Promise.resolve();
42
+ v;
43
+ constructor(a) {
44
+ this.ort = a.ort;
45
+ this.session = a.session;
46
+ this.head = a.head;
47
+ this.tokenizer = a.tokenizer;
48
+ this.manifest = a.manifest;
49
+ this.variant = a.variant;
50
+ this.v = a.manifest.variants[a.variant];
51
+ if (!this.v)
52
+ throw new Error(`unknown variant ${a.variant}; have ${Object.keys(a.manifest.variants)}`);
53
+ this.opts = { temperature: 1, stateCacheSize: 4, maxState: 8192, maxBranch: 8192, ...a.options };
54
+ }
55
+ /** Session options that keep the state caches on the GPU between runs (WebGPU); harmless elsewhere. */
56
+ static sessionOptions(manifest, variant, gpu) {
57
+ const v = manifest.variants[variant];
58
+ return {
59
+ graphOptimizationLevel: "all",
60
+ ...(gpu ? { preferredOutputLocation: Object.fromEntries(v.outputs.map((o) => [o.name, o.name === "hidden_states" ? "cpu" : "gpu-buffer"])) } : {}),
61
+ };
62
+ }
63
+ encode(rec) {
64
+ return encode(this.tokenizer, rec, this.manifest.special, this.opts);
65
+ }
66
+ serial(fn) {
67
+ const run = this.queue.then(fn, fn);
68
+ this.queue = run.catch(() => undefined);
69
+ return run;
70
+ }
71
+ tensor(type, data, dims) {
72
+ return new this.ort.Tensor(type, BigInt64Array.from(data, BigInt), dims);
73
+ }
74
+ emptyPast() {
75
+ const past = new Map();
76
+ const f16 = this.v.io_dtype === "float16";
77
+ for (const i of this.v.inputs) {
78
+ if (!i.empty)
79
+ continue;
80
+ const n = i.empty.reduce((a, b) => a * b, 1);
81
+ past.set(i.name, new this.ort.Tensor(i.type, f16 ? new Uint16Array(n) : new Float32Array(n), i.empty));
82
+ }
83
+ return past;
84
+ }
85
+ feeds(ids, pos, past, pastLen) {
86
+ const S = ids.length;
87
+ return {
88
+ input_ids: this.tensor("int64", ids, [1, S]),
89
+ attention_mask: this.tensor("int64", new Array(pastLen + S).fill(1), [1, pastLen + S]),
90
+ position_ids: this.tensor("int64", [...pos, ...pos, ...pos], [3, 1, S]), // text positions: all three mRoPE sections equal
91
+ ...Object.fromEntries(past),
92
+ };
93
+ }
94
+ async runState(ids, pos) {
95
+ const empty = this.emptyPast();
96
+ const presentNames = this.v.outputs.map((o) => o.name).filter((n) => n.startsWith("present"));
97
+ const out = await this.session.run(this.feeds(ids, pos, empty, 0), presentNames);
98
+ const past = new Map();
99
+ for (const n of presentNames)
100
+ past.set(n.endsWith(".key") || n.endsWith(".value") ? n.replace("present.", "past_key_values.") : n.replace("present.", "past."), out[n]);
101
+ return { len: ids.length, past };
102
+ }
103
+ disposeState(s) {
104
+ for (const t of s.past.values())
105
+ t.dispose?.();
106
+ }
107
+ /** Per-question probabilities for an encoded request. onQuestion fires as each question finishes. */
108
+ probsEncoded(enc, onQuestion) {
109
+ return this.serial(async () => {
110
+ const key = enc.state.join(",");
111
+ let st = this.cache.get(key);
112
+ if (st)
113
+ this.cache.delete(key);
114
+ else
115
+ st = await this.runState(enc.state, enc.state.map((_, i) => i));
116
+ const d = this.manifest.hidden_size;
117
+ const probs = [];
118
+ try {
119
+ for (const [i, b] of enc.branches.entries()) {
120
+ const out = await this.session.run(this.feeds(b.ids, b.pos, st.past, st.len), ["hidden_states"]);
121
+ const h = toFloat32(out.hidden_states);
122
+ const row = (i) => h.subarray(i * d, (i + 1) * d);
123
+ const p = this.head.probs(row(b.decide), b.opts.map(row), this.opts.temperature);
124
+ probs.push(p);
125
+ onQuestion?.(i, p);
126
+ }
127
+ }
128
+ finally {
129
+ if (this.opts.stateCacheSize > 0) {
130
+ this.cache.set(key, st);
131
+ while (this.cache.size > this.opts.stateCacheSize) {
132
+ const [k, old] = this.cache.entries().next().value;
133
+ this.cache.delete(k);
134
+ this.disposeState(old);
135
+ }
136
+ }
137
+ else
138
+ this.disposeState(st);
139
+ }
140
+ return probs;
141
+ });
142
+ }
143
+ async probs(rec) {
144
+ return this.probsEncoded(this.encode(rec));
145
+ }
146
+ /** POST /v1/systemone. onAnswer fires per question, so a caller can show answers as they land. */
147
+ async systemOne(input, opts = {}) {
148
+ const req = validate(input);
149
+ const { record, meta } = toRecord(req);
150
+ const enc = this.encode(record);
151
+ const t0 = performance.now();
152
+ const probs = await this.probsEncoded(enc, opts.onAnswer && ((i, p) => {
153
+ const m = meta[i];
154
+ opts.onAnswer(m.id, toAnswers([p], [m])[m.id], i);
155
+ }));
156
+ const latency = performance.now() - t0;
157
+ const answers = toAnswers(probs, meta);
158
+ const outputTokens = this.tokenizer.encode(pyJsonDumps(answers), { add_special_tokens: false }).ids.length;
159
+ return { model: req.model ?? "kev-latest", answers, usage: { input_tokens: enc.tokens, output_tokens: outputTokens }, latency_ms: Math.round(latency * 10) / 10 };
160
+ }
161
+ /** POST /v1/systemone/separate: each question in its own request against the same state. */
162
+ async systemOneSeparate(input) {
163
+ const req = validate(input);
164
+ const merged = { model: req.model ?? "kev-latest", answers: {}, usage: { input_tokens: 0, output_tokens: 0 }, latency_ms: 0 };
165
+ for (const [id, q] of Object.entries(req.questions)) {
166
+ const r = await this.systemOne({ ...req, questions: { [id]: q } });
167
+ Object.assign(merged.answers, r.answers);
168
+ merged.usage.input_tokens += r.usage.input_tokens;
169
+ merged.latency_ms += r.latency_ms;
170
+ }
171
+ merged.usage.output_tokens = this.tokenizer.encode(pyJsonDumps(merged.answers), { add_special_tokens: false }).ids.length;
172
+ merged.latency_ms = Math.round(merged.latency_ms * 10) / 10;
173
+ return merged;
174
+ }
175
+ clearCache() { for (const s of this.cache.values())
176
+ this.disposeState(s); this.cache.clear(); }
177
+ async release() { this.clearCache(); await this.session.release(); }
178
+ }
179
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@ai-ecoverse/kev.js",
3
+ "version": "0.1.0",
4
+ "description": "Kev decision models in the browser: WebGPU/WASM via onnxruntime-web, TypeSafe System One API",
5
+ "keywords": ["kev", "jev", "typesafe", "system-one", "decision-model", "onnxruntime", "webgpu", "qwen3.5", "classification", "calibration"],
6
+ "license": "Apache-2.0",
7
+ "repository": { "type": "git", "url": "git+https://github.com/ai-ecoverse/kev.js.git" },
8
+ "homepage": "https://ai-ecoverse.github.io/kev.js/",
9
+ "type": "module",
10
+ "sideEffects": false,
11
+ "main": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" }
15
+ },
16
+ "files": ["dist", "README.md", "LICENSE"],
17
+ "scripts": {
18
+ "build:lib": "tsc -p tsconfig.lib.json",
19
+ "prepack": "npm run build:lib",
20
+ "dev": "vite demo",
21
+ "build:demo": "vite build demo",
22
+ "typecheck": "tsc --noEmit -p .",
23
+ "test": "node --import tsx --test test/*.test.ts"
24
+ },
25
+ "dependencies": {
26
+ "@huggingface/tokenizers": "^0.2.0"
27
+ },
28
+ "peerDependencies": {
29
+ "onnxruntime-common": ">=1.30.0"
30
+ },
31
+ "devDependencies": {
32
+ "@types/node": "^26.0.0",
33
+ "onnxruntime-node": "^1.30.0",
34
+ "onnxruntime-web": "^1.30.0",
35
+ "tsx": "^4.20.0",
36
+ "typescript": "^7.0.0",
37
+ "vite": "^8.0.0"
38
+ },
39
+ "publishConfig": { "access": "public", "provenance": true },
40
+ "engines": { "node": ">=20.9" }
41
+ }