package com.agent.management.service;

import com.agent.management.model.dto.SkillGenerationRequest;
import com.agent.management.skillgeneration.SkillGenerationState;

/**
 * 技能生成服务接口
 */
public interface SkillGenerationService {

    /**
     * 启动一次技能生成任务，返回 runId（异步执行）。
     * 流程：
     * 1. 校验源技能存在且 canGenerateSkill=true
     * 2. 创建临时工作目录并同步全局 skills
     * 3. 调用 HermesBridgeClient 执行（sink 推送到 SseEventBus）
     * 4. 完成后扫描工作目录，将生成的新技能复制到全局 skills 目录
     *
     * @param request 生成请求
     * @return runId，前端用此 ID 订阅 SSE 流和查询状态
     */
    String startGeneration(SkillGenerationRequest request);

    /**
     * 查询生成状态
     */
    SkillGenerationState getState(String runId);
}
