clawborrator-mcp 0.0.10 → 0.0.12

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/index.js CHANGED
@@ -140,8 +140,15 @@ async function main() {
140
140
  `\n- probe_peers: fan out the same short question to many peers in parallel for discovery (e.g. "do you have a User model?").` +
141
141
  `\nWhen any of these returns "cross-session routing is disabled", tell the operator to enable it in hub Settings; don't retry. ` +
142
142
  `Use them when the operator asks something that genuinely lives in a different repo, when you need information another session has in its context, or when handing off a self-contained subtask makes more sense than doing it here.` +
143
+ `\n\nFile attachments:` +
144
+ `\n- attach_file: upload a file from your project as a chat attachment. Use it when the operator should be able to download something you produced (logs, charts, exports). Pass a path inside your cwd; symlinks pointing outside are refused. Returns a fileId — mention it in your reply text so the operator can find the chip on their dashboard.` +
143
145
  `\n\nPeer reports: when you dispatched work to a peer with route_to_peer in tell mode, the peer's eventual reply arrives here as a normal channel notification tagged "[peer report from @<peer> via cross-session routing — informational, no reply required]". React by closing the matching task (TaskUpdate), surfacing a one-line status update to the operator, or routing a follow-up — but DO NOT call the reply tool on a peer-report chat_id; the operator already saw the report on their dashboard.`,
144
146
  });
147
+ // Track our session id so tools can reference it. Set by the
148
+ // onWelcome handler below — closures referenced this variable
149
+ // before, but the assignment was missing, so attach_file (and
150
+ // any other sessionId-dependent tool) would always see null.
151
+ let toolCtxSessionId = null;
145
152
  // Open the channel-side WS to hub.
146
153
  const client = new ChannelClient(config, {
147
154
  onWelcome: (m) => {
@@ -150,6 +157,7 @@ async function main() {
150
157
  routingName: m.routingName,
151
158
  channelToken: m.channelTokenName,
152
159
  });
160
+ toolCtxSessionId = m.sessionId;
153
161
  // Persist the hub-issued session id so the NEXT cold boot of
154
162
  // this MCP rebinds the same row instead of minting a sibling
155
163
  // (same routing name, different UUID — class of bug we hit
@@ -205,21 +213,29 @@ async function main() {
205
213
  onRouteReply: (m) => {
206
214
  // A peer this session routed a prompt to (via either route_to_peer
207
215
  // MCP tool OR via a TUI @-redirect anchored on this session) has
208
- // replied. Forward to Claude as a channel notification with the
209
- // [peer report] prefix so it's surfaced to context but Claude
210
- // doesn't reflexively call `reply` on it. Same convention old
211
- // channel/channel.js:736 uses.
212
- log.info('route_reply received', { routeId: m.routeId, from: m.fromName });
216
+ // replied. Forward to Claude as a channel notification with a
217
+ // [peer report] / [operator-route reply] prefix so it's surfaced
218
+ // to context but Claude doesn't reflexively call `reply` on it.
219
+ // origin distinguishes the two paths so the framing matches:
220
+ // - 'operator' operator typed `@peer text` in their attach
221
+ // TUI; they already saw the answer there. This
222
+ // Claude is in the loop only because the route
223
+ // was anchored on its session — no task to
224
+ // close, no follow-up expected unless the
225
+ // operator says so.
226
+ // - 'mcp' (or unset) → this Claude called route_to_peer; close
227
+ // the matching task or route a follow-up.
228
+ log.info('route_reply received', { routeId: m.routeId, from: m.fromName, origin: m.origin ?? 'mcp' });
213
229
  const fromTag = m.fromName ? '@' + m.fromName.replace(/^@/, '') : 'peer';
214
230
  const sender = (m.fromName || 'peer').replace(/^@/, '').replace(/[^A-Za-z0-9_]/g, '_');
231
+ const prefix = m.origin === 'operator'
232
+ ? `[operator-route reply from ${fromTag} via cross-session routing — fyi, the operator dispatched this through your session and already saw the answer in their TUI; no action needed unless they ask. Don't call the reply tool on this chat_id.]`
233
+ : `[peer report from ${fromTag} via cross-session routing — informational, no reply required] Use TaskUpdate / TaskGet to close out tracked work, or route_to_peer to follow up. Don't call the reply tool on this chat_id.`;
215
234
  server.notification({
216
235
  method: 'notifications/claude/channel',
217
236
  params: {
218
- content: `[peer report from ${fromTag} via cross-session routing — informational, no reply required] ` +
219
- `Use TaskUpdate / TaskGet to close out tracked work, or route_to_peer to follow up. ` +
220
- `Don't call the reply tool on this chat_id.\n\n` +
221
- String(m.text ?? ''),
222
- meta: { chat_id: `peer_${m.routeId}`, sender },
237
+ content: `${prefix}\n\n${String(m.text ?? '')}`,
238
+ meta: { chat_id: `peer_${m.routeId}`, sender, origin: m.origin ?? 'mcp' },
223
239
  },
224
240
  }).catch((e) => log.warn('route_reply notification failed', { error: String(e) }));
225
241
  },
@@ -228,9 +244,6 @@ async function main() {
228
244
  },
229
245
  });
230
246
  client.connect();
231
- // Track our session id so tools (and future use) can reference it.
232
- // Set by the onWelcome handler above.
233
- let toolCtxSessionId = null;
234
247
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
235
248
  tools: TOOL_DEFINITIONS.map((t) => ({
236
249
  name: t.name,
@@ -238,9 +251,18 @@ async function main() {
238
251
  inputSchema: t.inputSchema,
239
252
  })),
240
253
  }));
