@essentialai/cc-bridge-mcp-server 0.2.2 → 0.2.4
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/services/cc-cli.d.ts +6 -1
- package/dist/services/cc-cli.d.ts.map +1 -1
- package/dist/services/cc-cli.js +23 -3
- package/dist/services/cc-cli.js.map +1 -1
- package/dist/tools/send-message.d.ts.map +1 -1
- package/dist/tools/send-message.js +21 -3
- package/dist/tools/send-message.js.map +1 -1
- package/dist/wizard/templates.d.ts.map +1 -1
- package/dist/wizard/templates.js +13 -6
- package/dist/wizard/templates.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { CliExecResult } from "../types.js";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Check whether a Claude Code session file exists on disk.
|
|
4
|
+
* Returns false if the file is missing (session ended or ID is wrong).
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateSession(sessionId: string, cwd: string): Promise<boolean>;
|
|
7
|
+
export declare function execClaude(sessionId: string, message: string, cwd: string, timeoutMs?: number): Promise<CliExecResult>;
|
|
3
8
|
//# sourceMappingURL=cc-cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cc-cli.d.ts","sourceRoot":"","sources":["../../src/services/cc-cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cc-cli.d.ts","sourceRoot":"","sources":["../../src/services/cc-cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAqGxB"}
|
package/dist/services/cc-cli.js
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
2
5
|
import { getConfig } from "../config.js";
|
|
3
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Check whether a Claude Code session file exists on disk.
|
|
8
|
+
* Returns false if the file is missing (session ended or ID is wrong).
|
|
9
|
+
*/
|
|
10
|
+
export async function validateSession(sessionId, cwd) {
|
|
11
|
+
const projectHash = cwd.replace(/\//g, "-");
|
|
12
|
+
const sessionPath = path.join(os.homedir(), ".claude", "projects", projectHash, `${sessionId}.jsonl`);
|
|
13
|
+
try {
|
|
14
|
+
await fs.access(sessionPath);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function execClaude(sessionId, message, cwd, timeoutMs) {
|
|
4
22
|
return new Promise((resolve) => {
|
|
5
23
|
const config = getConfig();
|
|
24
|
+
const effectiveTimeout = timeoutMs ?? config.CC_BRIDGE_TIMEOUT_MS;
|
|
6
25
|
// Apply character limit: 0 means no truncation
|
|
7
26
|
const truncated = config.CC_BRIDGE_CHAR_LIMIT > 0 &&
|
|
8
27
|
message.length > config.CC_BRIDGE_CHAR_LIMIT
|
|
@@ -12,6 +31,7 @@ export function execClaude(sessionId, message, cwd) {
|
|
|
12
31
|
"--resume", sessionId,
|
|
13
32
|
"--dangerously-skip-permissions",
|
|
14
33
|
"--no-session-persistence",
|
|
34
|
+
"--strict-mcp-config",
|
|
15
35
|
"-p", truncated,
|
|
16
36
|
];
|
|
17
37
|
// Strip Claude Code env vars so the subprocess doesn't think it's
|
|
@@ -31,7 +51,7 @@ export function execClaude(sessionId, message, cwd) {
|
|
|
31
51
|
const timer = setTimeout(() => {
|
|
32
52
|
killed = true;
|
|
33
53
|
child.kill("SIGTERM");
|
|
34
|
-
},
|
|
54
|
+
}, effectiveTimeout);
|
|
35
55
|
child.stdout.on("data", (chunk) => {
|
|
36
56
|
stdout += chunk.toString();
|
|
37
57
|
});
|
|
@@ -59,7 +79,7 @@ export function execClaude(sessionId, message, cwd) {
|
|
|
59
79
|
if (killed) {
|
|
60
80
|
resolve({
|
|
61
81
|
stdout: stdout || "",
|
|
62
|
-
stderr: `CLI_TIMEOUT: CLI subprocess timed out after ${
|
|
82
|
+
stderr: `CLI_TIMEOUT: CLI subprocess timed out after ${effectiveTimeout}ms`,
|
|
63
83
|
exitCode: null,
|
|
64
84
|
});
|
|
65
85
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cc-cli.js","sourceRoot":"","sources":["../../src/services/cc-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cc-cli.js","sourceRoot":"","sources":["../../src/services/cc-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsI/D"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { getPeer, recordMessage, updateLastSeen } from "../services/peer-registry.js";
|
|
3
|
-
import { execClaude } from "../services/cc-cli.js";
|
|
3
|
+
import { execClaude, validateSession } from "../services/cc-cli.js";
|
|
4
4
|
import { BridgeError, BridgeErrorCode, successResult, errorResult } from "../errors.js";
|
|
5
5
|
import { logger } from "../logger.js";
|
|
6
|
+
const RETRY_TIMEOUT_MS = 30_000;
|
|
7
|
+
function formatBridgeMessage(fromLabel, fromPeerId, message) {
|
|
8
|
+
return (`[CC Bridge message from ${fromLabel} (${fromPeerId})]\n\n` +
|
|
9
|
+
`${message}\n\n` +
|
|
10
|
+
`---\n` +
|
|
11
|
+
`Respond directly to the message above. Your entire response will be relayed back to ${fromLabel}. ` +
|
|
12
|
+
`Do NOT use cc_send_message or any bridge tools — just answer normally.`);
|
|
13
|
+
}
|
|
6
14
|
export function registerSendMessageTool(server) {
|
|
7
15
|
server.registerTool("cc_send_message", {
|
|
8
16
|
title: "Send Message to Peer",
|
|
@@ -36,10 +44,20 @@ export function registerSendMessageTool(server) {
|
|
|
36
44
|
if (!to) {
|
|
37
45
|
return errorResult(new BridgeError(BridgeErrorCode.PEER_NOT_FOUND, `Target peer '${toPeerId}' not registered`, "Register the peer first with cc_register_peer"));
|
|
38
46
|
}
|
|
39
|
-
|
|
47
|
+
// Fast-fail: check if the target session file exists on disk
|
|
48
|
+
const sessionValid = await validateSession(to.sessionId, to.cwd);
|
|
49
|
+
if (!sessionValid) {
|
|
50
|
+
return errorResult(new BridgeError(BridgeErrorCode.CLI_EXEC_FAILED, `Session '${to.sessionId}' not found for peer '${toPeerId}'. The session may have ended or the ID is wrong`, `Ask '${toPeerId}' to re-register with their current session ID`));
|
|
51
|
+
}
|
|
52
|
+
const prefixed = formatBridgeMessage(from.label, fromPeerId, message);
|
|
40
53
|
const startMs = Date.now();
|
|
41
54
|
try {
|
|
42
|
-
|
|
55
|
+
let result = await execClaude(to.sessionId, prefixed, to.cwd);
|
|
56
|
+
// On timeout, retry once with a shorter timeout
|
|
57
|
+
if (result.exitCode === null) {
|
|
58
|
+
logger.info(`Message to '${toPeerId}' timed out, retrying with ${RETRY_TIMEOUT_MS}ms timeout`);
|
|
59
|
+
result = await execClaude(to.sessionId, prefixed, to.cwd, RETRY_TIMEOUT_MS);
|
|
60
|
+
}
|
|
43
61
|
const durationMs = Date.now() - startMs;
|
|
44
62
|
const success = result.exitCode === 0;
|
|
45
63
|
// Update sender lastSeenAt (sender is always active)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/wizard/templates.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CActD;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAYR;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/wizard/templates.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CActD;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAYR;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,MAAM,CA4BR;AAED,wBAAgB,YAAY,IAAI,MAAM,CAuCrC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAwClC;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAQR;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAgB5C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAe7C"}
|
package/dist/wizard/templates.js
CHANGED
|
@@ -35,16 +35,23 @@ You are participating in a cross-team collaboration via CC Bridge.
|
|
|
35
35
|
Your peer identity: **peerId=\`${peerId}\`**, **label=\`${label}\`**
|
|
36
36
|
|
|
37
37
|
### On Session Start
|
|
38
|
-
1.
|
|
38
|
+
1. Find your Claude Code session ID:
|
|
39
|
+
\`\`\`bash
|
|
40
|
+
ls -t ~/.claude/projects/$(pwd | tr '/' '-')/*.jsonl 2>/dev/null | head -1 | xargs -I{} basename {} .jsonl
|
|
41
|
+
\`\`\`
|
|
42
|
+
2. Register yourself on the bridge:
|
|
39
43
|
- Use \`cc_register_peer\` with peerId="${peerId}", label="${label}"
|
|
40
|
-
-
|
|
44
|
+
- Set sessionId to the UUID from step 1
|
|
45
|
+
- Set cwd to your project working directory (\`pwd\`)
|
|
41
46
|
|
|
42
47
|
### When You Receive Messages
|
|
43
|
-
- Messages from other peers arrive
|
|
44
|
-
-
|
|
48
|
+
- Messages from other peers arrive with a \`[CC Bridge message from ...]\` header
|
|
49
|
+
- Your entire response is automatically relayed back to the sender
|
|
50
|
+
- Do NOT use \`cc_send_message\` to reply — just answer directly and normally
|
|
51
|
+
- Read carefully, investigate the issue, and respond with specifics
|
|
45
52
|
|
|
46
|
-
###
|
|
47
|
-
-
|
|
53
|
+
### Sending Messages
|
|
54
|
+
- Use \`cc_send_message\` to initiate conversations with other peers (e.g. toPeerId="${otherPeerId}")
|
|
48
55
|
- Be specific about what you changed when reporting fixes
|
|
49
56
|
- Include file names and line numbers in your responses
|
|
50
57
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/wizard/templates.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAG;QACb,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,CAAC,IAAI,EAAE,mCAAmC,CAAC;gBACjD,GAAG,EAAE;oBACH,mBAAmB,EAAE,MAAM;oBAC3B,oBAAoB,EAAE,QAAQ;iBAC/B;aACF;SACF;KACF,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,OAAe;IAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IAC/C,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG;QAC/B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,mCAAmC,CAAC;QACjD,GAAG,EAAE;YACH,mBAAmB,EAAE,MAAM;YAC3B,oBAAoB,EAAE,QAAQ;SAC/B;KACF,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,KAAa,EACb,WAAmB;IAEnB,OAAO;;;;iCAIwB,MAAM,mBAAmB,KAAK
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/wizard/templates.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.eaisdevelopment/cc-bridge-mcp-server",
|
|
4
4
|
"title": "Claude Code Bridge from Essential AI Solutions (essentialai.uk)",
|
|
5
5
|
"description": "MCP bridge for inter-session communication between Claude Code instances",
|
|
6
|
-
"version": "0.2.
|
|
6
|
+
"version": "0.2.3",
|
|
7
7
|
"repository": {
|
|
8
8
|
"url": "https://github.com/eaisdevelopment/cc-bridge-mcp-server",
|
|
9
9
|
"source": "github"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "@essentialai/cc-bridge-mcp-server",
|
|
15
|
-
"version": "0.2.
|
|
15
|
+
"version": "0.2.3",
|
|
16
16
|
"runtimeHint": "npx",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|