@shin1ohno/sage 0.7.9 → 0.8.6

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 (149) hide show
  1. package/README.md +26 -8
  2. package/dist/cli/mcp-handler.d.ts.map +1 -1
  3. package/dist/cli/mcp-handler.js +141 -987
  4. package/dist/cli/mcp-handler.js.map +1 -1
  5. package/dist/config/loader.d.ts.map +1 -1
  6. package/dist/config/loader.js +30 -1
  7. package/dist/config/loader.js.map +1 -1
  8. package/dist/config/update-validation.d.ts +52 -0
  9. package/dist/config/update-validation.d.ts.map +1 -0
  10. package/dist/config/update-validation.js +133 -0
  11. package/dist/config/update-validation.js.map +1 -0
  12. package/dist/config/validation.d.ts +130 -0
  13. package/dist/config/validation.d.ts.map +1 -0
  14. package/dist/config/validation.js +53 -0
  15. package/dist/config/validation.js.map +1 -0
  16. package/dist/index.js +443 -1632
  17. package/dist/index.js.map +1 -1
  18. package/dist/integrations/calendar-event-creator.d.ts +2 -3
  19. package/dist/integrations/calendar-event-creator.d.ts.map +1 -1
  20. package/dist/integrations/calendar-event-creator.js +3 -4
  21. package/dist/integrations/calendar-event-creator.js.map +1 -1
  22. package/dist/integrations/calendar-event-deleter.d.ts +2 -3
  23. package/dist/integrations/calendar-event-deleter.d.ts.map +1 -1
  24. package/dist/integrations/calendar-event-deleter.js +3 -4
  25. package/dist/integrations/calendar-event-deleter.js.map +1 -1
  26. package/dist/integrations/calendar-event-response.d.ts +4 -17
  27. package/dist/integrations/calendar-event-response.d.ts.map +1 -1
  28. package/dist/integrations/calendar-event-response.js +3 -4
  29. package/dist/integrations/calendar-event-response.js.map +1 -1
  30. package/dist/integrations/calendar-service.d.ts +6 -3
  31. package/dist/integrations/calendar-service.d.ts.map +1 -1
  32. package/dist/integrations/calendar-service.js +26 -4
  33. package/dist/integrations/calendar-service.js.map +1 -1
  34. package/dist/integrations/calendar-source-manager.d.ts +302 -0
  35. package/dist/integrations/calendar-source-manager.d.ts.map +1 -0
  36. package/dist/integrations/calendar-source-manager.js +862 -0
  37. package/dist/integrations/calendar-source-manager.js.map +1 -0
  38. package/dist/integrations/google-calendar-service.d.ts +176 -0
  39. package/dist/integrations/google-calendar-service.d.ts.map +1 -0
  40. package/dist/integrations/google-calendar-service.js +745 -0
  41. package/dist/integrations/google-calendar-service.js.map +1 -0
  42. package/dist/integrations/notion-mcp.d.ts +28 -3
  43. package/dist/integrations/notion-mcp.d.ts.map +1 -1
  44. package/dist/integrations/notion-mcp.js +21 -5
  45. package/dist/integrations/notion-mcp.js.map +1 -1
  46. package/dist/integrations/reminder-manager.d.ts.map +1 -1
  47. package/dist/integrations/reminder-manager.js +2 -0
  48. package/dist/integrations/reminder-manager.js.map +1 -1
  49. package/dist/oauth/google-oauth-handler.d.ts +149 -0
  50. package/dist/oauth/google-oauth-handler.d.ts.map +1 -0
  51. package/dist/oauth/google-oauth-handler.js +365 -0
  52. package/dist/oauth/google-oauth-handler.js.map +1 -0
  53. package/dist/services/container.d.ts +56 -0
  54. package/dist/services/container.d.ts.map +1 -0
  55. package/dist/services/container.js +76 -0
  56. package/dist/services/container.js.map +1 -0
  57. package/dist/tools/calendar/handlers.d.ts +186 -0
  58. package/dist/tools/calendar/handlers.d.ts.map +1 -0
  59. package/dist/tools/calendar/handlers.js +525 -0
  60. package/dist/tools/calendar/handlers.js.map +1 -0
  61. package/dist/tools/calendar/index.d.ts +11 -0
  62. package/dist/tools/calendar/index.d.ts.map +1 -0
  63. package/dist/tools/calendar/index.js +10 -0
  64. package/dist/tools/calendar/index.js.map +1 -0
  65. package/dist/tools/index.d.ts +23 -0
  66. package/dist/tools/index.d.ts.map +1 -0
  67. package/dist/tools/index.js +24 -0
  68. package/dist/tools/index.js.map +1 -0
  69. package/dist/tools/integrations/handlers.d.ts +57 -0
  70. package/dist/tools/integrations/handlers.d.ts.map +1 -0
  71. package/dist/tools/integrations/handlers.js +159 -0
  72. package/dist/tools/integrations/handlers.js.map +1 -0
  73. package/dist/tools/integrations/index.d.ts +11 -0
  74. package/dist/tools/integrations/index.d.ts.map +1 -0
  75. package/dist/tools/integrations/index.js +10 -0
  76. package/dist/tools/integrations/index.js.map +1 -0
  77. package/dist/tools/registry.d.ts +8 -0
  78. package/dist/tools/registry.d.ts.map +1 -0
  79. package/dist/tools/registry.js +10 -0
  80. package/dist/tools/registry.js.map +1 -0
  81. package/dist/tools/reminders/handlers.d.ts +61 -0
  82. package/dist/tools/reminders/handlers.d.ts.map +1 -0
  83. package/dist/tools/reminders/handlers.js +148 -0
  84. package/dist/tools/reminders/handlers.js.map +1 -0
  85. package/dist/tools/reminders/index.d.ts +11 -0
  86. package/dist/tools/reminders/index.d.ts.map +1 -0
  87. package/dist/tools/reminders/index.js +10 -0
  88. package/dist/tools/reminders/index.js.map +1 -0
  89. package/dist/tools/setup/handlers.d.ts +81 -0
  90. package/dist/tools/setup/handlers.d.ts.map +1 -0
  91. package/dist/tools/setup/handlers.js +172 -0
  92. package/dist/tools/setup/handlers.js.map +1 -0
  93. package/dist/tools/setup/index.d.ts +11 -0
  94. package/dist/tools/setup/index.d.ts.map +1 -0
  95. package/dist/tools/setup/index.js +10 -0
  96. package/dist/tools/setup/index.js.map +1 -0
  97. package/dist/tools/tasks/handlers.d.ts +95 -0
  98. package/dist/tools/tasks/handlers.d.ts.map +1 -0
  99. package/dist/tools/tasks/handlers.js +197 -0
  100. package/dist/tools/tasks/handlers.js.map +1 -0
  101. package/dist/tools/tasks/index.d.ts +11 -0
  102. package/dist/tools/tasks/index.d.ts.map +1 -0
  103. package/dist/tools/tasks/index.js +10 -0
  104. package/dist/tools/tasks/index.js.map +1 -0
  105. package/dist/tools/types.d.ts +54 -0
  106. package/dist/tools/types.d.ts.map +1 -0
  107. package/dist/tools/types.js +9 -0
  108. package/dist/tools/types.js.map +1 -0
  109. package/dist/types/calendar.d.ts +41 -0
  110. package/dist/types/calendar.d.ts.map +1 -0
  111. package/dist/types/calendar.js +18 -0
  112. package/dist/types/calendar.js.map +1 -0
  113. package/dist/types/config.d.ts +15 -0
  114. package/dist/types/config.d.ts.map +1 -1
  115. package/dist/types/config.js +21 -0
  116. package/dist/types/config.js.map +1 -1
  117. package/dist/types/google-calendar-types.d.ts +139 -0
  118. package/dist/types/google-calendar-types.d.ts.map +1 -0
  119. package/dist/types/google-calendar-types.js +46 -0
  120. package/dist/types/google-calendar-types.js.map +1 -0
  121. package/dist/types/index.d.ts +1 -0
  122. package/dist/types/index.d.ts.map +1 -1
  123. package/dist/types/index.js +1 -0
  124. package/dist/types/index.js.map +1 -1
  125. package/dist/utils/estimation.d.ts +34 -0
  126. package/dist/utils/estimation.d.ts.map +1 -1
  127. package/dist/utils/estimation.js +38 -1
  128. package/dist/utils/estimation.js.map +1 -1
  129. package/dist/utils/mcp-response.d.ts +89 -0
  130. package/dist/utils/mcp-response.d.ts.map +1 -0
  131. package/dist/utils/mcp-response.js +103 -0
  132. package/dist/utils/mcp-response.js.map +1 -0
  133. package/dist/utils/task-splitter.d.ts +65 -4
  134. package/dist/utils/task-splitter.d.ts.map +1 -1
  135. package/dist/utils/task-splitter.js +69 -5
  136. package/dist/utils/task-splitter.js.map +1 -1
  137. package/dist/version.d.ts +2 -2
  138. package/dist/version.d.ts.map +1 -1
  139. package/dist/version.js +22 -4
  140. package/dist/version.js.map +1 -1
  141. package/package.json +4 -3
  142. package/dist/cli/http-server.d.ts +0 -74
  143. package/dist/cli/http-server.d.ts.map +0 -1
  144. package/dist/cli/http-server.js +0 -407
  145. package/dist/cli/http-server.js.map +0 -1
  146. package/dist/remote/remote-mcp-server.d.ts +0 -244
  147. package/dist/remote/remote-mcp-server.d.ts.map +0 -1
  148. package/dist/remote/remote-mcp-server.js +0 -507
  149. package/dist/remote/remote-mcp-server.js.map +0 -1
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Calendar Tool Handlers
3
+ *
4
+ * Business logic for calendar-related MCP tools.
5
+ * These handlers are decoupled from the MCP server registration
6
+ * to allow reuse between index.ts and mcp-handler.ts.
7
+ *
8
+ * Requirements: 3.3-3.6, 6.1-6.6, 16-19, 32
9
+ */
10
+ import type { UserConfig } from '../../types/index.js';
11
+ import type { CalendarSourceManager } from '../../integrations/calendar-source-manager.js';
12
+ import type { CalendarEventResponseService } from '../../integrations/calendar-event-response.js';
13
+ import type { GoogleCalendarService } from '../../integrations/google-calendar-service.js';
14
+ import type { WorkingCadenceService } from '../../services/working-cadence.js';
15
+ /**
16
+ * Calendar context containing shared state and services
17
+ */
18
+ export interface CalendarToolsContext {
19
+ getConfig: () => UserConfig | null;
20
+ getCalendarSourceManager: () => CalendarSourceManager | null;
21
+ getCalendarEventResponseService: () => CalendarEventResponseService | null;
22
+ getGoogleCalendarService: () => GoogleCalendarService | null;
23
+ getWorkingCadenceService: () => WorkingCadenceService | null;
24
+ setWorkingCadenceService: (service: WorkingCadenceService) => void;
25
+ initializeServices: (config: UserConfig) => void;
26
+ }
27
+ export interface FindAvailableSlotsInput {
28
+ durationMinutes: number;
29
+ startDate?: string;
30
+ endDate?: string;
31
+ preferDeepWork?: boolean;
32
+ minDurationMinutes?: number;
33
+ maxDurationMinutes?: number;
34
+ }
35
+ export interface ListCalendarEventsInput {
36
+ startDate: string;
37
+ endDate: string;
38
+ calendarId?: string;
39
+ }
40
+ export interface RespondToCalendarEventInput {
41
+ eventId: string;
42
+ response: 'accept' | 'decline' | 'tentative';
43
+ comment?: string;
44
+ source?: 'eventkit' | 'google';
45
+ calendarId?: string;
46
+ }
47
+ export interface RespondToCalendarEventsBatchInput {
48
+ eventIds: string[];
49
+ response: 'accept' | 'decline' | 'tentative';
50
+ comment?: string;
51
+ }
52
+ export interface CreateCalendarEventInput {
53
+ title: string;
54
+ startDate: string;
55
+ endDate: string;
56
+ location?: string;
57
+ notes?: string;
58
+ calendarName?: string;
59
+ alarms?: string[];
60
+ preferredSource?: 'eventkit' | 'google';
61
+ }
62
+ export interface DeleteCalendarEventInput {
63
+ eventId: string;
64
+ source?: 'eventkit' | 'google';
65
+ }
66
+ export interface DeleteCalendarEventsBatchInput {
67
+ eventIds: string[];
68
+ source?: 'eventkit' | 'google';
69
+ }
70
+ export interface SetCalendarSourceInput {
71
+ source: 'eventkit' | 'google';
72
+ enabled: boolean;
73
+ }
74
+ export interface GetWorkingCadenceInput {
75
+ dayOfWeek?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';
76
+ date?: string;
77
+ }
78
+ /**
79
+ * find_available_slots handler
80
+ *
81
+ * Find available time slots in calendar for scheduling tasks.
82
+ * Requirement: 3.3-3.6, 6.1-6.6, Task 28
83
+ */
84
+ export declare function handleFindAvailableSlots(ctx: CalendarToolsContext, args: FindAvailableSlotsInput): Promise<{
85
+ content: {
86
+ type: "text";
87
+ text: string;
88
+ }[];
89
+ }>;
90
+ /**
91
+ * list_calendar_events handler
92
+ *
93
+ * List calendar events for a specified period.
94
+ * Requirement: 16.1-16.12, Task 27
95
+ */
96
+ export declare function handleListCalendarEvents(ctx: CalendarToolsContext, args: ListCalendarEventsInput): Promise<{
97
+ content: {
98
+ type: "text";
99
+ text: string;
100
+ }[];
101
+ }>;
102
+ /**
103
+ * respond_to_calendar_event handler
104
+ *
105
+ * Respond to a single calendar event with accept/decline/tentative.
106
+ * Requirement: 17.1, 17.2, 17.5-17.11
107
+ */
108
+ export declare function handleRespondToCalendarEvent(ctx: CalendarToolsContext, args: RespondToCalendarEventInput): Promise<{
109
+ content: {
110
+ type: "text";
111
+ text: string;
112
+ }[];
113
+ }>;
114
+ /**
115
+ * respond_to_calendar_events_batch handler
116
+ *
117
+ * Respond to multiple calendar events at once.
118
+ * Requirement: 17.3, 17.4, 17.12
119
+ */
120
+ export declare function handleRespondToCalendarEventsBatch(ctx: CalendarToolsContext, args: RespondToCalendarEventsBatchInput): Promise<{
121
+ content: {
122
+ type: "text";
123
+ text: string;
124
+ }[];
125
+ }>;
126
+ /**
127
+ * create_calendar_event handler
128
+ *
129
+ * Create a new calendar event.
130
+ * Requirement: 18.1-18.11, Task 29
131
+ */
132
+ export declare function handleCreateCalendarEvent(ctx: CalendarToolsContext, args: CreateCalendarEventInput): Promise<{
133
+ content: {
134
+ type: "text";
135
+ text: string;
136
+ }[];
137
+ }>;
138
+ /**
139
+ * delete_calendar_event handler
140
+ *
141
+ * Delete a calendar event.
142
+ * Requirement: 19.1-19.9, Task 30
143
+ */
144
+ export declare function handleDeleteCalendarEvent(ctx: CalendarToolsContext, args: DeleteCalendarEventInput): Promise<{
145
+ content: {
146
+ type: "text";
147
+ text: string;
148
+ }[];
149
+ }>;
150
+ /**
151
+ * delete_calendar_events_batch handler
152
+ *
153
+ * Delete multiple calendar events.
154
+ * Requirement: 19.10-19.11, Task 30
155
+ */
156
+ export declare function handleDeleteCalendarEventsBatch(ctx: CalendarToolsContext, args: DeleteCalendarEventsBatchInput): Promise<{
157
+ content: {
158
+ type: "text";
159
+ text: string;
160
+ }[];
161
+ }>;
162
+ /**
163
+ * list_calendar_sources handler
164
+ *
165
+ * List available and enabled calendar sources.
166
+ * Requirement: Task 32
167
+ */
168
+ export declare function handleListCalendarSources(ctx: CalendarToolsContext): Promise<{
169
+ content: {
170
+ type: "text";
171
+ text: string;
172
+ }[];
173
+ }>;
174
+ /**
175
+ * get_working_cadence handler
176
+ *
177
+ * Get user's working rhythm information.
178
+ * Requirement: 32.1-32.10
179
+ */
180
+ export declare function handleGetWorkingCadence(ctx: CalendarToolsContext, args: GetWorkingCadenceInput): Promise<{
181
+ content: {
182
+ type: "text";
183
+ text: string;
184
+ }[];
185
+ }>;
186
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/calendar/handlers.ts"],"names":[],"mappings":"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"}