nothumanallowed 13.5.36 → 13.5.37
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 +12 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "13.5.
|
|
3
|
+
"version": "13.5.37",
|
|
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.
|
|
8
|
+
export const VERSION = '13.5.37';
|
|
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
|
@@ -3345,7 +3345,7 @@ var studioAbortController = null;
|
|
|
3345
3345
|
var parlActiveAgent = null; // active agent label during parliament streaming
|
|
3346
3346
|
var parlDoneAgents = {}; // set of completed agent labels during parliament
|
|
3347
3347
|
var _parlPersistHtml = null; // persists parliament block HTML across tab navigations
|
|
3348
|
-
var _PARL_STAMP = '<!--nha-parl-v13.5.
|
|
3348
|
+
var _PARL_STAMP = '<!--nha-parl-v13.5.37-->';
|
|
3349
3349
|
|
|
3350
3350
|
function stopStudio() {
|
|
3351
3351
|
if (!studioState.running) return;
|
|
@@ -6295,7 +6295,7 @@ async function wcGenerate() {
|
|
|
6295
6295
|
'CSS MUST follow BEM naming: block__element--modifier. No inline styles except dynamic values.',
|
|
6296
6296
|
'PostgreSQL: use pg.Pool (max:10, idleTimeoutMillis:30000). Export singleton. Always use parameterized queries.',
|
|
6297
6297
|
'JWT: access token 15min, refresh token 7 days with rotation. Store refresh in httpOnly cookie.',
|
|
6298
|
-
].join(
|
|
6298
|
+
].join(String.fromCharCode(10));
|
|
6299
6299
|
|
|
6300
6300
|
var authFieldsDef = wcState.authFields.map(function(f){ return f.label+' ('+f.type+(f.required?', required':'')+')'; }).join(', ');
|
|
6301
6301
|
var blocksEnabled = Object.keys(wcState.blocks).filter(function(b){ return wcState.blocks[b]; }).join(', ');
|
|
@@ -6336,16 +6336,22 @@ async function wcGenerate() {
|
|
|
6336
6336
|
filePlan = filePlan.map(function(f){ return f.name === 'server/services/email.js' ? Object.assign({},f,{prompt:f.prompt+' (Skip email verification — not enabled)'}) : f; });
|
|
6337
6337
|
}
|
|
6338
6338
|
|
|
6339
|
-
var
|
|
6339
|
+
var _nl = String.fromCharCode(10);
|
|
6340
|
+
var sysPreamble = 'You are an expert full-stack engineer generating production-quality code.' + _nl + _nl + 'SECURITY RULES (non-negotiable):' + _nl + SECURITY_RULES + _nl + _nl + 'Project: ' + projName + _nl + 'Description: ' + desc + _nl + 'Enabled blocks: ' + blocksEnabled + _nl + _nl + 'Generate ONLY the file content requested. No explanations, no markdown code fences, no comments like "here is the file". Output raw file content only.';
|
|
6340
6341
|
|
|
6341
6342
|
for (var fi = 0; fi < filePlan.length; fi++) {
|
|
6342
6343
|
var fp = filePlan[fi];
|
|
6343
6344
|
var runBtn = document.getElementById('wcRunBtn');
|
|
6344
6345
|
if (runBtn) runBtn.textContent = '⏳ Generating ' + fp.name + ' (' + (fi+1) + '/' + filePlan.length + ')...';
|
|
6345
6346
|
try {
|
|
6346
|
-
var
|
|
6347
|
+
var _nl2 = String.fromCharCode(10);
|
|
6348
|
+
var content = await wcCallLLM(sysPreamble, fp.prompt + _nl2 + _nl2 + 'File to generate: ' + fp.name);
|
|
6347
6349
|
// Strip markdown code fences if model added them anyway
|
|
6348
|
-
|
|
6350
|
+
var _fence = String.fromCharCode(96,96,96);
|
|
6351
|
+
var wcLines = content.split(_nl2);
|
|
6352
|
+
if (wcLines.length > 0 && wcLines[0].indexOf(_fence) === 0) wcLines.shift();
|
|
6353
|
+
if (wcLines.length > 0 && wcLines[wcLines.length-1].trim() === _fence) wcLines.pop();
|
|
6354
|
+
content = wcLines.join(_nl2).trim();
|
|
6349
6355
|
wcState.generatedFiles.push({ name: fp.name, content: content, lang: fp.lang });
|
|
6350
6356
|
if (fi === 0) wcState.activeFile = 0;
|
|
6351
6357
|
renderWebCraft(document.getElementById('content'));
|
|
@@ -6380,7 +6386,7 @@ function wcDownloadZip() {
|
|
|
6380
6386
|
lines.push('=== END: ' + f.name + ' ===');
|
|
6381
6387
|
lines.push('');
|
|
6382
6388
|
});
|
|
6383
|
-
var blob = new Blob([lines.join(
|
|
6389
|
+
var blob = new Blob([lines.join(String.fromCharCode(10))], {type:'text/plain'});
|
|
6384
6390
|
var a = document.createElement('a');
|
|
6385
6391
|
a.href = URL.createObjectURL(blob);
|
|
6386
6392
|
a.download = (wcState.projectName || 'project') + '-webcraft.txt';
|