agent-messenger 2.4.0 → 2.6.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.
Files changed (359) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.github/workflows/ci.yml +35 -0
  3. package/.github/workflows/release.yml +0 -12
  4. package/README.md +3 -3
  5. package/bun.lock +10 -2
  6. package/dist/package.json +3 -1
  7. package/dist/src/platforms/channeltalk/cli.d.ts.map +1 -1
  8. package/dist/src/platforms/channeltalk/cli.js +2 -1
  9. package/dist/src/platforms/channeltalk/cli.js.map +1 -1
  10. package/dist/src/platforms/channeltalk/commands/index.d.ts +1 -0
  11. package/dist/src/platforms/channeltalk/commands/index.d.ts.map +1 -1
  12. package/dist/src/platforms/channeltalk/commands/index.js +1 -0
  13. package/dist/src/platforms/channeltalk/commands/index.js.map +1 -1
  14. package/dist/src/platforms/channeltalk/commands/whoami.d.ts +22 -0
  15. package/dist/src/platforms/channeltalk/commands/whoami.d.ts.map +1 -0
  16. package/dist/src/platforms/channeltalk/commands/whoami.js +40 -0
  17. package/dist/src/platforms/channeltalk/commands/whoami.js.map +1 -0
  18. package/dist/src/platforms/channeltalkbot/cli.d.ts.map +1 -1
  19. package/dist/src/platforms/channeltalkbot/cli.js +2 -1
  20. package/dist/src/platforms/channeltalkbot/cli.js.map +1 -1
  21. package/dist/src/platforms/channeltalkbot/commands/index.d.ts +1 -0
  22. package/dist/src/platforms/channeltalkbot/commands/index.d.ts.map +1 -1
  23. package/dist/src/platforms/channeltalkbot/commands/index.js +1 -0
  24. package/dist/src/platforms/channeltalkbot/commands/index.js.map +1 -1
  25. package/dist/src/platforms/channeltalkbot/commands/whoami.d.ts +13 -0
  26. package/dist/src/platforms/channeltalkbot/commands/whoami.d.ts.map +1 -0
  27. package/dist/src/platforms/channeltalkbot/commands/whoami.js +31 -0
  28. package/dist/src/platforms/channeltalkbot/commands/whoami.js.map +1 -0
  29. package/dist/src/platforms/discord/cli.d.ts.map +1 -1
  30. package/dist/src/platforms/discord/cli.js +2 -1
  31. package/dist/src/platforms/discord/cli.js.map +1 -1
  32. package/dist/src/platforms/discord/commands/index.d.ts +1 -0
  33. package/dist/src/platforms/discord/commands/index.d.ts.map +1 -1
  34. package/dist/src/platforms/discord/commands/index.js +1 -0
  35. package/dist/src/platforms/discord/commands/index.js.map +1 -1
  36. package/dist/src/platforms/discord/commands/whoami.d.ts +6 -0
  37. package/dist/src/platforms/discord/commands/whoami.d.ts.map +1 -0
  38. package/dist/src/platforms/discord/commands/whoami.js +33 -0
  39. package/dist/src/platforms/discord/commands/whoami.js.map +1 -0
  40. package/dist/src/platforms/discordbot/cli.d.ts.map +1 -1
  41. package/dist/src/platforms/discordbot/cli.js +2 -1
  42. package/dist/src/platforms/discordbot/cli.js.map +1 -1
  43. package/dist/src/platforms/discordbot/commands/index.d.ts +1 -0
  44. package/dist/src/platforms/discordbot/commands/index.d.ts.map +1 -1
  45. package/dist/src/platforms/discordbot/commands/index.js +1 -0
  46. package/dist/src/platforms/discordbot/commands/index.js.map +1 -1
  47. package/dist/src/platforms/discordbot/commands/whoami.d.ts +14 -0
  48. package/dist/src/platforms/discordbot/commands/whoami.d.ts.map +1 -0
  49. package/dist/src/platforms/discordbot/commands/whoami.js +32 -0
  50. package/dist/src/platforms/discordbot/commands/whoami.js.map +1 -0
  51. package/dist/src/platforms/instagram/cli.d.ts.map +1 -1
  52. package/dist/src/platforms/instagram/cli.js +2 -1
  53. package/dist/src/platforms/instagram/cli.js.map +1 -1
  54. package/dist/src/platforms/instagram/client.d.ts +6 -0
  55. package/dist/src/platforms/instagram/client.d.ts.map +1 -1
  56. package/dist/src/platforms/instagram/client.js +12 -0
  57. package/dist/src/platforms/instagram/client.js.map +1 -1
  58. package/dist/src/platforms/instagram/commands/index.d.ts +1 -0
  59. package/dist/src/platforms/instagram/commands/index.d.ts.map +1 -1
  60. package/dist/src/platforms/instagram/commands/index.js +1 -0
  61. package/dist/src/platforms/instagram/commands/index.js.map +1 -1
  62. package/dist/src/platforms/instagram/commands/whoami.d.ts +7 -0
  63. package/dist/src/platforms/instagram/commands/whoami.d.ts.map +1 -0
  64. package/dist/src/platforms/instagram/commands/whoami.js +19 -0
  65. package/dist/src/platforms/instagram/commands/whoami.js.map +1 -0
  66. package/dist/src/platforms/kakaotalk/cli.js +2 -2
  67. package/dist/src/platforms/kakaotalk/cli.js.map +1 -1
  68. package/dist/src/platforms/kakaotalk/client.d.ts +4 -1
  69. package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -1
  70. package/dist/src/platforms/kakaotalk/client.js +193 -27
  71. package/dist/src/platforms/kakaotalk/client.js.map +1 -1
  72. package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -1
  73. package/dist/src/platforms/kakaotalk/commands/auth.js +24 -55
  74. package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -1
  75. package/dist/src/platforms/kakaotalk/commands/index.d.ts +1 -1
  76. package/dist/src/platforms/kakaotalk/commands/index.d.ts.map +1 -1
  77. package/dist/src/platforms/kakaotalk/commands/index.js +1 -1
  78. package/dist/src/platforms/kakaotalk/commands/index.js.map +1 -1
  79. package/dist/src/platforms/kakaotalk/commands/whoami.d.ts +3 -0
  80. package/dist/src/platforms/kakaotalk/commands/whoami.d.ts.map +1 -0
  81. package/dist/src/platforms/kakaotalk/commands/{profile.js → whoami.js} +5 -5
  82. package/dist/src/platforms/kakaotalk/commands/whoami.js.map +1 -0
  83. package/dist/src/platforms/kakaotalk/credential-manager.d.ts.map +1 -1
  84. package/dist/src/platforms/kakaotalk/credential-manager.js +1 -0
  85. package/dist/src/platforms/kakaotalk/credential-manager.js.map +1 -1
  86. package/dist/src/platforms/kakaotalk/index.d.ts +1 -1
  87. package/dist/src/platforms/kakaotalk/index.d.ts.map +1 -1
  88. package/dist/src/platforms/kakaotalk/index.js.map +1 -1
  89. package/dist/src/platforms/kakaotalk/listener.js +2 -2
  90. package/dist/src/platforms/kakaotalk/listener.js.map +1 -1
  91. package/dist/src/platforms/kakaotalk/protocol/config.d.ts +8 -2
  92. package/dist/src/platforms/kakaotalk/protocol/config.d.ts.map +1 -1
  93. package/dist/src/platforms/kakaotalk/protocol/config.js +15 -2
  94. package/dist/src/platforms/kakaotalk/protocol/config.js.map +1 -1
  95. package/dist/src/platforms/kakaotalk/protocol/session.d.ts +6 -2
  96. package/dist/src/platforms/kakaotalk/protocol/session.d.ts.map +1 -1
  97. package/dist/src/platforms/kakaotalk/protocol/session.js +37 -15
  98. package/dist/src/platforms/kakaotalk/protocol/session.js.map +1 -1
  99. package/dist/src/platforms/kakaotalk/protocol/types.d.ts +17 -0
  100. package/dist/src/platforms/kakaotalk/protocol/types.d.ts.map +1 -1
  101. package/dist/src/platforms/kakaotalk/protocol/types.js.map +1 -1
  102. package/dist/src/platforms/kakaotalk/types.d.ts +22 -0
  103. package/dist/src/platforms/kakaotalk/types.d.ts.map +1 -1
  104. package/dist/src/platforms/kakaotalk/types.js +7 -0
  105. package/dist/src/platforms/kakaotalk/types.js.map +1 -1
  106. package/dist/src/platforms/line/cli.js +2 -2
  107. package/dist/src/platforms/line/cli.js.map +1 -1
  108. package/dist/src/platforms/line/commands/auth.d.ts.map +1 -1
  109. package/dist/src/platforms/line/commands/auth.js +9 -59
  110. package/dist/src/platforms/line/commands/auth.js.map +1 -1
  111. package/dist/src/platforms/line/commands/index.d.ts +1 -1
  112. package/dist/src/platforms/line/commands/index.d.ts.map +1 -1
  113. package/dist/src/platforms/line/commands/index.js +1 -1
  114. package/dist/src/platforms/line/commands/index.js.map +1 -1
  115. package/dist/src/platforms/line/commands/whoami.d.ts +3 -0
  116. package/dist/src/platforms/line/commands/whoami.d.ts.map +1 -0
  117. package/dist/src/platforms/line/commands/{profile.js → whoami.js} +5 -5
  118. package/dist/src/platforms/line/commands/whoami.js.map +1 -0
  119. package/dist/src/platforms/slack/cli.d.ts.map +1 -1
  120. package/dist/src/platforms/slack/cli.js +2 -1
  121. package/dist/src/platforms/slack/cli.js.map +1 -1
  122. package/dist/src/platforms/slack/commands/index.d.ts +1 -0
  123. package/dist/src/platforms/slack/commands/index.d.ts.map +1 -1
  124. package/dist/src/platforms/slack/commands/index.js +1 -0
  125. package/dist/src/platforms/slack/commands/index.js.map +1 -1
  126. package/dist/src/platforms/slack/commands/whoami.d.ts +6 -0
  127. package/dist/src/platforms/slack/commands/whoami.d.ts.map +1 -0
  128. package/dist/src/platforms/slack/commands/whoami.js +39 -0
  129. package/dist/src/platforms/slack/commands/whoami.js.map +1 -0
  130. package/dist/src/platforms/slackbot/cli.d.ts.map +1 -1
  131. package/dist/src/platforms/slackbot/cli.js +2 -1
  132. package/dist/src/platforms/slackbot/cli.js.map +1 -1
  133. package/dist/src/platforms/slackbot/commands/index.d.ts +1 -0
  134. package/dist/src/platforms/slackbot/commands/index.d.ts.map +1 -1
  135. package/dist/src/platforms/slackbot/commands/index.js +1 -0
  136. package/dist/src/platforms/slackbot/commands/index.js.map +1 -1
  137. package/dist/src/platforms/slackbot/commands/whoami.d.ts +14 -0
  138. package/dist/src/platforms/slackbot/commands/whoami.d.ts.map +1 -0
  139. package/dist/src/platforms/slackbot/commands/whoami.js +32 -0
  140. package/dist/src/platforms/slackbot/commands/whoami.js.map +1 -0
  141. package/dist/src/platforms/teams/cli.d.ts.map +1 -1
  142. package/dist/src/platforms/teams/cli.js +2 -1
  143. package/dist/src/platforms/teams/cli.js.map +1 -1
  144. package/dist/src/platforms/teams/commands/index.d.ts +1 -0
  145. package/dist/src/platforms/teams/commands/index.d.ts.map +1 -1
  146. package/dist/src/platforms/teams/commands/index.js +1 -0
  147. package/dist/src/platforms/teams/commands/index.js.map +1 -1
  148. package/dist/src/platforms/teams/commands/whoami.d.ts +6 -0
  149. package/dist/src/platforms/teams/commands/whoami.d.ts.map +1 -0
  150. package/dist/src/platforms/teams/commands/whoami.js +30 -0
  151. package/dist/src/platforms/teams/commands/whoami.js.map +1 -0
  152. package/dist/src/platforms/telegram/cli.d.ts.map +1 -1
  153. package/dist/src/platforms/telegram/cli.js +2 -1
  154. package/dist/src/platforms/telegram/cli.js.map +1 -1
  155. package/dist/src/platforms/telegram/commands/index.d.ts +1 -0
  156. package/dist/src/platforms/telegram/commands/index.d.ts.map +1 -1
  157. package/dist/src/platforms/telegram/commands/index.js +1 -0
  158. package/dist/src/platforms/telegram/commands/index.js.map +1 -1
  159. package/dist/src/platforms/telegram/commands/whoami.d.ts +7 -0
  160. package/dist/src/platforms/telegram/commands/whoami.d.ts.map +1 -0
  161. package/dist/src/platforms/telegram/commands/whoami.js +27 -0
  162. package/dist/src/platforms/telegram/commands/whoami.js.map +1 -0
  163. package/dist/src/platforms/webex/cli.d.ts.map +1 -1
  164. package/dist/src/platforms/webex/cli.js +2 -1
  165. package/dist/src/platforms/webex/cli.js.map +1 -1
  166. package/dist/src/platforms/webex/commands/index.d.ts +1 -0
  167. package/dist/src/platforms/webex/commands/index.d.ts.map +1 -1
  168. package/dist/src/platforms/webex/commands/index.js +1 -0
  169. package/dist/src/platforms/webex/commands/index.js.map +1 -1
  170. package/dist/src/platforms/webex/commands/message.js +1 -1
  171. package/dist/src/platforms/webex/commands/message.js.map +1 -1
  172. package/dist/src/platforms/webex/commands/whoami.d.ts +6 -0
  173. package/dist/src/platforms/webex/commands/whoami.d.ts.map +1 -0
  174. package/dist/src/platforms/webex/commands/whoami.js +30 -0
  175. package/dist/src/platforms/webex/commands/whoami.js.map +1 -0
  176. package/dist/src/platforms/wechatbot/cli.d.ts.map +1 -1
  177. package/dist/src/platforms/wechatbot/cli.js +2 -1
  178. package/dist/src/platforms/wechatbot/cli.js.map +1 -1
  179. package/dist/src/platforms/wechatbot/commands/index.d.ts +1 -0
  180. package/dist/src/platforms/wechatbot/commands/index.d.ts.map +1 -1
  181. package/dist/src/platforms/wechatbot/commands/index.js +1 -0
  182. package/dist/src/platforms/wechatbot/commands/index.js.map +1 -1
  183. package/dist/src/platforms/wechatbot/commands/whoami.d.ts +12 -0
  184. package/dist/src/platforms/wechatbot/commands/whoami.d.ts.map +1 -0
  185. package/dist/src/platforms/wechatbot/commands/whoami.js +33 -0
  186. package/dist/src/platforms/wechatbot/commands/whoami.js.map +1 -0
  187. package/dist/src/platforms/whatsapp/cli.d.ts.map +1 -1
  188. package/dist/src/platforms/whatsapp/cli.js +2 -1
  189. package/dist/src/platforms/whatsapp/cli.js.map +1 -1
  190. package/dist/src/platforms/whatsapp/client.d.ts +8 -0
  191. package/dist/src/platforms/whatsapp/client.d.ts.map +1 -1
  192. package/dist/src/platforms/whatsapp/client.js +116 -8
  193. package/dist/src/platforms/whatsapp/client.js.map +1 -1
  194. package/dist/src/platforms/whatsapp/commands/auth.d.ts.map +1 -1
  195. package/dist/src/platforms/whatsapp/commands/auth.js +115 -45
  196. package/dist/src/platforms/whatsapp/commands/auth.js.map +1 -1
  197. package/dist/src/platforms/whatsapp/commands/index.d.ts +1 -0
  198. package/dist/src/platforms/whatsapp/commands/index.d.ts.map +1 -1
  199. package/dist/src/platforms/whatsapp/commands/index.js +1 -0
  200. package/dist/src/platforms/whatsapp/commands/index.js.map +1 -1
  201. package/dist/src/platforms/whatsapp/commands/shared.js +2 -2
  202. package/dist/src/platforms/whatsapp/commands/shared.js.map +1 -1
  203. package/dist/src/platforms/whatsapp/commands/whoami.d.ts +7 -0
  204. package/dist/src/platforms/whatsapp/commands/whoami.d.ts.map +1 -0
  205. package/dist/src/platforms/whatsapp/commands/whoami.js +19 -0
  206. package/dist/src/platforms/whatsapp/commands/whoami.js.map +1 -0
  207. package/dist/src/platforms/whatsapp/ensure-auth.js +2 -2
  208. package/dist/src/platforms/whatsapp/ensure-auth.js.map +1 -1
  209. package/dist/src/platforms/whatsappbot/cli.d.ts.map +1 -1
  210. package/dist/src/platforms/whatsappbot/cli.js +2 -1
  211. package/dist/src/platforms/whatsappbot/cli.js.map +1 -1
  212. package/dist/src/platforms/whatsappbot/commands/index.d.ts +1 -0
  213. package/dist/src/platforms/whatsappbot/commands/index.d.ts.map +1 -1
  214. package/dist/src/platforms/whatsappbot/commands/index.js +1 -0
  215. package/dist/src/platforms/whatsappbot/commands/index.js.map +1 -1
  216. package/dist/src/platforms/whatsappbot/commands/whoami.d.ts +17 -0
  217. package/dist/src/platforms/whatsappbot/commands/whoami.d.ts.map +1 -0
  218. package/dist/src/platforms/whatsappbot/commands/whoami.js +39 -0
  219. package/dist/src/platforms/whatsappbot/commands/whoami.js.map +1 -0
  220. package/dist/src/shared/utils/qr.d.ts +15 -0
  221. package/dist/src/shared/utils/qr.d.ts.map +1 -0
  222. package/dist/src/shared/utils/qr.js +74 -0
  223. package/dist/src/shared/utils/qr.js.map +1 -0
  224. package/dist/src/tui/adapters/kakaotalk-adapter.d.ts.map +1 -1
  225. package/dist/src/tui/adapters/kakaotalk-adapter.js +5 -2
  226. package/dist/src/tui/adapters/kakaotalk-adapter.js.map +1 -1
  227. package/dist/src/tui/adapters/whatsapp-adapter.d.ts.map +1 -1
  228. package/dist/src/tui/adapters/whatsapp-adapter.js +20 -15
  229. package/dist/src/tui/adapters/whatsapp-adapter.js.map +1 -1
  230. package/docs/content/docs/cli/channeltalk.mdx +11 -0
  231. package/docs/content/docs/cli/channeltalkbot.mdx +9 -0
  232. package/docs/content/docs/cli/discord.mdx +10 -0
  233. package/docs/content/docs/cli/discordbot.mdx +9 -0
  234. package/docs/content/docs/cli/instagram.mdx +11 -0
  235. package/docs/content/docs/cli/kakaotalk.mdx +27 -39
  236. package/docs/content/docs/cli/line.mdx +4 -4
  237. package/docs/content/docs/cli/slack.mdx +10 -0
  238. package/docs/content/docs/cli/slackbot.mdx +9 -0
  239. package/docs/content/docs/cli/teams.mdx +10 -0
  240. package/docs/content/docs/cli/telegram.mdx +11 -0
  241. package/docs/content/docs/cli/webex.mdx +10 -0
  242. package/docs/content/docs/cli/wechatbot.mdx +9 -0
  243. package/docs/content/docs/cli/whatsapp.mdx +36 -7
  244. package/docs/content/docs/cli/whatsappbot.mdx +9 -0
  245. package/e2e/config.ts +1 -1
  246. package/package.json +3 -1
  247. package/skills/agent-channeltalk/SKILL.md +12 -1
  248. package/skills/agent-channeltalkbot/SKILL.md +10 -1
  249. package/skills/agent-discord/SKILL.md +11 -1
  250. package/skills/agent-discordbot/SKILL.md +10 -1
  251. package/skills/agent-instagram/SKILL.md +12 -1
  252. package/skills/agent-kakaotalk/SKILL.md +24 -70
  253. package/skills/agent-kakaotalk/references/authentication.md +4 -69
  254. package/skills/agent-kakaotalk/references/common-patterns.md +14 -1
  255. package/skills/agent-line/SKILL.md +5 -5
  256. package/skills/agent-slack/SKILL.md +11 -1
  257. package/skills/agent-slackbot/SKILL.md +10 -1
  258. package/skills/agent-teams/SKILL.md +11 -1
  259. package/skills/agent-telegram/SKILL.md +6 -1
  260. package/skills/agent-webex/SKILL.md +11 -1
  261. package/skills/agent-wechatbot/SKILL.md +10 -1
  262. package/skills/agent-whatsapp/SKILL.md +52 -15
  263. package/skills/agent-whatsapp/references/authentication.md +36 -6
  264. package/skills/agent-whatsappbot/SKILL.md +10 -1
  265. package/src/platforms/channeltalk/cli.ts +2 -0
  266. package/src/platforms/channeltalk/commands/index.ts +1 -0
  267. package/src/platforms/channeltalk/commands/whoami.test.ts +64 -0
  268. package/src/platforms/channeltalk/commands/whoami.ts +62 -0
  269. package/src/platforms/channeltalkbot/cli.ts +2 -0
  270. package/src/platforms/channeltalkbot/commands/index.ts +1 -0
  271. package/src/platforms/channeltalkbot/commands/whoami.test.ts +104 -0
  272. package/src/platforms/channeltalkbot/commands/whoami.ts +42 -0
  273. package/src/platforms/discord/cli.ts +2 -0
  274. package/src/platforms/discord/commands/index.ts +1 -0
  275. package/src/platforms/discord/commands/whoami.test.ts +91 -0
  276. package/src/platforms/discord/commands/whoami.ts +36 -0
  277. package/src/platforms/discordbot/cli.ts +2 -0
  278. package/src/platforms/discordbot/commands/index.ts +1 -0
  279. package/src/platforms/discordbot/commands/whoami.test.ts +96 -0
  280. package/src/platforms/discordbot/commands/whoami.ts +44 -0
  281. package/src/platforms/instagram/cli.ts +2 -1
  282. package/src/platforms/instagram/client.ts +13 -0
  283. package/src/platforms/instagram/commands/chat.test.ts +1 -5
  284. package/src/platforms/instagram/commands/index.ts +1 -0
  285. package/src/platforms/instagram/commands/message.test.ts +1 -5
  286. package/src/platforms/instagram/commands/whoami.test.ts +60 -0
  287. package/src/platforms/instagram/commands/whoami.ts +21 -0
  288. package/src/platforms/kakaotalk/cli.ts +2 -2
  289. package/src/platforms/kakaotalk/client.test.ts +25 -14
  290. package/src/platforms/kakaotalk/client.ts +228 -33
  291. package/src/platforms/kakaotalk/commands/auth.ts +22 -73
  292. package/src/platforms/kakaotalk/commands/index.ts +1 -1
  293. package/src/platforms/kakaotalk/commands/{profile.test.ts → whoami.test.ts} +37 -5
  294. package/src/platforms/kakaotalk/commands/{profile.ts → whoami.ts} +4 -4
  295. package/src/platforms/kakaotalk/credential-manager.ts +1 -0
  296. package/src/platforms/kakaotalk/index.ts +1 -0
  297. package/src/platforms/kakaotalk/listener.test.ts +2 -2
  298. package/src/platforms/kakaotalk/listener.ts +2 -2
  299. package/src/platforms/kakaotalk/protocol/config.ts +26 -2
  300. package/src/platforms/kakaotalk/protocol/session.ts +42 -16
  301. package/src/platforms/kakaotalk/protocol/types.ts +9 -0
  302. package/src/platforms/kakaotalk/types.ts +16 -0
  303. package/src/platforms/line/cli.ts +2 -2
  304. package/src/platforms/line/commands/auth.ts +37 -70
  305. package/src/platforms/line/commands/index.ts +1 -1
  306. package/src/platforms/line/commands/{profile.test.ts → whoami.test.ts} +11 -11
  307. package/src/platforms/line/commands/{profile.ts → whoami.ts} +4 -4
  308. package/src/platforms/slack/cli.ts +2 -0
  309. package/src/platforms/slack/commands/index.ts +1 -0
  310. package/src/platforms/slack/commands/whoami.test.ts +126 -0
  311. package/src/platforms/slack/commands/whoami.ts +40 -0
  312. package/src/platforms/slackbot/cli.ts +2 -1
  313. package/src/platforms/slackbot/commands/index.ts +1 -0
  314. package/src/platforms/slackbot/commands/whoami.test.ts +102 -0
  315. package/src/platforms/slackbot/commands/whoami.ts +44 -0
  316. package/src/platforms/teams/cli.ts +2 -0
  317. package/src/platforms/teams/commands/index.ts +1 -0
  318. package/src/platforms/teams/commands/whoami.test.ts +83 -0
  319. package/src/platforms/teams/commands/whoami.ts +33 -0
  320. package/src/platforms/telegram/cli.ts +2 -1
  321. package/src/platforms/telegram/commands/index.ts +1 -0
  322. package/src/platforms/telegram/commands/whoami.test.ts +75 -0
  323. package/src/platforms/telegram/commands/whoami.ts +29 -0
  324. package/src/platforms/webex/cli.ts +2 -1
  325. package/src/platforms/webex/commands/auth.test.ts +58 -46
  326. package/src/platforms/webex/commands/index.ts +1 -0
  327. package/src/platforms/webex/commands/member.test.ts +1 -5
  328. package/src/platforms/webex/commands/message.test.ts +1 -5
  329. package/src/platforms/webex/commands/message.ts +1 -1
  330. package/src/platforms/webex/commands/snapshot.test.ts +1 -5
  331. package/src/platforms/webex/commands/space.test.ts +1 -5
  332. package/src/platforms/webex/commands/whoami.test.ts +113 -0
  333. package/src/platforms/webex/commands/whoami.ts +31 -0
  334. package/src/platforms/webex/credential-manager.test.ts +0 -1
  335. package/src/platforms/wechatbot/cli.ts +2 -1
  336. package/src/platforms/wechatbot/commands/index.ts +1 -0
  337. package/src/platforms/wechatbot/commands/whoami.test.ts +109 -0
  338. package/src/platforms/wechatbot/commands/whoami.ts +43 -0
  339. package/src/platforms/whatsapp/cli.ts +2 -1
  340. package/src/platforms/whatsapp/client.ts +156 -24
  341. package/src/platforms/whatsapp/commands/auth.ts +176 -70
  342. package/src/platforms/whatsapp/commands/index.ts +1 -0
  343. package/src/platforms/whatsapp/commands/shared.ts +2 -2
  344. package/src/platforms/whatsapp/commands/whoami.test.ts +59 -0
  345. package/src/platforms/whatsapp/commands/whoami.ts +21 -0
  346. package/src/platforms/whatsapp/ensure-auth.ts +2 -2
  347. package/src/platforms/whatsappbot/cli.ts +2 -1
  348. package/src/platforms/whatsappbot/commands/index.ts +1 -0
  349. package/src/platforms/whatsappbot/commands/whoami.test.ts +100 -0
  350. package/src/platforms/whatsappbot/commands/whoami.ts +57 -0
  351. package/src/shared/utils/qr.ts +92 -0
  352. package/src/tui/adapters/kakaotalk-adapter.ts +5 -2
  353. package/src/tui/adapters/whatsapp-adapter.ts +19 -16
  354. package/dist/src/platforms/kakaotalk/commands/profile.d.ts +0 -3
  355. package/dist/src/platforms/kakaotalk/commands/profile.d.ts.map +0 -1
  356. package/dist/src/platforms/kakaotalk/commands/profile.js.map +0 -1
  357. package/dist/src/platforms/line/commands/profile.d.ts +0 -3
  358. package/dist/src/platforms/line/commands/profile.d.ts.map +0 -1
  359. package/dist/src/platforms/line/commands/profile.js.map +0 -1
