@shin1ohno/sage 0.2.4 → 0.5.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 (96) hide show
  1. package/dist/cli/http-server-with-config.d.ts +38 -0
  2. package/dist/cli/http-server-with-config.d.ts.map +1 -0
  3. package/dist/cli/http-server-with-config.js +458 -0
  4. package/dist/cli/http-server-with-config.js.map +1 -0
  5. package/dist/cli/http-server.d.ts +74 -0
  6. package/dist/cli/http-server.d.ts.map +1 -0
  7. package/dist/cli/http-server.js +407 -0
  8. package/dist/cli/http-server.js.map +1 -0
  9. package/dist/cli/jwt-middleware.d.ts +36 -0
  10. package/dist/cli/jwt-middleware.d.ts.map +1 -0
  11. package/dist/cli/jwt-middleware.js +99 -0
  12. package/dist/cli/jwt-middleware.js.map +1 -0
  13. package/dist/cli/main-entry.d.ts +41 -0
  14. package/dist/cli/main-entry.d.ts.map +1 -0
  15. package/dist/cli/main-entry.js +80 -0
  16. package/dist/cli/main-entry.js.map +1 -0
  17. package/dist/cli/mcp-handler.d.ts +56 -0
  18. package/dist/cli/mcp-handler.d.ts.map +1 -0
  19. package/dist/cli/mcp-handler.js +2189 -0
  20. package/dist/cli/mcp-handler.js.map +1 -0
  21. package/dist/cli/parser.d.ts +43 -0
  22. package/dist/cli/parser.d.ts.map +1 -0
  23. package/dist/cli/parser.js +162 -0
  24. package/dist/cli/parser.js.map +1 -0
  25. package/dist/cli/remote-config-loader.d.ts +85 -0
  26. package/dist/cli/remote-config-loader.d.ts.map +1 -0
  27. package/dist/cli/remote-config-loader.js +129 -0
  28. package/dist/cli/remote-config-loader.js.map +1 -0
  29. package/dist/cli/secret-auth.d.ts +47 -0
  30. package/dist/cli/secret-auth.d.ts.map +1 -0
  31. package/dist/cli/secret-auth.js +165 -0
  32. package/dist/cli/secret-auth.js.map +1 -0
  33. package/dist/cli/sse-stream-handler.d.ts +45 -0
  34. package/dist/cli/sse-stream-handler.d.ts.map +1 -0
  35. package/dist/cli/sse-stream-handler.js +125 -0
  36. package/dist/cli/sse-stream-handler.js.map +1 -0
  37. package/dist/index.js +885 -209
  38. package/dist/index.js.map +1 -1
  39. package/dist/integrations/calendar-event-creator.d.ts +152 -0
  40. package/dist/integrations/calendar-event-creator.d.ts.map +1 -0
  41. package/dist/integrations/calendar-event-creator.js +507 -0
  42. package/dist/integrations/calendar-event-creator.js.map +1 -0
  43. package/dist/integrations/calendar-event-deleter.d.ts +137 -0
  44. package/dist/integrations/calendar-event-deleter.d.ts.map +1 -0
  45. package/dist/integrations/calendar-event-deleter.js +378 -0
  46. package/dist/integrations/calendar-event-deleter.js.map +1 -0
  47. package/dist/integrations/calendar-event-response.d.ts +213 -0
  48. package/dist/integrations/calendar-event-response.d.ts.map +1 -0
  49. package/dist/integrations/calendar-event-response.js +560 -0
  50. package/dist/integrations/calendar-event-response.js.map +1 -0
  51. package/dist/integrations/calendar-service.d.ts +85 -10
  52. package/dist/integrations/calendar-service.d.ts.map +1 -1
  53. package/dist/integrations/calendar-service.js +317 -35
  54. package/dist/integrations/calendar-service.js.map +1 -1
  55. package/dist/oauth/client-store.d.ts +36 -0
  56. package/dist/oauth/client-store.d.ts.map +1 -0
  57. package/dist/oauth/client-store.js +104 -0
  58. package/dist/oauth/client-store.js.map +1 -0
  59. package/dist/oauth/code-store.d.ts +48 -0
  60. package/dist/oauth/code-store.d.ts.map +1 -0
  61. package/dist/oauth/code-store.js +89 -0
  62. package/dist/oauth/code-store.js.map +1 -0
  63. package/dist/oauth/index.d.ts +13 -0
  64. package/dist/oauth/index.d.ts.map +1 -0
  65. package/dist/oauth/index.js +21 -0
  66. package/dist/oauth/index.js.map +1 -0
  67. package/dist/oauth/oauth-handler.d.ts +101 -0
  68. package/dist/oauth/oauth-handler.d.ts.map +1 -0
  69. package/dist/oauth/oauth-handler.js +577 -0
  70. package/dist/oauth/oauth-handler.js.map +1 -0
  71. package/dist/oauth/oauth-server.d.ts +165 -0
  72. package/dist/oauth/oauth-server.d.ts.map +1 -0
  73. package/dist/oauth/oauth-server.js +489 -0
  74. package/dist/oauth/oauth-server.js.map +1 -0
  75. package/dist/oauth/pkce.d.ts +48 -0
  76. package/dist/oauth/pkce.d.ts.map +1 -0
  77. package/dist/oauth/pkce.js +106 -0
  78. package/dist/oauth/pkce.js.map +1 -0
  79. package/dist/oauth/refresh-token-store.d.ts +45 -0
  80. package/dist/oauth/refresh-token-store.d.ts.map +1 -0
  81. package/dist/oauth/refresh-token-store.js +98 -0
  82. package/dist/oauth/refresh-token-store.js.map +1 -0
  83. package/dist/oauth/token-service.d.ts +46 -0
  84. package/dist/oauth/token-service.d.ts.map +1 -0
  85. package/dist/oauth/token-service.js +199 -0
  86. package/dist/oauth/token-service.js.map +1 -0
  87. package/dist/oauth/types.d.ts +264 -0
  88. package/dist/oauth/types.d.ts.map +1 -0
  89. package/dist/oauth/types.js +37 -0
  90. package/dist/oauth/types.js.map +1 -0
  91. package/dist/version.d.ts +9 -0
  92. package/dist/version.d.ts.map +1 -0
  93. package/dist/version.js +11 -0
  94. package/dist/version.js.map +1 -0
  95. package/manifest.json +12 -20
  96. package/package.json +1 -1
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Calendar Service
3
- * macOS AppleScript integration for Calendar.app
3
+ * macOS EventKit integration via AppleScriptObjC
4
4
  * Requirements: 6.1-6.9
