3tears-channels
A unified message protocol for the 3tears framework, with adapters for Slack, Discord, and WebSocket clients. Write your agent logic once and deliver it across channels.
pip install 3tears-channels
What you get
- One message model --
ChannelMessage,ChannelResponse,ChannelDeliveryMessage, andAttachmentcarry a request and its reply regardless of channel. - Routing --
ChannelRouterandStreamingChannelRouterdispatch inbound messages and stream responses back. - Slack and Discord -- payload and rich-formatting builders (
build_slack_blocks,build_slack_payload,build_discord_embed,build_discord_payload) plus ashould_use_rich_formattinghelper. - WebSocket --
WebSocketHandler,WebSocketProtocol, aConnectionRegistry, and frame primitives for real-time clients. - Rooms and presence --
RoomFanout,RoomState,RoomIndexCollection, and a three-tier-backedPresenceCollectionwith aPresenceSweeperfor connection liveness. - Email --
threetears.channels.mail:Mailerover anEmailTransport, an SMTP transport reading its settings per send,EmailTemplatesubstitution with an HTML alternative andList-Unsubscribeheaders,send_batchfor many recipients with per-recipient failure isolation, andBounceReceiverfor HMAC-verified delivery reports. A sibling of the channel adapters rather than one of them -- an email recipient has no conversation and usually no account, soChannelDeliveryMessagedoes not apply.
Quickstart
from threetears.channels import ChannelRouter, ChannelMessage, build_slack_blocks
router = ChannelRouter(...)
response = await router.dispatch(ChannelMessage(text="hello", channel="slack", ...))
blocks = build_slack_blocks(response)
License
MIT. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file 3tears_channels-0.30.1.tar.gz.
File metadata
- Download URL: 3tears_channels-0.30.1.tar.gz
- Upload date:
- Size: 166.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78fc72c1ac1aca11a2163c48e2aa6b2c47667f4cd86652faeba531bd4e49797b
|
|
| MD5 |
3218f0145963e5ed8f046f2d0c2209b7
|
|
| BLAKE2b-256 |
ae29a2a4b8cddc33daf231b90435febd2fddc5c3b793a3f8610ddd5adf8860db
|
Provenance
The following attestation bundles were made for 3tears_channels-0.30.1.tar.gz:
Publisher:
release.yml on pacepace/3tears
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
3tears_channels-0.30.1.tar.gz -
Subject digest:
78fc72c1ac1aca11a2163c48e2aa6b2c47667f4cd86652faeba531bd4e49797b - Sigstore transparency entry: 2669865241
- Sigstore integration time:
-
Permalink:
pacepace/3tears@0f398bb6868f538de208dd7c265d99fd1608c432 -
Branch / Tag:
refs/tags/v0.30.1 - Owner: https://github.com/pacepace
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0f398bb6868f538de208dd7c265d99fd1608c432 -
Trigger Event:
push
-
Statement type:
File details
Details for the file 3tears_channels-0.30.1-py3-none-any.whl.
File metadata
- Download URL: 3tears_channels-0.30.1-py3-none-any.whl
- Upload date:
- Size: 98.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5112db6ac30cd9c8248edd016bd3d1a1a2c89e4af7c8a1291f9d622dcb9401f5
|
|
| MD5 |
c2a9ee09865211cccd5a5adfa40087b1
|
|
| BLAKE2b-256 |
197bb00eb8fb0764708ee1401d42491de99adcc150154d972c85905270a95b93
|
Provenance
The following attestation bundles were made for 3tears_channels-0.30.1-py3-none-any.whl:
Publisher:
release.yml on pacepace/3tears
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
3tears_channels-0.30.1-py3-none-any.whl -
Subject digest:
5112db6ac30cd9c8248edd016bd3d1a1a2c89e4af7c8a1291f9d622dcb9401f5 - Sigstore transparency entry: 2669865842
- Sigstore integration time:
-
Permalink:
pacepace/3tears@0f398bb6868f538de208dd7c265d99fd1608c432 -
Branch / Tag:
refs/tags/v0.30.1 - Owner: https://github.com/pacepace
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0f398bb6868f538de208dd7c265d99fd1608c432 -
Trigger Event:
push
-
Statement type: