UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

60 lines (59 loc) 2.43 kB
/** * RecipeLifecycleSupervisor — 统一状态转移管理层 * * 核心职责: * 1. Guard 前置检查 — 验证转移是否合法(VALID_TRANSITIONS + 扩展条件) * 2. Entry/Exit Actions — 进入/离开状态的固定副作用 * 3. Event 记录 — 每次转移记录为不可变 TransitionEvent * 4. 超时监控 — 中间态超时自动处理 * 5. 健康摘要 — 全局状态分布与卡死检测 * * 所有状态变更建议通过 Supervisor,目前作为可选增强层存在。 * 不改变现有 ProposalExecutor/StagingManager 的内部逻辑, * 而是在它们之上提供审计、超时检查和健康监控。 * * 触发时机:UiStartupTasks Stage 6(新增) * * @module service/evolution/RecipeLifecycleSupervisor */ import type { SignalBus } from '../../infrastructure/signal/SignalBus.js'; import type { LifecycleEventRepository } from '../../repository/evolution/LifecycleEventRepository.js'; import type { ProposalRepository } from '../../repository/evolution/ProposalRepository.js'; import type KnowledgeRepositoryImpl from '../../repository/knowledge/KnowledgeRepository.impl.js'; import type { LifecycleHealthSummary, TimeoutCheckResult, TransitionEvent, TransitionRequest, TransitionResult } from '../../types/evolution.js'; export declare class RecipeLifecycleSupervisor { #private; constructor(knowledgeRepo: KnowledgeRepositoryImpl, options?: { signalBus?: SignalBus; lifecycleEventRepo?: LifecycleEventRepository; proposalRepo?: ProposalRepository; }); /** * 执行状态转移 — 统一入口 * * 1. 获取当前状态 * 2. Guard 检查(合法转移 + 扩展条件) * 3. Exit Action(离开旧状态) * 4. 更新 lifecycle * 5. Entry Action(进入新状态) * 6. 记录 TransitionEvent * 7. 发射信号 */ transition(request: TransitionRequest): Promise<TransitionResult>; /** * 检查中间态超时 + 自动处理 * * 处理范围: * - evolving > 7d → active(回退) * - decaying > 30d → deprecated */ checkTimeouts(): Promise<TimeoutCheckResult>; /** * 查询 Recipe 的转移历史 */ getTransitionHistory(recipeId: string, limit?: number): TransitionEvent[]; /** * 获取全局状态健康摘要 */ getHealthSummary(): Promise<LifecycleHealthSummary>; }