@@ -500,11 +500,15 @@ public function generateForSession(int $sessionId, int $agencyConfirm = 0): JSON
500500
501501 $ lastAttachments = $ lastUserMessage ->jsonSerialize ()['attachments ' ];
502502 $ audioAttachment = $ lastAttachments [0 ] ?? null ;
503+ // see https://github.com/vimeo/psalm/issues/7980
504+ $ isContextAgentAudioAvailable = false ;
505+ if (class_exists ('OCP \\TaskProcessing \\TaskTypes \\ContextAgentAudioInteraction ' )) {
506+ $ isContextAgentAudioAvailable = isset ($ this ->taskProcessingManager ->getAvailableTaskTypes ()[\OCP \TaskProcessing \TaskTypes \ContextAgentAudioInteraction::ID ]);
507+ }
503508 if ($ audioAttachment !== null
504509 && isset ($ audioAttachment ['type ' ])
505510 && $ audioAttachment ['type ' ] === 'Audio '
506- && class_exists ('OCP \\TaskProcessing \\TaskTypes \\ContextAgentAudioInteraction ' )
507- && isset ($ this ->taskProcessingManager ->getAvailableTaskTypes ()[\OCP \TaskProcessing \TaskTypes \ContextAgentAudioInteraction::ID ])
511+ && $ isContextAgentAudioAvailable
508512 ) {
509513 // audio agency
510514 $ fileId = $ audioAttachment ['file_id ' ];
@@ -536,11 +540,14 @@ public function generateForSession(int $sessionId, int $agencyConfirm = 0): JSON
536540
537541 $ lastAttachments = $ lastUserMessage ->jsonSerialize ()['attachments ' ];
538542 $ audioAttachment = $ lastAttachments [0 ] ?? null ;
543+ $ isAudioToAudioAvailable = false ;
544+ if (class_exists ('OCP \\TaskProcessing \\TaskTypes \\AudioToAudioChat ' )) {
545+ $ isAudioToAudioAvailable = isset ($ this ->taskProcessingManager ->getAvailableTaskTypes ()[\OCP \TaskProcessing \TaskTypes \AudioToAudioChat::ID ]);
546+ }
539547 if ($ audioAttachment !== null
540548 && isset ($ audioAttachment ['type ' ])
541549 && $ audioAttachment ['type ' ] === 'Audio '
542- && class_exists ('OCP \\TaskProcessing \\TaskTypes \\AudioToAudioChat ' )
543- && isset ($ this ->taskProcessingManager ->getAvailableTaskTypes ()[\OCP \TaskProcessing \TaskTypes \AudioToAudioChat::ID ])
550+ && $ isAudioToAudioAvailable
544551 ) {
545552 // for an audio chat task, let's try to get the remote audio IDs for all the previous audio messages
546553 $ history = $ this ->getAudioHistory ($ history );
@@ -1006,6 +1013,7 @@ private function scheduleAgencyTask(string $content, int $confirmation, string $
10061013 'confirmation ' => $ confirmation ,
10071014 'conversation_token ' => $ conversationToken ,
10081015 ];
1016+ /** @psalm-suppress UndefinedClass */
10091017 $ task = new Task (
10101018 \OCP \TaskProcessing \TaskTypes \ContextAgentInteraction::ID ,
10111019 $ taskInput ,
@@ -1027,6 +1035,7 @@ private function scheduleAudioChatTask(
10271035 'system_prompt ' => $ systemPrompt ,
10281036 'history ' => $ history ,
10291037 ];
1038+ /** @psalm-suppress UndefinedClass */
10301039 $ task = new Task (
10311040 \OCP \TaskProcessing \TaskTypes \AudioToAudioChat::ID ,
10321041 $ input ,
@@ -1048,6 +1057,7 @@ private function scheduleAgencyAudioTask(
10481057 'confirmation ' => $ confirmation ,
10491058 'conversation_token ' => $ conversationToken ,
10501059 ];
1060+ /** @psalm-suppress UndefinedClass */
10511061 $ task = new Task (
10521062 \OCP \TaskProcessing \TaskTypes \ContextAgentAudioInteraction::ID ,
10531063 $ taskInput ,
0 commit comments