clawborrator-mcp 0.0.31 → 0.0.33
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 +13 -20
- package/dist/persisted-session.d.ts +3 -3
- package/dist/persisted-session.js +16 -8
- package/dist/persisted-session.js.map +1 -1
- package/dist/sidecar.js +14 -3
- package/dist/sidecar.js.map +1 -1
- package/dist-hook/clawborrator-tail.mjs +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -7,11 +7,7 @@ runs as both a long-lived stdio MCP server AND a short-lived hook
|
|
|
7
7
|
spawn (selected by the `--hook=<HookName>` CLI flag).
|
|
8
8
|
|
|
9
9
|
Published as [`clawborrator-mcp`](https://www.npmjs.com/package/clawborrator-mcp)
|
|
10
|
-
on npm.
|
|
11
|
-
|
|
12
|
-
- [`hub_v1`](https://github.com/clawborrator/hub_v1) — the hub server (REST + WS), deployed at https://next.clawborrator.com
|
|
13
|
-
- [`cli_v1`](https://github.com/clawborrator/cli_v1) — `claw`, the operator CLI ([`clawborrator-cli`](https://www.npmjs.com/package/clawborrator-cli) on npm)
|
|
14
|
-
- [`desktop_v1`](https://github.com/clawborrator/desktop_v1) — `clawborrator-supervisor`, the desktop daemon for managed CC sessions
|
|
10
|
+
on npm.
|
|
15
11
|
|
|
16
12
|
> **Status: production hub at [`next.clawborrator.com`](https://next.clawborrator.com).**
|
|
17
13
|
> Local dev uses `ws://localhost:8787`. Both supported.
|
|
@@ -64,7 +60,7 @@ ends up in the spawned project automatically.
|
|
|
64
60
|
1. Reads env config; loads channel token.
|
|
65
61
|
2. Opens WSS to `<HUB_URL>/channel` with `Authorization: Bearer <CHANNEL_TOKEN>`.
|
|
66
62
|
3. Sends `register` with host / cwd / pid / version; receives `welcome` with sessionId + routingName.
|
|
67
|
-
4. Writes `<cwd>/.claude/clawborrator.
|
|
63
|
+
4. Writes `<cwd>/.claude/clawborrator/runtime.json` (mode 0600) so per-event hook spawns can find the active session.
|
|
68
64
|
5. Maintains the WS with heartbeat ping/pong; reconnects with exponential backoff (1s/2s/5s/15s/30s/60s).
|
|
69
65
|
6. Listens for hub-side messages: `prompt` (cross-session route), `permission_response`, `peers_update`, `bye`, `error`.
|
|
70
66
|
7. Dispatches MCP tool calls (see below) over the same WS.
|
|
@@ -72,7 +68,7 @@ ends up in the spawned project automatically.
|
|
|
72
68
|
|
|
73
69
|
**Short-lived hook path** (`--hook=<HookName>` flag):
|
|
74
70
|
1. Reads JSON payload from stdin (Claude Code's hook protocol).
|
|
75
|
-
2. Locates the active sidecar
|
|
71
|
+
2. Locates the active sidecar at `.claude/clawborrator/runtime.json`.
|
|
76
72
|
3. Maps the hook name to a clawborrator event (e.g. `PreToolUse` → `tail/PreToolUse`, `UserPromptSubmit` → `chat/prompt`).
|
|
77
73
|
4. POSTs to `<HUB_URL>/api/channel/event` with the channel token from the sidecar.
|
|
78
74
|
5. Echoes stdin to stdout so Claude's hook chain stays intact.
|
|
@@ -129,7 +125,8 @@ for the dispatcher-pattern setup.
|
|
|
129
125
|
## Hook coverage
|
|
130
126
|
|
|
131
127
|
Maps each Claude Code hook to a hub event. The hook script is
|
|
132
|
-
`dist-hook/clawborrator-tail.mjs`;
|
|
128
|
+
`dist-hook/clawborrator-tail.mjs`; auto-installed on first MCP
|
|
129
|
+
startup (no separate install step).
|
|
133
130
|
|
|
134
131
|
| Hook | Hub event | Notes |
|
|
135
132
|
|---|---|---|
|
|
@@ -139,27 +136,23 @@ Maps each Claude Code hook to a hub event. The hook script is
|
|
|
139
136
|
| `PostToolUseFailure` | `tail/PostToolUseFailure` | |
|
|
140
137
|
| `Stop` | `tail/Stop` (+ `chat/reply` if assistant_text present) | Turn-end signal. |
|
|
141
138
|
| `Notification` | `tail/Notification` | CC user notifications (idle / permission). |
|
|
142
|
-
| `SessionStart` / `SessionEnd` | `tail/SessionStart` / `tail/SessionEnd` | |
|
|
143
139
|
| `TaskCreated` / `TaskCompleted` | `tail/TaskCreated` / `tail/TaskCompleted` | Carries `task_id`, `task_subject`, `task_description`. |
|
|
144
140
|
| `SubagentStart` / `SubagentStop` | `tail/SubagentStart` / `tail/SubagentStop` | SubagentStop carries `last_assistant_message` recap. |
|
|
145
141
|
|
|
142
|
+
`SessionStart` / `SessionEnd` are intentionally **not** hooked by
|
|
143
|
+
this MCP. The hook spawn had a fundamental race — the sidecar
|
|
144
|
+
isn't written yet at SessionStart, and is already gone by SessionEnd
|
|
145
|
+
— so lifecycle is now emitted server-side from the `/channel` WS
|
|
146
|
+
welcome / close transitions (`hub_v1/server/src/ws/channel.ts`).
|
|
147
|
+
Hub-authoritative, captures actual channel liveness, no hook timing
|
|
148
|
+
involved.
|
|
149
|
+
|
|
146
150
|
The tail reads the CC transcript file directly to enrich `PreToolUse`
|
|
147
151
|
with the assistant's pre-reply text (which CC doesn't put on the
|
|
148
152
|
hook payload directly). See `transcript.ts` for the walker.
|
|
149
153
|
|
|
150
154
|
---
|
|
151
155
|
|
|
152
|
-
## Phases (all shipped)
|
|
153
|
-
|
|
154
|
-
- **Phase A** ✓ — connect / register / heartbeat / reconnect
|
|
155
|
-
- **Phase B** ✓ — hooks + event forwarding via sidecar
|
|
156
|
-
- **Phase C** ✓ — bidirectional permission relay (channel → hub → operator → back)
|
|
157
|
-
- **Phase D** ✓ — MCP tools (above)
|
|
158
|
-
- **Phase E** ✓ — public-agent dispatch (`dispatch_to_agent`, `list_agents`); 15-min timeouts; cyclomatic-complexity refactor
|
|
159
|
-
- **Phase F** ✓ — streaming `reply_chunk` (incremental output), `read_file` / `download_to_path` for cross-session file exchange
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
156
|
## Local dev (linked to a sibling hub_v1 checkout)
|
|
164
157
|
|
|
165
158
|
```bash
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function loadPersistedSessionId(cwd: string): string | null;
|
|
9
9
|
/**
|
|
10
|
-
* Write
|
|
10
|
+
* Write identity.json after a successful welcome. Also drops a
|
|
11
11
|
* sibling .gitignore on first creation so the dir as a whole stays
|
|
12
12
|
* out of source control.
|
|
13
13
|
*/
|
|
@@ -17,7 +17,7 @@ export declare function savePersistedSession(cwd: string, info: {
|
|
|
17
17
|
hubUrl?: string;
|
|
18
18
|
}): void;
|
|
19
19
|
/**
|
|
20
|
-
* Delete
|
|
21
|
-
*
|
|
20
|
+
* Delete identity.json. Currently unused — kept for symmetry / future
|
|
21
|
+
* operator-driven `claw session reset` flows.
|
|
22
22
|
*/
|
|
23
23
|
export declare function deletePersistedSession(cwd: string): void;
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
// Persist the hub-issued session
|
|
2
|
-
// fresh `claude` boot in the same project rebinds to the existing
|
|
1
|
+
// Persist the hub-issued session identity across MCP process restarts
|
|
2
|
+
// so a fresh `claude` boot in the same project rebinds to the existing
|
|
3
3
|
// session row instead of minting a sibling row with the same routing
|
|
4
4
|
// name. This is what eliminates the "@driver appears 5 times in
|
|
5
5
|
// list_peers / session ls" duplicate-row class of bug.
|
|
6
6
|
//
|
|
7
|
+
// Forward-only rename in 0.0.33: this file used to live at
|
|
8
|
+
// `<cwd>/.claude/clawborrator/session.json` (and a separate hook
|
|
9
|
+
// runtime sidecar lived at `<cwd>/.claude/clawborrator.session.json`).
|
|
10
|
+
// Both have been moved into the `clawborrator/` subdir and given
|
|
11
|
+
// purpose-named filenames so they no longer look like typos of each
|
|
12
|
+
// other. The daemon's clean_stale + destroy paths nuke the legacy
|
|
13
|
+
// names as well, so existing sessions don't leak cruft when restarted.
|
|
14
|
+
//
|
|
7
15
|
// Storage shape:
|
|
8
|
-
// <cwd>/.claude/clawborrator/
|
|
16
|
+
// <cwd>/.claude/clawborrator/identity.json
|
|
9
17
|
// {
|
|
10
18
|
// "sessionId": "<uuid>",
|
|
11
19
|
// "routingName": "@<slug>",
|
|
@@ -14,13 +22,13 @@
|
|
|
14
22
|
// }
|
|
15
23
|
//
|
|
16
24
|
// Plus a sibling `.gitignore` ("*\n") inside the same directory so the
|
|
17
|
-
//
|
|
25
|
+
// identity file (which contains nothing secret, but is per-machine
|
|
18
26
|
// runtime state) never leaks into commits.
|
|
19
27
|
import { readFileSync, writeFileSync, existsSync, mkdirSync, unlinkSync } from 'node:fs';
|
|
20
28
|
import { resolve } from 'node:path';
|
|
21
29
|
import { log } from './log.js';
|
|
22
30
|
const REL_DIR = '.claude/clawborrator';
|
|
23
|
-
const REL_FILE = '.claude/clawborrator/
|
|
31
|
+
const REL_FILE = '.claude/clawborrator/identity.json';
|
|
24
32
|
const REL_GI = '.claude/clawborrator/.gitignore';
|
|
25
33
|
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
26
34
|
/**
|
|
@@ -49,7 +57,7 @@ export function loadPersistedSessionId(cwd) {
|
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
59
|
/**
|
|
52
|
-
* Write
|
|
60
|
+
* Write identity.json after a successful welcome. Also drops a
|
|
53
61
|
* sibling .gitignore on first creation so the dir as a whole stays
|
|
54
62
|
* out of source control.
|
|
55
63
|
*/
|
|
@@ -75,8 +83,8 @@ export function savePersistedSession(cwd, info) {
|
|
|
75
83
|
}
|
|
76
84
|
}
|
|
77
85
|
/**
|
|
78
|
-
* Delete
|
|
79
|
-
*
|
|
86
|
+
* Delete identity.json. Currently unused — kept for symmetry / future
|
|
87
|
+
* operator-driven `claw session reset` flows.
|
|
80
88
|
*/
|
|
81
89
|
export function deletePersistedSession(cwd) {
|
|
82
90
|
const path = resolve(cwd, REL_FILE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persisted-session.js","sourceRoot":"","sources":["../src/persisted-session.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"persisted-session.js","sourceRoot":"","sources":["../src/persisted-session.ts"],"names":[],"mappings":"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"}
|
package/dist/sidecar.js
CHANGED
|
@@ -3,7 +3,14 @@
|
|
|
3
3
|
// Code's hook system) read this file to know which session to
|
|
4
4
|
// attribute their event to and which hub to POST to.
|
|
5
5
|
//
|
|
6
|
-
// Path: <cwd>/.claude/clawborrator.
|
|
6
|
+
// Path: <cwd>/.claude/clawborrator/runtime.json. Mode 0600 on POSIX.
|
|
7
|
+
//
|
|
8
|
+
// Forward-only rename in 0.0.33: previously at
|
|
9
|
+
// `<cwd>/.claude/clawborrator.session.json` (a flat file that looked
|
|
10
|
+
// like a typo of identity.json). Now under the same `clawborrator/`
|
|
11
|
+
// subdir as identity.json with a purpose-named filename. The daemon's
|
|
12
|
+
// clean_stale + destroy paths nuke the legacy flat-file location as
|
|
13
|
+
// well, so existing sessions don't leak cruft on restart.
|
|
7
14
|
//
|
|
8
15
|
// Storing the channel-token plaintext here matters: hooks need it to
|
|
9
16
|
// authenticate to /api/channel/event. The risk surface is the same
|
|
@@ -13,10 +20,14 @@ import { resolve } from 'node:path';
|
|
|
13
20
|
import { mkdirSync, writeFileSync, readFileSync, unlinkSync, chmodSync, existsSync } from 'node:fs';
|
|
14
21
|
import { log } from './log.js';
|
|
15
22
|
function sidecarPath(cwd) {
|
|
16
|
-
return resolve(cwd, '.claude', 'clawborrator.
|
|
23
|
+
return resolve(cwd, '.claude', 'clawborrator', 'runtime.json');
|
|
17
24
|
}
|
|
18
25
|
export function writeSidecar(payload) {
|
|
19
|
-
|
|
26
|
+
// Mkdir the clawborrator/ subdir (used to be just .claude/, but
|
|
27
|
+
// runtime.json now lives alongside identity.json under
|
|
28
|
+
// clawborrator/). The daemon's write_persisted_session creates this
|
|
29
|
+
// dir at preflight too — both calls are idempotent with recursive.
|
|
30
|
+
const dir = resolve(payload.cwd, '.claude', 'clawborrator');
|
|
20
31
|
try {
|
|
21
32
|
if (!existsSync(dir))
|
|
22
33
|
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
package/dist/sidecar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,kEAAkE;AAClE,8DAA8D;AAC9D,qDAAqD;AACrD,EAAE;AACF,qEAAqE;AACrE,EAAE;AACF,qEAAqE;AACrE,mEAAmE;AACnE,mEAAmE;AACnE,+DAA+D;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAY/B,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,kEAAkE;AAClE,8DAA8D;AAC9D,qDAAqD;AACrD,EAAE;AACF,qEAAqE;AACrE,EAAE;AACF,+CAA+C;AAC/C,qEAAqE;AACrE,oEAAoE;AACpE,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,EAAE;AACF,qEAAqE;AACrE,mEAAmE;AACnE,mEAAmE;AACnE,+DAA+D;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAY/B,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAuB;IAClD,gEAAgE;IAChE,uDAAuD;IACvD,oEAAoE;IACpE,mEAAmE;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,8DAA8D;AAC9D,kEAAkE;AAClE,gEAAgE;AAChE,gEAAgE;AAChE,8DAA8D;AAC9D,iEAAiE;AACjE,iEAAiE;AACjE,8DAA8D;AAC9D,8BAA8B;AAC9B,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clawborrator-mcp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.33",
|
|
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",
|
|
@@ -19,8 +19,7 @@
|
|
|
19
19
|
"websocket",
|
|
20
20
|
"remote",
|
|
21
21
|
"ai",
|
|
22
|
-
"agent"
|
|
23
|
-
"hub-v1"
|
|
22
|
+
"agent"
|
|
24
23
|
],
|
|
25
24
|
"main": "dist/index.js",
|
|
26
25
|
"bin": {
|