nothumanallowed 13.5.84 → 13.5.86
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/services/web-ui.mjs +58 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "13.5.
|
|
3
|
+
"version": "13.5.86",
|
|
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/services/web-ui.mjs
CHANGED
|
@@ -6570,9 +6570,11 @@ function renderWebCraft(el) {
|
|
|
6570
6570
|
wcState.generatedFiles.map(function(f,i){
|
|
6571
6571
|
var active = i === wcState.activeFile;
|
|
6572
6572
|
var hasErr = !!f._error || !!f._syntaxError;
|
|
6573
|
-
var
|
|
6573
|
+
var isPending = !!f._pending;
|
|
6574
|
+
var tabColor = hasErr ? (active ? '#f87171' : '#7f4040') : isPending ? (active ? '#9ca3af' : '#4b5563') : (active ? 'var(--green)' : 'var(--dim)');
|
|
6574
6575
|
var tabBorder = hasErr ? (active ? '#f87171' : 'transparent') : (active ? 'var(--green3)' : 'transparent');
|
|
6575
|
-
|
|
6576
|
+
var tabPrefix = hasErr ? '⚠ ' : isPending ? '⌛ ' : '';
|
|
6577
|
+
return '<button id="wcTab'+i+'" onclick="wcSetFile('+i+')" style="padding:6px 14px;font-size:11px;font-family:var(--mono);font-weight:'+(active?'700':'400')+';background:'+(active?'var(--bg3)':'transparent')+';border:none;border-bottom:2px solid '+tabBorder+';color:'+tabColor+';cursor:pointer;white-space:nowrap;flex-shrink:0">'+tabPrefix+wcEsc(f.name)+'</button>';
|
|
6576
6578
|
}).join('') +
|
|
6577
6579
|
'</div>'
|
|
6578
6580
|
: '';
|
|
@@ -6677,7 +6679,8 @@ function renderWebCraft(el) {
|
|
|
6677
6679
|
// Minimized: small pill in bottom-right corner
|
|
6678
6680
|
? '<div id="wcGenOverlay" onclick="wcOverlayRestore()" style="position:absolute;bottom:12px;right:12px;z-index:50;background:rgba(0,0,0,0.85);border:1px solid var(--green3);border-radius:20px;padding:5px 12px;display:flex;align-items:center;gap:7px;cursor:pointer;animation:wcBubbleIn .2s ease;backdrop-filter:blur(4px)">'
|
|
6679
6681
|
+'<span style="font-size:16px;animation:wcRobotBob .9s ease-in-out infinite">🤖</span>'
|
|
6680
|
-
+'<span style="font-size:10px;color:var(--green);font-weight:700">Generando
|
|
6682
|
+
+'<span id="wcPillLabel" style="font-size:10px;color:var(--green);font-weight:700;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">'+wcEsc(_wcGenOverlayState.name || 'Generando...')+'</span>'
|
|
6683
|
+
+'<span style="font-size:9px;color:var(--dim)">'+wcGenElapsed()+'</span>'
|
|
6681
6684
|
+'<span style="display:flex;gap:3px">'+[0,1,2].map(function(_,idx){ return '<span style="width:4px;height:4px;border-radius:50%;background:var(--green);animation:wcDot 1.1s ease-in-out infinite '+(idx*0.18)+'s"></span>'; }).join('')+'</span>'
|
|
6682
6685
|
+'</div>'
|
|
6683
6686
|
// Full overlay
|
|
@@ -7891,7 +7894,15 @@ async function wcGenerate() {
|
|
|
7891
7894
|
if (_wcTimerInterval) clearInterval(_wcTimerInterval);
|
|
7892
7895
|
_wcTimerInterval = setInterval(function() {
|
|
7893
7896
|
if (!wcState.running) { clearInterval(_wcTimerInterval); _wcTimerInterval = null; return; }
|
|
7894
|
-
|
|
7897
|
+
if (_wcOverlayMinimized) {
|
|
7898
|
+
// Update pill label + elapsed without full re-render
|
|
7899
|
+
var pill = document.getElementById('wcPillLabel');
|
|
7900
|
+
if (pill) pill.textContent = _wcGenOverlayState.name || 'Generando...';
|
|
7901
|
+
var ov = document.getElementById('wcGenOverlay');
|
|
7902
|
+
if (ov) { var spans = ov.querySelectorAll('span'); if (spans[1]) spans[1].textContent = wcGenElapsed(); }
|
|
7903
|
+
} else {
|
|
7904
|
+
wcUpdateGenOverlay(_wcGenOverlayState.fi, _wcGenOverlayState.total, _wcGenOverlayState.name);
|
|
7905
|
+
}
|
|
7895
7906
|
}, 1000);
|
|
7896
7907
|
}
|
|
7897
7908
|
|
|
@@ -7908,9 +7919,9 @@ async function wcGenerate() {
|
|
|
7908
7919
|
: '';
|
|
7909
7920
|
ov.innerHTML =
|
|
7910
7921
|
'<div style="font-size:38px;animation:wcRobotBob 1s ease-in-out infinite">🤖</div>' +
|
|
7911
|
-
'<div style="font-size:13px;font-weight:700;color:var(--green);margin-top:12px">Generazione in corso
|
|
7922
|
+
'<div style="font-size:13px;font-weight:700;color:var(--green);margin-top:12px">' + (name.indexOf('Retry:') === 0 ? 'Retry in corso...' : name.indexOf('Fix:') === 0 ? 'Correzione in corso...' : 'Generazione in corso...') + '</div>' +
|
|
7912
7923
|
'<div style="font-size:10px;color:var(--dim);margin-top:2px">Clicca per navigare i file</div>' +
|
|
7913
|
-
'<div style="font-size:11px;color:var(--dim);font-family:var(--mono);max-width:300px;text-align:center;word-break:break-all;margin-top:8px">'+wcEsc(name)+'</div>' +
|
|
7924
|
+
'<div style="font-size:11px;color:'+(name.indexOf('Retry:')===0?'#fb923c':name.indexOf('Fix:')===0?'#facc15':'var(--dim)')+';font-family:var(--mono);max-width:300px;text-align:center;word-break:break-all;margin-top:8px">'+wcEsc(name)+'</div>' +
|
|
7914
7925
|
'<div style="width:220px;height:4px;background:rgba(255,255,255,0.1);border-radius:2px;overflow:hidden;margin-top:12px">' +
|
|
7915
7926
|
'<div style="height:100%;width:'+pct+'%;background:var(--green);border-radius:2px;transition:width .4s ease;animation:wcBarPulse 1.5s ease-in-out infinite"></div>' +
|
|
7916
7927
|
'</div>' +
|
|
@@ -7932,21 +7943,47 @@ async function wcGenerate() {
|
|
|
7932
7943
|
|
|
7933
7944
|
wcStartGenTimer();
|
|
7934
7945
|
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
|
|
7946
|
+
// Pre-populate generatedFiles in order so tabs appear immediately
|
|
7947
|
+
filePlan.forEach(function(fp) {
|
|
7948
|
+
wcState.generatedFiles.push({ name: fp.name, content: '', lang: fp.lang, _pending: true });
|
|
7949
|
+
});
|
|
7950
|
+
wcState.activeFile = 0;
|
|
7951
|
+
renderWebCraft(document.getElementById('content'));
|
|
7952
|
+
|
|
7953
|
+
// Generate in parallel batches of 4 — each call is independent/fresh to Liara
|
|
7954
|
+
var BATCH = 4;
|
|
7955
|
+
var doneCount = 0;
|
|
7956
|
+
for (var bi = 0; bi < filePlan.length; bi += BATCH) {
|
|
7938
7957
|
if (_wcGenAbortCtrl && _wcGenAbortCtrl.signal.aborted) break;
|
|
7939
|
-
|
|
7940
|
-
|
|
7941
|
-
|
|
7942
|
-
|
|
7943
|
-
|
|
7944
|
-
|
|
7945
|
-
if (
|
|
7946
|
-
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7958
|
+
var batch = filePlan.slice(bi, bi + BATCH);
|
|
7959
|
+
wcUpdateGenOverlay(doneCount, filePlan.length, batch.map(function(f){ return f.name; }).join(', '));
|
|
7960
|
+
var results = await Promise.allSettled(batch.map(function(fp) {
|
|
7961
|
+
return wcGenOneFile(fp, _wcGenAbortCtrl ? _wcGenAbortCtrl.signal : null).then(function(c){ return { fp: fp, content: c }; });
|
|
7962
|
+
}));
|
|
7963
|
+
results.forEach(function(r) {
|
|
7964
|
+
if (r.status === 'fulfilled') {
|
|
7965
|
+
var fp = r.value.fp;
|
|
7966
|
+
for (var gi = 0; gi < wcState.generatedFiles.length; gi++) {
|
|
7967
|
+
if (wcState.generatedFiles[gi].name === fp.name) {
|
|
7968
|
+
wcState.generatedFiles[gi] = { name: fp.name, content: r.value.content, lang: fp.lang };
|
|
7969
|
+
break;
|
|
7970
|
+
}
|
|
7971
|
+
}
|
|
7972
|
+
} else if (r.reason && r.reason.name !== 'AbortError') {
|
|
7973
|
+
var fpName = batch[results.indexOf(r)] ? batch[results.indexOf(r)].name : '?';
|
|
7974
|
+
// find by matching position
|
|
7975
|
+
var batchIdx = results.indexOf(r);
|
|
7976
|
+
if (batch[batchIdx]) fpName = batch[batchIdx].name;
|
|
7977
|
+
for (var gi2 = 0; gi2 < wcState.generatedFiles.length; gi2++) {
|
|
7978
|
+
if (wcState.generatedFiles[gi2].name === fpName) {
|
|
7979
|
+
wcState.generatedFiles[gi2] = { name: fpName, content: '// Error generating this file: ' + (r.reason.message || 'unknown error'), lang: (batch[batchIdx] || {}).lang || '', _error: true };
|
|
7980
|
+
break;
|
|
7981
|
+
}
|
|
7982
|
+
}
|
|
7983
|
+
}
|
|
7984
|
+
doneCount++;
|
|
7985
|
+
});
|
|
7986
|
+
renderWebCraft(document.getElementById('content'));
|
|
7950
7987
|
}
|
|
7951
7988
|
|
|
7952
7989
|
// ── Retry pass: regenerate files that failed ──────────────────────────────
|
|
@@ -8315,7 +8352,7 @@ async function wcStartSandbox() {
|
|
|
8315
8352
|
headers: {'Content-Type':'application/json'},
|
|
8316
8353
|
body: JSON.stringify({
|
|
8317
8354
|
projectName: wcState.projectName || 'webcraft-sandbox',
|
|
8318
|
-
files: wcState.generatedFiles.filter(function(f){ return !f._error; })
|
|
8355
|
+
files: wcState.generatedFiles.filter(function(f){ return !f._error && !f._pending; })
|
|
8319
8356
|
})
|
|
8320
8357
|
});
|
|
8321
8358
|
if (!r.ok || !r.body) throw new Error('Sandbox error ' + r.status);
|