utilitas 1999.1.19 → 1999.1.20

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/lib/alan.mjs CHANGED
@@ -101,6 +101,7 @@ const log = (cnt, opt) => _log(cnt, import.meta.url, { time: 1, ...opt || {} });
101
101
  const assertContent = content => assert(content.length, CONTENT_IS_REQUIRED);
102
102
  const countToolCalls = r => r?.split('\n').filter(x => x === TOOLS_STR).length;
103
103
  const assertApiKey = (p, o) => assert(o?.apiKey, `${p} api key is required.`);
104
+ const getProviderIcon = provider => PROVIDER_ICONS[provider] || '🔮';
104
105
  const libOpenAi = async opts => await need('openai', { ...opts, raw: true });
105
106
  const OpenAI = async opts => new (await libOpenAi(opts)).OpenAI(opts);
106
107
  const AzureOpenAI = async opts => new (await libOpenAi(opts)).AzureOpenAI(opts);
@@ -166,8 +167,8 @@ const MODELS = {
166
167
  [JINA_DEEPSEARCH]: {
167
168
  contextWindow: Infinity, maxInputTokens: Infinity,
168
169
  maxOutputTokens: Infinity, imageCostTokens: 0, maxImageSize: Infinity,
169
- supportedMimeTypes: [png, jpeg, MIME_TEXT, webp, pdf],
170
- reasoning: true, json: true, vision: true, defaultProvider: JINA,
170
+ supportedMimeTypes: [png, jpeg, MIME_TEXT, webp, pdf], reasoning: true,
171
+ json: true, vision: true, deepsearch: true, defaultProvider: JINA,
171
172
  },
172
173
  [DEEPSEEK_R1]: {
173
174
  contextWindow: kT(128), maxOutputTokens: k(32),
@@ -234,6 +235,17 @@ const DEFAULT_EMBEDDING = {
234
235
  [JINA]: JINA_CLIP,
235
236
  };
236
237
 
238
+ const PROVIDER_ICONS = {
239
+ [OPENAI]: '⚛️', [AZURE_OPENAI]: '⚛️',
240
+ [ANTHROPIC]: '✳️', [VERTEX_ANTHROPIC]: '✳️',
241
+ [GEMINI]: '♊️', [AZURE]: '☁️', [OLLAMA]: '🦙', [JINA]: '✴️',
242
+ };
243
+
244
+ const FEATURE_ICONS = {
245
+ audio: '📣', deepsearch: '🔍', fast: '⚡️', image: '🎨',
246
+ json: '📊', reasoning: '🧠', tools: '🧰', vision: '👁️',
247
+ };
248
+
237
249
  const tokenRatioByWords = Math.min(
238
250
  100 / 75, // ChatGPT: https://platform.openai.com/tokenizer
239
251
  Math.min(100 / 60, 100 / 80), // Gemini: https://ai.google.dev/gemini-api/docs/tokens?lang=node
@@ -356,8 +368,13 @@ const buildAiId = (provider, model) => [provider, model].map(
356
368
 
357
369
  const setupAi = ai => {
358
370
  const id = buildAiId(ai.provider, ai.model.name);
371
+ const icon = getProviderIcon(ai.provider);
372
+ const features = Object.entries(FEATURE_ICONS).map(
373
+ x => ai.model[x[0]] ? x[1] : ''
374
+ ).join('');
359
375
  ais.push({
360
- id, initOrder: ais.length,
376
+ id, name: `${icon} ${ai.provider} (${ai.model.name})`,
377
+ features, initOrder: ais.length,
361
378
  priority: DEFAULT_MODELS[ai.provider] === ai.model.name ? -1 : 0,
362
379
  modelEmbedding: MODELS[DEFAULT_EMBEDDING[ai.provider]], ...ai,
363
380
  prompt: ai.prompt && (async (c, o) => await ai.prompt(id, c, o)),
@@ -478,7 +495,8 @@ const init = async (options = {}) => {
478
495
 
479
496
  const packAi = (ais, options = {}) => {
480
497
  const res = options.basic ? ais.map(x => ({
481
- id: x.id, initOrder: x.initOrder, priority: x.priority,
498
+ id: x.id, name: x.name, features: x.features,
499
+ initOrder: x.initOrder, priority: x.priority,
482
500
  provider: x.provider, model: x.model, modelEmbedding: x.modelEmbedding,
483
501
  prompt: !!x.prompt, embedding: !!x.embedding,
484
502
  })) : ais;
package/lib/manifest.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  const manifest = {
2
2
  "name": "utilitas",
3
3
  "description": "Just another common utility for JavaScript.",
4
- "version": "1999.1.19",
4
+ "version": "1999.1.20",
5
5
  "private": false,
6
6
  "homepage": "https://github.com/Leask/utilitas",
7
7
  "main": "index.mjs",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "utilitas",
3
3
  "description": "Just another common utility for JavaScript.",
4
- "version": "1999.1.19",
4
+ "version": "1999.1.20",
5
5
  "private": false,
6
6
  "homepage": "https://github.com/Leask/utilitas",
7
7
  "main": "index.mjs",