nothumanallowed 14.4.7 → 14.4.9
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 +14 -16
- package/src/server/ws.mjs +2 -2
- package/src/ui-dist/assets/{index-CIvLxNzz.js → index-2zj3Jp6b.js} +49 -4
- package/src/ui-dist/assets/{index-CA7A7B-l.css → index-BNL0NyDn.css} +1 -1
- package/src/ui-dist/index.html +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "14.4.
|
|
3
|
+
"version": "14.4.9",
|
|
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 = '14.4.
|
|
8
|
+
export const VERSION = '14.4.9';
|
|
9
9
|
export const BASE_URL = 'https://nothumanallowed.com/cli';
|
|
10
10
|
export const API_BASE = 'https://nothumanallowed.com/api/v1';
|
|
11
11
|
|
|
@@ -1542,15 +1542,13 @@ Continue from here:`;
|
|
|
1542
1542
|
};
|
|
1543
1543
|
fs.writeFileSync(ProjectStore.metaPath(projectName), JSON.stringify(meta, null, 2), 'utf-8');
|
|
1544
1544
|
|
|
1545
|
-
//
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
if (skillsContent.length < 100) {
|
|
1553
|
-
const detailedSkills = `# ${projectName} — Skills & Knowledge Structure
|
|
1545
|
+
// Write changes log
|
|
1546
|
+
{
|
|
1547
|
+
const logCtxDir = SkillStore.dir(projectName);
|
|
1548
|
+
const skillsFile = path.join(logCtxDir, 'skills.md');
|
|
1549
|
+
const skillsContent = fs.existsSync(skillsFile) ? fs.readFileSync(skillsFile, 'utf-8') : '';
|
|
1550
|
+
if (skillsContent.length < 100) {
|
|
1551
|
+
const detailedSkills = `# ${projectName} — Skills & Knowledge Structure
|
|
1554
1552
|
|
|
1555
1553
|
## Context Discovery Strategy
|
|
1556
1554
|
|
|
@@ -1588,15 +1586,15 @@ Agents score context relevance based on:
|
|
|
1588
1586
|
|
|
1589
1587
|
This approach ensures agents have the right context without being overwhelmed by irrelevant information.
|
|
1590
1588
|
`;
|
|
1591
|
-
|
|
1589
|
+
fs.writeFileSync(skillsFile, detailedSkills, 'utf-8');
|
|
1590
|
+
}
|
|
1591
|
+
const logProvider = config.llm?.provider || 'nha';
|
|
1592
|
+
const logModel = config.llm?.model || '';
|
|
1593
|
+
const logFile = path.join(logCtxDir, 'changes.log.md');
|
|
1594
|
+
const logEntry = `## ${new Date().toISOString().slice(0, 10)} — Initial generation\n- Generated ${generatedFiles.length} files\n- Tokens in: ${totalTokensIn} / out: ${totalTokensOut}\n- Description: ${description}\n- Provider: ${logProvider} (${logModel || 'default'})\n`;
|
|
1595
|
+
fs.writeFileSync(logFile, (fs.existsSync(logFile) ? fs.readFileSync(logFile, 'utf-8') : '') + logEntry, 'utf-8');
|
|
1592
1596
|
}
|
|
1593
1597
|
|
|
1594
|
-
const provider = config.llm?.provider || 'nha';
|
|
1595
|
-
const model = config.llm?.model || '';
|
|
1596
|
-
const logFile = path.join(ctxDir, 'changes.log.md');
|
|
1597
|
-
const logEntry = `## ${new Date().toISOString().slice(0, 10)} — Initial generation\n- Generated ${generatedFiles.length} files\n- Tokens in: ${totalTokensIn} / out: ${totalTokensOut}\n- Description: ${description}\n- Provider: ${provider} (${model || 'default'})\n`;
|
|
1598
|
-
fs.writeFileSync(logFile, (fs.existsSync(logFile) ? fs.readFileSync(logFile, 'utf-8') : '') + logEntry, 'utf-8');
|
|
1599
|
-
|
|
1600
1598
|
emit({ type: 'done', tokIn: totalTokensIn, tokOut: totalTokensOut });
|
|
1601
1599
|
}
|
|
1602
1600
|
|
package/src/server/ws.mjs
CHANGED
|
@@ -22,7 +22,7 @@ let wssTerminal = null;
|
|
|
22
22
|
|
|
23
23
|
export function setupWebSocket(server) {
|
|
24
24
|
// ── Main WS — daemon events + version ──
|
|
25
|
-
wss = new WebSocketServer({ server, path: '/
|
|
25
|
+
wss = new WebSocketServer({ server, path: '/ws' });
|
|
26
26
|
|
|
27
27
|
wss.on('connection', async (ws) => {
|
|
28
28
|
const { VERSION } = await import('../constants.mjs');
|
|
@@ -40,7 +40,7 @@ export function setupWebSocket(server) {
|
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
// ── Terminal WS — interactive shell ──
|
|
43
|
-
wssTerminal = new WebSocketServer({ server, path: '/
|
|
43
|
+
wssTerminal = new WebSocketServer({ server, path: '/ws/terminal' });
|
|
44
44
|
|
|
45
45
|
wssTerminal.on('connection', (ws, req) => {
|
|
46
46
|
// Parse project from query: /api/terminal?cwd=ProjectName
|