@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.
- package/README.md +26 -8
- package/dist/cli/mcp-handler.d.ts.map +1 -1
- package/dist/cli/mcp-handler.js +141 -987
- package/dist/cli/mcp-handler.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +30 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/update-validation.d.ts +52 -0
- package/dist/config/update-validation.d.ts.map +1 -0
- package/dist/config/update-validation.js +133 -0
- package/dist/config/update-validation.js.map +1 -0
- package/dist/config/validation.d.ts +130 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +53 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/index.js +443 -1632
- package/dist/index.js.map +1 -1
- package/dist/integrations/calendar-event-creator.d.ts +2 -3
- package/dist/integrations/calendar-event-creator.d.ts.map +1 -1
- package/dist/integrations/calendar-event-creator.js +3 -4
- package/dist/integrations/calendar-event-creator.js.map +1 -1
- package/dist/integrations/calendar-event-deleter.d.ts +2 -3
- package/dist/integrations/calendar-event-deleter.d.ts.map +1 -1
- package/dist/integrations/calendar-event-deleter.js +3 -4
- package/dist/integrations/calendar-event-deleter.js.map +1 -1
- package/dist/integrations/calendar-event-response.d.ts +4 -17
- package/dist/integrations/calendar-event-response.d.ts.map +1 -1
- package/dist/integrations/calendar-event-response.js +3 -4
- package/dist/integrations/calendar-event-response.js.map +1 -1
- package/dist/integrations/calendar-service.d.ts +6 -3
- package/dist/integrations/calendar-service.d.ts.map +1 -1
- package/dist/integrations/calendar-service.js +26 -4
- package/dist/integrations/calendar-service.js.map +1 -1
- package/dist/integrations/calendar-source-manager.d.ts +302 -0
- package/dist/integrations/calendar-source-manager.d.ts.map +1 -0
- package/dist/integrations/calendar-source-manager.js +862 -0
- package/dist/integrations/calendar-source-manager.js.map +1 -0
- package/dist/integrations/google-calendar-service.d.ts +176 -0
- package/dist/integrations/google-calendar-service.d.ts.map +1 -0
- package/dist/integrations/google-calendar-service.js +745 -0
- package/dist/integrations/google-calendar-service.js.map +1 -0
- package/dist/integrations/notion-mcp.d.ts +28 -3
- package/dist/integrations/notion-mcp.d.ts.map +1 -1
- package/dist/integrations/notion-mcp.js +21 -5
- package/dist/integrations/notion-mcp.js.map +1 -1
- package/dist/integrations/reminder-manager.d.ts.map +1 -1
- package/dist/integrations/reminder-manager.js +2 -0
- package/dist/integrations/reminder-manager.js.map +1 -1
- package/dist/oauth/google-oauth-handler.d.ts +149 -0
- package/dist/oauth/google-oauth-handler.d.ts.map +1 -0
- package/dist/oauth/google-oauth-handler.js +365 -0
- package/dist/oauth/google-oauth-handler.js.map +1 -0
- package/dist/services/container.d.ts +56 -0
- package/dist/services/container.d.ts.map +1 -0
- package/dist/services/container.js +76 -0
- package/dist/services/container.js.map +1 -0
- package/dist/tools/calendar/handlers.d.ts +186 -0
- package/dist/tools/calendar/handlers.d.ts.map +1 -0
- package/dist/tools/calendar/handlers.js +525 -0
- package/dist/tools/calendar/handlers.js.map +1 -0
- package/dist/tools/calendar/index.d.ts +11 -0
- package/dist/tools/calendar/index.d.ts.map +1 -0
- package/dist/tools/calendar/index.js +10 -0
- package/dist/tools/calendar/index.js.map +1 -0
- package/dist/tools/index.d.ts +23 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +24 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/integrations/handlers.d.ts +57 -0
- package/dist/tools/integrations/handlers.d.ts.map +1 -0
- package/dist/tools/integrations/handlers.js +159 -0
- package/dist/tools/integrations/handlers.js.map +1 -0
- package/dist/tools/integrations/index.d.ts +11 -0
- package/dist/tools/integrations/index.d.ts.map +1 -0
- package/dist/tools/integrations/index.js +10 -0
- package/dist/tools/integrations/index.js.map +1 -0
- package/dist/tools/registry.d.ts +8 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +10 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/reminders/handlers.d.ts +61 -0
- package/dist/tools/reminders/handlers.d.ts.map +1 -0
- package/dist/tools/reminders/handlers.js +148 -0
- package/dist/tools/reminders/handlers.js.map +1 -0
- package/dist/tools/reminders/index.d.ts +11 -0
- package/dist/tools/reminders/index.d.ts.map +1 -0
- package/dist/tools/reminders/index.js +10 -0
- package/dist/tools/reminders/index.js.map +1 -0
- package/dist/tools/setup/handlers.d.ts +81 -0
- package/dist/tools/setup/handlers.d.ts.map +1 -0
- package/dist/tools/setup/handlers.js +172 -0
- package/dist/tools/setup/handlers.js.map +1 -0
- package/dist/tools/setup/index.d.ts +11 -0
- package/dist/tools/setup/index.d.ts.map +1 -0
- package/dist/tools/setup/index.js +10 -0
- package/dist/tools/setup/index.js.map +1 -0
- package/dist/tools/tasks/handlers.d.ts +95 -0
- package/dist/tools/tasks/handlers.d.ts.map +1 -0
- package/dist/tools/tasks/handlers.js +197 -0
- package/dist/tools/tasks/handlers.js.map +1 -0
- package/dist/tools/tasks/index.d.ts +11 -0
- package/dist/tools/tasks/index.d.ts.map +1 -0
- package/dist/tools/tasks/index.js +10 -0
- package/dist/tools/tasks/index.js.map +1 -0
- package/dist/tools/types.d.ts +54 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +9 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types/calendar.d.ts +41 -0
- package/dist/types/calendar.d.ts.map +1 -0
- package/dist/types/calendar.js +18 -0
- package/dist/types/calendar.js.map +1 -0
- package/dist/types/config.d.ts +15 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +21 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/google-calendar-types.d.ts +139 -0
- package/dist/types/google-calendar-types.d.ts.map +1 -0
- package/dist/types/google-calendar-types.js +46 -0
- package/dist/types/google-calendar-types.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/estimation.d.ts +34 -0
- package/dist/utils/estimation.d.ts.map +1 -1
- package/dist/utils/estimation.js +38 -1
- package/dist/utils/estimation.js.map +1 -1
- package/dist/utils/mcp-response.d.ts +89 -0
- package/dist/utils/mcp-response.d.ts.map +1 -0
- package/dist/utils/mcp-response.js +103 -0
- package/dist/utils/mcp-response.js.map +1 -0
- package/dist/utils/task-splitter.d.ts +65 -4
- package/dist/utils/task-splitter.d.ts.map +1 -1
- package/dist/utils/task-splitter.js +69 -5
- package/dist/utils/task-splitter.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +22 -4
- package/dist/version.js.map +1 -1
- package/package.json +4 -3
- package/dist/cli/http-server.d.ts +0 -74
- package/dist/cli/http-server.d.ts.map +0 -1
- package/dist/cli/http-server.js +0 -407
- package/dist/cli/http-server.js.map +0 -1
- package/dist/remote/remote-mcp-server.d.ts +0 -244
- package/dist/remote/remote-mcp-server.d.ts.map +0 -1
- package/dist/remote/remote-mcp-server.js +0 -507
- package/dist/remote/remote-mcp-server.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calendar Service Common Types
|
|
3
|
+
*
|
|
4
|
+
* Shared type definitions for calendar event services
|
|
5
|
+
* (creator, deleter, response).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Default retry options for calendar operations
|
|
9
|
+
*
|
|
10
|
+
* Used by creator, deleter, and response services for
|
|
11
|
+
* consistent retry behavior with AppleScript/EventKit.
|
|
12
|
+
*/
|
|
13
|
+
export const CALENDAR_RETRY_OPTIONS = {
|
|
14
|
+
maxAttempts: 3,
|
|
15
|
+
initialDelay: 500,
|
|
16
|
+
maxDelay: 5000,
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmCH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,GAAG;IACjB,QAAQ,EAAE,IAAI;CACN,CAAC"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -30,6 +30,21 @@ export interface CalendarConfig {
|
|
|
30
30
|
deepWorkDays: string[];
|
|
31
31
|
deepWorkBlocks: DeepWorkBlock[];
|
|
32
32
|
timeZone: string;
|
|
33
|
+
sources?: CalendarSources;
|
|
34
|
+
}
|
|
35
|
+
export interface CalendarSources {
|
|
36
|
+
eventkit: EventKitSourceConfig;
|
|
37
|
+
google: GoogleCalendarSourceConfig;
|
|
38
|
+
}
|
|
39
|
+
export interface EventKitSourceConfig {
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface GoogleCalendarSourceConfig {
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
defaultCalendar: string;
|
|
45
|
+
excludedCalendars: string[];
|
|
46
|
+
syncInterval: number;
|
|
47
|
+
enableNotifications: boolean;
|
|
33
48
|
}
|
|
34
49
|
export interface DeepWorkBlock {
|
|
35
50
|
day: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.js
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration type definitions
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Get default calendar sources configuration based on platform
|
|
6
|
+
*/
|
|
7
|
+
function getDefaultCalendarSources() {
|
|
8
|
+
const isMacOS = typeof process !== 'undefined' && process.platform === 'darwin';
|
|
9
|
+
return {
|
|
10
|
+
eventkit: {
|
|
11
|
+
enabled: isMacOS,
|
|
12
|
+
},
|
|
13
|
+
google: {
|
|
14
|
+
// On non-macOS platforms, enable Google Calendar by default
|
|
15
|
+
// to ensure at least one source is enabled
|
|
16
|
+
enabled: !isMacOS,
|
|
17
|
+
defaultCalendar: 'primary',
|
|
18
|
+
excludedCalendars: [],
|
|
19
|
+
syncInterval: 300,
|
|
20
|
+
enableNotifications: true,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
4
24
|
// Default configuration
|
|
5
25
|
export const DEFAULT_CONFIG = {
|
|
6
26
|
version: '1.0.0',
|
|
@@ -19,6 +39,7 @@ export const DEFAULT_CONFIG = {
|
|
|
19
39
|
deepWorkDays: ['Monday', 'Wednesday', 'Friday'],
|
|
20
40
|
deepWorkBlocks: [],
|
|
21
41
|
timeZone: 'Asia/Tokyo',
|
|
42
|
+
sources: getDefaultCalendarSources(),
|
|
22
43
|
},
|
|
23
44
|
priorityRules: {
|
|
24
45
|
p0Conditions: [
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+JH;;GAEG;AACH,SAAS,yBAAyB;IAChC,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAEhF,OAAO;QACL,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO;SACjB;QACD,MAAM,EAAE;YACN,4DAA4D;YAC5D,2CAA2C;YAC3C,OAAO,EAAE,CAAC,OAAO;YACjB,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,EAAE;YACrB,YAAY,EAAE,GAAG;YACjB,mBAAmB,EAAE,IAAI;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACnC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,YAAY;KACvB;IACD,QAAQ,EAAE;QACR,YAAY,EAAE;YACZ,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,OAAO;SACb;QACD,gBAAgB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QACzC,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;QAC/C,cAAc,EAAE,EAAE;QAClB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,yBAAyB,EAAE;KACrC;IACD,aAAa,EAAE;QACb,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,qBAAqB;aACnC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;gBACtD,WAAW,EAAE,0BAA0B;aACxC;SACF;QACD,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,mBAAmB;aACjC;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,kBAAkB;aAChC;SACF;QACD,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,mBAAmB;aACjC;SACF;QACD,eAAe,EAAE,IAAI;KACtB;IACD,UAAU,EAAE;QACV,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,kBAAkB,EAAE,EAAE;QACtB,kBAAkB,EAAE,GAAG;QACvB,cAAc,EAAE;YACd,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;YAC5D,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAClE,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;YACtE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;SACvD;KACF;IACD,SAAS,EAAE;QACT,YAAY,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QAC/C,YAAY,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,oBAAoB;SAClC;QACD,WAAW,EAAE,EAAE;KAChB;IACD,IAAI,EAAE;QACJ,qBAAqB,EAAE,EAAE;QACzB,WAAW,EAAE,EAAE;KAChB;IACD,YAAY,EAAE;QACZ,cAAc,EAAE;YACd,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,WAAW;YACxB,KAAK,EAAE,EAAE;SACV;QACD,MAAM,EAAE;YACN,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,EAAE;SACf;QACD,cAAc,EAAE;YACd,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,IAAI;YACvB,aAAa,EAAE,EAAE;SAClB;KACF;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,KAAK;KAClB;CACF,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Calendar API Type Definitions
|
|
3
|
+
* Requirement: 1, 2, 3, 4, 5, 6
|
|
4
|
+
* Design: .claude/specs/google-calendar-api/design.md (Data Models section)
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Google Calendar Event (internal representation from Google Calendar API)
|
|
8
|
+
* Requirement: 2
|
|
9
|
+
*/
|
|
10
|
+
export interface GoogleCalendarEvent {
|
|
11
|
+
id: string;
|
|
12
|
+
summary: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
location?: string;
|
|
15
|
+
start: {
|
|
16
|
+
dateTime?: string;
|
|
17
|
+
date?: string;
|
|
18
|
+
timeZone?: string;
|
|
19
|
+
};
|
|
20
|
+
end: {
|
|
21
|
+
dateTime?: string;
|
|
22
|
+
date?: string;
|
|
23
|
+
timeZone?: string;
|
|
24
|
+
};
|
|
25
|
+
attendees?: Array<{
|
|
26
|
+
email: string;
|
|
27
|
+
responseStatus: 'needsAction' | 'declined' | 'tentative' | 'accepted';
|
|
28
|
+
}>;
|
|
29
|
+
reminders?: {
|
|
30
|
+
useDefault: boolean;
|
|
31
|
+
overrides?: Array<{
|
|
32
|
+
method: 'email' | 'popup';
|
|
33
|
+
minutes: number;
|
|
34
|
+
}>;
|
|
35
|
+
};
|
|
36
|
+
recurringEventId?: string;
|
|
37
|
+
iCalUID: string;
|
|
38
|
+
status?: 'confirmed' | 'tentative' | 'cancelled';
|
|
39
|
+
organizer?: {
|
|
40
|
+
email: string;
|
|
41
|
+
displayName?: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* OAuth tokens for Google Calendar API
|
|
46
|
+
* Requirement: 1
|
|
47
|
+
*/
|
|
48
|
+
export interface OAuthTokens {
|
|
49
|
+
accessToken: string;
|
|
50
|
+
refreshToken: string;
|
|
51
|
+
expiresAt: string;
|
|
52
|
+
scope: string[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Calendar information from Google Calendar API
|
|
56
|
+
* Requirement: 2
|
|
57
|
+
*/
|
|
58
|
+
export interface CalendarInfo {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
source: 'eventkit' | 'google';
|
|
62
|
+
isPrimary: boolean;
|
|
63
|
+
color?: string;
|
|
64
|
+
accessRole?: 'owner' | 'writer' | 'reader';
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Sync result between EventKit and Google Calendar
|
|
68
|
+
* Requirement: 8 (optional feature)
|
|
69
|
+
*/
|
|
70
|
+
export interface SyncResult {
|
|
71
|
+
success: boolean;
|
|
72
|
+
eventsAdded: number;
|
|
73
|
+
eventsUpdated: number;
|
|
74
|
+
eventsDeleted: number;
|
|
75
|
+
conflicts: Array<{
|
|
76
|
+
eventId: string;
|
|
77
|
+
reason: string;
|
|
78
|
+
resolution: 'skipped' | 'merged' | 'duplicated';
|
|
79
|
+
}>;
|
|
80
|
+
errors: Array<{
|
|
81
|
+
source: 'eventkit' | 'google';
|
|
82
|
+
error: string;
|
|
83
|
+
}>;
|
|
84
|
+
timestamp: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Sync status between calendar sources
|
|
88
|
+
* Requirement: 8 (optional feature)
|
|
89
|
+
*/
|
|
90
|
+
export interface SyncStatus {
|
|
91
|
+
lastSyncTime?: string;
|
|
92
|
+
nextSyncTime?: string;
|
|
93
|
+
isEnabled: boolean;
|
|
94
|
+
sources: {
|
|
95
|
+
eventkit: {
|
|
96
|
+
available: boolean;
|
|
97
|
+
lastError?: string;
|
|
98
|
+
};
|
|
99
|
+
google: {
|
|
100
|
+
available: boolean;
|
|
101
|
+
lastError?: string;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Extended Calendar Event with additional fields for Google Calendar integration
|
|
107
|
+
* Extends the base CalendarEvent from calendar-service.ts
|
|
108
|
+
* Requirement: 2, 3, 4, 5, 6
|
|
109
|
+
*/
|
|
110
|
+
export interface CalendarEvent {
|
|
111
|
+
id: string;
|
|
112
|
+
title: string;
|
|
113
|
+
start: string;
|
|
114
|
+
end: string;
|
|
115
|
+
isAllDay: boolean;
|
|
116
|
+
source: 'eventkit' | 'google';
|
|
117
|
+
calendar?: string;
|
|
118
|
+
location?: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
attendees?: string[];
|
|
121
|
+
status?: 'confirmed' | 'tentative' | 'cancelled';
|
|
122
|
+
iCalUID?: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Convert Google Calendar Event to unified CalendarEvent format
|
|
126
|
+
* Requirement: 2
|
|
127
|
+
* @param googleEvent Google Calendar API event object
|
|
128
|
+
* @returns Unified CalendarEvent object
|
|
129
|
+
*/
|
|
130
|
+
export declare function convertGoogleToCalendarEvent(googleEvent: GoogleCalendarEvent): CalendarEvent;
|
|
131
|
+
/**
|
|
132
|
+
* Check if two events are duplicates based on iCalUID or title+time matching
|
|
133
|
+
* Requirement: 7 (deduplication)
|
|
134
|
+
* @param event1 First calendar event
|
|
135
|
+
* @param event2 Second calendar event
|
|
136
|
+
* @returns true if events are duplicates
|
|
137
|
+
*/
|
|
138
|
+
export declare function areEventsDuplicate(event1: CalendarEvent, event2: CalendarEvent): boolean;
|
|
139
|
+
//# sourceMappingURL=google-calendar-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-calendar-types.d.ts","sourceRoot":"","sources":["../../src/types/google-calendar-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Calendar API Type Definitions
|
|
3
|
+
* Requirement: 1, 2, 3, 4, 5, 6
|
|
4
|
+
* Design: .claude/specs/google-calendar-api/design.md (Data Models section)
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Convert Google Calendar Event to unified CalendarEvent format
|
|
8
|
+
* Requirement: 2
|
|
9
|
+
* @param googleEvent Google Calendar API event object
|
|
10
|
+
* @returns Unified CalendarEvent object
|
|
11
|
+
*/
|
|
12
|
+
export function convertGoogleToCalendarEvent(googleEvent) {
|
|
13
|
+
return {
|
|
14
|
+
id: googleEvent.id,
|
|
15
|
+
title: googleEvent.summary,
|
|
16
|
+
start: googleEvent.start.dateTime || googleEvent.start.date || '',
|
|
17
|
+
end: googleEvent.end.dateTime || googleEvent.end.date || '',
|
|
18
|
+
isAllDay: !!googleEvent.start.date,
|
|
19
|
+
source: 'google',
|
|
20
|
+
calendar: googleEvent.organizer?.email,
|
|
21
|
+
location: googleEvent.location,
|
|
22
|
+
description: googleEvent.description,
|
|
23
|
+
attendees: googleEvent.attendees?.map((a) => a.email),
|
|
24
|
+
status: googleEvent.status,
|
|
25
|
+
iCalUID: googleEvent.iCalUID,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if two events are duplicates based on iCalUID or title+time matching
|
|
30
|
+
* Requirement: 7 (deduplication)
|
|
31
|
+
* @param event1 First calendar event
|
|
32
|
+
* @param event2 Second calendar event
|
|
33
|
+
* @returns true if events are duplicates
|
|
34
|
+
*/
|
|
35
|
+
export function areEventsDuplicate(event1, event2) {
|
|
36
|
+
// Method 1: iCalUID comparison (most reliable)
|
|
37
|
+
if (event1.iCalUID && event2.iCalUID && event1.iCalUID === event2.iCalUID) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
// Method 2: Title + start time + end time matching
|
|
41
|
+
const titleMatch = event1.title.toLowerCase() === event2.title.toLowerCase();
|
|
42
|
+
const startMatch = event1.start === event2.start;
|
|
43
|
+
const endMatch = event1.end === event2.end;
|
|
44
|
+
return titleMatch && startMatch && endMatch;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=google-calendar-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-calendar-types.js","sourceRoot":"","sources":["../../src/types/google-calendar-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwHH;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAgC;IAC3E,OAAO;QACL,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,KAAK,EAAE,WAAW,CAAC,OAAO;QAC1B,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;QACjE,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;QAC3D,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI;QAClC,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK;QACtC,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqB,EAAE,MAAqB;IAC7E,+CAA+C;IAC/C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC;IAE3C,OAAO,UAAU,IAAI,UAAU,IAAI,QAAQ,CAAC;AAC9C,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC"}
|
|
@@ -11,6 +11,40 @@ interface EstimationResult {
|
|
|
11
11
|
matchedKeywords: string[];
|
|
12
12
|
}
|
|
13
13
|
export declare const DEFAULT_ESTIMATION_CONFIG: EstimationConfig;
|
|
14
|
+
/**
|
|
15
|
+
* TimeEstimator - Estimates task duration using keyword-based heuristics
|
|
16
|
+
*
|
|
17
|
+
* ## Estimation Algorithm
|
|
18
|
+
*
|
|
19
|
+
* The estimator combines multiple factors:
|
|
20
|
+
*
|
|
21
|
+
* 1. **Complexity Detection**: Scans for keywords indicating task complexity
|
|
22
|
+
* - project → 175 min base (system, architecture, framework)
|
|
23
|
+
* - complex → 75 min base (refactor, migrate, integrate)
|
|
24
|
+
* - medium → 50 min base (implement, fix, update)
|
|
25
|
+
* - simple → 25 min base (check, review, confirm)
|
|
26
|
+
*
|
|
27
|
+
* 2. **Length Modifier**: Adjusts based on description length
|
|
28
|
+
* - short (<30 chars): 0.75x
|
|
29
|
+
* - normal (30-100): 1.0x
|
|
30
|
+
* - long (100-250): 1.25x
|
|
31
|
+
* - veryLong (250+): 1.5x
|
|
32
|
+
*
|
|
33
|
+
* 3. **Special Modifiers**: Additional multipliers for specific contexts
|
|
34
|
+
* - meeting/debugging: 1.5x (high variance activities)
|
|
35
|
+
* - documentation/testing: 1.25x (often underestimated)
|
|
36
|
+
*
|
|
37
|
+
* 4. **Pomodoro Rounding**: Final estimate rounded to nearest 25 minutes
|
|
38
|
+
* for compatibility with Pomodoro technique scheduling.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* const result = TimeEstimator.estimateDuration({ title: 'システム設計' });
|
|
42
|
+
* // Returns: { estimatedMinutes: 175, complexity: 'project', ... }
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* const result = TimeEstimator.estimateDuration({ title: 'メール確認' });
|
|
46
|
+
* // Returns: { estimatedMinutes: 25, complexity: 'simple', ... }
|
|
47
|
+
*/
|
|
14
48
|
export declare class TimeEstimator {
|
|
15
49
|
/**
|
|
16
50
|
* Estimate task duration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimation.d.ts","sourceRoot":"","sources":["../../src/utils/estimation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,UAAU,gBAAgB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAGD,eAAO,MAAM,yBAAyB,EAAE,gBAkFvC,CAAC;
|
|
1
|
+
{"version":3,"file":"estimation.d.ts","sourceRoot":"","sources":["../../src/utils/estimation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,UAAU,gBAAgB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAGD,eAAO,MAAM,yBAAyB,EAAE,gBAkFvC,CAAC;AAqBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,aAAa;IACxB;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,gBAA4C,GAAG,gBAAgB;IA4E3G;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAInC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAShC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAiB1B;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,gBAA4C,GACnD;QACD,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB;CAgBF"}
|
package/dist/utils/estimation.js
CHANGED
|
@@ -94,13 +94,50 @@ const LENGTH_MODIFIERS = {
|
|
|
94
94
|
long: 1.25, // Long description with details
|
|
95
95
|
veryLong: 1.5, // Very detailed with multiple components
|
|
96
96
|
};
|
|
97
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Special modifiers for specific task types.
|
|
99
|
+
* Applied multiplicatively after base complexity estimation.
|
|
100
|
+
*/
|
|
98
101
|
const SPECIAL_MODIFIERS = {
|
|
99
102
|
meeting: { keywords: ['meeting', 'ミーティング', '会議', 'sync', 'call', '通話'], multiplier: 1.5 },
|
|
100
103
|
documentation: { keywords: ['document', 'ドキュメント', '文書', 'doc', 'docs'], multiplier: 1.25 },
|
|
101
104
|
debugging: { keywords: ['debug', 'デバッグ', 'bug', 'バグ', 'issue', '問題'], multiplier: 1.5 },
|
|
102
105
|
testing: { keywords: ['test', 'テスト', 'qa', 'verify', '検証'], multiplier: 1.25 },
|
|
103
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* TimeEstimator - Estimates task duration using keyword-based heuristics
|
|
109
|
+
*
|
|
110
|
+
* ## Estimation Algorithm
|
|
111
|
+
*
|
|
112
|
+
* The estimator combines multiple factors:
|
|
113
|
+
*
|
|
114
|
+
* 1. **Complexity Detection**: Scans for keywords indicating task complexity
|
|
115
|
+
* - project → 175 min base (system, architecture, framework)
|
|
116
|
+
* - complex → 75 min base (refactor, migrate, integrate)
|
|
117
|
+
* - medium → 50 min base (implement, fix, update)
|
|
118
|
+
* - simple → 25 min base (check, review, confirm)
|
|
119
|
+
*
|
|
120
|
+
* 2. **Length Modifier**: Adjusts based on description length
|
|
121
|
+
* - short (<30 chars): 0.75x
|
|
122
|
+
* - normal (30-100): 1.0x
|
|
123
|
+
* - long (100-250): 1.25x
|
|
124
|
+
* - veryLong (250+): 1.5x
|
|
125
|
+
*
|
|
126
|
+
* 3. **Special Modifiers**: Additional multipliers for specific contexts
|
|
127
|
+
* - meeting/debugging: 1.5x (high variance activities)
|
|
128
|
+
* - documentation/testing: 1.25x (often underestimated)
|
|
129
|
+
*
|
|
130
|
+
* 4. **Pomodoro Rounding**: Final estimate rounded to nearest 25 minutes
|
|
131
|
+
* for compatibility with Pomodoro technique scheduling.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* const result = TimeEstimator.estimateDuration({ title: 'システム設計' });
|
|
135
|
+
* // Returns: { estimatedMinutes: 175, complexity: 'project', ... }
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* const result = TimeEstimator.estimateDuration({ title: 'メール確認' });
|
|
139
|
+
* // Returns: { estimatedMinutes: 25, complexity: 'simple', ... }
|
|
140
|
+
*/
|
|
104
141
|
export class TimeEstimator {
|
|
105
142
|
/**
|
|
106
143
|
* Estimate task duration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimation.js","sourceRoot":"","sources":["../../src/utils/estimation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,4BAA4B;AAC5B,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,GAAG;IACvB,cAAc,EAAE;QACd,MAAM,EAAE;YACN,OAAO;YACP,QAAQ;YACR,MAAM;YACN,SAAS;YACT,MAAM;YACN,OAAO;YACP,QAAQ;YACR,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,SAAS;YACT,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,QAAQ;YACR,MAAM;SACP;QACD,MAAM,EAAE;YACN,WAAW;YACX,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,SAAS;YACT,IAAI;YACJ,MAAM;YACN,KAAK;SACN;QACD,OAAO,EAAE;YACP,QAAQ;YACR,UAAU;YACV,SAAS;YACT,WAAW;YACX,UAAU;YACV,SAAS;YACT,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,UAAU;YACV,IAAI;YACJ,aAAa;YACb,KAAK;SACN;QACD,OAAO,EAAE;YACP,OAAO;YACP,WAAW;YACX,QAAQ;YACR,UAAU;YACV,gBAAgB;YAChB,IAAI;YACJ,SAAS;YACT,MAAM;YACN,UAAU;YACV,MAAM;YACN,WAAW;YACX,SAAS;YACT,SAAS;YACT,MAAM;SACP;KACF;CACF,CAAC;AAEF,wBAAwB;AACxB,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,IAAI,EAAE,yBAAyB;IACtC,MAAM,EAAE,GAAG,EAAE,qBAAqB;IAClC,IAAI,EAAE,IAAI,EAAE,gCAAgC;IAC5C,QAAQ,EAAE,GAAG,EAAE,yCAAyC;CACzD,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"estimation.js","sourceRoot":"","sources":["../../src/utils/estimation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Response Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides standardized response formatting for MCP tools.
|
|
5
|
+
* Reduces boilerplate and ensures consistent response structure.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Creates a standardized MCP tool response
|
|
9
|
+
*
|
|
10
|
+
* @param data - Response data to serialize
|
|
11
|
+
* @returns MCP tool response object
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* return createResponse({ status: 'ok', items: [] });
|
|
15
|
+
*/
|
|
16
|
+
export declare function createResponse(data: unknown): {
|
|
17
|
+
content: {
|
|
18
|
+
type: "text";
|
|
19
|
+
text: string;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Creates an error response for MCP tools
|
|
24
|
+
*
|
|
25
|
+
* @param message - Error message to display
|
|
26
|
+
* @param additionalData - Optional additional data to include
|
|
27
|
+
* @returns MCP tool response with error flag
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* return createErrorResponse('Configuration not found');
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* return createErrorResponse('Validation failed', { field: 'email', code: 'INVALID' });
|
|
34
|
+
*/
|
|
35
|
+
export declare function createErrorResponse(message: string, additionalData?: Record<string, unknown>): {
|
|
36
|
+
content: {
|
|
37
|
+
type: "text";
|
|
38
|
+
text: string;
|
|
39
|
+
}[];
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Creates a success response for MCP tools
|
|
43
|
+
*
|
|
44
|
+
* @param data - Response data
|
|
45
|
+
* @returns MCP tool response
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* return createSuccessResponse({ tasks: [], count: 0 });
|
|
49
|
+
*/
|
|
50
|
+
export declare function createSuccessResponse(data: Record<string, unknown>): {
|
|
51
|
+
content: {
|
|
52
|
+
type: "text";
|
|
53
|
+
text: string;
|
|
54
|
+
}[];
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Extracts error message from unknown error type
|
|
58
|
+
*
|
|
59
|
+
* @param error - Error object or unknown value
|
|
60
|
+
* @returns Error message string
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* catch (error) {
|
|
64
|
+
* return createErrorResponse(`Operation failed: ${getErrorMessage(error)}`);
|
|
65
|
+
* }
|
|
66
|
+
*/
|
|
67
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
68
|
+
/**
|
|
69
|
+
* Creates an error response from a caught error
|
|
70
|
+
*
|
|
71
|
+
* Convenience function that combines getErrorMessage and createErrorResponse.
|
|
72
|
+
*
|
|
73
|
+
* @param prefix - Message prefix (e.g., "Failed to save config")
|
|
74
|
+
* @param error - Caught error
|
|
75
|
+
* @param additionalData - Optional additional data
|
|
76
|
+
* @returns MCP tool response with error
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* catch (error) {
|
|
80
|
+
* return createErrorFromCatch('Failed to analyze task', error);
|
|
81
|
+
* }
|
|
82
|
+
*/
|
|
83
|
+
export declare function createErrorFromCatch(prefix: string, error: unknown, additionalData?: Record<string, unknown>): {
|
|
84
|
+
content: {
|
|
85
|
+
type: "text";
|
|
86
|
+
text: string;
|
|
87
|
+
}[];
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=mcp-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-response.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO;;;;;EAS3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAOzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAElE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAIzC"}
|