nothumanallowed 13.2.43 → 13.2.44

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.2.43",
3
+ "version": "13.2.44",
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": {
@@ -2600,7 +2600,11 @@ export async function cmdUI(args) {
2600
2600
  if (!hasSpecialist && (hasBriefing || steps.length > 0)) {
2601
2601
  steps.push({icon:'\u{1F4F0}',agent:'HERALD',label:it?'HERALD \u2014 Briefing esecutivo':'HERALD \u2014 Executive briefing',prompt:'Based on ALL the data collected by the previous steps, write a complete executive briefing with priorities, findings, and strategic recommendations. Do NOT invent data — only use what was provided.'});
2602
2602
  }
2603
- if (hasCanvas) steps.push({icon:'\u{1F4CA}',agent:'CanvasAgent',label:it?'Dashboard HTML':'HTML Dashboard',prompt:'Create a professional HTML dashboard report with the briefing data'});
2603
+ // Add CanvasAgent: always when explicitly requested OR when 2+ specialist agents ran (complex analysis deserves a visual report)
2604
+ const specialistCount = [hasSecurity,hasFinance,hasStrategy,hasReputation,hasCode,hasWriting,hasData].filter(Boolean).length;
2605
+ if (hasCanvas || specialistCount >= 2 || (hasSpecialist && hasBriefing)) {
2606
+ steps.push({icon:'\u{1F4CA}',agent:'CanvasAgent',label:it?'Dashboard HTML':'HTML Dashboard',prompt:'Create a professional HTML dashboard report summarizing all findings from the previous agents'});
2607
+ }
2604
2608
  return steps;
2605
2609
  };
2606
2610
 
@@ -2822,8 +2826,12 @@ RULES:
2822
2826
  // These agents fetched real data — use a focused prompt (no tool definitions to avoid JSON output)
2823
2827
  const agentInstruction = `You are ${agent}, a specialist AI agent inside NHA Studio. Today is ${today}. Respond entirely in ${language}.
2824
2828
 
2829
+ ## OVERALL WORKFLOW GOAL:
2830
+ ${task}
2831
+
2825
2832
  CRITICAL: Do NOT invent, hallucinate, or add any data not present in the DATA sections below. ONLY use the exact data provided.
2826
2833
  Do NOT output JSON, tool calls, or code blocks. Write in plain text with markdown headers.
2834
+ Always apply your analysis specifically to the subject mentioned in the WORKFLOW GOAL.
2827
2835
 
2828
2836
  ${toolData ? `## DATA FROM TOOLS:\n${toolData.slice(0, 6000)}\n` : '## DATA: No data was retrieved by this agent.\n'}
2829
2837
  ${context ? `## OUTPUT FROM PREVIOUS AGENTS:\n${context.slice(0, 4000)}\n` : ''}
@@ -2837,10 +2845,12 @@ Your task: ${stepPrompt}`;
2837
2845
  : stepPrompt;
2838
2846
  } else {
2839
2847
  // All other agents (WriterAgent, DataAnalystAgent, specialist agents, etc.)
2840
- // Use a focused prompt with NO TOOL_DEFINITIONS to prevent JSON/tool-call output
2841
2848
  const hasRealData = !!(toolData || context);
2842
2849
  sysPrompt = `You are ${agent}, a specialist AI agent inside NHA Studio. Today is ${today}. You MUST respond entirely in ${language}.
2843
2850
 
2851
+ ## OVERALL WORKFLOW GOAL:
2852
+ ${task}
2853
+
2844
2854
  CRITICAL RULES:
2845
2855
  - Do NOT output JSON, tool calls, function calls, or code blocks
2846
2856
  - NEVER invent, fabricate, or hallucinate data, events, emails, meetings, or news
@@ -2848,12 +2858,13 @@ CRITICAL RULES:
2848
2858
  - Do NOT add fictional examples, placeholder content, or generic suggestions not grounded in the data
2849
2859
  - Write in plain prose, structured with markdown headers (##) and bullet points (-)
2850
2860
  - Be thorough and specific — this is for an executive briefing based on REAL data only
2861
+ - Always keep the OVERALL WORKFLOW GOAL in mind — apply your analysis specifically to the subject mentioned
2851
2862
 
2852
2863
  ${toolData ? `## LIVE DATA FROM TOOLS:\n${toolData.slice(0, 6000)}\n` : '## LIVE DATA: No tool data was fetched for this step.\n'}
2853
2864
  ${context ? `## OUTPUT FROM PREVIOUS AGENTS:\n${context.slice(0, 6000)}\n` : ''}`;
2854
2865
  userMsg = hasRealData
2855
- ? `Based ONLY on the real data above, complete this task: ${stepPrompt}`
2856
- : `No real data is available. State clearly that no data was retrieved and explain what would be needed: ${stepPrompt}`;
2866
+ ? `Based ONLY on the real data above, complete this task specifically for the subject in the WORKFLOW GOAL: ${stepPrompt}`
2867
+ : `No real data is available for "${task}". State this clearly and explain what data would be needed to complete: ${stepPrompt}`;
2857
2868
  }
2858
2869
 
2859
2870
  // ── Stream LLM response ───────────────────────────────────────
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.43';
8
+ export const VERSION = '13.2.44';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11