nothumanallowed 8.1.0 → 8.1.1
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/ops-pipeline.mjs +21 -16
- package/src/services/web-ui.mjs +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "8.1.
|
|
3
|
+
"version": "8.1.1",
|
|
4
4
|
"description": "NotHumanAllowed — 38 AI agents + unified productivity suite. Gmail, Calendar, Drive, Contacts, Tasks, GitHub, Notion, Slack, voice chat, smart scheduler. 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 = '8.1.
|
|
8
|
+
export const VERSION = '8.1.1';
|
|
9
9
|
export const BASE_URL = 'https://nothumanallowed.com/cli';
|
|
10
10
|
export const API_BASE = 'https://nothumanallowed.com/api/v1';
|
|
11
11
|
|
|
@@ -140,13 +140,16 @@ export async function runPlanningPipeline(config, opts = {}) {
|
|
|
140
140
|
// ── Phase 6: CONDUCTOR — Synthesize daily plan ─────────────────────────
|
|
141
141
|
info('Phase 6: CONDUCTOR synthesizing daily plan...');
|
|
142
142
|
|
|
143
|
-
const conductorPrompt = `You are the NHA Daily Planner. Synthesize intelligence from
|
|
143
|
+
const conductorPrompt = `You are the NHA Daily Planner. Synthesize intelligence from specialist agents into a structured daily plan.
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
145
|
+
CRITICAL RULES — READ CAREFULLY:
|
|
146
|
+
1. ONLY include events that appear in the CALENDAR section below. NEVER invent, hallucinate, or assume meetings/appointments that are not listed.
|
|
147
|
+
2. If there are 0 events in the calendar, the schedule section must ONLY contain suggested focus blocks and task time — NO invented meetings.
|
|
148
|
+
3. Be PRACTICAL, not alarmist. Routine notifications (Google login alerts from your own devices, npm publish confirmations, GitHub 2FA, password change emails) are NOT security threats. Mark them as SAFE.
|
|
149
|
+
4. Only put items in "security_alerts" for GENUINE threats: phishing, unknown device access from unexpected locations, credential leaks, social engineering.
|
|
150
|
+
5. Security alerts must be simple strings, NOT JSON objects. Example: "Verify Google login from unknown Mac device in Italy"
|
|
151
|
+
6. The "schedule" section should reflect REAL calendar events + suggested blocks for tasks. Do not fabricate appointments.
|
|
152
|
+
7. Do not create new_tasks that duplicate existing tasks.
|
|
150
153
|
|
|
151
154
|
AGENT REPORTS:
|
|
152
155
|
${agentResults.saber ? `\n[SABER — Security Scan]\n${agentResults.saber}` : ''}
|
|
@@ -160,22 +163,22 @@ Events: ${events.length}
|
|
|
160
163
|
Unread emails: ${emails.length}
|
|
161
164
|
Tasks: ${tasks.length}
|
|
162
165
|
|
|
163
|
-
CALENDAR:
|
|
164
|
-
${calendarContext || 'No events.'}
|
|
166
|
+
CALENDAR (these are the ONLY real events — do NOT add any others):
|
|
167
|
+
${calendarContext || 'No events scheduled.'}
|
|
165
168
|
|
|
166
|
-
EXISTING TASKS:
|
|
169
|
+
EXISTING TASKS (do NOT duplicate these):
|
|
167
170
|
${taskContext || 'No tasks.'}
|
|
168
171
|
|
|
169
|
-
|
|
172
|
+
Output strict JSON:
|
|
170
173
|
{
|
|
171
174
|
"date": "${dateStr}",
|
|
172
|
-
"executive_summary": "2-3 sentence overview",
|
|
175
|
+
"executive_summary": "2-3 sentence overview of the ACTUAL day based on real data",
|
|
173
176
|
"priority_actions": [{ "time": "HH:MM", "action": "...", "source": "email|calendar|task", "priority": "critical|high|medium|low" }],
|
|
174
177
|
"schedule": [{ "time_start": "HH:MM", "time_end": "HH:MM", "type": "meeting|focus|break|task", "title": "...", "notes": "...", "preparation": "..." }],
|
|
175
178
|
"email_actions": [{ "from": "...", "subject": "...", "action": "reply|archive|flag|defer", "suggested_reply": "..." }],
|
|
176
|
-
"security_alerts": [],
|
|
177
|
-
"new_tasks": [{ "description": "...", "priority": "high|medium|low", "estimated_minutes":
|
|
178
|
-
"insights": []
|
|
179
|
+
"security_alerts": ["simple string descriptions only"],
|
|
180
|
+
"new_tasks": [{ "description": "...", "priority": "high|medium|low", "estimated_minutes": 30, "suggested_slot": "HH:MM" }],
|
|
181
|
+
"insights": ["simple string insights only"]
|
|
179
182
|
}`;
|
|
180
183
|
|
|
181
184
|
let plan;
|
|
@@ -266,7 +269,8 @@ function displayPlan(plan) {
|
|
|
266
269
|
if (plan.security_alerts?.length > 0) {
|
|
267
270
|
console.log(` ${BOLD}\x1b[0;31mSecurity Alerts${NC}`);
|
|
268
271
|
for (const a of plan.security_alerts) {
|
|
269
|
-
|
|
272
|
+
const text = typeof a === 'string' ? a : a.description || a.message || a.action_required || `[${a.type || 'alert'}] ${a.severity || ''} — ${JSON.stringify(a)}`;
|
|
273
|
+
console.log(` \x1b[0;31m!\x1b[0m ${text}`);
|
|
270
274
|
}
|
|
271
275
|
console.log('');
|
|
272
276
|
}
|
|
@@ -274,7 +278,8 @@ function displayPlan(plan) {
|
|
|
274
278
|
if (plan.insights?.length > 0) {
|
|
275
279
|
console.log(` ${BOLD}${D}Insights${NC}`);
|
|
276
280
|
for (const i of plan.insights) {
|
|
277
|
-
|
|
281
|
+
const text = typeof i === 'string' ? i : i.message || i.insight || JSON.stringify(i);
|
|
282
|
+
console.log(` ${D}→ ${text}${NC}`);
|
|
278
283
|
}
|
|
279
284
|
console.log('');
|
|
280
285
|
}
|
package/src/services/web-ui.mjs
CHANGED
|
@@ -401,8 +401,8 @@ function renderPlan(el){
|
|
|
401
401
|
var h='<div class="plan-summary">'+esc(p.executive_summary||'No summary')+'</div>';
|
|
402
402
|
if(p.priority_actions&&p.priority_actions.length>0){h+='<div class="section-title">Priority Actions</div>';p.priority_actions.forEach(function(a){h+='<div class="card plan-action"><span class="plan-action__time">'+esc(a.time||'')+'</span><span class="plan-action__text">'+esc(a.action)+'</span></div>'})}
|
|
403
403
|
if(p.schedule&&p.schedule.length>0){h+='<div class="section-title">Schedule</div>';p.schedule.forEach(function(s){h+='<div class="card event"><span class="event__time">'+esc(s.time_start)+'-'+esc(s.time_end)+'</span><span class="event__title">'+esc(s.title)+'</span></div>'})}
|
|
404
|
-
if(p.security_alerts&&p.security_alerts.length>0){h+='<div class="section-title" style="color:var(--red)">Security Alerts</div>';p.security_alerts.forEach(function(a){h+='<div class="card" style="border-color:var(--red)"><span style="color:var(--red)">'+esc(typeof a==='
|
|
405
|
-
if(p.insights&&p.insights.length>0){h+='<div class="section-title">Insights</div>';p.insights.forEach(function(i){h+='<div style="color:var(--dim);padding:4px 0;font-size:12px">\\u2192 '+esc(
|
|
404
|
+
if(p.security_alerts&&p.security_alerts.length>0){h+='<div class="section-title" style="color:var(--red)">Security Alerts</div>';p.security_alerts.forEach(function(a){var txt=typeof a==='string'?a:(a.description||a.message||a.action_required||'Alert');var sev=typeof a==='object'&&a.severity?' ['+a.severity.toUpperCase()+']':'';h+='<div class="card" style="border-color:var(--red);padding:14px"><span style="color:var(--red);font-weight:700">!'+esc(sev)+'</span> '+esc(txt)+(typeof a==='object'&&a.action_required&&a.action_required!==txt?'<div style="color:var(--amber);font-size:11px;margin-top:6px">Action: '+esc(a.action_required)+'</div>':'')+'</div>'})}
|
|
405
|
+
if(p.insights&&p.insights.length>0){h+='<div class="section-title">Insights</div>';p.insights.forEach(function(i){var txt=typeof i==='string'?i:(i.message||i.insight||'');h+='<div style="color:var(--dim);padding:4px 0;font-size:12px">\\u2192 '+esc(txt)+'</div>'})}
|
|
406
406
|
h+='<div style="margin-top:16px;text-align:center"><button class="btn btn--secondary" onclick="refreshPlan()">Regenerate</button></div>';
|
|
407
407
|
el.innerHTML=h;
|
|
408
408
|
});
|