@cello-protocol/cli 0.0.50 → 0.0.52

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/commands.js CHANGED
@@ -1,38 +1,41 @@
1
1
  /**
2
2
  * CLI command implementations for the `cello` binary.
3
- *
4
- * Pseudocode:
5
- * 1. login(celloDir, daemonBin):
6
- * - Call connectOrStart(celloDir) to either connect to existing or spawn new daemon
7
- * - Print status (already running / started)
8
- * - Close IPC connection and exit 0
9
- *
10
- * 2. logout(celloDir):
11
- * - Read lock file to find socket path
12
- * - Connect to daemon
13
- * - Send 'shutdown' method
14
- * - Wait for acknowledgement
15
- * - Exit 0
16
- *
17
- * 3. status(celloDir):
18
- * - Read lock file to find socket path
19
- * - Connect to daemon
20
- * - Send 'status' method
21
- * - Print response as structured JSON
22
- * - Exit 0
23
3
  */
24
4
  import { join } from "node:path";
25
5
  import { connectOrStart, connectToDaemon, readLock, removeLock,
26
- // isProcessAlive is deliberately NOT imported any more. The CLI used to ask "is that pid alive?" to
27
- // decide whether a daemon existed; a pid can be dead, or reused by an unrelated process, and the
28
- // answer was wrong in both directions. The kernel's lock is the only thing that knows.
6
+ // isProcessAlive is deliberately NOT imported. "Is that pid alive?" is the wrong question in both
7
+ // directions — a pid can be dead, or reused by an unrelated process. The kernel's lock is the only
8
+ // thing that knows whether a daemon exists.
29
9
  probeSingletonLock, SINGLETON_LOCK_FILENAME, } from "@cello-protocol/daemon";
10
+ /**
11
+ * Open an IPC connection, run `fn`, and ALWAYS close it.
12
+ *
13
+ * The close belongs in a `finally`, never after the send. The daemon enforces IPC_CONNECTION_LIMIT,
14
+ * so a connection is a BOUNDED resource: a `client.close()` written after `client.send()` inside a
15
+ * try is SKIPPED on any throw, and each failed command leaks a socket the daemon never reclaims.
16
+ * Leak enough and it refuses new connections — a failure whose symptom looks nothing like its cause.
17
+ *
18
+ * Every single-call command goes through this. The three that cannot are `login` (the connection is
19
+ * created by connectOrStart and handed to us), `logout` (it must outlive the send to poll for death),
20
+ * and `daemonGone` (it races the connect against a timeout). Each closes in a `finally` or reaps the
21
+ * abandoned promise explicitly — see them. Any NEW command that reaches for connectToDaemon directly
22
+ * is reintroducing the leak.
23
+ */
24
+ async function withIpc(socketPath, fn) {
25
+ const client = await connectToDaemon(socketPath);
26
+ try {
27
+ return await fn(client);
28
+ }
29
+ finally {
30
+ client.close();
31
+ }
32
+ }
30
33
  /**
31
34
  * M8C-LOGINSTART-1 CORE: bring every loaded agent online. Called by `cello login` after the daemon
32
- * is up. login ALWAYS completes — a per-agent start failure is COLLECTED, never thrown (design-review
33
- * #8), so one bad agent can't abort login. `cello_start_agent` is idempotent, so re-login is safe.
34
- * The per-agent `autoStart: false` opt-out is PARKED until the M9 config store lands (D14).
35
- * Extracted (not inline in login) so it is unit-testable against an in-process daemon.
35
+ * is up. login ALWAYS completes — a per-agent start failure is COLLECTED, never thrown, so one bad
36
+ * agent can't abort login. `cello_start_agent` is idempotent, so re-login is safe. The per-agent
37
+ * `autoStart: false` opt-out is PARKED until the M9 config store lands (D14).
38
+ * Lives here rather than inline in login() so it is unit-testable against an in-process daemon.
36
39
  */