@@ -9,14 +9,17 @@ description: Complete reference for the agent-whatsapp CLI.
9
9
 
10
10
  WhatsApp integration uses [Baileys](https://github.com/WhiskeySockets/Baileys), a reverse-engineered WhatsApp Web API:
11
11
 
12
- - Links as a **companion device** via pairing code, so your phone stays connected.
12
+ - Links as a **companion device** via QR code or pairing code, so your phone stays connected.
13
13
  - Each command opens a WebSocket connection on demand and disconnects when done. No persistent background process.
14
14
  - Multiple WhatsApp accounts can be linked simultaneously.
15
15
 
16
16
  ## Quick Start
17
17
 
18
18
  ```bash
19
- # Link as companion device (enter the pairing code on your phone)
19
+ # Link as companion device via QR code (scan with your phone)
20
+ agent-whatsapp auth login --qr
21
+
22
+ # Or link via pairing code (enter the code on your phone)
20
23
  agent-whatsapp auth login --phone +1234567890
21
24
 
22
25
  # List chats
@@ -28,16 +31,23 @@ agent-whatsapp message send +1234567890 "Hello from agent-whatsapp"
28
31
 
29
32
  ## Authentication
30
33
 
31
- ### Pairing Code Login
34
+ The CLI supports two authentication methods. Both register as a companion (linked) device, so your phone session is never affected.
32
35
 
33
- The CLI registers as a companion (linked) device using a numeric pairing code. Your phone session is never affected.
36
+ ### QR Code Login
37
+
38
+ ```bash
39
+ agent-whatsapp auth login --qr
40
+ ```
41
+
42
+ A QR code is displayed in the terminal and opened in the browser. Scan it with WhatsApp on your phone: Settings > Linked Devices > Link a Device.
43
+
44
+ ### Pairing Code Login
34
45
 
35
46
  ```bash
36
- # Start login (displays a pairing code)
37
47
  agent-whatsapp auth login --phone +1234567890
38
48
  ```
39
49
 
40
- The CLI outputs a pairing code. Enter it on your phone: WhatsApp > Settings > Linked Devices > Link a Device.
50
+ A numeric pairing code is displayed. Enter it on your phone: WhatsApp > Settings > Linked Devices > Link with phone number.
41
51
 
42
52
  ### Account Management
43
53
 
@@ -59,6 +69,17 @@ agent-whatsapp auth logout --account <id>
59
69
 
60
70
  ## Commands
61
71
 
72
+ ### Whoami Command
73
+
74
+ ```bash
75
+ # Show current authenticated user
76
+ agent-whatsapp whoami
77
+ agent-whatsapp whoami --pretty
78
+ agent-whatsapp whoami --account <account-id>
79
+ ```
80
+
81
+ Output includes the authenticated user's identity information.
82
+
62
83
  ### Chat Commands
63
84
 
64
85
  ```bash
@@ -135,6 +156,14 @@ npx -y --package agent-messenger agent-whatsapp chat list --pretty
135
156
 
136
157
  **NEVER run `npx agent-whatsapp`** without `--package agent-messenger`. It will fail or install a wrong package.
137
158
 
159
+ ### QR code not scanning
160
+
161
+ 1. Make sure WhatsApp is open on your phone
162
+ 2. Go to Settings > Linked Devices > Link a Device
163
+ 3. Point your phone camera at the QR code in the terminal or browser
164
+ 4. If the QR code expires, run `auth login --qr` again for a fresh code
165
+ 5. If QR scanning fails, try pairing code: `auth login --phone <number>`
166
+
138
167
  ### Pairing code not working
139
168
 
140
169
  1. Make sure WhatsApp is open on your phone
@@ -152,7 +181,7 @@ WhatsApp may disconnect linked devices that are inactive for extended periods. I
152
181
  agent-whatsapp auth status
153
182
 
154
183
  # Re-link if needed
155
- agent-whatsapp auth login --phone +1234567890
184
+ agent-whatsapp auth login --qr
156
185
  ```
157
186
 
158
187
  ## AI Agent Integration
@@ -74,6 +74,15 @@ agent-whatsappbot auth remove <account-id>
74
74
 
75
75
  ## Commands
76
76
 
77
+ ### Whoami Command
78
+
79
+ ```bash
80
+ # Show current authenticated bot
81
+ agent-whatsappbot whoami
82
+ agent-whatsappbot whoami --pretty
83
+ agent-whatsappbot whoami --account <account-id>
84
+ ```
85
+
77
86
  ### Message Commands
78
87
 
79
88
  ```bash
package/e2e/config.ts CHANGED
@@ -344,7 +344,7 @@ export async function validateKakaoTalkEnvironment(): Promise<boolean> {
344
344
 
345
345
  const result = await runCLI('kakaotalk', ['auth', 'status'])
346
346
  if (result.exitCode !== 0) {
347
- throw new Error('KakaoTalk authentication failed. Run: agent-kakaotalk auth login or agent-kakaotalk auth extract')
347
+ throw new Error('KakaoTalk authentication failed. Run: agent-kakaotalk auth login')
348
348
  }
349
349
 
350
350
  return true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-messenger",
3
- "version": "2.4.0",
3
+ "version": "2.6.0",
4
4
  "description": "Multi-platform messaging CLI for AI agents (Slack, Discord, Teams, Webex, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, Channel Talk)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -138,6 +138,8 @@
138
138
  },
139
139
  "dependencies": {
140
140
  "@evex/linejs": "https://npm.jsr.io/~/11/@jsr/evex__linejs/2.3.7.tgz",
141
+ "@jsr/evex__linejs-types": "https://npm.jsr.io/~/11/@jsr/evex__linejs-types/2.3.7.tgz",
142
+ "@jsr/evex__loose-types": "https://npm.jsr.io/~/11/@jsr/evex__loose-types/1.0.1.tgz",
141
143
  "@hapi/boom": "^10.0.1",
142
144
  "@slack/web-api": "^6.9.0",
143
145
  "@whiskeysockets/baileys": "^7.0.0-rc.9",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-channeltalk
3
3
  description: Interact with Channel Talk using extracted desktop app or browser credentials - read chats, send messages, search messages, manage groups
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-channeltalk:*)
6
6
  metadata:
7
7
  openclaw:
@@ -186,6 +186,17 @@ agent-channeltalk auth use <workspace-id>
186
186
  agent-channeltalk auth remove <workspace-id>
187
187
  ```
188
188
 
189
+ ### Whoami Command
190
+
191
+ ```bash
192
+ # Show current authenticated user
193
+ agent-channeltalk whoami
194
+ agent-channeltalk whoami --pretty
195
+ agent-channeltalk whoami --workspace <workspace-id>
196
+ ```
197
+
198
+ Output includes the authenticated user's identity information.
199
+
189
200
  ### Message Commands
190
201
 
191
202
  ```bash
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-channeltalkbot
3
3
  description: Interact with Channel Talk workspaces using API credentials - send messages, read chats, manage groups and bots
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-channeltalkbot:*)
6
6
  metadata:
