@cyqlelabs/mcp-dual-cycle-reasoner
Version:
MCP server implementing dual-cycle metacognitive reasoning framework for autonomous agents
63 lines (62 loc) • 2.24 kB
TypeScript
export interface SemanticAnalysisResult {
label: 'CONTRADICTION' | 'ENTAILMENT' | 'NEUTRAL';
score: number;
confidence: number;
}
export interface ActionAssessmentResult {
category: 'success' | 'failure' | 'neutral';
confidence: number;
reasoning: string;
}
export interface SemanticSimilarityResult {
similarity: number;
confidence: number;
reasoning: string;
}
export declare class SemanticAnalyzer {
private nliClassifier;
private embeddingModel;
private isInitialized;
private embeddingCache;
private readonly maxCacheSize;
initialize(): Promise<void>;
analyzeTextPair(premise: string, hypothesis: string): Promise<SemanticAnalysisResult>;
assessActionOutcome(action: string, expectedOutcome: string): Promise<ActionAssessmentResult>;
classifyActionIntent(action: string, possibleIntents: string[]): Promise<{
bestMatch: string;
confidence: number;
allScores: Array<{
intent: string;
score: number;
}>;
}>;
/**
* Calculate semantic similarity between two texts using NLI-based approach
* Higher similarity indicates more related content
*/
calculateSemanticSimilarity(text1: string, text2: string): Promise<SemanticSimilarityResult>;
/**
* PERFORMANCE OPTIMIZATION: Batch compute embeddings for multiple texts
* This is 10-100x faster than individual model calls
*/
getBatchEmbeddings(texts: string[]): Promise<number[][]>;
/**
* Fast cosine similarity calculation between two vectors
*/
private cosineSimilarity;
/**
* PERFORMANCE OPTIMIZATION: Batch similarity matrix for multiple texts
* Computes all pairwise similarities in one batch - much faster than individual calls
*/
computeSimilarityMatrix(texts: string[]): Promise<number[][]>;
/**
* Extract semantic features from text for advanced similarity calculations
*/
extractSemanticFeatures(text: string, customIntents?: string[]): Promise<{
intents: string[];
sentiment: 'positive' | 'negative' | 'neutral';
confidence: number;
}>;
isReady(): boolean;
}
export declare const semanticAnalyzer: SemanticAnalyzer;