package tech.easyflow.agent.runtime.tool;

/**
 * Agent 工具执行模式。
 */
public enum AgentToolExecutionMode {

    /**
     * 同步执行。
     */
    SYNC,

    /**
     * 异步执行。
     */
    ASYNC;

    /**
     * 解析执行模式。
     *
     * @param value 原始配置值
     * @return 执行模式；非法或为空时返回 SYNC
     */
    public static AgentToolExecutionMode from(String value) {
        if (value == null || value.isBlank()) {
            return SYNC;
        }
        for (AgentToolExecutionMode mode : values()) {
            if (mode.name().equalsIgnoreCase(value.trim())) {
                return mode;
            }
        }
        return SYNC;
    }
}
