MCPcopy Index your code
hub / github.com/anomalyco/models.dev / buildLabEntries

Function buildLabEntries

packages/web/src/render.tsx:251–296  ·  view source on GitHub ↗
(models: Map<string, ModelEntry>)

Source from the content-addressed store, hash-verified

249}
250
251function buildLabEntries(models: Map<string, ModelEntry>) {
252 const labs = new Map<string, ModelEntry[]>();
253
254 for (const model of models.values()) {
255 const existing = labs.get(model.labId) ?? [];
256 existing.push(model);
257 labs.set(model.labId, existing);
258 }
259
260 return [...labs.entries()]
261 .map(([id, modelEntries]) => {
262 const providers = new Set<string>();
263 const families = new Set<string>();
264 let lastReleased: string | undefined;
265 let lastUpdated: string | undefined;
266
267 for (const model of modelEntries) {
268 for (const provider of model.providers) providers.add(provider.providerId);
269 if (model.metadata.family) families.add(model.metadata.family);
270 if (
271 model.metadata.release_date &&
272 (!lastReleased || model.metadata.release_date > lastReleased)
273 ) {
274 lastReleased = model.metadata.release_date;
275 }
276 if (
277 model.metadata.last_updated &&
278 (!lastUpdated || model.metadata.last_updated > lastUpdated)
279 ) {
280 lastUpdated = model.metadata.last_updated;
281 }
282 }
283
284 return {
285 id,
286 name: labName(id),
287 description: LabMetadata.get(id)?.description,
288 models: sortModels(modelEntries),
289 providerCount: providers.size,
290 families: [...families].sort(),
291 lastReleased,
292 lastUpdated,
293 };
294 })
295 .sort((a, b) => a.name.localeCompare(b.name));
296}
297
298function buildSearchItems(
299 models: ModelEntry[],

Callers 1

render.tsxFile · 0.85

Calls 2

labNameFunction · 0.85
sortModelsFunction · 0.85

Tested by

no test coverage detected