mirror of
https://github.com/openai/codex.git
synced 2026-11-08 20:40:33 +00:00
Switch alarms to structured triggers
This commit is contained in:
@@ -15,6 +15,7 @@ use crate::thread_status::ThreadWatchManager;
|
||||
use codex_app_server_protocol::AccountRateLimitsUpdatedNotification;
|
||||
use codex_app_server_protocol::AdditionalPermissionProfile as V2AdditionalPermissionProfile;
|
||||
use codex_app_server_protocol::AgentMessageDeltaNotification;
|
||||
use codex_app_server_protocol::AlarmTrigger;
|
||||
use codex_app_server_protocol::ApplyPatchApprovalParams;
|
||||
use codex_app_server_protocol::ApplyPatchApprovalResponse;
|
||||
use codex_app_server_protocol::CodexErrorInfo as V2CodexErrorInfo;
|
||||
@@ -166,9 +167,8 @@ struct CommandExecutionCompletionItem {
|
||||
fn thread_alarm_from_core(value: codex_core::alarms::ThreadAlarm) -> ThreadAlarm {
|
||||
ThreadAlarm {
|
||||
id: value.id,
|
||||
cron_expression: value.cron_expression,
|
||||
trigger: alarm_trigger_from_core(value.trigger),
|
||||
prompt: value.prompt,
|
||||
run_once: value.run_once,
|
||||
delivery: match value.delivery {
|
||||
codex_core::alarms::AlarmDelivery::AfterTurn => {
|
||||
codex_app_server_protocol::AlarmDelivery::AfterTurn
|
||||
@@ -182,6 +182,17 @@ fn thread_alarm_from_core(value: codex_core::alarms::ThreadAlarm) -> ThreadAlarm
|
||||
last_run_at: value.last_run_at,
|
||||
}
|
||||
}
|
||||
|
||||
fn alarm_trigger_from_core(value: codex_core::alarms::ThreadAlarmTrigger) -> AlarmTrigger {
|
||||
match value {
|
||||
codex_core::alarms::ThreadAlarmTrigger::Delay { seconds, repeat } => {
|
||||
AlarmTrigger::Delay { seconds, repeat }
|
||||
}
|
||||
codex_core::alarms::ThreadAlarmTrigger::Schedule { dtstart, rrule } => {
|
||||
AlarmTrigger::Schedule { dtstart, rrule }
|
||||
}
|
||||
}
|
||||
}
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub(crate) async fn apply_bespoke_event_handling(
|
||||
event: Event,
|
||||
|
||||
@@ -25,6 +25,7 @@ use codex_app_server_protocol::Account;
|
||||
use codex_app_server_protocol::AccountLoginCompletedNotification;
|
||||
use codex_app_server_protocol::AccountUpdatedNotification;
|
||||
use codex_app_server_protocol::AlarmDelivery as ApiAlarmDelivery;
|
||||
use codex_app_server_protocol::AlarmTrigger as ApiAlarmTrigger;
|
||||
use codex_app_server_protocol::AppInfo;
|
||||
use codex_app_server_protocol::AppsListParams;
|
||||
use codex_app_server_protocol::AppsListResponse;
|
||||
@@ -3704,9 +3705,8 @@ impl CodexMessageProcessor {
|
||||
) {
|
||||
let ThreadAlarmCreateParams {
|
||||
thread_id,
|
||||
cron_expression,
|
||||
trigger,
|
||||
prompt,
|
||||
run_once,
|
||||
delivery,
|
||||
} = params;
|
||||
let Some(thread) = self.load_alarm_thread(request_id.clone(), &thread_id).await else {
|
||||
@@ -3714,9 +3714,8 @@ impl CodexMessageProcessor {
|
||||
};
|
||||
match thread
|
||||
.create_alarm(
|
||||
cron_expression,
|
||||
alarm_trigger_to_core(trigger),
|
||||
prompt,
|
||||
run_once.unwrap_or(false),
|
||||
alarm_delivery_to_core(delivery),
|
||||
)
|
||||
.await
|
||||
@@ -9053,12 +9052,33 @@ fn api_alarm_delivery_from_core(value: codex_core::alarms::AlarmDelivery) -> Api
|
||||
}
|
||||
}
|
||||
|
||||
fn alarm_trigger_to_core(value: ApiAlarmTrigger) -> codex_core::alarms::ThreadAlarmTrigger {
|
||||
match value {
|
||||
ApiAlarmTrigger::Delay { seconds, repeat } => {
|
||||
codex_core::alarms::ThreadAlarmTrigger::Delay { seconds, repeat }
|
||||
}
|
||||
ApiAlarmTrigger::Schedule { dtstart, rrule } => {
|
||||
codex_core::alarms::ThreadAlarmTrigger::Schedule { dtstart, rrule }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn api_alarm_trigger_from_core(value: codex_core::alarms::ThreadAlarmTrigger) -> ApiAlarmTrigger {
|
||||
match value {
|
||||
codex_core::alarms::ThreadAlarmTrigger::Delay { seconds, repeat } => {
|
||||
ApiAlarmTrigger::Delay { seconds, repeat }
|
||||
}
|
||||
codex_core::alarms::ThreadAlarmTrigger::Schedule { dtstart, rrule } => {
|
||||
ApiAlarmTrigger::Schedule { dtstart, rrule }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn api_thread_alarm_from_core(value: codex_core::alarms::ThreadAlarm) -> ApiThreadAlarm {
|
||||
ApiThreadAlarm {
|
||||
id: value.id,
|
||||
cron_expression: value.cron_expression,
|
||||
trigger: api_alarm_trigger_from_core(value.trigger),
|
||||
prompt: value.prompt,
|
||||
run_once: value.run_once,
|
||||
delivery: api_alarm_delivery_from_core(value.delivery),
|
||||
created_at: value.created_at,
|
||||
next_run_at: value.next_run_at,
|
||||
|
||||
Reference in New Issue
Block a user