nothumanallowed 13.5.45 → 13.5.46

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.45",
3
+ "version": "13.5.46",
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.5.45';
8
+ export const VERSION = '13.5.46';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -6268,9 +6268,9 @@ function renderWebCraft(el) {
6268
6268
  '</div>';
6269
6269
 
6270
6270
  var authFieldsHtml = wcState.authFields.map(function(f,i){
6271
- return '<div style="display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--bg3);border-radius:6px;margin-bottom:4px">' +
6272
- '<input value="'+wcEsc(f.label)+'" onchange="wcUpdateField('+i+',this.value)" style="flex:1;background:transparent;border:none;color:var(--text);font-size:11px;font-family:var(--mono)" />' +
6273
- '<select onchange="wcUpdateFieldType('+i+',this.value)" style="background:var(--bg2);border:1px solid var(--border);border-radius:4px;color:var(--dim);font-size:10px;padding:2px 4px;max-width:72px;flex-shrink:0">' +
6271
+ return '<div style="display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--bg3);border-radius:6px;margin-bottom:4px;overflow:hidden">' +
6272
+ '<input value="'+wcEsc(f.label)+'" onchange="wcUpdateField('+i+',this.value)" style="flex:1;min-width:0;background:transparent;border:none;color:var(--text);font-size:11px;font-family:var(--mono);width:0" />' +
6273
+ '<select onchange="wcUpdateFieldType('+i+',this.value)" style="background:var(--bg2);border:1px solid var(--border);border-radius:4px;color:var(--dim);font-size:10px;padding:2px 2px;width:68px;flex-shrink:0">' +
6274
6274
  ['text','email','password','tel','date','number'].map(function(t){return '<option value="'+t+'"'+(f.type===t?' selected':'')+'>'+t+'</option>'}).join('') +
6275
6275
  '</select>' +
6276
6276
  '<input type="checkbox"'+(f.required?' checked':'')+' onchange="wcToggleRequired('+i+',this.checked)" title="Required" style="accent-color:var(--green3)">' +
@@ -6336,7 +6336,7 @@ function renderWebCraft(el) {
6336
6336
  '<button id="wcRunBtn" onclick="wcGenerate()" style="width:100%;padding:12px;background:var(--green3);border:none;border-radius:8px;color:var(--bg);font-size:13px;font-weight:700;cursor:pointer;letter-spacing:.2px"'+(wcState.running?' disabled':'')+'>'+
6337
6337
  (wcState.running ? '&#9203; '+t('wc_generating')+'...' : '&#9654; '+t('wc_generate')) +
6338
6338
  '</button>' +
6339
- (wcState.generatedFiles.length > 0 ?
6339
+ (wcState.generatedFiles.length > 0 && !wcState.running ?
6340
6340
  '<button onclick="wcDownloadZip()" style="width:100%;padding:10px;background:var(--bg3);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-size:12px;font-weight:600;cursor:pointer">&#8681; '+t('wc_download')+'</button>' +
6341
6341
  '<button onclick="wcStartSandbox()" id="wcSandboxBtn" style="width:100%;padding:10px;background:var(--bg3);border:1px solid var(--green3);border-radius:8px;color:var(--green);font-size:12px;font-weight:600;cursor:pointer">&#9654; '+t('wc_sandbox_start')+'</button>'
6342
6342
  : '') +
@@ -6673,8 +6673,16 @@ async function wcStopSandbox() {
6673
6673
  renderWebCraft(document.getElementById('content'));
6674
6674
  }
6675
6675
 
6676
+ var _wcLastDownload = 0;
6676
6677
  function wcDownloadZip() {
6677
6678
  if (!wcState.generatedFiles.length) return;
6679
+ var now = Date.now();
6680
+ if (now - _wcLastDownload < 30000) {
6681
+ var wait = Math.ceil((30000 - (now - _wcLastDownload)) / 1000);
6682
+ alert('Attendi ' + wait + 's prima di scaricare di nuovo.');
6683
+ return;
6684
+ }
6685
+ _wcLastDownload = now;
6678
6686
  // Build a real ZIP file (PKZIP format, stored/no compression) — zero dependencies
6679
6687
  var enc = new TextEncoder();
6680
6688
  var parts = [];