diff --git a/CHANGELOG.md b/CHANGELOG.md index f83a2c3fe..4ff1c94dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### 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 7227cc559..112666454 100755 --- a/install.sh +++ b/install.sh @@ -1292,6 +1292,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 "" @@ -1301,6 +1304,7 @@ print_usage() { echo " # Stop the broker" echo " agent-relay ${node_group}down" 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 5c21d18bc..b480c2575 100644 --- a/packages/cli/src/cli/bootstrap.test.ts +++ b/packages/cli/src/cli/bootstrap.test.ts @@ -505,6 +505,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; @@ -521,8 +522,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 7070708ed..8c4db50e4 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 774ab635f..9cb7704c3 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, {