cosmoremote 2.0.14 → 2.0.17

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/bridge.js CHANGED
@@ -13,18 +13,11 @@ const fs_1 = require("fs");
13
13
  const path_1 = require("path");
14
14
  const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
15
15
  const detect_1 = require("./detect");
16
- const cli_conversations_1 = require("./cli-conversations");
17
- const project_folders_1 = require("./project-folders");
18
16
  const session_1 = require("./session");
19
17
  const sessions = new Map();
20
18
  // Tracks sessionIds currently being created to prevent race condition
21
19
  // where two simultaneous prompts spawn two CLISessions for the same id
22
20
  const sessionsCreating = new Set();
23
- // LAN WebSocket subscribers per session: events from a long-lived session must
24
- // fan out to whichever clients are currently connected (the original prompter
25
- // may be gone; a reconnected app may now be listening). Cloud delivery still
26
- // goes through relaySend in addition to LAN broadcasting.
27
- const sessionSubscribers = new Map();
28
21
  // Persists CLI conversation IDs across CLISession lifecycle so --resume works between messages.
29
22
  // Entries expire after 24h of inactivity to prevent unbounded growth.
30
23
  const sessionContexts = new Map();
@@ -36,27 +29,6 @@ let clis;
36
29
  let promptTicketPublicKey = null;
37
30
  let promptTicketPublicKeySource = null;
38
31
  let workspaceRoot = process.cwd();
39
- let installedSkills = [];
40
- let importableConversations = [];
41
- let projectFolders = [];
42
- function refreshImportableConversations() {
43
- try {
44
- importableConversations = (0, cli_conversations_1.listImportableConversations)(workspaceRoot);
45
- console.log(` [conversations] indexed ${importableConversations.length} importable transcripts under ${workspaceRoot}`);
46
- }
47
- catch (err) {
48
- console.error(` [conversations] scan failed:`, err);
49
- }
50
- }
51
- function refreshProjectFolders() {
52
- try {
53
- projectFolders = (0, project_folders_1.listProjectFolders)(workspaceRoot);
54
- console.log(` [folders] indexed ${projectFolders.length} project folders under ${workspaceRoot}`);
55
- }
56
- catch (err) {
57
- console.error(` [folders] scan failed:`, err);
58
- }
59
- }
60
32
  const CONFIG_DIR = (0, path_1.join)((0, os_1.homedir)(), ".cosmoremote");
61
33
  const CONFIG_FILE = (0, path_1.join)(CONFIG_DIR, "config.json");
62
34
  const SESSION_CONTEXTS_FILE = (0, path_1.join)(CONFIG_DIR, "session-contexts.json");
@@ -328,9 +300,6 @@ function verifyPromptTicket(token, msg) {
328
300
  attachments: Array.isArray(msg.attachments) ? msg.attachments : [],
329
301
  cli: msg.cli,
330
302
  workingDir: msg.workingDir,
331
- model: msg.model ?? null,
332
- additionalDirs: Array.isArray(msg.additionalDirs) ? msg.additionalDirs : (msg.additionalDirs ?? null),
333
- permissionMode: msg.permissionMode ?? null,
334
303
  }));