7
7
  openclaw:
@@ -184,6 +184,15 @@ agent-channeltalkbot auth remove <workspace-id>
184
184
  agent-channeltalkbot auth bot <name>
185
185
  ```
186
186
 
187
+ ### Whoami Command
188
+
189
+ ```bash
190
+ # Show current authenticated bot
191
+ agent-channeltalkbot whoami
192
+ agent-channeltalkbot whoami --pretty
193
+ agent-channeltalkbot whoami --workspace <workspace-id>
194
+ ```
195
+
187
196
  ### Message Commands
188
197
 
189
198
  ```bash
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-discord
3
3
  description: Interact with Discord servers - send messages, read channels, manage reactions
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-discord:*)
6
6
  metadata:
7
7
  openclaw:
@@ -145,6 +145,16 @@ agent-discord auth status
145
145
  agent-discord auth logout
146
146
  ```
147
147
 
148
+ ### Whoami Command
149
+
150
+ ```bash
151
+ # Show current authenticated user
152
+ agent-discord whoami
153
+ agent-discord whoami --pretty
154
+ ```
155
+
156
+ Output includes the authenticated user's identity information.
157
+
148
158
  ### Message Commands
149
159
 
150
160
  ```bash
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-discordbot
3
3
  description: Interact with Discord servers using bot tokens - send messages, read channels, manage reactions
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-discordbot:*)
6
6
  metadata:
