registry  /  relay-companion  /  0.1.6

relay-companion@0.1.6

Relay companion: connects local coding agents to Relay tasks, approvals, and connector tools.

Static Scan Results

scanned 11d ago · by rust-scanner

Static analysis completed at 93.0% confidence. No malicious behavior was detected; 10 low-signal pattern(s) were surfaced and cleared.

Static reason
No blocking static signals were detected.; previous stored version diff introduced dangerous source

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
Manifest
NoLicense
scanned 23 file(s), 253 KB of source, external domains: aia6vj5pgp.us-east-1.awsapprunner.com, sendrelays.com, www.apple.com

Source & flagged code

3 flagged · loading source
bin/relay.jsView file
matchType = previous_version_dangerous_delta matchedPackage = relay-companion@0.1.5 matchedIdentity = npm:cmVsYXktY29tcGFuaW9u:0.1.5 similarity = 0.913 summary = stored previous version shares package body but lacks this dangerous source file
High
Previous Version Dangerous Delta

This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.

bin/relay.jsView on unpkg
256const overlayMain = path.resolve(here, "../overlay/main.cjs"); L257: // require("electron") returns the path to the electron binary when resolved under node. L258: let electronPath;
Medium
Dynamic Require

Package source references dynamic require/import behavior.

bin/relay.jsView on unpkg · L256
src/install.jsView file
1import { spawnSync } from "node:child_process"; L2: import fs from "node:fs"; ... L50: const rootRes = spawnSync("npm", ["root", "-g"], { encoding: "utf8", timeout: 20_000 }); L51: const root = (rootRes.stdout || "").trim(); L52: const globalBin = path.join(root, ...PACKAGE_NAME.split("/"), "bin", "relay.js"); ... L67: try { L68: const require = createRequire(path.join(packageRoot, "package.json")); L69: const electronPath = require("electron"); ... L97: export function installDaemonAutostart(bin = relayBinPath(), node = process.execPath) { L98: if (process.platform !== "darwin") return { ok: false, reason: "autostart_unsupported_platform" }; L99: const home = os.homedir(); L100: const plistPath = path.join(home, "Library", "LaunchAgents", `${DAEMON_LAUNCH_LABEL}.plist`);
Medium
Install Persistence

Source writes installer persistence such as shell profile or service configuration.

src/install.jsView on unpkg · L1

Findings

1 High4 Medium5 Low
HighPrevious Version Dangerous Deltabin/relay.js
MediumDynamic Requirebin/relay.js
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencesrc/install.js
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
LowNo License