77
88use App \Models \Ai \AiModel ;
99use App \Services \Ai \Agents \Contracts \AgentInterface ;
10+ use App \Services \Ai \Agents \Exceptions \InvalidLegacyRequestPayloadException ;
1011use App \Services \Ai \Agents \Implementations \AbstractAgentFactory ;
1112use App \Services \Ai \Agents \Utils \AlternatingMessageHistory ;
1213use App \Services \Ai \Agents \Utils \UserMessageAttachments ;
@@ -104,8 +105,7 @@ private function getInstructionsFromPayload(array $payload): string
104105 }
105106 }
106107
107- // @todo exception
108- throw new \RuntimeException ('No system instructions found in messages payload. ' );
108+ throw InvalidLegacyRequestPayloadException::forMissingSystemInstructions ();
109109 }
110110
111111 private function getMessagesFromPayload (array $ payload , AgentRequestContext $ context ): array
@@ -119,19 +119,12 @@ private function getMessagesFromPayload(array $payload, AgentRequestContext $con
119119 }
120120
121121 if (!isset ($ payloadMessage ['role ' ], $ payloadMessage ['content ' ]['text ' ])) {
122- // @todo exception
123- throw new \InvalidArgumentException ('Each message must have a "role" and "content.text" field. ' );
122+ throw InvalidLegacyRequestPayloadException::forMessageMissingFields ();
124123 }
125124
126125 $ payloadRole = MessageRole::tryFrom ($ payloadMessage ['role ' ]);
127126 if (!in_array ($ payloadRole , [MessageRole::User, MessageRole::Assistant], true )) {
128- // @todo exception
129- throw new \InvalidArgumentException (sprintf (
130- 'Invalid message role "%s". Allowed roles are "%s" and "%s". ' ,
131- $ payloadRole ->value ?? $ payloadMessage ['role ' ],
132- MessageRole::User->value ,
133- MessageRole::Assistant->value
134- ));
127+ throw InvalidLegacyRequestPayloadException::forInvalidMessageRole ($ payloadRole ->value ?? $ payloadMessage ['role ' ]);
135128 }
136129
137130 if ($ payloadRole === MessageRole::User) {
0 commit comments