From c2baed7148d3d05bd4aba541fb44bbcbcd19b693 Mon Sep 17 00:00:00 2001 From: Paul Lizer Date: Thu, 30 Jul 2026 16:42:33 -0400 Subject: [PATCH 1/3] Add configurable completion audio cues Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- application/single_app/config.py | 2 +- .../single_app/functions_notifications.py | 37 + application/single_app/functions_settings.py | 46 ++ .../single_app/route_backend_notifications.py | 90 ++- application/single_app/route_backend_users.py | 33 + .../route_frontend_admin_settings.py | 10 + .../static/audio/completion-cues/LICENSE.txt | 6 + .../static/audio/completion-cues/aurora.wav | Bin 0 -> 35324 bytes .../static/audio/completion-cues/bell.wav | Bin 0 -> 33560 bytes .../static/audio/completion-cues/bloom.wav | Bin 0 -> 35324 bytes .../static/audio/completion-cues/chime.wav | Bin 0 -> 32678 bytes .../static/audio/completion-cues/crystal.wav | Bin 0 -> 32678 bytes .../static/audio/completion-cues/glimmer.wav | Bin 0 -> 33560 bytes .../static/audio/completion-cues/marimba.wav | Bin 0 -> 32678 bytes .../static/audio/completion-cues/pulse.wav | Bin 0 -> 32678 bytes .../static/audio/completion-cues/spark.wav | Bin 0 -> 31796 bytes .../static/audio/completion-cues/summit.wav | Bin 0 -> 45908 bytes .../static/js/chat/chat-streaming.js | 14 + .../static/js/completion-audio-cues.js | 648 ++++++++++++++++++ .../single_app/static/js/notifications.js | 48 +- .../single_app/templates/admin_settings.html | 20 + application/single_app/templates/base.html | 3 +- application/single_app/templates/chats.html | 1 + application/single_app/templates/profile.html | 111 +++ .../AI_RESPONSE_COMPLETION_AUDIO_CUES.md | 131 ++++ .../test_chat_completion_audio_cues.py | 384 +++++++++++ .../test_profile_completion_audio_cues.py | 206 ++++++ 27 files changed, 1786 insertions(+), 4 deletions(-) create mode 100644 application/single_app/static/audio/completion-cues/LICENSE.txt create mode 100644 application/single_app/static/audio/completion-cues/aurora.wav create mode 100644 application/single_app/static/audio/completion-cues/bell.wav create mode 100644 application/single_app/static/audio/completion-cues/bloom.wav create mode 100644 application/single_app/static/audio/completion-cues/chime.wav create mode 100644 application/single_app/static/audio/completion-cues/crystal.wav create mode 100644 application/single_app/static/audio/completion-cues/glimmer.wav create mode 100644 application/single_app/static/audio/completion-cues/marimba.wav create mode 100644 application/single_app/static/audio/completion-cues/pulse.wav create mode 100644 application/single_app/static/audio/completion-cues/spark.wav create mode 100644 application/single_app/static/audio/completion-cues/summit.wav create mode 100644 application/single_app/static/js/completion-audio-cues.js create mode 100644 docs/explanation/features/AI_RESPONSE_COMPLETION_AUDIO_CUES.md create mode 100644 functional_tests/test_chat_completion_audio_cues.py create mode 100644 ui_tests/test_profile_completion_audio_cues.py diff --git a/application/single_app/config.py b/application/single_app/config.py index 86e9a5c32..4b6fef4b6 100644 --- a/application/single_app/config.py +++ b/application/single_app/config.py @@ -95,7 +95,7 @@ EXECUTOR_TYPE = 'thread' EXECUTOR_MAX_WORKERS = 30 SESSION_TYPE = 'filesystem' -VERSION = "0.250.101" +VERSION = "0.250.102" IS_DEVELOPMENT = is_development_env_enabled() SESSION_COOKIE_SAMESITE = os.getenv('SESSION_COOKIE_SAMESITE', 'Lax') diff --git a/application/single_app/functions_notifications.py b/application/single_app/functions_notifications.py index b4fda2ed6..8b7e13764 100644 --- a/application/single_app/functions_notifications.py +++ b/application/single_app/functions_notifications.py @@ -18,6 +18,7 @@ from flask import current_app import logging from config import cosmos_notifications_container +from functions_appinsights import log_event from functions_group import find_group_by_id from functions_debug import debug_print from functions_public_workspaces import find_public_workspace_by_id, get_user_public_workspaces @@ -755,6 +756,42 @@ def get_unread_notification_count(user_id): return 0 +def get_recent_chat_response_notifications(user_id, limit=50): + """Return recent personal chat completion event identities for one user.""" + try: + normalized_limit = max(1, min(int(limit or 50), 100)) + except (TypeError, ValueError): + normalized_limit = 50 + + try: + notifications = list(cosmos_notifications_container.query_items( + query=( + f"SELECT TOP {normalized_limit} " + "c.id, c.created_at, c.link_context, c.metadata " + "FROM c WHERE c.user_id = @user_id " + "AND c.notification_type = @notification_type " + "ORDER BY c.created_at DESC" + ), + parameters=[ + {"name": "@user_id", "value": user_id}, + {"name": "@notification_type", "value": "chat_response_complete"}, + ], + partition_key=user_id, + )) + return notifications + except Exception as e: + log_event( + "[Notifications] Failed to load recent chat completion events.", + extra={ + "user_id": user_id, + "error": str(e), + }, + level=logging.ERROR, + exceptionTraceback=True, + ) + raise + + def get_unread_workflow_priority_notifications(user_id, limit=5): """Return the most recent unread workflow alert notifications for a user.""" try: diff --git a/application/single_app/functions_settings.py b/application/single_app/functions_settings.py index bcebb15e1..3755e7b5d 100644 --- a/application/single_app/functions_settings.py +++ b/application/single_app/functions_settings.py @@ -30,6 +30,20 @@ USER_SETTINGS_REQUEST_CACHE_ATTR = "simplechat_user_settings_request_cache" FONT_SIZE_PREFERENCES = ("xs", "s", "m", "l", "xl") DEFAULT_FONT_SIZE_PREFERENCE = "m" +CHAT_COMPLETION_AUDIO_SOUND_IDS = ( + "aurora", + "bell", + "bloom", + "chime", + "crystal", + "glimmer", + "marimba", + "pulse", + "spark", + "summit", +) +DEFAULT_CHAT_COMPLETION_AUDIO_SOUND = CHAT_COMPLETION_AUDIO_SOUND_IDS[0] +DEFAULT_CHAT_COMPLETION_AUDIO_VOLUME = 5 USER_UI_SETTINGS_KEYS = ( "profileImage", "navLayout", @@ -42,6 +56,10 @@ "sidebarMenuState", LATEST_FEATURES_HIDDEN_VERSION_SETTING, "fontSizePreference", + "chatCompletionAudioEnabled", + "chatCompletionAudioMuted", + "chatCompletionAudioSound", + "chatCompletionAudioVolume", ) ADMIN_SETTINGS_SECRET_REDACTED_VALUE = "***REDACTED***" ADMIN_SETTINGS_FORM_SECRET_FIELDS = ( @@ -140,6 +158,31 @@ def normalize_font_size_preference(value): return DEFAULT_FONT_SIZE_PREFERENCE +def normalize_chat_completion_audio_preferences(settings): + """Return validated completion-audio preferences with opt-in defaults.""" + source = settings if isinstance(settings, dict) else {} + selected_sound = str( + source.get("chatCompletionAudioSound") or DEFAULT_CHAT_COMPLETION_AUDIO_SOUND + ).strip().lower() + if selected_sound not in CHAT_COMPLETION_AUDIO_SOUND_IDS: + selected_sound = DEFAULT_CHAT_COMPLETION_AUDIO_SOUND + + try: + volume = int(source.get( + "chatCompletionAudioVolume", + DEFAULT_CHAT_COMPLETION_AUDIO_VOLUME, + )) + except (TypeError, ValueError): + volume = DEFAULT_CHAT_COMPLETION_AUDIO_VOLUME + + return { + "chatCompletionAudioEnabled": source.get("chatCompletionAudioEnabled") is True, + "chatCompletionAudioMuted": source.get("chatCompletionAudioMuted") is True, + "chatCompletionAudioSound": selected_sound, + "chatCompletionAudioVolume": min(10, max(1, volume)), + } + + def _get_user_settings_request_cache(): if not has_request_context(): return None @@ -182,6 +225,7 @@ def _extract_user_ui_settings(doc): ui_settings["fontSizePreference"] = normalize_font_size_preference( settings.get("fontSizePreference") ) + ui_settings.update(normalize_chat_completion_audio_preferences(settings)) return ui_settings @@ -1015,6 +1059,8 @@ def get_settings(use_cosmos=False, include_source=False): # Multimedia 'enable_video_file_support': False, 'enable_audio_file_support': False, + 'enable_chat_completion_audio_cues': False, + 'chat_completion_audio_cues_updated_at': None, # Metadata Extraction 'enable_extract_meta_data': False, diff --git a/application/single_app/route_backend_notifications.py b/application/single_app/route_backend_notifications.py index 3754d0d10..3698636d8 100644 --- a/application/single_app/route_backend_notifications.py +++ b/application/single_app/route_backend_notifications.py @@ -2,6 +2,7 @@ from config import * from functions_authentication import * +from functions_appinsights import log_event from functions_conversation_cache import bump_conversation_cache_version from functions_settings import * from functions_notifications import * @@ -71,10 +72,19 @@ def api_get_notification_count(): try: user_id = get_current_user_id() count = get_unread_notification_count(user_id) + app_settings = get_settings() + completion_audio_enabled = bool( + app_settings.get("enable_chat_completion_audio_cues", False) + ) + completion_audio_updated_at = app_settings.get( + "chat_completion_audio_cues_updated_at" + ) return jsonify({ 'success': True, - 'count': count + 'count': count, + 'chat_completion_audio_enabled': completion_audio_enabled, + 'chat_completion_audio_updated_at': completion_audio_updated_at, }) except Exception as e: @@ -84,6 +94,84 @@ def api_get_notification_count(): 'count': 0 }), 500 + @bp.route("/api/notifications/chat-completions", methods=["GET"]) + @swagger_route(security=get_auth_security()) + @login_required + @user_required + def api_get_chat_completion_notifications(): + """Get recent personal chat completion event identities for audio cues.""" + user_id = None + try: + user_id = get_current_user_id() + app_settings = get_settings() + completion_audio_enabled = bool( + app_settings.get("enable_chat_completion_audio_cues", False) + ) + completion_audio_updated_at = app_settings.get( + "chat_completion_audio_cues_updated_at" + ) + if not completion_audio_enabled: + return jsonify({ + "success": True, + "enabled": False, + "updated_at": completion_audio_updated_at, + "notifications": [], + }) + limit = request.args.get("limit", 50) + notifications = get_recent_chat_response_notifications(user_id, limit=limit) + return jsonify({ + "success": True, + "enabled": True, + "updated_at": completion_audio_updated_at, + "notifications": notifications, + }) + except Exception as e: + log_event( + "[Notifications] Chat completion event request failed.", + extra={ + "user_id": user_id, + "error": str(e), + }, + level=logging.ERROR, + exceptionTraceback=True, + ) + return jsonify({ + "success": False, + "notifications": [], + "error": "Failed to fetch chat completion events", + }), 500 + + @bp.route("/api/notifications/chat-completion-audio-status", methods=["GET"]) + @swagger_route(security=get_auth_security()) + @login_required + @user_required + def api_get_chat_completion_audio_status(): + """Return the current server-authoritative completion audio gate.""" + try: + app_settings = get_settings() + enabled = bool( + app_settings.get("enable_chat_completion_audio_cues", False) + ) + return jsonify({ + "success": True, + "enabled": enabled, + "updated_at": app_settings.get( + "chat_completion_audio_cues_updated_at" + ), + }) + except Exception as e: + log_event( + "[Notifications] Completion audio status request failed.", + extra={"error": str(e)}, + level=logging.ERROR, + exceptionTraceback=True, + ) + return jsonify({ + "success": False, + "enabled": False, + "error": "Failed to load completion audio status", + }), 500 + @bp.route("/api/notifications/workflow-alerts", methods=["GET"]) @swagger_route(security=get_auth_security()) @login_required diff --git a/application/single_app/route_backend_users.py b/application/single_app/route_backend_users.py index 20d5cf1f9..bbafcd390 100644 --- a/application/single_app/route_backend_users.py +++ b/application/single_app/route_backend_users.py @@ -513,6 +513,9 @@ def user_settings(): 'microphonePermissionPreference', 'microphonePermissionState', # Text-to-speech settings 'ttsEnabled', 'ttsVoice', 'ttsSpeed', 'ttsAutoplay', + # AI response completion audio settings + 'chatCompletionAudioEnabled', 'chatCompletionAudioMuted', + 'chatCompletionAudioSound', 'chatCompletionAudioVolume', # Tutorial visibility settings 'showTutorialButtons', 'recentCollaborators', @@ -555,6 +558,36 @@ def user_settings(): if not isinstance(settings_to_update["conversationContentsDrawerEnabled"], bool): return jsonify({"error": "Invalid conversation contents drawer preference"}), 400 + for boolean_key in ( + "chatCompletionAudioEnabled", + "chatCompletionAudioMuted", + ): + if ( + boolean_key in settings_to_update + and not isinstance(settings_to_update[boolean_key], bool) + ): + return jsonify({"error": f"Invalid {boolean_key} preference"}), 400 + + if "chatCompletionAudioSound" in settings_to_update: + selected_sound = str( + settings_to_update.get("chatCompletionAudioSound") or "" + ).strip().lower() + if selected_sound not in CHAT_COMPLETION_AUDIO_SOUND_IDS: + return jsonify({"error": "Invalid completion audio sound"}), 400 + settings_to_update["chatCompletionAudioSound"] = selected_sound + + if "chatCompletionAudioVolume" in settings_to_update: + volume = settings_to_update.get("chatCompletionAudioVolume") + if isinstance(volume, bool): + return jsonify({"error": "Invalid completion audio volume"}), 400 + try: + volume = int(volume) + except (TypeError, ValueError): + return jsonify({"error": "Invalid completion audio volume"}), 400 + if volume < 1 or volume > 10: + return jsonify({"error": "Completion audio volume must be between 1 and 10"}), 400 + settings_to_update["chatCompletionAudioVolume"] = volume + if "sidebarMenuState" in settings_to_update: sidebar_menu_state = settings_to_update.get("sidebarMenuState") allowed_sidebar_menu_keys = { diff --git a/application/single_app/route_frontend_admin_settings.py b/application/single_app/route_frontend_admin_settings.py index a2b8f6b08..9ddd3222b 100644 --- a/application/single_app/route_frontend_admin_settings.py +++ b/application/single_app/route_frontend_admin_settings.py @@ -1082,6 +1082,14 @@ def parse_admin_int(raw_value, fallback_value, field_name="unknown", hard_defaul # ... (fetch all other fields using form_data.get) ... enable_video_file_support = form_data.get('enable_video_file_support') == 'on' enable_audio_file_support = form_data.get('enable_audio_file_support') == 'on' + enable_chat_completion_audio_cues = form_data.get('enable_chat_completion_audio_cues') == 'on' + chat_completion_audio_cues_updated_at = settings.get( + 'chat_completion_audio_cues_updated_at' + ) + if enable_chat_completion_audio_cues != bool( + settings.get('enable_chat_completion_audio_cues', False) + ): + chat_completion_audio_cues_updated_at = datetime.now(timezone.utc).isoformat() enable_extract_meta_data = form_data.get('enable_extract_meta_data') == 'on' # Vision settings @@ -2642,6 +2650,8 @@ def is_valid_url(url): 'video_index_timeout': int(form_data.get('video_index_timeout', 600)), # Audio file settings with Azure speech service + 'enable_chat_completion_audio_cues': enable_chat_completion_audio_cues, + 'chat_completion_audio_cues_updated_at': chat_completion_audio_cues_updated_at, 'speech_service_endpoint': form_data.get('speech_service_endpoint', '').strip(), 'speech_service_location': form_data.get('speech_service_location', '').strip(), 'speech_service_subscription_id': form_data.get('speech_service_subscription_id', '').strip(), diff --git a/application/single_app/static/audio/completion-cues/LICENSE.txt b/application/single_app/static/audio/completion-cues/LICENSE.txt new file mode 100644 index 000000000..ae4190258 --- /dev/null +++ b/application/single_app/static/audio/completion-cues/LICENSE.txt @@ -0,0 +1,6 @@ +SimpleChat Completion Cue Assets + +The ten WAV files in this directory were generated specifically for the +SimpleChat project from synthesized sine waves and contain no third-party +recordings or samples. They are distributed under the same license as the +SimpleChat repository. diff --git a/application/single_app/static/audio/completion-cues/aurora.wav b/application/single_app/static/audio/completion-cues/aurora.wav new file mode 100644 index 0000000000000000000000000000000000000000..27c947e19ef0e2f1ea0797a4cd633911241cbdb7 GIT binary patch literal 35324 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 HxEUA#>m{~} literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/bell.wav b/application/single_app/static/audio/completion-cues/bell.wav new file mode 100644 index 0000000000000000000000000000000000000000..ca72de111e0018ada6dd6978d92f09903133b737 GIT binary patch literal 33560 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 QC<{9 literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/bloom.wav b/application/single_app/static/audio/completion-cues/bloom.wav new file mode 100644 index 0000000000000000000000000000000000000000..f691c2e007c06b6a0c145f5c7f4462181ce0a7ea GIT binary patch literal 35324 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 G!2biK@R26~ literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/chime.wav b/application/single_app/static/audio/completion-cues/chime.wav new file mode 100644 index 0000000000000000000000000000000000000000..f66bbfba730ecf938c5178dca608d33aa22169fe GIT binary patch literal 32678 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 h?g%=X+3{Gp;VlF70Isjbq6rg>7usg=?}k^)hI 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 G;r{@Kd3X*0 literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/crystal.wav b/application/single_app/static/audio/completion-cues/crystal.wav new file mode 100644 index 0000000000000000000000000000000000000000..7b7b5e05cca9a297d7477c439a85bc4b057eec86 GIT binary patch literal 32678 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 a{s2GCAq@fBBY-dfm+=2NUeNy~dHo;ZQUpr? literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/marimba.wav b/application/single_app/static/audio/completion-cues/marimba.wav new file mode 100644 index 0000000000000000000000000000000000000000..80eda3250eb115d8ecc407e234a96ca774208609 GIT binary patch literal 32678 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 Aa{vGU literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/pulse.wav b/application/single_app/static/audio/completion-cues/pulse.wav new file mode 100644 index 0000000000000000000000000000000000000000..fbfb50a3d5f6841a785794202ecfc10cb411b32b GIT binary patch literal 32678 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 NZ|i{CiTsb&`9GN;Sib-O literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/spark.wav b/application/single_app/static/audio/completion-cues/spark.wav new file mode 100644 index 0000000000000000000000000000000000000000..b8d9507a6b861b384325eda68dc588b297111d44 GIT binary patch literal 31796 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 DY1ic4 literal 0 HcmV?d00001 diff --git a/application/single_app/static/audio/completion-cues/summit.wav b/application/single_app/static/audio/completion-cues/summit.wav new file mode 100644 index 0000000000000000000000000000000000000000..aaa0dd5213ead5e7a364038ae8e7dbd57ea522fc GIT binary patch literal 45908 zcmeFZ1#??Tu&{m35i?7+WSK3C!pzLL;cS?hHVhkPPBye*beNf8gBy+|OR{Clwk&35 zopaTSveU z0x_Y<6BbR7g1`Bncd!r{VnISk0yTj;LxZ8I&7W3_fE92Lcrv^mJ_SF6 z%i##jK^h>vktxV(4NEn>5J(Po_^qeT`}!2%`gf~ z4u*}vVuFYf`H8$ht{?}IHOO>iAkq@aL2!rz{s}*TkHV|riEuYq3X@?c^cA`R?SbY( z{UIgzh8FZ6^d!0r{SB3&Xj+xNlwO(cn--;Qsr#w5sa`2&sw{alIXan@tVsNw7@A-v zKE>C^TgAPxlGvyiEA~FRD%vP&jhv2*h;Sm`!@I)$!mO|+bS5-6)FH$Rd4gYqcY?=) z+k|SArjc&R|BUPiS-KV~8D|6n+-YifoAZBh#YB=#-c{wkpm{TuJmy zI+FWS?b43)adZHLgP+0+5e3GGIfnfWhsQs{Pbct*FNu>$IPw{C3(7~zV5){Xl=hj{ zhJKcgFn(uTW_TG5m{XYtm`|7*rjr?ErkF9Ni&@Tm#XQMe%Px2&kkhF=!CzTLe5I+(|672Xt@l5=ATua||^LvmYbJ z{DX`}Lhx?57=8&2hdk(JRD|A2cS);KlTyCqsw6JCBf&`Qjnm`XV@PaS)DamK`50~z zJ{E#PlY{RAlE5Z^t*@i+xHs+@?s?!AxR<*O&K}Ntjv~h~JKui9mS?+d?PaxF4p@3w z2$rAb67v@GV)K0SGV?C;ZL`r_VEM!H!_vp+}p=L6Sy_i4{X?^B=7 zj|nyp{Skf`!Ni8gZzbrd`ROvWJ$w;iVwdBp@m+}*NHApt^)k&*Z_1p_I>vs<(Q-{Z z6JIBIk#Q(?=#P5cbTi&X>mC1UR%H#vBb@gnP6hpWg8pRcCVRKy~S|1%34`m zIbZ*-LQ-+CoKt>E*H&lKUed16j@1s+PSS4FKGhO*Gjuh&`Q^NdpB3lyJ1ciooihAe zO{yJZd|TJS{KYcMCUoeW7v1Z zate5`;8(^$Vb3hPctuV$cVhm-f@ooZq*ZYXDMR*IHcuXx&sBU@FqQ3;LzF|6osIIvQoQyc&FU zqAFAw(L;Jxg|d8*ZiDutLis3V~sS^SMy2hYWp1L4EKERdjE;wtFSF9Nc2jrLT|#g z7#6-AaT0kw^$7g}vxI$&yMaF{qd-_LS|euV?8%Mh^)1+5c)RG055*Jb%-`_&wEiK>qZtNKxT zr}R?k{ZefyTQy1bMb%GjQXeWCr|F<=q3cmTr{bzUT{+EASG~AaSogzp#4_JD+|kF? z&ok0DFR(jwFJg!>lAY3vp-YGkOCU5P4W`Vatz&FsZQ?BA4HZZ-Ey6=tO|qZmG|JnT zUs1p)Qc4;Z=Sd^d2eL78hkT;qwSuHH6Y( zlJcTZA)%02z|N=TA-Vo+gZN|CP0<12^31UrT?8^dihXVN2dQwol3q+7~+W-FQ$xkjQkcJ8=4lJ6PW9t z?VIWy;~D7g=&I)wI8d9}`q^^Je9*L_Zi2CQZS$IUFwEq&a#)9E81(i_vMj__LWDgsMUYf z)HCYp4x6W1yV)B%mF_0quKuyXwc$(AvN$2t8l3~5#{9q~2?gXX)ZgjTnX}jvxV`y> z8J^5bq5)!K_N3hJd6I&ug?o$6Nlq58m-d$-@>B8x#U4eSB2U>vIb8XhvY8U6e5IJK zNXysBgRVtazwoNztytV+CjOPvsrS-I23Ad$PE1R%20yFqu&!_`tuxJH%bb zna3W_8p7<$=t1vJ>qQ+v`JFtSw4At`P=bGrtHP#1bkG@@3U7yQqN;Q>B}%nRj!CSH zABx?KzKdwW=8!KK3#9xhU(DuX$d5({Q2c zY-Nf5cE$VhIvritMY~C(E^AtLR-LE5qZ+EBsMMwRfQH^FEiEOhMyg(_+Nyu4*OqnH z6lybdlJeda8};hSHiie)-D)ky<_^xGS8Jh0WfRL&%$v|DeEGNR{x4@lu2IjI6g@FCPldI07X3 z8<1!ZWr5PBIId``_$2Qpzb&K5ewQ9C{wfI;v5E=`>lZZ4SLWsAvU5*a{vEze-c_FY?(wdE&X$f`JHh4ze*1yxSlxQ# z%-Uf!-Ktv|8do*0Y^Cp6F`;~;?ylCQX|CB>=2K5oyH#6Mja9zVx24yB6@5`^EtRV_ zr~;~0>Z~$V*#*rm?JnK<@?RDF%K25*hRHRF+LF47<_1=(J?ikfLLQtyJJ=ySEqWmS zE*VWL;IWw9xTl0#5{8;ZS1=o}i@9vRTks@vu_#-7Kf6V4NnSd?bK%^gjgs}nGo&qL z9@#EASFu4+p%8)7J`9}t)=H}KlVXvAqSzQ1xM%~HdYOA`mhMNyO=a~r!`rG?mH+6!Rn(NHbrRk0+G849S@*I#>IUi;s&Oig zs-pB^>E+T}rQb>sRe#lOl~VmuJ+rKyhNw+wapjVVvHEM3OvAQnUhRG3bd%Bo*^G9z zv(#Pb_4(K%zv7(M%W}vC7zh0&+VAM zx8PHuqbMSA6n~KJkhPS5k@r+wSHu+!fkzqvJd;%EQexJNfxs7vjv&mwgNF#ifc{*d0U>1KcuPs-~5wJ!NEB?#A z^WI~gJ?^!xxy})ePIjq{ZuOfrre}5Mj5}(V)J&-!Vfd|TVC69VDnqYN^VknyDt1y(rtEnXjFrTVH;?!lUm|biiH2LDfzD1KIQ;G*j^JL|+RdT#ync|m%r|bx#rXkAqO1AQsVvQn0 zaat~r|0z>R#nO?*TP0VE-W93~^!fU{vfO`jo@8GT@6K8*`d!!|vmk>c@bI+UH=LX7 zQ>?$3+ZY?^>uDRQ+bMsMPm^vF-x2iq2#$kmj2(sRi+1|79{s2ZpFXE zOwnY75y=TFLQR7$1FihceGR=5PllV|3OXw7?`+qs`z(viznePN6&sngscN^uSXEV7 zt+!Vs%QMP5=oV;iX;Nh)%KlNeSO2S;p%SU8fh;crnSLrwly+5JP>I#o)kDj88keS0 zYtmsVTIx4enyN-sn`<^2o0`JrkJc;pqt3(bQ{FrNZ$V#J6zi2(nYw}2!dz?@{9NJz z@*V0&dMQ)I{>Z(~-v)pDsCx;C`|IHa<#0fY?Jh3aatmk^e7r#IK5zY{*1iwxr1^#X3NFwtf;Uu z^G(J@!A|}n-WYB#P7Ah_C1&y&Y&wg^qh?X0`2DzB*dG`l!bMubW1#hD zN&4TEE6GUKPxOsXi>-+sh?IoygQ7h7p)7&ZJmTgv()F)J3Rq4{N;JjZ3=U!i$ zp_;AIs79)T>WgK6XohG9=*E|CtN5rFS8X*AYL3=+tc#l7SdQ5?IF`Fsdbavb1zv_s z5mvlYa$))+RE|(^tq2oI8!4w~w-^sucQ~hcYXk!_>7r*@!?UY$2Ibw%j~2*_x=DH! zH(5KTSJBy-2x5eop#ItRY14 zEPQ=jKkOXLUgR#Ug_39<+ATdJwIg{g@i}gZ!7)Kp5or_d8Tu_aEHKvEjg^q{v0}U;AYUxE$a>0-N)5&Q z;?9zZMav2|6>QJnnzuIhkDT$@eZ)<&GDYc3W5!3pb#N11&7Hv+&hE)-%WTSMNN+%E zOl?K!N*+X-Ok7UbkH3!l7i-5*F!hl^@KWeF`YK(QBBW%=UWuvk^|7PTn~^u+AEAn% zF<|zaeYM_l&v*AL*A3@U#|HaM+dykGOQtzpS7-cE`>^Ih^*0jSi$=1u!&eh)2+c!S2CUidXBZej#rKdngkWbhsK9AIuGM=`Ov68iv zGmY0%Ak3@~?#Pm6-^nS?+nWEYfKXHxmGFxd> z98fe?ypXq)pOdAey`)=nHOA<2C&S?IrasR;M1Vu2Zd6DOAqV*Z&*YzbK8scSY06y;Vr{)|x!y*Sa0%k=B;>LT9$S(A&&EAUHq#cl3Qcl9Z!k;k}qw zI2VCKZc6P#AITiU9?WgW7i83C9v5{HYqLk@zRSxh7*n{l=$Pb4@hWLASz2~Xo}<{Q zs8!_tUu550Nl?B~%u>LLP4cL0l~X|9~@LvDhL^Ph>W{ z7rKv@r_-stRF~wW#Jc#2*!}3|NEOJ8M1xQe8^HP@U(DlnSG&GBpE%Cjci0wKhgsT~ zb4|E9SFNVzZS@1g^{UI2*Y%GozLYz3TwPD?c1?L%%d!%6k@~)BxQeFIfP3fvME1W* ziK=0$r>a)!Z|aq09W`PtTbEtlsbZ!6b7dpL)#}!@dgETxP>aIGa3C(&L-pkaI)o-g zcE_G4JgEX`7_t@n0AEeSQu1ic80}eYIrVr)a5ku~1hqjkf~`Bv0s zchtHpp0JM*Y#1I9-4wr{w5COHf6N-(H9{#VNTJcQn0f3>E|y;{xSlyf#1UV~u9tf} zFO=V^aB9&i$;#qM(#A5oY@3{=Sf|h_gvu`e8`-x}(v+VSOB8g)0XbPdPxe+ym3A*) zBspAktMFyP`}}u#FLLkXoXOrPUYs>b)Ja&BNzU-{%XlxjS2%~+TUaZZe=z3IXVK5O!n)R^R-iR1Byv7b>(BpxP(c_DEy zKalUw@nv}F9?0!+Ryf|;ui5rnms&=fJDDVPbYrxpuDZZ`h;lBu7nr<6%Gh&HHA>9Q+^>d#f;4Xdlk zwO5RzO*xi;waos(`Of{#TkA)I1(ANSRf+4V8kCE4$1cX7CcY!rQX_PP1#^O2E&oQw zLSb>%C-Lx{pSdmaw-mfCtSjWW`WH_MvHKgzo)t|+342Fm^*ZtA0yDFcd2iav@8 z`AGQ(S&?k9^g*#h!j&{G>RvdgU}*lJyq>wObBeQB;+V)Fe4BYGW0znde-y7Pw;?Bo z&1B)2X?mQNprRB!g-y;QH6ivQOvJCo9mhVyR3R`@1owjGqJO0yrgX_fLYQa~9~7Gz zT@%?GJ{h_cycxLdzva8?J?A;>-s)QH9Pj95Z)oFL<7R{DZQT{)U$v`iW>=3hjHnu3 zIYvLLVtx5}-488EJ3w>3j8L{homL%CwNu4F1p5C)_BEwB!0*?nrm8VzkIFV_W@@ME zR+L|;Fzee@T{g&TUe->l%QHJH?`=07C9W%;N4_5cZ%7dB5?`1sN$VggrX6l3;V;sC z$~T&UVPY9LpLv%B%QBmbYO_{mL%DzCeaq(-b}bqs8CTp(Dw37SmdO#tV#N;yN7(^H z_CvvMu2KbbR-`yD7s=Plbkcn3*y7!iJ4K%h^##WKy1dHVUpcR{uZs_5{VAF#?2)O+ zU|Ir25Y!y2ZCqDw`pYuf*2E!j5j_|mF~AGSB3)wR6Khjv z(SJZjG>zjCCFF+GMsz8Y%MNhf@-_=vW|j+QWSPYSa?a-(^XLWng}FsUiB__|xT*A& zw5e>rOeZ6OjItcaFd};;TOt$6u7TY0>0(Ur2+8T9O5ov}6%5Xwp0^}-HSkDl#LKhh zi>3%iX7=~fANoF>NHs`JOdbF^W`9f^>mHpQ*%Q7Q`Vuq;l70p_^-6DZPkVP)R}W`zM<07% zTR)I<`prDdG#2>!WwkqNN~%8?JXN_>qbg77Jr%tx?v~5SZ|FMf%-Unx3EI{`#s%8u z+R@s>T8p-??!9hUdA$4{$TLl^oKQ8_u)F%78j^8h-B(i&%P;FJJKOo*waGKUmmf$4 ztHU3n_u}W02hy9MCCFs#0DLndm+YcEr)>a!$;IBo&F5bfWM!@smWsII&e@}LCgl#x zYnq?Rzg_TKVMXDQKzD^!qJ7Qf(`{I^L=@(^Oon{ z%Bjl6WlO}Jvqp+$3s+@s&p0GF%fH5Z#C^;8$*uKVz2AKc0;15D@cL-Gcp~vE^(Wc^Mv-U0ipq&v(ppLm?H;`&^A)QJ=P1|D zYb#iqaVGPr@E_5Wtdrse*$s0lbC%|&ffe|bmzO^}e^dVP{ImIo@>k^d&u8a<$eWXg z&)c8N&fT2j%^r|lA`WJ?&RQY5C$wf}WOmJ%BRIf+%+qrrZULt|dnRiy^AV$lPNTO4 z-slWPOXiRVf~u05kVTk+zk`EugRmu-1Tq-83S;51&|{Q?&P{&=5?z-3o+wN#jem>@ zK#t^kBp7Z5@_0{!(Lj^HZ2wuG#!L3L^~`mja{X|^&Zds(_LDY^m1`YpIcheUnwxgl zxr{?VCci`N+nOOYp6bKZeXAMO2Ez-(b;DJ|V}r(kukH?BjaARC@zrdut!FeDuh(rh z%`;E8%(HH`U9nd2}aJcnrpd{R1B&EF{^; zBd9NELdI<79iXQ|Zfjm&{s2Lj3~6R6^R;lXC?o4imO^|?92fV@-kg0m`$u+Vc18B5 z?8~5L*C9J3J}qu9{+acAmQK`P^i-HDT%B2#A52T_h$5g9z8~B>Z&TCu}|JUzj*D3Hb)MhD#t0v=()xe^0+p zHBKD|HP1PT(s+yb-?3P9c=S$$8krP+7$S#81uqA}{?7hgzA|r)ce>|}JL&4-`pa4C zXzJKzueEisowbs!%Pns6Y_rd_#w0L3uA5pXuB$QLHtsSmHO@6IG;TItGU|+(b<^tJ z)ipNVG_^LX&8scVtx4+-+a3EE$8qO**F(43lk(R0PY+xP20~pThoin&zr^(^5F_G=gd&zGA=C-425E9}*oCkK*;>XJVY#hNv$xCh{TNAbcp42#yQB2^4}Vvf0%jIwmLG_^Fbw6hGc zEVEp;SS*dL+pQk!1Y3=5jveo~>KNk`x$0bx+($g?yo-GE{fh!?g9k#_!(Su*s3_he zu_RfN(x%B!TX;5d6!RAAz|jc`VrSAI@+it^P>JtKmoczR74vV_U^c`#%W1)V$!){C z!lUvh@GtXCe2$>Gps!$v%(CX9vrs9BJ8p!?0FG-C^7lRXFq2LXC-GMrvrz}sbybePhn@Vzp$3FvRKcU!>L+M8OMD9!eK^jV`AWkAW2#X0YVGlkVe-qakr@_v}60m0g zZ&HpdM}){zcnl1~7oc8{8~qDyiB_i9rzIedH#TeL zak*9Qx9+Fl`Nv)AcDb3JHlF#O>z<&etM`N#_0IHF`bPNm;EX2%hk`9ahS2VC=SU** zIJzpWp?g)pWYtSUX3jIR2qn*%L`c`^cIvWrq+fwZSLvlVjG>K0>NK8p^ z60hR3nN8gpD0F3go2@x!Goj5C|1f($^*(l$~>Td0*Z-z zle~o7nj9xRCM_m4AX$kgi9?7a;&Z|RLLote-+^zB_v0?&#(=E+zu5KIHrO!cHfAnH ziE$#=khw@BBnUr-*TCIj8e9gQf~G@_K}PgFx(^+N7NMT>gbl z=gD=+Zb@SDb7EJbKOmca#`nhu$9eIx*b%@s<;0B9%hCDKR#8m!N91H=UZhJz2x?M4 z!neW)!mEJ1hll%wyM#N1JBNFPhlD4GSAf^=hP7ch(l9b9ax9{a2&3bpSEKQ0zu5U0 z8XFUT5idw=PXrR3wMox&*bMqX3uH4!#CwA{!AGG6eGwlYw1~{ehL> zmg7F)*!U6nzwsJ8gV2TW2jK+aA3_}gA_|CdVoPFYVh>_ZVpn22Vq;=HkwJ_R4B-89 zgmr|`gr)=vh|cfeH{b{3^YLEXbKExEP+Ts~fqeiZ*bi7q6Xp(PEnv#TK#I?i-N*!_ zDMCal;k)oQcmmuCW&>jEJ#+?I1w2wyz_Yp0&*&v|6FL#?fMx+rElb}??@rH5cTeY~ zlc_SGA=^`vQ|(iNlsEY)c{aH+IV4#h$hbD~JaHtkI58;E5YSNG_^fE|qOf^Ce=#ZrO3 zRbxJ4Zek8%R$|5j0#6F^#2)a8_mLyWN@Oh387V?Yh#M}2AHgT#jqogZFx&<%fT`eo zS3{qnhtN4d-mQXW08XqMkY+xRCk%PfYV-&C3cZD%M)#uY&;{rObP(DZZHyLx7!?Du zCv||!dzZeSE=eCwZ%r=;(jJ}epYD`yk}d|M9wUuS$5P&uC1pryQa@9lQ}0v%q+X?7 zq@IJHm#H_Ycd36CWjv=}GCu;4_bIlAYtqg%jPg+> zutCGn+2FezLa(AP(Nffc#!(uS12u#?LIa_3fF4{4ZG{eiQ+64;13iIWLmz?u{({ty z7Al7-fOXJ=-#SPGcHjr}1^NKJfu4i)--fP0=b;nOAs~k>&{}9Yv;dk3EZ=BoDBux$ zK%JmAP&23jB!>#2T;Q<<5F27Z6o?4nz#Zs+{vi+^qC=TbG1LO;4ULDE0;cjR`20Eu zhO^`A-5?ueW1>EhYuF?mLKYrJcH z&HYfII#3$ag?!=6=)l;4xG~Wtbu0}*)8Su8YwRgp8b6G9o@6GAsGVrT=pz_Cn0YJ{ zYd>4cxyYe$M|1z;-r+vwUgvJ-4(1ZMS2^uCuh`AlCs_&R0Om19H9eO;ns$)-m4c4SeP9y z3N;C~3v~7O^!4!$@Crw4o!lQiGkryYP*4~C8vPNkN(Rz&SdQt68%dZ(nn4*u>%gG1-m|B0 zZM=bkzcXHCeh^+2&CVi=H;F67?Chd!LAG6dO58$xKPxk9n&`CfLuO@$Nl?Qt<-Gv( z#0K^RR(oa^BT1_QRh66M6W~U>jj$QN1-BEd@f5hrK7{^3zoyk78>maDz#aB}^jKth zcwi_yX!4);jqx%)FI+R69LF=;bZds?8@R2GG&TXXzO3p-hVfNbD|wZt^#k+;`W$^X z{Xspe@^R&!s{Mx7)#BO<#$l!gmIk)Ljw7ywXE|UX9!BQJo2DS>J8}Xyg;+>Y(-tvP z>^Z!b0$(PSWfNb?>6mvl-&znY)D`UjS^UYxyNb6Lk1i$@?~pi(WJSFS`xZ3MC+Gc} zvm!f7d>7=C|IO$x_{AH>tzb`K1sIzFQ2LTGmCPZ%C#=D@#ic=vv=trzaZyd`aB@%r zAHNs?6=ifnwmG(scYpmTMTYMcM>Ze=vIMR@B~l^{t4>9 zMo=Tx)$G2hTT(%w^slAXjIgob!Mb|u?WoJ#z5u^Q<4tIi}@CO-;M%8&!(RCl#a1`8vBs zU*=I4t2e3Ws<)s*^P&_FIH9J15^AN{spWvI;`7Q1gS7TkT?Y%sZgtu{*g&K3+}OP& z1og%2$A2d!seEPzC&hc6F+rpi7v*-zZ&c_iS_GJtI@uTbpMY2C4076Sm43xag-*_r z7s~ijyW~8`WUE0Q`=1!~!#X;N#V9={3K1Zzf) z!Gj<&`YN?3S(x|{TO8#^u7+9%UxBRZT~Drii_>E7VmoFDnEKRRtR>YfGC2O*!T)yf zzccvX8T`+R{%1x1^Mn6IGXF&~|HY#J#iIY+CjPrk{C6Mx??(UMjsCx!%zrtV|FUZT zKgz20WxfK`)@#ZDvYEJ%Ajg+sw_@5MA&?iHp3Y6F6IJO?rs;{a{_223~WsNoc zw8sGr{7e6^3iR_E7nmUHZTouH9Pj+V#&AjOC&-J|#|*FqW+|8QXJ2dy&8Yt#5TlJP~&`s(3^PF0-&n|!ds zRX(j85BlLB>wf9@&D*P2LJ+Eq(!Bzct?Yz2K=AG8>_J*!&o{oN7@JwV%yb-8P zd_#`lMi9xAtF-3K%j`6_sh}sIjZ;}iv#Gg*@@C}^E8rHMFC-MTFX~fNzsO#=wlGl8 zyh2yAj+v+wc1n=elev+7j(d*3KBKMhr>MPnL-xs>-MK^ZJbB~uFXey8 zf04g0zeE1#yq0-ea-ZdB!Gw;VS@%TSgo86V8Q=IDc`djO_G#8|K=hV^i4oH%ZOD95 zgisAwm45(j{segfKZjnU?*JwF3D9S+0lR-Ox<9fsJTz242nD|R4tYm;vcWE%aZIr* zZE?#F^KH|~x?{#GwO?xpHNRJXG7L2!hVNCcs>-U^hQ$WdaHo1_&F`yAwG=f6dq>Hz@SpN_a7SY-=H*{KhRccT2RN@NgJH8ve6}cEb0{XaT1^W3FK7zN# z{ls+uXzCDqTU&jr9Q4KaH7%*TZzLI))TV3B)=aMHUemi~e$A5_Y3|k@iWQlbS~gI58&Pq>PR85hn0*QtjU}dcNzbefSj2l zWP$dk&7eLwQ(Pi`C4MB{EAA~eXHCocF3J^+5pDsUz}E!V_-A?hxGOm0*j-q~Oe!M) zI$FL^UX!1Yo)BLVKI1EKK`aB?05cd_4xfSk1q4A>x=U(Wa%-X_{xVh?t&KRt-jFxw z2pIhu-@l;C^1Azs>xlD!<1px~erm0@a4jRjUgnrC)OD##8B2{Hj1@*k-K4tmx<5=x zGr@wj=Gn&DA3GYlUb|;|m3}yA4wXmBW3>q{*g*y&#Af3&h&XaB_*n#}RS4??=AnW&veA_@r43)_MoXG!MDjF*A{ASj!HZis%If$RaSKFl7B zF7!^cPSkFc{^U`lxx_7m^Z1WAFIJ2lfZ2#V17t-bXbyTgZA@jQ1|>Ho?!^r;d`uec z78w)%BeXuaH*m~n>?}Wd7&=t}84w`91%gfdT3!R*JnnhUH@1&O zXGxfC7z2QAE~DLjZZ z>rdughKbIhcc9Ip9;UnlbCim~?3BL=T6`9MGUx(^vBNMo5Hd0i{s2j#ZKyrnJAFBY zPmNDLOi)0T{!+{rZ4NrtABBUV2B8_jvw=!~rhlaGq}K`<%!BTPYqrY)_{$9EC&woUB3wdXFEr52!c`mz0 zyK~$@SB0w#u($+wNB3^G-#yC{_nh<&^A-3pfnXpKB!y*>q0ybOFL6$CeCj6H!GZ7z z#DtOH#^HApZV}&-{w2SpoTVM^Cx36 z!%3e>ucq~2m6DWSDgdz{e%1#-xgnE zpUr#2yWTs+JJLJWyU2UotML~4Hu}Q8m40^MNnl~HO^6eYhV2n+)Dug`dC7*U0f6G( z3v~1|QiJhfqqs2MO88E^NLoNvP}Gz;)F5>R?F&szA4T6vKS#e#FQM-NYidpp(Js;k z(45qDR2ua!3YW5%OeC)+1&Gs#6@-C=_kb^aglmSok8O#4f$51+0k%B|Zv|A*eW)Mc zWY(Y=V1+%wq@O=hxYWU9LGoszCEzi;#XrUR#=b=dMt?luRmU*`tc65SUhSnKFk` zOwo}ykR{}QNTWy|;#y!)juDCpckvzYUvQ&vPC&JBu~#wOFtx~fKtg?l=fZq2w`?ZF z1D<{kSm8hEIcYwyHIqQs^W|i3z|3q;d(fp~a#7p=Tj~sA+gZ*bwd>c^qjGeH9%PbH(<>+a}zJ3qU`!(^ctH z=y)g>u7nREeK0Z18Ej{q4mTa|#7`xt39X2GiF#rdX#i;nX+P;Ksf2Wzw1>2aG>}vX z)^wM+fG8vC2|EZafG^*SSKz z7rgLCg>Mtu4{t zqfMfmXd>c>7$bENR|JY?MLS0qM6X1h(H1}^)>vOaCn^&qiK67?WMjbG^-EW#=YbvE z2ju{wvl;RjX@$9qDaIbe#<3%CH*g7DNBm0s4Zw3o@N|NhP(a8d2naZW6aN)|2~3#l zhtI^<;7V}QaZ;Qadk#AeD+2c9FU&v;9rF#@gZu{UN;!NMo(VSt#M(FLI5Z1zb5vku zZU8ME2&Mq|0I9YoJti#&toxhPuGDbQA?!%rPp(P!O7fC5fS_CpNJ?n}PE^L9$Ir%h z#FqmaZEAc9;4zoPx5m%JU&c*f2480&l}Cw0qHA(r(wJspwqvJK7Me z&;#{>&%<%JA94(-Lu8ogfU7LSU_p1t0PHM4Q|`ka$DRhyQS2V<8t}?sYzr{;C5-un zxr*6<8Hs6t!GMV+SHaZ6!ALQZ0_@~fcmq5dZUO8H@Uzf$XcwRj2LhIt2gT4zz)7A* zw}O2fh&BPFVk}*eevv+vUI#eFu7E-(rtPV(fI&T&S_w3`PpWyUAjM8$0qg5Y+LGp^ z1xyt5CsRoZh!z^9dZ(tOHl|7d9qCJn(mm3P(&qqai9=hUGtlGcH?V_^pb3CfdXYG@w#?7>iXs5Mj{ke~vH2H3_J>Osw5l`25l{)0Y6?*jhv z9N-TRpgX}_!8Pb|KqAfo-)=HG9vuU?=8>RB zhg=XDE`mG2!vP_=2Fy788)#h#d=b6?rdA#V>stZOfQN$jr7#2dxe74b@+`Cong&SD zVnA%xpwGZJpNY0Z>1YKwb+gj-({4acPDzQuT$-)P_Q_!4T4EaL7I4NN#<$0(#rwrO z#@okx$0x^k#{Y?v5@Qo@5>1kKlI>IK)Z%nD*pu~8Did^{O{3fCCiY6gR;ZA&mj%yB@1egZQw z6M$h=0)lP?h(DI6G3l+q>a9W?84Lx^2WAAi z0-N4Fupsa_kR3b|>>Pr^<>BuUeG~$u{JNwj)dD>U5s-P9pI8Nc8R0&$isUCdDgRP; z(i+h3(glpsjJ1p{jCqW<3=e$=okib7vr^krw^2R=kJO2@40KW3@I@d_D#5xiEis!w z4~rCD0eu0)^>i@P$Dgd19G}=3zZv@sdH|guLW%{G0XRVNXZo6eJJ|uZ(bWfZt1Wi6 zb1Iyjog189=XTd`?yjCm-s`^Xz}?`?aEGWeUN6};Jrr7iY{wqMpCaxdPow73pE4S- zRiP@apmYVF-$0u{ZBNM|V@NJSC0>R5 zfi1=8kUDT`lPDggr5P!5G8s3;-bRl^CWP}s+Q3$S6QAC*#ofZ?bv(51wXL=8vOG02 z&AUx)O=43M(*_gG{L8Geux&f+ZJqhiE-Az-)X zHsJ>ZD>B~;Rig7*&BZ&!=fxYu^~C40oFcLaE3C>mDd@?s<<18ay;d?&`equ3T0-tj zvJej7d*krfkH{`~FqDCorw%3iBto%+(c;MUkRYWRN&ZK! zpPj=R#MnbqQ;NwOi4Oc|oC@^CAyJ-hj~G%-hA?&Dp`;)G9Yi z>gv_@s9sU^Ro|;3s4LTkHNR^}8lq;D2B#(KrkCgIn^qmK9&Q|KzG`dXig_);Xf!7^ z7~X=rO?pdv!1|L%&zz7oH>ZC7(ZXAjS<+9k&+-L|=ZZUE{?BFk1K9>Czj$fU>4FP+ zdvj)rTZ)j(FZ|=&#q8gied+zFyCD#B>Qy-25kpSv-y1zQl z0)nxX8C$2Wxo5ak`LM#K>!H<^T~OZx(hGu3x>Ck;o}rQ&Pl_3A3)2n*YR z^%MrCMqVW(&S+bMG zu_9Sv^L%M8K3gL?lQ~P!ipSu1nN@T>)k?;a>JcX5&S1=N187J$Rqw#W221H$)iU+>vMt)<<@Cxj zgRgeD8L}H)5nrS5=D00A0CSxXqKKJ7ZjE53=t}nSyjF#ON+wC|G8UM*&;`(9zSd{gKDx8p92HSV4i_c3(%V7P2BWWY9T$j~9fVZd;AhP%UXcc*b{ zV{NQSlg9PAzx?*R`p^Ctub!TF?sHDgeSNO?McFgSebEuY9A0M*j%8q+rmdmOB2OXy zj$ezP=dmn>k;g!DgeL;*ul?%~U>% z^OFBbv|8$xdz7oyFEwX?$zTMq7@PtIgBQSF5K^>|50VZNw--|RRh-kT+2!5oLMo~( zM=Sw9K}*bd)P95mSP7<=ZWeO6w%N()Ey>gIE3tF+yTfxseFEjaYVTS1pU$yW!|hY8 z$ILj>F~dUr4&WHLPc%jga=p&Dgg@ z7v&XWF1wmn626smmH(*ZsOM>B14F?7>;QT#Ps`I-RAZD^<#wr8Tq(T3U&8IhrZS!M zf2sS+{w8f8?8Du{cu-vANca(GpwyzcApdW+F3n7}NOWoF6m1fr)YS&A`~Ixy?cumm zRkik*Rb-iOf*W7z-|P6gJAfU|R36ct(vyrjQ^qpi{$2GPcTLTnz^d?}m?PObx3>gA zjKmxwJSw|EpUsML6+%2%Ngos^RYFZ0ZN0WHa6{y@!?lw&?bRQYO%)Smb0m{ReFQvS zE&DQa31cv=IYmh366N?#*k90lktR4FHW6~Mn8>%uP0t)i-AjCE_!NB>Ia9YXIK(fg z^?7c%HdQZhEV3Q41Wi91IR>J>r|vyqfGw53>W1hK8@@FSwcN4&QMJxh>s{-gST{R* zCXvgGElEm<3Kx!8hWd^eaV$>VZ0@d8Ta-oFJTvzqQviJJsz~rxgJi zLJARk1-E&tIRjYS@-Xc+>3#?~OAJgY@%sKCqIWRJPG!^z96$i9biwN_s$kMmb!4T(eCp1-7D=75B7hO`ZB5 zl~6fVzFE3WyhJ#hFXu*Bx6A*ckEix3YftJx=#QI@*^km881PZhud{{dpZmceV0rB~kZOXVLdJ%FM&9 z9{bDcoO^C@n!N{#}BUA*LRJ@e0 z&nh#6QZo{NHY|^oD*#n{KRX-Nim-=cG2cg#*%*^j>j*=9!6Ip$%w(Q zeGqT4qVQYpRK}RfB#3cJ3{_uO_cFN0KcTj`LHbIr#wZKdD`$ExrX<}C9bD}Jb2^b4CkKdOJPaqp3`YHp z_yA)<$CgeNLOFGIWO`Y0cl=0fU;XOvgixCR-1pAA$34~AzpAHwly#@MVBBMvrQfJa zf)#(KQl|6kNQQ03dFFqugB{;EmwT|j55d=wSVOz?&U^tf7I__8Pef7!jP2|^k0o+T zhRJ_ZD%Hz03$;wJk~&m;)H1YG&3n}#G zIt!(ei!!I;x=N$zq>XF)0pDLzJ5W1L(?tDPDOL=XO^}QbwH07_I`%>46h>#7h(aRc zhzxua>~QpYXvPT>YzKifyyS zZu-GkWfVC8lB4oB-Dv$e!${MwmQS{=RVQ4?n$!L@b-SYP6XNWOVgS|)y$%0> z{E)VR$>she7$t_v`YPJ1-l(&hH`)&1YR{}#1H9N9)Qwg96c$;7BrN(YILVvM>A=F4 zTWSANj*#~d594oOEoeNdCt@A!GlW|jUpSF-W+>@a$v*Lcv0nAf!o*OO|4i*{Z)bP8 zGv`QwJ;OofN5)?az4bGJx%v#SR)4Ld0AID)_{Pk&J#{>C;=zQ-)X?<${c&HqXW;_0 z3^fk7i*%g2tX#rb!rv(RR(eT(TRA~}QL|U80C&%36*qxz+O6KHq9{kn|CBBlPZf6K zQ@J+Q$?|#h0o2xI8d3$JBW?_41L_$91@8ylS*j|?^5e2Q(sz@Fcy-KH|1x|kv?$Qq zN2_tTFFChVt+Ma3zBM;8JvMC9p9DteE5OP{)xFVq^gkL~o2Odyc2_miv!ixMuuo)a z!=)5HKNDg=G{R0LuBOanNZH$Yw}qP|M0qo1QZ-65PKyCgBi(?>xv935CJW|Pta7Z3 zEh?Cwk&BS3vyc9(RU@Dk_2kkH+bE8wr7RLIEUk-Rg@%ydnSO-yh2EjlLB zwT>P1`L5I~^7M77s>>Y$TW`w&lf>xKyL1}e|7>jG%8j}W`hek->4~Mi9b2t-Z>s^u z(Qv2O!sMrH%hEo03f+M)zU)W3h;@uxC3q_yFFUMQs)B07TDP_*c)~+gOwz8l$;taid|9el4(vodf1DwJxe-8;%(N zGQYDv|wo@B^6hGh0WqO6J;cmmTaqx|?9?3aY!P zyQkL}lP0nCgne1{dAGFI5_lD^jj2-0ay6xI5yvsL1QaDrzrxb;eh_{oc_ND`o~T-B zdT2A+{=lad)ArGh0Fy`8l~hG{*MViP?S?BI>#Xjnk>Q z7yT5S6CCHu%C0(&exSi;beNmkYz~`K?Y-;!JG8a_VVszmR;YxwLaoN#CcU5@DeuhL z!#^n+Cw(G+rJSk$S94ga0oSI+6<4%=jaj`;1y}ZyPnXURe=ls#hj3r9wwF(!ccjY7 zz)gbC7}p=O7u-d2geC{t_#icJ+y|Y1R?W7r zvEDO_Og9bd^oMm2-KEMKmF2ohUA=y)v8Q>dl?LYQT6(V4&IwM9Y;Mq}n&o#va)?3L zO~g}_t&FbhOT0?q35i(VMG05`toc<-0LIj=6?Uy!TcHW7<|^OH(^41^#l7br}16}ZLoWmgoNR0NG$>(llI^MA04@nHI|pW3VJtyn7CDp@O< zB>0+#;e28qWXz%sq;w#+C3eOCfL(^Z2Dp#buqBX};N8f8++UfSDN`cY5RSSduj-Bl zXZt(WV!Q^|h3Z|7-L_j6n0cX5YvAe!=qkarNnbfy*G<39(A3n*veVYTYLx4mcaXoL zu5EN`;%-JzTnY1_n&HQiC(_z5-*7krj`)R?tDvgRs@ffymQ@J@1Ou-cas>3+&5@(bcSybFuOv_efsT!CdE-;~xD-sf=HuhV0b^WuNT z=GBi2cM4Ghj@pyn-`zc(+A6vIYwH5D$GE~UR=->q2IuoZWn*1dCpTO&?lZfrD;)Ek zcRf9Qlu%jySMil;XTBHoEV77gL+VY{lz(Ek;P(-crHkbom0i?3G;6g2aGY%`o@7(NGjzl1LK&9BQo zNY^G|2~q<-nhBdj7XyoZJ!&W(m-A88HTz@mW@LcLX*j39r7P3jsJvW>)ZNs*(6=$7 z&8@(sndp}q6s|Q3+(yK9tSpSn8y1>2S&Fu2Rd!d`8o&Qdog>OhPR)KOwt{a%+wjOTIQ=<_62YGSJi&!<+`KQCWpb+U}&-oEaYxG8!)xPG}o}Ym>I(oYtxNpkAU%C_2bTOUHUaRHV8COap+KY2ZVKX$ABSa?NfctGZ>^Zx7J;G9-9-agNI(M&U) zGc42Z(dEJO^1qc_omH39|6%;zyu+$>lsgA{bhSH!nB9Lmuiyop4=ymimQcp`0Ket*+OQR{)~F6 zY!7KS;Uw-UCW2BRC&JG{UGNMqK{_TxpZMpyg~LvaX`fc9Vj8~x4<=D(2mm1)O1ywlwT=k$d*awiG~Z*yaf9` zb3J1$trJB{RuY@x`(S6Gk0V`hC2Tt6RuNL@lKUfbD)lm9X|P8>MQ+w@36Aqu)FwPn zT>Gn6Io8_FSmLJXMzMjW{}wcpoC2*R6F?)$E<fLm7uxUCT*k;t8S`8nn&7p;CX~!u?6&r98`BxT~#DxWGO)$ z6};eW=lsZ0m*;3k$^-HZ;$8e_YyvGujYS-V1tBd7yBF`8aP*S@$`%IW3-Fd@VvP z>PN>6tQY0G=+mh~%6gJ|6Mn$`fjNPyLI~kMLob%npmk$m_F~$YjKvEv z@b)$QBD6m++1H|`=>F)uSoM$niq#7mHT0lO;|gffxCY*c;&k_QpY`31EOT$G&VIeR z);+G47bHiTG|Wo9%{7DUM1(O-h~HAaVnkRIcpHVkN`f-FvP#uQGgJ!&&&xe4{Gk8h z8}Qa)qtYWM%h(dM$PFg$7qNRV>EOx!UD-X-J;GaD5W_?dKyHKEK%>R{;?q1n*E_Q) z^-tnX!?Wna$i=#C!QcEnYWd*Xyr;U_k+4-**PFQ}k0GdU2R@|_z}Y;Y-(d(C_nS{! zNsgD*pWNcwD}jaKnX&cBd)Y#6rXRsVo{=Y1IlJTJEgPa`~TkyTaxlzx$VyzCVC24cZsu|3e6z$df=>;SknjV|2E z5wpY7JCZNr0bn@BM$mQnK*(pUdGC4SGJ$@gukHU>TUv6ays@M4rQwj_g`t~~W$JEz zV>xZJJAQJu^z^Ge5ojGwL`?}p##2Z_p{P98Lfitb_P?^`aytlai0qOJGL@o_lBQa% zIri7NYIG{ZSR&b=kA6_Bwc-u_M|wfzNpJFCixo^D)f`FUc)vQ_6o~i+NiG*F|e3 z7+DKBUa?8>SaC|xU2#zUuWYZhkL07MnQ$)uIQJ>r0w(keG&;3K*(lOhf*x>;tI!eT z1cVbd9_lYmFE-?7<$Rf;>6=MnVpzjA@UAgjR~Bj#7~q>*bJF8?edD|XoUtN1$JW<+ z*D~EQ*>cI!-Kw#T0eu8_s%@?w-iBI701_S$eGwm-hUc%9Cc+8mgE$ OX~?FH8z& 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 sound.id)); + const defaultSoundId = soundCatalog[0].id; + const defaultVolume = 5; + const handledEventsStorageKey = 'simplechat-handled-completion-audio-events'; + const completionBaselineStorageKey = 'simplechat-completion-audio-baseline-ready'; + const completionBaselineStartedAtStorageKey = 'simplechat-completion-audio-baseline-started-at'; + const completionPreferencesStorageKey = 'simplechat-completion-audio-preferences'; + const maxHandledEvents = 200; + const fallbackHandledEventKeysByUser = new Map(); + const fallbackBaselineUsers = new Set(); + let playbackQueue = Promise.resolve(); + let previewAudio = null; + + function getCurrentUserStorageSuffix() { + const currentUserId = String( + window.userContext?.id + || window.current_user_id + || 'anonymous' + ).trim(); + return encodeURIComponent(currentUserId || 'anonymous'); + } + + function getUserStorageKey(baseKey) { + return `${baseKey}:${getCurrentUserStorageSuffix()}`; + } + + function readStoredHandledEventKeys() { + try { + const parsedValue = JSON.parse( + localStorage.getItem(getUserStorageKey(handledEventsStorageKey)) || '[]' + ); + return Array.isArray(parsedValue) ? parsedValue : []; + } catch (error) { + console.warn('Unable to read completion audio event history:', error); + return fallbackHandledEventKeysByUser.get(getCurrentUserStorageSuffix()) || []; + } + } + + function writeStoredHandledEventKeys(eventKeys) { + const boundedKeys = eventKeys.slice(-maxHandledEvents); + fallbackHandledEventKeysByUser.set( + getCurrentUserStorageSuffix(), + boundedKeys + ); + try { + localStorage.setItem( + getUserStorageKey(handledEventsStorageKey), + JSON.stringify(boundedKeys) + ); + } catch (error) { + console.warn('Unable to persist completion audio event history:', error); + } + } + + function isBaselineReady() { + try { + return localStorage.getItem( + getUserStorageKey(completionBaselineStorageKey) + ) === 'true'; + } catch (error) { + console.warn('Unable to read completion audio baseline state:', error); + return fallbackBaselineUsers.has(getCurrentUserStorageSuffix()); + } + } + + function markBaselineReady() { + fallbackBaselineUsers.add(getCurrentUserStorageSuffix()); + try { + localStorage.setItem( + getUserStorageKey(completionBaselineStorageKey), + 'true' + ); + } catch (error) { + console.warn('Unable to persist completion audio baseline state:', error); + } + } + + function clearBaselineReady() { + fallbackBaselineUsers.delete(getCurrentUserStorageSuffix()); + try { + localStorage.removeItem(getUserStorageKey(completionBaselineStorageKey)); + localStorage.removeItem( + getUserStorageKey(completionBaselineStartedAtStorageKey) + ); + } catch (error) { + console.warn('Unable to clear completion audio baseline state:', error); + } + } + + function getBaselineStartedAt() { + try { + return localStorage.getItem( + getUserStorageKey(completionBaselineStartedAtStorageKey) + ); + } catch (error) { + console.warn('Unable to read completion audio baseline timestamp:', error); + return null; + } + } + + function startBaselineWindow(startedAt = null) { + if (getBaselineStartedAt()) { + return; + } + + const parsedStartedAt = Date.parse(String(startedAt || '')); + const normalizedStartedAt = Number.isFinite(parsedStartedAt) + ? new Date(parsedStartedAt).toISOString() + : new Date().toISOString(); + try { + localStorage.setItem( + getUserStorageKey(completionBaselineStartedAtStorageKey), + normalizedStartedAt + ); + } catch (error) { + console.warn('Unable to persist completion audio baseline timestamp:', error); + } + } + + function normalizeVolume(value) { + const parsedVolume = Number.parseInt(value, 10); + if (!Number.isInteger(parsedVolume)) { + return defaultVolume; + } + return Math.min(10, Math.max(1, parsedVolume)); + } + + function normalizeSoundId(value) { + const normalizedValue = String(value || '').trim().toLowerCase(); + return soundIds.has(normalizedValue) ? normalizedValue : defaultSoundId; + } + + function getPreferences() { + const userSettings = window.simplechatUserSettings || {}; + return { + adminEnabled: window.appSettings?.enable_chat_completion_audio_cues === true, + enabled: userSettings.chatCompletionAudioEnabled === true, + muted: userSettings.chatCompletionAudioMuted === true, + soundId: normalizeSoundId(userSettings.chatCompletionAudioSound), + volume: normalizeVolume(userSettings.chatCompletionAudioVolume), + }; + } + + function updatePreferences(preferences) { + window.simplechatUserSettings = { + ...(window.simplechatUserSettings || {}), + ...preferences, + }; + const normalizedPreferences = getPreferences(); + const synchronizedPreferences = { + chatCompletionAudioEnabled: normalizedPreferences.enabled, + chatCompletionAudioMuted: normalizedPreferences.muted, + chatCompletionAudioSound: normalizedPreferences.soundId, + chatCompletionAudioVolume: normalizedPreferences.volume, + }; + try { + localStorage.setItem( + getUserStorageKey(completionPreferencesStorageKey), + JSON.stringify(synchronizedPreferences) + ); + } catch (error) { + console.warn('Unable to synchronize completion audio preferences:', error); + } + } + + function setAdminEnabled(enabled, updatedAt = null) { + const wasEnabled = window.appSettings?.enable_chat_completion_audio_cues === true; + window.appSettings = { + ...(window.appSettings || {}), + enable_chat_completion_audio_cues: enabled === true, + chat_completion_audio_cues_updated_at: updatedAt || null, + }; + if (!enabled) { + clearBaselineReady(); + } else if (!wasEnabled) { + startBaselineWindow(updatedAt); + } else if (!isBaselineReady()) { + startBaselineWindow(); + } + } + + function refreshAdminEnabled() { + return fetch('/api/notifications/chat-completion-audio-status', { + headers: { + 'Accept': 'application/json', + }, + }) + .then(response => { + if (!response.ok) { + throw new Error(`Completion audio status returned HTTP ${response.status}.`); + } + return response.json(); + }) + .then(data => { + setAdminEnabled(data.enabled === true, data.updated_at); + return data.enabled === true; + }); + } + + function getEventMessageId(completionEvent) { + return String( + completionEvent?.messageId + || completionEvent?.message_id + || completionEvent?.metadata?.message_id + || '' + ).trim(); + } + + function getEventConversationId(completionEvent) { + return String( + completionEvent?.conversationId + || completionEvent?.conversation_id + || completionEvent?.metadata?.conversation_id + || completionEvent?.link_context?.conversation_id + || '' + ).trim(); + } + + function getCompletionEventKey(completionEvent) { + const messageId = getEventMessageId(completionEvent); + if (messageId) { + return `message:${messageId}`; + } + + const notificationId = String( + completionEvent?.notificationId + || completionEvent?.notification_id + || completionEvent?.id + || '' + ).trim(); + return notificationId ? `notification:${notificationId}` : ''; + } + + function rememberCompletionEvent(completionEvent) { + const eventKey = getCompletionEventKey(completionEvent); + if (!eventKey) { + return false; + } + + const handledEventKeys = readStoredHandledEventKeys(); + if (handledEventKeys.includes(eventKey)) { + return false; + } + + handledEventKeys.push(eventKey); + writeStoredHandledEventKeys(handledEventKeys); + return true; + } + + function shouldPlayCompletionEvent(completionEvent) { + const preferences = getPreferences(); + if ( + !preferences.adminEnabled + || !preferences.enabled + || preferences.muted + ) { + return false; + } + + const completedConversationId = getEventConversationId(completionEvent); + const activeConversationId = String(window.currentConversationId || '').trim(); + const documentInactive = document.visibilityState !== 'visible'; + const windowUnfocused = typeof document.hasFocus === 'function' + ? !document.hasFocus() + : false; + + return ( + documentInactive + || windowUnfocused + || !activeConversationId + || activeConversationId !== completedConversationId + ); + } + + function getSoundUrl(soundId) { + return `/static/audio/completion-cues/${normalizeSoundId(soundId)}.wav`; + } + + function playAudio(soundId, volume) { + return new Promise((resolve, reject) => { + const audio = new Audio(getSoundUrl(soundId)); + let settled = false; + const playbackTimeout = window.setTimeout(() => { + settle(resolve, false); + }, 3000); + + function settle(callback, value) { + if (settled) { + return; + } + settled = true; + window.clearTimeout(playbackTimeout); + callback(value); + } + + audio.volume = normalizeVolume(volume) / 10; + audio.addEventListener('ended', () => settle(resolve, true), { once: true }); + audio.addEventListener( + 'error', + () => settle(reject, new Error('Completion audio asset could not be played.')), + { once: true } + ); + + try { + const playResult = audio.play(); + if (playResult && typeof playResult.catch === 'function') { + playResult.catch(error => settle(reject, error)); + } + } catch (error) { + settle(reject, error); + } + }); + } + + function enqueueCompletionSound(preferences) { + playbackQueue = playbackQueue + .catch(() => undefined) + .then(() => playAudio(preferences.soundId, preferences.volume)) + .catch(error => { + console.warn('Completion audio playback was blocked or failed:', error); + }); + return playbackQueue; + } + + function handleClaimedCompletion(completionEvent) { + if (!shouldPlayCompletionEvent(completionEvent)) { + return Promise.resolve(false); + } + + return enqueueCompletionSound(getPreferences()).then(() => true); + } + + function handleCompletion(completionEvent, options = {}) { + const eventKey = getCompletionEventKey(completionEvent); + if (!eventKey) { + return Promise.resolve(false); + } + + const claimCompletion = () => { + if (options.refreshAdminGate === true) { + return refreshAdminEnabled() + .then(() => { + if (!rememberCompletionEvent(completionEvent)) { + return false; + } + return handleClaimedCompletion(completionEvent); + }) + .catch(error => { + console.warn( + 'Unable to verify completion audio admin status:', + error + ); + return false; + }); + } + if (!rememberCompletionEvent(completionEvent)) { + return false; + } + return handleClaimedCompletion(completionEvent); + }; + const lockManager = typeof navigator !== 'undefined' + ? navigator.locks + : null; + if (lockManager?.request) { + const lockName = [ + 'simplechat-completion-audio', + getCurrentUserStorageSuffix(), + eventKey, + ].join(':'); + return lockManager.request(lockName, claimCompletion); + } + + return Promise.resolve(claimCompletion()); + } + + function processPolledEvents(completionEvents) { + const normalizedEvents = Array.isArray(completionEvents) + ? completionEvents + : []; + + if (!isBaselineReady()) { + startBaselineWindow(); + const baselineStartedAt = Date.parse(getBaselineStartedAt() || ''); + const playbackResults = []; + const chronologicalEvents = [...normalizedEvents].reverse(); + return chronologicalEvents.reduce( + (chain, completionEvent) => chain.then(() => { + const completedAt = Date.parse( + String(completionEvent?.created_at || '') + ); + if ( + Number.isFinite(completedAt) + && Number.isFinite(baselineStartedAt) + && completedAt > baselineStartedAt + ) { + return handleCompletion(completionEvent).then(result => { + playbackResults.push(result); + }); + } + rememberCompletionEvent(completionEvent); + return undefined; + }), + Promise.resolve() + ).then(() => { + markBaselineReady(); + return playbackResults; + }); + } + + const playbackResults = []; + const chronologicalEvents = [...normalizedEvents].reverse(); + return chronologicalEvents.reduce( + (chain, completionEvent) => chain.then(() => ( + handleCompletion(completionEvent).then(result => { + playbackResults.push(result); + }) + )), + Promise.resolve() + ).then(() => playbackResults); + } + + function previewSound(soundId, volume) { + if (previewAudio) { + previewAudio.pause(); + previewAudio.currentTime = 0; + } + + previewAudio = new Audio(getSoundUrl(soundId)); + previewAudio.volume = normalizeVolume(volume) / 10; + try { + const playResult = previewAudio.play(); + return playResult && typeof playResult.catch === 'function' + ? playResult + : Promise.resolve(); + } catch (error) { + return Promise.reject(error); + } + } + + function resetTestState() { + fallbackHandledEventKeysByUser.delete(getCurrentUserStorageSuffix()); + fallbackBaselineUsers.delete(getCurrentUserStorageSuffix()); + try { + localStorage.removeItem(getUserStorageKey(handledEventsStorageKey)); + localStorage.removeItem(getUserStorageKey(completionBaselineStorageKey)); + localStorage.removeItem( + getUserStorageKey(completionBaselineStartedAtStorageKey) + ); + } catch (error) { + console.warn('Unable to reset completion audio test state:', error); + } + } + + function initializePreferenceSync() { + const initialPreferences = normalizeChatCompletionPreferences( + window.simplechatUserSettings || {} + ); + updatePreferences(initialPreferences); + window.addEventListener('storage', event => { + if ( + event.key !== getUserStorageKey(completionPreferencesStorageKey) + || !event.newValue + ) { + return; + } + try { + const preferences = JSON.parse(event.newValue); + window.simplechatUserSettings = { + ...(window.simplechatUserSettings || {}), + ...preferences, + }; + } catch (error) { + console.warn('Unable to apply synchronized completion audio preferences:', error); + } + }); + } + + function normalizeChatCompletionPreferences(settings) { + const source = settings || {}; + return { + chatCompletionAudioEnabled: source.chatCompletionAudioEnabled === true, + chatCompletionAudioMuted: source.chatCompletionAudioMuted === true, + chatCompletionAudioSound: normalizeSoundId( + source.chatCompletionAudioSound + ), + chatCompletionAudioVolume: normalizeVolume( + source.chatCompletionAudioVolume + ), + }; + } + + function updateProfileStatus(message, type = 'muted') { + const statusElement = document.getElementById('completion-audio-preference-status'); + if (!statusElement) { + return; + } + + const classMap = { + danger: 'text-danger', + info: 'text-info', + muted: 'text-muted', + success: 'text-success', + }; + statusElement.className = `preference-status small ${classMap[type] || classMap.muted}`; + statusElement.textContent = message; + } + + function initializeProfileControls() { + const enabledToggle = document.getElementById('completion-audio-enabled-toggle'); + const mutedToggle = document.getElementById('completion-audio-muted-toggle'); + const soundSelect = document.getElementById('completion-audio-sound-select'); + const volumeRange = document.getElementById('completion-audio-volume-range'); + const volumeValue = document.getElementById('completion-audio-volume-value'); + const previewButton = document.getElementById('preview-completion-audio-btn'); + const saveButton = document.getElementById('save-completion-audio-preferences-btn'); + if ( + !enabledToggle + || !mutedToggle + || !soundSelect + || !volumeRange + || !volumeValue + || !previewButton + || !saveButton + ) { + return; + } + + volumeRange.addEventListener('input', () => { + volumeValue.textContent = String(normalizeVolume(volumeRange.value)); + }); + + previewButton.addEventListener('click', () => { + previewButton.disabled = true; + updateProfileStatus('Playing the selected completion sound...', 'info'); + previewSound(soundSelect.value, volumeRange.value) + .then(() => { + updateProfileStatus('Preview played. Save to keep this selection.', 'success'); + }) + .catch(error => { + console.warn('Completion sound preview failed:', error); + updateProfileStatus( + 'The browser blocked the preview. Interact with the page and try again.', + 'danger' + ); + }) + .finally(() => { + previewButton.disabled = false; + }); + }); + + saveButton.addEventListener('click', () => { + const preferences = { + chatCompletionAudioEnabled: enabledToggle.checked, + chatCompletionAudioMuted: mutedToggle.checked, + chatCompletionAudioSound: normalizeSoundId(soundSelect.value), + chatCompletionAudioVolume: normalizeVolume(volumeRange.value), + }; + + saveButton.disabled = true; + updateProfileStatus('Saving your completion audio preferences...', 'info'); + fetch('/api/user/settings', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + settings: preferences, + }), + }) + .then(async response => { + if (!response.ok) { + const data = await response.json().catch(() => ({})); + throw new Error(data.error || 'Failed to save completion audio preferences.'); + } + return response.json(); + }) + .then(() => { + updatePreferences(preferences); + updateProfileStatus( + preferences.chatCompletionAudioEnabled + ? 'Completion audio preferences saved.' + : 'Completion audio remains off until you enable it here.', + 'success' + ); + if (typeof window.showToastMessage === 'function') { + window.showToastMessage('Completion audio preferences saved', 'success'); + } + }) + .catch(error => { + console.error('Error saving completion audio preferences:', error); + updateProfileStatus(error.message, 'danger'); + }) + .finally(() => { + saveButton.disabled = false; + }); + }); + + updateProfileStatus( + enabledToggle.checked + ? 'Completion cues are enabled for background responses.' + : 'Completion cues are off by default until you opt in.' + ); + } + + window.simpleChatCompletionAudio = { + catalog: soundCatalog.map(sound => ({ ...sound })), + getPreferences, + handleCompletion, + isPollingEnabled: () => { + const preferences = getPreferences(); + return preferences.adminEnabled; + }, + previewSound, + processPolledEvents, + resetTestState, + setAdminEnabled, + shouldPlayCompletionEvent, + updatePreferences, + }; + + initializePreferenceSync(); + if (getPreferences().adminEnabled && !isBaselineReady()) { + startBaselineWindow(); + } + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initializeProfileControls); + } else { + initializeProfileControls(); + } +})(); diff --git a/application/single_app/static/js/notifications.js b/application/single_app/static/js/notifications.js index 618d12555..ad0c00608 100644 --- a/application/single_app/static/js/notifications.js +++ b/application/single_app/static/js/notifications.js @@ -28,6 +28,7 @@ let activeWorkflowAlert = null; let activeWorkflowAlertTargets = []; let isLoadingWorkflowAlerts = false; + let isLoadingChatCompletionEvents = false; const shownWorkflowAlertsStorageKey = 'simplechat-shown-workflow-alerts'; const workflowAlertModalEl = document.getElementById('workflowAlertModal'); const workflowAlertModal = workflowAlertModalEl && window.bootstrap @@ -560,6 +561,44 @@ }); } + function loadChatCompletionEvents() { + const completionAudio = window.simpleChatCompletionAudio; + if ( + notificationPollingDisabled + || isLoadingChatCompletionEvents + || !completionAudio?.isPollingEnabled() + ) { + return Promise.resolve(); + } + + isLoadingChatCompletionEvents = true; + return fetch('/api/notifications/chat-completions?limit=50', { + headers: { + 'Accept': 'application/json', + }, + }) + .then(response => parseNotificationJsonResponse(response, 'chat completion events')) + .then(data => { + if (!data.success) { + return undefined; + } + completionAudio.setAdminEnabled( + data.enabled === true, + data.updated_at + ); + if (data.enabled !== true) { + return undefined; + } + return completionAudio.processPolledEvents(data.notifications || []); + }) + .catch(error => { + console.warn('Unable to process chat completion audio events:', error); + }) + .finally(() => { + isLoadingChatCompletionEvents = false; + }); + } + function fetchNotificationCount() { if (notificationPollingDisabled) { return Promise.resolve(); @@ -575,9 +614,15 @@ if (data.success) { consecutivePollFailures = 0; updateNotificationBadge(data.count); + window.simpleChatCompletionAudio?.setAdminEnabled( + data.chat_completion_audio_enabled === true, + data.chat_completion_audio_updated_at + ); + const followUpRequests = [loadChatCompletionEvents()]; if (data.count > 0) { - return loadWorkflowAlerts(); + followUpRequests.push(loadWorkflowAlerts()); } + return Promise.all(followUpRequests); } return undefined; }) @@ -679,6 +724,7 @@ stopPolling: disableNotificationPolling, isPollingDisabled: () => notificationPollingDisabled, refreshCount: fetchNotificationCount, + refreshCompletionEvents: loadChatCompletionEvents, }; /** diff --git a/application/single_app/templates/admin_settings.html b/application/single_app/templates/admin_settings.html index 4f2c9a9cf..fe19b5b00 100644 --- a/application/single_app/templates/admin_settings.html +++ b/application/single_app/templates/admin_settings.html @@ -11142,6 +11142,26 @@

+ +
+
+ + +
+

+ Let users opt in to a bundled sound when an AI response finishes outside their active view. + These local cues do not require Azure Speech Service. +

+
+
One Speech resource, three features: Audio file uploads, Voice Input, and Voice Responses all use the same Azure Speech Service section below. Configure the Speech resource once, then turn on whichever speech features you need. diff --git a/application/single_app/templates/base.html b/application/single_app/templates/base.html index c0763a29f..e93f01ce4 100644 --- a/application/single_app/templates/base.html +++ b/application/single_app/templates/base.html @@ -715,8 +715,9 @@
Appearance Preferenc >
+ {% if app_settings.enable_chat_completion_audio_cues %} + {% set completion_audio_enabled = user_settings.get('settings', {}).get('chatCompletionAudioEnabled', false) %} + {% set completion_audio_muted = user_settings.get('settings', {}).get('chatCompletionAudioMuted', false) %} + {% set completion_audio_sound = user_settings.get('settings', {}).get('chatCompletionAudioSound', 'aurora') %} + {% set completion_audio_volume = user_settings.get('settings', {}).get('chatCompletionAudioVolume', 5) %} +
+
+
+ +
+
AI Response Completion Audio
+

Choose an optional sound for responses that finish outside your active view.

+

+ Cues stay silent when you are already viewing the completed conversation. Browser audio policies may require an interaction with SimpleChat before background audio can play. +

+
+
+
+ +
+
+
+ + +
+
+ + +
+
+
+ +
+ + +
+
+
+ + +
+
+ +
+
+ +
+
+ {% endif %} + {% set sidebar_toggle_style = user_settings.get('settings', {}).get('sidebarToggleStyle', 'large') %} {% set latest_features_hidden_version = user_settings.get('settings', {}).get('latestFeaturesHiddenVersion') %} {% set latest_features_hidden_for_current_version = latest_features_hidden_version == config['VERSION'] %} diff --git a/docs/explanation/features/AI_RESPONSE_COMPLETION_AUDIO_CUES.md b/docs/explanation/features/AI_RESPONSE_COMPLETION_AUDIO_CUES.md new file mode 100644 index 000000000..796f514cf --- /dev/null +++ b/docs/explanation/features/AI_RESPONSE_COMPLETION_AUDIO_CUES.md @@ -0,0 +1,131 @@ +# AI Response Completion Audio Cues + +## Overview + +AI response completion audio cues notify users when a personal-chat response +finishes outside the conversation they are actively viewing. Administrators +control whether the capability is available, and each user explicitly opts in +and chooses a local sound and volume. + +**Implemented in version: 0.250.102** + +## Dependencies + +- Existing personal-chat `chat_response_complete` notifications +- Shared notification polling in `static/js/notifications.js` +- Successful chat stream finalization in `static/js/chat/chat-streaming.js` +- User settings persistence through `/api/user/settings` +- Ten bundled WAV assets under `static/audio/completion-cues/` + +## Technical Specifications + +### Architecture + +The backend continues to create a `chat_response_complete` notification only +after a personal AI response is successfully persisted. A focused authenticated +endpoint returns recent completion event identities for the signed-in user. +The browser establishes a silent initial baseline, then handles only newly +observed message or notification IDs. + +Successful live streams also send their completion identity directly to the +same browser manager. This provides an immediate cue in the originating tab, +while notification polling recovers completions that finish after navigation, +reload, or loss of the original stream connection. + +Handled identities are kept in bounded, per-user `localStorage`, with the Web +Locks API coordinating claims across tabs when available. An event is marked +handled even when audio is muted, disabled, suppressed in the foreground, or +blocked by the browser. This prevents historical unread notifications, repeated +polls, reloads, duplicate tabs, and duplicate live/polled events from replaying +a cue. + +Saved enable, mute, sound, and volume preferences are also synchronized through +per-user browser storage so existing tabs apply profile changes immediately. + +### Playback Rules + +A newly completed response plays once when either condition is true: + +- Its conversation is not the conversation currently selected in Chat. +- The SimpleChat document is hidden or the browser window is unfocused. + +No cue plays when the completed conversation is selected and the page is both +visible and focused. Failed, cancelled, and interrupted streams do not reach the +successful completion hook and therefore do not play a cue. + +### Configuration + +The admin setting is: + +- `enable_chat_completion_audio_cues` (default: `false`) + +Notification count responses and live-stream completion checks refresh this +gate from the server. Open pages therefore stop playing promptly after an +administrator disables the capability. Disabling also clears the browser's completion baseline. The server records the +admin transition timestamp, so the next poll after re-enable suppresses events +from the disabled period while retaining responses completed after activation. + +The per-user settings are: + +- `chatCompletionAudioEnabled` (default: `false`) +- `chatCompletionAudioMuted` (default: `false`) +- `chatCompletionAudioSound` (default: `aurora`) +- `chatCompletionAudioVolume` (integer `1..10`, default: `5`) + +The available sounds are Aurora, Bell, Bloom, Chime, Crystal, Glimmer, Marimba, +Pulse, Spark, and Summit. All ten WAV files were synthesized specifically for +SimpleChat, contain no third-party samples, and are served only from the local +SimpleChat static asset path. + +### API + +`GET /api/notifications/chat-completions?limit=50` + +Returns recent personal `chat_response_complete` event identities for the +authenticated user. Read events are included because an active conversation +can be marked read while its browser document is hidden or unfocused. + +`GET /api/notifications/chat-completion-audio-status` + +Returns the current server-authoritative admin gate for successful live-stream +completion checks. + +## Usage Instructions + +### Enable the Capability + +1. Open **Admin Settings**. +2. Go to the AI voice and audio section. +3. Turn on **Enable AI Response Completion Audio Cues**. +4. Save Admin Settings. + +### Configure a User Preference + +1. Open **Profile** and select the **Settings** tab. +2. In **AI Response Completion Audio**, turn on **Play completion cues**. +3. Choose one of the ten sounds and use **Preview** to audition it. +4. Set volume from `1` to `10`. +5. Optionally mute cues without losing the selected sound or volume. +6. Select **Save Audio Preferences**. + +## Testing and Validation + +- `functional_tests/test_chat_completion_audio_cues.py` validates settings, + assets, route/runtime wiring, foreground suppression, hidden playback, + volume mapping, concurrency, and deduplication. +- `ui_tests/test_profile_completion_audio_cues.py` validates admin gating, + profile persistence, sound preview, and browser playback behavior. +- Route policy tests cover authentication and Blueprint policy for the new API. + +## Browser Limitations + +Browsers can block programmatic audio until the user has interacted with the +site, and some operating systems or browser profiles suppress background sound. +SimpleChat catches these failures without interrupting chat or notification +polling. A blocked event is not retried automatically, which avoids delayed or +duplicate sounds. + +The browser records a baseline timestamp when the feature becomes active. +Events completed before that timestamp are treated as historical, while a +response that finishes between activation/page load and the first poll remains +eligible for one cue. diff --git a/functional_tests/test_chat_completion_audio_cues.py b/functional_tests/test_chat_completion_audio_cues.py new file mode 100644 index 000000000..b889daed2 --- /dev/null +++ b/functional_tests/test_chat_completion_audio_cues.py @@ -0,0 +1,384 @@ +# test_chat_completion_audio_cues.py +""" +Functional test for configurable AI response completion audio cues. +Version: 0.250.102 +Implemented in: 0.250.102 + +This test validates local assets, settings and route wiring, and executable +browser behavior for foreground suppression, background playback, volume +mapping, concurrent completions, and duplicate prevention. +""" + +import json +import hashlib +import subprocess +import sys +import wave +from pathlib import Path + + +ROOT_DIR = Path(__file__).resolve().parents[1] +APP_DIR = ROOT_DIR / "application" / "single_app" +AUDIO_DIR = APP_DIR / "static" / "audio" / "completion-cues" +RUNTIME_JS = APP_DIR / "static" / "js" / "completion-audio-cues.js" +NOTIFICATIONS_JS = APP_DIR / "static" / "js" / "notifications.js" +STREAMING_JS = APP_DIR / "static" / "js" / "chat" / "chat-streaming.js" +SETTINGS_PY = APP_DIR / "functions_settings.py" +USERS_ROUTE_PY = APP_DIR / "route_backend_users.py" +NOTIFICATIONS_ROUTE_PY = APP_DIR / "route_backend_notifications.py" +ADMIN_ROUTE_PY = APP_DIR / "route_frontend_admin_settings.py" +ADMIN_TEMPLATE = APP_DIR / "templates" / "admin_settings.html" +PROFILE_TEMPLATE = APP_DIR / "templates" / "profile.html" +BASE_TEMPLATE = APP_DIR / "templates" / "base.html" +CHATS_TEMPLATE = APP_DIR / "templates" / "chats.html" + + +EXPECTED_SOUND_IDS = [ + "aurora", + "bell", + "bloom", + "chime", + "crystal", + "glimmer", + "marimba", + "pulse", + "spark", + "summit", +] + + +def read_text(path): + """Read a UTF-8 source file.""" + return path.read_text(encoding="utf-8") + + +def test_local_audio_assets(): + """Validate exactly ten readable, non-empty, locally bundled WAV cues.""" + wav_files = sorted(AUDIO_DIR.glob("*.wav")) + assert [path.stem for path in wav_files] == EXPECTED_SOUND_IDS + assert (AUDIO_DIR / "LICENSE.txt").exists() + + asset_hashes = set() + for wav_path in wav_files: + asset_hashes.add(hashlib.sha256(wav_path.read_bytes()).hexdigest()) + with wave.open(str(wav_path), "rb") as cue: + assert cue.getnchannels() == 1 + assert cue.getsampwidth() == 2 + assert cue.getframerate() == 44100 + assert cue.getnframes() > 0 + assert len(asset_hashes) == len(EXPECTED_SOUND_IDS) + + +def test_settings_and_ui_contracts(): + """Validate admin gating and normalized user preference persistence wiring.""" + settings_source = read_text(SETTINGS_PY) + users_route_source = read_text(USERS_ROUTE_PY) + notifications_route_source = read_text(NOTIFICATIONS_ROUTE_PY) + admin_route_source = read_text(ADMIN_ROUTE_PY) + admin_template_source = read_text(ADMIN_TEMPLATE) + profile_template_source = read_text(PROFILE_TEMPLATE) + base_template_source = read_text(BASE_TEMPLATE) + chats_template_source = read_text(CHATS_TEMPLATE) + + assert "'enable_chat_completion_audio_cues': False" in settings_source + assert '"chatCompletionAudioEnabled": source.get("chatCompletionAudioEnabled") is True' in settings_source + assert '"chatCompletionAudioMuted": source.get("chatCompletionAudioMuted") is True' in settings_source + assert "DEFAULT_CHAT_COMPLETION_AUDIO_VOLUME = 5" in settings_source + assert "min(10, max(1, volume))" in settings_source + assert "CHAT_COMPLETION_AUDIO_SOUND_IDS" in users_route_source + assert "Completion audio volume must be between 1 and 10" in users_route_source + + assert "enable_chat_completion_audio_cues" in admin_route_source + assert 'id="enable_chat_completion_audio_cues"' in admin_template_source + assert "{% if app_settings.enable_chat_completion_audio_cues %}" in profile_template_source + assert 'id="completion-audio-enabled-toggle"' in profile_template_source + assert 'id="completion-audio-muted-toggle"' in profile_template_source + assert 'id="completion-audio-sound-select"' in profile_template_source + assert 'id="completion-audio-volume-range"' in profile_template_source + assert "completion-audio-cues.js" in base_template_source + assert "...(window.appSettings || {})" in chats_template_source + + assert '@bp.route("/api/notifications/chat-completions", methods=["GET"])' in notifications_route_source + assert '@bp.route("/api/notifications/chat-completion-audio-status", methods=["GET"])' in notifications_route_source + assert "@swagger_route(security=get_auth_security())" in notifications_route_source + assert "get_recent_chat_response_notifications" in notifications_route_source + assert "'chat_completion_audio_enabled': completion_audio_enabled" in notifications_route_source + assert "getUserStorageKey(handledEventsStorageKey)" in read_text(RUNTIME_JS) + assert "navigator.locks" in read_text(RUNTIME_JS) + + +def test_completion_event_wiring(): + """Validate polling and successful-stream hooks share the audio manager.""" + notifications_source = read_text(NOTIFICATIONS_JS) + streaming_source = read_text(STREAMING_JS) + + assert "/api/notifications/chat-completions?limit=50" in notifications_source + assert "completionAudio.processPolledEvents" in notifications_source + assert "refreshCompletionEvents: loadChatCompletionEvents" in notifications_source + assert "function notifySuccessfulStreamingCompletion(finalData)" in streaming_source + assert "window.simpleChatCompletionAudio.handleCompletion" in streaming_source + assert "refreshAdminGate: true" in streaming_source + assert streaming_source.count("notifySuccessfulStreamingCompletion(finalData);") == 1 + finalize_source = streaming_source.split( + "function finalizeStreamingMessage(", + maxsplit=1, + )[1] + assert ( + finalize_source.index("notifySuccessfulStreamingCompletion(finalData);") + < finalize_source.index("if (!messageElement) return;") + ) + + +def test_browser_runtime_behavior(): + """Execute the browser manager in Node with deterministic DOM and Audio fakes.""" + node_harness = r""" +const fs = require('fs'); +const source = fs.readFileSync(process.argv[1], 'utf8'); +const storage = new Map(); +const playedAudio = []; + +global.localStorage = { + getItem: key => storage.has(key) ? storage.get(key) : null, + setItem: (key, value) => storage.set(key, String(value)), + removeItem: key => storage.delete(key), +}; +global.navigator = { + locks: { + request: async (_name, callback) => callback(), + }, +}; +global.document = { + readyState: 'complete', + visibilityState: 'visible', + hasFocus: () => true, + getElementById: () => null, + addEventListener: () => undefined, +}; +global.window = { + appSettings: { enable_chat_completion_audio_cues: true }, + simplechatUserSettings: { + chatCompletionAudioEnabled: true, + chatCompletionAudioMuted: false, + chatCompletionAudioSound: 'aurora', + chatCompletionAudioVolume: 7, + }, + currentConversationId: 'active-conversation', + setTimeout, + clearTimeout, + addEventListener: () => undefined, +}; +global.Audio = class FakeAudio { + constructor(url) { + this.url = url; + this.volume = 1; + this.listeners = {}; + } + addEventListener(name, callback) { + this.listeners[name] = callback; + } + pause() {} + play() { + playedAudio.push({ url: this.url, volume: this.volume }); + queueMicrotask(() => { + if (this.listeners.ended) { + this.listeners.ended(); + } + }); + return Promise.resolve(); + } +}; +global.fetch = async () => { + throw new Error('simulated status failure'); +}; + +eval(source); +const manager = window.simpleChatCompletionAudio; + +async function run() { + manager.resetTestState(); + const futureCompletion = new Date(Date.now() + 1000).toISOString(); + await manager.processPolledEvents([ + { + id: 'fresh-before-first-poll', + created_at: futureCompletion, + metadata: { + message_id: 'fresh-before-first-poll', + conversation_id: 'other' + } + }, + ]); + const freshFirstPollCount = playedAudio.length; + playedAudio.splice(0, playedAudio.length); + + manager.resetTestState(); + await manager.processPolledEvents([ + { id: 'historical', metadata: { message_id: 'old', conversation_id: 'other' } }, + ]); + const afterBaseline = playedAudio.length; + + const foregroundResult = await manager.handleCompletion({ + messageId: 'foreground', + conversationId: 'active-conversation', + }); + const afterForeground = playedAudio.length; + + const backgroundResult = await manager.handleCompletion({ + messageId: 'background', + conversationId: 'other-conversation', + }); + const afterBackground = playedAudio.length; + await manager.handleCompletion({ + messageId: 'background', + conversationId: 'other-conversation', + }); + const afterDuplicate = playedAudio.length; + + document.visibilityState = 'hidden'; + const hiddenResult = await manager.handleCompletion({ + messageId: 'hidden-active', + conversationId: 'active-conversation', + }); + const afterHidden = playedAudio.length; + + document.visibilityState = 'visible'; + document.hasFocus = () => false; + const unfocusedResult = await manager.handleCompletion({ + messageId: 'unfocused-active', + conversationId: 'active-conversation', + }); + const afterUnfocused = playedAudio.length; + + document.hasFocus = () => true; + manager.updatePreferences({ chatCompletionAudioMuted: true }); + await manager.handleCompletion({ + messageId: 'muted', + conversationId: 'other-conversation', + }); + const afterMuted = playedAudio.length; + + manager.updatePreferences({ chatCompletionAudioMuted: false }); + await manager.processPolledEvents([ + { id: 'second', metadata: { message_id: 'concurrent-2', conversation_id: 'two' } }, + { id: 'first', metadata: { message_id: 'concurrent-1', conversation_id: 'one' } }, + ]); + const afterConcurrent = playedAudio.length; + + manager.setAdminEnabled(false); + await manager.handleCompletion({ + messageId: 'disabled-period-claimed', + conversationId: 'other-conversation', + }); + const afterAdminDisabled = playedAudio.length; + + manager.setAdminEnabled(true); + await manager.processPolledEvents([ + { + id: 'disabled-period-event', + metadata: { + message_id: 'disabled-period-unseen', + conversation_id: 'other-conversation' + } + }, + ]); + const afterReenableBaseline = playedAudio.length; + await manager.handleCompletion({ + messageId: 'post-reenable', + conversationId: 'other-conversation', + }); + const afterPostReenable = playedAudio.length; + + const failedRefreshResult = await manager.handleCompletion({ + messageId: 'status-retry', + conversationId: 'other-conversation', + }, { + refreshAdminGate: true, + }); + const afterFailedRefresh = playedAudio.length; + await manager.handleCompletion({ + messageId: 'status-retry', + conversationId: 'other-conversation', + }); + const afterStatusRetry = playedAudio.length; + + console.log(JSON.stringify({ + afterBaseline, + freshFirstPollCount, + foregroundResult, + afterForeground, + backgroundResult, + afterBackground, + afterDuplicate, + hiddenResult, + afterHidden, + unfocusedResult, + afterUnfocused, + afterMuted, + afterConcurrent, + afterAdminDisabled, + afterReenableBaseline, + afterPostReenable, + failedRefreshResult, + afterFailedRefresh, + afterStatusRetry, + volumes: playedAudio.map(item => item.volume), + urls: playedAudio.map(item => item.url), + })); +} + +run().catch(error => { + console.error(error); + process.exit(1); +}); +""" + result = subprocess.run( + ["node", "-e", node_harness, str(RUNTIME_JS)], + check=True, + capture_output=True, + text=True, + ) + runtime_result = json.loads(result.stdout.strip().splitlines()[-1]) + + assert runtime_result["freshFirstPollCount"] == 1 + assert runtime_result["afterBaseline"] == 0 + assert runtime_result["foregroundResult"] is False + assert runtime_result["afterForeground"] == 0 + assert runtime_result["backgroundResult"] is True + assert runtime_result["afterBackground"] == 1 + assert runtime_result["afterDuplicate"] == 1 + assert runtime_result["hiddenResult"] is True + assert runtime_result["afterHidden"] == 2 + assert runtime_result["unfocusedResult"] is True + assert runtime_result["afterUnfocused"] == 3 + assert runtime_result["afterMuted"] == 3 + assert runtime_result["afterConcurrent"] == 5 + assert runtime_result["afterAdminDisabled"] == 5 + assert runtime_result["afterReenableBaseline"] == 5 + assert runtime_result["afterPostReenable"] == 6 + assert runtime_result["failedRefreshResult"] is False + assert runtime_result["afterFailedRefresh"] == 6 + assert runtime_result["afterStatusRetry"] == 7 + assert runtime_result["volumes"] == [0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7] + assert all(url.startswith("/static/audio/completion-cues/") for url in runtime_result["urls"]) + + +def main(): + """Run all completion audio functional checks.""" + tests = [ + test_local_audio_assets, + test_settings_and_ui_contracts, + test_completion_event_wiring, + test_browser_runtime_behavior, + ] + for test in tests: + test() + print(f"Passed: {test.__name__}") + return True + + +if __name__ == "__main__": + try: + success = main() + except Exception as error: + print(f"Failed: {error}") + raise + sys.exit(0 if success else 1) diff --git a/ui_tests/test_profile_completion_audio_cues.py b/ui_tests/test_profile_completion_audio_cues.py new file mode 100644 index 000000000..0c068be00 --- /dev/null +++ b/ui_tests/test_profile_completion_audio_cues.py @@ -0,0 +1,206 @@ +# test_profile_completion_audio_cues.py +""" +UI test for configurable AI response completion audio cues. +Version: 0.250.102 +Implemented in: 0.250.102 + +This test verifies admin gating, profile persistence and preview controls, plus +foreground suppression and duplicate-free background playback. +""" + +import os +from pathlib import Path + +import pytest +from playwright.sync_api import expect + + +BASE_URL = os.getenv("SIMPLECHAT_UI_BASE_URL", "").rstrip("/") +STORAGE_STATE = os.getenv("SIMPLECHAT_UI_STORAGE_STATE", "") +ADMIN_STORAGE_STATE = os.getenv("SIMPLECHAT_UI_ADMIN_STORAGE_STATE", "") + + +def get_storage_state_path(): + """Return an available authenticated storage state path.""" + for candidate in (STORAGE_STATE, ADMIN_STORAGE_STATE): + if candidate and Path(candidate).exists(): + return candidate + pytest.skip( + "Set SIMPLECHAT_UI_STORAGE_STATE or SIMPLECHAT_UI_ADMIN_STORAGE_STATE " + "to a valid authenticated Playwright storage state file." + ) + + +def get_user_settings(page): + """Fetch current user settings through the authenticated browser context.""" + return page.evaluate( + """ + async () => { + const response = await fetch('/api/user/settings'); + const data = await response.json(); + return data.settings || {}; + } + """ + ) + + +def set_user_settings(page, settings): + """Persist selected user settings through the normal API.""" + return page.evaluate( + """ + async (nextSettings) => { + const response = await fetch('/api/user/settings', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ settings: nextSettings }) + }); + return response.ok; + } + """, + settings, + ) + + +@pytest.mark.ui +def test_profile_completion_audio_preferences_and_runtime(playwright): + """Validate the admin gate, saved controls, preview, and playback rules.""" + if not BASE_URL: + pytest.skip("Set SIMPLECHAT_UI_BASE_URL to run this UI test.") + + browser = playwright.chromium.launch() + context = browser.new_context( + storage_state=get_storage_state_path(), + viewport={"width": 1440, "height": 900}, + ) + page = context.new_page() + original_settings = None + + page.add_init_script( + """ + window.__completionAudioPlays = []; + window.Audio = class FakeAudio { + constructor(url) { + this.url = url; + this.volume = 1; + this.listeners = {}; + this.currentTime = 0; + } + addEventListener(name, callback) { + this.listeners[name] = callback; + } + pause() {} + play() { + window.__completionAudioPlays.push({ + url: this.url, + volume: this.volume + }); + queueMicrotask(() => this.listeners.ended?.()); + return Promise.resolve(); + } + }; + """ + ) + + try: + response = page.goto( + f"{BASE_URL}/profile?tab=settings", + wait_until="domcontentloaded", + ) + assert response is not None and response.ok + + admin_enabled = page.evaluate( + "window.appSettings?.enable_chat_completion_audio_cues === true" + ) + controls = page.locator("#completion-audio-preferences") + if not admin_enabled: + expect(controls).to_have_count(0) + return + + expect(controls).to_be_visible() + expect(page.locator("#completion-audio-sound-select option")).to_have_count(10) + original_settings = get_user_settings(page) + + page.locator("#completion-audio-enabled-toggle").check() + page.locator("#completion-audio-muted-toggle").uncheck() + page.locator("#completion-audio-sound-select").select_option("spark") + page.locator("#completion-audio-volume-range").fill("8") + expect(page.locator("#completion-audio-volume-value")).to_have_text("8") + + page.locator("#preview-completion-audio-btn").click() + expect(page.locator("#completion-audio-preference-status")).to_contain_text( + "Preview played" + ) + preview = page.evaluate("window.__completionAudioPlays.at(-1)") + assert preview["url"].endswith("/spark.wav") + assert preview["volume"] == 0.8 + + page.locator("#save-completion-audio-preferences-btn").click() + expect(page.locator("#completion-audio-preference-status")).to_contain_text( + "preferences saved" + ) + page.reload(wait_until="domcontentloaded") + expect(page.locator("#completion-audio-enabled-toggle")).to_be_checked() + expect(page.locator("#completion-audio-muted-toggle")).not_to_be_checked() + expect(page.locator("#completion-audio-sound-select")).to_have_value("spark") + expect(page.locator("#completion-audio-volume-range")).to_have_value("8") + + runtime_result = page.evaluate( + """ + async () => { + const manager = window.simpleChatCompletionAudio; + manager.resetTestState(); + window.__completionAudioPlays = []; + window.currentConversationId = 'active-conversation'; + + await manager.processPolledEvents([{ + id: 'baseline', + metadata: { + message_id: 'baseline-message', + conversation_id: 'other-conversation' + } + }]); + await manager.handleCompletion({ + messageId: 'foreground-message', + conversationId: 'active-conversation' + }); + await manager.handleCompletion({ + messageId: 'background-message', + conversationId: 'other-conversation' + }); + await manager.handleCompletion({ + messageId: 'background-message', + conversationId: 'other-conversation' + }); + + return window.__completionAudioPlays; + } + """ + ) + assert len(runtime_result) == 1 + assert runtime_result[0]["url"].endswith("/spark.wav") + assert runtime_result[0]["volume"] == 0.8 + finally: + if original_settings is not None: + set_user_settings( + page, + { + "chatCompletionAudioEnabled": original_settings.get( + "chatCompletionAudioEnabled", + False, + ), + "chatCompletionAudioMuted": original_settings.get( + "chatCompletionAudioMuted", + False, + ), + "chatCompletionAudioSound": original_settings.get( + "chatCompletionAudioSound", + "aurora", + ), + "chatCompletionAudioVolume": original_settings.get( + "chatCompletionAudioVolume", + 5, + ), + }, + ) + context.close() + browser.close() From 44cdf86e2d254816914b1f9bf8c77e5e7e731b29 Mon Sep 17 00:00:00 2001 From: Paul Lizer Date: Thu, 30 Jul 2026 16:46:36 -0400 Subject: [PATCH 2/3] Document completion audio cues Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- docs/explanation/release_notes.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/explanation/release_notes.md b/docs/explanation/release_notes.md index 284138567..0fb0efb34 100644 --- a/docs/explanation/release_notes.md +++ b/docs/explanation/release_notes.md @@ -2,6 +2,15 @@ For feature-focused and fix-focused drill-downs by version, see [Features by Version](/explanation/features/) and [Fixes by Version](/explanation/fixes/). +### **(v0.250.103)** + +#### New Features + +* **Configurable AI Response Completion Audio Cues** + * Administrators can enable locally bundled completion sounds, while each user can opt in, choose and preview one of ten cues, set volume, or mute cues without losing their preferences. + * Cues play once for newly completed personal-chat responses outside the active visible conversation, with server-authoritative gating, cross-tab preference synchronization, and historical/duplicate suppression. + * (Ref: Closes #1062, `completion-audio-cues.js`, notification polling, Profile and Admin Settings, `AI_RESPONSE_COMPLETION_AUDIO_CUES.md`) + ### **(v0.250.102)** #### New Features From 6f3aa8523560e18a1793d7abd3095a85a718c9de Mon Sep 17 00:00:00 2001 From: Paul Lizer Date: Thu, 30 Jul 2026 17:08:15 -0400 Subject: [PATCH 3/3] Potential fix for pull request finding 'CodeQL / Explicit returns mixed with implicit (fall through) returns' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- ui_tests/test_profile_completion_audio_cues.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ui_tests/test_profile_completion_audio_cues.py b/ui_tests/test_profile_completion_audio_cues.py index d9582b5f2..c5c03b967 100644 --- a/ui_tests/test_profile_completion_audio_cues.py +++ b/ui_tests/test_profile_completion_audio_cues.py @@ -29,6 +29,7 @@ def get_storage_state_path(): "Set SIMPLECHAT_UI_STORAGE_STATE or SIMPLECHAT_UI_ADMIN_STORAGE_STATE " "to a valid authenticated Playwright storage state file." ) + return None def get_user_settings(page):