package com.agent.management.skillgeneration;

import lombok.Data;

import java.nio.file.Path;
import java.time.Instant;

/**
 * 技能生成运行状态
 * 在内存中跟踪每次技能生成的执行过程，重启后丢失。
 */
@Data
public class SkillGenerationState {

    public enum Status { CREATED, RUNNING, SUCCESS, FAILED }

    private String runId;

    /** 用于生成的源技能 folderName */
    private String generatorSkillFolder;

    /** 新技能名称 */
    private String name;

    /** 新技能描述 */
    private String description;

    /** 用户输入的需求 */
    private String requirement;

    /** 可选模型 ID */
    private Long modelId;

    /** 最大工具调用轮次 */
    private int maxIterations;

    private Status status;
    private Instant createdAt;
    private Instant completedAt;

    /** 生成成功后的新技能 folderName（全局 skills 目录下的子目录名） */
    private String generatedFolderName;

    /** 失败时的错误信息 */
    private String errorMessage;

    /** 本次运行的临时工作目录 */
    private transient Path workingDir;
}
