autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
60 lines (59 loc) • 2.43 kB
TypeScript
/**
* 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>;
}