cui-llama.rn 1.7.3 → 1.7.6

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 (276) hide show
  1. package/README.md +217 -17
  2. package/android/src/main/CMakeLists.txt +34 -15
  3. package/android/src/main/java/com/rnllama/LlamaContext.java +94 -8
  4. package/android/src/main/java/com/rnllama/RNLlama.java +247 -0
  5. package/android/src/main/jni.cpp +213 -14
  6. package/android/src/main/jniLibs/arm64-v8a/librnllama.so +0 -0
  7. package/android/src/main/jniLibs/arm64-v8a/librnllama_v8.so +0 -0
  8. package/android/src/main/jniLibs/arm64-v8a/librnllama_v8_2.so +0 -0
  9. package/android/src/main/jniLibs/arm64-v8a/librnllama_v8_2_dotprod.so +0 -0
  10. package/android/src/main/jniLibs/arm64-v8a/librnllama_v8_2_dotprod_i8mm.so +0 -0
  11. package/android/src/main/jniLibs/arm64-v8a/librnllama_v8_2_i8mm.so +0 -0
  12. package/android/src/main/jniLibs/x86_64/librnllama.so +0 -0
  13. package/android/src/main/jniLibs/x86_64/librnllama_x86_64.so +0 -0
  14. package/android/src/newarch/java/com/rnllama/RNLlamaModule.java +35 -0
  15. package/android/src/oldarch/java/com/rnllama/RNLlamaModule.java +34 -0
  16. package/cpp/README.md +1 -1
  17. package/cpp/chat-parser.cpp +385 -0
  18. package/cpp/chat-parser.h +120 -0
  19. package/cpp/chat.cpp +726 -596
  20. package/cpp/chat.h +71 -6
  21. package/cpp/common.cpp +56 -38
  22. package/cpp/common.h +9 -3
  23. package/cpp/ggml-backend-reg.cpp +5 -0
  24. package/cpp/ggml-backend.cpp +10 -2
  25. package/cpp/ggml-common.h +4 -0
  26. package/cpp/ggml-cpu/amx/amx.cpp +1 -1
  27. package/cpp/ggml-cpu/amx/mmq.cpp +11 -10
  28. package/cpp/ggml-cpu/arch/arm/cpu-feats.cpp +94 -0
  29. package/cpp/ggml-cpu/arch/arm/quants.c +4114 -0
  30. package/cpp/ggml-cpu/arch/arm/repack.cpp +2163 -0
  31. package/cpp/ggml-cpu/arch/x86/cpu-feats.cpp +327 -0
  32. package/cpp/ggml-cpu/arch/x86/quants.c +4311 -0
  33. package/cpp/ggml-cpu/{ggml-cpu-aarch64.cpp → arch/x86/repack.cpp} +79 -3225
  34. package/cpp/ggml-cpu/arch-fallback.h +184 -0
  35. package/cpp/ggml-cpu/common.h +4 -3
  36. package/cpp/ggml-cpu/ggml-cpu-impl.h +21 -16
  37. package/cpp/ggml-cpu/ggml-cpu.c +123 -104
  38. package/cpp/ggml-cpu/ggml-cpu.cpp +11 -8
  39. package/cpp/ggml-cpu/ops.cpp +330 -148
  40. package/cpp/ggml-cpu/ops.h +1 -0
  41. package/cpp/ggml-cpu/quants.c +1158 -0
  42. package/cpp/ggml-cpu/{ggml-cpu-quants.h → quants.h} +26 -0
  43. package/cpp/ggml-cpu/repack.cpp +1571 -0
  44. package/cpp/ggml-cpu/repack.h +98 -0
  45. package/cpp/ggml-cpu/simd-mappings.h +330 -38
  46. package/cpp/ggml-cpu/{ggml-cpu-traits.cpp → traits.cpp} +1 -1
  47. package/cpp/ggml-cpu/vec.cpp +87 -18
  48. package/cpp/ggml-cpu/vec.h +249 -94
  49. package/cpp/ggml-cpu.h +1 -0
  50. package/cpp/ggml-impl.h +63 -183
  51. package/cpp/ggml-llama-sim.metallib +0 -0
  52. package/cpp/ggml-llama.metallib +0 -0
  53. package/cpp/ggml-metal.m +152 -45
  54. package/cpp/ggml-quants.c +0 -2
  55. package/cpp/ggml.c +61 -21
  56. package/cpp/ggml.h +22 -3
  57. package/cpp/gguf.cpp +24 -3
  58. package/cpp/json-partial.cpp +256 -0
  59. package/cpp/json-partial.h +38 -0
  60. package/cpp/json-schema-to-grammar.cpp +5 -47
  61. package/cpp/json-schema-to-grammar.h +4 -4
  62. package/cpp/llama-arch.cpp +153 -3
  63. package/cpp/llama-arch.h +27 -1
  64. package/cpp/llama-batch.cpp +741 -272
  65. package/cpp/llama-batch.h +112 -54
  66. package/cpp/llama-chat.cpp +30 -8
  67. package/cpp/llama-chat.h +1 -0
  68. package/cpp/llama-context.cpp +524 -339
  69. package/cpp/llama-context.h +38 -17
  70. package/cpp/llama-cparams.cpp +4 -0
  71. package/cpp/llama-cparams.h +2 -0
  72. package/cpp/llama-grammar.cpp +12 -2
  73. package/cpp/llama-graph.cpp +431 -356
  74. package/cpp/llama-graph.h +126 -58
  75. package/cpp/llama-hparams.cpp +10 -2
  76. package/cpp/llama-hparams.h +19 -2
  77. package/cpp/llama-kv-cache-unified-iswa.cpp +279 -0
  78. package/cpp/llama-kv-cache-unified-iswa.h +128 -0
  79. package/cpp/llama-kv-cache-unified.cpp +1841 -0
  80. package/cpp/llama-kv-cache-unified.h +303 -0
  81. package/cpp/llama-kv-cells.h +439 -0
  82. package/cpp/llama-memory-hybrid.cpp +246 -0
  83. package/cpp/llama-memory-hybrid.h +138 -0
  84. package/cpp/llama-memory-recurrent.cpp +1112 -0
  85. package/cpp/llama-memory-recurrent.h +183 -0
  86. package/cpp/llama-memory.cpp +41 -0
  87. package/cpp/llama-memory.h +86 -5
  88. package/cpp/llama-mmap.cpp +1 -1
  89. package/cpp/llama-model-loader.cpp +42 -17
  90. package/cpp/llama-model-saver.cpp +1 -0
  91. package/cpp/llama-model.cpp +1639 -513
  92. package/cpp/llama-model.h +26 -0
  93. package/cpp/llama-sampling.cpp +2 -2
  94. package/cpp/llama-vocab.cpp +65 -28
  95. package/cpp/llama-vocab.h +1 -0
  96. package/cpp/llama.cpp +11 -7
  97. package/cpp/llama.h +150 -42
  98. package/cpp/minja/chat-template.hpp +1 -1
  99. package/cpp/minja/minja.hpp +1 -1
  100. package/cpp/{json.hpp → nlohmann/json.hpp} +3027 -2267
  101. package/cpp/nlohmann/json_fwd.hpp +187 -0
  102. package/cpp/regex-partial.cpp +204 -0
  103. package/cpp/regex-partial.h +56 -0
  104. package/cpp/rn-llama.cpp +646 -35
  105. package/cpp/rn-llama.h +32 -1
  106. package/cpp/rn-tts.h +39 -0
  107. package/cpp/sampling.cpp +7 -8
  108. package/cpp/tools/mtmd/clip-impl.h +5 -0
  109. package/cpp/tools/mtmd/clip.cpp +572 -436
  110. package/cpp/tools/mtmd/clip.h +14 -4
  111. package/cpp/tools/mtmd/mtmd-audio.cpp +0 -86
  112. package/cpp/tools/mtmd/mtmd-audio.h +2 -17
  113. package/cpp/tools/mtmd/mtmd-helper.cpp +175 -12
  114. package/cpp/tools/mtmd/mtmd-helper.h +91 -0
  115. package/cpp/tools/mtmd/mtmd.cpp +368 -248
  116. package/cpp/tools/mtmd/mtmd.h +6 -70
  117. package/cpp/unicode.cpp +5 -0
  118. package/ios/CMakeLists.txt +26 -6
  119. package/ios/RNLlama.h +1 -1
  120. package/ios/RNLlama.mm +153 -3
  121. package/ios/RNLlamaContext.h +9 -1
  122. package/ios/RNLlamaContext.mm +112 -9
  123. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/chat-parser.h +120 -0
  124. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/chat.h +71 -6
  125. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/common.h +9 -3
  126. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/ggml-common.h +4 -0
  127. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/ggml-cpu.h +1 -0
  128. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/ggml-impl.h +63 -183
  129. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/ggml.h +22 -3
  130. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/json-partial.h +38 -0
  131. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/json-schema-to-grammar.h +4 -4
  132. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-arch.h +27 -1
  133. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-batch.h +112 -54
  134. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-chat.h +1 -0
  135. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-context.h +38 -17
  136. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-cparams.h +2 -0
  137. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-graph.h +126 -58
  138. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-hparams.h +19 -2
  139. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-kv-cache-unified-iswa.h +128 -0
  140. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-kv-cache-unified.h +303 -0
  141. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-kv-cells.h +439 -0
  142. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-memory-hybrid.h +138 -0
  143. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-memory-recurrent.h +183 -0
  144. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-memory.h +86 -5
  145. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-model.h +26 -0
  146. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-vocab.h +1 -0
  147. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama.h +150 -42
  148. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/minja/chat-template.hpp +1 -1
  149. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/minja/minja.hpp +1 -1
  150. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/{json.hpp → nlohmann/json.hpp} +3027 -2267
  151. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/nlohmann/json_fwd.hpp +187 -0
  152. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/regex-partial.h +56 -0
  153. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/rn-llama.h +32 -1
  154. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/rn-tts.h +39 -0
  155. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/ggml-llama.metallib +0 -0
  156. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/rnllama +0 -0
  157. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/chat-parser.h +120 -0
  158. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/chat.h +71 -6
  159. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/common.h +9 -3
  160. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/ggml-common.h +4 -0
  161. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/ggml-cpu.h +1 -0
  162. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/ggml-impl.h +63 -183
  163. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/ggml.h +22 -3
  164. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/json-partial.h +38 -0
  165. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/json-schema-to-grammar.h +4 -4
  166. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-arch.h +27 -1
  167. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-batch.h +112 -54
  168. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-chat.h +1 -0
  169. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-context.h +38 -17
  170. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-cparams.h +2 -0
  171. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-graph.h +126 -58
  172. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-hparams.h +19 -2
  173. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cache-unified-iswa.h +128 -0
  174. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cache-unified.h +303 -0
  175. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cells.h +439 -0
  176. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-memory-hybrid.h +138 -0
  177. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-memory-recurrent.h +183 -0
  178. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-memory.h +86 -5
  179. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-model.h +26 -0
  180. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-vocab.h +1 -0
  181. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama.h +150 -42
  182. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/minja/chat-template.hpp +1 -1
  183. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/minja/minja.hpp +1 -1
  184. package/ios/rnllama.xcframework/{tvos-arm64/rnllama.framework/Headers → ios-arm64_x86_64-simulator/rnllama.framework/Headers/nlohmann}/json.hpp +3027 -2267
  185. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/nlohmann/json_fwd.hpp +187 -0
  186. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/regex-partial.h +56 -0
  187. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/rn-llama.h +32 -1
  188. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/rn-tts.h +39 -0
  189. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/ggml-llama-sim.metallib +0 -0
  190. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/rnllama +0 -0
  191. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/chat-parser.h +120 -0
  192. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/chat.h +71 -6
  193. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/common.h +9 -3
  194. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/ggml-common.h +4 -0
  195. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/ggml-cpu.h +1 -0
  196. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/ggml-impl.h +63 -183
  197. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/ggml.h +22 -3
  198. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/json-partial.h +38 -0
  199. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/json-schema-to-grammar.h +4 -4
  200. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-arch.h +27 -1
  201. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-batch.h +112 -54
  202. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-chat.h +1 -0
  203. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-context.h +38 -17
  204. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-cparams.h +2 -0
  205. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-graph.h +126 -58
  206. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-hparams.h +19 -2
  207. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-kv-cache-unified-iswa.h +128 -0
  208. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-kv-cache-unified.h +303 -0
  209. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-kv-cells.h +439 -0
  210. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-memory-hybrid.h +138 -0
  211. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-memory-recurrent.h +183 -0
  212. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-memory.h +86 -5
  213. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-model.h +26 -0
  214. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-vocab.h +1 -0
  215. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama.h +150 -42
  216. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/minja/chat-template.hpp +1 -1
  217. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/minja/minja.hpp +1 -1
  218. package/ios/rnllama.xcframework/{ios-arm64_x86_64-simulator/rnllama.framework/Headers → tvos-arm64/rnllama.framework/Headers/nlohmann}/json.hpp +3027 -2267
  219. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/nlohmann/json_fwd.hpp +187 -0
  220. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/regex-partial.h +56 -0
  221. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/rn-llama.h +32 -1
  222. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/rn-tts.h +39 -0
  223. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/ggml-llama.metallib +0 -0
  224. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/rnllama +0 -0
  225. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/chat-parser.h +120 -0
  226. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/chat.h +71 -6
  227. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/common.h +9 -3
  228. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/ggml-common.h +4 -0
  229. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/ggml-cpu.h +1 -0
  230. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/ggml-impl.h +63 -183
  231. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/ggml.h +22 -3
  232. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/json-partial.h +38 -0
  233. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/json-schema-to-grammar.h +4 -4
  234. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-arch.h +27 -1
  235. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-batch.h +112 -54
  236. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-chat.h +1 -0
  237. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-context.h +38 -17
  238. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-cparams.h +2 -0
  239. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-graph.h +126 -58
  240. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-hparams.h +19 -2
  241. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cache-unified-iswa.h +128 -0
  242. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cache-unified.h +303 -0
  243. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cells.h +439 -0
  244. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-memory-hybrid.h +138 -0
  245. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-memory-recurrent.h +183 -0
  246. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-memory.h +86 -5
  247. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-model.h +26 -0
  248. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-vocab.h +1 -0
  249. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama.h +150 -42
  250. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/minja/chat-template.hpp +1 -1
  251. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/minja/minja.hpp +1 -1
  252. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/nlohmann/json.hpp +25526 -0
  253. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/nlohmann/json_fwd.hpp +187 -0
  254. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/regex-partial.h +56 -0
  255. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/rn-llama.h +32 -1
  256. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/rn-tts.h +39 -0
  257. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/ggml-llama-sim.metallib +0 -0
  258. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/rnllama +0 -0
  259. package/jest/mock.js +24 -0
  260. package/package.json +1 -1
  261. package/src/NativeRNLlama.ts +46 -2
  262. package/src/index.ts +105 -1
  263. package/cpp/ggml-cpu/ggml-cpu-aarch64.h +0 -8
  264. package/cpp/ggml-cpu/ggml-cpu-quants.c +0 -13326
  265. package/cpp/ggml-cpu/sgemm.cpp +0 -3544
  266. package/cpp/ggml-cpu/sgemm.h +0 -14
  267. package/cpp/llama-kv-cache.cpp +0 -2827
  268. package/cpp/llama-kv-cache.h +0 -515
  269. package/ios/rnllama.xcframework/ios-arm64/rnllama.framework/Headers/llama-kv-cache.h +0 -515
  270. package/ios/rnllama.xcframework/ios-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cache.h +0 -515
  271. package/ios/rnllama.xcframework/tvos-arm64/rnllama.framework/Headers/llama-kv-cache.h +0 -515
  272. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/json.hpp +0 -24766
  273. package/ios/rnllama.xcframework/tvos-arm64_x86_64-simulator/rnllama.framework/Headers/llama-kv-cache.h +0 -515
  274. /package/cpp/ggml-cpu/{ggml-cpu-traits.h → traits.h} +0 -0
  275. /package/cpp/tools/mtmd/{miniaudio.h → miniaudio/miniaudio.h} +0 -0
  276. /package/cpp/tools/mtmd/{stb_image.h → stb/stb_image.h} +0 -0
