screencoach-mcp 0.1.2 → 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.
package/dist/index.js CHANGED
@@ -44,6 +44,61 @@ async function checkHealth() {
44
44
  return false;
45
45
  }
46
46
  }
47
+ // ==================== Noise Filtering Constants ====================
48
+ const NOISE_APPS = [
49
+ 'Spotify',
50
+ 'Apple Music',
51
+ 'Music',
52
+ 'Netflix',
53
+ 'YouTube Music',
54
+ 'Steam',
55
+ ];
56
+ const PRODUCTIVE_APPS = [
57
+ 'Code',
58
+ 'Visual Studio Code',
59
+ 'Cursor',
60
+ 'IntelliJ IDEA',
61
+ 'WebStorm',
62
+ 'PyCharm',
63
+ 'Terminal',
64
+ 'iTerm2',
65
+ 'Warp',
66
+ 'Figma',
67
+ 'Notion',
68
+ 'Obsidian',
69
+ ];
70
+ const CURATED_TOOLS = [
71
+ // Coding
72
+ { name: 'Claude Code', url: 'https://claude.ai', reason: 'AI pair programming in terminal', category: 'coding', pattern_type: 'manual_work' },
73
+ { name: 'Cursor', url: 'https://cursor.com', reason: 'AI-first code editor', category: 'coding', pattern_type: 'manual_work' },
74
+ { name: 'GitHub Copilot', url: 'https://copilot.github.com', reason: 'AI code completion', category: 'coding', pattern_type: 'manual_work' },
75
+ { name: 'Codeium', url: 'https://codeium.com', reason: 'Free AI code assistant', category: 'coding', pattern_type: 'manual_work' },
76
+ // Video
77
+ { name: 'Descript', url: 'https://descript.com', reason: 'AI video editing with text-based editing', category: 'video', pattern_type: 'manual_work' },
78
+ { name: 'Remotion', url: 'https://remotion.dev', reason: 'Programmatic video creation with React', category: 'video', pattern_type: 'manual_work' },
79
+ { name: 'Runway', url: 'https://runwayml.com', reason: 'AI-powered video generation and editing', category: 'video', pattern_type: 'manual_work' },
80
+ // Search
81
+ { name: 'Perplexity', url: 'https://perplexity.ai', reason: 'AI-powered search with citations', category: 'search', pattern_type: 'searching' },
82
+ { name: 'Gemini', url: 'https://gemini.google.com', reason: 'Google AI assistant with web access', category: 'search', pattern_type: 'searching' },
83
+ // Spreadsheet
84
+ { name: 'Claude for Excel', reason: 'AI-powered spreadsheet automation', category: 'spreadsheet', pattern_type: 'manual_work' },
85
+ { name: 'SheetAI', url: 'https://sheetai.app', reason: 'AI in Google Sheets', category: 'spreadsheet', pattern_type: 'manual_work' },
86
+ { name: 'Rows', url: 'https://rows.com', reason: 'Spreadsheet with AI built-in', category: 'spreadsheet', pattern_type: 'manual_work' },
87
+ // Automation
88
+ { name: 'Ralph Plugin', url: 'https://github.com/anthropics/claude-code', reason: 'Background task execution for Claude Code', category: 'automation', pattern_type: 'waiting' },
89
+ { name: 'Conductor', reason: 'Parallel Claude Code agents with worktrees', category: 'automation', pattern_type: 'waiting' },
90
+ // Backend/Deployment
91
+ { name: 'Vercel', url: 'https://vercel.com', reason: 'One-click deployment with serverless', category: 'deployment', pattern_type: 'manual_work' },
92
+ { name: 'Convex', url: 'https://convex.dev', reason: 'Backend-as-a-service with realtime', category: 'backend', pattern_type: 'manual_work' },
93
+ { name: 'Supabase', url: 'https://supabase.com', reason: 'Open source Firebase alternative', category: 'backend', pattern_type: 'manual_work' },
94
+ { name: 'v0.dev', url: 'https://v0.dev', reason: 'AI-generated UI components', category: 'frontend', pattern_type: 'manual_work' },
95
+ // AI/Chat
96
+ { name: 'Vercel AI SDK', url: 'https://sdk.vercel.ai', reason: 'Build AI chat interfaces easily', category: 'ai', pattern_type: 'manual_work' },
97
+ { name: 'Stream', url: 'https://getstream.io', reason: 'Chat API and SDK', category: 'chat', pattern_type: 'manual_work' },
98
+ // Productivity
99
+ { name: 'Raycast', url: 'https://raycast.com', reason: 'Unified launcher and productivity', category: 'productivity', pattern_type: 'productivity' },
100
+ { name: 'Arc Browser', url: 'https://arc.net', reason: 'Better tab and workspace management', category: 'browser', pattern_type: 'productivity' },
101
+ ];
47
102
  // ==================== Tool Definitions ====================
