@zoulabo/line-hive 0.1.15 → 0.1.19

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/README.md CHANGED
@@ -9,6 +9,13 @@
9
9
  An MCP server that bridges AI agents (Copilot, Cursor, Claude) to LINE Messaging — check progress, answer questions, and get alerts without touching your computer.
10
10
  </p>
11
11
 
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/@zoulabo/line-hive"><img src="https://img.shields.io/npm/v/@zoulabo/line-hive?color=cb3837&label=npm" alt="npm version"></a>
14
+ <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node.js ≥18">
15
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
16
+ <img src="https://img.shields.io/badge/tests-246%20passing-brightgreen" alt="246 tests passing">
17
+ </p>
18
+
12
19
  <p align="center">
13
20
  <em>Works with VS Code Copilot · Cursor · Claude Code · Claude Desktop · any MCP client</em>
14
21
  </p>
@@ -17,8 +24,21 @@
17
24
 
18
25
  **Why?** AI agents run long tasks and need your input. LINE Hive lets you check status or reply from your phone — no editor watching required.
19
26
 
27
+ ## Features
28
+
29
+ - 📱 **Check from anywhere** — query agent status from LINE with `?`, get instant updates
30
+ - 💬 **Two-way conversation** — agents ask you questions, you reply from your phone
31
+ - 🤖 **Multi-agent** — multiple editors share one bot; select by number
32
+ - 🆓 **Free tier friendly** — status queries use reply tokens (free), not push quota
33
+ - 📎 **File exchange** — send images, PDFs, and documents; agents read content on demand
34
+ - 🔍 **PDF intelligence** — text extraction, scanned PDF→image rendering, per-page navigation
35
+ - 🌐 **Multi-language** — English and Japanese, auto-detected from LINE profile
36
+ - 🔧 **Zero config tunnel** — built-in ngrok management (or bring your own tunnel)
37
+ - 🛡️ **Security hardened** — PDF JS disabled, workspace-scoped file access, no shell injection
38
+
20
39
  ## Contents
21
40
 
