@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
|
@@ -80,14 +80,35 @@ export async function handleFindAvailableSlots(ctx, args) {
|
|
|
80
80
|
return createErrorFromCatch('カレンダー検索に失敗しました', error);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Valid event type names for filtering
|
|
85
|
+
* These correspond to Google Calendar API v3 event types
|
|
86
|
+
*/
|
|
87
|
+
const VALID_EVENT_TYPES = [
|
|
88
|
+
'default',
|
|
89
|
+
'outOfOffice',
|
|
90
|
+
'focusTime',
|
|
91
|
+
'workingLocation',
|
|
92
|
+
'birthday',
|
|
93
|
+
'fromGmail',
|
|
94
|
+
];
|
|
95
|
+
/**
|
|
96
|
+
* Validate that eventTypes array contains valid event type names
|
|
97
|
+
* @param eventTypes - Array of event type names to validate
|
|
98
|
+
* @returns Array of valid event types (invalid entries are filtered out)
|
|
99
|
+
*/
|
|
100
|
+
function validateEventTypes(eventTypes) {
|
|
101
|
+
return eventTypes.filter((type) => VALID_EVENT_TYPES.includes(type));
|
|
102
|
+
}
|
|
83
103
|
/**
|
|
84
104
|
* list_calendar_events handler
|
|
85
105
|
*
|
|
86
106
|
* List calendar events for a specified period.
|
|
87
|
-
*
|
|
107
|
+
* Supports filtering by event types (default, outOfOffice, focusTime, workingLocation, birthday, fromGmail).
|
|
108
|
+
* Requirement: 16.1-16.12, Task 27, Task 18 (eventTypes filter)
|
|
88
109
|
*/
|
|
89
110
|
export async function handleListCalendarEvents(ctx, args) {
|
|
90
|
-
const { startDate, endDate, calendarId } = args;
|
|
111
|
+
const { startDate, endDate, calendarId, eventTypes } = args;
|
|
91
112
|
const config = ctx.getConfig();
|
|
92
113
|
if (!config) {
|
|
93
114
|
return createToolResponse({
|
|
@@ -108,28 +129,49 @@ export async function handleListCalendarEvents(ctx, args) {
|
|
|
108
129
|
message: '有効なカレンダーソースがありません。設定でEventKitまたはGoogle Calendarを有効にしてください。',
|
|
109
130
|
});
|
|
110
131
|
}
|
|
111
|
-
|
|
132
|
+
// Fetch all events from calendar sources
|
|
133
|
+
// Cast to ExtendedCalendarEvent to access eventType and typeSpecificProperties
|
|
134
|
+
// Note: CalendarSourceManager returns events with these fields populated from Google Calendar,
|
|
135
|
+
// but the base CalendarEvent type from calendar-service.ts doesn't include them yet.
|
|
136
|
+
// The ExtendedCalendarEvent type from google-calendar-types.ts includes these fields.
|
|
137
|
+
let events = (await calendarSourceManager.getEvents(startDate, endDate, calendarId));
|
|
138
|
+
// Filter by event types if specified
|
|
139
|
+
// Note: CalendarSourceManager.getEvents() does not support eventTypes filtering directly,
|
|
140
|
+
// so we perform client-side filtering here
|
|
141
|
+
let validatedEventTypes;
|
|
142
|
+
if (eventTypes && eventTypes.length > 0) {
|
|
143
|
+
validatedEventTypes = validateEventTypes(eventTypes);
|
|
144
|
+
if (validatedEventTypes.length > 0) {
|
|
145
|
+
events = events.filter((event) => {
|
|
146
|
+
// EventKit events without eventType are treated as 'default'
|
|
147
|
+
const eventType = event.eventType || 'default';
|
|
148
|
+
return validatedEventTypes.includes(eventType);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
112
152
|
return createToolResponse({
|
|
113
153
|
success: true,
|
|
114
154
|
sources: enabledSources,
|
|
115
155
|
events: events.map((event) => {
|
|
116
|
-
//
|
|
117
|
-
const eventRecord = event;
|
|
156
|
+
// Include eventType and typeSpecificProperties in the response (Task 18)
|
|
118
157
|
return {
|
|
119
158
|
id: event.id,
|
|
120
159
|
title: event.title,
|
|
121
160
|
start: event.start,
|
|
122
161
|
end: event.end,
|
|
123
162
|
isAllDay: event.isAllDay,
|
|
124
|
-
calendar:
|
|
125
|
-
location:
|
|
126
|
-
source:
|
|
163
|
+
calendar: event.calendar,
|
|
164
|
+
location: event.location,
|
|
165
|
+
source: event.source,
|
|
166
|
+
eventType: event.eventType || 'default',
|
|
167
|
+
typeSpecificProperties: event.typeSpecificProperties,
|
|
127
168
|
};
|
|
128
169
|
}),
|
|
129
170
|
period: { start: startDate, end: endDate },
|
|
130
171
|
totalEvents: events.length,
|
|
172
|
+
eventTypesFilter: validatedEventTypes,
|
|
131
173
|
message: events.length > 0
|
|
132
|
-
? `${events.length}件のイベントが見つかりました (ソース: ${enabledSources.join(', ')})。`
|
|
174
|
+
? `${events.length}件のイベントが見つかりました (ソース: ${enabledSources.join(', ')})${validatedEventTypes ? ` フィルター: ${validatedEventTypes.join(', ')}` : ''}。`
|
|
133
175
|
: '指定した期間にイベントが見つかりませんでした。',
|
|
134
176
|
});
|
|
135
177
|
}
|
|
@@ -277,11 +319,22 @@ export async function handleRespondToCalendarEventsBatch(ctx, args) {
|
|
|
277
319
|
/**
|
|
278
320
|
* create_calendar_event handler
|
|
279
321
|
*
|
|
280
|
-
* Create a new calendar event.
|
|
281
|
-
* Requirement: 18.1-18.11, Task 29
|
|
322
|
+
* Create a new calendar event with support for Google Calendar event types.
|
|
323
|
+
* Requirement: 18.1-18.11, Task 29, Task 19 (Event Type Support)
|
|
324
|
+
*
|
|
325
|
+
* Supports creating:
|
|
326
|
+
* - default: Standard calendar events
|
|
327
|
+
* - outOfOffice: Vacation/OOO blocks with auto-decline
|
|
328
|
+
* - focusTime: Deep work blocks with chat status
|
|
329
|
+
* - workingLocation: Home/office/custom location events
|
|
330
|
+
* - birthday: Birthday/anniversary events
|
|
331
|
+
*
|
|
332
|
+
* Note: 'fromGmail' events cannot be created via API (read-only).
|
|
333
|
+
* Note: EventKit only supports 'default' event type. Non-default event types
|
|
334
|
+
* are automatically routed to Google Calendar.
|
|
282
335
|
*/
|
|
283
336
|
export async function handleCreateCalendarEvent(ctx, args) {
|
|
284
|
-
const { title, startDate, endDate, location, notes, preferredSource } = args;
|
|
337
|
+
const { title, startDate, endDate, location, notes, preferredSource, eventType, autoDeclineMode, declineMessage, chatStatus, workingLocationType, workingLocationLabel, birthdayType, } = args;
|
|
285
338
|
const config = ctx.getConfig();
|
|
286
339
|
if (!config) {
|
|
287
340
|
return createToolResponse({
|
|
@@ -302,6 +355,7 @@ export async function handleCreateCalendarEvent(ctx, args) {
|
|
|
302
355
|
message: '有効なカレンダーソースがありません。設定でEventKitまたはGoogle Calendarを有効にしてください。',
|
|
303
356
|
});
|
|
304
357
|
}
|
|
358
|
+
// Build base request using CreateEventRequest type
|
|
305
359
|
const request = {
|
|
306
360
|
title,
|
|
307
361
|
start: startDate,
|
|
@@ -309,10 +363,121 @@ export async function handleCreateCalendarEvent(ctx, args) {
|
|
|
309
363
|
location,
|
|
310
364
|
description: notes,
|
|
311
365
|
};
|
|
312
|
-
|
|
366
|
+
// Determine effective event type (default to 'default' if not specified)
|
|
367
|
+
// Input eventType is string | undefined, need to cast to GoogleCalendarEventType
|
|
368
|
+
const effectiveEventType = (eventType || 'default');
|
|
369
|
+
// Validate eventType before proceeding
|
|
370
|
+
const validEventTypes = [
|
|
371
|
+
'default',
|
|
372
|
+
'outOfOffice',
|
|
373
|
+
'focusTime',
|
|
374
|
+
'workingLocation',
|
|
375
|
+
'birthday',
|
|
376
|
+
'fromGmail',
|
|
377
|
+
];
|
|
378
|
+
if (!validEventTypes.includes(effectiveEventType)) {
|
|
379
|
+
return createToolResponse({
|
|
380
|
+
success: false,
|
|
381
|
+
error: true,
|
|
382
|
+
message: `無効なイベントタイプです: ${eventType}。有効な値: ${validEventTypes.join(', ')}`,
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
// Add event type if not default
|
|
386
|
+
if (effectiveEventType !== 'default') {
|
|
387
|
+
request.eventType = effectiveEventType;
|
|
388
|
+
// Build type-specific properties based on eventType
|
|
389
|
+
switch (effectiveEventType) {
|
|
390
|
+
case 'outOfOffice':
|
|
391
|
+
if (autoDeclineMode) {
|
|
392
|
+
request.outOfOfficeProperties = {
|
|
393
|
+
autoDeclineMode: autoDeclineMode,
|
|
394
|
+
declineMessage,
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
break;
|
|
398
|
+
case 'focusTime':
|
|
399
|
+
if (autoDeclineMode) {
|
|
400
|
+
request.focusTimeProperties = {
|
|
401
|
+
autoDeclineMode: autoDeclineMode,
|
|
402
|
+
declineMessage,
|
|
403
|
+
chatStatus: chatStatus,
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
break;
|
|
407
|
+
case 'workingLocation':
|
|
408
|
+
if (workingLocationType) {
|
|
409
|
+
// Mark as all-day event (required for workingLocation)
|
|
410
|
+
request.isAllDay = true;
|
|
411
|
+
// Cast to the expected type
|
|
412
|
+
const locationType = workingLocationType;
|
|
413
|
+
// Build workingLocationProperties with all sub-properties at once
|
|
414
|
+
if (locationType === 'homeOffice') {
|
|
415
|
+
request.workingLocationProperties = {
|
|
416
|
+
type: locationType,
|
|
417
|
+
homeOffice: true,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
else if (locationType === 'customLocation' && workingLocationLabel) {
|
|
421
|
+
request.workingLocationProperties = {
|
|
422
|
+
type: locationType,
|
|
423
|
+
customLocation: {
|
|
424
|
+
label: workingLocationLabel,
|
|
425
|
+
},
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
else if (locationType === 'officeLocation') {
|
|
429
|
+
request.workingLocationProperties = {
|
|
430
|
+
type: locationType,
|
|
431
|
+
officeLocation: {
|
|
432
|
+
label: workingLocationLabel,
|
|
433
|
+
},
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
// Fallback: just set the type
|
|
438
|
+
request.workingLocationProperties = {
|
|
439
|
+
type: locationType,
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
break;
|
|
444
|
+
case 'birthday':
|
|
445
|
+
// Mark as all-day event (required for birthday)
|
|
446
|
+
request.isAllDay = true;
|
|
447
|
+
// Cast birthdayType to the expected type
|
|
448
|
+
const birthType = (birthdayType || 'birthday');
|
|
449
|
+
request.birthdayProperties = {
|
|
450
|
+
type: birthType,
|
|
451
|
+
};
|
|
452
|
+
break;
|
|
453
|
+
case 'fromGmail':
|
|
454
|
+
// fromGmail events cannot be created via API
|
|
455
|
+
return createToolResponse({
|
|
456
|
+
success: false,
|
|
457
|
+
error: true,
|
|
458
|
+
message: 'fromGmailイベントはAPIから作成できません。これらのイベントはGmailメッセージから自動生成されます。',
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
// Determine source routing: non-default event types must use Google Calendar
|
|
463
|
+
// because EventKit does not support event types
|
|
464
|
+
let effectivePreferredSource = preferredSource;
|
|
465
|
+
if (effectiveEventType !== 'default') {
|
|
466
|
+
// Force Google Calendar for non-default event types
|
|
467
|
+
if (!enabledSources.includes('google')) {
|
|
468
|
+
return createToolResponse({
|
|
469
|
+
success: false,
|
|
470
|
+
error: true,
|
|
471
|
+
message: `${effectiveEventType}イベントの作成にはGoogle Calendarが必要です。Google Calendarを有効にしてください。`,
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
effectivePreferredSource = 'google';
|
|
475
|
+
}
|
|
476
|
+
const event = await calendarSourceManager.createEvent(request, effectivePreferredSource);
|
|
313
477
|
// Use type assertion via unknown for optional fields
|
|
314
478
|
const eventRecord = event;
|
|
315
|
-
|
|
479
|
+
// Build response with event type information
|
|
480
|
+
const response = {
|
|
316
481
|
success: true,
|
|
317
482
|
eventId: event.id,
|
|
318
483
|
title: event.title,
|
|
@@ -321,8 +486,27 @@ export async function handleCreateCalendarEvent(ctx, args) {
|
|
|
321
486
|
source: event.source || 'unknown',
|
|
322
487
|
calendarName: eventRecord.calendar,
|
|
323
488
|
isAllDay: event.isAllDay,
|
|
324
|
-
|
|
325
|
-
|
|
489
|
+
};
|
|
490
|
+
// Include eventType in response if not default
|
|
491
|
+
if (effectiveEventType !== 'default') {
|
|
492
|
+
response.eventType = effectiveEventType;
|
|
493
|
+
}
|
|
494
|
+
// Add type-specific info to message
|
|
495
|
+
let messageDetail = '';
|
|
496
|
+
if (effectiveEventType === 'outOfOffice') {
|
|
497
|
+
messageDetail = ' (不在設定)';
|
|
498
|
+
}
|
|
499
|
+
else if (effectiveEventType === 'focusTime') {
|
|
500
|
+
messageDetail = ' (フォーカスタイム)';
|
|
501
|
+
}
|
|
502
|
+
else if (effectiveEventType === 'workingLocation') {
|
|
503
|
+
messageDetail = ` (勤務場所: ${workingLocationType})`;
|
|
504
|
+
}
|
|
505
|
+
else if (effectiveEventType === 'birthday') {
|
|
506
|
+
messageDetail = ' (誕生日/記念日)';
|
|
507
|
+
}
|
|
508
|
+
response.message = `カレンダーイベントを作成しました: ${event.title}${messageDetail} (ソース: ${event.source || 'unknown'})`;
|
|
509
|
+
return createToolResponse(response);
|
|
326
510
|
}
|
|
327
511
|
catch (error) {
|
|
328
512
|
return createErrorFromCatch('カレンダーイベント作成に失敗しました', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/tools/calendar/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/tools/calendar/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,94 @@
|
|
|
4
4
|
* Design: .claude/specs/google-calendar-api/design.md (Data Models section)
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
* Google Calendar Event
|
|
7
|
+
* Google Calendar Event Type
|
|
8
|
+
* Represents all 6 event types supported by Google Calendar API v3
|
|
9
|
+
* Requirement: 6.2
|
|
10
|
+
*/
|
|
11
|
+
export type GoogleCalendarEventType = 'default' | 'outOfOffice' | 'focusTime' | 'workingLocation' | 'birthday' | 'fromGmail';
|
|
12
|
+
/**
|
|
13
|
+
* Auto Decline Mode for Out of Office and Focus Time events
|
|
14
|
+
* Requirement: 1, 2
|
|
15
|
+
*/
|
|
16
|
+
export type AutoDeclineMode = 'declineNone' | 'declineAllConflictingInvitations' | 'declineOnlyNewConflictingInvitations';
|
|
17
|
+
/**
|
|
18
|
+
* Out of Office Properties
|
|
19
|
+
* Used for vacation blocks and automatic decline functionality
|
|
20
|
+
* Requirement: 1
|
|
21
|
+
*/
|
|
22
|
+
export interface OutOfOfficeProperties {
|
|
23
|
+
autoDeclineMode: AutoDeclineMode;
|
|
24
|
+
declineMessage?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Focus Time Properties
|
|
28
|
+
* Used for deep work time blocks with Google Chat integration
|
|
8
29
|
* Requirement: 2
|
|
9
30
|
*/
|
|
31
|
+
export interface FocusTimeProperties {
|
|
32
|
+
autoDeclineMode: AutoDeclineMode;
|
|
33
|
+
declineMessage?: string;
|
|
34
|
+
chatStatus?: 'available' | 'doNotDisturb';
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Working Location Properties
|
|
38
|
+
* Records remote/office/custom location information
|
|
39
|
+
* Requirement: 3
|
|
40
|
+
*/
|
|
41
|
+
export interface WorkingLocationProperties {
|
|
42
|
+
type: 'homeOffice' | 'officeLocation' | 'customLocation';
|
|
43
|
+
homeOffice?: boolean;
|
|
44
|
+
customLocation?: {
|
|
45
|
+
label: string;
|
|
46
|
+
};
|
|
47
|
+
officeLocation?: {
|
|
48
|
+
buildingId?: string;
|
|
49
|
+
floorId?: string;
|
|
50
|
+
floorSectionId?: string;
|
|
51
|
+
deskId?: string;
|
|
52
|
+
label?: string;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Birthday Properties
|
|
57
|
+
* Manages birthdays, anniversaries, and other recurring personal events
|
|
58
|
+
* Requirement: 4
|
|
59
|
+
*/
|
|
60
|
+
export interface BirthdayProperties {
|
|
61
|
+
type: 'birthday' | 'anniversary' | 'custom' | 'other' | 'self';
|
|
62
|
+
customTypeName?: string;
|
|
63
|
+
/** People API resource name (read-only) */
|
|
64
|
+
readonly contact?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Event Type Specific Properties (discriminated union)
|
|
68
|
+
* Combines eventType with corresponding properties for type-safe handling
|
|
69
|
+
* Requirement: 6.3
|
|
70
|
+
*/
|
|
71
|
+
export type EventTypeSpecificProperties = {
|
|
72
|
+
eventType: 'default';
|
|
73
|
+
properties?: never;
|
|
74
|
+
} | {
|
|
75
|
+
eventType: 'outOfOffice';
|
|
76
|
+
properties: OutOfOfficeProperties;
|
|
77
|
+
} | {
|
|
78
|
+
eventType: 'focusTime';
|
|
79
|
+
properties: FocusTimeProperties;
|
|
80
|
+
} | {
|
|
81
|
+
eventType: 'workingLocation';
|
|
82
|
+
properties: WorkingLocationProperties;
|
|
83
|
+
} | {
|
|
84
|
+
eventType: 'birthday';
|
|
85
|
+
properties: BirthdayProperties;
|
|
86
|
+
} | {
|
|
87
|
+
eventType: 'fromGmail';
|
|
88
|
+
properties?: never;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Google Calendar Event (internal representation from Google Calendar API)
|
|
92
|
+
* Supports all 6 event types: default, outOfOffice, focusTime, workingLocation, birthday, fromGmail
|
|
93
|
+
* Requirement: 2, 6
|
|
94
|
+
*/
|
|
10
95
|
export interface GoogleCalendarEvent {
|
|
11
96
|
id: string;
|
|
12
97
|
summary: string;
|
|
@@ -40,6 +125,36 @@ export interface GoogleCalendarEvent {
|
|
|
40
125
|
email: string;
|
|
41
126
|
displayName?: string;
|
|
42
127
|
};
|
|
128
|
+
/**
|
|
129
|
+
* Event type from Google Calendar API
|
|
130
|
+
* Defaults to 'default' if not specified
|
|
131
|
+
* Requirement: 6.2
|
|
132
|
+
*/
|
|
133
|
+
eventType?: GoogleCalendarEventType;
|
|
134
|
+
/**
|
|
135
|
+
* Properties for out of office events (vacation, leave)
|
|
136
|
+
* Only present when eventType is 'outOfOffice'
|
|
137
|
+
* Requirement: 1
|
|
138
|
+
*/
|
|
139
|
+
outOfOfficeProperties?: OutOfOfficeProperties;
|
|
140
|
+
/**
|
|
141
|
+
* Properties for focus time events (deep work blocks)
|
|
142
|
+
* Only present when eventType is 'focusTime'
|
|
143
|
+
* Requirement: 2
|
|
144
|
+
*/
|
|
145
|
+
focusTimeProperties?: FocusTimeProperties;
|
|
146
|
+
/**
|
|
147
|
+
* Properties for working location events
|
|
148
|
+
* Only present when eventType is 'workingLocation'
|
|
149
|
+
* Requirement: 3
|
|
150
|
+
*/
|
|
151
|
+
workingLocationProperties?: WorkingLocationProperties;
|
|
152
|
+
/**
|
|
153
|
+
* Properties for birthday/anniversary events
|
|
154
|
+
* Only present when eventType is 'birthday'
|
|
155
|
+
* Requirement: 4
|
|
156
|
+
*/
|
|
157
|
+
birthdayProperties?: BirthdayProperties;
|
|
43
158
|
}
|
|
44
159
|
/**
|
|
45
160
|
* OAuth tokens for Google Calendar API
|
|
@@ -105,6 +220,7 @@ export interface SyncStatus {
|
|
|
105
220
|
/**
|
|
106
221
|
* Extended Calendar Event with additional fields for Google Calendar integration
|
|
107
222
|
* Extends the base CalendarEvent from calendar-service.ts
|
|
223
|
+
* Supports event types and type-specific properties for enhanced functionality
|
|
108
224
|
* Requirement: 2, 3, 4, 5, 6
|
|
109
225
|
*/
|
|
110
226
|
export interface CalendarEvent {
|
|
@@ -120,12 +236,43 @@ export interface CalendarEvent {
|
|
|
120
236
|
attendees?: string[];
|
|
121
237
|
status?: 'confirmed' | 'tentative' | 'cancelled';
|
|
122
238
|
iCalUID?: string;
|
|
239
|
+
/**
|
|
240
|
+
* Event type for Google Calendar events
|
|
241
|
+
* Defaults to 'default' for standard events
|
|
242
|
+
* Requirement: 6.2
|
|
243
|
+
*/
|
|
244
|
+
eventType?: GoogleCalendarEventType;
|
|
245
|
+
/**
|
|
246
|
+
* Type-specific properties combining eventType with corresponding properties
|
|
247
|
+
* Enables type-safe access to event-specific data
|
|
248
|
+
* Requirement: 6.3
|
|
249
|
+
*/
|
|
250
|
+
typeSpecificProperties?: EventTypeSpecificProperties;
|
|
123
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Detect event type from Google Calendar event
|
|
254
|
+
* Checks eventType field first, then falls back to detecting from type-specific properties
|
|
255
|
+
* Requirement: 6.2
|
|
256
|
+
* @param googleEvent Google Calendar API event object
|
|
257
|
+
* @returns GoogleCalendarEventType ('default' if not detected)
|
|
258
|
+
*/
|
|
259
|
+
export declare function detectEventType(googleEvent: GoogleCalendarEvent): GoogleCalendarEventType;
|
|
260
|
+
/**
|
|
261
|
+
* Extract type-specific properties from Google Calendar event
|
|
262
|
+
* Returns the appropriate properties object based on detected eventType
|
|
263
|
+
* Requirement: 6.3
|
|
264
|
+
* @param googleEvent Google Calendar API event object
|
|
265
|
+
* @param eventType The detected event type
|
|
266
|
+
* @returns EventTypeSpecificProperties or undefined for 'default' and 'fromGmail' types
|
|
267
|
+
*/
|
|
268
|
+
export declare function extractTypeSpecificProperties(googleEvent: GoogleCalendarEvent, eventType: GoogleCalendarEventType): EventTypeSpecificProperties | undefined;
|
|
124
269
|
/**
|
|
125
270
|
* Convert Google Calendar Event to unified CalendarEvent format
|
|
126
|
-
*
|
|
271
|
+
* Calls detectEventType() to determine eventType and extractTypeSpecificProperties() for type-specific data
|
|
272
|
+
* Preserves all existing fields for backward compatibility
|
|
273
|
+
* Requirement: 2, 6, 6.2, 6.3, 8.4, 9.3
|
|
127
274
|
* @param googleEvent Google Calendar API event object
|
|
128
|
-
* @returns Unified CalendarEvent object
|
|
275
|
+
* @returns Unified CalendarEvent object with eventType and typeSpecificProperties
|
|
129
276
|
*/
|
|
130
277
|
export declare function convertGoogleToCalendarEvent(googleEvent: GoogleCalendarEvent): CalendarEvent;
|
|
131
278
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-calendar-types.d.ts","sourceRoot":"","sources":["../../src/types/google-calendar-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"google-calendar-types.d.ts","sourceRoot":"","sources":["../../src/types/google-calendar-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,88 @@
|
|
|
3
3
|
* Requirement: 1, 2, 3, 4, 5, 6
|
|
4
4
|
* Design: .claude/specs/google-calendar-api/design.md (Data Models section)
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Detect event type from Google Calendar event
|
|
8
|
+
* Checks eventType field first, then falls back to detecting from type-specific properties
|
|
9
|
+
* Requirement: 6.2
|
|
10
|
+
* @param googleEvent Google Calendar API event object
|
|
11
|
+
* @returns GoogleCalendarEventType ('default' if not detected)
|
|
12
|
+
*/
|
|
13
|
+
export function detectEventType(googleEvent) {
|
|
14
|
+
// Primary: Check for explicit eventType field
|
|
15
|
+
if (googleEvent.eventType) {
|
|
16
|
+
return googleEvent.eventType;
|
|
17
|
+
}
|
|
18
|
+
// Fallback: Detect from type-specific properties
|
|
19
|
+
if (googleEvent.outOfOfficeProperties) {
|
|
20
|
+
return 'outOfOffice';
|
|
21
|
+
}
|
|
22
|
+
if (googleEvent.focusTimeProperties) {
|
|
23
|
+
return 'focusTime';
|
|
24
|
+
}
|
|
25
|
+
if (googleEvent.workingLocationProperties) {
|
|
26
|
+
return 'workingLocation';
|
|
27
|
+
}
|
|
28
|
+
if (googleEvent.birthdayProperties) {
|
|
29
|
+
return 'birthday';
|
|
30
|
+
}
|
|
31
|
+
// Default to 'default' if no eventType detected
|
|
32
|
+
return 'default';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Extract type-specific properties from Google Calendar event
|
|
36
|
+
* Returns the appropriate properties object based on detected eventType
|
|
37
|
+
* Requirement: 6.3
|
|
38
|
+
* @param googleEvent Google Calendar API event object
|
|
39
|
+
* @param eventType The detected event type
|
|
40
|
+
* @returns EventTypeSpecificProperties or undefined for 'default' and 'fromGmail' types
|
|
41
|
+
*/
|
|
42
|
+
export function extractTypeSpecificProperties(googleEvent, eventType) {
|
|
43
|
+
switch (eventType) {
|
|
44
|
+
case 'outOfOffice':
|
|
45
|
+
if (googleEvent.outOfOfficeProperties) {
|
|
46
|
+
return { eventType: 'outOfOffice', properties: googleEvent.outOfOfficeProperties };
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
case 'focusTime':
|
|
50
|
+
if (googleEvent.focusTimeProperties) {
|
|
51
|
+
return { eventType: 'focusTime', properties: googleEvent.focusTimeProperties };
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
case 'workingLocation':
|
|
55
|
+
if (googleEvent.workingLocationProperties) {
|
|
56
|
+
return { eventType: 'workingLocation', properties: googleEvent.workingLocationProperties };
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
case 'birthday':
|
|
60
|
+
if (googleEvent.birthdayProperties) {
|
|
61
|
+
return { eventType: 'birthday', properties: googleEvent.birthdayProperties };
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
case 'fromGmail':
|
|
65
|
+
// fromGmail events have no type-specific properties
|
|
66
|
+
return undefined;
|
|
67
|
+
case 'default':
|
|
68
|
+
default:
|
|
69
|
+
// default events have no type-specific properties
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
6
73
|
/**
|
|
7
74
|
* Convert Google Calendar Event to unified CalendarEvent format
|
|
8
|
-
*
|
|
75
|
+
* Calls detectEventType() to determine eventType and extractTypeSpecificProperties() for type-specific data
|
|
76
|
+
* Preserves all existing fields for backward compatibility
|
|
77
|
+
* Requirement: 2, 6, 6.2, 6.3, 8.4, 9.3
|
|
9
78
|
* @param googleEvent Google Calendar API event object
|
|
10
|
-
* @returns Unified CalendarEvent object
|
|
79
|
+
* @returns Unified CalendarEvent object with eventType and typeSpecificProperties
|
|
11
80
|
*/
|
|
12
81
|
export function convertGoogleToCalendarEvent(googleEvent) {
|
|
82
|
+
// Detect event type using helper function
|
|
83
|
+
const eventType = detectEventType(googleEvent);
|
|
84
|
+
// Extract type-specific properties using helper function
|
|
85
|
+
const typeSpecificProperties = extractTypeSpecificProperties(googleEvent, eventType);
|
|
13
86
|
return {
|
|
87
|
+
// Existing fields (backward compatibility)
|
|
14
88
|
id: googleEvent.id,
|
|
15
89
|
title: googleEvent.summary,
|
|
16
90
|
start: googleEvent.start.dateTime || googleEvent.start.date || '',
|
|
@@ -23,6 +97,9 @@ export function convertGoogleToCalendarEvent(googleEvent) {
|
|
|
23
97
|
attendees: googleEvent.attendees?.map((a) => a.email),
|
|
24
98
|
status: googleEvent.status,
|
|
25
99
|
iCalUID: googleEvent.iCalUID,
|
|
100
|
+
// New fields for event type support
|
|
101
|
+
eventType,
|
|
102
|
+
typeSpecificProperties,
|
|
26
103
|
};
|
|
27
104
|
}
|
|
28
105
|
/**
|