@essentialai/cogent-bridge 3.1.11 → 3.3.0
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/CHANGELOG.md +83 -0
- package/README.md +13 -2
- package/dist/backend/file-backend.d.ts +2 -2
- package/dist/backend/file-backend.d.ts.map +1 -1
- package/dist/backend/file-backend.js +6 -4
- package/dist/backend/file-backend.js.map +1 -1
- package/dist/backend/http-backend.d.ts +14 -3
- package/dist/backend/http-backend.d.ts.map +1 -1
- package/dist/backend/http-backend.js +44 -4
- package/dist/backend/http-backend.js.map +1 -1
- package/dist/backend/relay-version-cache.d.ts +17 -0
- package/dist/backend/relay-version-cache.d.ts.map +1 -0
- package/dist/backend/relay-version-cache.js +65 -0
- package/dist/backend/relay-version-cache.js.map +1 -0
- package/dist/backend/storage-backend.d.ts +24 -4
- package/dist/backend/storage-backend.d.ts.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/services/auto-relay.d.ts +36 -1
- package/dist/services/auto-relay.d.ts.map +1 -1
- package/dist/services/auto-relay.js +58 -2
- package/dist/services/auto-relay.js.map +1 -1
- package/dist/services/health-check.d.ts +8 -1
- package/dist/services/health-check.d.ts.map +1 -1
- package/dist/services/health-check.js +1 -1
- package/dist/services/health-check.js.map +1 -1
- package/dist/services/peer-registry.d.ts +2 -2
- package/dist/services/peer-registry.d.ts.map +1 -1
- package/dist/services/peer-registry.js +30 -3
- package/dist/services/peer-registry.js.map +1 -1
- package/dist/startup.d.ts.map +1 -1
- package/dist/startup.js +7 -4
- package/dist/startup.js.map +1 -1
- package/dist/tools/get-history.d.ts.map +1 -1
- package/dist/tools/get-history.js +19 -2
- package/dist/tools/get-history.js.map +1 -1
- package/dist/tools/health-check.d.ts.map +1 -1
- package/dist/tools/health-check.js +44 -5
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/list-peers.d.ts.map +1 -1
- package/dist/tools/list-peers.js +5 -0
- package/dist/tools/list-peers.js.map +1 -1
- package/dist/tools/register-peer.d.ts.map +1 -1
- package/dist/tools/register-peer.js +12 -3
- package/dist/tools/register-peer.js.map +1 -1
- package/dist/tools/send-message.d.ts.map +1 -1
- package/dist/tools/send-message.js +28 -12
- package/dist/tools/send-message.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -43,21 +43,56 @@ export function registerHealthCheckTool(server) {
|
|
|
43
43
|
logger.debug(`health-check: startup module unavailable: ${err instanceof Error ? err.message : String(err)}`);
|
|
44
44
|
}
|
|
45
45
|
const cloud = isCloudMode();
|
|
46
|
-
// wsHealth: cloud-only enum derived from wsConnected + wsAgeMs vs COGENT_WS_STALE_MS.
|
|
46
|
+
// wsHealth: cloud-only enum derived from wsConnected + wsAgeMs vs COGENT_WS_STALE_MS.
|
|
47
|
+
// Four states (3.2.2): "fresh" (connected, recent frame), "stale" (connected, no
|
|
48
|
+
// frame within threshold — see 3.1.10 keepalive-pong refresh), "reconnecting"
|
|
49
|
+
// (socket momentarily down but last frame was recent, i.e. an in-progress
|
|
50
|
+
// auto-reconnect cycle — bridge keepalive cycles every ~5-20min on idle channels
|
|
51
|
+
// and each cycle takes 1-4s; pre-3.2.2 reported these as "disconnected" which
|
|
52
|
+
// alarmed operators on a healthy idle channel), and "disconnected" (socket down
|
|
53
|
+
// and last frame older than threshold, i.e. extended outage). Null age while
|
|
54
|
+
// connected => "fresh" (just-connected grace).
|
|
47
55
|
let wsHealth = "fresh";
|
|
48
56
|
if (cloud) {
|
|
49
57
|
const threshold = getConfig().COGENT_WS_STALE_MS;
|
|
58
|
+
const ageMs = wsLastFrameAtMs === null ? null : Date.now() - wsLastFrameAtMs;
|
|
50
59
|
if (!wsConnected) {
|
|
51
|
-
|
|
60
|
+
// Socket-down + recent frame = transient reconnect, not a real outage.
|
|
61
|
+
// Same threshold as fresh/stale boundary so the metric stays internally
|
|
62
|
+
// consistent (no second tunable env var).
|
|
63
|
+
if (ageMs !== null && ageMs <= threshold) {
|
|
64
|
+
wsHealth = "reconnecting";
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
wsHealth = "disconnected";
|
|
68
|
+
}
|
|
52
69
|
}
|
|
53
|
-
else if (
|
|
54
|
-
Date.now() - wsLastFrameAtMs > threshold) {
|
|
70
|
+
else if (ageMs !== null && ageMs > threshold) {
|
|
55
71
|
wsHealth = "stale";
|
|
56
72
|
}
|
|
57
73
|
else {
|
|
58
74
|
wsHealth = "fresh";
|
|
59
75
|
}
|
|
60
76
|
}
|
|
77
|
+
// VER-02: lazy lookup of the upstream relay version. Cloud-only —
|
|
78
|
+
// HttpBackend implements getRelayVersion (delegates to the 60s TTL
|
|
79
|
+
// cache); FileBackend omits it. On fetch failure the cache returns
|
|
80
|
+
// null and we keep null here; the rest of the health response stays
|
|
81
|
+
// intact. Optional-chained so a backend without the method (e.g.,
|
|
82
|
+
// FileBackend) cannot break the tool.
|
|
83
|
+
let relayVersion = null;
|
|
84
|
+
if (cloud && typeof backend.getRelayVersion === "function") {
|
|
85
|
+
try {
|
|
86
|
+
relayVersion = (await backend.getRelayVersion()) ?? null;
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
// Defense in depth — the cache module already swallows fetch
|
|
90
|
+
// errors and returns null, but if a future backend impl throws
|
|
91
|
+
// we still want health-check to succeed.
|
|
92
|
+
logger.debug(`health-check: getRelayVersion threw: ${err instanceof Error ? err.message : String(err)}`);
|
|
93
|
+
relayVersion = null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
61
96
|
const enriched = {
|
|
62
97
|
...JSON.parse(JSON.stringify(result)),
|
|
63
98
|
runtimeMode: cloud ? "cloud" : "local",
|
|
@@ -75,7 +110,11 @@ export function registerHealthCheckTool(server) {
|
|
|
75
110
|
? null
|
|
76
111
|
: Date.now() - wsLastFrameAtMs,
|
|
77
112
|
// wsHealth: cloud-only by design — local backends have no WS to assess.
|
|
78
|
-
|
|
113
|
+
// relayVersion: cloud-only (VER-02). Populated from a 60s TTL cache
|
|
114
|
+
// on HttpBackend; null when the /api/health fetch fails. Keep the
|
|
115
|
+
// key cloud-gated for shape consistency with wsHealth (local mode
|
|
116
|
+
// never has an upstream relay version to report).
|
|
117
|
+
...(cloud ? { wsHealth, relayVersion } : {}),
|
|
79
118
|
},
|
|
80
119
|
autoRelay: autoRelay.getDiagnostics(),
|
|
81
120
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAItD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,6EAA6E;YAC7E,wFAAwF;QAC1F,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAE3C,gEAAgE;YAChE,qEAAqE;YACrE,oEAAoE;YACpE,qEAAqE;YACrE,qEAAqE;YACrE,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,aAAa,GAAkB,IAAI,CAAC;YACxC,IAAI,eAAe,GAAkB,IAAI,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC9C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC1B,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;oBAClD,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;oBACvD,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,qEAAqE;gBACrE,kEAAkE;gBAClE,YAAY;gBACZ,MAAM,CAAC,KAAK,CACV,6CACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;YAE5B,
|
|
1
|
+
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-peers.d.ts","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"list-peers.d.ts","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuC7D"}
|
package/dist/tools/list-peers.js
CHANGED
|
@@ -21,6 +21,11 @@ export function registerListPeersTool(server) {
|
|
|
21
21
|
const peers = await backend.listPeers();
|
|
22
22
|
const staleTimeout = getConfig().COGENT_STALE_TIMEOUT_MS;
|
|
23
23
|
const now = Date.now();
|
|
24
|
+
// The `...peer` spread surfaces every PeerInfo field returned by the
|
|
25
|
+
// backend — including the optional `mode` ("observer" | "agent") added
|
|
26
|
+
// in 3.2.0 (Phase 17 OBS-02). Operators can distinguish passive
|
|
27
|
+
// watchers from agents at a glance. No explicit projection needed:
|
|
28
|
+
// pre-3.2.0 backends omit the field (treated as "agent" by consumers).
|
|
24
29
|
const enriched = peers.map(peer => ({
|
|
25
30
|
...peer,
|
|
26
31
|
potentiallyStale: staleTimeout > 0 && (now - new Date(peer.lastSeenAt).getTime()) > staleTimeout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-peers.js","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,iEAAiE;YACjE,8EAA8E;YAC9E,6DAA6D;QAC/D,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC,uBAAuB,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClC,GAAG,IAAI;gBACP,gBAAgB,EAAE,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY;aACjG,CAAC,CAAC,CAAC;YACJ,OAAO,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"list-peers.js","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,iEAAiE;YACjE,8EAA8E;YAC9E,6DAA6D;QAC/D,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC,uBAAuB,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,qEAAqE;YACrE,uEAAuE;YACvE,gEAAgE;YAChE,mEAAmE;YACnE,uEAAuE;YACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClC,GAAG,IAAI;gBACP,gBAAgB,EAAE,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY;aACjG,CAAC,CAAC,CAAC;YACJ,OAAO,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-peer.d.ts","sourceRoot":"","sources":["../../src/tools/register-peer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"register-peer.d.ts","sourceRoot":"","sources":["../../src/tools/register-peer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsPhE"}
|
|
@@ -28,6 +28,13 @@ export function registerRegisterPeerTool(server) {
|
|
|
28
28
|
label: z
|
|
29
29
|
.string()
|
|
30
30
|
.describe("Human-readable label, e.g. 'Cogent_Backend' or 'Cogent_Frontend'"),
|
|
31
|
+
mode: z
|
|
32
|
+
.enum(["observer", "agent"])
|
|
33
|
+
.optional()
|
|
34
|
+
.default("agent")
|
|
35
|
+
.describe("Peer participation mode. \"agent\" (default) auto-responds via execClaude on inbound directed messages. " +
|
|
36
|
+
"\"observer\" registers a passive watcher that receives WS frames and remains targetable but never spawns a subprocess. " +
|
|
37
|
+
"Useful for operators using their MCP client to monitor a channel without polluting transcript with phantom replies."),
|
|
31
38
|
},
|
|
32
39
|
annotations: {
|
|
33
40
|
readOnlyHint: false,
|
|
@@ -35,7 +42,7 @@ export function registerRegisterPeerTool(server) {
|
|
|
35
42
|
idempotentHint: true,
|
|
36
43
|
openWorldHint: false,
|
|
37
44
|
},
|
|
38
|
-
}, async ({ peerId, sessionId, cwd, label }) => {
|
|
45
|
+
}, async ({ peerId, sessionId, cwd, label, mode }) => {
|
|
39
46
|
try {
|
|
40
47
|
const config = getConfig();
|
|
41
48
|
// Config-based check for auto-create (needs the endpoint URL).
|
|
@@ -112,7 +119,7 @@ export function registerRegisterPeerTool(server) {
|
|
|
112
119
|
// Pass our own cogent-bridge npm version so the server (and any
|
|
113
120
|
// operator inspecting cogent_list_peers) can tell at a glance which
|
|
114
121
|
// client version each peer is running. Plumbs through to PeerInfo.
|
|
115
|
-
const peer = await backend.registerPeer(peerId, sessionId, cwd, label, CLIENT_VERSION);
|
|
122
|
+
const peer = await backend.registerPeer(peerId, sessionId, cwd, label, CLIENT_VERSION, mode);
|
|
116
123
|
// Set local peer info for auto-relay (cloud mode: incoming messages trigger local execClaude).
|
|
117
124
|
// Auto-detect the real local CC session ID from the filesystem — the user/agent may
|
|
118
125
|
// pass the cloud session ID by mistake, which won't work with `claude --resume`.
|
|
@@ -125,7 +132,9 @@ export function registerRegisterPeerTool(server) {
|
|
|
125
132
|
else {
|
|
126
133
|
logger.debug(`Could not auto-detect local session, using provided: ${sessionId}`);
|
|
127
134
|
}
|
|
128
|
-
|
|
135
|
+
// Plumb mode (Phase 17 OBS-03): observer peers will short-circuit
|
|
136
|
+
// before execClaude on inbound directed messages.
|
|
137
|
+
autoRelay.setLocalPeer(peerId, localSessionId, cwd, mode, label);
|
|
129
138
|
// Build the result, enriched with auto-create info if applicable
|
|
130
139
|
const result = {
|
|
131
140
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-peer.js","sourceRoot":"","sources":["../../src/tools/register-peer.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,gEAAgE;YAChE,+DAA+D;YAC/D,0DAA0D;QAC5D,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,CAAC,gDAAgD,CAAC;YAC7D,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,CAAC,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"register-peer.js","sourceRoot":"","sources":["../../src/tools/register-peer.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;AA8CpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
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;AA8CpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqU/D"}
|
|
@@ -183,24 +183,32 @@ export function registerSendMessageTool(server) {
|
|
|
183
183
|
// the LLM what we actually know: the message is queued at the
|
|
184
184
|
// relay, the peer's last-seen-by-relay timestamp, and where to
|
|
185
185
|
// look for a reply.
|
|
186
|
+
//
|
|
187
|
+
// v3.2.1 (FIX-TIMEOUT-UX): return success:false with timedOut:true
|
|
188
|
+
// and put the explanation in `message`. The previous shape
|
|
189
|
+
// (success:true, response:<stub-text>) caused LLMs to mistake the
|
|
190
|
+
// bridge's stub for the recipient's actual reply.
|
|
186
191
|
const liveness = await describePeerLiveness(normalizedToPeerId);
|
|
187
|
-
const
|
|
192
|
+
const offlineMessage = `Message accepted by relay; no delivery acknowledgment from ${to.label} ` +
|
|
188
193
|
`(${normalizedToPeerId}) within ${effectiveAckTimeout}ms. ${liveness} ` +
|
|
189
194
|
`The recipient may have replied with cogent_send_message instead of the ` +
|
|
190
195
|
`synchronous response pattern. Use cogent_get_history to check for a reply.`;
|
|
191
|
-
//
|
|
196
|
+
// Leave the history record's response as null so it's not
|
|
197
|
+
// mistaken for the recipient's actual reply on later inspection.
|
|
192
198
|
if (backend.updateMessageResponse) {
|
|
193
199
|
try {
|
|
194
|
-
await backend.updateMessageResponse(outboundRecord.id,
|
|
200
|
+
await backend.updateMessageResponse(outboundRecord.id, null, Date.now() - startMs);
|
|
195
201
|
}
|
|
196
202
|
catch {
|
|
197
203
|
logger.warn("[send-message] Failed to update message response in history (offline)");
|
|
198
204
|
}
|
|
199
205
|
}
|
|
200
206
|
return successResult({
|
|
201
|
-
success:
|
|
202
|
-
|
|
203
|
-
error:
|
|
207
|
+
success: false,
|
|
208
|
+
timedOut: true,
|
|
209
|
+
error: "DELIVERY_NO_ACK",
|
|
210
|
+
message: offlineMessage,
|
|
211
|
+
response: null,
|
|
204
212
|
durationMs: Date.now() - startMs,
|
|
205
213
|
});
|
|
206
214
|
}
|
|
@@ -231,24 +239,32 @@ export function registerSendMessageTool(server) {
|
|
|
231
239
|
// to history. The peer may have replied via cogent_send_message
|
|
232
240
|
// (a fresh send) instead of the synchronous response pattern;
|
|
233
241
|
// such replies arrive but don't satisfy this waiter.
|
|
242
|
+
//
|
|
243
|
+
// v3.2.1 (FIX-TIMEOUT-UX): return success:false with timedOut:true
|
|
244
|
+
// and put the explanation in `message`. The previous shape
|
|
245
|
+
// (success:true, response:<stub-text>) caused LLMs to mistake the
|
|
246
|
+
// bridge's stub for the recipient's actual reply.
|
|
234
247
|
const liveness = await describePeerLiveness(normalizedToPeerId);
|
|
235
|
-
const
|
|
248
|
+
const timeoutMessage = `Delivered to ${to.label}'s Cogent MCP, but no synchronous response within ` +
|
|
236
249
|
`${Math.round(config.COGENT_TIMEOUT_MS / 1000)}s. ${liveness} ` +
|
|
237
250
|
`If the recipient replied via cogent_send_message rather than the ` +
|
|
238
251
|
`synchronous response pattern, the reply is in cogent_get_history.`;
|
|
239
|
-
//
|
|
252
|
+
// Leave the history record's response as null so it's not
|
|
253
|
+
// mistaken for the recipient's actual reply on later inspection.
|
|
240
254
|
if (backend.updateMessageResponse) {
|
|
241
255
|
try {
|
|
242
|
-
await backend.updateMessageResponse(outboundRecord.id,
|
|
256
|
+
await backend.updateMessageResponse(outboundRecord.id, null, Date.now() - startMs);
|
|
243
257
|
}
|
|
244
258
|
catch {
|
|
245
259
|
logger.warn("[send-message] Failed to update message response in history (timeout)");
|
|
246
260
|
}
|
|
247
261
|
}
|
|
248
262
|
return successResult({
|
|
249
|
-
success:
|
|
250
|
-
|
|
251
|
-
error:
|
|
263
|
+
success: false,
|
|
264
|
+
timedOut: true,
|
|
265
|
+
error: "RESPONSE_TIMEOUT",
|
|
266
|
+
message: timeoutMessage,
|
|
267
|
+
response: null,
|
|
252
268
|
durationMs: Date.now() - startMs,
|
|
253
269
|
});
|
|
254
270
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,6 +7,18 @@ export interface PeerInfo {
|
|
|
7
7
|
lastSeenAt: string;
|
|
8
8
|
/** cogent-bridge npm version of the registering client (optional, added in 3.1.6). */
|
|
9
9
|
clientVersion?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Peer participation mode (optional, added in 3.2.0 / Phase 17 OBS-01..03).
|
|
12
|
+
* - "agent" (default if absent): inbound directed messages trigger
|
|
13
|
+
* `execClaude` via the auto-relay path. Standard CC peer behavior.
|
|
14
|
+
* - "observer": peer receives WS frames and remains targetable in
|
|
15
|
+
* `cogent_list_peers`, but the auto-relay short-circuits — no
|
|
16
|
+
* subprocess is spawned. Useful for operators using their MCP client
|
|
17
|
+
* as a passive watcher without polluting the transcript with phantom
|
|
18
|
+
* relay replies.
|
|
19
|
+
* Absent on records produced by pre-3.2.0 clients (treated as "agent").
|
|
20
|
+
*/
|
|
21
|
+
mode?: "observer" | "agent";
|
|
10
22
|
}
|
|
11
23
|
export interface MessageRecord {
|
|
12
24
|
id: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.eaisdevelopment/cogent",
|
|
4
4
|
"title": "Cogent Bridge from Essential AI Solutions (essentialai.uk)",
|
|
5
5
|
"description": "MCP bridge for inter-session communication between Claude Code instances",
|
|
6
|
-
"version": "3.
|
|
6
|
+
"version": "3.3.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"url": "https://github.com/eaisdevelopment/cogent",
|
|
9
9
|
"source": "github"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "@essentialai/cogent-bridge",
|
|
15
|
-
"version": "3.
|
|
15
|
+
"version": "3.3.0",
|
|
16
16
|
"runtimeHint": "npx",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|