7
7
  openclaw:
@@ -158,6 +158,15 @@ agent-discordbot auth use <bot-id>
158
158
  agent-discordbot auth remove <bot-id>
159
159
  ```
160
160
 
161
+ ### Whoami Command
162
+
163
+ ```bash
164
+ # Show current authenticated bot
165
+ agent-discordbot whoami
166
+ agent-discordbot whoami --pretty
167
+ agent-discordbot whoami --bot <bot-id>
168
+ ```
169
+
161
170
  ### Server Commands
162
171
 
163
172
  ```bash
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-instagram
3
3
  description: Interact with Instagram DMs - send messages, read conversations, manage accounts
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-instagram:*)
6
6
  metadata:
7
7
  openclaw:
@@ -242,6 +242,17 @@ agent-instagram auth logout
242
242
  agent-instagram auth logout --account <id>
243
243
  ```
244
244
 
245
+ ### Whoami Command
246
+
247
+ ```bash
248
+ # Show current authenticated user
249
+ agent-instagram whoami
250
+ agent-instagram whoami --pretty
251
+ agent-instagram whoami --account <account-id>
252
+ ```
253
+
254
+ Output includes the authenticated user's identity information.
255
+
245
256
  ### Chat Commands
246
257
 
247
258
  ```bash
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-kakaotalk
3
3
  description: Interact with KakaoTalk - send messages, read chats, manage conversations
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-kakaotalk:*)
6
6
  metadata:
