relay-companion 0.1.150 → 0.1.151
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/package.json +1 -1
- package/src/claude-session-writer.js +1 -1
- package/src/mcp.js +6 -1
- package/src/runtime.js +19 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "relay-companion",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.151",
|
|
4
4
|
"description": "Companion CLI for Relay (sendrelays.com): pairs this machine with your Relay account so coding agents like Claude Code and Codex can send and receive Relay messages.",
|
|
5
5
|
"homepage": "https://sendrelays.com",
|
|
6
6
|
"repository": {
|
|
@@ -21,7 +21,7 @@ import { relayRowTitle, renderRelayRowSeed } from "./relay-briefing.js";
|
|
|
21
21
|
import { claudeDesktopSessionsDir, claudeProjectsDir } from "./host-paths.js";
|
|
22
22
|
import { relayClaudePermissionMode } from "./claude-session-runtime.js";
|
|
23
23
|
|
|
24
|
-
const DEFAULT_CLAUDE_METADATA_MODEL = "claude-opus-
|
|
24
|
+
const DEFAULT_CLAUDE_METADATA_MODEL = "claude-opus-5";
|
|
25
25
|
const CLAUDE_DESKTOP_LIVE_TITLE_LIMITATION = {
|
|
26
26
|
attempted: true,
|
|
27
27
|
supported: "best-effort",
|
package/src/mcp.js
CHANGED
|
@@ -82,7 +82,12 @@ export const TOOLS = [
|
|
|
82
82
|
},
|
|
83
83
|
},
|
|
84
84
|
},
|
|
85
|
-
kind: {
|
|
85
|
+
kind: {
|
|
86
|
+
type: "string",
|
|
87
|
+
enum: ["message", "handoff", "task"],
|
|
88
|
+
description:
|
|
89
|
+
"Use message for notes/questions; handoff for larger context takeovers; task to ask the recipient to run a JOB on their machine. A task arrives with a Start button: when the recipient presses it, their own coding agent runs the job and their completion reply marks it Done for the sender. For a task, the title names the job ('Chase down the Windows tasklist poll-storm'), the body is the brief — context, concrete steps if known, and a 'Done means:' line stating what finished looks like. One recipient only; groups refuse tasks.",
|
|
90
|
+
},
|
|
86
91
|
title: {
|
|
87
92
|
type: "string",
|
|
88
93
|
description:
|
package/src/runtime.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { relayClaudePermissionMode } from "./claude-session-runtime.js";
|
|
5
|
+
import { cliBinaryPath, installedCliVersions } from "./desktop-wake.js";
|
|
5
6
|
import readline from "node:readline";
|
|
6
7
|
import { randomUUID } from "node:crypto";
|
|
7
8
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
@@ -528,8 +529,25 @@ function clearQueuedInput(sessionRef) {
|
|
|
528
529
|
return next;
|
|
529
530
|
}
|
|
530
531
|
|
|
532
|
+
/**
|
|
533
|
+
* Claude Desktop downloads the REAL Claude Code CLI (to ~/Library/Application
|
|
534
|
+
* Support/Claude/claude-code/<ver>/…) and spawns it for every session, so a
|
|
535
|
+
* desktop-only machine has a full runtime without `claude` ever being on PATH.
|
|
536
|
+
* `which claude` alone therefore under-reports; count the newest downloaded
|
|
537
|
+
* binary as installed.
|
|
538
|
+
*/
|
|
539
|
+
function desktopClaudeCliExists() {
|
|
540
|
+
try {
|
|
541
|
+
const versions = installedCliVersions();
|
|
542
|
+
for (let i = versions.length - 1; i >= 0; i -= 1) {
|
|
543
|
+
if (fs.existsSync(cliBinaryPath(versions[i]))) return true;
|
|
544
|
+
}
|
|
545
|
+
} catch {}
|
|
546
|
+
return false;
|
|
547
|
+
}
|
|
548
|
+
|
|
531
549
|
function hostStatus(kind, command, exists, version) {
|
|
532
|
-
const installed = exists(command);
|
|
550
|
+
const installed = exists(command) || (kind === "claude_code" && desktopClaudeCliExists());
|
|
533
551
|
const adapter = kind === "codex" && process.env.RELAY_CODEX_ADAPTER !== "cli"
|
|
534
552
|
? "app_server"
|
|
535
553
|
: kind === "claude_code" && process.env.RELAY_CLAUDE_ADAPTER !== "cli"
|