utilitas 2001.1.88 → 2001.1.89
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/utilitas.lite.mjs +1 -1
- package/dist/utilitas.lite.mjs.map +1 -1
- package/lib/alan.mjs +22 -41
- package/lib/manifest.mjs +1 -1
- package/package.json +1 -1
package/lib/alan.mjs
CHANGED
|
@@ -49,8 +49,8 @@ const [
|
|
|
49
49
|
TOOLS_STR, TOOLS_END, TOOLS, TEXT, OK, FUNC, GPT_52, GPT_51_CODEX,
|
|
50
50
|
GPT_IMAGE_15, GEMMA_3_27B, ANTHROPIC, ais, MAX_TOOL_RECURSION, LOG, name,
|
|
51
51
|
user, system, assistant, JSON_OBJECT, PROMPT_IS_REQUIRED, k, trimTailing,
|
|
52
|
-
trimBeginning, GEMINI_30_PRO_IMAGE, IMAGE, JINA,
|
|
53
|
-
|
|
52
|
+
trimBeginning, GEMINI_30_PRO_IMAGE, IMAGE, JINA, SILICONFLOW,
|
|
53
|
+
SF_DEEPSEEK_32, OPENROUTER_API, OPENROUTER, AUTO, TOOL, ONLINE,
|
|
54
54
|
GEMINI_30_PRO, GEMINI_30_FLASH, IMAGEN_4_ULTRA, VEO_31, IMAGEN_4_UPSCALE,
|
|
55
55
|
ERROR_GENERATING, GEMINI_25_FLASH_TTS, GEMINI_25_PRO_TTS, wav, PNG_EXT,
|
|
56
56
|
GPT_4O_MIMI_TTS, GPT_4O_TRANSCRIBE, INVALID_AUDIO, OGG_EXT, ELLIPSIS,
|
|
@@ -65,10 +65,9 @@ const [
|
|
|
65
65
|
{ role: 'assistant' }, 'json_object', 'Prompt is required.',
|
|
66
66
|
x => 1000 * x, x => x.replace(/[\.\s]*$/, ''),
|
|
67
67
|
x => x.replace(/^[\.\s]*/, ''), 'gemini-3-pro-image-preview', 'image',
|
|
68
|
-
'Jina', '
|
|
69
|
-
'
|
|
70
|
-
'
|
|
71
|
-
'gemini-3-pro-preview', 'gemini-3-flash-preview',
|
|
68
|
+
'Jina', 'SiliconFlow', 'deepseek-ai/DeepSeek-V3.2-exp',
|
|
69
|
+
'https://openrouter.ai/api/v1', 'OpenRouter', 'openrouter/auto', 'tool',
|
|
70
|
+
':online', 'gemini-3-pro-preview', 'gemini-3-flash-preview',
|
|
72
71
|
'imagen-4.0-ultra-generate-001', 'veo-3.1-generate-preview',
|
|
73
72
|
'imagen-4.0-upscale-preview', 'Error generating content.',
|
|
74
73
|
'gemini-2.5-flash-preview-tts', 'gemini-2.5-pro-preview-tts', 'wav',
|
|
@@ -98,7 +97,7 @@ const m = x => k(k(x));
|
|
|
98
97
|
const [MAX_TOKENS, ATTACHMENT_TOKEN_COST] = [m(1), k(10)];
|
|
99
98
|
|
|
100
99
|
const MODEL_ICONS = {
|
|
101
|
-
[OPENROUTER]: '🔀', [OPENAI]: '⚛️', [
|
|
100
|
+
[OPENROUTER]: '🔀', [OPENAI]: '⚛️', [GOOGLE]: '♊️', // [JINA]: '✴️',
|
|
102
101
|
[OLLAMA]: '🦙', [ANTHROPIC]: '✳️', [SILICONFLOW]: '🧬', [DEEPSEEK]: '🐬',
|
|
103
102
|
};
|
|
104
103
|
|
|
@@ -197,12 +196,6 @@ const MODELS = {
|
|
|
197
196
|
source: GOOGLE, contextWindow: m(1.05), maxOutputTokens: k(65.5),
|
|
198
197
|
'deep-research': true, reasoning: true, defaultProvider: GOOGLE,
|
|
199
198
|
},
|
|
200
|
-
[JINA_DEEPSEARCH]: { // @todo: parse more details from results, eg: "reed urls".
|
|
201
|
-
maxInputTokens: Infinity, attachmentTokenCost: 0,
|
|
202
|
-
'deep-research': true, reasoning: true,
|
|
203
|
-
supportedMimeTypes: [MIME_PNG, MIME_JPEG, MIME_TEXT, MIME_WEBP, MIME_PDF],
|
|
204
|
-
defaultProvider: JINA,
|
|
205
|
-
},
|
|
206
199
|
// best Chinese models
|
|
207
200
|
[DEEPSEEK_32]: DEEPSEEK_32_RULES,
|
|
208
201
|
[SF_DEEPSEEK_32]: { ...DEEPSEEK_32_RULES, defaultProvider: SILICONFLOW },
|
|
@@ -271,7 +264,6 @@ for (const n in MODELS) {
|
|
|
271
264
|
const DEFAULT_MODELS = {
|
|
272
265
|
[OPENROUTER]: GEMINI_30_FLASH,
|
|
273
266
|
[SILICONFLOW]: SF_DEEPSEEK_32,
|
|
274
|
-
[JINA]: JINA_DEEPSEARCH,
|
|
275
267
|
[OLLAMA]: GEMMA_3_27B,
|
|
276
268
|
[OPENAI_VOICE]: NOVA,
|
|
277
269
|
};
|
|
@@ -280,7 +272,7 @@ let _tools;
|
|
|
280
272
|
|
|
281
273
|
const unifyProvider = provider => {
|
|
282
274
|
assert(provider = (provider || '').trim(), 'AI provider is required.');
|
|
283
|
-
for (let type of [OPENROUTER, GOOGLE, OPENAI,
|
|
275
|
+
for (let type of [OPENROUTER, GOOGLE, OPENAI, OLLAMA, SILICONFLOW]) { // JINA,
|
|
284
276
|
if (insensitiveCompare(provider, type)) { return type; }
|
|
285
277
|
}
|
|
286
278
|
throwError(`Invalid AI provider: ${provider}.`);
|
|
@@ -448,17 +440,6 @@ const init = async (options = {}) => {
|
|
|
448
440
|
});
|
|
449
441
|
}
|
|
450
442
|
break;
|
|
451
|
-
case JINA:
|
|
452
|
-
assertApiKey(provider, options);
|
|
453
|
-
var { client } = await OpenAI({
|
|
454
|
-
baseURL: 'https://deepsearch.jina.ai/v1/', ...options,
|
|
455
|
-
});
|
|
456
|
-
for (let model of models) {
|
|
457
|
-
setupAi({
|
|
458
|
-
provider, model, client, prompt: promptOpenRouter, priority,
|
|
459
|
-
});
|
|
460
|
-
}
|
|
461
|
-
break;
|
|
462
443
|
case OLLAMA:
|
|
463
444
|
// https://github.com/ollama/ollama/blob/main/docs/openai.md
|
|
464
445
|
const baseURL = 'http://localhost:11434/v1/';
|
|
@@ -705,21 +686,21 @@ const packResp = async (resp, options) => {
|
|
|
705
686
|
).join('\n');
|
|
706
687
|
}
|
|
707
688
|
txt = txt.split('\n');
|
|
708
|
-
const [reJinaStr, reJinaEnd]
|
|
709
|
-
|
|
710
|
-
const fixJina = [];
|
|
711
|
-
for (let l of txt) {
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
}
|
|
689
|
+
// const [reJinaStr, reJinaEnd]
|
|
690
|
+
// = [`^\s*(${THINK_STR})`, `(${THINK_END})\s*$`].map(x => new RegExp(x));
|
|
691
|
+
// const fixJina = [];
|
|
692
|
+
// for (let l of txt) {
|
|
693
|
+
// let catched = false;
|
|
694
|
+
// if (reJinaStr.test(l)) {
|
|
695
|
+
// fixJina.push(THINK_STR);
|
|
696
|
+
// l = l.replace(reJinaStr, '');
|
|
697
|
+
// }
|
|
698
|
+
// if (reJinaEnd.test(l)) {
|
|
699
|
+
// l = l.replace(reJinaEnd, '');
|
|
700
|
+
// catched = true;
|
|
701
|
+
// }
|
|
702
|
+
// fixJina.push(l, ...catched ? [THINK_END, ''] : []);
|
|
703
|
+
// }
|
|
723
704
|
txt = fixJina;
|
|
724
705
|
for (let i in txt) {
|
|
725
706
|
switch (txt[i]) {
|
package/lib/manifest.mjs
CHANGED