@shin1ohno/sage 0.1.0 → 0.2.1

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 (72) hide show
  1. package/README.md +79 -114
  2. package/dist/config/storage/storage-factory.d.ts +5 -1
  3. package/dist/config/storage/storage-factory.d.ts.map +1 -1
  4. package/dist/config/storage/storage-factory.js +12 -19
  5. package/dist/config/storage/storage-factory.js.map +1 -1
  6. package/dist/core/sage-core.d.ts +10 -5
  7. package/dist/core/sage-core.d.ts.map +1 -1
  8. package/dist/core/sage-core.js +28 -51
  9. package/dist/core/sage-core.js.map +1 -1
  10. package/dist/index.js +335 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/integrations/apple-reminders.d.ts +49 -0
  13. package/dist/integrations/apple-reminders.d.ts.map +1 -1
  14. package/dist/integrations/apple-reminders.js +229 -0
  15. package/dist/integrations/apple-reminders.js.map +1 -1
  16. package/dist/integrations/notion-mcp.d.ts +136 -1
  17. package/dist/integrations/notion-mcp.d.ts.map +1 -1
  18. package/dist/integrations/notion-mcp.js +449 -1
  19. package/dist/integrations/notion-mcp.js.map +1 -1
  20. package/dist/integrations/task-synchronizer.d.ts +124 -0
  21. package/dist/integrations/task-synchronizer.d.ts.map +1 -0
  22. package/dist/integrations/task-synchronizer.js +363 -0
  23. package/dist/integrations/task-synchronizer.js.map +1 -0
  24. package/dist/integrations/todo-list-manager.d.ts +185 -0
  25. package/dist/integrations/todo-list-manager.d.ts.map +1 -0
  26. package/dist/integrations/todo-list-manager.js +581 -0
  27. package/dist/integrations/todo-list-manager.js.map +1 -0
  28. package/dist/platform/adapter-factory.d.ts.map +1 -1
  29. package/dist/platform/adapter-factory.js +4 -8
  30. package/dist/platform/adapter-factory.js.map +1 -1
  31. package/dist/platform/adapters/mcp-adapter.js +1 -1
  32. package/dist/platform/adapters/mcp-adapter.js.map +1 -1
  33. package/dist/platform/adapters/remote-mcp-adapter.d.ts +34 -0
  34. package/dist/platform/adapters/remote-mcp-adapter.d.ts.map +1 -0
  35. package/dist/platform/adapters/remote-mcp-adapter.js +54 -0
  36. package/dist/platform/adapters/remote-mcp-adapter.js.map +1 -0
  37. package/dist/platform/detector.d.ts +5 -16
  38. package/dist/platform/detector.d.ts.map +1 -1
  39. package/dist/platform/detector.js +52 -108
  40. package/dist/platform/detector.js.map +1 -1
  41. package/dist/platform/index.d.ts +0 -2
  42. package/dist/platform/index.d.ts.map +1 -1
  43. package/dist/platform/index.js +0 -2
  44. package/dist/platform/index.js.map +1 -1
  45. package/dist/platform/types.d.ts +20 -62
  46. package/dist/platform/types.d.ts.map +1 -1
  47. package/dist/platform/types.js +6 -11
  48. package/dist/platform/types.js.map +1 -1
  49. package/dist/remote/cloud-config.d.ts +139 -0
  50. package/dist/remote/cloud-config.d.ts.map +1 -0
  51. package/dist/remote/cloud-config.js +229 -0
  52. package/dist/remote/cloud-config.js.map +1 -0
  53. package/dist/remote/hybrid-integration.d.ts +109 -0
  54. package/dist/remote/hybrid-integration.d.ts.map +1 -0
  55. package/dist/remote/hybrid-integration.js +230 -0
  56. package/dist/remote/hybrid-integration.js.map +1 -0
  57. package/dist/remote/remote-mcp-server.d.ts +244 -0
  58. package/dist/remote/remote-mcp-server.d.ts.map +1 -0
  59. package/dist/remote/remote-mcp-server.js +507 -0
  60. package/dist/remote/remote-mcp-server.js.map +1 -0
  61. package/dist/utils/priority.d.ts.map +1 -1
  62. package/dist/utils/priority.js +18 -5
  63. package/dist/utils/priority.js.map +1 -1
  64. package/dist/utils/stakeholders.d.ts +4 -0
  65. package/dist/utils/stakeholders.d.ts.map +1 -1
  66. package/dist/utils/stakeholders.js +45 -4
  67. package/dist/utils/stakeholders.js.map +1 -1
  68. package/dist/utils/task-splitter.d.ts.map +1 -1
  69. package/dist/utils/task-splitter.js +62 -11
  70. package/dist/utils/task-splitter.js.map +1 -1
  71. package/manifest.json +74 -0
  72. package/package.json +2 -1
