@runanywhere/web-llamacpp 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.
Files changed (73) hide show
  1. package/dist/Extensions/DiffusionTypes.d.ts +64 -0
  2. package/dist/Extensions/DiffusionTypes.d.ts.map +1 -0
  3. package/dist/Extensions/DiffusionTypes.js +28 -0
  4. package/dist/Extensions/DiffusionTypes.js.map +1 -0
  5. package/dist/Extensions/EmbeddingsTypes.d.ts +33 -0
  6. package/dist/Extensions/EmbeddingsTypes.d.ts.map +1 -0
  7. package/dist/Extensions/EmbeddingsTypes.js +13 -0
  8. package/dist/Extensions/EmbeddingsTypes.js.map +1 -0
  9. package/dist/Extensions/RunAnywhere+Diffusion.d.ts +44 -0
  10. package/dist/Extensions/RunAnywhere+Diffusion.d.ts.map +1 -0
  11. package/dist/Extensions/RunAnywhere+Diffusion.js +183 -0
  12. package/dist/Extensions/RunAnywhere+Diffusion.js.map +1 -0
  13. package/dist/Extensions/RunAnywhere+Embeddings.d.ts +56 -0
  14. package/dist/Extensions/RunAnywhere+Embeddings.d.ts.map +1 -0
  15. package/dist/Extensions/RunAnywhere+Embeddings.js +234 -0
  16. package/dist/Extensions/RunAnywhere+Embeddings.js.map +1 -0
  17. package/dist/Extensions/RunAnywhere+StructuredOutput.d.ts +69 -0
  18. package/dist/Extensions/RunAnywhere+StructuredOutput.d.ts.map +1 -0
  19. package/dist/Extensions/RunAnywhere+StructuredOutput.js +192 -0
  20. package/dist/Extensions/RunAnywhere+StructuredOutput.js.map +1 -0
  21. package/dist/Extensions/RunAnywhere+TextGeneration.d.ts +80 -0
  22. package/dist/Extensions/RunAnywhere+TextGeneration.d.ts.map +1 -0
  23. package/dist/Extensions/RunAnywhere+TextGeneration.js +464 -0
  24. package/dist/Extensions/RunAnywhere+TextGeneration.js.map +1 -0
  25. package/dist/Extensions/RunAnywhere+ToolCalling.d.ts +82 -0
  26. package/dist/Extensions/RunAnywhere+ToolCalling.d.ts.map +1 -0
  27. package/dist/Extensions/RunAnywhere+ToolCalling.js +573 -0
  28. package/dist/Extensions/RunAnywhere+ToolCalling.js.map +1 -0
  29. package/dist/Extensions/RunAnywhere+VLM.d.ts +58 -0
  30. package/dist/Extensions/RunAnywhere+VLM.d.ts.map +1 -0
  31. package/dist/Extensions/RunAnywhere+VLM.js +256 -0
  32. package/dist/Extensions/RunAnywhere+VLM.js.map +1 -0
  33. package/dist/Extensions/ToolCallingTypes.d.ts +78 -0
  34. package/dist/Extensions/ToolCallingTypes.d.ts.map +1 -0
  35. package/dist/Extensions/ToolCallingTypes.js +8 -0
  36. package/dist/Extensions/ToolCallingTypes.js.map +1 -0
  37. package/dist/Extensions/VLMTypes.d.ts +56 -0
  38. package/dist/Extensions/VLMTypes.d.ts.map +1 -0
  39. package/dist/Extensions/VLMTypes.js +24 -0
  40. package/dist/Extensions/VLMTypes.js.map +1 -0
  41. package/dist/Infrastructure/VLMWorkerBridge.d.ts +211 -0
  42. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +1 -0
  43. package/dist/Infrastructure/VLMWorkerBridge.js +263 -0
  44. package/dist/Infrastructure/VLMWorkerBridge.js.map +1 -0
  45. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +38 -0
  46. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +1 -0
  47. package/dist/Infrastructure/VLMWorkerRuntime.js +503 -0
  48. package/dist/Infrastructure/VLMWorkerRuntime.js.map +1 -0
  49. package/dist/Infrastructure/VideoCapture.d.ts +118 -0
  50. package/dist/Infrastructure/VideoCapture.d.ts.map +1 -0
  51. package/dist/Infrastructure/VideoCapture.js +207 -0
  52. package/dist/Infrastructure/VideoCapture.js.map +1 -0
  53. package/dist/LlamaCPP.d.ts +33 -0
  54. package/dist/LlamaCPP.d.ts.map +1 -0
  55. package/dist/LlamaCPP.js +48 -0
  56. package/dist/LlamaCPP.js.map +1 -0
  57. package/dist/LlamaCppProvider.d.ts +30 -0
  58. package/dist/LlamaCppProvider.d.ts.map +1 -0
  59. package/dist/LlamaCppProvider.js +103 -0
  60. package/dist/LlamaCppProvider.js.map +1 -0
  61. package/dist/index.d.ts +43 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +38 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/types/LLMTypes.d.ts +48 -0
  66. package/dist/types/LLMTypes.d.ts.map +1 -0
  67. package/dist/types/LLMTypes.js +8 -0
  68. package/dist/types/LLMTypes.js.map +1 -0
  69. package/dist/workers/vlm-worker.d.ts +9 -0
  70. package/dist/workers/vlm-worker.d.ts.map +1 -0
  71. package/dist/workers/vlm-worker.js +10 -0
  72. package/dist/workers/vlm-worker.js.map +1 -0
  73. package/package.json +66 -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;AAGH,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,183 @@
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, WASMBridge, Offsets, SDKError, SDKErrorCode, SDKLogger, EventBus, SDKEventType } from '@runanywhere/web';
20
+ import { DiffusionScheduler, DiffusionMode, } from './DiffusionTypes';
21
+ export { DiffusionScheduler, DiffusionModelVariant, DiffusionMode, } from './DiffusionTypes';
22
+ const logger = new SDKLogger('Diffusion');
23
+ // ---------------------------------------------------------------------------
24
+ // Diffusion Extension
25
+ // ---------------------------------------------------------------------------
26
+ class DiffusionImpl {
27
+ extensionName = 'Diffusion';
28
+ _diffusionComponentHandle = 0;
29
+ requireBridge() {
30
+ if (!RunAnywhere.isInitialized)
31
+ throw SDKError.notInitialized();
32
+ return WASMBridge.shared;
33
+ }
34
+ ensureDiffusionComponent() {
35
+ if (this._diffusionComponentHandle !== 0)
36
+ return this._diffusionComponentHandle;
37
+ const bridge = this.requireBridge();
38
+ const m = bridge.module;
39
+ const handlePtr = m._malloc(4);
40
+ const result = bridge.callFunction('rac_diffusion_component_create', 'number', ['number'], [handlePtr]);
41
+ if (result !== 0) {
42
+ m._free(handlePtr);
43
+ bridge.checkResult(result, 'rac_diffusion_component_create');
44
+ }
45
+ this._diffusionComponentHandle = m.getValue(handlePtr, 'i32');
46
+ m._free(handlePtr);
47
+ logger.debug('Diffusion component created');
48
+ return this._diffusionComponentHandle;
49
+ }
50
+ /**
51
+ * Load a diffusion model.
52
+ */
53
+ async loadModel(modelPath, modelId, modelName) {
54
+ const bridge = this.requireBridge();
55
+ const m = bridge.module;
56
+ const handle = this.ensureDiffusionComponent();
57
+ logger.info(`Loading diffusion model: ${modelId} from ${modelPath}`);
58
+ EventBus.shared.emit('model.loadStarted', SDKEventType.Model, { modelId, component: 'diffusion' });
59
+ const pathPtr = bridge.allocString(modelPath);
60
+ const idPtr = bridge.allocString(modelId);
61
+ const namePtr = bridge.allocString(modelName ?? modelId);
62
+ try {
63
+ const result = m.ccall('rac_diffusion_component_load_model', 'number', ['number', 'number', 'number', 'number'], [handle, pathPtr, idPtr, namePtr]);
64
+ bridge.checkResult(result, 'rac_diffusion_component_load_model');
65
+ logger.info(`Diffusion model loaded: ${modelId}`);
66
+ EventBus.shared.emit('model.loadCompleted', SDKEventType.Model, { modelId, component: 'diffusion' });
67
+ }
68
+ finally {
69
+ bridge.free(pathPtr);
70
+ bridge.free(idPtr);
71
+ bridge.free(namePtr);
72
+ }
73
+ }
74
+ /** Unload the diffusion model. */
75
+ async unloadModel() {
76
+ if (this._diffusionComponentHandle === 0)
77
+ return;
78
+ const bridge = this.requireBridge();
79
+ const result = bridge.module.ccall('rac_diffusion_component_unload', 'number', ['number'], [this._diffusionComponentHandle]);
80
+ bridge.checkResult(result, 'rac_diffusion_component_unload');
81
+ logger.info('Diffusion model unloaded');
82
+ }
83
+ /** Check if a diffusion model is loaded. */
84
+ get isModelLoaded() {
85
+ if (this._diffusionComponentHandle === 0)
86
+ return false;
87
+ try {
88
+ return WASMBridge.shared.module.ccall('rac_diffusion_component_is_loaded', 'number', ['number'], [this._diffusionComponentHandle]) === 1;
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ }
94
+ /**
95
+ * Generate an image from a text prompt.
96
+ */
97
+ async generate(options) {
98
+ const bridge = this.requireBridge();
99
+ const m = bridge.module;
100
+ const handle = this.ensureDiffusionComponent();
101
+ if (!this.isModelLoaded) {
102
+ throw new SDKError(SDKErrorCode.ModelNotLoaded, 'No diffusion model loaded. Call loadModel() first.');
103
+ }
104
+ logger.info(`Generating image: "${options.prompt.substring(0, 50)}..."`);
105
+ // Build rac_diffusion_options_t
106
+ const optSize = m._rac_wasm_sizeof_diffusion_options();
107
+ const optPtr = m._malloc(optSize);
108
+ for (let i = 0; i < optSize; i++)
109
+ m.setValue(optPtr + i, 0, 'i8');
110
+ const promptPtr = bridge.allocString(options.prompt);
111
+ let negPromptPtr = 0;
112
+ const dOpt = Offsets.diffusionOptions;
113
+ m.setValue(optPtr + dOpt.prompt, promptPtr, '*');
114
+ if (options.negativePrompt) {
115
+ negPromptPtr = bridge.allocString(options.negativePrompt);
116
+ m.setValue(optPtr + dOpt.negativePrompt, negPromptPtr, '*');
117
+ }
118
+ m.setValue(optPtr + dOpt.width, options.width ?? 512, 'i32');
119
+ m.setValue(optPtr + dOpt.height, options.height ?? 512, 'i32');
120
+ m.setValue(optPtr + dOpt.steps, options.steps ?? 28, 'i32');
121
+ m.setValue(optPtr + dOpt.guidanceScale, options.guidanceScale ?? 7.5, 'float');
122
+ // seed is int64 — write low and high 32-bit halves
123
+ const seed = options.seed ?? -1;
124
+ m.setValue(optPtr + dOpt.seed, seed & 0xFFFFFFFF, 'i32');
125
+ m.setValue(optPtr + dOpt.seed + 4, seed < 0 ? -1 : 0, 'i32');
126
+ m.setValue(optPtr + dOpt.scheduler, options.scheduler ?? DiffusionScheduler.DPM_PP_2M_Karras, 'i32');
127
+ m.setValue(optPtr + dOpt.mode, options.mode ?? DiffusionMode.TextToImage, 'i32');
128
+ m.setValue(optPtr + dOpt.denoiseStrength, options.denoiseStrength ?? 0.75, 'float');
129
+ m.setValue(optPtr + dOpt.reportIntermediate, options.reportIntermediateImages ? 1 : 0, 'i32');
130
+ m.setValue(optPtr + dOpt.progressStride, 1, 'i32');
131
+ // Result struct: rac_diffusion_result_t
132
+ const resSize = m._rac_wasm_sizeof_diffusion_result();
133
+ const resPtr = m._malloc(resSize);
134
+ try {
135
+ const r = m.ccall('rac_diffusion_component_generate', 'number', ['number', 'number', 'number'], [handle, optPtr, resPtr]);
136
+ bridge.checkResult(r, 'rac_diffusion_component_generate');
137
+ // Read rac_diffusion_result_t (offsets from compiler via StructOffsets)
138
+ const dRes = Offsets.diffusionResult;
139
+ const imageDataPtr = m.getValue(resPtr + dRes.imageData, '*');
140
+ const imageSize = m.getValue(resPtr + dRes.imageSize, 'i32');
141
+ const width = m.getValue(resPtr + dRes.width, 'i32');
142
+ const height = m.getValue(resPtr + dRes.height, 'i32');
143
+ const seedUsed = m.getValue(resPtr + dRes.seedUsed, 'i32'); // low 32 bits of int64
144
+ const generationTimeMs = m.getValue(resPtr + dRes.generationTimeMs, 'i32'); // low 32 bits
145
+ const safetyFlagged = m.getValue(resPtr + dRes.safetyFlagged, 'i32') === 1;
146
+ // Copy RGBA image data
147
+ const imageData = new Uint8ClampedArray(imageSize);
148
+ if (imageDataPtr && imageSize > 0) {
149
+ imageData.set(bridge.readBytes(imageDataPtr, imageSize));
150
+ }
151
+ // Free C result
152
+ m.ccall('rac_diffusion_result_free', null, ['number'], [resPtr]);
153
+ EventBus.shared.emit('diffusion.generated', SDKEventType.Generation, {
154
+ width, height, generationTimeMs,
155
+ });
156
+ return { imageData, width, height, seedUsed, generationTimeMs, safetyFlagged };
157
+ }
158
+ finally {
159
+ bridge.free(promptPtr);
160
+ if (negPromptPtr)
161
+ bridge.free(negPromptPtr);
162
+ m._free(optPtr);
163
+ }
164
+ }
165
+ /** Cancel in-progress generation. */
166
+ cancel() {
167
+ if (this._diffusionComponentHandle === 0)
168
+ return;
169
+ WASMBridge.shared.module.ccall('rac_diffusion_component_cancel', 'number', ['number'], [this._diffusionComponentHandle]);
170
+ }
171
+ /** Clean up the diffusion component. */
172
+ cleanup() {
173
+ if (this._diffusionComponentHandle !== 0) {
174
+ try {
175
+ WASMBridge.shared.module.ccall('rac_diffusion_component_destroy', null, ['number'], [this._diffusionComponentHandle]);
176
+ }
177
+ catch { /* ignore */ }
178
+ this._diffusionComponentHandle = 0;
179
+ }
180
+ }
181
+ }
182
+ export const Diffusion = new DiffusionImpl();
183
+ //# 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;AAGH,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"}