@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.
Files changed (110) hide show
  1. package/README.md +31 -0
  2. package/dist/cli/http-server-with-config.d.ts +2 -0
  3. package/dist/cli/http-server-with-config.d.ts.map +1 -1
  4. package/dist/cli/http-server-with-config.js +71 -0
  5. package/dist/cli/http-server-with-config.js.map +1 -1
  6. package/dist/cli/main-entry.d.ts.map +1 -1
  7. package/dist/cli/main-entry.js +1 -0
  8. package/dist/cli/main-entry.js.map +1 -1
  9. package/dist/cli/parser.d.ts +2 -0
  10. package/dist/cli/parser.d.ts.map +1 -1
  11. package/dist/cli/parser.js +7 -0
  12. package/dist/cli/parser.js.map +1 -1
  13. package/dist/config/validation.d.ts +721 -0
  14. package/dist/config/validation.d.ts.map +1 -1
  15. package/dist/config/validation.js +203 -0
  16. package/dist/config/validation.js.map +1 -1
  17. package/dist/index.js +11 -10
  18. package/dist/index.js.map +1 -1
  19. package/dist/integrations/apple-reminders.d.ts.map +1 -1
  20. package/dist/integrations/apple-reminders.js +6 -5
  21. package/dist/integrations/apple-reminders.js.map +1 -1
  22. package/dist/integrations/calendar-event-creator.d.ts.map +1 -1
  23. package/dist/integrations/calendar-event-creator.js +2 -1
  24. package/dist/integrations/calendar-event-creator.js.map +1 -1
  25. package/dist/integrations/calendar-event-deleter.d.ts.map +1 -1
  26. package/dist/integrations/calendar-event-deleter.js +2 -1
  27. package/dist/integrations/calendar-event-deleter.js.map +1 -1
  28. package/dist/integrations/calendar-event-response.d.ts.map +1 -1
  29. package/dist/integrations/calendar-event-response.js +4 -3
  30. package/dist/integrations/calendar-event-response.js.map +1 -1
  31. package/dist/integrations/calendar-service.d.ts +14 -0
  32. package/dist/integrations/calendar-service.d.ts.map +1 -1
  33. package/dist/integrations/calendar-service.js +6 -5
  34. package/dist/integrations/calendar-service.js.map +1 -1
  35. package/dist/integrations/calendar-source-manager.d.ts +86 -3
  36. package/dist/integrations/calendar-source-manager.d.ts.map +1 -1
  37. package/dist/integrations/calendar-source-manager.js +152 -20
  38. package/dist/integrations/calendar-source-manager.js.map +1 -1
  39. package/dist/integrations/google-calendar-service.d.ts +55 -3
  40. package/dist/integrations/google-calendar-service.d.ts.map +1 -1
  41. package/dist/integrations/google-calendar-service.js +215 -5
  42. package/dist/integrations/google-calendar-service.js.map +1 -1
  43. package/dist/integrations/notion-mcp.d.ts.map +1 -1
  44. package/dist/integrations/notion-mcp.js +5 -4
  45. package/dist/integrations/notion-mcp.js.map +1 -1
  46. package/dist/integrations/todo-list-manager.d.ts.map +1 -1
  47. package/dist/integrations/todo-list-manager.js +3 -2
  48. package/dist/integrations/todo-list-manager.js.map +1 -1
  49. package/dist/oauth/encryption-service.d.ts +104 -0
  50. package/dist/oauth/encryption-service.d.ts.map +1 -0
  51. package/dist/oauth/encryption-service.js +271 -0
  52. package/dist/oauth/encryption-service.js.map +1 -0
  53. package/dist/oauth/file-mutex.d.ts +68 -0
  54. package/dist/oauth/file-mutex.d.ts.map +1 -0
  55. package/dist/oauth/file-mutex.js +141 -0
  56. package/dist/oauth/file-mutex.js.map +1 -0
  57. package/dist/oauth/google-oauth-handler.d.ts +8 -9
  58. package/dist/oauth/google-oauth-handler.d.ts.map +1 -1
  59. package/dist/oauth/google-oauth-handler.js +30 -65
  60. package/dist/oauth/google-oauth-handler.js.map +1 -1
  61. package/dist/oauth/index.d.ts +1 -0
  62. package/dist/oauth/index.d.ts.map +1 -1
  63. package/dist/oauth/index.js +2 -0
  64. package/dist/oauth/index.js.map +1 -1
  65. package/dist/oauth/oauth-server.d.ts +61 -1
  66. package/dist/oauth/oauth-server.d.ts.map +1 -1
  67. package/dist/oauth/oauth-server.js +177 -40
  68. package/dist/oauth/oauth-server.js.map +1 -1
  69. package/dist/oauth/persistent-client-store.d.ts +58 -0
  70. package/dist/oauth/persistent-client-store.d.ts.map +1 -0
  71. package/dist/oauth/persistent-client-store.js +188 -0
  72. package/dist/oauth/persistent-client-store.js.map +1 -0
  73. package/dist/oauth/persistent-refresh-token-store.d.ts +77 -0
  74. package/dist/oauth/persistent-refresh-token-store.d.ts.map +1 -0
  75. package/dist/oauth/persistent-refresh-token-store.js +226 -0
  76. package/dist/oauth/persistent-refresh-token-store.js.map +1 -0
  77. package/dist/oauth/persistent-session-store.d.ts +69 -0
  78. package/dist/oauth/persistent-session-store.d.ts.map +1 -0
  79. package/dist/oauth/persistent-session-store.js +155 -0
  80. package/dist/oauth/persistent-session-store.js.map +1 -0
  81. package/dist/oauth/session-store.d.ts +31 -0
  82. package/dist/oauth/session-store.d.ts.map +1 -0
  83. package/dist/oauth/session-store.js +47 -0
  84. package/dist/oauth/session-store.js.map +1 -0
  85. package/dist/remote/cloud-config.d.ts.map +1 -1
  86. package/dist/remote/cloud-config.js +2 -1
  87. package/dist/remote/cloud-config.js.map +1 -1
  88. package/dist/services/container.d.ts.map +1 -1
  89. package/dist/services/container.js +3 -2
  90. package/dist/services/container.js.map +1 -1
  91. package/dist/services/working-cadence.d.ts +37 -1
  92. package/dist/services/working-cadence.d.ts.map +1 -1
  93. package/dist/services/working-cadence.js +152 -13
  94. package/dist/services/working-cadence.js.map +1 -1
  95. package/dist/tools/calendar/handlers.d.ts +82 -3
  96. package/dist/tools/calendar/handlers.d.ts.map +1 -1
  97. package/dist/tools/calendar/handlers.js +200 -16
  98. package/dist/tools/calendar/handlers.js.map +1 -1
  99. package/dist/types/google-calendar-types.d.ts +150 -3
  100. package/dist/types/google-calendar-types.d.ts.map +1 -1
  101. package/dist/types/google-calendar-types.js +79 -2
  102. package/dist/types/google-calendar-types.js.map +1 -1
  103. package/dist/types/task.d.ts +14 -0
  104. package/dist/types/task.d.ts.map +1 -1
  105. package/dist/utils/logger.d.ts +28 -0
  106. package/dist/utils/logger.d.ts.map +1 -0
  107. package/dist/utils/logger.js +61 -0
  108. package/dist/utils/logger.js.map +1 -0
  109. package/dist/version.js +1 -1
  110. 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
- * Requirement: 16.1-16.12, Task 27
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
- const events = await calendarSourceManager.getEvents(startDate, endDate, calendarId);
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
- // Use type assertion via unknown for optional fields added in Task 25
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: eventRecord.calendar,
125
- location: eventRecord.location,
126
- source: eventRecord.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
- const event = await calendarSourceManager.createEvent(request, preferredSource);
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
- return createToolResponse({
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
- message: `カレンダーイベントを作成しました: ${event.title} (ソース: ${event.source || 'unknown'})`,
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 (internal representation from Google Calendar API)
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
- * Requirement: 2
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":"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"}
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
- * Requirement: 2
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
  /**