agent-messenger 1.15.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/README.md +73 -13
- package/.claude-plugin/marketplace.json +64 -12
- package/.claude-plugin/plugin.json +16 -3
- package/CONTRIBUTING.md +24 -3
- package/README.md +213 -52
- package/bun.lock +350 -2
- package/cubic.yaml +69 -0
- package/dist/package.json +126 -9
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +30 -6
- package/dist/src/cli.js.map +1 -1
- package/dist/src/platforms/channeltalk/client.d.ts +5 -1
- package/dist/src/platforms/channeltalk/client.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/client.js +23 -6
- package/dist/src/platforms/channeltalk/client.js.map +1 -1
- package/dist/src/platforms/channeltalk/commands/auth.d.ts +1 -1
- package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/commands/auth.js +4 -4
- package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
- package/dist/src/platforms/channeltalk/commands/shared.js +1 -1
- package/dist/src/platforms/channeltalk/commands/shared.js.map +1 -1
- package/dist/src/platforms/channeltalk/ensure-auth.d.ts +2 -2
- package/dist/src/platforms/channeltalk/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/ensure-auth.js +4 -4
- package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -1
- package/dist/src/platforms/channeltalk/index.d.ts +2 -2
- package/dist/src/platforms/channeltalk/index.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/index.js +1 -2
- package/dist/src/platforms/channeltalk/index.js.map +1 -1
- package/dist/src/platforms/channeltalk/token-extractor.d.ts +8 -0
- package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/token-extractor.js +127 -13
- package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
- package/dist/src/platforms/channeltalk/types.d.ts +52 -949
- package/dist/src/platforms/channeltalk/types.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/types.js +1 -1
- package/dist/src/platforms/channeltalk/types.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/client.d.ts +5 -1
- package/dist/src/platforms/channeltalkbot/client.d.ts.map +1 -1
- package/dist/src/platforms/channeltalkbot/client.js +24 -9
- package/dist/src/platforms/channeltalkbot/client.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/auth.js +2 -2
- package/dist/src/platforms/channeltalkbot/commands/auth.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/shared.js +1 -1
- package/dist/src/platforms/channeltalkbot/commands/shared.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/index.d.ts +2 -1
- package/dist/src/platforms/channeltalkbot/index.d.ts.map +1 -1
- package/dist/src/platforms/channeltalkbot/index.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/types.d.ts +24 -186
- package/dist/src/platforms/channeltalkbot/types.d.ts.map +1 -1
- package/dist/src/platforms/discord/client.d.ts +7 -1
- package/dist/src/platforms/discord/client.d.ts.map +1 -1
- package/dist/src/platforms/discord/client.js +27 -6
- package/dist/src/platforms/discord/client.js.map +1 -1
- package/dist/src/platforms/discord/commands/auth.js +2 -2
- package/dist/src/platforms/discord/commands/auth.js.map +1 -1
- package/dist/src/platforms/discord/commands/channel.js +3 -3
- package/dist/src/platforms/discord/commands/channel.js.map +1 -1
- package/dist/src/platforms/discord/commands/dm.js +2 -2
- package/dist/src/platforms/discord/commands/dm.js.map +1 -1
- package/dist/src/platforms/discord/commands/file.js +3 -3
- package/dist/src/platforms/discord/commands/file.js.map +1 -1
- package/dist/src/platforms/discord/commands/friend.js +1 -1
- package/dist/src/platforms/discord/commands/friend.js.map +1 -1
- package/dist/src/platforms/discord/commands/member.js +1 -1
- package/dist/src/platforms/discord/commands/member.js.map +1 -1
- package/dist/src/platforms/discord/commands/mention.js +1 -1
- package/dist/src/platforms/discord/commands/mention.js.map +1 -1
- package/dist/src/platforms/discord/commands/message.js +6 -6
- package/dist/src/platforms/discord/commands/message.js.map +1 -1
- package/dist/src/platforms/discord/commands/note.js +2 -2
- package/dist/src/platforms/discord/commands/note.js.map +1 -1
- package/dist/src/platforms/discord/commands/profile.js +1 -1
- package/dist/src/platforms/discord/commands/profile.js.map +1 -1
- package/dist/src/platforms/discord/commands/reaction.js +3 -3
- package/dist/src/platforms/discord/commands/reaction.js.map +1 -1
- package/dist/src/platforms/discord/commands/server.js +1 -1
- package/dist/src/platforms/discord/commands/server.js.map +1 -1
- package/dist/src/platforms/discord/commands/snapshot.js +1 -1
- package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/discord/commands/thread.js +2 -2
- package/dist/src/platforms/discord/commands/thread.js.map +1 -1
- package/dist/src/platforms/discord/commands/user.js +3 -3
- package/dist/src/platforms/discord/commands/user.js.map +1 -1
- package/dist/src/platforms/discord/ensure-auth.js +1 -1
- package/dist/src/platforms/discord/ensure-auth.js.map +1 -1
- package/dist/src/platforms/discord/index.d.ts +6 -0
- package/dist/src/platforms/discord/index.d.ts.map +1 -0
- package/dist/src/platforms/discord/index.js +5 -0
- package/dist/src/platforms/discord/index.js.map +1 -0
- package/dist/src/platforms/discord/listener.d.ts +41 -0
- package/dist/src/platforms/discord/listener.d.ts.map +1 -0
- package/dist/src/platforms/discord/listener.js +262 -0
- package/dist/src/platforms/discord/listener.js.map +1 -0
- package/dist/src/platforms/discord/types.d.ts +150 -352
- package/dist/src/platforms/discord/types.d.ts.map +1 -1
- package/dist/src/platforms/discord/types.js +28 -0
- package/dist/src/platforms/discord/types.js.map +1 -1
- package/dist/src/platforms/discordbot/client.d.ts +4 -1
- package/dist/src/platforms/discordbot/client.d.ts.map +1 -1
- package/dist/src/platforms/discordbot/client.js +23 -7
- package/dist/src/platforms/discordbot/client.js.map +1 -1
- package/dist/src/platforms/discordbot/commands/auth.js +2 -2
- package/dist/src/platforms/discordbot/commands/auth.js.map +1 -1
- package/dist/src/platforms/discordbot/commands/shared.js +1 -1
- package/dist/src/platforms/discordbot/commands/shared.js.map +1 -1
- package/dist/src/platforms/discordbot/types.d.ts +15 -203
- package/dist/src/platforms/discordbot/types.d.ts.map +1 -1
- package/dist/src/platforms/instagram/cli.d.ts +5 -0
- package/dist/src/platforms/instagram/cli.d.ts.map +1 -0
- package/dist/src/platforms/instagram/cli.js +30 -0
- package/dist/src/platforms/instagram/cli.js.map +1 -0
- package/dist/src/platforms/instagram/client.d.ts +65 -0
- package/dist/src/platforms/instagram/client.d.ts.map +1 -0
- package/dist/src/platforms/instagram/client.js +524 -0
- package/dist/src/platforms/instagram/client.js.map +1 -0
- package/dist/src/platforms/instagram/commands/auth.d.ts +3 -0
- package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/instagram/commands/auth.js +330 -0
- package/dist/src/platforms/instagram/commands/auth.js.map +1 -0
- package/dist/src/platforms/instagram/commands/chat.d.ts +3 -0
- package/dist/src/platforms/instagram/commands/chat.d.ts.map +1 -0
- package/dist/src/platforms/instagram/commands/chat.js +42 -0
- package/dist/src/platforms/instagram/commands/chat.js.map +1 -0
- package/dist/src/platforms/instagram/commands/index.d.ts +4 -0
- package/dist/src/platforms/instagram/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/instagram/commands/index.js +4 -0
- package/dist/src/platforms/instagram/commands/index.js.map +1 -0
- package/dist/src/platforms/instagram/commands/message.d.ts +3 -0
- package/dist/src/platforms/instagram/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/instagram/commands/message.js +102 -0
- package/dist/src/platforms/instagram/commands/message.js.map +1 -0
- package/dist/src/platforms/instagram/commands/shared.d.ts +8 -0
- package/dist/src/platforms/instagram/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/instagram/commands/shared.js +31 -0
- package/dist/src/platforms/instagram/commands/shared.js.map +1 -0
- package/dist/src/platforms/instagram/credential-manager.d.ts +20 -0
- package/dist/src/platforms/instagram/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/instagram/credential-manager.js +104 -0
- package/dist/src/platforms/instagram/credential-manager.js.map +1 -0
- package/dist/src/platforms/instagram/ensure-auth.d.ts +2 -0
- package/dist/src/platforms/instagram/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/instagram/ensure-auth.js +21 -0
- package/dist/src/platforms/instagram/ensure-auth.js.map +1 -0
- package/dist/src/platforms/instagram/index.d.ts +5 -0
- package/dist/src/platforms/instagram/index.d.ts.map +1 -0
- package/dist/src/platforms/instagram/index.js +5 -0
- package/dist/src/platforms/instagram/index.js.map +1 -0
- package/dist/src/platforms/instagram/listener.d.ts +32 -0
- package/dist/src/platforms/instagram/listener.d.ts.map +1 -0
- package/dist/src/platforms/instagram/listener.js +87 -0
- package/dist/src/platforms/instagram/listener.js.map +1 -0
- package/dist/src/platforms/instagram/types.d.ts +61 -0
- package/dist/src/platforms/instagram/types.d.ts.map +1 -0
- package/dist/src/platforms/instagram/types.js +89 -0
- package/dist/src/platforms/instagram/types.js.map +1 -0
- package/dist/src/platforms/kakaotalk/auth/kakao-login.d.ts +27 -0
- package/dist/src/platforms/kakaotalk/auth/kakao-login.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/auth/kakao-login.js +213 -0
- package/dist/src/platforms/kakaotalk/auth/kakao-login.js.map +1 -0
- package/dist/src/platforms/kakaotalk/cli.d.ts +5 -0
- package/dist/src/platforms/kakaotalk/cli.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/cli.js +30 -0
- package/dist/src/platforms/kakaotalk/cli.js.map +1 -0
- package/dist/src/platforms/kakaotalk/client.d.ts +40 -0
- package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/client.js +290 -0
- package/dist/src/platforms/kakaotalk/client.js.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/auth.d.ts +3 -0
- package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/auth.js +515 -0
- package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/chat.d.ts +3 -0
- package/dist/src/platforms/kakaotalk/commands/chat.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/chat.js +23 -0
- package/dist/src/platforms/kakaotalk/commands/chat.js.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/index.d.ts +4 -0
- package/dist/src/platforms/kakaotalk/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/index.js +4 -0
- package/dist/src/platforms/kakaotalk/commands/index.js.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/message.d.ts +3 -0
- package/dist/src/platforms/kakaotalk/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/message.js +41 -0
- package/dist/src/platforms/kakaotalk/commands/message.js.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/shared.d.ts +7 -0
- package/dist/src/platforms/kakaotalk/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/commands/shared.js +24 -0
- package/dist/src/platforms/kakaotalk/commands/shared.js.map +1 -0
- package/dist/src/platforms/kakaotalk/credential-manager.d.ts +27 -0
- package/dist/src/platforms/kakaotalk/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/credential-manager.js +82 -0
- package/dist/src/platforms/kakaotalk/credential-manager.js.map +1 -0
- package/dist/src/platforms/kakaotalk/ensure-auth.d.ts +3 -0
- package/dist/src/platforms/kakaotalk/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/ensure-auth.js +11 -0
- package/dist/src/platforms/kakaotalk/ensure-auth.js.map +1 -0
- package/dist/src/platforms/kakaotalk/index.d.ts +7 -0
- package/dist/src/platforms/kakaotalk/index.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/index.js +5 -0
- package/dist/src/platforms/kakaotalk/index.js.map +1 -0
- package/dist/src/platforms/kakaotalk/listener.d.ts +24 -0
- package/dist/src/platforms/kakaotalk/listener.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/listener.js +171 -0
- package/dist/src/platforms/kakaotalk/listener.js.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/config.d.ts +14 -0
- package/dist/src/platforms/kakaotalk/protocol/config.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/config.js +23 -0
- package/dist/src/platforms/kakaotalk/protocol/config.js.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/connection.d.ts +25 -0
- package/dist/src/platforms/kakaotalk/protocol/connection.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/connection.js +144 -0
- package/dist/src/platforms/kakaotalk/protocol/connection.js.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/crypto.d.ts +8 -0
- package/dist/src/platforms/kakaotalk/protocol/crypto.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/crypto.js +51 -0
- package/dist/src/platforms/kakaotalk/protocol/crypto.js.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/packet.d.ts +7 -0
- package/dist/src/platforms/kakaotalk/protocol/packet.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/packet.js +38 -0
- package/dist/src/platforms/kakaotalk/protocol/packet.js.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/session.d.ts +18 -0
- package/dist/src/platforms/kakaotalk/protocol/session.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/session.js +127 -0
- package/dist/src/platforms/kakaotalk/protocol/session.js.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/types.d.ts +41 -0
- package/dist/src/platforms/kakaotalk/protocol/types.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/protocol/types.js +8 -0
- package/dist/src/platforms/kakaotalk/protocol/types.js.map +1 -0
- package/dist/src/platforms/kakaotalk/token-extractor.d.ts +17 -0
- package/dist/src/platforms/kakaotalk/token-extractor.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/token-extractor.js +273 -0
- package/dist/src/platforms/kakaotalk/token-extractor.js.map +1 -0
- package/dist/src/platforms/kakaotalk/types.d.ts +198 -0
- package/dist/src/platforms/kakaotalk/types.d.ts.map +1 -0
- package/dist/src/platforms/kakaotalk/types.js +74 -0
- package/dist/src/platforms/kakaotalk/types.js.map +1 -0
- package/dist/src/platforms/line/cli.d.ts +5 -0
- package/dist/src/platforms/line/cli.d.ts.map +1 -0
- package/dist/src/platforms/line/cli.js +32 -0
- package/dist/src/platforms/line/cli.js.map +1 -0
- package/dist/src/platforms/line/client.d.ts +31 -0
- package/dist/src/platforms/line/client.d.ts.map +1 -0
- package/dist/src/platforms/line/client.js +296 -0
- package/dist/src/platforms/line/client.js.map +1 -0
- package/dist/src/platforms/line/commands/auth.d.ts +3 -0
- package/dist/src/platforms/line/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/line/commands/auth.js +199 -0
- package/dist/src/platforms/line/commands/auth.js.map +1 -0
- package/dist/src/platforms/line/commands/chat.d.ts +3 -0
- package/dist/src/platforms/line/commands/chat.d.ts.map +1 -0
- package/dist/src/platforms/line/commands/chat.js +28 -0
- package/dist/src/platforms/line/commands/chat.js.map +1 -0
- package/dist/src/platforms/line/commands/friend.d.ts +3 -0
- package/dist/src/platforms/line/commands/friend.d.ts.map +1 -0
- package/dist/src/platforms/line/commands/friend.js +25 -0
- package/dist/src/platforms/line/commands/friend.js.map +1 -0
- package/dist/src/platforms/line/commands/index.d.ts +6 -0
- package/dist/src/platforms/line/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/line/commands/index.js +6 -0
- package/dist/src/platforms/line/commands/index.js.map +1 -0
- package/dist/src/platforms/line/commands/message.d.ts +3 -0
- package/dist/src/platforms/line/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/line/commands/message.js +48 -0
- package/dist/src/platforms/line/commands/message.js.map +1 -0
- package/dist/src/platforms/line/commands/profile.d.ts +3 -0
- package/dist/src/platforms/line/commands/profile.d.ts.map +1 -0
- package/dist/src/platforms/line/commands/profile.js +23 -0
- package/dist/src/platforms/line/commands/profile.js.map +1 -0
- package/dist/src/platforms/line/credential-manager.d.ts +22 -0
- package/dist/src/platforms/line/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/line/credential-manager.js +71 -0
- package/dist/src/platforms/line/credential-manager.js.map +1 -0
- package/dist/src/platforms/line/ensure-auth.d.ts +3 -0
- package/dist/src/platforms/line/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/line/ensure-auth.js +10 -0
- package/dist/src/platforms/line/ensure-auth.js.map +1 -0
- package/dist/src/platforms/line/index.d.ts +7 -0
- package/dist/src/platforms/line/index.d.ts.map +1 -0
- package/dist/src/platforms/line/index.js +6 -0
- package/dist/src/platforms/line/index.js.map +1 -0
- package/dist/src/platforms/line/listener.d.ts +22 -0
- package/dist/src/platforms/line/listener.d.ts.map +1 -0
- package/dist/src/platforms/line/listener.js +121 -0
- package/dist/src/platforms/line/listener.js.map +1 -0
- package/dist/src/platforms/line/types.d.ts +165 -0
- package/dist/src/platforms/line/types.d.ts.map +1 -0
- package/dist/src/platforms/line/types.js +79 -0
- package/dist/src/platforms/line/types.js.map +1 -0
- package/dist/src/platforms/slack/cli.d.ts.map +1 -1
- package/dist/src/platforms/slack/cli.js +6 -1
- package/dist/src/platforms/slack/cli.js.map +1 -1
- package/dist/src/platforms/slack/client.d.ts +81 -3
- package/dist/src/platforms/slack/client.d.ts.map +1 -1
- package/dist/src/platforms/slack/client.js +568 -41
- package/dist/src/platforms/slack/client.js.map +1 -1
- package/dist/src/platforms/slack/commands/activity.js +1 -1
- package/dist/src/platforms/slack/commands/activity.js.map +1 -1
- package/dist/src/platforms/slack/commands/auth.js +2 -2
- package/dist/src/platforms/slack/commands/auth.js.map +1 -1
- package/dist/src/platforms/slack/commands/bookmark.d.ts +3 -0
- package/dist/src/platforms/slack/commands/bookmark.d.ts.map +1 -0
- package/dist/src/platforms/slack/commands/bookmark.js +116 -0
- package/dist/src/platforms/slack/commands/bookmark.js.map +1 -0
- package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/channel.js +178 -6
- package/dist/src/platforms/slack/commands/channel.js.map +1 -1
- package/dist/src/platforms/slack/commands/drafts.js +1 -1
- package/dist/src/platforms/slack/commands/drafts.js.map +1 -1
- package/dist/src/platforms/slack/commands/emoji.d.ts +3 -0
- package/dist/src/platforms/slack/commands/emoji.d.ts.map +1 -0
- package/dist/src/platforms/slack/commands/emoji.js +27 -0
- package/dist/src/platforms/slack/commands/emoji.js.map +1 -0
- package/dist/src/platforms/slack/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/file.js +26 -5
- package/dist/src/platforms/slack/commands/file.js.map +1 -1
- package/dist/src/platforms/slack/commands/index.d.ts +5 -0
- package/dist/src/platforms/slack/commands/index.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/index.js +5 -0
- package/dist/src/platforms/slack/commands/index.js.map +1 -1
- package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/message.js +134 -8
- package/dist/src/platforms/slack/commands/message.js.map +1 -1
- package/dist/src/platforms/slack/commands/pin.d.ts +3 -0
- package/dist/src/platforms/slack/commands/pin.d.ts.map +1 -0
- package/dist/src/platforms/slack/commands/pin.js +76 -0
- package/dist/src/platforms/slack/commands/pin.js.map +1 -0
- package/dist/src/platforms/slack/commands/reaction.js +3 -3
- package/dist/src/platforms/slack/commands/reaction.js.map +1 -1
- package/dist/src/platforms/slack/commands/reminder.d.ts +3 -0
- package/dist/src/platforms/slack/commands/reminder.d.ts.map +1 -0
- package/dist/src/platforms/slack/commands/reminder.js +98 -0
- package/dist/src/platforms/slack/commands/reminder.js.map +1 -0
- package/dist/src/platforms/slack/commands/saved.js +1 -1
- package/dist/src/platforms/slack/commands/saved.js.map +1 -1
- package/dist/src/platforms/slack/commands/sections.js +1 -1
- package/dist/src/platforms/slack/commands/sections.js.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.js +12 -1
- package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/slack/commands/unread.js +3 -3
- package/dist/src/platforms/slack/commands/unread.js.map +1 -1
- package/dist/src/platforms/slack/commands/user.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/user.js +78 -1
- package/dist/src/platforms/slack/commands/user.js.map +1 -1
- package/dist/src/platforms/slack/commands/usergroup.d.ts +3 -0
- package/dist/src/platforms/slack/commands/usergroup.d.ts.map +1 -0
- package/dist/src/platforms/slack/commands/usergroup.js +190 -0
- package/dist/src/platforms/slack/commands/usergroup.js.map +1 -0
- package/dist/src/platforms/slack/credential-manager.d.ts +2 -1
- package/dist/src/platforms/slack/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/slack/credential-manager.js +2 -1
- package/dist/src/platforms/slack/credential-manager.js.map +1 -1
- package/dist/src/platforms/slack/ensure-auth.js +4 -4
- package/dist/src/platforms/slack/ensure-auth.js.map +1 -1
- package/dist/src/platforms/slack/index.d.ts +4 -1
- package/dist/src/platforms/slack/index.d.ts.map +1 -1
- package/dist/src/platforms/slack/index.js +3 -1
- package/dist/src/platforms/slack/index.js.map +1 -1
- package/dist/src/platforms/slack/listener.d.ts +30 -0
- package/dist/src/platforms/slack/listener.d.ts.map +1 -0
- package/dist/src/platforms/slack/listener.js +157 -0
- package/dist/src/platforms/slack/listener.js.map +1 -0
- package/dist/src/platforms/slack/types.d.ts +198 -275
- package/dist/src/platforms/slack/types.d.ts.map +1 -1
- package/dist/src/platforms/slack/types.js +22 -0
- package/dist/src/platforms/slack/types.js.map +1 -1
- package/dist/src/platforms/slackbot/client.d.ts +4 -1
- package/dist/src/platforms/slackbot/client.d.ts.map +1 -1
- package/dist/src/platforms/slackbot/client.js +40 -21
- package/dist/src/platforms/slackbot/client.js.map +1 -1
- package/dist/src/platforms/slackbot/commands/auth.js +2 -2
- package/dist/src/platforms/slackbot/commands/auth.js.map +1 -1
- package/dist/src/platforms/slackbot/commands/shared.js +1 -1
- package/dist/src/platforms/slackbot/commands/shared.js.map +1 -1
- package/dist/src/platforms/slackbot/types.d.ts +20 -282
- package/dist/src/platforms/slackbot/types.d.ts.map +1 -1
- package/dist/src/platforms/teams/client.d.ts +5 -1
- package/dist/src/platforms/teams/client.d.ts.map +1 -1
- package/dist/src/platforms/teams/client.js +27 -9
- package/dist/src/platforms/teams/client.js.map +1 -1
- package/dist/src/platforms/teams/commands/auth.js +3 -3
- package/dist/src/platforms/teams/commands/auth.js.map +1 -1
- package/dist/src/platforms/teams/commands/channel.js +3 -3
- package/dist/src/platforms/teams/commands/channel.js.map +1 -1
- package/dist/src/platforms/teams/commands/file.js +3 -3
- package/dist/src/platforms/teams/commands/file.js.map +1 -1
- package/dist/src/platforms/teams/commands/message.js +4 -4
- package/dist/src/platforms/teams/commands/message.js.map +1 -1
- package/dist/src/platforms/teams/commands/reaction.js +2 -2
- package/dist/src/platforms/teams/commands/reaction.js.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.js +1 -1
- package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/teams/commands/team.js +1 -1
- package/dist/src/platforms/teams/commands/team.js.map +1 -1
- package/dist/src/platforms/teams/commands/user.js +3 -3
- package/dist/src/platforms/teams/commands/user.js.map +1 -1
- package/dist/src/platforms/teams/ensure-auth.js +1 -1
- package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
- package/dist/src/platforms/teams/index.d.ts +6 -0
- package/dist/src/platforms/teams/index.d.ts.map +1 -0
- package/dist/src/platforms/teams/index.js +5 -0
- package/dist/src/platforms/teams/index.js.map +1 -0
- package/dist/src/platforms/teams/types.d.ts +26 -193
- package/dist/src/platforms/teams/types.d.ts.map +1 -1
- package/dist/src/platforms/telegram/app-config.d.ts +7 -0
- package/dist/src/platforms/telegram/app-config.d.ts.map +1 -0
- package/dist/src/platforms/telegram/app-config.js +39 -0
- package/dist/src/platforms/telegram/app-config.js.map +1 -0
- package/dist/src/platforms/telegram/chat-utils.d.ts +5 -0
- package/dist/src/platforms/telegram/chat-utils.d.ts.map +1 -0
- package/dist/src/platforms/telegram/chat-utils.js +33 -0
- package/dist/src/platforms/telegram/chat-utils.js.map +1 -0
- package/dist/src/platforms/telegram/cli.d.ts +5 -0
- package/dist/src/platforms/telegram/cli.d.ts.map +1 -0
- package/dist/src/platforms/telegram/cli.js +15 -0
- package/dist/src/platforms/telegram/cli.js.map +1 -0
- package/dist/src/platforms/telegram/client.d.ts +47 -0
- package/dist/src/platforms/telegram/client.d.ts.map +1 -0
- package/dist/src/platforms/telegram/client.js +481 -0
- package/dist/src/platforms/telegram/client.js.map +1 -0
- package/dist/src/platforms/telegram/commands/auth.d.ts +44 -0
- package/dist/src/platforms/telegram/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/telegram/commands/auth.js +522 -0
- package/dist/src/platforms/telegram/commands/auth.js.map +1 -0
- package/dist/src/platforms/telegram/commands/chat.d.ts +3 -0
- package/dist/src/platforms/telegram/commands/chat.d.ts.map +1 -0
- package/dist/src/platforms/telegram/commands/chat.js +55 -0
- package/dist/src/platforms/telegram/commands/chat.js.map +1 -0
- package/dist/src/platforms/telegram/commands/index.d.ts +4 -0
- package/dist/src/platforms/telegram/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/telegram/commands/index.js +4 -0
- package/dist/src/platforms/telegram/commands/index.js.map +1 -0
- package/dist/src/platforms/telegram/commands/message.d.ts +3 -0
- package/dist/src/platforms/telegram/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/telegram/commands/message.js +40 -0
- package/dist/src/platforms/telegram/commands/message.js.map +1 -0
- package/dist/src/platforms/telegram/commands/shared.d.ts +10 -0
- package/dist/src/platforms/telegram/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/telegram/commands/shared.js +32 -0
- package/dist/src/platforms/telegram/commands/shared.js.map +1 -0
- package/dist/src/platforms/telegram/credential-manager.d.ts +25 -0
- package/dist/src/platforms/telegram/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/telegram/credential-manager.js +159 -0
- package/dist/src/platforms/telegram/credential-manager.js.map +1 -0
- package/dist/src/platforms/telegram/my-telegram-org.d.ts +14 -0
- package/dist/src/platforms/telegram/my-telegram-org.d.ts.map +1 -0
- package/dist/src/platforms/telegram/my-telegram-org.js +164 -0
- package/dist/src/platforms/telegram/my-telegram-org.js.map +1 -0
- package/dist/src/platforms/telegram/tdlib.d.ts +11 -0
- package/dist/src/platforms/telegram/tdlib.d.ts.map +1 -0
- package/dist/src/platforms/telegram/tdlib.js +113 -0
- package/dist/src/platforms/telegram/tdlib.js.map +1 -0
- package/dist/src/platforms/telegram/types.d.ts +192 -0
- package/dist/src/platforms/telegram/types.d.ts.map +1 -0
- package/dist/src/platforms/telegram/types.js +183 -0
- package/dist/src/platforms/telegram/types.js.map +1 -0
- package/dist/src/platforms/webex/app-config.d.ts +7 -0
- package/dist/src/platforms/webex/app-config.d.ts.map +1 -0
- package/dist/src/platforms/webex/app-config.js +20 -0
- package/dist/src/platforms/webex/app-config.js.map +1 -0
- package/dist/src/platforms/webex/cli.d.ts +5 -0
- package/dist/src/platforms/webex/cli.d.ts.map +1 -0
- package/dist/src/platforms/webex/cli.js +32 -0
- package/dist/src/platforms/webex/cli.js.map +1 -0
- package/dist/src/platforms/webex/client.d.ts +45 -0
- package/dist/src/platforms/webex/client.d.ts.map +1 -0
- package/dist/src/platforms/webex/client.js +175 -0
- package/dist/src/platforms/webex/client.js.map +1 -0
- package/dist/src/platforms/webex/commands/auth.d.ts +15 -0
- package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/webex/commands/auth.js +124 -0
- package/dist/src/platforms/webex/commands/auth.js.map +1 -0
- package/dist/src/platforms/webex/commands/index.d.ts +6 -0
- package/dist/src/platforms/webex/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/webex/commands/index.js +6 -0
- package/dist/src/platforms/webex/commands/index.js.map +1 -0
- package/dist/src/platforms/webex/commands/member.d.ts +7 -0
- package/dist/src/platforms/webex/commands/member.d.ts.map +1 -0
- package/dist/src/platforms/webex/commands/member.js +34 -0
- package/dist/src/platforms/webex/commands/member.js.map +1 -0
- package/dist/src/platforms/webex/commands/message.d.ts +26 -0
- package/dist/src/platforms/webex/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/webex/commands/message.js +153 -0
- package/dist/src/platforms/webex/commands/message.js.map +1 -0
- package/dist/src/platforms/webex/commands/snapshot.d.ts +9 -0
- package/dist/src/platforms/webex/commands/snapshot.d.ts.map +1 -0
- package/dist/src/platforms/webex/commands/snapshot.js +72 -0
- package/dist/src/platforms/webex/commands/snapshot.js.map +1 -0
- package/dist/src/platforms/webex/commands/space.d.ts +11 -0
- package/dist/src/platforms/webex/commands/space.d.ts.map +1 -0
- package/dist/src/platforms/webex/commands/space.js +59 -0
- package/dist/src/platforms/webex/commands/space.js.map +1 -0
- package/dist/src/platforms/webex/credential-manager.d.ts +23 -0
- package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/webex/credential-manager.js +148 -0
- package/dist/src/platforms/webex/credential-manager.js.map +1 -0
- package/dist/src/platforms/webex/ensure-auth.d.ts +2 -0
- package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/webex/ensure-auth.js +20 -0
- package/dist/src/platforms/webex/ensure-auth.js.map +1 -0
- package/dist/src/platforms/webex/index.d.ts +6 -0
- package/dist/src/platforms/webex/index.d.ts.map +1 -0
- package/dist/src/platforms/webex/index.js +5 -0
- package/dist/src/platforms/webex/index.js.map +1 -0
- package/dist/src/platforms/webex/types.d.ts +124 -0
- package/dist/src/platforms/webex/types.d.ts.map +1 -0
- package/dist/src/platforms/webex/types.js +63 -0
- package/dist/src/platforms/webex/types.js.map +1 -0
- package/dist/src/platforms/whatsapp/cli.d.ts +6 -0
- package/dist/src/platforms/whatsapp/cli.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/cli.js +31 -0
- package/dist/src/platforms/whatsapp/cli.js.map +1 -0
- package/dist/src/platforms/whatsapp/client.d.ts +39 -0
- package/dist/src/platforms/whatsapp/client.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/client.js +436 -0
- package/dist/src/platforms/whatsapp/client.js.map +1 -0
- package/dist/src/platforms/whatsapp/commands/auth.d.ts +3 -0
- package/dist/src/platforms/whatsapp/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/commands/auth.js +170 -0
- package/dist/src/platforms/whatsapp/commands/auth.js.map +1 -0
- package/dist/src/platforms/whatsapp/commands/chat.d.ts +3 -0
- package/dist/src/platforms/whatsapp/commands/chat.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/commands/chat.js +42 -0
- package/dist/src/platforms/whatsapp/commands/chat.js.map +1 -0
- package/dist/src/platforms/whatsapp/commands/index.d.ts +4 -0
- package/dist/src/platforms/whatsapp/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/commands/index.js +4 -0
- package/dist/src/platforms/whatsapp/commands/index.js.map +1 -0
- package/dist/src/platforms/whatsapp/commands/message.d.ts +3 -0
- package/dist/src/platforms/whatsapp/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/commands/message.js +61 -0
- package/dist/src/platforms/whatsapp/commands/message.js.map +1 -0
- package/dist/src/platforms/whatsapp/commands/shared.d.ts +8 -0
- package/dist/src/platforms/whatsapp/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/commands/shared.js +37 -0
- package/dist/src/platforms/whatsapp/commands/shared.js.map +1 -0
- package/dist/src/platforms/whatsapp/credential-manager.d.ts +20 -0
- package/dist/src/platforms/whatsapp/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/credential-manager.js +104 -0
- package/dist/src/platforms/whatsapp/credential-manager.js.map +1 -0
- package/dist/src/platforms/whatsapp/ensure-auth.d.ts +2 -0
- package/dist/src/platforms/whatsapp/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/ensure-auth.js +23 -0
- package/dist/src/platforms/whatsapp/ensure-auth.js.map +1 -0
- package/dist/src/platforms/whatsapp/index.d.ts +4 -0
- package/dist/src/platforms/whatsapp/index.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/index.js +4 -0
- package/dist/src/platforms/whatsapp/index.js.map +1 -0
- package/dist/src/platforms/whatsapp/suppress-ws-warnings.d.ts +11 -0
- package/dist/src/platforms/whatsapp/suppress-ws-warnings.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/suppress-ws-warnings.js +24 -0
- package/dist/src/platforms/whatsapp/suppress-ws-warnings.js.map +1 -0
- package/dist/src/platforms/whatsapp/types.d.ts +42 -0
- package/dist/src/platforms/whatsapp/types.d.ts.map +1 -0
- package/dist/src/platforms/whatsapp/types.js +75 -0
- package/dist/src/platforms/whatsapp/types.js.map +1 -0
- package/dist/src/platforms/whatsappbot/cli.d.ts +5 -0
- package/dist/src/platforms/whatsappbot/cli.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/cli.js +17 -0
- package/dist/src/platforms/whatsappbot/cli.js.map +1 -0
- package/dist/src/platforms/whatsappbot/client.d.ts +31 -0
- package/dist/src/platforms/whatsappbot/client.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/client.js +202 -0
- package/dist/src/platforms/whatsappbot/client.js.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/auth.d.ts +28 -0
- package/dist/src/platforms/whatsappbot/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/auth.js +163 -0
- package/dist/src/platforms/whatsappbot/commands/auth.js.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/index.d.ts +4 -0
- package/dist/src/platforms/whatsappbot/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/index.js +4 -0
- package/dist/src/platforms/whatsappbot/commands/index.js.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/message.d.ts +27 -0
- package/dist/src/platforms/whatsappbot/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/message.js +122 -0
- package/dist/src/platforms/whatsappbot/commands/message.js.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/shared.d.ts +9 -0
- package/dist/src/platforms/whatsappbot/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/shared.js +13 -0
- package/dist/src/platforms/whatsappbot/commands/shared.js.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/template.d.ts +16 -0
- package/dist/src/platforms/whatsappbot/commands/template.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/commands/template.js +51 -0
- package/dist/src/platforms/whatsappbot/commands/template.js.map +1 -0
- package/dist/src/platforms/whatsappbot/credential-manager.d.ts +17 -0
- package/dist/src/platforms/whatsappbot/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/credential-manager.js +121 -0
- package/dist/src/platforms/whatsappbot/credential-manager.js.map +1 -0
- package/dist/src/platforms/whatsappbot/index.d.ts +5 -0
- package/dist/src/platforms/whatsappbot/index.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/index.js +4 -0
- package/dist/src/platforms/whatsappbot/index.js.map +1 -0
- package/dist/src/platforms/whatsappbot/types.d.ts +66 -0
- package/dist/src/platforms/whatsappbot/types.d.ts.map +1 -0
- package/dist/src/platforms/whatsappbot/types.js +28 -0
- package/dist/src/platforms/whatsappbot/types.js.map +1 -0
- package/dist/src/tui/adapters/channeltalk-adapter.d.ts +19 -0
- package/dist/src/tui/adapters/channeltalk-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/channeltalk-adapter.js +88 -0
- package/dist/src/tui/adapters/channeltalk-adapter.js.map +1 -0
- package/dist/src/tui/adapters/discord-adapter.d.ts +22 -0
- package/dist/src/tui/adapters/discord-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/discord-adapter.js +100 -0
- package/dist/src/tui/adapters/discord-adapter.js.map +1 -0
- package/dist/src/tui/adapters/instagram-adapter.d.ts +18 -0
- package/dist/src/tui/adapters/instagram-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/instagram-adapter.js +115 -0
- package/dist/src/tui/adapters/instagram-adapter.js.map +1 -0
- package/dist/src/tui/adapters/kakaotalk-adapter.d.ts +18 -0
- package/dist/src/tui/adapters/kakaotalk-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/kakaotalk-adapter.js +146 -0
- package/dist/src/tui/adapters/kakaotalk-adapter.js.map +1 -0
- package/dist/src/tui/adapters/line-adapter.d.ts +18 -0
- package/dist/src/tui/adapters/line-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/line-adapter.js +92 -0
- package/dist/src/tui/adapters/line-adapter.js.map +1 -0
- package/dist/src/tui/adapters/slack-adapter.d.ts +23 -0
- package/dist/src/tui/adapters/slack-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/slack-adapter.js +111 -0
- package/dist/src/tui/adapters/slack-adapter.js.map +1 -0
- package/dist/src/tui/adapters/teams-adapter.d.ts +20 -0
- package/dist/src/tui/adapters/teams-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/teams-adapter.js +85 -0
- package/dist/src/tui/adapters/teams-adapter.js.map +1 -0
- package/dist/src/tui/adapters/telegram-adapter.d.ts +18 -0
- package/dist/src/tui/adapters/telegram-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/telegram-adapter.js +183 -0
- package/dist/src/tui/adapters/telegram-adapter.js.map +1 -0
- package/dist/src/tui/adapters/types.d.ts +41 -0
- package/dist/src/tui/adapters/types.d.ts.map +1 -0
- package/dist/src/tui/adapters/types.js +2 -0
- package/dist/src/tui/adapters/types.js.map +1 -0
- package/dist/src/tui/adapters/webex-adapter.d.ts +14 -0
- package/dist/src/tui/adapters/webex-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/webex-adapter.js +79 -0
- package/dist/src/tui/adapters/webex-adapter.js.map +1 -0
- package/dist/src/tui/adapters/whatsapp-adapter.d.ts +18 -0
- package/dist/src/tui/adapters/whatsapp-adapter.d.ts.map +1 -0
- package/dist/src/tui/adapters/whatsapp-adapter.js +120 -0
- package/dist/src/tui/adapters/whatsapp-adapter.js.map +1 -0
- package/dist/src/tui/app.d.ts +2 -0
- package/dist/src/tui/app.d.ts.map +1 -0
- package/dist/src/tui/app.js +654 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/cli.d.ts +3 -0
- package/dist/src/tui/cli.d.ts.map +1 -0
- package/dist/src/tui/cli.js +14 -0
- package/dist/src/tui/cli.js.map +1 -0
- package/dist/src/tui/utils.d.ts +5 -0
- package/dist/src/tui/utils.d.ts.map +1 -0
- package/dist/src/tui/utils.js +54 -0
- package/dist/src/tui/utils.js.map +1 -0
- package/dist/src/tui/views/channel-picker.d.ts +18 -0
- package/dist/src/tui/views/channel-picker.d.ts.map +1 -0
- package/dist/src/tui/views/channel-picker.js +131 -0
- package/dist/src/tui/views/channel-picker.js.map +1 -0
- package/dist/src/tui/views/workspace-picker.d.ts +18 -0
- package/dist/src/tui/views/workspace-picker.d.ts.map +1 -0
- package/dist/src/tui/views/workspace-picker.js +131 -0
- package/dist/src/tui/views/workspace-picker.js.map +1 -0
- package/docs/bun.lock +2 -666
- package/docs/content/docs/agent-skills.mdx +1 -1
- package/docs/content/docs/{integrations → cli}/channeltalk.mdx +9 -5
- package/docs/content/docs/{integrations → cli}/channeltalkbot.mdx +1 -1
- package/docs/content/docs/cli/instagram.mdx +211 -0
- package/docs/content/docs/cli/kakaotalk.mdx +286 -0
- package/docs/content/docs/cli/line.mdx +306 -0
- package/docs/content/docs/cli/meta.json +19 -0
- package/docs/content/docs/cli/slack.mdx +395 -0
- package/docs/content/docs/{integrations → cli}/slackbot.mdx +1 -1
- package/docs/content/docs/{integrations → cli}/teams.mdx +2 -2
- package/docs/content/docs/cli/telegram.mdx +107 -0
- package/docs/content/docs/cli/webex.mdx +291 -0
- package/docs/content/docs/cli/whatsapp.mdx +163 -0
- package/docs/content/docs/cli/whatsappbot.mdx +169 -0
- package/docs/content/docs/index.mdx +21 -15
- package/docs/content/docs/meta.json +9 -1
- package/docs/content/docs/quick-start.mdx +24 -8
- package/docs/content/docs/sdk/channeltalk.mdx +384 -0
- package/docs/content/docs/sdk/channeltalkbot.mdx +395 -0
- package/docs/content/docs/sdk/discord.mdx +535 -0
- package/docs/content/docs/sdk/instagram.mdx +367 -0
- package/docs/content/docs/sdk/kakaotalk.mdx +290 -0
- package/docs/content/docs/sdk/line.mdx +347 -0
- package/docs/content/docs/sdk/meta.json +4 -0
- package/docs/content/docs/sdk/slack.mdx +671 -0
- package/docs/content/docs/sdk/teams.mdx +350 -0
- package/docs/content/docs/sdk/webex.mdx +260 -0
- package/docs/content/docs/sdk/whatsapp.mdx +293 -0
- package/docs/content/docs/sdk/whatsappbot.mdx +266 -0
- package/docs/content/docs/tui.mdx +138 -0
- package/docs/public/tui.png +0 -0
- package/docs/src/app/page.tsx +885 -308
- package/e2e/discordbot.e2e.test.ts +1 -1
- package/examples/discord-listen.ts +56 -0
- package/examples/kakaotalk-listen.ts +49 -0
- package/examples/slack-listen.ts +60 -0
- package/package.json +126 -9
- package/scripts/postbuild.ts +1 -0
- package/scripts/prepublish.ts +21 -1
- package/skills/agent-channeltalk/SKILL.md +18 -6
- package/skills/agent-channeltalkbot/SKILL.md +1 -1
- package/skills/agent-discord/SKILL.md +77 -2
- package/skills/agent-discord/references/common-patterns.md +1 -1
- package/skills/agent-discordbot/SKILL.md +1 -1
- package/skills/agent-instagram/SKILL.md +383 -0
- package/skills/agent-instagram/references/authentication.md +256 -0
- package/skills/agent-instagram/references/common-patterns.md +362 -0
- package/skills/agent-instagram/templates/chat-summary.sh +124 -0
- package/skills/agent-instagram/templates/monitor-chat.sh +143 -0
- package/skills/agent-instagram/templates/post-message.sh +130 -0
- package/skills/agent-kakaotalk/SKILL.md +587 -0
- package/skills/agent-kakaotalk/references/authentication.md +343 -0
- package/skills/agent-kakaotalk/references/common-patterns.md +403 -0
- package/skills/agent-kakaotalk/templates/chat-summary.sh +121 -0
- package/skills/agent-kakaotalk/templates/monitor-chat.sh +160 -0
- package/skills/agent-kakaotalk/templates/post-message.sh +123 -0
- package/skills/agent-line/SKILL.md +490 -0
- package/skills/agent-line/references/authentication.md +297 -0
- package/skills/agent-line/references/common-patterns.md +355 -0
- package/skills/agent-line/templates/chat-summary.sh +63 -0
- package/skills/agent-line/templates/monitor-chat.sh +76 -0
- package/skills/agent-line/templates/post-message.sh +123 -0
- package/skills/agent-slack/SKILL.md +259 -7
- package/skills/agent-slack/references/common-patterns.md +105 -39
- package/skills/agent-slackbot/SKILL.md +1 -1
- package/skills/agent-slackbot/references/common-patterns.md +52 -0
- package/skills/agent-teams/SKILL.md +49 -1
- package/skills/agent-telegram/SKILL.md +123 -0
- package/skills/agent-webex/SKILL.md +386 -0
- package/skills/agent-webex/references/authentication.md +318 -0
- package/skills/agent-webex/references/common-patterns.md +723 -0
- package/skills/agent-webex/templates/monitor-space.sh +165 -0
- package/skills/agent-webex/templates/post-message.sh +170 -0
- package/skills/agent-whatsapp/SKILL.md +382 -0
- package/skills/agent-whatsapp/references/authentication.md +191 -0
- package/skills/agent-whatsapp/references/common-patterns.md +336 -0
- package/skills/agent-whatsapp/templates/chat-summary.sh +122 -0
- package/skills/agent-whatsapp/templates/monitor-chat.sh +157 -0
- package/skills/agent-whatsapp/templates/post-message.sh +120 -0
- package/skills/agent-whatsappbot/SKILL.md +371 -0
- package/skills/agent-whatsappbot/references/authentication.md +216 -0
- package/skills/agent-whatsappbot/references/common-patterns.md +331 -0
- package/skills/agent-whatsappbot/templates/account-summary.sh +127 -0
- package/skills/agent-whatsappbot/templates/post-message.sh +120 -0
- package/skills/agent-whatsappbot/templates/send-template.sh +153 -0
- package/src/cli.ts +38 -6
- package/src/platforms/channeltalk/client.test.ts +30 -28
- package/src/platforms/channeltalk/client.ts +29 -8
- package/src/platforms/channeltalk/commands/auth.ts +9 -7
- package/src/platforms/channeltalk/commands/shared.ts +1 -1
- package/src/platforms/channeltalk/ensure-auth.ts +10 -8
- package/src/platforms/channeltalk/index.test.ts +114 -0
- package/src/platforms/channeltalk/index.ts +27 -14
- package/src/platforms/channeltalk/token-extractor.test.ts +227 -65
- package/src/platforms/channeltalk/token-extractor.ts +146 -25
- package/src/platforms/channeltalk/types.ts +3 -1
- package/src/platforms/channeltalkbot/client.test.ts +12 -12
- package/src/platforms/channeltalkbot/client.ts +31 -11
- package/src/platforms/channeltalkbot/commands/auth.test.ts +1 -5
- package/src/platforms/channeltalkbot/commands/auth.ts +2 -2
- package/src/platforms/channeltalkbot/commands/shared.ts +1 -1
- package/src/platforms/channeltalkbot/index.test.ts +76 -0
- package/src/platforms/channeltalkbot/index.ts +14 -11
- package/src/platforms/discord/client.test.ts +30 -30
- package/src/platforms/discord/client.ts +33 -6
- package/src/platforms/discord/commands/auth.test.ts +2 -2
- package/src/platforms/discord/commands/auth.ts +2 -2
- package/src/platforms/discord/commands/channel.test.ts +6 -6
- package/src/platforms/discord/commands/channel.ts +3 -3
- package/src/platforms/discord/commands/dm.ts +2 -2
- package/src/platforms/discord/commands/file.ts +3 -3
- package/src/platforms/discord/commands/friend.test.ts +5 -5
- package/src/platforms/discord/commands/friend.ts +1 -1
- package/src/platforms/discord/commands/member.test.ts +4 -4
- package/src/platforms/discord/commands/member.ts +1 -1
- package/src/platforms/discord/commands/mention.test.ts +4 -4
- package/src/platforms/discord/commands/mention.ts +1 -1
- package/src/platforms/discord/commands/message.ts +6 -6
- package/src/platforms/discord/commands/note.ts +2 -2
- package/src/platforms/discord/commands/profile.ts +1 -1
- package/src/platforms/discord/commands/reaction.ts +3 -3
- package/src/platforms/discord/commands/server.test.ts +2 -2
- package/src/platforms/discord/commands/server.ts +1 -1
- package/src/platforms/discord/commands/snapshot.ts +1 -1
- package/src/platforms/discord/commands/thread.test.ts +5 -5
- package/src/platforms/discord/commands/thread.ts +2 -2
- package/src/platforms/discord/commands/user.ts +3 -3
- package/src/platforms/discord/ensure-auth.ts +1 -1
- package/src/platforms/discord/index.test.ts +84 -0
- package/src/platforms/discord/index.ts +51 -0
- package/src/platforms/discord/listener.test.ts +782 -0
- package/src/platforms/discord/listener.ts +297 -0
- package/src/platforms/discord/types.ts +133 -0
- package/src/platforms/discordbot/client.test.ts +33 -33
- package/src/platforms/discordbot/client.ts +28 -7
- package/src/platforms/discordbot/commands/auth.test.ts +1 -5
- package/src/platforms/discordbot/commands/auth.ts +2 -2
- package/src/platforms/discordbot/commands/channel.test.ts +1 -5
- package/src/platforms/discordbot/commands/message.test.ts +1 -3
- package/src/platforms/discordbot/commands/server.test.ts +1 -5
- package/src/platforms/discordbot/commands/shared.ts +1 -1
- package/src/platforms/discordbot/commands/snapshot.test.ts +1 -3
- package/src/platforms/discordbot/commands/thread.test.ts +1 -3
- package/src/platforms/discordbot/commands/user.test.ts +1 -5
- package/src/platforms/instagram/cli.ts +37 -0
- package/src/platforms/instagram/client.test.ts +396 -0
- package/src/platforms/instagram/client.ts +655 -0
- package/src/platforms/instagram/commands/auth.ts +401 -0
- package/src/platforms/instagram/commands/chat.ts +49 -0
- package/src/platforms/instagram/commands/index.ts +3 -0
- package/src/platforms/instagram/commands/message.ts +134 -0
- package/src/platforms/instagram/commands/shared.test.ts +51 -0
- package/src/platforms/instagram/commands/shared.ts +55 -0
- package/src/platforms/instagram/credential-manager.test.ts +277 -0
- package/src/platforms/instagram/credential-manager.ts +134 -0
- package/src/platforms/instagram/ensure-auth.test.ts +84 -0
- package/src/platforms/instagram/ensure-auth.ts +24 -0
- package/src/platforms/instagram/index.test.ts +44 -0
- package/src/platforms/instagram/index.ts +16 -0
- package/src/platforms/instagram/listener.test.ts +130 -0
- package/src/platforms/instagram/listener.ts +106 -0
- package/src/platforms/instagram/types.test.ts +228 -0
- package/src/platforms/instagram/types.ts +153 -0
- package/src/platforms/kakaotalk/auth/kakao-login.ts +296 -0
- package/src/platforms/kakaotalk/cli.ts +37 -0
- package/src/platforms/kakaotalk/client.test.ts +490 -0
- package/src/platforms/kakaotalk/client.ts +328 -0
- package/src/platforms/kakaotalk/commands/auth.ts +569 -0
- package/src/platforms/kakaotalk/commands/chat.ts +34 -0
- package/src/platforms/kakaotalk/commands/index.ts +3 -0
- package/src/platforms/kakaotalk/commands/message.ts +56 -0
- package/src/platforms/kakaotalk/commands/shared.ts +38 -0
- package/src/platforms/kakaotalk/credential-manager.test.ts +231 -0
- package/src/platforms/kakaotalk/credential-manager.ts +110 -0
- package/src/platforms/kakaotalk/ensure-auth.ts +16 -0
- package/src/platforms/kakaotalk/index.test.ts +68 -0
- package/src/platforms/kakaotalk/index.ts +30 -0
- package/src/platforms/kakaotalk/listener.test.ts +370 -0
- package/src/platforms/kakaotalk/listener.ts +203 -0
- package/src/platforms/kakaotalk/protocol/NOTICE.md +51 -0
- package/src/platforms/kakaotalk/protocol/config.ts +28 -0
- package/src/platforms/kakaotalk/protocol/connection.ts +159 -0
- package/src/platforms/kakaotalk/protocol/crypto.ts +71 -0
- package/src/platforms/kakaotalk/protocol/packet.ts +47 -0
- package/src/platforms/kakaotalk/protocol/session.ts +156 -0
- package/src/platforms/kakaotalk/protocol/types.ts +42 -0
- package/src/platforms/kakaotalk/token-extractor.ts +320 -0
- package/src/platforms/kakaotalk/types.ts +212 -0
- package/src/platforms/line/cli.ts +39 -0
- package/src/platforms/line/client.test.ts +162 -0
- package/src/platforms/line/client.ts +352 -0
- package/src/platforms/line/commands/auth.ts +219 -0
- package/src/platforms/line/commands/chat.ts +34 -0
- package/src/platforms/line/commands/friend.ts +28 -0
- package/src/platforms/line/commands/index.ts +5 -0
- package/src/platforms/line/commands/message.ts +59 -0
- package/src/platforms/line/commands/profile.ts +24 -0
- package/src/platforms/line/credential-manager.test.ts +163 -0
- package/src/platforms/line/credential-manager.ts +99 -0
- package/src/platforms/line/ensure-auth.ts +13 -0
- package/src/platforms/line/index.test.ts +48 -0
- package/src/platforms/line/index.ts +27 -0
- package/src/platforms/line/listener.test.ts +341 -0
- package/src/platforms/line/listener.ts +138 -0
- package/src/platforms/line/types.test.ts +157 -0
- package/src/platforms/line/types.ts +181 -0
- package/src/platforms/slack/cli.ts +10 -0
- package/src/platforms/slack/client.test.ts +703 -69
- package/src/platforms/slack/client.ts +653 -44
- package/src/platforms/slack/commands/activity.ts +1 -1
- package/src/platforms/slack/commands/auth.ts +2 -2
- package/src/platforms/slack/commands/bookmark.test.ts +91 -0
- package/src/platforms/slack/commands/bookmark.ts +148 -0
- package/src/platforms/slack/commands/channel.test.ts +1 -1
- package/src/platforms/slack/commands/channel.ts +230 -5
- package/src/platforms/slack/commands/drafts.ts +1 -1
- package/src/platforms/slack/commands/emoji.test.ts +32 -0
- package/src/platforms/slack/commands/emoji.ts +33 -0
- package/src/platforms/slack/commands/file.ts +30 -4
- package/src/platforms/slack/commands/index.ts +5 -0
- package/src/platforms/slack/commands/message.ts +173 -7
- package/src/platforms/slack/commands/pin.test.ts +72 -0
- package/src/platforms/slack/commands/pin.ts +93 -0
- package/src/platforms/slack/commands/reaction.ts +3 -3
- package/src/platforms/slack/commands/reminder.test.ts +86 -0
- package/src/platforms/slack/commands/reminder.ts +125 -0
- package/src/platforms/slack/commands/saved.ts +1 -1
- package/src/platforms/slack/commands/sections.ts +1 -1
- package/src/platforms/slack/commands/snapshot.test.ts +4 -4
- package/src/platforms/slack/commands/snapshot.ts +14 -1
- package/src/platforms/slack/commands/unread.test.ts +3 -3
- package/src/platforms/slack/commands/unread.ts +3 -3
- package/src/platforms/slack/commands/user.ts +90 -1
- package/src/platforms/slack/commands/usergroup.test.ts +157 -0
- package/src/platforms/slack/commands/usergroup.ts +242 -0
- package/src/platforms/slack/credential-manager.ts +3 -1
- package/src/platforms/slack/ensure-auth.ts +4 -4
- package/src/platforms/slack/index.test.ts +59 -0
- package/src/platforms/slack/index.ts +46 -1
- package/src/platforms/slack/listener.test.ts +370 -0
- package/src/platforms/slack/listener.ts +181 -0
- package/src/platforms/slack/types.ts +187 -0
- package/src/platforms/slackbot/client.test.ts +26 -26
- package/src/platforms/slackbot/client.ts +40 -22
- package/src/platforms/slackbot/commands/auth.test.ts +1 -5
- package/src/platforms/slackbot/commands/auth.ts +2 -2
- package/src/platforms/slackbot/commands/shared.ts +1 -1
- package/src/platforms/teams/client.test.ts +34 -34
- package/src/platforms/teams/client.ts +32 -9
- package/src/platforms/teams/commands/auth.test.ts +2 -2
- package/src/platforms/teams/commands/auth.ts +3 -3
- package/src/platforms/teams/commands/channel.test.ts +6 -6
- package/src/platforms/teams/commands/channel.ts +3 -3
- package/src/platforms/teams/commands/file.ts +3 -3
- package/src/platforms/teams/commands/message.ts +4 -4
- package/src/platforms/teams/commands/reaction.ts +2 -2
- package/src/platforms/teams/commands/snapshot.ts +1 -1
- package/src/platforms/teams/commands/team.test.ts +2 -2
- package/src/platforms/teams/commands/team.ts +1 -1
- package/src/platforms/teams/commands/user.ts +3 -3
- package/src/platforms/teams/ensure-auth.ts +1 -1
- package/src/platforms/teams/index.test.ts +74 -0
- package/src/platforms/teams/index.ts +30 -0
- package/src/platforms/telegram/app-config.test.ts +44 -0
- package/src/platforms/telegram/app-config.ts +53 -0
- package/src/platforms/telegram/chat-utils.test.ts +71 -0
- package/src/platforms/telegram/chat-utils.ts +39 -0
- package/src/platforms/telegram/cli.ts +20 -0
- package/src/platforms/telegram/client.test.ts +90 -0
- package/src/platforms/telegram/client.ts +623 -0
- package/src/platforms/telegram/commands/auth.test.ts +113 -0
- package/src/platforms/telegram/commands/auth.ts +662 -0
- package/src/platforms/telegram/commands/chat.ts +65 -0
- package/src/platforms/telegram/commands/index.ts +3 -0
- package/src/platforms/telegram/commands/message.ts +51 -0
- package/src/platforms/telegram/commands/shared.test.ts +15 -0
- package/src/platforms/telegram/commands/shared.ts +50 -0
- package/src/platforms/telegram/credential-manager.test.ts +152 -0
- package/src/platforms/telegram/credential-manager.ts +203 -0
- package/src/platforms/telegram/my-telegram-org.ts +206 -0
- package/src/platforms/telegram/tdlib.ts +159 -0
- package/src/platforms/telegram/types.test.ts +74 -0
- package/src/platforms/telegram/types.ts +417 -0
- package/src/platforms/webex/app-config.test.ts +98 -0
- package/src/platforms/webex/app-config.ts +31 -0
- package/src/platforms/webex/cli.test.ts +58 -0
- package/src/platforms/webex/cli.ts +39 -0
- package/src/platforms/webex/client.test.ts +429 -0
- package/src/platforms/webex/client.ts +247 -0
- package/src/platforms/webex/commands/auth.test.ts +222 -0
- package/src/platforms/webex/commands/auth.ts +180 -0
- package/src/platforms/webex/commands/index.ts +5 -0
- package/src/platforms/webex/commands/member.test.ts +103 -0
- package/src/platforms/webex/commands/member.ts +45 -0
- package/src/platforms/webex/commands/message.test.ts +231 -0
- package/src/platforms/webex/commands/message.ts +204 -0
- package/src/platforms/webex/commands/snapshot.test.ts +96 -0
- package/src/platforms/webex/commands/snapshot.ts +91 -0
- package/src/platforms/webex/commands/space.test.ts +206 -0
- package/src/platforms/webex/commands/space.ts +74 -0
- package/src/platforms/webex/credential-manager.test.ts +314 -0
- package/src/platforms/webex/credential-manager.ts +197 -0
- package/src/platforms/webex/ensure-auth.test.ts +85 -0
- package/src/platforms/webex/ensure-auth.ts +19 -0
- package/src/platforms/webex/index.test.ts +25 -0
- package/src/platforms/webex/index.ts +17 -0
- package/src/platforms/webex/types.test.ts +307 -0
- package/src/platforms/webex/types.ts +127 -0
- package/src/platforms/whatsapp/cli.ts +38 -0
- package/src/platforms/whatsapp/client.ts +526 -0
- package/src/platforms/whatsapp/commands/auth.ts +205 -0
- package/src/platforms/whatsapp/commands/chat.ts +49 -0
- package/src/platforms/whatsapp/commands/index.ts +3 -0
- package/src/platforms/whatsapp/commands/message.ts +79 -0
- package/src/platforms/whatsapp/commands/shared.ts +61 -0
- package/src/platforms/whatsapp/credential-manager.test.ts +278 -0
- package/src/platforms/whatsapp/credential-manager.ts +134 -0
- package/src/platforms/whatsapp/ensure-auth.test.ts +85 -0
- package/src/platforms/whatsapp/ensure-auth.ts +26 -0
- package/src/platforms/whatsapp/index.test.ts +39 -0
- package/src/platforms/whatsapp/index.ts +16 -0
- package/src/platforms/whatsapp/suppress-ws-warnings.ts +21 -0
- package/src/platforms/whatsapp/types.test.ts +190 -0
- package/src/platforms/whatsapp/types.ts +95 -0
- package/src/platforms/whatsappbot/cli.ts +23 -0
- package/src/platforms/whatsappbot/client.test.ts +411 -0
- package/src/platforms/whatsappbot/client.ts +256 -0
- package/src/platforms/whatsappbot/commands/auth.ts +206 -0
- package/src/platforms/whatsappbot/commands/index.ts +3 -0
- package/src/platforms/whatsappbot/commands/message.ts +148 -0
- package/src/platforms/whatsappbot/commands/shared.ts +22 -0
- package/src/platforms/whatsappbot/commands/template.ts +69 -0
- package/src/platforms/whatsappbot/credential-manager.test.ts +303 -0
- package/src/platforms/whatsappbot/credential-manager.ts +148 -0
- package/src/platforms/whatsappbot/index.test.ts +34 -0
- package/src/platforms/whatsappbot/index.ts +18 -0
- package/src/platforms/whatsappbot/types.test.ts +141 -0
- package/src/platforms/whatsappbot/types.ts +71 -0
- package/src/tui/adapters/channeltalk-adapter.ts +102 -0
- package/src/tui/adapters/discord-adapter.ts +112 -0
- package/src/tui/adapters/instagram-adapter.ts +132 -0
- package/src/tui/adapters/kakaotalk-adapter.ts +163 -0
- package/src/tui/adapters/line-adapter.ts +109 -0
- package/src/tui/adapters/slack-adapter.ts +128 -0
- package/src/tui/adapters/teams-adapter.ts +95 -0
- package/src/tui/adapters/telegram-adapter.ts +203 -0
- package/src/tui/adapters/types.ts +43 -0
- package/src/tui/adapters/webex-adapter.ts +103 -0
- package/src/tui/adapters/whatsapp-adapter.ts +138 -0
- package/src/tui/app.ts +691 -0
- package/src/tui/cli.ts +18 -0
- package/src/tui/utils.test.ts +149 -0
- package/src/tui/utils.ts +58 -0
- package/src/tui/views/channel-picker.ts +146 -0
- package/src/tui/views/workspace-picker.ts +146 -0
- package/docs/content/docs/integrations/meta.json +0 -5
- package/docs/content/docs/integrations/slack.mdx +0 -218
- package/docs/content/docs/{integrations → cli}/discord.mdx +19 -19
- package/docs/content/docs/{integrations → cli}/discordbot.mdx +8 -8
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: WhatsApp
|
|
3
|
+
description: TypeScript SDK reference for WhatsApp — client, credential management, and types.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install agent-messenger
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import {
|
|
14
|
+
WhatsAppClient,
|
|
15
|
+
WhatsAppCredentialManager,
|
|
16
|
+
} from 'agent-messenger/whatsapp'
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## WhatsAppClient
|
|
20
|
+
|
|
21
|
+
The main client for interacting with WhatsApp via the Baileys library. WhatsApp uses a linked-device model: your application pairs with an existing WhatsApp account and maintains a persistent WebSocket connection. Call `close()` when done.
|
|
22
|
+
|
|
23
|
+
The connection lifecycle has two steps: `login()` sets up credentials, then `connect()` opens the WebSocket. Both are required before calling any chat or message methods.
|
|
24
|
+
|
|
25
|
+
### Authentication
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { WhatsAppClient } from 'agent-messenger/whatsapp'
|
|
29
|
+
|
|
30
|
+
// Explicit credentials — point to a Baileys auth directory
|
|
31
|
+
const client = await new WhatsAppClient().login({ authDir: '/path/to/auth' })
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Or use automatic credential extraction, which reads from stored login state managed by `WhatsAppCredentialManager`:
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { WhatsAppClient } from 'agent-messenger/whatsapp'
|
|
38
|
+
|
|
39
|
+
const client = await new WhatsAppClient().login()
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Connection
|
|
43
|
+
|
|
44
|
+
After `login()`, call `connect()` to open the WebSocket and sync chat history. This must complete before calling any API methods.
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
await client.connect()
|
|
48
|
+
// Connection is now open — you can call listChats, sendMessage, etc.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
For first-time device pairing, use `connectForPairing()` instead. It returns a pairing code to enter on your phone, plus a promise that resolves when authentication finishes.
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
const { code, waitForAuth } = await client.connectForPairing('+1234567890')
|
|
55
|
+
console.log(`Enter this code on your phone: ${code}`)
|
|
56
|
+
await waitForAuth()
|
|
57
|
+
// Device is now linked
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Chat Rooms
|
|
61
|
+
|
|
62
|
+
WhatsApp identifies chats by JID (Jabber ID). Individuals use `phone@s.whatsapp.net`, groups use `id@g.us`.
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// List recent chats (sorted by last activity)
|
|
66
|
+
const chats = await client.listChats()
|
|
67
|
+
// → WhatsAppChatSummary[]
|
|
68
|
+
|
|
69
|
+
// Limit results
|
|
70
|
+
const recent = await client.listChats(10)
|
|
71
|
+
|
|
72
|
+
// Search chats by name or JID
|
|
73
|
+
const results = await client.searchChats('Team', 5)
|
|
74
|
+
// → WhatsAppChatSummary[]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Messages
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
// Get recent messages from a chat (default: 25)
|
|
81
|
+
const messages = await client.getMessages('5511999999999@s.whatsapp.net')
|
|
82
|
+
// → WhatsAppMessageSummary[]
|
|
83
|
+
|
|
84
|
+
// Get more messages
|
|
85
|
+
const more = await client.getMessages('5511999999999@s.whatsapp.net', 100)
|
|
86
|
+
|
|
87
|
+
// Phone numbers without @s.whatsapp.net are resolved automatically
|
|
88
|
+
const msgs = await client.getMessages('5511999999999')
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Sending
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
// Send a text message
|
|
95
|
+
const sent = await client.sendMessage('5511999999999@s.whatsapp.net', 'Hello from SDK!')
|
|
96
|
+
// → WhatsAppMessageSummary { id, chat_id, from, timestamp, is_outgoing, type, text }
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Reactions
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
// React to a message
|
|
103
|
+
await client.sendReaction('5511999999999@s.whatsapp.net', 'ABCDEF1234', '👍')
|
|
104
|
+
|
|
105
|
+
// React to your own message
|
|
106
|
+
await client.sendReaction('5511999999999@s.whatsapp.net', 'ABCDEF1234', '✅', true)
|
|
107
|
+
|
|
108
|
+
// Remove a reaction (empty string)
|
|
109
|
+
await client.sendReaction('5511999999999@s.whatsapp.net', 'ABCDEF1234', '')
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Socket Access
|
|
113
|
+
|
|
114
|
+
For advanced Baileys operations not covered by the client API, access the raw socket directly.
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
const sock = client.getSocket()
|
|
118
|
+
// → WASocket | null
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Cleanup
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
// Close the connection and persist store (MUST call when done)
|
|
125
|
+
await client.close()
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Once closed, any subsequent method call throws a `WhatsAppError` with code `not_connected`. Create a new client if you need to reconnect.
|
|
129
|
+
|
|
130
|
+
## WhatsAppCredentialManager
|
|
131
|
+
|
|
132
|
+
Manages WhatsApp credentials stored at `~/.config/agent-messenger/whatsapp-credentials.json`. Baileys auth state is stored per-account under `~/.config/agent-messenger/whatsapp/<account-id>/auth/`. Files are written with `0o600` permissions.
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
import { WhatsAppCredentialManager } from 'agent-messenger/whatsapp'
|
|
136
|
+
|
|
137
|
+
const manager = new WhatsAppCredentialManager()
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
// Load full config from disk (returns defaults if file doesn't exist)
|
|
142
|
+
const config = await manager.loadConfig()
|
|
143
|
+
// → WhatsAppConfig { current, accounts }
|
|
144
|
+
|
|
145
|
+
// Save full config to disk
|
|
146
|
+
await manager.saveConfig(config)
|
|
147
|
+
|
|
148
|
+
// Get the current account
|
|
149
|
+
const account = await manager.getAccount()
|
|
150
|
+
// → WhatsAppAccount | null
|
|
151
|
+
|
|
152
|
+
// Get a specific account by ID
|
|
153
|
+
const specific = await manager.getAccount('plus-1234567890')
|
|
154
|
+
// → WhatsAppAccount | null
|
|
155
|
+
|
|
156
|
+
// List all accounts
|
|
157
|
+
const accounts = await manager.listAccounts()
|
|
158
|
+
// → Array<WhatsAppAccount & { is_current: boolean }>
|
|
159
|
+
|
|
160
|
+
// Store an account
|
|
161
|
+
await manager.setAccount(account)
|
|
162
|
+
|
|
163
|
+
// Switch the current account
|
|
164
|
+
const switched = await manager.setCurrent('plus-1234567890')
|
|
165
|
+
// → boolean (false if account not found)
|
|
166
|
+
|
|
167
|
+
// Remove an account (also deletes auth state on disk)
|
|
168
|
+
const removed = await manager.removeAccount('plus-1234567890')
|
|
169
|
+
// → boolean (false if account not found)
|
|
170
|
+
|
|
171
|
+
// Delete all credentials and auth state
|
|
172
|
+
await manager.clearCredentials()
|
|
173
|
+
|
|
174
|
+
// Get filesystem paths for an account
|
|
175
|
+
const paths = manager.getAccountPaths('plus-1234567890')
|
|
176
|
+
// → WhatsAppAccountPaths { account_dir, auth_dir }
|
|
177
|
+
|
|
178
|
+
// Get paths, creating directories if they don't exist
|
|
179
|
+
const ensured = await manager.ensureAccountPaths('plus-1234567890')
|
|
180
|
+
// → WhatsAppAccountPaths { account_dir, auth_dir }
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Types
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import type {
|
|
187
|
+
WhatsAppAccount,
|
|
188
|
+
WhatsAppAccountPaths,
|
|
189
|
+
WhatsAppChatSummary,
|
|
190
|
+
WhatsAppConfig,
|
|
191
|
+
WhatsAppMessageSummary,
|
|
192
|
+
} from 'agent-messenger/whatsapp'
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Exported Utilities
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
import {
|
|
199
|
+
createAccountId,
|
|
200
|
+
extractMessageText,
|
|
201
|
+
getMessageType,
|
|
202
|
+
jidToType,
|
|
203
|
+
WhatsAppError,
|
|
204
|
+
} from 'agent-messenger/whatsapp'
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
| Export | Description |
|
|
208
|
+
|--------|-------------|
|
|
209
|
+
| `createAccountId(input)` | Normalizes a phone number or string into a safe account ID |
|
|
210
|
+
| `extractMessageText(message)` | Pulls the text content from a Baileys `proto.IMessage` |
|
|
211
|
+
| `getMessageType(message)` | Returns the message type (`text`, `image`, `video`, etc.) from a Baileys `proto.IMessage` |
|
|
212
|
+
| `jidToType(jid)` | Maps a JID to its chat type: `individual`, `group`, `broadcast`, or `status` |
|
|
213
|
+
| `WhatsAppError` | Error class with a `code` property for programmatic error handling |
|
|
214
|
+
|
|
215
|
+
## Examples
|
|
216
|
+
|
|
217
|
+
### Chat Summary
|
|
218
|
+
|
|
219
|
+
List all chats, count unread, and print a summary.
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
import { WhatsAppClient } from 'agent-messenger/whatsapp'
|
|
223
|
+
|
|
224
|
+
const client = await new WhatsAppClient().login()
|
|
225
|
+
await client.connect()
|
|
226
|
+
|
|
227
|
+
try {
|
|
228
|
+
const chats = await client.listChats()
|
|
229
|
+
const unread = chats.filter(c => c.unread_count > 0)
|
|
230
|
+
console.log(`${unread.length} chats with unread messages:`)
|
|
231
|
+
for (const chat of unread) {
|
|
232
|
+
console.log(` ${chat.name} (${chat.type}) — ${chat.unread_count} unread`)
|
|
233
|
+
}
|
|
234
|
+
} finally {
|
|
235
|
+
await client.close()
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Send Notification
|
|
240
|
+
|
|
241
|
+
Find a chat by name and send a message.
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
import { WhatsAppClient } from 'agent-messenger/whatsapp'
|
|
245
|
+
|
|
246
|
+
const client = await new WhatsAppClient().login()
|
|
247
|
+
await client.connect()
|
|
248
|
+
|
|
249
|
+
try {
|
|
250
|
+
const chats = await client.searchChats('Team')
|
|
251
|
+
const teamChat = chats[0]
|
|
252
|
+
|
|
253
|
+
if (teamChat) {
|
|
254
|
+
const result = await client.sendMessage(teamChat.id, '🚀 Deployment complete!')
|
|
255
|
+
console.log(`Sent (id: ${result.id}, timestamp: ${result.timestamp})`)
|
|
256
|
+
}
|
|
257
|
+
} finally {
|
|
258
|
+
await client.close()
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### Message Monitor
|
|
263
|
+
|
|
264
|
+
Poll for new messages in a chat.
|
|
265
|
+
|
|
266
|
+
```typescript
|
|
267
|
+
import { WhatsAppClient } from 'agent-messenger/whatsapp'
|
|
268
|
+
|
|
269
|
+
const client = await new WhatsAppClient().login()
|
|
270
|
+
await client.connect()
|
|
271
|
+
|
|
272
|
+
const chatJid = '5511999999999@s.whatsapp.net'
|
|
273
|
+
let knownIds = new Set<string>()
|
|
274
|
+
|
|
275
|
+
const poll = async () => {
|
|
276
|
+
try {
|
|
277
|
+
const messages = await client.getMessages(chatJid, 10)
|
|
278
|
+
for (const msg of messages) {
|
|
279
|
+
if (!knownIds.has(msg.id)) {
|
|
280
|
+
knownIds.add(msg.id)
|
|
281
|
+
const sender = msg.from_name ?? msg.from
|
|
282
|
+
console.log(`[${sender}] ${msg.text ?? `(${msg.type})`}`)
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
} catch (error) {
|
|
286
|
+
console.error('Poll failed:', error)
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
const timer = setInterval(poll, 10_000)
|
|
291
|
+
|
|
292
|
+
// To stop: clearInterval(timer); await client.close()
|
|
293
|
+
```
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: WhatsApp Bot
|
|
3
|
+
description: TypeScript SDK reference for WhatsApp Bot — Cloud API client, credential management, and types.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install agent-messenger
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import {
|
|
14
|
+
WhatsAppBotClient,
|
|
15
|
+
WhatsAppBotCredentialManager,
|
|
16
|
+
WhatsAppBotError,
|
|
17
|
+
} from 'agent-messenger/whatsappbot'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## WhatsAppBotClient
|
|
21
|
+
|
|
22
|
+
The main client for interacting with the WhatsApp Business Cloud API (Meta Graph API v23.0) programmatically. All requests are stateless HTTP calls. The client handles rate-limiting automatically, reading the `x-business-use-case-usage` header and waiting on `429` responses. Network errors and `5xx` responses are retried with exponential backoff for `GET` requests.
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { WhatsAppBotClient } from 'agent-messenger/whatsappbot'
|
|
26
|
+
|
|
27
|
+
const client = await new WhatsAppBotClient().login({ phoneNumberId, accessToken })
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or use automatic credential extraction, where credentials are read from stored config:
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import { WhatsAppBotClient } from 'agent-messenger/whatsappbot'
|
|
34
|
+
|
|
35
|
+
const client = await new WhatsAppBotClient().login()
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Verification
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
// Verify the phone number's registered name
|
|
42
|
+
const info = await client.verifyToken()
|
|
43
|
+
// → { verified_name: string }
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Messages
|
|
47
|
+
|
|
48
|
+
Phone numbers should be in E.164 format without the `+` prefix (e.g., `12025551234`).
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// Send a text message
|
|
52
|
+
const msg = await client.sendTextMessage('12025551234', 'Hello from the bot!')
|
|
53
|
+
const withPreview = await client.sendTextMessage('12025551234', 'Check https://example.com', true)
|
|
54
|
+
// → WhatsAppBotMessageResponse
|
|
55
|
+
|
|
56
|
+
// Send a template message
|
|
57
|
+
const tmpl = await client.sendTemplateMessage('12025551234', 'hello_world', 'en_US')
|
|
58
|
+
const withComponents = await client.sendTemplateMessage('12025551234', 'order_update', 'en_US', [
|
|
59
|
+
{ type: 'body', parameters: [{ type: 'text', text: 'ORD-1234' }] },
|
|
60
|
+
])
|
|
61
|
+
// → WhatsAppBotMessageResponse
|
|
62
|
+
|
|
63
|
+
// React to a message
|
|
64
|
+
const reaction = await client.sendReaction('12025551234', 'wamid.abc123', '\u{1F44D}')
|
|
65
|
+
// → WhatsAppBotMessageResponse
|
|
66
|
+
|
|
67
|
+
// Send an image message
|
|
68
|
+
const image = await client.sendImageMessage('12025551234', 'https://example.com/photo.jpg')
|
|
69
|
+
const captioned = await client.sendImageMessage(
|
|
70
|
+
'12025551234',
|
|
71
|
+
'https://example.com/photo.jpg',
|
|
72
|
+
'Product screenshot',
|
|
73
|
+
)
|
|
74
|
+
// → WhatsAppBotMessageResponse
|
|
75
|
+
|
|
76
|
+
// Send a document message
|
|
77
|
+
const doc = await client.sendDocumentMessage(
|
|
78
|
+
'12025551234',
|
|
79
|
+
'https://example.com/invoice.pdf',
|
|
80
|
+
'invoice-2024.pdf',
|
|
81
|
+
'Your invoice is attached',
|
|
82
|
+
)
|
|
83
|
+
// → WhatsAppBotMessageResponse
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Templates
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// List message templates (optional limit)
|
|
90
|
+
const templates = await client.listTemplates()
|
|
91
|
+
const limited = await client.listTemplates({ limit: 10 })
|
|
92
|
+
// → WhatsAppBotTemplate[]
|
|
93
|
+
|
|
94
|
+
// Get a specific template by name
|
|
95
|
+
const template = await client.getTemplate('hello_world')
|
|
96
|
+
// → WhatsAppBotTemplate { name, status, category, language, components }
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## WhatsAppBotCredentialManager
|
|
100
|
+
|
|
101
|
+
Manages WhatsApp Bot credentials stored at `~/.config/agent-messenger/whatsappbot-credentials.json`. Files are written with `0o600` permissions. The environment variables `E2E_WHATSAPPBOT_ACCESS_TOKEN` and `E2E_WHATSAPPBOT_PHONE_NUMBER_ID` take precedence when calling `getCredentials()` without an `accountId`.
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { WhatsAppBotCredentialManager } from 'agent-messenger/whatsappbot'
|
|
105
|
+
|
|
106
|
+
const manager = new WhatsAppBotCredentialManager()
|
|
107
|
+
// Custom path: new WhatsAppBotCredentialManager('/custom/config/dir')
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
// Load full config from disk (returns defaults if file doesn't exist)
|
|
112
|
+
const config = await manager.load()
|
|
113
|
+
// → WhatsAppBotConfig
|
|
114
|
+
|
|
115
|
+
// Save full config to disk
|
|
116
|
+
await manager.save(config)
|
|
117
|
+
|
|
118
|
+
// Get credentials for an account (env vars take precedence)
|
|
119
|
+
const creds = await manager.getCredentials()
|
|
120
|
+
const specific = await manager.getCredentials(accountId)
|
|
121
|
+
// → WhatsAppBotCredentials | null
|
|
122
|
+
|
|
123
|
+
// Store credentials for an account
|
|
124
|
+
await manager.setCredentials({
|
|
125
|
+
phone_number_id: '100200300400',
|
|
126
|
+
account_name: 'My Business',
|
|
127
|
+
access_token: 'EAAx...',
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
// Remove an account's credentials
|
|
131
|
+
const removed = await manager.removeAccount('100200300400')
|
|
132
|
+
// → boolean
|
|
133
|
+
|
|
134
|
+
// Set the current default account
|
|
135
|
+
const ok = await manager.setCurrent('100200300400')
|
|
136
|
+
// → boolean
|
|
137
|
+
|
|
138
|
+
// List all saved accounts with current marker
|
|
139
|
+
const all = await manager.listAll()
|
|
140
|
+
// → Array<WhatsAppBotAccountEntry & { is_current: boolean }>
|
|
141
|
+
|
|
142
|
+
// Clear all stored credentials
|
|
143
|
+
await manager.clearCredentials()
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Types
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
import type {
|
|
150
|
+
WhatsAppBotAccountEntry,
|
|
151
|
+
WhatsAppBotConfig,
|
|
152
|
+
WhatsAppBotCredentials,
|
|
153
|
+
WhatsAppBotMessageResponse,
|
|
154
|
+
WhatsAppBotTemplate,
|
|
155
|
+
WhatsAppBotTemplateComponent,
|
|
156
|
+
} from 'agent-messenger/whatsappbot'
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## WhatsAppBotError
|
|
160
|
+
|
|
161
|
+
Thrown on authentication failures, network errors, rate limits, and API errors. Includes a `code` string for programmatic handling.
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
import { WhatsAppBotError } from 'agent-messenger/whatsappbot'
|
|
165
|
+
|
|
166
|
+
try {
|
|
167
|
+
await client.sendTextMessage('12025551234', 'Hello')
|
|
168
|
+
} catch (error) {
|
|
169
|
+
if (error instanceof WhatsAppBotError) {
|
|
170
|
+
console.error(`${error.code}: ${error.message}`)
|
|
171
|
+
// e.g. "rate_limited: Rate limited"
|
|
172
|
+
// e.g. "not_authenticated: Not authenticated. Call .login() first."
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Zod Schemas
|
|
178
|
+
|
|
179
|
+
Runtime-validated schemas are also exported for parsing API responses:
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
import {
|
|
183
|
+
WhatsAppBotAccountEntrySchema,
|
|
184
|
+
WhatsAppBotConfigSchema,
|
|
185
|
+
WhatsAppBotCredentialsSchema,
|
|
186
|
+
} from 'agent-messenger/whatsappbot'
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Examples
|
|
190
|
+
|
|
191
|
+
### Send Text Message
|
|
192
|
+
|
|
193
|
+
Send a simple text message to a phone number.
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
import { WhatsAppBotClient } from 'agent-messenger/whatsappbot'
|
|
197
|
+
|
|
198
|
+
const client = await new WhatsAppBotClient().login({ phoneNumberId, accessToken })
|
|
199
|
+
|
|
200
|
+
const response = await client.sendTextMessage('12025551234', 'Your order has shipped!')
|
|
201
|
+
console.log(`Message ID: ${response.messages[0].id}`)
|
|
202
|
+
console.log(`WhatsApp ID: ${response.contacts[0].wa_id}`)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Template Broadcast
|
|
206
|
+
|
|
207
|
+
Send a template message with dynamic components to multiple recipients.
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
import { WhatsAppBotClient } from 'agent-messenger/whatsappbot'
|
|
211
|
+
|
|
212
|
+
const client = await new WhatsAppBotClient().login({ phoneNumberId, accessToken })
|
|
213
|
+
|
|
214
|
+
const recipients = ['12025551234', '447700900123', '5511999887766']
|
|
215
|
+
|
|
216
|
+
for (const phone of recipients) {
|
|
217
|
+
const response = await client.sendTemplateMessage(phone, 'order_update', 'en_US', [
|
|
218
|
+
{
|
|
219
|
+
type: 'body',
|
|
220
|
+
parameters: [
|
|
221
|
+
{ type: 'text', text: 'ORD-5678' },
|
|
222
|
+
{ type: 'text', text: 'March 30, 2026' },
|
|
223
|
+
],
|
|
224
|
+
},
|
|
225
|
+
])
|
|
226
|
+
console.log(`Sent to ${phone}: ${response.messages[0].id}`)
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Multi-Account Management
|
|
231
|
+
|
|
232
|
+
Set up and switch between multiple WhatsApp Business accounts.
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
import { WhatsAppBotCredentialManager, WhatsAppBotClient } from 'agent-messenger/whatsappbot'
|
|
236
|
+
|
|
237
|
+
const manager = new WhatsAppBotCredentialManager()
|
|
238
|
+
|
|
239
|
+
// Store credentials for two accounts
|
|
240
|
+
await manager.setCredentials({
|
|
241
|
+
phone_number_id: '100200300400',
|
|
242
|
+
account_name: 'Support Line',
|
|
243
|
+
access_token: 'EAAx...',
|
|
244
|
+
})
|
|
245
|
+
|
|
246
|
+
await manager.setCredentials({
|
|
247
|
+
phone_number_id: '500600700800',
|
|
248
|
+
account_name: 'Marketing Line',
|
|
249
|
+
access_token: 'EAAy...',
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
// List all accounts
|
|
253
|
+
const accounts = await manager.listAll()
|
|
254
|
+
for (const acct of accounts) {
|
|
255
|
+
const marker = acct.is_current ? '(current)' : ''
|
|
256
|
+
console.log(`${acct.account_name} [${acct.phone_number_id}] ${marker}`)
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Switch to the support account
|
|
260
|
+
await manager.setCurrent('100200300400')
|
|
261
|
+
|
|
262
|
+
// Login picks up the current account automatically
|
|
263
|
+
const client = await new WhatsAppBotClient().login()
|
|
264
|
+
const info = await client.verifyToken()
|
|
265
|
+
console.log(`Logged in as: ${info.verified_name}`)
|
|
266
|
+
```
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: TUI (Terminal UI)
|
|
3
|
+
description: A unified terminal interface for all your messaging platforms in one screen.
|
|
4
|
+
icon: Monitor
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> **Experimental** — The TUI is a showcase of what's possible with Agent Messenger's SDK. It's not intended for production use, but demonstrates the power of having a unified adapter layer across 10 messaging platforms.
|
|
8
|
+
|
|
9
|
+
## What Is It?
|
|
10
|
+
|
|
11
|
+
The TUI (Terminal User Interface) is a `blessed`-based interactive terminal app that unifies all your messaging platforms into a single screen. Navigate between Slack, Discord, Teams, Webex, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, and Channel Talk — all from your terminal.
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
## Launch
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
agent-messenger tui
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
On startup, the TUI attempts to log in to all platforms simultaneously using your stored credentials. Platforms that authenticate successfully appear as available; the rest show as "(offline)" and can be authenticated interactively.
|
|
22
|
+
|
|
23
|
+
If only one platform succeeds, it auto-selects and jumps straight to the channel list.
|
|
24
|
+
|
|
25
|
+
## Navigation
|
|
26
|
+
|
|
27
|
+
The TUI has three navigation levels and three input modes.
|
|
28
|
+
|
|
29
|
+
### Navigation Levels
|
|
30
|
+
|
|
31
|
+
| Level | What it shows | How to enter |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| **Platform** | All 10 platforms with online/offline status | Launch or press `Esc` from workspace level |
|
|
34
|
+
| **Workspace** | Workspaces for the selected platform (skipped if only one) | Select a platform |
|
|
35
|
+
| **Channel** | Channels in the current workspace | Select a workspace |
|
|
36
|
+
|
|
37
|
+
### Input Modes
|
|
38
|
+
|
|
39
|
+
| Mode | Focus | What you can do |
|
|
40
|
+
| --- | --- | --- |
|
|
41
|
+
| **Selection** | Sidebar | Navigate platforms, workspaces, and channels |
|
|
42
|
+
| **Read** | Message log | Scroll through messages, switch to write mode |
|
|
43
|
+
| **Write** | Input box | Type and send messages |
|
|
44
|
+
|
|
45
|
+
## Keybindings
|
|
46
|
+
|
|
47
|
+
| Key | Context | Action |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| `↑` `↓` | Sidebar | Navigate items |
|
|
50
|
+
| `Enter` / `→` | Sidebar | Drill into selected item |
|
|
51
|
+
| `←` / `Esc` | Sidebar | Go back one level |
|
|
52
|
+
| `Enter` | Read mode | Switch to write mode |
|
|
53
|
+
| `Esc` | Read mode | Switch to selection mode |
|
|
54
|
+
| `Enter` | Write mode | Send message |
|
|
55
|
+
| `Esc` / `Tab` | Write mode | Switch to read mode |
|
|
56
|
+
| `Tab` / `Shift+Tab` | Read/Write | Toggle between read and write |
|
|
57
|
+
| `Ctrl+K` | Any (non-auth) | Fuzzy channel picker |
|
|
58
|
+
| `Ctrl+W` | Read/Write | Fuzzy workspace picker |
|
|
59
|
+
| `Ctrl+C` | Any | Quit |
|
|
60
|
+
|
|
61
|
+
## Features
|
|
62
|
+
|
|
63
|
+
### Multi-Platform Login
|
|
64
|
+
|
|
65
|
+
All platforms authenticate in parallel on startup. The TUI reuses credentials already stored by each platform's CLI (e.g., `agent-slack auth extract`). Platforms that haven't been set up appear as "(offline)" — select them to trigger an interactive auth flow right in the TUI.
|
|
66
|
+
|
|
67
|
+
### Real-Time Messages
|
|
68
|
+
|
|
69
|
+
For platforms with listener support (Slack and Discord), new messages appear in real time. The listener starts automatically when you open a channel.
|
|
70
|
+
|
|
71
|
+
### Fuzzy Pickers
|
|
72
|
+
|
|
73
|
+
Press `Ctrl+K` to open the channel picker or `Ctrl+W` for the workspace picker. Both support fuzzy matching — just start typing to filter.
|
|
74
|
+
|
|
75
|
+
### Interactive Auth
|
|
76
|
+
|
|
77
|
+
If a platform isn't authenticated, selecting it in the sidebar starts an interactive auth flow. The TUI prompts for any required input (phone numbers, pairing codes, etc.) directly in the message pane.
|
|
78
|
+
|
|
79
|
+
## Architecture
|
|
80
|
+
|
|
81
|
+
The TUI demonstrates the adapter pattern at the core of Agent Messenger:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
┌─────────────┐
|
|
85
|
+
│ TUI App │ blessed screen, views, key bindings
|
|
86
|
+
├─────────────┤
|
|
87
|
+
│ Adapters │ PlatformAdapter interface (one per platform)
|
|
88
|
+
├─────────────┤
|
|
89
|
+
│ SDK Layer │ SlackClient, DiscordClient, TeamsClient, ...
|
|
90
|
+
└─────────────┘
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Each platform implements the `PlatformAdapter` interface:
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
interface PlatformAdapter {
|
|
97
|
+
readonly name: string
|
|
98
|
+
login(): Promise<void>
|
|
99
|
+
getChannels(): Promise<UnifiedChannel[]>
|
|
100
|
+
getMessages(channelId: string, limit?: number): Promise<UnifiedMessage[]>
|
|
101
|
+
sendMessage(channelId: string, text: string): Promise<void>
|
|
102
|
+
startListening?(onMessage: (msg: UnifiedMessage) => void): Promise<void>
|
|
103
|
+
stopListening?(): void
|
|
104
|
+
getWorkspaces?(): Promise<Workspace[]>
|
|
105
|
+
switchWorkspace?(workspaceId: string): Promise<void>
|
|
106
|
+
getCurrentWorkspace?(): Workspace | null
|
|
107
|
+
getAuthHint(): AuthHint
|
|
108
|
+
authenticate(io: AuthIO): Promise<void>
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
This means adding a new platform to the TUI is just implementing one adapter — the same SDK clients that power each CLI also power the TUI.
|
|
113
|
+
|
|
114
|
+
## Source
|
|
115
|
+
|
|
116
|
+
The TUI source lives in [`src/tui/`](https://github.com/devxoul/agent-messenger/tree/main/src/tui):
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
src/tui/
|
|
120
|
+
├── app.ts # Main app (screen, layout, modes)
|
|
121
|
+
├── cli.ts # CLI entry point
|
|
122
|
+
├── utils.ts # Timestamp formatting, fuzzy match, etc.
|
|
123
|
+
├── adapters/
|
|
124
|
+
│ ├── types.ts # PlatformAdapter interface
|
|
125
|
+
│ ├── slack-adapter.ts
|
|
126
|
+
│ ├── discord-adapter.ts
|
|
127
|
+
│ ├── teams-adapter.ts
|
|
128
|
+
│ ├── webex-adapter.ts
|
|
129
|
+
│ ├── telegram-adapter.ts
|
|
130
|
+
│ ├── whatsapp-adapter.ts
|
|
131
|
+
│ ├── line-adapter.ts
|
|
132
|
+
│ ├── instagram-adapter.ts
|
|
133
|
+
│ ├── kakaotalk-adapter.ts
|
|
134
|
+
│ └── channeltalk-adapter.ts
|
|
135
|
+
└── views/
|
|
136
|
+
├── channel-picker.ts # Ctrl+K fuzzy channel search
|
|
137
|
+
└── workspace-picker.ts # Ctrl+W fuzzy workspace search
|
|
138
|
+
```
|
|
Binary file
|