diff --git a/claude-agent-sdk/listeners/events/app_mentioned.py b/claude-agent-sdk/listeners/events/app_mentioned.py index 1442db3..5e97831 100644 --- a/claude-agent-sdk/listeners/events/app_mentioned.py +++ b/claude-agent-sdk/listeners/events/app_mentioned.py @@ -2,6 +2,7 @@ import re from logging import Logger +from slack_bolt.agent.async_agent import AsyncBoltAgent from slack_bolt.context.async_context import AsyncBoltContext from slack_bolt.context.say.async_say import AsyncSay from slack_sdk.web.async_client import AsyncWebClient @@ -24,6 +25,7 @@ async def handle_app_mentioned( client: AsyncWebClient, + agent: AsyncBoltAgent, context: AsyncBoltContext, event: dict, logger: Logger, @@ -78,9 +80,9 @@ async def handle_app_mentioned( ) # Stream response in thread with feedback buttons - streamer = await client.chat_stream( + streamer = await agent.chat_stream( channel=channel_id, - recipient_team_id=team_id, + recipient_team_id=team_id, # chat_stream helper cannot infer event["team"] from client recipient_user_id=user_id, thread_ts=thread_ts, ) diff --git a/claude-agent-sdk/listeners/events/message.py b/claude-agent-sdk/listeners/events/message.py index 8229877..13a88fc 100644 --- a/claude-agent-sdk/listeners/events/message.py +++ b/claude-agent-sdk/listeners/events/message.py @@ -1,6 +1,7 @@ import random from logging import Logger +from slack_bolt.agent.async_agent import AsyncBoltAgent from slack_bolt.context.async_context import AsyncBoltContext from slack_bolt.context.say.async_say import AsyncSay from slack_sdk.web.async_client import AsyncWebClient @@ -23,6 +24,7 @@ async def handle_message( client: AsyncWebClient, + agent: AsyncBoltAgent, context: AsyncBoltContext, event: dict, logger: Logger, @@ -39,10 +41,8 @@ async def handle_message( try: channel_id = context.channel_id - team_id = context.team_id text = event.get("text", "") thread_ts = event.get("thread_ts") or event["ts"] - user_id = context.user_id # Get session ID for conversation context existing_session_id = session_store.get_session(channel_id, thread_ts) @@ -75,12 +75,7 @@ async def handle_message( ) # Stream response in thread with feedback buttons - streamer = await client.chat_stream( - channel=channel_id, - recipient_team_id=team_id, - recipient_user_id=user_id, - thread_ts=thread_ts, - ) + streamer = await agent.chat_stream() await streamer.append(markdown_text=response_text) feedback_blocks = create_feedback_block() await streamer.stop(blocks=feedback_blocks) diff --git a/claude-agent-sdk/listeners/views/issue_modal.py b/claude-agent-sdk/listeners/views/issue_modal.py index aed5939..895eac1 100644 --- a/claude-agent-sdk/listeners/views/issue_modal.py +++ b/claude-agent-sdk/listeners/views/issue_modal.py @@ -1,6 +1,7 @@ from logging import Logger from slack_bolt import Ack +from slack_bolt.agent.async_agent import AsyncBoltAgent from slack_bolt.context.async_context import AsyncBoltContext from slack_sdk.web.async_client import AsyncWebClient @@ -11,6 +12,7 @@ async def handle_issue_submission( ack: Ack, + agent: AsyncBoltAgent, body: dict, client: AsyncWebClient, context: AsyncBoltContext, @@ -65,7 +67,7 @@ async def handle_issue_submission( response_text, new_session_id = await run_casey_agent(user_message) # Stream the response in thread with feedback buttons - streamer = await client.chat_stream( + streamer = await agent.chat_stream( channel=channel_id, recipient_team_id=team_id, recipient_user_id=user_id, diff --git a/openai-agents-sdk/listeners/events/app_mentioned.py b/openai-agents-sdk/listeners/events/app_mentioned.py index 4a0bea6..d7b3a5a 100644 --- a/openai-agents-sdk/listeners/events/app_mentioned.py +++ b/openai-agents-sdk/listeners/events/app_mentioned.py @@ -3,7 +3,7 @@ from logging import Logger from agents import Runner -from slack_bolt import BoltContext, Say +from slack_bolt import BoltAgent, BoltContext, Say from slack_sdk import WebClient from agent import CaseyDeps, casey_agent @@ -23,7 +23,12 @@ def handle_app_mentioned( - client: WebClient, context: BoltContext, event: dict, logger: Logger, say: Say + agent: BoltAgent, + client: WebClient, + context: BoltContext, + event: dict, + logger: Logger, + say: Say, ): """Handle @Casey mentions in channels.""" try: @@ -83,9 +88,9 @@ def handle_app_mentioned( result = Runner.run_sync(casey_agent, input=input_items, context=deps) # Stream response in thread with feedback buttons - streamer = client.chat_stream( + streamer = agent.chat_stream( channel=channel_id, - recipient_team_id=team_id, + recipient_team_id=team_id, # chat_stream helper cannot infer event["team"] from client recipient_user_id=user_id, thread_ts=thread_ts, ) diff --git a/openai-agents-sdk/listeners/events/message.py b/openai-agents-sdk/listeners/events/message.py index 90e4023..50d923c 100644 --- a/openai-agents-sdk/listeners/events/message.py +++ b/openai-agents-sdk/listeners/events/message.py @@ -2,7 +2,7 @@ from logging import Logger from agents import Runner -from slack_bolt import BoltContext, Say +from slack_bolt import BoltAgent, BoltContext, Say from slack_sdk import WebClient from agent import CaseyDeps, casey_agent @@ -22,7 +22,12 @@ def handle_message( - client: WebClient, context: BoltContext, event: dict, logger: Logger, say: Say + agent: BoltAgent, + client: WebClient, + context: BoltContext, + event: dict, + logger: Logger, + say: Say, ): """Handle direct messages sent to Casey.""" # Skip bot messages and message subtypes (edits, deletes, etc.) @@ -35,7 +40,6 @@ def handle_message( try: channel_id = context.channel_id - team_id = context.team_id text = event.get("text", "") thread_ts = event.get("thread_ts") or event["ts"] user_id = context.user_id @@ -81,12 +85,7 @@ def handle_message( result = Runner.run_sync(casey_agent, input=input_items, context=deps) # Stream response in thread with feedback buttons - streamer = client.chat_stream( - channel=channel_id, - recipient_team_id=team_id, - recipient_user_id=user_id, - thread_ts=thread_ts, - ) + streamer = agent.chat_stream() streamer.append(markdown_text=result.final_output) feedback_blocks = create_feedback_block() streamer.stop(blocks=feedback_blocks) diff --git a/openai-agents-sdk/listeners/views/issue_modal.py b/openai-agents-sdk/listeners/views/issue_modal.py index 6791d35..0bf0bd9 100644 --- a/openai-agents-sdk/listeners/views/issue_modal.py +++ b/openai-agents-sdk/listeners/views/issue_modal.py @@ -1,7 +1,7 @@ from logging import Logger from agents import Runner -from slack_bolt import Ack, BoltContext +from slack_bolt import Ack, BoltAgent, BoltContext from slack_sdk import WebClient from agent import CaseyDeps, casey_agent @@ -10,7 +10,12 @@ def handle_issue_submission( - ack: Ack, body: dict, client: WebClient, context: BoltContext, logger: Logger + ack: Ack, + agent: BoltAgent, + body: dict, + client: WebClient, + context: BoltContext, + logger: Logger, ): """Handle modal submission: open DM, post issue, and run Casey agent.""" ack() @@ -67,7 +72,7 @@ def handle_issue_submission( result = Runner.run_sync(casey_agent, input=user_message, context=deps) # Stream the response in thread with feedback buttons - streamer = client.chat_stream( + streamer = agent.chat_stream( channel=channel_id, recipient_team_id=team_id, recipient_user_id=user_id, diff --git a/pydantic-ai/listeners/events/app_mentioned.py b/pydantic-ai/listeners/events/app_mentioned.py index acb0860..73c5167 100644 --- a/pydantic-ai/listeners/events/app_mentioned.py +++ b/pydantic-ai/listeners/events/app_mentioned.py @@ -2,7 +2,7 @@ import re from logging import Logger -from slack_bolt import BoltContext, Say +from slack_bolt import BoltAgent, BoltContext, Say from slack_sdk import WebClient from agent import DEFAULT_MODEL, CaseyDeps, casey_agent @@ -22,7 +22,12 @@ def handle_app_mentioned( - client: WebClient, context: BoltContext, event: dict, logger: Logger, say: Say + agent: BoltAgent, + client: WebClient, + context: BoltContext, + event: dict, + logger: Logger, + say: Say, ): """Handle @Casey mentions in channels.""" try: @@ -82,9 +87,9 @@ def handle_app_mentioned( ) # Stream response in thread with feedback buttons - streamer = client.chat_stream( + streamer = agent.chat_stream( channel=channel_id, - recipient_team_id=team_id, + recipient_team_id=team_id, # chat_stream helper cannot infer event["team"] from client recipient_user_id=user_id, thread_ts=thread_ts, ) diff --git a/pydantic-ai/listeners/events/message.py b/pydantic-ai/listeners/events/message.py index 03a757f..2434e22 100644 --- a/pydantic-ai/listeners/events/message.py +++ b/pydantic-ai/listeners/events/message.py @@ -1,7 +1,7 @@ import random from logging import Logger -from slack_bolt import BoltContext, Say +from slack_bolt import BoltAgent, BoltContext, Say from slack_sdk import WebClient from agent import DEFAULT_MODEL, CaseyDeps, casey_agent @@ -21,7 +21,12 @@ def handle_message( - client: WebClient, context: BoltContext, event: dict, logger: Logger, say: Say + agent: BoltAgent, + client: WebClient, + context: BoltContext, + event: dict, + logger: Logger, + say: Say, ): """Handle direct messages sent to Casey.""" # Skip bot messages and message subtypes (edits, deletes, etc.) @@ -34,7 +39,6 @@ def handle_message( try: channel_id = context.channel_id - team_id = context.team_id text = event.get("text", "") thread_ts = event.get("thread_ts") or event["ts"] user_id = context.user_id @@ -79,12 +83,7 @@ def handle_message( ) # Stream response in thread with feedback buttons - streamer = client.chat_stream( - channel=channel_id, - recipient_team_id=team_id, - recipient_user_id=user_id, - thread_ts=thread_ts, - ) + streamer = agent.chat_stream() streamer.append(markdown_text=result.output) feedback_blocks = create_feedback_block() streamer.stop(blocks=feedback_blocks) diff --git a/pydantic-ai/listeners/views/issue_modal.py b/pydantic-ai/listeners/views/issue_modal.py index 35c591f..d9c1b00 100644 --- a/pydantic-ai/listeners/views/issue_modal.py +++ b/pydantic-ai/listeners/views/issue_modal.py @@ -1,6 +1,6 @@ from logging import Logger -from slack_bolt import Ack, BoltContext +from slack_bolt import Ack, BoltAgent, BoltContext from slack_sdk import WebClient from agent import DEFAULT_MODEL, CaseyDeps, casey_agent @@ -9,7 +9,12 @@ def handle_issue_submission( - ack: Ack, body: dict, client: WebClient, context: BoltContext, logger: Logger + ack: Ack, + agent: BoltAgent, + body: dict, + client: WebClient, + context: BoltContext, + logger: Logger, ): """Handle modal submission: open DM, post issue, and run Casey agent.""" ack() @@ -66,7 +71,7 @@ def handle_issue_submission( result = casey_agent.run_sync(user_message, model=DEFAULT_MODEL, deps=deps) # Stream the response in thread with feedback buttons - streamer = client.chat_stream( + streamer = agent.chat_stream( channel=channel_id, recipient_team_id=team_id, recipient_user_id=user_id,