nothumanallowed 13.5.58 → 13.5.59
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/README.md +78 -1
- package/package.json +1 -1
- package/src/constants.mjs +1 -1
- package/src/services/web-ui.mjs +17 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# NotHumanAllowed
|
|
2
2
|
|
|
3
|
-
**38 specialized AI agents,
|
|
3
|
+
**38 specialized AI agents, 80 tools, Studio visual workflows, WebCraft full-stack builder — all local, all free.** Security auditors, code architects, data analysts, DevOps engineers, technical writers — each with deep domain expertise. Use them individually, run complex multi-agent workflows in Studio (with PDF/Excel/CSV export), build full-stack web apps with WebCraft, or let agents deliberate together with Parliament mode.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -40,6 +40,83 @@ EmailAgent → WebSearchAgent → WriterAgent
|
|
|
40
40
|
- **Parliament mode** — enable for 2+ specialist agents to cross-read and deliberate: R1 (independent), R2 (agents read each other), R3 (HERALD mediation), convergence score
|
|
41
41
|
- Open `nha ui` → click **Studio** in the sidebar
|
|
42
42
|
|
|
43
|
+
### Studio Export
|
|
44
|
+
|
|
45
|
+
When a workflow completes, Studio provides three export formats:
|
|
46
|
+
|
|
47
|
+
- **PDF** — full structured report with all agent outputs, typography, token counters
|
|
48
|
+
- **Excel (XLSX)** — professional multi-sheet workbook via SheetJS: one sheet per agent, auto-detected numeric columns with formatting, alternating row colors, freeze panes, auto-column widths, index sheet with token summary. Data tables are extracted from Markdown output automatically.
|
|
49
|
+
- **CSV** — all Markdown tables from the report merged into a single file
|
|
50
|
+
|
|
51
|
+
Export buttons appear in the result panel and in the toolbar after each run.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## WebCraft — Full-Stack Web Apps from a Chat
|
|
56
|
+
|
|
57
|
+
WebCraft is a full-stack web app builder embedded in `nha ui`. Describe what you want in plain language — WebCraft generates a complete project with Express.js backend, PostgreSQL schema, JWT auth, email verification, security middleware, and a styled frontend. Everything runs locally with a live sandbox.
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Open nha ui → click WebCraft in the sidebar
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### How it works
|
|
64
|
+
|
|
65
|
+
1. **Describe your project** in the chat (or pick an example: MySaaS, MyShop, MyBlog, MyPortfolio...)
|
|
66
|
+
2. **WebCraft generates** all files: `server/`, `public/`, `db/migrations/`, `.env.example`, `package.json`, nginx config
|
|
67
|
+
3. **Click ▶ Sandbox** — runs `npm install && node server/index.js` in an isolated process, live on a local port
|
|
68
|
+
4. **Chat with the agent** to modify, fix, or extend anything — the agent edits files directly on disk, you see diffs in real time
|
|
69
|
+
|
|
70
|
+
### WebCraft Agent
|
|
71
|
+
|
|
72
|
+
An AI assistant permanently available in the chat panel. Powered by Liara (Qwen3 32B, free) or your own API key.
|
|
73
|
+
|
|
74
|
+
**What it can do:**
|
|
75
|
+
- Edit files surgically (old → new string replace) or rewrite them completely
|
|
76
|
+
- Read any project file for context
|
|
77
|
+
- Auto-fix `MODULE_NOT_FOUND` and common require() path errors
|
|
78
|
+
- Restart the sandbox after fixes
|
|
79
|
+
- Process attached screenshots or PDFs (vision) to debug visual issues
|
|
80
|
+
|
|
81
|
+
**Context files** (created automatically for every project, editable via sidebar):
|
|
82
|
+
| File | Type | Purpose |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| `skills/memory.md` | memory | Architecture decisions, stack choices, developer preferences |
|
|
85
|
+
| `skills/liara.md` | provider | Calibrate AI tone, code style, constraints |
|
|
86
|
+
| `skills/skills.md` | skill | Reusable patterns, snippets, API integrations |
|
|
87
|
+
|
|
88
|
+
Add more skill files (unlimited) for specific integrations (Stripe, email templates, etc.).
|
|
89
|
+
|
|
90
|
+
### Developer Tools (sidebar toolbar)
|
|
91
|
+
|
|
92
|
+
| Tool | Description |
|
|
93
|
+
|---|---|
|
|
94
|
+
| **Diff viewer** | After every agent edit, see before/after for each changed file — color-coded, collapsible |
|
|
95
|
+
| **Syntax check** ✅ | Runs `node --check` on all JS files, reports errors instantly |
|
|
96
|
+
| **Search** 🔍 | Grep across all project files — click a result to jump to that file |
|
|
97
|
+
| **Snapshot** 💾 | Save a full point-in-time backup of all files. Restore any snapshot with one click |
|
|
98
|
+
| **Plan mode** | Type `/plan your request` — agent proposes a plan first, you approve before any file is touched |
|
|
99
|
+
| **Auto-fix** | Sandbox errors (MODULE_NOT_FOUND etc.) trigger automatic Liara fix attempts (3 free, unlimited with own key) |
|
|
100
|
+
|
|
101
|
+
### Example session
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
You: "Add a contact form with SMTP email and honeypot spam protection"
|
|
105
|
+
Agent: → edits server/routes/api.js (add /contact POST route)
|
|
106
|
+
→ edits server/services/email.js (add sendContactEmail)
|
|
107
|
+
→ edits public/index.html (add form HTML)
|
|
108
|
+
→ edits public/js/main.js (add form JS with honeypot)
|
|
109
|
+
[Diff viewer shows 4 files changed]
|
|
110
|
+
[Syntax check: ✅ all files valid]
|
|
111
|
+
[Sandbox restarted automatically]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
You: "/plan refactor auth to use refresh token rotation"
|
|
116
|
+
Agent: → proposes plan (3 files, 6 changes) — no edits yet
|
|
117
|
+
→ you click Approve → agent executes
|
|
118
|
+
```
|
|
119
|
+
|
|
43
120
|
## Daily Operations (PAO)
|
|
44
121
|
|
|
45
122
|
Connect Gmail + Calendar. 5 specialist agents analyze your day.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "13.5.
|
|
3
|
+
"version": "13.5.59",
|
|
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.59';
|
|
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
|
@@ -7024,9 +7024,9 @@ function wcChatPanelHtml() {
|
|
|
7024
7024
|
'</div>'
|
|
7025
7025
|
: '<div style="padding:4px 12px 0;font-size:10px;color:var(--dim)">📄 <strong style="color:var(--green)">'+wcEsc(wcState.projectName)+'</strong> — scrivi per modificare o migliorare il progetto</div>';
|
|
7026
7026
|
|
|
7027
|
-
return '<div style="border-top:1px solid var(--border);background:var(--bg2);flex-shrink:0;display:flex;flex-direction:column">' +
|
|
7027
|
+
return '<div style="border-top:1px solid var(--border);background:var(--bg2);flex-shrink:0;display:flex;flex-direction:column;min-height:220px">' +
|
|
7028
7028
|
// Messages
|
|
7029
|
-
'<div id="wcChatMessages" style="max-height:
|
|
7029
|
+
'<div id="wcChatMessages" style="max-height:240px;overflow-y:auto;padding:6px 0">' +
|
|
7030
7030
|
messagesHtml +
|
|
7031
7031
|
'</div>' +
|
|
7032
7032
|
// Attachments
|
|
@@ -7039,7 +7039,7 @@ function wcChatPanelHtml() {
|
|
|
7039
7039
|
'📎' +
|
|
7040
7040
|
'<input type="file" id="wcFileInput" multiple accept="image/*,.pdf" style="display:none" onchange="wcHandleFileAttach(this)">' +
|
|
7041
7041
|
'</label>' +
|
|
7042
|
-
'<textarea id="wcChatInput" rows="
|
|
7042
|
+
'<textarea id="wcChatInput" rows="4" placeholder="'+placeholder+'" '+(inputDisabled?'disabled':'')+' style="flex:1;padding:8px 10px;font-size:12px;border-radius:8px;border:1px solid var(--border2);background:var(--bg3);color:var(--text);resize:vertical;min-height:80px;line-height:1.5;font-family:inherit" onkeydown="wcChatKeydown(event)"></textarea>' +
|
|
7043
7043
|
'<button onclick="wcChatSend()" '+(inputDisabled?'disabled':'')+' style="padding:8px 14px;background:var(--green3);border:none;border-radius:8px;color:var(--bg);font-size:13px;font-weight:700;cursor:pointer;flex-shrink:0;height:38px">'+sendBtnLabel+'</button>' +
|
|
7044
7044
|
'</div>' +
|
|
7045
7045
|
'</div>';
|
|
@@ -7909,6 +7909,20 @@ async function wcStartSandbox() {
|
|
|
7909
7909
|
wcState.sandbox.running = false;
|
|
7910
7910
|
wcState.sandbox.error = evt.msg;
|
|
7911
7911
|
renderWebCraft(document.getElementById('content'));
|
|
7912
|
+
// Auto-fix: try to detect MODULE_NOT_FOUND in crash message and fix it
|
|
7913
|
+
var errMsg = evt.msg || '';
|
|
7914
|
+
var modMatch = errMsg.match(new RegExp("Cannot find module '([^']+)'")) ||
|
|
7915
|
+
errMsg.match(new RegExp('Cannot find module "([^"]+)"'));
|
|
7916
|
+
if (modMatch && _wcAutoFixAttempts < 3) {
|
|
7917
|
+
_wcAutoFixAttempts++;
|
|
7918
|
+
wcTriggerAutoFix(modMatch[1]);
|
|
7919
|
+
} else if (errMsg && !modMatch && _wcAutoFixAttempts < 3) {
|
|
7920
|
+
// Generic crash: post error to chat so agent can see it
|
|
7921
|
+
_wcAutoFixAttempts++;
|
|
7922
|
+
wcChat.push({ role: 'system', text: '❌ Errore sandbox: ' + errMsg });
|
|
7923
|
+
renderWebCraft(document.getElementById('content'));
|
|
7924
|
+
wcScrollChatToBottom();
|
|
7925
|
+
}
|
|
7912
7926
|
}
|
|
7913
7927
|
} catch(_) {}
|
|
7914
7928
|
}
|