agent-messenger 2.19.4 → 2.20.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 (88) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +5 -0
  3. package/dist/package.json +1 -1
  4. package/dist/src/platforms/line/client.d.ts +10 -1
  5. package/dist/src/platforms/line/client.d.ts.map +1 -1
  6. package/dist/src/platforms/line/client.js +156 -11
  7. package/dist/src/platforms/line/client.js.map +1 -1
  8. package/dist/src/platforms/line/e2ee-storage.d.ts +16 -0
  9. package/dist/src/platforms/line/e2ee-storage.d.ts.map +1 -0
  10. package/dist/src/platforms/line/e2ee-storage.js +93 -0
  11. package/dist/src/platforms/line/e2ee-storage.js.map +1 -0
  12. package/dist/src/platforms/line/index.d.ts +1 -1
  13. package/dist/src/platforms/line/index.d.ts.map +1 -1
  14. package/dist/src/platforms/line/index.js.map +1 -1
  15. package/dist/src/platforms/line/listener.d.ts.map +1 -1
  16. package/dist/src/platforms/line/listener.js +3 -2
  17. package/dist/src/platforms/line/listener.js.map +1 -1
  18. package/dist/src/platforms/line/types.d.ts +13 -0
  19. package/dist/src/platforms/line/types.d.ts.map +1 -1
  20. package/dist/src/platforms/line/types.js +6 -0
  21. package/dist/src/platforms/line/types.js.map +1 -1
  22. package/dist/src/platforms/teams/cli.d.ts.map +1 -1
  23. package/dist/src/platforms/teams/cli.js +2 -1
  24. package/dist/src/platforms/teams/cli.js.map +1 -1
  25. package/dist/src/platforms/teams/client.d.ts +4 -1
  26. package/dist/src/platforms/teams/client.d.ts.map +1 -1
  27. package/dist/src/platforms/teams/client.js +84 -0
  28. package/dist/src/platforms/teams/client.js.map +1 -1
  29. package/dist/src/platforms/teams/commands/chat.d.ts +13 -0
  30. package/dist/src/platforms/teams/commands/chat.d.ts.map +1 -0
  31. package/dist/src/platforms/teams/commands/chat.js +111 -0
  32. package/dist/src/platforms/teams/commands/chat.js.map +1 -0
  33. package/dist/src/platforms/teams/commands/index.d.ts +1 -0
  34. package/dist/src/platforms/teams/commands/index.d.ts.map +1 -1
  35. package/dist/src/platforms/teams/commands/index.js +1 -0
  36. package/dist/src/platforms/teams/commands/index.js.map +1 -1
  37. package/dist/src/platforms/teams/types.d.ts +24 -0
  38. package/dist/src/platforms/teams/types.d.ts.map +1 -1
  39. package/dist/src/platforms/teams/types.js +8 -0
  40. package/dist/src/platforms/teams/types.js.map +1 -1
  41. package/dist/src/tui/adapters/line-adapter.js +1 -1
  42. package/dist/src/tui/adapters/line-adapter.js.map +1 -1
  43. package/dist/src/vendor/linejs/_dist/client/login.d.ts +2 -1
  44. package/dist/src/vendor/linejs/client/login.js +3 -2
  45. package/dist/src/vendor/linejs/client/login.test.ts +11 -0
  46. package/docs/content/docs/cli/line.mdx +13 -11
  47. package/package.json +1 -1
  48. package/skills/agent-channeltalk/SKILL.md +1 -1
  49. package/skills/agent-channeltalkbot/SKILL.md +1 -1
  50. package/skills/agent-discord/SKILL.md +1 -1
  51. package/skills/agent-discordbot/SKILL.md +1 -1
  52. package/skills/agent-instagram/SKILL.md +1 -1
  53. package/skills/agent-kakaotalk/SKILL.md +1 -1
  54. package/skills/agent-line/SKILL.md +7 -5
  55. package/skills/agent-line/references/common-patterns.md +12 -3
  56. package/skills/agent-slack/SKILL.md +1 -1
  57. package/skills/agent-slackbot/SKILL.md +1 -1
  58. package/skills/agent-teams/SKILL.md +20 -2
  59. package/skills/agent-teams/references/common-patterns.md +28 -0
  60. package/skills/agent-telegram/SKILL.md +1 -1
  61. package/skills/agent-telegrambot/SKILL.md +1 -1
  62. package/skills/agent-webex/SKILL.md +1 -1
  63. package/skills/agent-wechatbot/SKILL.md +1 -1
  64. package/skills/agent-whatsapp/SKILL.md +1 -1
  65. package/skills/agent-whatsappbot/SKILL.md +1 -1
  66. package/src/platforms/line/client.test.ts +190 -2
  67. package/src/platforms/line/client.ts +183 -13
  68. package/src/platforms/line/e2ee-storage.test.ts +154 -0
  69. package/src/platforms/line/e2ee-storage.ts +119 -0
  70. package/src/platforms/line/index.test.ts +10 -0
  71. package/src/platforms/line/index.ts +1 -0
  72. package/src/platforms/line/listener.test.ts +32 -0
  73. package/src/platforms/line/listener.ts +5 -4
  74. package/src/platforms/line/types.test.ts +17 -0
  75. package/src/platforms/line/types.ts +13 -0
  76. package/src/platforms/slack/commands/auth.test.ts +16 -6
  77. package/src/platforms/slack/token-extractor.test.ts +34 -7
  78. package/src/platforms/teams/cli.ts +2 -0
  79. package/src/platforms/teams/client.test.ts +96 -0
  80. package/src/platforms/teams/client.ts +133 -0
  81. package/src/platforms/teams/commands/chat.test.ts +100 -0
  82. package/src/platforms/teams/commands/chat.ts +131 -0
  83. package/src/platforms/teams/commands/index.ts +1 -0
  84. package/src/platforms/teams/types.ts +20 -0
  85. package/src/tui/adapters/line-adapter.ts +1 -1
  86. package/src/vendor/linejs/_dist/client/login.d.ts +2 -1
  87. package/src/vendor/linejs/client/login.js +3 -2
  88. package/src/vendor/linejs/client/login.test.ts +11 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-messenger",
