@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
@@ -0,0 +1,507 @@
1
+ /**
2
+ * Remote MCP Server
3
+ * HTTP/WebSocket based MCP server for remote access
4
+ * Requirements: 13.1-13.5
5
+ */
6
+ import { createServer } from 'http';
7
+ import { createServer as createHttpsServer } from 'https';
8
+ import { randomUUID } from 'crypto';
9
+ /**
10
+ * Session Manager
11
+ * Handles session creation, validation, and cleanup
12
+ */
13
+ export class SessionManager {
14
+ sessions = new Map();
15
+ config;
16
+ constructor(config) {
17
+ this.config = config;
18
+ }
19
+ /**
20
+ * Create a new session
21
+ */
22
+ createSession(userId) {
23
+ // Check if we're at max sessions and remove oldest if needed
24
+ while (this.sessions.size >= this.config.maxSessions) {
25
+ // Remove oldest session
26
+ this.removeOldestSession();
27
+ }
28
+ const session = {
29
+ id: randomUUID(),
30
+ userId,
31
+ createdAt: new Date(),
32
+ lastAccessedAt: new Date(),
33
+ data: {},
34
+ };
35
+ this.sessions.set(session.id, session);
36
+ return session;
37
+ }
38
+ /**
39
+ * Check if a session is valid
40
+ */
41
+ isValidSession(sessionId) {
42
+ const session = this.sessions.get(sessionId);
43
+ if (!session) {
44
+ return false;
45
+ }
46
+ const now = Date.now();
47
+ const lastAccess = session.lastAccessedAt.getTime();
48
+ if (now - lastAccess > this.config.sessionTimeout) {
49
+ this.sessions.delete(sessionId);
50
+ return false;
51
+ }
52
+ // Update last accessed time
53
+ session.lastAccessedAt = new Date();
54
+ return true;
55
+ }
56
+ /**
57
+ * Terminate a session
58
+ */
59
+ terminateSession(sessionId) {
60
+ this.sessions.delete(sessionId);
61
+ }
62
+ /**
63
+ * Get a session by ID
64
+ */
65
+ getSession(sessionId) {
66
+ if (this.isValidSession(sessionId)) {
67
+ return this.sessions.get(sessionId);
68
+ }
69
+ return undefined;
70
+ }
71
+ /**
72
+ * Clean up expired sessions
73
+ */
74
+ cleanExpiredSessions() {
75
+ const now = Date.now();
76
+ for (const [id, session] of this.sessions.entries()) {
77
+ if (now - session.lastAccessedAt.getTime() > this.config.sessionTimeout) {
78
+ this.sessions.delete(id);
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Get active session count
84
+ */
85
+ getActiveSessionCount() {
86
+ return this.sessions.size;
87
+ }
88
+ /**
89
+ * Remove oldest session
90
+ */
91
+ removeOldestSession() {
92
+ let oldestId = null;
93
+ let oldestTime = Date.now();
94
+ for (const [id, session] of this.sessions.entries()) {
95
+ if (session.createdAt.getTime() < oldestTime) {
96
+ oldestTime = session.createdAt.getTime();
97
+ oldestId = id;
98
+ }
99
+ }
100
+ if (oldestId) {
101
+ this.sessions.delete(oldestId);
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Authentication Configuration
107
+ * Handles JWT, API keys, and IP whitelist authentication
108
+ */
109
+ export class AuthConfig {
110
+ config;
111
+ tokens = new Map();
112
+ constructor(config) {
113
+ this.config = config;
114
+ }
115
+ /**
116
+ * Generate a token for a user
117
+ */
118
+ generateToken(userId) {
119
+ const token = randomUUID();
120
+ const expiry = this.config.tokenExpiry || 3600000; // 1 hour default
121
+ const expiresAt = Date.now() + expiry;
122
+ this.tokens.set(token, { userId, expiresAt });
123
+ return token;
124
+ }
125
+ /**
126
+ * Validate a token
127
+ */
128
+ validateToken(token) {
129
+ const tokenData = this.tokens.get(token);
130
+ if (!tokenData) {
131
+ return false;
132
+ }
133
+ if (Date.now() > tokenData.expiresAt) {
134
+ this.tokens.delete(token);
135
+ return false;
136
+ }
137
+ return true;
138
+ }
139
+ /**
140
+ * Validate an API key
141
+ */
142
+ validateApiKey(apiKey) {
143
+ if (!this.config.apiKeys || this.config.apiKeys.length === 0) {
144
+ return false;
145
+ }
146
+ return this.config.apiKeys.includes(apiKey);
147
+ }
148
+ /**
149
+ * Check if an IP is allowed
150
+ */
151
+ isIPAllowed(ip) {
152
+ if (!this.config.ipWhitelist || this.config.ipWhitelist.length === 0) {
153
+ return true; // No whitelist means all IPs allowed
154
+ }
155
+ // Simple IP matching (supports exact match and CIDR notation)
156
+ for (const allowed of this.config.ipWhitelist) {
157
+ if (this.matchIP(ip, allowed)) {
158
+ return true;
159
+ }
160
+ }
161
+ return false;
162
+ }
163
+ /**
164
+ * Match IP against pattern (exact or CIDR)
165
+ */
166
+ matchIP(ip, pattern) {
167
+ if (ip === pattern) {
168
+ return true;
169
+ }
170
+ // Simple CIDR matching for IPv4
171
+ if (pattern.includes('/')) {
172
+ const [network, bits] = pattern.split('/');
173
+ const mask = parseInt(bits, 10);
174
+ if (mask >= 0 && mask <= 32) {
175
+ const ipParts = ip.split('.').map(Number);
176
+ const networkParts = network.split('.').map(Number);
177
+ if (ipParts.length === 4 && networkParts.length === 4) {
178
+ const ipNum = (ipParts[0] << 24) | (ipParts[1] << 16) | (ipParts[2] << 8) | ipParts[3];
179
+ const networkNum = (networkParts[0] << 24) |
180
+ (networkParts[1] << 16) |
181
+ (networkParts[2] << 8) |
182
+ networkParts[3];
183
+ const maskNum = ~((1 << (32 - mask)) - 1);
184
+ return (ipNum & maskNum) === (networkNum & maskNum);
185
+ }
186
+ }
187
+ }
188
+ return false;
189
+ }
190
+ /**
191
+ * Extract token from Authorization header
192
+ */
193
+ extractToken(authHeader) {
194
+ if (!authHeader) {
195
+ return null;
196
+ }
197
+ if (authHeader.startsWith('Bearer ')) {
198
+ return authHeader.slice(7);
199
+ }
200
+ return null;
201
+ }
202
+ /**
203
+ * Check if authentication is enabled
204
+ */
205
+ isEnabled() {
206
+ return this.config.enabled;
207
+ }
208
+ }
209
+ /**
210
+ * MCP Over HTTP Handler
211
+ * Handles JSON-RPC over HTTP protocol
212
+ */
213
+ export class MCPOverHTTPHandler {
214
+ config;
215
+ constructor(config) {
216
+ this.config = config || {};
217
+ }
218
+ /**
219
+ * Parse a JSON-RPC request
220
+ */
221
+ parseRequest(body) {
222
+ let parsed;
223
+ try {
224
+ parsed = JSON.parse(body);
225
+ }
226
+ catch {
227
+ throw new Error('Invalid JSON');
228
+ }
229
+ const request = parsed;
230
+ if (!request.jsonrpc || request.jsonrpc !== '2.0') {
231
+ throw new Error('Invalid JSON-RPC request');
232
+ }
233
+ if (request.method === undefined) {
234
+ throw new Error('Invalid JSON-RPC request: missing method');
235
+ }
236
+ return {
237
+ jsonrpc: '2.0',
238
+ id: request.id ?? null,
239
+ method: request.method,
240
+ params: request.params,
241
+ };
242
+ }
243
+ /**
244
+ * Build a success response
245
+ */
246
+ buildResponse(id, result) {
247
+ return {
248
+ jsonrpc: '2.0',
249
+ id,
250
+ result,
251
+ };
252
+ }
253
+ /**
254
+ * Build an error response
255
+ */
256
+ buildErrorResponse(id, code, message, data) {
257
+ return {
258
+ jsonrpc: '2.0',
259
+ id,
260
+ error: {
261
+ code,
262
+ message,
263
+ data,
264
+ },
265
+ };
266
+ }
267
+ /**
268
+ * Get CORS headers for a request
269
+ */
270
+ getCORSHeaders(origin) {
271
+ const allowedOrigins = this.config.allowedOrigins || ['*'];
272
+ let allowOrigin = '*';
273
+ if (origin && allowedOrigins.includes(origin)) {
274
+ allowOrigin = origin;
275
+ }
276
+ else if (allowedOrigins.length === 1 && allowedOrigins[0] !== '*') {
277
+ allowOrigin = allowedOrigins[0];
278
+ }
279
+ return {
280
+ 'Access-Control-Allow-Origin': allowOrigin,
281
+ 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
282
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization, X-API-Key',
283
+ 'Access-Control-Max-Age': '86400',
284
+ };
285
+ }
286
+ }
287
+ /**
288
+ * Remote MCP Server
289
+ * HTTP/HTTPS server that exposes MCP protocol over HTTP
290
+ */
291
+ export class RemoteMCPServer {
292
+ config;
293
+ server = null;
294
+ running = false;
295
+ startTime = null;
296
+ _sessionManager;
297
+ auth;
298
+ httpHandler;
299
+ constructor(config) {
300
+ this.config = {
301
+ port: 3000,
302
+ host: 'localhost',
303
+ ...config,
304
+ };
305
+ this._sessionManager = new SessionManager({
306
+ sessionTimeout: 3600000, // 1 hour
307
+ maxSessions: 1000,
308
+ });
309
+ this.auth = config.auth ? new AuthConfig(config.auth) : null;
310
+ this.httpHandler = new MCPOverHTTPHandler({
311
+ allowedOrigins: config.cors?.allowedOrigins,
312
+ });
313
+ }
314
+ /**
315
+ * Start the server
316
+ */
317
+ async start() {
318
+ if (this.running) {
319
+ return;
320
+ }
321
+ return new Promise((resolve, reject) => {
322
+ try {
323
+ const requestHandler = this.handleRequest.bind(this);
324
+ if (this.config.ssl) {
325
+ this.server = createHttpsServer({
326
+ cert: this.config.ssl.cert,
327
+ key: this.config.ssl.key,
328
+ ca: this.config.ssl.ca,
329
+ }, requestHandler);
330
+ }
331
+ else {
332
+ this.server = createServer(requestHandler);
333
+ }
334
+ this.server.listen(this.config.port, this.config.host, () => {
335
+ this.running = true;
336
+ this.startTime = new Date();
337
+ resolve();
338
+ });
339
+ this.server.on('error', (error) => {
340
+ reject(error);
341
+ });
342
+ }
343
+ catch (error) {
344
+ reject(error);
345
+ }
346
+ });
347
+ }
348
+ /**
349
+ * Stop the server
350
+ */
351
+ async stop() {
352
+ if (!this.running || !this.server) {
353
+ return;
354
+ }
355
+ return new Promise((resolve) => {
356
+ this.server.close(() => {
357
+ this.running = false;
358
+ this.startTime = null;
359
+ resolve();
360
+ });
361
+ });
362
+ }
363
+ /**
364
+ * Check if server is running
365
+ */
366
+ isRunning() {
367
+ return this.running;
368
+ }
369
+ /**
370
+ * Get configured port
371
+ */
372
+ getPort() {
373
+ return this.config.port;
374
+ }
375
+ /**
376
+ * Check if HTTPS is enabled
377
+ */
378
+ isHTTPS() {
379
+ return !!this.config.ssl;
380
+ }
381
+ /**
382
+ * Health check
383
+ */
384
+ async healthCheck() {
385
+ const uptime = this.startTime ? Date.now() - this.startTime.getTime() : 0;
386
+ return {
387
+ status: this.running ? 'ok' : 'error',
388
+ uptime,
389
+ version: '1.0.0',
390
+ timestamp: new Date().toISOString(),
391
+ };
392
+ }
393
+ /**
394
+ * Get session manager for external access
395
+ */
396
+ getSessionManager() {
397
+ return this._sessionManager;
398
+ }
399
+ /**
400
+ * Get active session count
401
+ */
402
+ getActiveSessionCount() {
403
+ return this._sessionManager.getActiveSessionCount();
404
+ }
405
+ /**
406
+ * Handle incoming HTTP request
407
+ */
408
+ handleRequest(req, res) {
409
+ const url = req.url || '/';
410
+ const method = req.method || 'GET';
411
+ const origin = req.headers.origin;
412
+ // Add CORS headers
413
+ const corsHeaders = this.httpHandler.getCORSHeaders(origin);
414
+ for (const [key, value] of Object.entries(corsHeaders)) {
415
+ res.setHeader(key, value);
416
+ }
417
+ // Handle preflight
418
+ if (method === 'OPTIONS') {
419
+ res.writeHead(204);
420
+ res.end();
421
+ return;
422
+ }
423
+ // Health check endpoint
424
+ if (url === '/health' && method === 'GET') {
425
+ this.handleHealthCheck(res);
426
+ return;
427
+ }
428
+ // MCP endpoint
429
+ if (url === '/mcp' && method === 'POST') {
430
+ this.handleMCPRequest(req, res);
431
+ return;
432
+ }
433
+ // 404 for unknown routes
434
+ res.writeHead(404, { 'Content-Type': 'application/json' });
435
+ res.end(JSON.stringify({ error: 'Not found' }));
436
+ }
437
+ /**
438
+ * Handle health check request
439
+ */
440
+ async handleHealthCheck(res) {
441
+ const health = await this.healthCheck();
442
+ res.writeHead(200, { 'Content-Type': 'application/json' });
443
+ res.end(JSON.stringify(health));
444
+ }
445
+ /**
446
+ * Handle MCP request
447
+ */
448
+ handleMCPRequest(req, res) {
449
+ // Check authentication if enabled
450
+ if (this.auth?.isEnabled()) {
451
+ const authHeader = req.headers.authorization;
452
+ const apiKey = req.headers['x-api-key'];
453
+ const clientIP = req.headers['x-forwarded-for']?.split(',')[0] ||
454
+ req.socket.remoteAddress ||
455
+ '';
456
+ // Check IP whitelist
457
+ if (!this.auth.isIPAllowed(clientIP)) {
458
+ res.writeHead(403, { 'Content-Type': 'application/json' });
459
+ res.end(JSON.stringify(this.httpHandler.buildErrorResponse(null, -32001, 'IP not allowed')));
460
+ return;
461
+ }
462
+ // Check API key or token
463
+ const token = this.auth.extractToken(authHeader);
464
+ if (!token && !apiKey) {
465
+ res.writeHead(401, { 'Content-Type': 'application/json' });
466
+ res.end(JSON.stringify(this.httpHandler.buildErrorResponse(null, -32002, 'Authentication required')));
467
+ return;
468
+ }
469
+ if (token && !this.auth.validateToken(token)) {
470
+ if (!apiKey || !this.auth.validateApiKey(apiKey)) {
471
+ res.writeHead(401, { 'Content-Type': 'application/json' });
472
+ res.end(JSON.stringify(this.httpHandler.buildErrorResponse(null, -32003, 'Invalid credentials')));
473
+ return;
474
+ }
475
+ }
476
+ }
477
+ // Read request body
478
+ let body = '';
479
+ req.on('data', (chunk) => {
480
+ body += chunk.toString();
481
+ });
482
+ req.on('end', () => {
483
+ try {
484
+ const request = this.httpHandler.parseRequest(body);
485
+ // TODO: Route to appropriate MCP tool handler
486
+ // For now, return a placeholder response
487
+ const response = this.httpHandler.buildResponse(request.id, {
488
+ message: 'MCP request received',
489
+ method: request.method,
490
+ params: request.params,
491
+ });
492
+ res.writeHead(200, { 'Content-Type': 'application/json' });
493
+ res.end(JSON.stringify(response));
494
+ }
495
+ catch (error) {
496
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
497
+ res.writeHead(400, { 'Content-Type': 'application/json' });
498
+ res.end(JSON.stringify(this.httpHandler.buildErrorResponse(null, -32700, errorMessage)));
499
+ }
500
+ });
501
+ req.on('error', (error) => {
502
+ res.writeHead(500, { 'Content-Type': 'application/json' });
503
+ res.end(JSON.stringify(this.httpHandler.buildErrorResponse(null, -32603, error.message)));
504
+ });
505
+ }
506
+ }
507
+ //# sourceMappingURL=remote-mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-mcp-server.js","sourceRoot":"","sources":["../../src/remote/remote-mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../src/utils/priority.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgCtG,UAAU,cAAc;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,aAAa,EACpB,UAAU,CAAC,EAAE,UAAU,GACtB,cAAc;IAuCjB;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CACvB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,iBAAiB,EAAE,EAC/B,UAAU,CAAC,EAAE,UAAU,GACtB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAe1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA4BtC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAoCxC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAgBvC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA6B3C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAcxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IActC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK/C;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKlD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;CAO3B"}
1
+ {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../src/utils/priority.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgCtG,UAAU,cAAc;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,aAAa,EACpB,UAAU,CAAC,EAAE,UAAU,GACtB,cAAc;IAuCjB;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CACvB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,iBAAiB,EAAE,EAC/B,UAAU,CAAC,EAAE,UAAU,GACtB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAe1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA4BtC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAqCxC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAgBvC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA2C3C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAcxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IActC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK/C;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKlD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;CAO3B"}
@@ -134,7 +134,8 @@ export class PriorityEngine {
134
134
  }
135
135
  switch (condition.operator) {
136
136
  case '<':
137
- return diffMs < thresholdMs && diffMs > 0;
137
+ // Include overdue tasks (diffMs <= 0) as well as tasks due within threshold
138
+ return diffMs <= thresholdMs;
138
139
  case '>':
139
140
  return diffMs > thresholdMs;
140
141
  case '=':
@@ -167,16 +168,28 @@ export class PriorityEngine {
167
168
  */
168
169
  static evaluateStakeholderCondition(text, condition, teamConfig) {
169
170
  const value = condition.value;
170
- if (value === 'manager' && teamConfig?.manager) {
171
+ if (value === 'manager') {
171
172
  const managerKeywords = [
172
- teamConfig.manager.name.toLowerCase(),
173
173
  'manager',
174
174
  'マネージャー',
175
175
  '上司',
176
176
  'boss',
177
- ...teamConfig.manager.keywords.map((k) => k.toLowerCase()),
177
+ '部長',
178
+ '課長',
179
+ '係長',
180
+ '主任',
181
+ '社長',
182
+ '取締役',
183
+ 'director',
184
+ 'lead',
185
+ 'リーダー',
178
186
  ];
179
- return managerKeywords.some((keyword) => text.includes(keyword));
187
+ // Add configured manager keywords if available
188
+ if (teamConfig?.manager) {
189
+ managerKeywords.push(teamConfig.manager.name.toLowerCase());
190
+ managerKeywords.push(...teamConfig.manager.keywords.map((k) => k.toLowerCase()));
191
+ }
192
+ return managerKeywords.some((keyword) => text.includes(keyword.toLowerCase()));
180
193
  }
181
194
  if (value === 'lead' && teamConfig?.frequentCollaborators) {
182
195
  const leads = teamConfig.frequentCollaborators.filter((c) => c.role === 'lead');
@@ -1 +1 @@
1
- {"version":3,"file":"priority.js","sourceRoot":"","sources":["../../src/utils/priority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"priority.js","sourceRoot":"","sources":["../../src/utils/priority.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,10 @@ export declare class StakeholderExtractor {
48
48
  * Get priority boost for manager involvement
49
49
  */
50
50
  static getManagerPriorityBoost(): number;
51
+ /**
52
+ * Extract manager references from text (name + title patterns)
53
+ */
54
+ private static extractManagerReferences;
51
55
  /**
52
56
  * Extract all names from text (broader matching)
53
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"stakeholders.d.ts","sourceRoot":"","sources":["../../src/utils/stakeholders.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEtE,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB,EAAE,UAAU,EAAE,CAAC;CAClC;AA0BD,qBAAa,oBAAoB;IAC/B;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,iBAAiB;IAwClF;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAoB3C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE;IAqB3E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO;IAwB9E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAuD3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IA2B1B;;OAEG;IACH,MAAM,CAAC,uBAAuB,IAAI,MAAM;IAIxC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAuBpD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;CA+CvC"}
1
+ {"version":3,"file":"stakeholders.d.ts","sourceRoot":"","sources":["../../src/utils/stakeholders.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEtE,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB,EAAE,UAAU,EAAE,CAAC;CAClC;AAgCD,qBAAa,oBAAoB;IAC/B;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,iBAAiB;IAkDlF;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAoB3C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE;IAqB3E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO;IAwB9E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAuD3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IA2B1B;;OAEG;IACH,MAAM,CAAC,uBAAuB,IAAI,MAAM;IAIxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IA0BvC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAuBpD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;CA+CvC"}