5
5
  *
6
- * 現行実装: macOS AppleScript経由
6
+ * 現行実装: macOS EventKit経由(AppleScriptObjCを使用)
7
+ * - EventKitは繰り返しイベントを個々の発生(occurrence)に自動展開
8
+ * - Calendar.appのネイティブAppleScriptでは不可能な機能を提供
7
9
  * 将来対応予定: iOS/iPadOS ネイティブ統合(Claude Skills APIがデバイスAPIへのアクセスを提供した時点)
8
10
  */
9
11
  /**
@@ -16,9 +18,9 @@ export interface CalendarPlatformInfo {
16
18
  requiresPermission: boolean;
17
19
  hasNativeAccess: boolean;
18
20
  }
19
- export type CalendarMethod = 'native' | 'applescript' | 'caldav' | 'ical_url' | 'manual_input' | 'outlook';
21
+ export type CalendarMethod = 'native' | 'eventkit' | 'caldav' | 'ical_url' | 'manual_input' | 'outlook';
20
22
  /**
21
- * Calendar event
23
+ * Calendar event (basic)
22
24
  */
23
25
  export interface CalendarEvent {
24
26
  id: string;
@@ -28,6 +30,35 @@ export interface CalendarEvent {
28
30
  isAllDay: boolean;
29
31
  source: string;
30
32
  }
33
+ /**
34
+ * Calendar event with additional details
35
+ * Requirement: 16.10
36
+ */
37
+ export interface CalendarEventDetailed extends CalendarEvent {
38
+ calendar: string;
39
+ location?: string;
40
+ }
41
+ /**
42
+ * Request for listing calendar events
43
+ * Requirement: 16.2, 16.3, 16.4
44
+ */
45
+ export interface ListEventsRequest {
46
+ startDate: string;
47
+ endDate: string;
48
+ calendarName?: string;
49
+ }
50
+ /**
51
+ * Response for listing calendar events
52
+ * Requirement: 16.10
53
+ */
54
+ export interface ListEventsResponse {
55
+ events: CalendarEventDetailed[];
56
+ period: {
57
+ start: string;
58
+ end: string;
59
+ };
60
+ totalEvents: number;
61
+ }
31
62
  /**
32
63
  * Slot request
33
64
  */
@@ -94,18 +125,26 @@ export declare class CalendarService {
94
125
  */
95
126
  private fetchNativeEvents;
96
127
  /**
97
- * Fetch events via AppleScript (macOS)
128
+ * Fetch events via EventKit (macOS)
129
+ * Uses AppleScriptObjC to access EventKit framework
98
130
  * Requirement: 6.3
99
131
  */
100
- private fetchAppleScriptEvents;
132
+ private fetchEventKitEvents;
133
+ /**
134
+ * Parse ISO 8601 date string into components
135
+ */
136
+ private parseDateComponents;
101
137
  /**
102
- * Build AppleScript for fetching events
138
+ * Build AppleScriptObjC script for fetching events using EventKit
139
+ * Note: Uses EventKit framework to properly handle recurring events
140
+ * EventKit expands recurring events into individual occurrences, unlike Calendar.app's native AppleScript
103
141
  */
104
- private buildFetchEventsScript;
142
+ private buildEventKitScript;
105
143
  /**
106
- * Parse AppleScript result into events
144
+ * Parse EventKit result into events
145
+ * Format: title|start|end|id|isAllDay
107
146
  */
108
- parseAppleScriptResult(output: string): CalendarEvent[];
147
+ parseEventKitResult(output: string): CalendarEvent[];
109
148
  /**
110
149
  * Find available slots from events
111
150
  * Requirement: 6.4, 6.7
@@ -121,6 +160,42 @@ export declare class CalendarService {
121
160
  * Requirement: 6.9
122
161
  */
123
162
  generateManualInputPrompt(startDate: string, endDate: string): string;
163
+ /**
164
+ * List calendar events for a specified period
165
+ * Requirement: 16.1
166
+ */
167
+ listEvents(request: ListEventsRequest): Promise<ListEventsResponse>;
168
+ /**
169
+ * Validate ISO 8601 date format (YYYY-MM-DD)
170
+ */
171
+ private isValidDateFormat;
172
+ /**
173
+ * Fetch events with detailed information (calendar, location)
174
+ * Requirement: 16.10, 16.11
175
+ */
176
+ fetchEventsDetailed(startDate: string, endDate: string): Promise<CalendarEventDetailed[]>;
177
+ /**
178
+ * Fetch events via EventKit with detailed information
179
+ * Requirement: 16.10, 16.11
180
+ */
181
+ private fetchEventKitEventsDetailed;
182
+ /**
183
+ * Build AppleScriptObjC script for fetching events with details
184
+ * Includes calendar name and location
185
+ * Requirement: 16.10
186
+ */
187
+ buildEventKitScriptWithDetails(startDate: string, endDate: string): string;
188
+ /**
189
+ * Parse EventKit result with detailed information
190
+ * Format: title|start|end|id|isAllDay|calendar|location
191
+ * Requirement: 16.10
192
+ */
193
+ parseEventKitResultWithDetails(output: string): CalendarEventDetailed[];
194
+ /**
195
+ * Format AppleScript date string to JST ISO 8601 format
196
+ * Requirement: 16.9
197
+ */
198
+ private formatDateToJST;
124
199
  }
125
200
  export {};
126
201
  //# sourceMappingURL=calendar-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-service.d.ts","sourceRoot":"","sources":["../../src/integrations/calendar-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACzD,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,iBAAiB,EAAE,cAAc,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAE3G;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,YAAY,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,eAAe,GAAG,QAAQ,CAAC;IAClD,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,UAAU,cAAc;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAsD;IAE5E;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAuDrD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgB/E;;;;;OAKG;YACW,iBAAiB;IAS/B;;;OAGG;YACW,sBAAsB;IA8BpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE;IAyBvD;;;OAGG;IACH,4BAA4B,CAC1B,MAAM,EAAE,aAAa,EAAE,EACvB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACX,aAAa,EAAE;IAuElB;;;OAGG;IACH,oBAAoB,CAClB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,cAAc,GACrB,aAAa;IA0BhB;;;OAGG;IACH,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CActE"}
1
+ {"version":3,"file":"calendar-service.d.ts","sourceRoot":"","sources":["../../src/integrations/calendar-service.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Calendar Service
3
- * macOS AppleScript integration for Calendar.app
3
+ * macOS EventKit integration via AppleScriptObjC
4
4
  * Requirements: 6.1-6.9
5
5
  *
6
- * 現行実装: macOS AppleScript経由
6
+ * 現行実装: macOS EventKit経由(AppleScriptObjCを使用)
7
+ * - EventKitは繰り返しイベントを個々の発生(occurrence)に自動展開
8
+ * - Calendar.appのネイティブAppleScriptでは不可能な機能を提供
7
9
  * 将来対応予定: iOS/iPadOS ネイティブ統合(Claude Skills APIがデバイスAPIへのアクセスを提供した時点)
8
10
  */
9
11
  import { retryWithBackoff, isRetryableError } from '../utils/retry.js';
@@ -31,8 +33,8 @@ export class CalendarService {
31
33
  if (typeof process !== 'undefined' && process.platform === 'darwin') {
32
34
  return {
33
35
  platform: 'macos',
34
- availableMethods: ['applescript', 'caldav'],
35
- recommendedMethod: 'applescript',
36
+ availableMethods: ['eventkit', 'caldav'],
37
+ recommendedMethod: 'eventkit',
36
38
  requiresPermission: true,
37
39
  hasNativeAccess: true,
38
40
  };
@@ -91,8 +93,8 @@ export class CalendarService {
91
93
  switch (platform.recommendedMethod) {
92
94
  case 'native':
93
95
  return this.fetchNativeEvents(startDate, endDate);
94
- case 'applescript':
95
- return this.fetchAppleScriptEvents(startDate, endDate);
96
+ case 'eventkit':
97
+ return this.fetchEventKitEvents(startDate, endDate);
96
98
  case 'manual_input':
97
99
  default:
98
100
  return [];
@@ -111,58 +113,115 @@ export class CalendarService {
111
113
  return [];
112
114
  }
113
115
  /**
114
- * Fetch events via AppleScript (macOS)
116
+ * Fetch events via EventKit (macOS)
117
+ * Uses AppleScriptObjC to access EventKit framework
115
118
  * Requirement: 6.3
116
119
  */
117
- async fetchAppleScriptEvents(startDate, endDate) {
120
+ async fetchEventKitEvents(startDate, endDate) {
118
121
  try {
119
- // Lazy load run-applescript
122
+ // Lazy load run-applescript (used to execute AppleScriptObjC with EventKit)
120
123
  if (!this.runAppleScript) {
121
124
  const module = await import('run-applescript');
122
125
  this.runAppleScript = module.runAppleScript;
123
126
  }
124
- const script = this.buildFetchEventsScript(startDate, endDate);
125
- // Use retry with exponential backoff for AppleScript execution
127
+ const script = this.buildEventKitScript(startDate, endDate);
128
+ // Use retry with exponential backoff for EventKit execution
126
129
  const result = await retryWithBackoff(async () => {
127
130
  return await this.runAppleScript(script);
128
131
  }, {
129
132
  ...RETRY_OPTIONS,
130
133
  onRetry: (error, attempt) => {
131
- console.error(`AppleScript Calendar retry attempt ${attempt}: ${error.message}`);
134
+ console.error(`EventKit Calendar retry attempt ${attempt}: ${error.message}`);
132
135
  },
133
136
  });
134
- return this.parseAppleScriptResult(result);
137
+ return this.parseEventKitResult(result);
135
138
  }
136
139
  catch (error) {
137
- console.error('AppleScript カレンダーエラー:', error);
140
+ console.error('EventKit カレンダーエラー:', error);
138
141
  return [];
139
142
  }
140
143
  }
141
144
  /**
142
- * Build AppleScript for fetching events
145
+ * Parse ISO 8601 date string into components
143
146
  */
144
- buildFetchEventsScript(startDate, endDate) {
147
+ parseDateComponents(dateStr) {
148
+ const date = new Date(dateStr);
149
+ return {
150
+ year: date.getFullYear(),
151
+ month: date.getMonth() + 1,
152
+ day: date.getDate(),
153
+ };
154
+ }
155
+ /**
156
+ * Build AppleScriptObjC script for fetching events using EventKit
157
+ * Note: Uses EventKit framework to properly handle recurring events
158
+ * EventKit expands recurring events into individual occurrences, unlike Calendar.app's native AppleScript
159
+ */
160
+ buildEventKitScript(startDate, endDate) {
161
+ const start = this.parseDateComponents(startDate);
162
+ const end = this.parseDateComponents(endDate);
145
163
  return `
146
- tell application "Calendar"
147
- set startDate to date "${startDate}"
148
- set endDate to date "${endDate}"
149
- set eventList to ""
164
+ use AppleScript version "2.7"
165
+ use framework "Foundation"
166
+ use framework "EventKit"
167
+ use scripting additions
168
+
169
+ -- Build start date
170
+ set startDate to current date
171
+ set year of startDate to ${start.year}
172
+ set month of startDate to ${start.month}
173
+ set day of startDate to ${start.day}
174
+ set hours of startDate to 0
175
+ set minutes of startDate to 0
176
+ set seconds of startDate to 0
177
+
178
+ -- Build end date (end of day)
179
+ set endDate to current date
180
+ set year of endDate to ${end.year}
181
+ set month of endDate to ${end.month}
182
+ set day of endDate to ${end.day}
183
+ set hours of endDate to 23
184
+ set minutes of endDate to 59
185
+ set seconds of endDate to 59
186
+
187
+ -- Create EventKit store
188
+ set theStore to current application's EKEventStore's alloc()'s init()
189
+
190
+ -- Request calendar access (synchronously wait for completion)
191
+ set accessGranted to false
192
+ theStore's requestFullAccessToEventsWithCompletion:(missing value)
193
+ delay 0.5
194
+
195
+ -- Convert AppleScript dates to NSDate
196
+ set startNSDate to current application's NSDate's dateWithTimeIntervalSince1970:((startDate - (date "Thursday, January 1, 1970 at 9:00:00")) / 1)
197
+ set endNSDate to current application's NSDate's dateWithTimeIntervalSince1970:((endDate - (date "Thursday, January 1, 1970 at 9:00:00")) / 1)
198
+
199
+ -- Create predicate for events in date range (all calendars)
200
+ set thePredicate to theStore's predicateForEventsWithStartDate:startNSDate endDate:endNSDate calendars:(missing value)
201
+
202
+ -- Fetch events (EventKit automatically expands recurring events into occurrences)
203
+ set theEvents to theStore's eventsMatchingPredicate:thePredicate
150
204
 
151
- repeat with cal in calendars
152
- set calEvents to (every event of cal whose start date ≥ startDate and start date ≤ endDate)
153
- repeat with evt in calEvents
154
- set eventInfo to (summary of evt) & "|" & (start date of evt as string) & "|" & (end date of evt as string) & "|" & (uid of evt)
155
- set eventList to eventList & eventInfo & linefeed
156
- end repeat
157
- end repeat
205
+ -- Build result string
206
+ set eventList to ""
207
+ repeat with anEvent in theEvents
208
+ set eventTitle to (anEvent's title()) as text
209
+ set eventStart to (anEvent's startDate()) as date
210
+ set eventEnd to (anEvent's endDate()) as date
211
+ set eventId to (anEvent's eventIdentifier()) as text
212
+ set isAllDay to (anEvent's isAllDay()) as boolean
158
213
 
159
- return eventList
160
- end tell`;
214
+ set eventInfo to eventTitle & "|" & (eventStart as string) & "|" & (eventEnd as string) & "|" & eventId & "|" & (isAllDay as string)
215
+ set eventList to eventList & eventInfo & linefeed
216
+ end repeat
217
+
218
+ return eventList`;
161
219
  }
162
220
  /**
163
- * Parse AppleScript result into events
221
+ * Parse EventKit result into events
222
+ * Format: title|start|end|id|isAllDay
164
223
  */
165
- parseAppleScriptResult(output) {
224
+ parseEventKitResult(output) {
166
225
  if (!output || output.trim() === '') {
167
226
  return [];
168
227
  }
@@ -176,8 +235,8 @@ end tell`;
176
235
  title: parts[0],
177
236
  start: parts[1],
178
237
  end: parts[2],
179
- isAllDay: false,
180
- source: 'applescript',
238
+ isAllDay: parts.length >= 5 ? parts[4].toLowerCase() === 'true' : false,
239
+ source: 'eventkit',
181
240
  });
182
241
  }
183
242
  }
@@ -225,7 +284,7 @@ end tell`;
225
284
  reason: `${Math.floor(gapMinutes)}分の空き時間`,
226
285
  conflicts: [],
227
286
  dayType: 'normal',
228
- source: 'applescript',
287
+ source: 'eventkit',
229
288
  });
230
289
  }
231
290
  currentTime = event.end > currentTime ? event.end : currentTime;
@@ -241,7 +300,7 @@ end tell`;
241
300
  reason: `${Math.floor(remainingMinutes)}分の空き時間`,
242
301
  conflicts: [],
243
302
  dayType: 'normal',
244
- source: 'applescript',
303
+ source: 'eventkit',
245
304
  });
246
305
  }
247
306
  return slots;
@@ -291,5 +350,228 @@ end tell`;
291
350
 
292
351
  これにより、空き時間を計算して最適なタスク実行時間を提案します。`;
293
352
  }
353
+ /**
354
+ * List calendar events for a specified period
355
+ * Requirement: 16.1
356
+ */
357
+ async listEvents(request) {
358
+ // Validate date format (ISO 8601)
359
+ if (!this.isValidDateFormat(request.startDate)) {
360
+ throw new Error(`無効な日付形式です: ${request.startDate}。ISO 8601形式(例: 2025-01-15)を使用してください。`);
361
+ }
362
+ if (!this.isValidDateFormat(request.endDate)) {
363
+ throw new Error(`無効な日付形式です: ${request.endDate}。ISO 8601形式(例: 2025-01-15)を使用してください。`);
364
+ }
365
+ // Validate date range
366
+ const startDate = new Date(request.startDate);
367
+ const endDate = new Date(request.endDate);
368
+ if (endDate < startDate) {
369
+ throw new Error('終了日は開始日より後である必要があります。');
370
+ }
371
+ // Check calendar availability
372
+ const isAvailable = await this.isAvailable();
373
+ if (!isAvailable) {
374
+ throw new Error('カレンダー統合がこのプラットフォームで利用できません。macOSで実行してください。');
375
+ }
376
+ // Fetch events with detailed information
377
+ const events = await this.fetchEventsDetailed(request.startDate, request.endDate);
378
+ // Filter by calendar name if specified
379
+ let filteredEvents = events;
380
+ if (request.calendarName) {
381
+ filteredEvents = events.filter(e => e.calendar === request.calendarName);
382
+ }
383
+ return {
384
+ events: filteredEvents,
385
+ period: {
386
+ start: request.startDate,
387
+ end: request.endDate,
388
+ },
389
+ totalEvents: filteredEvents.length,
390
+ };
391
+ }
392
+ /**
393
+ * Validate ISO 8601 date format (YYYY-MM-DD)
394
+ */
395
+ isValidDateFormat(dateStr) {
396
+ const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
397
+ if (!dateRegex.test(dateStr)) {
398
+ return false;
399
+ }
400
+ const date = new Date(dateStr);
401
+ return !isNaN(date.getTime());
402
+ }
403
+ /**
404
+ * Fetch events with detailed information (calendar, location)
405
+ * Requirement: 16.10, 16.11
406
+ */
407
+ async fetchEventsDetailed(startDate, endDate) {
408
+ const platform = await this.detectPlatform();
409
+ switch (platform.recommendedMethod) {
410
+ case 'eventkit':
411
+ return this.fetchEventKitEventsDetailed(startDate, endDate);
412
+ case 'native':
413
+ case 'manual_input':
414
+ default:
415
+ return [];
416
+ }
417
+ }
418
+ /**
419
+ * Fetch events via EventKit with detailed information
420
+ * Requirement: 16.10, 16.11
421
+ */
422
+ async fetchEventKitEventsDetailed(startDate, endDate) {
423
+ try {
424
+ // Lazy load run-applescript
425
+ if (!this.runAppleScript) {
426
+ const module = await import('run-applescript');
427
+ this.runAppleScript = module.runAppleScript;
428
+ }
429
+ const script = this.buildEventKitScriptWithDetails(startDate, endDate);
430
+ // Use retry with exponential backoff for EventKit execution
431
+ const result = await retryWithBackoff(async () => {
432
+ return await this.runAppleScript(script);
433
+ }, {
434
+ ...RETRY_OPTIONS,
435
+ onRetry: (error, attempt) => {
436
+ console.error(`EventKit Calendar retry attempt ${attempt}: ${error.message}`);
437
+ },
438
+ });
439
+ return this.parseEventKitResultWithDetails(result);
440
+ }
441
+ catch (error) {
442
+ console.error('EventKit カレンダーエラー:', error);
443
+ throw new Error(`カレンダーイベントの取得に失敗しました: ${error instanceof Error ? error.message : 'Unknown error'}`);
444
+ }
445
+ }
446
+ /**
447
+ * Build AppleScriptObjC script for fetching events with details
448
+ * Includes calendar name and location
449
+ * Requirement: 16.10
450
+ */
451
+ buildEventKitScriptWithDetails(startDate, endDate) {
452
+ const start = this.parseDateComponents(startDate);
453
+ const end = this.parseDateComponents(endDate);
454
+ return `
455
+ use AppleScript version "2.7"
456
+ use framework "Foundation"
457
+ use framework "EventKit"
458
+ use scripting additions
459
+
460
+ -- Build start date
461
+ set startDate to current date
462
+ set year of startDate to ${start.year}
463
+ set month of startDate to ${start.month}
464
+ set day of startDate to ${start.day}
465
+ set hours of startDate to 0
466
+ set minutes of startDate to 0
467
+ set seconds of startDate to 0
468
+
469
+ -- Build end date (end of day)
470
+ set endDate to current date
471
+ set year of endDate to ${end.year}
472
+ set month of endDate to ${end.month}
473
+ set day of endDate to ${end.day}
474
+ set hours of endDate to 23
475
+ set minutes of endDate to 59
476
+ set seconds of endDate to 59
477
+
478
+ -- Create EventKit store
479
+ set theStore to current application's EKEventStore's alloc()'s init()
480
+
481
+ -- Request calendar access (synchronously wait for completion)
482
+ set accessGranted to false
483
+ theStore's requestFullAccessToEventsWithCompletion:(missing value)
484
+ delay 0.5
485
+
486
+ -- Convert AppleScript dates to NSDate
487
+ set startNSDate to current application's NSDate's dateWithTimeIntervalSince1970:((startDate - (date "Thursday, January 1, 1970 at 9:00:00")) / 1)
488
+ set endNSDate to current application's NSDate's dateWithTimeIntervalSince1970:((endDate - (date "Thursday, January 1, 1970 at 9:00:00")) / 1)
489
+
490
+ -- Create predicate for events in date range (all calendars)
491
+ set thePredicate to theStore's predicateForEventsWithStartDate:startNSDate endDate:endNSDate calendars:(missing value)
492
+
493
+ -- Fetch events (EventKit automatically expands recurring events into occurrences)
494
+ set theEvents to theStore's eventsMatchingPredicate:thePredicate
495
+
496
+ -- Build result string with calendar and location
497
+ set eventList to ""
498
+ repeat with anEvent in theEvents
499
+ set eventTitle to (anEvent's title()) as text
500
+ set eventStart to (anEvent's startDate()) as date
501
+ set eventEnd to (anEvent's endDate()) as date
502
+ set eventId to (anEvent's eventIdentifier()) as text
503
+ set isAllDay to (anEvent's isAllDay()) as boolean
504
+
505
+ -- Get calendar name
506
+ set eventCalendar to (anEvent's calendar()'s title()) as text
507
+
508
+ -- Get location (may be missing value)
509
+ set eventLocation to ""
510
+ try
511
+ set locationValue to anEvent's location()
512
+ if locationValue is not missing value then
513
+ set eventLocation to locationValue as text
514
+ end if
515
+ end try
516
+
517
+ set eventInfo to eventTitle & "|" & (eventStart as string) & "|" & (eventEnd as string) & "|" & eventId & "|" & (isAllDay as string) & "|" & eventCalendar & "|" & eventLocation
518
+ set eventList to eventList & eventInfo & linefeed
519
+ end repeat
520
+
521
+ return eventList`;
522
+ }
523
+ /**
524
+ * Parse EventKit result with detailed information
525
+ * Format: title|start|end|id|isAllDay|calendar|location
526
+ * Requirement: 16.10
527
+ */
528
+ parseEventKitResultWithDetails(output) {
529
+ if (!output || output.trim() === '') {
530
+ return [];
531
+ }
532
+ const events = [];
533
+ const lines = output.trim().split('\n');
534
+ for (const line of lines) {
535
+ const parts = line.split('|');
536
+ if (parts.length >= 6) {
537
+ const location = parts.length >= 7 && parts[6].trim() !== '' ? parts[6] : undefined;
538
+ events.push({
539
+ id: parts[3],
540
+ title: parts[0],
541
+ start: this.formatDateToJST(parts[1]),
542
+ end: this.formatDateToJST(parts[2]),
543
+ isAllDay: parts[4].toLowerCase() === 'true',
544
+ source: 'eventkit',
545
+ calendar: parts[5],
546
+ location,
547
+ });
548
+ }
549
+ }
550
+ return events;
551
+ }
552
+ /**
553
+ * Format AppleScript date string to JST ISO 8601 format
554
+ * Requirement: 16.9
555
+ */
556
+ formatDateToJST(appleScriptDate) {
557
+ try {
558
+ // Parse AppleScript date format and convert to JST ISO 8601
559
+ const date = new Date(appleScriptDate);
560
+ if (isNaN(date.getTime())) {
561
+ return appleScriptDate; // Return as-is if parsing fails
562
+ }
563
+ // Format with JST offset (+09:00)
564
+ const year = date.getFullYear();
565
+ const month = String(date.getMonth() + 1).padStart(2, '0');
566
+ const day = String(date.getDate()).padStart(2, '0');
567
+ const hours = String(date.getHours()).padStart(2, '0');
568
+ const minutes = String(date.getMinutes()).padStart(2, '0');
569
+ const seconds = String(date.getSeconds()).padStart(2, '0');
570
+ return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}+09:00`;
571
+ }
572
+ catch {
573
+ return appleScriptDate;
574
+ }
575
+ }
294
576
  }
295
577
  //# sourceMappingURL=calendar-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-service.js","sourceRoot":"","sources":["../../src/integrations/calendar-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar-service.js","sourceRoot":"","sources":["../../src/integrations/calendar-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * OAuth Client Store
3
+ * Requirements: 24.1-24.8
4
+ *
5
+ * Manages OAuth client registration and storage for Dynamic Client Registration (RFC 7591).
6
+ */
7
+ import { OAuthClient, ClientRegistrationRequest } from './types.js';
8
+ /**
9
+ * Client Store Configuration
10
+ */
11
+ export interface ClientStoreConfig {
12
+ allowedRedirectUris: string[];
13
+ }
14
+ /**
15
+ * Client Registration Result
16
+ */
17
+ export interface ClientRegistrationResult {
18
+ success: boolean;
19
+ client?: OAuthClient;
20
+ error?: string;
21
+ errorDescription?: string;
22
+ }
23
+ /**
24
+ * Client Store Interface
25
+ */
26
+ export interface ClientStore {
27
+ registerClient(request: ClientRegistrationRequest): Promise<ClientRegistrationResult>;
28
+ getClient(clientId: string): Promise<OAuthClient | null>;
29
+ deleteClient(clientId: string): Promise<boolean>;
30
+ isValidRedirectUri(clientId: string, redirectUri: string): Promise<boolean>;
31
+ }
32
+ /**
33
+ * Create a Client Store instance
34
+ */
35
+ export declare function createClientStore(config: ClientStoreConfig): ClientStore;
36
+ //# sourceMappingURL=client-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-store.d.ts","sourceRoot":"","sources":["../../src/oauth/client-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,WAAW,EACX,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtF,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACzD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7E;AA8GD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAExE"}