node-llama-cpp 3.0.0-beta.19 → 3.0.0-beta.20

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 (111) hide show
  1. package/README.md +1 -1
  2. package/dist/bindings/AddonTypes.d.ts +1 -0
  3. package/dist/bindings/Llama.js +14 -7
  4. package/dist/bindings/Llama.js.map +1 -1
  5. package/dist/bindings/getLlama.d.ts +20 -2
  6. package/dist/bindings/getLlama.js +23 -14
  7. package/dist/bindings/getLlama.js.map +1 -1
  8. package/dist/bindings/utils/detectAvailableComputeLayers.js +4 -0
  9. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -1
  10. package/dist/bindings/utils/detectGlibc.js +12 -2
  11. package/dist/bindings/utils/detectGlibc.js.map +1 -1
  12. package/dist/cli/cli.js +11 -9
  13. package/dist/cli/cli.js.map +1 -1
  14. package/dist/cli/commands/BuildCommand.js +4 -2
  15. package/dist/cli/commands/BuildCommand.js.map +1 -1
  16. package/dist/cli/commands/ChatCommand.js +3 -2
  17. package/dist/cli/commands/ChatCommand.js.map +1 -1
  18. package/dist/cli/commands/ClearCommand.js +3 -2
  19. package/dist/cli/commands/ClearCommand.js.map +1 -1
  20. package/dist/cli/commands/CompleteCommand.js +3 -1
  21. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  22. package/dist/cli/commands/DownloadCommand.js +3 -2
  23. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  24. package/dist/cli/commands/InfillCommand.js +3 -1
  25. package/dist/cli/commands/InfillCommand.js.map +1 -1
  26. package/dist/cli/commands/InitCommand.d.ts +11 -0
  27. package/dist/cli/commands/InitCommand.js +195 -0
  28. package/dist/cli/commands/InitCommand.js.map +1 -0
  29. package/dist/cli/commands/PullCommand.js +18 -10
  30. package/dist/cli/commands/PullCommand.js.map +1 -1
  31. package/dist/cli/commands/inspect/InspectCommand.js +3 -1
  32. package/dist/cli/commands/inspect/InspectCommand.js.map +1 -1
  33. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +5 -2
  34. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  35. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +3 -1
  36. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  37. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +3 -1
  38. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
  39. package/dist/cli/projectTemplates.d.ts +7 -0
  40. package/dist/cli/projectTemplates.js +10 -0
  41. package/dist/cli/projectTemplates.js.map +1 -0
  42. package/dist/cli/startCreateCli.d.ts +2 -0
  43. package/dist/cli/startCreateCli.js +26 -0
  44. package/dist/cli/startCreateCli.js.map +1 -0
  45. package/dist/cli/utils/consolePromptQuestion.d.ts +2 -1
  46. package/dist/cli/utils/consolePromptQuestion.js +4 -2
  47. package/dist/cli/utils/consolePromptQuestion.js.map +1 -1
  48. package/dist/cli/utils/interactivelyAskForModel.d.ts +7 -0
  49. package/dist/cli/utils/interactivelyAskForModel.js +451 -0
  50. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -0
  51. package/dist/cli/utils/projectTemplates.d.ts +19 -0
  52. package/dist/cli/utils/projectTemplates.js +47 -0
  53. package/dist/cli/utils/projectTemplates.js.map +1 -0
  54. package/dist/cli/utils/resolveCommandGgufPath.js +7 -435
  55. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
  56. package/dist/cli/utils/splitAnsiToLines.d.ts +1 -1
  57. package/dist/cli/utils/splitAnsiToLines.js +20 -5
  58. package/dist/cli/utils/splitAnsiToLines.js.map +1 -1
  59. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.d.ts +2 -0
  60. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.js +23 -0
  61. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.js.map +1 -0
  62. package/dist/commands.d.ts +1 -0
  63. package/dist/commands.js +3 -0
  64. package/dist/commands.js.map +1 -1
  65. package/dist/config.d.ts +21 -1
  66. package/dist/config.js +27 -4
  67. package/dist/config.js.map +1 -1
  68. package/dist/evaluator/LlamaContext/LlamaContext.js +0 -1
  69. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  70. package/dist/evaluator/LlamaModel.d.ts +32 -1
  71. package/dist/evaluator/LlamaModel.js +54 -1
  72. package/dist/evaluator/LlamaModel.js.map +1 -1
  73. package/dist/utils/createModelDownloader.d.ts +3 -0
  74. package/dist/utils/createModelDownloader.js.map +1 -1
  75. package/llama/addon.cpp +92 -0
  76. package/llama/binariesGithubRelease.json +1 -1
  77. package/llama/gitRelease.bundle +0 -0
  78. package/llama/llama.cpp.info.json +1 -1
  79. package/llamaBins/linux-arm64/_nlcBuildMetadata.json +1 -1
  80. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  81. package/llamaBins/linux-armv7l/_nlcBuildMetadata.json +1 -1
  82. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  83. package/llamaBins/linux-x64/_nlcBuildMetadata.json +1 -1
  84. package/llamaBins/linux-x64/llama-addon.node +0 -0
  85. package/llamaBins/linux-x64-cuda/_nlcBuildMetadata.json +1 -1
  86. package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
  87. package/llamaBins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -1
  88. package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
  89. package/llamaBins/mac-arm64-metal/_nlcBuildMetadata.json +1 -1
  90. package/llamaBins/mac-arm64-metal/default.metallib +0 -0
  91. package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
  92. package/llamaBins/mac-x64/_nlcBuildMetadata.json +1 -1
  93. package/llamaBins/mac-x64/llama-addon.node +0 -0
  94. package/llamaBins/win-arm64/_nlcBuildMetadata.json +1 -1
  95. package/llamaBins/win-arm64/llama-addon.exp +0 -0
  96. package/llamaBins/win-arm64/llama-addon.lib +0 -0
  97. package/llamaBins/win-arm64/llama-addon.node +0 -0
  98. package/llamaBins/win-x64/_nlcBuildMetadata.json +1 -1
  99. package/llamaBins/win-x64/llama-addon.exp +0 -0
  100. package/llamaBins/win-x64/llama-addon.lib +0 -0
  101. package/llamaBins/win-x64/llama-addon.node +0 -0
  102. package/llamaBins/win-x64-cuda/_nlcBuildMetadata.json +1 -1
  103. package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
  104. package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
  105. package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
  106. package/llamaBins/win-x64-vulkan/_nlcBuildMetadata.json +1 -1
  107. package/llamaBins/win-x64-vulkan/llama-addon.exp +0 -0
  108. package/llamaBins/win-x64-vulkan/llama-addon.lib +0 -0
  109. package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
  110. package/package.json +17 -13
  111. package/templates/package.json +10 -0
