chatwoot-develop/enterprise/app/services/captain/tools/copilot/get_conversation_service.rb
2026-01-19 19:26:23 -03:00

24 lines
884 B
Ruby
Executable File

class Captain::Tools::Copilot::GetConversationService < Captain::Tools::BaseTool
def self.name
'get_conversation'
end
description 'Get details of a conversation including messages and contact information'
param :conversation_id, type: :integer, desc: 'ID of the conversation to retrieve', required: true
def execute(*args, **params)
actual_params = resolve_params(args, params)
conversation_id = actual_params[:conversation_id]
conversation = Conversation.find_by(display_id: conversation_id, account_id: @assistant.account_id)
return 'Conversation not found' if conversation.blank?
conversation.to_llm_text(include_private_messages: true)
end
def active?
user_has_permission('conversation_manage') ||
user_has_permission('conversation_unassigned_manage') ||
user_has_permission('conversation_participating_manage')
end
end