48
103
  const TOOLS = [
49
104
  {
@@ -176,6 +231,129 @@ Use this to verify the connection before performing other operations.`,
176
231
  properties: {},
177
232
  },
178
233
  },
234
+ {
235
+ name: 'analyze_session',
236
+ description: `[DEPRECATED - Use scan_activity instead] Legacy session analysis tool.`,
237
+ inputSchema: {
238
+ type: 'object',
239
+ properties: {
240
+ hours: { type: 'number', description: 'Number of hours to analyze. Default: 4' },
241
+ focus_apps: { type: 'array', items: { type: 'string' }, description: 'Optional: specific apps to focus on' },
242
+ },
243
+ },
244
+ },
245
+ // ==================== Optimizer Tools ====================
246
+ {
247
+ name: 'scan_activity',
248
+ description: `Scan user activity for the last N hours with smart filtering and grouping.
249
+
250
+ **ALWAYS START WITH THIS TOOL** for productivity analysis.
251
+
252
+ Returns:
253
+ - App usage grouped by application with time percentages
254
+ - Top windows per app
255
+ - Activity classification (productive_work, communication, research, entertainment)
256
+ - Sample content for context
257
+
258
+ Automatically filters noise apps (Spotify, Netflix, etc.) unless include_noise=true.
259
+
260
+ **After calling this tool:**
261
+ 1. Identify 2-3 apps for deeper investigation (heavy usage, errors, repetition)
262
+ 2. Call get_workflow_context for each investigation target
263
+ 3. Call get_curated_tools for recommendations
264
+ 4. Use YOUR WEB SEARCH to find additional tools for gaps
265
+
266
+ **FORBIDDEN**: NEVER recommend "reducing context switching" or "using fewer apps". People naturally use multiple apps - this is NORMAL workflow.`,
267
+ inputSchema: {
268
+ type: 'object',
269
+ properties: {
270
+ hours: {
271
+ type: 'number',
272
+ description: 'Number of hours to scan. Default: 4',
273
+ },
274
+ include_noise: {
275
+ type: 'boolean',
276
+ description: 'Include entertainment apps (Spotify, Netflix). Default: false',
277
+ },
278
+ },
279
+ },
280
+ },
281
+ {
282
+ name: 'get_workflow_context',
283
+ description: `Deep dive into a specific app/window to understand workflow patterns.
284
+
285
+ Use this after scan_activity identifies apps that need investigation.
286
+
287
+ Returns:
288
+ - Timeline of activity
289
+ - Detected patterns (errors, repetitive tasks)
290
+ - Issues identified (frequent searching, copy-paste, debugging)
291
+ - Time spent
292
+
293
+ **Investigation triggers:**
294
+ - High time percentage from scan_activity
295
+ - Errors or exceptions in sample content
296
+ - Repetitive patterns`,
297
+ inputSchema: {
298
+ type: 'object',
299
+ properties: {
300
+ app: {
301
+ type: 'string',
302
+ description: 'App name to investigate (e.g., "Code", "Chrome")',
303
+ },
304
+ window: {
305
+ type: 'string',
306
+ description: 'Optional: window title filter (partial match)',
307
+ },
308
+ hours: {
309
+ type: 'number',
310
+ description: 'Hours to look back. Default: 2',
311
+ },
312
+ },
313
+ required: ['app'],
314
+ },
315
+ },
316
+ {
317
+ name: 'get_curated_tools',
318
+ description: `Get vetted, high-quality tool recommendations by category.
319
+
320
+ Use this to get reliable recommendations BEFORE doing web search.
321
+
322
+ Available categories:
323
+ - coding: Claude Code, Cursor, GitHub Copilot, Codeium
324
+ - video: Descript, Remotion, Runway
325
+ - search: Perplexity, Gemini
326
+ - spreadsheet: Claude for Excel, SheetAI, Rows
327
+ - automation: Ralph Plugin, Conductor
328
+ - deployment: Vercel
329
+ - backend: Convex, Supabase
330
+ - frontend: v0.dev
331
+ - ai: Vercel AI SDK
332
+ - chat: Stream
333
+ - productivity: Raycast
334
+ - browser: Arc Browser
335
+
336
+ **After getting curated tools:**
337
+ If there are gaps where no curated tool matches the pain point,
338
+ use YOUR BUILT-IN WEB SEARCH to find additional tools with SPECIFIC queries like:
339
+ "AI TypeScript documentation VS Code extension 2026" (not generic like "coding tools")
340
+
341
+ **FORBIDDEN**: NEVER recommend "reducing context switching", "using fewer apps", or generic advice like "take breaks". Focus ONLY on specific tools that solve specific problems.`,
342
+ inputSchema: {
343
+ type: 'object',
344
+ properties: {
345
+ category: {
346
+ type: 'string',
347
+ description: 'Filter by category (optional)',
348
+ },
349
+ exclude_tools: {
350
+ type: 'array',
351
+ items: { type: 'string' },
352
+ description: 'Tool names to exclude (already recommended)',
353
+ },
354
+ },
355
+ },
356
+ },
179
357
  ];
180
358
  async function handleSearchScreenContent(args) {
181
359
  const params = new URLSearchParams();
@@ -266,6 +444,421 @@ async function handleHealthCheck() {
266
444
  return `ScreenCoach is NOT accessible at ${SCREENCOACH_API_URL}. Please make sure the ScreenCoach app is running.`;
267
445
  }
268
446
  }
447
+ async function handleAnalyzeSession(args) {
448
+ const hours = Number(args.hours) || 4;
449
+ const focusApps = args.focus_apps;
450
+ const endTime = new Date();
451
+ const startTime = new Date(endTime.getTime() - hours * 60 * 60 * 1000);
452
+ // Fetch all data for the period (paginated)
453
+ const allResults = [];
454
+ let offset = 0;
455
+ const limit = 100;
456
+ while (true) {
457
+ const params = new URLSearchParams();
458
+ params.set('start_time', startTime.toISOString());
459
+ params.set('end_time', endTime.toISOString());
460
+ params.set('limit', String(limit));
461
+ params.set('offset', String(offset));
462
+ const result = await apiGet('/search', params);
463
+ if (!result.data || result.data.length === 0)
464
+ break;
465
+ allResults.push(...result.data);
466
+ if (result.data.length < limit)
467
+ break;
468
+ offset += limit;
469
+ // Safety limit
470
+ if (allResults.length >= 1000)
471
+ break;
472
+ }
473
+ if (allResults.length === 0) {
474
+ return `No activity found in the last ${hours} hours.`;
475
+ }
476
+ // Aggregate by app
477
+ const appMap = new Map();
478
+ const allText = [];
479
+ const windowPatterns = [];
480
+ for (const result of allResults) {
481
+ const c = result.content;
482
+ const appName = String(c.app_name || 'Unknown');
483
+ const windowName = String(c.window_name || '');
484
+ // Filter by focus apps if specified
485
+ if (focusApps && focusApps.length > 0) {
486
+ const matchesFocus = focusApps.some(fa => appName.toLowerCase().includes(fa.toLowerCase()));
487
+ if (!matchesFocus)
488
+ continue;
489
+ }
490
+ if (!appMap.has(appName)) {
491
+ appMap.set(appName, {
492
+ app_name: appName,
493
+ total_entries: 0,
494
+ windows: {},
495
+ sample_content: [],
496
+ });
497
+ }
498
+ const app = appMap.get(appName);
499
+ app.total_entries++;
500
+ if (windowName) {
501
+ app.windows[windowName] = (app.windows[windowName] || 0) + 1;
502
+ windowPatterns.push(`${appName}: ${windowName}`);
503
+ }
504
+ // Collect text content
505
+ const text = result.type === 'Audio'
506
+ ? String(c.transcription || '')
507
+ : String(c.text || '');
508
+ if (text && app.sample_content.length < 5) {
509
+ app.sample_content.push(truncate(text, 100));
510
+ }
511
+ if (text) {
512
+ allText.push(text);
513
+ }
514
+ }
515
+ // Sort apps by usage
516
+ const appUsage = Array.from(appMap.values())
517
+ .sort((a, b) => b.total_entries - a.total_entries);
518
+ // Detect repetitive patterns (same window title appearing many times)
519
+ const windowCounts = new Map();
520
+ for (const pattern of windowPatterns) {
521
+ windowCounts.set(pattern, (windowCounts.get(pattern) || 0) + 1);
522
+ }
523
+ const repetitiveTasks = Array.from(windowCounts.entries())
524
+ .filter(([_, count]) => count >= 5)
525
+ .sort((a, b) => b[1] - a[1])
526
+ .slice(0, 10)
527
+ .map(([pattern, count]) => `${pattern} (${count}x)`);
528
+ // Extract keywords (simple frequency analysis)
529
+ const wordFreq = new Map();
530
+ const stopWords = new Set(['the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could', 'should', 'may', 'might', 'must', 'shall', 'can', 'need', 'dare', 'ought', 'used', 'to', 'of', 'in', 'for', 'on', 'with', 'at', 'by', 'from', 'as', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'between', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 'just', 'and', 'but', 'if', 'or', 'because', 'until', 'while', 'this', 'that', 'these', 'those', 'i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers', 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom']);
531
+ for (const text of allText) {
532
+ const words = text.toLowerCase().match(/\b[a-z]{4,}\b/g) || [];
533
+ for (const word of words) {
534
+ if (!stopWords.has(word)) {
535
+ wordFreq.set(word, (wordFreq.get(word) || 0) + 1);
536
+ }
537
+ }
538
+ }
539
+ const keywords = Array.from(wordFreq.entries())
540
+ .filter(([_, count]) => count >= 3)
541
+ .sort((a, b) => b[1] - a[1])
542
+ .slice(0, 20)
543
+ .map(([word]) => word);
544
+ // Identify activity patterns
545
+ const activityPatterns = [];
546
+ for (const app of appUsage.slice(0, 5)) {
547
+ const topWindows = Object.entries(app.windows)
548
+ .sort((a, b) => b[1] - a[1])
549
+ .slice(0, 3)
550
+ .map(([w]) => w);
551
+ if (topWindows.length > 0) {
552
+ activityPatterns.push(`${app.app_name}: ${topWindows.join(', ')}`);
553
+ }
554
+ }
555
+ // Build analysis result
556
+ const analysis = {
557
+ period: {
558
+ start: startTime.toISOString(),
559
+ end: endTime.toISOString(),
560
+ hours,
561
+ },
562
+ app_usage: appUsage.slice(0, 10),
563
+ activity_patterns: activityPatterns,
564
+ repetitive_tasks: repetitiveTasks,
565
+ keywords,
566
+ raw_summary: `Analyzed ${allResults.length} entries from ${appUsage.length} apps over ${hours} hours.`,
567
+ };
568
+ // Format output for AI
569
+ let output = `## Session Analysis (Last ${hours} hours)\n\n`;
570
+ output += `**Period**: ${startTime.toLocaleString()} - ${endTime.toLocaleString()}\n`;
571
+ output += `**Total entries analyzed**: ${allResults.length}\n\n`;
572
+ output += `### App Usage (by activity count)\n`;
573
+ for (const app of analysis.app_usage) {
574
+ const pct = ((app.total_entries / allResults.length) * 100).toFixed(1);
575
+ output += `- **${app.app_name}**: ${app.total_entries} entries (${pct}%)\n`;
576
+ const topWindows = Object.entries(app.windows)
577
+ .sort((a, b) => b[1] - a[1])
578
+ .slice(0, 3);
579
+ for (const [window, count] of topWindows) {
580
+ output += ` - ${truncate(window, 60)}: ${count}x\n`;
581
+ }
582
+ }
583
+ if (analysis.repetitive_tasks.length > 0) {
584
+ output += `\n### Repetitive Tasks Detected\n`;
585
+ for (const task of analysis.repetitive_tasks) {
586
+ output += `- ${task}\n`;
587
+ }
588
+ }
589
+ if (analysis.keywords.length > 0) {
590
+ output += `\n### Top Keywords\n`;
591
+ output += analysis.keywords.join(', ') + '\n';
592
+ }
593
+ output += `\n### Activity Patterns\n`;
594
+ for (const pattern of analysis.activity_patterns) {
595
+ output += `- ${pattern}\n`;
596
+ }
597
+ output += `\n---\n`;
598
+ output += `**Next steps**: Based on this analysis, identify inefficiencies and search for trending productivity tools that could help optimize the user's workflow.`;
599
+ return output;
600
+ }
601
+ function classifyApp(appName, windowName) {
602
+ const appLower = appName.toLowerCase();
603
+ const windowLower = (windowName || '').toLowerCase();
604
+ // Check productive apps first
605
+ if (PRODUCTIVE_APPS.some(pa => appLower.includes(pa.toLowerCase()))) {
606
+ return 'productive_work';
607
+ }
608
+ // Check noise apps
609
+ if (NOISE_APPS.some(na => appLower.includes(na.toLowerCase()))) {
610
+ return 'entertainment';
611
+ }
612
+ // Browser context-dependent
613
+ if (appLower.includes('chrome') || appLower.includes('safari') || appLower.includes('firefox') || appLower.includes('arc') || appLower.includes('edge')) {
614
+ if (/github|stackoverflow|docs\.|documentation|api\.|developer\.|console\./i.test(windowLower)) {
615
+ return 'research';
616
+ }
617
+ if (/twitter|x\.com|facebook|instagram|tiktok|reddit/i.test(windowLower)) {
618
+ return 'entertainment';
619
+ }
620
+ return 'research';
621
+ }
622
+ // Communication apps
623
+ if (appLower.includes('slack') || appLower.includes('teams') || appLower.includes('zoom') || appLower.includes('discord')) {
624
+ if (windowLower.includes('#random') || windowLower.includes('#watercooler') || windowLower.includes('#off-topic')) {
625
+ return 'entertainment';
626
+ }
627
+ return 'communication';
628
+ }
629
+ return 'unknown';
630
+ }
631
+ async function handleScanActivity(args) {
632
+ const hours = Number(args.hours) || 4;
633
+ const includeNoise = Boolean(args.include_noise);
634
+ const endTime = new Date();
635
+ const startTime = new Date(endTime.getTime() - hours * 60 * 60 * 1000);
636
+ // Fetch all data
637
+ const allResults = [];
638
+ let offset = 0;
639
+ const limit = 100;
640
+ while (true) {
641
+ const params = new URLSearchParams();
642
+ params.set('start_time', startTime.toISOString());
643
+ params.set('end_time', endTime.toISOString());
644
+ params.set('limit', String(limit));
645
+ params.set('offset', String(offset));
646
+ const result = await apiGet('/search', params);
647
+ if (!result.data || result.data.length === 0)
648
+ break;
649
+ allResults.push(...result.data);
650
+ if (result.data.length < limit)
651
+ break;
652
+ offset += limit;
653
+ if (allResults.length >= 1000)
654
+ break;
655
+ }
656
+ if (allResults.length === 0) {
657
+ return `No activity found in the last ${hours} hours.`;
658
+ }
659
+ // Group by app with classification
660
+ const appMap = new Map();
661
+ for (const result of allResults) {
662
+ const c = result.content;
663
+ const appName = String(c.app_name || 'Unknown');
664
+ const windowName = String(c.window_name || '');
665
+ const text = result.type === 'Audio' ? String(c.transcription || '') : String(c.text || '');
666
+ const classification = classifyApp(appName, windowName);
667
+ // Skip noise unless requested
668
+ if (!includeNoise && classification === 'entertainment') {
669
+ continue;
670
+ }
671
+ if (!appMap.has(appName)) {
672
+ appMap.set(appName, {
673
+ entries: 0,
674
+ windows: new Map(),
675
+ content: [],
676
+ classification,
677
+ });
678
+ }
679
+ const app = appMap.get(appName);
680
+ app.entries++;
681
+ app.windows.set(windowName, (app.windows.get(windowName) || 0) + 1);
682
+ if (text && text.length > 20 && app.content.length < 3) {
683
+ app.content.push(truncate(text, 100));
684
+ }
685
+ }
686
+ // Sort by entries
687
+ const sortedApps = Array.from(appMap.entries())
688
+ .sort((a, b) => b[1].entries - a[1].entries);
689
+ const totalEntries = sortedApps.reduce((sum, [_, data]) => sum + data.entries, 0);
690
+ const productiveEntries = sortedApps
691
+ .filter(([_, data]) => data.classification === 'productive_work' || data.classification === 'research')
692
+ .reduce((sum, [_, data]) => sum + data.entries, 0);
693
+ // Format output
694
+ let output = `## Activity Scan (Last ${hours} hours)\n\n`;
695
+ output += `**Total entries**: ${totalEntries}\n`;
696
+ output += `**Productive time**: ${((productiveEntries / totalEntries) * 100).toFixed(0)}%\n\n`;
697
+ output += `### App Usage\n`;
698
+ for (const [appName, data] of sortedApps.slice(0, 10)) {
699
+ const pct = ((data.entries / totalEntries) * 100).toFixed(1);
700
+ output += `\n**${appName}** - ${pct}% (${data.classification})\n`;
701
+ const topWindows = Array.from(data.windows.entries())
702
+ .sort((a, b) => b[1] - a[1])
703
+ .slice(0, 3);
704
+ for (const [window, count] of topWindows) {
705
+ output += ` - ${truncate(window, 50)}: ${count}x\n`;
706
+ }
707
+ if (data.content.length > 0) {
708
+ output += ` Sample: "${data.content[0]}"\n`;
709
+ }
710
+ }
711
+ output += `\n---\n`;
712
+ output += `**Investigation targets**: Identify 2-3 apps from above with high usage, errors in samples, or repetitive patterns. Then call get_workflow_context for each.`;
713
+ return output;
714
+ }
715
+ async function handleGetWorkflowContext(args) {
716
+ const app = String(args.app);
717
+ const window = args.window ? String(args.window) : undefined;
718
+ const hours = Number(args.hours) || 2;
719
+ const endTime = new Date();
720
+ const startTime = new Date(endTime.getTime() - hours * 60 * 60 * 1000);
721
+ const params = new URLSearchParams();
722
+ params.set('app_name', app);
723
+ if (window)
724
+ params.set('window_name', window);
725
+ params.set('start_time', startTime.toISOString());
726
+ params.set('end_time', endTime.toISOString());
727
+ params.set('limit', '200');
728
+ const result = await apiGet('/search', params);
729
+ if (!result.data || result.data.length === 0) {
730
+ return `No activity found for ${app}${window ? ` - ${window}` : ''} in the last ${hours} hours.`;
731
+ }
732
+ // Analyze patterns
733
+ const allText = [];
734
+ const errorPatterns = [];
735
+ const repetitiveCounts = new Map();
736
+ const timeline = [];
737
+ for (const r of result.data) {
738
+ const c = r.content;
739
+ const text = r.type === 'Audio' ? String(c.transcription || '') : String(c.text || '');
740
+ const timestamp = String(c.timestamp || '');
741
+ if (text) {
742
+ allText.push(text.toLowerCase());
743
+ // Detect errors
744
+ if (/error|exception|failed|crash|undefined|null reference/i.test(text)) {
745
+ const errorMatch = text.match(/error[:\s].*?[.\n]/i);
746
+ if (errorMatch && errorPatterns.length < 5) {
747
+ errorPatterns.push(truncate(errorMatch[0], 80));
748
+ }
749
+ }
750
+ // Track repetition
751
+ const normalized = text.slice(0, 40).toLowerCase();
752
+ repetitiveCounts.set(normalized, (repetitiveCounts.get(normalized) || 0) + 1);
753
+ // Build timeline sample
754
+ if (timeline.length < 10) {
755
+ timeline.push({
756
+ time: timestamp,
757
+ action: /error|exception/i.test(text) ? 'error' : 'activity',
758
+ snippet: truncate(text, 80),
759
+ });
760
+ }
761
+ }
762
+ }
763
+ // Find repetitive patterns
764
+ const repetitivePatterns = Array.from(repetitiveCounts.entries())
765
+ .filter(([_, count]) => count >= 3)
766
+ .sort((a, b) => b[1] - a[1])
767
+ .slice(0, 5)
768
+ .map(([text, count]) => `"${truncate(text, 25)}..." (${count}x)`);
769
+ // Detect issues
770
+ const issues = [];
771
+ const combinedText = allText.join(' ');
772
+ if (/search|google|stackoverflow/i.test(combinedText)) {
773
+ issues.push('Frequent searching - may need better documentation or AI assistance');
774
+ }
775
+ if (/copy|paste|ctrl\+c|ctrl\+v/i.test(combinedText)) {
776
+ issues.push('Copy-paste patterns - repetitive manual work detected');
777
+ }
778
+ if (errorPatterns.length > 2) {
779
+ issues.push('Multiple errors - debugging workflow may need improvement');
780
+ }
781
+ if (repetitivePatterns.length > 2) {
782
+ issues.push('Repetitive tasks - automation opportunity');
783
+ }
784
+ // Format output
785
+ let output = `## Workflow Analysis: ${app}${window ? ` - ${window}` : ''}\n\n`;
786
+ output += `**Time period**: Last ${hours} hours\n`;
787
+ output += `**Entries analyzed**: ${result.data.length}\n\n`;
788
+ if (timeline.length > 0) {
789
+ output += `### Recent Timeline\n`;
790
+ for (const entry of timeline.slice(0, 5)) {
791
+ output += `- [${entry.action}] ${entry.snippet}\n`;
792
+ }
793
+ output += '\n';
794
+ }
795
+ if (errorPatterns.length > 0) {
796
+ output += `### Errors Detected\n`;
797
+ for (const err of errorPatterns) {
798
+ output += `- ${err}\n`;
799
+ }
800
+ output += '\n';
801
+ }
802
+ if (repetitivePatterns.length > 0) {
803
+ output += `### Repetitive Patterns\n`;
804
+ for (const pattern of repetitivePatterns) {
805
+ output += `- ${pattern}\n`;
806
+ }
807
+ output += '\n';
808
+ }
809
+ if (issues.length > 0) {
810
+ output += `### Issues Identified\n`;
811
+ for (const issue of issues) {
812
+ output += `- ${issue}\n`;
813
+ }
814
+ output += '\n';
815
+ }
816
+ output += `---\n`;
817
+ output += `**Next**: Call get_curated_tools to find solutions for these pain points.`;
818
+ return output;
819
+ }
820
+ function handleGetCuratedTools(args) {
821
+ const category = args.category ? String(args.category).toLowerCase() : undefined;
822
+ const excludeTools = args.exclude_tools || [];
823
+ const excludeSet = new Set(excludeTools.map(t => t.toLowerCase()));
824
+ let tools = CURATED_TOOLS;
825
+ // Filter by category
826
+ if (category) {
827
+ tools = tools.filter(t => t.category.toLowerCase() === category);
828
+ }
829
+ // Exclude already recommended
830
+ tools = tools.filter(t => !excludeSet.has(t.name.toLowerCase()));
831
+ if (tools.length === 0) {
832
+ return category
833
+ ? `No curated tools found for category "${category}".`
834
+ : 'No curated tools available.';
835
+ }
836
+ // Group by category
837
+ const byCategory = new Map();
838
+ for (const tool of tools) {
839
+ if (!byCategory.has(tool.category)) {
840
+ byCategory.set(tool.category, []);
841
+ }
842
+ byCategory.get(tool.category).push(tool);
843
+ }
844
+ let output = `## Curated Tool Recommendations\n\n`;
845
+ for (const [cat, catTools] of byCategory) {
846
+ output += `### ${cat.charAt(0).toUpperCase() + cat.slice(1)}\n`;
847
+ for (const tool of catTools) {
848
+ output += `- **${tool.name}**`;
849
+ if (tool.url)
850
+ output += ` ([${tool.url}](${tool.url}))`;
851
+ output += `\n ${tool.reason}\n`;
852
+ }
853
+ output += '\n';
854
+ }
855
+ output += `---\n`;
856
+ output += `**Note**: If these don't match the specific pain points, use YOUR WEB SEARCH with specific queries like:\n`;
857
+ output += `- "AI TypeScript documentation VS Code extension 2026"\n`;
858
+ output += `- "automated Excel data entry AI tool 2026"\n`;
859
+ output += `Do NOT use generic queries like "coding tools" or "productivity apps".`;
860
+ return output;
861
+ }
269
862
  // ==================== Helpers ====================
270
863
  function formatSearchResults(results) {
271
864
  return results
@@ -291,7 +884,7 @@ function truncate(str, maxLen) {
291
884
  // ==================== Server Setup ====================
292
885
  const server = new Server({
293
886
  name: 'screencoach-mcp',
294
- version: '0.1.2',
887
+ version: '0.3.0', // Added optimizer tools: scan_activity, get_workflow_context, get_curated_tools
295
888
  }, {
296
889
  capabilities: {
297
890
  tools: {},
@@ -328,6 +921,19 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
328
921
  case 'health_check':
329
922
  result = await handleHealthCheck();
330
923
  break;
924
+ case 'analyze_session':
925
+ result = await handleAnalyzeSession(args || {});
926
+ break;
927
+ // Optimizer tools
928
+ case 'scan_activity':
929
+ result = await handleScanActivity(args || {});
930
+ break;
931
+ case 'get_workflow_context':
932
+ result = await handleGetWorkflowContext(args || {});
933
+ break;
934
+ case 'get_curated_tools':
935
+ result = handleGetCuratedTools(args || {});
936
+ break;
331
937
  default:
332
938
  return {
333
939
  content: [{ type: 'text', text: `Unknown tool: ${name}` }],
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":";AACA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAE5C,mEAAmE;AACnE,oFAAoF;AACpF,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB,CAAC;AAEvF,uDAAuD;AAEvD,KAAK,UAAU,MAAM,CAAI,IAAY,EAAE,MAAwB;IAC7D,MAAM,GAAG,GAAG,MAAM;QAChB,CAAC,CAAC,GAAG,mBAAmB,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE;QACtD,CAAC,CAAC,GAAG,mBAAmB,GAAG,IAAI,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CACb,gFAAgF,mBAAmB,GAAG,CACvG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,mBAAmB,SAAS,EAAE;YAC5D,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,sEAAsE;AAEtE,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,aAAa;IACb,OAAO;IACP,SAAS;IACT,eAAe;IACf,OAAO;CACR,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,MAAM;IACN,oBAAoB;IACpB,QAAQ;IACR,eAAe;IACf,UAAU;IACV,SAAS;IACT,UAAU;IACV,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;CACX,CAAC;AAYF,MAAM,aAAa,GAAkB;IACnC,SAAS;IACT,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE;IAC7I,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE;IAC9H,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,4BAA4B,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE;IAC5I,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE;IAClI,QAAQ;IACR,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,0CAA0C,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE;IACrJ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,wCAAwC,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE;IACnJ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,yCAAyC,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE;IAClJ,SAAS;IACT,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,kCAAkC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE;IAC/I,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,2BAA2B,EAAE,MAAM,EAAE,qCAAqC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE;IAClJ,cAAc;IACd,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,mCAAmC,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE;IAC/H,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE;IACpI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,8BAA8B,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE;IACvI,aAAa;IACb,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,2CAA2C,EAAE,MAAM,EAAE,2CAA2C,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE;IAChL,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,4CAA4C,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE;IAC5H,qBAAqB;IACrB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,sCAAsC,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE;IAClJ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,oCAAoC,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE;IAC7I,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,kCAAkC,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE;IAC/I,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,4BAA4B,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE;IAClI,UAAU;IACV,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE;IAC/I,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE;IAC1H,eAAe;IACf,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,mCAAmC,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE;IACpJ,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,qCAAqC,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;CAClJ,CAAC;AAEF,6DAA6D;AAE7D,MAAM,KAAK,GAAW;IACpB;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE;;;;kEAIiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;oBACnC,WAAW,EAAE,yCAAyC;iBACvD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2CAA2C;iBACzD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE;8DAC6C;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;oBACnC,WAAW,EAAE,2CAA2C;iBACzD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;iBAC5C;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE;0DACyC;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;iBACxC;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,sDAAsD;iBACpE;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;yCACwB;QACrC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE;uDACsC;QACnD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;sDACqC;QAClD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE;sEACqD;QAClE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAChF,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE;aAC7G;SACF;KACF;IACD,4DAA4D;IAC5D;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;;;;;;;;;;;;;;;;;;iJAkBgI;QAC7I,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qCAAqC;iBACnD;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+DAA+D;iBAC7E;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE;;;;;;;;;;;;;sBAaK;QAClB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;aACF;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;kLAuBiK;QAC9K,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,6CAA6C;iBAC3D;aACF;SACF;KACF;CACF,CAAC;AAkBF,KAAK,UAAU,yBAAyB,CAAC,IAA6B;IACpE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,YAAY;QAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7E,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAiB,SAAS,EAAE,MAAM,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAA6B;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,YAAY;QAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAiB,SAAS,EAAE,MAAM,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,iCAAiC,OAAO,WAAW,CAAC;IAC7D,CAAC;IAED,OAAO,yBAAyB,OAAO,iBAAiB,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAA6B;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAqC,WAAW,OAAO,EAAE,CAAC,CAAC;IAEtF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,SAAS,OAAO,aAAa,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,IAAI,MAAM,GAAG,UAAU,OAAO,KAAK,CAAC;IACpC,MAAM,IAAI,gBAAgB,KAAK,CAAC,SAAS,IAAI,CAAC;IAC9C,MAAM,IAAI,UAAU,KAAK,CAAC,QAAQ,IAAI,CAAC;IACvC,MAAM,IAAI,aAAa,KAAK,CAAC,WAAW,IAAI,CAAC;IAE7C,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,oCAAoC,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAA6B;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB,WAAW,OAAO,MAAM,CACzB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,+BAA+B,OAAO,GAAG,CAAC;IACnD,CAAC;IAED,OAAO,kBAAkB,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAC;AACrF,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB,gBAAgB,CACjB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAiD,WAAW,CAAC,CAAC;IAEzF,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,MAAM,SAAS,GAAG,MAAM,WAAW,EAAE,CAAC;IAEtC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,4CAA4C,mBAAmB,EAAE,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,oCAAoC,mBAAmB,oDAAoD,CAAC;IACrH,CAAC;AACH,CAAC;AAkBD,KAAK,UAAU,oBAAoB,CAAC,IAA6B;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAkC,CAAC;IAE1D,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEvE,4CAA4C;IAC5C,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,GAAG,CAAC;IAElB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAiB,SAAS,EAAE,MAAM,CAAC,CAAC;QAE/D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAEpD,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK;YAAE,MAAM;QACtC,MAAM,IAAI,KAAK,CAAC;QAEhB,eAAe;QACf,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI;YAAE,MAAM;IACvC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,iCAAiC,KAAK,SAAS,CAAC;IACzD,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAE/C,oCAAoC;QACpC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CACvC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CACjD,CAAC;YACF,IAAI,CAAC,YAAY;gBAAE,SAAS;QAC9B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;gBAClB,QAAQ,EAAE,OAAO;gBACjB,aAAa,EAAE,CAAC;gBAChB,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACjC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEpB,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7D,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO;YAClC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;YAC/B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAEzB,IAAI,IAAI,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;IAErD,sEAAsE;IACtE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SACvD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;IAEvD,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAEn+B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SAC5C,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzB,6BAA6B;IAC7B,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;aAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAoB;QAChC,MAAM,EAAE;YACN,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE;YAC9B,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE;YAC1B,KAAK;SACN;QACD,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAChC,iBAAiB,EAAE,gBAAgB;QACnC,gBAAgB,EAAE,eAAe;QACjC,QAAQ;QACR,WAAW,EAAE,YAAY,UAAU,CAAC,MAAM,iBAAiB,QAAQ,CAAC,MAAM,cAAc,KAAK,SAAS;KACvG,CAAC;IAEF,uBAAuB;IACvB,IAAI,MAAM,GAAG,6BAA6B,KAAK,aAAa,CAAC;IAC7D,MAAM,IAAI,eAAe,SAAS,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;IACtF,MAAM,IAAI,+BAA+B,UAAU,CAAC,MAAM,MAAM,CAAC;IAEjE,MAAM,IAAI,qCAAqC,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,OAAO,GAAG,CAAC,QAAQ,OAAO,GAAG,CAAC,aAAa,aAAa,GAAG,MAAM,CAAC;QAE5E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;aAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC;QACvD,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,mCAAmC,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAsB,CAAC;QACjC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,2BAA2B,CAAC;IACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,IAAI,SAAS,CAAC;IACpB,MAAM,IAAI,0JAA0J,CAAC;IAErK,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,SAAS,WAAW,CAAC,OAAe,EAAE,UAAmB;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAErD,8BAA8B;IAC9B,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,mBAAmB;IACnB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxJ,IAAI,wEAAwE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/F,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,kDAAkD,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACzE,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,qBAAqB;IACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1H,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClH,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAA6B;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEvE,iBAAiB;IACjB,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,GAAG,CAAC;IAElB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAiB,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QACpD,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK;YAAE,MAAM;QACtC,MAAM,IAAI,KAAK,CAAC;QAChB,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI;YAAE,MAAM;IACvC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,iCAAiC,KAAK,SAAS,CAAC;IACzD,CAAC;IAED,mCAAmC;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,EAKlB,CAAC;IAEL,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE5F,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAExD,8BAA8B;QAC9B,IAAI,CAAC,YAAY,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;YACxD,SAAS;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;gBAClB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,OAAO,EAAE,EAAE;gBACX,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACjC,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,iBAAiB,GAAG,UAAU;SACjC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,iBAAiB,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,CAAC;SACtG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAErD,gBAAgB;IAChB,IAAI,MAAM,GAAG,0BAA0B,KAAK,aAAa,CAAC;IAC1D,MAAM,IAAI,sBAAsB,YAAY,IAAI,CAAC;IACjD,MAAM,IAAI,wBAAwB,CAAC,CAAC,iBAAiB,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE/F,MAAM,IAAI,iBAAiB,CAAC;IAC5B,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,OAAO,OAAO,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,KAAK,CAAC;QAElE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,IAAI,SAAS,CAAC;IACpB,MAAM,IAAI,8JAA8J,CAAC;IAEzK,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,IAA6B;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAiB,SAAS,EAAE,MAAM,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,yBAAyB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,KAAK,SAAS,CAAC;IACnG,CAAC;IAED,mBAAmB;IACnB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,MAAM,QAAQ,GAA6D,EAAE,CAAC;IAE9E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAE5C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAEjC,gBAAgB;YAChB,IAAI,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACrD,IAAI,UAAU,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3C,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,mBAAmB;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAE9E,wBAAwB;YACxB,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;oBAC5D,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;SAC9D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IAEpE,gBAAgB;IAChB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvC,IAAI,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,6BAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,GAAG,yBAAyB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC/E,MAAM,IAAI,yBAAyB,KAAK,UAAU,CAAC;IACnD,MAAM,IAAI,yBAAyB,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC;IAE5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,uBAAuB,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,MAAM,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC;QACrD,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,uBAAuB,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,2BAA2B,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,yBAAyB,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,OAAO,CAAC;IAClB,MAAM,IAAI,2EAA2E,CAAC;IAEtF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA6B;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,YAAY,GAAI,IAAI,CAAC,aAA0B,IAAI,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEnE,IAAI,KAAK,GAAG,aAAa,CAAC;IAE1B,qBAAqB;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,8BAA8B;IAC9B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,QAAQ;YACb,CAAC,CAAC,wCAAwC,QAAQ,IAAI;YACtD,CAAC,CAAC,6BAA6B,CAAC;IACpC,CAAC;IAED,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM,GAAG,qCAAqC,CAAC;IAEnD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,MAAM,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;YACxD,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC;QACnC,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,OAAO,CAAC;IAClB,MAAM,IAAI,4GAA4G,CAAC;IACvH,MAAM,IAAI,0DAA0D,CAAC;IACrE,MAAM,IAAI,+CAA+C,CAAC;IAC1D,MAAM,IAAI,wEAAwE,CAAC;IAEnF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oDAAoD;AAEpD,SAAS,mBAAmB,CAAC,OAAuB;IAClD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,QAAQ,cAAc,CAAC,CAAC,WAAW,aAAa,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC/I,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,sBAAsB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACvJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,QAAQ,cAAc,CAAC,CAAC,WAAW,aAAa,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3I,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,MAAc;IAC3C,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1C,CAAC;AAED,yDAAyD;AAEzD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO,EAAE,gFAAgF;CACnG,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,uBAAuB;AACvB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,IAAI,MAAc,CAAC;QAEnB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,uBAAuB;gBAC1B,MAAM,GAAG,MAAM,yBAAyB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,oBAAoB;gBACvB,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,oBAAoB;gBACvB,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;gBACxC,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBACpC,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;gBACnC,MAAM;YACR,KAAK,iBAAiB;gBACpB,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChD,MAAM;YACR,kBAAkB;YAClB,KAAK,eAAe;gBAClB,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,sBAAsB;gBACzB,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,mBAAmB;gBACtB,MAAM,GAAG,qBAAqB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM;YACR;gBACE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;oBAC1D,OAAO,EAAE,IAAI;iBACd,CAAC;QACN,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "screencoach-mcp",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server for ScreenCoach - AI-powered screen context and memory assistant",
5
5
  "main": "dist/index.js",
6
6
  "bin": {