@mclawnet/mcp-server 0.1.7 → 0.1.9
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 +107 -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 +256 -2
- package/dist/tools/inbox.js.map +1 -1
- package/dist/tools/index.d.ts +146 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/swarm.d.ts +66 -0
- package/dist/tools/swarm.d.ts.map +1 -0
- package/dist/tools/swarm.js +142 -0
- package/dist/tools/swarm.js.map +1 -0
- package/dist/tools/task.d.ts.map +1 -1
- package/dist/tools/task.js +11 -2
- package/dist/tools/task.js.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,14 +65,76 @@ 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) {
|
|
37
120
|
try {
|
|
38
121
|
log.info({ tool: name }, "MCP inbox tool called");
|
|
122
|
+
// M6 T7: when the caller (LLM) omits workDir, fall back to the
|
|
123
|
+
// CLAWNET_PROJECT_ROOT env var injected by SwarmCoordinator at role
|
|
124
|
+
// spawn. This keeps inbox / wakeup / watch routing pinned to the
|
|
125
|
+
// original project namespace even when the role's cwd is a worktree.
|
|
126
|
+
if ((args.workDir === undefined || args.workDir === null || args.workDir === "") &&
|
|
127
|
+
typeof process.env.CLAWNET_PROJECT_ROOT === "string" &&
|
|
128
|
+
process.env.CLAWNET_PROJECT_ROOT.length > 0) {
|
|
129
|
+
args = { ...args, workDir: process.env.CLAWNET_PROJECT_ROOT };
|
|
130
|
+
}
|
|
39
131
|
switch (name) {
|
|
40
132
|
case "message_send":
|
|
41
133
|
return await handleMessageSend(args, context);
|
|
134
|
+
case "wakeup_after":
|
|
135
|
+
return await handleWakeupAfter(args, context);
|
|
136
|
+
case "watch_path":
|
|
137
|
+
return await handleWatchPath(args, context);
|
|
42
138
|
default:
|
|
43
139
|
return {
|
|
44
140
|
content: [{ type: "text", text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
|
|
@@ -74,7 +170,7 @@ async function handleMessageSend(args, context) {
|
|
|
74
170
|
const type = args.type;
|
|
75
171
|
const data = args.data;
|
|
76
172
|
if (!workDir)
|
|
77
|
-
throw new Error("workDir is required");
|
|
173
|
+
throw new Error("workDir is required (or set CLAWNET_PROJECT_ROOT env var)");
|
|
78
174
|
if (!swarmId)
|
|
79
175
|
throw new Error("swarmId is required");
|
|
80
176
|
if (!from)
|
|
@@ -85,6 +181,9 @@ async function handleMessageSend(args, context) {
|
|
|
85
181
|
throw new Error("type is required");
|
|
86
182
|
if (data === undefined || data === null)
|
|
87
183
|
throw new Error("data is required");
|
|
184
|
+
const wdErr = validateWorkDir(workDir);
|
|
185
|
+
if (wdErr)
|
|
186
|
+
return errorResult(wdErr);
|
|
88
187
|
const taskId = args.taskId;
|
|
89
188
|
const hasExpectedStatus = "expectedStatus" in args && args.expectedStatus !== undefined;
|
|
90
189
|
const hasExpectedOwner = "expectedOwner" in args && args.expectedOwner !== undefined;
|
|
@@ -165,4 +264,159 @@ async function handleMessageSend(args, context) {
|
|
|
165
264
|
content: [{ type: "text", text: JSON.stringify({ messageId }) }],
|
|
166
265
|
};
|
|
167
266
|
}
|
|
267
|
+
async function handleWakeupAfter(args, context) {
|
|
268
|
+
const workDir = args.workDir;
|
|
269
|
+
const swarmId = args.swarmId;
|
|
270
|
+
const instanceId = args.instanceId;
|
|
271
|
+
const seconds = args.seconds;
|
|
272
|
+
const payload = args.payload;
|
|
273
|
+
const type = args.type ?? "wakeup";
|
|
274
|
+
const from = args.from ?? "self";
|
|
275
|
+
if (!workDir)
|
|
276
|
+
throw new Error("workDir is required (or set CLAWNET_PROJECT_ROOT env var)");
|
|
277
|
+
if (!swarmId)
|
|
278
|
+
throw new Error("swarmId is required");
|
|
279
|
+
if (!instanceId)
|
|
280
|
+
throw new Error("instanceId is required");
|
|
281
|
+
{
|
|
282
|
+
const wdErr = validateWorkDir(workDir);
|
|
283
|
+
if (wdErr)
|
|
284
|
+
return errorResult(wdErr);
|
|
285
|
+
}
|
|
286
|
+
if (typeof seconds !== "number" ||
|
|
287
|
+
!Number.isFinite(seconds) ||
|
|
288
|
+
seconds <= 0 ||
|
|
289
|
+
seconds > 86_400) {
|
|
290
|
+
return errorResult("seconds must be a finite number in (0, 86400]");
|
|
291
|
+
}
|
|
292
|
+
if (typeof payload !== "string")
|
|
293
|
+
throw new Error("payload must be a string");
|
|
294
|
+
// I4 cap: refuse before write so we don't pile up dead-letter inbox entries.
|
|
295
|
+
if (context.scheduler?.countForInstance &&
|
|
296
|
+
context.scheduler.countForInstance(swarmId, instanceId) >= MAX_WAKEUPS_PER_INSTANCE) {
|
|
297
|
+
return errorResult(`max wakeups per instance (${MAX_WAKEUPS_PER_INSTANCE}) exceeded`);
|
|
298
|
+
}
|
|
299
|
+
const messageId = randomUUID();
|
|
300
|
+
const notBefore = Date.now() + Math.floor(seconds * 1000);
|
|
301
|
+
const msg = {
|
|
302
|
+
id: messageId,
|
|
303
|
+
from,
|
|
304
|
+
type,
|
|
305
|
+
data: payload,
|
|
306
|
+
timestamp: Date.now(),
|
|
307
|
+
delivered: false,
|
|
308
|
+
notBefore,
|
|
309
|
+
};
|
|
310
|
+
const store = new InboxStore(workDir, swarmId, context.rootDir);
|
|
311
|
+
await store.append(instanceId, msg);
|
|
312
|
+
if (context.scheduler) {
|
|
313
|
+
try {
|
|
314
|
+
context.scheduler.register(swarmId, instanceId, notBefore, workDir);
|
|
315
|
+
}
|
|
316
|
+
catch (err) {
|
|
317
|
+
log.warn({ err, swarmId, instanceId }, "scheduler register failed (best-effort)");
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return {
|
|
321
|
+
content: [{ type: "text", text: JSON.stringify({ messageId, notBefore }) }],
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
async function handleWatchPath(args, context) {
|
|
325
|
+
const workDir = args.workDir;
|
|
326
|
+
const swarmId = args.swarmId;
|
|
327
|
+
const instanceId = args.instanceId;
|
|
328
|
+
const includeGlobs = args.includeGlobs;
|
|
329
|
+
const payload = args.payload;
|
|
330
|
+
const ignoreGlobs = args.ignoreGlobs ?? DEFAULT_WATCH_IGNORES;
|
|
331
|
+
const debounceMs = args.debounceMs ?? 1000;
|
|
332
|
+
const type = args.type ?? "path_change";
|
|
333
|
+
const from = args.from ?? "watcher";
|
|
334
|
+
const watchId = args.watchId ?? randomUUID();
|
|
335
|
+
if (!workDir)
|
|
336
|
+
throw new Error("workDir is required (or set CLAWNET_PROJECT_ROOT env var)");
|
|
337
|
+
if (!swarmId)
|
|
338
|
+
throw new Error("swarmId is required");
|
|
339
|
+
if (!instanceId)
|
|
340
|
+
throw new Error("instanceId is required");
|
|
341
|
+
{
|
|
342
|
+
const wdErr = validateWorkDir(workDir);
|
|
343
|
+
if (wdErr)
|
|
344
|
+
return errorResult(wdErr);
|
|
345
|
+
}
|
|
346
|
+
if (!Array.isArray(includeGlobs) ||
|
|
347
|
+
includeGlobs.length === 0 ||
|
|
348
|
+
!includeGlobs.every((g) => typeof g === "string")) {
|
|
349
|
+
return errorResult("includeGlobs must be a non-empty array of strings");
|
|
350
|
+
}
|
|
351
|
+
// I4: bound glob list size / individual glob length so an LLM can't
|
|
352
|
+
// construct a O(N*M) regex storm or megabyte-long patterns.
|
|
353
|
+
if (includeGlobs.length > MAX_GLOBS) {
|
|
354
|
+
return errorResult(`includeGlobs exceeds max ${MAX_GLOBS}`);
|
|
355
|
+
}
|
|
356
|
+
if (!Array.isArray(ignoreGlobs)) {
|
|
357
|
+
return errorResult("ignoreGlobs must be an array of strings");
|
|
358
|
+
}
|
|
359
|
+
if (ignoreGlobs.length > MAX_GLOBS) {
|
|
360
|
+
return errorResult(`ignoreGlobs exceeds max ${MAX_GLOBS}`);
|
|
361
|
+
}
|
|
362
|
+
for (const g of includeGlobs) {
|
|
363
|
+
if (typeof g !== "string" || g.length > MAX_GLOB_LEN) {
|
|
364
|
+
return errorResult(`includeGlob too long or non-string (max ${MAX_GLOB_LEN} chars)`);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
for (const g of ignoreGlobs) {
|
|
368
|
+
if (typeof g !== "string" || g.length > MAX_GLOB_LEN) {
|
|
369
|
+
return errorResult(`ignoreGlob too long or non-string (max ${MAX_GLOB_LEN} chars)`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
if (typeof payload !== "string")
|
|
373
|
+
throw new Error("payload must be a string");
|
|
374
|
+
if (typeof debounceMs !== "number" || debounceMs < 0 || !Number.isFinite(debounceMs)) {
|
|
375
|
+
return errorResult("debounceMs must be a finite non-negative number");
|
|
376
|
+
}
|
|
377
|
+
if (!context.watchManager) {
|
|
378
|
+
return errorResult("watchManager not wired in this MCP server");
|
|
379
|
+
}
|
|
380
|
+
// I4 cap: refuse before register so an over-quota call doesn't allocate
|
|
381
|
+
// an FSWatcher we'd just have to tear down.
|
|
382
|
+
if (context.watchManager.countForInstance &&
|
|
383
|
+
context.watchManager.countForInstance(swarmId, instanceId) >= MAX_WATCHES_PER_INSTANCE) {
|
|
384
|
+
return errorResult(`max watches per instance (${MAX_WATCHES_PER_INSTANCE}) exceeded`);
|
|
385
|
+
}
|
|
386
|
+
context.watchManager.register({
|
|
387
|
+
swarmId,
|
|
388
|
+
instanceId,
|
|
389
|
+
watchId,
|
|
390
|
+
projectRoot: workDir,
|
|
391
|
+
includeGlobs,
|
|
392
|
+
ignoreGlobs,
|
|
393
|
+
debounceMs,
|
|
394
|
+
onTrigger: async (matchedPath) => {
|
|
395
|
+
try {
|
|
396
|
+
// Use a non-XML marker so the envelope's XML escape (single source of
|
|
397
|
+
// truth for `<` and `&`) won't clobber it. Pre-escaping here would
|
|
398
|
+
// double-encode (foo&bar → foo&amp;bar) and `<matched>` itself
|
|
399
|
+
// would become `<matched>` — unparseable by the LLM as a tag.
|
|
400
|
+
const msg = {
|
|
401
|
+
id: randomUUID(),
|
|
402
|
+
from,
|
|
403
|
+
type,
|
|
404
|
+
data: `${payload}\n[matched-path] ${matchedPath}`,
|
|
405
|
+
timestamp: Date.now(),
|
|
406
|
+
delivered: false,
|
|
407
|
+
};
|
|
408
|
+
await new InboxStore(workDir, swarmId, context.rootDir).append(instanceId, msg);
|
|
409
|
+
if (context.relay) {
|
|
410
|
+
await context.relay.deliver(swarmId, instanceId);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch (err) {
|
|
414
|
+
log.warn({ err, swarmId, instanceId }, "watch trigger inbox write failed");
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
});
|
|
418
|
+
return {
|
|
419
|
+
content: [{ type: "text", text: JSON.stringify({ watchId }) }],
|
|
420
|
+
};
|
|
421
|
+
}
|
|
168
422
|
//# 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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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -4,8 +4,10 @@ import { type EvolutionToolContext } from "./evolution.js";
|
|
|
4
4
|
import { type TaskToolContext } from "./task.js";
|
|
5
5
|
import { type InboxToolContext } from "./inbox.js";
|
|
6
6
|
import { type PlanReviewToolContext } from "./plan-review.js";
|
|
7
|
+
import { type SwarmToolContext } from "./swarm.js";
|
|
7
8
|
export type { InboxRelayLike, InboxToolContext } from "./inbox.js";
|
|
8
9
|
export type { PlanReviewToolContext } from "./plan-review.js";
|
|
10
|
+
export type { SwarmToolContext } from "./swarm.js";
|
|
9
11
|
export interface ToolContext {
|
|
10
12
|
memory: MemoryToolContext;
|
|
11
13
|
skill: SkillToolContext;
|
|
@@ -13,6 +15,7 @@ export interface ToolContext {
|
|
|
13
15
|
task: TaskToolContext;
|
|
14
16
|
inbox: InboxToolContext;
|
|
15
17
|
planReview: PlanReviewToolContext;
|
|
18
|
+
swarm: SwarmToolContext;
|
|
16
19
|
}
|
|
17
20
|
export declare function getAllToolDefinitions(): ({
|
|
18
21
|
name: string;
|
|
@@ -573,6 +576,124 @@ export declare function getAllToolDefinitions(): ({
|
|
|
573
576
|
type: string[];
|
|
574
577
|
description: string;
|
|
575
578
|
};
|
|
579
|
+
instanceId?: undefined;
|
|
580
|
+
seconds?: undefined;
|
|
581
|
+
payload?: undefined;
|
|
582
|
+
includeGlobs?: undefined;
|
|
583
|
+
ignoreGlobs?: undefined;
|
|
584
|
+
debounceMs?: undefined;
|
|
585
|
+
watchId?: undefined;
|
|
586
|
+
};
|
|
587
|
+
required: string[];
|
|
588
|
+
};
|
|
589
|
+
} | {
|
|
590
|
+
name: string;
|
|
591
|
+
description: string;
|
|
592
|
+
inputSchema: {
|
|
593
|
+
type: "object";
|
|
594
|
+
properties: {
|
|
595
|
+
workDir: {
|
|
596
|
+
type: string;
|
|
597
|
+
description: string;
|
|
598
|
+
};
|
|
599
|
+
swarmId: {
|
|
600
|
+
type: string;
|
|
601
|
+
description: string;
|
|
602
|
+
};
|
|
603
|
+
instanceId: {
|
|
604
|
+
type: string;
|
|
605
|
+
description: string;
|
|
606
|
+
};
|
|
607
|
+
seconds: {
|
|
608
|
+
type: string;
|
|
609
|
+
exclusiveMinimum: number;
|
|
610
|
+
maximum: number;
|
|
611
|
+
description: string;
|
|
612
|
+
};
|
|
613
|
+
payload: {
|
|
614
|
+
type: string;
|
|
615
|
+
description: string;
|
|
616
|
+
};
|
|
617
|
+
type: {
|
|
618
|
+
type: string;
|
|
619
|
+
description: string;
|
|
620
|
+
};
|
|
621
|
+
from: {
|
|
622
|
+
type: string;
|
|
623
|
+
description: string;
|
|
624
|
+
};
|
|
625
|
+
to?: undefined;
|
|
626
|
+
data?: undefined;
|
|
627
|
+
taskId?: undefined;
|
|
628
|
+
expectedStatus?: undefined;
|
|
629
|
+
expectedOwner?: undefined;
|
|
630
|
+
includeGlobs?: undefined;
|
|
631
|
+
ignoreGlobs?: undefined;
|
|
632
|
+
debounceMs?: undefined;
|
|
633
|
+
watchId?: undefined;
|
|
634
|
+
};
|
|
635
|
+
required: string[];
|
|
636
|
+
};
|
|
637
|
+
} | {
|
|
638
|
+
name: string;
|
|
639
|
+
description: string;
|
|
640
|
+
inputSchema: {
|
|
641
|
+
type: "object";
|
|
642
|
+
properties: {
|
|
643
|
+
workDir: {
|
|
644
|
+
type: string;
|
|
645
|
+
description: string;
|
|
646
|
+
};
|
|
647
|
+
swarmId: {
|
|
648
|
+
type: string;
|
|
649
|
+
description?: undefined;
|
|
650
|
+
};
|
|
651
|
+
instanceId: {
|
|
652
|
+
type: string;
|
|
653
|
+
description: string;
|
|
654
|
+
};
|
|
655
|
+
includeGlobs: {
|
|
656
|
+
type: string;
|
|
657
|
+
items: {
|
|
658
|
+
type: string;
|
|
659
|
+
};
|
|
660
|
+
minItems: number;
|
|
661
|
+
description: string;
|
|
662
|
+
};
|
|
663
|
+
payload: {
|
|
664
|
+
type: string;
|
|
665
|
+
description: string;
|
|
666
|
+
};
|
|
667
|
+
ignoreGlobs: {
|
|
668
|
+
type: string;
|
|
669
|
+
items: {
|
|
670
|
+
type: string;
|
|
671
|
+
};
|
|
672
|
+
description: string;
|
|
673
|
+
};
|
|
674
|
+
debounceMs: {
|
|
675
|
+
type: string;
|
|
676
|
+
minimum: number;
|
|
677
|
+
description: string;
|
|
678
|
+
};
|
|
679
|
+
type: {
|
|
680
|
+
type: string;
|
|
681
|
+
description: string;
|
|
682
|
+
};
|
|
683
|
+
from: {
|
|
684
|
+
type: string;
|
|
685
|
+
description: string;
|
|
686
|
+
};
|
|
687
|
+
watchId: {
|
|
688
|
+
type: string;
|
|
689
|
+
description: string;
|
|
690
|
+
};
|
|
691
|
+
to?: undefined;
|
|
692
|
+
data?: undefined;
|
|
693
|
+
taskId?: undefined;
|
|
694
|
+
expectedStatus?: undefined;
|
|
695
|
+
expectedOwner?: undefined;
|
|
696
|
+
seconds?: undefined;
|
|
576
697
|
};
|
|
577
698
|
required: string[];
|
|
578
699
|
};
|
|
@@ -606,6 +727,31 @@ export declare function getAllToolDefinitions(): ({
|
|
|
606
727
|
};
|
|
607
728
|
required: string[];
|
|
608
729
|
};
|
|
730
|
+
} | {
|
|
731
|
+
name: string;
|
|
732
|
+
description: string;
|
|
733
|
+
inputSchema: {
|
|
734
|
+
type: "object";
|
|
735
|
+
properties: {
|
|
736
|
+
workDir: {
|
|
737
|
+
type: string;
|
|
738
|
+
description: string;
|
|
739
|
+
};
|
|
740
|
+
swarmId: {
|
|
741
|
+
type: string;
|
|
742
|
+
description: string;
|
|
743
|
+
};
|
|
744
|
+
from: {
|
|
745
|
+
type: string;
|
|
746
|
+
description: string;
|
|
747
|
+
};
|
|
748
|
+
summary: {
|
|
749
|
+
type: string;
|
|
750
|
+
description: string;
|
|
751
|
+
};
|
|
752
|
+
};
|
|
753
|
+
required: string[];
|
|
754
|
+
};
|
|
609
755
|
} | {
|
|
610
756
|
name: string;
|
|
611
757
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAgD,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { getEvolutionToolDefinitions, handleEvolutionToolCall, } from "./evoluti
|
|
|
4
4
|
import { getTaskToolDefinitions, handleTaskToolCall, TASK_TOOL_NAMES, } from "./task.js";
|
|
5
5
|
import { getInboxToolDefinitions, handleInboxToolCall, INBOX_TOOL_NAMES, } from "./inbox.js";
|
|
6
6
|
import { getPlanReviewToolDefinitions, handlePlanReviewToolCall, PLAN_REVIEW_TOOL_NAMES, } from "./plan-review.js";
|
|
7
|
+
import { getSwarmToolDefinitions, handleSwarmToolCall, SWARM_TOOL_NAMES, } from "./swarm.js";
|
|
7
8
|
export function getAllToolDefinitions() {
|
|
8
9
|
return [
|
|
9
10
|
...getMemoryToolDefinitions(),
|
|
@@ -12,6 +13,7 @@ export function getAllToolDefinitions() {
|
|
|
12
13
|
...getTaskToolDefinitions(),
|
|
13
14
|
...getInboxToolDefinitions(),
|
|
14
15
|
...getPlanReviewToolDefinitions(),
|
|
16
|
+
...getSwarmToolDefinitions(),
|
|
15
17
|
];
|
|
16
18
|
}
|
|
17
19
|
export async function routeToolCall(name, args, context) {
|
|
@@ -35,6 +37,9 @@ export async function routeToolCall(name, args, context) {
|
|
|
35
37
|
if (PLAN_REVIEW_TOOL_NAMES.has(name)) {
|
|
36
38
|
return handlePlanReviewToolCall(name, args, context.planReview);
|
|
37
39
|
}
|
|
40
|
+
if (SWARM_TOOL_NAMES.has(name)) {
|
|
41
|
+
return handleSwarmToolCall(name, args, context.swarm);
|
|
42
|
+
}
|
|
38
43
|
return {
|
|
39
44
|
content: [{ type: "text", text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
|
|
40
45
|
isError: true,
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAA0B,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAyB,MAAM,YAAY,CAAC;AACjG,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,GAEhB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAA0B,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAyB,MAAM,YAAY,CAAC;AACjG,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,GAEhB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AAgBpB,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,GAAG,wBAAwB,EAAE;QAC7B,GAAG,uBAAuB,EAAE;QAC5B,GAAG,2BAA2B,EAAE;QAChC,GAAG,sBAAsB,EAAE;QAC3B,GAAG,uBAAuB,EAAE;QAC5B,GAAG,4BAA4B,EAAE;QACjC,GAAG,uBAAuB,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAA6B,EAC7B,OAAoB;IAEpB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChE,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,wEAAwE;QACxE,4EAA4E;QAC5E,OAAO,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACrF,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { InboxRelayLike } from "./inbox.js";
|
|
2
|
+
/**
|
|
3
|
+
* PR-B Sub-PR-B2 — `swarm_complete` MCP tool. Out-of-process queen calls
|
|
4
|
+
* this when she's decided the cycle's work is done. The tool writes a
|
|
5
|
+
* `swarm_complete_request` message to the queen's own inbox; the agent-
|
|
6
|
+
* side `SwarmCoordinator.handleInterceptedMessage` interceptor consumes
|
|
7
|
+
* it and invokes `coordinator.complete(swarmId)`, which runs the full
|
|
8
|
+
* cleanup chain (runRetroAndCleanup → closeSession → workspace dispose
|
|
9
|
+
* → shipment).
|
|
10
|
+
*
|
|
11
|
+
* Mirrors `plan_review_submit` — that one is reviewer→queen, this is
|
|
12
|
+
* queen→self. The two-hop indirection (MCP tool → inbox file → coordinator
|
|
13
|
+
* interceptor) lets the MCP server stay out-of-process from the agent.
|
|
14
|
+
*
|
|
15
|
+
* Restricted to queen instances: caller must pass `from` starting with
|
|
16
|
+
* "queen-". The coordinator-side interceptor enforces this again at the
|
|
17
|
+
* trust boundary.
|
|
18
|
+
*/
|
|
19
|
+
export interface SwarmToolContext {
|
|
20
|
+
/**
|
|
21
|
+
* Optional override for the clawnet root. Falls back to CLAWNET_HOME env
|
|
22
|
+
* then homedir(). Tests use this to keep InboxStore writes on temp dirs.
|
|
23
|
+
*/
|
|
24
|
+
rootDir?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Optional in-process relay so the coordinator interceptor wakes
|
|
27
|
+
* immediately. Cross-process MCP servers leave this undefined and rely
|
|
28
|
+
* on the agent-side InboxWatcher to pick up the file change.
|
|
29
|
+
*/
|
|
30
|
+
relay?: InboxRelayLike;
|
|
31
|
+
}
|
|
32
|
+
export declare const SWARM_TOOL_NAMES: Set<string>;
|
|
33
|
+
export declare function getSwarmToolDefinitions(): {
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: "object";
|
|
38
|
+
properties: {
|
|
39
|
+
workDir: {
|
|
40
|
+
type: string;
|
|
41
|
+
description: string;
|
|
42
|
+
};
|
|
43
|
+
swarmId: {
|
|
44
|
+
type: string;
|
|
45
|
+
description: string;
|
|
46
|
+
};
|
|
47
|
+
from: {
|
|
48
|
+
type: string;
|
|
49
|
+
description: string;
|
|
50
|
+
};
|
|
51
|
+
summary: {
|
|
52
|
+
type: string;
|
|
53
|
+
description: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
required: string[];
|
|
57
|
+
};
|
|
58
|
+
}[];
|
|
59
|
+
export declare function handleSwarmToolCall(name: string, args: Record<string, unknown>, context: SwarmToolContext): Promise<{
|
|
60
|
+
content: Array<{
|
|
61
|
+
type: "text";
|
|
62
|
+
text: string;
|
|
63
|
+
}>;
|
|
64
|
+
isError?: boolean;
|
|
65
|
+
}>;
|
|
66
|
+
//# sourceMappingURL=swarm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/tools/swarm.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,aAA8B,CAAC;AAE5D,wBAAgB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;IA0BtC;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAoBhF"}
|