nothumanallowed 13.2.24 → 13.2.25
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/package.json +1 -1
- package/src/constants.mjs +1 -1
- package/src/services/web-ui.mjs +49 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "13.2.
|
|
3
|
+
"version": "13.2.25",
|
|
4
4
|
"description": "NotHumanAllowed — 38 AI agents, 80 tools, Studio (visual agentic workflows). Email, calendar, browser automation, screen capture, canvas, cron/heartbeat, Alexandria E2E messaging, GitHub, Notion, Slack, voice chat, free AI (Liara), 28 languages. Zero-dependency CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/constants.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { fileURLToPath } from 'url';
|
|
|
5
5
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = path.dirname(__filename);
|
|
7
7
|
|
|
8
|
-
export const VERSION = '13.2.
|
|
8
|
+
export const VERSION = '13.2.25';
|
|
9
9
|
export const BASE_URL = 'https://nothumanallowed.com/cli';
|
|
10
10
|
export const API_BASE = 'https://nothumanallowed.com/api/v1';
|
|
11
11
|
|
package/src/services/web-ui.mjs
CHANGED
|
@@ -2275,8 +2275,8 @@ function renderSettings(el) {
|
|
|
2275
2275
|
['profile-notes', 'Notes', 'Anything else agents should know about you'],
|
|
2276
2276
|
]) +
|
|
2277
2277
|
'<div style="padding:12px 16px;margin-bottom:16px;background:var(--amberdim);border:1px solid var(--amber3);border-radius:8px"><span style="font-family:var(--term);color:var(--amber);font-size:13px;font-weight:700">NHA Free (Liara)</span><div style="font-size:11px;color:var(--dim);margin:4px 0 8px">Powered by Qwen3 32B. Free, no API key needed. Slower (5-15s).</div><button onclick="apiPost(\\x27/api/config\\x27,{key:\\x27provider\\x27,value:\\x27nha\\x27}).then(function(){location.reload()})" style="padding:6px 16px;background:var(--amber3);color:var(--bg);border:none;border-radius:6px;cursor:pointer;font-family:var(--mono);font-size:11px;font-weight:700">Use NHA Free</button></div>' +
|
|
2278
|
-
settingsSection('language', 'Language / Lingua', '
|
|
2279
|
-
['lang', 'Language', '
|
|
2278
|
+
settingsSection('language', 'Language / Lingua', 'Select the language used by all agents and Studio workflows.', [
|
|
2279
|
+
['lang', 'Language', ''],
|
|
2280
2280
|
]) +
|
|
2281
2281
|
settingsSection('llm', 'LLM Provider', 'Or use your own API key for faster, more capable responses.', [
|
|
2282
2282
|
['provider', 'Provider', 'nha (free) / anthropic / openai / gemini / deepseek / grok / mistral'],
|
|
@@ -2345,6 +2345,35 @@ function settingsSection(id, title, desc, fields) {
|
|
|
2345
2345
|
h += '<option value="' + providers[pi].value + '"' + sel + '>' + providers[pi].label + '</option>';
|
|
2346
2346
|
}
|
|
2347
2347
|
h += '</select>';
|
|
2348
|
+
} else if (key === 'lang') {
|
|
2349
|
+
var langs = [
|
|
2350
|
+
{value:'it',label:'🇮🇹 Italiano'},
|
|
2351
|
+
{value:'en',label:'🇬🇧 English'},
|
|
2352
|
+
{value:'es',label:'🇪🇸 Español'},
|
|
2353
|
+
{value:'fr',label:'🇫🇷 Français'},
|
|
2354
|
+
{value:'de',label:'🇩🇪 Deutsch'},
|
|
2355
|
+
{value:'pt',label:'🇵🇹 Português'},
|
|
2356
|
+
{value:'nl',label:'🇳🇱 Nederlands'},
|
|
2357
|
+
{value:'pl',label:'🇵🇱 Polski'},
|
|
2358
|
+
{value:'ru',label:'🇷🇺 Русский'},
|
|
2359
|
+
{value:'zh',label:'🇨🇳 中文'},
|
|
2360
|
+
{value:'ja',label:'🇯🇵 日本語'},
|
|
2361
|
+
{value:'ko',label:'🇰🇷 한국어'},
|
|
2362
|
+
{value:'ar',label:'🇸🇦 العربية'},
|
|
2363
|
+
{value:'hi',label:'🇮🇳 हिन्दी'},
|
|
2364
|
+
{value:'tr',label:'🇹🇷 Türkçe'},
|
|
2365
|
+
{value:'sv',label:'🇸🇪 Svenska'},
|
|
2366
|
+
{value:'da',label:'🇩🇰 Dansk'},
|
|
2367
|
+
{value:'fi',label:'🇫🇮 Suomi'},
|
|
2368
|
+
{value:'cs',label:'🇨🇿 Čeština'},
|
|
2369
|
+
];
|
|
2370
|
+
var curLang = currentVal || 'it';
|
|
2371
|
+
h += '<select style="width:100%;padding:8px 12px;font-size:13px;background:var(--bg);color:var(--fg);border:1px solid var(--border2);border-radius:var(--r)" data-config-key="lang" data-section="' + esc(id) + '">';
|
|
2372
|
+
for (var li=0;li<langs.length;li++) {
|
|
2373
|
+
var lsel = curLang === langs[li].value ? ' selected' : '';
|
|
2374
|
+
h += '<option value="' + langs[li].value + '"' + lsel + '>' + langs[li].label + '</option>';
|
|
2375
|
+
}
|
|
2376
|
+
h += '</select>';
|
|
2348
2377
|
} else if (key === 'thinking') {
|
|
2349
2378
|
// Dropdown for thinking toggle
|
|
2350
2379
|
h += '<select style="width:100%;padding:8px 12px;font-size:13px;background:var(--bg);color:var(--fg);border:1px solid var(--border2);border-radius:var(--r)" data-config-key="thinking" data-section="' + esc(id) + '">' +
|
|
@@ -2404,13 +2433,22 @@ function saveSettingsSection(sectionId) {
|
|
|
2404
2433
|
var allOk = results.every(function(r) { return r; });
|
|
2405
2434
|
if (statusEl) {
|
|
2406
2435
|
if (allOk) {
|
|
2407
|
-
|
|
2436
|
+
if (sectionId === 'language') {
|
|
2437
|
+
var langNames = {it:'Italiano',en:'English',es:'Español',fr:'Français',de:'Deutsch',pt:'Português',nl:'Nederlands',pl:'Polski',ru:'Русский',zh:'中文',ja:'日本語',ko:'한국어',ar:'العربية',hi:'हिन्दी',tr:'Türkçe',sv:'Svenska',da:'Dansk',fi:'Suomi',cs:'Čeština'};
|
|
2438
|
+
try {
|
|
2439
|
+
var cfg2 = JSON.parse(localStorage.getItem('nha_config_cache') || '{}');
|
|
2440
|
+
var ln = langNames[cfg2.lang] || cfg2.lang || 'Italian';
|
|
2441
|
+
statusEl.textContent = '✓ Language set to ' + ln + '. All agents and Studio will now respond in ' + ln + '.';
|
|
2442
|
+
} catch(e) { statusEl.textContent = '✓ Saved!'; }
|
|
2443
|
+
} else {
|
|
2444
|
+
statusEl.textContent = 'Saved!';
|
|
2445
|
+
}
|
|
2408
2446
|
statusEl.style.color = 'var(--green)';
|
|
2409
2447
|
} else {
|
|
2410
2448
|
statusEl.textContent = 'Some fields failed to save.';
|
|
2411
2449
|
statusEl.style.color = 'var(--red)';
|
|
2412
2450
|
}
|
|
2413
|
-
setTimeout(function() { statusEl.textContent = ''; },
|
|
2451
|
+
setTimeout(function() { statusEl.textContent = ''; }, 4000);
|
|
2414
2452
|
}
|
|
2415
2453
|
});
|
|
2416
2454
|
}
|
|
@@ -3042,8 +3080,13 @@ var studioTokens = {in: 0, out: 0};
|
|
|
3042
3080
|
function studioAddTokens(inp, out) {
|
|
3043
3081
|
studioTokens.in += (inp||0);
|
|
3044
3082
|
studioTokens.out += (out||0);
|
|
3083
|
+
studioUpdateTokenBar();
|
|
3084
|
+
}
|
|
3085
|
+
function studioUpdateTokenBar() {
|
|
3045
3086
|
var el = document.getElementById('studioTokenBar');
|
|
3046
|
-
if (el)
|
|
3087
|
+
if (!el) return;
|
|
3088
|
+
if (studioTokens.in === 0 && studioTokens.out === 0) { el.textContent = ''; return; }
|
|
3089
|
+
el.textContent = '⬆ ' + studioTokens.in.toLocaleString() + ' in ⬇ ' + studioTokens.out.toLocaleString() + ' out';
|
|
3047
3090
|
}
|
|
3048
3091
|
|
|
3049
3092
|
function runStudioStep(idx, node, task, context, stepDef, signal) {
|
|
@@ -3104,6 +3147,7 @@ function runStudioStep(idx, node, task, context, stepDef, signal) {
|
|
|
3104
3147
|
if (scb) scb.style.display = '';
|
|
3105
3148
|
}
|
|
3106
3149
|
if (ev.usage) { studioAddTokens(ev.usage.input||0, ev.usage.output||0); }
|
|
3150
|
+
else if (ev.token && !isStatus) { studioTokens.out += Math.ceil(ev.token.length/4); studioUpdateTokenBar(); }
|
|
3107
3151
|
if (ev.done) { resolve({output: output || '(no output)', canvas: canvasHtml}); return; }
|
|
3108
3152
|
if (ev.error) { resolve({error: ev.error}); return; }
|
|
3109
3153
|
} catch(e) {}
|