Add support for receiving and sending Telegram stickers:
Inbound:
- Receive static WEBP stickers (skip animated/video)
- Process stickers through dedicated vision call for descriptions
- Cache vision descriptions to avoid repeated API calls
- Graceful error handling for fetch failures
Outbound:
- Add sticker action to send stickers by fileId
- Add sticker-search action to find cached stickers by query
- Accept stickerId from shared schema, convert to fileId
Cache:
- Store sticker metadata (fileId, emoji, setName, description)
- Fuzzy search by description, emoji, and set name
- Persist to ~/.clawdbot/telegram/sticker-cache.json
Config:
- Single `channels.telegram.actions.sticker` option enables both
send and search actions
🤖 AI-assisted: Built with Claude Code (claude-opus-4-5)
Testing: Fully tested - unit tests pass, live tested on dev gateway
The contributor understands and has reviewed all code changes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
54 lines
920 B
TypeScript
54 lines
920 B
TypeScript
export const CHANNEL_MESSAGE_ACTION_NAMES = [
|
|
"send",
|
|
"broadcast",
|
|
"poll",
|
|
"react",
|
|
"reactions",
|
|
"read",
|
|
"edit",
|
|
"unsend",
|
|
"reply",
|
|
"sendWithEffect",
|
|
"renameGroup",
|
|
"setGroupIcon",
|
|
"addParticipant",
|
|
"removeParticipant",
|
|
"leaveGroup",
|
|
"sendAttachment",
|
|
"delete",
|
|
"pin",
|
|
"unpin",
|
|
"list-pins",
|
|
"permissions",
|
|
"thread-create",
|
|
"thread-list",
|
|
"thread-reply",
|
|
"search",
|
|
"sticker",
|
|
"sticker-search",
|
|
"member-info",
|
|
"role-info",
|
|
"emoji-list",
|
|
"emoji-upload",
|
|
"sticker-upload",
|
|
"role-add",
|
|
"role-remove",
|
|
"channel-info",
|
|
"channel-list",
|
|
"channel-create",
|
|
"channel-edit",
|
|
"channel-delete",
|
|
"channel-move",
|
|
"category-create",
|
|
"category-edit",
|
|
"category-delete",
|
|
"voice-status",
|
|
"event-list",
|
|
"event-create",
|
|
"timeout",
|
|
"kick",
|
|
"ban",
|
|
] as const;
|
|
|
|
export type ChannelMessageActionName = (typeof CHANNEL_MESSAGE_ACTION_NAMES)[number];
|