@zoulabo/line-hive 0.1.21 → 0.1.23

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 (45) hide show
  1. package/README.md +51 -7
  2. package/dist/cli/config-writer.js +1 -1
  3. package/dist/cli/config-writer.js.map +1 -1
  4. package/dist/config.js +4 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/constants.js +2 -0
  7. package/dist/constants.js.map +1 -1
  8. package/dist/i18n.js +3 -1
  9. package/dist/i18n.js.map +1 -1
  10. package/dist/index.js +29 -3
  11. package/dist/index.js.map +1 -1
  12. package/dist/line/messages.js +141 -2
  13. package/dist/line/messages.js.map +1 -1
  14. package/dist/line/webhook.js +163 -28
  15. package/dist/line/webhook.js.map +1 -1
  16. package/dist/server.js +40 -15
  17. package/dist/server.js.map +1 -1
  18. package/dist/store/messageStore.js +16 -36
  19. package/dist/store/messageStore.js.map +1 -1
  20. package/dist/tools/ask.js +85 -55
  21. package/dist/tools/ask.js.map +1 -1
  22. package/dist/tools/createDocx.js +459 -0
  23. package/dist/tools/createDocx.js.map +1 -0
  24. package/dist/tools/createPptx.js +554 -0
  25. package/dist/tools/createPptx.js.map +1 -0
  26. package/dist/tools/createXlsx.js +360 -0
  27. package/dist/tools/createXlsx.js.map +1 -0
  28. package/dist/tools/gitReview-template.js +208 -0
  29. package/dist/tools/gitReview-template.js.map +1 -0
  30. package/dist/tools/gitReview.js +232 -0
  31. package/dist/tools/gitReview.js.map +1 -0
  32. package/dist/tools/readFile.js +6 -25
  33. package/dist/tools/readFile.js.map +1 -1
  34. package/dist/tools/renderMarkdown.js +159 -31
  35. package/dist/tools/renderMarkdown.js.map +1 -1
  36. package/dist/tools/sendMessage.js +9 -3
  37. package/dist/tools/sendMessage.js.map +1 -1
  38. package/dist/tools/setStatus.js +4 -2
  39. package/dist/tools/setStatus.js.map +1 -1
  40. package/dist/tunnel.js +1 -17
  41. package/dist/tunnel.js.map +1 -1
  42. package/dist/util/toolHelpers.js +232 -38
  43. package/dist/util/toolHelpers.js.map +1 -1
  44. package/package.json +7 -1
  45. package/templates/line-notification.instructions.md +114 -14
