@shin1ohno/sage 0.9.3 → 0.10.0

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/dist/index.js CHANGED
@@ -28,6 +28,7 @@ import { handleAnalyzeTasks, handleUpdateTaskStatus, handleSyncTasks, handleDete
28
28
  import { handleFindAvailableSlots, handleListCalendarEvents, handleRespondToCalendarEvent, handleRespondToCalendarEventsBatch, handleCreateCalendarEvent, handleDeleteCalendarEvent, handleDeleteCalendarEventsBatch, handleListCalendarSources, handleGetWorkingCadence, } from "./tools/calendar/index.js";
29
29
  import { handleSetReminder, handleListTodos, } from "./tools/reminders/index.js";
30
30
  import { handleSyncToNotion, handleUpdateConfig, } from "./tools/integrations/index.js";
31
+ import { handleAuthenticateGoogle, } from "./tools/oauth/index.js";
31
32
  // Global state
32
33
  let config = null;
33
34
  let wizardSession = null;
@@ -134,6 +135,32 @@ function createIntegrationToolsContext() {
134
135
  initializeServices,
135
136
  };
136
137
  }
138
+ function createOAuthToolsContext() {
139
+ return {
140
+ getGoogleOAuthHandler: () => {
141
+ const oauthConfig = {
142
+ clientId: process.env.GOOGLE_CLIENT_ID || '',
143
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET || '',
144
+ redirectUri: process.env.GOOGLE_REDIRECT_URI || 'http://localhost:3000/oauth/callback',
145
+ };
146
+ if (!oauthConfig.clientId || !oauthConfig.clientSecret) {
147
+ return null;
148
+ }
149
+ return new GoogleOAuthHandler(oauthConfig);
150
+ },
151
+ createGoogleOAuthHandler: () => {
152
+ const oauthConfig = {
153
+ clientId: process.env.GOOGLE_CLIENT_ID || '',
154
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET || '',
155
+ redirectUri: process.env.GOOGLE_REDIRECT_URI || 'http://localhost:3000/oauth/callback',
156
+ };
157
+ if (!oauthConfig.clientId || !oauthConfig.clientSecret) {
158
+ return null;
159
+ }
160
+ return new GoogleOAuthHandler(oauthConfig);
161
+ },
162
+ };
163
+ }
137
164
  /**
138
165
  * Initialize the MCP server with all tools
139
166
  */
@@ -459,6 +486,30 @@ async function createServer() {
459
486
  }, async ({ autoMerge }) => handleDetectDuplicates(createTaskToolsContext(), { autoMerge }));
460
487
  // list_calendar_sources - uses extracted handler
461
488
  server.tool("list_calendar_sources", "List available and enabled calendar sources (EventKit, Google Calendar) with their health status. Shows which sources can be used and their current state.", {}, async () => handleListCalendarSources(createCalendarToolsContext()));
