nothumanallowed 13.2.86 → 13.2.88
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 +1 -1
- package/src/constants.mjs +1 -1
- package/src/services/web-ui.mjs +30 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "13.2.
|
|
3
|
+
"version": "13.2.88",
|
|
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": {
|
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.
|
|
8
|
+
export const VERSION = '13.2.88';
|
|
9
9
|
export const BASE_URL = 'https://nothumanallowed.com/cli';
|
|
10
10
|
export const API_BASE = 'https://nothumanallowed.com/api/v1';
|
|
11
11
|
|
package/src/services/web-ui.mjs
CHANGED
|
@@ -697,6 +697,18 @@ function reopenCanvas(){
|
|
|
697
697
|
renderCanvasPanel();
|
|
698
698
|
}
|
|
699
699
|
function closeCanvas(){var p=document.getElementById('canvasPanel');if(p)p.classList.remove('open');}
|
|
700
|
+
function canvasDownloadHTML(){
|
|
701
|
+
var d=getConvCanvasData();var item=d.canvases[canvasIdx];
|
|
702
|
+
var html=(item&&item.html)||studioState.canvas;
|
|
703
|
+
if(!html){alert('No dashboard to download');return;}
|
|
704
|
+
var t=document.getElementById('canvasTitle');
|
|
705
|
+
var name=((t&&t.textContent)||'NHA-Dashboard').slice(0,60).replace(/[^a-z0-9\s]/gi,'').trim().replace(/\s+/g,'-')||'NHA-Dashboard';
|
|
706
|
+
var blob=new Blob([html],{type:'text/html'});
|
|
707
|
+
var url=URL.createObjectURL(blob);
|
|
708
|
+
var a=document.createElement('a');a.href=url;a.download=name+'.html';
|
|
709
|
+
document.body.appendChild(a);a.click();document.body.removeChild(a);
|
|
710
|
+
setTimeout(function(){URL.revokeObjectURL(url);},5000);
|
|
711
|
+
}
|
|
700
712
|
function canvasCopyText(){
|
|
701
713
|
var d=getConvCanvasData();var item=d.canvases[canvasIdx];
|
|
702
714
|
if(!item){alert('No canvas content');return;}
|
|
@@ -3407,16 +3419,8 @@ function downloadStudioPDF() {
|
|
|
3407
3419
|
var nodes = studioState.nodes || [];
|
|
3408
3420
|
var fileName = (task).slice(0, 60).replace(/[^a-z0-9\s]/gi,'').trim().replace(/\s+/g,'-') || 'NHA-Studio';
|
|
3409
3421
|
|
|
3410
|
-
//
|
|
3411
|
-
|
|
3412
|
-
var blob = new Blob([studioState.canvas], {type: 'text/html'});
|
|
3413
|
-
var url = URL.createObjectURL(blob);
|
|
3414
|
-
var a = document.createElement('a');
|
|
3415
|
-
a.href = url; a.target = '_blank'; a.download = fileName + '.html';
|
|
3416
|
-
document.body.appendChild(a); a.click(); document.body.removeChild(a);
|
|
3417
|
-
setTimeout(function(){ URL.revokeObjectURL(url); }, 5000);
|
|
3418
|
-
return;
|
|
3419
|
-
}
|
|
3422
|
+
// Always generate the full Studio PDF with all agent outputs.
|
|
3423
|
+
// The canvas panel is already open for the HTML dashboard — PDF = complete structured report.
|
|
3420
3424
|
|
|
3421
3425
|
// ── Markdown → HTML for PDF (full support: tables, lists, headers, inline) ──
|
|
3422
3426
|
function mdToPdfHtml(raw) {
|
|
@@ -3828,6 +3832,10 @@ async function runStudio() {
|
|
|
3828
3832
|
}
|
|
3829
3833
|
if (proposals.length >= 2) {
|
|
3830
3834
|
studioLog(\x27Parlamento\x27, \x27♖\x27, \x27Avvio deliberazione — Round 2 cross-reading tra agenti...\x27, \x27system\x27);
|
|
3835
|
+
// Add Parliament node to pipeline visual
|
|
3836
|
+
var parlNodeIdx = studioState.nodes.length;
|
|
3837
|
+
studioState.nodes.push({icon:\x27♖\x27, agent:\x27Parliament\x27, label:\x27Parlamento\x27, status:\x27running\x27, output:\x27\x27, _rendered:false});
|
|
3838
|
+
renderStudioNodes();
|
|
3831
3839
|
var deliberateBody = JSON.stringify({task: task, proposals: proposals, language: document.getElementById(\x27langSelect\x27) ? document.getElementById(\x27langSelect\x27).value : \x27it\x27});
|
|
3832
3840
|
try {
|
|
3833
3841
|
var delRes = await fetch(\x27/api/studio/deliberate\x27, {method:\x27POST\x27, headers:{\x27Content-Type\x27:\x27application/json\x27}, body: deliberateBody, signal: studioAbortController ? studioAbortController.signal : undefined});
|
|
@@ -3863,6 +3871,12 @@ async function runStudio() {
|
|
|
3863
3871
|
var delTb2 = delL2.querySelector(\x27.studio-log-entry__text\x27);
|
|
3864
3872
|
if (delTb2) delTb2.innerHTML = \x27<span style="color:var(--green);font-family:var(--mono);font-size:10px">♖ Deliberando Round 2<span class="thinking-dots"><span></span><span></span><span></span></span></span>\x27;
|
|
3865
3873
|
}
|
|
3874
|
+
// Update Parliament pipeline node label to show current R2 agent
|
|
3875
|
+
if (studioState.nodes[parlNodeIdx]) {
|
|
3876
|
+
studioState.nodes[parlNodeIdx].label = \x27♖ \x27 + r2Label;
|
|
3877
|
+
studioState.nodes[parlNodeIdx].status = \x27running\x27;
|
|
3878
|
+
renderStudioNodes();
|
|
3879
|
+
}
|
|
3866
3880
|
} else if (r2LiveM) {
|
|
3867
3881
|
// Live token count update for the current R2 agent
|
|
3868
3882
|
var r2AgentName = r2LiveM[1];
|
|
@@ -3908,6 +3922,11 @@ async function runStudio() {
|
|
|
3908
3922
|
var r2Conv = Math.round((dev.r2_convergence || 0) * 100);
|
|
3909
3923
|
studioLog(\x27Parlamento\x27, \x27♖\x27, \x27Deliberazione completa — convergenza R2: \x27 + r2Conv + \x27%\x27, \x27system\x27);
|
|
3910
3924
|
if (dev.mediation) { context = dev.mediation; }
|
|
3925
|
+
if (studioState.nodes[parlNodeIdx]) {
|
|
3926
|
+
studioState.nodes[parlNodeIdx].status = \x27done\x27;
|
|
3927
|
+
studioState.nodes[parlNodeIdx].label = \x27Parlamento (\x27 + r2Conv + \x27%)\x27;
|
|
3928
|
+
renderStudioNodes();
|
|
3929
|
+
}
|
|
3911
3930
|
delDone = true;
|
|
3912
3931
|
} else if (dev.done) {
|
|
3913
3932
|
delDone = true;
|
|
@@ -4967,7 +4986,7 @@ input:focus,textarea:focus{border-color:var(--green3)}
|
|
|
4967
4986
|
</div>
|
|
4968
4987
|
</div>
|
|
4969
4988
|
|
|
4970
|
-
<div id="canvasPanel"><div class="cvs-header"><div style="display:flex;align-items:center;gap:8px"><button id="canvasTabC" onclick="canvasShowCanvas()" style="background:none;border:none;border-bottom:2px solid var(--green);color:var(--green);cursor:pointer;font-family:var(--mono);font-size:11px;padding:2px 6px">Canvas</button><button id="canvasTabB" onclick="canvasShowBrowser()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-family:var(--mono);font-size:11px;padding:2px 6px">Browser</button><span id="canvasTitle" style="font-family:var(--mono);color:var(--green);font-size:11px;margin-left:8px">Canvas</span></div><div style="display:flex;align-items:center;gap:4px"><span id="canvasNav" style="display:none;gap:4px"><button onclick="canvasPrev()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:14px" title="Previous">◀</button><button onclick="canvasNext()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:14px" title="Next">▶</button></span><button onclick="
|
|
4989
|
+
<div id="canvasPanel"><div class="cvs-header"><div style="display:flex;align-items:center;gap:8px"><button id="canvasTabC" onclick="canvasShowCanvas()" style="background:none;border:none;border-bottom:2px solid var(--green);color:var(--green);cursor:pointer;font-family:var(--mono);font-size:11px;padding:2px 6px">Canvas</button><button id="canvasTabB" onclick="canvasShowBrowser()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-family:var(--mono);font-size:11px;padding:2px 6px">Browser</button><span id="canvasTitle" style="font-family:var(--mono);color:var(--green);font-size:11px;margin-left:8px">Canvas</span></div><div style="display:flex;align-items:center;gap:4px"><span id="canvasNav" style="display:none;gap:4px"><button onclick="canvasPrev()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:14px" title="Previous">◀</button><button onclick="canvasNext()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:14px" title="Next">▶</button></span><button onclick="canvasDownloadHTML()" style="background:none;border:none;color:var(--green3);cursor:pointer;font-size:11px;font-family:var(--mono)" title="Scarica Dashboard HTML">⤓ HTML</button><button onclick="canvasCopyText()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:11px;font-family:var(--mono)" title="Copy text content">Copy</button><button onclick="canvasCopyImage()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:11px;font-family:var(--mono)" title="Copy as image">IMG</button><button onclick="toggleCanvasSize()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:14px" title="Resize">⤢</button><button onclick="closeCanvas()" style="background:none;border:none;color:var(--dim);cursor:pointer;font-size:14px" title="Close">×</button></div></div><iframe id="canvasFrame" sandbox="allow-scripts" srcdoc=""></iframe></div>
|
|
4971
4990
|
<div id="agentEditorOverlay" style="display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:400;align-items:center;justify-content:center;padding:16px"></div>
|
|
4972
4991
|
<div class="lightbox-overlay" id="lightboxOverlay" onclick="closeLightbox()">
|
|
4973
4992
|
<span class="lightbox-close" onclick="closeLightbox()">×</span>
|