cactus-react-native 1.10.3 → 1.10.4

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- const RUNTIME_VERSION = '1.10.3';
3
+ const RUNTIME_VERSION = '1.10.4';
4
4
  let registryPromise = null;
5
5
  export function getRegistry() {
6
6
  return registryPromise ??= fetchRegistry();
@@ -48,12 +48,14 @@ async function fetchRegistry() {
48
48
  if (!version) return;
49
49
  const key = weights.find(f => f.endsWith('-int4.zip')).replace('weights/', '').replace('-int4.zip', '');
50
50
  const base = `https://huggingface.co/${id}/resolve/${version}/weights/${key}`;
51
+ const tree = await fetch(`https://huggingface.co/api/models/${id}/tree/${version}/weights`).then(r => r.ok ? r.json() : null).catch(() => null);
52
+ const sizeMb = suffix => Math.round((tree?.find(f => f.path === `weights/${key}${suffix}`)?.size ?? 0) / (1024 * 1024));
51
53
  registry[key] = {
52
54
  slug: key,
53
55
  capabilities: tags.filter(t => !t.includes(':')),
54
56
  quantization: {
55
57
  int4: {
56
- sizeMb: 0,
58
+ sizeMb: sizeMb('-int4.zip'),
57
59
  url: `${base}-int4.zip`,
58
60
  ...(weights.some(f => f.endsWith('-int4-apple.zip')) ? {
59
61
  pro: {
@@ -62,7 +64,7 @@ async function fetchRegistry() {
62
64
  } : {})
63
65
  },
64
66
  int8: {
65
- sizeMb: 0,
67
+ sizeMb: sizeMb('-int8.zip'),
66
68
  url: `${base}-int8.zip`,
67
69
  ...(weights.some(f => f.endsWith('-int8-apple.zip')) ? {
68
70
  pro: {
@@ -1 +1 @@
1
- {"version":3,"names":["RUNTIME_VERSION","registryPromise","getRegistry","fetchRegistry","parseVersionTag","tag","m","match","compareVersions","a","b","resolveWeightVersion","modelId","runtime","Error","res","fetch","ok","status","tags","json","compatible","map","t","name","filter","sort","length","response","catch","e","models","registry","Promise","all","id","siblings","weights","s","rfilename","f","startsWith","endsWith","some","version","key","find","replace","base","slug","capabilities","includes","quantization","int4","sizeMb","url","pro","apple","int8"],"sourceRoot":"../../src","sources":["modelRegistry.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RUNTIME_VERSION","registryPromise","getRegistry","fetchRegistry","parseVersionTag","tag","m","match","compareVersions","a","b","resolveWeightVersion","modelId","runtime","Error","res","fetch","ok","status","tags","json","compatible","map","t","name","filter","sort","length","response","catch","e","models","registry","Promise","all","id","siblings","weights","s","rfilename","f","startsWith","endsWith","some","version","key","find","replace","base","tree","then","r","sizeMb","suffix","Math","round","path","size","slug","capabilities","includes","quantization","int4","url","pro","apple","int8"],"sourceRoot":"../../src","sources":["modelRegistry.ts"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "1.10.3",
3
+ "version": "1.10.4",
4
4
  "description": "Run AI models locally on mobile devices",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -1,6 +1,6 @@
1
1
  import type { CactusModel } from './types/common';
2
2
 
3
- const RUNTIME_VERSION = '1.10.3';
3
+ const RUNTIME_VERSION = '1.10.4';
4
4
 
5
5
  let registryPromise: Promise<{ [key: string]: CactusModel }> | null = null;
6
6
 
@@ -60,9 +60,9 @@ async function fetchRegistry(): Promise<{ [key: string]: CactusModel }> {
60
60
 
61
61
  await Promise.all(
62
62
  models.map(async ({ id, siblings = [], tags = [] }) => {
63
- const weights: string[] = siblings
64
- .map((s: any) => s.rfilename)
65
- .filter((f: string) => f.startsWith('weights/') && f.endsWith('.zip'));
63
+ const weights: string[] = (siblings as any[])
64
+ .map((s: any) => s.rfilename as string)
65
+ .filter((f) => f.startsWith('weights/') && f.endsWith('.zip'));
66
66
 
67
67
  if (
68
68
  !weights.some((f) => f.endsWith('-int4.zip')) ||
@@ -80,19 +80,33 @@ async function fetchRegistry(): Promise<{ [key: string]: CactusModel }> {
80
80
 
81
81
  const base = `https://huggingface.co/${id}/resolve/${version}/weights/${key}`;
82
82
 
83
+ const tree = await fetch(
84
+ `https://huggingface.co/api/models/${id}/tree/${version}/weights`
85
+ )
86
+ .then((r) =>
87
+ r.ok ? (r.json() as Promise<{ path: string; size?: number }[]>) : null
88
+ )
89
+ .catch(() => null);
90
+
91
+ const sizeMb = (suffix: string) =>
92
+ Math.round(
93
+ (tree?.find((f) => f.path === `weights/${key}${suffix}`)?.size ?? 0) /
94
+ (1024 * 1024)
95
+ );
96
+
83
97
  registry[key] = {
84
98
  slug: key,
85
99
  capabilities: (tags as string[]).filter((t) => !t.includes(':')),
86
100
  quantization: {
87
101
  int4: {
88
- sizeMb: 0,
102
+ sizeMb: sizeMb('-int4.zip'),
89
103
  url: `${base}-int4.zip`,
90
104
  ...(weights.some((f) => f.endsWith('-int4-apple.zip'))
91
105
  ? { pro: { apple: `${base}-int4-apple.zip` } }
92
106
  : {}),
93
107
  },
94
108
  int8: {
95
- sizeMb: 0,
109
+ sizeMb: sizeMb('-int8.zip'),
96
110
  url: `${base}-int8.zip`,
97
111
  ...(weights.some((f) => f.endsWith('-int8-apple.zip'))
98
112
  ? { pro: { apple: `${base}-int8-apple.zip` } }