agent-messenger 2.7.0 → 2.8.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/plugin.json +1 -1
- package/.github/workflows/ci.yml +6 -0
- package/.oxfmtrc.json +13 -1
- package/.oxlintrc.json +10 -1
- package/README.md +1 -1
- package/dist/package.json +59 -58
- package/dist/src/platforms/channeltalk/client.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/client.js +2 -2
- package/dist/src/platforms/channeltalk/client.js.map +1 -1
- package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
- package/dist/src/platforms/channeltalk/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/commands/message.js.map +1 -1
- package/dist/src/platforms/channeltalk/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/channeltalk/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -1
- package/dist/src/platforms/channeltalk/token-extractor.d.ts +9 -23
- package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/token-extractor.js +109 -341
- package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/client.d.ts +1 -1
- package/dist/src/platforms/channeltalkbot/client.d.ts.map +1 -1
- package/dist/src/platforms/channeltalkbot/client.js +4 -4
- package/dist/src/platforms/channeltalkbot/client.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/auth.js +4 -1
- package/dist/src/platforms/channeltalkbot/commands/auth.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/shared.d.ts.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/shared.js.map +1 -1
- package/dist/src/platforms/discord/commands/auth.js.map +1 -1
- package/dist/src/platforms/discord/commands/whoami.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/whoami.js.map +1 -1
- package/dist/src/platforms/discord/token-extractor.d.ts +2 -10
- package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/discord/token-extractor.js +38 -172
- package/dist/src/platforms/discord/token-extractor.js.map +1 -1
- package/dist/src/platforms/discordbot/client.d.ts.map +1 -1
- package/dist/src/platforms/discordbot/client.js.map +1 -1
- package/dist/src/platforms/instagram/cli.d.ts.map +1 -1
- package/dist/src/platforms/instagram/cli.js +1 -4
- package/dist/src/platforms/instagram/cli.js.map +1 -1
- package/dist/src/platforms/instagram/client.d.ts.map +1 -1
- package/dist/src/platforms/instagram/client.js +8 -7
- package/dist/src/platforms/instagram/client.js.map +1 -1
- package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/instagram/commands/auth.js.map +1 -1
- package/dist/src/platforms/instagram/commands/chat.d.ts.map +1 -1
- package/dist/src/platforms/instagram/commands/chat.js.map +1 -1
- package/dist/src/platforms/instagram/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/instagram/commands/message.js.map +1 -1
- package/dist/src/platforms/instagram/commands/shared.d.ts.map +1 -1
- package/dist/src/platforms/instagram/commands/shared.js.map +1 -1
- package/dist/src/platforms/instagram/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/instagram/credential-manager.js +1 -1
- package/dist/src/platforms/instagram/credential-manager.js.map +1 -1
- package/dist/src/platforms/instagram/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/instagram/ensure-auth.js.map +1 -1
- package/dist/src/platforms/instagram/token-extractor.d.ts +7 -19
- package/dist/src/platforms/instagram/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/instagram/token-extractor.js +44 -270
- package/dist/src/platforms/instagram/token-extractor.js.map +1 -1
- package/dist/src/platforms/instagram/types.d.ts.map +1 -1
- package/dist/src/platforms/instagram/types.js +4 -2
- package/dist/src/platforms/instagram/types.js.map +1 -1
- package/dist/src/platforms/kakaotalk/auth/kakao-login.d.ts.map +1 -1
- package/dist/src/platforms/kakaotalk/auth/kakao-login.js +18 -4
- package/dist/src/platforms/kakaotalk/auth/kakao-login.js.map +1 -1
- package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -1
- package/dist/src/platforms/kakaotalk/client.js +3 -3
- package/dist/src/platforms/kakaotalk/client.js.map +1 -1
- package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/kakaotalk/commands/auth.js +15 -9
- package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -1
- package/dist/src/platforms/kakaotalk/commands/shared.d.ts.map +1 -1
- package/dist/src/platforms/kakaotalk/commands/shared.js.map +1 -1
- package/dist/src/platforms/kakaotalk/protocol/connection.d.ts.map +1 -1
- package/dist/src/platforms/kakaotalk/protocol/connection.js.map +1 -1
- package/dist/src/platforms/kakaotalk/protocol/crypto.js +1 -1
- package/dist/src/platforms/kakaotalk/protocol/crypto.js.map +1 -1
- package/dist/src/platforms/kakaotalk/protocol/session.d.ts.map +1 -1
- package/dist/src/platforms/kakaotalk/protocol/session.js +1 -3
- package/dist/src/platforms/kakaotalk/protocol/session.js.map +1 -1
- package/dist/src/platforms/kakaotalk/token-extractor.js +5 -2
- package/dist/src/platforms/kakaotalk/token-extractor.js.map +1 -1
- package/dist/src/platforms/kakaotalk/types.d.ts.map +1 -1
- package/dist/src/platforms/kakaotalk/types.js +4 -2
- package/dist/src/platforms/kakaotalk/types.js.map +1 -1
- package/dist/src/platforms/line/cli.d.ts.map +1 -1
- package/dist/src/platforms/line/cli.js +1 -4
- package/dist/src/platforms/line/cli.js.map +1 -1
- package/dist/src/platforms/line/client.d.ts.map +1 -1
- package/dist/src/platforms/line/client.js +5 -13
- package/dist/src/platforms/line/client.js.map +1 -1
- package/dist/src/platforms/line/commands/chat.d.ts.map +1 -1
- package/dist/src/platforms/line/commands/chat.js.map +1 -1
- package/dist/src/platforms/line/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/line/commands/message.js.map +1 -1
- package/dist/src/platforms/line/listener.js +1 -1
- package/dist/src/platforms/line/listener.js.map +1 -1
- package/dist/src/platforms/slack/cli.d.ts.map +1 -1
- package/dist/src/platforms/slack/cli.js.map +1 -1
- package/dist/src/platforms/slack/client-mappers.d.ts +14 -0
- package/dist/src/platforms/slack/client-mappers.d.ts.map +1 -0
- package/dist/src/platforms/slack/client-mappers.js +245 -0
- package/dist/src/platforms/slack/client-mappers.js.map +1 -0
- package/dist/src/platforms/slack/client.d.ts +0 -1
- package/dist/src/platforms/slack/client.d.ts.map +1 -1
- package/dist/src/platforms/slack/client.js +41 -455
- package/dist/src/platforms/slack/client.js.map +1 -1
- package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/channel.js.map +1 -1
- package/dist/src/platforms/slack/commands/emoji.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/emoji.js +1 -3
- package/dist/src/platforms/slack/commands/emoji.js.map +1 -1
- package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/message.js.map +1 -1
- package/dist/src/platforms/slack/commands/reminder.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/reminder.js.map +1 -1
- package/dist/src/platforms/slack/commands/user.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/user.js.map +1 -1
- package/dist/src/platforms/slack/commands/usergroup.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/usergroup.js.map +1 -1
- package/dist/src/platforms/slack/commands/whoami.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/whoami.js.map +1 -1
- package/dist/src/platforms/slack/token-extractor.d.ts +2 -6
- package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/slack/token-extractor.js +35 -229
- package/dist/src/platforms/slack/token-extractor.js.map +1 -1
- package/dist/src/platforms/slackbot/cli.d.ts.map +1 -1
- package/dist/src/platforms/slackbot/cli.js +1 -1
- package/dist/src/platforms/slackbot/cli.js.map +1 -1
- package/dist/src/platforms/teams/client.d.ts.map +1 -1
- package/dist/src/platforms/teams/client.js +1 -1
- package/dist/src/platforms/teams/client.js.map +1 -1
- package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/auth.js +4 -1
- package/dist/src/platforms/teams/commands/auth.js.map +1 -1
- package/dist/src/platforms/teams/commands/whoami.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/whoami.js.map +1 -1
- package/dist/src/platforms/teams/token-extractor.d.ts +6 -18
- package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/teams/token-extractor.js +71 -324
- package/dist/src/platforms/teams/token-extractor.js.map +1 -1
- package/dist/src/platforms/telegram/cli.d.ts.map +1 -1
- package/dist/src/platforms/telegram/cli.js +1 -4
- package/dist/src/platforms/telegram/cli.js.map +1 -1
- package/dist/src/platforms/telegram/client.d.ts.map +1 -1
- package/dist/src/platforms/telegram/client.js.map +1 -1
- package/dist/src/platforms/telegram/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/telegram/commands/auth.js +1 -1
- package/dist/src/platforms/telegram/commands/auth.js.map +1 -1
- package/dist/src/platforms/telegram/commands/chat.d.ts.map +1 -1
- package/dist/src/platforms/telegram/commands/chat.js.map +1 -1
- package/dist/src/platforms/telegram/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/telegram/commands/message.js.map +1 -1
- package/dist/src/platforms/telegram/commands/whoami.js +1 -1
- package/dist/src/platforms/telegram/commands/whoami.js.map +1 -1
- package/dist/src/platforms/telegram/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/telegram/credential-manager.js +6 -2
- package/dist/src/platforms/telegram/credential-manager.js.map +1 -1
- package/dist/src/platforms/telegram/my-telegram-org.js.map +1 -1
- package/dist/src/platforms/webex/cli.d.ts.map +1 -1
- package/dist/src/platforms/webex/cli.js +1 -4
- package/dist/src/platforms/webex/cli.js.map +1 -1
- package/dist/src/platforms/webex/client.d.ts.map +1 -1
- package/dist/src/platforms/webex/client.js +3 -7
- package/dist/src/platforms/webex/client.js.map +1 -1
- package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/auth.js +1 -3
- package/dist/src/platforms/webex/commands/auth.js.map +1 -1
- package/dist/src/platforms/webex/commands/member.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/member.js +1 -3
- package/dist/src/platforms/webex/commands/member.js.map +1 -1
- package/dist/src/platforms/webex/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/message.js.map +1 -1
- package/dist/src/platforms/webex/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/webex/commands/space.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/space.js.map +1 -1
- package/dist/src/platforms/webex/commands/whoami.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/whoami.js.map +1 -1
- package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/webex/credential-manager.js.map +1 -1
- package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/webex/ensure-auth.js +1 -3
- package/dist/src/platforms/webex/ensure-auth.js.map +1 -1
- package/dist/src/platforms/webex/index.d.ts +1 -1
- package/dist/src/platforms/webex/index.d.ts.map +1 -1
- package/dist/src/platforms/webex/index.js.map +1 -1
- package/dist/src/platforms/webex/markdown-to-html.js.map +1 -1
- package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/webex/token-extractor.js +5 -14
- package/dist/src/platforms/webex/token-extractor.js.map +1 -1
- package/dist/src/platforms/wechatbot/client.d.ts.map +1 -1
- package/dist/src/platforms/wechatbot/client.js.map +1 -1
- package/dist/src/platforms/wechatbot/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/wechatbot/commands/message.js.map +1 -1
- package/dist/src/platforms/whatsapp/cli.d.ts.map +1 -1
- package/dist/src/platforms/whatsapp/cli.js +1 -4
- package/dist/src/platforms/whatsapp/cli.js.map +1 -1
- package/dist/src/platforms/whatsapp/commands/chat.d.ts.map +1 -1
- package/dist/src/platforms/whatsapp/commands/chat.js.map +1 -1
- package/dist/src/platforms/whatsapp/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/whatsapp/commands/message.js.map +1 -1
- package/dist/src/platforms/whatsapp/commands/shared.d.ts.map +1 -1
- package/dist/src/platforms/whatsapp/commands/shared.js.map +1 -1
- package/dist/src/platforms/whatsapp/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/whatsapp/credential-manager.js +1 -1
- package/dist/src/platforms/whatsapp/credential-manager.js.map +1 -1
- package/dist/src/platforms/whatsapp/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/whatsapp/ensure-auth.js.map +1 -1
- package/dist/src/platforms/whatsappbot/client.d.ts.map +1 -1
- package/dist/src/platforms/whatsappbot/client.js +2 -2
- package/dist/src/platforms/whatsappbot/client.js.map +1 -1
- package/dist/src/platforms/whatsappbot/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/whatsappbot/commands/auth.js +4 -1
- package/dist/src/platforms/whatsappbot/commands/auth.js.map +1 -1
- package/dist/src/platforms/whatsappbot/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/whatsappbot/commands/message.js.map +1 -1
- package/dist/src/platforms/whatsappbot/commands/shared.d.ts.map +1 -1
- package/dist/src/platforms/whatsappbot/commands/shared.js.map +1 -1
- package/dist/src/shared/chromium/browsers.d.ts +7 -0
- package/dist/src/shared/chromium/browsers.d.ts.map +1 -0
- package/dist/src/shared/chromium/browsers.js +89 -0
- package/dist/src/shared/chromium/browsers.js.map +1 -0
- package/dist/src/shared/chromium/cookie-reader.d.ts +20 -0
- package/dist/src/shared/chromium/cookie-reader.d.ts.map +1 -0
- package/dist/src/shared/chromium/cookie-reader.js +99 -0
- package/dist/src/shared/chromium/cookie-reader.js.map +1 -0
- package/dist/src/shared/chromium/decryptor.d.ts +42 -0
- package/dist/src/shared/chromium/decryptor.d.ts.map +1 -0
- package/dist/src/shared/chromium/decryptor.js +205 -0
- package/dist/src/shared/chromium/decryptor.js.map +1 -0
- package/dist/src/shared/chromium/index.d.ts +6 -0
- package/dist/src/shared/chromium/index.d.ts.map +1 -0
- package/dist/src/shared/chromium/index.js +4 -0
- package/dist/src/shared/chromium/index.js.map +1 -0
- package/dist/src/shared/chromium/types.d.ts +11 -0
- package/dist/src/shared/chromium/types.d.ts.map +1 -0
- package/dist/src/shared/chromium/types.js +2 -0
- package/dist/src/shared/chromium/types.js.map +1 -0
- package/dist/src/shared/utils/derived-key-cache.d.ts +1 -1
- package/dist/src/shared/utils/derived-key-cache.d.ts.map +1 -1
- package/dist/src/shared/utils/linux-keyring.js +4 -1
- package/dist/src/shared/utils/linux-keyring.js.map +1 -1
- package/dist/src/tui/adapters/kakaotalk-adapter.d.ts.map +1 -1
- package/dist/src/tui/adapters/kakaotalk-adapter.js +6 -1
- package/dist/src/tui/adapters/kakaotalk-adapter.js.map +1 -1
- package/dist/src/tui/adapters/telegram-adapter.js +1 -1
- package/dist/src/tui/adapters/telegram-adapter.js.map +1 -1
- package/dist/src/tui/adapters/webex-adapter.js +1 -1
- package/dist/src/tui/adapters/webex-adapter.js.map +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +112 -23
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/utils.d.ts.map +1 -1
- package/dist/src/tui/utils.js +11 -13
- package/dist/src/tui/utils.js.map +1 -1
- package/dist/src/tui/views/channel-picker.d.ts.map +1 -1
- package/dist/src/tui/views/channel-picker.js.map +1 -1
- package/dist/src/tui/views/workspace-picker.d.ts.map +1 -1
- package/dist/src/tui/views/workspace-picker.js.map +1 -1
- package/docs/content/docs/cli/channeltalk.mdx +24 -22
- package/docs/content/docs/cli/channeltalkbot.mdx +7 -7
- package/docs/content/docs/cli/instagram.mdx +4 -4
- package/docs/content/docs/cli/kakaotalk.mdx +9 -8
- package/docs/content/docs/cli/line.mdx +14 -14
- package/docs/content/docs/cli/webex.mdx +19 -19
- package/docs/content/docs/cli/wechatbot.mdx +12 -11
- package/docs/content/docs/cli/whatsapp.mdx +5 -4
- package/docs/content/docs/cli/whatsappbot.mdx +11 -11
- package/docs/content/docs/index.mdx +7 -7
- package/docs/content/docs/meta.json +1 -9
- package/docs/content/docs/sdk/channeltalk.mdx +5 -6
- package/docs/content/docs/sdk/channeltalkbot.mdx +6 -12
- package/docs/content/docs/sdk/discord.mdx +36 -43
- package/docs/content/docs/sdk/instagram.mdx +18 -18
- package/docs/content/docs/sdk/kakaotalk.mdx +27 -18
- package/docs/content/docs/sdk/line.mdx +8 -13
- package/docs/content/docs/sdk/meta.json +14 -1
- package/docs/content/docs/sdk/slack.mdx +36 -42
- package/docs/content/docs/sdk/teams.mdx +2 -8
- package/docs/content/docs/sdk/webex.mdx +2 -12
- package/docs/content/docs/sdk/wechatbot.mdx +1 -5
- package/docs/content/docs/sdk/whatsapp.mdx +10 -19
- package/docs/content/docs/sdk/whatsappbot.mdx +2 -10
- package/docs/content/docs/tui.mdx +23 -23
- package/docs/src/app/page.tsx +353 -108
- package/e2e/channeltalkbot.e2e.test.ts +1 -5
- package/e2e/config.ts +6 -2
- package/package.json +59 -58
- package/scripts/prepublish.ts +1 -3
- package/skills/agent-channeltalk/SKILL.md +1 -1
- package/skills/agent-channeltalkbot/SKILL.md +1 -1
- package/skills/agent-discord/SKILL.md +1 -1
- package/skills/agent-discordbot/SKILL.md +1 -1
- package/skills/agent-instagram/SKILL.md +1 -1
- package/skills/agent-kakaotalk/SKILL.md +1 -1
- package/skills/agent-line/SKILL.md +1 -1
- package/skills/agent-slack/SKILL.md +1 -1
- package/skills/agent-slackbot/SKILL.md +1 -1
- package/skills/agent-teams/SKILL.md +1 -1
- package/skills/agent-telegram/SKILL.md +1 -1
- package/skills/agent-webex/SKILL.md +1 -1
- package/skills/agent-wechatbot/SKILL.md +1 -1
- package/skills/agent-whatsapp/SKILL.md +1 -1
- package/skills/agent-whatsappbot/SKILL.md +1 -1
- package/src/platforms/channeltalk/client.test.ts +116 -29
- package/src/platforms/channeltalk/client.ts +26 -6
- package/src/platforms/channeltalk/commands/auth.test.ts +5 -5
- package/src/platforms/channeltalk/commands/auth.ts +19 -5
- package/src/platforms/channeltalk/commands/message.test.ts +2 -6
- package/src/platforms/channeltalk/commands/message.ts +5 -1
- package/src/platforms/channeltalk/commands/snapshot.test.ts +19 -4
- package/src/platforms/channeltalk/commands/snapshot.ts +5 -1
- package/src/platforms/channeltalk/ensure-auth.test.ts +20 -17
- package/src/platforms/channeltalk/ensure-auth.ts +6 -7
- package/src/platforms/channeltalk/index.ts +0 -1
- package/src/platforms/channeltalk/token-extractor.test.ts +33 -25
- package/src/platforms/channeltalk/token-extractor.ts +120 -372
- package/src/platforms/channeltalkbot/client.test.ts +1 -3
- package/src/platforms/channeltalkbot/client.ts +39 -13
- package/src/platforms/channeltalkbot/commands/auth.test.ts +3 -1
- package/src/platforms/channeltalkbot/commands/auth.ts +4 -1
- package/src/platforms/channeltalkbot/commands/bot.test.ts +13 -5
- package/src/platforms/channeltalkbot/commands/message.test.ts +12 -6
- package/src/platforms/channeltalkbot/commands/shared.ts +6 -2
- package/src/platforms/channeltalkbot/commands/snapshot.test.ts +17 -5
- package/src/platforms/channeltalkbot/credential-manager.test.ts +1 -1
- package/src/platforms/channeltalkbot/index.test.ts +0 -2
- package/src/platforms/channeltalkbot/index.ts +0 -1
- package/src/platforms/discord/commands/auth.test.ts +6 -4
- package/src/platforms/discord/commands/auth.ts +14 -14
- package/src/platforms/discord/commands/whoami.test.ts +2 -4
- package/src/platforms/discord/commands/whoami.ts +2 -0
- package/src/platforms/discord/ensure-auth.test.ts +5 -3
- package/src/platforms/discord/index.ts +0 -1
- package/src/platforms/discord/listener.test.ts +7 -1
- package/src/platforms/discord/token-extractor.test.ts +18 -12
- package/src/platforms/discord/token-extractor.ts +46 -190
- package/src/platforms/discordbot/client.ts +1 -4
- package/src/platforms/discordbot/commands/auth.test.ts +3 -1
- package/src/platforms/discordbot/commands/channel.test.ts +3 -1
- package/src/platforms/discordbot/commands/message.test.ts +3 -1
- package/src/platforms/discordbot/commands/server.test.ts +3 -1
- package/src/platforms/discordbot/commands/snapshot.test.ts +3 -1
- package/src/platforms/discordbot/commands/thread.test.ts +3 -1
- package/src/platforms/discordbot/commands/user.test.ts +3 -1
- package/src/platforms/instagram/cli.ts +1 -4
- package/src/platforms/instagram/client.test.ts +3 -8
- package/src/platforms/instagram/client.ts +39 -34
- package/src/platforms/instagram/commands/auth.test.ts +13 -12
- package/src/platforms/instagram/commands/auth.ts +136 -71
- package/src/platforms/instagram/commands/chat.test.ts +21 -24
- package/src/platforms/instagram/commands/chat.ts +2 -0
- package/src/platforms/instagram/commands/message.test.ts +29 -24
- package/src/platforms/instagram/commands/message.ts +3 -4
- package/src/platforms/instagram/commands/shared.ts +2 -5
- package/src/platforms/instagram/commands/whoami.test.ts +4 -6
- package/src/platforms/instagram/credential-manager.ts +2 -6
- package/src/platforms/instagram/ensure-auth.test.ts +1 -4
- package/src/platforms/instagram/ensure-auth.ts +6 -3
- package/src/platforms/instagram/listener.test.ts +7 -3
- package/src/platforms/instagram/token-extractor.test.ts +4 -16
- package/src/platforms/instagram/token-extractor.ts +55 -309
- package/src/platforms/instagram/types.test.ts +2 -6
- package/src/platforms/instagram/types.ts +4 -2
- package/src/platforms/kakaotalk/auth/kakao-login.ts +30 -8
- package/src/platforms/kakaotalk/client.test.ts +37 -25
- package/src/platforms/kakaotalk/client.ts +23 -12
- package/src/platforms/kakaotalk/commands/auth.test.ts +6 -18
- package/src/platforms/kakaotalk/commands/auth.ts +101 -47
- package/src/platforms/kakaotalk/commands/chat.test.ts +8 -11
- package/src/platforms/kakaotalk/commands/message.test.ts +15 -24
- package/src/platforms/kakaotalk/commands/shared.ts +1 -0
- package/src/platforms/kakaotalk/commands/whoami.test.ts +6 -10
- package/src/platforms/kakaotalk/credential-manager.test.ts +1 -4
- package/src/platforms/kakaotalk/index.test.ts +1 -0
- package/src/platforms/kakaotalk/index.ts +0 -2
- package/src/platforms/kakaotalk/listener.test.ts +7 -1
- package/src/platforms/kakaotalk/protocol/connection.ts +4 -1
- package/src/platforms/kakaotalk/protocol/crypto.ts +1 -1
- package/src/platforms/kakaotalk/protocol/session.ts +12 -6
- package/src/platforms/kakaotalk/token-extractor.ts +5 -5
- package/src/platforms/kakaotalk/types.ts +8 -7
- package/src/platforms/line/cli.ts +1 -4
- package/src/platforms/line/client.ts +12 -20
- package/src/platforms/line/commands/auth.test.ts +2 -1
- package/src/platforms/line/commands/chat.test.ts +2 -1
- package/src/platforms/line/commands/chat.ts +1 -4
- package/src/platforms/line/commands/friend.test.ts +2 -1
- package/src/platforms/line/commands/message.test.ts +2 -1
- package/src/platforms/line/commands/message.ts +2 -9
- package/src/platforms/line/commands/whoami.test.ts +2 -1
- package/src/platforms/line/credential-manager.test.ts +1 -2
- package/src/platforms/line/index.test.ts +1 -0
- package/src/platforms/line/listener.ts +1 -1
- package/src/platforms/line/types.test.ts +1 -0
- package/src/platforms/slack/cli.ts +3 -1
- package/src/platforms/slack/client-mappers.ts +297 -0
- package/src/platforms/slack/client.test.ts +532 -17
- package/src/platforms/slack/client.ts +69 -458
- package/src/platforms/slack/commands/channel.ts +1 -4
- package/src/platforms/slack/commands/emoji.test.ts +6 -4
- package/src/platforms/slack/commands/emoji.ts +20 -22
- package/src/platforms/slack/commands/message.ts +6 -1
- package/src/platforms/slack/commands/pin.test.ts +14 -12
- package/src/platforms/slack/commands/reminder.ts +7 -6
- package/src/platforms/slack/commands/user.ts +6 -1
- package/src/platforms/slack/commands/usergroup.test.ts +3 -3
- package/src/platforms/slack/commands/usergroup.ts +10 -7
- package/src/platforms/slack/commands/whoami.test.ts +1 -1
- package/src/platforms/slack/commands/whoami.ts +2 -0
- package/src/platforms/slack/index.ts +0 -2
- package/src/platforms/slack/listener.test.ts +1 -0
- package/src/platforms/slack/token-extractor.test.ts +7 -12
- package/src/platforms/slack/token-extractor.ts +47 -255
- package/src/platforms/slackbot/cli.ts +8 -1
- package/src/platforms/slackbot/commands/auth.test.ts +3 -1
- package/src/platforms/teams/client.ts +1 -1
- package/src/platforms/teams/commands/auth.test.ts +1 -1
- package/src/platforms/teams/commands/auth.ts +4 -1
- package/src/platforms/teams/commands/whoami.test.ts +2 -4
- package/src/platforms/teams/commands/whoami.ts +2 -0
- package/src/platforms/teams/index.ts +0 -1
- package/src/platforms/teams/token-extractor.ts +82 -350
- package/src/platforms/telegram/app-config.test.ts +1 -0
- package/src/platforms/telegram/chat-utils.test.ts +5 -1
- package/src/platforms/telegram/cli.ts +2 -4
- package/src/platforms/telegram/client.test.ts +16 -3
- package/src/platforms/telegram/client.ts +14 -4
- package/src/platforms/telegram/commands/auth.test.ts +1 -0
- package/src/platforms/telegram/commands/auth.ts +3 -4
- package/src/platforms/telegram/commands/chat.test.ts +2 -5
- package/src/platforms/telegram/commands/chat.ts +1 -0
- package/src/platforms/telegram/commands/message.test.ts +2 -5
- package/src/platforms/telegram/commands/message.ts +1 -0
- package/src/platforms/telegram/commands/shared.test.ts +1 -0
- package/src/platforms/telegram/commands/whoami.test.ts +5 -7
- package/src/platforms/telegram/commands/whoami.ts +1 -1
- package/src/platforms/telegram/credential-manager.test.ts +1 -0
- package/src/platforms/telegram/credential-manager.ts +11 -2
- package/src/platforms/telegram/my-telegram-org.ts +6 -2
- package/src/platforms/telegram/types.test.ts +1 -0
- package/src/platforms/webex/app-config.test.ts +1 -0
- package/src/platforms/webex/cli.ts +1 -4
- package/src/platforms/webex/client.test.ts +4 -12
- package/src/platforms/webex/client.ts +14 -52
- package/src/platforms/webex/commands/auth.test.ts +7 -1
- package/src/platforms/webex/commands/auth.ts +12 -15
- package/src/platforms/webex/commands/member.test.ts +1 -3
- package/src/platforms/webex/commands/member.ts +14 -19
- package/src/platforms/webex/commands/message.ts +4 -15
- package/src/platforms/webex/commands/snapshot.test.ts +28 -3
- package/src/platforms/webex/commands/snapshot.ts +3 -3
- package/src/platforms/webex/commands/space.test.ts +3 -3
- package/src/platforms/webex/commands/space.ts +2 -9
- package/src/platforms/webex/commands/whoami.test.ts +12 -5
- package/src/platforms/webex/commands/whoami.ts +2 -0
- package/src/platforms/webex/credential-manager.ts +11 -2
- package/src/platforms/webex/ensure-auth.ts +1 -3
- package/src/platforms/webex/index.ts +1 -7
- package/src/platforms/webex/markdown-to-html.test.ts +6 -18
- package/src/platforms/webex/markdown-to-html.ts +8 -8
- package/src/platforms/webex/token-extractor.ts +6 -29
- package/src/platforms/wechatbot/client.test.ts +6 -2
- package/src/platforms/wechatbot/client.ts +6 -1
- package/src/platforms/wechatbot/commands/auth.test.ts +3 -7
- package/src/platforms/wechatbot/commands/message.test.ts +1 -4
- package/src/platforms/wechatbot/commands/message.ts +5 -1
- package/src/platforms/wechatbot/commands/template.test.ts +1 -4
- package/src/platforms/wechatbot/commands/user.test.ts +2 -7
- package/src/platforms/whatsapp/cli.ts +1 -4
- package/src/platforms/whatsapp/commands/auth.test.ts +19 -22
- package/src/platforms/whatsapp/commands/chat.test.ts +21 -24
- package/src/platforms/whatsapp/commands/chat.ts +2 -0
- package/src/platforms/whatsapp/commands/message.test.ts +22 -24
- package/src/platforms/whatsapp/commands/message.ts +3 -5
- package/src/platforms/whatsapp/commands/shared.ts +2 -5
- package/src/platforms/whatsapp/commands/whoami.test.ts +2 -2
- package/src/platforms/whatsapp/credential-manager.ts +2 -6
- package/src/platforms/whatsapp/ensure-auth.test.ts +1 -4
- package/src/platforms/whatsapp/ensure-auth.ts +14 -6
- package/src/platforms/whatsapp/index.ts +0 -2
- package/src/platforms/whatsappbot/client.test.ts +13 -7
- package/src/platforms/whatsappbot/client.ts +18 -4
- package/src/platforms/whatsappbot/commands/auth.ts +4 -1
- package/src/platforms/whatsappbot/commands/message.test.ts +12 -2
- package/src/platforms/whatsappbot/commands/message.ts +16 -3
- package/src/platforms/whatsappbot/commands/shared.ts +3 -1
- package/src/platforms/whatsappbot/commands/whoami.test.ts +1 -3
- package/src/platforms/whatsappbot/index.ts +0 -2
- package/src/shared/chromium/browsers.test.ts +274 -0
- package/src/shared/chromium/browsers.ts +86 -0
- package/src/shared/chromium/cookie-reader.test.ts +274 -0
- package/src/shared/chromium/cookie-reader.ts +111 -0
- package/src/shared/chromium/decryptor.test.ts +449 -0
- package/src/shared/chromium/decryptor.ts +227 -0
- package/src/shared/chromium/index.ts +11 -0
- package/src/shared/chromium/types.ts +11 -0
- package/src/shared/utils/derived-key-cache.ts +1 -1
- package/src/shared/utils/linux-keyring.ts +4 -4
- package/src/tui/adapters/kakaotalk-adapter.ts +6 -1
- package/src/tui/adapters/telegram-adapter.ts +1 -1
- package/src/tui/adapters/webex-adapter.ts +1 -1
- package/src/tui/app.ts +149 -59
- package/src/tui/utils.test.ts +144 -145
- package/src/tui/utils.ts +27 -29
- package/src/tui/views/channel-picker.ts +1 -1
- package/src/tui/views/workspace-picker.ts +1 -1
package/docs/src/app/page.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
import Link from 'next/link'
|
|
4
3
|
import { useTheme } from 'next-themes'
|
|
4
|
+
import Link from 'next/link'
|
|
5
5
|
import { useEffect, useState } from 'react'
|
|
6
6
|
|
|
7
7
|
// ============================================================
|
|
@@ -147,7 +147,9 @@ function ChannelTalkIcon({ className, style }: { className?: string; style?: Rea
|
|
|
147
147
|
<svg viewBox="0 0 128 128" fill="currentColor" className={className} style={style}>
|
|
148
148
|
<title>Channel Talk icon</title>
|
|
149
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">
|
|
150
|
+
<text x="64" y="82" textAnchor="middle" fill="white" fontSize="48" fontWeight="bold" fontFamily="monospace">
|
|
151
|
+
CT
|
|
152
|
+
</text>
|
|
151
153
|
</svg>
|
|
152
154
|
)
|
|
153
155
|
}
|
|
@@ -158,7 +160,15 @@ function ChannelTalkIcon({ className, style }: { className?: string; style?: Rea
|
|
|
158
160
|
|
|
159
161
|
function ShieldIcon({ className }: { className?: string }) {
|
|
160
162
|
return (
|
|
161
|
-
<svg
|
|
163
|
+
<svg
|
|
164
|
+
className={className}
|
|
165
|
+
viewBox="0 0 24 24"
|
|
166
|
+
fill="none"
|
|
167
|
+
stroke="currentColor"
|
|
168
|
+
strokeWidth="1.5"
|
|
169
|
+
strokeLinecap="round"
|
|
170
|
+
strokeLinejoin="round"
|
|
171
|
+
>
|
|
162
172
|
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
|
|
163
173
|
<path d="M9.5 12.5L11 14l3.5-3.5" />
|
|
164
174
|
</svg>
|
|
@@ -167,7 +177,15 @@ function ShieldIcon({ className }: { className?: string }) {
|
|
|
167
177
|
|
|
168
178
|
function UserIcon({ className }: { className?: string }) {
|
|
169
179
|
return (
|
|
170
|
-
<svg
|
|
180
|
+
<svg
|
|
181
|
+
className={className}
|
|
182
|
+
viewBox="0 0 24 24"
|
|
183
|
+
fill="none"
|
|
184
|
+
stroke="currentColor"
|
|
185
|
+
strokeWidth="1.5"
|
|
186
|
+
strokeLinecap="round"
|
|
187
|
+
strokeLinejoin="round"
|
|
188
|
+
>
|
|
171
189
|
<path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2" />
|
|
172
190
|
<circle cx="12" cy="7" r="4" />
|
|
173
191
|
</svg>
|
|
@@ -176,7 +194,15 @@ function UserIcon({ className }: { className?: string }) {
|
|
|
176
194
|
|
|
177
195
|
function TerminalIcon({ className }: { className?: string }) {
|
|
178
196
|
return (
|
|
179
|
-
<svg
|
|
197
|
+
<svg
|
|
198
|
+
className={className}
|
|
199
|
+
viewBox="0 0 24 24"
|
|
200
|
+
fill="none"
|
|
201
|
+
stroke="currentColor"
|
|
202
|
+
strokeWidth="1.5"
|
|
203
|
+
strokeLinecap="round"
|
|
204
|
+
strokeLinejoin="round"
|
|
205
|
+
>
|
|
180
206
|
<polyline points="4 17 10 11 4 5" />
|
|
181
207
|
<line x1="12" y1="19" x2="20" y2="19" />
|
|
182
208
|
</svg>
|
|
@@ -185,7 +211,15 @@ function TerminalIcon({ className }: { className?: string }) {
|
|
|
185
211
|
|
|
186
212
|
function CpuIcon({ className }: { className?: string }) {
|
|
187
213
|
return (
|
|
188
|
-
<svg
|
|
214
|
+
<svg
|
|
215
|
+
className={className}
|
|
216
|
+
viewBox="0 0 24 24"
|
|
217
|
+
fill="none"
|
|
218
|
+
stroke="currentColor"
|
|
219
|
+
strokeWidth="1.5"
|
|
220
|
+
strokeLinecap="round"
|
|
221
|
+
strokeLinejoin="round"
|
|
222
|
+
>
|
|
189
223
|
<rect x="4" y="4" width="16" height="16" rx="2" />
|
|
190
224
|
<rect x="9" y="9" width="6" height="6" />
|
|
191
225
|
<line x1="9" y1="1" x2="9" y2="4" />
|
|
@@ -202,7 +236,15 @@ function CpuIcon({ className }: { className?: string }) {
|
|
|
202
236
|
|
|
203
237
|
function ZapIcon({ className }: { className?: string }) {
|
|
204
238
|
return (
|
|
205
|
-
<svg
|
|
239
|
+
<svg
|
|
240
|
+
className={className}
|
|
241
|
+
viewBox="0 0 24 24"
|
|
242
|
+
fill="none"
|
|
243
|
+
stroke="currentColor"
|
|
244
|
+
strokeWidth="1.5"
|
|
245
|
+
strokeLinecap="round"
|
|
246
|
+
strokeLinejoin="round"
|
|
247
|
+
>
|
|
206
248
|
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2" />
|
|
207
249
|
</svg>
|
|
208
250
|
)
|
|
@@ -210,7 +252,15 @@ function ZapIcon({ className }: { className?: string }) {
|
|
|
210
252
|
|
|
211
253
|
function DatabaseIcon({ className }: { className?: string }) {
|
|
212
254
|
return (
|
|
213
|
-
<svg
|
|
255
|
+
<svg
|
|
256
|
+
className={className}
|
|
257
|
+
viewBox="0 0 24 24"
|
|
258
|
+
fill="none"
|
|
259
|
+
stroke="currentColor"
|
|
260
|
+
strokeWidth="1.5"
|
|
261
|
+
strokeLinecap="round"
|
|
262
|
+
strokeLinejoin="round"
|
|
263
|
+
>
|
|
214
264
|
<ellipse cx="12" cy="5" rx="9" ry="3" />
|
|
215
265
|
<path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" />
|
|
216
266
|
<path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" />
|
|
@@ -238,11 +288,27 @@ function CopyButton({ text }: { text: string }) {
|
|
|
238
288
|
aria-label={copied ? 'Copied' : 'Copy to clipboard'}
|
|
239
289
|
>
|
|
240
290
|
{copied ? (
|
|
241
|
-
<svg
|
|
291
|
+
<svg
|
|
292
|
+
className="size-4"
|
|
293
|
+
viewBox="0 0 24 24"
|
|
294
|
+
fill="none"
|
|
295
|
+
stroke="currentColor"
|
|
296
|
+
strokeWidth="2"
|
|
297
|
+
strokeLinecap="round"
|
|
298
|
+
strokeLinejoin="round"
|
|
299
|
+
>
|
|
242
300
|
<polyline points="20 6 9 17 4 12" />
|
|
243
301
|
</svg>
|
|
244
302
|
) : (
|
|
245
|
-
<svg
|
|
303
|
+
<svg
|
|
304
|
+
className="size-4"
|
|
305
|
+
viewBox="0 0 24 24"
|
|
306
|
+
fill="none"
|
|
307
|
+
stroke="currentColor"
|
|
308
|
+
strokeWidth="2"
|
|
309
|
+
strokeLinecap="round"
|
|
310
|
+
strokeLinejoin="round"
|
|
311
|
+
>
|
|
246
312
|
<rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
|
|
247
313
|
<path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1" />
|
|
248
314
|
</svg>
|
|
@@ -271,7 +337,15 @@ function ThemeToggle() {
|
|
|
271
337
|
aria-label="Toggle theme"
|
|
272
338
|
>
|
|
273
339
|
{resolvedTheme === 'dark' ? (
|
|
274
|
-
<svg
|
|
340
|
+
<svg
|
|
341
|
+
className="size-[18px]"
|
|
342
|
+
viewBox="0 0 24 24"
|
|
343
|
+
fill="none"
|
|
344
|
+
stroke="currentColor"
|
|
345
|
+
strokeWidth="2"
|
|
346
|
+
strokeLinecap="round"
|
|
347
|
+
strokeLinejoin="round"
|
|
348
|
+
>
|
|
275
349
|
<circle cx="12" cy="12" r="5" />
|
|
276
350
|
<line x1="12" y1="1" x2="12" y2="3" />
|
|
277
351
|
<line x1="12" y1="21" x2="12" y2="23" />
|
|
@@ -283,7 +357,15 @@ function ThemeToggle() {
|
|
|
283
357
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22" />
|
|
284
358
|
</svg>
|
|
285
359
|
) : (
|
|
286
|
-
<svg
|
|
360
|
+
<svg
|
|
361
|
+
className="size-[18px]"
|
|
362
|
+
viewBox="0 0 24 24"
|
|
363
|
+
fill="none"
|
|
364
|
+
stroke="currentColor"
|
|
365
|
+
strokeWidth="2"
|
|
366
|
+
strokeLinecap="round"
|
|
367
|
+
strokeLinejoin="round"
|
|
368
|
+
>
|
|
287
369
|
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z" />
|
|
288
370
|
</svg>
|
|
289
371
|
)}
|
|
@@ -295,15 +377,7 @@ function ThemeToggle() {
|
|
|
295
377
|
// Terminal Block Component
|
|
296
378
|
// ============================================================
|
|
297
379
|
|
|
298
|
-
function TerminalBlock({
|
|
299
|
-
title,
|
|
300
|
-
copyText,
|
|
301
|
-
children,
|
|
302
|
-
}: {
|
|
303
|
-
title?: string
|
|
304
|
-
copyText: string
|
|
305
|
-
children: React.ReactNode
|
|
306
|
-
}) {
|
|
380
|
+
function TerminalBlock({ title, copyText, children }: { title?: string; copyText: string; children: React.ReactNode }) {
|
|
307
381
|
return (
|
|
308
382
|
<div className="overflow-hidden rounded-xl border border-zinc-200 bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-950">
|
|
309
383
|
<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">
|
|
@@ -354,15 +428,23 @@ function PlatformTerminal() {
|
|
|
354
428
|
<span className="size-3 rounded-full bg-zinc-300 dark:bg-zinc-700" />
|
|
355
429
|
</div>
|
|
356
430
|
<span className="font-mono text-xs text-zinc-400 dark:text-zinc-500">agent-messenger</span>
|
|
357
|
-
<CopyButton
|
|
431
|
+
<CopyButton
|
|
432
|
+
text={demo.commands
|
|
433
|
+
.filter((c) => 'cmd' in c)
|
|
434
|
+
.map((c) => c.cmd)
|
|
435
|
+
.join('\n')}
|
|
436
|
+
/>
|
|
358
437
|
</div>
|
|
359
438
|
<div className="flex gap-0 overflow-x-auto px-2">
|
|
360
439
|
{TERMINAL_DEMOS.map((d, i) => (
|
|
361
440
|
<button
|
|
362
441
|
key={d.platform}
|
|
363
442
|
type="button"
|
|
364
|
-
onClick={() => {
|
|
365
|
-
|
|
443
|
+
onClick={() => {
|
|
444
|
+
setActive(i)
|
|
445
|
+
setPaused(true)
|
|
446
|
+
}}
|
|
447
|
+
className={`px-3 py-2 font-mono text-xs whitespace-nowrap transition-colors duration-200 ${
|
|
366
448
|
i === active
|
|
367
449
|
? 'border-b-2 border-blue-500 text-zinc-800 dark:text-zinc-200'
|
|
368
450
|
: 'border-b-2 border-transparent text-zinc-400 hover:text-zinc-600 dark:text-zinc-600 dark:hover:text-zinc-400'
|
|
@@ -406,22 +488,26 @@ const FEATURES = [
|
|
|
406
488
|
{
|
|
407
489
|
icon: <ShieldIcon className="size-5" />,
|
|
408
490
|
title: 'Auto-Extract Auth',
|
|
409
|
-
description:
|
|
491
|
+
description:
|
|
492
|
+
'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
493
|
},
|
|
411
494
|
{
|
|
412
495
|
icon: <UserIcon className="size-5" />,
|
|
413
496
|
title: 'Act As Yourself',
|
|
414
|
-
description:
|
|
497
|
+
description:
|
|
498
|
+
'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
499
|
},
|
|
416
500
|
{
|
|
417
501
|
icon: <TerminalIcon className="size-5" />,
|
|
418
502
|
title: 'One Interface',
|
|
419
|
-
description:
|
|
503
|
+
description:
|
|
504
|
+
'Same command patterns across 7 platforms: message send, message search, channel list, snapshot. Learn once.',
|
|
420
505
|
},
|
|
421
506
|
{
|
|
422
507
|
icon: <CpuIcon className="size-5" />,
|
|
423
508
|
title: 'Agent-Native Output',
|
|
424
|
-
description:
|
|
509
|
+
description:
|
|
510
|
+
'JSON by default for LLM tool use. --pretty for human-readable. Structured output your agent can parse and act on.',
|
|
425
511
|
},
|
|
426
512
|
{
|
|
427
513
|
icon: <ZapIcon className="size-5" />,
|
|
@@ -517,14 +603,50 @@ const TERMINAL_DEMOS = [
|
|
|
517
603
|
|
|
518
604
|
const PLATFORMS = [
|
|
519
605
|
{ name: 'Slack', href: '/docs/cli/slack', Icon: SlackIcon, color: '#4A154B', glowColor: 'rgba(74,21,75,0.4)' },
|
|
520
|
-
{
|
|
606
|
+
{
|
|
607
|
+
name: 'Discord',
|
|
608
|
+
href: '/docs/cli/discord',
|
|
609
|
+
Icon: DiscordIcon,
|
|
610
|
+
color: '#5865F2',
|
|
611
|
+
glowColor: 'rgba(88,101,242,0.4)',
|
|
612
|
+
},
|
|
521
613
|
{ name: 'Teams', href: '/docs/cli/teams', Icon: TeamsIcon, color: '#6264A7', glowColor: 'rgba(98,100,167,0.4)' },
|
|
522
|
-
{
|
|
523
|
-
|
|
614
|
+
{
|
|
615
|
+
name: 'Telegram',
|
|
616
|
+
href: '/docs/cli/telegram',
|
|
617
|
+
Icon: TelegramIcon,
|
|
618
|
+
color: '#2AABEE',
|
|
619
|
+
glowColor: 'rgba(42,171,238,0.4)',
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
name: 'WhatsApp',
|
|
623
|
+
href: '/docs/cli/whatsapp',
|
|
624
|
+
Icon: WhatsAppIcon,
|
|
625
|
+
color: '#25D366',
|
|
626
|
+
glowColor: 'rgba(37,211,102,0.4)',
|
|
627
|
+
},
|
|
524
628
|
{ name: 'LINE', href: '/docs/cli/line', Icon: LineIcon, color: '#06C755', glowColor: 'rgba(6,199,85,0.4)' },
|
|
525
|
-
{
|
|
526
|
-
|
|
527
|
-
|
|
629
|
+
{
|
|
630
|
+
name: 'Instagram',
|
|
631
|
+
href: '/docs/cli/instagram',
|
|
632
|
+
Icon: InstagramIcon,
|
|
633
|
+
color: '#E4405F',
|
|
634
|
+
glowColor: 'rgba(228,64,95,0.4)',
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
name: 'KakaoTalk',
|
|
638
|
+
href: '/docs/cli/kakaotalk',
|
|
639
|
+
Icon: KakaoTalkIcon,
|
|
640
|
+
color: '#FEE500',
|
|
641
|
+
glowColor: 'rgba(254,229,0,0.4)',
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
name: 'Channel Talk',
|
|
645
|
+
href: '/docs/cli/channeltalk',
|
|
646
|
+
Icon: ChannelTalkIcon,
|
|
647
|
+
color: '#3B3FE4',
|
|
648
|
+
glowColor: 'rgba(59,63,228,0.4)',
|
|
649
|
+
},
|
|
528
650
|
]
|
|
529
651
|
|
|
530
652
|
const HOW_IT_WORKS = [
|
|
@@ -532,19 +654,22 @@ const HOW_IT_WORKS = [
|
|
|
532
654
|
step: 1,
|
|
533
655
|
title: 'Install',
|
|
534
656
|
code: 'npm install -g agent-messenger',
|
|
535
|
-
description:
|
|
657
|
+
description:
|
|
658
|
+
'Installs agent-slack, agent-discord, agent-teams, agent-telegram, agent-whatsapp, agent-line, agent-instagram, agent-kakaotalk, agent-channeltalk, plus bot variants.',
|
|
536
659
|
},
|
|
537
660
|
{
|
|
538
661
|
step: 2,
|
|
539
662
|
title: 'Run',
|
|
540
663
|
code: 'agent-slack snapshot --pretty',
|
|
541
|
-
description:
|
|
664
|
+
description:
|
|
665
|
+
'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
666
|
},
|
|
543
667
|
{
|
|
544
668
|
step: 3,
|
|
545
669
|
title: 'Teach Your Agent',
|
|
546
670
|
code: 'npx skills add agent-messenger/agent-messenger',
|
|
547
|
-
description:
|
|
671
|
+
description:
|
|
672
|
+
'Install Agent Skills via Skills CLI, Claude Code, OpenCode, or SkillPad — your agent learns every command and starts messaging on its own.',
|
|
548
673
|
},
|
|
549
674
|
]
|
|
550
675
|
|
|
@@ -554,7 +679,7 @@ const USE_CASES = [
|
|
|
554
679
|
'Search the Teams #design channel for the latest discussion about the new onboarding flow',
|
|
555
680
|
'Check my unread Slack messages right now and draft replies for anything urgent',
|
|
556
681
|
'Look up who reacted to my last message in #general on Discord and what they said after',
|
|
557
|
-
|
|
682
|
+
"Summarize today's WhatsApp group chat and send the summary to #standup in Slack",
|
|
558
683
|
]
|
|
559
684
|
|
|
560
685
|
const CAPABILITIES: {
|
|
@@ -569,22 +694,150 @@ const CAPABILITIES: {
|
|
|
569
694
|
kakaotalk: boolean
|
|
570
695
|
channeltalk: boolean
|
|
571
696
|
}[] = [
|
|
572
|
-
{
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
697
|
+
{
|
|
698
|
+
feature: 'Zero-config credentials',
|
|
699
|
+
slack: true,
|
|
700
|
+
discord: true,
|
|
701
|
+
teams: true,
|
|
702
|
+
telegram: false,
|
|
703
|
+
whatsapp: false,
|
|
704
|
+
line: false,
|
|
705
|
+
instagram: false,
|
|
706
|
+
kakaotalk: true,
|
|
707
|
+
channeltalk: true,
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
feature: 'Send & list messages',
|
|
711
|
+
slack: true,
|
|
712
|
+
discord: true,
|
|
713
|
+
teams: true,
|
|
714
|
+
telegram: true,
|
|
715
|
+
whatsapp: true,
|
|
716
|
+
line: true,
|
|
717
|
+
instagram: true,
|
|
718
|
+
kakaotalk: true,
|
|
719
|
+
channeltalk: true,
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
feature: 'Search messages',
|
|
723
|
+
slack: true,
|
|
724
|
+
discord: true,
|
|
725
|
+
teams: false,
|
|
726
|
+
telegram: false,
|
|
727
|
+
whatsapp: true,
|
|
728
|
+
line: false,
|
|
729
|
+
instagram: true,
|
|
730
|
+
kakaotalk: false,
|
|
731
|
+
channeltalk: true,
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
feature: 'Threads',
|
|
735
|
+
slack: true,
|
|
736
|
+
discord: true,
|
|
737
|
+
teams: false,
|
|
738
|
+
telegram: false,
|
|
739
|
+
whatsapp: false,
|
|
740
|
+
line: false,
|
|
741
|
+
instagram: false,
|
|
742
|
+
kakaotalk: false,
|
|
743
|
+
channeltalk: false,
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
feature: 'Reactions',
|
|
747
|
+
slack: true,
|
|
748
|
+
discord: true,
|
|
749
|
+
teams: true,
|
|
750
|
+
telegram: false,
|
|
751
|
+
whatsapp: true,
|
|
752
|
+
line: false,
|
|
753
|
+
instagram: false,
|
|
754
|
+
kakaotalk: false,
|
|
755
|
+
channeltalk: false,
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
feature: 'File upload & download',
|
|
759
|
+
slack: true,
|
|
760
|
+
discord: true,
|
|
761
|
+
teams: true,
|
|
762
|
+
telegram: false,
|
|
763
|
+
whatsapp: false,
|
|
764
|
+
line: false,
|
|
765
|
+
instagram: false,
|
|
766
|
+
kakaotalk: false,
|
|
767
|
+
channeltalk: false,
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
feature: 'Workspace snapshot',
|
|
771
|
+
slack: true,
|
|
772
|
+
discord: true,
|
|
773
|
+
teams: true,
|
|
774
|
+
telegram: false,
|
|
775
|
+
whatsapp: false,
|
|
776
|
+
line: false,
|
|
777
|
+
instagram: false,
|
|
778
|
+
kakaotalk: false,
|
|
779
|
+
channeltalk: true,
|
|
780
|
+
},
|
|
781
|
+
{
|
|
782
|
+
feature: 'Multi-account',
|
|
783
|
+
slack: true,
|
|
784
|
+
discord: true,
|
|
785
|
+
teams: true,
|
|
786
|
+
telegram: true,
|
|
787
|
+
whatsapp: true,
|
|
788
|
+
line: true,
|
|
789
|
+
instagram: true,
|
|
790
|
+
kakaotalk: false,
|
|
791
|
+
channeltalk: true,
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
feature: 'Bot CLI available',
|
|
795
|
+
slack: true,
|
|
796
|
+
discord: true,
|
|
797
|
+
teams: false,
|
|
798
|
+
telegram: false,
|
|
799
|
+
whatsapp: true,
|
|
800
|
+
line: false,
|
|
801
|
+
instagram: false,
|
|
802
|
+
kakaotalk: false,
|
|
803
|
+
channeltalk: true,
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
feature: 'Real-time events (SDK)',
|
|
807
|
+
slack: true,
|
|
808
|
+
discord: false,
|
|
809
|
+
teams: false,
|
|
810
|
+
telegram: false,
|
|
811
|
+
whatsapp: false,
|
|
812
|
+
line: true,
|
|
813
|
+
instagram: true,
|
|
814
|
+
kakaotalk: false,
|
|
815
|
+
channeltalk: false,
|
|
816
|
+
},
|
|
582
817
|
]
|
|
583
818
|
|
|
584
|
-
const PLATFORM_COLUMNS = [
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
819
|
+
const PLATFORM_COLUMNS = [
|
|
820
|
+
'Slack',
|
|
821
|
+
'Discord',
|
|
822
|
+
'Teams',
|
|
823
|
+
'Telegram',
|
|
824
|
+
'WhatsApp',
|
|
825
|
+
'LINE',
|
|
826
|
+
'Instagram',
|
|
827
|
+
'KakaoTalk',
|
|
828
|
+
'Ch. Talk',
|
|
829
|
+
] as const
|
|
830
|
+
const PLATFORM_KEYS = [
|
|
831
|
+
'slack',
|
|
832
|
+
'discord',
|
|
833
|
+
'teams',
|
|
834
|
+
'telegram',
|
|
835
|
+
'whatsapp',
|
|
836
|
+
'line',
|
|
837
|
+
'instagram',
|
|
838
|
+
'kakaotalk',
|
|
839
|
+
'channeltalk',
|
|
840
|
+
] as const
|
|
588
841
|
|
|
589
842
|
// ============================================================
|
|
590
843
|
// Page Component
|
|
@@ -593,13 +846,12 @@ const PLATFORM_KEYS = ['slack', 'discord', 'teams', 'telegram', 'whatsapp', 'lin
|
|
|
593
846
|
export default function Home() {
|
|
594
847
|
return (
|
|
595
848
|
<div className="min-h-screen bg-white text-zinc-900 dark:bg-zinc-950 dark:text-zinc-100">
|
|
596
|
-
|
|
597
849
|
{/* ================================================================
|
|
598
850
|
AMBIENT GLOW BACKGROUND
|
|
599
851
|
================================================================ */}
|
|
600
852
|
<div className="pointer-events-none fixed inset-0 overflow-hidden">
|
|
601
853
|
<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 -
|
|
854
|
+
<div className="absolute -right-[5%] -bottom-[10%] 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
855
|
</div>
|
|
604
856
|
|
|
605
857
|
{/* ================================================================
|
|
@@ -681,7 +933,7 @@ export default function Home() {
|
|
|
681
933
|
================================================================ */}
|
|
682
934
|
<section className="relative z-10 border-y border-zinc-100/50 px-4 py-16 sm:px-6 dark:border-white/[0.04]">
|
|
683
935
|
<div className="mx-auto max-w-5xl text-center">
|
|
684
|
-
<p className="font-mono text-xs
|
|
936
|
+
<p className="font-mono text-xs tracking-widest text-zinc-400 uppercase dark:text-zinc-600">
|
|
685
937
|
Works with the platforms your team already uses
|
|
686
938
|
</p>
|
|
687
939
|
<div className="mt-8 flex flex-wrap items-center justify-center gap-3">
|
|
@@ -714,7 +966,9 @@ export default function Home() {
|
|
|
714
966
|
<section className="relative z-10 px-4 py-20 sm:px-6 sm:py-24">
|
|
715
967
|
<div className="mx-auto max-w-5xl">
|
|
716
968
|
<div className="text-center">
|
|
717
|
-
<p className="font-mono text-xs font-medium
|
|
969
|
+
<p className="font-mono text-xs font-medium tracking-widest text-blue-600 uppercase dark:text-blue-400">
|
|
970
|
+
Why Agent Messenger?
|
|
971
|
+
</p>
|
|
718
972
|
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">
|
|
719
973
|
You shouldn't need a bot token to send a message
|
|
720
974
|
</h2>
|
|
@@ -723,32 +977,36 @@ export default function Home() {
|
|
|
723
977
|
<div className="mt-14 grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
724
978
|
{/* The Problem */}
|
|
725
979
|
<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
|
|
980
|
+
<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 tracking-wider text-red-600 uppercase dark:bg-red-950/50 dark:text-red-400">
|
|
727
981
|
<span className="size-1.5 rounded-full bg-red-500" />
|
|
728
982
|
Problem
|
|
729
983
|
</div>
|
|
730
984
|
<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
|
|
732
|
-
And even then, your agent is a
|
|
985
|
+
Every platform gates API access behind OAuth apps that need admin approval — days of waiting just to
|
|
986
|
+
send a message. And even then, your agent is a{' '}
|
|
987
|
+
<strong className="text-zinc-900 dark:text-zinc-100">bot</strong>, not you. Different name, different
|
|
988
|
+
permissions, different context.
|
|
733
989
|
</p>
|
|
734
990
|
</div>
|
|
735
991
|
|
|
736
992
|
{/* The Solution */}
|
|
737
993
|
<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
|
|
994
|
+
<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 tracking-wider text-emerald-600 uppercase dark:bg-emerald-950/50 dark:text-emerald-400">
|
|
739
995
|
<span className="size-1.5 rounded-full bg-emerald-500" />
|
|
740
996
|
Solution
|
|
741
997
|
</div>
|
|
742
998
|
<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
|
|
744
|
-
Telegram, WhatsApp, LINE, and Instagram authenticate with a one-time code or credentials.
|
|
745
|
-
|
|
999
|
+
Agent Messenger reads session tokens from your Slack, Discord, Teams, or KakaoTalk desktop app — zero
|
|
1000
|
+
config. Telegram, WhatsApp, LINE, and Instagram authenticate with a one-time code or credentials. Either
|
|
1001
|
+
way, your agent operates <strong className="text-zinc-900 dark:text-zinc-100">as you</strong> — same
|
|
1002
|
+
name, same permissions, same context.
|
|
746
1003
|
</p>
|
|
747
1004
|
</div>
|
|
748
1005
|
</div>
|
|
749
1006
|
|
|
750
1007
|
<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
|
|
1008
|
+
Credentials are stored locally in ~/.config/agent-messenger/ with restricted permissions. Nothing is sent to
|
|
1009
|
+
third-party servers.
|
|
752
1010
|
</p>
|
|
753
1011
|
</div>
|
|
754
1012
|
</section>
|
|
@@ -759,10 +1017,10 @@ export default function Home() {
|
|
|
759
1017
|
<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
1018
|
<div className="mx-auto max-w-5xl">
|
|
761
1019
|
<div className="text-center">
|
|
762
|
-
<p className="font-mono text-xs font-medium
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
</h2>
|
|
1020
|
+
<p className="font-mono text-xs font-medium tracking-widest text-blue-600 uppercase dark:text-blue-400">
|
|
1021
|
+
Features
|
|
1022
|
+
</p>
|
|
1023
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">Built for agents, not humans</h2>
|
|
766
1024
|
</div>
|
|
767
1025
|
|
|
768
1026
|
<div className="mt-14 grid grid-cols-1 gap-4 sm:grid-cols-2 sm:gap-6 lg:grid-cols-3">
|
|
@@ -788,16 +1046,16 @@ export default function Home() {
|
|
|
788
1046
|
<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
1047
|
<div className="mx-auto max-w-3xl">
|
|
790
1048
|
<div className="text-center">
|
|
791
|
-
<p className="font-mono text-xs font-medium
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
</h2>
|
|
1049
|
+
<p className="font-mono text-xs font-medium tracking-widest text-blue-600 uppercase dark:text-blue-400">
|
|
1050
|
+
How It Works
|
|
1051
|
+
</p>
|
|
1052
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">Running in under a minute</h2>
|
|
795
1053
|
</div>
|
|
796
1054
|
|
|
797
1055
|
{/* Vertical Timeline */}
|
|
798
1056
|
<div className="relative mt-14">
|
|
799
1057
|
{/* Gradient Timeline Line */}
|
|
800
|
-
<div className="absolute
|
|
1058
|
+
<div className="absolute top-8 bottom-8 left-[27px] 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
1059
|
|
|
802
1060
|
<div className="space-y-8">
|
|
803
1061
|
{HOW_IT_WORKS.map((step) => (
|
|
@@ -811,12 +1069,8 @@ export default function Home() {
|
|
|
811
1069
|
|
|
812
1070
|
{/* Content Card */}
|
|
813
1071
|
<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
|
-
|
|
816
|
-
</h3>
|
|
817
|
-
<p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">
|
|
818
|
-
{step.description}
|
|
819
|
-
</p>
|
|
1072
|
+
<h3 className="text-base font-semibold text-zinc-900 dark:text-zinc-100">{step.title}</h3>
|
|
1073
|
+
<p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">{step.description}</p>
|
|
820
1074
|
<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
1075
|
{step.code}
|
|
822
1076
|
</code>
|
|
@@ -834,10 +1088,10 @@ export default function Home() {
|
|
|
834
1088
|
<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]">
|
|
835
1089
|
<div className="mx-auto max-w-5xl">
|
|
836
1090
|
<div className="text-center">
|
|
837
|
-
<p className="font-mono text-xs font-medium
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
</h2>
|
|
1091
|
+
<p className="font-mono text-xs font-medium tracking-widest text-blue-600 uppercase dark:text-blue-400">
|
|
1092
|
+
Use Cases
|
|
1093
|
+
</p>
|
|
1094
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">What agents build with this</h2>
|
|
841
1095
|
</div>
|
|
842
1096
|
|
|
843
1097
|
<div className="mt-14 grid grid-cols-1 gap-4 md:grid-cols-2">
|
|
@@ -846,9 +1100,7 @@ export default function Home() {
|
|
|
846
1100
|
key={uc}
|
|
847
1101
|
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
1102
|
>
|
|
849
|
-
<p className="text-sm leading-relaxed text-zinc-600 italic dark:text-zinc-400">
|
|
850
|
-
“{uc}”
|
|
851
|
-
</p>
|
|
1103
|
+
<p className="text-sm leading-relaxed text-zinc-600 italic dark:text-zinc-400">“{uc}”</p>
|
|
852
1104
|
</div>
|
|
853
1105
|
))}
|
|
854
1106
|
</div>
|
|
@@ -861,10 +1113,10 @@ export default function Home() {
|
|
|
861
1113
|
<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
1114
|
<div className="mx-auto max-w-4xl">
|
|
863
1115
|
<div className="text-center">
|
|
864
|
-
<p className="font-mono text-xs font-medium
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
1116
|
+
<p className="font-mono text-xs font-medium tracking-widest text-blue-600 uppercase dark:text-blue-400">
|
|
1117
|
+
Philosophy
|
|
1118
|
+
</p>
|
|
1119
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">Why CLI, not MCP?</h2>
|
|
868
1120
|
</div>
|
|
869
1121
|
|
|
870
1122
|
<div className="mt-14 grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
@@ -915,10 +1167,10 @@ export default function Home() {
|
|
|
915
1167
|
<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
1168
|
<div className="mx-auto max-w-5xl">
|
|
917
1169
|
<div className="text-center">
|
|
918
|
-
<p className="font-mono text-xs font-medium
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
</h2>
|
|
1170
|
+
<p className="font-mono text-xs font-medium tracking-widest text-blue-600 uppercase dark:text-blue-400">
|
|
1171
|
+
Compatibility
|
|
1172
|
+
</p>
|
|
1173
|
+
<h2 className="mt-3 text-3xl font-bold tracking-tight sm:text-4xl">Platform capabilities</h2>
|
|
922
1174
|
</div>
|
|
923
1175
|
|
|
924
1176
|
<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]">
|
|
@@ -931,7 +1183,7 @@ export default function Home() {
|
|
|
931
1183
|
{PLATFORM_COLUMNS.map((col) => (
|
|
932
1184
|
<th
|
|
933
1185
|
key={col}
|
|
934
|
-
className="px-4 py-3 text-center font-mono text-xs font-semibold tracking-wide text-zinc-500 uppercase
|
|
1186
|
+
className="px-4 py-3 text-center font-mono text-xs font-semibold tracking-wide whitespace-nowrap text-zinc-500 uppercase dark:text-zinc-500"
|
|
935
1187
|
>
|
|
936
1188
|
{col}
|
|
937
1189
|
</th>
|
|
@@ -942,13 +1194,9 @@ export default function Home() {
|
|
|
942
1194
|
{CAPABILITIES.map((row, i) => (
|
|
943
1195
|
<tr
|
|
944
1196
|
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
|
-
}
|
|
1197
|
+
className={i % 2 === 0 ? 'bg-white/30 dark:bg-white/[0.01]' : 'bg-zinc-50/30 dark:bg-transparent'}
|
|
950
1198
|
>
|
|
951
|
-
<td className="px-4 py-3 font-medium text-zinc-700
|
|
1199
|
+
<td className="px-4 py-3 font-medium whitespace-nowrap text-zinc-700 dark:text-zinc-300">
|
|
952
1200
|
{row.feature}
|
|
953
1201
|
</td>
|
|
954
1202
|
{PLATFORM_KEYS.map((key) => (
|
|
@@ -966,7 +1214,8 @@ export default function Home() {
|
|
|
966
1214
|
</table>
|
|
967
1215
|
</div>
|
|
968
1216
|
<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
|
|
1217
|
+
Slack goes deepest — scheduled messages, ephemeral sends, file downloads, real-time events SDK, activity
|
|
1218
|
+
feed, drafts, saved items, reminders, pins, and bookmarks.
|
|
970
1219
|
</p>
|
|
971
1220
|
</div>
|
|
972
1221
|
</section>
|
|
@@ -981,14 +1230,10 @@ export default function Home() {
|
|
|
981
1230
|
{/* Subtle CTA glow behind */}
|
|
982
1231
|
<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
1232
|
|
|
984
|
-
|
|
985
|
-
Install once. Message everywhere.
|
|
986
|
-
</h2>
|
|
1233
|
+
<h2 className="text-3xl font-bold tracking-tight sm:text-4xl">Install once. Message everywhere.</h2>
|
|
987
1234
|
|
|
988
1235
|
<div className="mx-auto mt-10 max-w-lg text-left">
|
|
989
|
-
<TerminalBlock
|
|
990
|
-
copyText="npm install -g agent-messenger"
|
|
991
|
-
>
|
|
1236
|
+
<TerminalBlock copyText="npm install -g agent-messenger">
|
|
992
1237
|
<span className="text-zinc-400 dark:text-zinc-500">$ </span>
|
|
993
1238
|
<span className="text-zinc-800 dark:text-zinc-100">npm install -g agent-messenger</span>
|
|
994
1239
|
</TerminalBlock>
|