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 CHANGED
@@ -380,10 +380,21 @@ export const BrowzyApp = () => {
380
380
  headers: { 'Authorization': `Bearer ${key}` },
381
381
  });
382
382
  const data = await resp.json();
383
- // Show top models, grouped nicely
384
- const popular = ['anthropic/claude', 'openai/gpt-4', 'openai/o', 'google/gemini', 'meta-llama', 'mistralai', 'deepseek'];
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) => popular.some(p => m.id.startsWith(p)))
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
- .sort((a, b) => b.id.localeCompare(a.id))
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.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",