nothumanallowed 13.5.187 → 13.5.189

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": "13.5.187",
3
+ "version": "13.5.189",
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.187';
8
+ export const VERSION = '13.5.189';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -160,18 +160,21 @@ TOOLS:
160
160
  15. calendar_move(eventId: string, newStart: string, newEnd: string)
161
161
  Reschedule an event. ALWAYS confirm before moving.
162
162
 
163
- 16. calendar_find(query: string, daysAhead?: number)
164
- Search for a calendar event by name/keyword in the next N days (default 7). Returns matching events with their IDs.
163
+ 16. calendar_date(date: string)
164
+ List all events for a specific date (YYYY-MM-DD). Use this when the user asks about a specific day (e.g. "May 13", "next Tuesday"). ALWAYS prefer this over calendar_week when a specific date is mentioned.
165
+
166
+ 17. calendar_find(query: string, daysAhead?: number)
167
+ Search for a calendar event by name/keyword in the next N days (default 30). Returns matching events with their IDs.
165
168
  ALWAYS use this FIRST when the user wants to modify an event — you need the eventId.
166
169
 
167
- 17. calendar_update(eventId: string, summary?: string, location?: string, description?: string, start?: string, end?: string)
170
+ 18. calendar_update(eventId: string, summary?: string, location?: string, description?: string, start?: string, end?: string)
168
171
  Update ANY field of an existing calendar event: title, location, description, start time, end time.
169
172
  You MUST call calendar_find first to get the eventId. Only include fields that need to change. ALWAYS confirm before updating.
170
173
 
171
- 18. schedule_meeting(clientName: string, subject: string, location: string, durationMinutes: number, dateFrom: string, dateTo: string, workdayStart?: number, workdayEnd?: number)
174
+ 19. schedule_meeting(clientName: string, subject: string, location: string, durationMinutes: number, dateFrom: string, dateTo: string, workdayStart?: number, workdayEnd?: number)
172
175
  Find optimal meeting slots considering existing calendar events, locations, and estimated travel time between appointments. Returns ranked slots with travel info. dateFrom and dateTo are YYYY-MM-DD.
173
176
 
174
- 19. schedule_draft_email(clientName: string, subject: string, location: string, durationMinutes: number, dateFrom: string, dateTo: string)
177
+ 20. schedule_draft_email(clientName: string, subject: string, location: string, durationMinutes: number, dateFrom: string, dateTo: string)
175
178
  Same as schedule_meeting, but also generates a professional email proposing the top 3 slots to the client. Returns both the slots and a ready-to-send email draft.
176
179
 
177
180
  --- TASKS ---
@@ -597,7 +600,7 @@ Never output a JSON block as a suggestion — every block executes immediately.
597
600
  AVAILABLE TOOLS:
598
601
  gmail_list · gmail_read · gmail_send · gmail_draft · gmail_reply · gmail_mark_read · gmail_mark_unread · gmail_archive · gmail_delete · gmail_send_attach
599
602
  imap_accounts · imap_list · imap_read · imap_send · imap_sync · imap_labels · imap_mark_read · imap_reply · imap_thread · imap_search · imap_mark_starred · imap_trash · imap_draft · imap_send_template · imap_bulk_send
600
- calendar_today · calendar_tomorrow · calendar_upcoming · calendar_week · calendar_create · calendar_move · calendar_find · calendar_update · schedule_meeting · schedule_draft_email
603
+ calendar_today · calendar_tomorrow · calendar_date · calendar_upcoming · calendar_week · calendar_create · calendar_move · calendar_find · calendar_update · schedule_meeting · schedule_draft_email
601
604
  task_list · task_add · task_done · task_move · task_delete · task_clear · task_edit
602
605
  contact_search · contact_add · contact_update · contact_delete
603
606
  gtask_list · gtask_add · gtask_complete
@@ -1199,6 +1202,14 @@ export async function executeTool(action, params, config) {
1199
1202
  return formatEvents(events);
1200
1203
  }
1201
1204
 
1205
+ case 'calendar_date': {
1206
+ const dateStr = params.date;
1207
+ if (!dateStr || !/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) return 'Invalid date format. Use YYYY-MM-DD.';
1208
+ const events = await getEventsForDate(config, dateStr);
1209
+ if (events.length === 0) return `No events scheduled for ${dateStr}.`;
1210
+ return formatEvents(events);
1211
+ }
1212
+
1202
1213
  case 'calendar_upcoming': {
1203
1214
  const hours = params.hours || 2;
1204
1215
  const events = await getUpcomingEvents(config, hours);
@@ -1255,7 +1266,7 @@ export async function executeTool(action, params, config) {
1255
1266
 
1256
1267
  case 'calendar_find': {
1257
1268
  const query = (params.query || '').toLowerCase();
1258
- const daysAhead = params.daysAhead || 7;
1269
+ const daysAhead = params.daysAhead || 30;
1259
1270
  const from = new Date();
1260
1271
  const to = new Date(from.getTime() + daysAhead * 86400000);
1261
1272
  const events = await listEvents(config, 'primary', from, to);