@@ -2,31 +2,22 @@ import path from "path";
2
2
  import process from "process";
3
3
  import chalk from "chalk";
4
4
  import fs from "fs-extra";
5
- import bytes from "bytes";
6
- import logSymbols from "log-symbols";
7
- import stripAnsi from "strip-ansi";
8
5
  import { cliModelsDirectory } from "../../config.js";
9
6
  import { normalizeGgufDownloadUrl } from "../../gguf/utils/normalizeGgufDownloadUrl.js";
10
- import { GgufInsights } from "../../gguf/insights/GgufInsights.js";
11
- import { readGgufFileInfo } from "../../gguf/readGgufFileInfo.js";
12
7
  import { isUrl } from "../../utils/isUrl.js";
13
- import { arrowChar } from "../../consts.js";
14
- import { withProgressLog } from "../../utils/withProgressLog.js";
15
- import { getReadableContextSize } from "../../utils/getReadableContextSize.js";
16
- import { getPrettyBuildGpuName } from "../../bindings/consts.js";
17
- import { getGgufSplitPartsInfo } from "../../gguf/utils/resolveSplitGgufParts.js";
18
8
  import { createModelDownloader } from "../../utils/createModelDownloader.js";
19
9
  import { ConsoleInteraction, ConsoleInteractionKey } from "./ConsoleInteraction.js";
20
10
  import { getReadablePath } from "./getReadablePath.js";
