agent-messenger 1.14.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 +94 -13
- package/.claude-plugin/marketplace.json +51 -12
- package/.claude-plugin/plugin.json +14 -3
- package/CONTRIBUTING.md +49 -3
- package/README.md +211 -54
- 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 +85 -3
- package/dist/src/platforms/slack/client.d.ts.map +1 -1
- package/dist/src/platforms/slack/client.js +577 -40
- 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 +198 -5
- 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/cli/channeltalk.mdx +264 -0
- package/docs/content/docs/cli/channeltalkbot.mdx +261 -0
- 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 -13
- package/docs/content/docs/meta.json +9 -1
- package/docs/content/docs/quick-start.mdx +29 -6
- 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 +266 -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 +664 -43
- 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 +47 -1
- package/src/platforms/slack/commands/channel.ts +255 -4
- 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
package/docs/src/app/page.tsx
CHANGED
|
@@ -1,89 +1,16 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
import { useTheme } from 'next-themes'
|
|
4
3
|
import Link from 'next/link'
|
|
4
|
+
import { useTheme } from 'next-themes'
|
|
5
5
|
import { useEffect, useState } from 'react'
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
fill="none"
|
|
13
|
-
stroke="currentColor"
|
|
14
|
-
strokeWidth="2"
|
|
15
|
-
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
className={className}
|
|
18
|
-
>
|
|
19
|
-
<title>Key icon</title>
|
|
20
|
-
<path d="m21 2-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0 3 3L22 7l-3-3m-3.5 3.5L19 4" />
|
|
21
|
-
</svg>
|
|
22
|
-
)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function GlobeIcon({ className }: { className?: string }) {
|
|
26
|
-
return (
|
|
27
|
-
<svg
|
|
28
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
29
|
-
viewBox="0 0 24 24"
|
|
30
|
-
fill="none"
|
|
31
|
-
stroke="currentColor"
|
|
32
|
-
strokeWidth="2"
|
|
33
|
-
strokeLinecap="round"
|
|
34
|
-
strokeLinejoin="round"
|
|
35
|
-
className={className}
|
|
36
|
-
>
|
|
37
|
-
<title>Globe icon</title>
|
|
38
|
-
<circle cx="12" cy="12" r="10" />
|
|
39
|
-
<path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" />
|
|
40
|
-
<line x1="2" y1="12" x2="22" y2="12" />
|
|
41
|
-
</svg>
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function BotIcon({ className }: { className?: string }) {
|
|
46
|
-
return (
|
|
47
|
-
<svg
|
|
48
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
49
|
-
viewBox="0 0 24 24"
|
|
50
|
-
fill="none"
|
|
51
|
-
stroke="currentColor"
|
|
52
|
-
strokeWidth="2"
|
|
53
|
-
strokeLinecap="round"
|
|
54
|
-
strokeLinejoin="round"
|
|
55
|
-
className={className}
|
|
56
|
-
>
|
|
57
|
-
<title>Bot icon</title>
|
|
58
|
-
<path d="M12 8V4H8" />
|
|
59
|
-
<rect width="16" height="12" x="4" y="8" rx="2" />
|
|
60
|
-
<path d="M8 16h.01M16 16h.01" />
|
|
61
|
-
<path d="M9 12h6" />
|
|
62
|
-
</svg>
|
|
63
|
-
)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function ZapIcon({ className }: { className?: string }) {
|
|
67
|
-
return (
|
|
68
|
-
<svg
|
|
69
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
70
|
-
viewBox="0 0 24 24"
|
|
71
|
-
fill="none"
|
|
72
|
-
stroke="currentColor"
|
|
73
|
-
strokeWidth="2"
|
|
74
|
-
strokeLinecap="round"
|
|
75
|
-
strokeLinejoin="round"
|
|
76
|
-
className={className}
|
|
77
|
-
>
|
|
78
|
-
<title>Zap icon</title>
|
|
79
|
-
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2" />
|
|
80
|
-
</svg>
|
|
81
|
-
)
|
|
82
|
-
}
|
|
7
|
+
// ============================================================
|
|
8
|
+
// Platform Icon Components (128x128 viewBox with brand colors)
|
|
9
|
+
// ============================================================
|
|
83
10
|
|
|
84
|
-
function SlackIcon({ className }: { className?: string }) {
|
|
11
|
+
function SlackIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
85
12
|
return (
|
|
86
|
-
<svg viewBox="0 0 128 128" fill="currentColor" className={className}>
|
|
13
|
+
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
87
14
|
<title>Slack icon</title>
|
|
88
15
|
<path
|
|
89
16
|
d="M27.255 80.719c0 7.33-5.978 13.317-13.309 13.317C6.616 94.036.63 88.049.63 80.719s5.987-13.317 13.317-13.317h13.309zm6.709 0c0-7.33 5.987-13.317 13.317-13.317s13.317 5.986 13.317 13.317v33.335c0 7.33-5.986 13.317-13.317 13.317-7.33 0-13.317-5.987-13.317-13.317zm0 0"
|
|
@@ -105,9 +32,9 @@ function SlackIcon({ className }: { className?: string }) {
|
|
|
105
32
|
)
|
|
106
33
|
}
|
|
107
34
|
|
|
108
|
-
function DiscordIcon({ className }: { className?: string }) {
|
|
35
|
+
function DiscordIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
109
36
|
return (
|
|
110
|
-
<svg viewBox="0 0 128 128" fill="currentColor" className={className}>
|
|
37
|
+
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
111
38
|
<title>Discord icon</title>
|
|
112
39
|
<path
|
|
113
40
|
d="M107.7,30.8c-8-3.7-16.5-6.4-25.5-7.9c-0.1,0-0.2,0-0.3,0.1c-1.1,2-2.3,4.5-3.2,6.6c-9.6-1.4-19.2-1.4-28.6,0c-0.9-2.1-2.1-4.6-3.2-6.6c-0.1-0.1-0.2-0.1-0.3-0.1c-8.9,1.5-17.5,4.2-25.5,7.9c0,0-0.1,0.1-0.1,0.1C7.1,51.5,3,71.7,5.1,91.6c0,0.1,0.1,0.2,0.1,0.2c10.7,7.9,21.1,12.7,31.3,15.8c0.1,0,0.2,0,0.3-0.1c2.4-3.3,4.6-6.8,6.4-10.4c0.1-0.2,0-0.4-0.2-0.5c-3.4-1.3-6.7-2.9-9.8-4.7c-0.2-0.1-0.2-0.4,0-0.6c0.7-0.5,1.3-1,1.9-1.5c0.1-0.1,0.2-0.1,0.3,0c20.6,9.4,42.9,9.4,63.3,0c0.1-0.1,0.2,0,0.3,0c0.6,0.5,1.3,1,1.9,1.5c0.2,0.2,0.2,0.4,0,0.6c-3.1,1.9-6.4,3.5-9.8,4.7c-0.2,0.1-0.3,0.3-0.2,0.5c1.9,3.6,4,7.1,6.4,10.4c0.1,0.1,0.2,0.1,0.3,0.1c10.2-3.1,20.6-7.9,31.3-15.8c0.1-0.1,0.1-0.1,0.1-0.2C125.6,68.8,119.2,49.2,107.7,30.8C107.7,30.9,107.7,30.8,107.7,30.8z M45.3,79.9c-5.3,0-9.6-4.8-9.6-10.8s4.2-10.8,9.6-10.8c5.4,0,9.7,4.9,9.6,10.8C54.9,75.1,50.6,79.9,45.3,79.9z M82.8,79.9c-5.3,0-9.6-4.8-9.6-10.8s4.2-10.8,9.6-10.8c5.4,0,9.7,4.9,9.6,10.8C92.4,75.1,88.2,79.9,82.8,79.9z"
|
|
@@ -117,9 +44,9 @@ function DiscordIcon({ className }: { className?: string }) {
|
|
|
117
44
|
)
|
|
118
45
|
}
|
|
119
46
|
|
|
120
|
-
function TeamsIcon({ className }: { className?: string }) {
|
|
47
|
+
function TeamsIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
121
48
|
return (
|
|
122
|
-
<svg viewBox="0 0 128 128" fill="currentColor" className={className}>
|
|
49
|
+
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
123
50
|
<title>Teams icon</title>
|
|
124
51
|
<path
|
|
125
52
|
d="M86.3,44.5h32.5c2.6,0,4.7,2.1,4.7,4.7v29.4c0,12.9-10.5,23.4-23.4,23.4h-0.3c-12.9,0-23.4-10.5-23.4-23.4V54.4C76.4,48.9,80.8,44.5,86.3,44.5z"
|
|
@@ -160,313 +87,963 @@ function TeamsIcon({ className }: { className?: string }) {
|
|
|
160
87
|
)
|
|
161
88
|
}
|
|
162
89
|
|
|
163
|
-
function
|
|
90
|
+
function TelegramIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
164
91
|
return (
|
|
165
|
-
<svg
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
strokeLinecap="round"
|
|
172
|
-
strokeLinejoin="round"
|
|
173
|
-
className={className}
|
|
174
|
-
>
|
|
175
|
-
<title>Light mode</title>
|
|
176
|
-
<circle cx="12" cy="12" r="4" />
|
|
177
|
-
<path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41" />
|
|
92
|
+
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
93
|
+
<title>Telegram icon</title>
|
|
94
|
+
<path
|
|
95
|
+
d="M64 0C28.7 0 0 28.7 0 64s28.7 64 64 64 64-28.7 64-64S99.3 0 64 0zm29.3 43.6L82 93.2c-.7 3.1-2.5 3.8-5.1 2.4l-14.1-10.4-6.8 6.6c-.8.8-1.4 1.4-2.8 1.4l1-14.3 25.8-23.3c1.1-1 -.2-1.6-1.8-.6L44.5 73.1l-13.8-4.3c-3-.9-3-3 .6-4.4l54-20.8c2.5-.9 4.7.6 3.9 4.4z"
|
|
96
|
+
fill="#2AABEE"
|
|
97
|
+
/>
|
|
178
98
|
</svg>
|
|
179
99
|
)
|
|
180
100
|
}
|
|
181
101
|
|
|
182
|
-
function
|
|
102
|
+
function WhatsAppIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
183
103
|
return (
|
|
184
|
-
<svg
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
104
|
+
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
105
|
+
<title>WhatsApp icon</title>
|
|
106
|
+
<path
|
|
107
|
+
d="M64 0C28.7 0 0 28.7 0 64c0 11.3 2.9 21.9 8.1 31.1L0 128l33.6-8.8C42.5 124.7 53 128 64 128c35.3 0 64-28.7 64-64S99.3 0 64 0zm0 117.1c-10.1 0-19.6-2.8-27.7-7.6l-2-1.2-20.5 5.4 5.5-20.1-1.3-2.1C12.7 83.3 9.6 73.9 9.6 64c0-30 24.4-54.4 54.4-54.4S118.4 34 118.4 64s-24.4 53.1-54.4 53.1zm29.8-40.7c-1.6-.8-9.6-4.7-11.1-5.3-1.5-.5-2.6-.8-3.7.8s-4.2 5.3-5.2 6.4c-1 1.1-1.9 1.2-3.5.4-1.6-.8-6.8-2.5-13-8-4.8-4.3-8-9.5-9-11.1-.9-1.6-.1-2.5.7-3.3.8-.7 1.6-1.9 2.4-2.8.8-1 1.1-1.6 1.6-2.7.5-1.1.3-2-.1-2.8-.5-.8-3.7-8.9-5.1-12.2-1.3-3.2-2.7-2.8-3.7-2.8-1 0-2.1-.1-3.2-.1s-2.9.4-4.4 2c-1.5 1.6-5.8 5.7-5.8 13.8s5.9 16 6.7 17.1c.8 1.1 11.6 17.7 28.1 24.8 3.9 1.7 7 2.7 9.4 3.5 3.9 1.2 7.5 1.1 10.3.6 3.2-.5 9.6-3.9 10.9-7.7 1.4-3.8 1.4-7 1-7.7-.5-.7-1.6-1.1-3.2-1.9z"
|
|
108
|
+
fill="#25D366"
|
|
109
|
+
/>
|
|
110
|
+
</svg>
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function KakaoTalkIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
115
|
+
return (
|
|
116
|
+
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
117
|
+
<title>KakaoTalk icon</title>
|
|
118
|
+
<rect width="128" height="128" rx="28" fill="#FEE500" />
|
|
119
|
+
<path
|
|
120
|
+
d="M64 32C45.2 32 30 43.8 30 58.4c0 9.4 6.2 17.7 15.6 22.4l-3.2 11.8c-.3 1 .9 1.8 1.7 1.2l14.1-9.4c1.9.3 3.8.4 5.8.4 18.8 0 34-11.8 34-26.4S82.8 32 64 32z"
|
|
121
|
+
fill="#3C1E1E"
|
|
122
|
+
/>
|
|
123
|
+
</svg>
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function LineIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
128
|
+
return (
|
|
129
|
+
<svg viewBox="0 0 24 24" fill="currentColor" className={className} style={style}>
|
|
130
|
+
<title>LINE icon</title>
|
|
131
|
+
<path d="M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314" />
|
|
132
|
+
</svg>
|
|
133
|
+
)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function InstagramIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
137
|
+
return (
|
|
138
|
+
<svg viewBox="0 0 24 24" fill="currentColor" className={className} style={style}>
|
|
139
|
+
<title>Instagram icon</title>
|
|
140
|
+
<path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z" />
|
|
141
|
+
</svg>
|
|
142
|
+
)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function ChannelTalkIcon({ className, style }: { className?: string; style?: React.CSSProperties }) {
|
|
146
|
+
return (
|
|
147
|
+
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
148
|
+
<title>Channel Talk icon</title>
|
|
149
|
+
<rect width="128" height="128" rx="28" fill="#3B3FE4" />
|
|
150
|
+
<text x="64" y="82" textAnchor="middle" fill="white" fontSize="48" fontWeight="bold" fontFamily="monospace">CT</text>
|
|
151
|
+
</svg>
|
|
152
|
+
)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// ============================================================
|
|
156
|
+
// Feature Icons (Lucide-style, stroke-based)
|
|
157
|
+
// ============================================================
|
|
158
|
+
|
|
159
|
+
function ShieldIcon({ className }: { className?: string }) {
|
|
160
|
+
return (
|
|
161
|
+
<svg className={className} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
|
|
162
|
+
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
|
|
163
|
+
<path d="M9.5 12.5L11 14l3.5-3.5" />
|
|
196
164
|
</svg>
|
|
197
165
|
)
|
|
198
166
|
}
|
|
199
167
|
|
|
168
|
+
function UserIcon({ className }: { className?: string }) {
|
|
169
|
+
return (
|
|
170
|
+
<svg className={className} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
|
|
171
|
+
<path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2" />
|
|
172
|
+
<circle cx="12" cy="7" r="4" />
|
|
173
|
+
</svg>
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function TerminalIcon({ className }: { className?: string }) {
|
|
178
|
+
return (
|
|
179
|
+
<svg className={className} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
|
|
180
|
+
<polyline points="4 17 10 11 4 5" />
|
|
181
|
+
<line x1="12" y1="19" x2="20" y2="19" />
|
|
182
|
+
</svg>
|
|
183
|
+
)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function CpuIcon({ className }: { className?: string }) {
|
|
187
|
+
return (
|
|
188
|
+
<svg className={className} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
|
|
189
|
+
<rect x="4" y="4" width="16" height="16" rx="2" />
|
|
190
|
+
<rect x="9" y="9" width="6" height="6" />
|
|
191
|
+
<line x1="9" y1="1" x2="9" y2="4" />
|
|
192
|
+
<line x1="15" y1="1" x2="15" y2="4" />
|
|
193
|
+
<line x1="9" y1="20" x2="9" y2="23" />
|
|
194
|
+
<line x1="15" y1="20" x2="15" y2="23" />
|
|
195
|
+
<line x1="20" y1="9" x2="23" y2="9" />
|
|
196
|
+
<line x1="20" y1="14" x2="23" y2="14" />
|
|
197
|
+
<line x1="1" y1="9" x2="4" y2="9" />
|
|
198
|
+
<line x1="1" y1="14" x2="4" y2="14" />
|
|
199
|
+
</svg>
|
|
200
|
+
)
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function ZapIcon({ className }: { className?: string }) {
|
|
204
|
+
return (
|
|
205
|
+
<svg className={className} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
|
|
206
|
+
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2" />
|
|
207
|
+
</svg>
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function DatabaseIcon({ className }: { className?: string }) {
|
|
212
|
+
return (
|
|
213
|
+
<svg className={className} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
|
|
214
|
+
<ellipse cx="12" cy="5" rx="9" ry="3" />
|
|
215
|
+
<path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" />
|
|
216
|
+
<path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" />
|
|
217
|
+
</svg>
|
|
218
|
+
)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// ============================================================
|
|
222
|
+
// Utility Components
|
|
223
|
+
// ============================================================
|
|
224
|
+
|
|
225
|
+
function CopyButton({ text }: { text: string }) {
|
|
226
|
+
const [copied, setCopied] = useState(false)
|
|
227
|
+
|
|
228
|
+
return (
|
|
229
|
+
<button
|
|
230
|
+
type="button"
|
|
231
|
+
onClick={() => {
|
|
232
|
+
navigator.clipboard.writeText(text).then(() => {
|
|
233
|
+
setCopied(true)
|
|
234
|
+
setTimeout(() => setCopied(false), 2000)
|
|
235
|
+
})
|
|
236
|
+
}}
|
|
237
|
+
className="flex items-center justify-center rounded-md p-1.5 text-zinc-400 transition-colors hover:text-zinc-600 dark:text-zinc-500 dark:hover:text-zinc-300"
|
|
238
|
+
aria-label={copied ? 'Copied' : 'Copy to clipboard'}
|
|
239
|
+
>
|
|
240
|
+
{copied ? (
|
|
241
|
+
<svg className="size-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
|
|
242
|
+
<polyline points="20 6 9 17 4 12" />
|
|
243
|
+
</svg>
|
|
244
|
+
) : (
|
|
245
|
+
<svg className="size-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
|
|
246
|
+
<rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
|
|
247
|
+
<path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1" />
|
|
248
|
+
</svg>
|
|
249
|
+
)}
|
|
250
|
+
</button>
|
|
251
|
+
)
|
|
252
|
+
}
|
|
253
|
+
|
|
200
254
|
function ThemeToggle() {
|
|
201
|
-
const { setTheme, resolvedTheme } = useTheme()
|
|
202
255
|
const [mounted, setMounted] = useState(false)
|
|
256
|
+
const { setTheme, resolvedTheme } = useTheme()
|
|
203
257
|
|
|
204
258
|
useEffect(() => {
|
|
205
259
|
setMounted(true)
|
|
206
260
|
}, [])
|
|
207
261
|
|
|
208
262
|
if (!mounted) {
|
|
209
|
-
return <div className="
|
|
263
|
+
return <div className="size-9" />
|
|
210
264
|
}
|
|
211
265
|
|
|
212
266
|
return (
|
|
213
267
|
<button
|
|
214
268
|
type="button"
|
|
215
269
|
onClick={() => setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')}
|
|
216
|
-
className="rounded-lg
|
|
270
|
+
className="flex size-9 items-center justify-center rounded-lg text-zinc-600 transition-colors hover:bg-zinc-100 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100"
|
|
217
271
|
aria-label="Toggle theme"
|
|
218
272
|
>
|
|
219
|
-
{resolvedTheme === 'dark' ?
|
|
273
|
+
{resolvedTheme === 'dark' ? (
|
|
274
|
+
<svg className="size-[18px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
|
|
275
|
+
<circle cx="12" cy="12" r="5" />
|
|
276
|
+
<line x1="12" y1="1" x2="12" y2="3" />
|
|
277
|
+
<line x1="12" y1="21" x2="12" y2="23" />
|
|
278
|
+
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64" />
|
|
279
|
+
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78" />
|
|
280
|
+
<line x1="1" y1="12" x2="3" y2="12" />
|
|
281
|
+
<line x1="21" y1="12" x2="23" y2="12" />
|
|
282
|
+
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36" />
|
|
283
|
+
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22" />
|
|
284
|
+
</svg>
|
|
285
|
+
) : (
|
|
286
|
+
<svg className="size-[18px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
|
|
287
|
+
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z" />
|
|
288
|
+
</svg>
|
|
289
|
+
)}
|
|
220
290
|
</button>
|
|
221
291
|
)
|
|
222
292
|
}
|
|
223
293
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
294
|
+
// ============================================================
|
|
295
|
+
// Terminal Block Component
|
|
296
|
+
// ============================================================
|
|
297
|
+
|
|
298
|
+
function TerminalBlock({
|
|
299
|
+
title,
|
|
300
|
+
copyText,
|
|
301
|
+
children,
|
|
302
|
+
}: {
|
|
303
|
+
title?: string
|
|
304
|
+
copyText: string
|
|
305
|
+
children: React.ReactNode
|
|
306
|
+
}) {
|
|
307
|
+
return (
|
|
308
|
+
<div className="overflow-hidden rounded-xl border border-zinc-200 bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-950">
|
|
309
|
+
<div className="flex items-center justify-between border-b border-zinc-200 bg-zinc-100 px-4 py-3 dark:border-zinc-800 dark:bg-zinc-900">
|
|
310
|
+
<div className="flex gap-2">
|
|
311
|
+
<span className="size-3 rounded-full bg-zinc-300 dark:bg-zinc-700" />
|
|
312
|
+
<span className="size-3 rounded-full bg-zinc-300 dark:bg-zinc-700" />
|
|
313
|
+
<span className="size-3 rounded-full bg-zinc-300 dark:bg-zinc-700" />
|
|
314
|
+
</div>
|
|
315
|
+
<span className="font-mono text-xs text-zinc-400 dark:text-zinc-500">{title ?? 'terminal'}</span>
|
|
316
|
+
<CopyButton text={copyText} />
|
|
317
|
+
</div>
|
|
318
|
+
<pre className="overflow-x-auto p-5 font-mono text-sm leading-relaxed">
|
|
319
|
+
<code>{children}</code>
|
|
320
|
+
</pre>
|
|
321
|
+
</div>
|
|
322
|
+
)
|
|
233
323
|
}
|
|
234
324
|
|
|
235
|
-
|
|
236
|
-
|
|
325
|
+
// ============================================================
|
|
326
|
+
// Platform Terminal (cycling demo)
|
|
327
|
+
// ============================================================
|
|
328
|
+
|
|
329
|
+
function PlatformTerminal() {
|
|
330
|
+
const [active, setActive] = useState(0)
|
|
331
|
+
const [paused, setPaused] = useState(false)
|
|
237
332
|
|
|
238
333
|
useEffect(() => {
|
|
239
|
-
|
|
240
|
-
|
|
334
|
+
if (paused) return
|
|
335
|
+
const timer = setInterval(() => {
|
|
336
|
+
setActive((prev) => (prev + 1) % TERMINAL_DEMOS.length)
|
|
337
|
+
}, 3500)
|
|
338
|
+
return () => clearInterval(timer)
|
|
339
|
+
}, [paused])
|
|
340
|
+
|
|
341
|
+
const demo = TERMINAL_DEMOS[active]
|
|
241
342
|
|
|
242
343
|
return (
|
|
243
|
-
<div
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
href="https://github.com/devxoul/agent-messenger"
|
|
258
|
-
target="_blank"
|
|
259
|
-
rel="noopener noreferrer"
|
|
260
|
-
className="text-sm font-medium text-zinc-600 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white"
|
|
261
|
-
>
|
|
262
|
-
GitHub
|
|
263
|
-
</a>
|
|
264
|
-
<ThemeToggle />
|
|
265
|
-
</nav>
|
|
344
|
+
<div
|
|
345
|
+
className="overflow-hidden rounded-xl border border-zinc-200 bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-950"
|
|
346
|
+
onMouseEnter={() => setPaused(true)}
|
|
347
|
+
onMouseLeave={() => setPaused(false)}
|
|
348
|
+
>
|
|
349
|
+
<div className="border-b border-zinc-200 bg-zinc-100 dark:border-zinc-800 dark:bg-zinc-900">
|
|
350
|
+
<div className="flex items-center justify-between px-4 py-3">
|
|
351
|
+
<div className="flex gap-2">
|
|
352
|
+
<span className="size-3 rounded-full bg-zinc-300 dark:bg-zinc-700" />
|
|
353
|
+
<span className="size-3 rounded-full bg-zinc-300 dark:bg-zinc-700" />
|
|
354
|
+
<span className="size-3 rounded-full bg-zinc-300 dark:bg-zinc-700" />
|
|
355
|
+
</div>
|
|
356
|
+
<span className="font-mono text-xs text-zinc-400 dark:text-zinc-500">agent-messenger</span>
|
|
357
|
+
<CopyButton text={demo.commands.filter((c) => 'cmd' in c).map((c) => c.cmd).join('\n')} />
|
|
266
358
|
</div>
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
359
|
+
<div className="flex gap-0 overflow-x-auto px-2">
|
|
360
|
+
{TERMINAL_DEMOS.map((d, i) => (
|
|
361
|
+
<button
|
|
362
|
+
key={d.platform}
|
|
363
|
+
type="button"
|
|
364
|
+
onClick={() => { setActive(i); setPaused(true) }}
|
|
365
|
+
className={`whitespace-nowrap px-3 py-2 font-mono text-xs transition-colors duration-200 ${
|
|
366
|
+
i === active
|
|
367
|
+
? 'border-b-2 border-blue-500 text-zinc-800 dark:text-zinc-200'
|
|
368
|
+
: 'border-b-2 border-transparent text-zinc-400 hover:text-zinc-600 dark:text-zinc-600 dark:hover:text-zinc-400'
|
|
369
|
+
}`}
|
|
370
|
+
>
|
|
371
|
+
{d.platform}
|
|
372
|
+
</button>
|
|
373
|
+
))}
|
|
276
374
|
</div>
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
375
|
+
</div>
|
|
376
|
+
|
|
377
|
+
<pre className="overflow-x-auto p-5 font-mono text-sm leading-relaxed">
|
|
378
|
+
<code>
|
|
379
|
+
{demo.commands.map((line, i) => (
|
|
380
|
+
<span key={`${demo.platform}-${i}`}>
|
|
381
|
+
{'cmd' in line ? (
|
|
382
|
+
<>
|
|
383
|
+
<span className="text-zinc-400 dark:text-zinc-500">{line.prompt}</span>
|
|
384
|
+
<span className="text-zinc-800 dark:text-zinc-100">{line.cmd}</span>
|
|
385
|
+
</>
|
|
386
|
+
) : (
|
|
387
|
+
<>
|
|
388
|
+
<span className="text-zinc-400 dark:text-zinc-500">{' '}</span>
|
|
389
|
+
<span className="text-emerald-600 dark:text-emerald-400">{line.output}</span>
|
|
390
|
+
</>
|
|
391
|
+
)}
|
|
392
|
+
{i < demo.commands.length - 1 ? '\n' : ''}
|
|
393
|
+
</span>
|
|
394
|
+
))}
|
|
395
|
+
</code>
|
|
396
|
+
</pre>
|
|
397
|
+
</div>
|
|
398
|
+
)
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// ============================================================
|
|
402
|
+
// Data
|
|
403
|
+
// ============================================================
|
|
404
|
+
|
|
405
|
+
const FEATURES = [
|
|
406
|
+
{
|
|
407
|
+
icon: <ShieldIcon className="size-5" />,
|
|
408
|
+
title: 'Auto-Extract Auth',
|
|
409
|
+
description: 'Reads tokens from Slack, Discord, Teams, KakaoTalk, and Channel Talk desktop apps. Telegram and WhatsApp authenticate with a one-time code — still under a minute.',
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
icon: <UserIcon className="size-5" />,
|
|
413
|
+
title: 'Act As Yourself',
|
|
414
|
+
description: 'Extracts your user session — not a bot token. Your agent sends messages, reacts, and searches as you. Need bot mode? Bot CLIs are included too.',
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
icon: <TerminalIcon className="size-5" />,
|
|
418
|
+
title: 'One Interface',
|
|
419
|
+
description: 'Same command patterns across 7 platforms: message send, message search, channel list, snapshot. Learn once.',
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
icon: <CpuIcon className="size-5" />,
|
|
423
|
+
title: 'Agent-Native Output',
|
|
424
|
+
description: 'JSON by default for LLM tool use. --pretty for human-readable. Structured output your agent can parse and act on.',
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
icon: <ZapIcon className="size-5" />,
|
|
428
|
+
title: 'Token Efficient',
|
|
429
|
+
description: 'CLI, not MCP. One skill file, one shell command per action. No server to run, no tool registration.',
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
icon: <DatabaseIcon className="size-5" />,
|
|
433
|
+
title: 'Persistent Memory',
|
|
434
|
+
description: 'Stores workspace IDs, channel mappings, and preferences in ~/.config so your agent never asks twice.',
|
|
435
|
+
},
|
|
436
|
+
]
|
|
437
|
+
|
|
438
|
+
const TERMINAL_DEMOS = [
|
|
439
|
+
{
|
|
440
|
+
platform: 'Slack',
|
|
441
|
+
commands: [
|
|
442
|
+
{ prompt: '$ ', cmd: 'agent-slack message search "deployment rollback"' },
|
|
443
|
+
{ output: '✓ 7 messages found in #incidents' },
|
|
444
|
+
{ prompt: '$ ', cmd: 'agent-slack message replies incidents 1711234567.123456' },
|
|
445
|
+
{ output: '✓ 14 replies loaded' },
|
|
446
|
+
{ prompt: '$ ', cmd: 'agent-slack message send incidents "Postmortem draft ready"' },
|
|
447
|
+
{ output: '✓ Message sent to #incidents' },
|
|
448
|
+
],
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
platform: 'Discord',
|
|
452
|
+
commands: [
|
|
453
|
+
{ prompt: '$ ', cmd: 'agent-discord snapshot' },
|
|
454
|
+
{ output: '✓ 12 channels, 48 members, recent activity captured' },
|
|
455
|
+
{ prompt: '$ ', cmd: 'agent-discord message search "API redesign"' },
|
|
456
|
+
{ output: '✓ Found 8 messages' },
|
|
457
|
+
{ prompt: '$ ', cmd: 'agent-discord message send 1098765432 "Summary posted"' },
|
|
458
|
+
{ output: '✓ Message sent' },
|
|
459
|
+
],
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
platform: 'Teams',
|
|
463
|
+
commands: [
|
|
464
|
+
{ prompt: '$ ', cmd: 'agent-teams channel list 19:abc' },
|
|
465
|
+
{ output: '✓ 8 channels in Engineering team' },
|
|
466
|
+
{ prompt: '$ ', cmd: 'agent-teams message list 19:abc 19:general --limit 5' },
|
|
467
|
+
{ output: '✓ 5 messages loaded' },
|
|
468
|
+
{ prompt: '$ ', cmd: 'agent-teams message send 19:abc 19:general "Standup notes"' },
|
|
469
|
+
{ output: '✓ Message sent' },
|
|
470
|
+
],
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
platform: 'Telegram',
|
|
474
|
+
commands: [
|
|
475
|
+
{ prompt: '$ ', cmd: 'agent-telegram chat search "engineering"' },
|
|
476
|
+
{ output: '✓ 3 matching chats found' },
|
|
477
|
+
{ prompt: '$ ', cmd: 'agent-telegram message list 12345 --limit 10' },
|
|
478
|
+
{ output: '✓ 10 messages loaded' },
|
|
479
|
+
{ prompt: '$ ', cmd: 'agent-telegram message send 12345 "CI green, merging now"' },
|
|
480
|
+
{ output: '✓ Message sent' },
|
|
481
|
+
],
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
platform: 'WhatsApp',
|
|
485
|
+
commands: [
|
|
486
|
+
{ prompt: '$ ', cmd: 'agent-whatsapp chat list --limit 5' },
|
|
487
|
+
{ output: '✓ 5 recent chats loaded' },
|
|
488
|
+
{ prompt: '$ ', cmd: 'agent-whatsapp message list 1234@s.whatsapp.net' },
|
|
489
|
+
{ output: '✓ 10 messages loaded' },
|
|
490
|
+
{ prompt: '$ ', cmd: 'agent-whatsapp message react 1234@s.whatsapp.net msg123 👍' },
|
|
491
|
+
{ output: '✓ Reaction added' },
|
|
492
|
+
],
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
platform: 'KakaoTalk',
|
|
496
|
+
commands: [
|
|
497
|
+
{ prompt: '$ ', cmd: 'agent-kakaotalk chat list' },
|
|
498
|
+
{ output: '✓ 12 chat rooms loaded' },
|
|
499
|
+
{ prompt: '$ ', cmd: 'agent-kakaotalk message list 9876543210 -n 10' },
|
|
500
|
+
{ output: '✓ 10 messages loaded' },
|
|
501
|
+
{ prompt: '$ ', cmd: 'agent-kakaotalk message send 9876543210 "Build passed, deploying now"' },
|
|
502
|
+
{ output: '✓ Message sent' },
|
|
503
|
+
],
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
platform: 'Channel Talk',
|
|
507
|
+
commands: [
|
|
508
|
+
{ prompt: '$ ', cmd: 'agent-channeltalk message search "billing issue"' },
|
|
509
|
+
{ output: '✓ 4 messages found across 2 chats' },
|
|
510
|
+
{ prompt: '$ ', cmd: 'agent-channeltalk message list user-chat 6812abc' },
|
|
511
|
+
{ output: '✓ 15 messages loaded' },
|
|
512
|
+
{ prompt: '$ ', cmd: 'agent-channeltalk message send user-chat 6812abc "Refund processed"' },
|
|
513
|
+
{ output: '✓ Message sent' },
|
|
514
|
+
],
|
|
515
|
+
},
|
|
516
|
+
]
|
|
517
|
+
|
|
518
|
+
const PLATFORMS = [
|
|
519
|
+
{ name: 'Slack', href: '/docs/cli/slack', Icon: SlackIcon, color: '#4A154B', glowColor: 'rgba(74,21,75,0.4)' },
|
|
520
|
+
{ name: 'Discord', href: '/docs/cli/discord', Icon: DiscordIcon, color: '#5865F2', glowColor: 'rgba(88,101,242,0.4)' },
|
|
521
|
+
{ name: 'Teams', href: '/docs/cli/teams', Icon: TeamsIcon, color: '#6264A7', glowColor: 'rgba(98,100,167,0.4)' },
|
|
522
|
+
{ name: 'Telegram', href: '/docs/cli/telegram', Icon: TelegramIcon, color: '#2AABEE', glowColor: 'rgba(42,171,238,0.4)' },
|
|
523
|
+
{ name: 'WhatsApp', href: '/docs/cli/whatsapp', Icon: WhatsAppIcon, color: '#25D366', glowColor: 'rgba(37,211,102,0.4)' },
|
|
524
|
+
{ name: 'LINE', href: '/docs/cli/line', Icon: LineIcon, color: '#06C755', glowColor: 'rgba(6,199,85,0.4)' },
|
|
525
|
+
{ name: 'Instagram', href: '/docs/cli/instagram', Icon: InstagramIcon, color: '#E4405F', glowColor: 'rgba(228,64,95,0.4)' },
|
|
526
|
+
{ name: 'KakaoTalk', href: '/docs/cli/kakaotalk', Icon: KakaoTalkIcon, color: '#FEE500', glowColor: 'rgba(254,229,0,0.4)' },
|
|
527
|
+
{ name: 'Channel Talk', href: '/docs/cli/channeltalk', Icon: ChannelTalkIcon, color: '#3B3FE4', glowColor: 'rgba(59,63,228,0.4)' },
|
|
528
|
+
]
|
|
529
|
+
|
|
530
|
+
const HOW_IT_WORKS = [
|
|
531
|
+
{
|
|
532
|
+
step: 1,
|
|
533
|
+
title: 'Install',
|
|
534
|
+
code: 'npm install -g agent-messenger',
|
|
535
|
+
description: 'Installs agent-slack, agent-discord, agent-teams, agent-telegram, agent-whatsapp, agent-line, agent-instagram, agent-kakaotalk, agent-channeltalk, plus bot variants.',
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
step: 2,
|
|
539
|
+
title: 'Run',
|
|
540
|
+
code: 'agent-slack snapshot --pretty',
|
|
541
|
+
description: 'Slack, Discord, Teams, KakaoTalk, and Channel Talk tokens are read from your desktop app automatically. Telegram and WhatsApp authenticate with a one-time code.',
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
step: 3,
|
|
545
|
+
title: 'Teach Your Agent',
|
|
546
|
+
code: 'npx skills add devxoul/agent-messenger',
|
|
547
|
+
description: 'Install Agent Skills via Skills CLI, Claude Code, OpenCode, or SkillPad — your agent learns every command and starts messaging on its own.',
|
|
548
|
+
},
|
|
549
|
+
]
|
|
550
|
+
|
|
551
|
+
const USE_CASES = [
|
|
552
|
+
'Read the #incident-api-outage thread in Slack and write a postmortem draft',
|
|
553
|
+
'Post the deployment changelog to #releases in Slack and #announcements in Discord',
|
|
554
|
+
'Search the Teams #design channel for the latest discussion about the new onboarding flow',
|
|
555
|
+
'Check my unread Slack messages right now and draft replies for anything urgent',
|
|
556
|
+
'Look up who reacted to my last message in #general on Discord and what they said after',
|
|
557
|
+
'Summarize today\'s WhatsApp group chat and send the summary to #standup in Slack',
|
|
558
|
+
]
|
|
559
|
+
|
|
560
|
+
const CAPABILITIES: {
|
|
561
|
+
feature: string
|
|
562
|
+
slack: boolean
|
|
563
|
+
discord: boolean
|
|
564
|
+
teams: boolean
|
|
565
|
+
telegram: boolean
|
|
566
|
+
whatsapp: boolean
|
|
567
|
+
line: boolean
|
|
568
|
+
instagram: boolean
|
|
569
|
+
kakaotalk: boolean
|
|
570
|
+
channeltalk: boolean
|
|
571
|
+
}[] = [
|
|
572
|
+
{ feature: 'Zero-config credentials', slack: true, discord: true, teams: true, telegram: false, whatsapp: false, line: false, instagram: false, kakaotalk: true, channeltalk: true },
|
|
573
|
+
{ feature: 'Send & list messages', slack: true, discord: true, teams: true, telegram: true, whatsapp: true, line: true, instagram: true, kakaotalk: true, channeltalk: true },
|
|
574
|
+
{ feature: 'Search messages', slack: true, discord: true, teams: false, telegram: false, whatsapp: true, line: false, instagram: true, kakaotalk: false, channeltalk: true },
|
|
575
|
+
{ feature: 'Threads', slack: true, discord: true, teams: false, telegram: false, whatsapp: false, line: false, instagram: false, kakaotalk: false, channeltalk: false },
|
|
576
|
+
{ feature: 'Reactions', slack: true, discord: true, teams: true, telegram: false, whatsapp: true, line: false, instagram: false, kakaotalk: false, channeltalk: false },
|
|
577
|
+
{ feature: 'File upload & download', slack: true, discord: true, teams: true, telegram: false, whatsapp: false, line: false, instagram: false, kakaotalk: false, channeltalk: false },
|
|
578
|
+
{ feature: 'Workspace snapshot', slack: true, discord: true, teams: true, telegram: false, whatsapp: false, line: false, instagram: false, kakaotalk: false, channeltalk: true },
|
|
579
|
+
{ feature: 'Multi-account', slack: true, discord: true, teams: true, telegram: true, whatsapp: true, line: true, instagram: true, kakaotalk: false, channeltalk: true },
|
|
580
|
+
{ feature: 'Bot CLI available', slack: true, discord: true, teams: false, telegram: false, whatsapp: true, line: false, instagram: false, kakaotalk: false, channeltalk: true },
|
|
581
|
+
{ feature: 'Real-time events (SDK)', slack: true, discord: false, teams: false, telegram: false, whatsapp: false, line: true, instagram: true, kakaotalk: false, channeltalk: false },
|
|
582
|
+
]
|
|
583
|
+
|
|
584
|
+
const PLATFORM_COLUMNS = ['Slack', 'Discord', 'Teams', 'Telegram', 'WhatsApp', 'LINE', 'Instagram', 'KakaoTalk', 'Ch. Talk'] as const
|
|
585
|
+
const PLATFORM_KEYS = ['slack', 'discord', 'teams', 'telegram', 'whatsapp', 'line', 'instagram', 'kakaotalk', 'channeltalk'] as const
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
// ============================================================
|
|
590
|
+
// Page Component
|
|
591
|
+
// ============================================================
|
|
592
|
+
|
|
593
|
+
export default function Home() {
|
|
594
|
+
return (
|
|
595
|
+
<div className="min-h-screen bg-white text-zinc-900 dark:bg-zinc-950 dark:text-zinc-100">
|
|
596
|
+
|
|
597
|
+
{/* ================================================================
|
|
598
|
+
AMBIENT GLOW BACKGROUND
|
|
599
|
+
================================================================ */}
|
|
600
|
+
<div className="pointer-events-none fixed inset-0 overflow-hidden">
|
|
601
|
+
<div className="absolute -top-[20%] left-1/2 h-[900px] w-[900px] -translate-x-1/2 rounded-full bg-[radial-gradient(circle,rgba(139,92,246,0.15)_0%,rgba(59,130,246,0.08)_40%,transparent_70%)] opacity-[0.03] dark:opacity-[0.08]" />
|
|
602
|
+
<div className="absolute -bottom-[10%] -right-[5%] h-[600px] w-[600px] rounded-full bg-[radial-gradient(circle,rgba(59,130,246,0.5)_0%,transparent_60%)] opacity-[0.02] dark:opacity-[0.05]" />
|
|
603
|
+
</div>
|
|
604
|
+
|
|
605
|
+
{/* ================================================================
|
|
606
|
+
1. HEADER / NAV (Glass)
|
|
607
|
+
================================================================ */}
|
|
608
|
+
<nav className="fixed inset-x-0 top-0 z-50 flex h-16 items-center justify-between border-b border-zinc-200/40 bg-white/80 px-4 backdrop-blur-xl sm:px-6 dark:border-white/[0.06] dark:bg-zinc-950/80">
|
|
609
|
+
<Link href="/" className="font-mono text-sm font-semibold tracking-wide text-zinc-900 dark:text-zinc-100">
|
|
610
|
+
agent-messenger
|
|
611
|
+
</Link>
|
|
612
|
+
<div className="flex items-center gap-1 sm:gap-2">
|
|
288
613
|
<Link
|
|
289
614
|
href="/docs"
|
|
290
|
-
className="
|
|
615
|
+
className="rounded-lg px-3 py-2 font-mono text-xs text-zinc-500 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-100"
|
|
291
616
|
>
|
|
292
|
-
|
|
617
|
+
docs
|
|
293
618
|
</Link>
|
|
294
619
|
<a
|
|
295
620
|
href="https://github.com/devxoul/agent-messenger"
|
|
296
621
|
target="_blank"
|
|
297
622
|
rel="noopener noreferrer"
|
|
298
|
-
className="
|
|
623
|
+
className="rounded-lg px-3 py-2 font-mono text-xs text-zinc-500 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-100"
|
|
299
624
|
>
|
|
300
|
-
|
|
625
|
+
github
|
|
301
626
|
</a>
|
|
627
|
+
<ThemeToggle />
|
|
628
|
+
</div>
|
|
629
|
+
</nav>
|
|
630
|
+
|
|
631
|
+
{/* ================================================================
|
|
632
|
+
2. HERO (Gradient text + glass CTAs)
|
|
633
|
+
================================================================ */}
|
|
634
|
+
<section className="relative z-10 px-4 pt-36 pb-20 sm:px-6 sm:pt-44 sm:pb-24">
|
|
635
|
+
<div className="mx-auto max-w-4xl text-center">
|
|
636
|
+
{/* Badge */}
|
|
637
|
+
<div className="inline-flex items-center gap-2 rounded-full border border-zinc-200/40 bg-zinc-50/80 px-4 py-1.5 font-mono text-xs tracking-wide text-zinc-600 backdrop-blur-sm dark:border-white/[0.06] dark:bg-white/[0.03] dark:text-zinc-400">
|
|
638
|
+
<span className="size-2 animate-pulse rounded-full bg-emerald-500" />
|
|
639
|
+
open source
|
|
640
|
+
</div>
|
|
641
|
+
|
|
642
|
+
{/* Headline with gradient text */}
|
|
643
|
+
<h1 className="mt-8 text-4xl font-bold tracking-tight sm:text-5xl lg:text-6xl">
|
|
644
|
+
<span className="bg-gradient-to-br from-zinc-900 to-zinc-500 bg-clip-text text-transparent dark:from-white dark:to-zinc-400">
|
|
645
|
+
Your agent messages as you — not as a bot
|
|
646
|
+
</span>
|
|
647
|
+
</h1>
|
|
648
|
+
|
|
649
|
+
{/* Subtitle */}
|
|
650
|
+
<p className="mx-auto mt-6 max-w-2xl text-lg leading-relaxed text-zinc-600 dark:text-zinc-400">
|
|
651
|
+
One CLI for Slack, Discord, Teams, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, and Channel Talk.
|
|
652
|
+
Credentials extracted from desktop apps or authenticated in seconds — no API keys, no OAuth, no admin approval.
|
|
653
|
+
</p>
|
|
654
|
+
|
|
655
|
+
{/* CTAs with glass treatment in dark mode */}
|
|
656
|
+
<div className="mt-10 flex flex-col items-center justify-center gap-4 sm:flex-row">
|
|
657
|
+
<Link
|
|
658
|
+
href="/docs"
|
|
659
|
+
className="inline-flex items-center justify-center rounded-xl bg-zinc-900 px-6 py-3 text-sm font-medium text-white transition-all duration-300 hover:bg-zinc-800 dark:border dark:border-white/15 dark:bg-white/10 dark:backdrop-blur-xl dark:hover:bg-white/15 dark:hover:shadow-[0_0_30px_-5px_rgba(139,92,246,0.2)]"
|
|
660
|
+
>
|
|
661
|
+
Get Started
|
|
662
|
+
</Link>
|
|
663
|
+
<a
|
|
664
|
+
href="https://github.com/devxoul/agent-messenger"
|
|
665
|
+
target="_blank"
|
|
666
|
+
rel="noopener noreferrer"
|
|
667
|
+
className="inline-flex items-center justify-center rounded-xl border border-zinc-300 px-6 py-3 text-sm font-medium text-zinc-700 transition-all duration-300 hover:bg-zinc-50 dark:border-white/[0.06] dark:text-zinc-300 dark:hover:border-white/15 dark:hover:bg-white/[0.05]"
|
|
668
|
+
>
|
|
669
|
+
View on GitHub
|
|
670
|
+
</a>
|
|
671
|
+
</div>
|
|
672
|
+
|
|
673
|
+
<div className="mx-auto mt-14 max-w-2xl text-left">
|
|
674
|
+
<PlatformTerminal />
|
|
675
|
+
</div>
|
|
302
676
|
</div>
|
|
303
677
|
</section>
|
|
304
678
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
679
|
+
{/* ================================================================
|
|
680
|
+
3. TRUST / PLATFORM BAR (Platform pills with brand glow)
|
|
681
|
+
================================================================ */}
|
|
682
|
+
<section className="relative z-10 border-y border-zinc-100/50 px-4 py-16 sm:px-6 dark:border-white/[0.04]">
|
|
683
|
+
<div className="mx-auto max-w-5xl text-center">
|
|
684
|
+
<p className="font-mono text-xs uppercase tracking-widest text-zinc-400 dark:text-zinc-600">
|
|
685
|
+
Works with the platforms your team already uses
|
|
686
|
+
</p>
|
|
687
|
+
<div className="mt-8 flex flex-wrap items-center justify-center gap-3">
|
|
688
|
+
{PLATFORMS.map((p) => (
|
|
689
|
+
<Link
|
|
690
|
+
key={p.name}
|
|
691
|
+
href={p.href}
|
|
692
|
+
className="group relative flex items-center gap-3 rounded-full border border-zinc-200/40 bg-white/70 px-5 py-3 backdrop-blur-xl transition-all duration-300 hover:border-zinc-300/60 dark:border-white/[0.06] dark:bg-white/[0.04] dark:hover:border-white/15"
|
|
693
|
+
>
|
|
694
|
+
{/* Brand glow on hover */}
|
|
695
|
+
<div
|
|
696
|
+
className="absolute inset-0 -z-10 rounded-full opacity-0 transition-opacity duration-300 group-hover:opacity-100"
|
|
697
|
+
style={{ boxShadow: `0 0 40px -10px ${p.glowColor}` }}
|
|
698
|
+
/>
|
|
699
|
+
<div className="size-6">
|
|
700
|
+
<p.Icon />
|
|
701
|
+
</div>
|
|
702
|
+
<span className="font-mono text-xs font-medium text-zinc-600 transition-colors duration-300 group-hover:text-zinc-900 dark:text-zinc-400 dark:group-hover:text-zinc-200">
|
|
703
|
+
{p.name}
|
|
704
|
+
</span>
|
|
705
|
+
</Link>
|
|
706
|
+
))}
|
|
707
|
+
</div>
|
|
708
|
+
</div>
|
|
709
|
+
</section>
|
|
710
|
+
|
|
711
|
+
{/* ================================================================
|
|
712
|
+
4. WHY AGENT MESSENGER? (Glass cards)
|
|
713
|
+
================================================================ */}
|
|
714
|
+
<section className="relative z-10 px-4 py-20 sm:px-6 sm:py-24">
|
|
715
|
+
<div className="mx-auto max-w-5xl">
|
|
716
|
+
<div className="text-center">
|
|
717
|
+
<p className="font-mono text-xs font-medium uppercase tracking-widest text-blue-600 dark:text-blue-400">Why Agent Messenger?</p>
|
|
718
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">
|
|
719
|
+
You shouldn't need a bot token to send a message
|
|
720
|
+
</h2>
|
|
721
|
+
</div>
|
|
722
|
+
|
|
723
|
+
<div className="mt-14 grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
724
|
+
{/* The Problem */}
|
|
725
|
+
<div className="rounded-2xl border border-zinc-200/40 bg-white/60 p-8 backdrop-blur-xl transition-all duration-300 hover:border-zinc-300/60 hover:shadow-lg dark:border-white/[0.06] dark:bg-white/[0.03] dark:hover:border-white/15 dark:hover:shadow-[0_0_40px_-15px_rgba(139,92,246,0.15)]">
|
|
726
|
+
<div className="mb-4 inline-flex items-center gap-2 rounded-full bg-red-50 px-3 py-1 font-mono text-xs font-medium uppercase tracking-wider text-red-600 dark:bg-red-950/50 dark:text-red-400">
|
|
727
|
+
<span className="size-1.5 rounded-full bg-red-500" />
|
|
728
|
+
Problem
|
|
320
729
|
</div>
|
|
321
|
-
<
|
|
322
|
-
|
|
323
|
-
|
|
730
|
+
<p className="leading-relaxed text-zinc-600 dark:text-zinc-400">
|
|
731
|
+
Every platform gates API access behind OAuth apps that need admin approval — days of waiting just to send a message.
|
|
732
|
+
And even then, your agent is a <strong className="text-zinc-900 dark:text-zinc-100">bot</strong>, not you. Different name, different permissions, different context.
|
|
324
733
|
</p>
|
|
325
734
|
</div>
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
735
|
+
|
|
736
|
+
{/* The Solution */}
|
|
737
|
+
<div className="rounded-2xl border border-zinc-200/40 bg-white/60 p-8 backdrop-blur-xl transition-all duration-300 hover:border-zinc-300/60 hover:shadow-lg dark:border-white/[0.06] dark:bg-white/[0.03] dark:hover:border-white/15 dark:hover:shadow-[0_0_40px_-15px_rgba(139,92,246,0.15)]">
|
|
738
|
+
<div className="mb-4 inline-flex items-center gap-2 rounded-full bg-emerald-50 px-3 py-1 font-mono text-xs font-medium uppercase tracking-wider text-emerald-600 dark:bg-emerald-950/50 dark:text-emerald-400">
|
|
739
|
+
<span className="size-1.5 rounded-full bg-emerald-500" />
|
|
740
|
+
Solution
|
|
329
741
|
</div>
|
|
330
|
-
<
|
|
331
|
-
|
|
332
|
-
|
|
742
|
+
<p className="leading-relaxed text-zinc-600 dark:text-zinc-400">
|
|
743
|
+
Agent Messenger reads session tokens from your Slack, Discord, Teams, or KakaoTalk desktop app — zero config.
|
|
744
|
+
Telegram, WhatsApp, LINE, and Instagram authenticate with a one-time code or credentials.
|
|
745
|
+
Either way, your agent operates <strong className="text-zinc-900 dark:text-zinc-100">as you</strong> — same name, same permissions, same context.
|
|
333
746
|
</p>
|
|
334
747
|
</div>
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
748
|
+
</div>
|
|
749
|
+
|
|
750
|
+
<p className="mt-6 text-center text-sm text-zinc-400 dark:text-zinc-600">
|
|
751
|
+
Credentials are stored locally in ~/.config/agent-messenger/ with restricted permissions. Nothing is sent to third-party servers.
|
|
752
|
+
</p>
|
|
753
|
+
</div>
|
|
754
|
+
</section>
|
|
755
|
+
|
|
756
|
+
{/* ================================================================
|
|
757
|
+
5. FEATURES GRID (Glass cards with hover glow)
|
|
758
|
+
================================================================ */}
|
|
759
|
+
<section className="relative z-10 border-t border-zinc-100/50 px-4 py-20 sm:px-6 sm:py-24 dark:border-white/[0.04]">
|
|
760
|
+
<div className="mx-auto max-w-5xl">
|
|
761
|
+
<div className="text-center">
|
|
762
|
+
<p className="font-mono text-xs font-medium uppercase tracking-widest text-blue-600 dark:text-blue-400">Features</p>
|
|
763
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">
|
|
764
|
+
Built for agents, not humans
|
|
765
|
+
</h2>
|
|
766
|
+
</div>
|
|
767
|
+
|
|
768
|
+
<div className="mt-14 grid grid-cols-1 gap-4 sm:grid-cols-2 sm:gap-6 lg:grid-cols-3">
|
|
769
|
+
{FEATURES.map((f) => (
|
|
770
|
+
<div
|
|
771
|
+
key={f.title}
|
|
772
|
+
className="group rounded-2xl border border-zinc-200/40 bg-white/60 p-6 backdrop-blur-xl transition-all duration-300 hover:border-zinc-300/60 hover:shadow-lg dark:border-white/[0.06] dark:bg-white/[0.03] dark:hover:border-white/15 dark:hover:shadow-[0_0_40px_-15px_rgba(139,92,246,0.15)]"
|
|
773
|
+
>
|
|
774
|
+
<div className="flex size-10 items-center justify-center rounded-xl bg-blue-50 text-blue-600 transition-colors duration-300 dark:bg-blue-950/50 dark:text-blue-400">
|
|
775
|
+
{f.icon}
|
|
776
|
+
</div>
|
|
777
|
+
<h3 className="mt-4 font-mono text-sm font-semibold text-zinc-900 dark:text-zinc-100">{f.title}</h3>
|
|
778
|
+
<p className="mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400">{f.description}</p>
|
|
338
779
|
</div>
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
780
|
+
))}
|
|
781
|
+
</div>
|
|
782
|
+
</div>
|
|
783
|
+
</section>
|
|
784
|
+
|
|
785
|
+
{/* ================================================================
|
|
786
|
+
6. HOW IT WORKS (Vertical timeline with glass nodes + cards)
|
|
787
|
+
================================================================ */}
|
|
788
|
+
<section className="relative z-10 border-t border-zinc-100/50 px-4 py-20 sm:px-6 sm:py-24 dark:border-white/[0.04]">
|
|
789
|
+
<div className="mx-auto max-w-3xl">
|
|
790
|
+
<div className="text-center">
|
|
791
|
+
<p className="font-mono text-xs font-medium uppercase tracking-widest text-blue-600 dark:text-blue-400">How It Works</p>
|
|
792
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">
|
|
793
|
+
Running in under a minute
|
|
794
|
+
</h2>
|
|
795
|
+
</div>
|
|
796
|
+
|
|
797
|
+
{/* Vertical Timeline */}
|
|
798
|
+
<div className="relative mt-14">
|
|
799
|
+
{/* Gradient Timeline Line */}
|
|
800
|
+
<div className="absolute left-[27px] top-8 bottom-8 w-px bg-gradient-to-b from-violet-300/50 via-blue-300/30 to-transparent dark:from-violet-500/30 dark:via-blue-500/20 dark:to-transparent" />
|
|
801
|
+
|
|
802
|
+
<div className="space-y-8">
|
|
803
|
+
{HOW_IT_WORKS.map((step) => (
|
|
804
|
+
<div key={step.step} className="relative flex gap-6">
|
|
805
|
+
{/* Numbered Node */}
|
|
806
|
+
<div className="relative z-10 flex-shrink-0">
|
|
807
|
+
<div className="flex size-[54px] items-center justify-center rounded-2xl border border-zinc-200/60 bg-white font-mono text-xs font-bold text-zinc-400 shadow-sm backdrop-blur-xl transition-all duration-300 dark:border-white/10 dark:bg-white/[0.05] dark:text-white/50 dark:shadow-none">
|
|
808
|
+
{String(step.step).padStart(2, '0')}
|
|
809
|
+
</div>
|
|
810
|
+
</div>
|
|
811
|
+
|
|
812
|
+
{/* Content Card */}
|
|
813
|
+
<div className="flex-1 rounded-2xl border border-zinc-200/40 bg-white/60 p-5 backdrop-blur-xl transition-all duration-300 hover:border-zinc-300/60 dark:border-white/[0.06] dark:bg-white/[0.03] dark:hover:border-white/15">
|
|
814
|
+
<h3 className="text-base font-semibold text-zinc-900 dark:text-zinc-100">
|
|
815
|
+
{step.title}
|
|
816
|
+
</h3>
|
|
817
|
+
<p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">
|
|
818
|
+
{step.description}
|
|
819
|
+
</p>
|
|
820
|
+
<code className="mt-3 inline-block rounded-lg border border-zinc-100 bg-zinc-50 px-3 py-1.5 font-mono text-xs text-blue-600 dark:border-white/[0.04] dark:bg-white/[0.04] dark:text-blue-400">
|
|
821
|
+
{step.code}
|
|
822
|
+
</code>
|
|
823
|
+
</div>
|
|
824
|
+
</div>
|
|
825
|
+
))}
|
|
343
826
|
</div>
|
|
344
827
|
</div>
|
|
345
828
|
</div>
|
|
346
829
|
</section>
|
|
347
830
|
|
|
348
|
-
|
|
831
|
+
{/* ================================================================
|
|
832
|
+
7. USE CASES (Quote blocks with glass background)
|
|
833
|
+
================================================================ */}
|
|
834
|
+
<section className="relative z-10 border-t border-zinc-100/50 px-4 py-20 sm:px-6 sm:py-24 dark:border-white/[0.04]">
|
|
349
835
|
<div className="mx-auto max-w-5xl">
|
|
350
|
-
<div className="
|
|
351
|
-
<
|
|
352
|
-
|
|
836
|
+
<div className="text-center">
|
|
837
|
+
<p className="font-mono text-xs font-medium uppercase tracking-widest text-blue-600 dark:text-blue-400">Use Cases</p>
|
|
838
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">
|
|
839
|
+
What agents build with this
|
|
840
|
+
</h2>
|
|
841
|
+
</div>
|
|
842
|
+
|
|
843
|
+
<div className="mt-14 grid grid-cols-1 gap-4 md:grid-cols-2">
|
|
844
|
+
{USE_CASES.map((uc) => (
|
|
845
|
+
<div
|
|
846
|
+
key={uc}
|
|
847
|
+
className="rounded-r-xl border-l-4 border-blue-500 bg-white/60 px-5 py-4 backdrop-blur-xl transition-all duration-300 dark:bg-white/[0.02]"
|
|
848
|
+
>
|
|
849
|
+
<p className="text-sm leading-relaxed text-zinc-600 italic dark:text-zinc-400">
|
|
850
|
+
“{uc}”
|
|
851
|
+
</p>
|
|
852
|
+
</div>
|
|
853
|
+
))}
|
|
854
|
+
</div>
|
|
855
|
+
</div>
|
|
856
|
+
</section>
|
|
857
|
+
|
|
858
|
+
{/* ================================================================
|
|
859
|
+
8. WHY CLI, NOT MCP? (Glass comparison cards)
|
|
860
|
+
================================================================ */}
|
|
861
|
+
<section className="relative z-10 border-t border-zinc-100/50 px-4 py-20 sm:px-6 sm:py-24 dark:border-white/[0.04]">
|
|
862
|
+
<div className="mx-auto max-w-4xl">
|
|
863
|
+
<div className="text-center">
|
|
864
|
+
<p className="font-mono text-xs font-medium uppercase tracking-widest text-blue-600 dark:text-blue-400">Philosophy</p>
|
|
865
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">
|
|
866
|
+
Why CLI, not MCP?
|
|
353
867
|
</h2>
|
|
354
|
-
<p className="mt-4 text-lg text-zinc-600 dark:text-zinc-400">No configuration files. No lengthy setups.</p>
|
|
355
868
|
</div>
|
|
356
869
|
|
|
357
|
-
<div className="
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
<
|
|
361
|
-
|
|
362
|
-
|
|
870
|
+
<div className="mt-14 grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
871
|
+
{/* MCP */}
|
|
872
|
+
<div className="rounded-2xl border border-zinc-200/40 bg-white/60 p-8 backdrop-blur-xl transition-all duration-300 dark:border-white/[0.06] dark:bg-white/[0.03]">
|
|
873
|
+
<span className="inline-block rounded-md bg-zinc-100 px-3 py-1 font-mono text-sm font-semibold text-zinc-500 dark:bg-white/[0.06] dark:text-zinc-400">
|
|
874
|
+
MCP
|
|
875
|
+
</span>
|
|
876
|
+
<ul className="mt-6 space-y-4">
|
|
877
|
+
{[
|
|
878
|
+
'Requires a running server process per integration',
|
|
879
|
+
'Registers all tools upfront — larger context window footprint',
|
|
880
|
+
'Additional protocol layer between agent and action',
|
|
881
|
+
].map((point) => (
|
|
882
|
+
<li key={point} className="flex items-start gap-3 text-sm text-zinc-500 dark:text-zinc-500">
|
|
883
|
+
<span className="mt-0.5 text-red-400 dark:text-red-500">✕</span>
|
|
884
|
+
{point}
|
|
885
|
+
</li>
|
|
886
|
+
))}
|
|
887
|
+
</ul>
|
|
363
888
|
</div>
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
{
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
889
|
+
|
|
890
|
+
{/* CLI */}
|
|
891
|
+
<div className="rounded-2xl border border-zinc-200/40 bg-white/60 p-8 backdrop-blur-xl transition-all duration-300 hover:border-zinc-300/60 hover:shadow-lg dark:border-white/[0.06] dark:bg-white/[0.03] dark:hover:border-white/15 dark:hover:shadow-[0_0_40px_-15px_rgba(139,92,246,0.15)]">
|
|
892
|
+
<span className="inline-block rounded-md bg-blue-50 px-3 py-1 font-mono text-sm font-semibold text-blue-600 dark:bg-blue-950/50 dark:text-blue-400">
|
|
893
|
+
Agent Skills + CLI
|
|
894
|
+
</span>
|
|
895
|
+
<ul className="mt-6 space-y-4">
|
|
896
|
+
{[
|
|
897
|
+
'Agent learns one skill, calls one CLI command',
|
|
898
|
+
'Minimal token footprint — only the tool it needs',
|
|
899
|
+
'Structured JSON output, compact session references',
|
|
900
|
+
].map((point) => (
|
|
901
|
+
<li key={point} className="flex items-start gap-3 text-sm text-zinc-700 dark:text-zinc-300">
|
|
902
|
+
<span className="mt-0.5 text-emerald-500">✓</span>
|
|
903
|
+
{point}
|
|
904
|
+
</li>
|
|
905
|
+
))}
|
|
906
|
+
</ul>
|
|
381
907
|
</div>
|
|
382
908
|
</div>
|
|
383
909
|
</div>
|
|
384
910
|
</section>
|
|
385
911
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
>
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
912
|
+
{/* ================================================================
|
|
913
|
+
9. PLATFORM FEATURE MATRIX (Glass table)
|
|
914
|
+
================================================================ */}
|
|
915
|
+
<section className="relative z-10 border-t border-zinc-100/50 px-4 py-20 sm:px-6 sm:py-24 dark:border-white/[0.04]">
|
|
916
|
+
<div className="mx-auto max-w-5xl">
|
|
917
|
+
<div className="text-center">
|
|
918
|
+
<p className="font-mono text-xs font-medium uppercase tracking-widest text-blue-600 dark:text-blue-400">Compatibility</p>
|
|
919
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">
|
|
920
|
+
Platform capabilities
|
|
921
|
+
</h2>
|
|
922
|
+
</div>
|
|
923
|
+
|
|
924
|
+
<div className="mt-14 overflow-x-auto rounded-2xl border border-zinc-200/40 bg-white/50 backdrop-blur-xl dark:border-white/[0.06] dark:bg-white/[0.02]">
|
|
925
|
+
<table className="w-full text-sm">
|
|
926
|
+
<thead>
|
|
927
|
+
<tr className="border-b border-zinc-200/40 dark:border-white/[0.06]">
|
|
928
|
+
<th className="px-4 py-3 text-left font-mono text-xs font-semibold tracking-wide text-zinc-500 uppercase dark:text-zinc-500">
|
|
929
|
+
Feature
|
|
930
|
+
</th>
|
|
931
|
+
{PLATFORM_COLUMNS.map((col) => (
|
|
932
|
+
<th
|
|
933
|
+
key={col}
|
|
934
|
+
className="px-4 py-3 text-center font-mono text-xs font-semibold tracking-wide text-zinc-500 uppercase whitespace-nowrap dark:text-zinc-500"
|
|
935
|
+
>
|
|
936
|
+
{col}
|
|
937
|
+
</th>
|
|
938
|
+
))}
|
|
939
|
+
</tr>
|
|
940
|
+
</thead>
|
|
941
|
+
<tbody>
|
|
942
|
+
{CAPABILITIES.map((row, i) => (
|
|
943
|
+
<tr
|
|
944
|
+
key={row.feature}
|
|
945
|
+
className={
|
|
946
|
+
i % 2 === 0
|
|
947
|
+
? 'bg-white/30 dark:bg-white/[0.01]'
|
|
948
|
+
: 'bg-zinc-50/30 dark:bg-transparent'
|
|
949
|
+
}
|
|
950
|
+
>
|
|
951
|
+
<td className="px-4 py-3 font-medium text-zinc-700 whitespace-nowrap dark:text-zinc-300">
|
|
952
|
+
{row.feature}
|
|
953
|
+
</td>
|
|
954
|
+
{PLATFORM_KEYS.map((key) => (
|
|
955
|
+
<td key={key} className="px-4 py-3 text-center">
|
|
956
|
+
{row[key] ? (
|
|
957
|
+
<span className="font-mono text-emerald-500">✓</span>
|
|
958
|
+
) : (
|
|
959
|
+
<span className="text-zinc-300 dark:text-zinc-700">—</span>
|
|
960
|
+
)}
|
|
961
|
+
</td>
|
|
962
|
+
))}
|
|
963
|
+
</tr>
|
|
964
|
+
))}
|
|
965
|
+
</tbody>
|
|
966
|
+
</table>
|
|
967
|
+
</div>
|
|
968
|
+
<p className="mt-6 text-center text-sm text-zinc-500 dark:text-zinc-400">
|
|
969
|
+
Slack goes deepest — scheduled messages, ephemeral sends, file downloads, real-time events SDK, activity feed, drafts, saved items, reminders, pins, and bookmarks.
|
|
970
|
+
</p>
|
|
971
|
+
</div>
|
|
972
|
+
</section>
|
|
973
|
+
|
|
974
|
+
{/* ================================================================
|
|
975
|
+
10. INSTALL CTA (Glass card with glow)
|
|
976
|
+
================================================================ */}
|
|
977
|
+
|
|
978
|
+
<section className="relative z-10 border-t border-zinc-100/50 px-4 py-20 sm:px-6 sm:py-24 dark:border-white/[0.04]">
|
|
979
|
+
<div className="mx-auto max-w-2xl">
|
|
980
|
+
<div className="relative overflow-hidden rounded-3xl border border-zinc-200/40 bg-white/60 p-10 text-center backdrop-blur-xl dark:border-white/[0.08] dark:bg-white/[0.03]">
|
|
981
|
+
{/* Subtle CTA glow behind */}
|
|
982
|
+
<div className="absolute inset-0 -z-10 bg-[radial-gradient(ellipse_at_center,rgba(139,92,246,0.08)_0%,transparent_60%)] opacity-0 dark:opacity-100" />
|
|
983
|
+
|
|
984
|
+
<h2 className="text-3xl font-bold tracking-tight sm:text-4xl">
|
|
985
|
+
Install once. Message everywhere.
|
|
986
|
+
</h2>
|
|
987
|
+
|
|
988
|
+
<div className="mx-auto mt-10 max-w-lg text-left">
|
|
989
|
+
<TerminalBlock
|
|
990
|
+
copyText="npm install -g agent-messenger"
|
|
991
|
+
>
|
|
992
|
+
<span className="text-zinc-400 dark:text-zinc-500">$ </span>
|
|
993
|
+
<span className="text-zinc-800 dark:text-zinc-100">npm install -g agent-messenger</span>
|
|
994
|
+
</TerminalBlock>
|
|
995
|
+
</div>
|
|
996
|
+
|
|
997
|
+
<div className="mt-10 flex flex-col items-center justify-center gap-4 sm:flex-row">
|
|
998
|
+
<Link
|
|
999
|
+
href="/docs"
|
|
1000
|
+
className="inline-flex items-center justify-center rounded-xl bg-zinc-900 px-6 py-3 text-sm font-medium text-white transition-all duration-300 hover:bg-zinc-800 dark:border dark:border-white/15 dark:bg-white/10 dark:backdrop-blur-xl dark:hover:bg-white/15"
|
|
1001
|
+
>
|
|
1002
|
+
Read the Docs
|
|
1003
|
+
</Link>
|
|
1004
|
+
<a
|
|
1005
|
+
href="https://github.com/devxoul/agent-messenger"
|
|
1006
|
+
target="_blank"
|
|
1007
|
+
rel="noopener noreferrer"
|
|
1008
|
+
className="inline-flex items-center justify-center rounded-xl border border-zinc-300 px-6 py-3 text-sm font-medium text-zinc-700 transition-all duration-300 hover:bg-white dark:border-white/[0.06] dark:text-zinc-300 dark:hover:border-white/15 dark:hover:bg-white/[0.05]"
|
|
1009
|
+
>
|
|
1010
|
+
View on GitHub
|
|
1011
|
+
</a>
|
|
440
1012
|
</div>
|
|
441
1013
|
</div>
|
|
442
1014
|
</div>
|
|
443
1015
|
</section>
|
|
444
1016
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
href="/docs"
|
|
454
|
-
className="rounded-lg bg-white px-8 py-3 font-semibold text-black transition-colors hover:bg-zinc-200 dark:bg-black dark:text-white dark:hover:bg-zinc-800"
|
|
455
|
-
>
|
|
456
|
-
Read the Docs
|
|
1017
|
+
{/* ================================================================
|
|
1018
|
+
11. FOOTER (Glass top border)
|
|
1019
|
+
================================================================ */}
|
|
1020
|
+
<footer className="relative z-10 border-t border-zinc-200/40 px-4 py-12 dark:border-white/[0.06]">
|
|
1021
|
+
<div className="mx-auto max-w-5xl text-center">
|
|
1022
|
+
<div className="flex items-center justify-center gap-6 font-mono text-xs text-zinc-400 dark:text-zinc-600">
|
|
1023
|
+
<Link href="/docs" className="transition-colors duration-300 hover:text-zinc-700 dark:hover:text-zinc-300">
|
|
1024
|
+
docs
|
|
457
1025
|
</Link>
|
|
458
|
-
<
|
|
459
|
-
href="/
|
|
460
|
-
|
|
1026
|
+
<a
|
|
1027
|
+
href="https://github.com/devxoul/agent-messenger"
|
|
1028
|
+
target="_blank"
|
|
1029
|
+
rel="noopener noreferrer"
|
|
1030
|
+
className="transition-colors duration-300 hover:text-zinc-700 dark:hover:text-zinc-300"
|
|
461
1031
|
>
|
|
462
|
-
|
|
463
|
-
</
|
|
1032
|
+
github
|
|
1033
|
+
</a>
|
|
1034
|
+
<a
|
|
1035
|
+
href="https://www.npmjs.com/package/agent-messenger"
|
|
1036
|
+
target="_blank"
|
|
1037
|
+
rel="noopener noreferrer"
|
|
1038
|
+
className="transition-colors duration-300 hover:text-zinc-700 dark:hover:text-zinc-300"
|
|
1039
|
+
>
|
|
1040
|
+
npm
|
|
1041
|
+
</a>
|
|
464
1042
|
</div>
|
|
1043
|
+
<p className="mt-6 font-mono text-xs text-zinc-400 dark:text-zinc-600">
|
|
1044
|
+
© {new Date().getFullYear()} agent-messenger · MIT
|
|
1045
|
+
</p>
|
|
465
1046
|
</div>
|
|
466
|
-
</section>
|
|
467
|
-
|
|
468
|
-
<footer className="border-t border-zinc-200 bg-white py-12 text-center text-sm text-zinc-500 dark:border-zinc-800 dark:bg-black dark:text-zinc-400">
|
|
469
|
-
<p>© {new Date().getFullYear()} Agent Messenger. Released under the MIT License.</p>
|
|
470
1047
|
</footer>
|
|
471
1048
|
</div>
|
|
472
1049
|
)
|