@cello-protocol/connect 0.0.61 → 0.0.63

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.
@@ -68,7 +68,9 @@ process.stderr.write = (chunk, encodingOrCb, cb) => {
68
68
  // operator (or test) running the daemon under a non-default home would have cello-mcp
69
69
  // look in ~/.cello and fail to find the socket.
70
70
  const socketPath = join(celloDir, "daemon.sock");
71
- const proxy = new IpcProxy(socketPath);
71
+ // RECONNECT-001: clientType is handed to the proxy so it can replay `ipc.connect` after a daemon
72
+ // restart. Without it the reconnected socket has no registered client and no current agent.
73
+ const proxy = new IpcProxy(socketPath, { clientType: "mcp" });
72
74
  try {
73
75
  await proxy.connect();
74
76
  }
@@ -150,11 +152,26 @@ server.tool("cello_contact_list", "List an agent's contact whitelist — the pee
150
152
  const result = await proxy.call("cello_contact_list", agent ? { agent } : {});
151
153
  return jsonText(result);
152
154
  });
153
- server.tool("cello_contact_add", "Add a peer (by hex public key) to an agent's contact whitelist — a known/trusted contact is fast-tracked and exempt from unknown-sender screening and anti-spam caps. Defaults to the current agent.", {
155
+ server.tool("cello_contact_add", "Add a peer (by hex public key) to an agent's contact whitelist — a known/trusted contact is fast-tracked and exempt from unknown-sender screening and anti-spam caps. Optionally set your own pet name (moniker) for them. Defaults to the current agent.", {
154
156
  pubkey: z.string().describe("Hex-encoded public key of the peer to add"),
157
+ moniker: z.string().optional().describe("Optional pet name for this contact (1-64 chars: letters, digits, '-' or '_') — always wins over the name they offer"),
155
158
  agent: z.string().optional().describe("Agent name whose whitelist to add to (defaults to the current agent)"),
156
- }, async ({ pubkey, agent }) => {
157
- const result = await proxy.call("cello_contact_add", agent ? { pubkey, agent } : { pubkey });
159
+ }, async ({ pubkey, moniker, agent }) => {
160
+ const params = { pubkey };
161
+ if (moniker !== undefined)
162
+ params.moniker = moniker;
163
+ if (agent)
164
+ params.agent = agent;
165
+ const result = await proxy.call("cello_contact_add", params);
166
+ return jsonText(result);
167
+ });
168
+ // MONIKER-3: rename/clear a contact's pet name. Forward-only (D7).
169
+ server.tool("cello_contact_set_moniker", "Set (or clear, by passing null) YOUR pet name for an existing contact — the top-priority display name shown for them (always wins over the name they offer). Defaults to the current agent.", {
170
+ pubkey: z.string().describe("Hex-encoded public key of the contact to rename"),
171
+ moniker: z.string().nullable().describe("The pet name to set (1-64 chars: letters, digits, '-' or '_'), or null to clear it"),
172
+ agent: z.string().optional().describe("Agent name whose contact to rename (defaults to the current agent)"),
173
+ }, async ({ pubkey, moniker, agent }) => {
174
+ const result = await proxy.call("cello_contact_set_moniker", agent ? { pubkey, moniker, agent } : { pubkey, moniker });
158
175
  return jsonText(result);
159
176
  });
160
177
  server.tool("cello_contact_remove", "Remove a peer (by hex public key) from an agent's contact whitelist — they revert to unknown (screened, and subject to the anti-spam acceptance caps). Defaults to the current agent.", {
@@ -164,6 +181,15 @@ server.tool("cello_contact_remove", "Remove a peer (by hex public key) from an a
164
181
  const result = await proxy.call("cello_contact_remove", agent ? { pubkey, agent } : { pubkey });
165
182
  return jsonText(result);
166
183
  });
184
+ // MONIKER-1: outbound-name override. Forward-only (D7 — validation and persistence live in the
185
+ // daemon's cello_set_moniker; the shim adds no logic).
186
+ server.tool("cello_set_moniker", "Set (or clear, by passing null) an agent's outbound display name — what a counterparty's doorbell shows. Defaults to the agent name; local-only, never sent to the directory. 1-64 chars: letters, digits, '-' or '_'. Defaults to the current agent.", {
187
+ moniker: z.string().nullable().describe("The outbound name to set, or null to clear the override (reverts to the agent name)"),
188
+ agent: z.string().optional().describe("Agent name whose outbound name to set (defaults to the current agent)"),
189
+ }, async ({ moniker, agent }) => {
190
+ const result = await proxy.call("cello_set_moniker", agent ? { moniker, agent } : { moniker });
191
+ return jsonText(result);
192
+ });
167
193
  // ─── Session tools (proxied through daemon) ─────────────────────────────────
168
194
  server.tool("cello_initiate_session", "Start a new CELLO session with a target agent", {
169
195
  target_pubkey: z.string().describe("Hex-encoded public key of the target agent"),
@@ -1 +1 @@
1
- {"version":3,"file":"cello-mcp.js","sourceRoot":"","sources":["../../src/bin/cello-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cello-mcp.js","sourceRoot":"","sources":["../../src/bin/cello-mcp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"channel-params.d.ts","sourceRoot":"","sources":["../src/channel-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA0BH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAYnD"}
1
+ {"version":3,"file":"channel-params.d.ts","sourceRoot":"","sources":["../src/channel-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAwEH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAYnD"}
@@ -21,16 +21,62 @@ function short(v) {
21
21
  const s = v == null ? "" : String(v);
22
22
  return s.length > 12 ? `${s.slice(0, 12)}…` : s;
23
23
  }
24
- /** Human-readable, content-free doorbell announcement for the `<channel>` tag body. */
24
+ /** Shim-side fingerprint mirrors the daemon's who-label format for old-daemon frames. */
25
+ function shimFingerprint(pubkey) {
26
+ const s = typeof pubkey === "string" && pubkey.length >= 8 ? pubkey.slice(0, 8) : null;
27
+ return s !== null ? `agent ${s}…` : "agent unknown…";
28
+ }
29
+ /**
30
+ * MONIKER-4 AC3/AC4 — the rendered counterparty label.
31
+ * - whoKnown true → plain (the operator's own pet name — deliberate trust, CC-1).
32
+ * - whoKnown false + fingerprint → plain (derived identity, not a claim). The discriminator is
33
+ * UNFORGEABLE: MONIKER_RE excludes spaces, and every fingerprint contains one.
34
+ * - whoKnown false + name → `"Bob" (self-declared)` — rendered as a claim; the marker itself
35
+ * cannot be forged because the charset excludes quotes and parentheses.
36
+ *
37
+ * The marker says the name came from its owner rather than from the operator. `whoKnown` is true
38
+ * only when the operator has set a local pet name, so it appears for every contact they have not
39
+ * named — not only new ones. Nothing in the protocol ever verifies a name.
40
+ * - No `who` at all (old daemon) → shim-side fingerprint of the counterparty key. Never blank.
41
+ * Names are NEVER truncated (only fingerprints shorten, by construction).
42
+ */
43
+ function renderWho(data) {
44
+ const who = typeof data["who"] === "string" && data["who"].length > 0 ? data["who"] : null;
45
+ if (who === null)
46
+ return shimFingerprint(data["counterpartyPubkey"] ?? data["from"]);
47
+ if (data["whoKnown"] === true)
48
+ return who;
49
+ return who.includes(" ") ? who : `"${who}" (self-declared)`;
50
+ }
51
+ /** Human-readable, content-free doorbell announcement for the `<channel>` tag body.
52
+ * MONIKER-4 AC3: the label LEADS; session IDs stay out of the body (they remain as `<channel>`
53
+ * meta attributes, where tools read them). */
25
54
  function doorbellText(type, data) {
26
- const session = short(data["session_id"] ?? data["sessionId"]);
27
55
  switch (type) {
28
56
  case "cello_message":
29
- return `CELLO: a new message is waiting (session ${session}, from ${short(data["from"])}). Call cello_receive to read it.`;
57
+ return `📩 CELLO ${renderWho(data)} sent a message. Run cello_receive to read it.`;
30
58
  case "cello_session_request":
31
- return `CELLO: an incoming session request from ${short(data["from"])} (session ${session}). Call cello_await_session to accept it.`;
32
- case "session_state_changed":
33
- return `CELLO: session ${session} for ${short(data["agentName"] ?? data["agent"] ?? "your agent")} is now "${String(data["state"] ?? "changed")}". Call cello_list_sessions, then cello_receive.`;
59
+ return `📞 CELLO ${renderWho(data)} wants to connect. Run cello_await_session to accept.`;
60
+ case "session_state_changed": {
61
+ const who = renderWho(data);
62
+ // Review F1: agent names share MONIKER_RE (≤64 chars) — AC3's "never truncates a name"
63
+ // applies to YOUR agent name too; only fingerprints shorten.
64
+ const yourAgent = String(data["agentName"] ?? data["agent"] ?? "your agent");
65
+ switch (String(data["state"] ?? "changed")) {
66
+ case "created":
67
+ return `📞 CELLO — ${who} wants to connect with ${yourAgent}. Run cello_await_session to accept.`;
68
+ case "active":
69
+ return `✅ CELLO — you're connected to ${who}.`;
70
+ case "sealed":
71
+ return `🔒 CELLO — session with ${who} sealed. Receipt saved.`;
72
+ case "closed":
73
+ // The frame carries state, not who closed it — attributing the action would be a lie
74
+ // half the time (spec AC3 note).
75
+ return `👋 CELLO — session with ${who} ended.`;
76
+ default:
77
+ return `CELLO — session with ${who} is now "${String(data["state"] ?? "changed")}".`;
78
+ }
79
+ }
34
80
  case "agent_state_changed":
35
81
  return `CELLO: agent ${short(data["agent"])} is now ${String(data["state"] ?? "changed")}.`;
36
82
  case "agent_current_changed":
@@ -1 +1 @@
1
- {"version":3,"file":"channel-params.js","sourceRoot":"","sources":["../src/channel-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,SAAS,KAAK,CAAC,CAAU;IACvB,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,uFAAuF;AACvF,SAAS,YAAY,CAAC,IAAY,EAAE,IAA6B;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,4CAA4C,OAAO,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mCAAmC,CAAC;QAC7H,KAAK,uBAAuB;YAC1B,OAAO,2CAA2C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,OAAO,2CAA2C,CAAC;QACvI,KAAK,uBAAuB;YAC1B,OAAO,kBAAkB,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,kDAAkD,CAAC;QACpM,KAAK,qBAAqB;YACxB,OAAO,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;QAC9F,KAAK,uBAAuB;YAC1B,OAAO,mCAAmC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;QACvF;YACE,OAAO,gBAAgB,IAAI,GAAG,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA6B;IAE7B,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,aAAa,CAAC;IACzF,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,4FAA4F;QAC5F,2FAA2F;QAC3F,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACzC,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QACjD,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"channel-params.js","sourceRoot":"","sources":["../src/channel-params.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,54 @@
1
1
  /**
2
2
  * IPC Proxy — thin client for connecting cello-mcp to the daemon.
3
3
  *
4
- * Pseudocode:
5
- * 1. connect(socketPath):
6
- * a. Create net.Socket via createConnection
7
- * b. On 'connect' event resolve
8
- * c. On 'error' → reject with ENOENT/ECONNREFUSED
9
- * d. Set up JSON-newline framing reader
4
+ * RECONNECT-001: the proxy survives a daemon restart. Previously a restart closed the socket, set
5
+ * a permanent `#dead` flag, and every subsequent tool call returned `ipc_connection_lost` forever —
6
+ * the operator's cello_* tools silently vanished behind an error that named no remedy. It orphaned
7
+ * every connected agent at once (Claude Code and Hermes alike).
10
8
  *
11
- * 2. call(method, params):
12
- * a. If socket is dead → return ipc_connection_lost immediately
13
- * b. Generate numeric request ID (incrementing counter)
14
- * c. Write { id, method, params } + '\n' to socket
15
- * d. Await matching response by id
16
- * e. If JSON parse error on response return ipc_deserialization_error
17
- * f. If response has error → extract and return as { ok: false, ... }
18
- * g. Otherwise return result
9
+ * Two invariants the reconnect must not break:
10
+ *
11
+ * 1. **Replay the session, not just the socket.** The daemon rebuilds per-connection state on
12
+ * restart, so a reconnected socket has no registered clientType and no current agent. Both are
13
+ * replayed (`ipc.connect`, then `cello_use_agent`) BEFORE any queued caller is released —
14
+ * otherwise tools fail `no_current_agent` and the NotificationDispatcher (which routes on
15
+ * currentAgent) silently stops delivering doorbells.
16
+ *
17
+ * 2. **Never replay an in-flight request.** `cello_send` is not idempotent; a silent retry would
18
+ * double-send a message. In-flight calls resolve as `ipc_connection_lost` and the caller retries
19
+ * explicitly. Only the handshake — which IS idempotent — is replayed.
19
20
  *
20
- * 3. On socket close: set dead flag. All subsequent calls return ipc_connection_lost.
21
+ * Pseudocode:
22
+ * 1. connect(): open the socket; reject on ENOENT/ECONNREFUSED so startup still fails fast.
23
+ * 2. call(method, params):
24
+ * a. closed by us → ipc_connection_lost immediately
25
+ * b. disconnected → await reconnection (bounded); on timeout → ipc_connection_lost
26
+ * c. write { id, method, params } + '\n'; await the response by id
27
+ * 3. On unexpected close: fail every pending request, then reconnect with backoff and replay
28
+ * the handshake. On close(): stay dead.
21
29
  */
22
30
  export interface IpcProxyResult {
23
31
  [key: string]: unknown;
24
32
  }
33
+ export interface IpcProxyOptions {
34
+ /** Replayed as `ipc.connect { clientType }` after a reconnect. */
35
+ clientType?: string;
36
+ }
25
37
  export declare class IpcProxy {
26
38
  #private;
27
- constructor(socketPath: string);
39
+ constructor(socketPath: string, opts?: IpcProxyOptions);
28
40
  /**
29
41
  * Register a handler for server-initiated notification frames (frames with a `notification`
30
42
  * key and no `id`). The daemon's NotificationDispatcher pushes these; the Claude Code shim
31
43
  * translates each into an MCP `notifications/claude/channel` event (CELLO-M8C-WAKE-001,
32
- * channel stage 1). Only one handler is supported — the last registration wins.
44
+ * channel stage 1). Only one handler is supported — the last registration wins. The handler
45
+ * survives reconnects.
33
46
  */
34
47
  onNotification(handler: (frame: Record<string, unknown>) => void): void;
35
48
  /**
36
49
  * Connect to the daemon IPC socket.
37
- * Throws if the socket doesn't exist (ENOENT) or daemon isn't listening (ECONNREFUSED).
50
+ * Throws if the socket doesn't exist (ENOENT) or daemon isn't listening (ECONNREFUSED), so
51
+ * startup still fails fast with an actionable message rather than retrying invisibly.
38
52
  */
39
53
  connect(): Promise<void>;
40
54
  /**
@@ -43,6 +57,7 @@ export declare class IpcProxy {
43
57
  */
44
58
  call(method: string, params?: Record<string, unknown>): Promise<unknown>;
45
59
  close(): void;
60
+ /** True only after an explicit close(). A dropped daemon is recoverable, not dead. */
46
61
  get isDead(): boolean;
47
62
  }
48
63
  //# sourceMappingURL=ipc-proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipc-proxy.d.ts","sourceRoot":"","sources":["../src/ipc-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAsBD,qBAAa,QAAQ;;gBASP,UAAU,EAAE,MAAM;IAI9B;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIvE;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CxB;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgC9E,KAAK,IAAI,IAAI;IAQb,IAAI,MAAM,IAAI,OAAO,CAEpB;CAgEF"}
1
+ {"version":3,"file":"ipc-proxy.d.ts","sourceRoot":"","sources":["../src/ipc-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqCD,qBAAa,QAAQ;;gBA0BP,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB;IAK1D;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIvE;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuJxB;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA8D9E,KAAK,IAAI,IAAI;IAcb,sFAAsF;IACtF,IAAI,MAAM,IAAI,OAAO,CAEpB;CAgEF"}
package/dist/ipc-proxy.js CHANGED
@@ -1,29 +1,43 @@
1
1
  /**
2
2
  * IPC Proxy — thin client for connecting cello-mcp to the daemon.
3
3
  *
4
- * Pseudocode:
5
- * 1. connect(socketPath):
6
- * a. Create net.Socket via createConnection
7
- * b. On 'connect' event resolve
8
- * c. On 'error' → reject with ENOENT/ECONNREFUSED
9
- * d. Set up JSON-newline framing reader
4
+ * RECONNECT-001: the proxy survives a daemon restart. Previously a restart closed the socket, set
5
+ * a permanent `#dead` flag, and every subsequent tool call returned `ipc_connection_lost` forever —
6
+ * the operator's cello_* tools silently vanished behind an error that named no remedy. It orphaned
7
+ * every connected agent at once (Claude Code and Hermes alike).
10
8
  *
11
- * 2. call(method, params):
12
- * a. If socket is dead → return ipc_connection_lost immediately
13
- * b. Generate numeric request ID (incrementing counter)
14
- * c. Write { id, method, params } + '\n' to socket
15
- * d. Await matching response by id
16
- * e. If JSON parse error on response return ipc_deserialization_error
17
- * f. If response has error → extract and return as { ok: false, ... }
18
- * g. Otherwise return result
9
+ * Two invariants the reconnect must not break:
10
+ *
11
+ * 1. **Replay the session, not just the socket.** The daemon rebuilds per-connection state on
12
+ * restart, so a reconnected socket has no registered clientType and no current agent. Both are
13
+ * replayed (`ipc.connect`, then `cello_use_agent`) BEFORE any queued caller is released —
14
+ * otherwise tools fail `no_current_agent` and the NotificationDispatcher (which routes on
15
+ * currentAgent) silently stops delivering doorbells.
19
16
  *
20
- * 3. On socket close: set dead flag. All subsequent calls return ipc_connection_lost.
17
+ * 2. **Never replay an in-flight request.** `cello_send` is not idempotent; a silent retry would
18
+ * double-send a message. In-flight calls resolve as `ipc_connection_lost` and the caller retries
19
+ * explicitly. Only the handshake — which IS idempotent — is replayed.
20
+ *
21
+ * Pseudocode:
22
+ * 1. connect(): open the socket; reject on ENOENT/ECONNREFUSED so startup still fails fast.
23
+ * 2. call(method, params):
24
+ * a. closed by us → ipc_connection_lost immediately
25
+ * b. disconnected → await reconnection (bounded); on timeout → ipc_connection_lost
26
+ * c. write { id, method, params } + '\n'; await the response by id
27
+ * 3. On unexpected close: fail every pending request, then reconnect with backoff and replay
28
+ * the handshake. On close(): stay dead.
21
29
  */
22
30
  import { createConnection } from "node:net";
23
31
  const IPC_CONNECTION_LOST = {
24
32
  ok: false,
25
33
  reason: "ipc_connection_lost",
26
- guidance: "The connection to the CELLO daemon was lost. Restart this MCP server (close and reopen Claude Code) to reconnect. The daemon itself may still be running — run `cello status` in a terminal to check.",
34
+ guidance: "The connection to the CELLO daemon was lost and could not be re-established. The daemon may be down — run `cello status` in a terminal to check, and `cello login` to start it. If the daemon is running, reconnect this MCP server with `/mcp reconnect cello`.",
35
+ };
36
+ /** Returned while a reconnect is in progress or just failed — the caller should simply retry. */
37
+ const IPC_RECONNECTING = {
38
+ ok: false,
39
+ reason: "ipc_connection_lost",
40
+ guidance: "The CELLO daemon connection dropped (the daemon likely restarted) and is being re-established automatically. Retry this call in a moment. If it keeps failing, run `cello status`, then `/mcp reconnect cello`.",
27
41
  };
28
42
  const IPC_DESERIALIZATION_ERROR = {
29
43
  ok: false,
@@ -35,69 +49,195 @@ const IPC_DESERIALIZATION_ERROR = {
35
49
  // reaches the daemon's content_too_large check, instead of tripping a fatal buffer
36
50
  // overflow at the 1 MB content cap boundary.
37
51
  const MAX_BUFFER_SIZE = 4 * 1024 * 1024; // 4MB — matches IPC server limit
52
+ const RECONNECT_BASE_DELAY_MS = 200;
53
+ const RECONNECT_MAX_DELAY_MS = 5_000;
54
+ /** How long a caller waits for an in-progress reconnect before giving up on this call. */
55
+ const RECONNECT_WAIT_MS = 15_000;
56
+ /** A handshake replay that never answers must not wedge the reconnect loop. */
57
+ const HANDSHAKE_TIMEOUT_MS = 5_000;
38
58
  export class IpcProxy {
39
59
  #socketPath;
60
+ #clientType;
40
61
  #socket = null;
41
- #dead = false;
62
+ /** True only after close() — an operator-initiated shutdown never reconnects. */
63
+ #closedByUs = false;
64
+ #connected = false;
42
65
  #nextId = 1;
43
66
  #pending = new Map();
44
67
  #buffer = "";
45
68
  #notificationHandler = null;
46
- constructor(socketPath) {
69
+ #reconnectTimer = null;
70
+ #reconnectAttempt = 0;
71
+ /** Single-flight guard: a reconnect in progress must never spawn a second loop. */
72
+ #reconnecting = false;
73
+ /**
74
+ * A FAILED INITIAL connect must not start a background reconnect loop behind connect()'s
75
+ * rejection — the caller (cello-mcp) exits with an actionable message instead. Only a
76
+ * connection that once worked is worth restoring.
77
+ */
78
+ #everConnected = false;
79
+ #connectWaiters = [];
80
+ /** Last successfully-selected agent, replayed after reconnect so routing survives. */
81
+ #currentAgent = null;
82
+ constructor(socketPath, opts = {}) {
47
83
  this.#socketPath = socketPath;
84
+ this.#clientType = opts.clientType;
48
85
  }
49
86
  /**
50
87
  * Register a handler for server-initiated notification frames (frames with a `notification`
51
88
  * key and no `id`). The daemon's NotificationDispatcher pushes these; the Claude Code shim
52
89
  * translates each into an MCP `notifications/claude/channel` event (CELLO-M8C-WAKE-001,
53
- * channel stage 1). Only one handler is supported — the last registration wins.
90
+ * channel stage 1). Only one handler is supported — the last registration wins. The handler
91
+ * survives reconnects.
54
92
  */
55
93
  onNotification(handler) {
56
94
  this.#notificationHandler = handler;
57
95
  }
58
96
  /**
59
97
  * Connect to the daemon IPC socket.
60
- * Throws if the socket doesn't exist (ENOENT) or daemon isn't listening (ECONNREFUSED).
98
+ * Throws if the socket doesn't exist (ENOENT) or daemon isn't listening (ECONNREFUSED), so
99
+ * startup still fails fast with an actionable message rather than retrying invisibly.
61
100
  */
62
101
  connect() {
63
102
  return new Promise((resolve, reject) => {
64
103
  const socket = createConnection(this.#socketPath);
65
104
  this.#socket = socket;
105
+ let settled = false;
66
106
  socket.on("connect", () => {
107
+ settled = true;
108
+ this.#connected = true;
109
+ this.#everConnected = true;
110
+ this.#reconnectAttempt = 0;
67
111
  resolve();
68
112
  });
69
113
  socket.on("error", (err) => {
70
- this.#dead = true;
71
- reject(err);
72
- // Reject all pending requests
73
- for (const [, p] of this.#pending) {
74
- p.reject(new Error("Connection closed"));
75
- }
76
- this.#pending.clear();
77
- });
78
- socket.on("data", (chunk) => {
79
- this.#buffer += chunk.toString("utf-8");
80
- if (this.#buffer.length > MAX_BUFFER_SIZE) {
81
- this.#dead = true;
82
- socket.destroy();
83
- for (const [, p] of this.#pending) {
84
- p.resolve(IPC_CONNECTION_LOST);
85
- }
86
- this.#pending.clear();
114
+ if (!settled) {
115
+ settled = true;
116
+ this.#connected = false;
117
+ this.#failPending();
118
+ reject(err);
87
119
  return;
88
120
  }
89
- this.#processBuffer();
121
+ // Post-connect errors surface as 'close'; nothing to do here.
90
122
  });
91
- socket.on("close", () => {
92
- this.#dead = true;
93
- // Reject all pending requests
94
- for (const [, p] of this.#pending) {
95
- p.reject(new Error("Connection closed"));
96
- }
97
- this.#pending.clear();
123
+ this.#attach(socket);
124
+ });
125
+ }
126
+ /** Wire the data/close handlers shared by the initial connect and every reconnect. */
127
+ #attach(socket) {
128
+ socket.on("data", (chunk) => {
129
+ this.#buffer += chunk.toString("utf-8");
130
+ if (this.#buffer.length > MAX_BUFFER_SIZE) {
131
+ this.#buffer = "";
132
+ socket.destroy();
133
+ return;
134
+ }
135
+ this.#processBuffer();
136
+ });
137
+ socket.on("close", () => {
138
+ const wasConnected = this.#connected;
139
+ this.#connected = false;
140
+ // Invariant 2: pending requests are FAILED, never replayed. cello_send is not idempotent.
141
+ this.#failPending();
142
+ if (!this.#closedByUs && wasConnected) {
143
+ process.stderr.write("cello-mcp: daemon connection lost — reconnecting…\n");
144
+ }
145
+ // Guard on #everConnected: a failed initial connect rejects to the caller; it must not
146
+ // silently retry in the background behind that rejection.
147
+ if (!this.#closedByUs && this.#everConnected)
148
+ this.#scheduleReconnect();
149
+ });
150
+ }
151
+ #failPending() {
152
+ for (const [, p] of this.#pending)
153
+ p.resolve(IPC_RECONNECTING);
154
+ this.#pending.clear();
155
+ }
156
+ #scheduleReconnect() {
157
+ // Single-flight: a timer already armed, or an attempt in progress, must not stack another.
158
+ if (this.#closedByUs || this.#reconnectTimer || this.#reconnecting)
159
+ return;
160
+ const delay = Math.min(RECONNECT_BASE_DELAY_MS * 2 ** this.#reconnectAttempt, RECONNECT_MAX_DELAY_MS);
161
+ this.#reconnectAttempt++;
162
+ this.#reconnectTimer = setTimeout(() => {
163
+ this.#reconnectTimer = null;
164
+ void this.#attemptReconnect();
165
+ }, delay);
166
+ this.#reconnectTimer.unref?.();
167
+ }
168
+ async #attemptReconnect() {
169
+ if (this.#closedByUs || this.#reconnecting)
170
+ return;
171
+ this.#reconnecting = true;
172
+ try {
173
+ const socket = await this.#openSocket();
174
+ this.#socket = socket;
175
+ this.#buffer = "";
176
+ this.#attach(socket);
177
+ this.#connected = true;
178
+ this.#everConnected = true;
179
+ // Invariant 1: restore the SESSION before releasing any caller. Both replayed frames are
180
+ // idempotent, so replaying them is safe in a way replaying cello_send would not be.
181
+ await this.#replayHandshake();
182
+ this.#reconnectAttempt = 0;
183
+ process.stderr.write("cello-mcp: reconnected to the CELLO daemon\n");
184
+ this.#releaseWaiters();
185
+ }
186
+ catch {
187
+ this.#connected = false;
188
+ this.#reconnecting = false;
189
+ this.#scheduleReconnect();
190
+ return;
191
+ }
192
+ this.#reconnecting = false;
193
+ }
194
+ #openSocket() {
195
+ return new Promise((resolve, reject) => {
196
+ const socket = createConnection(this.#socketPath);
197
+ const onError = (err) => {
198
+ socket.destroy();
199
+ reject(err);
200
+ };
201
+ socket.once("error", onError);
202
+ socket.once("connect", () => {
203
+ socket.removeListener("error", onError);
204
+ resolve(socket);
98
205
  });
99
206
  });
100
207
  }
208
+ async #replayHandshake() {
209
+ // Bounded: a daemon that accepts the socket but never answers must not wedge the reconnect
210
+ // loop forever. Only these two frames get a timeout — see #rawCall.
211
+ if (this.#clientType) {
212
+ await this.#rawCall("ipc.connect", { clientType: this.#clientType }, HANDSHAKE_TIMEOUT_MS);
213
+ }
214
+ if (this.#currentAgent) {
215
+ await this.#rawCall("cello_use_agent", { name: this.#currentAgent }, HANDSHAKE_TIMEOUT_MS);
216
+ }
217
+ }
218
+ #releaseWaiters() {
219
+ const waiters = this.#connectWaiters;
220
+ this.#connectWaiters = [];
221
+ for (const w of waiters)
222
+ w();
223
+ }
224
+ /** Wait (bounded) for a reconnect to complete. Resolves true if connected. */
225
+ #waitForConnection() {
226
+ if (this.#connected)
227
+ return Promise.resolve(true);
228
+ return new Promise((resolve) => {
229
+ const timer = setTimeout(() => {
230
+ this.#connectWaiters = this.#connectWaiters.filter((w) => w !== waiter);
231
+ resolve(false);
232
+ }, RECONNECT_WAIT_MS);
233
+ timer.unref?.();
234
+ const waiter = () => {
235
+ clearTimeout(timer);
236
+ resolve(true);
237
+ };
238
+ this.#connectWaiters.push(waiter);
239
+ });
240
+ }
101
241
  /**
102
242
  * Send an IPC request and await the response.
103
243
  * Returns the result directly if successful, or an error object with reason/guidance.
@@ -106,18 +246,48 @@ export class IpcProxy {
106
246
  if (!method || typeof method !== "string") {
107
247
  return { ok: false, reason: "invalid_method", guidance: "IPC method name must be a non-empty string." };
108
248
  }
109
- if (this.#dead) {
249
+ if (this.#closedByUs)
110
250
  return IPC_CONNECTION_LOST;
251
+ if (!this.#connected) {
252
+ const ok = await this.#waitForConnection();
253
+ if (!ok)
254
+ return IPC_RECONNECTING;
255
+ }
256
+ const result = await this.#rawCall(method, params);
257
+ // Remember the selected agent so a reconnect can restore routing. Both `ok:true` and
258
+ // `agent_already_current` mean the daemon considers this agent current for the connection.
259
+ if (method === "cello_use_agent" && params && typeof params["name"] === "string") {
260
+ const r = result;
261
+ if (r && (r.ok === true || r.reason === "agent_already_current")) {
262
+ this.#currentAgent = params["name"];
263
+ }
111
264
  }
265
+ return result;
266
+ }
267
+ /**
268
+ * Write a frame on the current socket without the connected-gate (used by the handshake replay).
269
+ *
270
+ * `timeoutMs` is OPTIONAL and only the handshake supplies it. Ordinary calls must NEVER be
271
+ * capped client-side: `cello_receive` legitimately blocks server-side for `timeout_ms` (30s by
272
+ * default, and callers may pass more). A blanket timeout here would silently break blocking
273
+ * receive — the doorbell's own pull path.
274
+ */
275
+ #rawCall(method, params, timeoutMs) {
112
276
  const id = String(this.#nextId++);
113
277
  return new Promise((resolve) => {
114
- this.#pending.set(id, {
115
- resolve,
116
- reject: () => {
117
- // On socket close/error, return ipc_connection_lost
118
- resolve(IPC_CONNECTION_LOST);
119
- },
120
- });
278
+ const timer = timeoutMs === undefined
279
+ ? null
280
+ : setTimeout(() => {
281
+ this.#pending.delete(id);
282
+ resolve(IPC_RECONNECTING);
283
+ }, timeoutMs);
284
+ timer?.unref?.();
285
+ const done = (v) => {
286
+ if (timer)
287
+ clearTimeout(timer);
288
+ resolve(v);
289
+ };
290
+ this.#pending.set(id, { resolve: done, reject: () => done(IPC_RECONNECTING) });
121
291
  const frame = JSON.stringify({ id, method, params }) + "\n";
122
292
  try {
123
293
  this.#socket.write(frame);
@@ -125,21 +295,27 @@ export class IpcProxy {
125
295
  catch (err) {
126
296
  const msg = err instanceof Error ? err.message : String(err);
127
297
  process.stderr.write(`cello-mcp: IPC write failed: ${msg}\n`);
128
- this.#dead = true;
129
298
  this.#pending.delete(id);
130
- resolve(IPC_CONNECTION_LOST);
299
+ done(IPC_RECONNECTING);
131
300
  }
132
301
  });
133
302
  }
134
303
  close() {
304
+ this.#closedByUs = true;
305
+ this.#connected = false;
306
+ if (this.#reconnectTimer) {
307
+ clearTimeout(this.#reconnectTimer);
308
+ this.#reconnectTimer = null;
309
+ }
310
+ this.#releaseWaiters();
135
311
  if (this.#socket) {
136
312
  this.#socket.end();
137
313
  this.#socket = null;
138
314
  }
139
- this.#dead = true;
140
315
  }
316
+ /** True only after an explicit close(). A dropped daemon is recoverable, not dead. */
141
317
  get isDead() {
142
- return this.#dead;
318
+ return this.#closedByUs;
143
319
  }
144
320
  #processBuffer() {
145
321
  let newlineIdx;
@@ -1 +1 @@
1
- {"version":3,"file":"ipc-proxy.js","sourceRoot":"","sources":["../src/ipc-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ipc-proxy.js","sourceRoot":"","sources":["../src/ipc-proxy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cello-protocol/connect",
3
- "version": "0.0.61",
3
+ "version": "0.0.63",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {
@@ -30,9 +30,9 @@
30
30
  "@libp2p/peer-id": "^6.0.8",
31
31
  "@modelcontextprotocol/sdk": "^1.29.0",
32
32
  "zod": "^4.4.2",
33
- "@cello-protocol/client": "0.0.46",
34
33
  "@cello-protocol/crypto": "0.0.18",
35
- "@cello-protocol/transport": "0.0.16"
34
+ "@cello-protocol/transport": "0.0.17",
35
+ "@cello-protocol/client": "0.0.47"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@claude-flow/testing": "3.0.0-alpha.6",