nothumanallowed 16.0.37 → 16.0.38
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/server/routes/webcraft.mjs +10 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "16.0.
|
|
3
|
+
"version": "16.0.38",
|
|
4
4
|
"description": "Local AI assistant: 80 tools (Gmail, Calendar, Drive, GitHub, Slack, browser, code, files), 38 agents, visual workflows (Studio, AWF, WebCraft). Install with `npm i -g nothumanallowed`, run with `nha ui`. Free tier built-in (Liara), no API key required. Your data stays on your PC — OAuth tokens local, no cloud. Open-source MIT.",
|
|
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 = '16.0.
|
|
8
|
+
export const VERSION = '16.0.38';
|
|
9
9
|
export const BASE_URL = 'https://nothumanallowed.com/cli';
|
|
10
10
|
export const API_BASE = 'https://nothumanallowed.com/api/v1';
|
|
11
11
|
|
|
@@ -380,7 +380,16 @@ class SandboxManager {
|
|
|
380
380
|
const preview = body.slice(0, 200).replace(/\s+/g, ' ').trim();
|
|
381
381
|
emit({ type: 'log', msg: `[probe] GET / → ${status} (${ct}, ${len} bytes)` });
|
|
382
382
|
if (status >= 400) {
|
|
383
|
-
|
|
383
|
+
// Show the actual error body so the user knows WHAT went wrong,
|
|
384
|
+
// not just the status code. 500s from Express handlers often
|
|
385
|
+
// include the stack trace or error message in the body.
|
|
386
|
+
const bodyPreview = body.slice(0, 800).trim();
|
|
387
|
+
emit({ type: 'error', msg: `Probe: GET / returned ${status}. Response body:\n${bodyPreview}` });
|
|
388
|
+
if (status === 500) {
|
|
389
|
+
emit({ type: 'warn', msg: `500 Internal Server Error usually means the route handler threw. Common causes: missing await on async function, JSON.parse on empty file, undefined variable, DB connection failure. Check stderr logs above for the actual stack trace.` });
|
|
390
|
+
} else if (status === 404) {
|
|
391
|
+
emit({ type: 'warn', msg: `404 means no route matches "/". Add app.get('/', ...) returning HTML, or app.use(express.static('public')) if you have an index.html in public/.` });
|
|
392
|
+
}
|
|
384
393
|
} else if (len === 0) {
|
|
385
394
|
emit({ type: 'warn', msg: `Probe: GET / returned empty body (${status}). The route exists but sends no response — check that you call res.send() / res.json() / res.end().` });
|
|
386
395
|
} else if (isHtml && !/<\w+/.test(body)) {
|