@shin1ohno/sage 0.8.8 → 0.9.3
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/README.md +31 -0
- package/dist/cli/http-server-with-config.d.ts +2 -0
- package/dist/cli/http-server-with-config.d.ts.map +1 -1
- package/dist/cli/http-server-with-config.js +71 -0
- package/dist/cli/http-server-with-config.js.map +1 -1
- package/dist/cli/main-entry.d.ts.map +1 -1
- package/dist/cli/main-entry.js +1 -0
- package/dist/cli/main-entry.js.map +1 -1
- package/dist/cli/parser.d.ts +2 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +7 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/config/validation.d.ts +721 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +203 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/integrations/apple-reminders.d.ts.map +1 -1
- package/dist/integrations/apple-reminders.js +6 -5
- package/dist/integrations/apple-reminders.js.map +1 -1
- package/dist/integrations/calendar-event-creator.d.ts.map +1 -1
- package/dist/integrations/calendar-event-creator.js +2 -1
- package/dist/integrations/calendar-event-creator.js.map +1 -1
- package/dist/integrations/calendar-event-deleter.d.ts.map +1 -1
- package/dist/integrations/calendar-event-deleter.js +2 -1
- package/dist/integrations/calendar-event-deleter.js.map +1 -1
- package/dist/integrations/calendar-event-response.d.ts.map +1 -1
- package/dist/integrations/calendar-event-response.js +4 -3
- package/dist/integrations/calendar-event-response.js.map +1 -1
- package/dist/integrations/calendar-service.d.ts +14 -0
- package/dist/integrations/calendar-service.d.ts.map +1 -1
- package/dist/integrations/calendar-service.js +6 -5
- package/dist/integrations/calendar-service.js.map +1 -1
- package/dist/integrations/calendar-source-manager.d.ts +86 -3
- package/dist/integrations/calendar-source-manager.d.ts.map +1 -1
- package/dist/integrations/calendar-source-manager.js +152 -20
- package/dist/integrations/calendar-source-manager.js.map +1 -1
- package/dist/integrations/google-calendar-service.d.ts +55 -3
- package/dist/integrations/google-calendar-service.d.ts.map +1 -1
- package/dist/integrations/google-calendar-service.js +215 -5
- package/dist/integrations/google-calendar-service.js.map +1 -1
- package/dist/integrations/notion-mcp.d.ts.map +1 -1
- package/dist/integrations/notion-mcp.js +5 -4
- package/dist/integrations/notion-mcp.js.map +1 -1
- package/dist/integrations/todo-list-manager.d.ts.map +1 -1
- package/dist/integrations/todo-list-manager.js +3 -2
- package/dist/integrations/todo-list-manager.js.map +1 -1
- package/dist/oauth/encryption-service.d.ts +104 -0
- package/dist/oauth/encryption-service.d.ts.map +1 -0
- package/dist/oauth/encryption-service.js +271 -0
- package/dist/oauth/encryption-service.js.map +1 -0
- package/dist/oauth/file-mutex.d.ts +68 -0
- package/dist/oauth/file-mutex.d.ts.map +1 -0
- package/dist/oauth/file-mutex.js +141 -0
- package/dist/oauth/file-mutex.js.map +1 -0
- package/dist/oauth/google-oauth-handler.d.ts +8 -9
- package/dist/oauth/google-oauth-handler.d.ts.map +1 -1
- package/dist/oauth/google-oauth-handler.js +30 -65
- package/dist/oauth/google-oauth-handler.js.map +1 -1
- package/dist/oauth/index.d.ts +1 -0
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +2 -0
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/oauth-server.d.ts +61 -1
- package/dist/oauth/oauth-server.d.ts.map +1 -1
- package/dist/oauth/oauth-server.js +177 -40
- package/dist/oauth/oauth-server.js.map +1 -1
- package/dist/oauth/persistent-client-store.d.ts +58 -0
- package/dist/oauth/persistent-client-store.d.ts.map +1 -0
- package/dist/oauth/persistent-client-store.js +188 -0
- package/dist/oauth/persistent-client-store.js.map +1 -0
- package/dist/oauth/persistent-refresh-token-store.d.ts +77 -0
- package/dist/oauth/persistent-refresh-token-store.d.ts.map +1 -0
- package/dist/oauth/persistent-refresh-token-store.js +226 -0
- package/dist/oauth/persistent-refresh-token-store.js.map +1 -0
- package/dist/oauth/persistent-session-store.d.ts +69 -0
- package/dist/oauth/persistent-session-store.d.ts.map +1 -0
- package/dist/oauth/persistent-session-store.js +155 -0
- package/dist/oauth/persistent-session-store.js.map +1 -0
- package/dist/oauth/session-store.d.ts +31 -0
- package/dist/oauth/session-store.d.ts.map +1 -0
- package/dist/oauth/session-store.js +47 -0
- package/dist/oauth/session-store.js.map +1 -0
- package/dist/remote/cloud-config.d.ts.map +1 -1
- package/dist/remote/cloud-config.js +2 -1
- package/dist/remote/cloud-config.js.map +1 -1
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +3 -2
- package/dist/services/container.js.map +1 -1
- package/dist/services/working-cadence.d.ts +37 -1
- package/dist/services/working-cadence.d.ts.map +1 -1
- package/dist/services/working-cadence.js +152 -13
- package/dist/services/working-cadence.js.map +1 -1
- package/dist/tools/calendar/handlers.d.ts +82 -3
- package/dist/tools/calendar/handlers.d.ts.map +1 -1
- package/dist/tools/calendar/handlers.js +200 -16
- package/dist/tools/calendar/handlers.js.map +1 -1
- package/dist/types/google-calendar-types.d.ts +150 -3
- package/dist/types/google-calendar-types.d.ts.map +1 -1
- package/dist/types/google-calendar-types.js +79 -2
- package/dist/types/google-calendar-types.js.map +1 -1
- package/dist/types/task.d.ts +14 -0
- package/dist/types/task.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +28 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +61 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/version.js +1 -1
- package/package.json +4 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Manages multiple calendar sources (EventKit, Google Calendar) with automatic
|
|
7
7
|
* source selection, fallback handling, and unified MCP tool interface.
|
|
8
8
|
*/
|
|
9
|
+
import { calendarLogger } from '../utils/logger.js';
|
|
9
10
|
/**
|
|
10
11
|
* Calendar Source Manager
|
|
11
12
|
*
|
|
@@ -199,7 +200,7 @@ export class CalendarSourceManager {
|
|
|
199
200
|
allEvents.push(...eventkitResponse.events);
|
|
200
201
|
}
|
|
201
202
|
catch (error) {
|
|
202
|
-
|
|
203
|
+
calendarLogger.error({ err: error }, 'EventKit failed');
|
|
203
204
|
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
204
205
|
}
|
|
205
206
|
}
|
|
@@ -214,7 +215,7 @@ export class CalendarSourceManager {
|
|
|
214
215
|
allEvents.push(...googleEvents);
|
|
215
216
|
}
|
|
216
217
|
catch (error) {
|
|
217
|
-
|
|
218
|
+
calendarLogger.error({ err: error }, 'Google Calendar failed');
|
|
218
219
|
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
219
220
|
}
|
|
220
221
|
}
|
|
@@ -272,6 +273,126 @@ export class CalendarSourceManager {
|
|
|
272
273
|
.some((prevEvent) => this.areEventsDuplicate(event, prevEvent));
|
|
273
274
|
});
|
|
274
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Filter events that block available time slots
|
|
278
|
+
* Requirement: 7.5 (Event type blocking semantics)
|
|
279
|
+
* Task 22: Implementation
|
|
280
|
+
*
|
|
281
|
+
* Determines which events should be considered as blocking time when
|
|
282
|
+
* calculating available slots. Different event types have different
|
|
283
|
+
* blocking semantics:
|
|
284
|
+
*
|
|
285
|
+
* Blocking event types (block time):
|
|
286
|
+
* - default: Regular meetings and appointments
|
|
287
|
+
* - outOfOffice: Vacation, leave, absence periods
|
|
288
|
+
* - focusTime: Deep work time blocks
|
|
289
|
+
*
|
|
290
|
+
* Non-blocking event types (do NOT block time):
|
|
291
|
+
* - workingLocation: Metadata only (where you're working from)
|
|
292
|
+
* - birthday: All-day reminders (informational)
|
|
293
|
+
* - fromGmail: Auto-generated informational events
|
|
294
|
+
*
|
|
295
|
+
* EventKit events (eventType=undefined) are treated as 'default' (blocking)
|
|
296
|
+
* for backward compatibility.
|
|
297
|
+
*
|
|
298
|
+
* @param events - Array of events to filter
|
|
299
|
+
* @param respectBlockingEventTypes - If true, respect event type semantics;
|
|
300
|
+
* if false, treat all non-birthday/fromGmail as blocking
|
|
301
|
+
* (backward compatible behavior)
|
|
302
|
+
* @returns Array of events that block available time slots
|
|
303
|
+
*/
|
|
304
|
+
filterBlockingEvents(events, respectBlockingEventTypes = true) {
|
|
305
|
+
if (!respectBlockingEventTypes) {
|
|
306
|
+
// Backward compatible: treat all non-birthday, non-fromGmail as blocking
|
|
307
|
+
return events.filter((e) => {
|
|
308
|
+
const eventType = e.eventType;
|
|
309
|
+
return eventType !== 'birthday' && eventType !== 'fromGmail';
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
// Respect event type blocking semantics:
|
|
313
|
+
// - default: blocks time (meetings, appointments)
|
|
314
|
+
// - outOfOffice: blocks time (vacation, absence)
|
|
315
|
+
// - focusTime: blocks time (deep work)
|
|
316
|
+
// - workingLocation: does NOT block time (metadata only)
|
|
317
|
+
// - birthday: does NOT block time (all-day reminder)
|
|
318
|
+
// - fromGmail: does NOT block time (informational)
|
|
319
|
+
const blockingTypes = ['default', 'outOfOffice', 'focusTime'];
|
|
320
|
+
return events.filter((e) => {
|
|
321
|
+
const eventType = e.eventType || 'default';
|
|
322
|
+
return blockingTypes.includes(eventType);
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Annotate time slots with working location information
|
|
327
|
+
* Requirement: 3.7 (Working location context)
|
|
328
|
+
* Task 23: Implementation
|
|
329
|
+
*
|
|
330
|
+
* Matches time slots to working location events by date and extracts
|
|
331
|
+
* location type and label from typeSpecificProperties. Uses timezone-aware
|
|
332
|
+
* date comparison (normalizing to YYYY-MM-DD format via toISOString).
|
|
333
|
+
*
|
|
334
|
+
* Working location events are all-day events that indicate where the user
|
|
335
|
+
* is working from on that day (homeOffice, officeLocation, or customLocation).
|
|
336
|
+
*
|
|
337
|
+
* @param slots - Array of time slots to annotate
|
|
338
|
+
* @param workingLocationEvents - Array of working location calendar events
|
|
339
|
+
* @returns Array of time slots with workingLocation field populated
|
|
340
|
+
*/
|
|
341
|
+
annotateWithWorkingLocation(slots, workingLocationEvents) {
|
|
342
|
+
return slots.map((slot) => {
|
|
343
|
+
// Timezone-aware date comparison: normalize to YYYY-MM-DD
|
|
344
|
+
const slotDateNormalized = new Date(slot.start).toISOString().split('T')[0];
|
|
345
|
+
// Find workingLocation event that matches this date
|
|
346
|
+
const locationEvent = workingLocationEvents.find((e) => {
|
|
347
|
+
const eventDateNormalized = new Date(e.start).toISOString().split('T')[0];
|
|
348
|
+
return eventDateNormalized === slotDateNormalized;
|
|
349
|
+
});
|
|
350
|
+
if (locationEvent) {
|
|
351
|
+
// Extract working location info from typeSpecificProperties
|
|
352
|
+
const extendedEvent = locationEvent;
|
|
353
|
+
if (extendedEvent.typeSpecificProperties?.eventType === 'workingLocation') {
|
|
354
|
+
const props = extendedEvent.typeSpecificProperties.properties;
|
|
355
|
+
const workingLocation = {
|
|
356
|
+
type: props.type,
|
|
357
|
+
label: props.customLocation?.label || props.officeLocation?.label,
|
|
358
|
+
};
|
|
359
|
+
return {
|
|
360
|
+
...slot,
|
|
361
|
+
workingLocation,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// Default to unknown if no working location event found for this date
|
|
366
|
+
return {
|
|
367
|
+
...slot,
|
|
368
|
+
workingLocation: { type: 'unknown' },
|
|
369
|
+
};
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Filter and prioritize time slots by working location preference
|
|
374
|
+
* Requirement: 3.7 (Working location preference)
|
|
375
|
+
* Task 24: Implementation
|
|
376
|
+
*
|
|
377
|
+
* Sorts time slots to prioritize those matching the preferred working location.
|
|
378
|
+
* Matching slots appear first, followed by non-matching slots.
|
|
379
|
+
*
|
|
380
|
+
* If preferredLocation is 'any' or undefined, all slots are returned unchanged.
|
|
381
|
+
*
|
|
382
|
+
* @param slots - Array of time slots with workingLocation field
|
|
383
|
+
* @param preferredLocation - Preferred location type ('homeOffice', 'officeLocation', or 'any')
|
|
384
|
+
* @returns Array of time slots sorted by location preference (matching first)
|
|
385
|
+
*/
|
|
386
|
+
filterByLocationPreference(slots, preferredLocation) {
|
|
387
|
+
// No filtering if preferredLocation is 'any' or undefined
|
|
388
|
+
if (!preferredLocation || preferredLocation === 'any') {
|
|
389
|
+
return slots;
|
|
390
|
+
}
|
|
391
|
+
// Prioritize slots matching preferred location
|
|
392
|
+
const matchingSlots = slots.filter((s) => s.workingLocation?.type === preferredLocation);
|
|
393
|
+
const otherSlots = slots.filter((s) => s.workingLocation?.type !== preferredLocation);
|
|
394
|
+
return [...matchingSlots, ...otherSlots];
|
|
395
|
+
}
|
|
275
396
|
/**
|
|
276
397
|
* Create event in preferred calendar source
|
|
277
398
|
* Requirement: 3, 10, 11 (Multi-source event creation with routing and fallback)
|
|
@@ -320,7 +441,6 @@ export class CalendarSourceManager {
|
|
|
320
441
|
if (source === 'google' && this.googleCalendarService) {
|
|
321
442
|
// Try Google Calendar
|
|
322
443
|
const event = await this.googleCalendarService.createEvent(request);
|
|
323
|
-
console.log(`Successfully created event in Google Calendar: ${event.id}`);
|
|
324
444
|
return event;
|
|
325
445
|
}
|
|
326
446
|
// Source is enabled but service is not available
|
|
@@ -329,7 +449,7 @@ export class CalendarSourceManager {
|
|
|
329
449
|
catch (error) {
|
|
330
450
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
331
451
|
errors.push({ source, error: err });
|
|
332
|
-
|
|
452
|
+
calendarLogger.error({ err, source }, `Failed to create event in ${source}`);
|
|
333
453
|
}
|
|
334
454
|
}
|
|
335
455
|
// All sources failed
|
|
@@ -380,12 +500,8 @@ export class CalendarSourceManager {
|
|
|
380
500
|
// No source specified - try all enabled sources
|
|
381
501
|
const promises = [];
|
|
382
502
|
if (enabledSources.includes('eventkit') && this.calendarService) {
|
|
383
|
-
// Note: EventKit does not support deleteEvent yet
|
|
384
|
-
|
|
385
|
-
promises.push(Promise.resolve().then(() => {
|
|
386
|
-
// EventKit deletion not supported
|
|
387
|
-
console.log('EventKit event deletion not supported, skipping...');
|
|
388
|
-
}));
|
|
503
|
+
// Note: EventKit does not support deleteEvent yet - skip silently
|
|
504
|
+
promises.push(Promise.resolve());
|
|
389
505
|
}
|
|
390
506
|
if (enabledSources.includes('google') && this.googleCalendarService) {
|
|
391
507
|
promises.push(this.googleCalendarService
|
|
@@ -434,40 +550,56 @@ export class CalendarSourceManager {
|
|
|
434
550
|
/**
|
|
435
551
|
* Find available time slots considering all enabled sources
|
|
436
552
|
* Requirement: 7 (Multi-source slot detection)
|
|
553
|
+
* Requirement: 3.7 (Working Location Aware Scheduling)
|
|
437
554
|
* Task 20a: Basic filtering implementation
|
|
438
555
|
* Task 20b: Suitability calculation integration
|
|
556
|
+
* Task 25: Working location filtering integration
|
|
439
557
|
*
|
|
440
558
|
* Fetches events from all enabled sources, merges and deduplicates,
|
|
441
559
|
* then calculates available slots based on working hours and preferences.
|
|
442
|
-
* Applies
|
|
560
|
+
* Applies working location filtering and suitability scoring.
|
|
443
561
|
*
|
|
444
562
|
* @param request - Slot search request
|
|
445
|
-
* @returns Array of available time slots sorted by suitability
|
|
563
|
+
* @returns Array of available time slots sorted by suitability and location preference
|
|
446
564
|
*/
|
|
447
565
|
async findAvailableSlots(request) {
|
|
448
|
-
// Get all events from enabled sources (already merged/deduplicated by getEvents)
|
|
566
|
+
// Step 1: Get all events from enabled sources (already merged/deduplicated by getEvents)
|
|
449
567
|
const events = await this.getEvents(request.startDate, request.endDate);
|
|
450
|
-
//
|
|
451
|
-
|
|
568
|
+
// Step 2: Filter blocking events based on respectBlockingEventTypes parameter
|
|
569
|
+
// Default to true for backward compatibility with event type blocking semantics
|
|
570
|
+
const respectBlockingEventTypes = request.respectBlockingEventTypes ?? true;
|
|
571
|
+
const blockingEvents = this.filterBlockingEvents(events, respectBlockingEventTypes);
|
|
572
|
+
// Step 3: Filter workingLocation events separately for annotation
|
|
573
|
+
const workingLocationEvents = events.filter((e) => {
|
|
574
|
+
const eventType = e.eventType;
|
|
575
|
+
return eventType === 'workingLocation';
|
|
576
|
+
});
|
|
577
|
+
// Sort blocking events by start time
|
|
578
|
+
const sortedBlockingEvents = blockingEvents.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime());
|
|
452
579
|
// Get working hours from config or use request.workingHours
|
|
453
580
|
const workingHours = request.workingHours || this.getDefaultWorkingHours();
|
|
454
581
|
// Get duration parameters
|
|
455
582
|
const minDuration = request.minDurationMinutes || 25;
|
|
456
583
|
const maxDuration = request.maxDurationMinutes || 480; // 8 hours
|
|
457
|
-
// Generate slots for each day in the date range
|
|
584
|
+
// Step 4: Generate slots for each day in the date range based on blocking events
|
|
458
585
|
const slots = [];
|
|
459
586
|
const startDate = new Date(request.startDate);
|
|
460
587
|
const endDate = new Date(request.endDate);
|
|
461
588
|
// Iterate through each day in the range
|
|
462
589
|
for (let currentDate = new Date(startDate); currentDate <= endDate; currentDate.setDate(currentDate.getDate() + 1)) {
|
|
463
|
-
const daySlots = this.findDaySlots(currentDate,
|
|
590
|
+
const daySlots = this.findDaySlots(currentDate, sortedBlockingEvents, workingHours, minDuration, maxDuration);
|
|
464
591
|
slots.push(...daySlots);
|
|
465
592
|
}
|
|
466
593
|
// Apply suitability scoring to all slots
|
|
467
594
|
const slotsWithSuitability = this.calculateSuitabilityForSlots(slots);
|
|
595
|
+
// Step 5: Annotate slots with working location context
|
|
596
|
+
const annotatedSlots = this.annotateWithWorkingLocation(slotsWithSuitability, workingLocationEvents);
|
|
597
|
+
// Step 6: Filter and prioritize by working location preference
|
|
598
|
+
const locationFilteredSlots = this.filterByLocationPreference(annotatedSlots, request.preferredWorkingLocation);
|
|
468
599
|
// Sort by suitability (excellent > good > acceptable)
|
|
469
600
|
// Then by start time as secondary sort
|
|
470
|
-
|
|
601
|
+
// Note: location preference has already been applied by filterByLocationPreference
|
|
602
|
+
const sortedSlots = locationFilteredSlots.sort((a, b) => {
|
|
471
603
|
const suitabilityOrder = {
|
|
472
604
|
excellent: 0,
|
|
473
605
|
good: 1,
|
|
@@ -760,7 +892,7 @@ export class CalendarSourceManager {
|
|
|
760
892
|
return await this.calendarService.isAvailable();
|
|
761
893
|
}
|
|
762
894
|
catch (error) {
|
|
763
|
-
|
|
895
|
+
calendarLogger.error({ err: error }, 'EventKit health check failed');
|
|
764
896
|
return false;
|
|
765
897
|
}
|
|
766
898
|
})(),
|
|
@@ -773,7 +905,7 @@ export class CalendarSourceManager {
|
|
|
773
905
|
return await this.googleCalendarService.isAvailable();
|
|
774
906
|
}
|
|
775
907
|
catch (error) {
|
|
776
|
-
|
|
908
|
+
calendarLogger.error({ err: error }, 'Google Calendar health check failed');
|
|
777
909
|
return false;
|
|
778
910
|
}
|
|
779
911
|
})(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-source-manager.js","sourceRoot":"","sources":["../../src/integrations/calendar-source-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar-source-manager.js","sourceRoot":"","sources":["../../src/integrations/calendar-source-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,17 +6,41 @@
|
|
|
6
6
|
* event CRUD operations, and calendar management.
|
|
7
7
|
*/
|
|
8
8
|
import { GoogleOAuthHandler } from '../oauth/google-oauth-handler.js';
|
|
9
|
-
import type { CalendarEvent, CalendarInfo } from '../types/google-calendar-types.js';
|
|
9
|
+
import type { CalendarEvent, CalendarInfo, GoogleCalendarEventType, OutOfOfficeProperties, FocusTimeProperties, WorkingLocationProperties, BirthdayProperties } from '../types/google-calendar-types.js';
|
|
10
10
|
/**
|
|
11
11
|
* Request interface for listing events
|
|
12
|
+
*
|
|
13
|
+
* @property startDate - Start of date range in ISO 8601 (YYYY-MM-DD) or RFC3339 (YYYY-MM-DDTHH:MM:SSZ) format
|
|
14
|
+
* @property endDate - End of date range in ISO 8601 (YYYY-MM-DD) or RFC3339 (YYYY-MM-DDTHH:MM:SSZ) format
|
|
15
|
+
* @property calendarId - Calendar ID (optional, defaults to 'primary')
|
|
16
|
+
* @property eventTypes - Optional array of event types to filter by (e.g., ['default', 'focusTime', 'outOfOffice']).
|
|
17
|
+
* When specified, only events matching these types will be returned.
|
|
18
|
+
* Valid values: 'default', 'outOfOffice', 'focusTime', 'workingLocation', 'birthday', 'fromGmail'
|
|
12
19
|
*/
|
|
13
20
|
export interface ListEventsRequest {
|
|
14
21
|
startDate: string;
|
|
15
22
|
endDate: string;
|
|
16
23
|
calendarId?: string;
|
|
24
|
+
eventTypes?: GoogleCalendarEventType[];
|
|
17
25
|
}
|
|
18
26
|
/**
|
|
19
27
|
* Request interface for creating events
|
|
28
|
+
*
|
|
29
|
+
* @property title - Event title/summary
|
|
30
|
+
* @property start - Start date/time in ISO 8601 format
|
|
31
|
+
* @property end - End date/time in ISO 8601 format
|
|
32
|
+
* @property isAllDay - Whether this is an all-day event (default: false)
|
|
33
|
+
* @property location - Event location
|
|
34
|
+
* @property description - Event description
|
|
35
|
+
* @property attendees - Array of attendee email addresses
|
|
36
|
+
* @property reminders - Reminder configuration
|
|
37
|
+
* @property eventType - Type of event to create (default: 'default').
|
|
38
|
+
* Valid values: 'default', 'outOfOffice', 'focusTime', 'workingLocation', 'birthday'
|
|
39
|
+
* Note: 'fromGmail' is read-only and cannot be used for event creation
|
|
40
|
+
* @property outOfOfficeProperties - Properties for out-of-office events (required when eventType is 'outOfOffice')
|
|
41
|
+
* @property focusTimeProperties - Properties for focus time events (required when eventType is 'focusTime')
|
|
42
|
+
* @property workingLocationProperties - Properties for working location events (required when eventType is 'workingLocation')
|
|
43
|
+
* @property birthdayProperties - Properties for birthday events (required when eventType is 'birthday')
|
|
20
44
|
*/
|
|
21
45
|
export interface CreateEventRequest {
|
|
22
46
|
title: string;
|
|
@@ -33,6 +57,11 @@ export interface CreateEventRequest {
|
|
|
33
57
|
minutes: number;
|
|
34
58
|
}>;
|
|
35
59
|
};
|
|
60
|
+
eventType?: GoogleCalendarEventType;
|
|
61
|
+
outOfOfficeProperties?: OutOfOfficeProperties;
|
|
62
|
+
focusTimeProperties?: FocusTimeProperties;
|
|
63
|
+
workingLocationProperties?: WorkingLocationProperties;
|
|
64
|
+
birthdayProperties?: BirthdayProperties;
|
|
36
65
|
}
|
|
37
66
|
/**
|
|
38
67
|
* Google Calendar Service Configuration
|
|
@@ -74,6 +103,28 @@ export declare class GoogleCalendarService {
|
|
|
74
103
|
* @returns True if API is available and authenticated, false otherwise
|
|
75
104
|
*/
|
|
76
105
|
isAvailable(): Promise<boolean>;
|
|
106
|
+
/**
|
|
107
|
+
* Validate event type and properties
|
|
108
|
+
*
|
|
109
|
+
* Uses CreateEventRequestSchema to validate the request, ensuring that:
|
|
110
|
+
* - Event type is valid (not 'fromGmail' which is read-only)
|
|
111
|
+
* - Type-specific properties match the event type
|
|
112
|
+
* - All-day constraint is enforced for birthday/workingLocation events
|
|
113
|
+
*
|
|
114
|
+
* @param request - CreateEventRequest to validate
|
|
115
|
+
* @throws ZodError if validation fails with descriptive error messages
|
|
116
|
+
*/
|
|
117
|
+
private validateEventTypeProperties;
|
|
118
|
+
/**
|
|
119
|
+
* Build event type payload for Google Calendar API
|
|
120
|
+
*
|
|
121
|
+
* Transforms event type data from CreateEventRequest into Google Calendar API format.
|
|
122
|
+
* Handles all 6 event types: default, outOfOffice, focusTime, workingLocation, birthday, fromGmail.
|
|
123
|
+
*
|
|
124
|
+
* @param request - CreateEventRequest containing event type and type-specific properties
|
|
125
|
+
* @returns Partial calendar_v3.Schema$Event with eventType and type-specific properties
|
|
126
|
+
*/
|
|
127
|
+
private buildEventTypePayload;
|
|
77
128
|
/**
|
|
78
129
|
* Normalize date string to RFC3339 format required by Google Calendar API
|
|
79
130
|
*
|
|
@@ -114,17 +165,18 @@ export declare class GoogleCalendarService {
|
|
|
114
165
|
createEvent(request: CreateEventRequest, calendarId?: string): Promise<CalendarEvent>;
|
|
115
166
|
/**
|
|
116
167
|
* Update a calendar event
|
|
117
|
-
* Requirement: 4, 10 (Calendar event updates with partial updates and
|
|
168
|
+
* Requirement: 4, 10, 4.5, 5.3, 6.6 (Calendar event updates with partial updates, retry logic, and event type restrictions)
|
|
118
169
|
*
|
|
119
170
|
* Updates an existing event in Google Calendar using the patch API for partial updates.
|
|
120
171
|
* Supports all-day events, reminders, attendees, and recurring events.
|
|
121
172
|
* Includes retry logic with exponential backoff for transient failures.
|
|
173
|
+
* Enforces event type restrictions (birthday and fromGmail events have limited updatable fields).
|
|
122
174
|
*
|
|
123
175
|
* @param eventId - Event ID to update
|
|
124
176
|
* @param updates - Partial CreateEventRequest with fields to update
|
|
125
177
|
* @param calendarId - Calendar ID (optional, defaults to 'primary')
|
|
126
178
|
* @returns Updated calendar event
|
|
127
|
-
* @throws Error if authentication fails
|
|
179
|
+
* @throws Error if authentication fails, API request fails after retries, or disallowed fields are being updated
|
|
128
180
|
*/
|
|
129
181
|
updateEvent(eventId: string, updates: Partial<CreateEventRequest>, calendarId?: string): Promise<CalendarEvent>;
|
|
130
182
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-calendar-service.d.ts","sourceRoot":"","sources":["../../src/integrations/google-calendar-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"google-calendar-service.d.ts","sourceRoot":"","sources":["../../src/integrations/google-calendar-service.ts"],"names":[],"mappings":"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"}
|