3
- "version": "2.19.4",
3
+ "version": "2.20.0",
4
4
  "description": "Messaging platform interaction skills for AI agents. Interact with Slack, Discord, Microsoft Teams, Webex, Telegram, Telegram Bot, WhatsApp, LINE, Instagram, KakaoTalk, and Channel Talk - send messages, read channels, manage reactions, upload files, and more through simple CLI interfaces.",
5
5
  "author": {
6
6
  "name": "agent-messenger",
package/README.md CHANGED
@@ -33,6 +33,7 @@ One CLI for Slack, Discord, Teams, Webex, Telegram, WhatsApp, LINE, Instagram, K
33
33
  - [...and More](#and-more)
34
34
  - [Philosophy](#philosophy)
35
35
  - [Contributing](#contributing)
36
+ - [Star History](#star-history)
36
37
  - [Thanks](#thanks)
37
38
  - [License](#license)
38
39
 
@@ -471,6 +472,10 @@ bun format # Format
471
472
  bun run build # Build
472
473
  ```
473
474
 
475
+ ## Star History
476
+
477
+ [![Star History Chart](https://api.star-history.com/svg?repos=agent-messenger/agent-messenger&type=Date&legend=top-left)](https://www.star-history.com/?repos=agent-messenger%2Fagent-messenger&type=date&legend=top-left)
478
+
474
479
  ## Thanks
475
480
 
476
481
  - [@goden-park](https://github.com/goden-park)
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-messenger",
3
- "version": "2.19.4",
3
+ "version": "2.20.0",
4
4
  "description": "Multi-platform messaging CLI for AI agents (Slack, Discord, Teams, Webex, Telegram, Telegram Bot, WhatsApp, LINE, Instagram, KakaoTalk, Channel Talk)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,14 +1,18 @@
1
1
  import type { Operation as LineOperation } from '@jsr/evex__linejs-types';
2
2
  import { LineCredentialManager } from './credential-manager.js';
3
- import type { LineAccountCredentials, LineChat, LineDevice, LineFriend, LineLoginResult, LineMessage, LineProfile, LineSendResult } from './types.js';
3
+ import type { LineAccountCredentials, LineChat, LineDevice, LineDecryptionError, LineFriend, LineLoginResult, LineMessage, LineProfile, LineSendResult } from './types.js';
4
4
  export interface LineRawMessage {
5
5
  raw: {
6
6
  id: unknown;
7
7
  contentType?: unknown;
8
+ contentMetadata?: unknown;
8
9
  createdTime?: unknown;
9
10
  toType?: unknown;
10
11
  to?: unknown;
11
12
  from?: unknown;
13
+ text?: unknown;
14
+ chunks?: unknown;
15
+ metadata?: unknown;
12
16
  };
13
17
  to: {
14
18
  id: unknown;
@@ -18,6 +22,7 @@ export interface LineRawMessage {
18
22
  };
19
23
  isMyMessage: boolean;
20
24
  text: string | null;
25
+ decryption_error?: LineDecryptionError;
21
26
  }
22
27
  export type LineRawEvent = {
23
28
  kind: 'message';
@@ -42,6 +47,8 @@ export declare class LineClient {
42
47
  onPincode: (pin: string) => void;
43
48
  }): Promise<LineLoginResult>;
44
49
  login(credentials?: LineAccountCredentials): Promise<this>;
50
+ private persistAccountE2EEKeys;
51
+ private repairSelfE2EEKey;
45
52
  getProfile(): Promise<LineProfile>;
46
53
  getFriends(): Promise<LineFriend[]>;
47
54
  getChats(options?: {
@@ -50,6 +57,8 @@ export declare class LineClient {
50
57
  getMessages(chatId: string, options?: {
51
58
  count?: number;
52
59
  }): Promise<LineMessage[]>;
60
+ private decryptMessageText;
61
+ private resolveAuthorNames;
53
62
  sendMessage(chatId: string, text: string): Promise<LineSendResult>;
54
63
  streamEvents(signal: AbortSignal): AsyncGenerator<LineRawEvent, void, unknown>;
55
64
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/platforms/line/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAWzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EACV,sBAAsB,EACtB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAClH,EAAE,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;IACnB,IAAI,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,aAAa,CAAA;CAAE,CAAA;AAiD9G,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAuB;gBAE9B,WAAW,CAAC,EAAE,qBAAqB;IAIzC,WAAW,CAAC,OAAO,EAAE;QACzB,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;QAC9B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC;IAsCtB,cAAc,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC;IAuCtB,KAAK,CAAC,WAAW,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1D,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAclC,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBnC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwF3D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiCjF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+CjE,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC;IAyCrF,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/platforms/line/client.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { getConfigDir } from '../../shared/utils/config-dir.js';
4
4
  import { FileStorage } from '../../vendor/linejs/base/storage/mod.js';
5
5
  import { loginWithQR as linejsLoginWithQR, loginWithPassword as linejsLoginWithPassword, loginWithAuthToken as linejsLoginWithAuthToken, } from '../../vendor/linejs/client/mod.js';
6
6
  import { LineCredentialManager } from './credential-manager.js';
7
+ import { ensureSelfKeyForMid, migrateOwnE2EEKeys } from './e2ee-storage.js';
7
8
  import { LineError } from './types.js';
8
9
  const MAX_MESSAGE_ID = 9223372036854775807n;
9
10
  function wrapError(error, code) {
@@ -42,10 +43,18 @@ function mapChatType(rawType) {
42
43
  function getDefaultDevice() {
43
44
  return 'ANDROIDSECONDARY';
44
45
  }
45
- function createStorage(accountId) {
46
+ function lineStorageDir() {
46
47
  const dir = join(getConfigDir(), 'line-storage');
47
48
  mkdirSync(dir, { recursive: true });
48
- return new FileStorage(join(dir, `${accountId ?? 'default'}.json`));
49
+ return dir;
50
+ }
51
+ // Per-account stores stay isolated: blindly cloning default.json would copy another
52
+ // account's E2EE private keys into this account's file. E2EE key material is migrated
53
+ // explicitly via migrateOwnE2EEKeys after login resolves the account MID.
54
+ function createStorage(accountId) {
55
+ const dir = lineStorageDir();
56
+ const fileName = accountId ? `${accountId}.json` : 'default.json';
57
+ return new FileStorage(join(dir, fileName));
49
58
  }
50
59
  export class LineClient {
51
60
  client = null;
@@ -63,6 +72,7 @@ export class LineClient {
63
72
  }, { device, storage });
64
73
  this.client = client;
65
74
  const profile = await client.base.talk.getProfile();
75
+ await this.persistAccountE2EEKeys(client, profile.mid);
66
76
  const now = new Date().toISOString();
67
77
  await this.credManager.setAccount({
68
78
  account_id: profile.mid,
@@ -90,10 +100,12 @@ export class LineClient {
90
100
  const client = await linejsLoginWithPassword({
91
101
  email: options.email,
92
102
  password: options.password,
103
+ e2ee: true,
93
104
  onPincodeRequest: (pin) => options.onPincode(pin),
94
105
  }, { device, storage });
95
106
  this.client = client;
96
107
  const profile = await client.base.talk.getProfile();
108
+ await this.persistAccountE2EEKeys(client, profile.mid);
97
109
  const now = new Date().toISOString();
98
110
  await this.credManager.setAccount({
99
111
  account_id: profile.mid,
@@ -125,14 +137,40 @@ export class LineClient {
125
137
  creds = account;
126
138
  }
127
139
  const device = creds.device ?? getDefaultDevice();
128
- const storage = createStorage();
140
+ const storage = createStorage(creds.account_id);
129
141
  this.client = await linejsLoginWithAuthToken(creds.auth_token, { device, storage });
142
+ await this.repairSelfE2EEKey(this.client, creds.account_id);
130
143
  return this;
131
144
  }
132
145
  catch (error) {
133
146
  throw wrapError(error, 'login_failed');
134
147
  }
135
148
  }
149
+ // A fresh QR/email login writes E2EE keys into the shared default store. Copy only
150
+ // this account's verified key material into its isolated per-account store so token
151
+ // logins (which read the per-account store) can later encrypt for E2EE chats.
152
+ async persistAccountE2EEKeys(client, mid) {
153
+ try {
154
+ const advertised = await client.base.talk.getE2EEPublicKeys().catch(() => undefined);
155
+ const target = createStorage(mid);
156
+ await migrateOwnE2EEKeys(client.base.storage, target, mid, advertised);
157
+ }
158
+ catch (error) {
159
+ warnDegraded('persist account E2EE keys', error);
160
+ }
161
+ }
162
+ // Token sessions don't perform an E2EE handshake, so getE2EESelfKeyData can't find
163
+ // a key under the account MID even when the keyId-addressed key already exists in
164
+ // storage. Promote it to the MID address, trusting only server-advertised keyIds.
165
+ async repairSelfE2EEKey(client, mid) {
166
+ try {
167
+ const advertised = await client.base.talk.getE2EEPublicKeys().catch(() => undefined);
168
+ await ensureSelfKeyForMid(client.base.storage, mid, advertised);
169
+ }
170
+ catch (error) {
171
+ warnDegraded('repair self E2EE key', error);
172
+ }
173
+ }
136
174
  async getProfile() {
137
175
  try {
138
176
  const profile = await this.ensureClient().base.talk.getProfile();
@@ -264,19 +302,76 @@ export class LineClient {
264
302
  messagesCount: count,
265
303
  },
266
304
  });
267
- return (rawMessages ?? []).map((msg) => ({
268
- message_id: String(msg.id),
269
- chat_id: chatId,
270
- author_id: String(msg.from ?? ''),
271
- text: msg.text || null,
272
- content_type: String(msg.contentType ?? 'NONE'),
273
- sent_at: new Date(Number(msg.createdTime)).toISOString(),
305
+ const messages = rawMessages ?? [];
306
+ const authorNames = await this.resolveAuthorNames(client, messages);
307
+ return await Promise.all(messages.map(async (msg) => {
308
+ const { text, decryptionError } = await this.decryptMessageText(client, msg);
309
+ const authorId = String(msg.from ?? '');
310
+ const authorName = authorNames.get(authorId);
311
+ return {
312
+ message_id: String(msg.id),
313
+ chat_id: chatId,
314
+ author_id: authorId,
315
+ ...(authorName && { author_name: authorName }),
316
+ text,
317
+ ...(decryptionError && { decryption_error: decryptionError }),
318
+ content_type: String(msg.contentType ?? 'NONE'),
319
+ sent_at: new Date(Number(msg.createdTime)).toISOString(),
320
+ };
274
321
  }));
275
322
  }
276
323
  catch (error) {
277
324
  throw wrapError(error, 'get_messages_failed');
278
325
  }
279
326
  }
327
+ // getPreviousMessagesV2WithRequest returns Letter-Sealing messages as encrypted
328
+ // chunks with null text, so they must be decrypted with the same path streamEvents
329
+ // uses. Plain messages already carry text and skip decryption.
330
+ async decryptMessageText(client, msg) {
331
+ if (!isEncryptedChunkMessage(msg)) {
332
+ return { text: msg.text || null };
333
+ }
334
+ try {
335
+ const decrypted = await client.base.e2ee.decryptE2EEMessage(normalizeE2EEMetadata(msg));
336
+ return { text: decrypted.text ?? null };
337
+ }
338
+ catch (error) {
339
+ return { text: null, decryptionError: getDecryptionError(error) };
340
+ }
341
+ }
342
+ // getContacts doesn't return the current user, so self-authored messages need
343
+ // getProfile separately. Lookups degrade to bare MIDs rather than failing.
344
+ async resolveAuthorNames(client, messages) {
345
+ const names = new Map();
346
+ const authorMids = [...new Set(messages.map((m) => String(m.from ?? '')).filter((mid) => mid.length > 0))];
347
+ if (authorMids.length === 0)
348
+ return names;
349
+ const selfMid = client.base.profile?.mid;
350
+ const contactMids = authorMids.filter((mid) => mid !== selfMid);
351
+ if (contactMids.length > 0) {
352
+ try {
353
+ const contacts = await client.base.talk.getContacts({ mids: contactMids });
354
+ for (const contact of contacts ?? []) {
355
+ if (contact.displayName)
356
+ names.set(contact.mid, contact.displayName);
357
+ }
358
+ }
359
+ catch (error) {
360
+ warnDegraded('resolve message author names', error);
361
+ }
362
+ }
363
+ if (selfMid && authorMids.includes(selfMid) && !names.has(selfMid)) {
364
+ try {
365
+ const profile = await client.base.talk.getProfile();
366
+ if (profile.displayName)
367
+ names.set(selfMid, profile.displayName);
368
+ }
369
+ catch (error) {
370
+ warnDegraded('resolve own display name', error);
371
+ }
372
+ }
373
+ return names;
374
+ }
280
375
  async sendMessage(chatId, text) {
281
376
  try {
282
377
  const client = this.ensureClient();
@@ -342,13 +437,16 @@ export class LineClient {
342
437
  // surface the message with null text, since its text is unreadable.
343
438
  let raw = op.message;
344
439
  let decrypted = true;
440
+ let decryptionError;
345
441
  try {
346
442
  raw = await client.base.e2ee.decryptE2EEMessage(op.message);
347
443
  }
348
- catch {
444
+ catch (error) {
349
445
  raw = op.message;
350
446
  decrypted = false;
447
+ decryptionError = getDecryptionError(error);
351
448
  }
449
+ decryptionError ??= getUndecryptableMessageError(raw);
352
450
  yield {
353
451
  kind: 'message',
354
452
  message: {
@@ -357,6 +455,7 @@ export class LineClient {
357
455
  from: { id: raw.from },
358
456
  isMyMessage: selfMid === raw.from,
359
457
  text: decrypted ? (raw.text ?? null) : null,
458
+ ...(decryptionError && { decryption_error: decryptionError }),
360
459
  },
361
460
  };
362
461
  }
@@ -372,4 +471,50 @@ export class LineClient {
372
471
  return this.client;
373
472
  }
374
473
  }
474
+ function getUndecryptableMessageError(raw) {
475
+ if (!isEncryptedChunkMessage(raw) || hasPlainText(raw))
476
+ return undefined;
477
+ return {
478
+ code: 'missing_e2ee_key',
479
+ message: 'LINE message is encrypted with Letter Sealing, but this session has no saved E2EE key material.',
480
+ };
481
+ }
482
+ function getDecryptionError(error) {
483
+ const message = error instanceof Error ? error.message : String(error);
484
+ return {
485
+ code: /NoE2EEKey|E2EE Key has not been saved|saveE2EE/i.test(message) ? 'missing_e2ee_key' : 'decrypt_failed',
486
+ message,
487
+ };
488
+ }
489
+ function hasPlainText(raw) {
490
+ if (!raw || typeof raw !== 'object')
491
+ return false;
492
+ const text = raw.text;
493
+ return typeof text === 'string' && text.length > 0;
494
+ }
495
+ function isEncryptedChunkMessage(raw) {
496
+ if (!raw || typeof raw !== 'object')
497
+ return false;
498
+ const message = raw;
499
+ if (!Array.isArray(message.chunks) || message.chunks.length === 0)
500
+ return false;
501
+ return hasE2EEMetadata(message.contentMetadata) || hasE2EEMetadata(message.metadata);
502
+ }
503
+ // decryptE2EEMessage reads messageObj.contentMetadata.e2eeVersion unconditionally.
504
+ // History messages from getPreviousMessagesV2WithRequest may carry E2EE metadata
505
+ // only under `metadata`, which would crash the decryptor on undefined.e2eeVersion.
506
+ function normalizeE2EEMetadata(msg) {
507
+ const m = msg;
508
+ if (hasE2EEMetadata(m.contentMetadata))
509
+ return msg;
510
+ if (!hasE2EEMetadata(m.metadata))
511
+ return msg;
512
+ return { ...msg, contentMetadata: m.metadata };
513
+ }
514
+ function hasE2EEMetadata(raw) {
515
+ if (!raw || typeof raw !== 'object')
516
+ return false;
517
+ const metadata = raw;
518
+ return metadata.e2eeMark !== undefined || metadata.e2eeVersion !== undefined;
519
+ }
375
520
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/platforms/line/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/platforms/line/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface E2EEKeyStore {
2
+ get(key: string): Promise<unknown> | unknown;
3
+ set(key: string, value: string): Promise<void> | void;
4
+ }
5
+ export interface E2EEKeyData {
6
+ keyId: number | string;
7
+ privKey: string;
8
+ pubKey: string;
9
+ e2eeVersion?: number;
10
+ }
11
+ export type E2EEPublicKey = {
12
+ keyId?: number | string;
13
+ } | ReadonlyArray<unknown>;
14
+ export declare function ensureSelfKeyForMid(storage: E2EEKeyStore, mid: string, advertisedKeys: ReadonlyArray<E2EEPublicKey> | undefined): Promise<boolean>;
15
+ export declare function migrateOwnE2EEKeys(source: E2EEKeyStore, target: E2EEKeyStore, mid: string, advertisedKeys: ReadonlyArray<E2EEPublicKey> | undefined): Promise<number>;
16
+ //# sourceMappingURL=e2ee-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2ee-storage.d.ts","sourceRoot":"","sources":["../../../../src/platforms/line/e2ee-storage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAC5C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACtD;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAwDhF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,GACvD,OAAO,CAAC,OAAO,CAAC,CAelB;AAMD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,GACvD,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
@@ -0,0 +1,93 @@
1
+ const SELF_KEY_PREFIX = 'e2eeKeys:';
2
+ function selfKey(id) {
3
+ return `${SELF_KEY_PREFIX}${id}`;
4
+ }
5
+ function isE2EEKeyData(value) {
6
+ if (!value || typeof value !== 'object')
7
+ return false;
8
+ const data = value;
9
+ return typeof data.privKey === 'string' && typeof data.pubKey === 'string';
10
+ }
11
+ function parseKeyData(raw) {
12
+ if (typeof raw !== 'string')
13
+ return isE2EEKeyData(raw) ? raw : null;
14
+ try {
15
+ const parsed = JSON.parse(raw);
16
+ return isE2EEKeyData(parsed) ? parsed : null;
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ // The stored payload carries its own keyId. Requiring it to equal the slot it was
23
+ // read from rejects entries mislabeled under an advertised keyId, so only a payload
24
+ // genuinely belonging to that keyId is ever trusted.
25
+ function keyDataMatchesSlot(data, keyId) {
26
+ return String(data.keyId) === String(keyId);
27
+ }
28
+ function keyIdOf(key) {
29
+ if (Array.isArray(key)) {
30
+ const id = key[2];
31
+ return typeof id === 'number' || typeof id === 'string' ? id : undefined;
32
+ }
33
+ const id = key.keyId;
34
+ return typeof id === 'number' || typeof id === 'string' ? id : undefined;
35
+ }
36
+ function advertisedKeyIds(keys) {
37
+ if (!keys)
38
+ return [];
39
+ const ids = [];
40
+ for (const key of keys) {
41
+ const id = keyIdOf(key);
42
+ if (id !== undefined)
43
+ ids.push(id);
44
+ }
45
+ return ids;
46
+ }
47
+ // Ensures the account's own self-key is addressable by MID for getE2EESelfKeyData,
48
+ // which checks `e2eeKeys:<mid>` before falling back to a live Thrift channel. The
49
+ // keyId-addressed entry is only trusted when the server advertises that exact keyId
50
+ // for this account, so a contaminated store (another account's key copied in) can
51
+ // never promote a foreign private key to this MID. Returns true when a self-key
52
+ // becomes available under the MID.
53
+ export async function ensureSelfKeyForMid(storage, mid, advertisedKeys) {
54
+ if (!mid)
55
+ return false;
56
+ const existing = parseKeyData(await storage.get(selfKey(mid)));
57
+ if (existing)
58
+ return true;
59
+ for (const keyId of advertisedKeyIds(advertisedKeys)) {
60
+ const candidate = parseKeyData(await storage.get(selfKey(keyId)));
61
+ if (candidate && keyDataMatchesSlot(candidate, keyId)) {
62
+ await storage.set(selfKey(mid), JSON.stringify(candidate));
63
+ return true;
64
+ }
65
+ }
66
+ return false;
67
+ }
68
+ // Copies only this account's E2EE key material out of a shared (default) store into
69
+ // an isolated per-account store. Trust is anchored to the server-advertised keyIds
70
+ // for `mid`, so foreign-account keys present in the shared store are never carried
71
+ // over. Used right after a fresh login resolves the account MID.
72
+ export async function migrateOwnE2EEKeys(source, target, mid, advertisedKeys) {
73
+ if (!mid)
74
+ return 0;
75
+ let migrated = 0;
76
+ const own = parseKeyData(await source.get(selfKey(mid)));
77
+ if (own) {
78
+ await target.set(selfKey(mid), JSON.stringify(own));
79
+ migrated++;
80
+ }
81
+ for (const keyId of advertisedKeyIds(advertisedKeys)) {
82
+ const data = parseKeyData(await source.get(selfKey(keyId)));
83
+ if (!data || !keyDataMatchesSlot(data, keyId))
84
+ continue;
85
+ await target.set(selfKey(keyId), JSON.stringify(data));
86
+ migrated++;
87
+ const publicKey = await source.get(`e2eePublicKeys:${keyId}`);
88
+ if (typeof publicKey === 'string')
89
+ await target.set(`e2eePublicKeys:${keyId}`, publicKey);
90
+ }
91
+ return migrated;
92
+ }
93
+ //# sourceMappingURL=e2ee-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2ee-storage.js","sourceRoot":"","sources":["../../../../src/platforms/line/e2ee-storage.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ export { LineClient } from './client.js';
2
2
  export { LineCredentialManager, CredentialManager } from './credential-manager.js';
3
3
  export { LineListener } from './listener.js';
4
4
  export { LineError } from './types.js';
5
- export type { LineAccountCredentials, LineChat, LineConfig, LineDevice, LineFriend, LineListenerEventMap, LineLoginResult, LineMessage, LineProfile, LinePushGenericEvent, LinePushMessageEvent, LineSendResult, } from './types.js';
5
+ export type { LineAccountCredentials, LineChat, LineConfig, LineDecryptionError, LineDevice, LineFriend, LineListenerEventMap, LineLoginResult, LineMessage, LineProfile, LinePushGenericEvent, LinePushMessageEvent, LineSendResult, } from './types.js';
6
6
  export { LineAccountCredentialsSchema, LineChatSchema, LineConfigSchema, LineFriendSchema, LineMessageSchema, LineProfileSchema, LineSendResultSchema, } from './types.js';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platforms/line/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,YAAY,EACV,sBAAsB,EACtB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,GACf,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platforms/line/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,YAAY,EACV,sBAAsB,EACtB,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,GACf,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platforms/line/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAenC,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platforms/line/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAgBnC,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../src/platforms/line/listener.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAA8C,MAAM,SAAS,CAAA;AAK/F,KAAK,QAAQ,GAAG,MAAM,oBAAoB,CAAA;AAE1C,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,eAAe,CAA+B;gBAE1C,MAAM,EAAE,UAAU;IAMxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,IAAI,IAAI,IAAI;IASZ,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAK5F,GAAG,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAK7F,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;YAKhF,OAAO;YAsBP,IAAI;IAmBlB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../src/platforms/line/listener.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAA;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAA8C,MAAM,SAAS,CAAA;AAK/F,KAAK,QAAQ,GAAG,MAAM,oBAAoB,CAAA;AAE1C,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,eAAe,CAA+B;gBAE1C,MAAM,EAAE,UAAU;IAMxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,IAAI,IAAI,IAAI;IASZ,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAK5F,GAAG,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAK7F,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;YAKhF,OAAO;YAsBP,IAAI;IAmBlB,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,WAAW;CAMpB"}
@@ -88,14 +88,15 @@ export class LineListener {
88
88
  try {
89
89
  const toType = msg.raw.toType;
90
90
  const isGroupOrRoom = toType === 'GROUP' || toType === 'ROOM' || toType === 0 || toType === 1;
91
- const chatId = isGroupOrRoom ? msg.to.id : msg.isMyMessage ? msg.to.id : msg.from.id;
91
+ const chatId = String(isGroupOrRoom ? msg.to.id : msg.isMyMessage ? msg.to.id : msg.from.id);
92
92
  const contentType = String(msg.raw.contentType ?? 'NONE');
93
93
  const event = {
94
94
  type: 'message',
95
95
  chat_id: chatId,
96
96
  message_id: String(msg.raw.id),
97
- author_id: msg.from.id,
97
+ author_id: String(msg.from.id),
98
98
  text: getMessageText(msg.text, msg.raw, contentType),
99
+ ...(msg.decryption_error && { decryption_error: msg.decryption_error }),
99
100
  content_type: contentType,
100
101
  content_metadata: normalizeContentMetadata(msg.raw.contentMetadata),
101
102
  sent_at: new Date(Number(msg.raw.createdTime)).toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../../src/platforms/line/listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../../src/platforms/line/listener.ts"],"names":[],"mappings":"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"}