@runanywhere/web-llamacpp 0.1.0-beta.10

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.
Files changed (94) hide show
  1. package/README.md +75 -0
  2. package/dist/Extensions/DiffusionTypes.d.ts +64 -0
  3. package/dist/Extensions/DiffusionTypes.d.ts.map +1 -0
  4. package/dist/Extensions/DiffusionTypes.js +28 -0
  5. package/dist/Extensions/DiffusionTypes.js.map +1 -0
  6. package/dist/Extensions/EmbeddingsTypes.d.ts +33 -0
  7. package/dist/Extensions/EmbeddingsTypes.d.ts.map +1 -0
  8. package/dist/Extensions/EmbeddingsTypes.js +13 -0
  9. package/dist/Extensions/EmbeddingsTypes.js.map +1 -0
  10. package/dist/Extensions/RunAnywhere+Diffusion.d.ts +44 -0
  11. package/dist/Extensions/RunAnywhere+Diffusion.d.ts.map +1 -0
  12. package/dist/Extensions/RunAnywhere+Diffusion.js +185 -0
  13. package/dist/Extensions/RunAnywhere+Diffusion.js.map +1 -0
  14. package/dist/Extensions/RunAnywhere+Embeddings.d.ts +56 -0
  15. package/dist/Extensions/RunAnywhere+Embeddings.d.ts.map +1 -0
  16. package/dist/Extensions/RunAnywhere+Embeddings.js +236 -0
  17. package/dist/Extensions/RunAnywhere+Embeddings.js.map +1 -0
  18. package/dist/Extensions/RunAnywhere+StructuredOutput.d.ts +69 -0
  19. package/dist/Extensions/RunAnywhere+StructuredOutput.d.ts.map +1 -0
  20. package/dist/Extensions/RunAnywhere+StructuredOutput.js +194 -0
  21. package/dist/Extensions/RunAnywhere+StructuredOutput.js.map +1 -0
  22. package/dist/Extensions/RunAnywhere+TextGeneration.d.ts +87 -0
  23. package/dist/Extensions/RunAnywhere+TextGeneration.d.ts.map +1 -0
  24. package/dist/Extensions/RunAnywhere+TextGeneration.js +525 -0
  25. package/dist/Extensions/RunAnywhere+TextGeneration.js.map +1 -0
  26. package/dist/Extensions/RunAnywhere+ToolCalling.d.ts +82 -0
  27. package/dist/Extensions/RunAnywhere+ToolCalling.d.ts.map +1 -0
  28. package/dist/Extensions/RunAnywhere+ToolCalling.js +574 -0
  29. package/dist/Extensions/RunAnywhere+ToolCalling.js.map +1 -0
  30. package/dist/Extensions/RunAnywhere+VLM.d.ts +57 -0
  31. package/dist/Extensions/RunAnywhere+VLM.d.ts.map +1 -0
  32. package/dist/Extensions/RunAnywhere+VLM.js +258 -0
  33. package/dist/Extensions/RunAnywhere+VLM.js.map +1 -0
  34. package/dist/Extensions/ToolCallingTypes.d.ts +78 -0
  35. package/dist/Extensions/ToolCallingTypes.d.ts.map +1 -0
  36. package/dist/Extensions/ToolCallingTypes.js +8 -0
  37. package/dist/Extensions/ToolCallingTypes.js.map +1 -0
  38. package/dist/Extensions/VLMTypes.d.ts +16 -0
  39. package/dist/Extensions/VLMTypes.d.ts.map +1 -0
  40. package/dist/Extensions/VLMTypes.js +18 -0
  41. package/dist/Extensions/VLMTypes.js.map +1 -0
  42. package/dist/Foundation/AnalyticsEventsBridge.d.ts +38 -0
  43. package/dist/Foundation/AnalyticsEventsBridge.d.ts.map +1 -0
  44. package/dist/Foundation/AnalyticsEventsBridge.js +394 -0
  45. package/dist/Foundation/AnalyticsEventsBridge.js.map +1 -0
  46. package/dist/Foundation/LlamaCppBridge.d.ts +182 -0
  47. package/dist/Foundation/LlamaCppBridge.d.ts.map +1 -0
  48. package/dist/Foundation/LlamaCppBridge.js +483 -0
  49. package/dist/Foundation/LlamaCppBridge.js.map +1 -0
  50. package/dist/Foundation/LlamaCppOffsets.d.ts +32 -0
  51. package/dist/Foundation/LlamaCppOffsets.d.ts.map +1 -0
  52. package/dist/Foundation/LlamaCppOffsets.js +191 -0
  53. package/dist/Foundation/LlamaCppOffsets.js.map +1 -0
  54. package/dist/Foundation/PlatformAdapter.d.ts +109 -0
  55. package/dist/Foundation/PlatformAdapter.d.ts.map +1 -0
  56. package/dist/Foundation/PlatformAdapter.js +417 -0
  57. package/dist/Foundation/PlatformAdapter.js.map +1 -0
  58. package/dist/Foundation/TelemetryService.d.ts +96 -0
  59. package/dist/Foundation/TelemetryService.d.ts.map +1 -0
  60. package/dist/Foundation/TelemetryService.js +345 -0
  61. package/dist/Foundation/TelemetryService.js.map +1 -0
  62. package/dist/Foundation/WASMAnalyticsEmitter.d.ts +29 -0
  63. package/dist/Foundation/WASMAnalyticsEmitter.d.ts.map +1 -0
  64. package/dist/Foundation/WASMAnalyticsEmitter.js +70 -0
  65. package/dist/Foundation/WASMAnalyticsEmitter.js.map +1 -0
  66. package/dist/Infrastructure/VLMWorkerBridge.d.ts +219 -0
  67. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +1 -0
  68. package/dist/Infrastructure/VLMWorkerBridge.js +288 -0
  69. package/dist/Infrastructure/VLMWorkerBridge.js.map +1 -0
  70. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +38 -0
  71. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +1 -0
  72. package/dist/Infrastructure/VLMWorkerRuntime.js +620 -0
  73. package/dist/Infrastructure/VLMWorkerRuntime.js.map +1 -0
  74. package/dist/LlamaCPP.d.ts +49 -0
  75. package/dist/LlamaCPP.d.ts.map +1 -0
  76. package/dist/LlamaCPP.js +63 -0
  77. package/dist/LlamaCPP.js.map +1 -0
  78. package/dist/LlamaCppProvider.d.ts +32 -0
  79. package/dist/LlamaCppProvider.d.ts.map +1 -0
  80. package/dist/LlamaCppProvider.js +106 -0
  81. package/dist/LlamaCppProvider.js.map +1 -0
  82. package/dist/index.d.ts +43 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +41 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/workers/vlm-worker.d.ts +9 -0
  87. package/dist/workers/vlm-worker.d.ts.map +1 -0
  88. package/dist/workers/vlm-worker.js +10 -0
  89. package/dist/workers/vlm-worker.js.map +1 -0
  90. package/package.json +69 -0
  91. package/wasm/racommons-llamacpp-webgpu.js +159 -0
  92. package/wasm/racommons-llamacpp-webgpu.wasm +0 -0
  93. package/wasm/racommons-llamacpp.js +129 -0
  94. package/wasm/racommons-llamacpp.wasm +0 -0
