claude-flow
Version:
Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration
201 lines (184 loc) • 4.52 kB
text/typescript
/**
* @claude-flow/plugin-hyperbolic-reasoning
*
* Hyperbolic reasoning plugin for Claude Flow V3.
*
* Provides MCP tools for:
* - Hierarchy embedding in Poincare ball
* - Taxonomic reasoning (IS-A, subsumption, LCA)
* - Hierarchically-aware semantic search
* - Hierarchy comparison and alignment
* - Entailment graph construction
*
* @module @claude-flow/plugin-hyperbolic-reasoning
* @version 3.0.0-alpha.1
*/
// Types
export type {
// Hyperbolic Geometry
HyperbolicPoint,
HyperbolicModel,
MobiusTransform,
// Hierarchy
HierarchyNode,
HierarchyEdge,
Hierarchy,
EmbeddedHierarchy,
// Taxonomic Reasoning
TaxonomicQueryType,
TaxonomicQuery,
InferenceConfig,
TaxonomicResult,
// Search
SearchMode,
SearchConstraints,
SearchResultItem,
SearchResult,
// Comparison
AlignmentMethod,
ComparisonMetric,
NodeAlignment,
ComparisonResult,
// Entailment
Concept,
EntailmentRelation,
EntailmentAction,
PruneStrategy,
EntailmentGraph,
EntailmentQueryResult,
// MCP
MCPTool,
MCPToolResult,
MCPToolInputSchema,
ToolContext,
Logger,
HyperbolicReasoningConfig,
HyperbolicReasoningBridge,
} from './types.js';
// Zod Schemas
export {
HierarchyNodeSchema,
HierarchyEdgeSchema,
HierarchySchema,
EmbedHierarchyInputSchema,
TaxonomicReasonInputSchema,
SemanticSearchInputSchema,
HierarchyCompareInputSchema,
ConceptSchema,
EntailmentGraphInputSchema,
successResult,
errorResult,
POINCARE_BALL_EPS,
MAX_NORM,
RESOURCE_LIMITS,
} from './types.js';
// Hyperbolic Math Utilities
export {
clipToBall,
poincareDistance,
mobiusAdd,
expMap,
logMap,
} from './types.js';
// Bridges
export { HyperbolicBridge, createHyperbolicBridge } from './bridges/hyperbolic-bridge.js';
export { GnnBridge, createGnnBridge } from './bridges/gnn-bridge.js';
export type { WasmModuleStatus } from './bridges/hyperbolic-bridge.js';
export type {
GnnConfig,
Graph,
GnnResult,
EntailmentPrediction,
} from './bridges/gnn-bridge.js';
// MCP Tools
export {
hyperbolicReasoningTools,
toolHandlers,
getTool,
getToolNames,
embedHierarchyTool,
taxonomicReasonTool,
semanticSearchTool,
hierarchyCompareTool,
entailmentGraphTool,
} from './mcp-tools.js';
// Re-export default
export { default } from './mcp-tools.js';
/**
* Plugin metadata
*/
export const pluginMetadata = {
name: '@claude-flow/plugin-hyperbolic-reasoning',
version: '3.0.0-alpha.1',
description: 'Hyperbolic geometry for hierarchical reasoning',
category: 'exotic',
author: 'rUv',
license: 'MIT',
repository: 'https://github.com/ruvnet/claude-flow',
tools: [
'hyperbolic_embed_hierarchy',
'hyperbolic_taxonomic_reason',
'hyperbolic_semantic_search',
'hyperbolic_hierarchy_compare',
'hyperbolic_entailment_graph',
],
bridges: ['hyperbolic-bridge', 'gnn-bridge'],
wasmPackages: [
'@ruvector/hyperbolic-hnsw-wasm',
'@ruvector/attention-wasm',
'@ruvector/gnn-wasm',
'@ruvector/sona',
],
} as const;
/**
* Initialize the plugin
*/
export async function initializePlugin(): Promise<void> {
const { createHyperbolicBridge } = await import('./bridges/hyperbolic-bridge.js');
const { createGnnBridge } = await import('./bridges/gnn-bridge.js');
const hyperbolicBridge = createHyperbolicBridge();
const gnnBridge = createGnnBridge();
await Promise.all([
hyperbolicBridge.initialize(),
gnnBridge.initialize(),
]);
console.info('[hyperbolic-reasoning] Plugin initialized');
}
/**
* Plugin configuration validator
*/
export function validateConfig(config: unknown): config is HyperbolicReasoningConfig {
if (!config || typeof config !== 'object') return false;
const c = config as Record<string, unknown>;
return (
typeof c['embedding'] === 'object' &&
typeof c['search'] === 'object' &&
typeof c['entailment'] === 'object' &&
typeof c['resourceLimits'] === 'object'
);
}
/**
* Default plugin configuration
*/
export const defaultConfig: HyperbolicReasoningConfig = {
embedding: {
defaultDimensions: 32,
defaultCurvature: -1.0,
maxNodes: 1000000,
},
search: {
maxTopK: 10000,
defaultTopK: 10,
},
entailment: {
defaultThreshold: 0.7,
maxConcepts: 100000,
},
resourceLimits: {
maxMemoryBytes: 2147483648,
maxCpuTimeMs: 300000,
maxDepth: 100,
},
};
// Import HyperbolicReasoningConfig type for the validateConfig function
import type { HyperbolicReasoningConfig } from './types.js';