@@ -16,6 +16,396 @@ const RETRY_OPTIONS = {
16
16
  maxDelay: 10000,
17
17
  shouldRetry: isRetryableError,
18
18
  };
19
+ /**
20
+ * Notion MCP Client
21
+ * Handles actual communication with Notion MCP server
22
+ * Enforces database ID restrictions for security
23
+ */
24
+ export class NotionMCPClient {
25
+ config;
26
+ mcpClient = null;
27
+ connected = false;
28
+ constructor(config) {
29
+ this.config = config;
30
+ }
31
+ /**
32
+ * Check if a database ID is in the allowed list
33
+ */
34
+ isValidDatabaseId(databaseId) {
35
+ if (!databaseId || databaseId.trim() === '') {
36
+ return false;
37
+ }
38
+ return this.config.allowedDatabaseIds.includes(databaseId);
39
+ }
40
+ /**
41
+ * Validate database ID and throw if not allowed
42
+ */
43
+ validateDatabaseId(databaseId) {
44
+ if (!this.isValidDatabaseId(databaseId)) {
45
+ throw new Error(`Database ID ${databaseId} is not in the allowed list`);
46
+ }
47
+ }
48
+ /**
49
+ * Connect to the Notion MCP server
50
+ */
51
+ async connect() {
52
+ if (this.connected) {
53
+ return;
54
+ }
55
+ try {
56
+ // Dynamic import to avoid issues in environments without MCP SDK
57
+ const { Client } = await import('@modelcontextprotocol/sdk/client/index.js');
58
+ this.mcpClient = new Client({
59
+ name: 'sage-notion-client',
60
+ version: '1.0.0',
61
+ }, {
62
+ capabilities: {},
63
+ });
64
+ // Note: In a real implementation, we would use StdioClientTransport
65
+ // to connect to the Notion MCP server process.
66
+ // For now, we assume the MCP client is already connected via the
67
+ // MCP host (Claude Desktop/Code) which handles the connection.
68
+ if (this.mcpClient.connect) {
69
+ await this.mcpClient.connect();
70
+ }
71
+ this.connected = true;
72
+ }
73
+ catch (error) {
74
+ const message = error instanceof Error ? error.message : 'Unknown error';
75
+ throw new Error(`Failed to connect to Notion MCP server: ${message}`);
76
+ }
77
+ }
78
+ /**
79
+ * Disconnect from the Notion MCP server
80
+ */
81
+ async disconnect() {
82
+ if (!this.connected || !this.mcpClient) {
83
+ return;
84
+ }
85
+ try {
86
+ if (this.mcpClient.close) {
87
+ await this.mcpClient.close();
88
+ }
89
+ }
90
+ finally {
91
+ this.connected = false;
92
+ }
93
+ }
94
+ /**
95
+ * Check if connected
96
+ */
97
+ isConnected() {
98
+ return this.connected;
99
+ }
100
+ /**
101
+ * Create a page in Notion via MCP
102
+ */
103
+ async createPage(request) {
104
+ // Validate database ID first
105
+ this.validateDatabaseId(request.databaseId);
106
+ if (!this.connected || !this.mcpClient) {
107
+ return {
108
+ success: false,
109
+ method: 'mcp',
110
+ error: 'MCP client not connected. Call connect() first.',
111
+ };
112
+ }
113
+ try {
114
+ const result = await retryWithBackoff(async () => {
115
+ const mcpRequest = this.buildCreatePageRequest(request);
116
+ const response = await this.mcpClient.request(mcpRequest);
117
+ return this.parseCreatePageResponse(response);
118
+ }, {
119
+ ...RETRY_OPTIONS,
120
+ onRetry: (error, attempt) => {
121
+ console.error(`Notion MCP createPage retry attempt ${attempt}: ${error.message}`);
122
+ },
123
+ });
124
+ return result;
125
+ }
126
+ catch (error) {
127
+ const message = error instanceof Error ? error.message : 'Unknown error';
128
+ return {
129
+ success: false,
130
+ method: 'mcp',
131
+ error: `Notion MCP error: ${message}`,
132
+ };
133
+ }
134
+ }
135
+ /**
136
+ * Query a Notion database via MCP
137
+ */
138
+ async queryDatabase(query) {
139
+ // Validate database ID first
140
+ this.validateDatabaseId(query.databaseId);
141
+ if (!this.connected || !this.mcpClient) {
142
+ return {
143
+ success: false,
144
+ error: 'MCP client not connected. Call connect() first.',
145
+ };
146
+ }
147
+ try {
148
+ const result = await retryWithBackoff(async () => {
149
+ const mcpRequest = this.buildQueryDatabaseRequest(query);
150
+ const response = await this.mcpClient.request(mcpRequest);
151
+ return this.parseQueryDatabaseResponse(response);
152
+ }, {
153
+ ...RETRY_OPTIONS,
154
+ onRetry: (error, attempt) => {
155
+ console.error(`Notion MCP queryDatabase retry attempt ${attempt}: ${error.message}`);
156
+ },
157
+ });
158
+ return result;
159
+ }
160
+ catch (error) {
161
+ const message = error instanceof Error ? error.message : 'Unknown error';
162
+ return {
163
+ success: false,
164
+ error: `Notion MCP query error: ${message}`,
165
+ };
166
+ }
167
+ }
168
+ /**
169
+ * Update a Notion page via MCP
170
+ * Requirement: 12.5
171
+ */
172
+ async updatePage(pageId, properties) {
173
+ if (!this.connected || !this.mcpClient) {
174
+ return {
175
+ success: false,
176
+ error: 'MCP client not connected. Call connect() first.',
177
+ };
178
+ }
179
+ try {
180
+ const result = await retryWithBackoff(async () => {
181
+ const mcpRequest = this.buildUpdatePageRequest(pageId, properties);
182
+ const response = await this.mcpClient.request(mcpRequest);
183
+ return this.parseUpdatePageResponse(response);
184
+ }, {
185
+ ...RETRY_OPTIONS,
186
+ onRetry: (error, attempt) => {
187
+ console.error(`Notion MCP updatePage retry attempt ${attempt}: ${error.message}`);
188
+ },
189
+ });
190
+ return result;
191
+ }
192
+ catch (error) {
193
+ const message = error instanceof Error ? error.message : 'Unknown error';
194
+ return {
195
+ success: false,
196
+ error: `Notion MCP update error: ${message}`,
197
+ };
198
+ }
199
+ }
200
+ /**
201
+ * Build MCP request for updating a page
202
+ */
203
+ buildUpdatePageRequest(pageId, properties) {
204
+ return {
205
+ method: 'tools/call',
206
+ params: {
207
+ name: 'notion-update-page',
208
+ arguments: {
209
+ data: {
210
+ page_id: pageId,
211
+ command: 'update_properties',
212
+ properties,
213
+ },
214
+ },
215
+ },
216
+ };
217
+ }
218
+ /**
219
+ * Parse response from updatePage MCP call
220
+ */
221
+ parseUpdatePageResponse(response) {
222
+ try {
223
+ const textContent = response.content?.find((c) => c.type === 'text');
224
+ if (!textContent) {
225
+ return {
226
+ success: false,
227
+ error: 'No text content in MCP response',
228
+ };
229
+ }
230
+ // If we got a response, consider it successful
231
+ return { success: true };
232
+ }
233
+ catch (error) {
234
+ return {
235
+ success: false,
236
+ error: `Failed to parse MCP response: ${error instanceof Error ? error.message : 'Unknown error'}`,
237
+ };
238
+ }
239
+ }
240
+ /**
241
+ * Build MCP request for creating a page
242
+ */
243
+ buildCreatePageRequest(request) {
244
+ const children = request.content?.map((block) => this.buildNotionBlock(block)) || [];
245
+ return {
246
+ method: 'tools/call',
247
+ params: {
248
+ name: 'notion-create-pages',
249
+ arguments: {
250
+ parent: {
251
+ type: 'database_id',
252
+ database_id: request.databaseId,
253
+ },
254
+ pages: [
255
+ {
256
+ properties: {
257
+ title: request.title,
258
+ ...request.properties,
259
+ },
260
+ content: children.length > 0 ? this.formatContentForNotion(children) : undefined,
261
+ },
262
+ ],
263
+ },
264
+ },
265
+ };
266
+ }
267
+ /**
268
+ * Format content blocks for Notion markdown format
269
+ */
270
+ formatContentForNotion(blocks) {
271
+ return blocks
272
+ .map((block) => {
273
+ if (block.type === 'paragraph') {
274
+ return block.paragraph?.rich_text?.[0]?.text?.content || '';
275
+ }
276
+ else if (block.type === 'heading_2') {
277
+ return `## ${block.heading_2?.rich_text?.[0]?.text?.content || ''}`;
278
+ }
279
+ else if (block.type === 'bulleted_list_item') {
280
+ return `- ${block.bulleted_list_item?.rich_text?.[0]?.text?.content || ''}`;
281
+ }
282
+ return '';
283
+ })
284
+ .join('\n');
285
+ }
286
+ /**
287
+ * Build MCP request for querying a database
288
+ */
289
+ buildQueryDatabaseRequest(query) {
290
+ return {
291
+ method: 'tools/call',
292
+ params: {
293
+ name: 'notion-query-data-sources',
294
+ arguments: {
295
+ data: {
296
+ mode: 'sql',
297
+ data_source_urls: [`collection://${query.databaseId}`],
298
+ query: `SELECT * FROM "collection://${query.databaseId}" LIMIT ${query.pageSize || 100}`,
299
+ },
300
+ },
301
+ },
302
+ };
303
+ }
304
+ /**
305
+ * Parse response from createPage MCP call
306
+ */
307
+ parseCreatePageResponse(response) {
308
+ try {
309
+ const textContent = response.content?.find((c) => c.type === 'text');
310
+ if (!textContent) {
311
+ return {
312
+ success: false,
313
+ method: 'mcp',
314
+ error: 'No text content in MCP response',
315
+ };
316
+ }
317
+ const data = JSON.parse(textContent.text);
318
+ return {
319
+ success: true,
320
+ method: 'mcp',
321
+ pageId: data.id || data.pageId,
322
+ pageUrl: data.url || data.pageUrl,
323
+ };
324
+ }
325
+ catch (error) {
326
+ return {
327
+ success: false,
328
+ method: 'mcp',
329
+ error: `Failed to parse MCP response: ${error instanceof Error ? error.message : 'Unknown error'}`,
330
+ };
331
+ }
332
+ }
333
+ /**
334
+ * Parse response from queryDatabase MCP call
335
+ */
336
+ parseQueryDatabaseResponse(response) {
337
+ try {
338
+ const textContent = response.content?.find((c) => c.type === 'text');
339
+ if (!textContent) {
340
+ return {
341
+ success: false,
342
+ error: 'No text content in MCP response',
343
+ };
344
+ }
345
+ const data = JSON.parse(textContent.text);
346
+ // Parse results from SQL query response
347
+ const results = (data.results || data.rows || []).map((row) => ({
348
+ id: row.id || row._id,
349
+ title: row.title || row.Name || row.name || '',
350
+ properties: row,
351
+ url: row.url || `https://notion.so/${row.id}`,
352
+ createdTime: row.created_time || row.createdTime || '',
353
+ lastEditedTime: row.last_edited_time || row.lastEditedTime || '',
354
+ }));
355
+ return {
356
+ success: true,
357
+ results,
358
+ hasMore: data.has_more || false,
359
+ nextCursor: data.next_cursor,
360
+ };
361
+ }
362
+ catch (error) {
363
+ return {
364
+ success: false,
365
+ error: `Failed to parse MCP response: ${error instanceof Error ? error.message : 'Unknown error'}`,
366
+ };
367
+ }
368
+ }
369
+ /**
370
+ * Build Notion block format
371
+ */
372
+ buildNotionBlock(block) {
373
+ switch (block.type) {
374
+ case 'paragraph':
375
+ return {
376
+ object: 'block',
377
+ type: 'paragraph',
378
+ paragraph: {
379
+ rich_text: [{ type: 'text', text: { content: block.content } }],
380
+ },
381
+ };
382
+ case 'heading':
383
+ return {
384
+ object: 'block',
385
+ type: 'heading_2',
386
+ heading_2: {
387
+ rich_text: [{ type: 'text', text: { content: block.content } }],
388
+ },
389
+ };
390
+ case 'bulleted_list_item':
391
+ return {
392
+ object: 'block',
393
+ type: 'bulleted_list_item',
394
+ bulleted_list_item: {
395
+ rich_text: [{ type: 'text', text: { content: block.content } }],
396
+ },
397
+ };
398
+ default:
399
+ return {
400
+ object: 'block',
401
+ type: 'paragraph',
402
+ paragraph: {
403
+ rich_text: [{ type: 'text', text: { content: block.content } }],
404
+ },
405
+ };
406
+ }
407
+ }
408
+ }
19
409
  /**
20
410
  * Notion MCP Service
21
411
  * Provides platform-adaptive Notion integration
@@ -24,6 +414,19 @@ const RETRY_OPTIONS = {
24
414
  * - Web: フォールバック
25
415
  */
