Volver al índice

src/main/java/ar/com/companeros/decision/ToolCapability.java

package ar.com.companeros.decision;

import java.util.Objects;
import java.util.Set;

/** Catálogo autorizado aportado por el runtime, no por mensajes del mundo. */
public record ToolCapability(String id, int version, String description, Set<String> permissions) {
    public ToolCapability {
        Objects.requireNonNull(id); Objects.requireNonNull(description); permissions = Set.copyOf(permissions);
        if (id.isBlank() || id.length() > 128 || version < 1 || description.length() > 512
                || permissions.size() > 16 || permissions.stream().anyMatch(p -> p.isBlank() || p.length() > 64))
            throw new IllegalArgumentException("Capacidad fuera de límite");
    }
}