Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions claude-agent-sdk/listeners/actions/feedback.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
from logging import Logger

from slack_bolt import Ack
from slack_bolt.context.async_context import AsyncBoltContext
from slack_sdk.web.async_client import AsyncWebClient


async def handle_feedback(ack: Ack, body: dict, client: AsyncWebClient, logger: Logger):
async def handle_feedback(
ack: Ack,
body: dict,
client: AsyncWebClient,
context: AsyncBoltContext,
logger: Logger,
):
"""Handle thumbs up/down feedback on Casey's responses."""
await ack()

try:
channel_id = body["channel"]["id"]
user_id = body["user"]["id"]
channel_id = context.channel_id
user_id = context.user_id
message_ts = body["message"]["ts"]
feedback_value = body["actions"][0]["value"]

Expand Down
7 changes: 5 additions & 2 deletions claude-agent-sdk/listeners/events/app_home_opened.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
from logging import Logger

from slack_bolt.context.async_context import AsyncBoltContext
from slack_sdk.web.async_client import AsyncWebClient

from listeners.views.app_home_builder import build_app_home_view


async def handle_app_home_opened(client: AsyncWebClient, event: dict, logger: Logger):
async def handle_app_home_opened(
client: AsyncWebClient, context: AsyncBoltContext, logger: Logger
):
Comment on lines +9 to +11

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
async def handle_app_home_opened(
client: AsyncWebClient, context: AsyncBoltContext, logger: Logger
):
async def handle_app_home_opened(
client: AsyncWebClient,
context: AsyncBoltContext,
logger: Logger,
):

🧮 suggestion: To make reading down fastest!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this suggestion 💯 But I think we might need to do this in another PR since this is fighting against the formatter slightly, we might want to make this a claude guideline 🤔

"""Publish the App Home view when a user opens the app's Home tab."""
try:
user_id = event["user"]
user_id = context.user_id
view = build_app_home_view()
await client.views_publish(user_id=user_id, view=view)
except Exception as e:
Expand Down
13 changes: 9 additions & 4 deletions claude-agent-sdk/listeners/events/app_mentioned.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import re
from logging import Logger

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

Expand All @@ -22,15 +23,19 @@


async def handle_app_mentioned(
client: AsyncWebClient, event: dict, logger: Logger, say: AsyncSay
client: AsyncWebClient,
context: AsyncBoltContext,
event: dict,
logger: Logger,
say: AsyncSay,
):
"""Handle @Casey mentions in channels."""
try:
channel_id = event["channel"]
team_id = event.get("team")
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 = event.get("user")
user_id = context.user_id

# Strip the bot mention from the text
cleaned_text = re.sub(r"<@[A-Z0-9]+>", "", text).strip()
Expand Down
13 changes: 9 additions & 4 deletions claude-agent-sdk/listeners/events/message.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import random
from logging import Logger

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

Expand All @@ -21,7 +22,11 @@


