Interface TypedToolFactory

  • All Implemented Interfaces:

    
    public interface TypedToolFactory
    
                        

    Factory interface for creating strongly typed tools. Extended by Tool.Companion to provide Tool.fromFunction methods.

    Example (Java):

    record AddRequest(int a, int b) {}
    record AddResult(int sum) {}
    
    Tool tool = Tool.fromFunction(
        "add",
        "Add two numbers",
        AddRequest.class,
        AddResult.class,
        input -> new AddResult(input.a() + input.b())
    );

    Example (Kotlin):

    data class AddRequest(val a: Int, val b: Int)
    data class AddResult(val sum: Int)
    
    val tool = Tool.fromFunction<AddRequest, AddResult>(
        name = "add",
        description = "Add two numbers",
    ) { input -> AddResult(input.a + input.b) }
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      <I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Function<I, O> function) Create a tool with strongly typed input and output (Java-friendly).
      <I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, Function<I, O> function) Create a tool with strongly typed input and output with custom metadata (Java-friendly).
      <I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, ObjectMapper objectMapper, Function<I, O> function) Create a tool with strongly typed input and output with custom ObjectMapper (Java-friendly).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • fromFunction

         <I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Function<I, O> function)

        Create a tool with strongly typed input and output (Java-friendly).

        Parameters:
        name - Tool name
        description - Tool description
        inputType - Class of the input type
        outputType - Class of the output type
        function - Function that processes typed input and returns typed output
        Returns:

        A new Tool instance

      • fromFunction

         <I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, Function<I, O> function)

        Create a tool with strongly typed input and output with custom metadata (Java-friendly).

        Parameters:
        name - Tool name
        description - Tool description
        inputType - Class of the input type
        outputType - Class of the output type
        metadata - Tool metadata
        function - Function that processes typed input and returns typed output
        Returns:

        A new Tool instance

      • fromFunction

         <I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, ObjectMapper objectMapper, Function<I, O> function)

        Create a tool with strongly typed input and output with custom ObjectMapper (Java-friendly).

        Parameters:
        name - Tool name
        description - Tool description
        inputType - Class of the input type
        outputType - Class of the output type
        metadata - Tool metadata
        objectMapper - ObjectMapper for JSON serialization/deserialization
        function - Function that processes typed input and returns typed output
        Returns:

        A new Tool instance