package com.gzzm.lobster.llm;

import java.util.Collections;
import java.util.Map;

/**
 * ToolSpec —— 给 LLM 看的工具规格 / Tool specification exposed to the LLM.
 *
 * <p>协议中立；adapter 会将其转换为 OpenAI tools schema 或 Ollama tools schema。
 * Protocol neutral; the adapter translates to each provider's tool schema.
 */
public final class ToolSpec {
    private final String name;
    private final String description;
    /** JSON Schema (Map 形态) / JSON schema as Map. */
    private final Map<String, Object> parametersSchema;

    public ToolSpec(String name, String description, Map<String, Object> parametersSchema) {
        this.name = name;
        this.description = description;
        this.parametersSchema = parametersSchema == null ? Collections.<String, Object>emptyMap() : parametersSchema;
    }

    public String getName() { return name; }
    public String getDescription() { return description; }
    public Map<String, Object> getParametersSchema() { return parametersSchema; }
}
