@astroanywhere/agent 0.2.4 → 0.2.6
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/README.md +200 -15
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +127 -21
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +23 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +15 -2
- package/dist/commands/stop.js.map +1 -1
- package/dist/lib/display.d.ts +1 -1
- package/dist/lib/display.d.ts.map +1 -1
- package/dist/lib/display.js +5 -0
- package/dist/lib/display.js.map +1 -1
- package/dist/lib/openclaw-bridge.d.ts +39 -7
- package/dist/lib/openclaw-bridge.d.ts.map +1 -1
- package/dist/lib/openclaw-bridge.js +256 -40
- package/dist/lib/openclaw-bridge.js.map +1 -1
- package/dist/lib/openclaw-gateway.d.ts +52 -0
- package/dist/lib/openclaw-gateway.d.ts.map +1 -0
- package/dist/lib/openclaw-gateway.js +116 -0
- package/dist/lib/openclaw-gateway.js.map +1 -0
- package/dist/lib/providers.d.ts.map +1 -1
- package/dist/lib/providers.js +6 -37
- package/dist/lib/providers.js.map +1 -1
- package/dist/lib/ssh-discovery.d.ts +3 -1
- package/dist/lib/ssh-discovery.d.ts.map +1 -1
- package/dist/lib/ssh-discovery.js +34 -24
- package/dist/lib/ssh-discovery.js.map +1 -1
- package/dist/lib/ssh-installer.d.ts +26 -0
- package/dist/lib/ssh-installer.d.ts.map +1 -1
- package/dist/lib/ssh-installer.js +126 -4
- package/dist/lib/ssh-installer.js.map +1 -1
- package/dist/lib/task-executor.d.ts +11 -0
- package/dist/lib/task-executor.d.ts.map +1 -1
- package/dist/lib/task-executor.js +111 -25
- package/dist/lib/task-executor.js.map +1 -1
- package/dist/lib/websocket-client.d.ts +3 -0
- package/dist/lib/websocket-client.d.ts.map +1 -1
- package/dist/lib/websocket-client.js +6 -0
- package/dist/lib/websocket-client.js.map +1 -1
- package/dist/providers/claude-sdk-adapter.d.ts.map +1 -1
- package/dist/providers/claude-sdk-adapter.js +18 -0
- package/dist/providers/claude-sdk-adapter.js.map +1 -1
- package/dist/providers/index.d.ts +3 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +9 -3
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openclaw-adapter.d.ts +21 -29
- package/dist/providers/openclaw-adapter.d.ts.map +1 -1
- package/dist/providers/openclaw-adapter.js +147 -385
- package/dist/providers/openclaw-adapter.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -146,7 +146,7 @@ Astro picks the best available machine for each task based on load and capabilit
|
|
|
146
146
|
|
|
147
147
|
On HPC clusters, login nodes enforce strict resource limits and kill long-running processes. You have two options for installing the agent runner:
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
#### Option A — From the login node (simplest)
|
|
150
150
|
|
|
151
151
|
SSH to the login node and run setup directly. The setup process is lightweight and completes in under a minute:
|
|
152
152
|
|
|
@@ -155,9 +155,9 @@ ssh user@hpc-login.university.edu
|
|
|
155
155
|
npx @astroanywhere/agent@latest launch --no-ssh-config
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
#### Option B — From a compute node (if the login node blocks it)
|
|
159
159
|
|
|
160
|
-
Request an interactive allocation first, then
|
|
160
|
+
Request an interactive allocation first, then launch from the compute node:
|
|
161
161
|
|
|
162
162
|
```bash
|
|
163
163
|
ssh user@hpc-login.university.edu
|
|
@@ -165,18 +165,6 @@ srun --time=8:00:00 --mem=4G --pty bash
|
|
|
165
165
|
npx @astroanywhere/agent@latest launch --no-ssh-config
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
Or submit as a batch job:
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
sbatch <<'EOF'
|
|
172
|
-
#!/bin/bash
|
|
173
|
-
#SBATCH --time=8:00:00
|
|
174
|
-
#SBATCH --mem=4G
|
|
175
|
-
#SBATCH --job-name=astro-agent
|
|
176
|
-
npx @astroanywhere/agent@latest launch --no-ssh-config --non-interactive
|
|
177
|
-
EOF
|
|
178
|
-
```
|
|
179
|
-
|
|
180
168
|
**Before running `launch`**, install at least one AI coding agent on the cluster:
|
|
181
169
|
|
|
182
170
|
```bash
|
|
@@ -187,6 +175,203 @@ npm i -g openclaw # or OpenClaw
|
|
|
187
175
|
|
|
188
176
|
> **Note:** The agent runner uses Slurm to submit AI agent jobs to compute nodes automatically. Once installed, Astro dispatches tasks as Slurm jobs — you don't need to manage `sbatch` yourself.
|
|
189
177
|
|
|
178
|
+
### Re-setup & Force Setup
|
|
179
|
+
|
|
180
|
+
When you reinstall the agent runner on a device that was previously configured, the existing configuration (SSH hosts, authentication tokens, relay settings) is reused from the first run. This means new SSH hosts won't be discovered and stale settings won't be refreshed.
|
|
181
|
+
|
|
182
|
+
To force a full re-setup:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
npx @astroanywhere/agent@latest launch --force-setup
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
This re-runs the entire setup flow: re-detects AI agents, re-discovers SSH hosts, re-authenticates with the relay, and updates all stored configuration. Use this when:
|
|
189
|
+
|
|
190
|
+
- You've added new SSH hosts to `~/.ssh/config`
|
|
191
|
+
- Authentication tokens have expired or changed
|
|
192
|
+
- You've installed or removed AI agents
|
|
193
|
+
- The agent runner was updated to a new version with config changes
|
|
194
|
+
- Remote hosts were reconfigured or replaced
|
|
195
|
+
|
|
196
|
+
You can also run setup independently without starting the agent:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npx @astroanywhere/agent@latest setup --with-ssh-config
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Authentication
|
|
205
|
+
|
|
206
|
+
> **Key concept:** Astro does not access your API keys directly. The agent runner spawns AI agents (Claude Code, Codex, etc.) as subprocesses and passes your shell environment through. Each agent handles its own authentication using its own credentials. Your keys never leave your machine and Astro never sees them.
|
|
207
|
+
|
|
208
|
+
### Claude Code
|
|
209
|
+
|
|
210
|
+
Claude Code supports multiple authentication backends. Add the relevant environment variables to your shell profile (`~/.zshrc` on macOS, `~/.bashrc` on Linux).
|
|
211
|
+
|
|
212
|
+
**Anthropic cloud — OAuth token (recommended)**
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
claude setup-token
|
|
216
|
+
# Then add to your shell profile:
|
|
217
|
+
export CLAUDE_CODE_OAUTH_TOKEN=<paste-token-here>
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Anthropic cloud — API key**
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Amazon Bedrock**
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
export CLAUDE_CODE_USE_BEDROCK=1
|
|
230
|
+
export AWS_REGION=us-west-2
|
|
231
|
+
|
|
232
|
+
# Option 1: explicit keys
|
|
233
|
+
export AWS_ACCESS_KEY_ID=AKIA...
|
|
234
|
+
export AWS_SECRET_ACCESS_KEY=...
|
|
235
|
+
|
|
236
|
+
# Option 2: AWS profile (recommended)
|
|
237
|
+
export AWS_PROFILE=default
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
> Bedrock models use different model IDs (e.g., `anthropic.claude-sonnet-4-20250514`). The agent runner auto-detects Bedrock model formats and disables sandbox mode, which is not supported on Bedrock.
|
|
241
|
+
|
|
242
|
+
**Google Vertex AI**
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
export CLAUDE_CODE_USE_VERTEX=1
|
|
246
|
+
export CLOUD_ML_REGION=us-east5
|
|
247
|
+
export ANTHROPIC_VERTEX_PROJECT_ID=my-gcp-project
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Third-party models via Claude Code**
|
|
251
|
+
|
|
252
|
+
Claude Code can also be configured to use third-party model providers that expose an OpenAI-compatible API. This allows using models like MiniMax-M1, Kimi K2, GLM-5, or Doubao through Claude Code's interface. Set `ANTHROPIC_BASE_URL`, `ANTHROPIC_API_KEY`, and `ANTHROPIC_MODEL` to point at the provider:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# MiniMax
|
|
256
|
+
export ANTHROPIC_BASE_URL=https://api.minimax.chat/v1
|
|
257
|
+
export ANTHROPIC_API_KEY=<your-minimax-key>
|
|
258
|
+
export ANTHROPIC_MODEL=MiniMax-M1
|
|
259
|
+
|
|
260
|
+
# Kimi (Moonshot)
|
|
261
|
+
export ANTHROPIC_BASE_URL=https://api.moonshot.cn/v1
|
|
262
|
+
export ANTHROPIC_API_KEY=<your-moonshot-key>
|
|
263
|
+
export ANTHROPIC_MODEL=kimi-k2
|
|
264
|
+
|
|
265
|
+
# GLM (Zhipu AI)
|
|
266
|
+
export ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/paas/v4
|
|
267
|
+
export ANTHROPIC_API_KEY=<your-zhipu-key>
|
|
268
|
+
export ANTHROPIC_MODEL=glm-5
|
|
269
|
+
|
|
270
|
+
# Doubao (ByteDance / Volcengine ModelArk)
|
|
271
|
+
export ANTHROPIC_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
|
|
272
|
+
export ANTHROPIC_API_KEY=<your-volcengine-key>
|
|
273
|
+
export ANTHROPIC_MODEL=<your-endpoint-id>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
> **Experimental:** Third-party model support depends on Claude Code's compatibility layer. Some features (tool use, streaming, sandbox) may not work with all providers. This is not tested by the Astro team — refer to each provider's documentation for Claude Code integration details (e.g., [BytePlus ModelArk](https://docs.byteplus.com/en/docs/ModelArk/1928262), [Zhipu AI](https://docs.z.ai/devpack/tool/claude)).
|
|
277
|
+
|
|
278
|
+
**Troubleshooting:** On remote machines or HPC clusters, session-based login (`claude login`) may not work. Use one of the export methods above instead.
|
|
279
|
+
|
|
280
|
+
### Codex
|
|
281
|
+
|
|
282
|
+
Codex authenticates with an OpenAI API key. Add it to your shell profile:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
export OPENAI_API_KEY=sk-...
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Or configure it in `~/.codex/config.toml`:
|
|
289
|
+
|
|
290
|
+
```toml
|
|
291
|
+
model = "gpt-5.3-codex"
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
Available Codex models (run `codex -m <model_name>` to switch):
|
|
295
|
+
|
|
296
|
+
| Model | Description |
|
|
297
|
+
|---|---|
|
|
298
|
+
| `gpt-5.3-codex` | Latest frontier agentic coding model (default) |
|
|
299
|
+
| `gpt-5.4` | Latest frontier agentic coding model |
|
|
300
|
+
| `gpt-5.2-codex` | Frontier agentic coding model |
|
|
301
|
+
| `gpt-5.1-codex-max` | Codex-optimized flagship for deep and fast reasoning |
|
|
302
|
+
| `gpt-5.2` | Latest frontier model with improvements across knowledge, reasoning and coding |
|
|
303
|
+
| `gpt-5.1-codex-mini` | Optimized for codex — cheaper, faster, but less capable |
|
|
304
|
+
|
|
305
|
+
### OpenClaw & OpenCode
|
|
306
|
+
|
|
307
|
+
These agents support multiple model providers (OpenAI, Anthropic, Google, etc.). Configure them through their own CLI or config files — refer to each agent's documentation for details.
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Commands
|
|
312
|
+
|
|
313
|
+
The agent runner provides several commands for managing your setup:
|
|
314
|
+
|
|
315
|
+
| Command | Description |
|
|
316
|
+
|---|---|
|
|
317
|
+
| `launch` | Setup (if needed) + start — the recommended one-command entry point |
|
|
318
|
+
| `start` | Start the agent runner (assumes setup is already complete) |
|
|
319
|
+
| `stop` | Stop the running agent process |
|
|
320
|
+
| `status` | Show current agent status, machine info, and connection state |
|
|
321
|
+
| `logs` | View agent runner logs (`-f` to follow, `-n` for line count, `--host` for remote) |
|
|
322
|
+
| `setup` | Run initial setup independently (detect agents, authenticate, configure relay) |
|
|
323
|
+
| `auth` | Set or clear Claude OAuth token for agent SDK authentication |
|
|
324
|
+
| `config` | Show, modify, reset, or import configuration |
|
|
325
|
+
| `providers` | List detected AI agent providers on this machine |
|
|
326
|
+
| `resources` | Show machine hardware (CPU, memory, GPU) |
|
|
327
|
+
| `hosts` | Discover remote hosts from SSH config |
|
|
328
|
+
| `connect` | Alias for `start --foreground` — run in the current terminal |
|
|
329
|
+
| `mcp` | Start MCP server for Claude Code integration (stdio mode) |
|
|
330
|
+
|
|
331
|
+
### Common Options
|
|
332
|
+
|
|
333
|
+
**`launch`** supports all setup and start options in one command:
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# Force re-setup + start in foreground
|
|
337
|
+
npx @astroanywhere/agent@latest launch --force-setup -f
|
|
338
|
+
|
|
339
|
+
# Skip SSH discovery (local-only mode)
|
|
340
|
+
npx @astroanywhere/agent@latest launch --no-ssh-config
|
|
341
|
+
|
|
342
|
+
# Skip remote host launching (setup SSH but only run local)
|
|
343
|
+
npx @astroanywhere/agent@latest launch --no-launch-all
|
|
344
|
+
|
|
345
|
+
# Non-interactive mode (for scripts and batch jobs)
|
|
346
|
+
npx @astroanywhere/agent@latest launch --non-interactive --no-ssh-config
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**`start`** controls the runtime behavior:
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
# Run in foreground with debug logging
|
|
353
|
+
npx @astroanywhere/agent@latest start -f --log-level debug
|
|
354
|
+
|
|
355
|
+
# Limit concurrent tasks
|
|
356
|
+
npx @astroanywhere/agent@latest start --max-tasks 2
|
|
357
|
+
|
|
358
|
+
# Keep worktrees after task completion (for debugging)
|
|
359
|
+
npx @astroanywhere/agent@latest start --preserve-worktrees
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
**`logs`** helps with troubleshooting:
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
# Follow logs in real time
|
|
366
|
+
npx @astroanywhere/agent@latest logs -f
|
|
367
|
+
|
|
368
|
+
# Show last 100 lines
|
|
369
|
+
npx @astroanywhere/agent@latest logs -n 100
|
|
370
|
+
|
|
371
|
+
# View logs from a remote host
|
|
372
|
+
npx @astroanywhere/agent@latest logs --host hpc-login
|
|
373
|
+
```
|
|
374
|
+
|
|
190
375
|
---
|
|
191
376
|
|
|
192
377
|
## Key Features
|
package/dist/cli.js
CHANGED
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
* npx @astroanywhere/agent@latest stop - Stop running agent
|
|
12
12
|
* npx @astroanywhere/agent@latest status - Show current status
|
|
13
13
|
*/
|
|
14
|
+
// Force IPv4-first DNS resolution. When a VPN is active, macOS may resolve
|
|
15
|
+
// hostnames to IPv6 addresses routed through utun* tunnel interfaces that
|
|
16
|
+
// don't support the connection, causing "socket is not connected" errors.
|
|
17
|
+
// This must run before any network calls (fetch, WebSocket, etc.).
|
|
18
|
+
import dns from 'node:dns';
|
|
19
|
+
dns.setDefaultResultOrder('ipv4first');
|
|
14
20
|
import { Command } from 'commander';
|
|
15
21
|
import { setupCommand, startCommand, statusCommand, stopCommand, mcpCommand, logsCommand, } from './commands/index.js';
|
|
16
22
|
const program = new Command();
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4BH,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,aAAa,CAAC;AAkBhE,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAsVnF"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -14,7 +14,7 @@ import { detectProviders } from '../lib/providers.js';
|
|
|
14
14
|
import { getMachineResources, formatResourceSummary } from '../lib/resources.js';
|
|
15
15
|
import { discoverRemoteHosts } from '../lib/ssh-discovery.js';
|
|
16
16
|
import { requestDeviceCode, pollForToken, registerMachine, DeviceAuthApiError } from '../lib/api-client.js';
|
|
17
|
-
import { detectLocalIP, checkRemoteNode, packAndInstall, sshExec } from '../lib/ssh-installer.js';
|
|
17
|
+
import { detectLocalIP, checkRemoteNode, packAndInstall, sshExec, hasControlMaster, establishControlMaster, teardownControlMaster, } from '../lib/ssh-installer.js';
|
|
18
18
|
import { formatInstallErrorBox, formatAgentDetectionBox, formatGhStatusLine, formatSshDiscoveryBox, formatSetupSummaryBox, formatSectionHeader, } from '../lib/display.js';
|
|
19
19
|
const execFile = promisify(execFileCb);
|
|
20
20
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -147,7 +147,7 @@ export async function setupCommand(options = {}) {
|
|
|
147
147
|
console.log();
|
|
148
148
|
const sshSpinner = ora('Discovering remote hosts...').start();
|
|
149
149
|
try {
|
|
150
|
-
discoveredHosts = await discoverRemoteHosts();
|
|
150
|
+
discoveredHosts = await discoverRemoteHosts({ verbose });
|
|
151
151
|
if (discoveredHosts.length > 0) {
|
|
152
152
|
sshSpinner.succeed(`Found ${discoveredHosts.length} remote host(s)`);
|
|
153
153
|
console.log();
|
|
@@ -231,25 +231,56 @@ export async function setupCommand(options = {}) {
|
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
else {
|
|
234
|
-
// Check if `claude` CLI is
|
|
235
|
-
let
|
|
234
|
+
// Check if `claude` CLI is available on this machine
|
|
235
|
+
let claudeDetected = false;
|
|
236
236
|
try {
|
|
237
237
|
const { stdout } = await execFile('claude', ['--version']);
|
|
238
238
|
if (stdout)
|
|
239
|
-
|
|
239
|
+
claudeDetected = true;
|
|
240
240
|
}
|
|
241
241
|
catch {
|
|
242
242
|
// claude CLI not available
|
|
243
243
|
}
|
|
244
|
-
if (
|
|
245
|
-
|
|
244
|
+
if (claudeDetected) {
|
|
245
|
+
// Claude is installed but no explicit token is configured.
|
|
246
|
+
// The CLI's keychain session is NOT reliable in agent/background contexts:
|
|
247
|
+
// on Mac, the keychain is only accessible in the user's GUI session, so
|
|
248
|
+
// tasks fail with "Not logged in · Please run /login" when the agent runs
|
|
249
|
+
// headlessly or is invoked from a non-GUI context (SSH, background process).
|
|
250
|
+
console.log(chalk.yellow(' Claude CLI is installed, but no Claude auth token is configured.\n'));
|
|
251
|
+
console.log(chalk.dim(' The CLI\'s keychain session may not be accessible when the agent'));
|
|
252
|
+
console.log(chalk.dim(' runs as a background process. This causes tasks to fail with'));
|
|
253
|
+
console.log(chalk.dim(' "Not logged in · Please run /login" even though you are logged in.\n'));
|
|
254
|
+
console.log(chalk.bold(' Recommended: generate a Claude auth token to ensure reliable auth.\n'));
|
|
255
|
+
if (!options.nonInteractive) {
|
|
256
|
+
const { setupToken } = await inquirer.prompt([
|
|
257
|
+
{
|
|
258
|
+
type: 'confirm',
|
|
259
|
+
name: 'setupToken',
|
|
260
|
+
message: 'Set up a Claude auth token now? (strongly recommended)',
|
|
261
|
+
default: true,
|
|
262
|
+
},
|
|
263
|
+
]);
|
|
264
|
+
if (setupToken) {
|
|
265
|
+
await setupClaudeOauthToken();
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
console.log(chalk.dim(' You can set it up later: run `claude setup-token` and set'));
|
|
269
|
+
console.log(chalk.dim(' CLAUDE_CODE_OAUTH_TOKEN in the agent environment,'));
|
|
270
|
+
console.log(chalk.dim(' or set ANTHROPIC_API_KEY.\n'));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
console.log(chalk.dim(' Run `claude setup-token` and set CLAUDE_CODE_OAUTH_TOKEN,'));
|
|
275
|
+
console.log(chalk.dim(' or set ANTHROPIC_API_KEY in the agent environment.\n'));
|
|
276
|
+
}
|
|
246
277
|
}
|
|
247
278
|
else {
|
|
248
279
|
console.log(chalk.dim('The agent runner needs authentication to call the Claude API.'));
|
|
249
280
|
console.log(chalk.dim('You can either:'));
|
|
250
|
-
console.log(chalk.dim(' 1.
|
|
281
|
+
console.log(chalk.dim(' 1. Install Claude Code and run `claude login` (then re-run setup to configure a cloud token)'));
|
|
251
282
|
console.log(chalk.dim(' 2. Set ANTHROPIC_API_KEY environment variable'));
|
|
252
|
-
console.log(chalk.dim(' 3.
|
|
283
|
+
console.log(chalk.dim(' 3. Set CLAUDE_CODE_OAUTH_TOKEN (generate via `claude setup-token`)\n'));
|
|
253
284
|
}
|
|
254
285
|
}
|
|
255
286
|
console.log();
|
|
@@ -554,6 +585,7 @@ async function runDeviceAuthFlow(apiUrl, _relayUrl, resources, detectedProviders
|
|
|
554
585
|
async function installOnRemoteHosts(selectedHosts, discoveredHosts, apiUrl, relayUrl, verbose = false) {
|
|
555
586
|
const installedHosts = [];
|
|
556
587
|
const installErrors = [];
|
|
588
|
+
const controlMasterHosts = []; // track hosts with active CM sessions
|
|
557
589
|
console.log();
|
|
558
590
|
const localIP = detectLocalIP();
|
|
559
591
|
// Build URLs that remote hosts can reach
|
|
@@ -572,18 +604,84 @@ async function installOnRemoteHosts(selectedHosts, discoveredHosts, apiUrl, rela
|
|
|
572
604
|
await sshExec(host, 'pkill -f "[a]stro-agent start" 2>/dev/null || true');
|
|
573
605
|
}
|
|
574
606
|
catch (err) {
|
|
575
|
-
// SSH connection failed
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
607
|
+
// SSH connection failed — check if this is a 2FA/interactive auth issue.
|
|
608
|
+
// BatchMode=yes causes SSH to fail when the host requires keyboard-interactive
|
|
609
|
+
// auth (Duo push, OTP). We detect this and offer a ControlMaster session.
|
|
610
|
+
const errObj = err;
|
|
611
|
+
const errMsg = errObj.message ?? String(err);
|
|
612
|
+
const errStderr = errObj.stderr ?? '';
|
|
613
|
+
const errAll = `${errMsg}\n${errStderr}`;
|
|
614
|
+
// Detect 2FA: 'keyboard-interactive' in either message or stderr.
|
|
615
|
+
// Don't match plain 'password' — that fires on "Permission denied
|
|
616
|
+
// (publickey,password)" which is a key failure, not 2FA.
|
|
617
|
+
const is2FA = errAll.includes('keyboard-interactive');
|
|
618
|
+
// Check if a ControlMaster session already exists (from a prior run)
|
|
619
|
+
const hasMaster = await hasControlMaster(host);
|
|
620
|
+
if (is2FA && !hasMaster) {
|
|
621
|
+
spinner.warn(`${hostName}: Requires interactive authentication (2FA/Duo)`);
|
|
622
|
+
console.log();
|
|
623
|
+
console.log(chalk.yellow(` ${hostName} requires two-factor authentication.`));
|
|
624
|
+
console.log(chalk.dim(' Astro can open an interactive SSH session for you to authenticate.'));
|
|
625
|
+
console.log(chalk.dim(' Once authenticated, all subsequent commands will reuse the session.'));
|
|
626
|
+
console.log();
|
|
627
|
+
const { authenticate } = await inquirer.prompt([{
|
|
628
|
+
type: 'confirm',
|
|
629
|
+
name: 'authenticate',
|
|
630
|
+
message: `Authenticate to ${hostName} interactively?`,
|
|
631
|
+
default: true,
|
|
632
|
+
}]);
|
|
633
|
+
if (authenticate) {
|
|
634
|
+
console.log(chalk.dim(`\n Opening SSH connection to ${hostName}...`));
|
|
635
|
+
console.log(chalk.dim(' Complete the authentication prompt below.\n'));
|
|
636
|
+
const established = await establishControlMaster(host);
|
|
637
|
+
if (established) {
|
|
638
|
+
controlMasterHosts.push(host);
|
|
639
|
+
console.log(chalk.green(`\n Session established for ${hostName}.`));
|
|
640
|
+
}
|
|
641
|
+
else {
|
|
642
|
+
spinner.fail(`${hostName}: Authentication failed`);
|
|
643
|
+
installErrors.push({
|
|
644
|
+
host: hostName,
|
|
645
|
+
hostname: host.hostname,
|
|
646
|
+
user: host.user,
|
|
647
|
+
error: 'Interactive authentication failed or was cancelled',
|
|
648
|
+
reason: 'needs_2fa',
|
|
649
|
+
});
|
|
650
|
+
continue;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
else {
|
|
654
|
+
spinner.fail(`${hostName}: Skipped (requires 2FA)`);
|
|
655
|
+
installErrors.push({
|
|
656
|
+
host: hostName,
|
|
657
|
+
hostname: host.hostname,
|
|
658
|
+
user: host.user,
|
|
659
|
+
error: 'Host requires two-factor authentication',
|
|
660
|
+
reason: 'needs_2fa',
|
|
661
|
+
});
|
|
662
|
+
continue;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
else if (!hasMaster) {
|
|
666
|
+
const reason = errMsg.includes('Permission denied') ? 'permission_denied' : 'ssh_failed';
|
|
667
|
+
spinner.fail(`${hostName}: SSH connection failed`);
|
|
668
|
+
installErrors.push({
|
|
669
|
+
host: hostName,
|
|
670
|
+
hostname: host.hostname,
|
|
671
|
+
user: host.user,
|
|
672
|
+
error: errMsg,
|
|
673
|
+
reason,
|
|
674
|
+
});
|
|
675
|
+
continue;
|
|
676
|
+
}
|
|
677
|
+
// hasMaster=true or just established — retry pkill through the session
|
|
678
|
+
spinner.start(`${hostName}: Stopping existing agent (if any)...`);
|
|
679
|
+
try {
|
|
680
|
+
await sshExec(host, 'pkill -f "[a]stro-agent start" 2>/dev/null || true');
|
|
681
|
+
}
|
|
682
|
+
catch {
|
|
683
|
+
// Non-critical — pkill may fail if no agent is running
|
|
684
|
+
}
|
|
587
685
|
}
|
|
588
686
|
await new Promise((r) => setTimeout(r, 1000));
|
|
589
687
|
spinner.text = `Checking Node.js on ${hostName}...`;
|
|
@@ -680,8 +778,16 @@ async function installOnRemoteHosts(selectedHosts, discoveredHosts, apiUrl, rela
|
|
|
680
778
|
if (verbose && err instanceof Error && err.stack) {
|
|
681
779
|
console.error(chalk.dim(`[setup] Stack trace: ${err.stack}`));
|
|
682
780
|
}
|
|
781
|
+
// Clean up ControlMaster immediately on failure to avoid socket leak
|
|
782
|
+
if (controlMasterHosts.includes(host)) {
|
|
783
|
+
await teardownControlMaster(host).catch(() => { });
|
|
784
|
+
}
|
|
683
785
|
}
|
|
684
786
|
}
|
|
787
|
+
// Clean up all ControlMaster sessions we established during this run
|
|
788
|
+
for (const cmHost of controlMasterHosts) {
|
|
789
|
+
await teardownControlMaster(cmHost).catch(() => { });
|
|
790
|
+
}
|
|
685
791
|
// Show error summary box if there were failures
|
|
686
792
|
if (installErrors.length > 0) {
|
|
687
793
|
console.log();
|