async def handle_message(
client: AsyncWebClient, event: dict, logger: Logger, say: AsyncSay
client: AsyncWebClient,
context: AsyncBoltContext,
event: dict,
logger: Logger,
say: AsyncSay,
):
"""Handle direct messages sent to Casey."""
# Skip bot messages and message subtypes (edits, deletes, etc.)
Expand All @@ -33,11 +38,11 @@ async def handle_message(
return

try:
channel_id = event["channel"]
team_id = event.get("team")
channel_id = context.channel_id
team_id = context.team_id
text = event.get("text", "")
thread_ts = event.get("thread_ts") or event["ts"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔭 thought: I'm curious if you have thoughts ahead to this change too?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yess definitely aim to change this once context.thread_ts works for any payload 🙏

user_id = event.get("user")
user_id = context.user_id

# Get session ID for conversation context
existing_session_id = session_store.get_session(channel_id, thread_ts)
Expand Down
11 changes: 8 additions & 3 deletions claude-agent-sdk/listeners/views/issue_modal.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from logging import Logger

from slack_bolt import Ack
from slack_bolt.context.async_context import AsyncBoltContext
from slack_sdk.web.async_client import AsyncWebClient

from agent import run_casey_agent
Expand All @@ -9,14 +10,18 @@


async def handle_issue_submission(
ack: Ack, body: dict, client: AsyncWebClient, logger: Logger
ack: Ack,
body: dict,
client: AsyncWebClient,
context: AsyncBoltContext,
logger: Logger,
):
"""Handle modal submission: open DM, post issue, and run Casey agent."""
await ack()

try:
team_id = body["user"]["team_id"]
user_id = body["user"]["id"]
team_id = context.team_id
user_id = context.user_id
values = body["view"]["state"]["values"]
category = values["category_block"]["category_select"]["selected_option"][
"value"
Expand Down
10 changes: 6 additions & 4 deletions openai-agents-sdk/listeners/actions/feedback.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
from logging import Logger

from slack_bolt import Ack
from slack_bolt import Ack, BoltContext
from slack_sdk import WebClient


def handle_feedback(ack: Ack, body: dict, client: WebClient, logger: Logger):
def handle_feedback(
ack: Ack, body: dict, client: WebClient, context: BoltContext, logger: Logger
):
Comment on lines +7 to +9

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def handle_feedback(
ack: Ack, body: dict, client: WebClient, context: BoltContext, logger: Logger
):
def handle_feedback(
ack: Ack,
body: dict,
client: WebClient,
context: BoltContext,
logger: Logger,
):

🪵 suggestion: While we're making a change here?

"""Handle thumbs up/down feedback on Casey's responses."""
ack()

try:
channel_id = body["channel"]["id"]
user_id = body["user"]["id"]
channel_id = context.channel_id
user_id = context.user_id
message_ts = body["message"]["ts"]
feedback_value = body["actions"][0]["value"]

Expand Down
5 changes: 3 additions & 2 deletions openai-agents-sdk/listeners/events/app_home_opened.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
from logging import Logger

from slack_bolt import BoltContext
from slack_sdk import WebClient

from listeners.views.app_home_builder import build_app_home_view


def handle_app_home_opened(client: WebClient, event: dict, logger: Logger):
def handle_app_home_opened(client: WebClient, context: BoltContext, logger: Logger):
"""Publish the App Home view when a user opens the app's Home tab."""
try:
user_id = event["user"]
user_id = context.user_id
view = build_app_home_view()
client.views_publish(user_id=user_id, view=view)
except Exception as e:
Expand Down
12 changes: 7 additions & 5 deletions openai-agents-sdk/listeners/events/app_mentioned.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from logging import Logger

from agents import Runner
from slack_bolt import Say
from slack_bolt import BoltContext, Say
from slack_sdk import WebClient

from agent import CaseyDeps, casey_agent
Expand All @@ -22,14 +22,16 @@
CONTEXTUAL_EMOJIS = ["+1", "raised_hands", "rocket", "tada", "bulb", "fire"]


def handle_app_mentioned(client: WebClient, event: dict, logger: Logger, say: Say):
def handle_app_mentioned(
client: WebClient, context: BoltContext, event: dict, logger: Logger, say: Say
):
"""Handle @Casey mentions in channels."""
try:
channel_id = event["channel"]
team_id = event.get("team")
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 = event["user"]
user_id = context.user_id

# Strip the bot mention from the text
cleaned_text = re.sub(r"<@[A-Z0-9]+>", "", text).strip()
Expand Down
12 changes: 7 additions & 5 deletions openai-agents-sdk/listeners/events/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from logging import Logger

from agents import Runner
from slack_bolt import Say
from slack_bolt import BoltContext, Say
from slack_sdk import WebClient

from agent import CaseyDeps, casey_agent
Expand All @@ -21,7 +21,9 @@
CONTEXTUAL_EMOJIS = ["+1", "raised_hands", "rocket", "tada", "bulb", "fire"]


def handle_message(client: WebClient, event: dict, logger: Logger, say: Say):
def handle_message(
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.)
if event.get("bot_id") or event.get("subtype"):
Expand All @@ -32,11 +34,11 @@ def handle_message(client: WebClient, event: dict, logger: Logger, say: Say):
return

try:
channel_id = event["channel"]
team_id = event.get("team")
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 = event["user"]
user_id = context.user_id

# Get conversation history
history = conversation_store.get_history(channel_id, thread_ts)
Expand Down
10 changes: 6 additions & 4 deletions openai-agents-sdk/listeners/views/issue_modal.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
from logging import Logger

from agents import Runner
from slack_bolt import Ack
from slack_bolt import Ack, BoltContext
from slack_sdk import WebClient

from agent import CaseyDeps, casey_agent
from conversation import conversation_store
from listeners.views.feedback_block import create_feedback_block


def handle_issue_submission(ack: Ack, body: dict, client: WebClient, logger: Logger):
def handle_issue_submission(
ack: Ack, body: dict, client: WebClient, context: BoltContext, logger: Logger
):
"""Handle modal submission: open DM, post issue, and run Casey agent."""
ack()

try:
team_id = body["user"]["team_id"]
user_id = body["user"]["id"]
team_id = context.team_id
user_id = context.user_id
values = body["view"]["state"]["values"]
category = values["category_block"]["category_select"]["selected_option"][
"value"
Expand Down
10 changes: 6 additions & 4 deletions pydantic-ai/listeners/actions/feedback.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
from logging import Logger

from slack_bolt import Ack
from slack_bolt import Ack, BoltContext
from slack_sdk import WebClient


def handle_feedback(ack: Ack, body: dict, client: WebClient, logger: Logger):
def handle_feedback(
ack: Ack, body: dict, client: WebClient, context: BoltContext, logger: Logger
):
"""Handle thumbs up/down feedback on Casey's responses."""
ack()

try:
channel_id = body["channel"]["id"]
user_id = body["user"]["id"]
channel_id = context.channel_id
user_id = context.user_id
message_ts = body["message"]["ts"]
feedback_value = body["actions"][0]["value"]

Expand Down
5 changes: 3 additions & 2 deletions pydantic-ai/listeners/events/app_home_opened.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
from logging import Logger

from slack_bolt import BoltContext
from slack_sdk import WebClient

from listeners.views.app_home_builder import build_app_home_view


def handle_app_home_opened(client: WebClient, event: dict, logger: Logger):
def handle_app_home_opened(client: WebClient, context: BoltContext, logger: Logger):
"""Publish the App Home view when a user opens the app's Home tab."""
try:
user_id = event["user"]
user_id = context.user_id
view = build_app_home_view()
client.views_publish(user_id=user_id, view=view)
except Exception as e:
Expand Down
12 changes: 7 additions & 5 deletions pydantic-ai/listeners/events/app_mentioned.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import re
from logging import Logger

from slack_bolt import Say
from slack_bolt import BoltContext, Say
from slack_sdk import WebClient

from agent import DEFAULT_MODEL, CaseyDeps, casey_agent
Expand All @@ -21,14 +21,16 @@
CONTEXTUAL_EMOJIS = ["+1", "raised_hands", "rocket", "tada", "bulb", "fire"]


def handle_app_mentioned(client: WebClient, event: dict, logger: Logger, say: Say):
def handle_app_mentioned(
client: WebClient, context: BoltContext, event: dict, logger: Logger, say: Say
):
"""Handle @Casey mentions in channels."""
try:
channel_id = event["channel"]
team_id = event.get("team")
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 = event["user"]
user_id = context.user_id

# Strip the bot mention from the text
cleaned_text = re.sub(r"<@[A-Z0-9]+>", "", text).strip()
Expand Down
12 changes: 7 additions & 5 deletions pydantic-ai/listeners/events/message.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import random
from logging import Logger

from slack_bolt import Say
from slack_bolt import BoltContext, Say
from slack_sdk import WebClient

from agent import DEFAULT_MODEL, CaseyDeps, casey_agent
Expand All @@ -20,7 +20,9 @@
CONTEXTUAL_EMOJIS = ["+1", "raised_hands", "rocket", "tada", "bulb", "fire"]


def handle_message(client: WebClient, event: dict, logger: Logger, say: Say):
def handle_message(
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.)
if event.get("bot_id") or event.get("subtype"):
Expand All @@ -31,11 +33,11 @@ def handle_message(client: WebClient, event: dict, logger: Logger, say: Say):
return

try:
channel_id = event["channel"]
team_id = event.get("team")
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 = event["user"]
user_id = context.user_id

# Get conversation history
history = conversation_store.get_history(channel_id, thread_ts)
Expand Down
Loading