nothumanallowed 13.5.160 → 13.5.161

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.160",
3
+ "version": "13.5.161",
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.160';
8
+ export const VERSION = '13.5.161';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -7589,6 +7589,7 @@ function renderWebCraft(el) {
7589
7589
  +'<span style="font-size:10px;color:#fde68a;font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1" id="wcRepairFile">'+wcEsc(wcState.repairCurrent || '')+'</span>'
7590
7590
  +'<span style="font-size:10px;color:var(--dim);flex-shrink:0" id="wcRepairCounter">'+wcState.repairDone+' / '+wcState.repairTotal+'</span>'
7591
7591
  +'<span style="display:flex;gap:3px">'+[0,1,2].map(function(_,idx){ return '<span style="width:4px;height:4px;border-radius:50%;background:#facc15;animation:wcDot 1.1s ease-in-out infinite '+(idx*0.18)+'s"></span>'; }).join('')+'</span>'
7592
+ +'<button onclick="wcStopRepair()" style="padding:2px 8px;background:rgba(239,68,68,0.15);border:1px solid rgba(239,68,68,0.4);border-radius:4px;color:#f87171;font-size:10px;font-weight:700;cursor:pointer;flex-shrink:0">&#9632; Stop</button>'
7592
7593
  +'</div>'
7593
7594
  +'<div style="height:2px;background:rgba(255,255,255,0.07);border-radius:1px;overflow:hidden">'
7594
7595
  +'<div id="wcRepairProg" style="height:100%;width:'+(wcState.repairTotal>0?Math.round((wcState.repairDone/wcState.repairTotal)*100):0)+'%;background:#facc15;border-radius:1px;transition:width .3s ease"></div>'
@@ -9032,12 +9033,17 @@ async function wcGenerate() {
9032
9033
  // ── Auto-repair pass — fixes _error and _syntaxError files ────────────────
9033
9034
  // Called automatically after generation and available as manual button
9034
9035
  var _wcRepairRunning = false;
9036
+ var _wcRepairAbortCtrl = null;
9037
+ function wcStopRepair() {
9038
+ if (_wcRepairAbortCtrl) { _wcRepairAbortCtrl.abort(); _wcRepairAbortCtrl = null; }
9039
+ }
9035
9040
  async function wcAutoRepair(filePlan, sysPreamble) {
9036
9041
  if (_wcRepairRunning) return;
9037
9042
  // Collect broken files: LLM errors + syntax errors
9038
9043
  var toFix = wcState.generatedFiles.filter(function(f){ return f._error || f._syntaxError; });
9039
9044
  if (toFix.length === 0) return;
9040
9045
 
9046
+ _wcRepairAbortCtrl = new AbortController();
9041
9047
  _wcRepairRunning = true;
9042
9048
  wcState.repairing = true;
9043
9049
  wcState.repairTotal = toFix.length;
@@ -9053,6 +9059,7 @@ async function wcAutoRepair(filePlan, sysPreamble) {
9053
9059
  var sysBase = 'You are an expert full-stack engineer. Output ONLY the complete corrected file content. No explanations, no markdown fences, no preamble. Raw file content only.';
9054
9060
 
9055
9061
  for (var ri = 0; ri < toFix.length; ri++) {
9062
+ if (_wcRepairAbortCtrl && _wcRepairAbortCtrl.signal.aborted) break;
9056
9063
  var broken = toFix[ri];
9057
9064
  var plan = planMap[broken.name];
9058
9065
  wcState.repairDone = ri;
@@ -9100,7 +9107,7 @@ async function wcAutoRepair(filePlan, sysPreamble) {
9100
9107
  // Stream repair tokens directly into the <pre>
9101
9108
  var repairAccum = '';
9102
9109
  var repairLang2 = broken.lang || (plan && plan.lang) || 'text';
9103
- var fixed = await wcCallLLM(fixSys, fixUser, null, repairLang2, 8192, function(tok) {
9110
+ var fixed = await wcCallLLM(fixSys, fixUser, _wcRepairAbortCtrl ? _wcRepairAbortCtrl.signal : null, repairLang2, 8192, function(tok) {
9104
9111
  repairAccum += tok;
9105
9112
  var pre2 = document.getElementById('wcLiveCode');
9106
9113
  if (pre2) { pre2.textContent = repairAccum; pre2.style.opacity = '1'; var cw = document.getElementById('wcCodeWrap'); if(cw) cw.scrollTop = cw.scrollHeight; }
@@ -9125,6 +9132,7 @@ async function wcAutoRepair(filePlan, sysPreamble) {
9125
9132
  }
9126
9133
 
9127
9134
  _wcRepairRunning = false;
9135
+ _wcRepairAbortCtrl = null;
9128
9136
  wcState.repairing = false;
9129
9137
  wcState.repairTotal = 0;
9130
9138
  wcState.repairDone = 0;