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.
- package/ios/Sources/HybridLLM.swift +115 -5
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/llm.js +23 -3
- package/lib/module/llm.js.map +1 -1
- package/lib/module/models.js +227 -0
- package/lib/module/models.js.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/llm.d.ts +21 -3
- package/lib/typescript/src/llm.d.ts.map +1 -1
- package/lib/typescript/src/models.d.ts +27 -0
- package/lib/typescript/src/models.d.ts.map +1 -1
- package/lib/typescript/src/specs/LLM.nitro.d.ts +29 -2
- package/lib/typescript/src/specs/LLM.nitro.d.ts.map +1 -1
- package/nitrogen/generated/ios/MLXReactNative-Swift-Cxx-Bridge.hpp +87 -0
- package/nitrogen/generated/ios/MLXReactNative-Swift-Cxx-Umbrella.hpp +7 -0
- package/nitrogen/generated/ios/c++/HybridLLMSpecSwift.hpp +30 -2
- package/nitrogen/generated/ios/swift/HybridLLMSpec.swift +4 -1
- package/nitrogen/generated/ios/swift/HybridLLMSpec_cxx.swift +42 -7
- package/nitrogen/generated/ios/swift/LLMLoadOptions.swift +138 -0
- package/nitrogen/generated/ios/swift/LLMMessage.swift +47 -0
- package/nitrogen/generated/shared/c++/HybridLLMSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridLLMSpec.hpp +12 -1
- package/nitrogen/generated/shared/c++/LLMLoadOptions.hpp +87 -0
- package/nitrogen/generated/shared/c++/LLMMessage.hpp +79 -0
- package/package.json +1 -9
- package/src/index.ts +10 -3
- package/src/llm.ts +32 -4
- package/src/models.ts +267 -0
- 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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LLM","ModelManager","MLXModel"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,GAAG,
|
|
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
|
|
38
|
+
* @param options - Callback invoked with loading progress (0-1)
|
|
39
39
|
*/
|
|
40
|
-
load(modelId,
|
|
41
|
-
return getInstance().load(modelId,
|
|
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;
|
package/lib/module/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","instance","getInstance","createHybridObject","LLM","load","modelId","
|
|
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":[]}
|
package/lib/module/models.js
CHANGED
|
@@ -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
|
package/lib/module/models.js.map
CHANGED
|
@@ -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":"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","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;
|
|
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
|
|
32
|
+
* @param options - Callback invoked with loading progress (0-1)
|
|
29
33
|
*/
|
|
30
|
-
load(modelId: string,
|
|
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;
|
|
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"}
|