199bio-mcp-limitless-server
Version:
Scientifically Validated Speech Vitality Index for Limitless Pendant. Empirically validated metrics from 2,500+ conversation segments with transparent reliability assessment. Peer-reviewed methodology for clinical research applications.
141 lines • 4 kB
TypeScript
import { Lifelog, LifelogContentNode } from "./limitless-client.js";
export interface TimeRange {
start: string;
end: string;
timezone?: string;
}
export interface NaturalTimeOptions {
timezone?: string;
referenceTime?: Date;
}
export interface MeetingParticipant {
name: string;
identifier?: "user" | null;
speakingDuration: number;
messageCount: number;
}
export interface Meeting {
id: string;
title: string;
startTime: string;
endTime: string;
duration: number;
participants: MeetingParticipant[];
mainTopics: string[];
actionItems: ActionItem[];
keyDecisions: string[];
summary: string;
lifelogIds: string[];
}
export interface ActionItem {
content: string;
assignee?: string;
context: string;
timestamp: string;
priority: "high" | "medium" | "low";
source: {
lifelogId: string;
nodeIndex: number;
};
}
export interface ConversationSegment {
participant: string;
content: string;
startTime: string;
endTime: string;
duration: number;
}
export interface TopicSearchResult {
lifelog: Lifelog;
relevantNodes: LifelogContentNode[];
contextBefore: LifelogContentNode[];
contextAfter: LifelogContentNode[];
relevanceScore: number;
summary: string;
}
export interface DailySummary {
date: string;
timezone: string;
meetings: Meeting[];
totalRecordingTime: number;
totalSpeakingTime: number;
topParticipants: MeetingParticipant[];
keyTopics: string[];
actionItems: ActionItem[];
insights: {
mostProductiveHours: string[];
longestMeeting: Meeting | null;
mostFrequentParticipant: string | null;
topicsDiscussed: number;
};
}
export interface SpeakerAnalytics {
participant: string;
totalSpeakingTime: number;
conversationCount: number;
averageConversationLength: number;
topTopics: string[];
timeDistribution: {
hour: number;
duration: number;
}[];
recentInteractions: {
date: string;
duration: number;
topics: string[];
}[];
}
/**
* Parses natural language time expressions into precise date ranges
* Supports timezone-aware parsing with comprehensive error handling
*/
export declare class NaturalTimeParser {
private timezone;
private referenceTime;
constructor(options?: NaturalTimeOptions);
private getDefaultTimezone;
/**
* Parse natural time expressions into TimeRange objects
*/
parseTimeExpression(expression: string): TimeRange;
private getDayRange;
private getTimeOfDayRange;
private getWeekRange;
private getRelativeDayRange;
private parseDayReference;
private getWeekendRange;
private getMonthRange;
private getYearRange;
private getQuarterRange;
private getSpecificQuarterRange;
private parseFlexibleRelativeExpression;
private parseFutureExpression;
private parseRelativeExpression;
private formatDateTime;
}
/**
* Intelligent meeting detection based on speaker patterns and conversation flow
*/
export declare class MeetingDetector {
/**
* Detect meetings from lifelogs using sophisticated analysis
*/
static detectMeetings(lifelogs: Lifelog[]): Meeting[];
private static groupByTimeProximity;
private static analyzePotentialMeeting;
private static extractParticipants;
private static extractTopics;
private static extractDecisions;
private static generateMeetingTitle;
private static generateMeetingSummary;
private static extractTechnicalDetails;
private static extractNumbersAndFigures;
}
export declare class ActionItemExtractor {
private static readonly ACTION_PATTERNS;
static extractFromNodes(nodes: LifelogContentNode[], lifelogId: string): ActionItem[];
private static getContext;
private static inferPriority;
private static deduplicateActionItems;
}
//# sourceMappingURL=advanced-features.d.ts.map