diff --git a/README.md b/README.md index 48aa8405..44feffc2 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ Package metadata lives in [prpm.json](prpm.json). The repo currently publishes ` | [choosing-swarm-patterns](skills/choosing-swarm-patterns/SKILL.md) | 1.1.5 | Pick the right Agent Relay orchestration pattern across the 10 core swarm patterns plus specialized patterns. | | [writing-agent-relay-workflows](skills/writing-agent-relay-workflows/SKILL.md) | 2.0.0 | **DEPRECATED** - the superseded v1 `@relayflows/core` WorkflowBuilder engine. Use [`writing-relayflows`](skills/writing-relayflows/SKILL.md) for v2; keep this only to maintain an existing v1 workflow. | | [setting-up-relayfile](skills/setting-up-relayfile/SKILL.md) | 1.1.2 | Set up Relayfile mounts and writeback for provider files through local filesystem access. | -| [setting-up-agent-relay-desktop](skills/setting-up-agent-relay-desktop/SKILL.md) | 1.1.8 | Install and configure Agent Relay Desktop end-to-end from a Codex or Claude session, including headless Linux, device login, registration, webhooks, integrations, and verification. | -| [setting-up-agent-relay-sessions](skills/setting-up-agent-relay-sessions/SKILL.md) | 0.2.7 | Set a person up for live agent-to-agent session handoff end-to-end from a Codex or Claude session: reuse `setting-up-agent-relay-desktop` for the desktop leg, install the agent-sessions cloud MCP before the session starts, confirm the handoff tools loaded, and prove a live round trip with a teammate (or self-verify the roster + own-session read path when no teammate is online yet). | +| [setting-up-agent-relay-desktop](skills/setting-up-agent-relay-desktop/SKILL.md) | 1.1.9 | Install and configure Agent Relay Desktop end-to-end from a Codex or Claude session, including headless Linux, device login, registration, webhooks, integrations, and verification. | +| [setting-up-agent-relay-sessions](skills/setting-up-agent-relay-sessions/SKILL.md) | 0.2.8 | Set a person up for live agent-to-agent session handoff end-to-end from a Codex or Claude session: reuse `setting-up-agent-relay-desktop` for the desktop leg, install the agent-sessions cloud MCP before the session starts, confirm the handoff tools loaded, and prove a live round trip with a teammate (or self-verify the roster + own-session read path when no teammate is online yet). | | [signing-in-to-agent-relay-cloud](skills/signing-in-to-agent-relay-cloud/SKILL.md) | 0.1.0 | Sign a person in to Agent Relay Cloud through the OAuth device flow from an agent session: device grant, polling, refresh, whoami, and the CLI credential handoff, with no token printed. | | [setting-up-agent-relay-flows](skills/setting-up-agent-relay-flows/SKILL.md) | 0.1.0 | Choose a catalog flow and repository, connect tools and coding-agent credentials, activate the listener through the direct-source deploy API, and verify it is listening. Builds on `signing-in-to-agent-relay-cloud`. | | [subscribing-relay-webhooks-and-writebacks](skills/subscribing-relay-webhooks-and-writebacks/SKILL.md) | 0.1.7 | Subscribe a session to GitHub PR and Slack channel events so they are injected, and write back to providers through a Relayfile mount, with the verified steps and known defects. | diff --git a/prpm.json b/prpm.json index 1e31ef65..2f806774 100644 --- a/prpm.json +++ b/prpm.json @@ -95,7 +95,7 @@ }, { "name": "setting-up-agent-relay-desktop", - "version": "1.1.8", + "version": "1.1.9", "description": "Set up or repair Agent Relay Desktop end-to-end from a running Codex or Claude session on macOS or Linux, including verified installation, headless systemd service, device sign-in, new-session uploads, self-registration, direct delivery, webhooks, GitHub subscriptions, and delivery verification.", "format": "claude", "subtype": "skill", @@ -113,7 +113,7 @@ }, { "name": "setting-up-agent-relay-sessions", - "version": "0.2.7", + "version": "0.2.8", "description": "Get a person set up for live agent-to-agent session handoff on Agent Relay end-to-end from a running Codex or Claude session: verify desktop setup (reusing setting-up-agent-relay-desktop), install the agent-sessions cloud MCP before the session starts, confirm the handoff tools loaded, and prove one live round trip. Use when a human asks an agent to set them up for session handoff or connect their agent to a teammate.", "format": "claude", "subtype": "skill", diff --git a/skills/setting-up-agent-relay-desktop/SKILL.md b/skills/setting-up-agent-relay-desktop/SKILL.md index 41393e2a..130f8301 100644 --- a/skills/setting-up-agent-relay-desktop/SKILL.md +++ b/skills/setting-up-agent-relay-desktop/SKILL.md @@ -184,18 +184,19 @@ and at least 13.0.0. Find the same user-level npm, mise, or nvm CLI the app discovers; never run the desktop's `/usr/bin/agent-relay` launcher as a CLI: ```sh -relay_cli= -for candidate in \ - "$HOME/.local/bin/agent-relay" \ - "$HOME/.npm-global/bin/agent-relay" \ - "$HOME/.agentworkforce/relay/bin/agent-relay" -do - if test -x "$candidate" && test "$candidate" != /usr/bin/agent-relay; then - relay_cli=$candidate - break - fi -done -if test -z "$relay_cli"; then +# The installed Agent Relay CLI: user-level npm, mise or nvm, then PATH; +# never the .deb's /usr/bin/agent-relay Desktop launcher. Section 2 and +# section 6 define this identically; change both together. +find_relay_cli() { + for candidate in \ + "$HOME/.local/bin/agent-relay" \ + "$HOME/.npm-global/bin/agent-relay" \ + "$HOME/.agentworkforce/relay/bin/agent-relay" + do + if test -x "$candidate" && test "$candidate" != /usr/bin/agent-relay; then + printf '%s\n' "$candidate"; return + fi + done for relay_root in \ "$HOME/.local/share/mise/installs/node" \ "$HOME/.nvm/versions/node" @@ -204,11 +205,15 @@ if test -z "$relay_cli"; then candidate=$(find -L "$relay_root" -mindepth 3 -maxdepth 3 \ -path '*/bin/agent-relay' -type f -perm -u+x -print -quit 2>/dev/null) if test -n "$candidate" && test "$candidate" != /usr/bin/agent-relay; then - relay_cli=$candidate - break + printf '%s\n' "$candidate"; return fi done -fi + candidate=$(command -v agent-relay 2>/dev/null || true) + if test -n "$candidate" && test -x "$candidate" && test "$candidate" != /usr/bin/agent-relay; then + printf '%s\n' "$candidate" + fi +} +relay_cli=$(find_relay_cli) if test -n "$relay_cli"; then "$relay_cli" --version "$relay_cli" integration subscribe --help >/dev/null @@ -897,6 +902,39 @@ is set: ```sh pull_glob='/github/repos/OWNER/REPO/pulls/NUMBER/**' +# Shell variables do not survive between tool calls: when relay_cli is unset +# here, find the installed CLI again with section 2's helper, so an installed +# CLI is not replaced by the npx fallback. +# The installed Agent Relay CLI: user-level npm, mise or nvm, then PATH; +# never the .deb's /usr/bin/agent-relay Desktop launcher. Section 2 and +# section 6 define this identically; change both together. +find_relay_cli() { + for candidate in \ + "$HOME/.local/bin/agent-relay" \ + "$HOME/.npm-global/bin/agent-relay" \ + "$HOME/.agentworkforce/relay/bin/agent-relay" + do + if test -x "$candidate" && test "$candidate" != /usr/bin/agent-relay; then + printf '%s\n' "$candidate"; return + fi + done + for relay_root in \ + "$HOME/.local/share/mise/installs/node" \ + "$HOME/.nvm/versions/node" + do + test -d "$relay_root" || continue + candidate=$(find -L "$relay_root" -mindepth 3 -maxdepth 3 \ + -path '*/bin/agent-relay' -type f -perm -u+x -print -quit 2>/dev/null) + if test -n "$candidate" && test "$candidate" != /usr/bin/agent-relay; then + printf '%s\n' "$candidate"; return + fi + done + candidate=$(command -v agent-relay 2>/dev/null || true) + if test -n "$candidate" && test -x "$candidate" && test "$candidate" != /usr/bin/agent-relay; then + printf '%s\n' "$candidate" + fi +} +test -n "${relay_cli:-}" || relay_cli=$(find_relay_cli) relay_cli_major= if test -n "${relay_cli:-}"; then relay_cli_major=$("$relay_cli" --version 2>/dev/null | sed -n 's/^[^0-9]*\([0-9][0-9]*\)\..*/\1/p' | sed -n '1p') @@ -915,7 +953,8 @@ else fi ``` -Use the `relay_cli` found in section 2, never a bare `agent-relay`: on a +Use the `relay_cli` found in section 2 (re-discovered above when this runs in +a new shell), never a bare `agent-relay`: on a `.deb` host `/usr/bin/agent-relay` is the Desktop launcher, and `PATH` may resolve to it or to a different, older CLI than the one whose version was checked. diff --git a/skills/setting-up-agent-relay-sessions/SKILL.md b/skills/setting-up-agent-relay-sessions/SKILL.md index 15b0ffdc..95b527ff 100644 --- a/skills/setting-up-agent-relay-sessions/SKILL.md +++ b/skills/setting-up-agent-relay-sessions/SKILL.md @@ -174,12 +174,14 @@ relay_cli_version= if test -n "$relay_cli"; then relay_cli_version=$("$relay_cli" --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1) fi +# Gate only these optional checks on 13.x; keep relay_cli itself, which +# setting-up-agent-relay-desktop section 6 uses with its own version handling. +relay_cli_checks= case "$relay_cli_version" in - 13.*) ;; - *) test -n "$relay_cli" && printf 'agent-relay %s is not 13.x; read the workspace from /setup/status instead.\n' "${relay_cli_version:-unknown}" >&2 - relay_cli= ;; + 13.*) relay_cli_checks=1 ;; + *) test -n "$relay_cli" && printf 'agent-relay %s is not 13.x; read the workspace from /setup/status instead.\n' "${relay_cli_version:-unknown}" >&2 ;; esac -if test -n "$relay_cli"; then +if test -n "$relay_cli_checks"; then "$relay_cli" cloud whoami # signed in, and as whom "$relay_cli" workspace active # the active Cloud workspace (keys stay masked) "$relay_cli" cloud workspaces # every workspace this login can use, with ids