@inferrlm/react-native-mlx 0.2.0-inferrlm.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MLXReactNative.podspec +9 -3
- package/ios/Sources/AudioCaptureManager.swift +110 -0
- package/ios/Sources/HybridLLM.swift +562 -74
- package/ios/Sources/HybridSTT.swift +202 -0
- package/ios/Sources/HybridTTS.swift +145 -0
- package/ios/Sources/JSONHelpers.swift +9 -0
- package/ios/Sources/ModelDownloader.swift +26 -12
- package/ios/Sources/StreamEventEmitter.swift +132 -0
- package/ios/Sources/ThinkingStateMachine.swift +206 -0
- package/nitrogen/generated/ios/MLXReactNative+autolinking.rb +1 -1
- package/nitrogen/generated/ios/MLXReactNative-Swift-Cxx-Bridge.cpp +76 -1
- package/nitrogen/generated/ios/MLXReactNative-Swift-Cxx-Bridge.hpp +338 -1
- package/nitrogen/generated/ios/MLXReactNative-Swift-Cxx-Umbrella.hpp +28 -1
- package/nitrogen/generated/ios/MLXReactNativeAutolinking.mm +17 -1
- package/nitrogen/generated/ios/MLXReactNativeAutolinking.swift +31 -1
- package/nitrogen/generated/ios/c++/HybridLLMSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridLLMSpecSwift.hpp +18 -3
- package/nitrogen/generated/ios/c++/HybridModelManagerSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridModelManagerSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/c++/HybridSTTSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridSTTSpecSwift.hpp +149 -0
- package/nitrogen/generated/ios/c++/HybridTTSSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridTTSSpecSwift.hpp +128 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__shared_ptr_AnyMap______std__shared_ptr_AnyMap_.swift +62 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_AnyMap_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_ArrayBuffer_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__shared_ptr_AnyMap___.swift +67 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +1 -1
- package/nitrogen/generated/ios/swift/GenerationStats.swift +14 -3
- package/nitrogen/generated/ios/swift/HybridLLMSpec.swift +3 -2
- package/nitrogen/generated/ios/swift/HybridLLMSpec_cxx.swift +38 -2
- package/nitrogen/generated/ios/swift/HybridModelManagerSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridModelManagerSpec_cxx.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridSTTSpec.swift +66 -0
- package/nitrogen/generated/ios/swift/HybridSTTSpec_cxx.swift +286 -0
- package/nitrogen/generated/ios/swift/HybridTTSSpec.swift +63 -0
- package/nitrogen/generated/ios/swift/HybridTTSSpec_cxx.swift +229 -0
- package/nitrogen/generated/ios/swift/LLMLoadOptions.swift +44 -2
- package/nitrogen/generated/ios/swift/LLMMessage.swift +1 -1
- package/nitrogen/generated/ios/swift/STTLoadOptions.swift +66 -0
- package/nitrogen/generated/ios/swift/TTSGenerateOptions.swift +78 -0
- package/nitrogen/generated/ios/swift/TTSLoadOptions.swift +66 -0
- package/nitrogen/generated/ios/swift/ToolDefinition.swift +113 -0
- package/nitrogen/generated/ios/swift/ToolParameter.swift +69 -0
- package/nitrogen/generated/shared/c++/GenerationStats.hpp +7 -3
- package/nitrogen/generated/shared/c++/HybridLLMSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridLLMSpec.hpp +3 -2
- package/nitrogen/generated/shared/c++/HybridModelManagerSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridModelManagerSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridSTTSpec.cpp +32 -0
- package/nitrogen/generated/shared/c++/HybridSTTSpec.hpp +78 -0
- package/nitrogen/generated/shared/c++/HybridTTSSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridTTSSpec.hpp +78 -0
- package/nitrogen/generated/shared/c++/LLMLoadOptions.hpp +10 -3
- package/nitrogen/generated/shared/c++/LLMMessage.hpp +1 -1
- package/nitrogen/generated/shared/c++/STTLoadOptions.hpp +76 -0
- package/nitrogen/generated/shared/c++/TTSGenerateOptions.hpp +80 -0
- package/nitrogen/generated/shared/c++/TTSLoadOptions.hpp +76 -0
- package/nitrogen/generated/shared/c++/ToolDefinition.hpp +93 -0
- package/nitrogen/generated/shared/c++/ToolParameter.hpp +87 -0
- package/package.json +13 -8
- package/src/index.ts +48 -4
- package/src/llm.ts +90 -5
- package/src/models.ts +347 -0
- package/src/specs/LLM.nitro.ts +111 -7
- package/src/specs/STT.nitro.ts +35 -0
- package/src/specs/TTS.nitro.ts +30 -0
- package/src/stt.ts +67 -0
- package/src/tool-utils.ts +74 -0
- package/src/tts.ts +60 -0
- package/lib/module/index.js +0 -6
- package/lib/module/index.js.map +0 -1
- package/lib/module/llm.js +0 -125
- package/lib/module/llm.js.map +0 -1
- package/lib/module/modelManager.js +0 -79
- package/lib/module/modelManager.js.map +0 -1
- package/lib/module/models.js +0 -41
- package/lib/module/models.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/module/specs/LLM.nitro.js +0 -4
- package/lib/module/specs/LLM.nitro.js.map +0 -1
- package/lib/module/specs/ModelManager.nitro.js +0 -4
- package/lib/module/specs/ModelManager.nitro.js.map +0 -1
- package/lib/typescript/package.json +0 -1
- package/lib/typescript/src/index.d.ts +0 -6
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/llm.d.ts +0 -87
- package/lib/typescript/src/llm.d.ts.map +0 -1
- package/lib/typescript/src/modelManager.d.ts +0 -53
- package/lib/typescript/src/modelManager.d.ts.map +0 -1
- package/lib/typescript/src/models.d.ts +0 -29
- package/lib/typescript/src/models.d.ts.map +0 -1
- package/lib/typescript/src/specs/LLM.nitro.d.ts +0 -88
- package/lib/typescript/src/specs/LLM.nitro.d.ts.map +0 -1
- package/lib/typescript/src/specs/ModelManager.nitro.d.ts +0 -41
- package/lib/typescript/src/specs/ModelManager.nitro.d.ts.map +0 -1
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
-
/**
|
|
3
|
-
* Statistics from the last text generation.
|
|
4
|
-
*/
|
|
5
|
-
export interface GenerationStats {
|
|
6
|
-
/** Total number of tokens generated */
|
|
7
|
-
tokenCount: number;
|
|
8
|
-
/** Generation speed in tokens per second */
|
|
9
|
-
tokensPerSecond: number;
|
|
10
|
-
/** Time in milliseconds until the first token was generated */
|
|
11
|
-
timeToFirstToken: number;
|
|
12
|
-
/** Total generation time in milliseconds */
|
|
13
|
-
totalTime: number;
|
|
14
|
-
}
|
|
15
|
-
export interface LLMMessage {
|
|
16
|
-
role: string;
|
|
17
|
-
content: string;
|
|
18
|
-
}
|
|
19
|
-
/** Options for loading a model.
|
|
20
|
-
*/
|
|
21
|
-
export interface LLMLoadOptions {
|
|
22
|
-
/** Callback invoked with loading progress (0-1) */
|
|
23
|
-
onProgress?: (progress: number) => void;
|
|
24
|
-
/** Additional context to provide to the model */
|
|
25
|
-
additionalContext?: LLMMessage[];
|
|
26
|
-
/** Whether to automatically manage message history */
|
|
27
|
-
manageHistory?: boolean;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Low-level LLM interface for text generation using MLX.
|
|
31
|
-
* @internal Use the `LLM` export from `react-native-nitro-mlx` instead.
|
|
32
|
-
*/
|
|
33
|
-
export interface LLM extends HybridObject<{
|
|
34
|
-
ios: 'swift';
|
|
35
|
-
}> {
|
|
36
|
-
/**
|
|
37
|
-
* Load a model into memory. Downloads from HuggingFace if not already cached.
|
|
38
|
-
* @param modelId - HuggingFace model ID (e.g., 'mlx-community/Qwen3-0.6B-4bit')
|
|
39
|
-
* @param options - Callback invoked with loading progress (0-1)
|
|
40
|
-
*/
|
|
41
|
-
load(modelId: string, options?: LLMLoadOptions): Promise<void>;
|
|
42
|
-
/**
|
|
43
|
-
* Generate a complete response for a prompt.
|
|
44
|
-
* @param prompt - The input text to generate a response for
|
|
45
|
-
* @returns The generated text
|
|
46
|
-
*/
|
|
47
|
-
generate(prompt: string): Promise<string>;
|
|
48
|
-
/**
|
|
49
|
-
* Stream a response token by token.
|
|
50
|
-
* @param prompt - The input text to generate a response for
|
|
51
|
-
* @param onToken - Callback invoked for each generated token
|
|
52
|
-
* @returns The complete generated text
|
|
53
|
-
*/
|
|
54
|
-
stream(prompt: string, onToken: (token: string) => void): Promise<string>;
|
|
55
|
-
/**
|
|
56
|
-
* Stop the current generation.
|
|
57
|
-
*/
|
|
58
|
-
stop(): void;
|
|
59
|
-
/**
|
|
60
|
-
* Unload the current model and release memory.
|
|
61
|
-
*/
|
|
62
|
-
unload(): void;
|
|
63
|
-
/**
|
|
64
|
-
* Get statistics from the last generation.
|
|
65
|
-
* @returns Statistics including token count, speed, and timing
|
|
66
|
-
*/
|
|
67
|
-
getLastGenerationStats(): GenerationStats;
|
|
68
|
-
/**
|
|
69
|
-
* Get the message history if management is enabled.
|
|
70
|
-
* @returns Array of messages in the history
|
|
71
|
-
*/
|
|
72
|
-
getHistory(): LLMMessage[];
|
|
73
|
-
/**
|
|
74
|
-
* Clear the message history.
|
|
75
|
-
*/
|
|
76
|
-
clearHistory(): void;
|
|
77
|
-
/** Whether a model is currently loaded */
|
|
78
|
-
readonly isLoaded: boolean;
|
|
79
|
-
/** Whether text is currently being generated */
|
|
80
|
-
readonly isGenerating: boolean;
|
|
81
|
-
/** The ID of the currently loaded model */
|
|
82
|
-
readonly modelId: string;
|
|
83
|
-
/** Enable debug logging */
|
|
84
|
-
debug: boolean;
|
|
85
|
-
/** System prompt used when loading the model */
|
|
86
|
-
systemPrompt: string;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=LLM.nitro.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LLM.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/LLM.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAA;IACvB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAA;IACxB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;GACG;AACH,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAA;IAChC,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,GAAI,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;IACzD;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE9D;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEzC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEzE;;OAEG;IACH,IAAI,IAAI,IAAI,CAAA;IAEZ;;OAEG;IACH,MAAM,IAAI,IAAI,CAAA;IAEd;;;OAGG;IACH,sBAAsB,IAAI,eAAe,CAAA;IAEzC;;;OAGG;IACH,UAAU,IAAI,UAAU,EAAE,CAAA;IAE1B;;OAEG;IACH,YAAY,IAAI,IAAI,CAAA;IAEpB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAA;CACrB"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
-
/**
|
|
3
|
-
* Low-level interface for managing MLX model downloads.
|
|
4
|
-
* @internal Use the `ModelManager` export from `react-native-nitro-mlx` instead.
|
|
5
|
-
*/
|
|
6
|
-
export interface ModelManager extends HybridObject<{
|
|
7
|
-
ios: 'swift';
|
|
8
|
-
}> {
|
|
9
|
-
/**
|
|
10
|
-
* Download a model from HuggingFace.
|
|
11
|
-
* @param modelId - HuggingFace model ID (e.g., 'mlx-community/Qwen3-0.6B-4bit')
|
|
12
|
-
* @param progressCallback - Callback invoked with download progress (0-1)
|
|
13
|
-
* @returns Path to the downloaded model directory
|
|
14
|
-
*/
|
|
15
|
-
download(modelId: string, progressCallback: (progress: number) => void): Promise<string>;
|
|
16
|
-
/**
|
|
17
|
-
* Check if a model is already downloaded.
|
|
18
|
-
* @param modelId - HuggingFace model ID
|
|
19
|
-
* @returns True if the model is downloaded
|
|
20
|
-
*/
|
|
21
|
-
isDownloaded(modelId: string): Promise<boolean>;
|
|
22
|
-
/**
|
|
23
|
-
* Get a list of all downloaded model IDs.
|
|
24
|
-
* @returns Array of downloaded model IDs
|
|
25
|
-
*/
|
|
26
|
-
getDownloadedModels(): Promise<string[]>;
|
|
27
|
-
/**
|
|
28
|
-
* Delete a downloaded model.
|
|
29
|
-
* @param modelId - HuggingFace model ID
|
|
30
|
-
*/
|
|
31
|
-
deleteModel(modelId: string): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Get the local filesystem path for a downloaded model.
|
|
34
|
-
* @param modelId - HuggingFace model ID
|
|
35
|
-
* @returns Path to the model directory
|
|
36
|
-
*/
|
|
37
|
-
getModelPath(modelId: string): Promise<string>;
|
|
38
|
-
/** Enable debug logging */
|
|
39
|
-
debug: boolean;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=ModelManager.nitro.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelManager.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/ModelManager.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;IAClE;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAExF;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE/C;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAExC;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE9C,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAA;CACf"}
|