254
+ // Hub URL in http(s):// form — channel WS speaks ws(s)://, but
255
+ // attach_file uses fetch + multipart which need http(s)://.
256
+ const httpHubUrl = config.hubUrl.replace(/^ws/i, 'http');
241
257
  server.setRequestHandler(CallToolRequestSchema, async (req) => {
242
258
  const args = (req.params.arguments ?? {});
243
- return await callTool({ client, sessionId: toolCtxSessionId }, req.params.name, args);
259
+ return await callTool({
260
+ client,
261
+ sessionId: toolCtxSessionId,
262
+ cwd,
263
+ httpHubUrl,
264
+ channelToken: config.token,
265
+ }, req.params.name, args);
244
266
  });
245
267
  void toolCtxSessionId;
246
268
  // CC-side permission relay. When CC needs the local user's
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,12 @@ interface CallContext {
3
3
  client: ChannelClient;
4
4
  /** Hub's chosen sessionId for this channel (filled by `welcome`). */
5
5
  sessionId: string | null;
6
+ /** Filesystem root used by attach_file's path resolution. */
7
+ cwd: string;
8
+ /** http(s):// form of the hub URL — attach_file POSTs multipart here. */
9
+ httpHubUrl: string;
10
+ /** Channel token (ck_live_...) — Bearer auth for /api/channel/files. */
11
+ channelToken: string;
6
12
  }
7
13
  export declare const TOOL_DEFINITIONS: readonly [{
8
14
  readonly name: "reply";
@@ -74,6 +80,20 @@ export declare const TOOL_DEFINITIONS: readonly [{
74
80
  };
75
81
  };
76
82
  };
83
+ }, {
84
+ readonly name: "attach_file";
85
+ readonly description: "Upload a file from your project as a chat attachment. The path must be inside your current working directory (relative paths are resolved against cwd; symlinks pointing outside are refused). Use this when the operator should be able to download a file you produced. Returns a fileId; mention it in your reply text so the operator can find the chip in the dashboard.";
86
+ readonly inputSchema: {
87
+ readonly type: "object";
88
+ readonly additionalProperties: false;
89
+ readonly required: readonly ["path"];
90
+ readonly properties: {
91
+ readonly path: {
92
+ readonly type: "string";
93
+ readonly description: "Path to the file. Relative is resolved against cwd; absolute must still resolve to a path under cwd.";
94
+ };
95
+ };
96
+ };
77
97
  }];
