react-native-nitro-mlx 0.1.1 → 0.2.1

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 (31) hide show
  1. package/ios/Sources/HybridLLM.swift +115 -5
  2. package/lib/module/index.js +1 -1
  3. package/lib/module/index.js.map +1 -1
  4. package/lib/module/llm.js +23 -3
  5. package/lib/module/llm.js.map +1 -1
  6. package/lib/module/models.js +227 -0
  7. package/lib/module/models.js.map +1 -1
  8. package/lib/typescript/src/index.d.ts +3 -3
  9. package/lib/typescript/src/index.d.ts.map +1 -1
  10. package/lib/typescript/src/llm.d.ts +21 -3
  11. package/lib/typescript/src/llm.d.ts.map +1 -1
  12. package/lib/typescript/src/models.d.ts +27 -0
  13. package/lib/typescript/src/models.d.ts.map +1 -1
  14. package/lib/typescript/src/specs/LLM.nitro.d.ts +29 -2
  15. package/lib/typescript/src/specs/LLM.nitro.d.ts.map +1 -1
  16. package/nitrogen/generated/ios/MLXReactNative-Swift-Cxx-Bridge.hpp +87 -0
  17. package/nitrogen/generated/ios/MLXReactNative-Swift-Cxx-Umbrella.hpp +7 -0
  18. package/nitrogen/generated/ios/c++/HybridLLMSpecSwift.hpp +30 -2
  19. package/nitrogen/generated/ios/swift/HybridLLMSpec.swift +4 -1
  20. package/nitrogen/generated/ios/swift/HybridLLMSpec_cxx.swift +42 -7
  21. package/nitrogen/generated/ios/swift/LLMLoadOptions.swift +138 -0
  22. package/nitrogen/generated/ios/swift/LLMMessage.swift +47 -0
  23. package/nitrogen/generated/shared/c++/HybridLLMSpec.cpp +3 -0
  24. package/nitrogen/generated/shared/c++/HybridLLMSpec.hpp +12 -1
  25. package/nitrogen/generated/shared/c++/LLMLoadOptions.hpp +87 -0
  26. package/nitrogen/generated/shared/c++/LLMMessage.hpp +79 -0
  27. package/package.json +1 -9
  28. package/src/index.ts +10 -3
  29. package/src/llm.ts +32 -4
  30. package/src/models.ts +267 -0
  31. package/src/specs/LLM.nitro.ts +34 -2
