nothumanallowed 9.4.11 → 9.4.13

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": "9.4.11",
3
+ "version": "9.4.13",
4
4
  "description": "NotHumanAllowed — 38 AI agents + 58 tools + browser automation + web search. Streaming chat, headless Chrome CDP, multi-conversation, export. Gmail, Calendar, Drive, GitHub, Notion, Slack. Zero-dependency CLI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1233,7 +1233,6 @@ export async function cmdUI(args) {
1233
1233
  const wantsScreenshot = /screenshot|screen\s*shot|schermo|cattura|foto|immagine/i.test(msg);
1234
1234
  const wantsSearch = /\b(cerca|search|find|look\s*up|ricerca|cercare)\b/i.test(msg);
1235
1235
 
1236
- console.log(` [flow] actions=${actions.length} [${actions.map(a=>a.action).join(',')}] wantsSearch=${wantsSearch} wantsScreenshot=${wantsScreenshot}`);
1237
1236
  // If user asked to search but LLM didn't call web_search, force it
1238
1237
  if (wantsSearch && !actions.some(a => a.action === 'web_search')) {
1239
1238
  // Extract search query from message (remove action words)
@@ -1307,7 +1306,6 @@ export async function cmdUI(args) {
1307
1306
  }
1308
1307
 
1309
1308
  // If the tool produced a screenshot (web_search with screenshot=true), send it via SSE
1310
- console.log(` [debug] action=${action} resultStr.length=${resultStr.length} hasScreenshot=${resultStr.includes('[Screenshot')} last80=${resultStr.slice(-80)}`);
1311
1309
  if (resultStr.includes('[Screenshot of results captured')) {
1312
1310
  try {
1313
1311
  const fileMatch = resultStr.match(/file:(ss-\d+\.jpg)/);
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 = '9.4.11';
8
+ export const VERSION = '9.4.13';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -8,6 +8,7 @@
8
8
  */
9
9
 
10
10
  import os from 'os';
11
+ import path from 'path';
11
12
 
12
13
  import {
13
14
  listMessages,
@@ -1322,12 +1323,9 @@ export async function executeTool(action, params, config) {
1322
1323
  if (params.screenshot) {
1323
1324
  try {
1324
1325
  const be = await import('./browser-engine.mjs');
1325
- console.log(` [web_search_ss] isBrowserRunning=${be.isBrowserRunning()}`);
1326
1326
  // Ensure browser is running
1327
1327
  if (!be.isBrowserRunning()) {
1328
- console.log(` [web_search_ss] launching browser...`);
1329
1328
  await be.browserOpen('https://example.com', { waitForLoad: true });
1330
- console.log(` [web_search_ss] browser launched`);
1331
1329
  }
1332
1330
  // Build search results HTML
1333
1331
  const esc = (s) => (s || '').replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
@@ -1348,7 +1346,7 @@ export async function executeTool(action, params, config) {
1348
1346
  fsMod.writeFileSync(path.join(ssDir, ssFilename), Buffer.from(ss.base64, 'base64'));
1349
1347
  return textResult + `\n\n[Screenshot of results captured (${Math.round(ss.size / 1024)}KB) file:${ssFilename}]`;
1350
1348
  }
1351
- } catch (ssErr) { console.log(` [web_search_ss] ERROR: ${ssErr.message}`); }
1349
+ } catch { /* screenshot failed */ }
1352
1350
  }
1353
1351
 
1354
1352
  return textResult;
@@ -576,12 +576,7 @@ function sendChat(){
576
576
  renderMessages();
577
577
  }
578
578
  if(currentEvent==='screenshot'&&data.base64){
579
- if(!chatHistory[streamIdx]._screenshots)chatHistory[streamIdx]._screenshots=[];
580
- var ssUrl=data.filename?'/api/screenshots/'+data.filename:'data:image/'+(data.format||'jpeg')+';base64,'+data.base64;
581
- chatHistory[streamIdx]._screenshots.push(ssUrl);
582
- chatHistory[streamIdx].content+='\\n![Screenshot]('+ssUrl+')\\n';
583
- renderMessages();
584
- // Show and update browser viewer with the screenshot
579
+ // Only update the browser viewer — the actual image in chat is handled by the 'done' event via screenshotFiles
585
580
  showBrowserViewer('Screenshot','Captured');
586
581
  updateBrowserFrame(data.base64,data.format||'jpeg');
587
582
  updateBrowserStatus('Screenshot captured');
@@ -593,7 +588,7 @@ function sendChat(){
593
588
  if(data.url)updateBrowserStatus(data.url);
594
589
  }
595
590
  if(currentEvent==='tool_synthesis'){chatHistory[streamIdx].content='';renderMessages();}
596
- if(currentEvent==='done'){endStreaming();if(data.content)chatHistory[streamIdx].content=data.content;var ssf=data.screenshotFiles||[];for(var fi=0;fi<ssf.length;fi++){chatHistory[streamIdx].content+='\\n![Screenshot](/api/screenshots/'+ssf[fi]+')\\n';}var ss=chatHistory[streamIdx]._screenshots||[];for(var si=0;si<ss.length;si++){if(ss[si].indexOf('/api/screenshots/')===0){var alreadyAdded=false;for(var fj=0;fj<ssf.length;fj++){if(ss[si].indexOf(ssf[fj])!==-1)alreadyAdded=true;}if(!alreadyAdded)chatHistory[streamIdx].content+='\\n![Screenshot]('+ss[si]+')\\n';}else if(ssf.length===0){chatHistory[streamIdx].content+='\\n![Screenshot]('+ss[si]+')\\n';}}renderMessages();loadConvList();setTimeout(closeBrowserViewer,5000);}
591
+ if(currentEvent==='done'){endStreaming();if(data.content)chatHistory[streamIdx].content=data.content;var ssf=data.screenshotFiles||[];for(var fi=0;fi<ssf.length;fi++){chatHistory[streamIdx].content+='\\n![Screenshot](/api/screenshots/'+ssf[fi]+')\\n';}renderMessages();loadConvList();if(ssf.length>0)setTimeout(closeBrowserViewer,5000);}
597
592
  if(currentEvent==='error'){endStreaming();chatHistory[streamIdx].content='Error: '+(data.message||'Unknown');renderMessages();}
598
593
  }catch(e){}
599
594
  }