@zoulabo/line-hive 0.1.20 โ 0.1.22
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 +55 -9
- package/dist/cli/config-writer.js +1 -1
- package/dist/cli/config-writer.js.map +1 -1
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/i18n.js +3 -1
- package/dist/i18n.js.map +1 -1
- package/dist/index.js +59 -3
- package/dist/index.js.map +1 -1
- package/dist/line/messages.js +141 -2
- package/dist/line/messages.js.map +1 -1
- package/dist/line/webhook.js +294 -54
- package/dist/line/webhook.js.map +1 -1
- package/dist/server.js +45 -18
- package/dist/server.js.map +1 -1
- package/dist/store/messageStore.js +123 -53
- package/dist/store/messageStore.js.map +1 -1
- package/dist/tools/ask.js +90 -44
- package/dist/tools/ask.js.map +1 -1
- package/dist/tools/createDocx.js +459 -0
- package/dist/tools/createDocx.js.map +1 -0
- package/dist/tools/createPptx.js +554 -0
- package/dist/tools/createPptx.js.map +1 -0
- package/dist/tools/createXlsx.js +360 -0
- package/dist/tools/createXlsx.js.map +1 -0
- package/dist/tools/gitReview-template.js +208 -0
- package/dist/tools/gitReview-template.js.map +1 -0
- package/dist/tools/gitReview.js +232 -0
- package/dist/tools/gitReview.js.map +1 -0
- package/dist/tools/readFile.js +22 -29
- package/dist/tools/readFile.js.map +1 -1
- package/dist/tools/renderMarkdown.js +248 -9
- package/dist/tools/renderMarkdown.js.map +1 -1
- package/dist/tools/sendMessage.js +20 -6
- package/dist/tools/sendMessage.js.map +1 -1
- package/dist/tools/setStatus.js +4 -2
- package/dist/tools/setStatus.js.map +1 -1
- package/dist/tunnel.js +1 -17
- package/dist/tunnel.js.map +1 -1
- package/dist/util/toolHelpers.js +471 -28
- package/dist/util/toolHelpers.js.map +1 -1
- package/package.json +7 -1
- package/templates/line-notification.instructions.md +137 -18
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
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
14
|
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node.js โฅ18">
|
|
15
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-
|
|
16
|
+
<img src="https://img.shields.io/badge/tests-558%20passing-brightgreen" alt="558 tests passing">
|
|
17
17
|
</p>
|
|
18
18
|
|
|
19
19
|
<p align="center">
|
|
@@ -34,13 +34,16 @@
|
|
|
34
34
|
- ๐ **PDF intelligence** โ text extraction, scanned PDFโimage rendering, per-page navigation
|
|
35
35
|
- ๐ **Multi-language** โ English and Japanese, auto-detected from LINE profile
|
|
36
36
|
- ๐ง **Zero config tunnel** โ built-in ngrok management (or bring your own tunnel)
|
|
37
|
-
- ๐ก๏ธ **Security hardened** โ
|
|
37
|
+
- ๐ก๏ธ **Security hardened** โ workspace-scoped file access, path containment, sandboxed PDF parsing
|
|
38
|
+
- ๐ **Access control** โ first user is auto-registered as primary admin; restricted mode activates on follow or status check, blocking other users by default
|
|
38
39
|
|
|
39
40
|
## Contents
|
|
40
41
|
|
|
41
42
|
- [Features](#features)
|
|
43
|
+
- [Companion: Doc Hive](#companion-doc-hive)
|
|
42
44
|
- [Quick Start](#quick-start)
|
|
43
45
|
- [How It Works](#how-it-works)
|
|
46
|
+
- [Prerequisites](#prerequisites)
|
|
44
47
|
- [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)
|
|
45
48
|
- [Your First Message](#your-first-message)
|
|
46
49
|
- [Updating](#updating)
|
|
@@ -52,6 +55,43 @@
|
|
|
52
55
|
- [Contributing](#contributing)
|
|
53
56
|
- [Troubleshooting](#troubleshooting)
|
|
54
57
|
- [Architecture](#architecture)
|
|
58
|
+
- [License](#license)
|
|
59
|
+
|
|
60
|
+
## Companion: Doc Hive
|
|
61
|
+
|
|
62
|
+
LINE Hive handles **communication** โ [Doc Hive](../doc-hive/) handles **documents**. Together, your agents can generate polished spreadsheets, slide decks, and Word documents, then deliver them straight to your phone via LINE.
|
|
63
|
+
|
|
64
|
+
```mermaid
|
|
65
|
+
%%{init: {"theme": "default"}}%%
|
|
66
|
+
flowchart TB
|
|
67
|
+
subgraph Generate["๐ Doc Hive"]
|
|
68
|
+
direction LR
|
|
69
|
+
XLSX["create_xlsx"] ~~~ DOCX["create_docx"] ~~~ PPTX["create_pptx"]
|
|
70
|
+
end
|
|
71
|
+
subgraph Deliver["๐ LINE Hive"]
|
|
72
|
+
direction LR
|
|
73
|
+
Ask["line_ask"] ~~~ Send["line_send_message"]
|
|
74
|
+
end
|
|
75
|
+
Agent["๐ค Agent"] --> Generate
|
|
76
|
+
Generate -.-> File["๐พ Files"]
|
|
77
|
+
File -.-> Deliver
|
|
78
|
+
Agent --> Deliver
|
|
79
|
+
Deliver --> Phone["๐ฑ LINE"]
|
|
80
|
+
|
|
81
|
+
style Generate fill:#e3f2fd,stroke:#1565c0
|
|
82
|
+
style Deliver fill:#f3e5f5,stroke:#7b1fa2
|
|
83
|
+
classDef output fill:#e8f5e9,stroke:#2e7d32
|
|
84
|
+
class Phone output
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Doc Hive is a standalone MCP server โ use it with or without LINE Hive. Install both for the full pipeline:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx @zoulabo/line-hive init # LINE messaging
|
|
91
|
+
npx doc-hive init # Document generation
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
See the [Doc Hive README](../doc-hive/README.md) for full documentation.
|
|
55
95
|
|
|
56
96
|
## Quick Start
|
|
57
97
|
|
|
@@ -261,18 +301,18 @@ npx @zoulabo/line-hive init --editor cursor # switch editor type
|
|
|
261
301
|
| Tool | Purpose | Blocking |
|
|
262
302
|
|------|---------|----------|
|
|
263
303
|
| `line_set_status` | Set agent description + name (status auto-derived) | No |
|
|
264
|
-
| `line_ask` | Send message + wait for reply. Supports `
|
|
304
|
+
| `line_ask` | Send message + wait for reply. Supports `messages[]` with text, `file:` paths, and images. | Yes |
|
|
265
305
|
| `line_send_message` | Push message to LINE (costs quota). Supports `imageBase64`, `imageFilePath`, `filePath`. | Yes (default) |
|
|
266
306
|
| `line_check_messages` | Fetch unclaimed inbound messages | No |
|
|
267
307
|
| `line_list_agents` | List all active agents across editor windows | No |
|
|
268
308
|
| `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
|
|
309
|
+
| `line_render_markdown` | Convert Markdown โ HTML with auto-injected CDN (Mermaid, highlight.js, KaTeX, Chart.js). TTL-managed. | No |
|
|
270
310
|
|
|
271
311
|
### Recommended Pattern
|
|
272
312
|
|
|
273
313
|
```
|
|
274
314
|
1. line_set_status({ description: "Running tests...", agentName: "Nova" }) โ auto-status: working
|
|
275
|
-
2. line_ask({
|
|
315
|
+
2. line_ask({ messages: ["3 tests failed. Fix?"], agentName: "Nova" }) โ auto-status: needs_input
|
|
276
316
|
โ user replies โ auto-status: working
|
|
277
317
|
3. line_set_status({ description: "Applying fixes..." }) โ auto-status: working
|
|
278
318
|
4. line_set_status({}) โ auto-status: idle
|
|
@@ -304,8 +344,8 @@ Auto-detected from the user's LINE profile. Currently **English** (default) and
|
|
|
304
344
|
|
|
305
345
|
- **Push quota** โ free tier: 200/month. Status queries via `?` use reply tokens (free). Send `?` periodically to replenish the token pool.
|
|
306
346
|
- **Reply token expiry** โ ~15 min. Falls back to push when exhausted.
|
|
307
|
-
- **Files** โ receive images & files (stored
|
|
308
|
-
- **Single user** โ designed for one
|
|
347
|
+
- **Files** โ receive images & files (stored on disk in `.line-hive-tmp/incoming/`, 24h TTL). Send via `messages[]` (line_ask) or `imageFilePath`/`filePath` (line_send_message). Served files have a configurable TTL (default 2h, max 24h) with auto-cleanup. Stickers are currently ignored; video and audio are stored as files.
|
|
348
|
+
- **Single user** โ designed for one primary user (admin) per LINE channel. The first follow or status check auto-activates restricted mode; additional users require manual allowlisting via store methods.
|
|
309
349
|
- **Single webhook URL** โ all agent instances share one tunnel endpoint.
|
|
310
350
|
- **Multi-workspace** โ only the first editor claims the webhook port/tunnel. Others piggyback via shared SQLite.
|
|
311
351
|
- **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.
|
|
@@ -315,6 +355,7 @@ Auto-detected from the user's LINE profile. Currently **English** (default) and
|
|
|
315
355
|
```bash
|
|
316
356
|
git clone https://github.com/zoulabo/line-hive && cd line-hive
|
|
317
357
|
npm install && npm run build && npm test
|
|
358
|
+
cp .vscode/mcp.json.example .vscode/mcp.json # MCP dev config
|
|
318
359
|
```
|
|
319
360
|
|
|
320
361
|
| Command | Purpose |
|
|
@@ -331,9 +372,11 @@ npm install && npm run build && npm test
|
|
|
331
372
|
| Feature | Package | Install | Fallback |
|
|
332
373
|
|---------|---------|---------|----------|
|
|
333
374
|
| PDF text extraction | pdfjs-dist | `npm install pdfjs-dist` | No PDF text extraction |
|
|
334
|
-
| Image resizing | sharp | `npm install sharp` |
|
|
375
|
+
| Image resizing + SVGโPNG | sharp | `npm install sharp` | Image resizing returns original size; SVG files served as download links instead of inline images |
|
|
335
376
|
| Scanned PDF images | poppler CLI | `brew install poppler` (macOS) / `apt install poppler-utils` (Linux) | Returns install hint |
|
|
336
377
|
|
|
378
|
+
> **SVG support:** LINE cannot display SVG files inline. When `sharp` is installed, SVG files sent via `line_ask` or `line_send_message` are automatically converted to PNG for inline preview. Without `sharp`, SVGs are served as download links.
|
|
379
|
+
|
|
337
380
|
### Environment Variables
|
|
338
381
|
|
|
339
382
|
For standalone `npm start`:
|
|
@@ -345,12 +388,14 @@ For standalone `npm start`:
|
|
|
345
388
|
| `NGROK_DOMAIN` | No | โ (enables auto-managed tunnel) |
|
|
346
389
|
| `WEBHOOK_PORT` | No | `19780` |
|
|
347
390
|
| `SQLITE_PATH` | No | `~/.line-hive/line-hive.db` |
|
|
391
|
+
| `MAX_INCOMING_FILE_BYTES` | No | `52428800` (50MB) |
|
|
392
|
+
| `MAX_OUTGOING_FILE_BYTES` | No | `209715200` (200MB) |
|
|
348
393
|
|
|
349
394
|
## Contributing
|
|
350
395
|
|
|
351
396
|
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.
|
|
352
397
|
|
|
353
|
-
- `npm test` must pass (~
|
|
398
|
+
- `npm test` must pass (~569 tests, <1s)
|
|
354
399
|
- `npx tsc --noEmit` must be clean
|
|
355
400
|
- Let the agents read skills first, then write the code
|
|
356
401
|
|
|
@@ -400,6 +445,7 @@ Don't use `--editor vscode` โ that's for GitHub Copilot.
|
|
|
400
445
|
- **SQLite** (WAL mode) shared across all agent instances at `~/.line-hive/line-hive.db`
|
|
401
446
|
- **Heartbeat** every 10s โ dead agents auto-cleaned after 2 min
|
|
402
447
|
- **Reply token pooling** โ webhook saves tokens for free replies (saves push quota)
|
|
448
|
+
- **TTL-managed file serving** โ images, HTML, and documents served from disk with configurable TTL (default 2h, max 24h); expired files auto-cleaned every 60s
|
|
403
449
|
- **Session correlation** โ `line_ask` creates a session, webhook fulfills it on reply
|
|
404
450
|
- **Multi-agent routing** โ user selects agent via quick reply buttons, or auto-routes to `needs_input` agent
|
|
405
451
|
- **Embedded tunnel** โ ngrok auto-managed as child process (optional; any tunnel to localhost:19780 works)
|
|
@@ -194,7 +194,7 @@ async function writeClaudeMcpConfig(projectDir, options) {
|
|
|
194
194
|
LINE_CHANNEL_ACCESS_TOKEN: "${LINE_CHANNEL_ACCESS_TOKEN}",
|
|
195
195
|
LINE_CHANNEL_SECRET: "${LINE_CHANNEL_SECRET}",
|
|
196
196
|
NGROK_DOMAIN: "${NGROK_DOMAIN:-}",
|
|
197
|
-
WORKSPACE_PATH:
|
|
197
|
+
WORKSPACE_PATH: ".",
|
|
198
198
|
WEBHOOK_PORT: "19780"
|
|
199
199
|
}
|
|
200
200
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-writer.js","sourceRoot":"","sources":["../../src/cli/config-writer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-writer.js","sourceRoot":"","sources":["../../src/cli/config-writer.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -56,7 +56,10 @@ export function loadConfig() {
|
|
|
56
56
|
agentName: process.env.AGENT_NAME || deriveAgentName(workspacePath),
|
|
57
57
|
heartbeatIntervalMs: numberEnv("HEARTBEAT_INTERVAL_MS", 10000),
|
|
58
58
|
heartbeatTimeoutMs: numberEnv("HEARTBEAT_TIMEOUT_MS", 600000),
|
|
59
|
-
ngrokDomain: process.env.NGROK_DOMAIN?.trim() || undefined
|
|
59
|
+
ngrokDomain: process.env.NGROK_DOMAIN?.trim() || undefined,
|
|
60
|
+
serveDir: process.env.SERVE_DIR || path.resolve(".line-hive-tmp"),
|
|
61
|
+
maxIncomingFileBytes: numberEnv("MAX_INCOMING_FILE_BYTES", 100 * 1024 * 1024),
|
|
62
|
+
maxOutgoingFileBytes: numberEnv("MAX_OUTGOING_FILE_BYTES", 100 * 1024 * 1024),
|
|
60
63
|
};
|
|
61
64
|
}
|
|
62
65
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -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,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;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -10,6 +10,14 @@ export const MAX_TIMEOUT_MS = 86400000; // 24 hours
|
|
|
10
10
|
export const POLL_INTERVAL_MS = 2000;
|
|
11
11
|
// Reply token pool
|
|
12
12
|
export const REPLY_TOKEN_MAX_AGE_MS = 900000; // 15 min
|
|
13
|
+
// Served file TTL
|
|
14
|
+
export const DEFAULT_FILE_TTL_MS = 2 * 60 * 60 * 1000; // 2 hours
|
|
15
|
+
export const MAX_FILE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
16
|
+
// Incoming media disk storage
|
|
17
|
+
export const INCOMING_MEDIA_DIR = ".line-hive-tmp/incoming";
|
|
13
18
|
// Config keys
|
|
14
19
|
export const CONFIG_TARGETED_AGENT = "targeted_agent_id";
|
|
20
|
+
export const CONFIG_ALLOWED_USERS = "allowed_users";
|
|
21
|
+
// Session reminder appended to line_ask / line_set_status tool responses
|
|
22
|
+
export const LINE_SESSION_REMINDER = "โ ๏ธ Active LINE session. All replies MUST go through line_ask โ do not respond in editor chat. Do not interpret casual replies (done, ok, thanks) as session termination. Follow all rules in line-notification.instructions.md. Write temp files ONLY to .line-hive-tmp/ โ never use /tmp, ~/Desktop, or paths outside the workspace.";
|
|
15
23
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kBAAkB;AAClB,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,WAAW;AAEnD,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC,mBAAmB;AACnB,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,SAAS;AAEvD,cAAc;AACd,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kBAAkB;AAClB,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,WAAW;AAEnD,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC,mBAAmB;AACnB,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,SAAS;AAEvD,kBAAkB;AAClB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAW,UAAU;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAS,WAAW;AAEvE,8BAA8B;AAC9B,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAE5D,cAAc;AACd,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEpD,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,uUAAuU,CAAC"}
|
package/dist/i18n.js
CHANGED
|
@@ -34,6 +34,7 @@ const en = {
|
|
|
34
34
|
deleteSuccess: () => "โ
Message deleted.",
|
|
35
35
|
deleteNotFound: () => "โ ๏ธ Message not found (already consumed or deleted).",
|
|
36
36
|
btnDelete: () => "๐๏ธ",
|
|
37
|
+
btnDismiss: () => "โ",
|
|
37
38
|
// Quick reply button labels
|
|
38
39
|
btnContinue: () => "โ
",
|
|
39
40
|
btnStatus: () => "๐",
|
|
@@ -48,7 +49,7 @@ const en = {
|
|
|
48
49
|
// Errors
|
|
49
50
|
noAgentN: (n) => `No agent #${n}. Tap ๐ Status to see the list.`,
|
|
50
51
|
agentOffline: (name) => `${name} is offline. Tap ๐ Status.`,
|
|
51
|
-
noAgentSelected: () => "โ ๏ธ No agent selected โ message not delivered. Tap Continue
|
|
52
|
+
noAgentSelected: () => "โ ๏ธ No agent selected โ message not delivered. Tap Continue.",
|
|
52
53
|
// Time
|
|
53
54
|
justNow: () => "just now",
|
|
54
55
|
minutesAgo: (m) => `${m}m ago`,
|
|
@@ -80,6 +81,7 @@ const ja = {
|
|
|
80
81
|
deleteSuccess: () => "โ
ใกใใปใผใธใๅ้คใใพใใใ",
|
|
81
82
|
deleteNotFound: () => "โ ๏ธ ใกใใปใผใธใ่ฆใคใใใพใใ๏ผๆถ่ฒปๆธใฟใพใใฏๅ้คๆธใฟ๏ผใ",
|
|
82
83
|
btnDelete: () => "๐๏ธ",
|
|
84
|
+
btnDismiss: () => "โ",
|
|
83
85
|
btnContinue: () => "โ
",
|
|
84
86
|
btnStatus: () => "๐",
|
|
85
87
|
btnQueued: () => "๐ฌ",
|
package/dist/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,gEAAgE;AAChE,MAAM,UAAU,aAAa,CAAC,QAAwB;IACpD,IAAI,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAE/E,MAAM,EAAE,GAAG;IACT,iBAAiB;IACjB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG;IACtC,OAAO,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,eAAe,IAAI,KAAK,GAAG,GAAG;IACtE,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,eAAe,GAAG,GAAG;IACrD,UAAU,EAAE,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CAAC,gBAAgB,MAAM,KAAK,GAAG,GAAG;IAC9E,kBAAkB,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,sBAAsB,GAAG,GAAG;IACjE,KAAK,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,UAAU,IAAI,KAAK,GAAG,GAAG;IAC/D,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG;IAC9C,OAAO,EAAE,CAAC,IAAY,EAAE,UAAkB,EAAE,GAAW,EAAE,EAAE,CACzD,MAAM,IAAI,cAAc,UAAU,KAAK,GAAG,GAAG;IAC/C,cAAc,EAAE,GAAG,EAAE,CAAC,mBAAmB;IAEzC,QAAQ;IACR,WAAW,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACvE,gBAAgB,EAAE,GAAG,EAAE,CAAC,uCAAuC;IAC/D,QAAQ,EAAE,GAAG,EAAE,CAAC,wBAAwB;IACxC,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,KAAK,GAAG;IAC7D,YAAY,EAAE,GAAG,EAAE,CAAC,qBAAqB;IACzC,SAAS,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,iBAAiB,KAAK,GAAG,IAAI,EAAE;IAC3E,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;IAExC,eAAe;IACf,WAAW,EAAE,GAAG,EAAE,CAAC,8BAA8B;IACjD,aAAa,EAAE,GAAG,EAAE,CAAC,oBAAoB;IACzC,cAAc,EAAE,GAAG,EAAE,CAAC,qDAAqD;IAC3E,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,gEAAgE;AAChE,MAAM,UAAU,aAAa,CAAC,QAAwB;IACpD,IAAI,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAE/E,MAAM,EAAE,GAAG;IACT,iBAAiB;IACjB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG;IACtC,OAAO,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,eAAe,IAAI,KAAK,GAAG,GAAG;IACtE,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,eAAe,GAAG,GAAG;IACrD,UAAU,EAAE,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CAAC,gBAAgB,MAAM,KAAK,GAAG,GAAG;IAC9E,kBAAkB,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,sBAAsB,GAAG,GAAG;IACjE,KAAK,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,UAAU,IAAI,KAAK,GAAG,GAAG;IAC/D,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG;IAC9C,OAAO,EAAE,CAAC,IAAY,EAAE,UAAkB,EAAE,GAAW,EAAE,EAAE,CACzD,MAAM,IAAI,cAAc,UAAU,KAAK,GAAG,GAAG;IAC/C,cAAc,EAAE,GAAG,EAAE,CAAC,mBAAmB;IAEzC,QAAQ;IACR,WAAW,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACvE,gBAAgB,EAAE,GAAG,EAAE,CAAC,uCAAuC;IAC/D,QAAQ,EAAE,GAAG,EAAE,CAAC,wBAAwB;IACxC,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,KAAK,GAAG;IAC7D,YAAY,EAAE,GAAG,EAAE,CAAC,qBAAqB;IACzC,SAAS,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,iBAAiB,KAAK,GAAG,IAAI,EAAE;IAC3E,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;IAExC,eAAe;IACf,WAAW,EAAE,GAAG,EAAE,CAAC,8BAA8B;IACjD,aAAa,EAAE,GAAG,EAAE,CAAC,oBAAoB;IACzC,cAAc,EAAE,GAAG,EAAE,CAAC,qDAAqD;IAC3E,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;IACtB,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG;IAErB,4BAA4B;IAC5B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG;IACtB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;IACnB,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU;IAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ;IACtB,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO;IACpB,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;IAEtC,gBAAgB;IAChB,aAAa,EAAE,CAAC,IAAY,EAAE,UAAkB,EAAE,EAAE,CAClD,UAAU,IAAI,MAAM,UAAU,EAAE;IAElC,SAAS;IACT,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CACtB,aAAa,CAAC,kCAAkC;IAClD,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,6BAA6B;IACpE,eAAe,EAAE,GAAG,EAAE,CACpB,6DAA6D;IAE/D,OAAO;IACP,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU;IACzB,UAAU,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO;IACtC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO;IACpC,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO;IAEnC,OAAO;IACP,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;IACtB,UAAU,EAAE,GAAG,EAAE,CAAC,6VAA6V;IAC/W,eAAe,EAAE,CAAC,QAAgB,EAAE,EAAE,CACpC,6BAA6B,QAAQ,GAAG;CAC3C,CAAC;AAEF,MAAM,EAAE,GAAc;IACpB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,GAAG;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,IAAI,KAAK,GAAG,GAAG;IAC/C,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,GAAG;IACzC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,MAAM,KAAK,GAAG,GAAG;IACvD,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG;IAC5C,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,IAAI,KAAK,GAAG,GAAG;IAC7C,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,GAAG;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CACjC,MAAM,IAAI,YAAY,UAAU,KAAK,GAAG,GAAG;IAC7C,cAAc,EAAE,GAAG,EAAE,CAAC,qBAAqB;IAE3C,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS;IACpC,gBAAgB,EAAE,GAAG,EAAE,CAAC,gCAAgC;IACxD,QAAQ,EAAE,GAAG,EAAE,CAAC,uBAAuB;IACvC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO;IAC9C,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB;IACrC,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,EAAE;IACpD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO;IAE7B,WAAW,EAAE,GAAG,EAAE,CAAC,qBAAqB;IACxC,aAAa,EAAE,GAAG,EAAE,CAAC,iBAAiB;IACtC,cAAc,EAAE,GAAG,EAAE,CAAC,gCAAgC;IACtD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;IACtB,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG;IAErB,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG;IACtB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;IACnB,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;IAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO;IACrB,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ;IACrB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG;IAE5B,aAAa,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAClC,GAAG,IAAI,aAAa,UAAU,EAAE;IAElC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,WAAW,CAAC,2BAA2B;IACzC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,qBAAqB;IACpD,eAAe,EAAE,GAAG,EAAE,CACpB,6CAA6C;IAE/C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM;IACrB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;IAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;IAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;IAExB,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;IACtB,UAAU,EAAE,GAAG,EAAE,CAAC,iPAAiP;IACnQ,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,gBAAgB,QAAQ,GAAG;CAC9B,CAAC;AAMF,MAAM,QAAQ,GAA6B,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,UAAU,CAAC,CAAC,MAAc;IAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;AACzC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,8 @@ import { createServer } from "./server.js";
|
|
|
13
13
|
import { startWebhookServer } from "./line/webhook.js";
|
|
14
14
|
import { startTunnel, stopTunnel } from "./tunnel.js";
|
|
15
15
|
import { installProjectInstructions, installClaudeCodeInstructions, ensureGitignoreEntries } from "./cli/config-writer.js";
|
|
16
|
+
import { DEFAULT_FILE_TTL_MS } from "./constants.js";
|
|
17
|
+
import { getServeDir } from "./util/toolHelpers.js";
|
|
16
18
|
const require = createRequire(import.meta.url);
|
|
17
19
|
const { version } = require("../package.json");
|
|
18
20
|
/** Check if a TCP port is available (not in use) */
|
|
@@ -45,6 +47,28 @@ async function main() {
|
|
|
45
47
|
const messageStore = new MessageStore(db);
|
|
46
48
|
const statusStore = new StatusStore(db, config.agentId, config.agentName);
|
|
47
49
|
const lineClient = createLineClient(config);
|
|
50
|
+
// Re-register orphaned files on disk that lost their DB tracking (e.g. after DB reset)
|
|
51
|
+
const serveDir = getServeDir(config);
|
|
52
|
+
if (fs.existsSync(serveDir)) {
|
|
53
|
+
let reregistered = 0;
|
|
54
|
+
for (const f of fs.readdirSync(serveDir)) {
|
|
55
|
+
// Only re-register UUID-named files (skip subdirectories like incoming/)
|
|
56
|
+
if (!f.match(/^[0-9a-f]{8}-/) || fs.statSync(path.join(serveDir, f)).isDirectory())
|
|
57
|
+
continue;
|
|
58
|
+
const tracked = messageStore.getServedFileExpiry(f);
|
|
59
|
+
if (!tracked) {
|
|
60
|
+
// Use file mtime to calculate remaining TTL (default 2h from creation)
|
|
61
|
+
const stat = fs.statSync(path.join(serveDir, f));
|
|
62
|
+
const ageMs = Date.now() - stat.mtimeMs;
|
|
63
|
+
const remainingMs = Math.max(DEFAULT_FILE_TTL_MS - ageMs, 60000); // at least 1 min
|
|
64
|
+
messageStore.trackServedFile(f, remainingMs);
|
|
65
|
+
reregistered++;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (reregistered > 0) {
|
|
69
|
+
logger.info({ count: reregistered }, "Re-registered orphaned served files");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
48
72
|
logger.info({ agentId: config.agentId, agentName: config.agentName }, "Agent registered");
|
|
49
73
|
// Start webhook server โ only the first agent claims the port
|
|
50
74
|
let webhookServer = null;
|
|
@@ -82,8 +106,8 @@ async function main() {
|
|
|
82
106
|
webhookServer = null;
|
|
83
107
|
});
|
|
84
108
|
}
|
|
85
|
-
catch {
|
|
86
|
-
|
|
109
|
+
catch (err) {
|
|
110
|
+
logger.debug({ error: err instanceof Error ? err.message : err }, "Port still in use โ will retry on next heartbeat");
|
|
87
111
|
}
|
|
88
112
|
}
|
|
89
113
|
// Initial attempt to claim the port
|
|
@@ -147,9 +171,41 @@ async function main() {
|
|
|
147
171
|
}
|
|
148
172
|
}, config.heartbeatIntervalMs);
|
|
149
173
|
const cleanupTimer = setInterval(() => {
|
|
150
|
-
messageStore.cleanup();
|
|
174
|
+
const incomingMediaPaths = messageStore.cleanup();
|
|
151
175
|
messageStore.expireSessions(Date.now());
|
|
152
176
|
messageStore.cleanupDeadAgentSessions(config.heartbeatTimeoutMs);
|
|
177
|
+
// Clean up incoming media files from disk (returned by cleanup())
|
|
178
|
+
let incomingDeleted = 0;
|
|
179
|
+
for (const diskPath of incomingMediaPaths) {
|
|
180
|
+
try {
|
|
181
|
+
const fullPath = path.resolve(diskPath);
|
|
182
|
+
if (fs.existsSync(fullPath)) {
|
|
183
|
+
fs.unlinkSync(fullPath);
|
|
184
|
+
incomingDeleted++;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch { /* ignore cleanup errors */ }
|
|
188
|
+
}
|
|
189
|
+
if (incomingDeleted > 0) {
|
|
190
|
+
logger.info({ count: incomingDeleted }, "Cleaned up incoming media files");
|
|
191
|
+
}
|
|
192
|
+
// Clean up expired served files from disk
|
|
193
|
+
const expiredFiles = messageStore.cleanupExpiredServedFiles();
|
|
194
|
+
const serveDir = getServeDir(config);
|
|
195
|
+
let servedDeleted = 0;
|
|
196
|
+
for (const filename of expiredFiles) {
|
|
197
|
+
try {
|
|
198
|
+
const filePath = path.join(serveDir, filename);
|
|
199
|
+
if (fs.existsSync(filePath)) {
|
|
200
|
+
fs.unlinkSync(filePath);
|
|
201
|
+
servedDeleted++;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
catch { /* ignore cleanup errors */ }
|
|
205
|
+
}
|
|
206
|
+
if (servedDeleted > 0) {
|
|
207
|
+
logger.info({ deleted: servedDeleted, expired: expiredFiles.length }, "Cleaned up expired served files");
|
|
208
|
+
}
|
|
153
209
|
}, config.cleanupIntervalMs);
|
|
154
210
|
let shuttingDown = false;
|
|
155
211
|
const shutdown = () => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/line/messages.js
CHANGED
|
@@ -5,6 +5,131 @@
|
|
|
5
5
|
* These are passed to lineClient.replyMessage() which forwards them to the SDK.
|
|
6
6
|
*/
|
|
7
7
|
import { t } from "../i18n.js";
|
|
8
|
+
// โโโ File Attachment Helpers โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
9
|
+
/** MIME types that should be sent as Flex "attachment card" instead of plain link */
|
|
10
|
+
const ATTACHMENT_MIMES = new Set([
|
|
11
|
+
"application/pdf",
|
|
12
|
+
"application/msword",
|
|
13
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
14
|
+
"application/vnd.ms-excel",
|
|
15
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
16
|
+
"application/vnd.ms-powerpoint",
|
|
17
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
18
|
+
"application/zip",
|
|
19
|
+
"application/x-tar",
|
|
20
|
+
"application/gzip",
|
|
21
|
+
]);
|
|
22
|
+
/** Check if a MIME type should be sent as a rich attachment card */
|
|
23
|
+
export function isAttachmentFile(mimeType) {
|
|
24
|
+
return ATTACHMENT_MIMES.has(mimeType);
|
|
25
|
+
}
|
|
26
|
+
/** Pick an icon emoji based on MIME type */
|
|
27
|
+
function fileTypeIcon(mimeType) {
|
|
28
|
+
if (mimeType.includes("spreadsheet") || mimeType.includes("excel"))
|
|
29
|
+
return "๐";
|
|
30
|
+
if (mimeType.includes("presentation") || mimeType.includes("powerpoint"))
|
|
31
|
+
return "๐";
|
|
32
|
+
if (mimeType.includes("word") || mimeType.includes("document"))
|
|
33
|
+
return "๐";
|
|
34
|
+
if (mimeType === "application/pdf")
|
|
35
|
+
return "๐";
|
|
36
|
+
if (mimeType.includes("zip") || mimeType.includes("tar") || mimeType.includes("gzip"))
|
|
37
|
+
return "๐ฆ";
|
|
38
|
+
return "๐";
|
|
39
|
+
}
|
|
40
|
+
/** Pick a short label for the file type */
|
|
41
|
+
function fileTypeLabel(mimeType) {
|
|
42
|
+
if (mimeType.includes("spreadsheet") || mimeType.includes("excel"))
|
|
43
|
+
return "Excel";
|
|
44
|
+
if (mimeType.includes("presentation") || mimeType.includes("powerpoint"))
|
|
45
|
+
return "PowerPoint";
|
|
46
|
+
if (mimeType.includes("word") || mimeType.includes("document"))
|
|
47
|
+
return "Word";
|
|
48
|
+
if (mimeType === "application/pdf")
|
|
49
|
+
return "PDF";
|
|
50
|
+
if (mimeType.includes("zip") || mimeType.includes("tar") || mimeType.includes("gzip"))
|
|
51
|
+
return "Archive";
|
|
52
|
+
return "File";
|
|
53
|
+
}
|
|
54
|
+
/** Format byte size as human-readable string */
|
|
55
|
+
function formatFileSize(bytes) {
|
|
56
|
+
if (bytes < 1024)
|
|
57
|
+
return `${bytes} B`;
|
|
58
|
+
if (bytes < 1024 * 1024)
|
|
59
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
60
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Build a Flex Message "attachment card" for binary files.
|
|
64
|
+
* Looks like a native file attachment bubble with icon, name, size, and download button.
|
|
65
|
+
*/
|
|
66
|
+
export function buildFileAttachmentFlex(fileName, fileSize, fileUrl, expiresIn, mimeType) {
|
|
67
|
+
const icon = fileTypeIcon(mimeType);
|
|
68
|
+
const typeLabel = fileTypeLabel(mimeType);
|
|
69
|
+
const sizeStr = formatFileSize(fileSize);
|
|
70
|
+
return {
|
|
71
|
+
type: "flex",
|
|
72
|
+
altText: `๐ ${fileName}`,
|
|
73
|
+
contents: {
|
|
74
|
+
type: "bubble",
|
|
75
|
+
size: "kilo",
|
|
76
|
+
body: {
|
|
77
|
+
type: "box",
|
|
78
|
+
layout: "horizontal",
|
|
79
|
+
spacing: "lg",
|
|
80
|
+
paddingAll: "16px",
|
|
81
|
+
contents: [
|
|
82
|
+
{
|
|
83
|
+
type: "text",
|
|
84
|
+
text: icon,
|
|
85
|
+
size: "xxl",
|
|
86
|
+
flex: 0,
|
|
87
|
+
gravity: "center",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: "box",
|
|
91
|
+
layout: "vertical",
|
|
92
|
+
flex: 1,
|
|
93
|
+
spacing: "xs",
|
|
94
|
+
contents: [
|
|
95
|
+
{
|
|
96
|
+
type: "text",
|
|
97
|
+
text: fileName,
|
|
98
|
+
weight: "bold",
|
|
99
|
+
size: "sm",
|
|
100
|
+
wrap: true,
|
|
101
|
+
maxLines: 2,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: "text",
|
|
105
|
+
text: `${typeLabel} ยท ${sizeStr} ยท โฑ ${expiresIn}`,
|
|
106
|
+
size: "xs",
|
|
107
|
+
color: "#888888",
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
footer: {
|
|
114
|
+
type: "box",
|
|
115
|
+
layout: "vertical",
|
|
116
|
+
contents: [
|
|
117
|
+
{
|
|
118
|
+
type: "button",
|
|
119
|
+
action: {
|
|
120
|
+
type: "uri",
|
|
121
|
+
label: "Download",
|
|
122
|
+
uri: fileUrl,
|
|
123
|
+
},
|
|
124
|
+
style: "primary",
|
|
125
|
+
height: "sm",
|
|
126
|
+
color: "#06C755",
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
8
133
|
// โโโ Constants โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
9
134
|
export const STATUS_ICONS = {
|
|
10
135
|
idle: "๐ค",
|
|
@@ -210,11 +335,25 @@ function buildZeroAgentQuickReply(locale = "en") {
|
|
|
210
335
|
};
|
|
211
336
|
}
|
|
212
337
|
/** Text message with quick reply buttons */
|
|
213
|
-
export function textWithQuickReply(text, agents, locale = "en") {
|
|
338
|
+
export function textWithQuickReply(text, agents, locale = "en", options) {
|
|
339
|
+
const qr = agents.length > 0 ? buildQuickReply(agents, locale) : buildZeroAgentQuickReply(locale);
|
|
340
|
+
// Insert โ dismiss button after โ
Continue (index 0) when a message ID is provided
|
|
341
|
+
if (options?.dismissMessageId) {
|
|
342
|
+
const m = t(locale);
|
|
343
|
+
qr.items.splice(1, 0, {
|
|
344
|
+
type: "action",
|
|
345
|
+
action: {
|
|
346
|
+
type: "postback",
|
|
347
|
+
label: m.btnDismiss(),
|
|
348
|
+
data: new URLSearchParams({ action: "delete_queue_item", messageId: String(options.dismissMessageId) }).toString(),
|
|
349
|
+
displayText: "โ",
|
|
350
|
+
},
|
|
351
|
+
});
|
|
352
|
+
}
|
|
214
353
|
return {
|
|
215
354
|
type: "text",
|
|
216
355
|
text,
|
|
217
|
-
quickReply:
|
|
356
|
+
quickReply: qr,
|
|
218
357
|
};
|
|
219
358
|
}
|
|
220
359
|
/** Text message with quick reply buttons + a ๐๏ธ delete button (for queue display with messages) */
|