@runanywhere/web 0.1.0-beta.3 → 0.1.0-beta.5
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/Foundation/StructOffsets.d.ts +34 -5
- package/dist/Foundation/StructOffsets.d.ts.map +1 -1
- package/dist/Foundation/StructOffsets.js +128 -93
- package/dist/Foundation/StructOffsets.js.map +1 -1
- package/dist/Infrastructure/ExtensionPoint.d.ts +78 -0
- package/dist/Infrastructure/ExtensionPoint.d.ts.map +1 -0
- package/dist/Infrastructure/ExtensionPoint.js +118 -0
- package/dist/Infrastructure/ExtensionPoint.js.map +1 -0
- package/dist/Infrastructure/LocalFileStorage.d.ts +116 -0
- package/dist/Infrastructure/LocalFileStorage.d.ts.map +1 -0
- package/dist/Infrastructure/LocalFileStorage.js +368 -0
- package/dist/Infrastructure/LocalFileStorage.js.map +1 -0
- package/dist/Infrastructure/ModelDownloader.d.ts +16 -5
- package/dist/Infrastructure/ModelDownloader.d.ts.map +1 -1
- package/dist/Infrastructure/ModelDownloader.js +54 -7
- package/dist/Infrastructure/ModelDownloader.js.map +1 -1
- package/dist/Infrastructure/ModelFileInference.d.ts +39 -0
- package/dist/Infrastructure/ModelFileInference.d.ts.map +1 -0
- package/dist/Infrastructure/ModelFileInference.js +110 -0
- package/dist/Infrastructure/ModelFileInference.js.map +1 -0
- package/dist/Infrastructure/ModelLoaderTypes.d.ts +76 -11
- package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +1 -1
- package/dist/Infrastructure/ModelLoaderTypes.js +7 -1
- package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -1
- package/dist/Infrastructure/ModelManager.d.ts +30 -104
- package/dist/Infrastructure/ModelManager.d.ts.map +1 -1
- package/dist/Infrastructure/ModelManager.js +209 -544
- package/dist/Infrastructure/ModelManager.js.map +1 -1
- package/dist/Infrastructure/ModelRegistry.d.ts +6 -0
- package/dist/Infrastructure/ModelRegistry.d.ts.map +1 -1
- package/dist/Infrastructure/ModelRegistry.js +11 -0
- package/dist/Infrastructure/ModelRegistry.js.map +1 -1
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +3 -29
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -1
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +48 -44
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -1
- package/dist/Public/Extensions/VoicePipelineTypes.d.ts +28 -37
- package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -1
- package/dist/Public/Extensions/VoicePipelineTypes.js +4 -1
- package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -1
- package/dist/Public/RunAnywhere.d.ts +65 -61
- package/dist/Public/RunAnywhere.d.ts.map +1 -1
- package/dist/Public/RunAnywhere.js +193 -141
- package/dist/Public/RunAnywhere.js.map +1 -1
- package/dist/index.d.ts +23 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -31
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -5
- package/wasm/racommons.js +91 -91
- package/wasm/racommons.wasm +0 -0
- package/dist/Foundation/SherpaONNXBridge.d.ts +0 -147
- package/dist/Foundation/SherpaONNXBridge.d.ts.map +0 -1
- package/dist/Foundation/SherpaONNXBridge.js +0 -345
- package/dist/Foundation/SherpaONNXBridge.js.map +0 -1
- package/dist/Infrastructure/AudioCapture.d.ts +0 -87
- package/dist/Infrastructure/AudioCapture.d.ts.map +0 -1
- package/dist/Infrastructure/AudioCapture.js +0 -231
- package/dist/Infrastructure/AudioCapture.js.map +0 -1
- package/dist/Infrastructure/AudioPlayback.d.ts +0 -53
- package/dist/Infrastructure/AudioPlayback.d.ts.map +0 -1
- package/dist/Infrastructure/AudioPlayback.js +0 -117
- package/dist/Infrastructure/AudioPlayback.js.map +0 -1
- package/dist/Infrastructure/VLMWorkerBridge.d.ts +0 -211
- package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +0 -1
- package/dist/Infrastructure/VLMWorkerBridge.js +0 -264
- package/dist/Infrastructure/VLMWorkerBridge.js.map +0 -1
- package/dist/Infrastructure/VLMWorkerRuntime.d.ts +0 -38
- package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +0 -1
- package/dist/Infrastructure/VLMWorkerRuntime.js +0 -503
- package/dist/Infrastructure/VLMWorkerRuntime.js.map +0 -1
- package/dist/Infrastructure/VideoCapture.d.ts +0 -118
- package/dist/Infrastructure/VideoCapture.d.ts.map +0 -1
- package/dist/Infrastructure/VideoCapture.js +0 -207
- package/dist/Infrastructure/VideoCapture.js.map +0 -1
- package/dist/Public/Extensions/DiffusionTypes.d.ts +0 -64
- package/dist/Public/Extensions/DiffusionTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/DiffusionTypes.js +0 -28
- package/dist/Public/Extensions/DiffusionTypes.js.map +0 -1
- package/dist/Public/Extensions/EmbeddingsTypes.d.ts +0 -33
- package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/EmbeddingsTypes.js +0 -13
- package/dist/Public/Extensions/EmbeddingsTypes.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +0 -44
- package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Diffusion.js +0 -189
- package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +0 -56
- package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Embeddings.js +0 -240
- package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+STT.d.ts +0 -95
- package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+STT.js +0 -417
- package/dist/Public/Extensions/RunAnywhere+STT.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +0 -69
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +0 -196
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +0 -55
- package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TTS.js +0 -253
- package/dist/Public/Extensions/RunAnywhere+TTS.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +0 -80
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +0 -436
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +0 -82
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +0 -576
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +0 -70
- package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VAD.js +0 -231
- package/dist/Public/Extensions/RunAnywhere+VAD.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +0 -58
- package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VLM.js +0 -262
- package/dist/Public/Extensions/RunAnywhere+VLM.js.map +0 -1
- package/dist/Public/Extensions/STTTypes.d.ts +0 -53
- package/dist/Public/Extensions/STTTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/STTTypes.js +0 -16
- package/dist/Public/Extensions/STTTypes.js.map +0 -1
- package/dist/Public/Extensions/TTSTypes.d.ts +0 -31
- package/dist/Public/Extensions/TTSTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/TTSTypes.js +0 -3
- package/dist/Public/Extensions/TTSTypes.js.map +0 -1
- package/dist/Public/Extensions/ToolCallingTypes.d.ts +0 -78
- package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/ToolCallingTypes.js +0 -8
- package/dist/Public/Extensions/ToolCallingTypes.js.map +0 -1
- package/dist/Public/Extensions/VADTypes.d.ts +0 -30
- package/dist/Public/Extensions/VADTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/VADTypes.js +0 -8
- package/dist/Public/Extensions/VADTypes.js.map +0 -1
- package/dist/Public/Extensions/VLMTypes.d.ts +0 -56
- package/dist/Public/Extensions/VLMTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/VLMTypes.js +0 -24
- package/dist/Public/Extensions/VLMTypes.js.map +0 -1
- package/dist/types/LLMTypes.d.ts +0 -48
- package/dist/types/LLMTypes.d.ts.map +0 -1
- package/dist/types/LLMTypes.js +0 -8
- package/dist/types/LLMTypes.js.map +0 -1
- package/dist/workers/vlm-worker.d.ts +0 -9
- package/dist/workers/vlm-worker.d.ts.map +0 -1
- package/dist/workers/vlm-worker.js +0 -10
- package/dist/workers/vlm-worker.js.map +0 -1
- package/wasm/racommons-webgpu.js +0 -156
- package/wasm/racommons-webgpu.wasm +0 -0
- package/wasm/sherpa/sherpa-onnx-asr.js +0 -1538
- package/wasm/sherpa/sherpa-onnx-glue-original.js +0 -19
- package/wasm/sherpa/sherpa-onnx-glue.js +0 -17
- package/wasm/sherpa/sherpa-onnx-tts.js +0 -657
- package/wasm/sherpa/sherpa-onnx-vad.js +0 -337
- package/wasm/sherpa/sherpa-onnx-wave.js +0 -88
- package/wasm/sherpa/sherpa-onnx.wasm +0 -0
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RunAnywhere Web SDK - Embeddings Extension
|
|
3
|
-
*
|
|
4
|
-
* Adds text embedding generation capabilities via RACommons WASM.
|
|
5
|
-
* Uses the rac_embeddings_component_* C API for model lifecycle
|
|
6
|
-
* and embedding generation.
|
|
7
|
-
*
|
|
8
|
-
* Embeddings convert text into fixed-dimensional dense vectors
|
|
9
|
-
* useful for semantic search, clustering, and RAG.
|
|
10
|
-
*
|
|
11
|
-
* Backend: llama.cpp (GGUF embedding models like nomic-embed-text)
|
|
12
|
-
*
|
|
13
|
-
* Usage:
|
|
14
|
-
* import { Embeddings } from '@runanywhere/web';
|
|
15
|
-
*
|
|
16
|
-
* await Embeddings.loadModel('/models/nomic-embed-text-v1.5.Q4_K_M.gguf', 'nomic-embed');
|
|
17
|
-
* const result = await Embeddings.embed('Hello, world!');
|
|
18
|
-
* console.log('Dimension:', result.dimension);
|
|
19
|
-
* console.log('Vector:', result.embeddings[0].data);
|
|
20
|
-
*
|
|
21
|
-
* // Batch embedding
|
|
22
|
-
* const batch = await Embeddings.embedBatch(['text1', 'text2', 'text3']);
|
|
23
|
-
*/
|
|
24
|
-
import type { EmbeddingsResult, EmbeddingsOptions } from './EmbeddingsTypes';
|
|
25
|
-
export { EmbeddingsNormalize, EmbeddingsPooling, type EmbeddingVector, type EmbeddingsResult, type EmbeddingsOptions, } from './EmbeddingsTypes';
|
|
26
|
-
declare class EmbeddingsImpl {
|
|
27
|
-
readonly extensionName = "Embeddings";
|
|
28
|
-
private _embeddingsComponentHandle;
|
|
29
|
-
private requireBridge;
|
|
30
|
-
private ensureEmbeddingsComponent;
|
|
31
|
-
/**
|
|
32
|
-
* Load an embedding model (GGUF format).
|
|
33
|
-
*/
|
|
34
|
-
loadModel(modelPath: string, modelId: string, modelName?: string): Promise<void>;
|
|
35
|
-
/** Unload the embeddings model. */
|
|
36
|
-
unloadModel(): Promise<void>;
|
|
37
|
-
/** Check if an embeddings model is loaded. */
|
|
38
|
-
get isModelLoaded(): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Generate embedding for a single text.
|
|
41
|
-
*/
|
|
42
|
-
embed(text: string, options?: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
43
|
-
/**
|
|
44
|
-
* Generate embeddings for multiple texts at once.
|
|
45
|
-
*/
|
|
46
|
-
embedBatch(texts: string[], options?: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
47
|
-
/**
|
|
48
|
-
* Compute cosine similarity between two embedding vectors.
|
|
49
|
-
* Pure TypeScript utility -- no WASM call needed.
|
|
50
|
-
*/
|
|
51
|
-
cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
52
|
-
/** Clean up the embeddings component. */
|
|
53
|
-
cleanup(): void;
|
|
54
|
-
}
|
|
55
|
-
export declare const Embeddings: EmbeddingsImpl;
|
|
56
|
-
//# sourceMappingURL=RunAnywhere+Embeddings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RunAnywhere+Embeddings.d.ts","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+Embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AASH,OAAO,KAAK,EAEV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAQ3B,cAAM,cAAc;IAClB,QAAQ,CAAC,aAAa,gBAAgB;IACtC,OAAO,CAAC,0BAA0B,CAAK;IAEvC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,yBAAyB;IAmBjC;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BtF,mCAAmC;IAC7B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,8CAA8C;IAC9C,IAAI,aAAa,IAAI,OAAO,CAO3B;IAED;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwCrF;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiD7F;;;OAGG;IACH,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM;IAgB1D,yCAAyC;IACzC,OAAO,IAAI,IAAI;CAUhB;AAED,eAAO,MAAM,UAAU,gBAAuB,CAAC"}
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RunAnywhere Web SDK - Embeddings Extension
|
|
3
|
-
*
|
|
4
|
-
* Adds text embedding generation capabilities via RACommons WASM.
|
|
5
|
-
* Uses the rac_embeddings_component_* C API for model lifecycle
|
|
6
|
-
* and embedding generation.
|
|
7
|
-
*
|
|
8
|
-
* Embeddings convert text into fixed-dimensional dense vectors
|
|
9
|
-
* useful for semantic search, clustering, and RAG.
|
|
10
|
-
*
|
|
11
|
-
* Backend: llama.cpp (GGUF embedding models like nomic-embed-text)
|
|
12
|
-
*
|
|
13
|
-
* Usage:
|
|
14
|
-
* import { Embeddings } from '@runanywhere/web';
|
|
15
|
-
*
|
|
16
|
-
* await Embeddings.loadModel('/models/nomic-embed-text-v1.5.Q4_K_M.gguf', 'nomic-embed');
|
|
17
|
-
* const result = await Embeddings.embed('Hello, world!');
|
|
18
|
-
* console.log('Dimension:', result.dimension);
|
|
19
|
-
* console.log('Vector:', result.embeddings[0].data);
|
|
20
|
-
*
|
|
21
|
-
* // Batch embedding
|
|
22
|
-
* const batch = await Embeddings.embedBatch(['text1', 'text2', 'text3']);
|
|
23
|
-
*/
|
|
24
|
-
import { RunAnywhere } from '../RunAnywhere';
|
|
25
|
-
import { WASMBridge } from '../../Foundation/WASMBridge';
|
|
26
|
-
import { Offsets } from '../../Foundation/StructOffsets';
|
|
27
|
-
import { SDKError, SDKErrorCode } from '../../Foundation/ErrorTypes';
|
|
28
|
-
import { SDKLogger } from '../../Foundation/SDKLogger';
|
|
29
|
-
import { EventBus } from '../../Foundation/EventBus';
|
|
30
|
-
import { SDKEventType } from '../../types/enums';
|
|
31
|
-
export { EmbeddingsNormalize, EmbeddingsPooling, } from './EmbeddingsTypes';
|
|
32
|
-
const logger = new SDKLogger('Embeddings');
|
|
33
|
-
// ---------------------------------------------------------------------------
|
|
34
|
-
// Embeddings Extension
|
|
35
|
-
// ---------------------------------------------------------------------------
|
|
36
|
-
class EmbeddingsImpl {
|
|
37
|
-
extensionName = 'Embeddings';
|
|
38
|
-
_embeddingsComponentHandle = 0;
|
|
39
|
-
requireBridge() {
|
|
40
|
-
if (!RunAnywhere.isInitialized)
|
|
41
|
-
throw SDKError.notInitialized();
|
|
42
|
-
return WASMBridge.shared;
|
|
43
|
-
}
|
|
44
|
-
ensureEmbeddingsComponent() {
|
|
45
|
-
if (this._embeddingsComponentHandle !== 0)
|
|
46
|
-
return this._embeddingsComponentHandle;
|
|
47
|
-
const bridge = this.requireBridge();
|
|
48
|
-
const m = bridge.module;
|
|
49
|
-
const handlePtr = m._malloc(4);
|
|
50
|
-
const result = bridge.callFunction('rac_embeddings_component_create', 'number', ['number'], [handlePtr]);
|
|
51
|
-
if (result !== 0) {
|
|
52
|
-
m._free(handlePtr);
|
|
53
|
-
bridge.checkResult(result, 'rac_embeddings_component_create');
|
|
54
|
-
}
|
|
55
|
-
this._embeddingsComponentHandle = m.getValue(handlePtr, 'i32');
|
|
56
|
-
m._free(handlePtr);
|
|
57
|
-
logger.debug('Embeddings component created');
|
|
58
|
-
return this._embeddingsComponentHandle;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Load an embedding model (GGUF format).
|
|
62
|
-
*/
|
|
63
|
-
async loadModel(modelPath, modelId, modelName) {
|
|
64
|
-
const bridge = this.requireBridge();
|
|
65
|
-
const m = bridge.module;
|
|
66
|
-
const handle = this.ensureEmbeddingsComponent();
|
|
67
|
-
logger.info(`Loading embeddings model: ${modelId} from ${modelPath}`);
|
|
68
|
-
EventBus.shared.emit('model.loadStarted', SDKEventType.Model, { modelId, component: 'embeddings' });
|
|
69
|
-
const pathPtr = bridge.allocString(modelPath);
|
|
70
|
-
const idPtr = bridge.allocString(modelId);
|
|
71
|
-
const namePtr = bridge.allocString(modelName ?? modelId);
|
|
72
|
-
try {
|
|
73
|
-
const result = m.ccall('rac_embeddings_component_load_model', 'number', ['number', 'number', 'number', 'number'], [handle, pathPtr, idPtr, namePtr]);
|
|
74
|
-
bridge.checkResult(result, 'rac_embeddings_component_load_model');
|
|
75
|
-
logger.info(`Embeddings model loaded: ${modelId}`);
|
|
76
|
-
EventBus.shared.emit('model.loadCompleted', SDKEventType.Model, { modelId, component: 'embeddings' });
|
|
77
|
-
}
|
|
78
|
-
finally {
|
|
79
|
-
bridge.free(pathPtr);
|
|
80
|
-
bridge.free(idPtr);
|
|
81
|
-
bridge.free(namePtr);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/** Unload the embeddings model. */
|
|
85
|
-
async unloadModel() {
|
|
86
|
-
if (this._embeddingsComponentHandle === 0)
|
|
87
|
-
return;
|
|
88
|
-
const bridge = this.requireBridge();
|
|
89
|
-
const result = bridge.module.ccall('rac_embeddings_component_unload', 'number', ['number'], [this._embeddingsComponentHandle]);
|
|
90
|
-
bridge.checkResult(result, 'rac_embeddings_component_unload');
|
|
91
|
-
logger.info('Embeddings model unloaded');
|
|
92
|
-
}
|
|
93
|
-
/** Check if an embeddings model is loaded. */
|
|
94
|
-
get isModelLoaded() {
|
|
95
|
-
if (this._embeddingsComponentHandle === 0)
|
|
96
|
-
return false;
|
|
97
|
-
try {
|
|
98
|
-
return WASMBridge.shared.module.ccall('rac_embeddings_component_is_loaded', 'number', ['number'], [this._embeddingsComponentHandle]) === 1;
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Generate embedding for a single text.
|
|
106
|
-
*/
|
|
107
|
-
async embed(text, options = {}) {
|
|
108
|
-
const bridge = this.requireBridge();
|
|
109
|
-
const m = bridge.module;
|
|
110
|
-
const handle = this.ensureEmbeddingsComponent();
|
|
111
|
-
if (!this.isModelLoaded) {
|
|
112
|
-
throw new SDKError(SDKErrorCode.ModelNotLoaded, 'No embeddings model loaded. Call loadModel() first.');
|
|
113
|
-
}
|
|
114
|
-
logger.debug(`Embedding text (${text.length} chars)`);
|
|
115
|
-
const textPtr = bridge.allocString(text);
|
|
116
|
-
// Build rac_embeddings_options_t
|
|
117
|
-
const optSize = m._rac_wasm_sizeof_embeddings_options();
|
|
118
|
-
const optPtr = m._malloc(optSize);
|
|
119
|
-
const eOpt = Offsets.embeddingsOptions;
|
|
120
|
-
m.setValue(optPtr + eOpt.normalize, options.normalize !== undefined ? options.normalize : -1, 'i32');
|
|
121
|
-
m.setValue(optPtr + eOpt.pooling, options.pooling !== undefined ? options.pooling : -1, 'i32');
|
|
122
|
-
m.setValue(optPtr + eOpt.nThreads, 0, 'i32'); // n_threads = auto
|
|
123
|
-
// Result struct
|
|
124
|
-
const resSize = m._rac_wasm_sizeof_embeddings_result();
|
|
125
|
-
const resPtr = m._malloc(resSize);
|
|
126
|
-
try {
|
|
127
|
-
const r = m.ccall('rac_embeddings_component_embed', 'number', ['number', 'number', 'number', 'number'], [handle, textPtr, optPtr, resPtr]);
|
|
128
|
-
bridge.checkResult(r, 'rac_embeddings_component_embed');
|
|
129
|
-
return readEmbeddingsResult(bridge, m, resPtr);
|
|
130
|
-
}
|
|
131
|
-
finally {
|
|
132
|
-
bridge.free(textPtr);
|
|
133
|
-
m._free(optPtr);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Generate embeddings for multiple texts at once.
|
|
138
|
-
*/
|
|
139
|
-
async embedBatch(texts, options = {}) {
|
|
140
|
-
const bridge = this.requireBridge();
|
|
141
|
-
const m = bridge.module;
|
|
142
|
-
const handle = this.ensureEmbeddingsComponent();
|
|
143
|
-
if (!this.isModelLoaded) {
|
|
144
|
-
throw new SDKError(SDKErrorCode.ModelNotLoaded, 'No embeddings model loaded. Call loadModel() first.');
|
|
145
|
-
}
|
|
146
|
-
logger.debug(`Embedding batch of ${texts.length} texts`);
|
|
147
|
-
// Allocate array of string pointers
|
|
148
|
-
const textPtrs = [];
|
|
149
|
-
const textArrayPtr = m._malloc(texts.length * 4);
|
|
150
|
-
for (let i = 0; i < texts.length; i++) {
|
|
151
|
-
const ptr = bridge.allocString(texts[i]);
|
|
152
|
-
textPtrs.push(ptr);
|
|
153
|
-
m.setValue(textArrayPtr + i * 4, ptr, '*');
|
|
154
|
-
}
|
|
155
|
-
// Options
|
|
156
|
-
const optSize = m._rac_wasm_sizeof_embeddings_options();
|
|
157
|
-
const optPtr = m._malloc(optSize);
|
|
158
|
-
const eOpt2 = Offsets.embeddingsOptions;
|
|
159
|
-
m.setValue(optPtr + eOpt2.normalize, options.normalize !== undefined ? options.normalize : -1, 'i32');
|
|
160
|
-
m.setValue(optPtr + eOpt2.pooling, options.pooling !== undefined ? options.pooling : -1, 'i32');
|
|
161
|
-
m.setValue(optPtr + eOpt2.nThreads, 0, 'i32');
|
|
162
|
-
// Result
|
|
163
|
-
const resSize = m._rac_wasm_sizeof_embeddings_result();
|
|
164
|
-
const resPtr = m._malloc(resSize);
|
|
165
|
-
try {
|
|
166
|
-
const r = m.ccall('rac_embeddings_component_embed_batch', 'number', ['number', 'number', 'number', 'number', 'number'], [handle, textArrayPtr, texts.length, optPtr, resPtr]);
|
|
167
|
-
bridge.checkResult(r, 'rac_embeddings_component_embed_batch');
|
|
168
|
-
return readEmbeddingsResult(bridge, m, resPtr);
|
|
169
|
-
}
|
|
170
|
-
finally {
|
|
171
|
-
for (const ptr of textPtrs)
|
|
172
|
-
bridge.free(ptr);
|
|
173
|
-
m._free(textArrayPtr);
|
|
174
|
-
m._free(optPtr);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Compute cosine similarity between two embedding vectors.
|
|
179
|
-
* Pure TypeScript utility -- no WASM call needed.
|
|
180
|
-
*/
|
|
181
|
-
cosineSimilarity(a, b) {
|
|
182
|
-
if (a.length !== b.length)
|
|
183
|
-
throw new Error('Vectors must have the same dimension');
|
|
184
|
-
let dot = 0;
|
|
185
|
-
let normA = 0;
|
|
186
|
-
let normB = 0;
|
|
187
|
-
for (let i = 0; i < a.length; i++) {
|
|
188
|
-
dot += a[i] * b[i];
|
|
189
|
-
normA += a[i] * a[i];
|
|
190
|
-
normB += b[i] * b[i];
|
|
191
|
-
}
|
|
192
|
-
const denominator = Math.sqrt(normA) * Math.sqrt(normB);
|
|
193
|
-
return denominator === 0 ? 0 : dot / denominator;
|
|
194
|
-
}
|
|
195
|
-
/** Clean up the embeddings component. */
|
|
196
|
-
cleanup() {
|
|
197
|
-
if (this._embeddingsComponentHandle !== 0) {
|
|
198
|
-
try {
|
|
199
|
-
WASMBridge.shared.module.ccall('rac_embeddings_component_destroy', null, ['number'], [this._embeddingsComponentHandle]);
|
|
200
|
-
}
|
|
201
|
-
catch { /* ignore */ }
|
|
202
|
-
this._embeddingsComponentHandle = 0;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
export const Embeddings = new EmbeddingsImpl();
|
|
207
|
-
// ---------------------------------------------------------------------------
|
|
208
|
-
// Helper: Read rac_embeddings_result_t from WASM memory
|
|
209
|
-
// ---------------------------------------------------------------------------
|
|
210
|
-
function readEmbeddingsResult(bridge, m, resPtr) {
|
|
211
|
-
// rac_embeddings_result_t (offsets from compiler via StructOffsets)
|
|
212
|
-
const eRes = Offsets.embeddingsResult;
|
|
213
|
-
const embeddingsArrayPtr = m.getValue(resPtr + eRes.embeddings, '*');
|
|
214
|
-
const numEmbeddings = m.getValue(resPtr + eRes.numEmbeddings, 'i32');
|
|
215
|
-
const dimension = m.getValue(resPtr + eRes.dimension, 'i32');
|
|
216
|
-
const processingTimeMs = m.getValue(resPtr + eRes.processingTimeMs, 'i32'); // low 32 bits of int64
|
|
217
|
-
const totalTokens = m.getValue(resPtr + eRes.totalTokens, 'i32');
|
|
218
|
-
const embeddings = [];
|
|
219
|
-
const ev = Offsets.embeddingVector;
|
|
220
|
-
for (let i = 0; i < numEmbeddings; i++) {
|
|
221
|
-
// Each rac_embedding_vector_t
|
|
222
|
-
const vecPtr = embeddingsArrayPtr + i * ev.structSize;
|
|
223
|
-
const dataPtr = m.getValue(vecPtr + ev.data, '*');
|
|
224
|
-
const vecDim = m.getValue(vecPtr + ev.dimension, 'i32');
|
|
225
|
-
const data = new Float32Array(vecDim);
|
|
226
|
-
if (dataPtr && vecDim > 0) {
|
|
227
|
-
data.set(bridge.readFloat32Array(dataPtr, vecDim));
|
|
228
|
-
}
|
|
229
|
-
embeddings.push({ data, dimension: vecDim });
|
|
230
|
-
}
|
|
231
|
-
// Free C result
|
|
232
|
-
m.ccall('rac_embeddings_result_free', null, ['number'], [resPtr]);
|
|
233
|
-
EventBus.shared.emit('embeddings.generated', SDKEventType.Generation, {
|
|
234
|
-
numEmbeddings,
|
|
235
|
-
dimension,
|
|
236
|
-
processingTimeMs,
|
|
237
|
-
});
|
|
238
|
-
return { embeddings, dimension, processingTimeMs, totalTokens };
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=RunAnywhere+Embeddings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RunAnywhere+Embeddings.js","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+Embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RunAnywhere Web SDK - Speech-to-Text Extension
|
|
3
|
-
*
|
|
4
|
-
* Adds STT (speech recognition) capabilities via sherpa-onnx WASM.
|
|
5
|
-
* Supports both offline (Whisper) and online (streaming Zipformer) models.
|
|
6
|
-
*
|
|
7
|
-
* Uses the sherpa-onnx C struct packing helpers from sherpa-onnx-asr.js
|
|
8
|
-
* to properly allocate config structs in WASM memory (NOT JSON strings).
|
|
9
|
-
*
|
|
10
|
-
* Mirrors: sdk/runanywhere-swift/Sources/RunAnywhere/Public/Extensions/STT/
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
* import { STT } from '@runanywhere/web';
|
|
14
|
-
*
|
|
15
|
-
* // Load model files (downloaded separately)
|
|
16
|
-
* await STT.loadModel({
|
|
17
|
-
* modelId: 'whisper-tiny-en',
|
|
18
|
-
* type: 'whisper',
|
|
19
|
-
* modelFiles: {
|
|
20
|
-
* encoder: '/models/whisper-tiny-en/encoder.onnx',
|
|
21
|
-
* decoder: '/models/whisper-tiny-en/decoder.onnx',
|
|
22
|
-
* tokens: '/models/whisper-tiny-en/tokens.txt',
|
|
23
|
-
* },
|
|
24
|
-
* });
|
|
25
|
-
*
|
|
26
|
-
* const result = await STT.transcribe(audioFloat32Array);
|
|
27
|
-
* console.log(result.text);
|
|
28
|
-
*/
|
|
29
|
-
import { STTModelType } from './STTTypes';
|
|
30
|
-
import type { STTModelConfig, STTTranscriptionResult } from './STTTypes';
|
|
31
|
-
export { STTModelType } from './STTTypes';
|
|
32
|
-
export type { STTModelConfig, STTWhisperFiles, STTZipformerFiles, STTParaformerFiles, STTTranscriptionResult, STTWord } from './STTTypes';
|
|
33
|
-
export interface STTTranscribeOptions {
|
|
34
|
-
language?: string;
|
|
35
|
-
sampleRate?: number;
|
|
36
|
-
}
|
|
37
|
-
/** Callback for streaming STT partial results */
|
|
38
|
-
export type STTStreamCallback = (text: string, isFinal: boolean) => void;
|
|
39
|
-
declare class STTImpl {
|
|
40
|
-
readonly extensionName = "STT";
|
|
41
|
-
private _offlineRecognizerHandle;
|
|
42
|
-
private _onlineRecognizerHandle;
|
|
43
|
-
private _currentModelType;
|
|
44
|
-
private _currentModelId;
|
|
45
|
-
/** Returns the currently loaded STT model type. */
|
|
46
|
-
get currentModelType(): STTModelType;
|
|
47
|
-
/**
|
|
48
|
-
* Load an STT model via sherpa-onnx.
|
|
49
|
-
* Model files must already be written to sherpa-onnx virtual FS
|
|
50
|
-
* (use SherpaONNXBridge.shared.downloadAndWrite() or .writeFile()).
|
|
51
|
-
*/
|
|
52
|
-
loadModel(config: STTModelConfig): Promise<void>;
|
|
53
|
-
/** Unload the STT model. */
|
|
54
|
-
unloadModel(): Promise<void>;
|
|
55
|
-
/** Check if an STT model is loaded. */
|
|
56
|
-
get isModelLoaded(): boolean;
|
|
57
|
-
/** Get the current model ID. */
|
|
58
|
-
get modelId(): string;
|
|
59
|
-
/**
|
|
60
|
-
* Transcribe audio data (offline / non-streaming).
|
|
61
|
-
*
|
|
62
|
-
* @param audioSamples - Float32Array of PCM audio samples (mono, 16kHz)
|
|
63
|
-
* @param options - Transcription options
|
|
64
|
-
* @returns Transcription result
|
|
65
|
-
*/
|
|
66
|
-
transcribe(audioSamples: Float32Array, options?: STTTranscribeOptions): Promise<STTTranscriptionResult>;
|
|
67
|
-
/** Internal: Transcribe via online recognizer (for streaming models used non-streaming) */
|
|
68
|
-
_transcribeViaOnline(audioSamples: Float32Array, options?: STTTranscribeOptions): Promise<STTTranscriptionResult>;
|
|
69
|
-
/**
|
|
70
|
-
* Create a streaming transcription session.
|
|
71
|
-
* Returns an object to feed audio chunks and get results.
|
|
72
|
-
*/
|
|
73
|
-
createStreamingSession(options?: STTTranscribeOptions): STTStreamingSession;
|
|
74
|
-
/** Clean up the STT resources. */
|
|
75
|
-
cleanup(): void;
|
|
76
|
-
}
|
|
77
|
-
export declare const STT: STTImpl;
|
|
78
|
-
/** Returns the currently loaded STT model type. */
|
|
79
|
-
export declare function getCurrentSTTModelType(): STTModelType;
|
|
80
|
-
export interface STTStreamingSession {
|
|
81
|
-
/** Feed audio samples to the recognizer */
|
|
82
|
-
acceptWaveform(samples: Float32Array, sampleRate?: number): void;
|
|
83
|
-
/** Signal end of audio input */
|
|
84
|
-
inputFinished(): void;
|
|
85
|
-
/** Get current partial/final result */
|
|
86
|
-
getResult(): {
|
|
87
|
-
text: string;
|
|
88
|
-
isEndpoint: boolean;
|
|
89
|
-
};
|
|
90
|
-
/** Reset after endpoint */
|
|
91
|
-
reset(): void;
|
|
92
|
-
/** Destroy the streaming session */
|
|
93
|
-
destroy(): void;
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=RunAnywhere+STT.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RunAnywhere+STT.d.ts","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+STT.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAA0D,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAejI,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1I,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AA8HzE,cAAM,OAAO;IACX,QAAQ,CAAC,aAAa,SAAS;IAC/B,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,eAAe,CAAM;IAE7B,mDAAmD;IACnD,IAAI,gBAAgB,IAAI,YAAY,CAEnC;IAED;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDtD,4BAA4B;IACtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC,uCAAuC;IACvC,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gCAAgC;IAChC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;;;OAMG;IACG,UAAU,CACd,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,sBAAsB,CAAC;IA6DlC,2FAA2F;IACrF,oBAAoB,CACxB,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,sBAAsB,CAAC;IAuClC;;;OAGG;IACH,sBAAsB,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB;IAW/E,kCAAkC;IAClC,OAAO,IAAI,IAAI;CAkBhB;AAED,eAAO,MAAM,GAAG,SAAgB,CAAC;AAEjC,mDAAmD;AACnD,wBAAgB,sBAAsB,IAAI,YAAY,CAErD;AAMD,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,gCAAgC;IAChC,aAAa,IAAI,IAAI,CAAC;IACtB,uCAAuC;IACvC,SAAS,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD,2BAA2B;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,oCAAoC;IACpC,OAAO,IAAI,IAAI,CAAC;CACjB"}
|