react-native-executorch 0.10.1 → 0.10.2
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/android/CMakeLists.txt +14 -0
- package/legacy/cpp/rnexecutorch/RnExecutorchInstaller.cpp +23 -5
- package/legacy/cpp/rnexecutorch/host_objects/ModelHostObject.h +10 -3
- package/legacy/cpp/rnexecutorch/models/llm/LLM.cpp +11 -0
- package/legacy/cpp/rnexecutorch/threads/GlobalThreadPool.h +5 -1
- package/legacy/src/index.ts +5 -21
- package/lib/module/extensions/llm/tasks/llmChatSession.js +7 -2
- package/lib/module/extensions/llm/tasks/llmChatSession.js.map +1 -1
- package/lib/module/fetcher/telemetry.js +1 -1
- package/lib/module/legacy/src/index.js +5 -19
- package/lib/typescript/src/extensions/llm/tasks/llmChatSession.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-executorch.podspec +32 -0
- package/src/extensions/llm/tasks/llmChatSession.ts +7 -2
- package/src/fetcher/telemetry.ts +1 -1
package/android/CMakeLists.txt
CHANGED
|
@@ -55,6 +55,20 @@ file(GLOB_RECURSE LEGACY_CPP_SOURCES
|
|
|
55
55
|
${LEGACY_CPP_DIR}/runner/*.cpp
|
|
56
56
|
)
|
|
57
57
|
list(FILTER LEGACY_CPP_SOURCES EXCLUDE REGEX "/tests/")
|
|
58
|
+
# The legacy TTS models are the one part of the legacy tree that needs phonemis,
|
|
59
|
+
# so they follow the same toggle as the current phonemizer rather than being
|
|
60
|
+
# compiled unconditionally against a library that is not there.
|
|
61
|
+
if(NOT RNE_ENABLE_PHONEMIS)
|
|
62
|
+
list(FILTER LEGACY_CPP_SOURCES EXCLUDE REGEX "/models/text_to_speech/")
|
|
63
|
+
endif()
|
|
64
|
+
# Same story for opencv: the legacy vision models, the image/frame helpers they
|
|
65
|
+
# share and the multimodal LLM's vision encoder all compile against opencv2.
|
|
66
|
+
# Only the sources are dropped - the Types.h headers next to them are
|
|
67
|
+
# opencv-free and JsiConversions.h includes them unconditionally.
|
|
68
|
+
if(NOT RNE_ENABLE_OPENCV)
|
|
69
|
+
list(FILTER LEGACY_CPP_SOURCES EXCLUDE REGEX
|
|
70
|
+
"/data_processing/ImageProcessing\\.cpp$|/models/VisionModel\\.cpp$|/utils/Frame[^/]*\\.cpp$|/encoders/vision_encoder\\.cpp$|/models/(classification|embeddings/image|instance_segmentation|object_detection|ocr|pose_estimation|semantic_segmentation|style_transfer|text_to_image|vertical_ocr)/")
|
|
71
|
+
endif()
|
|
58
72
|
# ==============================================================================
|
|
59
73
|
|
|
60
74
|
set(PHONEMIS_SOURCES ${CPP_DIR}/extensions/speech/phonemizer.cpp)
|
|
@@ -2,21 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
#include <rnexecutorch/TokenizerModule.h>
|
|
4
4
|
#include <rnexecutorch/host_objects/JsiConversions.h>
|
|
5
|
+
#include <rnexecutorch/models/embeddings/text/TextEmbeddings.h>
|
|
6
|
+
#include <rnexecutorch/models/llm/LLM.h>
|
|
7
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
5
8
|
#include <rnexecutorch/models/classification/Classification.h>
|
|
6
9
|
#include <rnexecutorch/models/embeddings/image/ImageEmbeddings.h>
|
|
7
|
-
#include <rnexecutorch/models/embeddings/text/TextEmbeddings.h>
|
|
8
10
|
#include <rnexecutorch/models/instance_segmentation/BaseInstanceSegmentation.h>
|
|
9
|
-
#include <rnexecutorch/models/llm/LLM.h>
|
|
10
11
|
#include <rnexecutorch/models/object_detection/ObjectDetection.h>
|
|
11
12
|
#include <rnexecutorch/models/ocr/OCR.h>
|
|
12
13
|
#include <rnexecutorch/models/pose_estimation/PoseEstimation.h>
|
|
13
|
-
#include <rnexecutorch/models/privacy_filter/PrivacyFilter.h>
|
|
14
14
|
#include <rnexecutorch/models/semantic_segmentation/BaseSemanticSegmentation.h>
|
|
15
|
-
#include <rnexecutorch/models/speech_to_text/SpeechToText.h>
|
|
16
15
|
#include <rnexecutorch/models/style_transfer/StyleTransfer.h>
|
|
17
16
|
#include <rnexecutorch/models/text_to_image/TextToImage.h>
|
|
18
|
-
#include <rnexecutorch/models/text_to_speech/TextToSpeech.h>
|
|
19
17
|
#include <rnexecutorch/models/vertical_ocr/VerticalOCR.h>
|
|
18
|
+
#endif
|
|
19
|
+
#include <rnexecutorch/models/privacy_filter/PrivacyFilter.h>
|
|
20
|
+
#include <rnexecutorch/models/speech_to_text/SpeechToText.h>
|
|
21
|
+
#ifdef RNE_ENABLE_PHONEMIS
|
|
22
|
+
#include <rnexecutorch/models/text_to_speech/TextToSpeech.h>
|
|
23
|
+
#endif
|
|
20
24
|
#include <rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.h>
|
|
21
25
|
#include <rnexecutorch/threads/GlobalThreadPool.h>
|
|
22
26
|
#include <rnexecutorch/threads/utils/ThreadUtils.h>
|
|
@@ -42,6 +46,10 @@ void RnExecutorchInstaller::injectJSIBindings(
|
|
|
42
46
|
jsiRuntime->global().setProperty(*jsiRuntime, "__rne_isEmulator",
|
|
43
47
|
jsi::Value(isEmulator));
|
|
44
48
|
|
|
49
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
50
|
+
// Registered only when opencv is compiled in. An app that opted out of it
|
|
51
|
+
// gets no `load*` global for these tasks, the same way the current API
|
|
52
|
+
// omits the whole `cv` namespace.
|
|
45
53
|
jsiRuntime->global().setProperty(
|
|
46
54
|
*jsiRuntime, "loadStyleTransfer",
|
|
47
55
|
RnExecutorchInstaller::loadModel<models::style_transfer::StyleTransfer>(
|
|
@@ -79,6 +87,7 @@ void RnExecutorchInstaller::injectJSIBindings(
|
|
|
79
87
|
*jsiRuntime, "loadPoseEstimation",
|
|
80
88
|
RnExecutorchInstaller::loadModel<models::pose_estimation::PoseEstimation>(
|
|
81
89
|
jsiRuntime, jsCallInvoker, "loadPoseEstimation"));
|
|
90
|
+
#endif
|
|
82
91
|
|
|
83
92
|
jsiRuntime->global().setProperty(
|
|
84
93
|
*jsiRuntime, "loadExecutorchModule",
|
|
@@ -90,10 +99,12 @@ void RnExecutorchInstaller::injectJSIBindings(
|
|
|
90
99
|
RnExecutorchInstaller::loadModel<TokenizerModule>(
|
|
91
100
|
jsiRuntime, jsCallInvoker, "loadTokenizerModule"));
|
|
92
101
|
|
|
102
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
93
103
|
jsiRuntime->global().setProperty(
|
|
94
104
|
*jsiRuntime, "loadImageEmbeddings",
|
|
95
105
|
RnExecutorchInstaller::loadModel<models::embeddings::ImageEmbeddings>(
|
|
96
106
|
jsiRuntime, jsCallInvoker, "loadImageEmbeddings"));
|
|
107
|
+
#endif
|
|
97
108
|
|
|
98
109
|
jsiRuntime->global().setProperty(
|
|
99
110
|
*jsiRuntime, "loadTextEmbeddings",
|
|
@@ -110,6 +121,7 @@ void RnExecutorchInstaller::injectJSIBindings(
|
|
|
110
121
|
RnExecutorchInstaller::loadModel<models::privacy_filter::PrivacyFilter>(
|
|
111
122
|
jsiRuntime, jsCallInvoker, "loadPrivacyFilter"));
|
|
112
123
|
|
|
124
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
113
125
|
jsiRuntime->global().setProperty(
|
|
114
126
|
*jsiRuntime, "loadOCR",
|
|
115
127
|
RnExecutorchInstaller::loadModel<models::ocr::OCR>(
|
|
@@ -119,16 +131,22 @@ void RnExecutorchInstaller::injectJSIBindings(
|
|
|
119
131
|
*jsiRuntime, "loadVerticalOCR",
|
|
120
132
|
RnExecutorchInstaller::loadModel<models::ocr::VerticalOCR>(
|
|
121
133
|
jsiRuntime, jsCallInvoker, "loadVerticalOCR"));
|
|
134
|
+
#endif
|
|
122
135
|
|
|
123
136
|
jsiRuntime->global().setProperty(
|
|
124
137
|
*jsiRuntime, "loadSpeechToText",
|
|
125
138
|
RnExecutorchInstaller::loadModel<models::speech_to_text::SpeechToText>(
|
|
126
139
|
jsiRuntime, jsCallInvoker, "loadSpeechToText"));
|
|
127
140
|
|
|
141
|
+
#ifdef RNE_ENABLE_PHONEMIS
|
|
142
|
+
// Only registered when phonemis is compiled in; an app that opted out of
|
|
143
|
+
// text-to-speech gets no `loadTextToSpeechKokoro` global, the same way the
|
|
144
|
+
// current API omits `speech.createPhonemizer`.
|
|
128
145
|
jsiRuntime->global().setProperty(
|
|
129
146
|
*jsiRuntime, "loadTextToSpeechKokoro",
|
|
130
147
|
RnExecutorchInstaller::loadModel<models::text_to_speech::kokoro::Kokoro>(
|
|
131
148
|
jsiRuntime, jsCallInvoker, "loadTextToSpeechKokoro"));
|
|
149
|
+
#endif
|
|
132
150
|
|
|
133
151
|
jsiRuntime->global().setProperty(
|
|
134
152
|
*jsiRuntime, "loadVAD",
|
|
@@ -17,13 +17,16 @@
|
|
|
17
17
|
#include <rnexecutorch/metaprogramming/FunctionHelpers.h>
|
|
18
18
|
#include <rnexecutorch/metaprogramming/TypeConcepts.h>
|
|
19
19
|
#include <rnexecutorch/models/BaseModel.h>
|
|
20
|
-
#include <rnexecutorch/models/VisionModel.h>
|
|
21
20
|
#include <rnexecutorch/models/llm/LLM.h>
|
|
21
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
22
22
|
#include <rnexecutorch/models/ocr/OCR.h>
|
|
23
|
-
#include <rnexecutorch/models/speech_to_text/SpeechToText.h>
|
|
24
23
|
#include <rnexecutorch/models/text_to_image/TextToImage.h>
|
|
25
|
-
#include <rnexecutorch/models/text_to_speech/TextToSpeech.h>
|
|
26
24
|
#include <rnexecutorch/models/vertical_ocr/VerticalOCR.h>
|
|
25
|
+
#endif
|
|
26
|
+
#include <rnexecutorch/models/speech_to_text/SpeechToText.h>
|
|
27
|
+
#ifdef RNE_ENABLE_PHONEMIS
|
|
28
|
+
#include <rnexecutorch/models/text_to_speech/TextToSpeech.h>
|
|
29
|
+
#endif
|
|
27
30
|
#include <rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.h>
|
|
28
31
|
#include <rnexecutorch/threads/GlobalThreadPool.h>
|
|
29
32
|
|
|
@@ -202,6 +205,7 @@ public:
|
|
|
202
205
|
"getVisualTokenCount"));
|
|
203
206
|
}
|
|
204
207
|
|
|
208
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
205
209
|
if constexpr (meta::SameAs<Model, models::text_to_image::TextToImage>) {
|
|
206
210
|
addFunctions(
|
|
207
211
|
JSI_EXPORT_FUNCTION(ModelHostObject<Model>, unload, "unload"));
|
|
@@ -219,7 +223,9 @@ public:
|
|
|
219
223
|
addFunctions(
|
|
220
224
|
JSI_EXPORT_FUNCTION(ModelHostObject<Model>, unload, "unload"));
|
|
221
225
|
}
|
|
226
|
+
#endif
|
|
222
227
|
|
|
228
|
+
#ifdef RNE_ENABLE_PHONEMIS
|
|
223
229
|
if constexpr (meta::SameAs<Model, models::text_to_speech::kokoro::Kokoro>) {
|
|
224
230
|
addFunctions(
|
|
225
231
|
JSI_EXPORT_FUNCTION(ModelHostObject<Model>, unload, "unload"));
|
|
@@ -236,6 +242,7 @@ public:
|
|
|
236
242
|
ModelHostObject<Model>, synchronousHostFunction<&Model::streamFlush>,
|
|
237
243
|
"streamFlush"));
|
|
238
244
|
}
|
|
245
|
+
#endif
|
|
239
246
|
|
|
240
247
|
if constexpr (meta::HasGenerateFromString<Model>) {
|
|
241
248
|
addFunctions(
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
#include <rnexecutorch/Error.h>
|
|
8
8
|
#include <rnexecutorch/threads/GlobalThreadPool.h>
|
|
9
9
|
#include <runner/encoders/audio_encoder.h>
|
|
10
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
10
11
|
#include <runner/encoders/vision_encoder.h>
|
|
12
|
+
#endif
|
|
11
13
|
#include <runner/multimodal_runner.h>
|
|
12
14
|
#include <runner/text_runner.h>
|
|
13
15
|
|
|
@@ -29,8 +31,17 @@ LLM::LLM(const std::string &modelSource, const std::string &tokenizerSource,
|
|
|
29
31
|
std::map<llm::MultimodalType, std::unique_ptr<llm::IEncoder>> encoders;
|
|
30
32
|
for (const auto &cap : capabilities) {
|
|
31
33
|
if (cap == "vision") {
|
|
34
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
32
35
|
encoders[llm::MultimodalType::Image] =
|
|
33
36
|
std::make_unique<llm::VisionEncoder>(*module_);
|
|
37
|
+
#else
|
|
38
|
+
// The vision encoder decodes and resizes the image with opencv,
|
|
39
|
+
// so it is only there when opencv is.
|
|
40
|
+
throw RnExecutorchError(
|
|
41
|
+
RnExecutorchErrorCode::InvalidUserInput,
|
|
42
|
+
"The 'vision' capability requires the opencv native library, "
|
|
43
|
+
"which this app opted out of in package.json");
|
|
44
|
+
#endif
|
|
34
45
|
} else if (cap == "audio") {
|
|
35
46
|
encoders[llm::MultimodalType::Audio] =
|
|
36
47
|
std::make_unique<llm::AudioEncoder>(*module_);
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
#include <executorch/extension/threadpool/cpuinfo_utils.h>
|
|
5
5
|
#include <memory>
|
|
6
6
|
#include <mutex>
|
|
7
|
-
#include <opencv2/opencv.hpp>
|
|
8
7
|
#include <optional>
|
|
9
8
|
#include <rnexecutorch/Log.h>
|
|
10
9
|
#include <rnexecutorch/threads/HighPerformanceThreadPool.h>
|
|
10
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
11
|
+
#include <opencv2/opencv.hpp>
|
|
12
|
+
#endif
|
|
11
13
|
|
|
12
14
|
namespace rnexecutorch::threads {
|
|
13
15
|
|
|
@@ -39,9 +41,11 @@ public:
|
|
|
39
41
|
numThreads, "threads");
|
|
40
42
|
instance = std::make_unique<HighPerformanceThreadPool>(numThreads.value(),
|
|
41
43
|
config);
|
|
44
|
+
#ifdef RNE_ENABLE_OPENCV
|
|
42
45
|
// Disable OpenCV's internal threading to prevent it from overriding our
|
|
43
46
|
// thread pool configuration, which would cause degraded performance
|
|
44
47
|
cv::setNumThreads(0);
|
|
48
|
+
#endif
|
|
45
49
|
});
|
|
46
50
|
}
|
|
47
51
|
|
package/legacy/src/index.ts
CHANGED
|
@@ -135,27 +135,11 @@ declare global {
|
|
|
135
135
|
}
|
|
136
136
|
// eslint-disable no-var
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
global.loadExecutorchModule == null ||
|
|
144
|
-
global.loadClassification == null ||
|
|
145
|
-
global.loadObjectDetection == null ||
|
|
146
|
-
global.loadPoseEstimation == null ||
|
|
147
|
-
global.loadTokenizerModule == null ||
|
|
148
|
-
global.loadTextEmbeddings == null ||
|
|
149
|
-
global.loadImageEmbeddings == null ||
|
|
150
|
-
global.loadVAD == null ||
|
|
151
|
-
global.loadLLM == null ||
|
|
152
|
-
global.loadPrivacyFilter == null ||
|
|
153
|
-
global.loadSpeechToText == null ||
|
|
154
|
-
global.loadTextToSpeechKokoro == null ||
|
|
155
|
-
global.loadOCR == null ||
|
|
156
|
-
global.loadVerticalOCR == null ||
|
|
157
|
-
global.__rne_isEmulator == null
|
|
158
|
-
) {
|
|
138
|
+
// Only the globals that are registered unconditionally. The per-task ones are
|
|
139
|
+
// absent by design when an app opts out of opencv or phonemis, so including
|
|
140
|
+
// them here would pin the condition to true and re-run install() on every
|
|
141
|
+
// module evaluation.
|
|
142
|
+
if (global.loadExecutorchModule == null || global.__rne_isEmulator == null) {
|
|
159
143
|
if (!ETInstallerNativeModule) {
|
|
160
144
|
throw new Error(
|
|
161
145
|
`Failed to install react-native-executorch: The native module could not be found.`
|
|
@@ -246,10 +246,15 @@ export async function createLLMChatSession(config, options = {}, runtime) {
|
|
|
246
246
|
finishReason
|
|
247
247
|
};
|
|
248
248
|
} catch (err) {
|
|
249
|
-
// Roll back history, KV cache, and active tensors to pre-turn state on
|
|
249
|
+
// Roll back history, KV cache, and active tensors to pre-turn state on
|
|
250
|
+
// failure. The rewind must never replace the error it is unwinding.
|
|
251
|
+
//
|
|
252
|
+
// Under `resetOnTurn` the pre-turn position IS zero: `initialPos` is
|
|
253
|
+
// read before the turn begins and the turn then zeroed the cache, so
|
|
254
|
+
// rewinding to it is out of range by construction.
|
|
250
255
|
history.length = turnStartIdx;
|
|
251
256
|
committed = initialCommitted;
|
|
252
|
-
runner.reset(initialPos);
|
|
257
|
+
runner.reset(resetOnTurn ? 0 : initialPos);
|
|
253
258
|
chatPreprocessor.clear();
|
|
254
259
|
throw err;
|
|
255
260
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["scheduleOnRN","RNBlobUtil","wrapAsync","createResourceScope","createLLMRunner","parseTokenizerConfig","createChatPreprocessor","generateChatTurnWorklet","runner","prompt","options","genConfig","eosToken","stopRegex","onToken","response","callback","token","test","stop","stats","generate","DEFAULT_MAX_TURNS","createLLMChatSession","config","runtime","scope","dispose","generationConfig","defaultGenerationConfig","initialMessages","toolOpts","resetOnTurn","modelPath","tokenizerPath","tokenizerConfigPath","modalities","preprocessorConfig","tools","parseToolCalls","maxToolTurns","tokenizerConfigStr","fs","readFile","tokenizerConfig","JSON","parse","chatTemplate","chatPreprocessorConfig","chatPreprocessor","track","prefill","history","committed","length","push","process","addGenPrompt","clear","generateChatTurn","sendMessage","message","turnGenConfig","generationOpts","initialCommitted","initialPos","getKVCacheState","pos","turnStartIdx","generationStatsList","role","content","reset","prefillStartMs","Date","now","toCommit","userPrompt","posAtEndOfUser","finishReason","currentTurn","uncommitted","prefillDurationMs","parsedTools","toolCalls","textContent","toolCall","tool","find","t","function","name","toolContent","execute","arguments","err","String","toolCallId","id","messages","slice","getHistory","error"],"sourceRoot":"../../../../../src","sources":["extensions/llm/tasks/llmChatSession.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["scheduleOnRN","RNBlobUtil","wrapAsync","createResourceScope","createLLMRunner","parseTokenizerConfig","createChatPreprocessor","generateChatTurnWorklet","runner","prompt","options","genConfig","eosToken","stopRegex","onToken","response","callback","token","test","stop","stats","generate","DEFAULT_MAX_TURNS","createLLMChatSession","config","runtime","scope","dispose","generationConfig","defaultGenerationConfig","initialMessages","toolOpts","resetOnTurn","modelPath","tokenizerPath","tokenizerConfigPath","modalities","preprocessorConfig","tools","parseToolCalls","maxToolTurns","tokenizerConfigStr","fs","readFile","tokenizerConfig","JSON","parse","chatTemplate","chatPreprocessorConfig","chatPreprocessor","track","prefill","history","committed","length","push","process","addGenPrompt","clear","generateChatTurn","sendMessage","message","turnGenConfig","generationOpts","initialCommitted","initialPos","getKVCacheState","pos","turnStartIdx","generationStatsList","role","content","reset","prefillStartMs","Date","now","toCommit","userPrompt","posAtEndOfUser","finishReason","currentTurn","uncommitted","prefillDurationMs","parsedTools","toolCalls","textContent","toolCall","tool","find","t","function","name","toolContent","execute","arguments","err","String","toolCallId","id","messages","slice","getHistory","error"],"sourceRoot":"../../../../../src","sources":["extensions/llm/tasks/llmChatSession.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ const DOWNLOAD_EVENT_ENDPOINT = 'https://ai.swmansion.com/telemetry/downloads/ap
|
|
|
12
12
|
// self-referencing import would need package `exports` support in the consuming
|
|
13
13
|
// bundler to load at all. A wrong value here is analytics noise; a failed
|
|
14
14
|
// import would break the bundle.
|
|
15
|
-
const LIB_VERSION = '0.10.
|
|
15
|
+
const LIB_VERSION = '0.10.2';
|
|
16
16
|
|
|
17
17
|
// Anonymous analytics are on by default; apps opt out via setTelemetryEnabled.
|
|
18
18
|
let telemetryEnabled = true;
|
|
@@ -33,25 +33,11 @@ export function cleanupExecutorch() {
|
|
|
33
33
|
ResourceFetcher.resetAdapter();
|
|
34
34
|
}
|
|
35
35
|
// eslint-disable no-var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
global.loadClassification == null ||
|
|
42
|
-
global.loadObjectDetection == null ||
|
|
43
|
-
global.loadPoseEstimation == null ||
|
|
44
|
-
global.loadTokenizerModule == null ||
|
|
45
|
-
global.loadTextEmbeddings == null ||
|
|
46
|
-
global.loadImageEmbeddings == null ||
|
|
47
|
-
global.loadVAD == null ||
|
|
48
|
-
global.loadLLM == null ||
|
|
49
|
-
global.loadPrivacyFilter == null ||
|
|
50
|
-
global.loadSpeechToText == null ||
|
|
51
|
-
global.loadTextToSpeechKokoro == null ||
|
|
52
|
-
global.loadOCR == null ||
|
|
53
|
-
global.loadVerticalOCR == null ||
|
|
54
|
-
global.__rne_isEmulator == null) {
|
|
36
|
+
// Only the globals that are registered unconditionally. The per-task ones are
|
|
37
|
+
// absent by design when an app opts out of opencv or phonemis, so including
|
|
38
|
+
// them here would pin the condition to true and re-run install() on every
|
|
39
|
+
// module evaluation.
|
|
40
|
+
if (global.loadExecutorchModule == null || global.__rne_isEmulator == null) {
|
|
55
41
|
if (!ETInstallerNativeModule) {
|
|
56
42
|
throw new Error(`Failed to install react-native-executorch: The native module could not be found.`);
|
|
57
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmChatSession.d.ts","sourceRoot":"","sources":["../../../../../../src/extensions/llm/tasks/llmChatSession.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK1E,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EAEd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC1C,wCAAwC;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;CAC1D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,gDAAgD;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IAChD,uEAAuE;IACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAClD,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;CAChD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,UAAU,IAAI,SAAS,WAAW,EAAE,CAAC;IAErC;;OAEG;IACH,eAAe,IAAI,eAAe,CAAC;IAEnC;;;;;;;;OAQG;IACH,WAAW,CACT,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,SAAS,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B,CAAC;AAgCF;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,qBAA0B,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"llmChatSession.d.ts","sourceRoot":"","sources":["../../../../../../src/extensions/llm/tasks/llmChatSession.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK1E,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EAEd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC1C,wCAAwC;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;CAC1D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,gDAAgD;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IAChD,uEAAuE;IACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAClD,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;CAChD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,UAAU,IAAI,SAAS,WAAW,EAAE,CAAC;IAErC;;OAEG;IACH,eAAe,IAAI,eAAe,CAAC;IAEnC;;;;;;;;OAQG;IACH,WAAW,CACT,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,SAAS,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B,CAAC;AAgCF;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,qBAA0B,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC,CAmLzB"}
|
package/package.json
CHANGED
|
@@ -136,6 +136,38 @@ Pod::Spec.new do |s|
|
|
|
136
136
|
# ==============================================================================
|
|
137
137
|
exclude_files += opencv_source_files unless enable_opencv
|
|
138
138
|
exclude_files += phonemis_source_files unless enable_phonemis
|
|
139
|
+
# ==============================================================================
|
|
140
|
+
# LEGACY SUPPORT: the legacy TTS models need phonemis too, and `legacy/cpp/**`
|
|
141
|
+
# above sweeps them in unconditionally. Without this they compile — the
|
|
142
|
+
# phonemis headers stay on HEADER_SEARCH_PATHS — and fail at link with
|
|
143
|
+
# undefined phonemis::Pipeline symbols.
|
|
144
|
+
# (Remove when react-native-executorch/legacy is dropped)
|
|
145
|
+
# ==============================================================================
|
|
146
|
+
unless enable_phonemis
|
|
147
|
+
exclude_files += ["legacy/cpp/rnexecutorch/models/text_to_speech/**/*.{cpp,c,h,hpp}"]
|
|
148
|
+
end
|
|
149
|
+
# ==============================================================================
|
|
150
|
+
# LEGACY SUPPORT: the same for opencv. The legacy vision models, the
|
|
151
|
+
# image/frame helpers they share and the multimodal LLM's vision encoder all
|
|
152
|
+
# compile against opencv2, which is not linked when opencv is off. Only the
|
|
153
|
+
# sources are excluded: the `Types.h` headers sitting next to them are
|
|
154
|
+
# opencv-free and `JsiConversions.h` includes them unconditionally.
|
|
155
|
+
# (Remove when react-native-executorch/legacy is dropped)
|
|
156
|
+
# ==============================================================================
|
|
157
|
+
unless enable_opencv
|
|
158
|
+
legacy_dir = "legacy/cpp/rnexecutorch"
|
|
159
|
+
exclude_files += [
|
|
160
|
+
"#{legacy_dir}/data_processing/ImageProcessing.cpp",
|
|
161
|
+
"#{legacy_dir}/models/VisionModel.cpp",
|
|
162
|
+
"#{legacy_dir}/utils/Frame*.cpp",
|
|
163
|
+
"legacy/cpp/runner/encoders/vision_encoder.cpp",
|
|
164
|
+
]
|
|
165
|
+
exclude_files += %w[
|
|
166
|
+
classification embeddings/image instance_segmentation object_detection ocr
|
|
167
|
+
pose_estimation semantic_segmentation style_transfer text_to_image vertical_ocr
|
|
168
|
+
].map { |task| "#{legacy_dir}/models/#{task}/**/*.{cpp,c}" }
|
|
169
|
+
end
|
|
170
|
+
# ==============================================================================
|
|
139
171
|
s.exclude_files = exclude_files
|
|
140
172
|
|
|
141
173
|
# --- Public headers ---
|
|
@@ -330,10 +330,15 @@ export async function createLLMChatSession(
|
|
|
330
330
|
|
|
331
331
|
return { messages: history.slice(turnStartIdx), stats: generationStatsList, finishReason };
|
|
332
332
|
} catch (err) {
|
|
333
|
-
// Roll back history, KV cache, and active tensors to pre-turn state on
|
|
333
|
+
// Roll back history, KV cache, and active tensors to pre-turn state on
|
|
334
|
+
// failure. The rewind must never replace the error it is unwinding.
|
|
335
|
+
//
|
|
336
|
+
// Under `resetOnTurn` the pre-turn position IS zero: `initialPos` is
|
|
337
|
+
// read before the turn begins and the turn then zeroed the cache, so
|
|
338
|
+
// rewinding to it is out of range by construction.
|
|
334
339
|
history.length = turnStartIdx;
|
|
335
340
|
committed = initialCommitted;
|
|
336
|
-
runner.reset(initialPos);
|
|
341
|
+
runner.reset(resetOnTurn ? 0 : initialPos);
|
|
337
342
|
chatPreprocessor.clear();
|
|
338
343
|
throw err;
|
|
339
344
|
}
|
package/src/fetcher/telemetry.ts
CHANGED
|
@@ -10,7 +10,7 @@ const DOWNLOAD_EVENT_ENDPOINT = 'https://ai.swmansion.com/telemetry/downloads/ap
|
|
|
10
10
|
// self-referencing import would need package `exports` support in the consuming
|
|
11
11
|
// bundler to load at all. A wrong value here is analytics noise; a failed
|
|
12
12
|
// import would break the bundle.
|
|
13
|
-
const LIB_VERSION = '0.10.
|
|
13
|
+
const LIB_VERSION = '0.10.2';
|
|
14
14
|
|
|
15
15
|
// Anonymous analytics are on by default; apps opt out via setTelemetryEnabled.
|
|
16
16
|
let telemetryEnabled = true;
|