@@ -1 +1 @@
1
- {"version":3,"file":"renderMarkdown.js","sourceRoot":"","sources":["../../src/tools/renderMarkdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderMarkdown.js","sourceRoot":"","sources":["../../src/tools/renderMarkdown.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import { isAttachmentFile, buildFileAttachmentFlex } from "../line/messages.js";
1
2
  import { logger as defaultLogger } from "../logger.js";
2
3
  import { waitForReplyInternal } from "./waitForReplyInternal.js";
3
4
  import { sendWithTokenPool } from "../util/sendWithTokenPool.js";
4
5
  import { validateToolInput, isValidationError, checkAgentNameCollision, clampTimeout, clampTtlMs, toolResult, toolError, storeAndBuildImageUrl, storeAndBuildFileUrl, mediaToContentBlocks } from "../util/toolHelpers.js";
5
- import { CONFIG_TARGETED_AGENT } from "../constants.js";
6
+ import { CONFIG_TARGETED_AGENT, LINE_SESSION_REMINDER } from "../constants.js";
6
7
  export async function handleSendMessage({ config, messageStore, statusStore, lineClient, logger = defaultLogger, args, correlationId }) {
7
8
  const validated = validateToolInput(args, config, messageStore, statusStore);
8
9
  if (isValidationError(validated))
@@ -38,7 +39,7 @@ export async function handleSendMessage({ config, messageStore, statusStore, lin
38
39
  const ttlMs = clampTtlMs(args.ttl);
39
40
  // filePath takes precedence (any file type); imageFilePath/imageBase64 for images only
40
41
  if (args.filePath) {
41
- const fileResult = storeAndBuildFileUrl(args.filePath, config, messageStore, ttlMs);
42
+ const fileResult = await storeAndBuildFileUrl(args.filePath, config, messageStore, ttlMs);
42
43
  if ("error" in fileResult) {
43
44
  logger.warn({ error: fileResult.error }, "File send skipped");
44
45
  }
@@ -56,6 +57,9 @@ export async function handleSendMessage({ config, messageStore, statusStore, lin
56
57
  text: `📎 ${fileResult.fileName} (⏱ ${fileResult.expiresIn})\n${fileResult.previewUrl}`,
57
58
  });
58
59
  }
60
+ else if (isAttachmentFile(fileResult.mimeType)) {
61
+ messages.push(buildFileAttachmentFlex(fileResult.fileName, fileResult.fileSize, fileResult.url, fileResult.expiresIn, fileResult.mimeType));
62
+ }
59
63
  else {
60
64
  messages.push({
61
65
  type: "text",
@@ -143,7 +147,9 @@ export async function handleSendMessage({ config, messageStore, statusStore, lin
143
147
  }
144
148
  return { content };
145
149
  }
146
- return toolResult(result);
150
+ const wrapped = toolResult(result);
151
+ wrapped.content[0].text += "\n\n" + LINE_SESSION_REMINDER;
152
+ return wrapped;
147
153
  }
148
154
  catch (error) {
149
155
  if (waitForReply) {
@@ -1 +1 @@
1
- {"version":3,"file":"sendMessage.js","sourceRoot":"","sources":["../../src/tools/sendMessage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sendMessage.js","sourceRoot":"","sources":["../../src/tools/sendMessage.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { logger as defaultLogger } from "../logger.js";
2
2
  import { checkAgentNameCollision, toolResult } from "../util/toolHelpers.js";
3
- import { CONFIG_TARGETED_AGENT } from "../constants.js";
3
+ import { CONFIG_TARGETED_AGENT, LINE_SESSION_REMINDER } from "../constants.js";
4
4
  export function handleSetStatus({ statusStore, messageStore, logger = defaultLogger }, args) {
5
5
  // Use agent-provided agentName for sub-task isolation; omit to use base row
6
6
  const agentName = typeof args.agentName === 'string'
@@ -48,6 +48,8 @@ export function handleSetStatus({ statusStore, messageStore, logger = defaultLog
48
48
  }
49
49
  }
50
50
  }
51
- return toolResult(result);
51
+ const wrapped = toolResult(result);
52
+ wrapped.content[0].text += "\n\n" + LINE_SESSION_REMINDER;
53
+ return wrapped;
52
54
  }
53
55
  //# sourceMappingURL=setStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setStatus.js","sourceRoot":"","sources":["../../src/tools/setStatus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,UAAU,eAAe,CAC7B,EACE,WAAW,EACX,YAAY,EACZ,MAAM,GAAG,aAAa,EACmE,EAC3F,IAA6B;IAE7B,4EAA4E;IAC5E,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAClD,CAAC,CAAC,IAAI,CAAC,SAAS;QAChB,CAAC,CAAC,IAAI,CAAC;IAET,kDAAkD;IAClD,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mEAAmE;IACnE,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhD,WAAW,CAAC,SAAS,CAAC;QACpB,MAAM;QACN,WAAW;QACX,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,SAAS;KACV,CAAC,CAAC;IAEH,uEAAuE;IACvE,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,YAAY,EAAE,CAAC;QACtD,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEvD,0FAA0F;IAC1F,MAAM,YAAY,GAAG,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,MAAM,GAA4B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,uEAAuE;IACvE,mFAAmF;IACnF,uEAAuE;IACvE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG,WAAW,CAAC,gBAAgB,CAAC;YACpD,MAAM,cAAc,GAAG,YAAY,CAAC,sBAAsB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACxF,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"setStatus.js","sourceRoot":"","sources":["../../src/tools/setStatus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE/E,MAAM,UAAU,eAAe,CAC7B,EACE,WAAW,EACX,YAAY,EACZ,MAAM,GAAG,aAAa,EACmE,EAC3F,IAA6B;IAE7B,4EAA4E;IAC5E,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAClD,CAAC,CAAC,IAAI,CAAC,SAAS;QAChB,CAAC,CAAC,IAAI,CAAC;IAET,kDAAkD;IAClD,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mEAAmE;IACnE,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhD,WAAW,CAAC,SAAS,CAAC;QACpB,MAAM;QACN,WAAW;QACX,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,SAAS;KACV,CAAC,CAAC;IAEH,uEAAuE;IACvE,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,YAAY,EAAE,CAAC;QACtD,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEvD,0FAA0F;IAC1F,MAAM,YAAY,GAAG,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,MAAM,GAA4B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,uEAAuE;IACvE,mFAAmF;IACnF,uEAAuE;IACvE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG,WAAW,CAAC,gBAAgB,CAAC;YACpD,MAAM,cAAc,GAAG,YAAY,CAAC,sBAAsB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACxF,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAoC,CAAC,IAAI,IAAI,MAAM,GAAG,qBAAqB,CAAC;IAC9F,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/tunnel.js CHANGED
@@ -105,26 +105,10 @@ export function startTunnel(opts) {
105
105
  }
106
106
  /**
107
107
  * Stop an ngrok tunnel process gracefully.
108
- * Accepts either a TunnelHandle or a legacy ChildProcess.
109
108
  */
110
109
  export function stopTunnel(handle, logger) {
111
110
  if (!handle)
112
111
  return;
113
- // TunnelHandle (new API)
114
- if ('stop' in handle && typeof handle.stop === 'function') {
115
- handle.stop();
116
- return;
117
- }
118
- // Legacy ChildProcess fallback
119
- const child = handle;
120
- if (child.killed)
121
- return;
122
- logger?.info("Stopping ngrok tunnel");
123
- child.kill("SIGTERM");
124
- setTimeout(() => {
125
- if (!child.killed) {
126
- child.kill("SIGKILL");
127
- }
128
- }, 3000).unref();
112
+ handle.stop();
129
113
  }
130
114
  //# sourceMappingURL=tunnel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../src/tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../src/tunnel.ts"],"names":[],"mappings":"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"}
@@ -6,20 +6,51 @@ import { randomUUID } from "crypto";
6
6
  import { MAX_LINE_TEXT_LENGTH, MIN_TIMEOUT_MS, MAX_TIMEOUT_MS, DEFAULT_FILE_TTL_MS, MAX_FILE_TTL_MS } from "../constants.js";
7
7
  import fs from "fs";
8
8
  import path from "path";
9
+ import { pipeline } from "stream/promises";
10
+ // ─── SVG Conversion ─────────────────────────────────────────────────────────
11
+ /**
12
+ * Convert SVG buffer to PNG using sharp (optional dependency).
13
+ * Returns the PNG buffer, or null if sharp is not available or conversion fails.
14
+ * LINE cannot display SVG inline — only raster images (JPEG, PNG, GIF, WEBP).
15
+ */
16
+ async function convertSvgToPng(svgBuffer) {
17
+ try {
18
+ const sharp = (await import("sharp")).default;
19
+ return await sharp(svgBuffer).png().toBuffer();
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ // ─── Serve Directory ────────────────────────────────────────────────────────
26
+ const DEFAULT_SERVE_DIR = ".line-hive-tmp";
27
+ /** Resolve the serve directory from config, falling back to default */
28
+ export function getServeDir(config) {
29
+ return config?.serveDir || path.resolve(DEFAULT_SERVE_DIR);
30
+ }
9
31
  // ─── Path Security ──────────────────────────────────────────────────────────
10
32
  /**
11
33
  * Ensure a resolved path is within the workspace directory.
12
- * Prevents path traversal attacks (e.g. `../../etc/passwd`).
34
+ * Prevents path traversal attacks (e.g. `../../etc/passwd`) and
35
+ * symlink escapes (resolves real path for existing files).
13
36
  */
14
37
  export function assertWithinWorkspace(resolvedPath, label) {
15
38
  const workspace = path.resolve(process.env.WORKSPACE_PATH || process.cwd());
16
- if (!resolvedPath.startsWith(workspace + path.sep) && resolvedPath !== workspace) {
17
- return `${label} must be within the workspace (${workspace}).`;
39
+ // Resolve symlinks for existing paths to prevent symlink-based escapes
40
+ let realPath = resolvedPath;
41
+ try {
42
+ realPath = fs.realpathSync(resolvedPath);
43
+ }
44
+ catch {
45
+ // File doesn't exist yet (write operations) — fall through to prefix check
46
+ }
47
+ if (!realPath.startsWith(workspace + path.sep) && realPath !== workspace) {
48
+ return `${label} must be within the workspace.`;
18
49
  }
19
50
  return null;
20
51
  }
21
52
  /**
22
- * Read media content as a Buffer, supporting both disk-based and legacy base64 storage.
53
+ * Read media content as a Buffer from disk.
23
54
  * Exported so readFile.ts can reuse the same logic.
24
55
  */
25
56
  export function readMediaBuffer(media) {
@@ -29,16 +60,12 @@ export function readMediaBuffer(media) {
29
60
  return fs.readFileSync(fullPath);
30
61
  }
31
62
  catch (err) {
32
- // Disk file missing or unreadable — fall through to base64 fallback
33
63
  if (process.env.LOG_LEVEL === "debug") {
34
64
  console.error(`[readMediaBuffer] Failed to read ${fullPath}:`, err);
35
65
  }
36
66
  return null;
37
67
  }
38
68
  }
39
- if (media.base64) {
40
- return Buffer.from(media.base64, "base64");
41
- }
42
69
  return null;
43
70
  }
44
71
  /** MIME types considered text-based (content decoded as UTF-8 for the agent) */
@@ -55,7 +82,7 @@ const TEXT_MIME_EXACT = new Set([
55
82
  "application/ld+json",
56
83
  "application/xhtml+xml",
57
84
  ]);
58
- function isTextMimeType(mime) {
85
+ export function isTextMimeType(mime) {
59
86
  if (TEXT_MIME_PREFIXES.some(p => mime.startsWith(p)))
60
87
  return true;
61
88
  return TEXT_MIME_EXACT.has(mime);
@@ -79,18 +106,14 @@ const INLINE_TEXT_THRESHOLD = 10 * 1024;
79
106
  export function mediaToContentBlocks(mediaJson, messageId) {
80
107
  try {
81
108
  const media = JSON.parse(mediaJson);
82
- if ((!media.base64 && !media.diskPath) || !media.mimeType)
109
+ if (!media.diskPath || !media.mimeType)
83
110
  return [];
84
111
  // Images: return as ImageContent (LINE previews are small, acceptable inline)
85
112
  if (media.mimeType.startsWith("image/")) {
86
- // For disk-based, read and base64-encode for MCP ImageContent
87
- if (media.diskPath) {
88
- const buffer = readMediaBuffer(media);
89
- if (!buffer)
90
- return [];
91
- return [{ type: "image", data: buffer.toString("base64"), mimeType: media.mimeType }];
92
- }
93
- return [{ type: "image", data: media.base64, mimeType: media.mimeType }];
113
+ const buffer = readMediaBuffer(media);
114
+ if (!buffer)
115
+ return [];
116
+ return [{ type: "image", data: buffer.toString("base64"), mimeType: media.mimeType }];
94
117
  }
95
118
  // Text-based files: decode and return inline if small enough
96
119
  if (isTextMimeType(media.mimeType)) {
@@ -185,6 +208,69 @@ export function validateToolInput(args, config, messageStore, statusStore) {
185
208
  const agentId = statusStore?.getEffectiveAgentId(agentName) ?? null;
186
209
  return { text, userId, agentName, agentId };
187
210
  }
211
+ /**
212
+ * Validate common tool inputs WITHOUT requiring text.
213
+ * Used by line_ask when messages[] replaces text.
214
+ */
215
+ export function validateToolInputOptionalText(args, config, messageStore, statusStore) {
216
+ const text = typeof args.text === "string" ? args.text : null;
217
+ if (text && text.length > MAX_LINE_TEXT_LENGTH) {
218
+ return toolError("text_too_long", { maxLength: MAX_LINE_TEXT_LENGTH });
219
+ }
220
+ const userId = messageStore.getDefaultUserId();
221
+ if (!userId) {
222
+ return toolError("no_user_registered");
223
+ }
224
+ const agentName = typeof args.agentName === "string" ? args.agentName : null;
225
+ const agentId = statusStore?.getEffectiveAgentId(agentName) ?? null;
226
+ return { text, userId, agentName, agentId };
227
+ }
228
+ /** Maximum messages per LINE reply API call */
229
+ export const MAX_LINE_MESSAGES = 5;
230
+ /**
231
+ * Parse the messages[] array into structured items.
232
+ * - Plain strings → text messages
233
+ * - "file:" prefixed → file attachments
234
+ * - "text:" prefixed → text (escape for strings starting with "file:")
235
+ * Returns array of items or a tool error.
236
+ */
237
+ export function parseMessageItems(args) {
238
+ const messages = args.messages;
239
+ if (Array.isArray(messages)) {
240
+ if (messages.length === 0) {
241
+ return toolError("empty_messages", { message: "messages array must not be empty." });
242
+ }
243
+ if (messages.length > MAX_LINE_MESSAGES) {
244
+ return toolError("too_many_messages", {
245
+ message: `Maximum ${MAX_LINE_MESSAGES} messages per call (LINE API limit). Got ${messages.length}.`,
246
+ });
247
+ }
248
+ const items = [];
249
+ for (const m of messages) {
250
+ if (typeof m !== "string") {
251
+ return toolError("invalid_message_item", { message: "Each message must be a string." });
252
+ }
253
+ if (m.startsWith("file:")) {
254
+ items.push({ type: "file", content: m.slice(5) });
255
+ }
256
+ else if (m.startsWith("link:")) {
257
+ // Force send as plain text download link (no Flex card)
258
+ items.push({ type: "file", content: m.slice(5), forceLink: true });
259
+ }
260
+ else if (m.startsWith("text:")) {
261
+ // Escape: "text:file:..." → text message with content "file:..."
262
+ items.push({ type: "text", content: m.slice(5) });
263
+ }
264
+ else {
265
+ items.push({ type: "text", content: m });
266
+ }
267
+ }
268
+ return items;
269
+ }
270
+ return toolError("missing_messages", {
271
+ message: "Provide messages[] array.",
272
+ });
273
+ }
188
274
  /** Check if result is a validation error (ToolContent) rather than ValidatedInput */
189
275
  export function isValidationError(result) {
190
276
  return "content" in result;
@@ -340,16 +426,18 @@ export function storeAndBuildImageUrl(args, config, messageStore, ttlMs = DEFAUL
340
426
  const imageId = randomUUID();
341
427
  const filename = `${imageId}${ext}`;
342
428
  // Write to disk instead of SQLite
343
- const serveDir = path.resolve(".line-hive-tmp");
344
- fs.mkdirSync(serveDir, { recursive: true });
345
- fs.writeFileSync(path.join(serveDir, filename), imageBuffer);
429
+ const serveDir = getServeDir(config);
430
+ fs.mkdirSync(serveDir, { recursive: true, mode: 0o700 });
431
+ fs.writeFileSync(path.join(serveDir, filename), imageBuffer, { mode: 0o600 });
346
432
  messageStore.trackServedFile(filename, ttlMs);
347
433
  const url = `https://${config.ngrokDomain}/files/${filename}`;
348
434
  return { url, expiresIn: formatTtl(ttlMs) };
349
435
  }
350
436
  // ─── File Sending ───────────────────────────────────────────────────────────
351
- /** Maximum file size for outgoing files: 10 MB */
352
- const MAX_FILE_SIZE = 10 * 1024 * 1024;
437
+ /** Threshold where we stop buffering in-memory and switch to streaming copy (10MB). */
438
+ const SMALL_FILE_THRESHOLD_BYTES = 10 * 1024 * 1024;
439
+ /** Default max size for outgoing non-image files (200MB). Override via MAX_OUTGOING_FILE_BYTES env. */
440
+ const DEFAULT_MAX_OUTGOING_FILE_BYTES = 200 * 1024 * 1024;
353
441
  /** UTF-8 BOM for Excel compatibility (Excel requires BOM to detect UTF-8) */
354
442
  const UTF8_BOM = Buffer.from([0xef, 0xbb, 0xbf]);
355
443
  /**
@@ -498,7 +586,7 @@ ${bodyRows}
498
586
  *
499
587
  * Files are tracked with a TTL for automatic cleanup.
500
588
  */
501
- export function storeAndBuildFileUrl(filePath, config, messageStore, ttlMs = DEFAULT_FILE_TTL_MS) {
589
+ export async function storeAndBuildFileUrl(filePath, config, messageStore, ttlMs = DEFAULT_FILE_TTL_MS) {
502
590
  if (!config.ngrokDomain) {
503
591
  return { error: "file_send_requires_tunnel" };
504
592
  }
@@ -509,37 +597,96 @@ export function storeAndBuildFileUrl(filePath, config, messageStore, ttlMs = DEF
509
597
  if (!fs.existsSync(resolved)) {
510
598
  return { error: "file_not_found" };
511
599
  }
512
- let fileBuffer;
600
+ let stat;
513
601
  try {
514
- fileBuffer = fs.readFileSync(resolved);
602
+ stat = fs.statSync(resolved);
515
603
  }
516
604
  catch {
517
605
  return { error: "file_read_error" };
518
606
  }
519
- if (fileBuffer.length === 0) {
520
- return { error: "empty_file" };
607
+ if (!stat.isFile()) {
608
+ return { error: "file_read_error" };
521
609
  }
522
- if (fileBuffer.length > MAX_FILE_SIZE) {
523
- return { error: "file_too_large" };
610
+ if (stat.size === 0) {
611
+ return { error: "empty_file" };
524
612
  }
613
+ const sourceSize = stat.size;
525
614
  const mimeType = mimeFromExtension(filePath);
526
615
  const fileName = path.basename(filePath);
527
616
  const fileId = randomUUID();
528
617
  const ext = path.extname(filePath) || "";
529
- const filename = `${fileId}${ext}`;
618
+ // Images: keep strict 10MB cap (LINE inline image constraints)
619
+ if (mimeType.startsWith("image/") && sourceSize > MAX_IMAGE_SIZE) {
620
+ return { error: "image_too_large" };
621
+ }
622
+ // Non-images: allow larger files up to configured max
623
+ const maxOutgoing = Number.isFinite(config.maxOutgoingFileBytes)
624
+ ? config.maxOutgoingFileBytes
625
+ : DEFAULT_MAX_OUTGOING_FILE_BYTES;
626
+ if (!mimeType.startsWith("image/") && sourceSize > maxOutgoing) {
627
+ return { error: "file_too_large" };
628
+ }
629
+ // Large non-image file: stream copy to serveDir and return URL (no previews/conversions)
630
+ if (!mimeType.startsWith("image/") && sourceSize > SMALL_FILE_THRESHOLD_BYTES) {
631
+ const filename = `${fileId}${ext}`;
632
+ const serveDir = getServeDir(config);
633
+ fs.mkdirSync(serveDir, { recursive: true, mode: 0o700 });
634
+ const outPath = path.join(serveDir, filename);
635
+ try {
636
+ await pipeline(fs.createReadStream(resolved), fs.createWriteStream(outPath, { mode: 0o600 }));
637
+ }
638
+ catch {
639
+ return { error: "file_read_error" };
640
+ }
641
+ messageStore.trackServedFile(filename, ttlMs);
642
+ const url = `https://${config.ngrokDomain}/files/${filename}`;
643
+ return {
644
+ url,
645
+ mimeType,
646
+ isImage: false,
647
+ fileName,
648
+ fileSize: sourceSize,
649
+ expiresIn: formatTtl(ttlMs),
650
+ };
651
+ }
652
+ // Small file path (<=10MB): keep existing buffer-based behavior (CSV BOM/preview, SVG conversion)
653
+ let fileBuffer;
654
+ try {
655
+ fileBuffer = fs.readFileSync(resolved);
656
+ }
657
+ catch {
658
+ return { error: "file_read_error" };
659
+ }
660
+ // SVG → PNG conversion: LINE cannot display SVG inline
661
+ const isSvg = ext.toLowerCase() === ".svg" || mimeType === "image/svg+xml";
662
+ let effectiveBuffer = fileBuffer;
663
+ let effectiveExt = ext;
664
+ let effectiveMime = mimeType;
665
+ let effectiveFileName = fileName;
666
+ if (isSvg) {
667
+ const pngBuffer = await convertSvgToPng(fileBuffer);
668
+ if (pngBuffer) {
669
+ effectiveBuffer = pngBuffer;
670
+ effectiveExt = ".png";
671
+ effectiveMime = "image/png";
672
+ effectiveFileName = fileName.replace(/\.svg$/i, ".png");
673
+ }
674
+ // If conversion fails (sharp not installed), serve as download link
675
+ }
676
+ const filename = `${fileId}${effectiveExt}`;
530
677
  // Write to disk instead of SQLite
531
- const serveDir = path.resolve(".line-hive-tmp");
532
- fs.mkdirSync(serveDir, { recursive: true });
678
+ const serveDir = getServeDir(config);
679
+ fs.mkdirSync(serveDir, { recursive: true, mode: 0o700 });
533
680
  // For CSV files: add UTF-8 BOM for Excel compatibility
534
681
  const isCsv = ext.toLowerCase() === ".csv";
535
- const outputBuffer = isCsv && !fileBuffer.subarray(0, 3).equals(UTF8_BOM)
536
- ? Buffer.concat([UTF8_BOM, fileBuffer])
537
- : fileBuffer;
538
- fs.writeFileSync(path.join(serveDir, filename), outputBuffer);
682
+ const outputBuffer = isCsv && !effectiveBuffer.subarray(0, 3).equals(UTF8_BOM)
683
+ ? Buffer.concat([UTF8_BOM, effectiveBuffer])
684
+ : effectiveBuffer;
685
+ fs.writeFileSync(path.join(serveDir, filename), outputBuffer, { mode: 0o600 });
539
686
  messageStore.trackServedFile(filename, ttlMs);
540
687
  const url = `https://${config.ngrokDomain}/files/${filename}`;
541
688
  const result = {
542
- url, mimeType, isImage: mimeType.startsWith("image/"), fileName, expiresIn: formatTtl(ttlMs),
689
+ url, mimeType: effectiveMime, isImage: effectiveMime.startsWith("image/"), fileName: effectiveFileName, fileSize: effectiveBuffer.length, expiresIn: formatTtl(ttlMs),
543
690
  };
544
691
  // For CSV files: generate an HTML table preview with download link
545
692
  if (isCsv) {
@@ -561,4 +708,51 @@ export function storeAndBuildFileUrl(filePath, config, messageStore, ttlMs = DEF
561
708
  }
562
709
  return result;
563
710
  }
711
+ // ─── Document Generation Helpers ────────────────────────────────────────────
712
+ /**
713
+ * Sanitize a user-provided title into a safe filename.
714
+ * Strips filesystem-unsafe characters and truncates to 200 chars.
715
+ */
716
+ export function sanitizeFilename(title, ext) {
717
+ if (!title || !title.trim())
718
+ return `document${ext}`;
719
+ return title
720
+ .replace(/[/\\:*?"<>|]/g, "")
721
+ .replace(/\.\./g, "")
722
+ .trim()
723
+ .slice(0, 200)
724
+ + ext;
725
+ }
726
+ /**
727
+ * Sanitize an Excel sheet name (max 31 chars, certain chars forbidden).
728
+ * Auto-deduplicates against existing names.
729
+ */
730
+ export function sanitizeSheetName(name, existing) {
731
+ let clean = name.replace(/[:/\\?*[\]]/g, "").trim().slice(0, 31) || "Sheet";
732
+ let final = clean;
733
+ let i = 2;
734
+ while (existing.has(final)) {
735
+ final = clean.slice(0, 31 - String(i).length - 3) + ` (${i})`;
736
+ i++;
737
+ }
738
+ existing.add(final);
739
+ return final;
740
+ }
741
+ /**
742
+ * Parse a CSV value string, auto-converting numeric strings to numbers.
743
+ * Values starting with '=' are kept as strings (formula markers).
744
+ */
745
+ export function autoCastCsvValue(value) {
746
+ const trimmed = value.trim();
747
+ if (trimmed === "")
748
+ return "";
749
+ // Formula — keep as string
750
+ if (trimmed.startsWith("="))
751
+ return trimmed;
752
+ // Try numeric conversion
753
+ const num = Number(trimmed);
754
+ if (!isNaN(num) && trimmed !== "")
755
+ return num;
756
+ return trimmed;
757
+ }
564
758
  //# sourceMappingURL=toolHelpers.js.map