agent-messenger 1.13.0 → 1.14.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 +6 -3
- package/.env.template +10 -0
- package/README.md +11 -8
- package/dist/package.json +3 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +6 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/platforms/channeltalk/cli.d.ts +5 -0
- package/dist/src/platforms/channeltalk/cli.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/cli.js +36 -0
- package/dist/src/platforms/channeltalk/cli.js.map +1 -0
- package/dist/src/platforms/channeltalk/client.d.ts +66 -0
- package/dist/src/platforms/channeltalk/client.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/client.js +200 -0
- package/dist/src/platforms/channeltalk/client.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/auth.d.ts +55 -0
- package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/auth.js +212 -0
- package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/bot.d.ts +22 -0
- package/dist/src/platforms/channeltalk/commands/bot.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/bot.js +47 -0
- package/dist/src/platforms/channeltalk/commands/bot.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/chat.d.ts +33 -0
- package/dist/src/platforms/channeltalk/commands/chat.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/chat.js +79 -0
- package/dist/src/platforms/channeltalk/commands/chat.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/group.d.ts +48 -0
- package/dist/src/platforms/channeltalk/commands/group.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/group.js +116 -0
- package/dist/src/platforms/channeltalk/commands/group.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/index.d.ts +8 -0
- package/dist/src/platforms/channeltalk/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/index.js +8 -0
- package/dist/src/platforms/channeltalk/commands/index.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/manager.d.ts +26 -0
- package/dist/src/platforms/channeltalk/commands/manager.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/manager.js +51 -0
- package/dist/src/platforms/channeltalk/commands/manager.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/message.d.ts +61 -0
- package/dist/src/platforms/channeltalk/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/message.js +193 -0
- package/dist/src/platforms/channeltalk/commands/message.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/shared.d.ts +10 -0
- package/dist/src/platforms/channeltalk/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/shared.js +19 -0
- package/dist/src/platforms/channeltalk/commands/shared.js.map +1 -0
- package/dist/src/platforms/channeltalk/commands/snapshot.d.ts +53 -0
- package/dist/src/platforms/channeltalk/commands/snapshot.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/commands/snapshot.js +121 -0
- package/dist/src/platforms/channeltalk/commands/snapshot.js.map +1 -0
- package/dist/src/platforms/channeltalk/credential-manager.d.ts +17 -0
- package/dist/src/platforms/channeltalk/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/credential-manager.js +131 -0
- package/dist/src/platforms/channeltalk/credential-manager.js.map +1 -0
- package/dist/src/platforms/channeltalk/ensure-auth.d.ts +17 -0
- package/dist/src/platforms/channeltalk/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/ensure-auth.js +73 -0
- package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -0
- package/dist/src/platforms/channeltalk/index.d.ts +5 -0
- package/dist/src/platforms/channeltalk/index.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/index.js +5 -0
- package/dist/src/platforms/channeltalk/index.js.map +1 -0
- package/dist/src/platforms/channeltalk/token-extractor.d.ts +8 -0
- package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/token-extractor.js +71 -0
- package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -0
- package/dist/src/platforms/channeltalk/types.d.ts +1328 -0
- package/dist/src/platforms/channeltalk/types.d.ts.map +1 -0
- package/dist/src/platforms/channeltalk/types.js +160 -0
- package/dist/src/platforms/channeltalk/types.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/cli.d.ts +5 -0
- package/dist/src/platforms/channeltalkbot/cli.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/cli.js +22 -0
- package/dist/src/platforms/channeltalkbot/cli.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/client.d.ts +71 -0
- package/dist/src/platforms/channeltalkbot/client.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/client.js +200 -0
- package/dist/src/platforms/channeltalkbot/client.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/auth.d.ts +30 -0
- package/dist/src/platforms/channeltalkbot/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/auth.js +183 -0
- package/dist/src/platforms/channeltalkbot/commands/auth.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/bot.d.ts +32 -0
- package/dist/src/platforms/channeltalkbot/commands/bot.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/bot.js +92 -0
- package/dist/src/platforms/channeltalkbot/commands/bot.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/chat.d.ts +39 -0
- package/dist/src/platforms/channeltalkbot/commands/chat.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/chat.js +123 -0
- package/dist/src/platforms/channeltalkbot/commands/chat.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/group.d.ts +32 -0
- package/dist/src/platforms/channeltalkbot/commands/group.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/group.js +100 -0
- package/dist/src/platforms/channeltalkbot/commands/group.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/index.d.ts +8 -0
- package/dist/src/platforms/channeltalkbot/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/index.js +8 -0
- package/dist/src/platforms/channeltalkbot/commands/index.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/manager.d.ts +26 -0
- package/dist/src/platforms/channeltalkbot/commands/manager.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/manager.js +67 -0
- package/dist/src/platforms/channeltalkbot/commands/manager.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/message.d.ts +38 -0
- package/dist/src/platforms/channeltalkbot/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/message.js +145 -0
- package/dist/src/platforms/channeltalkbot/commands/message.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/shared.d.ts +12 -0
- package/dist/src/platforms/channeltalkbot/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/shared.js +31 -0
- package/dist/src/platforms/channeltalkbot/commands/shared.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts +54 -0
- package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/commands/snapshot.js +139 -0
- package/dist/src/platforms/channeltalkbot/commands/snapshot.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/credential-manager.d.ts +19 -0
- package/dist/src/platforms/channeltalkbot/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/credential-manager.js +149 -0
- package/dist/src/platforms/channeltalkbot/credential-manager.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/index.d.ts +4 -0
- package/dist/src/platforms/channeltalkbot/index.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/index.js +4 -0
- package/dist/src/platforms/channeltalkbot/index.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/message-utils.d.ts +3 -0
- package/dist/src/platforms/channeltalkbot/message-utils.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/message-utils.js +4 -0
- package/dist/src/platforms/channeltalkbot/message-utils.js.map +1 -0
- package/dist/src/platforms/channeltalkbot/types.d.ts +337 -0
- package/dist/src/platforms/channeltalkbot/types.d.ts.map +1 -0
- package/dist/src/platforms/channeltalkbot/types.js +88 -0
- package/dist/src/platforms/channeltalkbot/types.js.map +1 -0
- package/dist/src/platforms/discord/types.d.ts +36 -36
- package/dist/src/platforms/discordbot/types.d.ts +12 -12
- package/dist/src/platforms/slack/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/slack/ensure-auth.js +1 -0
- package/dist/src/platforms/slack/ensure-auth.js.map +1 -1
- package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/slack/token-extractor.js +9 -1
- package/dist/src/platforms/slack/token-extractor.js.map +1 -1
- package/dist/src/platforms/slack/types.d.ts +34 -34
- package/dist/src/platforms/slackbot/types.d.ts +31 -31
- package/dist/src/platforms/teams/types.d.ts +4 -4
- package/e2e/channeltalk.e2e.test.ts +200 -0
- package/e2e/channeltalkbot.e2e.test.ts +202 -0
- package/e2e/config.ts +84 -0
- package/e2e/helpers.ts +2 -0
- package/package.json +3 -1
- package/scripts/postbuild.ts +2 -0
- package/skills/agent-channeltalk/SKILL.md +428 -0
- package/skills/agent-channeltalk/references/authentication.md +297 -0
- package/skills/agent-channeltalk/references/common-patterns.md +341 -0
- package/skills/agent-channeltalk/templates/monitor-chat.sh +96 -0
- package/skills/agent-channeltalk/templates/post-message.sh +127 -0
- package/skills/agent-channeltalk/templates/workspace-summary.sh +122 -0
- package/skills/agent-channeltalkbot/SKILL.md +421 -0
- package/skills/agent-channeltalkbot/references/authentication.md +185 -0
- package/skills/agent-channeltalkbot/references/common-patterns.md +264 -0
- package/skills/agent-channeltalkbot/templates/monitor-chat.sh +94 -0
- package/skills/agent-channeltalkbot/templates/post-message.sh +112 -0
- package/skills/agent-channeltalkbot/templates/workspace-summary.sh +119 -0
- package/skills/agent-discord/SKILL.md +3 -3
- package/skills/agent-discordbot/SKILL.md +3 -3
- package/skills/agent-slack/SKILL.md +13 -3
- package/skills/agent-slackbot/SKILL.md +3 -3
- package/skills/agent-teams/SKILL.md +3 -3
- package/src/cli.ts +8 -0
- package/src/platforms/channeltalk/cli.ts +51 -0
- package/src/platforms/channeltalk/client.test.ts +385 -0
- package/src/platforms/channeltalk/client.ts +355 -0
- package/src/platforms/channeltalk/commands/auth.test.ts +360 -0
- package/src/platforms/channeltalk/commands/auth.ts +296 -0
- package/src/platforms/channeltalk/commands/bot.test.ts +51 -0
- package/src/platforms/channeltalk/commands/bot.ts +74 -0
- package/src/platforms/channeltalk/commands/chat.test.ts +94 -0
- package/src/platforms/channeltalk/commands/chat.ts +121 -0
- package/src/platforms/channeltalk/commands/group.test.ts +157 -0
- package/src/platforms/channeltalk/commands/group.ts +174 -0
- package/src/platforms/channeltalk/commands/index.ts +7 -0
- package/src/platforms/channeltalk/commands/manager.test.ts +63 -0
- package/src/platforms/channeltalk/commands/manager.ts +82 -0
- package/src/platforms/channeltalk/commands/message.test.ts +546 -0
- package/src/platforms/channeltalk/commands/message.ts +309 -0
- package/src/platforms/channeltalk/commands/shared.ts +29 -0
- package/src/platforms/channeltalk/commands/snapshot.test.ts +193 -0
- package/src/platforms/channeltalk/commands/snapshot.ts +188 -0
- package/src/platforms/channeltalk/credential-manager.test.ts +207 -0
- package/src/platforms/channeltalk/credential-manager.ts +158 -0
- package/src/platforms/channeltalk/ensure-auth.test.ts +155 -0
- package/src/platforms/channeltalk/ensure-auth.ts +96 -0
- package/src/platforms/channeltalk/index.ts +34 -0
- package/src/platforms/channeltalk/token-extractor.test.ts +131 -0
- package/src/platforms/channeltalk/token-extractor.ts +91 -0
- package/src/platforms/channeltalk/types.test.ts +142 -0
- package/src/platforms/channeltalk/types.ts +345 -0
- package/src/platforms/channeltalkbot/cli.ts +36 -0
- package/src/platforms/channeltalkbot/client.test.ts +197 -0
- package/src/platforms/channeltalkbot/client.ts +300 -0
- package/src/platforms/channeltalkbot/commands/auth.test.ts +253 -0
- package/src/platforms/channeltalkbot/commands/auth.ts +229 -0
- package/src/platforms/channeltalkbot/commands/bot.test.ts +114 -0
- package/src/platforms/channeltalkbot/commands/bot.ts +132 -0
- package/src/platforms/channeltalkbot/commands/chat.test.ts +168 -0
- package/src/platforms/channeltalkbot/commands/chat.ts +174 -0
- package/src/platforms/channeltalkbot/commands/group.test.ts +136 -0
- package/src/platforms/channeltalkbot/commands/group.ts +136 -0
- package/src/platforms/channeltalkbot/commands/index.ts +7 -0
- package/src/platforms/channeltalkbot/commands/manager.test.ts +72 -0
- package/src/platforms/channeltalkbot/commands/manager.ts +98 -0
- package/src/platforms/channeltalkbot/commands/message.test.ts +194 -0
- package/src/platforms/channeltalkbot/commands/message.ts +189 -0
- package/src/platforms/channeltalkbot/commands/shared.ts +45 -0
- package/src/platforms/channeltalkbot/commands/snapshot.test.ts +113 -0
- package/src/platforms/channeltalkbot/commands/snapshot.ts +200 -0
- package/src/platforms/channeltalkbot/credential-manager.test.ts +308 -0
- package/src/platforms/channeltalkbot/credential-manager.ts +176 -0
- package/src/platforms/channeltalkbot/index.ts +27 -0
- package/src/platforms/channeltalkbot/message-utils.test.ts +20 -0
- package/src/platforms/channeltalkbot/message-utils.ts +5 -0
- package/src/platforms/channeltalkbot/types.test.ts +384 -0
- package/src/platforms/channeltalkbot/types.ts +185 -0
- package/src/platforms/slack/ensure-auth.test.ts +30 -0
- package/src/platforms/slack/ensure-auth.ts +1 -0
- package/src/platforms/slack/token-extractor.test.ts +25 -0
- package/src/platforms/slack/token-extractor.ts +10 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-messenger",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Messaging platform interaction skills for AI agents. Interact with Slack, Discord,
|
|
3
|
+
"version": "1.14.0",
|
|
4
|
+
"description": "Messaging platform interaction skills for AI agents. Interact with Slack, Discord, Microsoft Teams, and Channel Talk - send messages, read channels, manage reactions, upload files, and more through simple CLI interfaces.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "devxoul",
|
|
7
7
|
"url": "https://github.com/devxoul"
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"slack",
|
|
12
12
|
"discord",
|
|
13
13
|
"teams",
|
|
14
|
+
"channel-talk",
|
|
14
15
|
"messaging",
|
|
15
16
|
"workspace",
|
|
16
17
|
"guild",
|
|
@@ -22,10 +23,12 @@
|
|
|
22
23
|
"homepage": "https://github.com/devxoul/agent-messenger",
|
|
23
24
|
"repository": "https://github.com/devxoul/agent-messenger",
|
|
24
25
|
"skills": [
|
|
26
|
+
"./skills/agent-channeltalk",
|
|
25
27
|
"./skills/agent-slack",
|
|
26
28
|
"./skills/agent-slackbot",
|
|
27
29
|
"./skills/agent-discord",
|
|
28
30
|
"./skills/agent-discordbot",
|
|
29
|
-
"./skills/agent-teams"
|
|
31
|
+
"./skills/agent-teams",
|
|
32
|
+
"./skills/agent-channeltalkbot"
|
|
30
33
|
]
|
|
31
34
|
}
|
package/.env.template
CHANGED
|
@@ -22,3 +22,13 @@ E2E_DISCORDBOT_SERVER_NAME=Agent Messenger
|
|
|
22
22
|
E2E_TEAMS_TEAM_ID=
|
|
23
23
|
E2E_TEAMS_TEAM_NAME=Agent Messenger
|
|
24
24
|
E2E_TEAMS_CHANNEL_ID=
|
|
25
|
+
|
|
26
|
+
# ChannelBot (API key + secret — use a dedicated test workspace, NOT a production workspace)
|
|
27
|
+
# Group named "E2E" is auto-discovered from the workspace's group list.
|
|
28
|
+
E2E_CHANNELBOT_WORKSPACE_ID=
|
|
29
|
+
E2E_CHANNELBOT_WORKSPACE_NAME=
|
|
30
|
+
|
|
31
|
+
# Channel (user token from desktop app — use a dedicated test workspace, NOT a production workspace)
|
|
32
|
+
# Group named "E2E" is auto-discovered from the workspace's group list.
|
|
33
|
+
E2E_CHANNEL_WORKSPACE_ID=
|
|
34
|
+
E2E_CHANNEL_WORKSPACE_NAME=
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent Messenger
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/agent-messenger) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-slack) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-slackbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discord) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discordbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-teams) [](https://www.npmjs.com/package/agent-messenger) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-slack) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-slackbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discord) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discordbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-teams) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-channeltalk) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-channeltalkbot)
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
@@ -58,24 +58,26 @@ This installs:
|
|
|
58
58
|
- `agent-discord` — Discord CLI
|
|
59
59
|
- `agent-discordbot` — Discord Bot CLI (bot token, for server-side/CI/CD)
|
|
60
60
|
- `agent-teams` — Microsoft Teams CLI
|
|
61
|
-
- `agent-
|
|
61
|
+
- `agent-channeltalk` — Channel Talk CLI (zero-config, extracted cookies)
|
|
62
|
+
- `agent-channeltalkbot` — Channel Talk Bot CLI (API credentials, for server-side/CI/CD)
|
|
62
63
|
|
|
63
64
|
## Agent Skills
|
|
64
65
|
|
|
65
|
-
Agent Messenger includes [Agent Skills](https://agentskills.io/) that teach your AI agent how to use these CLIs effectively.
|
|
66
|
+
Agent Messenger includes [Agent Skills](https://agentskills.io/) that teach your AI agent how to use these CLIs effectively. Seven skills are available:
|
|
66
67
|
|
|
67
68
|
- **`agent-slack`** — Slack (user token, zero-config)
|
|
68
69
|
- **`agent-slackbot`** — Slack Bot (bot token, for server-side/CI/CD)
|
|
69
70
|
- **`agent-discord`** — Discord
|
|
70
71
|
- **`agent-discordbot`** — Discord Bot (bot token, for server-side/CI/CD)
|
|
71
72
|
- **`agent-teams`** — Microsoft Teams
|
|
72
|
-
- **`agent-
|
|
73
|
+
- **`agent-channeltalk`** — Channel Talk (zero-config, extracted cookies)
|
|
74
|
+
- **`agent-channeltalkbot`** — Channel Talk Bot (API credentials, for server-side/CI/CD)
|
|
73
75
|
|
|
74
76
|
### SkillPad
|
|
75
77
|
|
|
76
78
|
SkillPad is a GUI app for Agent Skills. See [skillpad.dev](https://skillpad.dev/) for more details.
|
|
77
79
|
|
|
78
|
-
[](https://skillpad.dev/install/devxoul/agent-messenger/agent-slack) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-slackbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discord) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discordbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-teams) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-slack) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-slackbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discord) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-discordbot) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-teams) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-channeltalk) [](https://skillpad.dev/install/devxoul/agent-messenger/agent-channeltalkbot)
|
|
79
81
|
|
|
80
82
|
### Skills CLI
|
|
81
83
|
|
|
@@ -127,9 +129,9 @@ That's it. Credentials are extracted automatically from your Slack desktop app o
|
|
|
127
129
|
|
|
128
130
|
| Feature | Slack | Discord | Teams | Channel Talk |
|
|
129
131
|
| -------------------------- | :---: | :-----: | :---: | :----------: |
|
|
130
|
-
| Auto credential extraction | ✅ | ✅ | ✅ |
|
|
132
|
+
| Auto credential extraction | ✅ | ✅ | ✅ | ✅ |
|
|
131
133
|
| Send & list messages | ✅ | ✅ | ✅ | ✅ |
|
|
132
|
-
| Search messages | ✅ | ✅ | — |
|
|
134
|
+
| Search messages | ✅ | ✅ | — | ✅ |
|
|
133
135
|
| Threads | ✅ | ✅ | — | — |
|
|
134
136
|
| Channels & Users | ✅ | ✅ | ✅ | ✅ |
|
|
135
137
|
| Reactions | ✅ | ✅ | ✅ | — |
|
|
@@ -153,7 +155,8 @@ That's it. Credentials are extracted automatically from your Slack desktop app o
|
|
|
153
155
|
- **[Discord Guide](https://agent-messenger.dev/docs/integrations/discord)** — Full command reference for Discord
|
|
154
156
|
- **[Discord Bot Guide](https://agent-messenger.dev/docs/integrations/discordbot)** — Bot token integration for server-side and CI/CD
|
|
155
157
|
- **[Teams Guide](https://agent-messenger.dev/docs/integrations/teams)** — Full command reference for Microsoft Teams
|
|
156
|
-
- **[Channel Talk
|
|
158
|
+
- **[Channel Talk Guide](https://agent-messenger.dev/docs/integrations/channeltalk)** — Full command reference for Channel Talk (zero-config)
|
|
159
|
+
- **[Channel Talk Bot Guide](https://agent-messenger.dev/docs/integrations/channeltalkbot)** — Bot API integration for Channel Talk customer support
|
|
157
160
|
|
|
158
161
|
## Use Cases
|
|
159
162
|
|
package/dist/package.json
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-messenger",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
4
4
|
"description": "Multi-platform messaging CLI for AI agents (Slack, Discord, Teams)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/devxoul/agent-messenger"
|
|
8
8
|
},
|
|
9
9
|
"bin": {
|
|
10
|
+
"agent-channeltalk": "./src/platforms/channeltalk/cli.ts",
|
|
10
11
|
"agent-discord": "./src/platforms/discord/cli.ts",
|
|
11
12
|
"agent-discordbot": "./src/platforms/discordbot/cli.ts",
|
|
12
13
|
"agent-messenger": "./src/cli.ts",
|
|
13
14
|
"agent-slack": "./src/platforms/slack/cli.ts",
|
|
14
15
|
"agent-slackbot": "./src/platforms/slackbot/cli.ts",
|
|
16
|
+
"agent-channeltalkbot": "./src/platforms/channeltalkbot/cli.ts",
|
|
15
17
|
"agent-teams": "./src/platforms/teams/cli.ts",
|
|
16
18
|
"amsg": "./src/cli.ts"
|
|
17
19
|
},
|
package/dist/src/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,QAAA,MAAM,OAAO,SAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,QAAA,MAAM,OAAO,SAAgB,CAAA;AAmC7B,eAAe,OAAO,CAAA"}
|
package/dist/src/cli.js
CHANGED
|
@@ -24,6 +24,12 @@ program.command('slackbot', 'Interact with Slack using bot tokens', {
|
|
|
24
24
|
program.command('discordbot', 'Interact with Discord using bot tokens', {
|
|
25
25
|
executableFile: join(__dirname, 'platforms', 'discordbot', `cli${ext}`),
|
|
26
26
|
});
|
|
27
|
+
program.command('channeltalkbot', 'Interact with Channel Talk using API credentials', {
|
|
28
|
+
executableFile: join(__dirname, 'platforms', 'channeltalkbot', `cli${ext}`),
|
|
29
|
+
});
|
|
30
|
+
program.command('channeltalk', 'Interact with Channel Talk', {
|
|
31
|
+
executableFile: join(__dirname, 'platforms', 'channeltalk', `cli${ext}`),
|
|
32
|
+
});
|
|
27
33
|
program.parse(process.argv);
|
|
28
34
|
export default program;
|
|
29
35
|
//# sourceMappingURL=cli.js.map
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAEvD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACrC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAEtD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAE9G,0CAA0C;AAC1C,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,gCAAgC,EAAE;IACzD,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CACnE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,8BAA8B,EAAE;IACzD,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC;CACrE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,+BAA+B,EAAE;IACxD,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CACnE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,sCAAsC,EAAE;IAClE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,EAAE,CAAC;CACtE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,wCAAwC,EAAE;IACtE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;CACxE,CAAC,CAAA;AAEF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3B,eAAe,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAEvD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACrC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAEtD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAE9G,0CAA0C;AAC1C,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,gCAAgC,EAAE;IACzD,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CACnE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,8BAA8B,EAAE;IACzD,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC;CACrE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,+BAA+B,EAAE;IACxD,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CACnE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,sCAAsC,EAAE;IAClE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,EAAE,CAAC;CACtE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,wCAAwC,EAAE;IACtE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;CACxE,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,kDAAkD,EAAE;IACpF,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAG,EAAE,CAAC;CAC5E,CAAC,CAAA;AAEF,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,4BAA4B,EAAE;IAC3D,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,EAAE,CAAC;CACzE,CAAC,CAAA;AAEF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3B,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../src/platforms/channeltalk/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAwBvD,QAAA,MAAM,OAAO,aAAgB,CAAA;AAwB7B,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import pkg from '../../../package.json' with { type: 'json' };
|
|
4
|
+
import { createAuthCommand, createBotCommand, createChatCommand, createGroupCommand, createManagerCommand, createMessageCommand, createSnapshotCommand, } from './commands/index.js';
|
|
5
|
+
import { ensureChannelAuth } from './ensure-auth.js';
|
|
6
|
+
function isAuthCommand(command) {
|
|
7
|
+
let cmd = command;
|
|
8
|
+
while (cmd) {
|
|
9
|
+
if (cmd.name() === 'auth')
|
|
10
|
+
return true;
|
|
11
|
+
cmd = cmd.parent;
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
const program = new Command();
|
|
16
|
+
program
|
|
17
|
+
.name('agent-channeltalk')
|
|
18
|
+
.description('CLI tool for Channel Talk using extracted desktop app credentials')
|
|
19
|
+
.version(pkg.version)
|
|
20
|
+
.option('--pretty', 'Pretty-print JSON output')
|
|
21
|
+
.option('--workspace <id>', 'Workspace ID to use');
|
|
22
|
+
program.hook('preAction', async (_thisCommand, actionCommand) => {
|
|
23
|
+
if (isAuthCommand(actionCommand))
|
|
24
|
+
return;
|
|
25
|
+
await ensureChannelAuth();
|
|
26
|
+
});
|
|
27
|
+
program.addCommand(createAuthCommand());
|
|
28
|
+
program.addCommand(createMessageCommand());
|
|
29
|
+
program.addCommand(createChatCommand());
|
|
30
|
+
program.addCommand(createGroupCommand());
|
|
31
|
+
program.addCommand(createManagerCommand());
|
|
32
|
+
program.addCommand(createBotCommand());
|
|
33
|
+
program.addCommand(createSnapshotCommand());
|
|
34
|
+
program.parseAsync(process.argv);
|
|
35
|
+
export default program;
|
|
36
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/platforms/channeltalk/cli.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC7D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,SAAS,aAAa,CAAC,OAAoB;IACzC,IAAI,GAAG,GAAuB,OAAO,CAAA;IACrC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QACtC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IAClB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,mBAAmB,CAAC;KACzB,WAAW,CAAC,mEAAmE,CAAC;KAChF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,UAAU,EAAE,0BAA0B,CAAC;KAC9C,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAA;AAEpD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;IAC9D,IAAI,aAAa,CAAC,aAAa,CAAC;QAAE,OAAM;IACxC,MAAM,iBAAiB,EAAE,CAAA;AAC3B,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAA;AACxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAA;AACtC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAE3C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEhC,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Channel, ChannelAccount, ChannelBot, ChannelDirectChat, ChannelGroup, ChannelManager, ChannelMessage, ChannelSearchResponse, ChannelUserChat, MessageBlock } from './types.js';
|
|
2
|
+
export declare class ChannelClient {
|
|
3
|
+
private accountCookie;
|
|
4
|
+
private sessionCookie;
|
|
5
|
+
private rateLimitRemaining;
|
|
6
|
+
private rateLimitResetAt;
|
|
7
|
+
constructor(accountCookie: string, sessionCookie?: string);
|
|
8
|
+
static wrapTextInBlocks(text: string): MessageBlock[];
|
|
9
|
+
static extractText(message: ChannelMessage): string;
|
|
10
|
+
getAccount(): Promise<ChannelAccount>;
|
|
11
|
+
listChannels(params?: {
|
|
12
|
+
limit?: number;
|
|
13
|
+
}): Promise<Channel[]>;
|
|
14
|
+
getChannel(channelId: string): Promise<Channel>;
|
|
15
|
+
listManagers(channelId: string, params?: {
|
|
16
|
+
limit?: number;
|
|
17
|
+
}): Promise<ChannelManager[]>;
|
|
18
|
+
getManagerRole(channelId: string): Promise<{
|
|
19
|
+
permissions: unknown[];
|
|
20
|
+
}>;
|
|
21
|
+
listGroups(channelId: string, params?: {
|
|
22
|
+
limit?: number;
|
|
23
|
+
}): Promise<ChannelGroup[]>;
|
|
24
|
+
getGroup(channelId: string, groupId: string): Promise<ChannelGroup>;
|
|
25
|
+
getGroupMessages(channelId: string, groupId: string, params?: {
|
|
26
|
+
sortOrder?: string;
|
|
27
|
+
limit?: number;
|
|
28
|
+
since?: string;
|
|
29
|
+
}): Promise<ChannelMessage[]>;
|
|
30
|
+
sendGroupMessage(channelId: string, groupId: string, blocks: MessageBlock[], requestId?: string): Promise<ChannelMessage>;
|
|
31
|
+
listDirectChats(channelId: string, params?: {
|
|
32
|
+
limit?: number;
|
|
33
|
+
}): Promise<ChannelDirectChat[]>;
|
|
34
|
+
getDirectChatMessages(channelId: string, chatId: string, params?: {
|
|
35
|
+
sortOrder?: string;
|
|
36
|
+
limit?: number;
|
|
37
|
+
}): Promise<ChannelMessage[]>;
|
|
38
|
+
sendDirectChatMessage(channelId: string, chatId: string, blocks: MessageBlock[], requestId?: string): Promise<ChannelMessage>;
|
|
39
|
+
listUserChats(channelId: string, params?: {
|
|
40
|
+
state?: string;
|
|
41
|
+
limit?: number;
|
|
42
|
+
}): Promise<ChannelUserChat[]>;
|
|
43
|
+
getUserChat(channelId: string, chatId: string): Promise<ChannelUserChat>;
|
|
44
|
+
getUserChatMessages(channelId: string, chatId: string, params?: {
|
|
45
|
+
sortOrder?: string;
|
|
46
|
+
limit?: number;
|
|
47
|
+
}): Promise<ChannelMessage[]>;
|
|
48
|
+
sendUserChatMessage(channelId: string, chatId: string, blocks: MessageBlock[], requestId?: string): Promise<ChannelMessage>;
|
|
49
|
+
listBots(channelId: string, params?: {
|
|
50
|
+
limit?: number;
|
|
51
|
+
}): Promise<ChannelBot[]>;
|
|
52
|
+
searchTeamChatMessages(channelId: string, query: string, params?: {
|
|
53
|
+
limit?: number;
|
|
54
|
+
}): Promise<ChannelSearchResponse>;
|
|
55
|
+
searchUserChatMessages(channelId: string, query: string, params?: {
|
|
56
|
+
limit?: number;
|
|
57
|
+
}): Promise<ChannelSearchResponse>;
|
|
58
|
+
private getHeaders;
|
|
59
|
+
private waitForRateLimit;
|
|
60
|
+
private updateRateLimit;
|
|
61
|
+
private request;
|
|
62
|
+
private createHttpError;
|
|
63
|
+
private buildPath;
|
|
64
|
+
private sleep;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/platforms/channeltalk/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { ChannelError } from './types.js';
|
|
2
|
+
const BASE_URL = 'https://desk-api.channel.io';
|
|
3
|
+
const MAX_RETRIES = 3;
|
|
4
|
+
const BASE_BACKOFF_MS = 100;
|
|
5
|
+
export class ChannelClient {
|
|
6
|
+
accountCookie;
|
|
7
|
+
sessionCookie;
|
|
8
|
+
rateLimitRemaining = null;
|
|
9
|
+
rateLimitResetAt = 0;
|
|
10
|
+
constructor(accountCookie, sessionCookie) {
|
|
11
|
+
if (!accountCookie) {
|
|
12
|
+
throw new ChannelError('Account cookie is required', 'missing_account_cookie');
|
|
13
|
+
}
|
|
14
|
+
this.accountCookie = accountCookie;
|
|
15
|
+
this.sessionCookie = sessionCookie;
|
|
16
|
+
}
|
|
17
|
+
static wrapTextInBlocks(text) {
|
|
18
|
+
return [{ type: 'text', value: text }];
|
|
19
|
+
}
|
|
20
|
+
static extractText(message) {
|
|
21
|
+
const parts = [];
|
|
22
|
+
for (const block of message.blocks ?? []) {
|
|
23
|
+
if (block.value) {
|
|
24
|
+
parts.push(block.value);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (message.plainText) {
|
|
28
|
+
parts.push(message.plainText);
|
|
29
|
+
}
|
|
30
|
+
return parts.join('\n');
|
|
31
|
+
}
|
|
32
|
+
async getAccount() {
|
|
33
|
+
return this.request('GET', '/desk/account', undefined, 'account');
|
|
34
|
+
}
|
|
35
|
+
async listChannels(params) {
|
|
36
|
+
return this.request('GET', this.buildPath('/desk/channels', params), undefined, 'channels');
|
|
37
|
+
}
|
|
38
|
+
async getChannel(channelId) {
|
|
39
|
+
return this.request('GET', `/desk/channels/${channelId}`, undefined, 'channel');
|
|
40
|
+
}
|
|
41
|
+
async listManagers(channelId, params) {
|
|
42
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/managers`, params), undefined, 'managers');
|
|
43
|
+
}
|
|
44
|
+
async getManagerRole(channelId) {
|
|
45
|
+
return this.request('GET', `/desk/channels/${channelId}/managers/me/role`, undefined, 'role');
|
|
46
|
+
}
|
|
47
|
+
async listGroups(channelId, params) {
|
|
48
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/groups`, params), undefined, 'groups');
|
|
49
|
+
}
|
|
50
|
+
async getGroup(channelId, groupId) {
|
|
51
|
+
return this.request('GET', `/desk/channels/${channelId}/groups/${groupId}`, undefined, 'group');
|
|
52
|
+
}
|
|
53
|
+
async getGroupMessages(channelId, groupId, params) {
|
|
54
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/groups/${groupId}/messages`, params), undefined, 'messages');
|
|
55
|
+
}
|
|
56
|
+
async sendGroupMessage(channelId, groupId, blocks, requestId) {
|
|
57
|
+
return this.request('POST', `/desk/channels/${channelId}/groups/${groupId}/messages`, { blocks, requestId: requestId ?? crypto.randomUUID() }, 'message');
|
|
58
|
+
}
|
|
59
|
+
async listDirectChats(channelId, params) {
|
|
60
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/direct-chats`, params), undefined, 'directChats');
|
|
61
|
+
}
|
|
62
|
+
async getDirectChatMessages(channelId, chatId, params) {
|
|
63
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/direct-chats/${chatId}/messages`, params), undefined, 'messages');
|
|
64
|
+
}
|
|
65
|
+
async sendDirectChatMessage(channelId, chatId, blocks, requestId) {
|
|
66
|
+
return this.request('POST', `/desk/channels/${channelId}/direct-chats/${chatId}/messages`, { blocks, requestId: requestId ?? crypto.randomUUID() }, 'message');
|
|
67
|
+
}
|
|
68
|
+
async listUserChats(channelId, params) {
|
|
69
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/user-chats/assigned/me`, params), undefined, 'userChats');
|
|
70
|
+
}
|
|
71
|
+
async getUserChat(channelId, chatId) {
|
|
72
|
+
return this.request('GET', `/desk/channels/${channelId}/user-chats/${chatId}`, undefined, 'userChat');
|
|
73
|
+
}
|
|
74
|
+
async getUserChatMessages(channelId, chatId, params) {
|
|
75
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/user-chats/${chatId}/messages`, params), undefined, 'messages');
|
|
76
|
+
}
|
|
77
|
+
async sendUserChatMessage(channelId, chatId, blocks, requestId) {
|
|
78
|
+
return this.request('POST', `/desk/channels/${channelId}/user-chats/${chatId}/messages`, { blocks, requestId: requestId ?? crypto.randomUUID() }, 'message');
|
|
79
|
+
}
|
|
80
|
+
async listBots(channelId, params) {
|
|
81
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/bots`, params), undefined, 'bots');
|
|
82
|
+
}
|
|
83
|
+
async searchTeamChatMessages(channelId, query, params) {
|
|
84
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/team-chat/message/search`, { query, ...params }));
|
|
85
|
+
}
|
|
86
|
+
async searchUserChatMessages(channelId, query, params) {
|
|
87
|
+
return this.request('GET', this.buildPath(`/desk/channels/${channelId}/user-chat/message/search`, { query, ...params }));
|
|
88
|
+
}
|
|
89
|
+
getHeaders() {
|
|
90
|
+
return {
|
|
91
|
+
Cookie: this.sessionCookie
|
|
92
|
+
? `x-account=${this.accountCookie}; ch-session-1=${this.sessionCookie}`
|
|
93
|
+
: `x-account=${this.accountCookie}`,
|
|
94
|
+
'Content-Type': 'application/json',
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async waitForRateLimit() {
|
|
98
|
+
const now = Date.now();
|
|
99
|
+
if (this.rateLimitRemaining === 0 && this.rateLimitResetAt > now) {
|
|
100
|
+
await this.sleep(this.rateLimitResetAt - now);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
updateRateLimit(response) {
|
|
104
|
+
const remainingHeader = response.headers.get('x-ratelimit-remaining');
|
|
105
|
+
const resetHeader = response.headers.get('x-ratelimit-reset');
|
|
106
|
+
if (remainingHeader !== null) {
|
|
107
|
+
const remaining = Number.parseInt(remainingHeader, 10);
|
|
108
|
+
if (!Number.isNaN(remaining)) {
|
|
109
|
+
this.rateLimitRemaining = remaining;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (resetHeader !== null) {
|
|
113
|
+
const reset = Number.parseFloat(resetHeader);
|
|
114
|
+
if (!Number.isNaN(reset)) {
|
|
115
|
+
this.rateLimitResetAt = reset > 1_000_000_000_000 ? reset : reset * 1000;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async request(method, path, body, unwrapKey) {
|
|
120
|
+
const url = `${BASE_URL}${path}`;
|
|
121
|
+
let lastError;
|
|
122
|
+
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
123
|
+
await this.waitForRateLimit();
|
|
124
|
+
const options = {
|
|
125
|
+
method,
|
|
126
|
+
headers: this.getHeaders(),
|
|
127
|
+
};
|
|
128
|
+
if (body !== undefined) {
|
|
129
|
+
options.body = JSON.stringify(body);
|
|
130
|
+
}
|
|
131
|
+
let response;
|
|
132
|
+
try {
|
|
133
|
+
response = await fetch(url, options);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
137
|
+
if (attempt < MAX_RETRIES && method === 'GET') {
|
|
138
|
+
await this.sleep(BASE_BACKOFF_MS * 2 ** attempt);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
throw new ChannelError(`Network error: ${lastError.message}`, 'network_error');
|
|
142
|
+
}
|
|
143
|
+
this.updateRateLimit(response);
|
|
144
|
+
if (response.status === 429) {
|
|
145
|
+
if (attempt < MAX_RETRIES) {
|
|
146
|
+
const retryAfter = Number.parseFloat(response.headers.get('Retry-After') || '1');
|
|
147
|
+
const retryAfterMs = (Number.isNaN(retryAfter) ? 1 : retryAfter) * 1000;
|
|
148
|
+
await this.sleep(retryAfterMs);
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
throw new ChannelError('Rate limited', 'rate_limited');
|
|
152
|
+
}
|
|
153
|
+
if (response.status >= 500 && response.status <= 599) {
|
|
154
|
+
if (attempt < MAX_RETRIES && method === 'GET') {
|
|
155
|
+
await this.sleep(BASE_BACKOFF_MS * 2 ** attempt);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
throw await this.createHttpError(response);
|
|
159
|
+
}
|
|
160
|
+
if (!response.ok) {
|
|
161
|
+
throw await this.createHttpError(response);
|
|
162
|
+
}
|
|
163
|
+
if (response.status === 204) {
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
const data = await response.json();
|
|
167
|
+
if (unwrapKey && data != null && typeof data === 'object' && unwrapKey in data) {
|
|
168
|
+
return data[unwrapKey];
|
|
169
|
+
}
|
|
170
|
+
return data;
|
|
171
|
+
}
|
|
172
|
+
throw lastError || new ChannelError('Request failed after retries', 'max_retries');
|
|
173
|
+
}
|
|
174
|
+
async createHttpError(response) {
|
|
175
|
+
const errorBody = await response.json().catch(() => ({}));
|
|
176
|
+
const message = errorBody.errors?.[0]?.message || `HTTP ${response.status}`;
|
|
177
|
+
const code = errorBody.type || `http_${response.status}`;
|
|
178
|
+
return new ChannelError(message, code);
|
|
179
|
+
}
|
|
180
|
+
buildPath(path, params) {
|
|
181
|
+
if (!params) {
|
|
182
|
+
return path;
|
|
183
|
+
}
|
|
184
|
+
const searchParams = new URLSearchParams();
|
|
185
|
+
for (const [key, value] of Object.entries(params)) {
|
|
186
|
+
if (value !== undefined) {
|
|
187
|
+
searchParams.set(key, String(value));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
const query = searchParams.toString();
|
|
191
|
+
if (!query) {
|
|
192
|
+
return path;
|
|
193
|
+
}
|
|
194
|
+
return `${path}?${query}`;
|
|
195
|
+
}
|
|
196
|
+
sleep(ms) {
|
|
197
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/platforms/channeltalk/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { ChannelClient } from '../client.js';
|
|
3
|
+
import { ChannelCredentialManager } from '../credential-manager.js';
|
|
4
|
+
import { ChannelTokenExtractor } from '../token-extractor.js';
|
|
5
|
+
interface ActionOptions {
|
|
6
|
+
workspace?: string;
|
|
7
|
+
pretty?: boolean;
|
|
8
|
+
_credManager?: ChannelCredentialManager;
|
|
9
|
+
}
|
|
10
|
+
interface WorkspaceSummary {
|
|
11
|
+
workspace_id: string;
|
|
12
|
+
workspace_name: string;
|
|
13
|
+
is_current?: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface ExtractResult {
|
|
16
|
+
success: true;
|
|
17
|
+
workspaces: Array<{
|
|
18
|
+
workspace_id: string;
|
|
19
|
+
workspace_name: string;
|
|
20
|
+
}>;
|
|
21
|
+
current_workspace_id: string;
|
|
22
|
+
}
|
|
23
|
+
interface StatusResult {
|
|
24
|
+
valid: boolean;
|
|
25
|
+
workspace_id?: string;
|
|
26
|
+
workspace_name?: string;
|
|
27
|
+
account_name?: string;
|
|
28
|
+
error?: string;
|
|
29
|
+
}
|
|
30
|
+
interface SuccessResult {
|
|
31
|
+
success: true;
|
|
32
|
+
workspace_id?: string;
|
|
33
|
+
}
|
|
34
|
+
interface ErrorResult {
|
|
35
|
+
error: string;
|
|
36
|
+
}
|
|
37
|
+
type ChannelClientLike = Pick<ChannelClient, 'getAccount' | 'listChannels'>;
|
|
38
|
+
type ChannelCredentialManagerLike = Pick<ChannelCredentialManager, 'getCredentials' | 'setCredentials' | 'listAll' | 'clearCredentials' | 'setCurrent' | 'removeWorkspace'>;
|
|
39
|
+
type ChannelTokenExtractorLike = Pick<ChannelTokenExtractor, 'extract'>;
|
|
40
|
+
export declare function setChannelAuthCommandDependenciesForTesting(dependencies: {
|
|
41
|
+
createChannelClient?: (accountCookie: string, sessionCookie?: string) => ChannelClientLike;
|
|
42
|
+
createCredentialManager?: () => ChannelCredentialManagerLike;
|
|
43
|
+
createTokenExtractor?: () => ChannelTokenExtractorLike;
|
|
44
|
+
}): void;
|
|
45
|
+
export declare function resetChannelAuthCommandDependenciesForTesting(): void;
|
|
46
|
+
export declare function extractAction(options?: ActionOptions): Promise<ExtractResult | ErrorResult>;
|
|
47
|
+
export declare function statusAction(options?: ActionOptions): Promise<StatusResult>;
|
|
48
|
+
export declare function clearAction(options?: ActionOptions): Promise<SuccessResult | ErrorResult>;
|
|
49
|
+
export declare function listAction(options?: ActionOptions): Promise<WorkspaceSummary[] | ErrorResult>;
|
|
50
|
+
export declare function useAction(workspaceId: string, options?: ActionOptions): Promise<SuccessResult | ErrorResult>;
|
|
51
|
+
export declare function removeAction(workspaceId: string, options?: ActionOptions): Promise<SuccessResult | ErrorResult>;
|
|
52
|
+
export declare function createAuthCommand(): Command;
|
|
53
|
+
export declare const authCommand: Command;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/channeltalk/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,wBAAwB,CAAA;CACxC;AAED,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,IAAI,CAAA;IACb,UAAU,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnE,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,IAAI,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAID,KAAK,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,cAAc,CAAC,CAAA;AAC3E,KAAK,4BAA4B,GAAG,IAAI,CACtC,wBAAwB,EACxB,gBAAgB,GAAG,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,YAAY,GAAG,iBAAiB,CACxG,CAAA;AACD,KAAK,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;AASvE,wBAAgB,2CAA2C,CAAC,YAAY,EAAE;IACxE,mBAAmB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAA;IAC1F,uBAAuB,CAAC,EAAE,MAAM,4BAA4B,CAAA;IAC5D,oBAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAA;CACvD,GAAG,IAAI,CAIP;AAED,wBAAgB,6CAA6C,IAAI,IAAI,CAKpE;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,CAgDrG;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAsCrF;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,CAQnG;AAED,wBAAsB,UAAU,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,WAAW,CAAC,CAavG;AAED,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,CAgBtH;AAED,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,CAgBzH;AAUD,wBAAgB,iBAAiB,IAAI,OAAO,CA0D3C;AAED,eAAO,MAAM,WAAW,SAAsB,CAAA"}
|