21
- import { basicChooseFromListConsoleInteraction } from "./basicChooseFromListConsoleInteraction.js";
22
- import { consolePromptQuestion } from "./consolePromptQuestion.js";
23
- import { resolveModelRecommendationFileOptions } from "./resolveModelRecommendationFileOptions.js";
24
- import { splitAnsiToLines } from "./splitAnsiToLines.js";
25
- import { renderInfoLine } from "./printInfoLine.js";
11
+ import { interactivelyAskForModel } from "./interactivelyAskForModel.js";
26
12
  export async function resolveCommandGgufPath(ggufPath, llama, fetchHeaders, { targetDirectory = cliModelsDirectory } = {}) {
27
13
  let resolvedGgufPath = ggufPath;
28
14
  if (resolvedGgufPath == null)
29
- resolvedGgufPath = await interactiveChooseModel(llama, targetDirectory);
15
+ resolvedGgufPath = await interactivelyAskForModel({
16
+ llama,
17
+ modelsDirectory: targetDirectory,
18
+ allowLocalModels: true,
19
+ downloadIntent: true
20
+ });
30
21
  if (!isUrl(resolvedGgufPath)) {
31
22
  try {
32
23
  const resolvedPath = path.resolve(process.cwd(), resolvedGgufPath);
@@ -77,423 +68,4 @@ export async function resolveCommandGgufPath(ggufPath, llama, fetchHeaders, { ta
77
68
  console.info(`${chalk.yellow("File:")} ${getReadablePath(downloader.entrypointFilePath)}`);
78
69
  return downloader.entrypointFilePath;
79
70
  }
80
- const vramStateUpdateInterval = 1000;
81
- async function interactiveChooseModel(llama, targetDirectory) {
82
- let localModelFileOptions = [];
83
- const recommendedModelOptions = [];
84
- const activeInteractionController = new AbortController();
85
- let scheduledTitleRerenderTimeout = undefined;
86
- let lastVramState = llama.getVramState();
87
- const canUseGpu = lastVramState.total > 0;
88
- if (await fs.existsSync(targetDirectory)) {
89
- const ggufFileNames = (await fs.readdir(targetDirectory))
90
- .filter((fileName) => {
91
- if (!fileName.endsWith(".gguf"))
92
- return false;
93
- const partsInfo = getGgufSplitPartsInfo(fileName);
94
- return partsInfo == null || partsInfo.part === 1;
95
- });
96
- let readItems = 0;
97
- const renderProgress = () => ("(" + String(readItems).padStart(String(ggufFileNames.length).length, "0") + "/" + ggufFileNames.length + ")");
98
- if (ggufFileNames.length > 0)
99
- await withProgressLog({
100
- loadingText: "Reading local models directory",
101
- failText: "Failed to read local models directory",
102
- successText: "Read local models directory",
103
- noSuccessLiveStatus: true,
104
- initialProgressBarText: renderProgress()
105
- }, async (progressUpdater) => {
106
- localModelFileOptions = await Promise.all(ggufFileNames.map(async (fileName) => {
107
- const filePath = path.join(targetDirectory, fileName);
108
- let ggufInsights = undefined;
109
- try {
110
- const ggufFileInfo = await readGgufFileInfo(filePath, {
111
- sourceType: "filesystem",
112
- signal: activeInteractionController.signal
113
- });
114
- ggufInsights = await GgufInsights.from(ggufFileInfo, llama);
115
- }
116
- catch (err) {
117
- // do nothing
118
- }
119
- readItems++;
120
- progressUpdater.setProgress(readItems / ggufFileNames.length, renderProgress());
121
- const compatibilityScore = ggufInsights?.configurationResolver.scoreModelConfigurationCompatibility();
122
- return {
123
- type: "localModel",
124
- title: fileName,
125
- path: filePath,
126
- addedDate: (await fs.stat(filePath)).birthtimeMs,
127
- ggufInsights: ggufInsights,
128
- compatibilityScore: compatibilityScore?.compatibilityScore,
129
- compatibilityBonusScore: compatibilityScore?.bonusScore,
130
- compatibilityContextSize: compatibilityScore?.resolvedValues.contextSize
131
- };
132
- }));
133
- localModelFileOptions = localModelFileOptions.sort((a, b) => {
134
- if (a.compatibilityScore == null && b.compatibilityScore == null)
135
- return b.addedDate - a.addedDate;
136
- else if (a.compatibilityScore == null)
137
- return -1;
138
- else if (b.compatibilityScore == null)
139
- return 1;
140
- else if (b.compatibilityScore === a.compatibilityScore &&
141
- b.compatibilityBonusScore != null && a.compatibilityBonusScore != null)
142
- return b.compatibilityBonusScore - a.compatibilityBonusScore;
143
- return b.compatibilityScore - a.compatibilityScore;
144
- });
145
- });
146
- }
147
- try {
148
- // if this file gets very big, we don't want to load it on every CLI usage
149
- const { recommendedModels } = await import("../recommendedModels.js");
150
- for (const recommendedModel of recommendedModels) {
151
- const potentialUrls = resolveModelRecommendationFileOptions(recommendedModel);
152
- if (potentialUrls.length > 0)
153
- recommendedModelOptions.push({
154
- type: "recommendedModel",
155
- title: recommendedModel.name,
156
- potentialUrls,
157
- description: recommendedModel.description
158
- });
159
- }
160
- }
161
- catch (err) {
162
- // do nothing
163
- }
164
- let initialFocusIndex = 3; // first model option
165
- const options = [
166
- {
167
- type: "action",
168
- text: "Enter a model URL or file path...",
169
- key: "getPath"
170
- },
171
- ...(localModelFileOptions.length === 0
172
- ? []
173
- : [
174
- {
175
- type: "separator",
176
- text: () => " " + chalk.gray("-".repeat(4))
177
- },
178
- {
179
- type: "separator",
180
- text: " " + chalk.bold("Downloaded models") + " " + chalk.dim(`(${getReadablePath(targetDirectory)})`)
181
- },
182
- ...localModelFileOptions
183
- ]),
184
- ...(recommendedModelOptions.length === 0
185
- ? []
186
- : [
187
- {
188
- type: "separator",
189
- text: () => " " + chalk.gray("-".repeat(4))
190
- },
191
- {
192
- type: "separator",
193
- text: " " + chalk.bold("Recommended models") + " " + chalk.dim("(select to download)")
194
- },
195
- ...recommendedModelOptions
196
- ])
197
- ];
198
- try {
199
- // eslint-disable-next-line no-constant-condition
200
- while (true) {
201
- const minWidth = Math.min(80, process.stdout.columns - 1);
202
- const selectedItem = await basicChooseFromListConsoleInteraction({
203
- title(item, rerender) {
204
- const title = chalk.bold("Select a model:") + " ";
205
- const vramState = llama.getVramState();
206
- const vramStateText = vramState.total === 0
207
- ? chalk.bgGray(" " +
208
- "No GPU" +
209
- " ")
210
- : (chalk.bgGray(" " +
211
- chalk.yellow("GPU:") + " " + getPrettyBuildGpuName(llama.gpu) +
212
- " ") +
213
- " " +
214
- chalk.bgGray(" " +
215
- chalk.yellow("VRAM usage:") + " " +
216
- (String(Math.floor((vramState.used / vramState.total) * 100 * 100) / 100) + "%") + " " +
217
- chalk.dim("(" + bytes(vramState.used) + "/" + bytes(vramState.total) + ")") +
218
- " "));
219
- const pad = Math.max(0, minWidth - (stripAnsi(title).length + stripAnsi(vramStateText).length));
220
- lastVramState = vramState;
221
- clearTimeout(scheduledTitleRerenderTimeout);
222
- scheduledTitleRerenderTimeout = setTimeout(() => {
223
- const vramState = llama.getVramState();
224
- if (lastVramState.used !== vramState.used || lastVramState.total !== vramState.total)
225
- rerender();
226
- }, vramStateUpdateInterval);
227
- return [
228
- title,
229
- " ".repeat(pad),
230
- vramStateText
231
- ].join("");
232
- },
233
- footer(item) {
234
- if (item.type !== "recommendedModel" || item.description == null)
235
- return undefined;
236
- const leftPad = 3;
237
- const maxWidth = Math.max(1, process.stdout.columns - leftPad);
238
- const lines = splitAnsiToLines(item.description, maxWidth);
239
- return " \n" +
240
- " ".repeat(leftPad) + chalk.bold.gray("Model description") + "\n" +
241
- lines.map((line) => (" ".repeat(leftPad) + line)).join("\n") + "\n" +
242
- splitAnsiToLines(renderRecommendedModelTechnicalInfo(item.selectedUrl, maxWidth, canUseGpu), maxWidth)
243
- .map((line) => (" ".repeat(leftPad) + line))
244
- .join("\n");
245
- },
246
- items: options,
247
- renderItem(item, focused, rerender) {
248
- return renderSelectionItem(item, focused, rerender, activeInteractionController.signal, llama);
249
- },
250
- canFocusItem(item) {
251
- return item.type === "recommendedModel" || item.type === "localModel" || item.type === "action";
252
- },
253
- canSelectItem(item) {
254
- if (item.type === "recommendedModel")
255
- return item.selectedUrl != null;
256
- return item.type === "localModel" || item.type === "action";
257
- },
258
- initialFocusIndex: Math.min(initialFocusIndex, options.length - 1),
259
- aboveItemsPadding: 1,
260
- belowItemsPadding: 1,
261
- renderSummaryOnExit(item) {
262
- if (item == null || item.type === "action" || item.type === "separator")
263
- return "";
264
- else if (item.type === "localModel") {
265
- const modelTitle = item.title instanceof Function
266
- ? item.title()
267
- : item.title;
268
- return logSymbols.success + " Selected model " + chalk.blue(modelTitle);
269
- }
270
- else if (item.type === "recommendedModel") {
271
- const modelTitle = item.title instanceof Function
272
- ? item.title()
273
- : item.title;
274
- return logSymbols.success + " Selected model " + chalk.blue(modelTitle);
275
- }
276
- void (item);
277
- return "";
278
- },
279
- exitOnCtrlC: true
280
- });
281
- if (selectedItem == null || selectedItem.type === "separator")
282
- continue;
283
- else if (selectedItem.type === "localModel")
284
- return selectedItem.path;
285
- else if (selectedItem.type === "recommendedModel" && selectedItem.selectedUrl != null)
286
- return selectedItem.selectedUrl.url;
287
- else if (selectedItem.type === "action") {
288
- if (selectedItem.key === "getPath") {
289
- initialFocusIndex = 0;
290
- const selectedModelUrlOrPath = await askForModelUrlOrPath();
291
- if (selectedModelUrlOrPath == null)
292
- continue;
293
- return selectedModelUrlOrPath;
294
- }
295
- }
296
- }
297
- }
298
- finally {
299
- activeInteractionController.abort();
300
- }
301
- }
302
- async function askForModelUrlOrPath() {
303
- return await consolePromptQuestion(chalk.bold("Enter a model URL or file path: "), {
304
- exitOnCtrlC: false,
305
- async validate(input) {
306
- if (isUrl(input, false)) {
307
- try {
308
- new URL(input);
309
- }
310
- catch (err) {
311
- return "Invalid URL";
312
- }
313
- return null;
314
- }
315
- try {
316
- if (await fs.pathExists(input))
317
- return null;
318
- return "File does not exist";
319
- }
320
- catch (err) {
321
- return "Invalid path";
322
- }
323
- },
324
- renderSummaryOnExit(item) {
325
- if (item == null)
326
- return "";
327
- if (isUrl(item, false))
328
- return logSymbols.success + " Entered model URL " + chalk.blue(item);
329
- else
330
- return logSymbols.success + " Entered model path " + chalk.blue(item);
331
- }
332
- });
333
- }
334
- function renderSelectionItem(item, focused, rerender, abortSignal, llama) {
335
- if (item.type === "localModel") {
336
- let modelText = item.title instanceof Function
337
- ? item.title()
338
- : item.title;
339
- if (item.ggufInsights != null)
340
- modelText += " " + renderModelCompatibility(item.ggufInsights, item.compatibilityScore, item.compatibilityContextSize);
341
- else
342
- modelText += " " + chalk.bgGray.yellow(" Cannot read metadata ");
343
- return renderSelectableItem(modelText, focused);
344
- }
345
- else if (item.type === "recommendedModel") {
346
- let modelText = item.title instanceof Function
347
- ? item.title()
348
- : item.title;
349
- if (item.selectedUrl == null) {
350
- if (item.urlSelectionLoadingState == null) {
351
- item.urlSelectionLoadingState = "loading";
352
- void selectFileForModelRecommendation({
353
- recommendedModelOption: item,
354
- abortSignal,
355
- rerenderOption: rerender,
356
- llama
357
- });
358
- }
359
- if (item.urlSelectionLoadingState === "loading")
360
- modelText += " " + chalk.bgGray.yellow(" Loading info ");
361
- else if (item.urlSelectionLoadingState === "done")
362
- modelText += " " + chalk.bgGray.yellow(" Failed to load info ");
363
- else
364
- void (item.urlSelectionLoadingState);
365
- }
366
- else
367
- modelText += " " + renderModelCompatibility(item.selectedUrl.ggufInsights, item.selectedUrl.compatibilityScore.compatibilityScore, item.selectedUrl.compatibilityScore.resolvedValues.contextSize);
368
- return renderSelectableItem(modelText, focused);
369
- }
370
- else if (item.type === "separator") {
371
- return item.text instanceof Function
372
- ? item.text()
373
- : item.text;
374
- }
375
- else if (item.type === "action") {
376
- const actionText = item.text instanceof Function
377
- ? item.text()
378
- : item.text;
379
- return renderSelectableItem(actionText, focused);
380
- }
381
- void (item);
382
- return "";
383
- }
384
- function renderSelectableItem(text, focused) {
385
- if (focused)
386
- return " " + chalk.cyan(arrowChar) + " " + chalk.cyan(text);
387
- return " * " + text;
388
- }
389
- function renderModelCompatibility(ggufInsights, compatibilityScore, compatibilityContextSize) {
390
- const info = [];
391
- if (compatibilityScore != null)
392
- info.push(renderCompatibilityPercentageWithColors(compatibilityScore * 100) + chalk.whiteBright(" compatibility")
393
- + (compatibilityContextSize == null
394
- ? ""
395
- : (chalk.gray(" | ") + chalk.yellow(getReadableContextSize(compatibilityContextSize)) + chalk.whiteBright(" context"))));
396
- info.push(chalk.yellow("Size:") + " " + chalk.whiteBright(bytes(ggufInsights.modelSize)));
397
- return info
398
- .map((item) => chalk.bgGray(" " + item + " "))
399
- .join(" ");
400
- }
401
- function renderRecommendedModelTechnicalInfo(modelSelectedUrl, maxWidth, canUseGpu) {
402
- if (modelSelectedUrl == null)
403
- return " \n" + chalk.bgGray.yellow(" Loading info ") + "\n ";
404
- const ggufInsights = modelSelectedUrl.ggufInsights;
405
- const compatibilityScore = modelSelectedUrl.compatibilityScore;
406
- const longestTitle = Math.max("Model info".length, "Resolved config".length) + 1;
407
- return " \n" + [
408
- renderInfoLine({
409
- title: "Model info",
410
- padTitle: longestTitle,
411
- separateLines: false,
412
- maxWidth,
413
- info: [{
414
- title: "Size",
415
- value: bytes(ggufInsights.modelSize)
416
- }, {
417
- show: ggufInsights.trainContextSize != null,
418
- title: "Train context size",
419
- value: () => getReadableContextSize(ggufInsights.trainContextSize ?? 0)
420
- }]
421
- }),
422
- renderInfoLine({
423
- title: "Resolved config",
424
- padTitle: longestTitle,
425
- separateLines: false,
426
- maxWidth,
427
- info: [{
428
- title: "",
429
- value: renderCompatibilityPercentageWithColors(compatibilityScore.compatibilityScore * 100) + " compatibility"
430
- }, {
431
- show: ggufInsights.trainContextSize != null,
432
- title: "Context size",
433
- value: getReadableContextSize(compatibilityScore.resolvedValues.contextSize)
434
- }, {
435
- show: canUseGpu,
436
- title: "GPU layers",
437
- value: () => (compatibilityScore.resolvedValues.gpuLayers + "/" + ggufInsights.totalLayers + " " +
438
- chalk.dim(`(${Math.floor((compatibilityScore.resolvedValues.gpuLayers / ggufInsights.totalLayers) * 100)}%)`))
439
- }, {
440
- show: canUseGpu,
441
- title: "VRAM usage",
442
- value: () => bytes(compatibilityScore.resolvedValues.totalVramUsage)
443
- }]
444
- })
445
- ].join("\n");
446
- }
447
- function renderCompatibilityPercentageWithColors(percentage, { greenBright = 100, green = 95, yellow = 85, yellowBright = 75 } = {}) {
448
- const percentageText = String(Math.floor(percentage)) + "%";
449
- if (percentage >= greenBright)
450
- return chalk.greenBright(percentageText);
451
- else if (percentage >= green)
452
- return chalk.green(percentageText);
453
- else if (percentage >= yellow)
454
- return chalk.yellow(percentageText);
455
- else if (percentage >= yellowBright)
456
- return chalk.yellowBright(percentageText);
457
- return chalk.red(percentageText);
458
- }
459
- async function selectFileForModelRecommendation({ recommendedModelOption, llama, abortSignal, rerenderOption }) {
460
- try {
461
- let bestScore = undefined;
462
- let bestScoreSelectedUrl = undefined;
463
- for (const potentialUrl of recommendedModelOption.potentialUrls) {
464
- if (abortSignal.aborted)
465
- return;
466
- try {
467
- const ggufFileInfo = await readGgufFileInfo(potentialUrl, {
468
- sourceType: "network",
469
- signal: abortSignal
470
- });
471
- const ggufInsights = await GgufInsights.from(ggufFileInfo, llama);
472
- if (abortSignal.aborted)
473
- return;
474
- const compatibilityScore = ggufInsights.configurationResolver.scoreModelConfigurationCompatibility();
475
- if (bestScore == null || compatibilityScore.compatibilityScore > bestScore) {
476
- bestScore = compatibilityScore.compatibilityScore;
477
- bestScoreSelectedUrl = {
478
- url: potentialUrl,
479
- ggufInsights,
480
- compatibilityScore
481
- };
482
- if (bestScore === 1)
483
- break;
484
- }
485
- }
486
- catch (err) {
487
- // do nothing
488
- }
489
- }
490
- recommendedModelOption.selectedUrl = bestScoreSelectedUrl;
491
- recommendedModelOption.urlSelectionLoadingState = "done";
492
- rerenderOption();
493
- }
494
- catch (err) {
495
- recommendedModelOption.urlSelectionLoadingState = "done";
496
- rerenderOption();
497
- }
498
- }
499
71
  //# sourceMappingURL=resolveCommandGgufPath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveCommandGgufPath.js","sourceRoot":"","sources":["../../../src/cli/utils/resolveCommandGgufPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveCommandGgufPath.js","sourceRoot":"","sources":["../../../src/cli/utils/resolveCommandGgufPath.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function splitAnsiToLines(text: string | undefined, width: number): string[];
1
+ export declare function splitAnsiToLines(text: string | undefined, width: number, maxRoundToWords?: number): string[];
@@ -1,15 +1,30 @@
1
1
  import stripAnsi from "strip-ansi";
2
2
  import sliceAnsi from "slice-ansi";
3
- export function splitAnsiToLines(text, width) {
3
+ export function splitAnsiToLines(text, width, maxRoundToWords = Math.min(16, width)) {
4
4
  if (text == null || text === "")
5
5
  return [];
6
6
  const lines = [];
7
- const linesWithoutAnsi = stripAnsi(text)
8
- .split("\n");
7
+ const linesWithoutAnsi = stripAnsi(text).split("\n");
9
8
  let textIndex = 0;
10
9
  for (const line of linesWithoutAnsi) {
11
- for (let lineIndex = 0; lineIndex < line.length; lineIndex += width)
12
- lines.push(sliceAnsi(text, textIndex + lineIndex, Math.min(textIndex + lineIndex + width, textIndex + line.length)));
10
+ for (let lineIndex = 0; lineIndex < line.length;) {
11
+ let currentWidth = width;
12
+ if (maxRoundToWords > 0) {
13
+ const currentMaxWidth = Math.min(currentWidth, line.length - lineIndex);
14
+ const currentChunkLastChar = line[lineIndex + currentMaxWidth - 1];
15
+ const nextChunkFirstChar = line[lineIndex + currentMaxWidth] ?? "";
16
+ if (currentChunkLastChar !== " " && nextChunkFirstChar !== "" && nextChunkFirstChar !== " ") {
17
+ const lastSpaceIndex = line.lastIndexOf(" ", lineIndex + currentMaxWidth - 1);
18
+ if (lastSpaceIndex >= 0) {
19
+ const diff = currentMaxWidth - (lastSpaceIndex + " ".length);
20
+ if (diff > 0 && diff < maxRoundToWords && diff < currentWidth)
21
+ currentWidth -= diff;
22
+ }
23
+ }
24
+ }
25
+ lines.push(sliceAnsi(text, textIndex + lineIndex, Math.min(textIndex + lineIndex + currentWidth, textIndex + line.length)));
26
+ lineIndex += currentWidth;
27
+ }
13
28
  textIndex += line.length + "\n".length;
14
29
  }
15
30
  return lines;
@@ -1 +1 @@
1
- {"version":3,"file":"splitAnsiToLines.js","sourceRoot":"","sources":["../../../src/cli/utils/splitAnsiToLines.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,UAAU,gBAAgB,CAAC,IAAwB,EAAE,KAAa;IACpE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;QAC3B,OAAO,EAAE,CAAC;IAEd,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC;SACnC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE;QACjC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK;YAC/D,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEzH,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KAC1C;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"splitAnsiToLines.js","sourceRoot":"","sources":["../../../src/cli/utils/splitAnsiToLines.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,UAAU,gBAAgB,CAAC,IAAwB,EAAE,KAAa,EAAE,kBAA0B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;IACnH,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;QAC3B,OAAO,EAAE,CAAC;IAEd,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE;QACjC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG;YAC9C,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,IAAI,eAAe,GAAG,CAAC,EAAE;gBACrB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;gBACxE,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;gBACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;gBAEnE,IAAI,oBAAoB,KAAK,GAAG,IAAI,kBAAkB,KAAK,EAAE,IAAI,kBAAkB,KAAK,GAAG,EAAE;oBACzF,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;oBAC9E,IAAI,cAAc,IAAI,CAAC,EAAE;wBACrB,MAAM,IAAI,GAAG,eAAe,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC7D,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,eAAe,IAAI,IAAI,GAAG,YAAY;4BACzD,YAAY,IAAI,IAAI,CAAC;qBAC5B;iBACJ;aACJ;YAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,GAAG,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5H,SAAS,IAAI,YAAY,CAAC;SAC7B;QAED,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KAC1C;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function withCliCommandDescriptionDocsUrl(description: string, docsUrl: string): string;
2
+ export declare function withoutCliCommandDescriptionDocsUrl(description: string | boolean): string | boolean;
@@ -0,0 +1,23 @@
1
+ import { getIsInDocumentationMode } from "../../state.js";
2
+ import { documentationPageUrls } from "../../config.js";
3
+ export function withCliCommandDescriptionDocsUrl(description, docsUrl) {
4
+ const isInDocumentationMode = getIsInDocumentationMode();
5
+ if (isInDocumentationMode)
6
+ return description;
7
+ return [
8
+ description,
9
+ docsUrl
10
+ ].join("\n").trim();
11
+ }
12
+ export function withoutCliCommandDescriptionDocsUrl(description) {
13
+ if (typeof description !== "string")
14
+ return description;
15
+ const lines = description.split("\n");
16
+ if (lines.length > 0 && lines[lines.length - 1].startsWith(documentationPageUrls.CLI.index))
17
+ return lines
18
+ .slice(0, -1)
19
+ .join("\n")
20
+ .trim();
21
+ return description;
22
+ }
23
+ //# sourceMappingURL=withCliCommandDescriptionDocsUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withCliCommandDescriptionDocsUrl.js","sourceRoot":"","sources":["../../../src/cli/utils/withCliCommandDescriptionDocsUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAEtD,MAAM,UAAU,gCAAgC,CAAC,WAAmB,EAAE,OAAe;IACjF,MAAM,qBAAqB,GAAG,wBAAwB,EAAE,CAAC;IAEzD,IAAI,qBAAqB;QACrB,OAAO,WAAW,CAAC;IAEvB,OAAO;QACH,WAAW;QACX,OAAO;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,WAA6B;IAC7E,IAAI,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,WAAW,CAAC;IAEvB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;QACvF,OAAO,KAAK;aACP,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACZ,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;IAEhB,OAAO,WAAW,CAAC;AACvB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { BuildLlamaCppCommand } from "./cli/commands/BuildCommand.js";
2
2
  import { DownloadLlamaCppCommand } from "./cli/commands/DownloadCommand.js";
3
3
  import { ClearLlamaCppBuildCommand } from "./cli/commands/ClearCommand.js";
4
+ import { _startCreateCli } from "./cli/startCreateCli.js";
4
5
  import { getBuildDefaults } from "./utils/getBuildDefaults.js";
5
6
  export { BuildLlamaCppCommand, DownloadLlamaCppCommand, ClearLlamaCppBuildCommand, getBuildDefaults };
package/dist/commands.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import { BuildLlamaCppCommand } from "./cli/commands/BuildCommand.js";
2
2
  import { DownloadLlamaCppCommand } from "./cli/commands/DownloadCommand.js";
3
3
  import { ClearLlamaCppBuildCommand } from "./cli/commands/ClearCommand.js";
4
+ import { _startCreateCli } from "./cli/startCreateCli.js";
4
5
  import { getBuildDefaults } from "./utils/getBuildDefaults.js";
5
6
  export { BuildLlamaCppCommand, DownloadLlamaCppCommand, ClearLlamaCppBuildCommand, getBuildDefaults };
7
+ /** @internal */
8
+ export { _startCreateCli };
6
9
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,uBAAuB,EAAC,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,oBAAoB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,gBAAgB,EAAC,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,uBAAuB,EAAC,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,oBAAoB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,gBAAgB,EAAC,CAAC;AAEpG,gBAAgB;AAChB,OAAO,EAAC,eAAe,EAAC,CAAC"}