7
7
  openclaw:
@@ -16,7 +16,7 @@ metadata:
16
16
 
17
17
  # Agent KakaoTalk
18
18
 
19
- A TypeScript CLI tool that enables AI agents and humans to interact with KakaoTalk through a simple command interface. Features credential extraction from the KakaoTalk desktop app and sub-device login that keeps your desktop app running.
19
+ A TypeScript CLI tool that enables AI agents and humans to interact with KakaoTalk through a simple command interface. Features sub-device login that keeps your desktop app running.
20
20
 
21
21
  ## Key Concepts
22
22
 
@@ -32,12 +32,9 @@ Before diving in, a few things about KakaoTalk's architecture:
32
32
  ## Quick Start
33
33
 
34
34
  ```bash
35
- # Login (recommended — registers as sub-device, desktop app stays running)
35
+ # Login (registers as sub-device, desktop app stays running)
36
36
  agent-kakaotalk auth login
37
37
 
38
- # Or extract credentials from desktop app (kicks desktop session)
39
- agent-kakaotalk auth extract
40
-
41
38
  # List chat rooms
42
39
  agent-kakaotalk chat list
43
40
 
@@ -47,16 +44,12 @@ agent-kakaotalk message send <chat-id> "Hello from AI agent!"
47
44
  # List messages in a chat
48
45
  agent-kakaotalk message list <chat-id>
49
46
 
50
- # Show your profile
51
- agent-kakaotalk profile
47
+ # Show your identity
48
+ agent-kakaotalk whoami
52
49
  ```
