nothumanallowed 13.5.161 → 13.5.163

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": "13.5.161",
3
+ "version": "13.5.163",
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": {
@@ -617,13 +617,14 @@ export async function cmdUI(args) {
617
617
 
618
618
  // GET /api/status
619
619
  if (method === 'GET' && pathname === '/api/status') {
620
+ const { loadTokens: loadTokSt } = await import('../services/token-store.mjs');
620
621
  sendJSON(res, 200, {
621
622
  connected: true,
622
623
  version: VERSION,
623
624
  provider: config.llm.provider,
624
625
  hasApiKey: !!config.llm.apiKey || config.llm.provider === 'nha',
625
- hasGoogle: !!config.google?.clientId,
626
- hasMicrosoft: !!config.microsoft?.clientId,
626
+ hasGoogle: loadTokSt('google') !== null,
627
+ hasMicrosoft: loadTokSt('microsoft') !== null,
627
628
  mailProvider: detectMailProvider(config),
628
629
  mailProviders: getProviderStatus(),
629
630
  agentName: config.agent?.name || null,
@@ -655,6 +656,7 @@ export async function cmdUI(args) {
655
656
 
656
657
  // GET /api/config — read config values for settings UI
657
658
  if (method === 'GET' && pathname === '/api/config') {
659
+ const { loadTokens: loadTok } = await import('../services/token-store.mjs');
658
660
  // Return non-sensitive config for the settings form
659
661
  sendJSON(res, 200, {
660
662
  profile: config.profile || {},
@@ -666,6 +668,8 @@ export async function cmdUI(args) {
666
668
  meetingAlert: config.ops?.meetingAlertMinutes || 30,
667
669
  hasTelegram: !!config.responder?.telegram?.token,
668
670
  hasDiscord: !!config.responder?.discord?.token,
671
+ hasGoogle: loadTok('google') !== null,
672
+ hasMicrosoft: loadTok('microsoft') !== null,
669
673
  });
670
674
  logRequest(method, pathname, 200, Date.now() - start);
671
675
  return;
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.5.161';
8
+ export const VERSION = '13.5.163';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -7301,6 +7301,8 @@ function init(){
7301
7301
  renderSidebar();
7302
7302
  var el=document.getElementById('content');
7303
7303
  if(el)el.innerHTML=\x27<div style="display:flex;align-items:center;justify-content:center;height:50vh;flex-direction:column"><div class="spinner"></div><div style="color:var(--dim)">Loading...</div></div>\x27;
7304
+ // Pre-load config so hasGoogle/hasMicrosoft are available immediately in any view
7305
+ apiGet('/api/config').then(function(r){ settingsData = r || {}; settingsLoaded = true; }).catch(function(){});
7304
7306
  loadDash().then(function(){render()}).catch(function(){render()});
7305
7307
  loadAgents().catch(function(){});
7306
7308
  setInterval(function(){loadDash().then(function(){if(currentView===\x27dashboard\x27)render()}).catch(function(){})},120000);