78
98
  export declare function callTool(ctx: CallContext, name: string, args: Record<string, unknown>): Promise<{
79
99
  isError?: boolean;
@@ -8,14 +8,19 @@
8
8
  // route_to_peer — send a prompt to one peer; ask blocks for reply,
9
9
  // tell is fire-and-forget
10
10
  // probe_peers — fan-out a short question across many peers
11
+ // attach_file — upload a file from the local cwd as a chat
12
+ // attachment; returns a fileId for chat refs
11
13
  //
12
14
  // Inbound prompts (operator-driven or peer-routed) arrive directly to
13
15
  // Claude via `notifications/claude/channel` — see index.ts onPrompt.
14
16
  // No queue, no polling tool.
15
17
  import { randomUUID } from 'node:crypto';
18
+ import { resolve, relative, basename } from 'node:path';
19
+ import { realpath, readFile, stat } from 'node:fs/promises';
16
20
  const ASK_TIMEOUT_MS = 60_000;
17
21
  const PROBE_TIMEOUT_MS = 30_000;
18
22
  const LIST_TIMEOUT_MS = 5_000;
23
+ const MAX_ATTACH_BYTES = 10 * 1024 * 1024;
19
24
  export const TOOL_DEFINITIONS = [
20
25
  {
21
26
  name: 'reply',
@@ -64,6 +69,18 @@ export const TOOL_DEFINITIONS = [
64
69
  },
65
70
  },
66
71
  },
72
+ {
73
+ name: 'attach_file',
74
+ description: 'Upload a file from your project as a chat attachment. The path must be inside your current working directory (relative paths are resolved against cwd; symlinks pointing outside are refused). Use this when the operator should be able to download a file you produced. Returns a fileId; mention it in your reply text so the operator can find the chip in the dashboard.',
75
+ inputSchema: {
76
+ type: 'object',
77
+ additionalProperties: false,
78
+ required: ['path'],
79
+ properties: {
80
+ path: { type: 'string', description: 'Path to the file. Relative is resolved against cwd; absolute must still resolve to a path under cwd.' },
81
+ },
82
+ },
83
+ },
67
84
  ];