53
50
 
54
51
  ## Authentication
55
52
 
56
- KakaoTalk offers two authentication methods:
57
-
58
- ### Method 1: Login (Recommended)
59
-
60
53
  Registers the CLI as a sub-device (tablet slot by default). Your desktop app keeps running.
61
54
 
62
55
  ```bash
@@ -77,18 +70,7 @@ agent-kakaotalk auth login --email user@example.com --password mypass
77
70
  3. The CLI polls until you confirm on your phone
78
71
  4. Login completes automatically after confirmation
79
72
 
80
- **IMPORTANT**: NEVER guide the user to open a web browser, use DevTools, or manually copy tokens. Always use `agent-kakaotalk auth login` or `agent-kakaotalk auth extract`.
81
-
82
- ### Method 2: Extract from Desktop App
83
-
84
- Extracts OAuth tokens directly from the KakaoTalk desktop app's cache. This **kicks the desktop session** because it reuses the desktop's credentials.
85
-
86
- ```bash
87
- agent-kakaotalk auth extract
88
- agent-kakaotalk auth extract --debug
89
- ```
90
-
91
- On macOS, reads from `~/Library/Containers/com.kakao.KakaoTalkMac/Data/Library/Caches/Cache.db`. On Windows, reads from the registry and `%LocalAppData%\Kakao\login_list.dat`.
73
+ **IMPORTANT**: NEVER guide the user to open a web browser, use DevTools, or manually copy tokens. Always use `agent-kakaotalk auth login`.
92
74
 
93
75
  ### Agent Behavior (MANDATORY)
94
76
 
@@ -102,21 +84,13 @@ agent-kakaotalk auth status
102
84
 
103
85
  If authenticated → retry the original command.
104
86
 
105
- **Step 2: Try credential extraction first**
106
-
107
- ```bash
108
- agent-kakaotalk auth extract
109
- ```
110
-
111
- If extraction succeeds → retry the original command. Extraction is silent and requires no user input.
112
-
113
- **Step 3: If extraction fails, use login flow**
87
+ **Step 2: Login (registers as sub-device — desktop app stays running)**
114
88
 
115
89
  ```bash
116
90
  agent-kakaotalk auth login