26
416
  export class NotionMCPService {
417
+ mcpClient = null;
418
+ /**
419
+ * Set the MCP client for Notion integration
420
+ */
421
+ setMCPClient(client) {
422
+ this.mcpClient = client;
423
+ }
424
+ /**
425
+ * Get the MCP client
426
+ */
427
+ getMCPClient() {
428
+ return this.mcpClient;
429
+ }
27
430
  /**
28
431
  * Detect the current platform for Notion integration
29
432
  */
@@ -64,6 +467,24 @@ export class NotionMCPService {
64
467
  * Requirement: 8.1, 8.2, 8.3
65
468
  */
66
469
  async createPage(request) {
470
+ // If MCP client is configured, use it
471
+ if (this.mcpClient) {
472
+ try {
473
+ return await this.mcpClient.createPage(request);
474
+ }
475
+ catch (error) {
476
+ const message = error instanceof Error ? error.message : 'Unknown error';
477
+ return {
478
+ success: false,
479
+ method: 'mcp',
480
+ error: message,
481
+ fallbackText: this.generateFallbackTemplate({
482
+ title: request.title,
483
+ ...request.properties,
484
+ }),
485
+ };
486
+ }
487
+ }
67
488
  const platform = await this.detectPlatform();
68
489
  switch (platform.method) {
69
490
  case 'mcp':
@@ -83,6 +504,28 @@ export class NotionMCPService {
83
504
  };
84
505
  }
85
506
  }
507
+ /**
508
+ * Query Notion database
509
+ * Only queries the configured database ID
510
+ */
511
+ async queryDatabase(query) {
512
+ if (this.mcpClient) {
513
+ try {
514
+ return await this.mcpClient.queryDatabase(query);
515
+ }
516
+ catch (error) {
517
+ const message = error instanceof Error ? error.message : 'Unknown error';
518
+ return {
519
+ success: false,
520
+ error: message,
521
+ };
522
+ }
523
+ }
524
+ return {
525
+ success: false,
526
+ error: 'Notion MCP client not configured',
527
+ };
528
+ }
86
529
  /**
87
530
  * Create page via MCP (Desktop/Code)
88
531
  */
@@ -266,8 +709,13 @@ export class NotionMCPService {
266
709
  /**
267
710
  * Determine if a task should be synced to Notion based on deadline
268
711
  * Requirement: 8.1 (8日以上先のタスク)
712
+ * Now also validates that database ID is configured
269
713
  */
270
- shouldSyncToNotion(deadline, thresholdDays = 8) {
714
+ shouldSyncToNotion(deadline, thresholdDays = 8, configuredDatabaseId) {
715
+ // Require a configured database ID
716
+ if (!configuredDatabaseId || configuredDatabaseId.trim() === '') {
717
+ return false;
718
+ }
271
719
  if (!deadline) {
272
720
  return false;
273
721
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notion-mcp.js","sourceRoot":"","sources":["../../src/integrations/notion-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKvE;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,gBAAgB;CAC9B,CAAC;AAgEF;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,2CAA2C;QAC3C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,EAAE,CAAC;YACzE,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3D,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,WAAW;gBACnB,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE7C,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC9C,KAAK,UAAU,CAAC;YAChB;gBACE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,mBAAmB;oBAC1B,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC;wBAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,GAAG,OAAO,CAAC,UAAU;qBACtB,CAAC;iBACH,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,OAA0B;QACvD,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,mDAAmD;YACnD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,KAAK,IAAI,EAAE;gBACT,gDAAgD;gBAChD,mDAAmD;gBACnD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC,EACD;gBACE,GAAG,aAAa;gBAChB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAClC,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;aACF,CACF,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,mBAAoB,KAAe,CAAC,OAAO,EAAE;aACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,sBAAsB,CAAC,OAA0B;QAC7D,gCAAgC;QAChC,mCAAmC;QACnC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,WAAW;YACnB,KAAK,EACH,gEAAgE;YAClE,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC;gBAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,OAAO,CAAC,UAAU;aACtB,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAA0B;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAErF,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE;oBACT,WAAW,EAAE,OAAO,CAAC,UAAU;oBAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,QAAQ;iBACT;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAkB;QACzC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,WAAW;gBACd,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE;wBACT,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;qBAChE;iBACF,CAAC;YAEJ,KAAK,SAAS;gBACZ,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE;wBACT,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;qBAChE;iBACF,CAAC;YAEJ,KAAK,oBAAoB;gBACvB,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,oBAAoB;oBAC1B,kBAAkB,EAAE;wBAClB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;qBAChE;iBACF,CAAC;YAEJ;gBACE,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE;wBACT,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;qBAChE;iBACF,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAAkB;QACtC,MAAM,UAAU,GAAwB;YACtC,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE;4BACJ,OAAO,EAAE,QAAQ,CAAC,KAAK;yBACxB;qBACF;iBACF;aACF;SACF,CAAC;QAEF,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,UAAU,CAAC,QAAQ,GAAG;gBACpB,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ,CAAC,QAAQ;iBACxB;aACF,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,UAAU,CAAC,OAAO,GAAG;gBACnB,IAAI,EAAE;oBACJ,KAAK,EAAE,QAAQ,CAAC,QAAQ;iBACzB;aACF,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC9B,UAAU,CAAC,aAAa,GAAG;gBACzB,MAAM,EAAE,QAAQ,CAAC,gBAAgB;aAClC,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,UAAU,CAAC,YAAY,GAAG;gBACxB,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;aAC9D,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,QAAkB;QACzC,IAAI,QAAQ,GAAG,uBAAuB,CAAC;QACvC,QAAQ,IAAI,aAAa,QAAQ,CAAC,KAAK,IAAI,CAAC;QAE5C,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,QAAQ,IAAI,YAAY,QAAQ,CAAC,QAAQ,IAAI,CAAC;QAChD,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,QAAQ,IAAI,WAAW,QAAQ,CAAC,QAAQ,IAAI,CAAC;QAC/C,CAAC;QAED,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC9B,QAAQ,IAAI,aAAa,QAAQ,CAAC,gBAAgB,KAAK,CAAC;QAC1D,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,QAAQ,IAAI,YAAY,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/D,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,QAAQ,IAAI,cAAc,QAAQ,CAAC,WAAW,IAAI,CAAC;QACrD,CAAC;QAED,QAAQ,IAAI,yCAAyC,CAAC;QAEtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,QAA4B,EAAE,gBAAwB,CAAC;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAEhD,OAAO,QAAQ,IAAI,aAAa,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"notion-mcp.js","sourceRoot":"","sources":["../../src/integrations/notion-mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * TaskSynchronizer
3
+ * Multi-source task synchronization and conflict resolution
4
+ * Requirement: 12.5, 12.6
5
+ */
6
+ import { TodoItem, TaskSource, TaskConflict } from './todo-list-manager.js';
7
+ /**
8
+ * Duplicate task detection result
9
+ */
10
+ export interface DuplicateTask {
11
+ tasks: TodoItem[];
12
+ similarity: number;
13
+ suggestedMerge: TodoItem;
14
+ confidence: 'high' | 'medium' | 'low';
15
+ }
16
+ /**
17
+ * Merge result
18
+ */
19
+ export interface MergeResult {
20
+ success: boolean;
21
+ mergedTask: TodoItem;
22
+ removedTasks: string[];
23
+ error?: string;
24
+ }
25
+ /**
26
+ * Sync all result
27
+ */
28
+ export interface SyncAllResult {
29
+ totalTasks: number;
30
+ syncedTasks: number;
31
+ conflicts: TaskConflict[];
32
+ errors: SyncError[];
33
+ duration: number;
34
+ }
35
+ /**
36
+ * Sync error
37
+ */
38
+ export interface SyncError {
39
+ taskId: string;
40
+ source: TaskSource;
41
+ error: string;
42
+ recoverable: boolean;
43
+ }
44
+ /**
45
+ * Conflict resolution result
46
+ */
47
+ export interface ConflictResolution {
48
+ field: string;
49
+ appleRemindersValue: unknown;
50
+ notionValue: unknown;
51
+ resolvedValue: unknown;
52
+ resolution: 'apple_reminders' | 'notion' | 'manual';
53
+ }
54
+ /**
55
+ * TaskSynchronizer
56
+ * Handles synchronization of tasks between Apple Reminders and Notion
57
+ */
58
+ export declare class TaskSynchronizer {
59
+ private todoManager;
60
+ private similarityThreshold;
61
+ constructor();
62
+ /**
63
+ * Sync all tasks across all sources
64
+ * Requirement: 12.6
65
+ */
66
+ syncAllTasks(): Promise<SyncAllResult>;
67
+ /**
68
+ * Detect duplicates in a list of tasks
69
+ * Requirement: 12.5
70
+ */
71
+ detectDuplicatesInList(tasks: TodoItem[]): DuplicateTask[];
72
+ /**
73
+ * Detect duplicates across all sources
74
+ */
75
+ detectDuplicates(): Promise<DuplicateTask[]>;
76
+ /**
77
+ * Calculate similarity between two strings
78
+ * Uses Levenshtein distance normalized to 0-1 range
79
+ */
80
+ calculateSimilarity(str1: string, str2: string): number;
81
+ /**
82
+ * Calculate Levenshtein distance between two strings
83
+ */
84
+ private levenshteinDistance;
85
+ /**
86
+ * Calculate average similarity for a group of tasks
87
+ */
88
+ private calculateGroupSimilarity;
89
+ /**
90
+ * Determine confidence level based on similarity
91
+ */
92
+ private determineConfidence;
93
+ /**
94
+ * Create a suggested merge from multiple tasks
95
+ */
96
+ createSuggestedMerge(tasks: TodoItem[]): TodoItem;
97
+ /**
98
+ * Merge duplicate tasks
99
+ * Requirement: 12.5
100
+ */
101
+ mergeDuplicates(duplicates: DuplicateTask[]): Promise<MergeResult>;
102
+ /**
103
+ * Detect conflicts between tasks
104
+ */
105
+ private detectConflicts;
106
+ /**
107
+ * Resolve status conflict (use most recently updated)
108
+ */
109
+ private resolveStatusConflict;
110
+ /**
111
+ * Resolve priority conflict (use highest priority)
112
+ */
113
+ private resolvePriorityConflict;
114
+ /**
115
+ * Determine which source wins for conflict resolution
116
+ */
117
+ private determineResolution;
118
+ /**
119
+ * Resolve conflicts
120
+ * Requirement: 12.6
121
+ */
122
+ resolveConflicts(conflicts: TaskConflict[]): Promise<ConflictResolution[]>;
123
+ }
124
+ //# sourceMappingURL=task-synchronizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-synchronizer.d.ts","sourceRoot":"","sources":["../../src/integrations/task-synchronizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,QAAQ,EAER,UAAU,EAEV,YAAY,EACb,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,QAAQ,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACrD;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAAgB;;IAM3C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAgE5C;;;OAGG;IACH,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE;IAwC1D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKlD;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAavD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ;IA0DjD;;;OAGG;IACG,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAmCxE;;OAEG;IACH,OAAO,CAAC,eAAe;IAmCvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;IACG,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAsCjF"}