nothumanallowed 6.6.1 → 6.6.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nothumanallowed",
3
- "version": "6.6.1",
3
+ "version": "6.6.2",
4
4
  "description": "NotHumanAllowed — 38 AI agents for security, code, DevOps, data & daily ops. Per-agent memory, Telegram + Discord auto-responder, proactive intelligence daemon, voice chat, plugin system.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -91,10 +91,23 @@ TOOLS:
91
91
  14. schedule_draft_email(clientName: string, subject: string, location: string, durationMinutes: number, dateFrom: string, dateTo: string)
92
92
  Same as schedule_meeting but also generates a professional email proposing the top 3 slots.
93
93
 
94
- 15. calendar_update(eventId: string, summary?: string, location?: string, description?: string, start?: string, end?: string)
94
+ 15. calendar_find(query: string, daysAhead?: number)
95
+ Search for a calendar event by name/keyword in the next N days (default 7). Returns matching events with their IDs.
96
+ ALWAYS use this FIRST when the user wants to modify an event.
97
+
98
+ 16. calendar_update(eventId: string, summary?: string, location?: string, description?: string, start?: string, end?: string)
95
99
  Update ANY field of an existing calendar event. Only include fields that need to change. Confirm with the user first.
96
100
 
97
- 16. maps_directions(from: string, to: string)
101
+ 17. gmail_mark_read(messageId?: string, all?: boolean)
102
+ Mark email(s) as read. If all=true, marks ALL unread emails as read. If messageId provided, marks that single email.
103
+
104
+ 18. gmail_mark_unread(messageId: string)
105
+ Mark a specific email as unread.
106
+
107
+ 19. gmail_archive(messageId: string)
108
+ Archive a specific email (removes from inbox).
109
+
110
+ 20. maps_directions(from: string, to: string)
98
111
  Generate a Google Maps directions link between two locations.
99
112
 
100
113
  RULES:
@@ -347,6 +360,29 @@ async function executeTool(action, params, config) {
347
360
  const changes = Object.keys(patch).join(', ');
348
361
  return `Event updated successfully (${changes}). ${params.location ? 'New location: ' + params.location : ''}`;
349
362
  }
363
+ case 'gmail_mark_read': {
364
+ if (params.all) {
365
+ const { markAllAsRead } = await import('../services/mail-router.mjs');
366
+ const result = await markAllAsRead(config);
367
+ return `Done! ${result.count} email${result.count !== 1 ? 's' : ''} marked as read.`;
368
+ }
369
+ if (params.messageId) {
370
+ const { markAsRead } = await import('../services/mail-router.mjs');
371
+ await markAsRead(config, params.messageId);
372
+ return `Email marked as read.`;
373
+ }
374
+ return 'Specify a messageId or set all=true to mark all as read.';
375
+ }
376
+ case 'gmail_mark_unread': {
377
+ const { markAsUnread } = await import('../services/mail-router.mjs');
378
+ await markAsUnread(config, params.messageId);
379
+ return `Email marked as unread.`;
380
+ }
381
+ case 'gmail_archive': {
382
+ const { archiveMessage } = await import('../services/mail-router.mjs');
383
+ await archiveMessage(config, params.messageId);
384
+ return `Email archived.`;
385
+ }
350
386
  case 'maps_directions': {
351
387
  const from = encodeURIComponent(params.from || '');
352
388
  const to = encodeURIComponent(params.to || '');
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 = '6.6.1';
8
+ export const VERSION = '6.6.2';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11