Class RoleSpecExtractor

java.lang.Object
com.tnsai.roles.metadata.RoleSpecExtractor

public final class RoleSpecExtractor extends Object
Extracts role metadata from annotations.

Provides utilities to extract RoleIdentity, action metadata (including action-bound mustNever / mustAlways safety constraints), state, intentions, and LLM configuration from annotation-based Role definitions.

Usage Example


 if (RoleSpecExtractor.hasRoleIdentityAnnotation(MyRole.class)) {
     RoleIdentity identity = RoleSpecExtractor.extractIdentity(MyRole.class).orElseThrow();
 }
 List<ResponsibilityInfo> actionResp =
     RoleSpecExtractor.extractResponsibilitiesFromActions(MyRole.class);
 
Author:
TnsAI Team
  • Method Details

    • clearCache

      public static void clearCache()
    • hasRoleIdentityAnnotation

      public static boolean hasRoleIdentityAnnotation(Class<?> clazz)
    • hasLLMConfig

      public static boolean hasLLMConfig(Class<?> clazz)
    • usesAnnotations

      public static boolean usesAnnotations(Class<?> clazz)
    • extractIdentity

      public static Optional<RoleIdentity> extractIdentity(Class<?> clazz)
    • extractLLMSpec

      public static Optional<RoleSpecExtractor.LLMExportSpec> extractLLMSpec(Class<?> clazz)
    • deriveRoleName

      public static String deriveRoleName(Class<?> clazz)
    • getDescription

      public static String getDescription(Class<?> clazz)
    • getVersion

      public static String getVersion(Class<?> clazz)
    • extractStateFromFields

      public static List<RoleSpecExtractor.StateInfo> extractStateFromFields(Class<?> clazz)
    • extractStateValues

      public static List<RoleSpecExtractor.StateValue> extractStateValues(Object role)
    • extractIntentionsFromActions

      public static List<String> extractIntentionsFromActions(Class<?> clazz)
    • extractResponsibilitiesFromActions

      public static List<RoleSpecExtractor.ResponsibilityInfo> extractResponsibilitiesFromActions(Class<?> clazz)
      Extracts responsibilities from @ActionSpec annotated methods.

      Each entry carries the readable name, description, original method name, declared invariants, and the safety constraints (mustNever / mustAlways) the action declares.

      Parameters:
      clazz - the class to scan
      Returns:
      list of responsibility information per action
    • hasStateFields

      public static boolean hasStateFields(Class<?> clazz)
    • extractAll

      public static RoleSpecExtractor.CachedRoleMetadata extractAll(Class<?> clazz)