nothumanallowed 9.4.5 → 9.4.7

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.5",
3
+ "version": "9.4.7",
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": {
@@ -1299,19 +1299,22 @@ export async function cmdUI(args) {
1299
1299
  if (resultStr.includes('[Screenshot of results captured')) {
1300
1300
  try {
1301
1301
  const fileMatch = resultStr.match(/file:(ss-\d+\.jpg)/);
1302
+ console.log(` [screenshot] file match: ${fileMatch?.[1] || 'NONE'}`);
1302
1303
  if (fileMatch) {
1303
1304
  const ssFilename = fileMatch[1];
1304
1305
  const ssPath = path.join(NHA_DIR, 'screenshots', ssFilename);
1305
- if (fs.existsSync(ssPath)) {
1306
+ const exists = fs.existsSync(ssPath);
1307
+ console.log(` [screenshot] path: ${ssPath}, exists: ${exists}`);
1308
+ if (exists) {
1306
1309
  const ssBase64 = fs.readFileSync(ssPath).toString('base64');
1310
+ console.log(` [screenshot] sending SSE, base64 size: ${ssBase64.length}`);
1307
1311
  sendSSE('screenshot', { base64: ssBase64, format: 'jpeg', filename: ssFilename });
1308
- // Also send as browser_frame for the viewer
1309
1312
  sendSSE('browser_frame', { base64: ssBase64, format: 'jpeg', url: 'Search results' });
1310
1313
  if (!res._screenshotFiles) res._screenshotFiles = [];
1311
1314
  res._screenshotFiles.push(ssFilename);
1312
1315
  }
1313
1316
  }
1314
- } catch { /* screenshot send failed */ }
1317
+ } catch (ssErr) { console.log(` [screenshot] ERROR: ${ssErr.message}`); }
1315
1318
  }
1316
1319
  } catch (e) {
1317
1320
  toolResults.push({ action, result: `Error: ${e.message}` });
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.5';
8
+ export const VERSION = '9.4.7';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -581,17 +581,19 @@ function sendChat(){
581
581
  chatHistory[streamIdx]._screenshots.push(ssUrl);
582
582
  chatHistory[streamIdx].content+='\\n![Screenshot]('+ssUrl+')\\n';
583
583
  renderMessages();
584
- // Update browser viewer with the screenshot
584
+ // Show and update browser viewer with the screenshot
585
+ showBrowserViewer('Screenshot','Captured');
585
586
  updateBrowserFrame(data.base64,data.format||'jpeg');
586
587
  updateBrowserStatus('Screenshot captured');
587
588
  }
588
589
  if(currentEvent==='browser_frame'&&data.base64){
589
- // Live frame update (thumbnail from browser during operations)
590
+ // Live frame update also ensure viewer is open
591
+ showBrowserViewer(data.url||'Browser','Live');
590
592
  updateBrowserFrame(data.base64,data.format||'jpeg');
591
593
  if(data.url)updateBrowserStatus(data.url);
592
594
  }
593
595
  if(currentEvent==='tool_synthesis'){chatHistory[streamIdx].content='';renderMessages();}
594
- 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();closeBrowserViewer();}
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);}
595
597
  if(currentEvent==='error'){endStreaming();chatHistory[streamIdx].content='Error: '+(data.message||'Unknown');renderMessages();}
596
598
  }catch(e){}
597
599
  }