41
+ - [Features](#features)
22
42
  - [Quick Start](#quick-start)
23
43
  - [How It Works](#how-it-works)
24
44
  - [Setup](#setup) — [LINE Account](#1-create-a-line-official-account) · [Webhook Tunnel](#2-set-up-a-webhook-tunnel) · [Install](#3-install-line-hive-in-your-project)
@@ -241,10 +261,12 @@ npx @zoulabo/line-hive init --editor cursor # switch editor type
241
261
  | Tool | Purpose | Blocking |
242
262
  |------|---------|----------|
243
263
  | `line_set_status` | Set agent description + name (status auto-derived) | No |
244
- | `line_ask` | Send message + wait for reply (single tool call). Supports `imageBase64` param. | Yes |
245
- | `line_send_message` | Push message to LINE (use sparingly — costs quota). Supports `imageBase64` param. | Yes (default) |
264
+ | `line_ask` | Send message + wait for reply. Supports `imageBase64`, `imageFilePath`, `filePath`. | Yes |
265
+ | `line_send_message` | Push message to LINE (costs quota). Supports `imageBase64`, `imageFilePath`, `filePath`. | Yes (default) |
246
266
  | `line_check_messages` | Fetch unclaimed inbound messages | No |
247
267
  | `line_list_agents` | List all active agents across editor windows | No |
268
+ | `line_read_file` | Read content from a received file (PDF text, scanned PDF→image, image resize, text decode) | No |
269
+ | `line_render_markdown` | Convert Markdown to HTML (built-in, no library install needed) | No |
248
270
 
249
271
  ### Recommended Pattern
250
272
 
@@ -264,25 +286,28 @@ Send these to your LINE bot:
264
286
 
265
287
  | Command | Action |
266
288
  |---------|--------|
267
- | `status` / `s` / `?` | Show all agents with status |
268
- | A number (e.g. `2`) | Select that agent (always never forwarded to agents) |
289
+ | `?` / `s` | Show all agents with status |
290
+ | `q` | Show message queue with per-agent counts |
269
291
  | Any other text | Route to targeted/waiting agent |
270
- | ▶️ Continue (button) | Send a reply token to keep the conversation going |
292
+ | Continue (button) | Send a reply token to keep the conversation going |
271
293
  | 📊 Status (button) | Same as `?` |
294
+ | 📬 Queue (button) | Same as `q` |
295
+ | 🗑️ Delete (button) | Delete a queued message (shown when queue has messages) |
272
296
  | 📬 N more (button) | Pop all queued messages to the agent at once |
297
+ | 1️⃣ 2️⃣ ... (buttons) | Switch between agents (shown when 2+ agents active) |
273
298
 
274
299
  ## Language Support
275
300
 
276
- Auto-detected from the user's LINE profile. Currently **English** (default) and **Japanese**. All bot messages, buttons, and errors are localized. Agents can override via `line_set_status({ language: "ja" })`.
301
+ Auto-detected from the user's LINE profile. Currently **English** (default) and **Japanese**. All bot messages, buttons, and errors are localized. Agents can override via `line_set_status({ language: "ja" })`. New users see a welcome message with available triggers, buttons, and a language hint.
277
302
 
278
303
  ## Limitations
279
304
 
280
- - **Push quota** — free tier: 200/month. Status queries via `?` are free (replyToken). The server pools tokens aggressively.
281
- - **Reply token expiry** — ~15 min (empirically tested). Falls back to push when exhausted.
282
- - **Images** — receive images (auto-downloaded as preview, ~30KB) and send images (`imageBase64` param). Stickers, video, and audio are currently ignored.
305
+ - **Push quota** — free tier: 200/month. Status queries via `?` use reply tokens (free). Send `?` periodically to replenish the token pool.
306
+ - **Reply token expiry** — ~15 min. Falls back to push when exhausted.
307
+ - **Files** — receive images & files (stored as base64 in SQLite). Send via `imageBase64`, `imageFilePath`, or `filePath`. Stickers, video, and audio are currently ignored.
283
308
  - **Single user** — designed for one developer per LINE channel.
284
309
  - **Single webhook URL** — all agent instances share one tunnel endpoint.
285
- - **Multi-workspace** — only the first editor window claims the webhook port/tunnel. Others piggyback via shared SQLite.
310
+ - **Multi-workspace** — only the first editor claims the webhook port/tunnel. Others piggyback via shared SQLite.
286
311
  - **Claude Code** — `line_ask` can block up to 2 hours; ensure `MCP_TOOL_TIMEOUT` is not too short. Always use `--editor claude-code` for init.
287
312
 
288
313
  ## Development
@@ -301,6 +326,14 @@ npm install && npm run build && npm test
301
326
  | `npx @zoulabo/line-hive init` | Full interactive setup |
302
327
  | `npx @zoulabo/line-hive test` | Test LINE API connection |
303
328
 
329
+ ### Optional Dependencies
330
+
331
+ | Feature | Package | Install | Fallback |
332
+ |---------|---------|---------|----------|
333
+ | PDF text extraction | pdfjs-dist | `npm install pdfjs-dist` | No PDF text extraction |
334
+ | Image resizing | sharp | `npm install sharp` | Returns original size |
335
+ | Scanned PDF images | poppler CLI | `brew install poppler` (macOS) / `apt install poppler-utils` (Linux) | Returns install hint |
336
+
304
337
  ### Environment Variables
305
338
 
306
339
  For standalone `npm start`:
@@ -313,39 +346,11 @@ For standalone `npm start`:
313
346
  | `WEBHOOK_PORT` | No | `19780` |
314
347
  | `SQLITE_PATH` | No | `~/.line-hive/line-hive.db` |
315
348
 
316
- ### Project Structure
317
-
318
- ```
319
- src/
320
- ├── index.ts # Entry point
321
- ├── server.ts # MCP server + tool handlers
322
- ├── config.ts # Environment config
323
- ├── logger.ts # Pino (stderr only — stdout is MCP)
324
- ├── tunnel.ts # ngrok tunnel management
325
- ├── cli/
326
- │ ├── init.ts # Setup wizard
327
- │ ├── update.ts # Refresh instruction templates
328
- │ ├── test-connection.ts # LINE API connection test
329
- │ └── config-writer.ts # Generates mcp.json + instructions
330
- ├── tools/ # MCP tool implementations
331
- ├── line/
332
- │ ├── client.ts # LINE API client
333
- │ ├── messages.ts # Message builders, quick reply, postback
334
- │ └── webhook.ts # Webhook handler + status responder
335
- ├── store/
336
- │ ├── messageStore.ts # Message persistence (SQLite)
337
- │ └── statusStore.ts # Agent status management
338
- ├── util/
339
- │ └── sendWithTokenPool.ts # Reply token pool → push fallback
340
- └── types/
341
- └── index.ts
342
- ```
343
-
344
349
  ## Contributing
345
350
 
346
351
  Designed for **AI-agent-driven development**. The repo includes skill files (`.github/skills/`) that teach agents the codebase. Point your agent at the repo and let it work.
347
352
 
348
- - `npm test` must pass (~180 tests, <1s)
353
+ - `npm test` must pass (~246 tests, <1s)
349
354
  - `npx tsc --noEmit` must be clean
350
355
  - Let the agents read skills first, then write the code
351
356
 
@@ -381,14 +386,6 @@ Use `--editor claude-code` whether you're running Claude Code as:
381
386
  Don't use `--editor vscode` — that's for GitHub Copilot.
382
387
  </details>
383
388
 
384
- <details>
385
- <summary><b>Reply tokens expire / push message quota exceeded</b></summary>
386
-
387
- - Reply tokens expire after ~15 minutes. The server pools them aggressively but falls back to push messages when none are available.
388
- - Free tier: 200 push messages/month. Status queries via `?` are free (use reply tokens).
389
- - Tip: Send `?` in LINE periodically to replenish the token pool.
390
- </details>
391
-
392
389
  <details>
393
390
  <summary><b>ngrok tunnel not starting</b></summary>
394
391
 
@@ -404,7 +401,7 @@ Don't use `--editor vscode` — that's for GitHub Copilot.
404
401
  - **Heartbeat** every 10s — dead agents auto-cleaned after 2 min
405
402
  - **Reply token pooling** — webhook saves tokens for free replies (saves push quota)
406
403
  - **Session correlation** — `line_ask` creates a session, webhook fulfills it on reply
407
- - **Multi-agent routing** — user selects agent by number, or auto-routes to `needs_input` agent
404
+ - **Multi-agent routing** — user selects agent via quick reply buttons, or auto-routes to `needs_input` agent
408
405
  - **Embedded tunnel** — ngrok auto-managed as child process (optional; any tunnel to localhost:19780 works)
409
406
  - **Cross-platform** — works on macOS, Linux, and Windows
410
407
 
package/dist/config.js CHANGED
@@ -50,7 +50,7 @@ export function loadConfig() {
50
50
  webhookPort: numberEnv("WEBHOOK_PORT", 19780),
51
51
  webhookPath: process.env.WEBHOOK_PATH || "/webhook",
52
52
  sqlitePath,
53
- sessionTtlMs: numberEnv("SESSION_TTL_MS", 7200000),
53
+ sessionTtlMs: numberEnv("SESSION_TTL_MS", 86400000),
54
54
  cleanupIntervalMs: numberEnv("CLEANUP_INTERVAL_MS", 60000),
55
55
  agentId: generateAgentId(workspacePath),
56
56
  agentName: process.env.AGENT_NAME || deriveAgentName(workspacePath),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,SAAS,SAAS,CAAC,IAAY,EAAE,QAAgB;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,aAAqB;IAC5C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,aAAqB;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,gDAAgD;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElE,OAAO;QACL,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;QACnE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;QACxD,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC;QAC7C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,UAAU;QACnD,UAAU;QACV,YAAY,EAAE,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC;QAClD,iBAAiB,EAAE,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC;QAC1D,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC;QACvC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,eAAe,CAAC,aAAa,CAAC;QACnE,mBAAmB,EAAE,SAAS,CAAC,uBAAuB,EAAE,KAAK,CAAC;QAC9D,kBAAkB,EAAE,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;QAC7D,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,SAAS;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,SAAS,SAAS,CAAC,IAAY,EAAE,QAAgB;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,aAAqB;IAC5C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,aAAqB;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,gDAAgD;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElE,OAAO;QACL,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;QACnE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;QACxD,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC;QAC7C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,UAAU;QACnD,UAAU;QACV,YAAY,EAAE,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAC;QACnD,iBAAiB,EAAE,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC;QAC1D,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC;QACvC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,eAAe,CAAC,aAAa,CAAC;QACnE,mBAAmB,EAAE,SAAS,CAAC,uBAAuB,EAAE,KAAK,CAAC;QAC9D,kBAAkB,EAAE,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;QAC7D,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,SAAS;KAC3D,CAAC;AACJ,CAAC"}
package/dist/i18n.js CHANGED
@@ -29,10 +29,15 @@ const en = {
29
29
  queuedHeader: () => "📬 Queued messages:",
30
30
  ackQueued: (agent, info) => `📨 Queued for ${agent}${info}`,
31
31
  nQueued: (n) => ` (${n} queued)`,
32
+ // Delete queue
33
+ deleteWhich: () => "🗑️ Which message to delete?",
34
+ deleteSuccess: () => "✅ Message deleted.",
35
+ deleteNotFound: () => "⚠️ Message not found (already consumed or deleted).",
36
+ btnDelete: () => "🗑️",
32
37
  // Quick reply button labels
33
- btnContinue: () => "▶️ Continue",
34
- btnStatus: () => "📊 Status",
35
- btnQueued: () => "📬 Queued",
38
+ btnContinue: () => "",
39
+ btnStatus: () => "📊",
40
+ btnQueued: () => "📬",
36
41
  btnOk: () => "✅ OK",
37
42
  btnCancel: () => "❌ Cancel",
38
43
  btnYes: () => "👍 Yes",
@@ -50,8 +55,9 @@ const en = {
50
55
  hoursAgo: (h) => `${h}h ago`,
51
56
  daysAgo: (d) => `${d}d ago`,
52
57
  // Misc
53
- tapToConnect: () => "\n\n⚡ Tap below to stay connected 👇",
54
- waitingForReply: (duration) => `— Waiting for your reply (${duration} timeout)`,
58
+ tapToConnect: () => "",
59
+ onboarding: () => `📱 LINE Hive\n\n── 💬 Triggers ──\n? → check status\nq → message queue\n\n── 🔘 Buttons ──\n✅ → send reply token\n📊 → check status\n📬 → message queue\n🗑️ → delete queued message\n1️⃣2️⃣… → switch agent\n\n── 💡 Tips ──\nTap ✅ regularly to keep reply tokens stocked.\n🌐 Language auto-detected from your LINE profile. Ask the agent to change it.`,
60
+ waitingForReply: (duration) => `— Waiting for your reply (${duration})`,
55
61
  };
56
62
  const ja = {
57
63
  idle: (age) => `待機中 (${age})`,
@@ -70,9 +76,13 @@ const ja = {
70
76
  queuedHeader: () => "📬 キューされたメッセージ:",
71
77
  ackQueued: (agent, info) => `📨 ${agent}にキュー${info}`,
72
78
  nQueued: (n) => ` (${n}件キュー)`,
73
- btnContinue: () => "▶️ 続ける",
74
- btnStatus: () => "📊 状態",
75
- btnQueued: () => "📬 キュー",
79
+ deleteWhich: () => "🗑️ どのメッセージを削除しますか?",
80
+ deleteSuccess: () => " メッセージを削除しました。",
81
+ deleteNotFound: () => "⚠️ メッセージが見つかりません(消費済みまたは削除済み)。",
82
+ btnDelete: () => "🗑️",
83
+ btnContinue: () => "✅",
84
+ btnStatus: () => "📊",
85
+ btnQueued: () => "📬",
76
86
  btnOk: () => "✅ OK",
77
87
  btnCancel: () => "❌ キャンセル",
78
88
  btnYes: () => "👍 はい",
@@ -86,8 +96,9 @@ const ja = {
86
96
  minutesAgo: (m) => `${m}分前`,
87
97
  hoursAgo: (h) => `${h}時間前`,
88
98
  daysAgo: (d) => `${d}日前`,
89
- tapToConnect: () => "\n\n⚡ 下をタップして接続を維持 👇",
90
- waitingForReply: (duration) => `— 返信を待っています (${duration}タイムアウト)`,
99
+ tapToConnect: () => "",
100
+ onboarding: () => `📱 LINE Hive\n\n── 💬 トリガー ──\n? → ステータス確認\nq → メッセージキュー\n\n── 🔘 ボタン ──\n✅ → リプライトークン送信\n📊 → ステータス確認\n📬 → メッセージキュー\n🗑️ → キューメッセージ削除\n1️⃣2️⃣… → エージェント切替\n\n── 💡 ヒント ──\n✅を定期的にタップしてトークンを補充しましょう。\n🌐 言語はLINEプロフィールから自動検出。エージェントに変更を依頼できます。`,
101
+ waitingForReply: (duration) => `— 返信を待っています (${duration})`,
91
102
  };
92
103
  const catalogs = { en, ja };
93
104
  /** Get the message catalog for a locale */
package/dist/i18n.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -93,13 +93,23 @@ async function main() {
93
93
  messageStore,
94
94
  statusStore,
95
95
  lineClient,
96
- logger
96
+ logger,
97
+ getUpdatedInstructions: () => {
98
+ if (instructionsUpdated && updatedInstructionsContent) {
99
+ instructionsUpdated = false; // Only return once
100
+ return updatedInstructionsContent;
101
+ }
102
+ return null;
103
+ }
97
104
  });
98
105
  const transport = new StdioServerTransport();
99
106
  await server.connect(transport);
100
107
  // Auto-update project instructions in background (non-blocking).
101
108
  // Silently refreshes instruction files if they're outdated after a package upgrade.
109
+ // Sets instructionsUpdated flag so the first tool call can return the new instructions.
102
110
  const projectDir = process.env.WORKSPACE_PATH || process.cwd();
111
+ let instructionsUpdated = false;
112
+ let updatedInstructionsContent = null;
103
113
  (async () => {
104
114
  try {
105
115
  const isClaudeCode = fs.existsSync(path.join(projectDir, ".claude", "rules", "line-notification.md"));
@@ -108,6 +118,13 @@ async function main() {
108
118
  : await installProjectInstructions(projectDir);
109
119
  if (updated) {
110
120
  logger.info({ path: updated }, "Auto-updated project instructions");
121
+ instructionsUpdated = true;
122
+ try {
123
+ updatedInstructionsContent = fs.readFileSync(updated, "utf-8");
124
+ }
125
+ catch {
126
+ // Non-critical — flag is still set
127
+ }
111
128
  }
112
129
  await ensureGitignoreEntries(projectDir);
113
130
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE3H,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,oDAAoD;AACpD,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE;aAC9B,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACnC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;aACD,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAE/C,+BAA+B;IAC/B,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,oIAAoI,CAAC,CAAC;IACpJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,gIAAgI,CAAC,CAAC;IAChJ,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE3C,kEAAkE;IAClE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EACxD,kBAAkB,CACnB,CAAC;IAEF,8DAA8D;IAC9D,IAAI,aAAa,GAAiD,IAAI,CAAC;IACvE,IAAI,YAAY,GAA0C,IAAI,CAAC;IAC/D,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,yDAAyD;IACzD,SAAS,eAAe;QACtB,IAAI,WAAW;YAAE,OAAO,CAAC,kBAAkB;QAE3C,IAAI,CAAC;YACH,aAAa,GAAG,kBAAkB,CAAC;gBACjC,MAAM;gBACN,YAAY;gBACZ,WAAW;gBACX,UAAU;gBACV,MAAM;aACP,CAAC,CAAC;YAEH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBACjC,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAC5B,wCAAwC,CACzC,CAAC;gBACF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,YAAY,GAAG,WAAW,CAAC;wBACzB,MAAM,EAAE,MAAM,CAAC,WAAW;wBAC1B,IAAI,EAAE,MAAM,CAAC,WAAW;wBACxB,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAC5B,uFAAuF,CACxF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,wEAAwE;YACxE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC7B,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,eAAe,EAAE,CAAC;IAElB,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,MAAM;QACN,YAAY;QACZ,WAAW;QACX,UAAU;QACV,MAAM;QACN,sBAAsB,EAAE,GAAG,EAAE;YAC3B,IAAI,mBAAmB,IAAI,0BAA0B,EAAE,CAAC;gBACtD,mBAAmB,GAAG,KAAK,CAAC,CAAC,mBAAmB;gBAChD,OAAO,0BAA0B,CAAC;YACpC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,iEAAiE;IACjE,oFAAoF;IACpF,wFAAwF;IACxF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/D,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,0BAA0B,GAAkB,IAAI,CAAC;IACrD,CAAC,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;YACtG,MAAM,OAAO,GAAG,YAAY;gBAC1B,CAAC,CAAC,MAAM,6BAA6B,CAAC,UAAU,CAAC;gBACjD,CAAC,CAAC,MAAM,0BAA0B,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,mCAAmC,CAAC,CAAC;gBACpE,mBAAmB,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC;oBACH,0BAA0B,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjE,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;YACH,CAAC;YACD,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2DAA2D;YAC3D,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,uEAAuE;IACvE,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,WAAW,CAAC,SAAS,EAAE,CAAC;QACxB,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAExD,qEAAqE;QACrE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,kDAAkD,CAAC,CAAC;gBAC9F,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACnE,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE7B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,aAAa,CAAC,cAAc,CAAC,CAAC;QAC9B,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5B,WAAW,CAAC,UAAU,EAAE,CAAC;QACzB,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,iFAAiF;IACjF,sFAAsF;IACtF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAC7G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -63,6 +63,13 @@ export function parsePostbackData(data) {
63
63
  return { type: "continue" };
64
64
  if (action === "show_queued")
65
65
  return { type: "show_queued" };
66
+ if (action === "delete_queue")
67
+ return { type: "delete_queue" };
68
+ if (action === "delete_queue_item") {
69
+ const msgId = parseInt(params.get("messageId") || "0", 10);
70
+ if (msgId > 0)
71
+ return { type: "delete_queue_item", messageId: msgId };
72
+ }
66
73
  return { type: "chat", text: data };
67
74
  }
68
75
  // ─── Quick Reply Builder ────────────────────────────────────────────────────
@@ -81,7 +88,7 @@ export function buildQuickReply(agents, locale = "en") {
81
88
  type: "postback",
82
89
  label: m.btnContinue(),
83
90
  data: "action=continue",
84
- displayText: "▶️",
91
+ displayText: "",
85
92
  },
86
93
  });
87
94
  // Status button
@@ -94,28 +101,76 @@ export function buildQuickReply(agents, locale = "en") {
94
101
  displayText: "?",
95
102
  },
96
103
  });
97
- // Agent selection buttons (max 9 to stay under LINE's 13-item limit)
98
- const maxAgents = Math.min(agents.length, 9);
99
- for (let i = 0; i < maxAgents; i++) {
100
- const agent = agents[i];
101
- const name = agent.agentName || agent.agentId.slice(0, 8);
104
+ // Queue button
105
+ items.push({
106
+ type: "action",
107
+ action: {
108
+ type: "postback",
109
+ label: m.btnQueued(),
110
+ data: "action=show_queued",
111
+ displayText: "q",
112
+ },
113
+ });
114
+ // Agent selection buttons (only when 2+ agents; max 9 to stay under LINE's 13-item limit)
115
+ if (agents.length >= 2) {
116
+ const maxAgents = Math.min(agents.length, 9);
117
+ for (let i = 0; i < maxAgents; i++) {
118
+ const agent = agents[i];
119
+ const name = agent.agentName || agent.agentId.slice(0, 8);
120
+ const emoji = NUMBER_EMOJIS[i] || `${i + 1}`;
121
+ const icon = agent.isAlive === false
122
+ ? "🔌"
123
+ : STATUS_ICONS[agent.status] || "❔";
124
+ // Build display name: "workspace/agentName" if workspace differs
125
+ const showWorkspace = agent.workspaceName && agent.workspaceName !== name;
126
+ const displayName = showWorkspace ? `${agent.workspaceName}/${name}` : name;
127
+ items.push({
128
+ type: "action",
129
+ action: {
130
+ type: "postback",
131
+ label: truncLabel(`${emoji}${icon} ${name}`),
132
+ data: new URLSearchParams({ action: "confirm_select", index: String(i + 1), agentId: agent.agentId }).toString(),
133
+ displayText: `${i + 1} ${displayName}`,
134
+ },
135
+ });
136
+ }
137
+ }
138
+ return { items };
139
+ }
140
+ // ─── Text + Quick Reply Helpers ─────────────────────────────────────────────
141
+ /**
142
+ * Build quick reply for "which message to delete?" prompt.
143
+ * Shows Continue button + numbered emoji buttons (1️⃣, 2️⃣, ...) for each queued message.
144
+ */
145
+ export function buildDeleteQueueReply(messages, locale = "en") {
146
+ const m = t(locale);
147
+ const items = [];
148
+ // Continue button (escape hatch)
149
+ items.push({
150
+ type: "action",
151
+ action: {
152
+ type: "postback",
153
+ label: m.btnContinue(),
154
+ data: "action=continue",
155
+ displayText: "✅",
156
+ },
157
+ });
158
+ // Numbered message buttons (max 9 to stay within LINE's 13-item limit)
159
+ const max = Math.min(messages.length, 9);
160
+ for (let i = 0; i < max; i++) {
102
161
  const emoji = NUMBER_EMOJIS[i] || `${i + 1}`;
103
- const icon = agent.isAlive === false
104
- ? "🔌"
105
- : STATUS_ICONS[agent.status] || "❔";
106
162
  items.push({
107
163
  type: "action",
108
164
  action: {
109
165
  type: "postback",
110
- label: truncLabel(`${emoji}${icon} ${name}`),
111
- data: `action=select&index=${i + 1}`,
112
- displayText: `${i + 1}`,
166
+ label: emoji,
167
+ data: new URLSearchParams({ action: "delete_queue_item", messageId: String(messages[i].id) }).toString(),
168
+ displayText: emoji,
113
169
  },
114
170
  });
115
171
  }
116
172
  return { items };
117
173
  }
118
- // ─── Text + Quick Reply Helpers ─────────────────────────────────────────────
119
174
  /**
120
175
  * Build minimal quick reply items when no agents are active.
121
176
  * Provides Continue (token priming), Status (refresh), and Queued (orphan check).
@@ -130,7 +185,7 @@ function buildZeroAgentQuickReply(locale = "en") {
130
185
  type: "postback",
131
186
  label: m.btnContinue(),
132
187
  data: "action=continue",
133
- displayText: "▶️",
188
+ displayText: "",
134
189
  },
135
190
  },
136
191
  {
@@ -148,7 +203,7 @@ function buildZeroAgentQuickReply(locale = "en") {
148
203
  type: "postback",
149
204
  label: m.btnQueued(),
150
205
  data: "action=show_queued",
151
- displayText: "📬",
206
+ displayText: "q",
152
207
  },
153
208
  },
154
209
  ],
@@ -162,6 +217,27 @@ export function textWithQuickReply(text, agents, locale = "en") {
162
217
  quickReply: agents.length > 0 ? buildQuickReply(agents, locale) : buildZeroAgentQuickReply(locale),
163
218
  };
164
219
  }
220
+ /** Text message with quick reply buttons + a 🗑️ delete button (for queue display with messages) */
221
+ export function textWithQueueQuickReply(text, agents, locale = "en") {
222
+ const m = t(locale);
223
+ const qr = agents.length > 0 ? buildQuickReply(agents, locale) : buildZeroAgentQuickReply(locale);
224
+ // Insert 🗑️ delete button after the 📬 queue button (index 2) — before any agent buttons
225
+ const deleteItem = {
226
+ type: "action",
227
+ action: {
228
+ type: "postback",
229
+ label: m.btnDelete(),
230
+ data: "action=delete_queue",
231
+ displayText: "🗑️",
232
+ },
233
+ };
234
+ qr.items.splice(3, 0, deleteItem);
235
+ return {
236
+ type: "text",
237
+ text,
238
+ quickReply: qr,
239
+ };
240
+ }
165
241
  /** Error message (e.g., invalid agent number) with quick replies */
166
242
  export function errorMessage(text, agents, locale = "en") {
167
243
  return textWithQuickReply(text, agents, locale);
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/line/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/line/messages.ts"],"names":[],"mappings":"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"}