@0xmaxma/claude-gateway 1.8.2 → 1.8.4
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 +63 -2
- package/config.template.json +4 -0
- package/dist/agent/dreaming/config.d.ts +6 -0
- package/dist/agent/dreaming/config.d.ts.map +1 -1
- package/dist/agent/dreaming/config.js +17 -24
- package/dist/agent/dreaming/config.js.map +1 -1
- package/dist/agent/knowledge/config.d.ts.map +1 -1
- package/dist/agent/knowledge/config.js +7 -13
- package/dist/agent/knowledge/config.js.map +1 -1
- package/dist/agent/runner.d.ts +87 -13
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +342 -117
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/turn-stream.d.ts +202 -0
- package/dist/agent/turn-stream.d.ts.map +1 -0
- package/dist/agent/turn-stream.js +322 -0
- package/dist/agent/turn-stream.js.map +1 -0
- package/dist/api/apps-router.d.ts.map +1 -1
- package/dist/api/apps-router.js +14 -2
- package/dist/api/apps-router.js.map +1 -1
- package/dist/api/gateway-router.d.ts.map +1 -1
- package/dist/api/gateway-router.js +2 -3
- package/dist/api/gateway-router.js.map +1 -1
- package/dist/api/line-webhook-router.d.ts +43 -1
- package/dist/api/line-webhook-router.d.ts.map +1 -1
- package/dist/api/line-webhook-router.js +286 -38
- package/dist/api/line-webhook-router.js.map +1 -1
- package/dist/api/router.d.ts +7 -1
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +328 -114
- package/dist/api/router.js.map +1 -1
- package/dist/apps/agent-manager.d.ts.map +1 -1
- package/dist/apps/agent-manager.js +4 -1
- package/dist/apps/agent-manager.js.map +1 -1
- package/dist/apps/installer.d.ts +75 -2
- package/dist/apps/installer.d.ts.map +1 -1
- package/dist/apps/installer.js +198 -13
- package/dist/apps/installer.js.map +1 -1
- package/dist/cli/commands/debug-bundle.d.ts.map +1 -1
- package/dist/cli/commands/debug-bundle.js +9 -52
- package/dist/cli/commands/debug-bundle.js.map +1 -1
- package/dist/cli/commands/gateway.d.ts +6 -1
- package/dist/cli/commands/gateway.d.ts.map +1 -1
- package/dist/cli/commands/gateway.js +14 -3
- package/dist/cli/commands/gateway.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +37 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +356 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +16 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/logs-dir.d.ts +69 -0
- package/dist/cli/logs-dir.d.ts.map +1 -0
- package/dist/cli/logs-dir.js +166 -0
- package/dist/cli/logs-dir.js.map +1 -0
- package/dist/config/agent-env.d.ts +41 -0
- package/dist/config/agent-env.d.ts.map +1 -0
- package/dist/config/agent-env.js +154 -0
- package/dist/config/agent-env.js.map +1 -0
- package/dist/config/loader.d.ts +33 -2
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +33 -9
- package/dist/config/loader.js.map +1 -1
- package/dist/config/watcher.d.ts +1 -0
- package/dist/config/watcher.d.ts.map +1 -1
- package/dist/config/watcher.js +22 -1
- package/dist/config/watcher.js.map +1 -1
- package/dist/index.js +50 -51
- package/dist/index.js.map +1 -1
- package/dist/load-dotenv.d.ts +17 -0
- package/dist/load-dotenv.d.ts.map +1 -1
- package/dist/load-dotenv.js +32 -9
- package/dist/load-dotenv.js.map +1 -1
- package/dist/logger.d.ts +52 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +264 -2
- package/dist/logger.js.map +1 -1
- package/dist/session/store.d.ts +9 -0
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +12 -0
- package/dist/session/store.js.map +1 -1
- package/dist/shell/bypass-dialog.d.ts +234 -0
- package/dist/shell/bypass-dialog.d.ts.map +1 -0
- package/dist/shell/bypass-dialog.js +339 -0
- package/dist/shell/bypass-dialog.js.map +1 -0
- package/dist/shell/claude-pty-shell.js +67 -3
- package/dist/shell/claude-pty-shell.js.map +1 -1
- package/dist/shell/screen.d.ts +22 -11
- package/dist/shell/screen.d.ts.map +1 -1
- package/dist/shell/screen.js +50 -32
- package/dist/shell/screen.js.map +1 -1
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/config-num.d.ts +22 -0
- package/dist/utils/config-num.d.ts.map +1 -0
- package/dist/utils/config-num.js +34 -0
- package/dist/utils/config-num.js.map +1 -0
- package/package.json +1 -1
|
@@ -33,7 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.safeFileExt = safeFileExt;
|
|
37
|
+
exports.safeAttachmentName = safeAttachmentName;
|
|
36
38
|
exports.normalizeLineEvent = normalizeLineEvent;
|
|
39
|
+
exports.markMediaUnavailable = markMediaUnavailable;
|
|
37
40
|
exports.parseCliPostback = parseCliPostback;
|
|
38
41
|
exports.normalizeLinePostback = normalizeLinePostback;
|
|
39
42
|
exports.createLineWebhookHandler = createLineWebhookHandler;
|
|
@@ -48,10 +51,10 @@ const line_mention_1 = require("./line-mention");
|
|
|
48
51
|
const media_store_1 = require("../history/media-store");
|
|
49
52
|
const image_sniff_1 = require("../shared/image-sniff");
|
|
50
53
|
const LOADING_SECONDS = 20; // 5..60, multiple of 5; 1:1 chats only
|
|
51
|
-
// Inbound
|
|
52
|
-
// bytes end up — a router-local literal could drift into
|
|
53
|
-
// store then rejects.
|
|
54
|
-
const
|
|
54
|
+
// Inbound media cap — images and files alike. Sourced from MediaStore, which is
|
|
55
|
+
// where the downloaded bytes end up — a router-local literal could drift into
|
|
56
|
+
// accepting media the store then rejects.
|
|
57
|
+
const MAX_MEDIA_BYTES = media_store_1.MediaStore.maxUploadBytes;
|
|
55
58
|
/** A sane public hostname: letters, digits, dot, hyphen, optional :port. */
|
|
56
59
|
const HOST_RE = /^[A-Za-z0-9.\-:]+$/;
|
|
57
60
|
/** Extract host[:port] from a configured publicUrl (e.g. "https://vm.example.com/gateway"
|
|
@@ -109,34 +112,176 @@ function persistPublicBase(workspace, host, logger) {
|
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
115
|
+
* Extensions a browser would treat as ACTIVE content. A staged file is reachable
|
|
116
|
+
* over the authenticated media endpoint (`GET /api/agents/:id/media/*`, which
|
|
117
|
+
* hands the extension to `res.sendFile` and so to Express's Content-Type lookup),
|
|
118
|
+
* so a sender-named `x.html` or `x.svg` opened from the UI would execute script on
|
|
119
|
+
* the gateway's own origin. Naming them `bin` costs nothing — the bytes still reach
|
|
120
|
+
* the agent unchanged, and that endpoint content-sniffs a `.bin` against image/PDF
|
|
121
|
+
* magic only, falling back to application/octet-stream. This is a denylist by
|
|
122
|
+
* necessity (an allowlist would degrade every legitimate but unlisted document
|
|
123
|
+
* type), so it is the second line: `X-Content-Type-Options: nosniff` on that
|
|
124
|
+
* endpoint is the first.
|
|
125
|
+
*
|
|
126
|
+
* NOT hand-picked — that is how the first cut of this list ended up denying `xml`
|
|
127
|
+
* and `xsl` while letting `xsd` and `rng` through, which `mime` resolves to the
|
|
128
|
+
* very same `application/xml`. The list below is DERIVED from the table
|
|
129
|
+
* `res.sendFile` actually consults (`mime@1.6.0`'s `types.json`, reached via
|
|
130
|
+
* express → send), taking every extension whose type is:
|
|
131
|
+
*
|
|
132
|
+
* - HTML — `text/html`, `application/xhtml+xml`
|
|
133
|
+
* - XML-parsed — `text/xml`, `application/xml`, `application/xml-dtd`, and
|
|
134
|
+
* anything with a `+xml` suffix, which Blink's
|
|
135
|
+
* `IsXMLMIMEType` renders through the XML parser and so
|
|
136
|
+
* honours an `<?xml-stylesheet?>` PI (XSLT → scripted HTML)
|
|
137
|
+
* - script / style — any `javascript` / `ecmascript` subtype, and `text/css`
|
|
138
|
+
*
|
|
139
|
+
* plus the server-side extensions (`php`, `jsp`, `asp*`, `hta`) that predate the
|
|
140
|
+
* derivation. Regenerate after an express/send major bump — the suffix guard in
|
|
141
|
+
* `isBrowserActiveExt` covers new `*htm`/`*html`/`*xml` spellings until then.
|
|
116
142
|
*/
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
143
|
+
const BROWSER_ACTIVE_EXTS = new Set([
|
|
144
|
+
'asp', 'aspx', 'atom', 'atomcat', 'atomsvc', 'ccxml', 'cdxml', 'cjs', 'css', 'dae',
|
|
145
|
+
'davmount', 'dbk', 'dd2', 'dtb', 'dtd', 'ecma', 'emma', 'es3', 'et3', 'gml', 'gpx',
|
|
146
|
+
'grxml', 'hal', 'hta', 'htm', 'html', 'ink', 'inkml', 'irp', 'js', 'jsp', 'kml',
|
|
147
|
+
'lasxml', 'lbe', 'link66', 'lostxml', 'mads', 'mathml', 'meta4', 'metalink', 'mets',
|
|
148
|
+
'mjs', 'mods', 'mpd', 'mpkg', 'mrcx', 'mscml', 'musicxml', 'mxml', 'ncx', 'omdoc', 'opf',
|
|
149
|
+
'osfpvg', 'php', 'pls', 'pskcxml', 'rdf', 'res', 'rif', 'rl', 'rld', 'rng', 'rs', 'rsd',
|
|
150
|
+
'rss', 'sbml', 'sdkd', 'sdkm', 'shf', 'shtm', 'shtml', 'smi', 'smil', 'sru', 'srx',
|
|
151
|
+
'ssdl', 'ssml', 'svg', 'svgz', 'tei', 'teicorpus', 'tfi', 'uoml', 'uvt', 'uvvt', 'vxml',
|
|
152
|
+
'wadl', 'wbs', 'wsdl', 'wspolicy', 'x3d', 'x3dz', 'xaml', 'xdf', 'xdm', 'xdp', 'xdssc',
|
|
153
|
+
'xenc', 'xer', 'xht', 'xhtml', 'xhvml', 'xlf', 'xml', 'xop', 'xpl', 'xsd', 'xsl', 'xslt',
|
|
154
|
+
'xsm', 'xspf', 'xul', 'xvm', 'xvml', 'yin', 'zaz', 'zmm',
|
|
155
|
+
]);
|
|
156
|
+
/**
|
|
157
|
+
* True when serving a file under this extension could execute script on the
|
|
158
|
+
* gateway's origin. The trailing-family test is deliberate belt-and-braces: a
|
|
159
|
+
* future `types.json` entry like `dhtml` or `foo.xml` variant lands in the same
|
|
160
|
+
* two dangerous families, and this catches it without a code change.
|
|
161
|
+
*/
|
|
162
|
+
function isBrowserActiveExt(ext) {
|
|
163
|
+
return BROWSER_ACTIVE_EXTS.has(ext) || /(?:htm|html|xml)$/.test(ext);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Extension for an inbound LINE **file**, derived from the sender-supplied name.
|
|
167
|
+
*
|
|
168
|
+
* LINE reports NO MIME type on `file` message events (an image's type can be
|
|
169
|
+
* sniffed from its bytes; a document's cannot), so the name is the only signal —
|
|
170
|
+
* and it is untrusted webhook input. Treat it as hostile: take the last
|
|
171
|
+
* dot-segment, lowercase it, and accept it only when it is a short alphanumeric
|
|
172
|
+
* run that a browser will not execute. Anything else — traversal segments, path
|
|
173
|
+
* separators, percent-escapes, spaces, an over-long suffix, no suffix at all, or
|
|
174
|
+
* an active-content type — degrades to `bin` rather than reaching the filesystem.
|
|
175
|
+
* A multi-part suffix collapses to its last part ("archive.tar.gz" → "gz"), which
|
|
176
|
+
* is enough for the agent to recognise the file.
|
|
177
|
+
*/
|
|
178
|
+
function safeFileExt(fileName) {
|
|
179
|
+
const raw = typeof fileName === 'string' ? fileName : '';
|
|
180
|
+
const dot = raw.lastIndexOf('.');
|
|
181
|
+
// dot <= 0 covers both "no suffix" and a leading-dot name (".env" has no ext).
|
|
182
|
+
if (dot <= 0 || dot === raw.length - 1)
|
|
183
|
+
return 'bin';
|
|
184
|
+
const ext = raw.slice(dot + 1).toLowerCase();
|
|
185
|
+
if (!/^[a-z0-9]{1,8}$/.test(ext))
|
|
186
|
+
return 'bin';
|
|
187
|
+
return isBrowserActiveExt(ext) ? 'bin' : ext;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* The sender-supplied file name as surfaced to the agent (`meta.attachment_name`).
|
|
191
|
+
*
|
|
192
|
+
* This string is echoed into the `<channel>` XML the model reads, where
|
|
193
|
+
* `buildChannelXml` escapes only `"` — so strip the control characters and angle
|
|
194
|
+
* brackets that could otherwise forge tag structure, collapse whitespace, and cap
|
|
195
|
+
* the length. It is a LABEL only: the staging path is always built from the
|
|
196
|
+
* message id (see `mediaTempPath`), never from this value. Returns '' when
|
|
197
|
+
* nothing usable survives, and the caller then omits the meta key entirely.
|
|
198
|
+
*/
|
|
199
|
+
function safeAttachmentName(fileName) {
|
|
200
|
+
const raw = typeof fileName === 'string' ? fileName : '';
|
|
201
|
+
return raw
|
|
202
|
+
// Control characters (newlines included) and the angle brackets that could
|
|
203
|
+
// forge `<channel ...>` structure in the prompt. Replaced with a space rather
|
|
204
|
+
// than removed, so "a\nb.pdf" cannot silently become the different name
|
|
205
|
+
// "ab.pdf".
|
|
206
|
+
// eslint-disable-next-line no-control-regex
|
|
207
|
+
.replace(/[\u0000-\u001F\u007F<>]/g, ' ')
|
|
208
|
+
.replace(/\s+/g, ' ')
|
|
209
|
+
.trim()
|
|
210
|
+
.slice(0, 120)
|
|
211
|
+
.trim();
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Staging path for inbound media. The message id is squeezed to a safe token so a
|
|
215
|
+
* hostile id can never steer the write out of the temp directory — the id is
|
|
216
|
+
* signature-verified webhook input, but the path is built defensively anyway.
|
|
217
|
+
*/
|
|
218
|
+
function mediaTempPath(prefix, messageId) {
|
|
219
|
+
const safeId = messageId.replace(/[^A-Za-z0-9_-]/g, '').slice(0, 64) || 'unknown';
|
|
220
|
+
return path.join(os.tmpdir(), `${prefix}-${safeId}-${Date.now()}.tmp`);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Media rejected for size — a distinct type so the caller can tell the agent WHY
|
|
224
|
+
* the bytes are missing without echoing a raw error string into the prompt.
|
|
225
|
+
*/
|
|
226
|
+
class MediaTooLargeError extends Error {
|
|
227
|
+
constructor() {
|
|
228
|
+
super(`media exceeds ${MAX_MEDIA_BYTES} byte cap`);
|
|
229
|
+
this.name = 'MediaTooLargeError';
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Stream inbound media bytes into `dest`, enforcing MAX_MEDIA_BYTES, then rename
|
|
234
|
+
* to the final extension. `resolveExt` is called once with the first chunk —
|
|
235
|
+
* images sniff their type from the bytes, files take it from the sanitised name.
|
|
236
|
+
*
|
|
237
|
+
* Returns the final absolute path, or null when the stream carried no bytes.
|
|
238
|
+
*
|
|
239
|
+
* EVERY failure path — the cap, a mid-transfer socket error, a full disk — closes
|
|
240
|
+
* the write handle and removes the partial `.tmp` before rethrowing. Without that
|
|
241
|
+
* an interrupted transfer leaks a file descriptor for the lifetime of the process
|
|
242
|
+
* and leaves the partial file behind: nothing sweeps `os.tmpdir()`, and a caller
|
|
243
|
+
* that swallows the throw (handlePost does, to keep forwarding the turn) would
|
|
244
|
+
* never notice.
|
|
245
|
+
*/
|
|
246
|
+
async function drainToFile(stream, dest, resolveExt) {
|
|
120
247
|
const fileStream = fs.createWriteStream(dest);
|
|
121
248
|
let total = 0;
|
|
122
|
-
let ext = '
|
|
249
|
+
let ext = 'bin';
|
|
123
250
|
let firstChunk = true;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
251
|
+
try {
|
|
252
|
+
for await (const chunk of stream) {
|
|
253
|
+
const b = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
254
|
+
total += b.length;
|
|
255
|
+
if (total > MAX_MEDIA_BYTES) {
|
|
256
|
+
// Stop pulling bytes we are going to discard; the catch below closes the
|
|
257
|
+
// file handle and unlinks the partial write.
|
|
258
|
+
stream.destroy?.();
|
|
259
|
+
throw new MediaTooLargeError();
|
|
260
|
+
}
|
|
261
|
+
if (firstChunk) {
|
|
262
|
+
ext = resolveExt(b);
|
|
263
|
+
firstChunk = false;
|
|
264
|
+
}
|
|
265
|
+
fileStream.write(b);
|
|
136
266
|
}
|
|
137
|
-
fileStream.
|
|
267
|
+
await new Promise((resolve, reject) => fileStream.end((err) => err ? reject(err) : resolve()));
|
|
268
|
+
}
|
|
269
|
+
catch (err) {
|
|
270
|
+
// Wait for 'close' before unlinking. fs.createWriteStream opens its fd on the
|
|
271
|
+
// thread pool, so a failure this early can still have an open() in flight —
|
|
272
|
+
// removing the path first just lets that open recreate it, leaving an empty
|
|
273
|
+
// file behind (and the handle open until GC).
|
|
274
|
+
await new Promise((resolve) => {
|
|
275
|
+
if (fileStream.closed) {
|
|
276
|
+
resolve();
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
fileStream.once('close', () => resolve());
|
|
280
|
+
fileStream.destroy();
|
|
281
|
+
});
|
|
282
|
+
fs.rmSync(dest, { force: true });
|
|
283
|
+
throw err;
|
|
138
284
|
}
|
|
139
|
-
await new Promise((resolve, reject) => fileStream.end((err) => err ? reject(err) : resolve()));
|
|
140
285
|
if (total === 0) {
|
|
141
286
|
fs.rmSync(dest, { force: true });
|
|
142
287
|
return null;
|
|
@@ -145,6 +290,34 @@ async function downloadLineImage(blobClient, messageId) {
|
|
|
145
290
|
fs.renameSync(dest, finalDest);
|
|
146
291
|
return finalDest;
|
|
147
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Fetch an inbound LINE image's bytes via the blob (data) API and write them to
|
|
295
|
+
* a temp file, returning its absolute path. The runner copies this into the
|
|
296
|
+
* agent's permanent MediaStore and tells the agent to Read it (meta.image_path).
|
|
297
|
+
* Returns null on failure; the turn still forwards (agent sees the text/empty).
|
|
298
|
+
*/
|
|
299
|
+
async function downloadLineImage(blobClient, messageId) {
|
|
300
|
+
const stream = await blobClient.getMessageContent(messageId);
|
|
301
|
+
return drainToFile(stream, mediaTempPath('line-img', messageId), (first) => (0, image_sniff_1.sniffImageExt)(first));
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Fetch an inbound LINE **file** (PDF, ZIP, docs, …) the same way, with the
|
|
305
|
+
* extension derived from the sender-supplied name instead of sniffed bytes.
|
|
306
|
+
*
|
|
307
|
+
* `declaredSize` is LINE's own `fileSize` on the event: reject on it up front so
|
|
308
|
+
* an oversized document is never pulled over the wire at all (the same early-reject
|
|
309
|
+
* Slack does on `content-length`, src/api/slack-webhook-router.ts:85-88). It is a
|
|
310
|
+
* cheap optimisation, not the guard — `drainToFile` re-enforces the cap while
|
|
311
|
+
* reading, so a missing or understated value cannot blow past it.
|
|
312
|
+
*/
|
|
313
|
+
async function downloadLineFile(blobClient, messageId, fileName, declaredSize) {
|
|
314
|
+
if (Number.isFinite(declaredSize) && declaredSize > MAX_MEDIA_BYTES) {
|
|
315
|
+
throw new MediaTooLargeError();
|
|
316
|
+
}
|
|
317
|
+
const ext = safeFileExt(fileName);
|
|
318
|
+
const stream = await blobClient.getMessageContent(messageId);
|
|
319
|
+
return drainToFile(stream, mediaTempPath('line-file', messageId), () => ext);
|
|
320
|
+
}
|
|
148
321
|
/**
|
|
149
322
|
* One-time pairing-code message. The code is a VISUAL-MATCH token: the sender
|
|
150
323
|
* reports it to the admin, who matches it against the UI before adding them to
|
|
@@ -162,7 +335,8 @@ function pairingMessage(code, kind) {
|
|
|
162
335
|
}
|
|
163
336
|
/**
|
|
164
337
|
* Normalize a LINE webhook event into the gateway's {content, meta} intake shape.
|
|
165
|
-
* Returns null for anything we don't handle
|
|
338
|
+
* Returns null for anything we don't handle (message types other than text/image/
|
|
339
|
+
* file, or a source we can't key a conversation on).
|
|
166
340
|
*
|
|
167
341
|
* `resolved` lets the caller pass the source it already resolved for the access
|
|
168
342
|
* gate, so a single event isn't re-parsed; omitted, it resolves here.
|
|
@@ -171,9 +345,11 @@ function normalizeLineEvent(event, resolved) {
|
|
|
171
345
|
if (event.type !== 'message')
|
|
172
346
|
return null;
|
|
173
347
|
const msg = event.message;
|
|
174
|
-
// Text and
|
|
175
|
-
// (via the LINE blob API) and surfaced to the agent through
|
|
176
|
-
|
|
348
|
+
// Text, image, and file are handled. Image/file bytes are fetched separately in
|
|
349
|
+
// handlePost (via the LINE blob API) and surfaced to the agent through
|
|
350
|
+
// meta.image_path — the generic "local path the agent should Read" channel,
|
|
351
|
+
// which the runner stages into MediaStore regardless of media kind.
|
|
352
|
+
if (!msg || (msg.type !== 'text' && msg.type !== 'image' && msg.type !== 'file'))
|
|
177
353
|
return null;
|
|
178
354
|
// Accept 1:1 user, group, and room sources. chat_id is the conversation key
|
|
179
355
|
// (userId / groupId / roomId — the reply/push target); user_id is the human
|
|
@@ -194,10 +370,48 @@ function normalizeLineEvent(event, resolved) {
|
|
|
194
370
|
};
|
|
195
371
|
if (msg.type === 'image')
|
|
196
372
|
meta.media_type = 'image';
|
|
373
|
+
let content = text;
|
|
374
|
+
if (msg.type === 'file') {
|
|
375
|
+
const file = msg;
|
|
376
|
+
meta.media_type = 'file';
|
|
377
|
+
// `attachment_kind` is a cross-channel vocabulary the model reads off the
|
|
378
|
+
// <channel> tag, not a LINE-specific label — Telegram already emits
|
|
379
|
+
// 'document' for a generic file (mcp/tools/telegram/receiver-server.ts), so
|
|
380
|
+
// match it rather than teaching the agent a second word for the same thing.
|
|
381
|
+
meta.attachment_kind = 'document';
|
|
382
|
+
const name = safeAttachmentName(file.fileName);
|
|
383
|
+
if (name)
|
|
384
|
+
meta.attachment_name = name;
|
|
385
|
+
// A LINE file message carries no caption. Without a placeholder `content`
|
|
386
|
+
// would be empty, and the runner labels an empty content with an image_path
|
|
387
|
+
// as "(photo)" in the session context and history DB (src/agent/runner.ts).
|
|
388
|
+
content = name ? `(file: ${name})` : '(file)';
|
|
389
|
+
}
|
|
197
390
|
if (typeof event.replyToken === 'string') {
|
|
198
391
|
meta.reply_token = event.replyToken;
|
|
199
392
|
}
|
|
200
|
-
return { content
|
|
393
|
+
return { content, meta };
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Rewrite a normalized media message whose bytes never arrived.
|
|
397
|
+
*
|
|
398
|
+
* Without this the turn still reaches the agent carrying `(file: report.pdf)` and
|
|
399
|
+
* `attachment_kind="document"` but NO `image_path`, which is indistinguishable
|
|
400
|
+
* from a staged file the agent simply has not opened yet — so the agent either
|
|
401
|
+
* stays silent or claims to have read something it never received. That is the
|
|
402
|
+
* silent-drop shape issue #429 was about, reappearing for the failure path.
|
|
403
|
+
*
|
|
404
|
+
* `reason` is a fixed phrase chosen by the caller, never a raw error string: the
|
|
405
|
+
* result lands in the `<channel>` element body, which `buildChannelXml` does not
|
|
406
|
+
* escape, so an SDK error message could otherwise forge tag structure. The
|
|
407
|
+
* attachment meta is left in place — the name is still useful context, and its
|
|
408
|
+
* `image_path` is (correctly) absent.
|
|
409
|
+
*/
|
|
410
|
+
function markMediaUnavailable(norm, mediaType, reason) {
|
|
411
|
+
delete norm.meta.image_path;
|
|
412
|
+
const name = norm.meta.attachment_name;
|
|
413
|
+
const label = mediaType === 'image' ? 'image' : name ? `file: ${name}` : 'file';
|
|
414
|
+
norm.content = `(${label} — not available: ${reason})`;
|
|
201
415
|
}
|
|
202
416
|
/** Parse a `/cli` approve/deny postback payload, or null when it's not ours. */
|
|
203
417
|
function parseCliPostback(data) {
|
|
@@ -464,7 +678,14 @@ function createLineWebhookHandler(agents, logDir, opts = {}) {
|
|
|
464
678
|
// Group/room activation gate: unless requireMention is explicitly false,
|
|
465
679
|
// only respond when the bot is @mentioned (native isSelf or its name).
|
|
466
680
|
// DMs (line_chat_type === 'user') always pass. This runs after normalize
|
|
467
|
-
// so
|
|
681
|
+
// so unhandled message types are already filtered out.
|
|
682
|
+
//
|
|
683
|
+
// NOTE: LINE attaches `mention` to TEXT messages only, so an image or file
|
|
684
|
+
// posted in a group can never satisfy this gate — such media reaches the
|
|
685
|
+
// agent in DMs, and in groups only when requireMention is false. That is
|
|
686
|
+
// the pre-existing behaviour for images and is left unchanged for files:
|
|
687
|
+
// waiving the gate for media would let any group member push attachments
|
|
688
|
+
// at the agent without ever addressing it.
|
|
468
689
|
if (norm.meta.line_chat_type !== 'user' && cfg?.requireMention !== false) {
|
|
469
690
|
const msg = event.message;
|
|
470
691
|
if (!(0, line_mention_1.wasBotMentioned)(msg)) {
|
|
@@ -476,20 +697,47 @@ function createLineWebhookHandler(agents, logDir, opts = {}) {
|
|
|
476
697
|
continue;
|
|
477
698
|
}
|
|
478
699
|
}
|
|
479
|
-
// Inbound
|
|
700
|
+
// Inbound media: fetch the bytes via the blob API and hand the agent an
|
|
480
701
|
// absolute path (meta.image_path). The runner persists it to MediaStore
|
|
481
702
|
// and instructs the agent to Read it, same as Telegram attachments.
|
|
482
|
-
|
|
703
|
+
// Images and files share that path; meta.media_type tells them apart.
|
|
704
|
+
const mediaType = norm.meta.media_type;
|
|
705
|
+
if ((mediaType === 'image' || mediaType === 'file') && blobClient && norm.meta.message_id) {
|
|
483
706
|
try {
|
|
484
|
-
|
|
485
|
-
if (
|
|
486
|
-
norm.meta.
|
|
707
|
+
let mediaPath;
|
|
708
|
+
if (mediaType === 'image') {
|
|
709
|
+
mediaPath = await downloadLineImage(blobClient, norm.meta.message_id);
|
|
710
|
+
}
|
|
711
|
+
else {
|
|
712
|
+
// The extension comes from the RAW event name (safeFileExt sanitises
|
|
713
|
+
// it itself) — meta.attachment_name is the display label and has
|
|
714
|
+
// already had characters stripped, which could corrupt the suffix.
|
|
715
|
+
const file = event.message;
|
|
716
|
+
mediaPath = await downloadLineFile(blobClient, norm.meta.message_id, file.fileName, file.fileSize);
|
|
717
|
+
}
|
|
718
|
+
// A null path means the blob API answered with zero bytes. Both that and
|
|
719
|
+
// a throw leave the agent with no file, so both must say so — see
|
|
720
|
+
// markMediaUnavailable.
|
|
721
|
+
if (mediaPath) {
|
|
722
|
+
norm.meta.image_path = mediaPath;
|
|
723
|
+
// Staging copy under os.tmpdir(): the runner owns it from here and
|
|
724
|
+
// deletes it once MediaStore has its permanent copy. Nothing else
|
|
725
|
+
// sweeps the temp dir, so without this every inbound attachment —
|
|
726
|
+
// up to MediaStore.maxUploadBytes each — stays on disk forever.
|
|
727
|
+
norm.meta.media_ephemeral = '1';
|
|
728
|
+
}
|
|
729
|
+
else
|
|
730
|
+
markMediaUnavailable(norm, mediaType, 'the sender uploaded no content');
|
|
487
731
|
}
|
|
488
732
|
catch (err) {
|
|
489
|
-
logger.warn('LINE webhook:
|
|
733
|
+
logger.warn('LINE webhook: media download failed', {
|
|
734
|
+
mediaType,
|
|
490
735
|
messageId: norm.meta.message_id,
|
|
491
736
|
error: err.message,
|
|
492
737
|
});
|
|
738
|
+
markMediaUnavailable(norm, mediaType, err instanceof MediaTooLargeError
|
|
739
|
+
? `larger than the ${Math.floor(MAX_MEDIA_BYTES / (1024 * 1024))} MB limit`
|
|
740
|
+
: 'the download failed');
|
|
493
741
|
}
|
|
494
742
|
}
|
|
495
743
|
// Loading animation (best-effort, 1:1 only — LINE rejects it for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-webhook-router.js","sourceRoot":"","sources":["../../src/api/line-webhook-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"line-webhook-router.js","sourceRoot":"","sources":["../../src/api/line-webhook-router.ts"],"names":[],"mappings":"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"}
|
package/dist/api/router.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { Router } from 'express';
|
|
1
|
+
import { Router, Response } from 'express';
|
|
2
2
|
import { AgentRunner } from '../agent/runner';
|
|
3
3
|
import { AgentConfig, ApiKey, ModelConfig } from '../types';
|
|
4
4
|
export declare function isValidSessionId(v: unknown): v is string;
|
|
5
5
|
export declare function isValidAgentId(v: unknown): v is string;
|
|
6
|
+
/**
|
|
7
|
+
* Write SSE headers and start the idle keepalive. Exported for tests: the
|
|
8
|
+
* keepalive is time-based and only observable on a stream deliberately held
|
|
9
|
+
* open, which is exactly what an end-to-end HTTP test cannot do.
|
|
10
|
+
*/
|
|
11
|
+
export declare function openSseStream(res: Response): void;
|
|
6
12
|
export declare function createApiRouter(agentRunners: Map<string, AgentRunner>, agentConfigs: Map<string, AgentConfig>, apiKeys: ApiKey[], configPath?: string, models?: ModelConfig[]): Router;
|
|
7
13
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/api/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAe,WAAW,EAAE,MAAM,UAAU,CAAC;AAiDzE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAExD;AAMD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEtD;AAuED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CA4CjD;AAoID,wBAAgB,eAAe,CAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,WAAW,EAAE,GACrB,MAAM,CA4oGR"}
|