agent-messenger 1.15.0 → 2.0.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 +51 -12
- package/.claude-plugin/plugin.json +14 -3
- package/CONTRIBUTING.md +24 -3
- package/README.md +209 -52
- package/bun.lock +350 -2
- package/cubic.yaml +69 -0
- package/dist/package.json +118 -9
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +27 -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/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/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 +652 -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 +18 -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/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/whatsapp.mdx +293 -0
- package/docs/content/docs/sdk/whatsappbot.mdx +266 -0
- package/docs/content/docs/tui.mdx +137 -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 +118 -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-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 +34 -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/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/whatsapp-adapter.ts +138 -0
- package/src/tui/app.ts +689 -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,297 @@
|
|
|
1
|
+
# Authentication Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
agent-line supports three authentication methods:
|
|
6
|
+
|
|
7
|
+
1. **QR code login** (recommended) — scan a QR code with the LINE mobile app. No email or password needed.
|
|
8
|
+
2. **Email/password login** — uses your LINE account credentials. May still require PIN verification on your phone.
|
|
9
|
+
3. **Token login** — directly authenticates with an existing auth token.
|
|
10
|
+
|
|
11
|
+
All methods register the CLI as a secondary device by default (ANDROIDSECONDARY), so your phone and desktop sessions stay active.
|
|
12
|
+
|
|
13
|
+
## Method 1: QR Code Login
|
|
14
|
+
|
|
15
|
+
### How It Works
|
|
16
|
+
|
|
17
|
+
The QR code flow uses LINE's secondary device registration API. This is the same mechanism real secondary devices use.
|
|
18
|
+
|
|
19
|
+
1. **Request QR session** from LINE's server
|
|
20
|
+
2. A QR code URL is generated and opened in your browser (also printed in the terminal)
|
|
21
|
+
3. **Scan the QR code** with the LINE mobile app
|
|
22
|
+
4. LINE may display a **PIN code** — enter it on your phone to confirm
|
|
23
|
+
5. The CLI polls until you confirm, then receives an auth token
|
|
24
|
+
6. Profile is fetched and credentials are stored
|
|
25
|
+
|
|
26
|
+
### Interactive Login
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
agent-line auth login
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The CLI opens the QR code in your default browser and prints an ASCII version in the terminal as a fallback.
|
|
33
|
+
|
|
34
|
+
### Non-Interactive Mode (AI Agents)
|
|
35
|
+
|
|
36
|
+
QR code login requires a TTY. When running outside an interactive terminal, the CLI returns:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"next_action": "run_interactive",
|
|
41
|
+
"message": "QR code login requires an interactive terminal. Run agent-line auth login in a terminal with TTY support."
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For non-interactive environments, use email/password or token login instead.
|
|
46
|
+
|
|
47
|
+
## Method 2: Email/Password Login
|
|
48
|
+
|
|
49
|
+
### How It Works
|
|
50
|
+
|
|
51
|
+
1. **Send credentials** (email + password) to LINE's authentication API
|
|
52
|
+
2. LINE may require **PIN verification** — a PIN is displayed in the terminal
|
|
53
|
+
3. Enter the PIN on your phone when prompted
|
|
54
|
+
4. After verification, the CLI receives an auth token
|
|
55
|
+
5. Profile is fetched and credentials are stored
|
|
56
|
+
|
|
57
|
+
### Usage
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
agent-line auth login --email user@example.com --password mypass
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Response types:
|
|
64
|
+
|
|
65
|
+
**Success:**
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"authenticated": true,
|
|
69
|
+
"account_id": "u1a2b3c4d5e6f7a8b9c0",
|
|
70
|
+
"display_name": "Alice",
|
|
71
|
+
"device": "ANDROIDSECONDARY"
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**PIN required:**
|
|
76
|
+
|
|
77
|
+
The CLI displays the PIN in stderr and waits for confirmation:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Enter this PIN in the LINE mobile app: 123456
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The CLI automatically polls for confirmation. Wait for it to complete.
|
|
84
|
+
|
|
85
|
+
**Login failed:**
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"error": "login_email_failed",
|
|
89
|
+
"message": "Login failed"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Check email/password and try again.
|
|
94
|
+
|
|
95
|
+
## Method 3: Token Login
|
|
96
|
+
|
|
97
|
+
### How It Works
|
|
98
|
+
|
|
99
|
+
1. **Authenticate directly** with an existing auth token
|
|
100
|
+
2. The CLI verifies the token by fetching your profile
|
|
101
|
+
3. Credentials are stored with the profile information
|
|
102
|
+
|
|
103
|
+
### Usage
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
agent-line auth login --token <auth-token>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Success:**
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"authenticated": true,
|
|
113
|
+
"account_id": "u1a2b3c4d5e6f7a8b9c0",
|
|
114
|
+
"display_name": "Alice",
|
|
115
|
+
"device": "ANDROIDSECONDARY"
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
This is useful when you already have a valid auth token from another source or a previous session.
|
|
120
|
+
|
|
121
|
+
## Device Types
|
|
122
|
+
|
|
123
|
+
The `--device` flag controls which device slot the CLI occupies:
|
|
124
|
+
|
|
125
|
+
| Device | Type | V3 Support | Side Effect |
|
|
126
|
+
| ---------------- | --------- | ---------- | ---------------------------------------- |
|
|
127
|
+
| ANDROIDSECONDARY | Secondary | Yes | Coexists with all sessions (default) |
|
|
128
|
+
| IOSIPAD | Secondary | No | Coexists with all sessions |
|
|
129
|
+
| DESKTOPMAC | Primary | Yes | Replaces existing macOS desktop session |
|
|
130
|
+
| DESKTOPWIN | Primary | Yes | Replaces existing Windows desktop session|
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Default: ANDROIDSECONDARY
|
|
134
|
+
agent-line auth login
|
|
135
|
+
|
|
136
|
+
# Use iPad slot
|
|
137
|
+
agent-line auth login --device IOSIPAD
|
|
138
|
+
|
|
139
|
+
# Replace macOS desktop session
|
|
140
|
+
agent-line auth login --device DESKTOPMAC
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Recommendation**: Stick with ANDROIDSECONDARY unless you have a specific reason to use another device type. It coexists with all other sessions and supports the latest protocol version.
|
|
144
|
+
|
|
145
|
+
## Credential Storage
|
|
146
|
+
|
|
147
|
+
### Location
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
~/.config/agent-messenger/line-credentials.json
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Format
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"current_account": "u1a2b3c4d5e6f7a8b9c0",
|
|
158
|
+
"accounts": {
|
|
159
|
+
"u1a2b3c4d5e6f7a8b9c0": {
|
|
160
|
+
"account_id": "u1a2b3c4d5e6f7a8b9c0",
|
|
161
|
+
"auth_token": "eyJhbGciOiJIUzI1NiIs...",
|
|
162
|
+
"device": "ANDROIDSECONDARY",
|
|
163
|
+
"display_name": "Alice",
|
|
164
|
+
"created_at": "2025-01-15T10:30:00.000Z",
|
|
165
|
+
"updated_at": "2025-01-15T10:30:00.000Z"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Security
|
|
172
|
+
|
|
173
|
+
- File permissions: `0600` (owner read/write only)
|
|
174
|
+
- Tokens are stored in plaintext
|
|
175
|
+
- Keep this file secure — it grants access to your LINE account
|
|
176
|
+
- Never commit to version control
|
|
177
|
+
|
|
178
|
+
### E2EE Key Storage
|
|
179
|
+
|
|
180
|
+
E2EE (Letter Sealing) keys are stored separately:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
~/.config/agent-messenger/line-storage/<account-id>.json
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
These keys are managed automatically by the underlying LINE client library.
|
|
187
|
+
|
|
188
|
+
## Authentication Status
|
|
189
|
+
|
|
190
|
+
Check current auth state:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
agent-line auth status
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Output when authenticated:
|
|
197
|
+
|
|
198
|
+
```json
|
|
199
|
+
{
|
|
200
|
+
"account_id": "u1a2b3c4d5e6f7a8b9c0",
|
|
201
|
+
"device": "ANDROIDSECONDARY",
|
|
202
|
+
"display_name": "Alice",
|
|
203
|
+
"created_at": "2025-01-15T10:30:00.000Z",
|
|
204
|
+
"updated_at": "2025-01-15T10:30:00.000Z"
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Output when not authenticated:
|
|
209
|
+
|
|
210
|
+
```json
|
|
211
|
+
{
|
|
212
|
+
"error": "No LINE account configured"
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Multi-Account Support
|
|
217
|
+
|
|
218
|
+
The CLI supports multiple LINE accounts. Each account is stored by its MID.
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# List all stored accounts
|
|
222
|
+
agent-line auth list
|
|
223
|
+
|
|
224
|
+
# Switch active account
|
|
225
|
+
agent-line auth use u1a2b3c4d5e6f7a8b9c0
|
|
226
|
+
|
|
227
|
+
# Check which account is active
|
|
228
|
+
agent-line auth status
|
|
229
|
+
|
|
230
|
+
# Remove a specific account
|
|
231
|
+
agent-line auth logout u1a2b3c4d5e6f7a8b9c0
|
|
232
|
+
|
|
233
|
+
# Remove all accounts
|
|
234
|
+
agent-line auth logout
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Logout
|
|
238
|
+
|
|
239
|
+
Remove stored credentials:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# Remove all accounts
|
|
243
|
+
agent-line auth logout
|
|
244
|
+
|
|
245
|
+
# Remove specific account
|
|
246
|
+
agent-line auth logout u1a2b3c4d5e6f7a8b9c0
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Token Lifecycle
|
|
250
|
+
|
|
251
|
+
### When Tokens Expire
|
|
252
|
+
|
|
253
|
+
LINE auth tokens can expire or be invalidated when:
|
|
254
|
+
|
|
255
|
+
- You change your LINE password
|
|
256
|
+
- You log out from all devices in the LINE app
|
|
257
|
+
- The token naturally expires
|
|
258
|
+
- LINE's server revokes the session
|
|
259
|
+
|
|
260
|
+
### Re-authentication
|
|
261
|
+
|
|
262
|
+
If commands start failing with auth errors:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# Login again via QR code
|
|
266
|
+
agent-line auth login
|
|
267
|
+
|
|
268
|
+
# Or re-login with email/password
|
|
269
|
+
agent-line auth login --email user@example.com --password mypass
|
|
270
|
+
|
|
271
|
+
# Or use a fresh token
|
|
272
|
+
agent-line auth login --token <new-token>
|
|
273
|
+
|
|
274
|
+
# Verify it worked
|
|
275
|
+
agent-line auth status
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Security Considerations
|
|
279
|
+
|
|
280
|
+
### What agent-line Can Access
|
|
281
|
+
|
|
282
|
+
With stored credentials, agent-line can:
|
|
283
|
+
|
|
284
|
+
- List your chat rooms (DMs, groups, rooms)
|
|
285
|
+
- Read messages in any chat you're part of
|
|
286
|
+
- Send messages as you
|
|
287
|
+
- See chat member names and MIDs
|
|
288
|
+
- View your profile and friends list
|
|
289
|
+
|
|
290
|
+
### What agent-line Cannot Do
|
|
291
|
+
|
|
292
|
+
- Access chats you're not a member of
|
|
293
|
+
- Create or delete chat rooms
|
|
294
|
+
- Upload files or media
|
|
295
|
+
- Add or remove friends
|
|
296
|
+
- Access LINE Pay, games, or other services
|
|
297
|
+
- Modify your profile or settings
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
# Common Patterns
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This guide covers typical workflows for AI agents interacting with LINE using agent-line.
|
|
6
|
+
|
|
7
|
+
## Pattern 1: Send a Simple Message
|
|
8
|
+
|
|
9
|
+
**Use case**: Post a message to a chat room
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
#!/bin/bash
|
|
13
|
+
|
|
14
|
+
CHAT_ID="c7a8b9c0d1e2f3a4b5c6d7e8"
|
|
15
|
+
|
|
16
|
+
# Direct approach
|
|
17
|
+
agent-line message send "$CHAT_ID" "Deployment completed successfully!"
|
|
18
|
+
|
|
19
|
+
# With error handling
|
|
20
|
+
RESULT=$(agent-line message send "$CHAT_ID" "Hello world")
|
|
21
|
+
SUCCESS=$(echo "$RESULT" | jq -r '.success')
|
|
22
|
+
if [ "$SUCCESS" = "true" ]; then
|
|
23
|
+
echo "Message sent!"
|
|
24
|
+
else
|
|
25
|
+
echo "Failed: $(echo "$RESULT" | jq -r '.error // "Unknown error"')"
|
|
26
|
+
exit 1
|
|
27
|
+
fi
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**When to use**: Simple one-off messages where you know the chat ID.
|
|
31
|
+
|
|
32
|
+
**Note**: You must know the chat ID (MID). Use `agent-line chat list` to discover chat IDs.
|
|
33
|
+
|
|
34
|
+
## Pattern 2: Discover Chat Rooms
|
|
35
|
+
|
|
36
|
+
**Use case**: Find the right chat room to send a message to
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
#!/bin/bash
|
|
40
|
+
|
|
41
|
+
# List all chats sorted by recent activity
|
|
42
|
+
CHATS=$(agent-line chat list)
|
|
43
|
+
|
|
44
|
+
# Find a specific chat by display name (works for DMs and groups)
|
|
45
|
+
TARGET_CHAT=$(echo "$CHATS" | jq -r '.[] | select(.display_name | contains("Alice")) | .chat_id')
|
|
46
|
+
|
|
47
|
+
if [ -z "$TARGET_CHAT" ]; then
|
|
48
|
+
echo "Chat not found"
|
|
49
|
+
exit 1
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
echo "Found chat: $TARGET_CHAT"
|
|
53
|
+
agent-line message send "$TARGET_CHAT" "Hey Alice!"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**When to use**: First time interacting with a chat, or when the user references a chat by name.
|
|
57
|
+
|
|
58
|
+
## Pattern 3: Read Recent Messages
|
|
59
|
+
|
|
60
|
+
**Use case**: Catch up on what happened in a chat
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
#!/bin/bash
|
|
64
|
+
|
|
65
|
+
CHAT_ID="c7a8b9c0d1e2f3a4b5c6d7e8"
|
|
66
|
+
|
|
67
|
+
# Get last 50 messages
|
|
68
|
+
MESSAGES=$(agent-line message list "$CHAT_ID" -n 50)
|
|
69
|
+
|
|
70
|
+
# Display summary
|
|
71
|
+
MSG_COUNT=$(echo "$MESSAGES" | jq 'length')
|
|
72
|
+
echo "Found $MSG_COUNT messages"
|
|
73
|
+
|
|
74
|
+
# Show messages
|
|
75
|
+
echo "$MESSAGES" | jq -r '.[] | "\(.author_id): \(.text // "[non-text]")"'
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**When to use**: Context gathering, summarizing conversations, catching up on missed messages.
|
|
79
|
+
|
|
80
|
+
## Pattern 4: Monitor for New Messages
|
|
81
|
+
|
|
82
|
+
**Use case**: Watch a chat room and respond to new messages using the SDK
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
import { LineClient } from 'agent-messenger/line'
|
|
86
|
+
|
|
87
|
+
const client = await new LineClient().login()
|
|
88
|
+
try {
|
|
89
|
+
const chatId = 'c7a8b9c0d1e2f3a4b5c6d7e8'
|
|
90
|
+
let lastMessageId = ''
|
|
91
|
+
|
|
92
|
+
// Poll for new messages
|
|
93
|
+
setInterval(async () => {
|
|
94
|
+
const messages = await client.getMessages(chatId, { count: 5 })
|
|
95
|
+
const latest = messages[messages.length - 1]
|
|
96
|
+
if (!latest || latest.message_id === lastMessageId) return
|
|
97
|
+
|
|
98
|
+
lastMessageId = latest.message_id
|
|
99
|
+
console.log(`New message from ${latest.author_id}: ${latest.text}`)
|
|
100
|
+
|
|
101
|
+
// Process and respond
|
|
102
|
+
if (latest.text?.includes('ping')) {
|
|
103
|
+
await client.sendMessage(chatId, 'pong!')
|
|
104
|
+
}
|
|
105
|
+
}, 10_000)
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error(error)
|
|
108
|
+
} finally {
|
|
109
|
+
client.close()
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**When to use**: Quick scripts that only need to check for new messages periodically.
|
|
114
|
+
|
|
115
|
+
**Limitations**: Polling-based, not real-time. Use reasonable intervals (10s+) to avoid rate limiting. For real-time events, use the LineListener (see Pattern 4b).
|
|
116
|
+
|
|
117
|
+
## Pattern 4b: Real-Time Message Listening (SDK)
|
|
118
|
+
|
|
119
|
+
**Use case**: React to incoming messages in real-time using the SDK
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import { LineClient } from 'agent-messenger/line'
|
|
123
|
+
import { LineListener } from 'agent-messenger/line'
|
|
124
|
+
|
|
125
|
+
const client = new LineClient()
|
|
126
|
+
const listener = new LineListener(client)
|
|
127
|
+
|
|
128
|
+
listener.on('connected', (info) => {
|
|
129
|
+
console.log(`Connected as ${info.account_id}`)
|
|
130
|
+
})
|
|
131
|
+
|
|
132
|
+
listener.on('message', (event) => {
|
|
133
|
+
console.log(`[${event.chat_id}] ${event.author_id}: ${event.text}`)
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
listener.on('error', (error) => {
|
|
137
|
+
console.error('Listener error:', error.message)
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
listener.on('disconnected', () => {
|
|
141
|
+
console.log('Disconnected — will auto-reconnect')
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
await listener.start()
|
|
145
|
+
|
|
146
|
+
// Stop when done:
|
|
147
|
+
// listener.stop()
|
|
148
|
+
// client.close()
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**When to use**: Building bots, automations, or real-time integrations that need instant message delivery.
|
|
152
|
+
|
|
153
|
+
**Features**: Auto-reconnects with exponential backoff, typed events, AbortController-based clean shutdown.
|
|
154
|
+
|
|
155
|
+
## Pattern 5: Get User Profile
|
|
156
|
+
|
|
157
|
+
**Use case**: Retrieve your own LINE profile information
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
#!/bin/bash
|
|
161
|
+
|
|
162
|
+
# Get profile
|
|
163
|
+
PROFILE=$(agent-line profile)
|
|
164
|
+
|
|
165
|
+
# Extract fields
|
|
166
|
+
DISPLAY_NAME=$(echo "$PROFILE" | jq -r '.display_name')
|
|
167
|
+
MID=$(echo "$PROFILE" | jq -r '.mid')
|
|
168
|
+
STATUS=$(echo "$PROFILE" | jq -r '.status_message // "No status"')
|
|
169
|
+
|
|
170
|
+
echo "Name: $DISPLAY_NAME"
|
|
171
|
+
echo "MID: $MID"
|
|
172
|
+
echo "Status: $STATUS"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**When to use**: Verifying which account is active, getting your own MID for filtering messages.
|
|
176
|
+
|
|
177
|
+
## Pattern 6: List Friends
|
|
178
|
+
|
|
179
|
+
**Use case**: Discover contacts and their MIDs
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
#!/bin/bash
|
|
183
|
+
|
|
184
|
+
# Get all friends
|
|
185
|
+
FRIENDS=$(agent-line friend list)
|
|
186
|
+
|
|
187
|
+
# Count friends
|
|
188
|
+
FRIEND_COUNT=$(echo "$FRIENDS" | jq 'length')
|
|
189
|
+
echo "You have $FRIEND_COUNT friends"
|
|
190
|
+
|
|
191
|
+
# Find a specific friend
|
|
192
|
+
FRIEND=$(echo "$FRIENDS" | jq -r '.[] | select(.display_name | contains("Bob"))')
|
|
193
|
+
if [ -n "$FRIEND" ]; then
|
|
194
|
+
FRIEND_MID=$(echo "$FRIEND" | jq -r '.mid')
|
|
195
|
+
echo "Bob's MID: $FRIEND_MID"
|
|
196
|
+
|
|
197
|
+
# Send a DM
|
|
198
|
+
agent-line message send "$FRIEND_MID" "Hey Bob!"
|
|
199
|
+
fi
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**When to use**: Finding a user's MID to start a DM, building a contact directory.
|
|
203
|
+
|
|
204
|
+
## Pattern 7: Multi-Account Management
|
|
205
|
+
|
|
206
|
+
**Use case**: Switch between multiple LINE accounts
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
#!/bin/bash
|
|
210
|
+
|
|
211
|
+
# List all stored accounts
|
|
212
|
+
ACCOUNTS=$(agent-line auth list)
|
|
213
|
+
echo "Stored accounts:"
|
|
214
|
+
echo "$ACCOUNTS" | jq -r '.[] | " \(.account_id) — \(.display_name // "Unknown")"'
|
|
215
|
+
|
|
216
|
+
# Switch to a specific account
|
|
217
|
+
agent-line auth use u1a2b3c4d5e6f7a8b9c0
|
|
218
|
+
|
|
219
|
+
# Verify the switch
|
|
220
|
+
STATUS=$(agent-line auth status)
|
|
221
|
+
CURRENT=$(echo "$STATUS" | jq -r '.display_name // .account_id')
|
|
222
|
+
echo "Now using: $CURRENT"
|
|
223
|
+
|
|
224
|
+
# Send a message as this account
|
|
225
|
+
agent-line message send c7a8b9c0d1e2f3a4b5c6d7e8 "Hello from account 1!"
|
|
226
|
+
|
|
227
|
+
# Switch to another account
|
|
228
|
+
agent-line auth use u9f8e7d6c5b4a3f2e1d0
|
|
229
|
+
agent-line message send c7a8b9c0d1e2f3a4b5c6d7e8 "Hello from account 2!"
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**When to use**: Managing multiple LINE identities, testing with different accounts.
|
|
233
|
+
|
|
234
|
+
## Best Practices
|
|
235
|
+
|
|
236
|
+
### 1. Cache Chat IDs
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Good — discover once, reuse
|
|
240
|
+
CHATS=$(agent-line chat list)
|
|
241
|
+
WORK_CHAT=$(echo "$CHATS" | jq -r '.[] | select(.display_name | contains("Work")) | .chat_id')
|
|
242
|
+
agent-line message send "$WORK_CHAT" "Hello"
|
|
243
|
+
agent-line message send "$WORK_CHAT" "Another message"
|
|
244
|
+
|
|
245
|
+
# Bad — list chats before every send
|
|
246
|
+
agent-line chat list # Wasteful
|
|
247
|
+
agent-line message send "..." "Hello"
|
|
248
|
+
agent-line chat list # Wasteful
|
|
249
|
+
agent-line message send "..." "Another"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### 2. Use Memory for Known IDs
|
|
253
|
+
|
|
254
|
+
Store frequently used chat IDs in `~/.config/agent-messenger/MEMORY.md` to skip `chat list` calls in future sessions.
|
|
255
|
+
|
|
256
|
+
### 3. Respect Rate Limits
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Good — pause between operations
|
|
260
|
+
for chat_id in "${CHATS[@]}"; do
|
|
261
|
+
agent-line message send "$chat_id" "$MSG"
|
|
262
|
+
sleep 2
|
|
263
|
+
done
|
|
264
|
+
|
|
265
|
+
# Bad — rapid-fire
|
|
266
|
+
for chat_id in "${CHATS[@]}"; do
|
|
267
|
+
agent-line message send "$chat_id" "$MSG"
|
|
268
|
+
done
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 4. Check Auth Before Multi-Step Workflows
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# Good — verify auth upfront
|
|
275
|
+
STATUS=$(agent-line auth status)
|
|
276
|
+
if echo "$STATUS" | jq -e '.error' > /dev/null 2>&1; then
|
|
277
|
+
echo "Not authenticated"
|
|
278
|
+
exit 1
|
|
279
|
+
fi
|
|
280
|
+
|
|
281
|
+
# Proceed with workflow
|
|
282
|
+
agent-line chat list
|
|
283
|
+
agent-line message send ...
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Anti-Patterns
|
|
287
|
+
|
|
288
|
+
### Don't Poll Too Frequently
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
# Bad — too aggressive
|
|
292
|
+
while true; do
|
|
293
|
+
agent-line message list "$CHAT_ID" -n 1
|
|
294
|
+
sleep 1
|
|
295
|
+
done
|
|
296
|
+
|
|
297
|
+
# Good — reasonable interval
|
|
298
|
+
while true; do
|
|
299
|
+
agent-line message list "$CHAT_ID" -n 1
|
|
300
|
+
sleep 10
|
|
301
|
+
done
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Don't Ignore Errors
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
# Bad
|
|
308
|
+
agent-line message send "$CHAT_ID" "Hello"
|
|
309
|
+
|
|
310
|
+
# Good
|
|
311
|
+
RESULT=$(agent-line message send "$CHAT_ID" "Hello")
|
|
312
|
+
if ! echo "$RESULT" | jq -e '.success' > /dev/null 2>&1; then
|
|
313
|
+
echo "Failed: $(echo "$RESULT" | jq -r '.error // .message // "Unknown"')"
|
|
314
|
+
exit 1
|
|
315
|
+
fi
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Don't Spam Chats
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
# Bad — sends 100 separate messages
|
|
322
|
+
for i in {1..100}; do
|
|
323
|
+
agent-line message send "$CHAT_ID" "Item $i"
|
|
324
|
+
done
|
|
325
|
+
|
|
326
|
+
# Good — batch into single message
|
|
327
|
+
MESSAGE="Updates:"
|
|
328
|
+
for i in {1..100}; do
|
|
329
|
+
MESSAGE="${MESSAGE}"$'\n'"$i. Item $i"
|
|
330
|
+
done
|
|
331
|
+
agent-line message send "$CHAT_ID" "$MESSAGE"
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
## SDK Client Lifecycle
|
|
335
|
+
|
|
336
|
+
When using `LineClient` programmatically, note that calling `close()` sets the internal client to null. Any subsequent method call throws a `LineError` with code `not_connected`. Create a new `LineClient` instance if you need to reconnect. Always use `try/finally` to ensure `close()` runs:
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
import { LineClient } from 'agent-messenger/line'
|
|
340
|
+
|
|
341
|
+
const client = await new LineClient().login()
|
|
342
|
+
try {
|
|
343
|
+
const chats = await client.getChats()
|
|
344
|
+
const firstChat = chats[0]
|
|
345
|
+
if (!firstChat) throw new Error('No chats available')
|
|
346
|
+
await client.sendMessage(firstChat.chat_id, 'Hello!')
|
|
347
|
+
} finally {
|
|
348
|
+
client.close()
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
## See Also
|
|
353
|
+
|
|
354
|
+
- [Authentication Guide](authentication.md) - Setting up credentials
|
|
355
|
+
- [Templates](../templates/) - Runnable example scripts
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
if [ $# -lt 1 ]; then
|
|
6
|
+
echo "Usage: $0 <chat-id> [message-count]"
|
|
7
|
+
echo ""
|
|
8
|
+
echo "Examples:"
|
|
9
|
+
echo " $0 c0123456789abcdef0123456789abcdef"
|
|
10
|
+
echo " $0 c0123456789abcdef0123456789abcdef 50"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
CHAT_ID="$1"
|
|
15
|
+
COUNT="${2:-20}"
|
|
16
|
+
|
|
17
|
+
if ! command -v agent-line >/dev/null 2>&1; then
|
|
18
|
+
echo "Error: agent-line not found"
|
|
19
|
+
echo "Install it with: npm install -g agent-messenger"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
if ! command -v jq >/dev/null 2>&1; then
|
|
24
|
+
echo "Error: jq not found"
|
|
25
|
+
echo "Install it first to parse agent-line JSON output"
|
|
26
|
+
exit 1
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
AUTH_STATUS=$(agent-line auth status 2>/dev/null || true)
|
|
30
|
+
if echo "$AUTH_STATUS" | jq -e '.error' >/dev/null 2>&1; then
|
|
31
|
+
echo "Not authenticated. Run: agent-line auth login"
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
MESSAGES=$(agent-line message list "$CHAT_ID" -n "$COUNT" 2>/dev/null || true)
|
|
36
|
+
|
|
37
|
+
if ! echo "$MESSAGES" | jq -e 'type == "array"' >/dev/null 2>&1; then
|
|
38
|
+
echo "Failed to fetch messages"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
TOTAL=$(echo "$MESSAGES" | jq 'length')
|
|
43
|
+
TEXT_COUNT=$(echo "$MESSAGES" | jq '[.[] | select(.text != null)] | length')
|
|
44
|
+
AUTHORS=$(echo "$MESSAGES" | jq -r 'map(.author_id) | unique | .[]')
|
|
45
|
+
FIRST_TIME=$(echo "$MESSAGES" | jq -r '.[0].sent_at // "unknown"')
|
|
46
|
+
LAST_TIME=$(echo "$MESSAGES" | jq -r '.[-1].sent_at // "unknown"')
|
|
47
|
+
|
|
48
|
+
echo "Chat summary for $CHAT_ID"
|
|
49
|
+
echo "=========================="
|
|
50
|
+
echo "Messages analyzed: $TOTAL"
|
|
51
|
+
echo "Text messages: $TEXT_COUNT"
|
|
52
|
+
echo "Time range: $FIRST_TIME → $LAST_TIME"
|
|
53
|
+
echo ""
|
|
54
|
+
echo "Participants:"
|
|
55
|
+
while IFS= read -r author; do
|
|
56
|
+
[ -n "$author" ] || continue
|
|
57
|
+
COUNT_BY_AUTHOR=$(echo "$MESSAGES" | jq --arg author "$author" '[.[] | select(.author_id == $author)] | length')
|
|
58
|
+
echo " $author: $COUNT_BY_AUTHOR messages"
|
|
59
|
+
done <<< "$AUTHORS"
|
|
60
|
+
|
|
61
|
+
echo ""
|
|
62
|
+
echo "Recent messages:"
|
|
63
|
+
echo "$MESSAGES" | jq -r '.[] | "- [\(.sent_at)] \(.author_id): \(.text // "[non-text]")"'
|