mirror of
https://github.com/hanzoai/bot.git
synced 2026-10-30 17:24:26 +00:00
The docs said ~/.hanzo-bot/hanzo-bot.json (and ~/.hanzo-bot-<profile>, hanzo-bot.plugin.json), which nothing reads: src/config/paths.ts resolves ~/.bot, bot.json and ~/.bot-<profile>, and plugins ship bot.plugin.json. Every such path in docs/ now names what the code opens. Co-authored-by: Hanzo Dev <[email protected]>
3.2 KiB
3.2 KiB
summary, read_when, title
| summary | read_when | title | ||
|---|---|---|---|---|
| Poll sending via gateway + CLI |
|
Polls |
Polls
Supported channels
- Telegram
- WhatsApp (web channel)
- Discord
- MS Teams (Adaptive Cards)
CLI
# Telegram
hanzo-bot message poll --channel telegram --target 123456789 \
--poll-question "Ship it?" --poll-option "Yes" --poll-option "No"
hanzo-bot message poll --channel telegram --target -1001234567890:topic:42 \
--poll-question "Pick a time" --poll-option "10am" --poll-option "2pm" \
--poll-duration-seconds 300
# WhatsApp
hanzo-bot message poll --target +15555550123 \
--poll-question "Lunch today?" --poll-option "Yes" --poll-option "No" --poll-option "Maybe"
hanzo-bot message poll --target [email protected] \
--poll-question "Meeting time?" --poll-option "10am" --poll-option "2pm" --poll-option "4pm" --poll-multi
# Discord
hanzo-bot message poll --channel discord --target channel:123456789 \
--poll-question "Snack?" --poll-option "Pizza" --poll-option "Sushi"
hanzo-bot message poll --channel discord --target channel:123456789 \
--poll-question "Plan?" --poll-option "A" --poll-option "B" --poll-duration-hours 48
# MS Teams
hanzo-bot message poll --channel msteams --target conversation:19:[email protected] \
--poll-question "Lunch?" --poll-option "Pizza" --poll-option "Sushi"
Options:
--channel:whatsapp(default),telegram,discord, ormsteams--poll-multi: allow selecting multiple options--poll-duration-hours: Discord-only (defaults to 24 when omitted)--poll-duration-seconds: Telegram-only (5-600 seconds)--poll-anonymous/--poll-public: Telegram-only poll visibility
Gateway RPC
Method: poll
Params:
to(string, required)question(string, required)options(string[], required)maxSelections(number, optional)durationHours(number, optional)durationSeconds(number, optional, Telegram-only)isAnonymous(boolean, optional, Telegram-only)channel(string, optional, default:whatsapp)idempotencyKey(string, required)
Channel differences
- Telegram: 2-10 options. Supports forum topics via
threadIdor:topic:targets. UsesdurationSecondsinstead ofdurationHours, limited to 5-600 seconds. Supports anonymous and public polls. - WhatsApp: 2-12 options,
maxSelectionsmust be within option count, ignoresdurationHours. - Discord: 2-10 options,
durationHoursclamped to 1-768 hours (default 24).maxSelections > 1enables multi-select; Discord does not support a strict selection count. - MS Teams: Adaptive Card polls (HanzoBot-managed). No native poll API;
durationHoursis ignored.
Agent tool (Message)
Use the message tool with poll action (to, pollQuestion, pollOption, optional pollMulti, pollDurationHours, channel).
For Telegram, the tool also accepts pollDurationSeconds, pollAnonymous, and pollPublic.
Use action: "poll" for poll creation. Poll fields passed with action: "send" are rejected.
Note: Discord has no “pick exactly N” mode; pollMulti maps to multi-select.
Teams polls are rendered as Adaptive Cards and require the gateway to stay online
to record votes in ~/.bot/msteams-polls.json.