utilitas 1999.1.38 → 1999.1.40

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
@@ -65,7 +65,8 @@ const [
65
65
  TOOL, silent, GEMINI_EMBEDDING_M, INVALID_FILE, tokenSafeRatio,
66
66
  GPT_QUERY_LIMIT, CONTENT_IS_REQUIRED, OPENAI_HI_RES_SIZE, k, kT, m, minute,
67
67
  hour, gb, trimTailing, EBD, GEMINI_20_FLASH_EXP, IMAGE, JINA,
68
- JINA_DEEPSEARCH, JINA_CLIP, VERTEX,
68
+ JINA_DEEPSEARCH, JINA_CLIP, VERTEX, GEMINI_25_PRO, SILICONFLOW,
69
+ SF_DEEPSEEK_V3,
69
70
  ] = [
70
71
  'OpenAI', 'Gemini', 'OPENAI_TRAINING', 'Ollama', 'gpt-4o-mini',
71
72
  'gpt-4o', 'o1', 'o3-mini', 'gemini-2.0-flash',
@@ -85,6 +86,8 @@ const [
85
86
  x => 1024 * 1024 * 1024 * x, x => x.replace(/[\.\s]*$/, ''),
86
87
  { embedding: true }, 'gemini-2.0-flash-exp', 'image', 'Jina',
87
88
  'jina-deepsearch-v1', 'jina-clip-v2', 'Vertex',
89
+ 'gemini-2.5-pro-exp-03-25', 'SiliconFlow',
90
+ 'Pro/deepseek-ai/DeepSeek-V3',
88
91
  ];
89
92
 
90
93
  const [tool, messages, text]
@@ -158,6 +161,10 @@ const MODELS = {
158
161
  ...GEMINI_RULES, contextWindow: m(2), maxOutputTokens: k(8),
159
162
  json: true,
160
163
  },
164
+ [GEMINI_25_PRO]: {
165
+ ...GEMINI_RULES, contextWindow: m(1), maxOutputTokens: k(64),
166
+ json: true, reasoning: true, tools: true,
167
+ },
161
168
  [GEMMA_3_27B]: {
162
169
  contextWindow: kT(128), maxOutputTokens: k(8),
163
170
  imageCostTokens: 256, maxImageSize: 896 * 896,
@@ -171,9 +178,13 @@ const MODELS = {
171
178
  json: true, vision: true, deepsearch: true, defaultProvider: JINA,
172
179
  },
173
180
  [DEEPSEEK_R1]: {
174
- contextWindow: kT(128), maxOutputTokens: k(32),
181
+ contextWindow: kT(128), maxOutputTokens: k(8),
175
182
  reasoning: true,
176
- }, // ERROR: column cannot have more than 2000 dimensions for hnsw index
183
+ },
184
+ [SF_DEEPSEEK_V3]: {
185
+ contextWindow: kT(128), maxOutputTokens: k(8),
186
+ defaultProvider: SILICONFLOW,
187
+ },// ERROR: column cannot have more than 2000 dimensions for hnsw index
177
188
  [TEXT_EMBEDDING_3_LARGE]: { ...OPENAI_EBD, dimension: k(3) },
178
189
  [TEXT_EMBEDDING_3_SMALL]: { ...OPENAI_EBD, dimension: k(1.5) },
179
190
  [GEMINI_EMBEDDING_M]: { ...EBD, maxInputTokens: k(8), dimension: k(3) },
@@ -221,6 +232,7 @@ MODELS[GEMMA327B] = { // Ollama Alias
221
232
  const DEFAULT_MODELS = {
222
233
  [OPENAI]: GPT_4O,
223
234
  [AZURE_OPENAI]: GPT_4O,
235
+ [SILICONFLOW]: SF_DEEPSEEK_V3,
224
236
  [GEMINI]: GEMINI_20_FLASH,
225
237
  [ANTHROPIC]: CLOUD_37_SONNET,
226
238
  [VERTEX_ANTHROPIC]: CLOUD_37_SONNET,
@@ -239,7 +251,7 @@ const DEFAULT_EMBEDDING = {
239
251
  const PROVIDER_ICONS = {
240
252
  [OPENAI]: '⚛️', [AZURE_OPENAI]: '⚛️', [AZURE]: '☁️', [JINA]: '✴️',
241
253
  [GEMINI]: '♊️', [VERTEX]: '📖', [OLLAMA]: '🦙',
242
- [ANTHROPIC]: '✳️', [VERTEX_ANTHROPIC]: '✳️',
254
+ [ANTHROPIC]: '✳️', [VERTEX_ANTHROPIC]: '✳️', [SILICONFLOW]: '🧬',
243
255
  };
244
256
 
245
257
  const FEATURE_ICONS = {
@@ -263,7 +275,7 @@ let tokeniser;
263
275
  const unifyProvider = provider => {
264
276
  assert(provider = (provider || '').trim(), 'AI provider is required.');
265
277
  for (let type of [OPENAI, AZURE_OPENAI, AZURE, GEMINI, VERTEX, ANTHROPIC,
266
- VERTEX_ANTHROPIC, JINA, OLLAMA]) {
278
+ VERTEX_ANTHROPIC, JINA, OLLAMA, SILICONFLOW]) {
267
279
  if (insensitiveCompare(provider, type)) { return type; }
268
280
  }
269
281
  throwError(`Invalid AI provider: ${provider}.`);
@@ -430,6 +442,12 @@ const init = async (options = {}) => {
430
442
  var client = await OpenAI(options);
431
443
  setupAi({ provider, model, client, prompt: promptOpenAI });
432
444
  break;
445
+ case SILICONFLOW:
446
+ assertApiKey(provider, options);
447
+ var client = await OpenAI({ baseURL: 'https://api.siliconflow.cn/v1', ...options });
448
+ var model = models[0];
449
+ setupAi({ provider, model, client, prompt: promptOpenAI });
450
+ break;
433
451
  case GEMINI:
434
452
  assert(options.apiKey, `${provider} api key is required.`);
435
453
  var { GoogleGenAI } = await need('@google/genai');
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.38",
4
+ "version": "1999.1.40",
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.38",
4
+ "version": "1999.1.40",
5
5
  "private": false,
6
6
  "homepage": "https://github.com/Leask/utilitas",
7
7
  "main": "index.mjs",