@@ -0,0 +1,187 @@
1
+ // __ _____ _____ _____
2
+ // __| | __| | | | JSON for Modern C++
3
+ // | | |__ | | | | | | version 3.12.0
4
+ // |_____|_____|_____|_|___| https://github.com/nlohmann/json
5
+ //
6
+ // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>
7
+ // SPDX-License-Identifier: MIT
8
+
9
+ #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
10
+ #define INCLUDE_NLOHMANN_JSON_FWD_HPP_
11
+
12
+ #include <cstdint> // int64_t, uint64_t
13
+ #include <map> // map
14
+ #include <memory> // allocator
15
+ #include <string> // string
16
+ #include <vector> // vector
17
+
18
+ // #include <nlohmann/detail/abi_macros.hpp>
19
+ // __ _____ _____ _____
20
+ // __| | __| | | | JSON for Modern C++
21
+ // | | |__ | | | | | | version 3.12.0
22
+ // |_____|_____|_____|_|___| https://github.com/nlohmann/json
23
+ //
24
+ // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>
25
+ // SPDX-License-Identifier: MIT
26
+
27
+
28
+
29
+ // This file contains all macro definitions affecting or depending on the ABI
30
+
31
+ #ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
32
+ #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
33
+ #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0
34
+ #warning "Already included a different version of the library!"
35
+ #endif
36
+ #endif
37
+ #endif
38
+
39
+ #define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
40
+ #define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum)
41
+ #define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum)
42
+
43
+ #ifndef JSON_DIAGNOSTICS
44
+ #define JSON_DIAGNOSTICS 0
45
+ #endif
46
+
47
+ #ifndef JSON_DIAGNOSTIC_POSITIONS
48
+ #define JSON_DIAGNOSTIC_POSITIONS 0
49
+ #endif
50
+
51
+ #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
52
+ #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
53
+ #endif
54
+
55
+ #if JSON_DIAGNOSTICS
56
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
57
+ #else
58
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
59
+ #endif
60
+
61
+ #if JSON_DIAGNOSTIC_POSITIONS
62
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp
63
+ #else
64
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS
65
+ #endif
66
+
67
+ #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
68
+ #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
69
+ #else
70
+ #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
71
+ #endif
72
+
73
+ #ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
74
+ #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
75
+ #endif
76
+
77
+ // Construct the namespace ABI tags component
78
+ #define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c
79
+ #define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \
80
+ NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c)
81
+
82
+ #define NLOHMANN_JSON_ABI_TAGS \
83
+ NLOHMANN_JSON_ABI_TAGS_CONCAT( \
84
+ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
85
+ NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \
86
+ NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS)
87
+
88
+ // Construct the namespace version component
89
+ #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
90
+ _v ## major ## _ ## minor ## _ ## patch
91
+ #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
92
+ NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
93
+
94
+ #if NLOHMANN_JSON_NAMESPACE_NO_VERSION
95
+ #define NLOHMANN_JSON_NAMESPACE_VERSION
96
+ #else
97
+ #define NLOHMANN_JSON_NAMESPACE_VERSION \
98
+ NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
99
+ NLOHMANN_JSON_VERSION_MINOR, \
100
+ NLOHMANN_JSON_VERSION_PATCH)
101
+ #endif
102
+
103
+ // Combine namespace components
104
+ #define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
105
+ #define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
106
+ NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
107
+
108
+ #ifndef NLOHMANN_JSON_NAMESPACE
109
+ #define NLOHMANN_JSON_NAMESPACE \
110
+ nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
111
+ NLOHMANN_JSON_ABI_TAGS, \
112
+ NLOHMANN_JSON_NAMESPACE_VERSION)
113
+ #endif
114
+
115
+ #ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
116
+ #define NLOHMANN_JSON_NAMESPACE_BEGIN \
117
+ namespace nlohmann \
118
+ { \
119
+ inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
120
+ NLOHMANN_JSON_ABI_TAGS, \
121
+ NLOHMANN_JSON_NAMESPACE_VERSION) \
122
+ {
123
+ #endif
124
+
125
+ #ifndef NLOHMANN_JSON_NAMESPACE_END
126
+ #define NLOHMANN_JSON_NAMESPACE_END \
127
+ } /* namespace (inline namespace) NOLINT(readability/namespace) */ \
128
+ } // namespace nlohmann
129
+ #endif
130
+
131
+
132
+ /*!
133
+ @brief namespace for Niels Lohmann
134
+ @see https://github.com/nlohmann
135
+ @since version 1.0.0
136
+ */
137
+ NLOHMANN_JSON_NAMESPACE_BEGIN
138
+
139
+ /*!
140
+ @brief default JSONSerializer template argument
141
+
142
+ This serializer ignores the template arguments and uses ADL
143
+ ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))
144
+ for serialization.
145
+ */
146
+ template<typename T = void, typename SFINAE = void>
147
+ struct adl_serializer;
148
+
149
+ /// a class to store JSON values
150
+ /// @sa https://json.nlohmann.me/api/basic_json/
151
+ template<template<typename U, typename V, typename... Args> class ObjectType =
152
+ std::map,
153
+ template<typename U, typename... Args> class ArrayType = std::vector,
154
+ class StringType = std::string, class BooleanType = bool,
155
+ class NumberIntegerType = std::int64_t,
156
+ class NumberUnsignedType = std::uint64_t,
157
+ class NumberFloatType = double,
158
+ template<typename U> class AllocatorType = std::allocator,
159
+ template<typename T, typename SFINAE = void> class JSONSerializer =
160
+ adl_serializer,
161
+ class BinaryType = std::vector<std::uint8_t>, // cppcheck-suppress syntaxError
162
+ class CustomBaseClass = void>
163
+ class basic_json;
164
+
165
+ /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document
166
+ /// @sa https://json.nlohmann.me/api/json_pointer/
167
+ template<typename RefStringType>
168
+ class json_pointer;
169
+
170
+ /*!
171
+ @brief default specialization
172
+ @sa https://json.nlohmann.me/api/json/
173
+ */
174
+ using json = basic_json<>;
175
+
176
+ /// @brief a minimal map-like container that preserves insertion order
177
+ /// @sa https://json.nlohmann.me/api/ordered_map/
178
+ template<class Key, class T, class IgnoredLess, class Allocator>
179
+ struct ordered_map;
180
+
181
+ /// @brief specialization that maintains the insertion order of object keys
182
+ /// @sa https://json.nlohmann.me/api/ordered_json/
183
+ using ordered_json = basic_json<nlohmann::ordered_map>;
184
+
185
+ NLOHMANN_JSON_NAMESPACE_END
186
+
187
+ #endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_
@@ -0,0 +1,204 @@
1
+ #include "regex-partial.h"
2
+ #include "common.h"
3
+ #include <functional>
4
+ #include <optional>
5
+
6
+ common_regex::common_regex(const std::string & pattern) :
7
+ pattern(pattern),
8
+ rx(pattern),
9
+ rx_reversed_partial(regex_to_reversed_partial_regex(pattern)) {}
10
+
11
+ common_regex_match common_regex::search(const std::string & input, size_t pos, bool as_match) const {
12
+ std::smatch match;
13
+ if (pos > input.size()) {
14
+ throw std::runtime_error("Position out of bounds");
15
+ }
16
+ auto start = input.begin() + pos;
17
+ auto found = as_match
18
+ ? std::regex_match(start, input.end(), match, rx)
19
+ : std::regex_search(start, input.end(), match, rx);
20
+ if (found) {
21
+ common_regex_match res;
22
+ res.type = COMMON_REGEX_MATCH_TYPE_FULL;
23
+ for (size_t i = 0; i < match.size(); ++i) {
24
+ auto begin = pos + match.position(i);
25
+ res.groups.emplace_back(begin, begin + match.length(i));
26
+ }
27
+ return res;
28
+ }
29
+ std::match_results<std::string::const_reverse_iterator> srmatch;
30
+ if (std::regex_match(input.rbegin(), input.rend() - pos, srmatch, rx_reversed_partial)) {
31
+ auto group = srmatch[1].str();
32
+ if (group.length() != 0) {
33
+ auto it = srmatch[1].second.base();
34
+ // auto position = static_cast<size_t>(std::distance(input.begin(), it));
35
+ if ((!as_match) || it == input.begin()) {
36
+ common_regex_match res;
37
+ res.type = COMMON_REGEX_MATCH_TYPE_PARTIAL;
38
+ const size_t begin = std::distance(input.begin(), it);
39
+ const size_t end = input.size();
40
+ if (begin == std::string::npos || end == std::string::npos || begin > end) {
41
+ throw std::runtime_error("Invalid range");
42
+ }
43
+ res.groups.push_back({begin, end});
44
+ return res;
45
+ }
46
+ }
47
+ }
48
+ return {};
49
+ }
50
+
51
+ /*
52
+ Transforms a regex pattern to a partial match pattern that operates on a reversed input string to find partial final matches of the original pattern.
53
+
54
+ Ideally we'd like to use boost::match_partial (https://beta.boost.org/doc/libs/1_59_0/libs/regex/doc/html/boost_regex/partial_matches.html)
55
+ to see if a string ends with a partial regex match, but but it's not in std::regex yet.
56
+ Instead, we'll the regex into a partial match regex operating as a full match on the reverse iterators of the input.
57
+
58
+ - /abcd/ -> (dcba|cba|ba|a).* -> ((?:(?:(?:(?:d)?c)?b)?a).*
59
+ - /a|b/ -> (a|b).*
60
+ - /a*?/ -> error, could match ""
61
+ - /a*b/ -> ((?:b)?a*+).* (final repetitions become eager)
62
+ - /.*?ab/ -> ((?:b)?a).* (merge .*)
63
+ - /a.*?b/ -> ((?:b)?.*?a).* (keep reluctant matches)
64
+ - /a(bc)d/ -> ((?:(?:d)?(?:(?:c)?b))?a).*
65
+ - /a(bc|de)/ -> ((?:(?:(?:e)?d)?|(?:(?:c)?b)?)?a).*
66
+ - /ab{2,4}c/ -> abbb?b?c -> ((?:(?:(?:(?:(?:c)?b)?b)?b?)?b?)?a).*
67
+
68
+ The regex will match a reversed string fully, and the end of the first (And only) capturing group will indicate the reversed start of the original partial pattern
69
+ (i.e. just where the final .* starts in the inverted pattern; all other groups are turned into non-capturing groups, and reluctant quantifiers are ignored)
70
+ */
71
+ std::string regex_to_reversed_partial_regex(const std::string & pattern) {
72
+ auto it = pattern.begin();
73
+ const auto end = pattern.end();
74
+
75
+ std::function<std::string()> process = [&]() {
76
+ std::vector<std::vector<std::string>> alternatives(1);
77
+ std::vector<std::string> * sequence = &alternatives.back();
78
+
79
+ while (it != end) {
80
+ if (*it == '[') {
81
+ auto start = it;
82
+ ++it;
83
+ while (it != end) {
84
+ if ((*it == '\\') && (++it != end)) {
85
+ ++it;
86
+ } else if ((it != end) && (*it == ']')) {
87
+ break;
88
+ } else {
89
+ ++it;
90
+ }
91
+ }
92
+ if (it == end) {
93
+ throw std::runtime_error("Unmatched '[' in pattern");
94
+ }
95
+ ++it;
96
+ sequence->push_back(std::string(start, it));
97
+ } else if (*it == '*' || *it == '?' || *it == '+') {
98
+ if (sequence->empty()) {
99
+ throw std::runtime_error("Quantifier without preceding element");
100
+ }
101
+ sequence->back() += *it;
102
+ auto is_star = *it == '*';
103
+ ++it;
104
+ if (is_star) {
105
+ if (*it == '?') {
106
+ ++it;
107
+ }
108
+ }
109
+ } else if (*it == '{') {
110
+ if (sequence->empty()) {
111
+ throw std::runtime_error("Repetition without preceding element");
112
+ }
113
+ ++it;
114
+ auto start = it;
115
+ while (it != end && *it != '}') {
116
+ ++it;
117
+ }
118
+ if (it == end) {
119
+ throw std::runtime_error("Unmatched '{' in pattern");
120
+ }
121
+ auto parts = string_split(std::string(start, it), ",");
122
+ ++it;
123
+ if (parts.size() > 2) {
124
+ throw std::runtime_error("Invalid repetition range in pattern");
125
+ }
126
+
127
+ auto parseOptInt = [&](const std::string & s, const std::optional<int> & def = std::nullopt) -> std::optional<int> {
128
+ if (s.empty()) {
129
+ return def;
130
+ }
131
+ return std::stoi(s);
132
+ };
133
+ auto min = parseOptInt(parts[0], 0);
134
+ auto max = parts.size() == 1 ? min : parseOptInt(parts[1]);
135
+ if (min && max && *max < *min) {
136
+ throw std::runtime_error("Invalid repetition range in pattern");
137
+ }
138
+ // Brutal but... let's repeat at least min times, then ? for the delta between min & max (or * for unbounded)
139
+ auto part = sequence->back();
140
+ sequence->pop_back();
141
+ for (int i = 0; i < *min; i++) {
142
+ sequence->push_back(part);
143
+ }
144
+ if (max) {
145
+ for (int i = *min; i < *max; i++) {
146
+ sequence->push_back(part + "?");
147
+ }
148
+ } else {
149
+ sequence->push_back(part + "*");
150
+ }
151
+ } else if (*it == '(') {
152
+ ++it;
153
+ if (it != end && *it == '?' && (it + 1 != end) && *(it + 1) == ':') {
154
+ it += 2;
155
+ }
156
+ auto sub = process();
157
+ if (*it != ')') {
158
+ throw std::runtime_error("Unmatched '(' in pattern");
159
+ }
160
+ ++it;
161
+ auto & part = sequence->emplace_back("(?:");
162
+ part += sub;
163
+ part += ")";
164
+ } else if (*it == ')') {
165
+ break;
166
+ } else if (*it == '|') {
167
+ ++it;
168
+ alternatives.emplace_back();
169
+ sequence = &alternatives.back();
170
+ } else if (*it == '\\' && (++it != end)) {
171
+ auto str = std::string("\\") + *it;
172
+ sequence->push_back(str);
173
+ ++it;
174
+ } else if (it != end) {
175
+ sequence->push_back(std::string(1, *it));
176
+ ++it;
177
+ }
178
+ }
179
+
180
+ // /abcd/ -> (dcba|cba|ba|a).* -> ((?:(?:(?:d)?c)?b)?a).*
181
+ // if n(=4) parts, opening n-1(=3) non-capturing groups after the 1 capturing group
182
+ // We'll do the outermost capturing group and final .* in the enclosing function.
183
+ std::vector<std::string> res_alts;
184
+ for (const auto & parts : alternatives) {
185
+ auto & res = res_alts.emplace_back();
186
+ for (size_t i = 0; i < parts.size() - 1; i++) {
187
+ res += "(?:";
188
+ }
189
+ for (auto it = parts.rbegin(); it != parts.rend(); ++it) {
190
+ res += *it;
191
+ if (it != parts.rend() - 1) {
192
+ res += ")?";
193
+ }
194
+ }
195
+ }
196
+ return string_join(res_alts, "|");
197
+ };
198
+ auto res = process();
199
+ if (it != end) {
200
+ throw std::runtime_error("Unmatched '(' in pattern");
201
+ }
202
+
203
+ return "(" + res + ")[\\s\\S]*";
204
+ }
@@ -0,0 +1,56 @@
1
+ #pragma once
2
+
3
+ #include <regex>
4
+ #include <string>
5
+
6
+ enum common_regex_match_type {
7
+ COMMON_REGEX_MATCH_TYPE_NONE,
8
+ COMMON_REGEX_MATCH_TYPE_PARTIAL,
9
+ COMMON_REGEX_MATCH_TYPE_FULL,
10
+ };
11
+
12
+ struct common_string_range {
13
+ size_t begin;
14
+ size_t end;
15
+ common_string_range(size_t begin, size_t end) : begin(begin), end(end) {
16
+ if (begin > end) {
17
+ throw std::runtime_error("Invalid range");
18
+ }
19
+ }
20
+ // prevent default ctor
21
+ common_string_range() = delete;
22
+ bool empty() const {
23
+ return begin == end;
24
+ }
25
+ bool operator==(const common_string_range & other) const {
26
+ return begin == other.begin && end == other.end;
27
+ }
28
+ };
29
+
30
+ struct common_regex_match {
31
+ common_regex_match_type type = COMMON_REGEX_MATCH_TYPE_NONE;
32
+ std::vector<common_string_range> groups;
33
+
34
+ bool operator==(const common_regex_match & other) const {
35
+ return type == other.type && groups == other.groups;
36
+ }
37
+ bool operator!=(const common_regex_match & other) const {
38
+ return !(*this == other);
39
+ }
40
+ };
41
+
42
+ class common_regex {
43
+ std::string pattern;
44
+ std::regex rx;
45
+ std::regex rx_reversed_partial;
46
+
47
+ public:
48
+ explicit common_regex(const std::string & pattern);
49
+
50
+ common_regex_match search(const std::string & input, size_t pos, bool as_match = false) const;
51
+
52
+ const std::string & str() const { return pattern; }
53
+ };
54
+
55
+ // For testing only (pretty print of failures).
56
+ std::string regex_to_reversed_partial_regex(const std::string & pattern);