@@ -7,6 +7,7 @@ internal import MLXLMCommon
7
7
  class HybridLLM: HybridLLMSpec {
8
8
  private var session: ChatSession?
9
9
  private var currentTask: Task<String, Error>?
10
+ private var container: Any?
10
11
  private var lastStats: GenerationStats = GenerationStats(
11
12
  tokenCount: 0,
12
13
  tokensPerSecond: 0,
@@ -14,12 +15,15 @@ class HybridLLM: HybridLLMSpec {
14
15
  totalTime: 0
15
16
  )
16
17
  private var modelFactory: ModelFactory = LLMModelFactory.shared
18
+ private var manageHistory: Bool = false
19
+ private var messageHistory: [LLMMessage] = []
17
20
 
18
21
  var isLoaded: Bool { session != nil }
19
22
  var isGenerating: Bool { currentTask != nil }
20
23
  var modelId: String = ""
21
24
  var debug: Bool = false
22
25
  var systemPrompt: String = "You are a helpful assistant."
26
+ var additionalContext: LLMMessage = LLMMessage()
23
27
 
24
28
  private func log(_ message: String) {
25
29
  if debug {
@@ -27,21 +31,80 @@ class HybridLLM: HybridLLMSpec {
27
31
  }
28
32
  }
29
33
 
30
- func load(modelId: String, onProgress: @escaping (Double) -> Void) throws -> Promise<Void> {
34
+ private func getMemoryUsage() -> String {
35
+ var taskInfo = mach_task_basic_info()
36
+ var count = mach_msg_type_number_t(MemoryLayout<mach_task_basic_info>.size)/4
37
+ let result: kern_return_t = withUnsafeMutablePointer(to: &taskInfo) {
38
+ $0.withMemoryRebound(to: integer_t.self, capacity: 1) {
39
+ task_info(mach_task_self_,
40
+ task_flavor_t(MACH_TASK_BASIC_INFO),
41
+ $0,
42
+ &count)
43
+ }
44
+ }
45
+
46
+ if result == KERN_SUCCESS {
47
+ let usedMB = Float(taskInfo.resident_size) / 1024.0 / 1024.0
48
+ return String(format: "%.1f MB", usedMB)
49
+ } else {
50
+ return "unknown"
51
+ }
52
+ }
53
+
54
+ private func getGPUMemoryUsage() -> String {
55
+ let snapshot = GPU.snapshot()
56
+ let allocatedMB = Float(snapshot.activeMemory) / 1024.0 / 1024.0
57
+ let cacheMB = Float(snapshot.cacheMemory) / 1024.0 / 1024.0
58
+ let peakMB = Float(snapshot.peakMemory) / 1024.0 / 1024.0
59
+ return String(format: "Allocated: %.1f MB, Cache: %.1f MB, Peak: %.1f MB",
60
+ allocatedMB, cacheMB, peakMB)
61
+ }
62
+
63
+ func load(modelId: String, options: LLMLoadOptions?) throws -> Promise<Void> {
31
64
  return Promise.async { [self] in
65
+ MLX.GPU.set(cacheLimit: 2000000)
66
+
67
+ self.currentTask?.cancel()
68
+ self.currentTask = nil
69
+ self.session = nil
70
+ self.container = nil
71
+ MLX.GPU.clearCache()
72
+
73
+ let memoryAfterCleanup = self.getMemoryUsage()
74
+ let gpuAfterCleanup = self.getGPUMemoryUsage()
75
+ log("After cleanup - Host: \(memoryAfterCleanup), GPU: \(gpuAfterCleanup)")
76
+
32
77
  let modelDir = await ModelDownloader.shared.getModelDirectory(modelId: modelId)
33
78
  log("Loading from directory: \(modelDir.path)")
34
79
 
35
80
  let config = ModelConfiguration(directory: modelDir)
36
- let container = try await modelFactory.loadContainer(
81
+ let loadedContainer = try await modelFactory.loadContainer(
37
82
  configuration: config
38
83
  ) { progress in
39
- onProgress(progress.fractionCompleted)
84
+ options?.onProgress?(progress.fractionCompleted)
40
85
  }
41
86
 
42
- self.session = ChatSession(container, instructions: self.systemPrompt)
87
+ let memoryAfterContainer = self.getMemoryUsage()
88
+ let gpuAfterContainer = self.getGPUMemoryUsage()
89
+ log("Model loaded - Host: \(memoryAfterContainer), GPU: \(gpuAfterContainer)")
90
+
91
+ // Convert [LLMMessage]? to [String: Any]?
92
+ let additionalContextDict: [String: Any]? = if let messages = options?.additionalContext {
93
+ ["messages": messages.map { ["role": $0.role, "content": $0.content] }]
94
+ } else {
95
+ nil
96
+ }
97
+
98
+ self.container = loadedContainer
99
+ self.session = ChatSession(loadedContainer, instructions: self.systemPrompt, additionalContext: additionalContextDict)
43
100
  self.modelId = modelId
44
- log("Model loaded with system prompt: \(self.systemPrompt.prefix(50))...")
101
+
102
+ self.manageHistory = options?.manageHistory ?? false
103
+ self.messageHistory = options?.additionalContext ?? []
104
+
105
+ if self.manageHistory {
106
+ log("History management enabled with \(self.messageHistory.count) initial messages")
107
+ }
45
108
  }
46
109
  }
47
110
 
@@ -51,6 +114,10 @@ class HybridLLM: HybridLLMSpec {
51
114
  }
52
115
 
53
116
  return Promise.async { [self] in
117
+ if self.manageHistory {
118
+ self.messageHistory.append(LLMMessage(role: "user", content: prompt))
119
+ }
120
+
54
121
  let task = Task<String, Error> {
55
122
  log("Generating response for: \(prompt.prefix(50))...")
56
123
  let result = try await session.respond(to: prompt)
@@ -63,6 +130,11 @@ class HybridLLM: HybridLLMSpec {
63
130
  do {
64
131
  let result = try await task.value
65
132
  self.currentTask = nil
133
+
134
+ if self.manageHistory {
135
+ self.messageHistory.append(LLMMessage(role: "assistant", content: result))
136
+ }
137
+
66
138
  return result
67
139
  } catch {
68
140
  self.currentTask = nil
@@ -77,6 +149,10 @@ class HybridLLM: HybridLLMSpec {
77
149
  }
78
150
 
79
151
  return Promise.async { [self] in
152
+ if self.manageHistory {
153
+ self.messageHistory.append(LLMMessage(role: "user", content: prompt))
154
+ }
155
+
80
156
  let task = Task<String, Error> {
81
157
  var result = ""
82
158
  var tokenCount = 0
@@ -116,6 +192,11 @@ class HybridLLM: HybridLLMSpec {
116
192
  do {
117
193
  let result = try await task.value
118
194
  self.currentTask = nil
195
+
196
+ if self.manageHistory {
197
+ self.messageHistory.append(LLMMessage(role: "assistant", content: result))
198
+ }
199
+
119
200
  return result
120
201
  } catch {
121
202
  self.currentTask = nil
@@ -129,7 +210,36 @@ class HybridLLM: HybridLLMSpec {
129
210
  currentTask = nil
130
211
  }
131
212
 
213
+ func unload() throws {
214
+ let memoryBefore = getMemoryUsage()
215
+ let gpuBefore = getGPUMemoryUsage()
216
+ log("Before unload - Host: \(memoryBefore), GPU: \(gpuBefore)")
217
+
218
+ currentTask?.cancel()
219
+ currentTask = nil
220
+ session = nil
221
+ container = nil
222
+ messageHistory = []
223
+ manageHistory = false
224
+ modelId = ""
225
+
226
+ MLX.GPU.clearCache()
227
+
228
+ let memoryAfter = getMemoryUsage()
229
+ let gpuAfter = getGPUMemoryUsage()
230
+ log("After unload - Host: \(memoryAfter), GPU: \(gpuAfter)")
231
+ }
232
+
132
233
  func getLastGenerationStats() throws -> GenerationStats {
133
234
  return lastStats
134
235
  }
236
+
237
+ func getHistory() throws -> [LLMMessage] {
238
+ return messageHistory
239
+ }
240
+
241
+ func clearHistory() throws {
242
+ messageHistory = []
243
+ log("Message history cleared")
244
+ }
135
245
  }
@@ -2,5 +2,5 @@
2
2
 
3
3
  export { LLM } from "./llm.js";
4
4
  export { ModelManager } from "./modelManager.js";
5
- export { MLXModel } from "./models.js";
5
+ export { MLXModel, MLXModels, ModelFamily, ModelProvider } from "./models.js";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LLM","ModelManager","MLXModel"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,UAAO;AAC3B,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,QAAQ,QAAQ,aAAU","ignoreList":[]}
1
+ {"version":3,"names":["LLM","ModelManager","MLXModel","MLXModels","ModelFamily","ModelProvider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,GAAG,QAAsB,UAAO;AACzC,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SACEC,QAAQ,EACRC,SAAS,EACTC,WAAW,EAEXC,aAAa,QAER,aAAU","ignoreList":[]}
package/lib/module/llm.js CHANGED
@@ -35,10 +35,10 @@ export const LLM = {
35
35
  /**
36
36
  * Load a model into memory. Downloads the model from HuggingFace if not already cached.
37
37
  * @param modelId - HuggingFace model ID (e.g., 'mlx-community/Qwen3-0.6B-4bit')
38
- * @param onProgress - Callback invoked with loading progress (0-1)
38
+ * @param options - Callback invoked with loading progress (0-1)
39
39
  */
40
- load(modelId, onProgress) {
41
- return getInstance().load(modelId, onProgress);
40
+ load(modelId, options) {
41
+ return getInstance().load(modelId, options);
42
42
  },
43
43
  /**
44
44
  * Generate a complete response for a prompt. Blocks until generation is complete.
@@ -64,6 +64,13 @@ export const LLM = {
64
64
  stop() {
65
65
  getInstance().stop();
66
66
  },
67
+ /**
68
+ * Unload the current model and release memory.
69
+ * Call this when you're done with the model to free up memory.
70
+ */
71
+ unload() {
72
+ getInstance().unload();
73
+ },
67
74
  /**
68
75
  * Get statistics from the last generation.
69
76
  * @returns Statistics including token count, tokens/sec, TTFT, and total time
@@ -71,6 +78,19 @@ export const LLM = {
71
78
  getLastGenerationStats() {
72
79
  return getInstance().getLastGenerationStats();
73
80
  },
81
+ /**
82
+ * Get the message history if management is enabled.
83
+ * @returns Array of messages in the history
84
+ */
85
+ getHistory() {
86
+ return getInstance().getHistory();
87
+ },
88
+ /**
89
+ * Clear the message history.
90
+ */
91
+ clearHistory() {
92
+ getInstance().clearHistory();
93
+ },
74
94
  /** Whether a model is currently loaded and ready for generation */
75
95
  get isLoaded() {
76
96
  return getInstance().isLoaded;
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","instance","getInstance","createHybridObject","LLM","load","modelId","onProgress","generate","prompt","stream","onToken","stop","getLastGenerationStats","isLoaded","isGenerating","debug","value","systemPrompt"],"sourceRoot":"../../src","sources":["llm.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,IAAIC,QAAwB,GAAG,IAAI;AAEnC,SAASC,WAAWA,CAAA,EAAY;EAC9B,IAAI,CAACD,QAAQ,EAAE;IACbA,QAAQ,GAAGD,YAAY,CAACG,kBAAkB,CAAU,KAAK,CAAC;EAC5D;EACA,OAAOF,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,GAAG,GAAG;EACjB;AACF;AACA;AACA;AACA;EACEC,IAAIA,CAACC,OAAe,EAAEC,UAAsC,EAAiB;IAC3E,OAAOL,WAAW,CAAC,CAAC,CAACG,IAAI,CAACC,OAAO,EAAEC,UAAU,CAAC;EAChD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,QAAQA,CAACC,MAAc,EAAmB;IACxC,OAAOP,WAAW,CAAC,CAAC,CAACM,QAAQ,CAACC,MAAM,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,MAAMA,CAACD,MAAc,EAAEE,OAAgC,EAAmB;IACxE,OAAOT,WAAW,CAAC,CAAC,CAACQ,MAAM,CAACD,MAAM,EAAEE,OAAO,CAAC;EAC9C,CAAC;EAED;AACF;AACA;EACEC,IAAIA,CAAA,EAAS;IACXV,WAAW,CAAC,CAAC,CAACU,IAAI,CAAC,CAAC;EACtB,CAAC;EAED;AACF;AACA;AACA;EACEC,sBAAsBA,CAAA,EAAoB;IACxC,OAAOX,WAAW,CAAC,CAAC,CAACW,sBAAsB,CAAC,CAAC;EAC/C,CAAC;EAED;EACA,IAAIC,QAAQA,CAAA,EAAY;IACtB,OAAOZ,WAAW,CAAC,CAAC,CAACY,QAAQ;EAC/B,CAAC;EAED;EACA,IAAIC,YAAYA,CAAA,EAAY;IAC1B,OAAOb,WAAW,CAAC,CAAC,CAACa,YAAY;EACnC,CAAC;EAED;EACA,IAAIT,OAAOA,CAAA,EAAW;IACpB,OAAOJ,WAAW,CAAC,CAAC,CAACI,OAAO;EAC9B,CAAC;EAED;EACA,IAAIU,KAAKA,CAAA,EAAY;IACnB,OAAOd,WAAW,CAAC,CAAC,CAACc,KAAK;EAC5B,CAAC;EAED,IAAIA,KAAKA,CAACC,KAAc,EAAE;IACxBf,WAAW,CAAC,CAAC,CAACc,KAAK,GAAGC,KAAK;EAC7B,CAAC;EAED;AACF;AACA;AACA;AACA;EACE,IAAIC,YAAYA,CAAA,EAAW;IACzB,OAAOhB,WAAW,CAAC,CAAC,CAACgB,YAAY;EACnC,CAAC;EAED,IAAIA,YAAYA,CAACD,KAAa,EAAE;IAC9Bf,WAAW,CAAC,CAAC,CAACgB,YAAY,GAAGD,KAAK;EACpC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","instance","getInstance","createHybridObject","LLM","load","modelId","options","generate","prompt","stream","onToken","stop","unload","getLastGenerationStats","getHistory","clearHistory","isLoaded","isGenerating","debug","value","systemPrompt"],"sourceRoot":"../../src","sources":["llm.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,IAAIC,QAAwB,GAAG,IAAI;AAOnC,SAASC,WAAWA,CAAA,EAAY;EAC9B,IAAI,CAACD,QAAQ,EAAE;IACbA,QAAQ,GAAGD,YAAY,CAACG,kBAAkB,CAAU,KAAK,CAAC;EAC5D;EACA,OAAOF,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,GAAG,GAAG;EACjB;AACF;AACA;AACA;AACA;EACEC,IAAIA,CAACC,OAAe,EAAEC,OAAuB,EAAiB;IAC5D,OAAOL,WAAW,CAAC,CAAC,CAACG,IAAI,CAACC,OAAO,EAAEC,OAAO,CAAC;EAC7C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,QAAQA,CAACC,MAAc,EAAmB;IACxC,OAAOP,WAAW,CAAC,CAAC,CAACM,QAAQ,CAACC,MAAM,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,MAAMA,CAACD,MAAc,EAAEE,OAAgC,EAAmB;IACxE,OAAOT,WAAW,CAAC,CAAC,CAACQ,MAAM,CAACD,MAAM,EAAEE,OAAO,CAAC;EAC9C,CAAC;EAED;AACF;AACA;EACEC,IAAIA,CAAA,EAAS;IACXV,WAAW,CAAC,CAAC,CAACU,IAAI,CAAC,CAAC;EACtB,CAAC;EAED;AACF;AACA;AACA;EACEC,MAAMA,CAAA,EAAS;IACbX,WAAW,CAAC,CAAC,CAACW,MAAM,CAAC,CAAC;EACxB,CAAC;EAED;AACF;AACA;AACA;EACEC,sBAAsBA,CAAA,EAAoB;IACxC,OAAOZ,WAAW,CAAC,CAAC,CAACY,sBAAsB,CAAC,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;EACEC,UAAUA,CAAA,EAAc;IACtB,OAAOb,WAAW,CAAC,CAAC,CAACa,UAAU,CAAC,CAAC;EACnC,CAAC;EAED;AACF;AACA;EACEC,YAAYA,CAAA,EAAS;IACnBd,WAAW,CAAC,CAAC,CAACc,YAAY,CAAC,CAAC;EAC9B,CAAC;EAED;EACA,IAAIC,QAAQA,CAAA,EAAY;IACtB,OAAOf,WAAW,CAAC,CAAC,CAACe,QAAQ;EAC/B,CAAC;EAED;EACA,IAAIC,YAAYA,CAAA,EAAY;IAC1B,OAAOhB,WAAW,CAAC,CAAC,CAACgB,YAAY;EACnC,CAAC;EAED;EACA,IAAIZ,OAAOA,CAAA,EAAW;IACpB,OAAOJ,WAAW,CAAC,CAAC,CAACI,OAAO;EAC9B,CAAC;EAED;EACA,IAAIa,KAAKA,CAAA,EAAY;IACnB,OAAOjB,WAAW,CAAC,CAAC,CAACiB,KAAK;EAC5B,CAAC;EAED,IAAIA,KAAKA,CAACC,KAAc,EAAE;IACxBlB,WAAW,CAAC,CAAC,CAACiB,KAAK,GAAGC,KAAK;EAC7B,CAAC;EAED;AACF;AACA;AACA;AACA;EACE,IAAIC,YAAYA,CAAA,EAAW;IACzB,OAAOnB,WAAW,CAAC,CAAC,CAACmB,YAAY;EACnC,CAAC;EAED,IAAIA,YAAYA,CAACD,KAAa,EAAE;IAC9BlB,WAAW,CAAC,CAAC,CAACmB,YAAY,GAAGD,KAAK;EACpC;AACF,CAAC","ignoreList":[]}
@@ -1,5 +1,23 @@
1
1
  "use strict";
2
2
 
3
+ export let ModelFamily = /*#__PURE__*/function (ModelFamily) {
4
+ ModelFamily["Llama"] = "Llama";
5
+ ModelFamily["Qwen"] = "Qwen";
6
+ ModelFamily["Gemma"] = "Gemma";
7
+ ModelFamily["Phi"] = "Phi";
8
+ ModelFamily["SmolLM"] = "SmolLM";
9
+ ModelFamily["OpenELM"] = "OpenELM";
10
+ return ModelFamily;
11
+ }({});
12
+ export let ModelProvider = /*#__PURE__*/function (ModelProvider) {
13
+ ModelProvider["Meta"] = "Meta";
14
+ ModelProvider["Alibaba"] = "Alibaba";
15
+ ModelProvider["Google"] = "Google";
16
+ ModelProvider["Microsoft"] = "Microsoft";
17
+ ModelProvider["HuggingFace"] = "HuggingFace";
18
+ ModelProvider["Apple"] = "Apple";
19
+ return ModelProvider;
20
+ }({});
3
21
  export let MLXModel = /*#__PURE__*/function (MLXModel) {
4
22
  // Llama 3.2 (Meta) - 1B and 3B variants
5
23
  MLXModel["Llama_3_2_1B_Instruct_4bit"] = "mlx-community/Llama-3.2-1B-Instruct-4bit";
@@ -38,4 +56,213 @@ export let MLXModel = /*#__PURE__*/function (MLXModel) {
38
56
  MLXModel["OpenELM_3B_8bit"] = "mlx-community/OpenELM-3B-8bit";
39
57
  return MLXModel;
40
58
  }({});
59
+ export const MLXModels = [{
60
+ id: MLXModel.Llama_3_2_1B_Instruct_4bit,
61
+ family: ModelFamily.Llama,
62
+ provider: ModelProvider.Meta,
63
+ parameters: '1B',
64
+ quantization: '4bit',
65
+ displayName: 'Llama 3.2 1B Instruct (4-bit)',
66
+ downloadSize: 1407777762
67
+ }, {
68
+ id: MLXModel.Llama_3_2_1B_Instruct_8bit,
69
+ family: ModelFamily.Llama,
70
+ provider: ModelProvider.Meta,
71
+ parameters: '1B',
72
+ quantization: '8bit',
73
+ displayName: 'Llama 3.2 1B Instruct (8-bit)',
74
+ downloadSize: 1313157436
75
+ }, {
76
+ id: MLXModel.Llama_3_2_3B_Instruct_4bit,
77
+ family: ModelFamily.Llama,
78
+ provider: ModelProvider.Meta,
79
+ parameters: '3B',
80
+ quantization: '4bit',
81
+ displayName: 'Llama 3.2 3B Instruct (4-bit)',
82
+ downloadSize: 2019397474
83
+ }, {
84
+ id: MLXModel.Llama_3_2_3B_Instruct_8bit,
85
+ family: ModelFamily.Llama,
86
+ provider: ModelProvider.Meta,
87
+ parameters: '3B',
88
+ quantization: '8bit',
89
+ displayName: 'Llama 3.2 3B Instruct (8-bit)',
90
+ downloadSize: 3413784042
91
+ }, {
92
+ id: MLXModel.Qwen2_5_0_5B_Instruct_4bit,
93
+ family: ModelFamily.Qwen,
94
+ provider: ModelProvider.Alibaba,
95
+ parameters: '0.5B',
96
+ quantization: '4bit',
97
+ displayName: 'Qwen 2.5 0.5B Instruct (4-bit)',
98
+ downloadSize: 278064920
99
+ }, {
100
+ id: MLXModel.Qwen2_5_0_5B_Instruct_8bit,
101
+ family: ModelFamily.Qwen,
102
+ provider: ModelProvider.Alibaba,
103
+ parameters: '0.5B',
104
+ quantization: '8bit',
105
+ displayName: 'Qwen 2.5 0.5B Instruct (8-bit)',
106
+ downloadSize: 525045902
107
+ }, {
108
+ id: MLXModel.Qwen2_5_1_5B_Instruct_4bit,
109
+ family: ModelFamily.Qwen,
110
+ provider: ModelProvider.Alibaba,
111
+ parameters: '1.5B',
112
+ quantization: '4bit',
113
+ displayName: 'Qwen 2.5 1.5B Instruct (4-bit)',
114
+ downloadSize: 868628559
115
+ }, {
116
+ id: MLXModel.Qwen2_5_1_5B_Instruct_8bit,
117
+ family: ModelFamily.Qwen,
118
+ provider: ModelProvider.Alibaba,
119
+ parameters: '1.5B',
120
+ quantization: '8bit',
121
+ displayName: 'Qwen 2.5 1.5B Instruct (8-bit)',
122
+ downloadSize: 1640414038
123
+ }, {
124
+ id: MLXModel.Qwen2_5_3B_Instruct_4bit,
125
+ family: ModelFamily.Qwen,
126
+ provider: ModelProvider.Alibaba,
127
+ parameters: '3B',
128
+ quantization: '4bit',
129
+ displayName: 'Qwen 2.5 3B Instruct (4-bit)',
130
+ downloadSize: 1736293090
131
+ }, {
132
+ id: MLXModel.Qwen2_5_3B_Instruct_8bit,
133
+ family: ModelFamily.Qwen,
134
+ provider: ModelProvider.Alibaba,
135
+ parameters: '3B',
136
+ quantization: '8bit',
137
+ displayName: 'Qwen 2.5 3B Instruct (8-bit)',
138
+ downloadSize: 3279142142
139
+ }, {
140
+ id: MLXModel.Qwen3_1_7B_4bit,
141
+ family: ModelFamily.Qwen,
142
+ provider: ModelProvider.Alibaba,
143
+ parameters: '1.7B',
144
+ quantization: '4bit',
145
+ displayName: 'Qwen 3 1.7B (4-bit)',
146
+ downloadSize: 979502864
147
+ }, {
148
+ id: MLXModel.Qwen3_1_7B_8bit,
149
+ family: ModelFamily.Qwen,
150
+ provider: ModelProvider.Alibaba,
151
+ parameters: '1.7B',
152
+ quantization: '8bit',
153
+ displayName: 'Qwen 3 1.7B (8-bit)',
154
+ downloadSize: 1839729195
155
+ }, {
156
+ id: MLXModel.Gemma_3_1B_IT_4bit,
157
+ family: ModelFamily.Gemma,
158
+ provider: ModelProvider.Google,
159
+ parameters: '1B',
160
+ quantization: '4bit',
161
+ displayName: 'Gemma 3 1B IT (4-bit)',
162
+ downloadSize: 770650946
163
+ }, {
164
+ id: MLXModel.Gemma_3_1B_IT_8bit,
165
+ family: ModelFamily.Gemma,
166
+ provider: ModelProvider.Google,
167
+ parameters: '1B',
168
+ quantization: '8bit',
169
+ displayName: 'Gemma 3 1B IT (8-bit)',
170
+ downloadSize: 1421522471
171
+ }, {
172
+ id: MLXModel.Phi_3_5_Mini_Instruct_4bit,
173
+ family: ModelFamily.Phi,
174
+ provider: ModelProvider.Microsoft,
175
+ parameters: '3.8B',
176
+ quantization: '4bit',
177
+ displayName: 'Phi 3.5 Mini Instruct (4-bit)',
178
+ downloadSize: 2150195856
179
+ }, {
180
+ id: MLXModel.Phi_3_5_Mini_Instruct_8bit,
181
+ family: ModelFamily.Phi,
182
+ provider: ModelProvider.Microsoft,
183
+ parameters: '3.8B',
184
+ quantization: '8bit',
185
+ displayName: 'Phi 3.5 Mini Instruct (8-bit)',
186
+ downloadSize: 4060636056
187
+ }, {
188
+ id: MLXModel.Phi_4_Mini_Instruct_4bit,
189
+ family: ModelFamily.Phi,
190
+ provider: ModelProvider.Microsoft,
191
+ parameters: '3.8B',
192
+ quantization: '4bit',
193
+ displayName: 'Phi 4 Mini Instruct (4-bit)',
194
+ downloadSize: 2173624891
195
+ }, {
196
+ id: MLXModel.Phi_4_Mini_Instruct_8bit,
197
+ family: ModelFamily.Phi,
198
+ provider: ModelProvider.Microsoft,
199
+ parameters: '3.8B',
200
+ quantization: '8bit',
201
+ displayName: 'Phi 4 Mini Instruct (8-bit)',
202
+ downloadSize: 4091536167
203
+ }, {
204
+ id: MLXModel.SmolLM_1_7B_Instruct_4bit,
205
+ family: ModelFamily.SmolLM,
206
+ provider: ModelProvider.HuggingFace,
207
+ parameters: '1.7B',
208
+ quantization: '4bit',
209
+ displayName: 'SmolLM 1.7B Instruct (4-bit)',
210
+ downloadSize: 962855374
211
+ }, {
212
+ id: MLXModel.SmolLM_1_7B_Instruct_8bit,
213
+ family: ModelFamily.SmolLM,
214
+ provider: ModelProvider.HuggingFace,
215
+ parameters: '1.7B',
216
+ quantization: '8bit',
217
+ displayName: 'SmolLM 1.7B Instruct (8-bit)',
218
+ downloadSize: 1818493993
219
+ }, {
220
+ id: MLXModel.SmolLM2_1_7B_Instruct_4bit,
221
+ family: ModelFamily.SmolLM,
222
+ provider: ModelProvider.HuggingFace,
223
+ parameters: '1.7B',
224
+ quantization: '4bit',
225
+ displayName: 'SmolLM2 1.7B Instruct (4-bit)',
226
+ downloadSize: 980000000
227
+ }, {
228
+ id: MLXModel.SmolLM2_1_7B_Instruct_8bit,
229
+ family: ModelFamily.SmolLM,
230
+ provider: ModelProvider.HuggingFace,
231
+ parameters: '1.7B',
232
+ quantization: '8bit',
233
+ displayName: 'SmolLM2 1.7B Instruct (8-bit)',
234
+ downloadSize: 1850000000
235
+ }, {
236
+ id: MLXModel.OpenELM_1_1B_4bit,
237
+ family: ModelFamily.OpenELM,
238
+ provider: ModelProvider.Apple,
239
+ parameters: '1.1B',
240
+ quantization: '4bit',
241
+ displayName: 'OpenELM 1.1B (4-bit)',
242
+ downloadSize: 608162655
243
+ }, {
244
+ id: MLXModel.OpenELM_1_1B_8bit,
245
+ family: ModelFamily.OpenELM,
246
+ provider: ModelProvider.Apple,
247
+ parameters: '1.1B',
248
+ quantization: '8bit',
249
+ displayName: 'OpenELM 1.1B (8-bit)',
250
+ downloadSize: 1148048397
251
+ }, {
252
+ id: MLXModel.OpenELM_3B_4bit,
253
+ family: ModelFamily.OpenELM,
254
+ provider: ModelProvider.Apple,
255
+ parameters: '3B',
256
+ quantization: '4bit',
257
+ displayName: 'OpenELM 3B (4-bit)',
258
+ downloadSize: 1650000000
259
+ }, {
260
+ id: MLXModel.OpenELM_3B_8bit,
261
+ family: ModelFamily.OpenELM,
262
+ provider: ModelProvider.Apple,
263
+ parameters: '3B',
264
+ quantization: '8bit',
265
+ displayName: 'OpenELM 3B (8-bit)',
266
+ downloadSize: 3100000000
267
+ }];
41
268
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MLXModel"],"sourceRoot":"../../src","sources":["models.ts"],"mappings":";;AAAA,WAAYA,QAAQ,0BAARA,QAAQ;EAClB;EADUA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAOlB;EAPUA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAelB;EAfUA,QAAQ;EAARA,QAAQ;EAmBlB;EAnBUA,QAAQ;EAARA,QAAQ;EAuBlB;EAvBUA,QAAQ;EAARA,QAAQ;EA2BlB;EA3BUA,QAAQ;EAARA,QAAQ;EA+BlB;EA/BUA,QAAQ;EAARA,QAAQ;EAmClB;EAnCUA,QAAQ;EAARA,QAAQ;EAuClB;EAvCUA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["ModelFamily","ModelProvider","MLXModel","MLXModels","id","Llama_3_2_1B_Instruct_4bit","family","Llama","provider","Meta","parameters","quantization","displayName","downloadSize","Llama_3_2_1B_Instruct_8bit","Llama_3_2_3B_Instruct_4bit","Llama_3_2_3B_Instruct_8bit","Qwen2_5_0_5B_Instruct_4bit","Qwen","Alibaba","Qwen2_5_0_5B_Instruct_8bit","Qwen2_5_1_5B_Instruct_4bit","Qwen2_5_1_5B_Instruct_8bit","Qwen2_5_3B_Instruct_4bit","Qwen2_5_3B_Instruct_8bit","Qwen3_1_7B_4bit","Qwen3_1_7B_8bit","Gemma_3_1B_IT_4bit","Gemma","Google","Gemma_3_1B_IT_8bit","Phi_3_5_Mini_Instruct_4bit","Phi","Microsoft","Phi_3_5_Mini_Instruct_8bit","Phi_4_Mini_Instruct_4bit","Phi_4_Mini_Instruct_8bit","SmolLM_1_7B_Instruct_4bit","SmolLM","HuggingFace","SmolLM_1_7B_Instruct_8bit","SmolLM2_1_7B_Instruct_4bit","SmolLM2_1_7B_Instruct_8bit","OpenELM_1_1B_4bit","OpenELM","Apple","OpenELM_1_1B_8bit","OpenELM_3B_4bit","OpenELM_3B_8bit"],"sourceRoot":"../../src","sources":["models.ts"],"mappings":";;AAAA,WAAYA,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AASvB,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAqBzB,WAAYC,QAAQ,0BAARA,QAAQ;EAClB;EADUA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAOlB;EAPUA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAelB;EAfUA,QAAQ;EAARA,QAAQ;EAmBlB;EAnBUA,QAAQ;EAARA,QAAQ;EAuBlB;EAvBUA,QAAQ;EAARA,QAAQ;EA2BlB;EA3BUA,QAAQ;EAARA,QAAQ;EA+BlB;EA/BUA,QAAQ;EAARA,QAAQ;EAmClB;EAnCUA,QAAQ;EAARA,QAAQ;EAuClB;EAvCUA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AA8CpB,OAAO,MAAMC,SAAsB,GAAG,CACpC;EACEC,EAAE,EAAEF,QAAQ,CAACG,0BAA0B;EACvCC,MAAM,EAAEN,WAAW,CAACO,KAAK;EACzBC,QAAQ,EAAEP,aAAa,CAACQ,IAAI;EAC5BC,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACY,0BAA0B;EACvCR,MAAM,EAAEN,WAAW,CAACO,KAAK;EACzBC,QAAQ,EAAEP,aAAa,CAACQ,IAAI;EAC5BC,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACa,0BAA0B;EACvCT,MAAM,EAAEN,WAAW,CAACO,KAAK;EACzBC,QAAQ,EAAEP,aAAa,CAACQ,IAAI;EAC5BC,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACc,0BAA0B;EACvCV,MAAM,EAAEN,WAAW,CAACO,KAAK;EACzBC,QAAQ,EAAEP,aAAa,CAACQ,IAAI;EAC5BC,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACe,0BAA0B;EACvCX,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,gCAAgC;EAC7CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACkB,0BAA0B;EACvCd,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,gCAAgC;EAC7CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACmB,0BAA0B;EACvCf,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,gCAAgC;EAC7CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACoB,0BAA0B;EACvChB,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,gCAAgC;EAC7CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACqB,wBAAwB;EACrCjB,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,8BAA8B;EAC3CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACsB,wBAAwB;EACrClB,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,8BAA8B;EAC3CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACuB,eAAe;EAC5BnB,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,qBAAqB;EAClCC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACwB,eAAe;EAC5BpB,MAAM,EAAEN,WAAW,CAACkB,IAAI;EACxBV,QAAQ,EAAEP,aAAa,CAACkB,OAAO;EAC/BT,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,qBAAqB;EAClCC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACyB,kBAAkB;EAC/BrB,MAAM,EAAEN,WAAW,CAAC4B,KAAK;EACzBpB,QAAQ,EAAEP,aAAa,CAAC4B,MAAM;EAC9BnB,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,uBAAuB;EACpCC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAAC4B,kBAAkB;EAC/BxB,MAAM,EAAEN,WAAW,CAAC4B,KAAK;EACzBpB,QAAQ,EAAEP,aAAa,CAAC4B,MAAM;EAC9BnB,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,uBAAuB;EACpCC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAAC6B,0BAA0B;EACvCzB,MAAM,EAAEN,WAAW,CAACgC,GAAG;EACvBxB,QAAQ,EAAEP,aAAa,CAACgC,SAAS;EACjCvB,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACgC,0BAA0B;EACvC5B,MAAM,EAAEN,WAAW,CAACgC,GAAG;EACvBxB,QAAQ,EAAEP,aAAa,CAACgC,SAAS;EACjCvB,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACiC,wBAAwB;EACrC7B,MAAM,EAAEN,WAAW,CAACgC,GAAG;EACvBxB,QAAQ,EAAEP,aAAa,CAACgC,SAAS;EACjCvB,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,6BAA6B;EAC1CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACkC,wBAAwB;EACrC9B,MAAM,EAAEN,WAAW,CAACgC,GAAG;EACvBxB,QAAQ,EAAEP,aAAa,CAACgC,SAAS;EACjCvB,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,6BAA6B;EAC1CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACmC,yBAAyB;EACtC/B,MAAM,EAAEN,WAAW,CAACsC,MAAM;EAC1B9B,QAAQ,EAAEP,aAAa,CAACsC,WAAW;EACnC7B,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,8BAA8B;EAC3CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACsC,yBAAyB;EACtClC,MAAM,EAAEN,WAAW,CAACsC,MAAM;EAC1B9B,QAAQ,EAAEP,aAAa,CAACsC,WAAW;EACnC7B,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,8BAA8B;EAC3CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACuC,0BAA0B;EACvCnC,MAAM,EAAEN,WAAW,CAACsC,MAAM;EAC1B9B,QAAQ,EAAEP,aAAa,CAACsC,WAAW;EACnC7B,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACwC,0BAA0B;EACvCpC,MAAM,EAAEN,WAAW,CAACsC,MAAM;EAC1B9B,QAAQ,EAAEP,aAAa,CAACsC,WAAW;EACnC7B,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,+BAA+B;EAC5CC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAACyC,iBAAiB;EAC9BrC,MAAM,EAAEN,WAAW,CAAC4C,OAAO;EAC3BpC,QAAQ,EAAEP,aAAa,CAAC4C,KAAK;EAC7BnC,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,sBAAsB;EACnCC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAAC4C,iBAAiB;EAC9BxC,MAAM,EAAEN,WAAW,CAAC4C,OAAO;EAC3BpC,QAAQ,EAAEP,aAAa,CAAC4C,KAAK;EAC7BnC,UAAU,EAAE,MAAM;EAClBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,sBAAsB;EACnCC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAAC6C,eAAe;EAC5BzC,MAAM,EAAEN,WAAW,CAAC4C,OAAO;EAC3BpC,QAAQ,EAAEP,aAAa,CAAC4C,KAAK;EAC7BnC,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,oBAAoB;EACjCC,YAAY,EAAE;AAChB,CAAC,EACD;EACET,EAAE,EAAEF,QAAQ,CAAC8C,eAAe;EAC5B1C,MAAM,EAAEN,WAAW,CAAC4C,OAAO;EAC3BpC,QAAQ,EAAEP,aAAa,CAAC4C,KAAK;EAC7BnC,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,oBAAoB;EACjCC,YAAY,EAAE;AAChB,CAAC,CACF","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- export { LLM } from './llm';
1
+ export { LLM, type Message } from './llm';
2
2
  export { ModelManager } from './modelManager';
3
- export { MLXModel } from './models';
4
- export type { GenerationStats, LLM as LLMSpec } from './specs/LLM.nitro';
3
+ export { MLXModel, MLXModels, ModelFamily, type ModelInfo, ModelProvider, type ModelQuantization, } from './models';
4
+ export type { GenerationStats, LLM as LLMSpec, LLMLoadOptions } from './specs/LLM.nitro';
5
5
  export type { ModelManager as ModelManagerSpec } from './specs/ModelManager.nitro';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,YAAY,EAAE,eAAe,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACxE,YAAY,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,KAAK,SAAS,EACd,aAAa,EACb,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAA;AAEjB,YAAY,EAAE,eAAe,EAAE,GAAG,IAAI,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACxF,YAAY,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
@@ -1,4 +1,8 @@
1
- import type { GenerationStats } from './specs/LLM.nitro';
1
+ import type { GenerationStats, LLMLoadOptions } from './specs/LLM.nitro';
2
+ export type Message = {
3
+ role: 'user' | 'assistant' | 'system';
4
+ content: string;
5
+ };
2
6
  /**
3
7
  * LLM text generation using MLX on Apple Silicon.
4
8
  *
@@ -25,9 +29,9 @@ export declare const LLM: {
25
29
  /**
26
30
  * Load a model into memory. Downloads the model from HuggingFace if not already cached.
27
31
  * @param modelId - HuggingFace model ID (e.g., 'mlx-community/Qwen3-0.6B-4bit')
28
- * @param onProgress - Callback invoked with loading progress (0-1)
32
+ * @param options - Callback invoked with loading progress (0-1)
29
33
  */
30
- load(modelId: string, onProgress: (progress: number) => void): Promise<void>;
34
+ load(modelId: string, options: LLMLoadOptions): Promise<void>;
31
35
  /**
32
36
  * Generate a complete response for a prompt. Blocks until generation is complete.
33
37
  * For streaming responses, use `stream()` instead.
@@ -46,11 +50,25 @@ export declare const LLM: {
46
50
  * Stop the current generation. Safe to call even if not generating.
47
51
  */
48
52
  stop(): void;
53
+ /**
54
+ * Unload the current model and release memory.
55
+ * Call this when you're done with the model to free up memory.
56
+ */
57
+ unload(): void;
49
58
  /**
50
59
  * Get statistics from the last generation.
51
60
  * @returns Statistics including token count, tokens/sec, TTFT, and total time
52
61
  */
53
62
  getLastGenerationStats(): GenerationStats;
63
+ /**
64
+ * Get the message history if management is enabled.
65
+ * @returns Array of messages in the history
66
+ */
67
+ getHistory(): Message[];
68
+ /**
69
+ * Clear the message history.
70
+ */
71
+ clearHistory(): void;
54
72
  /** Whether a model is currently loaded and ready for generation */
55
73
  readonly isLoaded: boolean;
56
74
  /** Whether text is currently being generated */
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/llm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAA;AAWxE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,GAAG;IACd;;;;OAIG;kBACW,MAAM,cAAc,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;;;;OAKG;qBACc,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC;;;;;OAKG;mBACY,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;OAEG;YACK,IAAI;IAIZ;;;OAGG;8BACuB,eAAe;IAIzC,mEAAmE;uBACnD,OAAO;IAIvB,gDAAgD;2BAC5B,OAAO;IAI3B,oEAAoE;sBACrD,MAAM;IAIrB,sCAAsC;WACzB,OAAO;IAQpB;;;;OAIG;kBACiB,MAAM;CAO3B,CAAA"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/llm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAA;AAIxF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,GAAG;IACd;;;;OAIG;kBACW,MAAM,WAAW,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;;;;OAKG;qBACc,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC;;;;;OAKG;mBACY,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;OAEG;YACK,IAAI;IAIZ;;;OAGG;cACO,IAAI;IAId;;;OAGG;8BACuB,eAAe;IAIzC;;;OAGG;kBACW,OAAO,EAAE;IAIvB;;OAEG;oBACa,IAAI;IAIpB,mEAAmE;uBACnD,OAAO;IAIvB,gDAAgD;2BAC5B,OAAO;IAI3B,oEAAoE;sBACrD,MAAM;IAIrB,sCAAsC;WACzB,OAAO;IAQpB;;;;OAIG;kBACiB,MAAM;CAO3B,CAAA"}
@@ -1,3 +1,29 @@
1
+ export declare enum ModelFamily {
2
+ Llama = "Llama",
3
+ Qwen = "Qwen",
4
+ Gemma = "Gemma",
5
+ Phi = "Phi",
6
+ SmolLM = "SmolLM",
7
+ OpenELM = "OpenELM"
8
+ }
9
+ export declare enum ModelProvider {
10
+ Meta = "Meta",
11
+ Alibaba = "Alibaba",
12
+ Google = "Google",
13
+ Microsoft = "Microsoft",
14
+ HuggingFace = "HuggingFace",
15
+ Apple = "Apple"
16
+ }
17
+ export type ModelQuantization = '4bit' | '8bit';
18
+ export interface ModelInfo {
19
+ id: MLXModel;
20
+ family: ModelFamily;
21
+ provider: ModelProvider;
22
+ parameters: string;
23
+ quantization: ModelQuantization;
24
+ displayName: string;
25
+ downloadSize: number;
26
+ }
1
27
  export declare enum MLXModel {
2
28
  Llama_3_2_1B_Instruct_4bit = "mlx-community/Llama-3.2-1B-Instruct-4bit",
3
29
  Llama_3_2_1B_Instruct_8bit = "mlx-community/Llama-3.2-1B-Instruct-8bit",
@@ -26,4 +52,5 @@ export declare enum MLXModel {
26
52
  OpenELM_3B_4bit = "mlx-community/OpenELM-3B-4bit",
27
53
  OpenELM_3B_8bit = "mlx-community/OpenELM-3B-8bit"
28
54
  }
55
+ export declare const MLXModels: ModelInfo[];
29
56
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/models.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAElB,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IAGvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,wBAAwB,2CAA2C;IACnE,wBAAwB,2CAA2C;IAGnE,eAAe,kCAAkC;IACjD,eAAe,kCAAkC;IAGjD,kBAAkB,qCAAqC;IACvD,kBAAkB,qCAAqC;IAGvD,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IAGvE,wBAAwB,2CAA2C;IACnE,wBAAwB,2CAA2C;IAGnE,yBAAyB,4CAA4C;IACrE,yBAAyB,4CAA4C;IAGrE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IAGvE,iBAAiB,oCAAoC;IACrD,iBAAiB,oCAAoC;IACrD,eAAe,kCAAkC;IACjD,eAAe,kCAAkC;CAClD"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/models.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,QAAQ,CAAA;IACZ,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,iBAAiB,CAAA;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,oBAAY,QAAQ;IAElB,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IAGvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IACvE,wBAAwB,2CAA2C;IACnE,wBAAwB,2CAA2C;IAGnE,eAAe,kCAAkC;IACjD,eAAe,kCAAkC;IAGjD,kBAAkB,qCAAqC;IACvD,kBAAkB,qCAAqC;IAGvD,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IAGvE,wBAAwB,2CAA2C;IACnE,wBAAwB,2CAA2C;IAGnE,yBAAyB,4CAA4C;IACrE,yBAAyB,4CAA4C;IAGrE,0BAA0B,6CAA6C;IACvE,0BAA0B,6CAA6C;IAGvE,iBAAiB,oCAAoC;IACrD,iBAAiB,oCAAoC;IACrD,eAAe,kCAAkC;IACjD,eAAe,kCAAkC;CAClD;AAED,eAAO,MAAM,SAAS,EAAE,SAAS,EA2OhC,CAAA"}