AiTargetDtos.java
package com.taxonomy.analysis.dto;
import java.util.List;
/** Public, credential-free descriptions of AI targets that Taxonomy can address. */
public final class AiTargetDtos {
private AiTargetDtos() {
}
public enum AiTargetMode {
REMOTE,
LOCAL,
MOCK,
REPLAY
}
public enum AiTargetHealth {
READY,
UNAVAILABLE
}
/** Conservative input limits applied before provider dispatch. */
public record PromptBudget(
int maxInputCharacters,
int maxInputBytes,
int estimatedMaxInputTokens) {
}
/**
* Stable, non-secret identity of one configured model endpoint.
*
* <p>The configuration fingerprint identifies endpoint/model/budget changes
* without exposing credentials or the custom endpoint URL.</p>
*/
public record AiTargetDescriptor(
String targetId,
String displayName,
String provider,
String model,
AiTargetMode mode,
AiTargetHealth health,
boolean available,
boolean providerStreamingSupported,
boolean providerCancellationSupported,
PromptBudget promptBudget,
String configurationFingerprint,
String unavailableReason) {
}
public record AiTargetCatalogView(
AiTargetDescriptor activeTarget,
List<AiTargetDescriptor> targets) {
}
}