clawborrator-mcp 0.0.4 → 0.0.6
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 +53 -21
- package/dist/index.js.map +1 -1
- package/dist/tools/index.d.ts +0 -13
- package/dist/tools/index.js +4 -21
- package/dist/tools/index.js.map +1 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.js +39 -0
- package/dist/version.js.map +1 -0
- package/dist/ws-client.js +2 -2
- package/dist/ws-client.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -23,9 +23,10 @@ import { log } from './log.js';
|
|
|
23
23
|
import { runHook } from './hook.js';
|
|
24
24
|
import { writeSidecar, deleteSidecar } from './sidecar.js';
|
|
25
25
|
import { TOOL_DEFINITIONS, callTool } from './tools/index.js';
|
|
26
|
-
import { enqueueRoutedPrompt } from './inbox.js';
|
|
27
26
|
import { installHooks } from './install-hooks.js';
|
|
28
27
|
import { loadPersistedSessionId, savePersistedSession } from './persisted-session.js';
|
|
28
|
+
import { packageVersion } from './version.js';
|
|
29
|
+
const SOURCE_NAME = 'clawborrator';
|
|
29
30
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
30
31
|
// Dispatch on top-level flags BEFORE booting the long-lived MCP.
|
|
31
32
|
// --hook=<HookName> short-lived hook spawn (fast path)
|
|
@@ -111,6 +112,35 @@ async function main() {
|
|
|
111
112
|
else {
|
|
112
113
|
log.info('reusing session id from env override', { sessionId: config.reuseSessionId });
|
|
113
114
|
}
|
|
115
|
+
// MCP stdio transport. Built BEFORE the ChannelClient so the WS
|
|
116
|
+
// handlers below can call server.notification() to push channel
|
|
117
|
+
// messages to Claude. We declare experimental capabilities matching
|
|
118
|
+
// the CC channel feature gate (CC's `--dangerously-load-development-
|
|
119
|
+
// channels server:clawborrator` flag opts into these); without
|
|
120
|
+
// them CC drops `notifications/claude/channel` on the floor.
|
|
121
|
+
const server = new Server({
|
|
122
|
+
name: SOURCE_NAME,
|
|
123
|
+
version: packageVersion(),
|
|
124
|
+
}, {
|
|
125
|
+
capabilities: {
|
|
126
|
+
experimental: {
|
|
127
|
+
'claude/channel': {}, // listen for notifications/claude/channel
|
|
128
|
+
'claude/channel/permission': {}, // listen for permission verdicts
|
|
129
|
+
},
|
|
130
|
+
tools: { listChanged: true },
|
|
131
|
+
},
|
|
132
|
+
instructions: `Messages from a remote operator arrive as <channel source="${SOURCE_NAME}" chat_id="..."> tags. ` +
|
|
133
|
+
`Treat them as user input from someone working with you remotely. ` +
|
|
134
|
+
`When you reply, use the "reply" tool and pass back the chat_id from the inbound tag so the response routes correctly. ` +
|
|
135
|
+
`Permission prompts may also be relayed for remote approval; the local terminal dialog stays open in parallel. ` +
|
|
136
|
+
`\n\nCross-session routing tools (gated on the operator opting in):` +
|
|
137
|
+
`\n- list_peers: see the operator's other running Claude Code sessions by routingName.` +
|
|
138
|
+
`\n- route_to_peer: send one prompt to one peer; ask mode waits for their reply, tell mode is fire-and-forget.` +
|
|
139
|
+
`\n- probe_peers: fan out the same short question to many peers in parallel for discovery (e.g. "do you have a User model?").` +
|
|
140
|
+
`\nWhen any of these returns "cross-session routing is disabled", tell the operator to enable it in hub Settings; don't retry. ` +
|
|
141
|
+
`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.` +
|
|
142
|
+
`\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.`,
|
|
143
|
+
});
|
|
114
144
|
// Open the channel-side WS to hub.
|
|
115
145
|
const client = new ChannelClient(config, {
|
|
116
146
|
onWelcome: (m) => {
|
|
@@ -142,38 +172,40 @@ async function main() {
|
|
|
142
172
|
});
|
|
143
173
|
},
|
|
144
174
|
onPrompt: (m) => {
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
|
|
148
|
-
|
|
175
|
+
// Push the prompt to Claude as a channel notification — CC's
|
|
176
|
+
// claude/channel handler wraps it in a <channel source="..."
|
|
177
|
+
// chat_id="..." sender="..."> tag and surfaces it as user
|
|
178
|
+
// input. No tool poll required; Claude reacts on receipt.
|
|
179
|
+
log.info('prompt received', { chatId: m.chatId });
|
|
180
|
+
server.notification({
|
|
181
|
+
method: 'notifications/claude/channel',
|
|
182
|
+
params: {
|
|
183
|
+
content: m.text,
|
|
184
|
+
// meta values must be strings + identifier-safe (used as XML
|
|
185
|
+
// attributes on the <channel ...> tag CC builds).
|
|
186
|
+
meta: { chat_id: m.chatId, sender: 'remote' },
|
|
187
|
+
},
|
|
188
|
+
}).catch((e) => log.warn('channel notification failed', { error: String(e) }));
|
|
149
189
|
},
|
|
150
190
|
onPermissionResponse: (m) => {
|
|
151
|
-
//
|
|
152
|
-
//
|
|
153
|
-
//
|
|
154
|
-
// hook integration (where this decision routes back to a
|
|
155
|
-
// pending hook spawn) is a follow-on once we wire IPC between
|
|
156
|
-
// the long-lived MCP and the short-lived hook process.
|
|
191
|
+
// The operator (or auto-expire) resolved a permission. Push the
|
|
192
|
+
// verdict to Claude via the dedicated permission channel so the
|
|
193
|
+
// pending tool flow can resume without CC having to poll.
|
|
157
194
|
log.info('permission resolved', {
|
|
158
195
|
requestId: m.requestId,
|
|
159
196
|
decision: m.decision,
|
|
160
|
-
message: m.message ?? null,
|
|
161
197
|
});
|
|
198
|
+
const behavior = m.decision === 'allow' ? 'allow' : 'deny';
|
|
199
|
+
server.notification({
|
|
200
|
+
method: 'notifications/claude/channel/permission',
|
|
201
|
+
params: { request_id: m.requestId, behavior },
|
|
202
|
+
}).catch((e) => log.warn('permission notification failed', { error: String(e) }));
|
|
162
203
|
},
|
|
163
204
|
onError: (m) => {
|
|
164
205
|
log.error('hub rejected', { code: m.code, message: m.message });
|
|
165
206
|
},
|
|
166
207
|
});
|
|
167
208
|
client.connect();
|
|
168
|
-
// MCP stdio transport. Phase D ships the four routing tools.
|
|
169
|
-
const server = new Server({
|
|
170
|
-
name: 'clawborrator',
|
|
171
|
-
version: '0.0.1',
|
|
172
|
-
}, {
|
|
173
|
-
capabilities: {
|
|
174
|
-
tools: {},
|
|
175
|
-
},
|
|
176
|
-
});
|
|
177
209
|
// Track our session id so tools (and future use) can reference it.
|
|
178
210
|
// Set by the onWelcome handler above.
|
|
179
211
|
let toolCtxSessionId = null;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,qDAAqD;AACrD,yEAAyE;AACzE,sCAAsC;AACtC,yEAAyE;AACzE,mCAAmC;AACnC,EAAE;AACF,mEAAmE;AACnE,iEAAiE;AACjE,kEAAkE;AAClE,oEAAoE;AACpE,cAAc;AAEd,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -5,19 +5,6 @@ interface CallContext {
|
|
|
5
5
|
sessionId: string | null;
|
|
6
6
|
}
|
|
7
7
|
export declare const TOOL_DEFINITIONS: readonly [{
|
|
8
|
-
readonly name: "await_routed_prompt";
|
|
9
|
-
readonly description: "Check the inbox for a routed prompt from a peer session. Call this at the START of every turn before replying to the user. If the result has a non-null `chatId`, treat `text` as the user prompt for this turn and respond by calling `reply({chat_id, text: <your answer>})`. If `chatId` is null, no peer routed anything — proceed with the actual user message normally.";
|
|
10
|
-
readonly inputSchema: {
|
|
11
|
-
readonly type: "object";
|
|
12
|
-
readonly additionalProperties: false;
|
|
13
|
-
readonly properties: {
|
|
14
|
-
readonly maxWaitMs: {
|
|
15
|
-
readonly type: "number";
|
|
16
|
-
readonly description: "Optional: how long to block waiting for a prompt (default 0 = return immediately).";
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
}, {
|
|
21
8
|
readonly name: "reply";
|
|
22
9
|
readonly description: "Post a tagged final reply to a chat. Use this whenever you finish replying to a routed prompt — pass back the chat_id you received from `await_routed_prompt`.";
|
|
23
10
|
readonly inputSchema: {
|
package/dist/tools/index.js
CHANGED
|
@@ -8,23 +8,15 @@
|
|
|
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
|
+
//
|
|
12
|
+
// Inbound prompts (operator-driven or peer-routed) arrive directly to
|
|
13
|
+
// Claude via `notifications/claude/channel` — see index.ts onPrompt.
|
|
14
|
+
// No queue, no polling tool.
|
|
11
15
|
import { randomUUID } from 'node:crypto';
|
|
12
|
-
import { awaitDequeue } from '../inbox.js';
|
|
13
16
|
const ASK_TIMEOUT_MS = 60_000;
|
|
14
17
|
const PROBE_TIMEOUT_MS = 30_000;
|
|
15
18
|
const LIST_TIMEOUT_MS = 5_000;
|
|
16
19
|
export const TOOL_DEFINITIONS = [
|
|
17
|
-
{
|
|
18
|
-
name: 'await_routed_prompt',
|
|
19
|
-
description: 'Check the inbox for a routed prompt from a peer session. Call this at the START of every turn before replying to the user. If the result has a non-null `chatId`, treat `text` as the user prompt for this turn and respond by calling `reply({chat_id, text: <your answer>})`. If `chatId` is null, no peer routed anything — proceed with the actual user message normally.',
|
|
20
|
-
inputSchema: {
|
|
21
|
-
type: 'object',
|
|
22
|
-
additionalProperties: false,
|
|
23
|
-
properties: {
|
|
24
|
-
maxWaitMs: { type: 'number', description: 'Optional: how long to block waiting for a prompt (default 0 = return immediately).' },
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
20
|
{
|
|
29
21
|
name: 'reply',
|
|
30
22
|
description: 'Post a tagged final reply to a chat. Use this whenever you finish replying to a routed prompt — pass back the chat_id you received from `await_routed_prompt`.',
|
|
@@ -75,15 +67,6 @@ export const TOOL_DEFINITIONS = [
|
|
|
75
67
|
];
|
|
76
68
|
export async function callTool(ctx, name, args) {
|
|
77
69
|
switch (name) {
|
|
78
|
-
case 'await_routed_prompt': {
|
|
79
|
-
const maxWaitMs = typeof args.maxWaitMs === 'number' && args.maxWaitMs > 0
|
|
80
|
-
? Math.min(args.maxWaitMs, 60_000) // cap at 60s
|
|
81
|
-
: 0;
|
|
82
|
-
const entry = await awaitDequeue(maxWaitMs);
|
|
83
|
-
if (!entry)
|
|
84
|
-
return textContent(JSON.stringify({ chatId: null, text: null }));
|
|
85
|
-
return textContent(JSON.stringify({ chatId: entry.chatId, text: entry.text }));
|
|
86
|
-
}
|
|
87
70
|
case 'reply': {
|
|
88
71
|
const chatId = String(args.chat_id ?? '').trim();
|
|
89
72
|
const text = String(args.text ?? '');
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,sCAAsC;AACtC,EAAE;AACF,iBAAiB;AACjB,kEAAkE;AAClE,oEAAoE;AACpE,oEAAoE;AACpE,uEAAuE;AACvE,8CAA8C;AAC9C,iEAAiE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function packageVersion(): string;
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Resolve clawborrator-mcp's npm version at runtime by reading the
|
|
2
|
+
// package.json that ships next to the compiled output.
|
|
3
|
+
//
|
|
4
|
+
// Why not hardcode? We did, and it drifted: the value sent to the hub
|
|
5
|
+
// at register-time stayed at `0.0.1` while the npm-published package
|
|
6
|
+
// went to 0.0.4, so `claw session info` always showed `channel v: 0.0.1`.
|
|
7
|
+
// Reading from package.json keeps wire reports in lockstep with what
|
|
8
|
+
// npm shipped — no double-edit needed at release time.
|
|
9
|
+
import { readFileSync } from 'node:fs';
|
|
10
|
+
import { dirname, resolve } from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
let cached = null;
|
|
14
|
+
export function packageVersion() {
|
|
15
|
+
if (cached)
|
|
16
|
+
return cached;
|
|
17
|
+
// Compiled output is in dist/, so package.json is one level up.
|
|
18
|
+
// The hook bundle (dist-hook/clawborrator-tail.mjs) lives at the
|
|
19
|
+
// same depth so the same path resolves there too.
|
|
20
|
+
const candidates = [
|
|
21
|
+
resolve(__dirname, '..', 'package.json'),
|
|
22
|
+
resolve(__dirname, '..', '..', 'package.json'), // dist-bundled fallback
|
|
23
|
+
];
|
|
24
|
+
for (const p of candidates) {
|
|
25
|
+
try {
|
|
26
|
+
const parsed = JSON.parse(readFileSync(p, 'utf8'));
|
|
27
|
+
if (parsed && parsed.name === 'clawborrator-mcp' && typeof parsed.version === 'string') {
|
|
28
|
+
cached = parsed.version;
|
|
29
|
+
return parsed.version;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// try next candidate
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
cached = 'unknown';
|
|
37
|
+
return cached;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,uDAAuD;AACvD,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,0EAA0E;AAC1E,qEAAqE;AACrE,uDAAuD;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,MAAM,UAAU,cAAc;IAC5B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,gEAAgE;IAChE,iEAAiE;IACjE,kDAAkD;IAClD,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC;QACxC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,wBAAwB;KACzE,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;gBACxB,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,SAAS,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/ws-client.js
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
import WebSocket from 'ws';
|
|
14
14
|
import { hostname, userInfo } from 'node:os';
|
|
15
15
|
import { log } from './log.js';
|
|
16
|
+
import { packageVersion } from './version.js';
|
|
16
17
|
const BACKOFF_SCHEDULE = [1_000, 2_000, 5_000, 15_000, 30_000, 60_000];
|
|
17
|
-
const PACKAGE_VERSION = '0.0.1';
|
|
18
18
|
export class ChannelClient {
|
|
19
19
|
config;
|
|
20
20
|
handlers;
|
|
@@ -94,7 +94,7 @@ export class ChannelClient {
|
|
|
94
94
|
cwd: process.cwd(),
|
|
95
95
|
osUser: userInfo().username || null,
|
|
96
96
|
pid: process.pid,
|
|
97
|
-
channelVersion:
|
|
97
|
+
channelVersion: packageVersion(),
|
|
98
98
|
sessionId: this.currentSessionId, // null on fresh, populated on rebind
|
|
99
99
|
};
|
|
100
100
|
this.send(reg);
|
package/dist/ws-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sEAAsE;AACtE,kEAAkE;AAClE,wCAAwC;AACxC,EAAE;AACF,wDAAwD;AACxD,kDAAkD;AAClD,yEAAyE;AACzE,uDAAuD;AACvD,uDAAuD;AACvD,sEAAsE;AACtE,oCAAoC;AAEpC,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clawborrator-mcp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
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",
|