From 1f11194a9cb239df51da084c9e3495dab8394ab2 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 19 Aug 2026 23:05:03 -0700 Subject: [PATCH 1/6] feat(methods): add agents.sessions method examples Add examples for agents.sessions.setStatus and agents.sessions.rename with a minimal assistant:write manifest and the standard .slack CLI hooks. Co-Authored-By: Claude --- methods/README.md | 5 ++++ methods/src/agents_sessions/.slack/.gitignore | 2 ++ .../src/agents_sessions/.slack/config.json | 6 +++++ methods/src/agents_sessions/.slack/hooks.json | 5 ++++ methods/src/agents_sessions/__init__.py | 0 .../agents_sessions/agents_sessions_rename.py | 18 +++++++++++++ .../agents_sessions_set_status.py | 18 +++++++++++++ methods/src/agents_sessions/manifest.json | 25 +++++++++++++++++++ 8 files changed, 79 insertions(+) create mode 100644 methods/src/agents_sessions/.slack/.gitignore create mode 100644 methods/src/agents_sessions/.slack/config.json create mode 100644 methods/src/agents_sessions/.slack/hooks.json create mode 100644 methods/src/agents_sessions/__init__.py create mode 100644 methods/src/agents_sessions/agents_sessions_rename.py create mode 100644 methods/src/agents_sessions/agents_sessions_set_status.py create mode 100644 methods/src/agents_sessions/manifest.json diff --git a/methods/README.md b/methods/README.md index 5d6b815..7969f8d 100644 --- a/methods/README.md +++ b/methods/README.md @@ -16,6 +16,11 @@ $ slack run chat_post_message # Make the request ## What's on call +### agents.sessions + +- **[agents.sessions.rename](https://docs.slack.dev/reference/methods/agents.sessions.rename)**: Renames an agent session. [Implementation](./src/agents_sessions/agents_sessions_rename.py). +- **[agents.sessions.setStatus](https://docs.slack.dev/reference/methods/agents.sessions.setStatus)**: Sets the lifecycle status of an agent session, creating the session if it does not already exist. [Implementation](./src/agents_sessions/agents_sessions_set_status.py). + ### chat - **[chat.postMessage](https://docs.slack.dev/reference/methods/chat.postmessage)**: Sends a message to a channel. [Implementation](./src/chat/chat_post_message.py). diff --git a/methods/src/agents_sessions/.slack/.gitignore b/methods/src/agents_sessions/.slack/.gitignore new file mode 100644 index 0000000..973ba60 --- /dev/null +++ b/methods/src/agents_sessions/.slack/.gitignore @@ -0,0 +1,2 @@ +apps.dev.json +cache/ diff --git a/methods/src/agents_sessions/.slack/config.json b/methods/src/agents_sessions/.slack/config.json new file mode 100644 index 0000000..909afbe --- /dev/null +++ b/methods/src/agents_sessions/.slack/config.json @@ -0,0 +1,6 @@ +{ + "manifest": { + "source": "local" + }, + "project_id": "00000000-0000-0000-0000-000000000000" +} diff --git a/methods/src/agents_sessions/.slack/hooks.json b/methods/src/agents_sessions/.slack/hooks.json new file mode 100644 index 0000000..ce474c9 --- /dev/null +++ b/methods/src/agents_sessions/.slack/hooks.json @@ -0,0 +1,5 @@ +{ + "hooks": { + "get-hooks": "python3 -m slack_cli_hooks.hooks.get_hooks" + } +} diff --git a/methods/src/agents_sessions/__init__.py b/methods/src/agents_sessions/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/methods/src/agents_sessions/agents_sessions_rename.py b/methods/src/agents_sessions/agents_sessions_rename.py new file mode 100644 index 0000000..c173a23 --- /dev/null +++ b/methods/src/agents_sessions/agents_sessions_rename.py @@ -0,0 +1,18 @@ +import os + +from slack_sdk import WebClient + +# Read a token from an environment variable +token = os.environ.get("SLACK_TOKEN") + +# Initialize +client = WebClient(token=token) + +# Call the agents.sessions.rename method +response = client.agents_sessions_rename( + channel_id="C123ABC456", + title="Fix flaky login test", +) + +# Inspect the response +print(response) diff --git a/methods/src/agents_sessions/agents_sessions_set_status.py b/methods/src/agents_sessions/agents_sessions_set_status.py new file mode 100644 index 0000000..5a6d1f3 --- /dev/null +++ b/methods/src/agents_sessions/agents_sessions_set_status.py @@ -0,0 +1,18 @@ +import os + +from slack_sdk import WebClient + +# Read a token from an environment variable +token = os.environ.get("SLACK_TOKEN") + +# Initialize +client = WebClient(token=token) + +# Call the agents.sessions.setStatus method +response = client.agents_sessions_setStatus( + channel_id="C123ABC456", + status="processing", +) + +# Inspect the response +print(response) diff --git a/methods/src/agents_sessions/manifest.json b/methods/src/agents_sessions/manifest.json new file mode 100644 index 0000000..3efbd1b --- /dev/null +++ b/methods/src/agents_sessions/manifest.json @@ -0,0 +1,25 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"agents.sessions\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + }, + "agent_view": { + "enabled": true + } + }, + "oauth_config": { + "scopes": { + "bot": ["assistant:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": false, + "token_rotation_enabled": false + } +} From d16b8c2ee3fce9d2839ad5202e9197ea77718440 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 19 Aug 2026 23:32:27 -0700 Subject: [PATCH 2/6] docs(methods): use `agents` section header and concise descriptions Match the family-first header convention (### agents, like ### chat) and tighten the agents.sessions.* method descriptions. Co-Authored-By: Claude --- methods/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/methods/README.md b/methods/README.md index 7969f8d..4b439c3 100644 --- a/methods/README.md +++ b/methods/README.md @@ -16,10 +16,10 @@ $ slack run chat_post_message # Make the request ## What's on call -### agents.sessions +### agents -- **[agents.sessions.rename](https://docs.slack.dev/reference/methods/agents.sessions.rename)**: Renames an agent session. [Implementation](./src/agents_sessions/agents_sessions_rename.py). -- **[agents.sessions.setStatus](https://docs.slack.dev/reference/methods/agents.sessions.setStatus)**: Sets the lifecycle status of an agent session, creating the session if it does not already exist. [Implementation](./src/agents_sessions/agents_sessions_set_status.py). +- **[agents.sessions.rename](https://docs.slack.dev/reference/methods/agents.sessions.rename)**: Rename an agent session. [Implementation](./src/agents_sessions/agents_sessions_rename.py). +- **[agents.sessions.setStatus](https://docs.slack.dev/reference/methods/agents.sessions.setStatus)**: Set an agent session's lifecycle status, creating the session if needed. [Implementation](./src/agents_sessions/agents_sessions_set_status.py). ### chat From 3356acc495404fb496a7d4125baf5ad8abd88fca Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 19 Aug 2026 23:34:39 -0700 Subject: [PATCH 3/6] fix(methods): use chat:write scope for agents.sessions example agents.sessions.setStatus and agents.sessions.rename require the chat:write bot scope per the method reference, not assistant:write. Co-Authored-By: Claude --- methods/src/agents_sessions/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/methods/src/agents_sessions/manifest.json b/methods/src/agents_sessions/manifest.json index 3efbd1b..df2c5e1 100644 --- a/methods/src/agents_sessions/manifest.json +++ b/methods/src/agents_sessions/manifest.json @@ -14,7 +14,7 @@ }, "oauth_config": { "scopes": { - "bot": ["assistant:write"] + "bot": ["chat:write"] } }, "settings": { From 13a1d6c1f0da1f6ac04f5e4a09c93fb759fe1306 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 19 Aug 2026 23:43:18 -0700 Subject: [PATCH 4/6] refactor(methods): nest agents.sessions example under agents/sessions/ Move the agents.sessions method examples from a flat agents_sessions/ dir to nested agents/sessions/ (path mirrors the agents.sessions.* method family), updating the README implementation links. Co-Authored-By: Claude --- methods/README.md | 4 ++-- methods/src/{agents_sessions => agents}/__init__.py | 0 .../{agents_sessions => agents/sessions}/.slack/.gitignore | 0 .../{agents_sessions => agents/sessions}/.slack/config.json | 0 .../{agents_sessions => agents/sessions}/.slack/hooks.json | 0 methods/src/agents/sessions/__init__.py | 0 .../sessions}/agents_sessions_rename.py | 0 .../sessions}/agents_sessions_set_status.py | 0 .../src/{agents_sessions => agents/sessions}/manifest.json | 0 9 files changed, 2 insertions(+), 2 deletions(-) rename methods/src/{agents_sessions => agents}/__init__.py (100%) rename methods/src/{agents_sessions => agents/sessions}/.slack/.gitignore (100%) rename methods/src/{agents_sessions => agents/sessions}/.slack/config.json (100%) rename methods/src/{agents_sessions => agents/sessions}/.slack/hooks.json (100%) create mode 100644 methods/src/agents/sessions/__init__.py rename methods/src/{agents_sessions => agents/sessions}/agents_sessions_rename.py (100%) rename methods/src/{agents_sessions => agents/sessions}/agents_sessions_set_status.py (100%) rename methods/src/{agents_sessions => agents/sessions}/manifest.json (100%) diff --git a/methods/README.md b/methods/README.md index 4b439c3..f6c51bb 100644 --- a/methods/README.md +++ b/methods/README.md @@ -18,8 +18,8 @@ $ slack run chat_post_message # Make the request ### agents -- **[agents.sessions.rename](https://docs.slack.dev/reference/methods/agents.sessions.rename)**: Rename an agent session. [Implementation](./src/agents_sessions/agents_sessions_rename.py). -- **[agents.sessions.setStatus](https://docs.slack.dev/reference/methods/agents.sessions.setStatus)**: Set an agent session's lifecycle status, creating the session if needed. [Implementation](./src/agents_sessions/agents_sessions_set_status.py). +- **[agents.sessions.rename](https://docs.slack.dev/reference/methods/agents.sessions.rename)**: Rename an agent session. [Implementation](./src/agents/sessions/agents_sessions_rename.py). +- **[agents.sessions.setStatus](https://docs.slack.dev/reference/methods/agents.sessions.setStatus)**: Set an agent session's lifecycle status, creating the session if needed. [Implementation](./src/agents/sessions/agents_sessions_set_status.py). ### chat diff --git a/methods/src/agents_sessions/__init__.py b/methods/src/agents/__init__.py similarity index 100% rename from methods/src/agents_sessions/__init__.py rename to methods/src/agents/__init__.py diff --git a/methods/src/agents_sessions/.slack/.gitignore b/methods/src/agents/sessions/.slack/.gitignore similarity index 100% rename from methods/src/agents_sessions/.slack/.gitignore rename to methods/src/agents/sessions/.slack/.gitignore diff --git a/methods/src/agents_sessions/.slack/config.json b/methods/src/agents/sessions/.slack/config.json similarity index 100% rename from methods/src/agents_sessions/.slack/config.json rename to methods/src/agents/sessions/.slack/config.json diff --git a/methods/src/agents_sessions/.slack/hooks.json b/methods/src/agents/sessions/.slack/hooks.json similarity index 100% rename from methods/src/agents_sessions/.slack/hooks.json rename to methods/src/agents/sessions/.slack/hooks.json diff --git a/methods/src/agents/sessions/__init__.py b/methods/src/agents/sessions/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/methods/src/agents_sessions/agents_sessions_rename.py b/methods/src/agents/sessions/agents_sessions_rename.py similarity index 100% rename from methods/src/agents_sessions/agents_sessions_rename.py rename to methods/src/agents/sessions/agents_sessions_rename.py diff --git a/methods/src/agents_sessions/agents_sessions_set_status.py b/methods/src/agents/sessions/agents_sessions_set_status.py similarity index 100% rename from methods/src/agents_sessions/agents_sessions_set_status.py rename to methods/src/agents/sessions/agents_sessions_set_status.py diff --git a/methods/src/agents_sessions/manifest.json b/methods/src/agents/sessions/manifest.json similarity index 100% rename from methods/src/agents_sessions/manifest.json rename to methods/src/agents/sessions/manifest.json From 2df47f6ba15b1360ecfd5bf5a0f123088450d5b8 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Thu, 20 Aug 2026 00:22:18 -0700 Subject: [PATCH 5/6] feat(methods): make agents.sessions example manifest a well-formed agent Add the recommended agent_view event subscriptions (agent_session_stopped, app_home_opened, message.im), the assistant:write scope, and im:history so message.im events deliver; enable socket mode. Clears the manifest recommendations and the agent_session_stopped subscription warning. Co-Authored-By: Claude --- methods/src/agents/sessions/manifest.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/methods/src/agents/sessions/manifest.json b/methods/src/agents/sessions/manifest.json index df2c5e1..e24921a 100644 --- a/methods/src/agents/sessions/manifest.json +++ b/methods/src/agents/sessions/manifest.json @@ -14,12 +14,15 @@ }, "oauth_config": { "scopes": { - "bot": ["chat:write"] + "bot": ["assistant:write", "chat:write", "im:history"] } }, "settings": { + "event_subscriptions": { + "bot_events": ["agent_session_stopped", "app_home_opened", "message.im"] + }, "org_deploy_enabled": true, - "socket_mode_enabled": false, + "socket_mode_enabled": true, "token_rotation_enabled": false } } From 212e6eefe4cff533032f81d9e57b1d87f6bec598 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Thu, 20 Aug 2026 10:27:51 -0700 Subject: [PATCH 6/6] fix(methods): use agent_description in the agents.sessions manifest `agent_view` only accepts `agent_description`, `suggested_prompts`, and `actions` (additionalProperties: false), so `enabled: true` fails manifest validation. Replace it with a minimal `agent_description`. Co-Authored-By: Claude --- methods/src/agents/sessions/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/methods/src/agents/sessions/manifest.json b/methods/src/agents/sessions/manifest.json index e24921a..f097ec3 100644 --- a/methods/src/agents/sessions/manifest.json +++ b/methods/src/agents/sessions/manifest.json @@ -9,7 +9,7 @@ "always_online": true }, "agent_view": { - "enabled": true + "agent_description": "Example implementations to call \"agents.sessions\" methods" } }, "oauth_config": {