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.
@@ -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
 
@@ -135,27 +135,11 @@ declare global {
135
135
  }
136
136
  // eslint-disable no-var
137
137
 
138
- if (
139
- global.loadStyleTransfer == null ||
140
- global.loadSemanticSegmentation == null ||
141
- global.loadInstanceSegmentation == null ||
142
- global.loadTextToImage == null ||
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 failure
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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","ignoreList":[]}
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.1';
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
- if (global.loadStyleTransfer == null ||
37
- global.loadSemanticSegmentation == null ||
38
- global.loadInstanceSegmentation == null ||
39
- global.loadTextToImage == null ||
40
- global.loadExecutorchModule == null ||
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,CA8KzB"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-executorch",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "nativeLibsVersion": "0.10.0",
5
5
  "description": "An easy way to run AI models in React Native with ExecuTorch",
6
6
  "main": "./lib/module/index.js",
@@ -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 failure
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
  }
@@ -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.1';
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;