diff --git a/CHANGELOG.md b/CHANGELOG.md index fcaf3a6013..5e4d66e93a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `install.sh` honours `AGENT_RELAY_HOME` as the install root when `AGENT_RELAY_INSTALL_DIR` is not set. A relocated install exports its root from the `agent-relay` launcher. - `relay mcp` without `RELAY_AGENT_NAME` now registers each session as `-` (for example `claude-myproject`, from the MCP client's name), adding a short suffix when another live session holds that name and taking the name back after a restart, instead of registering every session as `orchestrator`. +### Fixed + +- The headless Cloud sign-in error and `cloud login` help name `agent-relay cloud login`, the command that exists. +- The installer's quick start starts with `agent-relay cloud login` and links the desktop app at https://agentrelay.com/download. + ### Removed - Python workflows, the `agent-relay.py` node provider, and the `agent-relay-sdk` package. Local workflows are YAML, TypeScript, JavaScript, or shell. Cloud and worker workflows are YAML or TypeScript. Node definitions are TypeScript or JavaScript. SDKs are TypeScript and Swift. diff --git a/install.sh b/install.sh index 599162cbb5..96a8805686 100755 --- a/install.sh +++ b/install.sh @@ -1550,6 +1550,9 @@ print_usage() { echo "" echo -e "${BOLD}Quick Start:${NC}" echo "" + echo " # Sign in to Agent Relay Cloud" + echo " agent-relay cloud login" + echo "" echo " # Start the local broker (detached so this terminal stays free)" echo " agent-relay ${node_group}up --background" echo "" @@ -1565,6 +1568,7 @@ print_usage() { fi echo -e "${BOLD}Binaries:${NC} $INSTALL_DIR/bin (launchers: $launchers)" echo "" + echo -e "${BOLD}Desktop app:${NC} https://agentrelay.com/download" echo -e "${BOLD}Documentation:${NC} https://github.com/AgentWorkforce/relay" echo "" } diff --git a/packages/cli/src/cli/bootstrap.test.ts b/packages/cli/src/cli/bootstrap.test.ts index 4ce781584d..20fd4e139e 100644 --- a/packages/cli/src/cli/bootstrap.test.ts +++ b/packages/cli/src/cli/bootstrap.test.ts @@ -506,6 +506,7 @@ describe('install.sh quick start', () => { expect(usageFunction).not.toBe(''); const commands = quickStartCommands('latest'); expect(commands).toContain('node up --background'); + expect(commands).toContain('cloud login'); const program = createProgram(); for (const command of commands) { let current: Command = program; @@ -522,8 +523,18 @@ describe('install.sh quick start', () => { }); it('keeps the top-level up/down forms for pinned installs older than 9.2.2', () => { - expect(quickStartCommands('9.2.1')).toEqual(['up --background', 'status', 'down']); - expect(quickStartCommands('9.2.2')).toEqual(['node up --background', 'status', 'node down']); - expect(quickStartCommands('13.1.5')).toEqual(['node up --background', 'status', 'node down']); + expect(quickStartCommands('9.2.1')).toEqual(['cloud login', 'up --background', 'status', 'down']); + expect(quickStartCommands('9.2.2')).toEqual([ + 'cloud login', + 'node up --background', + 'status', + 'node down', + ]); + expect(quickStartCommands('13.1.5')).toEqual([ + 'cloud login', + 'node up --background', + 'status', + 'node down', + ]); }); }); diff --git a/packages/cli/src/cli/commands/cloud.ts b/packages/cli/src/cli/commands/cloud.ts index 7070708ed3..8c4db50e45 100644 --- a/packages/cli/src/cli/commands/cloud.ts +++ b/packages/cli/src/cli/commands/cloud.ts @@ -656,7 +656,7 @@ export function registerCloudCommands(program: Command, overrides: Partial', 'Cloud API base URL') .option('--force', 'Force re-authentication even if already logged in') .option( diff --git a/packages/cloud/src/auth.ts b/packages/cloud/src/auth.ts index 774ab635f1..9cb7704c3e 100644 --- a/packages/cloud/src/auth.ts +++ b/packages/cloud/src/auth.ts @@ -782,7 +782,7 @@ export async function ensureCloudSession(options: CloudSessionOptions = {}): Pro throw browserRequired( isHeadlessEnvironment(env) ? 'Cloud login required. Run `agent-relay cloud login --device`.' - : 'Cloud login required. Run `agent-relay login`.' + : 'Cloud login required. Run `agent-relay cloud login`.' ); } const auth = await loginInteractive(apiUrl, {