@@ -535,6 +535,16 @@ direction LR
535535 }
536536 }
537537
538+ namespace AiClientNamespace.Enums {
539+ class ModalityEnum {
540+ TEXT
541+ DOCUMENT
542+ IMAGE
543+ AUDIO
544+ VIDEO
545+ }
546+ }
547+
538548 namespace AiClientNamespace.Files.Contracts {
539549 class FileInterface {
540550 }
@@ -604,6 +614,16 @@ direction LR
604614 }
605615 }
606616
617+ namespace AiClientNamespace.Operations.Enums {
618+ class OperationStateEnum {
619+ STARTING
620+ PROCESSING
621+ SUCCEEDED
622+ FAILED
623+ CANCELED
624+ }
625+ }
626+
607627 namespace AiClientNamespace.Operations.DTO {
608628 class EmbeddingOperation {
609629 +getId() string
@@ -619,37 +639,23 @@ direction LR
619639 }
620640 }
621641
622- namespace AiClientNamespace.Providers.Models.Enums {
623- class ModalityEnum {
624- TEXT
625- DOCUMENT
626- IMAGE
627- AUDIO
628- VIDEO
642+ namespace AiClientNamespace.Results.Contracts {
643+ class ResultInterface {
644+ +getId() string
645+ +getTokenUsage() TokenUsage
646+ +getProviderMetadata() array< string, mixed >
647+ +getJsonSchema() array< string, mixed >$
629648 }
649+ }
650+
651+ namespace AiClientNamespace.Results.Enums {
630652 class FinishReasonEnum {
631653 STOP
632654 LENGTH
633655 CONTENT_FILTER
634656 TOOL_CALLS
635657 ERROR
636658 }
637- class OperationStateEnum {
638- STARTING
639- PROCESSING
640- SUCCEEDED
641- FAILED
642- CANCELED
643- }
644- }
645-
646- namespace AiClientNamespace.Results.Contracts {
647- class ResultInterface {
648- +getId() string
649- +getTokenUsage() TokenUsage
650- +getProviderMetadata() array< string, mixed >
651- +getJsonSchema() array< string, mixed >$
652- }
653659 }
654660
655661 namespace AiClientNamespace.Results.DTO {
@@ -699,12 +705,29 @@ direction LR
699705 +getArgs() array< string, mixed >
700706 +getJsonSchema() array< string, mixed >$
701707 }
708+ class FunctionDeclaration {
709+ +getName() string
710+ +getDescription() string
711+ +getParameters() mixed
712+ +getJsonSchema() array< string, mixed >$
713+ }
702714 class FunctionResponse {
703715 +getId() string
704716 +getName() string
705717 +getResponse() mixed
706718 +getJsonSchema() array< string, mixed >$
707719 }
720+ class Tool {
721+ +getType() ToolType
722+ +getFunctionDeclarations() FunctionDeclaration[]?
723+ +getWebSearch() WebSearch?
724+ +getJsonSchema() array< string, mixed >$
725+ }
726+ class WebSearch {
727+ +getAllowedDomains() string[]
728+ +getDisallowedDomains() string[]
729+ +getJsonSchema() array< string, mixed >$
730+ }
708731 }
709732
710733 namespace AiClientNamespace.Util {
@@ -778,6 +801,8 @@ direction LR
778801 OperationInterface <|-- EmbeddingOperation
779802 ResultInterface <|-- GenerativeAiResult
780803 ResultInterface <|-- EmbeddingResult
804+ Tool "1" o-- "0..*" FunctionDeclaration
805+ Tool "1" o-- "0..1" WebSearch
781806```
782807
783808### Details: Class diagram for AI extenders
@@ -913,15 +938,15 @@ direction LR
913938 getRequiredCapabilities() CapabilityEnum[]
914939 getRequiredOptions() RequiredOption[]
915940 }
916- class SupportedOption {
941+ class RequiredOption {
917942 +getName() string
918- +isSupportedValue(mixed $value) bool
919- +getSupportedValues() mixed[]
943+ +getValue() mixed
920944 +getJsonSchema() array< string, mixed >$
921945 }
922- class RequiredOption {
946+ class SupportedOption {
923947 +getName() string
924- +getValue() mixed
948+ +isSupportedValue(mixed $value) bool
949+ +getSupportedValues() mixed[]
925950 +getJsonSchema() array< string, mixed >$
926951 }
927952 }
0 commit comments