Add EventBridge scheduling: schedule_reminder, list_reminders, cancel_reminder

This commit is contained in:
daniel
2026-05-07 23:24:48 -05:00
parent 825294d433
commit 58ed60f7b7
46 changed files with 3605 additions and 24 deletions

View File

@@ -13,6 +13,8 @@ from prompt_builder import build_system_prompt, invalidate_prompt
from tools import web as web_tools
from tools import workspace as ws_tools
from tools import messaging
from tools.scheduler import schedule_reminder, list_reminders, cancel_reminder
import tools.scheduler as _scheduler_module
from tools.home_assistant import home_assistant, set_ha_config
from mcp.client.streamable_http import streamablehttp_client
from strands.tools.mcp.mcp_client import MCPClient
@@ -178,6 +180,7 @@ def manage_service(action: str, service: str, config: dict | None = None) -> str
# Module-level actor_id for tool closures (set per-invocation)
_current_actor_id: str = ''
_current_chat_id: str = ''
@app.entrypoint
@@ -217,6 +220,10 @@ async def main(payload: dict, context):
actor_id = payload.get('actor_id', adapter_config.get('target_id', 'default'))
session_id = payload.get('session_id', f'session-{actor_id}')
_current_actor_id = actor_id
chat_id = adapter_config.get('target_id', '')
_current_chat_id = chat_id
_scheduler_module._current_actor_id = actor_id
_scheduler_module._current_chat_id = chat_id
memory_config = AgentCoreMemoryConfig(
memory_id=MEMORY_ID,
@@ -258,7 +265,9 @@ async def main(payload: dict, context):
from zoneinfo import ZoneInfo
_tz = ZoneInfo('America/Chicago')
_now = datetime.now(_tz)
system_prompt += f'\n\nCurrent date/time: {_now.strftime("%A, %B %d, %Y %I:%M %p %Z")}'
_time_str = _now.strftime('%A, %B %d, %Y %I:%M %p %Z')
system_prompt = system_prompt + f'\n\nCurrent date/time: {_time_str}'
print(f'[main] System prompt time injection: {_time_str}')
# Model: claude-sonnet-4-6 via cross-region inference with extended thinking
from botocore.config import Config as BotoConfig
@@ -273,7 +282,7 @@ async def main(payload: dict, context):
base_tools = [web_search, web_fetch, read_workspace_file, write_workspace_file,
_code_interpreter.code_interpreter, home_assistant, connect_google_account,
manage_service]
manage_service, schedule_reminder, list_reminders, cancel_reminder]
workspace_mcp_client = MCPClient(
lambda: streamablehttp_client(WORKSPACE_MCP_URL, timeout=20, auth=_SigV4HttpxAuth(actor_id=actor_id))