/** * KnowledgeRouter — 分类结果驱动的知识路由 * FR-K02 * * 根据分类结果(知识类型 + 置信度)决定后续处理路径: * - 不同知识类型可应用不同的冲突检测策略和入库规则 * - 置信度低于阈值时标记为待人工确认,不自动进入后续管线阶段 */ import type { KnowledgeEntry, KnowledgeType, KnowledgeCategory } from '../types/index.js'; /** 路由规则:按知识类型配置处理策略 */ export interface RoutingRule { /** 适用的知识类型 */ type: KnowledgeType; /** 冲突检测策略 */ conflictStrategy: 'strict' | 'relaxed' | 'skip'; /** 入库规则 */ persistenceRule: 'auto' | 'review_required' | 'skip'; /** 该类型的置信度阈值覆盖(可选) */ confidenceThreshold?: number; } /** * Category-based routing rule — routes entries by their KnowledgeCategory. * Inspired by Vibe-Trading's data-routing skill: a meta-router that * dispatches to the correct processing pipeline based on data type. */ export interface CategoryRoutingRule { /** The category this rule applies to */ category: KnowledgeCategory; /** Pipeline to route to (extensible string, e.g. 'standard', 'deep-analysis', 'fast-index') */ pipeline: string; /** Override conflict strategy for this category */ conflictStrategy?: 'strict' | 'relaxed' | 'skip'; /** Override persistence rule for this category */ persistenceRule?: 'auto' | 'review_required' | 'skip'; /** Priority weight for injection ordering (higher = injected first) */ injectionPriority?: number; } /** 路由结果 */ export interface RoutingDecision { entry: KnowledgeEntry; conflictStrategy: 'strict' | 'relaxed' | 'skip'; persistenceRule: 'auto' | 'review_required' | 'skip'; requiresManualReview: boolean; reason?: string; /** Target pipeline determined by category routing (if category is set) */ pipeline?: string; /** Injection priority from category rule */ injectionPriority?: number; } export interface KnowledgeRouterOptions { /** 自定义路由规则(覆盖默认规则) */ rules?: RoutingRule[]; /** Category-based routing rules (override defaults) */ categoryRules?: CategoryRoutingRule[]; /** 全局置信度阈值,低于此值标记为待人工确认。默认 0.5 */ confidenceThreshold?: number; } export declare class KnowledgeRouter { private readonly rules; private readonly categoryRules; private readonly confidenceThreshold; constructor(options?: KnowledgeRouterOptions); /** * 为单个条目生成路由决策 * FR-K02 AC2:分类结果决定后续处理路径 * FR-K02 AC3:置信度低于阈值时标记为待人工确认 */ route(entry: KnowledgeEntry): RoutingDecision; /** * 批量路由 */ routeAll(entries: KnowledgeEntry[]): RoutingDecision[]; /** * 按路由结果分组 */ partition(entries: KnowledgeEntry[]): { autoProcess: RoutingDecision[]; manualReview: RoutingDecision[]; skipConflict: RoutingDecision[]; }; /** * 获取指定类型的路由规则 */ getRule(type: KnowledgeType): RoutingRule | undefined; /** * 动态更新路由规则 */ updateRule(rule: RoutingRule): void; /** * Get category routing rule */ getCategoryRule(category: KnowledgeCategory): CategoryRoutingRule | undefined; /** * Update or add a category routing rule */ updateCategoryRule(rule: CategoryRoutingRule): void; /** * Resolve the target pipeline for an entry based on its category. * Returns 'standard' if no category or no matching rule. */ resolvePipeline(entry: KnowledgeEntry): string; } //# sourceMappingURL=knowledge-router.d.ts.map