package/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # @runanywhere/web-llamacpp
2
+
3
+ LLM, VLM, tool calling, structured output, embeddings, and diffusion backend for the [RunAnywhere Web SDK](https://www.npmjs.com/package/@runanywhere/web) — powered by [llama.cpp](https://github.com/ggerganov/llama.cpp) compiled to WebAssembly.
4
+
5
+ > **Peer dependency:** Requires [`@runanywhere/web`](https://www.npmjs.com/package/@runanywhere/web) `>=0.1.0-beta.0`
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @runanywhere/web @runanywhere/web-llamacpp
11
+ ```
12
+
13
+ ## Quick Start
14
+
15
+ ```typescript
16
+ import { RunAnywhere } from '@runanywhere/web';
17
+ import { LlamaCPP, TextGeneration } from '@runanywhere/web-llamacpp';
18
+
19
+ // 1. Initialize core SDK
20
+ await RunAnywhere.initialize({ environment: 'development' });
21
+
22
+ // 2. Register the llama.cpp backend
23
+ await LlamaCPP.register();
24
+
25
+ // 3. Load a GGUF model and generate
26
+ await TextGeneration.loadModel('/models/qwen2.5-0.5b-instruct-q4_0.gguf', 'qwen2.5-0.5b');
27
+ const result = await TextGeneration.generate('Explain quantum computing briefly.');
28
+ console.log(result.text);
29
+
30
+ // Stream tokens
31
+ for await (const token of TextGeneration.generateStream('Write a haiku.')) {
32
+ process.stdout.write(token);
33
+ }
34
+ ```
35
+
36
+ ## Capabilities
37
+
38
+ | Feature | Class | Description |
39
+ |---------|-------|-------------|
40
+ | **Text Generation** | `TextGeneration` | LLM inference with streaming, system prompts, temperature, top-k/top-p |
41
+ | **Vision Language Models** | `VLM` | Multimodal inference (image + text) via llama.cpp mtmd — runs in a Web Worker |
42
+ | **Tool Calling** | `ToolCalling` | Function calling with typed definitions (Hermes-style and generic) |
43
+ | **Structured Output** | `StructuredOutput` | JSON schema-guided generation |
44
+ | **Embeddings** | `Embeddings` | Vector embedding generation with configurable normalization/pooling |
45
+ | **Diffusion** | `Diffusion` | Image generation (WebGPU, scaffold) |
46
+
47
+ ## WASM Files
48
+
49
+ This package includes pre-built WASM binaries:
50
+
51
+ | File | Description |
52
+ |------|-------------|
53
+ | `wasm/racommons-llamacpp.wasm` | CPU variant (~3.7 MB) |
54
+ | `wasm/racommons-llamacpp-webgpu.wasm` | WebGPU-accelerated variant (~3.9 MB) |
55
+
56
+ The SDK automatically selects the WebGPU variant when available, falling back to CPU.
57
+
58
+ Configure your bundler to serve these as static assets — see the [main SDK README](https://www.npmjs.com/package/@runanywhere/web) for Vite/Webpack examples.
59
+
60
+ > **Warning (Vite):** You must add `@runanywhere/web-llamacpp` to [`optimizeDeps.exclude`](https://vite.dev/config/dep-optimization-options#optimizedeps-exclude) in your `vite.config.ts`. Vite's pre-bundling breaks the `import.meta.url` paths the SDK uses to locate WASM files. See the [main SDK README](https://www.npmjs.com/package/@runanywhere/web#serve-wasm-files--cross-origin-isolation) for the full Vite config.
61
+
62
+ ## Cross-Origin Isolation
63
+
64
+ Multi-threaded WASM requires `SharedArrayBuffer`, which needs Cross-Origin Isolation headers:
65
+
66
+ ```
67
+ Cross-Origin-Opener-Policy: same-origin
68
+ Cross-Origin-Embedder-Policy: credentialless
69
+ ```
70
+
71
+ See the [main SDK docs](https://www.npmjs.com/package/@runanywhere/web#cross-origin-isolation-headers) for platform-specific configuration.
72
+
73
+ ## License
74
+
75
+ Apache 2.0
@@ -0,0 +1,64 @@
1
+ /** RunAnywhere Web SDK - Diffusion Types */
2
+ export declare enum DiffusionScheduler {
3
+ DPM_PP_2M_Karras = 0,
4
+ DPM_PP_2M = 1,
5
+ DPM_PP_2M_SDE = 2,
6
+ DDIM = 3,
7
+ Euler = 4,
8
+ EulerAncestral = 5,
9
+ PNDM = 6,
10
+ LMS = 7
11
+ }
12
+ export declare enum DiffusionModelVariant {
13
+ SD_1_5 = 0,
14
+ SD_2_1 = 1,
15
+ SDXL = 2,
16
+ SDXL_Turbo = 3,
17
+ SDXS = 4,
18
+ LCM = 5
19
+ }
20
+ export declare enum DiffusionMode {
21
+ TextToImage = 0,
22
+ ImageToImage = 1,
23
+ Inpainting = 2
24
+ }
25
+ export interface DiffusionGenerationOptions {
26
+ /** Text prompt */
27
+ prompt: string;
28
+ /** Negative prompt (optional) */
29
+ negativePrompt?: string;
30
+ /** Image width (default: 512) */
31
+ width?: number;
32
+ /** Image height (default: 512) */
33
+ height?: number;
34
+ /** Number of denoising steps (default: 28) */
35
+ steps?: number;
36
+ /** Guidance scale (default: 7.5) */
37
+ guidanceScale?: number;
38
+ /** Seed (-1 for random) */
39
+ seed?: number;
40
+ /** Scheduler (default: DPM++ 2M Karras) */
41
+ scheduler?: DiffusionScheduler;
42
+ /** Generation mode (default: TextToImage) */
43
+ mode?: DiffusionMode;
44
+ /** Denoising strength for img2img (0-1, default: 0.75) */
45
+ denoiseStrength?: number;
46
+ /** Report intermediate images (default: false) */
47
+ reportIntermediateImages?: boolean;
48
+ }
49
+ export interface DiffusionGenerationResult {
50
+ /** RGBA image data */
51
+ imageData: Uint8ClampedArray;
52
+ /** Image width */
53
+ width: number;
54
+ /** Image height */
55
+ height: number;
56
+ /** Seed used for generation */
57
+ seedUsed: number;
58
+ /** Generation time in milliseconds */
59
+ generationTimeMs: number;
60
+ /** Whether safety checker flagged the image */
61
+ safetyFlagged: boolean;
62
+ }
63
+ export type DiffusionProgressCallback = (step: number, totalSteps: number, progress: number) => void;
64
+ //# sourceMappingURL=DiffusionTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffusionTypes.d.ts","sourceRoot":"","sources":["../../src/Extensions/DiffusionTypes.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,oBAAY,kBAAkB;IAC5B,gBAAgB,IAAI;IACpB,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,IAAI,IAAI;IACR,KAAK,IAAI;IACT,cAAc,IAAI;IAClB,IAAI,IAAI;IACR,GAAG,IAAI;CACR;AAED,oBAAY,qBAAqB;IAC/B,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,UAAU,IAAI;IACd,IAAI,IAAI;IACR,GAAG,IAAI;CACR;AAED,oBAAY,aAAa;IACvB,WAAW,IAAI;IACf,YAAY,IAAI;IAChB,UAAU,IAAI;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,6CAA6C;IAC7C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,sBAAsB;IACtB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** RunAnywhere Web SDK - Diffusion Types */
2
+ export var DiffusionScheduler;
3
+ (function (DiffusionScheduler) {
4
+ DiffusionScheduler[DiffusionScheduler["DPM_PP_2M_Karras"] = 0] = "DPM_PP_2M_Karras";
5
+ DiffusionScheduler[DiffusionScheduler["DPM_PP_2M"] = 1] = "DPM_PP_2M";
6
+ DiffusionScheduler[DiffusionScheduler["DPM_PP_2M_SDE"] = 2] = "DPM_PP_2M_SDE";
7
+ DiffusionScheduler[DiffusionScheduler["DDIM"] = 3] = "DDIM";
8
+ DiffusionScheduler[DiffusionScheduler["Euler"] = 4] = "Euler";
9
+ DiffusionScheduler[DiffusionScheduler["EulerAncestral"] = 5] = "EulerAncestral";
10
+ DiffusionScheduler[DiffusionScheduler["PNDM"] = 6] = "PNDM";
11
+ DiffusionScheduler[DiffusionScheduler["LMS"] = 7] = "LMS";
12
+ })(DiffusionScheduler || (DiffusionScheduler = {}));
13
+ export var DiffusionModelVariant;
14
+ (function (DiffusionModelVariant) {
15
+ DiffusionModelVariant[DiffusionModelVariant["SD_1_5"] = 0] = "SD_1_5";
16
+ DiffusionModelVariant[DiffusionModelVariant["SD_2_1"] = 1] = "SD_2_1";
17
+ DiffusionModelVariant[DiffusionModelVariant["SDXL"] = 2] = "SDXL";
18
+ DiffusionModelVariant[DiffusionModelVariant["SDXL_Turbo"] = 3] = "SDXL_Turbo";
19
+ DiffusionModelVariant[DiffusionModelVariant["SDXS"] = 4] = "SDXS";
20
+ DiffusionModelVariant[DiffusionModelVariant["LCM"] = 5] = "LCM";
21
+ })(DiffusionModelVariant || (DiffusionModelVariant = {}));
22
+ export var DiffusionMode;
23
+ (function (DiffusionMode) {
24
+ DiffusionMode[DiffusionMode["TextToImage"] = 0] = "TextToImage";
25
+ DiffusionMode[DiffusionMode["ImageToImage"] = 1] = "ImageToImage";
26
+ DiffusionMode[DiffusionMode["Inpainting"] = 2] = "Inpainting";
27
+ })(DiffusionMode || (DiffusionMode = {}));
28
+ //# sourceMappingURL=DiffusionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffusionTypes.js","sourceRoot":"","sources":["../../src/Extensions/DiffusionTypes.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,mFAAoB,CAAA;IACpB,qEAAa,CAAA;IACb,6EAAiB,CAAA;IACjB,2DAAQ,CAAA;IACR,6DAAS,CAAA;IACT,+EAAkB,CAAA;IAClB,2DAAQ,CAAA;IACR,yDAAO,CAAA;AACT,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B;AAED,MAAM,CAAN,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAC/B,qEAAU,CAAA;IACV,qEAAU,CAAA;IACV,iEAAQ,CAAA;IACR,6EAAc,CAAA;IACd,iEAAQ,CAAA;IACR,+DAAO,CAAA;AACT,CAAC,EAPW,qBAAqB,KAArB,qBAAqB,QAOhC;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,+DAAe,CAAA;IACf,iEAAgB,CAAA;IAChB,6DAAc,CAAA;AAChB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
@@ -0,0 +1,33 @@
1
+ /** RunAnywhere Web SDK - Embeddings Types */
2
+ export declare enum EmbeddingsNormalize {
3
+ None = 0,
4
+ L2 = 1
5
+ }
6
+ export declare enum EmbeddingsPooling {
7
+ Mean = 0,
8
+ CLS = 1,
9
+ Last = 2
10
+ }
11
+ export interface EmbeddingVector {
12
+ /** Dense float vector */
13
+ data: Float32Array;
14
+ /** Dimension */
15
+ dimension: number;
16
+ }
17
+ export interface EmbeddingsResult {
18
+ /** Array of embedding vectors (one per input text) */
19
+ embeddings: EmbeddingVector[];
20
+ /** Embedding dimension */
21
+ dimension: number;
22
+ /** Processing time in milliseconds */
23
+ processingTimeMs: number;
24
+ /** Total tokens processed */
25
+ totalTokens: number;
26
+ }
27
+ export interface EmbeddingsOptions {
28
+ /** Normalization mode override */
29
+ normalize?: EmbeddingsNormalize;
30
+ /** Pooling strategy override */
31
+ pooling?: EmbeddingsPooling;
32
+ }
33
+ //# sourceMappingURL=EmbeddingsTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddingsTypes.d.ts","sourceRoot":"","sources":["../../src/Extensions/EmbeddingsTypes.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,oBAAY,mBAAmB;IAC7B,IAAI,IAAI;IACR,EAAE,IAAI;CACP;AAED,oBAAY,iBAAiB;IAC3B,IAAI,IAAI;IACR,GAAG,IAAI;IACP,IAAI,IAAI;CACT;AAED,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,gCAAgC;IAChC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B"}
@@ -0,0 +1,13 @@
1
+ /** RunAnywhere Web SDK - Embeddings Types */
2
+ export var EmbeddingsNormalize;
3
+ (function (EmbeddingsNormalize) {
4
+ EmbeddingsNormalize[EmbeddingsNormalize["None"] = 0] = "None";
5
+ EmbeddingsNormalize[EmbeddingsNormalize["L2"] = 1] = "L2";
6
+ })(EmbeddingsNormalize || (EmbeddingsNormalize = {}));
7
+ export var EmbeddingsPooling;
8
+ (function (EmbeddingsPooling) {
9
+ EmbeddingsPooling[EmbeddingsPooling["Mean"] = 0] = "Mean";
10
+ EmbeddingsPooling[EmbeddingsPooling["CLS"] = 1] = "CLS";
11
+ EmbeddingsPooling[EmbeddingsPooling["Last"] = 2] = "Last";
12
+ })(EmbeddingsPooling || (EmbeddingsPooling = {}));
13
+ //# sourceMappingURL=EmbeddingsTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddingsTypes.js","sourceRoot":"","sources":["../../src/Extensions/EmbeddingsTypes.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,6DAAQ,CAAA;IACR,yDAAM,CAAA;AACR,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,yDAAQ,CAAA;IACR,uDAAO,CAAA;IACP,yDAAQ,CAAA;AACV,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Diffusion Extension
3
+ *
4
+ * Adds image generation capabilities using diffusion models.
5
+ * Uses the RACommons rac_diffusion_component_* C API (same as iOS/Android).
6
+ *
7
+ * Mirrors: sdk/runanywhere-swift/Sources/RunAnywhere/Public/Extensions/Diffusion/
8
+ *
9
+ * Usage:
10
+ * import { Diffusion, DiffusionScheduler, DiffusionMode } from '@runanywhere/web';
11
+ *
12
+ * await Diffusion.loadModel('/models/sd-v1-5', 'sd-1.5');
13
+ * const result = await Diffusion.generate({
14
+ * prompt: 'A sunset over mountains',
15
+ * width: 512, height: 512, steps: 28,
16
+ * });
17
+ * // result.imageData is Uint8ClampedArray RGBA
18
+ */
19
+ import { type DiffusionGenerationOptions, type DiffusionGenerationResult } from './DiffusionTypes';
20
+ export { DiffusionScheduler, DiffusionModelVariant, DiffusionMode, type DiffusionGenerationOptions, type DiffusionGenerationResult, type DiffusionProgressCallback, } from './DiffusionTypes';
21
+ declare class DiffusionImpl {
22
+ readonly extensionName = "Diffusion";
23
+ private _diffusionComponentHandle;
24
+ private requireBridge;
25
+ private ensureDiffusionComponent;
26
+ /**
27
+ * Load a diffusion model.
28
+ */
29
+ loadModel(modelPath: string, modelId: string, modelName?: string): Promise<void>;
30
+ /** Unload the diffusion model. */
31
+ unloadModel(): Promise<void>;
32
+ /** Check if a diffusion model is loaded. */
33
+ get isModelLoaded(): boolean;
34
+ /**
35
+ * Generate an image from a text prompt.
36
+ */
37
+ generate(options: DiffusionGenerationOptions): Promise<DiffusionGenerationResult>;
38
+ /** Cancel in-progress generation. */
39
+ cancel(): void;
40
+ /** Clean up the diffusion component. */
41
+ cleanup(): void;
42
+ }
43
+ export declare const Diffusion: DiffusionImpl;
44
+ //# sourceMappingURL=RunAnywhere+Diffusion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunAnywhere+Diffusion.d.ts","sourceRoot":"","sources":["../../src/Extensions/RunAnywhere+Diffusion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EAGL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC/B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAQ1B,cAAM,aAAa;IACjB,QAAQ,CAAC,aAAa,eAAe;IACrC,OAAO,CAAC,yBAAyB,CAAK;IAEtC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,wBAAwB;IAmBhC;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BtF,kCAAkC;IAC5B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,4CAA4C;IAC5C,IAAI,aAAa,IAAI,OAAO,CAO3B;IAED;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAkFvF,qCAAqC;IACrC,MAAM,IAAI,IAAI;IAOd,wCAAwC;IACxC,OAAO,IAAI,IAAI;CAUhB;AAED,eAAO,MAAM,SAAS,eAAsB,CAAC"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Diffusion Extension
3
+ *
4
+ * Adds image generation capabilities using diffusion models.
5
+ * Uses the RACommons rac_diffusion_component_* C API (same as iOS/Android).
6
+ *
7
+ * Mirrors: sdk/runanywhere-swift/Sources/RunAnywhere/Public/Extensions/Diffusion/
8
+ *
9
+ * Usage:
10
+ * import { Diffusion, DiffusionScheduler, DiffusionMode } from '@runanywhere/web';
11
+ *
12
+ * await Diffusion.loadModel('/models/sd-v1-5', 'sd-1.5');
13
+ * const result = await Diffusion.generate({
14
+ * prompt: 'A sunset over mountains',
15
+ * width: 512, height: 512, steps: 28,
16
+ * });
17
+ * // result.imageData is Uint8ClampedArray RGBA
18
+ */
19
+ import { RunAnywhere, SDKError, SDKErrorCode, SDKLogger, EventBus, SDKEventType } from '@runanywhere/web';
20
+ import { LlamaCppBridge } from '../Foundation/LlamaCppBridge';
21
+ import { Offsets } from '../Foundation/LlamaCppOffsets';
22
+ import { DiffusionScheduler, DiffusionMode, } from './DiffusionTypes';
23
+ export { DiffusionScheduler, DiffusionModelVariant, DiffusionMode, } from './DiffusionTypes';
24
+ const logger = new SDKLogger('Diffusion');
25
+ // ---------------------------------------------------------------------------
26
+ // Diffusion Extension
27
+ // ---------------------------------------------------------------------------
28
+ class DiffusionImpl {
29
+ extensionName = 'Diffusion';
30
+ _diffusionComponentHandle = 0;
31
+ requireBridge() {
32
+ if (!RunAnywhere.isInitialized)
33
+ throw SDKError.notInitialized();
34
+ return LlamaCppBridge.shared;
35
+ }
36
+ ensureDiffusionComponent() {
37
+ if (this._diffusionComponentHandle !== 0)
38
+ return this._diffusionComponentHandle;
39
+ const bridge = this.requireBridge();
40
+ const m = bridge.module;
41
+ const handlePtr = m._malloc(4);
42
+ const result = bridge.callFunction('rac_diffusion_component_create', 'number', ['number'], [handlePtr]);
43
+ if (result !== 0) {
44
+ m._free(handlePtr);
45
+ bridge.checkResult(result, 'rac_diffusion_component_create');
46
+ }
47
+ this._diffusionComponentHandle = m.getValue(handlePtr, 'i32');
48
+ m._free(handlePtr);
49
+ logger.debug('Diffusion component created');
50
+ return this._diffusionComponentHandle;
51
+ }
52
+ /**
53
+ * Load a diffusion model.
54
+ */
55
+ async loadModel(modelPath, modelId, modelName) {
56
+ const bridge = this.requireBridge();
57
+ const m = bridge.module;
58
+ const handle = this.ensureDiffusionComponent();
59
+ logger.info(`Loading diffusion model: ${modelId} from ${modelPath}`);
60
+ EventBus.shared.emit('model.loadStarted', SDKEventType.Model, { modelId, component: 'diffusion' });
61
+ const pathPtr = bridge.allocString(modelPath);
62
+ const idPtr = bridge.allocString(modelId);
63
+ const namePtr = bridge.allocString(modelName ?? modelId);
64
+ try {
65
+ const result = m.ccall('rac_diffusion_component_load_model', 'number', ['number', 'number', 'number', 'number'], [handle, pathPtr, idPtr, namePtr]);
66
+ bridge.checkResult(result, 'rac_diffusion_component_load_model');
67
+ logger.info(`Diffusion model loaded: ${modelId}`);
68
+ EventBus.shared.emit('model.loadCompleted', SDKEventType.Model, { modelId, component: 'diffusion' });
69
+ }
70
+ finally {
71
+ bridge.free(pathPtr);
72
+ bridge.free(idPtr);
73
+ bridge.free(namePtr);
74
+ }
75
+ }
76
+ /** Unload the diffusion model. */
77
+ async unloadModel() {
78
+ if (this._diffusionComponentHandle === 0)
79
+ return;
80
+ const bridge = this.requireBridge();
81
+ const result = bridge.module.ccall('rac_diffusion_component_unload', 'number', ['number'], [this._diffusionComponentHandle]);
82
+ bridge.checkResult(result, 'rac_diffusion_component_unload');
83
+ logger.info('Diffusion model unloaded');
84
+ }
85
+ /** Check if a diffusion model is loaded. */
86
+ get isModelLoaded() {
87
+ if (this._diffusionComponentHandle === 0)
88
+ return false;
89
+ try {
90
+ return LlamaCppBridge.shared.module.ccall('rac_diffusion_component_is_loaded', 'number', ['number'], [this._diffusionComponentHandle]) === 1;
91
+ }
92
+ catch {
93
+ return false;
94
+ }
95
+ }
96
+ /**
97
+ * Generate an image from a text prompt.
98
+ */
99
+ async generate(options) {
100
+ const bridge = this.requireBridge();
101
+ const m = bridge.module;
102
+ const handle = this.ensureDiffusionComponent();
103
+ if (!this.isModelLoaded) {
104
+ throw new SDKError(SDKErrorCode.ModelNotLoaded, 'No diffusion model loaded. Call loadModel() first.');
105
+ }
106
+ logger.info(`Generating image: "${options.prompt.substring(0, 50)}..."`);
107
+ // Build rac_diffusion_options_t
108
+ const optSize = m._rac_wasm_sizeof_diffusion_options();
109
+ const optPtr = m._malloc(optSize);
110
+ for (let i = 0; i < optSize; i++)
111
+ m.setValue(optPtr + i, 0, 'i8');
112
+ const promptPtr = bridge.allocString(options.prompt);
113
+ let negPromptPtr = 0;
114
+ const dOpt = Offsets.diffusionOptions;
115
+ m.setValue(optPtr + dOpt.prompt, promptPtr, '*');
116
+ if (options.negativePrompt) {
117
+ negPromptPtr = bridge.allocString(options.negativePrompt);
118
+ m.setValue(optPtr + dOpt.negativePrompt, negPromptPtr, '*');
119
+ }
120
+ m.setValue(optPtr + dOpt.width, options.width ?? 512, 'i32');
121
+ m.setValue(optPtr + dOpt.height, options.height ?? 512, 'i32');
122
+ m.setValue(optPtr + dOpt.steps, options.steps ?? 28, 'i32');
123
+ m.setValue(optPtr + dOpt.guidanceScale, options.guidanceScale ?? 7.5, 'float');
124
+ // seed is int64 — write low and high 32-bit halves
125
+ const seed = options.seed ?? -1;
126
+ m.setValue(optPtr + dOpt.seed, seed & 0xFFFFFFFF, 'i32');
127
+ m.setValue(optPtr + dOpt.seed + 4, seed < 0 ? -1 : 0, 'i32');
128
+ m.setValue(optPtr + dOpt.scheduler, options.scheduler ?? DiffusionScheduler.DPM_PP_2M_Karras, 'i32');
129
+ m.setValue(optPtr + dOpt.mode, options.mode ?? DiffusionMode.TextToImage, 'i32');
130
+ m.setValue(optPtr + dOpt.denoiseStrength, options.denoiseStrength ?? 0.75, 'float');
131
+ m.setValue(optPtr + dOpt.reportIntermediate, options.reportIntermediateImages ? 1 : 0, 'i32');
132
+ m.setValue(optPtr + dOpt.progressStride, 1, 'i32');
133
+ // Result struct: rac_diffusion_result_t
134
+ const resSize = m._rac_wasm_sizeof_diffusion_result();
135
+ const resPtr = m._malloc(resSize);
136
+ try {
137
+ const r = m.ccall('rac_diffusion_component_generate', 'number', ['number', 'number', 'number'], [handle, optPtr, resPtr]);
138
+ bridge.checkResult(r, 'rac_diffusion_component_generate');
139
+ // Read rac_diffusion_result_t (offsets from compiler via StructOffsets)
140
+ const dRes = Offsets.diffusionResult;
141
+ const imageDataPtr = m.getValue(resPtr + dRes.imageData, '*');
142
+ const imageSize = m.getValue(resPtr + dRes.imageSize, 'i32');
143
+ const width = m.getValue(resPtr + dRes.width, 'i32');
144
+ const height = m.getValue(resPtr + dRes.height, 'i32');
145
+ const seedUsed = m.getValue(resPtr + dRes.seedUsed, 'i32'); // low 32 bits of int64
146
+ const generationTimeMs = m.getValue(resPtr + dRes.generationTimeMs, 'i32'); // low 32 bits
147
+ const safetyFlagged = m.getValue(resPtr + dRes.safetyFlagged, 'i32') === 1;
148
+ // Copy RGBA image data
149
+ const imageData = new Uint8ClampedArray(imageSize);
150
+ if (imageDataPtr && imageSize > 0) {
151
+ imageData.set(bridge.readBytes(imageDataPtr, imageSize));
152
+ }
153
+ // Free C result
154
+ m.ccall('rac_diffusion_result_free', null, ['number'], [resPtr]);
155
+ EventBus.shared.emit('diffusion.generated', SDKEventType.Generation, {
156
+ width, height, generationTimeMs,
157
+ });
158
+ return { imageData, width, height, seedUsed, generationTimeMs, safetyFlagged };
159
+ }
160
+ finally {
161
+ bridge.free(promptPtr);
162
+ if (negPromptPtr)
163
+ bridge.free(negPromptPtr);
164
+ m._free(optPtr);
165
+ }
166
+ }
167
+ /** Cancel in-progress generation. */
168
+ cancel() {
169
+ if (this._diffusionComponentHandle === 0)
170
+ return;
171
+ LlamaCppBridge.shared.module.ccall('rac_diffusion_component_cancel', 'number', ['number'], [this._diffusionComponentHandle]);
172
+ }
173
+ /** Clean up the diffusion component. */
174
+ cleanup() {
175
+ if (this._diffusionComponentHandle !== 0) {
176
+ try {
177
+ LlamaCppBridge.shared.module.ccall('rac_diffusion_component_destroy', null, ['number'], [this._diffusionComponentHandle]);
178
+ }
179
+ catch { /* ignore */ }
180
+ this._diffusionComponentHandle = 0;
181
+ }
182
+ }
183
+ }
184
+ export const Diffusion = new DiffusionImpl();
185
+ //# sourceMappingURL=RunAnywhere+Diffusion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunAnywhere+Diffusion.js","sourceRoot":"","sources":["../../src/Extensions/RunAnywhere+Diffusion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunAnywhere+Embeddings.d.ts","sourceRoot":"","sources":["../../src/Extensions/RunAnywhere+Embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,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"}