3131 load_configured_strategy_plugin_signals ,
3232 parse_strategy_plugin_mounts ,
3333)
34- from quant_platform_kit .notifications .strategy_plugin_email import (
35- StrategyPluginEmailAlertMarkerStore ,
36- build_strategy_plugin_alert_context_label as build_email_alert_context_label ,
37- publish_strategy_plugin_email_alerts ,
38- )
39- from quant_platform_kit .notifications .strategy_plugin_sms import (
40- StrategyPluginSmsAlertMarkerStore ,
41- publish_strategy_plugin_sms_alerts ,
34+ from quant_platform_kit .notifications .strategy_plugin_alerts import (
35+ StrategyPluginAlertStateSettings ,
36+ build_strategy_plugin_alert_context_label as build_alert_context_label ,
37+ publish_strategy_plugin_alerts as dispatch_strategy_plugin_alerts ,
4238)
4339from quant_platform_kit .strategy_contracts import build_strategy_evaluation_inputs
4440from runtime_logging import build_run_id , emit_runtime_log
@@ -221,24 +217,14 @@ def build_strategy_plugin_alert_messages(signals):
221217 return STRATEGY_ADAPTERS .build_strategy_plugin_alert_messages (signals )
222218
223219
224- def build_strategy_plugin_alert_store ():
225- return StrategyPluginEmailAlertMarkerStore (
226- local_dir = os .getenv ("STRATEGY_PLUGIN_ALERT_STATE_DIR" ) or "/tmp/quant_strategy_plugin_alerts" ,
227- gcs_prefix_uri = os .getenv ("STRATEGY_PLUGIN_ALERT_STATE_GCS_URI" ) or os .getenv ("EXECUTION_REPORT_GCS_URI" ),
228- gcp_project_id = PROJECT_ID ,
229- )
230-
231-
232- def build_strategy_plugin_sms_alert_store ():
233- return StrategyPluginSmsAlertMarkerStore (
234- local_dir = os .getenv ("STRATEGY_PLUGIN_ALERT_STATE_DIR" ) or "/tmp/quant_strategy_plugin_alerts" ,
235- gcs_prefix_uri = os .getenv ("STRATEGY_PLUGIN_ALERT_STATE_GCS_URI" ) or os .getenv ("EXECUTION_REPORT_GCS_URI" ),
220+ def build_strategy_plugin_alert_state_settings ():
221+ return StrategyPluginAlertStateSettings .from_env (
236222 gcp_project_id = PROJECT_ID ,
237223 )
238224
239225
240226def build_strategy_plugin_alert_context_label () -> str :
241- return build_email_alert_context_label (
227+ return build_alert_context_label (
242228 platform_id = "longbridge" ,
243229 strategy_profile = STRATEGY_PROFILE ,
244230 account_scope = ACCOUNT_REGION ,
@@ -247,39 +233,19 @@ def build_strategy_plugin_alert_context_label() -> str:
247233 )
248234
249235
250- def attach_strategy_plugin_alert_email_result (report , result ) -> None :
251- report .setdefault ("summary" , {})["strategy_plugin_alert_email_sent_count" ] = result .sent_count
252- report .setdefault ("diagnostics" , {}).update (result .to_report_fields ())
253-
254-
255- def attach_strategy_plugin_alert_sms_result (report , result ) -> None :
256- report .setdefault ("summary" , {})["strategy_plugin_alert_sms_sent_count" ] = result .sent_count
257- report .setdefault ("diagnostics" , {}).update (result .to_report_fields ())
258-
259-
260236def publish_strategy_plugin_alerts (signals , * , report = None ):
261- email_result = publish_strategy_plugin_email_alerts (
262- signals ,
263- email_settings = RUNTIME_SETTINGS ,
264- translator = t ,
265- strategy_label = STRATEGY_PROFILE ,
266- context_label = build_strategy_plugin_alert_context_label (),
267- alert_store = build_strategy_plugin_alert_store (),
268- log_message = print ,
269- )
270- sms_result = publish_strategy_plugin_sms_alerts (
237+ result = dispatch_strategy_plugin_alerts (
271238 signals ,
272- sms_settings = RUNTIME_SETTINGS ,
239+ notification_settings = RUNTIME_SETTINGS ,
273240 translator = t ,
274241 strategy_label = STRATEGY_PROFILE ,
275242 context_label = build_strategy_plugin_alert_context_label (),
276- alert_store = build_strategy_plugin_sms_alert_store (),
243+ state_settings = build_strategy_plugin_alert_state_settings (),
277244 log_message = print ,
278245 )
279246 if report is not None :
280- attach_strategy_plugin_alert_email_result (report , email_result )
281- attach_strategy_plugin_alert_sms_result (report , sms_result )
282- return email_result
247+ result .attach_to_report (report )
248+ return result
283249
284250
285251def run_strategy (* , force_run : bool = False , validation_only : bool = False , validation_label : str = "backfill" ):
0 commit comments