117
91
  ```
118
92
 
119
- The CLI will auto-extract the email from the desktop app. On fresh installs, the CLI may prompt for the KakaoTalk password once (one-time device registration). After registration, the password is never needed again.
93
+ The CLI auto-extracts the email (and password if available) from the desktop app. On fresh installs, the CLI may prompt for the KakaoTalk password once (one-time device registration). After registration, the password is never needed again.
120
94
 
121
95
  Possible responses:
122
96
 
@@ -134,7 +108,7 @@ agent-kakaotalk auth login --password-file /tmp/.kakao-pw
134
108
 
135
109
  The `--password-file` flag reads the password from the file and **deletes the file immediately after reading**. The password never appears in chat, shell history, or process list.
136
110
 
137
- **Step 4: Retry the original command**
111
+ **Step 3: Retry the original command**
138
112
  After successful auth, immediately execute whatever the user originally asked for.
139
113
 
140
114
  ### Device Slots
@@ -157,7 +131,7 @@ agent-kakaotalk auth login --device-type tablet --force
157
131
 
158
132
  ## Multi-Account
159
133
 
160
- KakaoTalk supports multiple accounts. Each login or extraction stores credentials separately, keyed by user ID.
134
+ KakaoTalk supports multiple accounts. Each login stores credentials separately, keyed by user ID.
161
135
 
162
136
  ### Listing Accounts
163
137
 
@@ -262,11 +236,6 @@ agent-kakaotalk auth login --email <email> --password <password>
262
236
  agent-kakaotalk auth login --device-type pc --force
263
237
  agent-kakaotalk auth login --debug
264
238
 
265
- # Extract credentials from KakaoTalk desktop app
266
- agent-kakaotalk auth extract
267
- agent-kakaotalk auth extract --debug
268
- agent-kakaotalk auth extract --unsafely-show-secrets
269
-
270
239
  # Check auth status
271
240
  agent-kakaotalk auth status
272
241
 
@@ -288,13 +257,13 @@ agent-kakaotalk auth status --account <account-id>
288
257
  agent-kakaotalk auth logout --account <account-id>
289
258
  ```
290
259
 
291
- ### Profile Command
260
+ ### Whoami Command
292
261
 
293
262
  ```bash
294
- # Show your KakaoTalk profile
295
- agent-kakaotalk profile
296
- agent-kakaotalk profile --pretty
297
- agent-kakaotalk profile --account <account-id>
263
+ # Show current authenticated user
264
+ agent-kakaotalk whoami
265
+ agent-kakaotalk whoami --pretty
266
+ agent-kakaotalk whoami --account <account-id>
298
267
  ```
299
268
 
300
269
  Output includes:
@@ -304,6 +273,12 @@ Output includes:
304
273
  - `original_profile_image_url` — original profile image URL
305
274
  - `status_message` — your status message
306
275
  - `account_display_id` — your KakaoTalk ID (may be null if not set)
276
+ - `background_image_url` — background image URL
277
+ - `original_background_image_url` — original background image URL
278
+ - `fullname` — real name (may be null)
279
+ - `account_email` — account email (may be null)
280
+ - `pstn_number` — phone number (may be null)
281
+ - `email_verified` — whether email is verified (may be null)
307
282
 
308
283
  ### Chat Commands
309
284
 
@@ -428,7 +403,7 @@ All commands return consistent error format:
428
403
 
429
404
  Common errors:
430
405
 
431
- - `No KakaoTalk credentials found` — not authenticated. Run `auth login` or `auth extract`.
406
+ - `No KakaoTalk credentials found` — not authenticated. Run `auth login`.
432
407
  - `bad_credentials` — wrong email or password. Cached credentials from the desktop app may be stale. Ask the user to provide credentials manually with `--email` and `--password`.
433
408
  - `login_failed` — device slot conflict or unknown login error. Run with `--debug` for the full server response.
434
409
  - `passcode_request_failed` — failed to request device verification code.
