nothumanallowed 12.5.1 → 12.5.3

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nothumanallowed",
3
- "version": "12.5.1",
3
+ "version": "12.5.3",
4
4
  "description": "NotHumanAllowed — 38 AI agents, 80 tools. 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 = '12.5.0';
8
+ export const VERSION = '12.5.3';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -11,11 +11,11 @@ export function getHTML(port) {
11
11
  const CSS = `
12
12
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
13
13
  :root{
14
- --bg:#0a0a0a;--bg2:#111;--bg3:#1a1a1a;--bg4:#222;
15
- --green:#00ff41;--green2:#00cc33;--green3:#00aa28;--greendim:#0a3a12;
16
- --cyan:#00e5ff;--amber:#ffb300;--red:#ff1744;
17
- --text:#d4d4d8;--dim:#9ca3af;--bright:#fff;
18
- --border:#1e1e1e;--border2:#333;
14
+ --bg:#0a0a0a;--bg2:#111;--bg3:#1a1a2e;--bg4:#222;
15
+ --green:#a5b4fc;--green2:#818cf8;--green3:#6366f1;--greendim:#12121e;
16
+ --cyan:#38bdf8;--amber:#fbbf24;--red:#ef4444;
17
+ --text:#e4e4e7;--dim:#9ca3af;--bright:#fff;
18
+ --border:#1e1e2e;--border2:#3f3f5e;
19
19
  --font:'JetBrains Mono','Fira Code','SF Mono','Consolas',monospace;
20
20
  --r:6px;
21
21
  }
@@ -134,21 +134,28 @@ input:focus,textarea:focus{border-color:var(--green3)}
134
134
  .browser-viewer__status{padding:4px 10px;font-size:9px;color:var(--dim);border-top:1px solid var(--border)}
135
135
  @media(max-width:600px){.browser-viewer{width:calc(100vw - 24px);top:8px;left:8px}}
136
136
  @media(min-width:901px){.browser-viewer{left:232px}}
137
- .chat__bar{display:flex;gap:8px;padding:10px 0 12px 0;border-top:1px solid var(--border);flex-shrink:0}
137
+ .chat__bar{display:flex;flex-wrap:wrap;gap:6px;padding:10px 0 12px 0;border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end}
138
+ .chat__bar-tools{display:flex;gap:4px;align-items:center;width:100%}
138
139
  .chat__input{flex:1;resize:none;min-height:44px;max-height:120px;padding:10px 14px;font-size:14px}
139
- .chat__send{background:var(--green3);color:var(--bg);padding:10px 20px;border-radius:var(--r);font-weight:700;font-size:14px}
140
+ .chat__send{background:var(--green3);color:var(--bg);padding:10px 20px;border-radius:var(--r);font-weight:700;font-size:14px;white-space:nowrap}
140
141
  .chat__send:disabled{opacity:.4}
142
+ .chat__stop{white-space:nowrap}
141
143
 
142
144
  /* ---- MOBILE TOUCH (Termux / small screens) ---- */
143
145
  @media(max-width:600px){
144
- .msg--user .msg__bubble,.msg--assistant .msg__bubble{font-size:14px;padding:12px 14px;max-width:92%;line-height:1.55}
146
+ .msg--user .msg__bubble,.msg--assistant .msg__bubble{font-size:14px;padding:12px 14px;max-width:94%;line-height:1.55}
145
147
  .msg__label{font-size:11px}
146
- .chat__input{min-height:48px;font-size:15px;padding:12px 14px}
147
- .chat__send{padding:12px 20px;font-size:15px}
148
+ .chat__bar{flex-wrap:wrap;gap:6px;padding:8px 4px 10px 4px}
149
+ .chat__bar-tools{flex-wrap:wrap;gap:4px}
150
+ .chat__input{min-height:48px;font-size:15px;padding:12px 14px;width:100%;flex-basis:100%}
151
+ .chat__send{padding:12px 20px;font-size:15px;flex-grow:1}
152
+ .chat__stop{flex-grow:1}
148
153
  .chat__empty-title{font-size:22px}
149
154
  .header{padding:10px 12px}
150
155
  .header__title{font-size:15px}
151
156
  .content{padding:10px}
157
+ /* Conversation sidebar as overlay on mobile, not side panel */
158
+ #convSidebar{position:fixed!important;top:0!important;left:0!important;height:100dvh!important;width:260px!important;box-shadow:4px 0 20px rgba(0,0,0,0.8)!important;z-index:250!important}
152
159
  }
153
160
  .chat__stop{background:var(--red);color:var(--bright);padding:10px 16px;border-radius:var(--r);font-weight:700;font-size:12px;display:none}
154
161
  .chat__stop--visible{display:block}
@@ -426,7 +433,7 @@ var chatReady=false;
426
433
  function renderChat(el){
427
434
  if(!chatReady||!document.getElementById('chatMessages')){
428
435
  el.innerHTML='<div style="display:flex;height:calc(100vh - 56px)">'+
429
- '<div id="convSidebar" style="width:220px;border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;background:var(--bg);display:'+(localStorage.getItem('nha_conv_sidebar')==='hidden'?'none':'')+'">'+
436
+ '<div id="convSidebar" style="width:220px;border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;background:var(--bg);z-index:100;display:'+(localStorage.getItem('nha_conv_sidebar')==='hidden'||(typeof window!=='undefined'&&window.innerWidth<600)?'none':'')+'">'+
430
437
  '<div style="padding:8px"><button onclick="createNewConv()" style="width:100%;padding:8px;border-radius:var(--r);border:1px solid var(--green);background:transparent;color:var(--green);cursor:pointer;font-size:11px">+ New Chat</button></div>'+
431
438
  '<div id="convList"></div>'+
432
439
  '</div>'+
@@ -439,7 +446,23 @@ function renderChat(el){
439
446
  '</div>'+
440
447
  '<div class="chat"><div class="chat__messages" id="chatMessages"></div>'+
441
448
  '<div id="chatAttachInfo" style="display:none;padding:4px 12px;font-size:11px;color:var(--cyan);background:var(--bg2);border-top:1px solid var(--border)"><span id="chatAttachName"></span> <button onclick="clearChatAttach()" style="background:none;border:none;color:#f44;cursor:pointer;font-size:14px;font-weight:700">&times;</button></div>'+
442
- '<div class="chat__bar"><button class="chat__mic" id="chatMic" onclick="toggleVoiceInput()" title="Voice input">&#127908;</button><button onclick="document.getElementById(\\x27chatFileInput\\x27).click()" style="background:none;border:none;cursor:pointer;font-size:16px;padding:4px" title="Attach file">&#128206;</button><button onclick="document.getElementById(\\x27chatImageInput\\x27).click()" style="background:none;border:none;cursor:pointer;font-size:16px;padding:4px" title="Attach image">&#128247;</button><input type="file" id="chatFileInput" style="display:none" onchange="handleChatFile(this)"><input type="file" id="chatImageInput" accept="image/*" style="display:none" onchange="handleChatImage(this)"><textarea class="chat__input" id="chatInput" placeholder="Ask anything... (or attach file/image first)" rows="1"></textarea><button class="chat__send" id="chatSend">Send</button><button class="chat__stop" id="chatStop" onclick="stopChat()">Stop</button><button onclick="reopenCanvas()" style="background:none;border:1px solid var(--border2);border-radius:6px;cursor:pointer;font-size:11px;padding:4px 8px;color:var(--dim);font-family:var(--mono);display:flex;align-items:center;gap:4px" title="Open Canvas / Browser panel"><span style="font-size:13px">&#x25A3;</span>Panel</button><button id="thinkingToggle" onclick="toggleThinking()" style="background:none;border:1px solid var(--border2);border-radius:6px;cursor:pointer;font-size:10px;padding:4px 8px;color:var(--dim);font-family:var(--mono)" title="Toggle Extended Thinking (NHA Free only)">Think: off</button></div>'+
449
+ '<div class="chat__bar">'+
450
+ '<div class="chat__bar-tools">'+
451
+ '<button class="chat__mic" id="chatMic" onclick="toggleVoiceInput()" title="Voice input" style="font-size:16px;padding:4px 6px;background:none;border:none;cursor:pointer">&#127908;</button>'+
452
+ '<button onclick="document.getElementById(\\x27chatFileInput\\x27).click()" style="background:none;border:none;cursor:pointer;font-size:16px;padding:4px 6px" title="Attach file">&#128206;</button>'+
453
+ '<button onclick="document.getElementById(\\x27chatImageInput\\x27).click()" style="background:none;border:none;cursor:pointer;font-size:16px;padding:4px 6px" title="Attach image">&#128247;</button>'+
454
+ '<input type="file" id="chatFileInput" style="display:none" onchange="handleChatFile(this)">'+
455
+ '<input type="file" id="chatImageInput" accept="image/*" style="display:none" onchange="handleChatImage(this)">'+
456
+ '<span style="flex:1"></span>'+
457
+ '<button id="thinkingToggle" onclick="toggleThinking()" style="background:none;border:1px solid var(--border2);border-radius:6px;cursor:pointer;font-size:10px;padding:4px 8px;color:var(--dim);font-family:var(--font);white-space:nowrap" title="Toggle Extended Thinking">Think: off</button>'+
458
+ '<button onclick="reopenCanvas()" style="background:none;border:1px solid var(--border2);border-radius:6px;cursor:pointer;font-size:10px;padding:4px 8px;color:var(--dim);font-family:var(--font);white-space:nowrap;display:flex;align-items:center;gap:3px" title="Panel"><span style="font-size:12px">&#x25A3;</span>Panel</button>'+
459
+ '</div>'+
460
+ '<div style="display:flex;gap:8px;width:100%;align-items:flex-end">'+
461
+ '<textarea class="chat__input" id="chatInput" placeholder="Ask anything..." rows="1"></textarea>'+
462
+ '<button class="chat__send" id="chatSend">Send</button>'+
463
+ '<button class="chat__stop" id="chatStop" onclick="stopChat()">Stop</button>'+
464
+ '</div>'+
465
+ '</div>'+
443
466
  '</div>'+
444
467
  '</div>'+
445
468
  '</div>';