browzy 1.0.0 → 1.0.2
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/cli/app.js +20 -5
- package/dist/cli/entry.js +0 -0
- package/package.json +2 -1
package/dist/cli/app.js
CHANGED
|
@@ -380,10 +380,21 @@ export const BrowzyApp = () => {
|
|
|
380
380
|
headers: { 'Authorization': `Bearer ${key}` },
|
|
381
381
|
});
|
|
382
382
|
const data = await resp.json();
|
|
383
|
-
//
|
|
384
|
-
|
|
383
|
+
// Sort by popularity (cheapest per-token models tend to be most popular/used)
|
|
384
|
+
// Filter to major providers, sort by name for clean grouping
|
|
385
|
+
const majorProviders = ['anthropic', 'openai', 'google', 'meta-llama', 'mistralai', 'deepseek', 'cohere', 'qwen'];
|
|
385
386
|
models = data.data
|
|
386
|
-
.filter((m) =>
|
|
387
|
+
.filter((m) => majorProviders.some(p => m.id.startsWith(p + '/')))
|
|
388
|
+
.filter((m) => !m.id.includes('free') && !m.id.includes('extended'))
|
|
389
|
+
.sort((a, b) => {
|
|
390
|
+
// Sort by provider group, then by name
|
|
391
|
+
const aProvider = a.id.split('/')[0];
|
|
392
|
+
const bProvider = b.id.split('/')[0];
|
|
393
|
+
const providerOrder = majorProviders.indexOf(aProvider) - majorProviders.indexOf(bProvider);
|
|
394
|
+
if (providerOrder !== 0)
|
|
395
|
+
return providerOrder;
|
|
396
|
+
return a.name.localeCompare(b.name);
|
|
397
|
+
})
|
|
387
398
|
.slice(0, 30)
|
|
388
399
|
.map((m) => ({ id: m.id, display_name: m.name }));
|
|
389
400
|
}
|
|
@@ -397,9 +408,13 @@ export const BrowzyApp = () => {
|
|
|
397
408
|
const { default: OpenAI } = await import('openai');
|
|
398
409
|
const client = new OpenAI({ apiKey: key });
|
|
399
410
|
const list = await client.models.list();
|
|
411
|
+
// Only chat models, exclude realtime/image/audio/embedding/legacy
|
|
412
|
+
const excludePatterns = ['realtime', 'image', 'audio', 'tts', 'whisper', 'dall-e', 'embedding', 'moderation', 'babbage', 'davinci', 'search', 'instruct', 'similarity', 'code-'];
|
|
400
413
|
models = Array.from(list.data)
|
|
401
|
-
.filter((m) => m.id.startsWith('gpt-'))
|
|
402
|
-
.
|
|
414
|
+
.filter((m) => (m.id.startsWith('gpt-') || m.id.startsWith('o1') || m.id.startsWith('o3') || m.id.startsWith('o4') || m.id.startsWith('chatgpt')) &&
|
|
415
|
+
!excludePatterns.some(p => m.id.includes(p)))
|
|
416
|
+
// Sort by created date (newest first)
|
|
417
|
+
.sort((a, b) => (b.created || 0) - (a.created || 0))
|
|
403
418
|
.slice(0, 15)
|
|
404
419
|
.map((m) => ({ id: m.id, display_name: m.id }));
|
|
405
420
|
}
|
package/dist/cli/entry.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browzy",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "LLM-powered personal knowledge base engine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"@anthropic-ai/sdk": "^0.39.0",
|
|
29
29
|
"@types/react": "^19.2.14",
|
|
30
30
|
"better-sqlite3": "^11.7.0",
|
|
31
|
+
"browzy": "^1.0.0",
|
|
31
32
|
"chalk": "^5.4.1",
|
|
32
33
|
"commander": "^13.1.0",
|
|
33
34
|
"dotenv": "^17.4.0",
|