@hanzo/ui 8.27.60 → 8.27.61
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/dist/chat/Composer.cjs +1 -1
- package/dist/chat/Composer.d.ts +1 -1
- package/dist/chat/Composer.js +1 -1
- package/dist/gallery.cjs +4 -4
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.html +4 -5
- package/dist/gallery.js +5 -5
- package/dist/gallery.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.node.cjs +1 -1
- package/dist/index.node.js +1 -1
- package/dist/models/ModelPicker.cjs +191 -0
- package/dist/models/ModelPicker.d.ts +27 -0
- package/dist/models/ModelPicker.d.ts.map +1 -0
- package/dist/models/ModelPicker.js +189 -0
- package/dist/models/ModelPicker.js.map +1 -0
- package/dist/models/catalog.cjs +313 -184
- package/dist/models/catalog.d.ts +101 -38
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/catalog.js +295 -179
- package/dist/models/catalog.js.map +1 -1
- package/dist/models/index.cjs +33 -12
- package/dist/models/index.d.ts +7 -4
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +7 -6
- package/dist/models/index.js.map +1 -1
- package/dist/models/picker.logic.cjs +83 -0
- package/dist/models/picker.logic.d.ts +51 -0
- package/dist/models/picker.logic.d.ts.map +1 -0
- package/dist/models/picker.logic.js +74 -0
- package/dist/models/picker.logic.js.map +1 -0
- package/dist/product/limits.cjs +14 -13
- package/dist/product/limits.d.ts +9 -10
- package/dist/product/limits.d.ts.map +1 -1
- package/dist/product/limits.js +14 -12
- package/dist/product/limits.js.map +1 -1
- package/dist/styles.css +1 -2
- package/package.json +1 -1
- package/dist/models/ModelSelector.cjs +0 -80
- package/dist/models/ModelSelector.d.ts +0 -44
- package/dist/models/ModelSelector.d.ts.map +0 -1
- package/dist/models/ModelSelector.js +0 -78
- package/dist/models/ModelSelector.js.map +0 -1
package/dist/models/catalog.js
CHANGED
|
@@ -1,213 +1,329 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @hanzo/ui/models — Model catalog data layer
|
|
3
|
-
*
|
|
4
|
-
* Pure, SSR-safe helpers shared by the unified ModelSelector. No React,
|
|
5
|
-
* no browser globals — usable on the server, in edge runtimes, or the client.
|
|
6
|
-
*
|
|
7
|
-
* ModelCatalogEntry is the gateway/OpenAI-shaped record ({ id, owned_by, ... })
|
|
8
|
-
* returned by `${baseUrl}/models`. It is intentionally distinct from the
|
|
9
|
-
* registry-shaped ZenModelLike in ./types (which drives the marketing cards).
|
|
10
|
-
*/
|
|
11
1
|
/**
|
|
12
2
|
* The models that exist and cannot be called, said once for every list of
|
|
13
3
|
* models: a picker draws each one disabled, a catalogue page draws it muted.
|
|
14
|
-
*
|
|
15
|
-
* No gateway serves them, and that is the point: `/v1/models` never answers for
|
|
16
|
-
* one, so nothing can route to it. A host that lists them appends these to what
|
|
17
|
-
* the gateway said.
|
|
4
|
+
* `/v1/models` never answers for one, so nothing can route to it.
|
|
18
5
|
*/
|
|
19
6
|
export const RESEARCH = [
|
|
20
7
|
{
|
|
21
8
|
id: 'zen7',
|
|
22
9
|
owned_by: 'zenlm',
|
|
23
|
-
|
|
10
|
+
family: 'zen',
|
|
11
|
+
name: 'Zen 7',
|
|
24
12
|
access: 'research',
|
|
25
13
|
request: 'https://hanzo.ai/research-access',
|
|
26
14
|
description: 'The next open-weight generation after Zen 6, in research preview.',
|
|
27
15
|
},
|
|
28
16
|
];
|
|
17
|
+
/** The catalog with the research models it does not already list, appended. */
|
|
18
|
+
export function withResearch(models) {
|
|
19
|
+
const ids = new Set(models.map((m) => m.id));
|
|
20
|
+
return [...models, ...RESEARCH.filter((m) => !ids.has(m.id))];
|
|
21
|
+
}
|
|
22
|
+
// ── reading the wire ─────────────────────────────────────────────────────────
|
|
23
|
+
const CLASSES = ['premium', 'ours', 'free'];
|
|
24
|
+
const FAMILY_IDS = ['enso', 'zen', 'kai', 'jev', 'zoo'];
|
|
25
|
+
const str = (v) => (typeof v === 'string' && v.trim() ? v : undefined);
|
|
26
|
+
const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : undefined);
|
|
27
|
+
const pos = (v) => {
|
|
28
|
+
const n = num(v);
|
|
29
|
+
return n !== undefined && n > 0 ? n : undefined;
|
|
30
|
+
};
|
|
31
|
+
const yes = (v) => (v === true ? true : undefined);
|
|
32
|
+
const strs = (v) => {
|
|
33
|
+
if (!Array.isArray(v))
|
|
34
|
+
return undefined;
|
|
35
|
+
const out = v.filter((x) => typeof x === 'string' && x.trim() !== '').map((x) => x.toLowerCase());
|
|
36
|
+
return out.length ? out : undefined;
|
|
37
|
+
};
|
|
38
|
+
const oneOf = (set, v) => typeof v === 'string' && set.includes(v) ? v : undefined;
|
|
39
|
+
function pricingOf(v) {
|
|
40
|
+
if (!v || typeof v !== 'object')
|
|
41
|
+
return undefined;
|
|
42
|
+
const p = v;
|
|
43
|
+
const input = num(p.input_per_million);
|
|
44
|
+
const output = num(p.output_per_million);
|
|
45
|
+
if (input === undefined && output === undefined)
|
|
46
|
+
return undefined;
|
|
47
|
+
return {
|
|
48
|
+
...(input !== undefined && input >= 0 ? { input_per_million: input } : {}),
|
|
49
|
+
...(output !== undefined && output >= 0 ? { output_per_million: output } : {}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** One row, checked field by field: it is a network response. Null without an id. */
|
|
53
|
+
export function modelOf(v) {
|
|
54
|
+
if (!v || typeof v !== 'object')
|
|
55
|
+
return null;
|
|
56
|
+
const r = v;
|
|
57
|
+
const id = str(r.id);
|
|
58
|
+
if (!id)
|
|
59
|
+
return null;
|
|
60
|
+
const m = { id };
|
|
61
|
+
const set = (k, val) => {
|
|
62
|
+
if (val !== undefined)
|
|
63
|
+
m[k] = val;
|
|
64
|
+
};
|
|
65
|
+
set('owned_by', str(r.owned_by));
|
|
66
|
+
set('name', str(r.name));
|
|
67
|
+
set('description', str(r.description));
|
|
68
|
+
set('class', oneOf(CLASSES, r.class));
|
|
69
|
+
set('family', oneOf(FAMILY_IDS, r.family));
|
|
70
|
+
set('premium', typeof r.premium === 'boolean' ? r.premium : undefined);
|
|
71
|
+
set('created', pos(r.created));
|
|
72
|
+
set('context_window', pos(r.context_window));
|
|
73
|
+
set('max_output_tokens', pos(r.max_output_tokens));
|
|
74
|
+
set('inputs', strs(r.inputs));
|
|
75
|
+
set('outputs', strs(r.outputs));
|
|
76
|
+
set('supports_vision', yes(r.supports_vision));
|
|
77
|
+
set('supports_tools', yes(r.supports_tools));
|
|
78
|
+
set('supports_reasoning', yes(r.supports_reasoning));
|
|
79
|
+
set('pricing', pricingOf(r.pricing));
|
|
80
|
+
return m;
|
|
81
|
+
}
|
|
29
82
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* There is no `hanzo` entry, and its absence is the point. It used to say
|
|
33
|
-
* `hanzo: 'Zen'`, which was wrong twice: Zoo Labs Foundation makes Zen, and the
|
|
34
|
-
* gateway does not report Zen that way — it answers `owned_by: 'zenlm'`. What
|
|
35
|
-
* `owned_by: 'hanzo'` actually names is the dozen models Hanzo serves under its
|
|
36
|
-
* own namespace, so that entry filed Whisper, Kokoro, GLM, Kimi, Qwen3.5 and
|
|
37
|
-
* MiniMax under "Zen" as well. Without it each falls to its id prefix and lands
|
|
38
|
-
* where it belongs, and what is genuinely Hanzo's capitalizes to "Hanzo".
|
|
83
|
+
* The catalog from a `/v1/models` body (`{data: [...]}`) or its `data` array.
|
|
84
|
+
* Rows without an id are dropped; a repeated id keeps its first row.
|
|
39
85
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
86
|
+
export function parseModels(body) {
|
|
87
|
+
const rows = Array.isArray(body)
|
|
88
|
+
? body
|
|
89
|
+
: body && typeof body === 'object' && Array.isArray(body.data)
|
|
90
|
+
? (body.data)
|
|
91
|
+
: [];
|
|
92
|
+
const seen = new Set();
|
|
93
|
+
const out = [];
|
|
94
|
+
for (const row of rows) {
|
|
95
|
+
const m = modelOf(row);
|
|
96
|
+
if (!m || seen.has(m.id))
|
|
97
|
+
continue;
|
|
98
|
+
seen.add(m.id);
|
|
99
|
+
out.push(m);
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Fetch the catalog from an OpenAI-shaped `/models` endpoint. No caching, no
|
|
105
|
+
* state: the host owns both. Throws on a non-2xx answer.
|
|
106
|
+
*/
|
|
107
|
+
export async function fetchModelCatalog(baseUrl, token) {
|
|
108
|
+
const base = (baseUrl ?? 'https://api.hanzo.ai/v1').replace(/\/+$/, '');
|
|
109
|
+
const headers = { Accept: 'application/json' };
|
|
110
|
+
if (token)
|
|
111
|
+
headers.Authorization = `Bearer ${token}`;
|
|
112
|
+
const res = await fetch(`${base}/models`, { headers });
|
|
113
|
+
if (!res.ok)
|
|
114
|
+
throw new Error(`fetchModelCatalog: ${res.status} ${res.statusText}`);
|
|
115
|
+
return parseModels(await res.json());
|
|
116
|
+
}
|
|
117
|
+
// ── what a model is ──────────────────────────────────────────────────────────
|
|
118
|
+
/** The families, in the order every surface leads with them. */
|
|
119
|
+
export const FAMILIES = [
|
|
120
|
+
{ id: 'enso', label: 'Enso' },
|
|
121
|
+
{ id: 'zen', label: 'Zen' },
|
|
122
|
+
{ id: 'kai', label: 'Kai' },
|
|
123
|
+
{ id: 'jev', label: 'Jev' },
|
|
124
|
+
{ id: 'zoo', label: 'Zoo' },
|
|
125
|
+
];
|
|
126
|
+
export const CLASS_NAMES = {
|
|
127
|
+
premium: 'Premium',
|
|
128
|
+
ours: 'Hanzo',
|
|
129
|
+
free: 'Free',
|
|
130
|
+
};
|
|
131
|
+
/** The makers whose name is not their id capitalized. */
|
|
132
|
+
const MAKERS = {
|
|
133
|
+
'aion-labs': 'Aion Labs',
|
|
134
|
+
'arcee-ai': 'Arcee AI',
|
|
135
|
+
'bytedance-seed': 'ByteDance Seed',
|
|
136
|
+
'dots-studio': 'dots.studio',
|
|
137
|
+
'ibm-granite': 'IBM Granite',
|
|
138
|
+
'inference-net': 'Inference.net',
|
|
139
|
+
'meta-llama': 'Meta Llama',
|
|
140
|
+
'nex-agi': 'Nex AGI',
|
|
141
|
+
'prism-ml': 'Prism ML',
|
|
142
|
+
'x-ai': 'xAI',
|
|
143
|
+
'z-ai': 'Z.ai',
|
|
144
|
+
ai21: 'AI21',
|
|
42
145
|
anthropic: 'Anthropic',
|
|
43
|
-
|
|
146
|
+
bytedance: 'ByteDance',
|
|
147
|
+
cognitivecomputations: 'Cognitive Computations',
|
|
44
148
|
deepseek: 'DeepSeek',
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
google: 'Google Gemma',
|
|
149
|
+
inclusionai: 'inclusionAI',
|
|
150
|
+
minimax: 'MiniMax',
|
|
151
|
+
mistralai: 'Mistral AI',
|
|
152
|
+
moonshotai: 'Moonshot AI',
|
|
153
|
+
nousresearch: 'Nous Research',
|
|
51
154
|
nvidia: 'NVIDIA',
|
|
52
|
-
|
|
155
|
+
openai: 'OpenAI',
|
|
156
|
+
openrouter: 'OpenRouter',
|
|
157
|
+
rekaai: 'Reka AI',
|
|
158
|
+
thedrummer: 'TheDrummer',
|
|
159
|
+
thinkingmachines: 'Thinking Machines',
|
|
160
|
+
typesafe: 'TypeSafe',
|
|
161
|
+
zenlm: 'Zen LM',
|
|
53
162
|
};
|
|
54
|
-
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (id.startsWith('deepseek'))
|
|
78
|
-
return 'DeepSeek';
|
|
79
|
-
if (id.startsWith('mistral'))
|
|
80
|
-
return 'Mistral';
|
|
81
|
-
if (id.startsWith('gemma'))
|
|
82
|
-
return 'Google Gemma';
|
|
83
|
-
if (id.startsWith('nemotron'))
|
|
84
|
-
return 'NVIDIA';
|
|
85
|
-
if (id.startsWith('minimax'))
|
|
86
|
-
return 'MiniMax';
|
|
87
|
-
if (id.startsWith('mimo'))
|
|
88
|
-
return 'MiMo';
|
|
89
|
-
return undefined;
|
|
163
|
+
/** Who made a model, as the catalog keys it: `owned_by`, lowercased, without OpenRouter's `~` alias mark. */
|
|
164
|
+
export function makerOf(m) {
|
|
165
|
+
return (m.owned_by ?? '').trim().replace(/^~/, '').toLowerCase() || 'other';
|
|
166
|
+
}
|
|
167
|
+
/** A maker's display name. */
|
|
168
|
+
export function makerName(maker) {
|
|
169
|
+
return (MAKERS[maker] ??
|
|
170
|
+
maker
|
|
171
|
+
.split(/[-_]/)
|
|
172
|
+
.filter(Boolean)
|
|
173
|
+
.map((w) => w[0].toUpperCase() + w.slice(1))
|
|
174
|
+
.join(' '));
|
|
175
|
+
}
|
|
176
|
+
/** The name a model is shown by: the catalog's name, else its id. */
|
|
177
|
+
export function modelName(m) {
|
|
178
|
+
return m.name ?? m.id;
|
|
179
|
+
}
|
|
180
|
+
export function groupKey(m) {
|
|
181
|
+
return m.family ? `family:${m.family}` : `maker:${makerOf(m)}`;
|
|
182
|
+
}
|
|
183
|
+
export function groupLabel(m) {
|
|
184
|
+
const f = m.family && FAMILIES.find((x) => x.id === m.family);
|
|
185
|
+
return f ? f.label : makerName(makerOf(m));
|
|
90
186
|
}
|
|
91
187
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* owned_by map → llama id under any owner → capitalized owned_by → id prefix → "Other".
|
|
188
|
+
* Models in groups: Hanzo's families first, in FAMILIES order, then every maker
|
|
189
|
+
* by name. Models keep the order they came in, so the caller sorts first.
|
|
95
190
|
*/
|
|
96
|
-
export function
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const byOwner = OWNER_FAMILY[owned];
|
|
107
|
-
if (byOwner)
|
|
108
|
-
return byOwner;
|
|
109
|
-
// llama* ids resolve to Meta Llama even under a different owner.
|
|
110
|
-
const byId = familyFromId(id);
|
|
111
|
-
if (byId)
|
|
112
|
-
return byId;
|
|
113
|
-
return capitalize(owned);
|
|
114
|
-
}
|
|
115
|
-
return familyFromId(id) ?? 'Other';
|
|
116
|
-
}
|
|
117
|
-
function orderFamilies(a, b) {
|
|
118
|
-
const ia = FAMILY_ORDER.indexOf(a);
|
|
119
|
-
const ib = FAMILY_ORDER.indexOf(b);
|
|
120
|
-
if (ia !== -1 || ib !== -1) {
|
|
121
|
-
if (ia === -1)
|
|
122
|
-
return 1;
|
|
123
|
-
if (ib === -1)
|
|
124
|
-
return -1;
|
|
125
|
-
return ia - ib;
|
|
191
|
+
export function groupModels(models) {
|
|
192
|
+
const groups = new Map();
|
|
193
|
+
for (const m of models) {
|
|
194
|
+
const key = groupKey(m);
|
|
195
|
+
let g = groups.get(key);
|
|
196
|
+
if (!g) {
|
|
197
|
+
g = { key, label: groupLabel(m), ...(m.family ? { family: m.family } : {}), models: [] };
|
|
198
|
+
groups.set(key, g);
|
|
199
|
+
}
|
|
200
|
+
g.models.push(m);
|
|
126
201
|
}
|
|
127
|
-
|
|
202
|
+
const rank = (g) => (g.family ? FAMILIES.findIndex((f) => f.id === g.family) : FAMILIES.length);
|
|
203
|
+
return [...groups.values()].sort((a, b) => rank(a) - rank(b) || a.label.localeCompare(b.label));
|
|
128
204
|
}
|
|
205
|
+
const has = (list, ...want) => !!list && want.some((w) => list.includes(w));
|
|
129
206
|
/**
|
|
130
|
-
*
|
|
131
|
-
*
|
|
207
|
+
* What a model can do, read from what it publishes. A model that names no
|
|
208
|
+
* outputs is read as a text model, the way the gateway serves it.
|
|
132
209
|
*/
|
|
133
|
-
export function
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
210
|
+
export function capabilitiesOf(m) {
|
|
211
|
+
const out = [];
|
|
212
|
+
const embeddings = has(m.outputs, 'embeddings', 'embedding');
|
|
213
|
+
const rerank = has(m.outputs, 'rerank');
|
|
214
|
+
const decision = has(m.outputs, 'decision');
|
|
215
|
+
const text = !m.outputs || has(m.outputs, 'text');
|
|
216
|
+
if (text && !embeddings && !rerank && !decision)
|
|
217
|
+
out.push('chat');
|
|
218
|
+
if (m.supports_vision || has(m.inputs, 'image'))
|
|
219
|
+
out.push('vision');
|
|
220
|
+
if (embeddings)
|
|
221
|
+
out.push('embeddings');
|
|
222
|
+
if (rerank)
|
|
223
|
+
out.push('rerank');
|
|
224
|
+
if (has(m.outputs, 'image'))
|
|
225
|
+
out.push('image');
|
|
226
|
+
if (has(m.outputs, 'video'))
|
|
227
|
+
out.push('video');
|
|
228
|
+
if (has(m.outputs, 'audio', 'transcript') || has(m.inputs, 'audio'))
|
|
229
|
+
out.push('audio');
|
|
230
|
+
if (decision)
|
|
231
|
+
out.push('decision');
|
|
232
|
+
if (m.supports_tools)
|
|
233
|
+
out.push('tools');
|
|
234
|
+
if (m.supports_reasoning)
|
|
235
|
+
out.push('reasoning');
|
|
236
|
+
return out;
|
|
237
|
+
}
|
|
238
|
+
export function can(m, c) {
|
|
239
|
+
return capabilitiesOf(m).includes(c);
|
|
240
|
+
}
|
|
241
|
+
export const CAPABILITY_NAMES = {
|
|
242
|
+
chat: 'Chat',
|
|
243
|
+
vision: 'Vision',
|
|
244
|
+
embeddings: 'Embeddings',
|
|
245
|
+
rerank: 'Rerank',
|
|
246
|
+
image: 'Image',
|
|
247
|
+
video: 'Video',
|
|
248
|
+
audio: 'Audio',
|
|
249
|
+
decision: 'Decision',
|
|
250
|
+
tools: 'Tools',
|
|
251
|
+
reasoning: 'Reasoning',
|
|
252
|
+
};
|
|
253
|
+
/** Whether `id` matches a paused entry: the same id, or a glob whose `*` stands for any run of characters. */
|
|
254
|
+
export function matchesPaused(id, pattern) {
|
|
255
|
+
if (!pattern.includes('*'))
|
|
256
|
+
return id === pattern;
|
|
257
|
+
const parts = pattern.split('*');
|
|
258
|
+
if (!id.startsWith(parts[0]) || !id.endsWith(parts.at(-1)))
|
|
259
|
+
return false;
|
|
260
|
+
let at = parts[0].length;
|
|
261
|
+
const end = id.length - parts.at(-1).length;
|
|
262
|
+
for (const part of parts.slice(1, -1)) {
|
|
263
|
+
const i = id.indexOf(part, at);
|
|
264
|
+
if (i < 0 || i + part.length > end)
|
|
265
|
+
return false;
|
|
266
|
+
at = i + part.length;
|
|
142
267
|
}
|
|
143
|
-
return
|
|
144
|
-
|
|
145
|
-
.map((family) => ({ family, models: byFamily.get(family) }));
|
|
146
|
-
}
|
|
147
|
-
/** Modality/id keywords that mark a model as NOT chat-capable. */
|
|
148
|
-
const NON_CHAT = [
|
|
149
|
-
'embedding',
|
|
150
|
-
'embed',
|
|
151
|
-
'image',
|
|
152
|
-
'video',
|
|
153
|
-
'music',
|
|
154
|
-
'voice',
|
|
155
|
-
'tts',
|
|
156
|
-
'rerank',
|
|
157
|
-
'guard',
|
|
158
|
-
'foley',
|
|
159
|
-
'moderation',
|
|
160
|
-
'router',
|
|
161
|
-
];
|
|
268
|
+
return at <= end;
|
|
269
|
+
}
|
|
162
270
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* or
|
|
271
|
+
* Whether the payer's plan has paused this model: its whole class is limited,
|
|
272
|
+
* or an entry in `paused` names it. It is still listed and still picked; the
|
|
273
|
+
* gateway refuses it or answers from Enso.
|
|
166
274
|
*/
|
|
167
|
-
export function
|
|
168
|
-
|
|
169
|
-
if (modality && NON_CHAT.some((k) => modality.includes(k)))
|
|
170
|
-
return false;
|
|
171
|
-
const id = (m.id ?? '').toLowerCase();
|
|
172
|
-
if (NON_CHAT.some((k) => id.includes(k)))
|
|
275
|
+
export function isPaused(m, limits) {
|
|
276
|
+
if (!limits)
|
|
173
277
|
return false;
|
|
174
|
-
|
|
278
|
+
if (m.class && limits.classes[m.class]?.state === 'limited')
|
|
279
|
+
return true;
|
|
280
|
+
return !!limits.paused?.some((p) => matchesPaused(m.id, p.model));
|
|
175
281
|
}
|
|
176
|
-
/**
|
|
177
|
-
export function
|
|
178
|
-
|
|
282
|
+
/** Case-insensitive search: every word of the query appears in the model's id, name, maker, group or description. */
|
|
283
|
+
export function matchesModel(m, query) {
|
|
284
|
+
const words = query.trim().toLowerCase().split(/\s+/).filter(Boolean);
|
|
285
|
+
if (!words.length)
|
|
286
|
+
return true;
|
|
287
|
+
const hay = [m.id, m.name, makerOf(m), makerName(makerOf(m)), groupLabel(m), m.description]
|
|
288
|
+
.filter(Boolean)
|
|
289
|
+
.join(' ')
|
|
290
|
+
.toLowerCase();
|
|
291
|
+
return words.every((w) => hay.includes(w));
|
|
179
292
|
}
|
|
180
|
-
/**
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
293
|
+
/** A sorted copy. Context and price put models without the figure last. */
|
|
294
|
+
export function sortModels(models, by = 'name') {
|
|
295
|
+
const name = (a, b) => modelName(a).localeCompare(modelName(b));
|
|
296
|
+
const last = (v, dir) => (v === undefined ? Infinity : dir * v);
|
|
297
|
+
return [...models].sort((a, b) => {
|
|
298
|
+
switch (by) {
|
|
299
|
+
case 'newest':
|
|
300
|
+
return (b.created ?? 0) - (a.created ?? 0) || name(a, b);
|
|
301
|
+
case 'context':
|
|
302
|
+
return last(a.context_window, -1) - last(b.context_window, -1) || name(a, b);
|
|
303
|
+
case 'price':
|
|
304
|
+
return last(a.pricing?.input_per_million, 1) - last(b.pricing?.input_per_million, 1) || name(a, b);
|
|
305
|
+
default:
|
|
306
|
+
return name(a, b);
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
// ── how a figure reads ───────────────────────────────────────────────────────
|
|
311
|
+
/** "200K", "1M", "1.5M"; "" when the catalog states no window. */
|
|
312
|
+
export function formatContext(n) {
|
|
313
|
+
if (!n)
|
|
314
|
+
return '';
|
|
315
|
+
if (n >= 1_000_000)
|
|
316
|
+
return `${+(n / 1_000_000).toFixed(1)}M`;
|
|
317
|
+
if (n >= 1000)
|
|
318
|
+
return `${Math.round(n / 1000)}K`;
|
|
319
|
+
return String(n);
|
|
320
|
+
}
|
|
321
|
+
/** "$3.00" per 1M tokens, "Free" at zero, "" when the catalog lists no price. */
|
|
322
|
+
export function formatPrice(n) {
|
|
323
|
+
if (n === undefined)
|
|
324
|
+
return '';
|
|
325
|
+
if (n === 0)
|
|
326
|
+
return 'Free';
|
|
327
|
+
return n < 0.01 ? `$${+n.toPrecision(2)}` : `$${n.toFixed(2)}`;
|
|
212
328
|
}
|
|
213
329
|
//# sourceMappingURL=catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsBH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAwB;IAC3C;QACE,EAAE,EAAE,MAAM;QACV,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,kCAAkC;QAC3C,WAAW,EAAE,mEAAmE;KACjF;CACF,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,YAAY,GAA2B;IAC3C,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,MAAM;CACjB,CAAA;AAED,oFAAoF;AACpF,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE3D,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,gFAAgF;AAChF,SAAS,YAAY,CAAC,EAAU;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAA;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAA;IACvG,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,YAAY,CAAA;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAA;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,cAAc,CAAA;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACxC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAoB;IAC3C,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;IACjC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IACrC,+DAA+D;IAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IAExC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IAC9C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;QAC3B,iEAAiE;QACjE,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAC7B,IAAI,IAAI;YAAE,OAAO,IAAI,CAAA;QACrB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,OAAO,CAAA;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAClC,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAClC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;QACvB,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAA;QACxB,OAAO,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA2B;IAE3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;IACvD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;;YACf,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC/B,IAAI,CAAC,aAAa,CAAC;SACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,kEAAkE;AAClE,MAAM,QAAQ,GAAG;IACf,WAAW;IACX,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,QAAQ;IACR,OAAO;IACP,OAAO;IACP,YAAY;IACZ,QAAQ;CACT,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,CAAoB;IAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACxE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACtD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,gBAAgB,CAAC,MAA2B;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAgB,EAChB,KAAc;IAEd,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACvE,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;IACtE,IAAI,KAAK;QAAE,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAA;IAEpD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IACtD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IACtC,MAAM,IAAI,GAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK,CAAC,OAAO,CAAE,IAA2B,EAAE,IAAI,CAAC;YACjD,CAAC,CAAE,IAAwB,CAAC,IAAI;YAChC,CAAC,CAAC,EAAE,CAAA;IAER,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC;QAC9B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS;QAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;QAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS;QACrC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;QAC/B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS;QACjC,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS;QAC7E,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;KACxC,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAA;AAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/models/index.cjs
CHANGED
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// @hanzo/ui/models — the
|
|
2
|
+
// @hanzo/ui/models — the model catalog and the one model picker.
|
|
3
3
|
//
|
|
4
|
-
// import {
|
|
5
|
-
// const models = await fetchModelCatalog()
|
|
6
|
-
// <
|
|
4
|
+
// import { ModelPicker, fetchModelCatalog, defaultModel } from '@hanzo/ui/models'
|
|
5
|
+
// const models = await fetchModelCatalog(api, token)
|
|
6
|
+
// <ModelPicker models={models} value={id} onChange={setId} limits={limits} />
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
9
|
-
var
|
|
10
|
-
Object.defineProperty(exports, "
|
|
8
|
+
exports.visibleRange = exports.pickerRows = exports.defaultModel = exports.ENSO = exports.withResearch = exports.sortModels = exports.parseModels = exports.modelOf = exports.modelName = exports.matchesPaused = exports.matchesModel = exports.makerOf = exports.makerName = exports.isPaused = exports.groupModels = exports.groupLabel = exports.groupKey = exports.formatPrice = exports.formatContext = exports.fetchModelCatalog = exports.capabilitiesOf = exports.can = exports.RESEARCH = exports.FAMILIES = exports.CLASS_NAMES = exports.CAPABILITY_NAMES = exports.ModelPicker = void 0;
|
|
9
|
+
var ModelPicker_1 = require("./ModelPicker.cjs");
|
|
10
|
+
Object.defineProperty(exports, "ModelPicker", { enumerable: true, get: function () { return ModelPicker_1.ModelPicker; } });
|
|
11
11
|
var catalog_1 = require("./catalog.cjs");
|
|
12
|
-
Object.defineProperty(exports, "
|
|
13
|
-
Object.defineProperty(exports, "
|
|
14
|
-
Object.defineProperty(exports, "
|
|
15
|
-
Object.defineProperty(exports, "filterChatModels", { enumerable: true, get: function () { return catalog_1.filterChatModels; } });
|
|
16
|
-
Object.defineProperty(exports, "fetchModelCatalog", { enumerable: true, get: function () { return catalog_1.fetchModelCatalog; } });
|
|
12
|
+
Object.defineProperty(exports, "CAPABILITY_NAMES", { enumerable: true, get: function () { return catalog_1.CAPABILITY_NAMES; } });
|
|
13
|
+
Object.defineProperty(exports, "CLASS_NAMES", { enumerable: true, get: function () { return catalog_1.CLASS_NAMES; } });
|
|
14
|
+
Object.defineProperty(exports, "FAMILIES", { enumerable: true, get: function () { return catalog_1.FAMILIES; } });
|
|
17
15
|
Object.defineProperty(exports, "RESEARCH", { enumerable: true, get: function () { return catalog_1.RESEARCH; } });
|
|
16
|
+
Object.defineProperty(exports, "can", { enumerable: true, get: function () { return catalog_1.can; } });
|
|
17
|
+
Object.defineProperty(exports, "capabilitiesOf", { enumerable: true, get: function () { return catalog_1.capabilitiesOf; } });
|
|
18
|
+
Object.defineProperty(exports, "fetchModelCatalog", { enumerable: true, get: function () { return catalog_1.fetchModelCatalog; } });
|
|
19
|
+
Object.defineProperty(exports, "formatContext", { enumerable: true, get: function () { return catalog_1.formatContext; } });
|
|
20
|
+
Object.defineProperty(exports, "formatPrice", { enumerable: true, get: function () { return catalog_1.formatPrice; } });
|
|
21
|
+
Object.defineProperty(exports, "groupKey", { enumerable: true, get: function () { return catalog_1.groupKey; } });
|
|
22
|
+
Object.defineProperty(exports, "groupLabel", { enumerable: true, get: function () { return catalog_1.groupLabel; } });
|
|
23
|
+
Object.defineProperty(exports, "groupModels", { enumerable: true, get: function () { return catalog_1.groupModels; } });
|
|
24
|
+
Object.defineProperty(exports, "isPaused", { enumerable: true, get: function () { return catalog_1.isPaused; } });
|
|
25
|
+
Object.defineProperty(exports, "makerName", { enumerable: true, get: function () { return catalog_1.makerName; } });
|
|
26
|
+
Object.defineProperty(exports, "makerOf", { enumerable: true, get: function () { return catalog_1.makerOf; } });
|
|
27
|
+
Object.defineProperty(exports, "matchesModel", { enumerable: true, get: function () { return catalog_1.matchesModel; } });
|
|
28
|
+
Object.defineProperty(exports, "matchesPaused", { enumerable: true, get: function () { return catalog_1.matchesPaused; } });
|
|
29
|
+
Object.defineProperty(exports, "modelName", { enumerable: true, get: function () { return catalog_1.modelName; } });
|
|
30
|
+
Object.defineProperty(exports, "modelOf", { enumerable: true, get: function () { return catalog_1.modelOf; } });
|
|
31
|
+
Object.defineProperty(exports, "parseModels", { enumerable: true, get: function () { return catalog_1.parseModels; } });
|
|
32
|
+
Object.defineProperty(exports, "sortModels", { enumerable: true, get: function () { return catalog_1.sortModels; } });
|
|
33
|
+
Object.defineProperty(exports, "withResearch", { enumerable: true, get: function () { return catalog_1.withResearch; } });
|
|
34
|
+
var picker_logic_1 = require("./picker.logic.cjs");
|
|
35
|
+
Object.defineProperty(exports, "ENSO", { enumerable: true, get: function () { return picker_logic_1.ENSO; } });
|
|
36
|
+
Object.defineProperty(exports, "defaultModel", { enumerable: true, get: function () { return picker_logic_1.defaultModel; } });
|
|
37
|
+
Object.defineProperty(exports, "pickerRows", { enumerable: true, get: function () { return picker_logic_1.pickerRows; } });
|
|
38
|
+
Object.defineProperty(exports, "visibleRange", { enumerable: true, get: function () { return picker_logic_1.visibleRange; } });
|
package/dist/models/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
3
|
-
export {
|
|
4
|
-
export type { ModelCatalogEntry } from './catalog.js';
|
|
1
|
+
export { ModelPicker } from './ModelPicker.js';
|
|
2
|
+
export type { ModelPickerProps } from './ModelPicker.js';
|
|
3
|
+
export { CAPABILITY_NAMES, CLASS_NAMES, FAMILIES, RESEARCH, can, capabilitiesOf, fetchModelCatalog, formatContext, formatPrice, groupKey, groupLabel, groupModels, isPaused, makerName, makerOf, matchesModel, matchesPaused, modelName, modelOf, parseModels, sortModels, withResearch, } from './catalog.js';
|
|
4
|
+
export type { Capability, ModelCatalogEntry, ModelClass, ModelFamily, ModelGroup, ModelPricing, ModelSort, PauseSource, } from './catalog.js';
|
|
5
|
+
export type { PausedModel } from '../product/limits.js';
|
|
6
|
+
export { ENSO, defaultModel, pickerRows, visibleRange } from './picker.logic.js';
|
|
7
|
+
export type { PickerRow } from './picker.logic.js';
|
|
5
8
|
export type { ZenModelLike, ModelFamilyLike, ModelSpecLike, ModelPricingLike } from './types.js';
|
|
6
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EACZ,aAAa,EACb,SAAS,EACT,OAAO,EACP,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,GACZ,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7E,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA"}
|