@mclawnet/mcp-server 0.1.7 → 0.1.8
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/dist/inbox-touch-relay.d.ts +23 -0
- package/dist/inbox-touch-relay.d.ts.map +1 -0
- package/dist/inbox-touch-relay.js +41 -0
- package/dist/inbox-touch-relay.js.map +1 -0
- package/dist/server.js +106 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/inbox.d.ts +165 -2
- package/dist/tools/inbox.d.ts.map +1 -1
- package/dist/tools/inbox.js +246 -1
- package/dist/tools/inbox.js.map +1 -1
- package/dist/tools/index.d.ts +372 -254
- package/dist/tools/index.d.ts.map +1 -1
- package/package.json +8 -4
package/dist/tools/inbox.js
CHANGED
|
@@ -1,9 +1,43 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { isAbsolute } from "node:path";
|
|
3
|
+
import { homedir } from "node:os";
|
|
2
4
|
import { createLogger } from "@mclawnet/logger";
|
|
3
5
|
import { InboxStore } from "@mclawnet/swarm";
|
|
4
6
|
import { TaskStore } from "@mclawnet/task";
|
|
5
7
|
const log = createLogger({ module: "mcp-server/tools/inbox" });
|
|
6
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Defence-in-depth: an LLM-supplied workDir flows into many filesystem APIs
|
|
10
|
+
* (InboxStore path joins, fs.watch projectRoot). Reject obvious abuse —
|
|
11
|
+
* non-absolute paths, root `/`, and the user's home directory — before the
|
|
12
|
+
* value reaches any FS call. swarmId / instanceId are validated by
|
|
13
|
+
* InboxStore itself.
|
|
14
|
+
*/
|
|
15
|
+
function validateWorkDir(workDir) {
|
|
16
|
+
if (!workDir || typeof workDir !== "string" || !isAbsolute(workDir)) {
|
|
17
|
+
return "workDir must be an absolute path";
|
|
18
|
+
}
|
|
19
|
+
if (workDir === "/" || workDir === homedir()) {
|
|
20
|
+
return "workDir cannot be / or homedir";
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function errorResult(message) {
|
|
25
|
+
return {
|
|
26
|
+
content: [{ type: "text", text: JSON.stringify({ error: message }) }],
|
|
27
|
+
isError: true,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export const INBOX_TOOL_NAMES = new Set(["message_send", "wakeup_after", "watch_path"]);
|
|
31
|
+
const DEFAULT_WATCH_IGNORES = [".git/**", "node_modules/**", "dist/**", ".clawnet/**"];
|
|
32
|
+
// M5 hotfix I4: caps to bound DoS by adversarial LLM tool spam. Enforced at
|
|
33
|
+
// the cheapest point (this handler) so over-quota calls are rejected before
|
|
34
|
+
// hitting the WatchManager / WakeupScheduler. Per-instance caps are also
|
|
35
|
+
// enforced in the server.ts wrapper (countForInstance) because the agent
|
|
36
|
+
// process owns the registry.
|
|
37
|
+
const MAX_GLOBS = 32;
|
|
38
|
+
const MAX_GLOB_LEN = 256;
|
|
39
|
+
const MAX_WATCHES_PER_INSTANCE = 64;
|
|
40
|
+
const MAX_WAKEUPS_PER_INSTANCE = 256;
|
|
7
41
|
export function getInboxToolDefinitions() {
|
|
8
42
|
return [
|
|
9
43
|
{
|
|
@@ -31,6 +65,55 @@ export function getInboxToolDefinitions() {
|
|
|
31
65
|
required: ["workDir", "swarmId", "from", "to", "type", "data"],
|
|
32
66
|
},
|
|
33
67
|
},
|
|
68
|
+
{
|
|
69
|
+
name: "wakeup_after",
|
|
70
|
+
description: "Schedule a self-wakeup: append an inbox message to the target instance that becomes deliverable only after `seconds`. Use to defer work without external triggers — e.g. 'check build in 30s', 'retry in 5m'. Persisted to disk; the agent process re-scans inboxes and re-registers timers on startup, so wakeups survive MCP server / agent restart. Max 86400 seconds (24h).",
|
|
71
|
+
inputSchema: {
|
|
72
|
+
type: "object",
|
|
73
|
+
properties: {
|
|
74
|
+
workDir: { type: "string", description: "Absolute path of the project working directory" },
|
|
75
|
+
swarmId: { type: "string", description: "Swarm id the recipient lives in" },
|
|
76
|
+
instanceId: { type: "string", description: "Target instance — usually caller's own id for self-wakeup" },
|
|
77
|
+
seconds: { type: "number", exclusiveMinimum: 0, maximum: 86_400, description: "Delay in seconds, 0 < n <= 86400" },
|
|
78
|
+
payload: { type: "string", description: "Message body delivered when timer fires" },
|
|
79
|
+
type: { type: "string", description: "Message type, default 'wakeup'" },
|
|
80
|
+
from: { type: "string", description: "Sender label, default 'self'" },
|
|
81
|
+
},
|
|
82
|
+
required: ["workDir", "swarmId", "instanceId", "seconds", "payload"],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: "watch_path",
|
|
87
|
+
description: "Register a filesystem watch under the project workDir. When any file matching includeGlobs (but not ignoreGlobs) changes, after debounceMs of quiet, an inbox message is delivered to the target instance with the matched relative path appended to payload on a new line as `[matched-path] <path>`. Use to wait for external work — e.g. 'tell me when build/ updates', 'wake me when src/**/*.ts changes'. Returns a watchId for future unwatch (v1: no explicit unwatch tool; cleared automatically when role stops).",
|
|
88
|
+
inputSchema: {
|
|
89
|
+
type: "object",
|
|
90
|
+
properties: {
|
|
91
|
+
workDir: { type: "string", description: "Absolute path of the project working directory" },
|
|
92
|
+
swarmId: { type: "string" },
|
|
93
|
+
instanceId: { type: "string", description: "Target instance — usually caller's own id" },
|
|
94
|
+
includeGlobs: {
|
|
95
|
+
type: "array",
|
|
96
|
+
items: { type: "string" },
|
|
97
|
+
minItems: 1,
|
|
98
|
+
description: "gitignore-style globs, e.g. ['src/**/*.ts', 'build/**']",
|
|
99
|
+
},
|
|
100
|
+
payload: {
|
|
101
|
+
type: "string",
|
|
102
|
+
description: "Message body delivered when trigger fires; the matched relative path is appended on a new line as `[matched-path] <path>`",
|
|
103
|
+
},
|
|
104
|
+
ignoreGlobs: {
|
|
105
|
+
type: "array",
|
|
106
|
+
items: { type: "string" },
|
|
107
|
+
description: "default: ['.git/**','node_modules/**','dist/**','.clawnet/**']",
|
|
108
|
+
},
|
|
109
|
+
debounceMs: { type: "number", minimum: 0, description: "default 1000" },
|
|
110
|
+
type: { type: "string", description: "default 'path_change'" },
|
|
111
|
+
from: { type: "string", description: "default 'watcher'" },
|
|
112
|
+
watchId: { type: "string", description: "optional client-supplied id; if absent a UUID is generated" },
|
|
113
|
+
},
|
|
114
|
+
required: ["workDir", "swarmId", "instanceId", "includeGlobs", "payload"],
|
|
115
|
+
},
|
|
116
|
+
},
|
|
34
117
|
];
|
|
35
118
|
}
|
|
36
119
|
export async function handleInboxToolCall(name, args, context) {
|
|
@@ -39,6 +122,10 @@ export async function handleInboxToolCall(name, args, context) {
|
|
|
39
122
|
switch (name) {
|
|
40
123
|
case "message_send":
|
|
41
124
|
return await handleMessageSend(args, context);
|
|
125
|
+
case "wakeup_after":
|
|
126
|
+
return await handleWakeupAfter(args, context);
|
|
127
|
+
case "watch_path":
|
|
128
|
+
return await handleWatchPath(args, context);
|
|
42
129
|
default:
|
|
43
130
|
return {
|
|
44
131
|
content: [{ type: "text", text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
|
|
@@ -85,6 +172,9 @@ async function handleMessageSend(args, context) {
|
|
|
85
172
|
throw new Error("type is required");
|
|
86
173
|
if (data === undefined || data === null)
|
|
87
174
|
throw new Error("data is required");
|
|
175
|
+
const wdErr = validateWorkDir(workDir);
|
|
176
|
+
if (wdErr)
|
|
177
|
+
return errorResult(wdErr);
|
|
88
178
|
const taskId = args.taskId;
|
|
89
179
|
const hasExpectedStatus = "expectedStatus" in args && args.expectedStatus !== undefined;
|
|
90
180
|
const hasExpectedOwner = "expectedOwner" in args && args.expectedOwner !== undefined;
|
|
@@ -165,4 +255,159 @@ async function handleMessageSend(args, context) {
|
|
|
165
255
|
content: [{ type: "text", text: JSON.stringify({ messageId }) }],
|
|
166
256
|
};
|
|
167
257
|
}
|
|
258
|
+
async function handleWakeupAfter(args, context) {
|
|
259
|
+
const workDir = args.workDir;
|
|
260
|
+
const swarmId = args.swarmId;
|
|
261
|
+
const instanceId = args.instanceId;
|
|
262
|
+
const seconds = args.seconds;
|
|
263
|
+
const payload = args.payload;
|
|
264
|
+
const type = args.type ?? "wakeup";
|
|
265
|
+
const from = args.from ?? "self";
|
|
266
|
+
if (!workDir)
|
|
267
|
+
throw new Error("workDir is required");
|
|
268
|
+
if (!swarmId)
|
|
269
|
+
throw new Error("swarmId is required");
|
|
270
|
+
if (!instanceId)
|
|
271
|
+
throw new Error("instanceId is required");
|
|
272
|
+
{
|
|
273
|
+
const wdErr = validateWorkDir(workDir);
|
|
274
|
+
if (wdErr)
|
|
275
|
+
return errorResult(wdErr);
|
|
276
|
+
}
|
|
277
|
+
if (typeof seconds !== "number" ||
|
|
278
|
+
!Number.isFinite(seconds) ||
|
|
279
|
+
seconds <= 0 ||
|
|
280
|
+
seconds > 86_400) {
|
|
281
|
+
return errorResult("seconds must be a finite number in (0, 86400]");
|
|
282
|
+
}
|
|
283
|
+
if (typeof payload !== "string")
|
|
284
|
+
throw new Error("payload must be a string");
|
|
285
|
+
// I4 cap: refuse before write so we don't pile up dead-letter inbox entries.
|
|
286
|
+
if (context.scheduler?.countForInstance &&
|
|
287
|
+
context.scheduler.countForInstance(swarmId, instanceId) >= MAX_WAKEUPS_PER_INSTANCE) {
|
|
288
|
+
return errorResult(`max wakeups per instance (${MAX_WAKEUPS_PER_INSTANCE}) exceeded`);
|
|
289
|
+
}
|
|
290
|
+
const messageId = randomUUID();
|
|
291
|
+
const notBefore = Date.now() + Math.floor(seconds * 1000);
|
|
292
|
+
const msg = {
|
|
293
|
+
id: messageId,
|
|
294
|
+
from,
|
|
295
|
+
type,
|
|
296
|
+
data: payload,
|
|
297
|
+
timestamp: Date.now(),
|
|
298
|
+
delivered: false,
|
|
299
|
+
notBefore,
|
|
300
|
+
};
|
|
301
|
+
const store = new InboxStore(workDir, swarmId, context.rootDir);
|
|
302
|
+
await store.append(instanceId, msg);
|
|
303
|
+
if (context.scheduler) {
|
|
304
|
+
try {
|
|
305
|
+
context.scheduler.register(swarmId, instanceId, notBefore, workDir);
|
|
306
|
+
}
|
|
307
|
+
catch (err) {
|
|
308
|
+
log.warn({ err, swarmId, instanceId }, "scheduler register failed (best-effort)");
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return {
|
|
312
|
+
content: [{ type: "text", text: JSON.stringify({ messageId, notBefore }) }],
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
async function handleWatchPath(args, context) {
|
|
316
|
+
const workDir = args.workDir;
|
|
317
|
+
const swarmId = args.swarmId;
|
|
318
|
+
const instanceId = args.instanceId;
|
|
319
|
+
const includeGlobs = args.includeGlobs;
|
|
320
|
+
const payload = args.payload;
|
|
321
|
+
const ignoreGlobs = args.ignoreGlobs ?? DEFAULT_WATCH_IGNORES;
|
|
322
|
+
const debounceMs = args.debounceMs ?? 1000;
|
|
323
|
+
const type = args.type ?? "path_change";
|
|
324
|
+
const from = args.from ?? "watcher";
|
|
325
|
+
const watchId = args.watchId ?? randomUUID();
|
|
326
|
+
if (!workDir)
|
|
327
|
+
throw new Error("workDir is required");
|
|
328
|
+
if (!swarmId)
|
|
329
|
+
throw new Error("swarmId is required");
|
|
330
|
+
if (!instanceId)
|
|
331
|
+
throw new Error("instanceId is required");
|
|
332
|
+
{
|
|
333
|
+
const wdErr = validateWorkDir(workDir);
|
|
334
|
+
if (wdErr)
|
|
335
|
+
return errorResult(wdErr);
|
|
336
|
+
}
|
|
337
|
+
if (!Array.isArray(includeGlobs) ||
|
|
338
|
+
includeGlobs.length === 0 ||
|
|
339
|
+
!includeGlobs.every((g) => typeof g === "string")) {
|
|
340
|
+
return errorResult("includeGlobs must be a non-empty array of strings");
|
|
341
|
+
}
|
|
342
|
+
// I4: bound glob list size / individual glob length so an LLM can't
|
|
343
|
+
// construct a O(N*M) regex storm or megabyte-long patterns.
|
|
344
|
+
if (includeGlobs.length > MAX_GLOBS) {
|
|
345
|
+
return errorResult(`includeGlobs exceeds max ${MAX_GLOBS}`);
|
|
346
|
+
}
|
|
347
|
+
if (!Array.isArray(ignoreGlobs)) {
|
|
348
|
+
return errorResult("ignoreGlobs must be an array of strings");
|
|
349
|
+
}
|
|
350
|
+
if (ignoreGlobs.length > MAX_GLOBS) {
|
|
351
|
+
return errorResult(`ignoreGlobs exceeds max ${MAX_GLOBS}`);
|
|
352
|
+
}
|
|
353
|
+
for (const g of includeGlobs) {
|
|
354
|
+
if (typeof g !== "string" || g.length > MAX_GLOB_LEN) {
|
|
355
|
+
return errorResult(`includeGlob too long or non-string (max ${MAX_GLOB_LEN} chars)`);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
for (const g of ignoreGlobs) {
|
|
359
|
+
if (typeof g !== "string" || g.length > MAX_GLOB_LEN) {
|
|
360
|
+
return errorResult(`ignoreGlob too long or non-string (max ${MAX_GLOB_LEN} chars)`);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
if (typeof payload !== "string")
|
|
364
|
+
throw new Error("payload must be a string");
|
|
365
|
+
if (typeof debounceMs !== "number" || debounceMs < 0 || !Number.isFinite(debounceMs)) {
|
|
366
|
+
return errorResult("debounceMs must be a finite non-negative number");
|
|
367
|
+
}
|
|
368
|
+
if (!context.watchManager) {
|
|
369
|
+
return errorResult("watchManager not wired in this MCP server");
|
|
370
|
+
}
|
|
371
|
+
// I4 cap: refuse before register so an over-quota call doesn't allocate
|
|
372
|
+
// an FSWatcher we'd just have to tear down.
|
|
373
|
+
if (context.watchManager.countForInstance &&
|
|
374
|
+
context.watchManager.countForInstance(swarmId, instanceId) >= MAX_WATCHES_PER_INSTANCE) {
|
|
375
|
+
return errorResult(`max watches per instance (${MAX_WATCHES_PER_INSTANCE}) exceeded`);
|
|
376
|
+
}
|
|
377
|
+
context.watchManager.register({
|
|
378
|
+
swarmId,
|
|
379
|
+
instanceId,
|
|
380
|
+
watchId,
|
|
381
|
+
projectRoot: workDir,
|
|
382
|
+
includeGlobs,
|
|
383
|
+
ignoreGlobs,
|
|
384
|
+
debounceMs,
|
|
385
|
+
onTrigger: async (matchedPath) => {
|
|
386
|
+
try {
|
|
387
|
+
// Use a non-XML marker so the envelope's XML escape (single source of
|
|
388
|
+
// truth for `<` and `&`) won't clobber it. Pre-escaping here would
|
|
389
|
+
// double-encode (foo&bar → foo&amp;bar) and `<matched>` itself
|
|
390
|
+
// would become `<matched>` — unparseable by the LLM as a tag.
|
|
391
|
+
const msg = {
|
|
392
|
+
id: randomUUID(),
|
|
393
|
+
from,
|
|
394
|
+
type,
|
|
395
|
+
data: `${payload}\n[matched-path] ${matchedPath}`,
|
|
396
|
+
timestamp: Date.now(),
|
|
397
|
+
delivered: false,
|
|
398
|
+
};
|
|
399
|
+
await new InboxStore(workDir, swarmId, context.rootDir).append(instanceId, msg);
|
|
400
|
+
if (context.relay) {
|
|
401
|
+
await context.relay.deliver(swarmId, instanceId);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
catch (err) {
|
|
405
|
+
log.warn({ err, swarmId, instanceId }, "watch trigger inbox write failed");
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
});
|
|
409
|
+
return {
|
|
410
|
+
content: [{ type: "text", text: JSON.stringify({ watchId }) }],
|
|
411
|
+
};
|
|
412
|
+
}
|
|
168
413
|
//# sourceMappingURL=inbox.js.map
|
package/dist/tools/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/tools/inbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/tools/inbox.ts"],"names":[],"mappings":"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"}
|