68
85
  export async function callTool(ctx, name, args) {
69
86
  switch (name) {
@@ -133,10 +150,117 @@ export async function callTool(ctx, name, args) {
133
150
  const lines = results.map((r) => `@${r.peerLogin}: ${r.answer ?? '(no answer)'}`);
134
151
  return textContent(lines.join('\n'));
135
152
  }
153
+ case 'attach_file': {
154
+ const inputPath = String(args.path ?? '').trim();
155
+ if (!inputPath)
156
+ return errorContent('path is required');
157
+ if (!ctx.sessionId)
158
+ return errorContent('channel not registered yet — try again in a moment');
159
+ // Path safety: refuse anything that resolves outside cwd, even
160
+ // through a symlink chain. realpath dereferences fully; if the
161
+ // real target lives outside cwd we abort. Also realpath cwd
162
+ // itself so the comparison is apples-to-apples (cwd may itself
163
+ // be a symlinked path).
164
+ let absInput;
165
+ try {
166
+ absInput = resolve(ctx.cwd, inputPath);
167
+ }
168
+ catch {
169
+ return errorContent(`path could not be resolved: ${inputPath}`);
170
+ }
171
+ let realInput;
172
+ let realCwd;
173
+ try {
174
+ realCwd = await realpath(ctx.cwd);
175
+ realInput = await realpath(absInput);
176
+ }
177
+ catch (e) {
178
+ return errorContent(`path does not exist or is unreadable: ${inputPath}`);
179
+ }
180
+ const rel = relative(realCwd, realInput);
181
+ if (rel.startsWith('..') || rel === '' || /^([a-zA-Z]:)?[\\/]/.test(rel)) {
182
+ return errorContent(`path is outside cwd (or its symlink target is): ${inputPath}`);
183
+ }
184
+ // Size pre-check before reading the bytes — stops a 10 GB log
185
+ // from being slurped into memory just to be rejected.
186
+ let stats;
187
+ try {
188
+ stats = await stat(realInput);
189
+ }
190
+ catch {
191
+ return errorContent(`path does not exist: ${inputPath}`);
192
+ }
193
+ if (!stats.isFile())
194
+ return errorContent(`path is not a regular file: ${inputPath}`);
195
+ if (stats.size === 0)
196
+ return errorContent(`file is empty: ${inputPath}`);
197
+ if (stats.size > MAX_ATTACH_BYTES) {
198
+ return errorContent(`file is ${stats.size} bytes; max is ${MAX_ATTACH_BYTES}`);
199
+ }
200
+ let buf;
201
+ try {
202
+ buf = await readFile(realInput);
203
+ }
204
+ catch (e) {
205
+ return errorContent(`failed to read file: ${e?.message ?? e}`);
206
+ }
207
+ // Build multipart manually — Node's fetch + FormData stringifies
208
+ // a Blob just fine for this. Filename comes from the basename of
209
+ // the resolved real path so symlink redirects don't smuggle a
210
+ // weird display name.
211
+ const filename = basename(realInput);
212
+ const mime = guessMime(filename);
213
+ const fd = new FormData();
214
+ fd.append('sessionId', ctx.sessionId);
215
+ // Wrap the buffer in a Blob; the Node-side fetch handles the
216
+ // boundary + Content-Type for us.
217
+ fd.append('file', new Blob([buf], { type: mime }), filename);
218
+ let res;
219
+ try {
220
+ res = await fetch(`${ctx.httpHubUrl}/api/channel/files`, {
221
+ method: 'POST',
222
+ headers: { 'Authorization': `Bearer ${ctx.channelToken}` },
223
+ body: fd,
224
+ });
225
+ }
226
+ catch (e) {
227
+ return errorContent(`hub unreachable: ${e?.message ?? e}`);
228
+ }
229
+ if (!res.ok) {
230
+ const text = await res.text().catch(() => '');
231
+ return errorContent(`hub rejected upload (HTTP ${res.status}): ${text.slice(0, 200)}`);
232
+ }
233
+ const j = await res.json();
234
+ return textContent(`attached ${j.filename} (${j.size} bytes, ${j.mime}); fileId=${j.id}, sha256=${j.sha256.slice(0, 12)}…`);
235
+ }
136
236
  default:
137
237
  return errorContent(`unknown tool: ${name}`);
138
238
  }
139
239
  }
240
+ // Lightweight extension-based mime guess. The hub doesn't trust this
241
+ // (its file-store stores whatever we send), but a reasonable mime
242
+ // shows up in the operator's dashboard chip.
243
+ function guessMime(filename) {
244
+ const m = /\.([a-zA-Z0-9]+)$/.exec(filename);
245
+ if (!m)
246
+ return 'application/octet-stream';
247
+ const ext = m[1].toLowerCase();
248
+ return {
249
+ txt: 'text/plain',
250
+ md: 'text/markdown',
251
+ json: 'application/json',
252
+ yaml: 'application/yaml', yml: 'application/yaml',
253
+ html: 'text/html', css: 'text/css',
254
+ js: 'text/javascript', mjs: 'text/javascript',
255
+ ts: 'text/typescript', tsx: 'text/typescript',
256
+ csv: 'text/csv', tsv: 'text/tab-separated-values',
257
+ pdf: 'application/pdf',
258
+ png: 'image/png', jpg: 'image/jpeg', jpeg: 'image/jpeg',
259
+ gif: 'image/gif', webp: 'image/webp', svg: 'image/svg+xml',
260
+ zip: 'application/zip', gz: 'application/gzip',
261
+ log: 'text/plain',
262
+ }[ext] ?? 'application/octet-stream';
263
+ }
140
264
  function textContent(text) {
141
265
  return { content: [{ type: 'text', text }] };
142
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,7 @@ type Inbound = {
66
66
  fromName: string;
67
67
  text: string;
68
68
  ts: string;
69
+ origin?: 'operator' | 'mcp';
69
70
  } | {
70
71
  type: 'probe_response';
71
72
  correlationId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawborrator-mcp",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "type": "module",
5
5
  "description": "clawborrator channel for hub_v1 — MCP server that connects Claude Code to a hub over WebSocket, with hooks for activity capture and tools for cross-session routing.",
6
6
  "license": "MIT",