diff --git a/Gemfile b/Gemfile
index fd546a307..4c1ee452b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -177,6 +177,7 @@ gem 'reverse_markdown'
gem 'iso-639'
gem 'ruby-openai'
+gem 'ai-agents', '>= 0.2.1'
gem 'shopify_api'
diff --git a/Gemfile.lock b/Gemfile.lock
index 9cbfa801d..0b9daebbe 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -126,6 +126,8 @@ GEM
jbuilder (~> 2)
rails (>= 4.2, < 7.2)
selectize-rails (~> 0.6)
+ ai-agents (0.2.1)
+ ruby_llm (~> 1.3)
annotate (3.2.0)
activerecord (>= 3.2, < 8.0)
rake (>= 10.4, < 14.0)
@@ -719,6 +721,15 @@ GEM
ruby2ruby (2.5.0)
ruby_parser (~> 3.1)
sexp_processor (~> 4.6)
+ ruby_llm (1.3.1)
+ base64
+ event_stream_parser (~> 1)
+ faraday (>= 1.10.0)
+ faraday-multipart (>= 1)
+ faraday-net_http (>= 1)
+ faraday-retry (>= 1)
+ marcel (~> 1.0)
+ zeitwerk (~> 2)
ruby_parser (3.20.0)
sexp_processor (~> 4.16)
sass (3.7.4)
@@ -897,6 +908,7 @@ DEPENDENCIES
administrate (>= 0.20.1)
administrate-field-active_storage (>= 1.0.3)
administrate-field-belongs_to_search (>= 0.9.0)
+ ai-agents (>= 0.2.1)
annotate
attr_extras
audited (~> 5.4, >= 5.4.1)
diff --git a/VERSION_CW b/VERSION_CW
index 4eba2a62e..fdc669880 100644
--- a/VERSION_CW
+++ b/VERSION_CW
@@ -1 +1 @@
-3.13.0
+4.4.0
diff --git a/VERSION_CWCTL b/VERSION_CWCTL
index 944880fa1..18091983f 100644
--- a/VERSION_CWCTL
+++ b/VERSION_CWCTL
@@ -1 +1 @@
-3.2.0
+3.4.0
diff --git a/app/controllers/api/v1/accounts/callbacks_controller.rb b/app/controllers/api/v1/accounts/callbacks_controller.rb
index 6e119ca3d..90cdf2418 100644
--- a/app/controllers/api/v1/accounts/callbacks_controller.rb
+++ b/app/controllers/api/v1/accounts/callbacks_controller.rb
@@ -30,7 +30,14 @@ class Api::V1::Accounts::CallbacksController < Api::V1::Accounts::BaseController
end
def facebook_pages
- @page_details = mark_already_existing_facebook_pages(fb_object.get_connections('me', 'accounts'))
+ pages = []
+ fb_pages = fb_object.get_connections('me', 'accounts')
+ pages.concat(fb_pages)
+ while fb_pages.respond_to?(:next_page) && (next_page = fb_pages.next_page)
+ fb_pages = next_page
+ pages.concat(fb_pages)
+ end
+ @page_details = mark_already_existing_facebook_pages(pages)
end
def set_instagram_id(page_access_token, facebook_channel)
diff --git a/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue b/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue
index 2e03e97af..63b5f8eef 100644
--- a/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue
+++ b/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue
@@ -119,7 +119,13 @@ const handleSeeOriginal = () => {
>