37
40
  export async function autoStartAllAgents(client) {
38
41
  const started = [];
@@ -78,7 +81,7 @@ export async function login(celloDir, daemonBin, logger) {
78
81
  }
79
82
  /**
80
83
  * M8C-LOGINSTART-1: compose the operator-facing auto-start summary — every failed agent enumerated
81
- * by name + reason (design-review #8). Pure + exported so the enumeration string is directly testable.
84
+ * by name + reason. Pure + exported so the enumeration string is directly testable.
82
85
  */
83
86
  export function formatLoginSummary(result) {
84
87
  const parts = [];
@@ -106,21 +109,33 @@ const LOGOUT_WAIT_POLL_MS = 50;
106
109
  * 2. no process holds the singleton lock.
107
110
  *
108
111
  * (1) alone is not enough: a daemon wedged mid-shutdown may have closed its IPC server while still
109
- * holding the DB. (2) alone is not enough either, because a daemon from BEFORE this change holds no
110
- * singleton lock at all — during the upgrade window "free" says nothing about whether it is alive, and
111
- * only the socket can tell us. Together they are exactly the conditions under which the next daemon
112
- * can safely start.
112
+ * holding the DB. (2) alone is not enough either, because a pre-singleton-lock daemon holds no
113
+ * singleton lock at all — for those, "free" says nothing about whether it is alive, and only the
114
+ * socket can tell us. Together they are exactly the conditions under which the next daemon can
115
+ * safely start.
113
116
  *
114
- * The old version keyed off `isProcessAlive(lock.pid)` and the lock FILE. Both are unreliable in ways
115
- * this story documents at length: a pid can be reused, and a lock file can be deleted by anyone.
117
+ * Neither `isProcessAlive(lock.pid)` nor the lock FILE may be substituted for these two facts: a pid
118
+ * can be reused, and a lock file can be deleted by anyone.
116
119
  */
117
120
  async function daemonGone(celloDir, socketPath, logger) {
121
+ // connectToDaemon has no connect timeout of its own — bound the probe so a pathological hang
122
+ // cannot stall the poll loop past its deadline. On the expected path the socket is already gone,
123
+ // so this fails fast (ENOENT/ECONNREFUSED).
124
+ //
125
+ // The race LOSER must still be closed. If the timeout wins, the connect promise is abandoned — but
126
+ // it can still resolve afterwards into a live IpcClient that nobody holds and nobody closes. This
127
+ // runs in a POLL LOOP inside one process, against the daemon's bounded IPC_CONNECTION_LIMIT, so
128
+ // those accumulate. Of every connect in this file it is the only one that can genuinely exhaust the
129
+ // pool — everywhere else the process exits and the OS reclaims the fd. So: keep the promise, and
130
+ // close whatever it eventually yields.
131
+ const connecting = connectToDaemon(socketPath);
132
+ connecting.then((late) => { try {
133
+ late.close();
134
+ }
135
+ catch { /* already closed by the winner below */ } }, () => { });
118
136
  try {
119
- // Review F4: connectToDaemon has no connect timeout of its own — bound the probe so a
120
- // pathological hang cannot stall the poll loop past its deadline. On the expected path the
121
- // socket is already gone, so this fails fast (ENOENT/ECONNREFUSED).
122
137
  const probe = await Promise.race([
123
- connectToDaemon(socketPath),
138
+ connecting,
124
139
  new Promise((_, reject) => setTimeout(() => reject(new Error("probe_timeout")), 500)),
125
140
  ]);
126
141
  probe.close();
@@ -133,29 +148,28 @@ async function daemonGone(celloDir, socketPath, logger) {
133
148
  }
134
149
  }
135
150
  export async function logout(celloDir, onProgress,
136
- // Review F1: injectable bounds so the timeout path is testable without a 5 s wait. Production
137
- // (the bin) passes nothing and gets the named defaults.
151
+ // Injectable bounds so the timeout path is testable without a 5 s wait. Production (the bin)
152
+ // passes nothing and gets the named defaults.
138
153
  waitOpts) {
139
154
  const lockFilePath = join(celloDir, "daemon.lock");
140
155
  const noopLogger = { debug() { }, info() { }, warn() { }, error() { } };
141
156
  const timeoutMs = waitOpts?.timeoutMs ?? LOGOUT_WAIT_TIMEOUT_MS;
142
157
  const pollMs = waitOpts?.pollMs ?? LOGOUT_WAIT_POLL_MS;
143
- // The socket path is DETERMINISTIC. `daemon.lock`'s copy of it is metadata, and metadata is exactly
144
- // what this unit learned not to trust.
158
+ // The socket path is DETERMINISTIC. `daemon.lock`'s copy of it is metadata, and metadata is not
159
+ // to be trusted here.
145
160
  const socketPath = join(celloDir, "daemon.sock");
146
161
  const lock = await readLock(lockFilePath);
147
162
  // DOD-SINGLE-DAEMON-1 (AC4) — the lock file does not get to decide whether a daemon exists.
148
163
  //
149
- // This used to open with `if (!lock) return "No daemon running."`. That is a KILL SWITCH REPORTING
150
- // SUCCESS WITHOUT DOING ANYTHING, and the state that triggers it is the one DOD-DAEMON-CLEANUP-1 is
151
- // named after: an exiting orphan unlinks a HEALTHY daemon's lock. The operator then runs `cello
152
- // logout` to stop their agent, is told it was never running, and walks away — while the daemon is
153
- // still online, still on the directory, still extending the hash chain. `rm ~/.cello/daemon.lock`
154
- // did the same thing. A kill switch may not lie.
164
+ // Never short-circuit on `if (!lock) return "No daemon running."`. That is a KILL SWITCH REPORTING
165
+ // SUCCESS WITHOUT DOING ANYTHING, and the state that triggers it is real: an exiting orphan unlinks
166
+ // a HEALTHY daemon's lock (so does `rm ~/.cello/daemon.lock`). The operator then runs `cello logout`
167
+ // to stop their agent, is told it was never running, and walks away — while the daemon is still
168
+ // online, still on the directory, still extending the hash chain. A kill switch may not lie.
155
169
  //
156
170
  // So we ask the daemon itself. If something ANSWERS on the socket, a daemon is running — that is
157
- // the strongest evidence available, it needs no file, and it holds for a daemon from BEFORE this
158
- // change (which holds no singleton lock at all — every operator has one running at upgrade time).
171
+ // the strongest evidence available, it needs no file, and it holds even for a pre-singleton-lock
172
+ // daemon, which holds no singleton lock at all.
159
173
  let client;
160
174
  try {
161
175
  client = await connectToDaemon(socketPath);
@@ -189,9 +203,9 @@ waitOpts) {
189
203
  if (!lock) {
190
204
  return { exitCode: 0, output: "No daemon running." };
191
205
  }
192
- // DOD-LOGOUT-WAIT-1 (Review F3): only CLAIM the removal when it actually happened — removeLock
193
- // swallows non-ENOENT errors into a (here discarded) warn, and printing "Removed" for a lock
194
- // still on disk would be this unit's own lie in miniature.
206
+ // DOD-LOGOUT-WAIT-1: only CLAIM the removal when it actually happened — removeLock swallows
207
+ // non-ENOENT errors into a (here discarded) warn, and printing "Removed" for a lock still on
208
+ // disk would be this unit's own lie in miniature.
195
209
  const removed = await removeLock(lockFilePath, noopLogger)
196
210
  .then(async () => (await readLock(lockFilePath)) === null)
197
211
  .catch(() => false);
@@ -204,20 +218,23 @@ waitOpts) {
204
218
  }
205
219
  try {
206
220
  await client.send("shutdown");
207
- client.close();
208
221
  }
209
222
  catch (err) {
210
223
  const message = err instanceof Error ? err.message : String(err);
211
224
  return { exitCode: 1, output: `Failed to stop daemon: ${message}` };
212
225
  }
226
+ finally {
227
+ // In the `finally`, not after the send: a throw from `shutdown` must not leak the connection.
228
+ client.close();
229
+ }
213
230
  // The request is in — tell the operator NOW, then report "stopped" only when it is true.
214
231
  onProgress?.("Shutting down the daemon…");
215
- // DOD-LOGOUT-WAIT-1: returning the instant the shutdown request was WRITTEN left a window
216
- // where `cello logout && cello login` found the daemon mid-death — connectOrStart saw a live
217
- // pid + connectable socket and printed "Daemon already running.", leaving the operator logged
218
- // out while being told otherwise. Wait until the daemon is genuinely gone; "Daemon stopped."
219
- // for a daemon that is still running is the same class of lie as a success log on a failed
220
- // send (DOD-SENDRAW-1).
232
+ // DOD-LOGOUT-WAIT-1: do NOT return the instant the shutdown request is WRITTEN. That leaves a
233
+ // window where `cello logout && cello login` finds the daemon mid-death — connectOrStart sees a
234
+ // live pid + connectable socket and prints "Daemon already running.", leaving the operator logged
235
+ // out while being told otherwise. Wait until the daemon is genuinely gone; "Daemon stopped." for a
236
+ // daemon that is still running is the same class of lie as a success log on a failed send
237
+ // (DOD-SENDRAW-1).
221
238
  const deadline = Date.now() + timeoutMs;
222
239
  while (Date.now() < deadline) {
223
240
  if (await daemonGone(celloDir, socketPath, noopLogger)) {
@@ -261,8 +278,8 @@ export async function register(celloDir, agent, preAuthToken, phoneStub = "") {
261
278
  // Checking just the "CELLO-" prefix catches the common typo (pasting the literal words
262
279
  // "CELLO_PREAUTH_TOKEN") without hard-coding the exact length/alphabet — the directory stays the
263
280
  // authority on the full format, so a future format bump can't strand a valid token behind a
264
- // client-side "malformed" (reviewer F2 / D13). A wrong-length CELLO- token reaches the daemon and
265
- // is rejected there with a structured reason.
281
+ // client-side "malformed". A wrong-length CELLO- token reaches the daemon and is rejected there
282
+ // with a structured reason.
266
283
  if (!preAuthToken.startsWith("CELLO-")) {
267
284
  return {
268
285
  exitCode: 1,
@@ -275,9 +292,7 @@ export async function register(celloDir, agent, preAuthToken, phoneStub = "") {
275
292
  return { exitCode: 1, output: "No daemon running. Run 'cello login' first, then retry registration." };
276
293
  }
277
294
  try {
278
- const client = await connectToDaemon(lock.socketPath);
279
- const result = (await client.send("cello_register", { agent, preAuthToken, phoneStub }));
280
- client.close();
295
+ const result = (await withIpc(lock.socketPath, (client) => client.send("cello_register", { agent, preAuthToken, phoneStub })));
281
296
  if (!result.ok) {
282
297
  return {
283
298
  exitCode: 1,
@@ -287,8 +302,8 @@ export async function register(celloDir, agent, preAuthToken, phoneStub = "") {
287
302
  return {
288
303
  exitCode: 0,
289
304
  output: JSON.stringify({ ok: true, agent_id: result.agent_id, primary_pubkey: result.primary_pubkey }, null, 2) +
290
- // M8C-ONBOARD-NEXTSTEP-1 (R7): every command output carries the next step + state legibility.
291
- // CC-6 (P2-1): broken onto multiple lines — the dense one-liner buried the three status cues.
305
+ // M8C-ONBOARD-NEXTSTEP-1: every command output carries the next step + state legibility.
306
+ // Broken onto multiple lines — a dense one-liner buries the three status cues.
292
307
  `\n\nNext: run cello status to confirm '${agent}' is registered.\n` +
293
308
  ` • it's normal for this to take a minute or two while registration settles.\n` +
294
309
  ` • ready = the agent shows state 'online' and directory_signaling 'connected'.\n` +
@@ -316,9 +331,7 @@ export async function createAgent(celloDir, name) {
316
331
  return { exitCode: 1, output: "No daemon running. Run 'cello login' first, then retry create-agent." };
317
332
  }
318
333
  try {
319
- const client = await connectToDaemon(lock.socketPath);
320
- const result = (await client.send("cello_create_agent", { name }));
321
- client.close();
334
+ const result = (await withIpc(lock.socketPath, (client) => client.send("cello_create_agent", { name })));
322
335
  if (!result.ok) {
323
336
  return { exitCode: 1, output: JSON.stringify({ ok: false, reason: result.reason, guidance: result.guidance }, null, 2) };
324
337
  }
@@ -334,7 +347,7 @@ export async function createAgent(celloDir, name) {
334
347
  }
335
348
  /**
336
349
  * refreshShares(celloDir, name): M8B DOD-REFRESH-1.
337
- * - Connect to the daemon, send 'cello_refresh_shares' with { name }.
350
+ * - Connect to the daemon, send 'cello_refresh_shares' with { agent }.
338
351
  * - The daemon runs a proactive share refresh across the consortium: every shareholder rotates its
339
352
  * share to a new epoch, the group public key is unchanged, and old-epoch shares no longer sign.
340
353
  */
@@ -348,9 +361,7 @@ export async function refreshShares(celloDir, name) {
348
361
  return { exitCode: 1, output: "No daemon running. Run 'cello login' first, then retry refresh." };
349
362
  }
350
363
  try {
351
- const client = await connectToDaemon(lock.socketPath);
352
- const result = (await client.send("cello_refresh_shares", { name }));
353
- client.close();
364
+ const result = (await withIpc(lock.socketPath, (client) => client.send("cello_refresh_shares", { agent: name })));
354
365
  if (!result.ok) {
355
366
  return { exitCode: 1, output: JSON.stringify({ ok: false, reason: result.reason, guidance: result.guidance }, null, 2) };
356
367
  }
@@ -366,7 +377,7 @@ export async function refreshShares(celloDir, name) {
366
377
  }
367
378
  /**
368
379
  * relayReceipts(celloDir, name): M8B DOD-RELAYSIG-1.
369
- * - Connect to the daemon, send 'cello_get_relay_receipts' with { name }.
380
+ * - Connect to the daemon, send 'cello_get_relay_receipts' with { agent }.
370
381
  * - Returns the agent's durably-stored, signature-verified relay ordering-record receipts.
371
382
  */
372
383
  export async function relayReceipts(celloDir, name) {
@@ -380,9 +391,7 @@ export async function relayReceipts(celloDir, name) {
380
391
  return { exitCode: 1, output: "No daemon running. Run 'cello login' first, then retry receipts." };
381
392
  }
382
393
  try {
383
- const client = await connectToDaemon(lock.socketPath);
384
- const result = (await client.send("cello_get_relay_receipts", { name }));
385
- client.close();
394
+ const result = (await withIpc(lock.socketPath, (client) => client.send("cello_get_relay_receipts", { agent: name })));
386
395
  if (!result.ok) {
387
396
  return { exitCode: 1, output: JSON.stringify({ ok: false, reason: result.reason, guidance: result.guidance }, null, 2) };
388
397
  }
@@ -409,9 +418,7 @@ export async function removeAgent(celloDir, name) {
409
418
  return { exitCode: 1, output: "No daemon running. Run 'cello login' first, then retry remove-agent." };
410
419
  }
411
420
  try {
412
- const client = await connectToDaemon(lock.socketPath);
413
- const result = (await client.send("cello_remove_agent", { name }));
414
- client.close();
421
+ const result = (await withIpc(lock.socketPath, (client) => client.send("cello_remove_agent", { name })));
415
422
  if (!result.ok) {
416
423
  return { exitCode: 1, output: JSON.stringify({ ok: false, reason: result.reason, guidance: result.guidance }, null, 2) };
417
424
  }
@@ -445,9 +452,7 @@ export async function status(celloDir) {
445
452
  };
446
453
  }
447
454
  try {
448
- const client = await connectToDaemon(lock.socketPath);
449
- const result = (await client.send("status"));
450
- client.close();
455
+ const result = (await withIpc(lock.socketPath, (client) => client.send("status")));
451
456
  return { exitCode: 0, output: JSON.stringify(result, null, 2) };
452
457
  }
453
458
  catch (err) {
@@ -472,14 +477,12 @@ export async function sessions(celloDir, opts = {}) {
472
477
  return { exitCode: 1, output: JSON.stringify({ daemon: "stopped" }, null, 2) };
473
478
  }
474
479
  try {
475
- const client = await connectToDaemon(lock.socketPath);
476
480
  const params = {};
477
481
  if (opts.filter)
478
482
  params.filter = opts.filter;
479
483
  if (opts.limit !== undefined)
480
484
  params.limit = opts.limit;
481
- const result = await client.send("list_sessions", params);
482
- client.close();
485
+ const result = (await withIpc(lock.socketPath, (client) => client.send("list_sessions", params)));
483
486
  return { exitCode: 0, output: JSON.stringify(result, null, 2) };
484
487
  }
485
488
  catch (err) {
@@ -490,86 +493,6 @@ export async function sessions(celloDir, opts = {}) {
490
493
  };
491
494
  }
492
495
  }
493
- /** M8C-CONTACT-1: `cello contact add/remove/list [--agent <name>]`. Shared connect+dispatch. */
494
- async function contactCommand(celloDir, method, params) {
495
- const lockFilePath = join(celloDir, "daemon.lock");
496
- const lock = await readLock(lockFilePath);
497
- if (!lock) {
498
- return { exitCode: 1, output: JSON.stringify({ daemon: "stopped" }, null, 2) };
499
- }
500
- try {
501
- const client = await connectToDaemon(lock.socketPath);
502
- await client.send("ipc.connect", { clientType: "cli" });
503
- const result = (await client.send(method, params));
504
- client.close();
505
- return { exitCode: result.ok ? 0 : 1, output: JSON.stringify(result, null, 2) };
506
- }
507
- catch (err) {
508
- const message = err instanceof Error ? err.message : String(err);
509
- return { exitCode: 1, output: JSON.stringify({ daemon: "unreachable", error: message }, null, 2) };
510
- }
511
- }
512
- export async function contactAdd(celloDir, pubkey, agent) {
513
- const params = { pubkey };
514
- if (agent)
515
- params.agent = agent;
516
- return contactCommand(celloDir, "cello_contact_add", params);
517
- }
518
- export async function contactRemove(celloDir, pubkey, agent) {
519
- const params = { pubkey };
520
- if (agent)
521
- params.agent = agent;
522
- return contactCommand(celloDir, "cello_contact_remove", params);
523
- }
524
- export async function contactList(celloDir, agent) {
525
- const params = {};
526
- if (agent)
527
- params.agent = agent;
528
- return contactCommand(celloDir, "cello_contact_list", params);
529
- }
530
- /** DOD-CONTACT-VIEW-1: `cello contact tier <pubkey> <tier> [--agent <name>]`. Validation (a known
531
- * 0..4 constant) lives daemon-side; the CLI surfaces the verdict verbatim. */
532
- export async function contactSetTier(celloDir, pubkey, tier, agent) {
533
- const params = { pubkey, tier };
534
- if (agent)
535
- params.agent = agent;
536
- return contactCommand(celloDir, "cello_contact_set_tier", params);
537
- }
538
- /** DOD-AWAY-TIER-1: `cello contact away <pubkey> <message> [--agent <name>]` — set a per-contact away
539
- * message (or clear it with an empty message → null). */
540
- export async function contactSetAway(celloDir, pubkey, message, agent) {
541
- const params = { pubkey, message };
542
- if (agent)
543
- params.agent = agent;
544
- return contactCommand(celloDir, "cello_contact_set_away", params);
545
- }
546
- /** DOD-SETTINGS-SURFACE-1: `cello settings get [key] [--agent <name>]` — a single key, or all set
547
- * values when no key. Validation lives daemon-side; the CLI surfaces the verdict verbatim. */
548
- export async function settingsGet(celloDir, key, agent) {
549
- const params = {};
550
- if (key !== undefined)
551
- params.key = key;
552
- if (agent)
553
- params.agent = agent;
554
- return contactCommand(celloDir, "cello_settings_get", params);
555
- }
556
- /** DOD-SETTINGS-SURFACE-1: `cello settings set <key> <value> [--agent <name>]` — the daemon validates
557
- * the key (known) and, for bound keys, a finite positive integer (rejects Infinity/negative/0). */
558
- export async function settingsSet(celloDir, key, value, agent) {
559
- const params = { key, value };
560
- if (agent)
561
- params.agent = agent;
562
- return contactCommand(celloDir, "cello_settings_set", params);
563
- }
564
- /** MONIKER-1: `cello moniker set <name>` / `cello moniker clear` — set (string) or clear (null)
565
- * the agent's outbound-name override via cello_set_moniker. Validation lives daemon-side
566
- * (shared MONIKER-0 rule); the CLI surfaces the daemon's verdict verbatim. */
567
- export async function monikerSet(celloDir, moniker, agent) {
568
- const params = { moniker };
569
- if (agent)
570
- params.agent = agent;
571
- return contactCommand(celloDir, "cello_set_moniker", params);
572
- }
573
496
  /** M8C-TGDOOR-1: `cello telegram set-token <bot_token> <allowlisted_chat_id>` — persists the
574
497
  * daemon-wide bot credentials (narrow, dedicated surface; NOT folded into the parked `cello
575
498
  * config`, since a bot token has no sensible default and can't wait for M9-CFG-001). */
@@ -580,10 +503,10 @@ export async function telegramSetToken(celloDir, botToken, chatId) {
580
503
  return { exitCode: 1, output: JSON.stringify({ daemon: "stopped" }, null, 2) };
581
504
  }
582
505
  try {
583
- const client = await connectToDaemon(lock.socketPath);
584
- await client.send("ipc.connect", { clientType: "cli" });
585
- const result = (await client.send("cello_telegram_set_token", { bot_token: botToken, allowlisted_chat_id: chatId }));
586
- client.close();
506
+ const result = (await withIpc(lock.socketPath, async (client) => {
507
+ await client.send("ipc.connect", { clientType: "cli" });
508
+ return client.send("cello_telegram_set_token", { bot_token: botToken, allowlisted_chat_id: chatId });
509
+ }));
587
510
  return { exitCode: result.ok ? 0 : 1, output: JSON.stringify(result, null, 2) };
588
511
  }
589
512
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-out.d.ts","sourceRoot":"","sources":["../src/json-out.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,GAAE,WAAgB,GACrB,aAAa,CAmBf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,aAAa,CAM1G"}
1
+ {"version":3,"file":"json-out.d.ts","sourceRoot":"","sources":["../src/json-out.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,GAAE,WAAgB,GACrB,aAAa,CAkBf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,aAAa,CAM1G"}
package/dist/json-out.js CHANGED
@@ -30,12 +30,11 @@ export function emitIpcResult(result, opts = {}) {
30
30
  // conventions and only one of them carries `ok`:
31
31
  // (a) ok-bearing — { ok: true, … } / { ok: false, reason, guidance }
32
32
  // (b) payload-only — a bare result with NO `ok` at all: cello_list_agents returns { agents: [] },
33
- // cello_await_session returns { type: "timeout" | … }. (Verified against daemon.ts, not
34
- // assumed.)
33
+ // cello_await_session returns { type: "timeout" | … }.
35
34
  // `ok: false` is the daemon's ONE failure convention; a genuine transport/daemon failure THROWS
36
35
  // and is handled by the caller as a transport error. So a payload without `ok` is a result, and
37
- // routing it to stderr (as an earlier draft of this contract did) would report working commands
38
- // as broken — `cello agents` would exit 1 on success.
36
+ // routing it to stderr would report working commands as broken — `cello agents` would exit 1 on
37
+ // success.
39
38
  //
40
39
  // This does NOT weaken the no-fabricated-success rule: we never synthesize an ok:true, never
41
40
  // rewrite a body, and never swallow an ok:false. We report exactly what the daemon said.
@@ -1 +1 @@
1
- {"version":3,"file":"json-out.js","sourceRoot":"","sources":["../src/json-out.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH,SAAS,MAAM,CAAC,KAAc,EAAE,MAA2B;IACzD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,MAA+B,EAC/B,OAAoB,EAAE;IAEtB,kGAAkG;IAClG,iDAAiD;IACjD,wEAAwE;IACxE,oGAAoG;IACpG,8FAA8F;IAC9F,kBAAkB;IAClB,gGAAgG;IAChG,gGAAgG;IAChG,gGAAgG;IAChG,sDAAsD;IACtD,EAAE;IACF,6FAA6F;IAC7F,yFAAyF;IACzF,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAoB,EAAE;IACzF,OAAO;QACL,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;QAC5D,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"json-out.js","sourceRoot":"","sources":["../src/json-out.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH,SAAS,MAAM,CAAC,KAAc,EAAE,MAA2B;IACzD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,MAA+B,EAC/B,OAAoB,EAAE;IAEtB,kGAAkG;IAClG,iDAAiD;IACjD,wEAAwE;IACxE,oGAAoG;IACpG,6DAA6D;IAC7D,gGAAgG;IAChG,gGAAgG;IAChG,gGAAgG;IAChG,WAAW;IACX,EAAE;IACF,6FAA6F;IAC7F,yFAAyF;IACzF,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAoB,EAAE;IACzF,OAAO;QACL,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;QAC5D,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC"}