@holoscript/holo-runtime 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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":["pathToFileURL","resolve","join","homedir","isAbsolute"],"mappings":"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","file":"index.cjs","sourcesContent":["import { homedir } from 'node:os';\nimport { isAbsolute, join, resolve } from 'node:path';\nimport { pathToFileURL } from 'node:url';\n\nexport const HOLO_RUNTIME_SCHEMA = 'holoscript.holo-runtime.m1';\nexport const HOLO_RUNNER_TOKENIZER_MODULE = 'scripts/holorunner-tokenizer-v0.mjs';\nexport const HOLO_RUNTIME_MODEL_FLEET_NODE_KIND = {\n kind: 'holo-runtime-m1-cpu-decoder',\n package: '@holoscript/holo-runtime',\n backend: 'pure-ts-cpu',\n checkpointFamily: 'holorunner-s0-state-dict',\n tokenizer: 'holorunner-tokenizer-v0.mjs direct import',\n role: 'sovereign decoder seed under @model_fleet',\n} as const;\n\nconst SPECIAL_COUNT = 6;\nconst BYTE_BASE = SPECIAL_COUNT;\nconst MERGE_BASE = BYTE_BASE + 256;\nconst DEFAULT_EPSILON = 1e-5;\n\nexport interface HoloRunnerS0ConfigInput {\n vocab_size?: number;\n vocabSize?: number;\n n_layer?: number;\n nLayer?: number;\n n_head?: number;\n nHead?: number;\n n_embd?: number;\n nEmbd?: number;\n block_size?: number;\n blockSize?: number;\n dropout?: number;\n}\n\nexport interface HoloRunnerS0Config {\n vocabSize: number;\n nLayer: number;\n nHead: number;\n nEmbd: number;\n blockSize: number;\n dropout: number;\n}\n\nexport interface TensorRecord {\n data: TensorInputData;\n shape?: readonly number[];\n dtype?: string;\n}\n\nexport type TensorInputData =\n | Float32Array\n | readonly number[]\n | readonly (readonly number[])[]\n | readonly (readonly (readonly number[])[])[];\nexport type TensorInput = TensorInputData | TensorRecord;\n\nexport interface Tensor {\n data: Float32Array;\n shape: number[];\n}\n\nexport interface HoloRunnerS0StateDictInput {\n config: HoloRunnerS0ConfigInput;\n state?: Record<string, TensorInput>;\n model?: Record<string, TensorInput>;\n tokenizer?: {\n merges?: HoloRunnerMerge[];\n modulePath?: string;\n };\n}\n\nexport interface HoloRunnerS0BlockWeights {\n ln1Weight: Tensor;\n ln1Bias: Tensor;\n attnInProjWeight: Tensor;\n attnInProjBias: Tensor;\n attnOutProjWeight: Tensor;\n attnOutProjBias: Tensor;\n ln2Weight: Tensor;\n ln2Bias: Tensor;\n mlp0Weight: Tensor;\n mlp0Bias: Tensor;\n mlp2Weight: Tensor;\n mlp2Bias: Tensor;\n}\n\nexport interface HoloRunnerS0Weights {\n tokWeight: Tensor;\n posWeight: Tensor;\n lnfWeight: Tensor;\n lnfBias: Tensor;\n headWeight: Tensor;\n blocks: HoloRunnerS0BlockWeights[];\n}\n\nexport interface LoadedHoloRunnerS0 {\n schema: typeof HOLO_RUNTIME_SCHEMA;\n config: HoloRunnerS0Config;\n weights: HoloRunnerS0Weights;\n sourceKeys: string[];\n tokenizer?: {\n merges?: HoloRunnerMerge[];\n modulePath?: string;\n };\n}\n\nexport interface HoloRuntimeForwardResult {\n logits: Float32Array;\n shape: [tokens: number, vocab: number];\n}\n\nexport interface HoloRunnerEncodedToken {\n symbol: string;\n byteLength?: number;\n start?: number;\n end?: number;\n}\n\nexport type HoloRunnerMerge = readonly [string, string, string];\n\nexport interface HoloRunnerTokenizerModule {\n encode: (text: string, merges: readonly HoloRunnerMerge[]) => HoloRunnerEncodedToken[];\n decode: (tokens: readonly HoloRunnerEncodedToken[]) => string;\n}\n\nexport interface HoloRunnerTokenizerBridge extends HoloRunnerTokenizerModule {\n modulePath: string;\n encodeTextToIds: (text: string, merges: readonly HoloRunnerMerge[]) => number[];\n decodeIdsToText: (ids: readonly number[], merges: readonly HoloRunnerMerge[]) => string;\n}\n\nexport interface SampleOptions {\n temperature?: number;\n topK?: number;\n rng?: () => number;\n}\n\nexport interface SampleResult {\n tokenId: number;\n probability: number;\n candidates: Array<{ tokenId: number; probability: number; logit: number }>;\n}\n\nexport interface GenerateOptions extends SampleOptions {\n maxNewTokens: number;\n stopTokenIds?: readonly number[];\n}\n\nexport class HoloRuntimeKvCache {\n readonly layers: Array<{ keys: Float32Array; values: Float32Array; length: number }>;\n\n constructor(\n readonly nLayer: number,\n readonly blockSize: number,\n readonly nEmbd: number\n ) {\n this.layers = Array.from({ length: nLayer }, () => ({\n keys: new Float32Array(blockSize * nEmbd),\n values: new Float32Array(blockSize * nEmbd),\n length: 0,\n }));\n }\n\n reset(): void {\n for (const layer of this.layers) {\n layer.keys.fill(0);\n layer.values.fill(0);\n layer.length = 0;\n }\n }\n\n append(layerIndex: number, key: Float32Array, value: Float32Array): number {\n const layer = this.layers[layerIndex];\n if (!layer) throw new Error(`KV cache layer ${layerIndex} is out of range`);\n if (key.length !== this.nEmbd || value.length !== this.nEmbd) {\n throw new Error(`KV cache vectors must have ${this.nEmbd} elements`);\n }\n if (layer.length >= this.blockSize) {\n throw new Error(`KV cache exceeded block size ${this.blockSize}`);\n }\n const offset = layer.length * this.nEmbd;\n layer.keys.set(key, offset);\n layer.values.set(value, offset);\n layer.length += 1;\n return layer.length - 1;\n }\n\n key(layerIndex: number, tokenIndex: number): Float32Array {\n return this.slice('keys', layerIndex, tokenIndex);\n }\n\n value(layerIndex: number, tokenIndex: number): Float32Array {\n return this.slice('values', layerIndex, tokenIndex);\n }\n\n private slice(which: 'keys' | 'values', layerIndex: number, tokenIndex: number): Float32Array {\n const layer = this.layers[layerIndex];\n if (!layer) throw new Error(`KV cache layer ${layerIndex} is out of range`);\n if (tokenIndex < 0 || tokenIndex >= layer.length) {\n throw new Error(`KV cache token ${tokenIndex} is out of range for layer ${layerIndex}`);\n }\n const offset = tokenIndex * this.nEmbd;\n return layer[which].slice(offset, offset + this.nEmbd);\n }\n}\n\nexport class HoloRuntimeDecoder {\n readonly config: HoloRunnerS0Config;\n readonly weights: HoloRunnerS0Weights;\n\n constructor(readonly loaded: LoadedHoloRunnerS0) {\n this.config = loaded.config;\n this.weights = loaded.weights;\n }\n\n createKvCache(): HoloRuntimeKvCache {\n return new HoloRuntimeKvCache(this.config.nLayer, this.config.blockSize, this.config.nEmbd);\n }\n\n forward(inputIds: readonly number[]): HoloRuntimeForwardResult {\n const { config, weights } = this;\n assertTokenWindow(inputIds, config);\n const tokens = inputIds.length;\n let x = new Float32Array(tokens * config.nEmbd);\n for (let tokenIndex = 0; tokenIndex < tokens; tokenIndex += 1) {\n const tokenId = inputIds[tokenIndex] ?? 0;\n const token = embeddingRow(weights.tokWeight, tokenId, config.nEmbd);\n const pos = embeddingRow(weights.posWeight, tokenIndex, config.nEmbd);\n for (let column = 0; column < config.nEmbd; column += 1) {\n x[tokenIndex * config.nEmbd + column] = token[column] + pos[column];\n }\n }\n\n for (const block of weights.blocks) {\n const h1 = layerNormSequence(x, tokens, config.nEmbd, block.ln1Weight, block.ln1Bias);\n const attn = causalSelfAttentionSequence(h1, tokens, config, block);\n addInPlace(x, attn);\n const h2 = layerNormSequence(x, tokens, config.nEmbd, block.ln2Weight, block.ln2Bias);\n const mlpHidden = linearSequence(h2, tokens, config.nEmbd, block.mlp0Weight, block.mlp0Bias);\n for (let index = 0; index < mlpHidden.length; index += 1) {\n mlpHidden[index] = geluErf(mlpHidden[index] ?? 0);\n }\n const mlpOut = linearSequence(mlpHidden, tokens, config.nEmbd * 4, block.mlp2Weight, block.mlp2Bias);\n addInPlace(x, mlpOut);\n }\n\n const normalized = layerNormSequence(x, tokens, config.nEmbd, weights.lnfWeight, weights.lnfBias);\n const logits = linearSequence(normalized, tokens, config.nEmbd, weights.headWeight);\n return { logits, shape: [tokens, config.vocabSize] };\n }\n\n logitsForLastToken(inputIds: readonly number[]): Float32Array {\n const result = this.forward(inputIds);\n const [, vocab] = result.shape;\n return result.logits.slice(result.logits.length - vocab);\n }\n\n decodeToken(tokenId: number, cache: HoloRuntimeKvCache, position = cache.layers[0]?.length ?? 0): Float32Array {\n const { config, weights } = this;\n assertTokenId(tokenId, config.vocabSize);\n if (position < 0 || position >= config.blockSize) {\n throw new Error(`position ${position} is outside block size ${config.blockSize}`);\n }\n let x = addVectors(\n embeddingRow(weights.tokWeight, tokenId, config.nEmbd),\n embeddingRow(weights.posWeight, position, config.nEmbd)\n );\n\n for (let layerIndex = 0; layerIndex < weights.blocks.length; layerIndex += 1) {\n const block = weights.blocks[layerIndex]!;\n const h1 = layerNormVector(x, block.ln1Weight, block.ln1Bias);\n const qkv = linearVector(h1, block.attnInProjWeight, block.attnInProjBias);\n const query = qkv.slice(0, config.nEmbd);\n const key = qkv.slice(config.nEmbd, config.nEmbd * 2);\n const value = qkv.slice(config.nEmbd * 2, config.nEmbd * 3);\n cache.append(layerIndex, key, value);\n const attn = cachedSelfAttention(query, cache, layerIndex, config);\n const projected = linearVector(attn, block.attnOutProjWeight, block.attnOutProjBias);\n x = addVectors(x, projected);\n const h2 = layerNormVector(x, block.ln2Weight, block.ln2Bias);\n const hidden = linearVector(h2, block.mlp0Weight, block.mlp0Bias);\n for (let index = 0; index < hidden.length; index += 1) {\n hidden[index] = geluErf(hidden[index] ?? 0);\n }\n x = addVectors(x, linearVector(hidden, block.mlp2Weight, block.mlp2Bias));\n }\n\n return linearVector(layerNormVector(x, weights.lnfWeight, weights.lnfBias), weights.headWeight);\n }\n\n prefill(inputIds: readonly number[], cache = this.createKvCache()): { logits: Float32Array; cache: HoloRuntimeKvCache } {\n assertTokenWindow(inputIds, this.config);\n let logits = this.decodeToken(inputIds[0] ?? 0, cache, 0);\n for (let index = 1; index < inputIds.length; index += 1) {\n logits = this.decodeToken(inputIds[index] ?? 0, cache, index);\n }\n return { logits, cache };\n }\n\n generate(inputIds: readonly number[], options: GenerateOptions): number[] {\n const ids = [...inputIds];\n const cache = this.createKvCache();\n let logits = this.prefill(ids, cache).logits;\n const stopTokenIds = new Set(options.stopTokenIds ?? []);\n for (let step = 0; step < options.maxNewTokens; step += 1) {\n const sample = sampleFromLogits(logits, options);\n ids.push(sample.tokenId);\n if (stopTokenIds.has(sample.tokenId)) break;\n logits = this.decodeToken(sample.tokenId, cache);\n }\n return ids;\n }\n}\n\nexport function loadHoloRunnerS0StateDict(input: HoloRunnerS0StateDictInput): LoadedHoloRunnerS0 {\n const config = normalizeConfig(input.config);\n const state = input.state ?? input.model;\n if (!state) throw new Error('HoloRunner S0 checkpoint requires state or model tensor map');\n const weights = loadWeights(config, state);\n return {\n schema: HOLO_RUNTIME_SCHEMA,\n config,\n weights,\n sourceKeys: Object.keys(state).sort(),\n tokenizer: input.tokenizer,\n };\n}\n\nexport function loadHoloRunnerS0Checkpoint(raw: unknown): LoadedHoloRunnerS0 {\n if (!isRecord(raw)) throw new Error('checkpoint must be an object');\n const configValue = raw.config;\n if (!isRecord(configValue)) throw new Error('checkpoint.config must be an object');\n const vocabSize = numberField(raw, 'vocab_size') ?? numberField(configValue, 'vocab_size');\n const config = normalizeConfig({ ...configValue, vocab_size: vocabSize });\n const model = raw.model;\n const state = raw.state;\n if (!isTensorMap(model) && !isTensorMap(state)) {\n throw new Error('checkpoint requires model or state tensor map');\n }\n return loadHoloRunnerS0StateDict({ config, state: isTensorMap(state) ? state : undefined, model: isTensorMap(model) ? model : undefined });\n}\n\nexport async function loadHoloRunnerTokenizer(options: { modulePath?: string } = {}): Promise<HoloRunnerTokenizerBridge> {\n const modulePath = resolveTokenizerModulePath(options.modulePath);\n const moduleRecord = (await import(pathToFileURL(modulePath).href)) as Record<string, unknown>;\n const encode = moduleRecord.encode;\n const decode = moduleRecord.decode;\n if (typeof encode !== 'function' || typeof decode !== 'function') {\n throw new Error(`Tokenizer module ${modulePath} must export encode and decode functions`);\n }\n const tokenizerModule: HoloRunnerTokenizerModule = {\n encode: encode as HoloRunnerTokenizerModule['encode'],\n decode: decode as HoloRunnerTokenizerModule['decode'],\n };\n return {\n modulePath,\n encode: tokenizerModule.encode,\n decode: tokenizerModule.decode,\n encodeTextToIds(text, merges) {\n return tokenIdsFromEncodedTokens(tokenizerModule.encode(text, merges), merges);\n },\n decodeIdsToText(ids, merges) {\n return tokenizerModule.decode(encodedTokensFromTokenIds(ids, merges));\n },\n };\n}\n\nexport function resolveTokenizerModulePath(modulePath?: string): string {\n if (modulePath) return resolve(modulePath);\n const ecosystemRoot = process.env.HOLOAI_ECOSYSTEM_ROOT\n ? resolve(process.env.HOLOAI_ECOSYSTEM_ROOT)\n : join(homedir(), '.ai-ecosystem');\n const candidate = join(ecosystemRoot, HOLO_RUNNER_TOKENIZER_MODULE);\n return isAbsolute(candidate) ? candidate : resolve(candidate);\n}\n\nexport function tokenIdsFromEncodedTokens(\n tokens: readonly HoloRunnerEncodedToken[],\n merges: readonly HoloRunnerMerge[]\n): number[] {\n const mergeIds = new Map<string, number>(merges.map((merge, index) => [merge[2], index]));\n return tokens.map((token) => {\n const mergeId = mergeIds.get(token.symbol);\n if (mergeId !== undefined) return MERGE_BASE + mergeId;\n const byte = Number(token.symbol);\n if (Number.isInteger(byte) && byte >= 0 && byte <= 255) return BYTE_BASE + byte;\n throw new Error(`Cannot map tokenizer symbol ${token.symbol} to an S0 token id`);\n });\n}\n\nexport function encodedTokensFromTokenIds(\n ids: readonly number[],\n merges: readonly HoloRunnerMerge[]\n): HoloRunnerEncodedToken[] {\n const tokens: HoloRunnerEncodedToken[] = [];\n for (const id of ids) {\n if (id < SPECIAL_COUNT) continue;\n if (id >= BYTE_BASE && id < MERGE_BASE) {\n tokens.push({ symbol: String(id - BYTE_BASE) });\n } else if (id >= MERGE_BASE) {\n const merge = merges[id - MERGE_BASE];\n if (!merge) throw new Error(`merge token id ${id} has no merge entry`);\n tokens.push({ symbol: merge[2] });\n } else {\n throw new Error(`token id ${id} is not decodable by HoloTokenizer-v0`);\n }\n }\n return tokens;\n}\n\nexport function sampleFromLogits(logits: Float32Array, options: SampleOptions = {}): SampleResult {\n const temperature = options.temperature ?? 1;\n const topK = options.topK ?? 0;\n const rng = options.rng ?? Math.random;\n if (logits.length === 0) throw new Error('Cannot sample from empty logits');\n if (temperature <= 0) {\n let tokenId = 0;\n for (let index = 1; index < logits.length; index += 1) {\n if ((logits[index] ?? -Infinity) > (logits[tokenId] ?? -Infinity)) tokenId = index;\n }\n return { tokenId, probability: 1, candidates: [{ tokenId, probability: 1, logit: logits[tokenId] ?? 0 }] };\n }\n const sorted = Array.from(logits, (logit, tokenId) => ({ tokenId, logit: logit / temperature })).sort(\n (left, right) => right.logit - left.logit\n );\n const candidates = topK > 0 ? sorted.slice(0, Math.max(1, topK)) : sorted;\n const probabilities = softmaxArray(candidates.map((candidate) => candidate.logit));\n let cursor = Math.min(Math.max(rng(), 0), 0.999999999);\n for (let index = 0; index < candidates.length; index += 1) {\n cursor -= probabilities[index] ?? 0;\n if (cursor <= 0 || index === candidates.length - 1) {\n const candidate = candidates[index]!;\n return {\n tokenId: candidate.tokenId,\n probability: probabilities[index] ?? 0,\n candidates: candidates.map((item, candidateIndex) => ({\n tokenId: item.tokenId,\n logit: item.logit,\n probability: probabilities[candidateIndex] ?? 0,\n })),\n };\n }\n }\n throw new Error('sampling failed to select a token');\n}\n\nexport function createSeededRng(seed: number): () => number {\n let state = seed >>> 0;\n return () => {\n state = (state + 0x6d2b79f5) >>> 0;\n let value = state;\n value = Math.imul(value ^ (value >>> 15), value | 1);\n value ^= value + Math.imul(value ^ (value >>> 7), value | 61);\n return ((value ^ (value >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nexport function matmul(\n left: Float32Array,\n leftRows: number,\n leftCols: number,\n right: Float32Array,\n rightCols: number\n): Float32Array {\n if (left.length !== leftRows * leftCols) throw new Error('left matrix shape does not match data length');\n if (right.length !== leftCols * rightCols) throw new Error('right matrix shape does not match data length');\n const out = new Float32Array(leftRows * rightCols);\n for (let row = 0; row < leftRows; row += 1) {\n for (let column = 0; column < rightCols; column += 1) {\n let sum = 0;\n for (let inner = 0; inner < leftCols; inner += 1) {\n sum += (left[row * leftCols + inner] ?? 0) * (right[inner * rightCols + column] ?? 0);\n }\n out[row * rightCols + column] = sum;\n }\n }\n return out;\n}\n\nexport function geluErf(x: number): number {\n return 0.5 * x * (1 + erf(x / Math.SQRT2));\n}\n\nexport function geluTanhApprox(x: number): number {\n return 0.5 * x * (1 + Math.tanh(Math.sqrt(2 / Math.PI) * (x + 0.044715 * x * x * x)));\n}\n\nexport function softmaxArray(values: readonly number[]): number[] {\n if (values.length === 0) return [];\n const max = Math.max(...values);\n const exps = values.map((value) => Math.exp(value - max));\n const sum = exps.reduce((total, value) => total + value, 0);\n return sum === 0 ? values.map(() => 0) : exps.map((value) => value / sum);\n}\n\nexport function layerNormVector(\n input: Float32Array,\n weight: Tensor,\n bias: Tensor,\n epsilon = DEFAULT_EPSILON\n): Float32Array {\n const width = input.length;\n if (weight.data.length !== width || bias.data.length !== width) {\n throw new Error(`layerNorm width ${width} does not match weight/bias`);\n }\n let mean = 0;\n for (const value of input) mean += value;\n mean /= width;\n let variance = 0;\n for (const value of input) {\n const delta = value - mean;\n variance += delta * delta;\n }\n variance /= width;\n const scale = 1 / Math.sqrt(variance + epsilon);\n const out = new Float32Array(width);\n for (let index = 0; index < width; index += 1) {\n out[index] = ((input[index] ?? 0) - mean) * scale * (weight.data[index] ?? 0) + (bias.data[index] ?? 0);\n }\n return out;\n}\n\nfunction normalizeConfig(input: HoloRunnerS0ConfigInput): HoloRunnerS0Config {\n const vocabSize = input.vocabSize ?? input.vocab_size;\n const nLayer = input.nLayer ?? input.n_layer;\n const nHead = input.nHead ?? input.n_head;\n const nEmbd = input.nEmbd ?? input.n_embd;\n const blockSize = input.blockSize ?? input.block_size;\n const config = { vocabSize, nLayer, nHead, nEmbd, blockSize };\n for (const [key, value] of Object.entries(config)) {\n if (!Number.isInteger(value) || Number(value) <= 0) {\n throw new Error(`HoloRunner S0 config field ${key} must be a positive integer`);\n }\n }\n if (nEmbd! % nHead! !== 0) {\n throw new Error(`n_embd ${nEmbd} must be divisible by n_head ${nHead}`);\n }\n return {\n vocabSize: vocabSize!,\n nLayer: nLayer!,\n nHead: nHead!,\n nEmbd: nEmbd!,\n blockSize: blockSize!,\n dropout: input.dropout ?? 0,\n };\n}\n\nfunction loadWeights(\n config: HoloRunnerS0Config,\n state: Record<string, TensorInput>\n): HoloRunnerS0Weights {\n const blocks: HoloRunnerS0BlockWeights[] = [];\n const headWeight = optionalTensor(state, 'head.weight', [config.vocabSize, config.nEmbd]);\n const tokWeight = stateTensor(state, 'tok.weight', [config.vocabSize, config.nEmbd]);\n for (let layer = 0; layer < config.nLayer; layer += 1) {\n const prefix = `blocks.${layer}`;\n blocks.push({\n ln1Weight: stateTensor(state, `${prefix}.ln1.weight`, [config.nEmbd]),\n ln1Bias: stateTensor(state, `${prefix}.ln1.bias`, [config.nEmbd]),\n attnInProjWeight: stateTensor(state, `${prefix}.attn.in_proj_weight`, [3 * config.nEmbd, config.nEmbd]),\n attnInProjBias: stateTensor(state, `${prefix}.attn.in_proj_bias`, [3 * config.nEmbd]),\n attnOutProjWeight: stateTensor(state, `${prefix}.attn.out_proj.weight`, [config.nEmbd, config.nEmbd]),\n attnOutProjBias: stateTensor(state, `${prefix}.attn.out_proj.bias`, [config.nEmbd]),\n ln2Weight: stateTensor(state, `${prefix}.ln2.weight`, [config.nEmbd]),\n ln2Bias: stateTensor(state, `${prefix}.ln2.bias`, [config.nEmbd]),\n mlp0Weight: stateTensor(state, `${prefix}.mlp.0.weight`, [4 * config.nEmbd, config.nEmbd]),\n mlp0Bias: stateTensor(state, `${prefix}.mlp.0.bias`, [4 * config.nEmbd]),\n mlp2Weight: stateTensor(state, `${prefix}.mlp.2.weight`, [config.nEmbd, 4 * config.nEmbd]),\n mlp2Bias: stateTensor(state, `${prefix}.mlp.2.bias`, [config.nEmbd]),\n });\n }\n return {\n tokWeight,\n posWeight: stateTensor(state, 'pos.weight', [config.blockSize, config.nEmbd]),\n lnfWeight: stateTensor(state, 'lnf.weight', [config.nEmbd]),\n lnfBias: stateTensor(state, 'lnf.bias', [config.nEmbd]),\n headWeight: headWeight ?? tokWeight,\n blocks,\n };\n}\n\nfunction stateTensor(\n state: Record<string, TensorInput>,\n key: string,\n expectedShape: readonly number[]\n): Tensor {\n const input = state[key];\n if (input === undefined) throw new Error(`S0 state_dict is missing ${key}`);\n return tensorFrom(input, key, expectedShape);\n}\n\nfunction optionalTensor(\n state: Record<string, TensorInput>,\n key: string,\n expectedShape: readonly number[]\n): Tensor | undefined {\n const input = state[key];\n return input === undefined ? undefined : tensorFrom(input, key, expectedShape);\n}\n\nfunction tensorFrom(input: TensorInput, name: string, expectedShape: readonly number[]): Tensor {\n const payload = isTensorRecord(input) ? input.data : input;\n const explicitShape = isTensorRecord(input) ? input.shape : undefined;\n const shape = explicitShape ? [...explicitShape] : inferShape(payload);\n const data = flattenTensorData(payload);\n const expectedSize = expectedShape.reduce((total, value) => total * value, 1);\n if (data.length !== expectedSize) {\n throw new Error(`${name} expected ${expectedSize} values for shape [${expectedShape.join(', ')}], got ${data.length}`);\n }\n if (shape.join('x') !== expectedShape.join('x')) {\n throw new Error(`${name} expected shape [${expectedShape.join(', ')}], got [${shape.join(', ')}]`);\n }\n return { data, shape: [...expectedShape] };\n}\n\nfunction flattenTensorData(input: TensorInputData): Float32Array {\n if (input instanceof Float32Array) return new Float32Array(input);\n const out: number[] = [];\n flattenNumbers(input, out);\n return Float32Array.from(out);\n}\n\nfunction flattenNumbers(input: unknown, out: number[]): void {\n if (typeof input === 'number') {\n out.push(input);\n return;\n }\n if (Array.isArray(input)) {\n for (const item of input) flattenNumbers(item, out);\n return;\n }\n throw new Error('tensor data must contain only numbers or nested number arrays');\n}\n\nfunction inferShape(input: TensorInputData): number[] {\n if (input instanceof Float32Array) return [input.length];\n if (!Array.isArray(input)) return [];\n if (input.length === 0) return [0];\n const firstShape = inferShape(input[0] as TensorInputData);\n for (const item of input.slice(1)) {\n const itemShape = inferShape(item as TensorInputData);\n if (itemShape.join('x') !== firstShape.join('x')) throw new Error('ragged tensor arrays are not supported');\n }\n return [input.length, ...firstShape];\n}\n\nfunction embeddingRow(tensor: Tensor, rowIndex: number, width: number): Float32Array {\n if (rowIndex < 0 || rowIndex >= tensor.shape[0]!) {\n throw new Error(`embedding row ${rowIndex} is out of range`);\n }\n const offset = rowIndex * width;\n return tensor.data.slice(offset, offset + width);\n}\n\nfunction assertTokenWindow(inputIds: readonly number[], config: HoloRunnerS0Config): void {\n if (inputIds.length === 0) throw new Error('inputIds must contain at least one token');\n if (inputIds.length > config.blockSize) {\n throw new Error(`input length ${inputIds.length} exceeds block size ${config.blockSize}`);\n }\n for (const id of inputIds) assertTokenId(id, config.vocabSize);\n}\n\nfunction assertTokenId(id: number, vocabSize: number): void {\n if (!Number.isInteger(id) || id < 0 || id >= vocabSize) {\n throw new Error(`token id ${id} is outside vocab size ${vocabSize}`);\n }\n}\n\nfunction layerNormSequence(\n input: Float32Array,\n rows: number,\n width: number,\n weight: Tensor,\n bias: Tensor\n): Float32Array {\n const out = new Float32Array(input.length);\n for (let row = 0; row < rows; row += 1) {\n out.set(layerNormVector(input.slice(row * width, row * width + width), weight, bias), row * width);\n }\n return out;\n}\n\nfunction linearSequence(\n input: Float32Array,\n rows: number,\n inputWidth: number,\n weight: Tensor,\n bias?: Tensor\n): Float32Array {\n const outputWidth = weight.shape[0]!;\n const out = new Float32Array(rows * outputWidth);\n for (let row = 0; row < rows; row += 1) {\n const vector = linearVector(input.slice(row * inputWidth, row * inputWidth + inputWidth), weight, bias);\n out.set(vector, row * outputWidth);\n }\n return out;\n}\n\nfunction linearVector(input: Float32Array, weight: Tensor, bias?: Tensor): Float32Array {\n const outputWidth = weight.shape[0]!;\n const inputWidth = weight.shape[1]!;\n if (input.length !== inputWidth) {\n throw new Error(`linear input width ${input.length} does not match weight width ${inputWidth}`);\n }\n const out = new Float32Array(outputWidth);\n for (let row = 0; row < outputWidth; row += 1) {\n let sum = bias ? bias.data[row] ?? 0 : 0;\n for (let column = 0; column < inputWidth; column += 1) {\n sum += (weight.data[row * inputWidth + column] ?? 0) * (input[column] ?? 0);\n }\n out[row] = sum;\n }\n return out;\n}\n\nfunction causalSelfAttentionSequence(\n input: Float32Array,\n tokens: number,\n config: HoloRunnerS0Config,\n block: HoloRunnerS0BlockWeights\n): Float32Array {\n const qkv = linearSequence(input, tokens, config.nEmbd, block.attnInProjWeight, block.attnInProjBias);\n const context = new Float32Array(tokens * config.nEmbd);\n const headDim = config.nEmbd / config.nHead;\n const scale = 1 / Math.sqrt(headDim);\n for (let token = 0; token < tokens; token += 1) {\n for (let head = 0; head < config.nHead; head += 1) {\n const scores: number[] = [];\n for (let source = 0; source <= token; source += 1) {\n let dot = 0;\n for (let dim = 0; dim < headDim; dim += 1) {\n const q = qkv[token * 3 * config.nEmbd + head * headDim + dim] ?? 0;\n const k = qkv[source * 3 * config.nEmbd + config.nEmbd + head * headDim + dim] ?? 0;\n dot += q * k;\n }\n scores.push(dot * scale);\n }\n const probs = softmaxArray(scores);\n for (let dim = 0; dim < headDim; dim += 1) {\n let value = 0;\n for (let source = 0; source <= token; source += 1) {\n const v = qkv[source * 3 * config.nEmbd + 2 * config.nEmbd + head * headDim + dim] ?? 0;\n value += (probs[source] ?? 0) * v;\n }\n context[token * config.nEmbd + head * headDim + dim] = value;\n }\n }\n }\n return linearSequence(context, tokens, config.nEmbd, block.attnOutProjWeight, block.attnOutProjBias);\n}\n\nfunction cachedSelfAttention(\n query: Float32Array,\n cache: HoloRuntimeKvCache,\n layerIndex: number,\n config: HoloRunnerS0Config\n): Float32Array {\n const layer = cache.layers[layerIndex]!;\n const headDim = config.nEmbd / config.nHead;\n const scale = 1 / Math.sqrt(headDim);\n const out = new Float32Array(config.nEmbd);\n for (let head = 0; head < config.nHead; head += 1) {\n const scores: number[] = [];\n for (let source = 0; source < layer.length; source += 1) {\n let dot = 0;\n const keyOffset = source * config.nEmbd + head * headDim;\n for (let dim = 0; dim < headDim; dim += 1) {\n dot += (query[head * headDim + dim] ?? 0) * (layer.keys[keyOffset + dim] ?? 0);\n }\n scores.push(dot * scale);\n }\n const probs = softmaxArray(scores);\n for (let dim = 0; dim < headDim; dim += 1) {\n let value = 0;\n for (let source = 0; source < layer.length; source += 1) {\n value += (probs[source] ?? 0) * (layer.values[source * config.nEmbd + head * headDim + dim] ?? 0);\n }\n out[head * headDim + dim] = value;\n }\n }\n return out;\n}\n\nfunction addInPlace(left: Float32Array, right: Float32Array): void {\n if (left.length !== right.length) throw new Error('addInPlace length mismatch');\n for (let index = 0; index < left.length; index += 1) {\n left[index] = (left[index] ?? 0) + (right[index] ?? 0);\n }\n}\n\nfunction addVectors(left: Float32Array, right: Float32Array): Float32Array {\n if (left.length !== right.length) throw new Error('addVectors length mismatch');\n const out = new Float32Array(left.length);\n for (let index = 0; index < left.length; index += 1) {\n out[index] = (left[index] ?? 0) + (right[index] ?? 0);\n }\n return out;\n}\n\nfunction erf(x: number): number {\n const sign = x < 0 ? -1 : 1;\n const ax = Math.abs(x);\n const t = 1 / (1 + 0.3275911 * ax);\n const y =\n 1 -\n (((((1.061405429 * t - 1.453152027) * t + 1.421413741) * t - 0.284496736) * t +\n 0.254829592) *\n t *\n Math.exp(-ax * ax));\n return sign * y;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isTensorRecord(value: unknown): value is TensorRecord {\n return isRecord(value) && 'data' in value;\n}\n\nfunction isTensorMap(value: unknown): value is Record<string, TensorInput> {\n return isRecord(value);\n}\n\nfunction numberField(record: Record<string, unknown>, key: string): number | undefined {\n const value = record[key];\n return typeof value === 'number' ? value : undefined;\n}\n"]}
@@ -0,0 +1,169 @@
1
+ declare const HOLO_RUNTIME_SCHEMA = "holoscript.holo-runtime.m1";
2
+ declare const HOLO_RUNNER_TOKENIZER_MODULE = "scripts/holorunner-tokenizer-v0.mjs";
3
+ declare const HOLO_RUNTIME_MODEL_FLEET_NODE_KIND: {
4
+ readonly kind: "holo-runtime-m1-cpu-decoder";
5
+ readonly package: "@holoscript/holo-runtime";
6
+ readonly backend: "pure-ts-cpu";
7
+ readonly checkpointFamily: "holorunner-s0-state-dict";
8
+ readonly tokenizer: "holorunner-tokenizer-v0.mjs direct import";
9
+ readonly role: "sovereign decoder seed under @model_fleet";
10
+ };
11
+ interface HoloRunnerS0ConfigInput {
12
+ vocab_size?: number;
13
+ vocabSize?: number;
14
+ n_layer?: number;
15
+ nLayer?: number;
16
+ n_head?: number;
17
+ nHead?: number;
18
+ n_embd?: number;
19
+ nEmbd?: number;
20
+ block_size?: number;
21
+ blockSize?: number;
22
+ dropout?: number;
23
+ }
24
+ interface HoloRunnerS0Config {
25
+ vocabSize: number;
26
+ nLayer: number;
27
+ nHead: number;
28
+ nEmbd: number;
29
+ blockSize: number;
30
+ dropout: number;
31
+ }
32
+ interface TensorRecord {
33
+ data: TensorInputData;
34
+ shape?: readonly number[];
35
+ dtype?: string;
36
+ }
37
+ type TensorInputData = Float32Array | readonly number[] | readonly (readonly number[])[] | readonly (readonly (readonly number[])[])[];
38
+ type TensorInput = TensorInputData | TensorRecord;
39
+ interface Tensor {
40
+ data: Float32Array;
41
+ shape: number[];
42
+ }
43
+ interface HoloRunnerS0StateDictInput {
44
+ config: HoloRunnerS0ConfigInput;
45
+ state?: Record<string, TensorInput>;
46
+ model?: Record<string, TensorInput>;
47
+ tokenizer?: {
48
+ merges?: HoloRunnerMerge[];
49
+ modulePath?: string;
50
+ };
51
+ }
52
+ interface HoloRunnerS0BlockWeights {
53
+ ln1Weight: Tensor;
54
+ ln1Bias: Tensor;
55
+ attnInProjWeight: Tensor;
56
+ attnInProjBias: Tensor;
57
+ attnOutProjWeight: Tensor;
58
+ attnOutProjBias: Tensor;
59
+ ln2Weight: Tensor;
60
+ ln2Bias: Tensor;
61
+ mlp0Weight: Tensor;
62
+ mlp0Bias: Tensor;
63
+ mlp2Weight: Tensor;
64
+ mlp2Bias: Tensor;
65
+ }
66
+ interface HoloRunnerS0Weights {
67
+ tokWeight: Tensor;
68
+ posWeight: Tensor;
69
+ lnfWeight: Tensor;
70
+ lnfBias: Tensor;
71
+ headWeight: Tensor;
72
+ blocks: HoloRunnerS0BlockWeights[];
73
+ }
74
+ interface LoadedHoloRunnerS0 {
75
+ schema: typeof HOLO_RUNTIME_SCHEMA;
76
+ config: HoloRunnerS0Config;
77
+ weights: HoloRunnerS0Weights;
78
+ sourceKeys: string[];
79
+ tokenizer?: {
80
+ merges?: HoloRunnerMerge[];
81
+ modulePath?: string;
82
+ };
83
+ }
84
+ interface HoloRuntimeForwardResult {
85
+ logits: Float32Array;
86
+ shape: [tokens: number, vocab: number];
87
+ }
88
+ interface HoloRunnerEncodedToken {
89
+ symbol: string;
90
+ byteLength?: number;
91
+ start?: number;
92
+ end?: number;
93
+ }
94
+ type HoloRunnerMerge = readonly [string, string, string];
95
+ interface HoloRunnerTokenizerModule {
96
+ encode: (text: string, merges: readonly HoloRunnerMerge[]) => HoloRunnerEncodedToken[];
97
+ decode: (tokens: readonly HoloRunnerEncodedToken[]) => string;
98
+ }
99
+ interface HoloRunnerTokenizerBridge extends HoloRunnerTokenizerModule {
100
+ modulePath: string;
101
+ encodeTextToIds: (text: string, merges: readonly HoloRunnerMerge[]) => number[];
102
+ decodeIdsToText: (ids: readonly number[], merges: readonly HoloRunnerMerge[]) => string;
103
+ }
104
+ interface SampleOptions {
105
+ temperature?: number;
106
+ topK?: number;
107
+ rng?: () => number;
108
+ }
109
+ interface SampleResult {
110
+ tokenId: number;
111
+ probability: number;
112
+ candidates: Array<{
113
+ tokenId: number;
114
+ probability: number;
115
+ logit: number;
116
+ }>;
117
+ }
118
+ interface GenerateOptions extends SampleOptions {
119
+ maxNewTokens: number;
120
+ stopTokenIds?: readonly number[];
121
+ }
122
+ declare class HoloRuntimeKvCache {
123
+ readonly nLayer: number;
124
+ readonly blockSize: number;
125
+ readonly nEmbd: number;
126
+ readonly layers: Array<{
127
+ keys: Float32Array;
128
+ values: Float32Array;
129
+ length: number;
130
+ }>;
131
+ constructor(nLayer: number, blockSize: number, nEmbd: number);
132
+ reset(): void;
133
+ append(layerIndex: number, key: Float32Array, value: Float32Array): number;
134
+ key(layerIndex: number, tokenIndex: number): Float32Array;
135
+ value(layerIndex: number, tokenIndex: number): Float32Array;
136
+ private slice;
137
+ }
138
+ declare class HoloRuntimeDecoder {
139
+ readonly loaded: LoadedHoloRunnerS0;
140
+ readonly config: HoloRunnerS0Config;
141
+ readonly weights: HoloRunnerS0Weights;
142
+ constructor(loaded: LoadedHoloRunnerS0);
143
+ createKvCache(): HoloRuntimeKvCache;
144
+ forward(inputIds: readonly number[]): HoloRuntimeForwardResult;
145
+ logitsForLastToken(inputIds: readonly number[]): Float32Array;
146
+ decodeToken(tokenId: number, cache: HoloRuntimeKvCache, position?: number): Float32Array;
147
+ prefill(inputIds: readonly number[], cache?: HoloRuntimeKvCache): {
148
+ logits: Float32Array;
149
+ cache: HoloRuntimeKvCache;
150
+ };
151
+ generate(inputIds: readonly number[], options: GenerateOptions): number[];
152
+ }
153
+ declare function loadHoloRunnerS0StateDict(input: HoloRunnerS0StateDictInput): LoadedHoloRunnerS0;
154
+ declare function loadHoloRunnerS0Checkpoint(raw: unknown): LoadedHoloRunnerS0;
155
+ declare function loadHoloRunnerTokenizer(options?: {
156
+ modulePath?: string;
157
+ }): Promise<HoloRunnerTokenizerBridge>;
158
+ declare function resolveTokenizerModulePath(modulePath?: string): string;
159
+ declare function tokenIdsFromEncodedTokens(tokens: readonly HoloRunnerEncodedToken[], merges: readonly HoloRunnerMerge[]): number[];
160
+ declare function encodedTokensFromTokenIds(ids: readonly number[], merges: readonly HoloRunnerMerge[]): HoloRunnerEncodedToken[];
161
+ declare function sampleFromLogits(logits: Float32Array, options?: SampleOptions): SampleResult;
162
+ declare function createSeededRng(seed: number): () => number;
163
+ declare function matmul(left: Float32Array, leftRows: number, leftCols: number, right: Float32Array, rightCols: number): Float32Array;
164
+ declare function geluErf(x: number): number;
165
+ declare function geluTanhApprox(x: number): number;
166
+ declare function softmaxArray(values: readonly number[]): number[];
167
+ declare function layerNormVector(input: Float32Array, weight: Tensor, bias: Tensor, epsilon?: number): Float32Array;
168
+
169
+ export { type GenerateOptions, HOLO_RUNNER_TOKENIZER_MODULE, HOLO_RUNTIME_MODEL_FLEET_NODE_KIND, HOLO_RUNTIME_SCHEMA, type HoloRunnerEncodedToken, type HoloRunnerMerge, type HoloRunnerS0BlockWeights, type HoloRunnerS0Config, type HoloRunnerS0ConfigInput, type HoloRunnerS0StateDictInput, type HoloRunnerS0Weights, type HoloRunnerTokenizerBridge, type HoloRunnerTokenizerModule, HoloRuntimeDecoder, type HoloRuntimeForwardResult, HoloRuntimeKvCache, type LoadedHoloRunnerS0, type SampleOptions, type SampleResult, type Tensor, type TensorInput, type TensorInputData, type TensorRecord, createSeededRng, encodedTokensFromTokenIds, geluErf, geluTanhApprox, layerNormVector, loadHoloRunnerS0Checkpoint, loadHoloRunnerS0StateDict, loadHoloRunnerTokenizer, matmul, resolveTokenizerModulePath, sampleFromLogits, softmaxArray, tokenIdsFromEncodedTokens };
@@ -0,0 +1,169 @@
1
+ declare const HOLO_RUNTIME_SCHEMA = "holoscript.holo-runtime.m1";
2
+ declare const HOLO_RUNNER_TOKENIZER_MODULE = "scripts/holorunner-tokenizer-v0.mjs";
3
+ declare const HOLO_RUNTIME_MODEL_FLEET_NODE_KIND: {
4
+ readonly kind: "holo-runtime-m1-cpu-decoder";
5
+ readonly package: "@holoscript/holo-runtime";
6
+ readonly backend: "pure-ts-cpu";
7
+ readonly checkpointFamily: "holorunner-s0-state-dict";
8
+ readonly tokenizer: "holorunner-tokenizer-v0.mjs direct import";
9
+ readonly role: "sovereign decoder seed under @model_fleet";
10
+ };
11
+ interface HoloRunnerS0ConfigInput {
12
+ vocab_size?: number;
13
+ vocabSize?: number;
14
+ n_layer?: number;
15
+ nLayer?: number;
16
+ n_head?: number;
17
+ nHead?: number;
18
+ n_embd?: number;
19
+ nEmbd?: number;
20
+ block_size?: number;
21
+ blockSize?: number;
22
+ dropout?: number;
23
+ }
24
+ interface HoloRunnerS0Config {
25
+ vocabSize: number;
26
+ nLayer: number;
27
+ nHead: number;
28
+ nEmbd: number;
29
+ blockSize: number;
30
+ dropout: number;
31
+ }
32
+ interface TensorRecord {
33
+ data: TensorInputData;
34
+ shape?: readonly number[];
35
+ dtype?: string;
36
+ }
37
+ type TensorInputData = Float32Array | readonly number[] | readonly (readonly number[])[] | readonly (readonly (readonly number[])[])[];
38
+ type TensorInput = TensorInputData | TensorRecord;
39
+ interface Tensor {
40
+ data: Float32Array;
41
+ shape: number[];
42
+ }
43
+ interface HoloRunnerS0StateDictInput {
44
+ config: HoloRunnerS0ConfigInput;
45
+ state?: Record<string, TensorInput>;
46
+ model?: Record<string, TensorInput>;
47
+ tokenizer?: {
48
+ merges?: HoloRunnerMerge[];
49
+ modulePath?: string;
50
+ };
51
+ }
52
+ interface HoloRunnerS0BlockWeights {
53
+ ln1Weight: Tensor;
54
+ ln1Bias: Tensor;
55
+ attnInProjWeight: Tensor;
56
+ attnInProjBias: Tensor;
57
+ attnOutProjWeight: Tensor;
58
+ attnOutProjBias: Tensor;
59
+ ln2Weight: Tensor;
60
+ ln2Bias: Tensor;
61
+ mlp0Weight: Tensor;
62
+ mlp0Bias: Tensor;
63
+ mlp2Weight: Tensor;
64
+ mlp2Bias: Tensor;
65
+ }
66
+ interface HoloRunnerS0Weights {
67
+ tokWeight: Tensor;
68
+ posWeight: Tensor;
69
+ lnfWeight: Tensor;
70
+ lnfBias: Tensor;
71
+ headWeight: Tensor;
72
+ blocks: HoloRunnerS0BlockWeights[];
73
+ }
74
+ interface LoadedHoloRunnerS0 {
75
+ schema: typeof HOLO_RUNTIME_SCHEMA;
76
+ config: HoloRunnerS0Config;
77
+ weights: HoloRunnerS0Weights;
78
+ sourceKeys: string[];
79
+ tokenizer?: {
80
+ merges?: HoloRunnerMerge[];
81
+ modulePath?: string;
82
+ };
83
+ }
84
+ interface HoloRuntimeForwardResult {
85
+ logits: Float32Array;
86
+ shape: [tokens: number, vocab: number];
87
+ }
88
+ interface HoloRunnerEncodedToken {
89
+ symbol: string;
90
+ byteLength?: number;
91
+ start?: number;
92
+ end?: number;
93
+ }
94
+ type HoloRunnerMerge = readonly [string, string, string];
95
+ interface HoloRunnerTokenizerModule {
96
+ encode: (text: string, merges: readonly HoloRunnerMerge[]) => HoloRunnerEncodedToken[];
97
+ decode: (tokens: readonly HoloRunnerEncodedToken[]) => string;
98
+ }
99
+ interface HoloRunnerTokenizerBridge extends HoloRunnerTokenizerModule {
100
+ modulePath: string;
101
+ encodeTextToIds: (text: string, merges: readonly HoloRunnerMerge[]) => number[];
102
+ decodeIdsToText: (ids: readonly number[], merges: readonly HoloRunnerMerge[]) => string;
103
+ }
104
+ interface SampleOptions {
105
+ temperature?: number;
106
+ topK?: number;
107
+ rng?: () => number;
108
+ }
109
+ interface SampleResult {
110
+ tokenId: number;
111
+ probability: number;
112
+ candidates: Array<{
113
+ tokenId: number;
114
+ probability: number;
115
+ logit: number;
116
+ }>;
117
+ }
118
+ interface GenerateOptions extends SampleOptions {
119
+ maxNewTokens: number;
120
+ stopTokenIds?: readonly number[];
121
+ }
122
+ declare class HoloRuntimeKvCache {
123
+ readonly nLayer: number;
124
+ readonly blockSize: number;
125
+ readonly nEmbd: number;
126
+ readonly layers: Array<{
127
+ keys: Float32Array;
128
+ values: Float32Array;
129
+ length: number;
130
+ }>;
131
+ constructor(nLayer: number, blockSize: number, nEmbd: number);
132
+ reset(): void;
133
+ append(layerIndex: number, key: Float32Array, value: Float32Array): number;
134
+ key(layerIndex: number, tokenIndex: number): Float32Array;
135
+ value(layerIndex: number, tokenIndex: number): Float32Array;
136
+ private slice;
137
+ }
138
+ declare class HoloRuntimeDecoder {
139
+ readonly loaded: LoadedHoloRunnerS0;
140
+ readonly config: HoloRunnerS0Config;
141
+ readonly weights: HoloRunnerS0Weights;
142
+ constructor(loaded: LoadedHoloRunnerS0);
143
+ createKvCache(): HoloRuntimeKvCache;
144
+ forward(inputIds: readonly number[]): HoloRuntimeForwardResult;
145
+ logitsForLastToken(inputIds: readonly number[]): Float32Array;
146
+ decodeToken(tokenId: number, cache: HoloRuntimeKvCache, position?: number): Float32Array;
147
+ prefill(inputIds: readonly number[], cache?: HoloRuntimeKvCache): {
148
+ logits: Float32Array;
149
+ cache: HoloRuntimeKvCache;
150
+ };
151
+ generate(inputIds: readonly number[], options: GenerateOptions): number[];
152
+ }
153
+ declare function loadHoloRunnerS0StateDict(input: HoloRunnerS0StateDictInput): LoadedHoloRunnerS0;
154
+ declare function loadHoloRunnerS0Checkpoint(raw: unknown): LoadedHoloRunnerS0;
155
+ declare function loadHoloRunnerTokenizer(options?: {
156
+ modulePath?: string;
157
+ }): Promise<HoloRunnerTokenizerBridge>;
158
+ declare function resolveTokenizerModulePath(modulePath?: string): string;
159
+ declare function tokenIdsFromEncodedTokens(tokens: readonly HoloRunnerEncodedToken[], merges: readonly HoloRunnerMerge[]): number[];
160
+ declare function encodedTokensFromTokenIds(ids: readonly number[], merges: readonly HoloRunnerMerge[]): HoloRunnerEncodedToken[];
161
+ declare function sampleFromLogits(logits: Float32Array, options?: SampleOptions): SampleResult;
162
+ declare function createSeededRng(seed: number): () => number;
163
+ declare function matmul(left: Float32Array, leftRows: number, leftCols: number, right: Float32Array, rightCols: number): Float32Array;
164
+ declare function geluErf(x: number): number;
165
+ declare function geluTanhApprox(x: number): number;
166
+ declare function softmaxArray(values: readonly number[]): number[];
167
+ declare function layerNormVector(input: Float32Array, weight: Tensor, bias: Tensor, epsilon?: number): Float32Array;
168
+
169
+ export { type GenerateOptions, HOLO_RUNNER_TOKENIZER_MODULE, HOLO_RUNTIME_MODEL_FLEET_NODE_KIND, HOLO_RUNTIME_SCHEMA, type HoloRunnerEncodedToken, type HoloRunnerMerge, type HoloRunnerS0BlockWeights, type HoloRunnerS0Config, type HoloRunnerS0ConfigInput, type HoloRunnerS0StateDictInput, type HoloRunnerS0Weights, type HoloRunnerTokenizerBridge, type HoloRunnerTokenizerModule, HoloRuntimeDecoder, type HoloRuntimeForwardResult, HoloRuntimeKvCache, type LoadedHoloRunnerS0, type SampleOptions, type SampleResult, type Tensor, type TensorInput, type TensorInputData, type TensorRecord, createSeededRng, encodedTokensFromTokenIds, geluErf, geluTanhApprox, layerNormVector, loadHoloRunnerS0Checkpoint, loadHoloRunnerS0StateDict, loadHoloRunnerTokenizer, matmul, resolveTokenizerModulePath, sampleFromLogits, softmaxArray, tokenIdsFromEncodedTokens };