335
304
  if (payload.contentHash !== expectedHash) {
336
305
  throw new Error("Prompt ticket content mismatch");
@@ -378,16 +347,6 @@ async function checkForUpdates() {
378
347
  async function startBridge(opts) {
379
348
  workspaceRoot = (0, path_1.resolve)(opts.workdir ?? inferWorkspaceRoot());
380
349
  clis = (0, detect_1.detectCLIs)();
381
- installedSkills = (0, detect_1.discoverSkills)();
382
- console.log(` [skills] discovered ${installedSkills.length} skill(s) under ~/.claude/skills`);
383
- refreshImportableConversations();
384
- refreshProjectFolders();
385
- // Re-scan disk every 60s so the iOS picker stays roughly fresh as users open
386
- // new terminal sessions during the bridge's lifetime.
387
- setInterval(() => {
388
- refreshImportableConversations();
389
- refreshProjectFolders();
390
- }, 60_000);
391
350
  loadSessionContexts();
392
351
  // Check for updates in background (non-blocking)
393
352
  void checkForUpdates();
@@ -483,14 +442,12 @@ async function startBridge(opts) {
483
442
  validatedTokens.add(connToken);
484
443
  saveBridgeConfig();
485
444
  ws.send(JSON.stringify({ type: "paired", sessionToken: connToken }));
486
- ws.send(JSON.stringify({ type: "capabilities", skills: installedSkills, conversations: importableConversations, folders: projectFolders, workspaceRoot }));
487
445
  console.log(` ✓ Device connected (via ${token === pairingCode ? "code" : "QR"})`);
488
446
  console.log(" ✓ Pairing complete");
489
447
  }
490
448
  else if (token && validatedTokens.has(token)) {
491
449
  connToken = token;
492
450
  ws.send(JSON.stringify({ type: "connected" }));
493
- ws.send(JSON.stringify({ type: "capabilities", skills: installedSkills, conversations: importableConversations, folders: projectFolders, workspaceRoot }));
494
451
  console.log(" ✓ Device reconnected");
495
452
  }
496
453
  else {
@@ -524,24 +481,6 @@ function handleConnection(ws, sessionToken) {
524
481
  ws.send(JSON.stringify({ type: "pong" }));
525
482
  return;
526
483
  }
527
- // Pre-warm: iOS opens a session view → bridge spawns the persistent
528
- // Claude process so MCPs are warm by the time the user types.
529
- // No-op if no session exists yet (will be created on first prompt) or
530
- // if process is already running.
531
- if (msg.type === "prewarm") {
532
- const sessionId = String(msg.sessionId || "");
533
- if (!sessionId)
534
- return;
535
- const session = sessions.get(sessionId);
536
- if (session) {
537
- // Ensure this client is subscribed so it sees subsequent events
538
- if (!sessionSubscribers.has(sessionId))
539
- sessionSubscribers.set(sessionId, new Set());
540
- sessionSubscribers.get(sessionId).add(ws);
541
- session.prewarm();
542
- }
543
- return;
544
- }
545
484
  if (msg.type === "prompt") {
546
485
  console.log(` [bridge] incoming prompt session=${String(msg.sessionId || "-").substring(0, 8)} cli=${msg.cli || "unknown"} wd=${msg.workingDir || "n/a"}`);
547
486
  if (!msg.promptTicket) {
@@ -579,20 +518,9 @@ function handleConnection(ws, sessionToken) {
579
518
  }
580
519
  sessions.delete(msg.sessionId);
581
520
  sessionsCreating.delete(msg.sessionId);
582
- sessionSubscribers.delete(msg.sessionId);
583
521
  session.kill();
522
+ ws.send(JSON.stringify({ type: "done", sessionId: msg.sessionId, content: "[killed]" }));
584
523
  }
585
- // Always emit a done so the UI never stays on "Stopping…" — covers the
586
- // post-restart case where `sessions` doesn't know the id, and the
587
- // already-idle case where session.kill() is a no-op.
588
- const donePayload = {
589
- type: "done",
590
- sessionId: msg.sessionId,
591
- content: session ? "[killed]" : "[killed: bridge had no live process]",
592
- };
593
- ws.send(JSON.stringify(donePayload));
594
- broadcastToSubscribers(msg.sessionId, donePayload);
595
- relaySend(donePayload);
596
524
  }
597
525
  }
598
526
  catch {
@@ -600,85 +528,20 @@ function handleConnection(ws, sessionToken) {
600
528
  }
601
529
  });
602
530
  ws.on("close", () => {
603
- console.log(` Client disconnected (had ${connectionSessionIds.size} subscriptions). Sessions stay alive for next reconnect.`);
604
- // Persistent processes survive client disconnects only remove this ws
605
- // from each session's subscriber set. Idle sessions are reaped by the
606
- // CLISession idle timer; explicit kill comes via the "kill" message.
531
+ console.log(` Client disconnected (had ${connectionSessionIds.size} active sessions)`);
532
+ // Kill and clean up any sessions that were running for this connection
607
533
  for (const sessionId of connectionSessionIds) {
608
- const subs = sessionSubscribers.get(sessionId);
609
- if (subs) {
610
- subs.delete(ws);
611
- if (subs.size === 0)
612
- sessionSubscribers.delete(sessionId);
534
+ const session = sessions.get(sessionId);
535
+ if (session) {
536
+ console.log(` [bridge] killing orphaned session=${sessionId.substring(0, 8)} on client disconnect`);
537
+ session.kill();
538
+ sessions.delete(sessionId);
539
+ sessionsCreating.delete(sessionId);
613
540
  }
614
541
  }
615
542
  connectionSessionIds.clear();
616
543
  });
617
544
  }
618
- function broadcastToSubscribers(sessionId, payload) {
619
- const subs = sessionSubscribers.get(sessionId);
620
- if (!subs || subs.size === 0)
621
- return;
622
- const data = JSON.stringify(payload);
623
- for (const ws of subs) {
624
- if (ws.readyState === ws_1.WebSocket.OPEN) {
625
- ws.send(data);
626
- }
627
- }
628
- }
629
- function attachSessionListeners(session) {
630
- const sessionId = session.sessionId;
631
- session.on("output", (text) => {
632
- const payload = { type: "output", sessionId, content: text };
633
- broadcastToSubscribers(sessionId, payload);
634
- relaySend(payload);
635
- });
636
- session.on("status", (text) => {
637
- console.log(` [bridge] session=${sessionId.substring(0, 8)} status: ${text}`);
638
- const payload = { type: "status", sessionId, content: text };
639
- broadcastToSubscribers(sessionId, payload);
640
- relaySend(payload);
641
- });
642
- session.on("error", (text) => {
643
- console.log(` [bridge] session=${sessionId.substring(0, 8)} error: ${text.substring(0, 120)}`);
644
- const payload = { type: "error", sessionId, content: text };
645
- broadcastToSubscribers(sessionId, payload);
646
- relaySend(payload);
647
- });
648
- session.on("providerError", (event) => {
649
- console.log(` [bridge] session=${sessionId.substring(0, 8)} providerError ${event.severity}/${event.provider}: ${event.message.substring(0, 80)}`);
650
- const payload = {
651
- type: "providerError",
652
- sessionId,
653
- code: event.code,
654
- severity: event.severity,
655
- provider: event.provider,
656
- content: event.message,
657
- };
658
- broadcastToSubscribers(sessionId, payload);
659
- relaySend(payload);
660
- });
661
- session.on("tool", (event) => {
662
- const payload = { type: "tool", sessionId, kind: event.kind, name: event.name, input: event.input };
663
- broadcastToSubscribers(sessionId, payload);
664
- relaySend(payload);
665
- });
666
- session.on("done", (result) => {
667
- console.log(` [bridge] session=${sessionId.substring(0, 8)} done code=${result.code} outputLen=${result.fullOutput.length}`);
668
- if (session.claudeSessionId) {
669
- setClaudeContext(sessionId, session.claudeSessionId);
670
- }
671
- if (session.codexThreadId) {
672
- setCodexContext(sessionId, session.codexThreadId);
673
- }
674
- const payload = { type: "done", sessionId, content: result.fullOutput };
675
- broadcastToSubscribers(sessionId, payload);
676
- relaySend(payload);
677
- // The CLISession stays in `sessions` so the next prompt reuses the
678
- // already-spawned (or already-resumable) process. CLISession owns its own
679
- // idle timer and will close itself if no prompts arrive.
680
- });
681
- }
682
545
  function handlePrompt(ws, msg) {
683
546
  const cliType = msg.cli?.toUpperCase() === "CODEX" ? "codex" : "claude";
684
547
  const binary = cliType === "codex" ? clis.codex : clis.claude;
@@ -687,12 +550,6 @@ function handlePrompt(ws, msg) {
687
550
  ws.send(JSON.stringify({ type: "error", sessionId: msg.sessionId, content: `${cliType} CLI not found on this machine` }));
688
551
  return;
689
552
  }
690
- // Subscribe this LAN client to events for this session — the persistent
691
- // process may have been started by a previous client.
692
- if (!sessionSubscribers.has(msg.sessionId)) {
693
- sessionSubscribers.set(msg.sessionId, new Set());
694
- }
695
- sessionSubscribers.get(msg.sessionId).add(ws);
696
553
  // Race condition guard: if another prompt is currently creating this session, skip
697
554
  if (sessionsCreating.has(msg.sessionId)) {
698
555
  console.log(` [bridge] session=${msg.sessionId.substring(0, 8)} already being created, skipping duplicate`);
@@ -701,29 +558,45 @@ function handlePrompt(ws, msg) {
701
558
  let session = sessions.get(msg.sessionId);
702
559
  if (!session) {
703
560
  sessionsCreating.add(msg.sessionId);
704
- // If the backend supplied imported CLI session ids (from /sessions/import),
705
- // seed sessionContexts so the spawn uses --resume <existing-id>.
706
- if (typeof msg.importedClaudeSessionId === "string" && msg.importedClaudeSessionId) {
707
- setClaudeContext(msg.sessionId, msg.importedClaudeSessionId);
708
- }
709
- if (typeof msg.importedCodexThreadId === "string" && msg.importedCodexThreadId) {
710
- setCodexContext(msg.sessionId, msg.importedCodexThreadId);
711
- }
712
561
  session = new session_1.CLISession({
713
562
  sessionId: msg.sessionId,
714
563
  cliBinary: binary,
715
564
  workingDir: msg.workingDir || workspaceRoot,
716
565
  initialClaudeSessionId: getClaudeContext(msg.sessionId),
717
566
  initialCodexThreadId: getCodexContext(msg.sessionId),
718
- model: msg.model,
719
- additionalDirs: Array.isArray(msg.additionalDirs) ? msg.additionalDirs : [],
720
- permissionMode: msg.permissionMode,
721
- claudeSettings: msg.claudeSettings ?? null,
722
567
  });
723
568
  sessions.set(msg.sessionId, session);
724
569
  sessionsCreating.delete(msg.sessionId);
725
570
  console.log(` [bridge] session=${msg.sessionId.substring(0, 8)} created mapSize=${sessions.size} resuming=${Boolean(getClaudeContext(msg.sessionId) || getCodexContext(msg.sessionId))}`);
726
- attachSessionListeners(session);
571
+ session.on("output", (text) => {
572
+ ws.send(JSON.stringify({ type: "output", sessionId: msg.sessionId, content: text }));
573
+ relaySend({ type: "output", sessionId: msg.sessionId, content: text });
574
+ });
575
+ session.on("status", (text) => {
576
+ console.log(` [bridge] session=${msg.sessionId.substring(0, 8)} status: ${text}`);
577
+ ws.send(JSON.stringify({ type: "status", sessionId: msg.sessionId, content: text }));
578
+ relaySend({ type: "status", sessionId: msg.sessionId, content: text });
579
+ });
580
+ session.on("error", (text) => {
581
+ console.log(` [bridge] session=${msg.sessionId.substring(0, 8)} error: ${text.substring(0, 120)}`);
582
+ ws.send(JSON.stringify({ type: "error", sessionId: msg.sessionId, content: text }));
583
+ relaySend({ type: "error", sessionId: msg.sessionId, content: text });
584
+ });
585
+ session.on("done", (result) => {
586
+ console.log(` [bridge] session=${msg.sessionId.substring(0, 8)} done code=${result.code} outputLen=${result.fullOutput.length}`);
587
+ const s = sessions.get(msg.sessionId);
588
+ if (s?.claudeSessionId) {
589
+ setClaudeContext(msg.sessionId, s.claudeSessionId);
590
+ console.log(` [bridge] session=${msg.sessionId.substring(0, 8)} saved claude context=${s.claudeSessionId}`);
591
+ }
592
+ if (s?.codexThreadId) {
593
+ setCodexContext(msg.sessionId, s.codexThreadId);
594
+ console.log(` [bridge] session=${msg.sessionId.substring(0, 8)} saved codex thread=${s.codexThreadId}`);
595
+ }
596
+ ws.send(JSON.stringify({ type: "done", sessionId: msg.sessionId, content: result.fullOutput }));
597
+ relaySend({ type: "done", sessionId: msg.sessionId, content: result.fullOutput });
598
+ sessions.delete(msg.sessionId);
599
+ });
727
600
  }
728
601
  session.sendPrompt(msg.content, Array.isArray(msg.attachments) ? msg.attachments : []);
729
602
  }
@@ -749,27 +622,6 @@ function connectToBackendRelay(backendUrl) {
749
622
  setRelayWs(ws);
750
623
  backendRelayConnecting = false;
751
624
  relayRetryDelay = 5_000;
752
- // Announce installed skills to backend so the iOS app can offer
753
- // /skill-name autocomplete in the composer.
754
- try {
755
- ws.send(JSON.stringify({ type: "capabilities", skills: installedSkills, conversations: importableConversations, folders: projectFolders, workspaceRoot }));
756
- console.log(` [relay] announced ${installedSkills.length} skills`);
757
- }
758
- catch (err) {
759
- console.error(` [relay] failed to announce capabilities:`, err);
760
- }
761
- // Announce that this is a fresh bridge connection so the backend can
762
- // resolve any sessions it still believes are RUNNING. After a bridge
763
- // restart, in-flight CLI processes are gone — without this signal the
764
- // app keeps showing a streaming spinner indefinitely.
765
- try {
766
- const knownSessionIds = Array.from(sessions.keys());
767
- ws.send(JSON.stringify({ type: "bridgeReady", knownSessionIds }));
768
- console.log(` [relay] announced bridgeReady; known live sessions=${knownSessionIds.length}`);
769
- }
770
- catch (err) {
771
- console.error(` [relay] failed to announce bridgeReady:`, err);
772
- }
773
625
  if (pendingRelayMessages.length > 0) {
774
626
  console.log(` ↺ Flushing ${pendingRelayMessages.length} queued relay messages`);
775
627
  const toFlush = pendingRelayMessages.splice(0);
@@ -795,14 +647,6 @@ function connectToBackendRelay(backendUrl) {
795
647
  console.log(` [relay] ← prompt from backend session=${String(msg.sessionId || "-").substring(0, 8)} cli=${msg.cli || "unknown"}`);
796
648
  handlePromptFromRelay(ws, msg);
797
649
  }
798
- if (msg.type === "prewarm") {
799
- const sessionId = String(msg.sessionId || "");
800
- const session = sessionId ? sessions.get(sessionId) : undefined;
801
- if (session) {
802
- console.log(` [relay] ← prewarm session=${sessionId.substring(0, 8)}`);
803
- session.prewarm();
804
- }
805
- }
806
650
  if (msg.type === "kill") {
807
651
  console.log(` [relay] ← kill from backend session=${String(msg.sessionId || "-").substring(0, 8)}`);
808
652
  const session = sessions.get(msg.sessionId);
@@ -816,18 +660,8 @@ function connectToBackendRelay(backendUrl) {
816
660
  }
817
661
  sessions.delete(msg.sessionId);
818
662
  sessionsCreating.delete(msg.sessionId);
819
- sessionSubscribers.delete(msg.sessionId);
820
663
  session.kill();
821
664
  }
822
- // Always emit done so the UI un-sticks "Stopping…" even when the
823
- // bridge has no live session for this id (e.g. after a restart).
824
- const donePayload = {
825
- type: "done",
826
- sessionId: msg.sessionId,
827
- content: session ? "[killed]" : "[killed: bridge had no live process]",
828
- };
829
- broadcastToSubscribers(msg.sessionId, donePayload);
830
- relaySend(donePayload);
831
665
  }
832
666
  }
833
667
  catch {
@@ -885,28 +719,38 @@ function handlePromptFromRelay(_relayWs, msg) {
885
719
  let session = sessions.get(msg.sessionId);
886
720
  if (!session) {
887
721
  sessionsCreating.add(msg.sessionId);
888
- // If the backend supplied imported CLI session ids (from /sessions/import),
889
- // seed sessionContexts so the spawn uses --resume <existing-id>.
890
- if (typeof msg.importedClaudeSessionId === "string" && msg.importedClaudeSessionId) {
891
- setClaudeContext(msg.sessionId, msg.importedClaudeSessionId);
892
- }
893
- if (typeof msg.importedCodexThreadId === "string" && msg.importedCodexThreadId) {
894
- setCodexContext(msg.sessionId, msg.importedCodexThreadId);
895
- }
896
722
  session = new session_1.CLISession({
897
723
  sessionId: msg.sessionId,
898
724
  cliBinary: binary,
899
725
  workingDir: msg.workingDir || workspaceRoot,
900
726
  initialClaudeSessionId: getClaudeContext(msg.sessionId),
901
727
  initialCodexThreadId: getCodexContext(msg.sessionId),
902
- model: msg.model,
903
- additionalDirs: Array.isArray(msg.additionalDirs) ? msg.additionalDirs : [],
904
- permissionMode: msg.permissionMode,
905
- claudeSettings: msg.claudeSettings ?? null,
906
728
  });
907
729
  sessions.set(msg.sessionId, session);
908
730
  sessionsCreating.delete(msg.sessionId);
909
- attachSessionListeners(session);
731
+ session.on("output", (text) => {
732
+ relaySend({ type: "output", sessionId: msg.sessionId, content: text });
733
+ });
734
+ session.on("status", (text) => {
735
+ console.log(` [relay] session=${msg.sessionId.substring(0, 8)} status: ${text}`);
736
+ relaySend({ type: "status", sessionId: msg.sessionId, content: text });
737
+ });
738
+ session.on("error", (text) => {
739
+ console.log(` ✗ Session error: ${text.substring(0, 100)}`);
740
+ relaySend({ type: "error", sessionId: msg.sessionId, content: text });
741
+ });
742
+ session.on("done", (result) => {
743
+ console.log(` ✓ Session done (exit ${result.code}), output length: ${result.fullOutput.length}`);
744
+ const s = sessions.get(msg.sessionId);
745
+ if (s?.claudeSessionId) {
746
+ setClaudeContext(msg.sessionId, s.claudeSessionId);
747
+ }
748
+ if (s?.codexThreadId) {
749
+ setCodexContext(msg.sessionId, s.codexThreadId);
750
+ }
751
+ relaySend({ type: "done", sessionId: msg.sessionId, content: result.fullOutput });
752
+ sessions.delete(msg.sessionId);
753
+ });
910
754
  }
911
755
  session.sendPrompt(msg.content, Array.isArray(msg.attachments) ? msg.attachments : []);
912
756
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}