@@ -513,7 +488,7 @@ See the [KakaoTalk SDK documentation](https://agent-messenger.dev/docs/sdk/kakao
513
488
 
514
489
  ## Limitations
515
490
 
516
- - macOS and Windows only (desktop app required for credential extraction)
491
+ - macOS and Windows only (desktop app needed for auto-extracting email/password during login)
517
492
  - No Linux support (KakaoTalk desktop not available on Linux)
518
493
  - No file upload or download
519
494
  - No channel/chat room creation or management
@@ -549,17 +524,9 @@ pnpm dlx --package agent-messenger agent-kakaotalk chat list --pretty
549
524
 
550
525
  **NEVER run `npx agent-kakaotalk`, `bunx agent-kakaotalk`, or `pnpm dlx agent-kakaotalk`** without `--package agent-messenger`. It will fail or install a wrong package since `agent-kakaotalk` is not the npm package name.
551
526
 
552
- ### No credentials found
553
-
554
- If `auth extract` fails:
555
-
556
- 1. Make sure the KakaoTalk desktop app is installed and you're logged in
557
- 2. Run `agent-kakaotalk auth extract --debug` for detailed diagnostics
558
- 3. If extraction still fails, use `agent-kakaotalk auth login` instead (recommended)
559
-
560
527
  ### Password prompt on fresh install
561
528
 
562
- On fresh installs, the macOS desktop app hashes the password before caching, so the CLI cannot extract it automatically. The CLI will prompt for the password once to register the device. After registration, the password is never needed again.
529
+ On fresh installs, the desktop app (macOS or Windows) may hash or omit the password from its cache, so the CLI cannot extract it automatically. The CLI will prompt for the password once to register the device — via a native dialog on macOS (AppKit) and Windows (PowerShell WinForms), or via a TTY prompt if a terminal is available. After registration, the password is never needed again.
563
530
 
564
531
  When the CLI returns `{"next_action": "run_interactive", ...}`, use a tmux session to let the user type their password securely. See "Handling `run_interactive`" above for the exact steps.
565
532
 
@@ -591,19 +558,6 @@ If the passcode expires before you confirm on your phone:
591
558
  2. Confirm the code on your phone within the time limit
592
559
  3. The CLI automatically completes login after confirmation
593
560
 
594
- ### Cache.db not found (macOS)
595
-
596
- The CLI looks for KakaoTalk's cache at:
597
-
598
- ```
599
- ~/Library/Containers/com.kakao.KakaoTalkMac/Data/Library/Caches/Cache.db
600
- ```
601
-
602
- If this file doesn't exist:
603
- 1. Install KakaoTalk from the Mac App Store
604
- 2. Log in and send at least one message (to populate the cache)
605
- 3. Run `agent-kakaotalk auth extract` again
606
-
607
561
  ## References
608
562
 
609
563
  - [Authentication Guide](references/authentication.md)
@@ -2,12 +2,9 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- agent-kakaotalk supports two authentication methods:
5
+ agent-kakaotalk authenticates by registering the CLI as a sub-device (tablet or PC slot) using KakaoTalk's Android sub-device API. Your desktop app and phone keep running.
6
6
 
7
- 1. **Login** (recommended) — registers the CLI as a sub-device (tablet or PC slot). Your desktop app and phone keep running.
8
- 2. **Extract** — reads OAuth tokens from the KakaoTalk desktop app's local cache. This reuses the desktop's credentials, which kicks the desktop session.
9
-
10
- ## Method 1: Login Flow
7
+ ## Login Flow
11
8
 
12
9
  ### How It Works
13
10
 
@@ -107,65 +104,6 @@ Each device is identified by a UUID. The CLI generates one on first login and re
107
104
 
108
105
  The UUID is stored in the credentials file alongside the OAuth token.
109
106
 
110
- ## Method 2: Extract from Desktop App
111
-
112
- ### How It Works
113
-
114
- The KakaoTalk desktop app (macOS) caches HTTP requests in a SQLite database (`Cache.db`). These cached requests contain:
115
-
116
- - `Authorization` header with the OAuth token
117
- - Login form body with email, password, and device UUID
118
- - Refresh token from token renewal requests
119
-
120
- The CLI reads this cache and stores the extracted credentials.
121
-
122
- ### macOS
123
-
124
- ```bash
125
- agent-kakaotalk auth extract
126
- ```
127
-
128
- Cache location:
129
- ```
130
- ~/Library/Containers/com.kakao.KakaoTalkMac/Data/Library/Caches/Cache.db
131
- ```
132
-
133
- The CLI:
134
- 1. Copies `Cache.db` (and WAL/SHM journals) to a temp directory
135
- 2. Queries for requests to `talk-pilsner.kakao.com` (messaging API)
136
- 3. Parses binary plist blobs for the OAuth token
137
- 4. Extracts device UUID and refresh token from `login.json` / `renew_token.json` cached requests
138
- 5. Stores extracted credentials
139
-
140
- ### Windows
141
-
142
- ```bash
143
- agent-kakaotalk auth extract
144
- ```
145
-
146
- The CLI reads from:
147
- - Registry: `HKCU\Software\Kakao\KakaoTalk\DeviceInfo` (device UUID)
148
- - File: `%LocalAppData%\Kakao\login_list.dat` (login credentials)
149
-
150
- ### Troubleshooting Extraction
151
-
152
- Use `--debug` for detailed logs:
153
-
154
- ```bash
155
- agent-kakaotalk auth extract --debug
156
- ```
157
-
158
- This shows:
159
- - Which cache path was found
160
- - How many cached requests were discovered
161
- - Which tokens were successfully extracted
162
-
163
- Use `--unsafely-show-secrets` to see full token values (debug mode only):
164
-
165
- ```bash
166
- agent-kakaotalk auth extract --unsafely-show-secrets
167
- ```
168
-
169
107
  ## Credential Storage
170
108
 
171
109
  ### Location
@@ -237,13 +175,13 @@ Output when not authenticated:
237
175
 
238
176
  ```json
239
177
  {
240
- "error": "No account configured. Run \"auth login\" or \"auth extract\" first."
178
+ "error": "No account configured. Run \"auth login\" first."
241
179
  }
242
180
  ```
243
181
 
244
182
  ## Multi-Account
245
183
 
246
- KakaoTalk supports multiple accounts. Each login or extraction stores credentials separately, keyed by user ID.
184
+ KakaoTalk supports multiple accounts. Each login stores credentials separately, keyed by user ID.
247
185
 
248
186
  ### Listing Accounts
249
187
 
@@ -316,9 +254,6 @@ If commands start failing with auth errors:
316
254
  # Try login again (reuses saved device UUID to skip passcode)
317
255
  agent-kakaotalk auth login
318
256
 
319
- # Or re-extract from desktop app
320
- agent-kakaotalk auth extract
321
-
322
257
  # Verify it worked
323
258
  agent-kakaotalk auth status
324
259
  ```
@@ -144,7 +144,7 @@ NEW_MESSAGES=$(agent-kakaotalk message list "$CHAT_ID" --from "$LAST_SEEN")
144
144
 
145
145
  **When to use**: Reading long chat histories, catching up on new messages since last check.
146
146
 
147
- **Pagination details**: The sync loop uses the chat's latest `logId` (from `loginResult.chatDatas`) as an upper bound so it only fetches messages up to the current point, avoiding unbounded history scans. As a safety net, pagination is capped at 50 pages (50 × 80 = ~4,000 raw messages). If the cap is hit, a warning is printed to stderr and the returned messages may be incomplete.
147
+ **Pagination details**: The CLI now prefers KakaoTalk's `MCHATLOGS` flow for history reads, fetching message batches from the requested `--from` point and returning the last N messages after deduplication and ascending sort. If that path cannot provide results, it falls back to `CHATONROOM` + `SYNCMSG` for compatibility. As a safety net, both paths are capped at 50 internal pages. A warning is printed to stderr only when that cap is actually hit and the returned history may be incomplete.
148
148
 
149
149
  ## Pattern 6: Multi-Chat Broadcast
150
150
 
@@ -391,6 +391,19 @@ try {
391
391
  }
392
392
  ```
393
393
 
394
+ When passing credentials manually, include `deviceType` to control which session slot the LOCO connection uses:
395
+
396
+ ```typescript
397
+ const client = await new KakaoTalkClient().login({
398
+ oauthToken: 'token',
399
+ userId: '1234567890',
400
+ deviceUuid: 'uuid',
401
+ deviceType: 'tablet', // 'tablet' (default, safe) or 'pc' (kicks desktop app)
402
+ })
403
+ ```
404
+
405
+ The `deviceType` determines the LOCO protocol identity: `'tablet'` sends `os: 'android'` (tablet sub-device slot), while `'pc'` sends `os: 'mac'` on macOS or `os: 'win'` on Windows (PC slot, conflicts with the desktop app). When using auto-login (`.login()` with no arguments), `deviceType` is read from stored credentials automatically.
406
+
394
407
  ### Auto-Reconnect
395
408
 
396
409
  `getChats`, `getMessages`, and `sendMessage` automatically reconnect once when the LOCO session dies (e.g. the KakaoTalk desktop app reclaims the session or the network drops). The reconnect is transparent — callers don't need to handle session-drop errors.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-line
3
3
  description: Interact with LINE - send messages, read chats, manage conversations
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-line:*)
6
6
  metadata:
7
7
  openclaw:
@@ -237,12 +237,12 @@ agent-line auth logout <account-id>
237
237
  agent-line auth logout --pretty
238
238
  ```
239
239
 
240
- ### Profile Command
240
+ ### Whoami Command
241
241
 
242
242
  ```bash
243
- # Show your LINE profile
244
- agent-line profile
245
- agent-line profile --pretty
243
+ # Show current authenticated user
244
+ agent-line whoami
245
+ agent-line whoami --pretty
246
246
  ```
247
247
 
248
248
  Output includes:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-slack
3
3
  description: Interact with Slack workspaces - send messages, read channels, manage reactions
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  allowed-tools: Bash(agent-slack:*)
6
6
  metadata:
7
7
  openclaw:
@@ -149,6 +149,16 @@ agent-slack auth logout
149
149
  agent-slack auth logout <workspace-id>
150
150
  ```
151
151
 
152
+ ### Whoami Command
153
+
154
+ ```bash
155
+ # Show current authenticated user
156
+ agent-slack whoami
157
+ agent-slack whoami --pretty
158
+ ```
159
+
160
+ Output includes the authenticated user's identity information.
161
+
152
162
  ### Message Commands
153
163
 
154
164
  ```bash