489
+ /**
490
+ * authenticate_google - Complete Google OAuth flow automatically
491
+ * Requirements: FR-1 (Google OAuth Auto-Callback)
492
+ */
493
+ server.tool("authenticate_google", "Authenticate with Google Calendar using OAuth. Opens browser for authentication and automatically captures the callback. Returns success status with token information.", {
494
+ force: z
495
+ .boolean()
496
+ .optional()
497
+ .describe("Force re-authentication even if tokens already exist"),
498
+ timeout: z
499
+ .number()
500
+ .optional()
501
+ .describe("Timeout in seconds for waiting for authentication (default: 300)"),
502
+ }, async ({ force, timeout }) => {
503
+ const result = await handleAuthenticateGoogle({ force: force ?? false, timeout: timeout ?? 300 }, createOAuthToolsContext());
504
+ return {
505
+ content: [
506
+ {
507
+ type: "text",
508
+ text: JSON.stringify(result, null, 2),
509
+ },
510
+ ],
511
+ };
512
+ });
462
513
  /**
463
514
  * set_calendar_source - Enable or disable a calendar source
464
515
  * Requirement: 9, 11, Task 33
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -11,4 +11,6 @@ export { createClientStore, ClientStore } from './client-store.js';
11
11
  export { OAuthServer, createOAuthServer, OAuthServerConfig } from './oauth-server.js';
12
12
  export { OAuthHandler, createOAuthHandler, OAuthHandlerConfig } from './oauth-handler.js';
13
13
  export { FileMutex, FileMutexMetrics } from './file-mutex.js';
14
+ export { OAuthCallbackServer, OAuthCallbackServerOptions, CallbackResult, } from './oauth-callback-server.js';
15
+ export { GoogleOAuthHandler, GoogleOAuthConfig, GoogleOAuthTokens } from './google-oauth-handler.js';
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGxI,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGvF,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG1F,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGxI,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGvF,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG1F,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,GACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -20,4 +20,8 @@ export { OAuthServer, createOAuthServer } from './oauth-server.js';
20
20
  export { OAuthHandler, createOAuthHandler } from './oauth-handler.js';
21
21
  // File Mutex (for serializing file operations)
22
22
  export { FileMutex } from './file-mutex.js';
23
+ // OAuth Callback Server (for Google OAuth flow)
24
+ export { OAuthCallbackServer, } from './oauth-callback-server.js';
25
+ // Google OAuth Handler
26
+ export { GoogleOAuthHandler } from './google-oauth-handler.js';
23
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,OAAO;AACP,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAExI,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AAEvF,2BAA2B;AAC3B,OAAO,EAAE,4BAA4B,EAA0B,MAAM,iBAAiB,CAAC;AAEvF,sBAAsB;AACtB,OAAO,EAAE,uBAAuB,EAAqB,MAAM,0BAA0B,CAAC;AAEtF,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAe,MAAM,mBAAmB,CAAC;AAEnE,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AAEtF,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAsB,MAAM,oBAAoB,CAAC;AAE1F,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,OAAO;AACP,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAExI,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AAEvF,2BAA2B;AAC3B,OAAO,EAAE,4BAA4B,EAA0B,MAAM,iBAAiB,CAAC;AAEvF,sBAAsB;AACtB,OAAO,EAAE,uBAAuB,EAAqB,MAAM,0BAA0B,CAAC;AAEtF,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAe,MAAM,mBAAmB,CAAC;AAEnE,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AAEtF,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAsB,MAAM,oBAAoB,CAAC;AAE1F,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAE9D,gDAAgD;AAChD,OAAO,EACL,mBAAmB,GAGpB,MAAM,4BAA4B,CAAC;AAEpC,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAwC,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * OAuth Callback Server
3
+ * Requirements: FR-2 (Local HTTP Callback Server)
4
+ *
5
+ * Temporary HTTP server to capture OAuth authorization callbacks.
6
+ * Listens on localhost only for security.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ /**
10
+ * OAuth Callback Server Options
11
+ */
12
+ export interface OAuthCallbackServerOptions {
13
+ /** Port to listen on (default: 3000) */
14
+ port?: number;
15
+ /** Timeout in milliseconds (default: 300000 = 5 minutes) */
16
+ timeout?: number;
17
+ /** Host to bind to (default: '127.0.0.1') */
18
+ host?: string;
19
+ }
20
+ /**
21
+ * Result from OAuth callback
22
+ */
23
+ export interface CallbackResult {
24
+ success: boolean;
25
+ code?: string;
26
+ error?: string;
27
+ errorDescription?: string;
28
+ state?: string;
29
+ }
30
+ /**
31
+ * Server state for tracking
32
+ */
33
+ interface ServerState {
34
+ isRunning: boolean;
35
+ port: number | null;
36
+ startedAt: number | null;
37
+ callbackReceived: boolean;
38
+ }
39
+ /**
40
+ * OAuth Callback Server
41
+ *
42
+ * Temporary HTTP server that captures OAuth authorization callbacks.
43
+ * Binds only to localhost for security (NFR-4).
44
+ */
45
+ export declare class OAuthCallbackServer extends EventEmitter {
46
+ private server;
47
+ private state;
48
+ private options;
49
+ private callbackPromise;
50
+ private callbackResolve;
51
+ private timeoutHandle;
52
+ constructor(options?: OAuthCallbackServerOptions);
53
+ /**
54
+ * Start the server
55
+ *
56
+ * Attempts to bind to the configured port, falling back to ports 3001-3010
57
+ * if the primary port is in use.
58
+ *
59
+ * @returns Port number and callback URL
60
+ * @throws Error if no port is available
61
+ */
62
+ start(): Promise<{
63
+ port: number;
64
+ callbackUrl: string;
65
+ }>;
66
+ /**
67
+ * Try to bind to a specific port
68
+ */
69
+ private tryBindToPort;
70
+ /**
71
+ * Handle incoming HTTP request
72
+ */
73
+ private handleRequest;
74
+ /**
75
+ * Wait for callback to be received
76
+ *
77
+ * Returns a promise that resolves when a callback is received
78
+ * or rejects on timeout.
79
+ *
80
+ * @returns Callback result
81
+ * @throws Error on timeout
82
+ */
83
+ waitForCallback(): Promise<CallbackResult>;
84
+ /**
85
+ * Shutdown the server
86
+ *
87
+ * Closes the server and releases the port.
88
+ */
89
+ shutdown(): Promise<void>;
90
+ /**
91
+ * Check if server is running
92
+ */
93
+ isRunning(): boolean;
94
+ /**
95
+ * Get current server state
96
+ */
97
+ getState(): Readonly<ServerState>;
98
+ }
99
+ export {};
100
+ //# sourceMappingURL=oauth-callback-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-callback-server.d.ts","sourceRoot":"","sources":["../../src/oauth/oauth-callback-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAiDD;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,aAAa,CAA+B;gBAExC,OAAO,CAAC,EAAE,0BAA0B;IAShD;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAwC7D;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmErB;;;;;;;;OAQG;IACH,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;IAmC1C;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB/B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC;CAGlC"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * OAuth Callback Server
3
+ * Requirements: FR-2 (Local HTTP Callback Server)
4
+ *
5
+ * Temporary HTTP server to capture OAuth authorization callbacks.
6
+ * Listens on localhost only for security.
7
+ */
8
+ import { createServer } from 'http';
9
+ import { EventEmitter } from 'events';
10
+ import { URL } from 'url';
11
+ import { oauthLogger } from '../utils/logger.js';
12
+ // HTML Templates
13
+ const SUCCESS_HTML = `<!DOCTYPE html>
14
+ <html>
15
+ <head>
16
+ <title>sage - Google Calendar 認証完了</title>
17
+ <meta charset="utf-8">
18
+ <style>
19
+ body { font-family: system-ui, -apple-system, sans-serif; text-align: center; padding: 50px; background: #f9fafb; }
20
+ .container { max-width: 400px; margin: 0 auto; background: white; padding: 40px; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
21
+ .success { color: #22c55e; font-size: 48px; margin-bottom: 20px; }
22
+ h1 { color: #111827; font-size: 24px; margin-bottom: 16px; }
23
+ p { color: #6b7280; font-size: 16px; }
24
+ </style>
25
+ </head>
26
+ <body>
27
+ <div class="container">
28
+ <div class="success">✓</div>
29
+ <h1>認証が完了しました</h1>
30
+ <p>このウィンドウを閉じて、Claude に戻ってください。</p>
31
+ </div>
32
+ </body>
33
+ </html>`;
34
+ const ERROR_HTML = (error, description) => `<!DOCTYPE html>
35
+ <html>
36
+ <head>
37
+ <title>sage - Google Calendar 認証エラー</title>
38
+ <meta charset="utf-8">
39
+ <style>
40
+ body { font-family: system-ui, -apple-system, sans-serif; text-align: center; padding: 50px; background: #f9fafb; }
41
+ .container { max-width: 400px; margin: 0 auto; background: white; padding: 40px; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
42
+ .error { color: #ef4444; font-size: 48px; margin-bottom: 20px; }
43
+ h1 { color: #111827; font-size: 24px; margin-bottom: 16px; }
44
+ p { color: #6b7280; font-size: 16px; }
45
+ .error-detail { background: #fef2f2; color: #991b1b; padding: 12px; border-radius: 8px; margin-top: 16px; font-size: 14px; }
46
+ </style>
47
+ </head>
48
+ <body>
49
+ <div class="container">
50
+ <div class="error">✗</div>
51
+ <h1>認証に失敗しました</h1>
52
+ <p>Claude に戻って再試行してください。</p>
53
+ <div class="error-detail">${error}: ${description}</div>
54
+ </div>
55
+ </body>
56
+ </html>`;
57
+ /**
58
+ * OAuth Callback Server
59
+ *
60
+ * Temporary HTTP server that captures OAuth authorization callbacks.
61
+ * Binds only to localhost for security (NFR-4).
62
+ */
63
+ export class OAuthCallbackServer extends EventEmitter {
64
+ server = null;
65
+ state = {
66
+ isRunning: false,
67
+ port: null,
68
+ startedAt: null,
69
+ callbackReceived: false,
70
+ };
71
+ options;
72
+ callbackPromise = null;
73
+ callbackResolve = null;
74
+ timeoutHandle = null;
75
+ constructor(options) {
76
+ super();
77
+ this.options = {
78
+ port: options?.port ?? 3000,
79
+ timeout: options?.timeout ?? 300000, // 5 minutes
80
+ host: options?.host ?? '127.0.0.1',
81
+ };
82
+ }
83
+ /**
84
+ * Start the server
85
+ *
86
+ * Attempts to bind to the configured port, falling back to ports 3001-3010
87
+ * if the primary port is in use.
88
+ *
89
+ * @returns Port number and callback URL
90
+ * @throws Error if no port is available
91
+ */
92
+ async start() {
93
+ if (this.state.isRunning) {
94
+ throw new Error('Server is already running');
95
+ }
96
+ // Try ports starting from configured port
97
+ const portsToTry = [this.options.port];
98
+ for (let i = 1; i <= 10; i++) {
99
+ portsToTry.push(this.options.port + i);
100
+ }
101
+ let lastError = null;
102
+ for (const port of portsToTry) {
103
+ try {
104
+ await this.tryBindToPort(port);
105
+ this.state.isRunning = true;
106
+ this.state.port = port;
107
+ this.state.startedAt = Date.now();
108
+ this.state.callbackReceived = false;
109
+ const callbackUrl = `http://${this.options.host}:${port}/oauth/callback`;
110
+ oauthLogger.info({ port, callbackUrl }, 'OAuth callback server started');
111
+ return { port, callbackUrl };
112
+ }
113
+ catch (error) {
114
+ lastError = error;
115
+ if (error.code !== 'EADDRINUSE') {
116
+ throw error;
117
+ }
118
+ // Port in use, try next
119
+ oauthLogger.debug({ port }, 'Port in use, trying next');
120
+ }
121
+ }
122
+ throw new Error(`Failed to bind to any port (tried ${portsToTry[0]}-${portsToTry[portsToTry.length - 1]}): ${lastError?.message}`);
123
+ }
124
+ /**
125
+ * Try to bind to a specific port
126
+ */
127
+ tryBindToPort(port) {
128
+ return new Promise((resolve, reject) => {
129
+ this.server = createServer((req, res) => this.handleRequest(req, res));
130
+ this.server.on('error', (error) => {
131
+ reject(error);
132
+ });
133
+ this.server.listen(port, this.options.host, () => {
134
+ resolve();
135
+ });
136
+ });
137
+ }
138
+ /**
139
+ * Handle incoming HTTP request
140
+ */
141
+ handleRequest(req, res) {
142
+ const url = new URL(req.url || '/', `http://${this.options.host}:${this.state.port}`);
143
+ // Only handle GET /oauth/callback
144
+ if (req.method !== 'GET' || url.pathname !== '/oauth/callback') {
145
+ res.writeHead(404, { 'Content-Type': 'text/plain' });
146
+ res.end('Not Found');
147
+ return;
148
+ }
149
+ // Parse callback parameters
150
+ const code = url.searchParams.get('code');
151
+ const error = url.searchParams.get('error');
152
+ const errorDescription = url.searchParams.get('error_description') || 'Unknown error';
153
+ const state = url.searchParams.get('state');
154
+ let result;
155
+ if (code) {
156
+ // Success - authorization code received
157
+ result = {
158
+ success: true,
159
+ code,
160
+ state: state || undefined,
161
+ };
162
+ res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
163
+ res.end(SUCCESS_HTML);
164
+ oauthLogger.info('OAuth callback received successfully');
165
+ }
166
+ else if (error) {
167
+ // Error from OAuth provider
168
+ result = {
169
+ success: false,
170
+ error,
171
+ errorDescription,
172
+ state: state || undefined,
173
+ };
174
+ res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
175
+ res.end(ERROR_HTML(error, errorDescription));
176
+ oauthLogger.warn({ errorCode: error, errorDescription }, 'OAuth callback received with error');
177
+ }
178
+ else {
179
+ // Missing required parameters
180
+ result = {
181
+ success: false,
182
+ error: 'invalid_request',
183
+ errorDescription: 'Missing code or error parameter',
184
+ };
185
+ res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
186
+ res.end(ERROR_HTML('invalid_request', 'Missing code or error parameter'));
187
+ oauthLogger.warn('OAuth callback received without code or error');
188
+ }
189
+ // Mark callback as received and resolve promise
190
+ this.state.callbackReceived = true;
191
+ this.emit('callback', result);
192
+ if (this.callbackResolve) {
193
+ this.callbackResolve(result);
194
+ this.callbackResolve = null;
195
+ }
196
+ // Clear timeout
197
+ if (this.timeoutHandle) {
198
+ clearTimeout(this.timeoutHandle);
199
+ this.timeoutHandle = null;
200
+ }
201
+ }
202
+ /**
203
+ * Wait for callback to be received
204
+ *
205
+ * Returns a promise that resolves when a callback is received
206
+ * or rejects on timeout.
207
+ *
208
+ * @returns Callback result
209
+ * @throws Error on timeout
210
+ */
211
+ waitForCallback() {
212
+ if (!this.state.isRunning) {
213
+ return Promise.reject(new Error('Server is not running'));
214
+ }
215
+ if (this.state.callbackReceived) {
216
+ return Promise.reject(new Error('Callback already received'));
217
+ }
218
+ if (this.callbackPromise) {
219
+ return this.callbackPromise;
220
+ }
221
+ this.callbackPromise = new Promise((resolve, reject) => {
222
+ this.callbackResolve = resolve;
223
+ // Set timeout
224
+ this.timeoutHandle = setTimeout(() => {
225
+ this.callbackResolve = null;
226
+ this.callbackPromise = null;
227
+ reject(new Error(`OAuth callback timeout after ${this.options.timeout / 1000} seconds. Please try again.`));
228
+ // Auto-shutdown on timeout
229
+ this.shutdown().catch(() => {
230
+ // Ignore shutdown errors on timeout
231
+ });
232
+ }, this.options.timeout);
233
+ });
234
+ return this.callbackPromise;
235
+ }
236
+ /**
237
+ * Shutdown the server
238
+ *
239
+ * Closes the server and releases the port.
240
+ */
241
+ async shutdown() {
242
+ if (!this.server) {
243
+ return;
244
+ }
245
+ // Clear timeout
246
+ if (this.timeoutHandle) {
247
+ clearTimeout(this.timeoutHandle);
248
+ this.timeoutHandle = null;
249
+ }
250
+ return new Promise((resolve) => {
251
+ this.server.close(() => {
252
+ this.server = null;
253
+ this.state.isRunning = false;
254
+ this.state.port = null;
255
+ this.state.startedAt = null;
256
+ this.callbackPromise = null;
257
+ this.callbackResolve = null;
258
+ oauthLogger.info('OAuth callback server stopped');
259
+ resolve();
260
+ });
261
+ });
262
+ }
263
+ /**
264
+ * Check if server is running
265
+ */
266
+ isRunning() {
267
+ return this.state.isRunning;
268
+ }
269
+ /**
270
+ * Get current server state
271
+ */
272
+ getState() {
273
+ return { ...this.state };
274
+ }
275
+ }
276
+ //# sourceMappingURL=oauth-callback-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-callback-server.js","sourceRoot":"","sources":["../../src/oauth/oauth-callback-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * authenticate_google Tool Handler
3
+ * Requirements: FR-1 (authenticate_google MCP Tool)
4
+ *
5
+ * Orchestrates the complete Google OAuth flow:
6
+ * 1. Check for existing tokens
7
+ * 2. Start callback server
8
+ * 3. Generate authorization URL
9
+ * 4. Open browser
10
+ * 5. Wait for callback
11
+ * 6. Exchange code for tokens
12
+ * 7. Store tokens
13
+ */
14
+ import { z } from 'zod';
15
+ import type { OAuthToolsContext } from './index.js';
16
+ /**
17
+ * Arguments for authenticate_google tool
18
+ */
19
+ export declare const AuthenticateGoogleArgsSchema: z.ZodObject<{
20
+ /** Force re-authentication even if tokens exist */
21
+ force: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
22
+ /** Timeout in seconds (default: 300 = 5 minutes) */
23
+ timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ timeout: number;
26
+ force: boolean;
27
+ }, {
28
+ timeout?: number | undefined;
29
+ force?: boolean | undefined;
30
+ }>;
31
+ export type AuthenticateGoogleArgs = z.infer<typeof AuthenticateGoogleArgsSchema>;
32
+ /**
33
+ * Result from authenticate_google tool
34
+ */
35
+ export interface AuthenticateGoogleResult {
36
+ success: boolean;
37
+ message: string;
38
+ alreadyAuthenticated?: boolean;
39
+ expiresAt?: string;
40
+ scopes?: string[];
41
+ authorizationUrl?: string;
42
+ error?: string;
43
+ }
44
+ /**
45
+ * Handle authenticate_google tool call
46
+ *
47
+ * Orchestrates the complete OAuth flow for Google Calendar authentication.
48
+ *
49
+ * @param args - Tool arguments
50
+ * @param context - OAuth tools context (unused, handler creates its own handler)
51
+ * @returns Authentication result
52
+ */
53
+ export declare function handleAuthenticateGoogle(args: AuthenticateGoogleArgs, _context: OAuthToolsContext): Promise<AuthenticateGoogleResult>;
54
+ //# sourceMappingURL=authenticate-google.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticate-google.d.ts","sourceRoot":"","sources":["../../../src/tools/oauth/authenticate-google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,4BAA4B;IACvC,mDAAmD;;IAEnD,oDAAoD;;;;;;;;EAEpD,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,CAsKnC"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * authenticate_google Tool Handler
3
+ * Requirements: FR-1 (authenticate_google MCP Tool)
4
+ *
5
+ * Orchestrates the complete Google OAuth flow:
6
+ * 1. Check for existing tokens
7
+ * 2. Start callback server
8
+ * 3. Generate authorization URL
9
+ * 4. Open browser
10
+ * 5. Wait for callback
11
+ * 6. Exchange code for tokens
12
+ * 7. Store tokens
13
+ */
14
+ import { z } from 'zod';
15
+ import { OAuthCallbackServer } from '../../oauth/oauth-callback-server.js';
16
+ import { GoogleOAuthHandler } from '../../oauth/google-oauth-handler.js';
17
+ import { openBrowser } from '../../utils/browser-opener.js';
18
+ import { oauthLogger } from '../../utils/logger.js';
19
+ /**
20
+ * Arguments for authenticate_google tool
21
+ */
22
+ export const AuthenticateGoogleArgsSchema = z.object({
23
+ /** Force re-authentication even if tokens exist */
24
+ force: z.boolean().optional().default(false),
25
+ /** Timeout in seconds (default: 300 = 5 minutes) */
26
+ timeout: z.number().optional().default(300),
27
+ });
28
+ /**
29
+ * Handle authenticate_google tool call
30
+ *
31
+ * Orchestrates the complete OAuth flow for Google Calendar authentication.
32
+ *
33
+ * @param args - Tool arguments
34
+ * @param context - OAuth tools context (unused, handler creates its own handler)
35
+ * @returns Authentication result
36
+ */
37
+ export async function handleAuthenticateGoogle(args, _context) {
38
+ // Validate arguments
39
+ const validatedArgs = AuthenticateGoogleArgsSchema.parse(args);
40
+ const { force, timeout } = validatedArgs;
41
+ // Check environment variables
42
+ const clientId = process.env.GOOGLE_CLIENT_ID;
43
+ const clientSecret = process.env.GOOGLE_CLIENT_SECRET;
44
+ if (!clientId || !clientSecret) {
45
+ return {
46
+ success: false,
47
+ message: 'Google OAuth設定が見つかりません。',
48
+ error: '環境変数 GOOGLE_CLIENT_ID と GOOGLE_CLIENT_SECRET を設定してください。\n' +
49
+ 'Google Cloud Console で OAuth クライアントを作成し、認証情報を取得してください。\n' +
50
+ 'https://console.cloud.google.com/apis/credentials',
51
+ };
52
+ }
53
+ // Create OAuth handler
54
+ const redirectUri = process.env.GOOGLE_REDIRECT_URI || 'http://127.0.0.1:3000/oauth/callback';
55
+ const oauthHandler = new GoogleOAuthHandler({
56
+ clientId,
57
+ clientSecret,
58
+ redirectUri,
59
+ });
60
+ // Check for existing tokens (unless force is true)
61
+ if (!force) {
62
+ try {
63
+ const existingTokens = await oauthHandler.getTokens();
64
+ if (existingTokens) {
65
+ const isValid = await oauthHandler.validateToken(existingTokens);
66
+ if (isValid) {
67
+ return {
68
+ success: true,
69
+ message: '既に Google Calendar で認証済みです。',
70
+ alreadyAuthenticated: true,
71
+ expiresAt: new Date(existingTokens.expiresAt).toISOString(),
72
+ scopes: existingTokens.scope,
73
+ };
74
+ }
75
+ // Token expired, try to refresh
76
+ try {
77
+ const refreshedTokens = await oauthHandler.refreshAccessToken(existingTokens.refreshToken);
78
+ await oauthHandler.storeTokens(refreshedTokens);
79
+ return {
80
+ success: true,
81
+ message: 'トークンを更新しました。',
82
+ alreadyAuthenticated: true,
83
+ expiresAt: new Date(refreshedTokens.expiresAt).toISOString(),
84
+ scopes: refreshedTokens.scope,
85
+ };
86
+ }
87
+ catch (refreshError) {
88
+ // Refresh failed, need to re-authenticate
89
+ oauthLogger.info('Token refresh failed, initiating re-authentication');
90
+ }
91
+ }
92
+ }
93
+ catch (error) {
94
+ // No tokens or error reading tokens, proceed with authentication
95
+ oauthLogger.debug({ error }, 'No existing tokens found');
96
+ }
97
+ }
98
+ // Start callback server
99
+ const callbackServer = new OAuthCallbackServer({
100
+ timeout: timeout * 1000, // Convert to milliseconds
101
+ });
102
+ let serverInfo;
103
+ try {
104
+ serverInfo = await callbackServer.start();
105
+ }
106
+ catch (error) {
107
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
108
+ return {
109
+ success: false,
110
+ message: 'コールバックサーバーの起動に失敗しました。',
111
+ error: `${errorMessage}\nポートが使用中の可能性があります。他のアプリケーションを終了してから再試行してください。`,
112
+ };
113
+ }
114
+ try {
115
+ // Generate authorization URL with the callback server's URL
116
+ // Update the redirect URI to use the actual callback URL
117
+ const oauthHandlerWithCallback = new GoogleOAuthHandler({
118
+ clientId,
119
+ clientSecret,
120
+ redirectUri: serverInfo.callbackUrl,
121
+ });
122
+ const authorizationUrl = await oauthHandlerWithCallback.getAuthorizationUrl(serverInfo.callbackUrl);
123
+ oauthLogger.info({ authorizationUrl: authorizationUrl.substring(0, 100) + '...' }, 'Generated authorization URL');
124
+ // Try to open browser
125
+ const browserResult = await openBrowser(authorizationUrl);
126
+ if (!browserResult.success) {
127
+ oauthLogger.warn({ error: browserResult.error }, 'Failed to open browser automatically');
128
+ // Return URL for manual opening
129
+ return {
130
+ success: false,
131
+ message: 'ブラウザを自動で開けませんでした。以下のURLを手動でブラウザに貼り付けてください。',
132
+ authorizationUrl,
133
+ error: browserResult.error,
134
+ };
135
+ }
136
+ oauthLogger.info('Browser opened, waiting for callback...');
137
+ // Wait for callback
138
+ const callbackResult = await callbackServer.waitForCallback();
139
+ if (!callbackResult.success) {
140
+ return {
141
+ success: false,
142
+ message: '認証がキャンセルされたか、エラーが発生しました。',
143
+ error: `${callbackResult.error}: ${callbackResult.errorDescription}`,
144
+ };
145
+ }
146
+ if (!callbackResult.code) {
147
+ return {
148
+ success: false,
149
+ message: '認証コードを取得できませんでした。',
150
+ error: 'Authorization code was not received',
151
+ };
152
+ }
153
+ // Exchange code for tokens
154
+ oauthLogger.info('Exchanging authorization code for tokens...');
155
+ const tokens = await oauthHandlerWithCallback.exchangeCodeForTokens(callbackResult.code, serverInfo.callbackUrl);
156
+ // Store tokens
157
+ await oauthHandlerWithCallback.storeTokens(tokens);
158
+ oauthLogger.info('OAuth tokens stored successfully');
159
+ return {
160
+ success: true,
161
+ message: 'Google Calendar の認証が完了しました!',
162
+ expiresAt: new Date(tokens.expiresAt).toISOString(),
163
+ scopes: tokens.scope,
164
+ };
165
+ }
166
+ catch (error) {
167
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
168
+ oauthLogger.error({ error }, 'OAuth flow failed');
169
+ return {
170
+ success: false,
171
+ message: '認証フローでエラーが発生しました。',
172
+ error: errorMessage,
173
+ };
174
+ }
175
+ finally {
176
+ // Always shutdown the server
177
+ await callbackServer.shutdown();
178
+ }
179
+ }
180
+ //# sourceMappingURL=authenticate-google.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticate-google.js","sourceRoot":"","sources":["../../../src/tools/oauth/authenticate-google.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * OAuth Tools Module
3
+ * Requirements: FR-1 (authenticate_google MCP Tool)
4
+ *
5
+ * Exports OAuth-related MCP tool handlers and context.
6
+ */
7
+ import { GoogleOAuthHandler } from '../../oauth/google-oauth-handler.js';
8
+ /**
9
+ * OAuth Tools Context
10
+ *
11
+ * Provides access to OAuth-related services for tool handlers.
12
+ */
13
+ export interface OAuthToolsContext {
14
+ /**
15
+ * Get GoogleOAuthHandler instance
16
+ * Returns null if Google OAuth is not configured
17
+ */
18
+ getGoogleOAuthHandler: () => GoogleOAuthHandler | null;
19
+ /**
20
+ * Create a new GoogleOAuthHandler with the current config
21
+ */
22
+ createGoogleOAuthHandler: () => GoogleOAuthHandler | null;
23
+ }
24
+ export { handleAuthenticateGoogle } from './authenticate-google.js';
25
+ export type { AuthenticateGoogleArgs, AuthenticateGoogleResult } from './authenticate-google.js';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/oauth/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,qBAAqB,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAEvD;;OAEG;IACH,wBAAwB,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAC;CAC3D;AAGD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * OAuth Tools Module
3
+ * Requirements: FR-1 (authenticate_google MCP Tool)
4
+ *
5
+ * Exports OAuth-related MCP tool handlers and context.
6
+ */
7
+ // Export handler
8
+ export { handleAuthenticateGoogle } from './authenticate-google.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/oauth/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH,iBAAiB;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Browser Opener Utility
3
+ * Requirements: FR-3 (Browser Opening)
4
+ *
5
+ * Cross-platform utility to open URLs in the default browser.
6
+ */
7
+ /**
8
+ * Result of browser open operation
9
+ */
10
+ export interface BrowserOpenResult {
11
+ success: boolean;
12
+ error?: string;
13
+ }
14
+ /**
15
+ * Open URL in default browser
16
+ *
17
+ * Uses platform-appropriate command:
18
+ * - macOS: open
19
+ * - Linux: xdg-open
20
+ * - Windows: start
21
+ *
22
+ * @param url - URL to open
23
+ * @returns Result indicating success or failure
24
+ */
25
+ export declare function openBrowser(url: string): Promise<BrowserOpenResult>;
26
+ /**
27
+ * Get the command that would be used to open a URL
28
+ *
29
+ * Useful for testing and debugging.
30
+ *
31
+ * @param url - URL to open
32
+ * @returns Command string
33
+ */
34
+ export declare function getBrowserCommand(url: string): string;
35
+ //# sourceMappingURL=browser-opener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-opener.d.ts","sourceRoot":"","sources":["../../src/utils/browser-opener.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8BzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYrD"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Browser Opener Utility
3
+ * Requirements: FR-3 (Browser Opening)
4
+ *
5
+ * Cross-platform utility to open URLs in the default browser.
6
+ */
7
+ import { exec } from 'child_process';
8
+ import { promisify } from 'util';
9
+ const execAsync = promisify(exec);
10
+ /**
11
+ * Open URL in default browser
12
+ *
13
+ * Uses platform-appropriate command:
14
+ * - macOS: open
15
+ * - Linux: xdg-open
16
+ * - Windows: start
17
+ *
18
+ * @param url - URL to open
19
+ * @returns Result indicating success or failure
20
+ */
21
+ export async function openBrowser(url) {
22
+ const platform = process.platform;
23
+ let command;
24
+ switch (platform) {
25
+ case 'darwin':
26
+ // macOS
27
+ command = `open "${url}"`;
28
+ break;
29
+ case 'win32':
30
+ // Windows - use start with empty title
31
+ command = `start "" "${url}"`;
32
+ break;
33
+ case 'linux':
34
+ default:
35
+ // Linux and other Unix-like systems
36
+ command = `xdg-open "${url}"`;
37
+ break;
38
+ }
39
+ try {
40
+ await execAsync(command);
41
+ return { success: true };
42
+ }
43
+ catch (error) {
44
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
45
+ return {
46
+ success: false,
47
+ error: `Failed to open browser: ${errorMessage}`,
48
+ };
49
+ }
50
+ }
51
+ /**
52
+ * Get the command that would be used to open a URL
53
+ *
54
+ * Useful for testing and debugging.
55
+ *
56
+ * @param url - URL to open
57
+ * @returns Command string
58
+ */
59
+ export function getBrowserCommand(url) {
60
+ const platform = process.platform;
61
+ switch (platform) {
62
+ case 'darwin':
63
+ return `open "${url}"`;
64
+ case 'win32':
65
+ return `start "" "${url}"`;
66
+ case 'linux':
67
+ default:
68
+ return `xdg-open "${url}"`;
69
+ }
70
+ }
71
+ //# sourceMappingURL=browser-opener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-opener.js","sourceRoot":"","sources":["../../src/utils/browser-opener.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAUlC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,OAAe,CAAC;IAEpB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,QAAQ;YACR,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;YAC1B,MAAM;QACR,KAAK,OAAO;YACV,uCAAuC;YACvC,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;YAC9B,MAAM;QACR,KAAK,OAAO,CAAC;QACb;YACE,oCAAoC;YACpC,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;YAC9B,MAAM;IACV,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B,YAAY,EAAE;SACjD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,SAAS,GAAG,GAAG,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,aAAa,GAAG,GAAG,CAAC;QAC7B,KAAK,OAAO,CAAC;QACb;YACE,OAAO,aAAa,GAAG,GAAG,CAAC;IAC/B,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shin1ohno/sage",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "description": "AI Task Management Assistant MCP Server for Claude Desktop and Claude Code",
5
5
  "main": "dist/index.js",
6
6
  "bin": {