Skip to content

Commit cb13a1f

Browse files
khaliqgantclaude
andcommitted
self-contained dashboard: auto-create RelayAdapter, remove unpublished dep
- Remove @agent-relay/broker-sdk from devDependencies (not published yet) - Auto-create RelayAdapter via dynamic import when projectRoot is available - Dashboard works standalone without CLI passing an adapter - Falls back to legacy AgentSpawner if broker-sdk not installed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8e20690 commit cb13a1f

2 files changed

Lines changed: 19 additions & 2 deletions

File tree

packages/dashboard-server/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
"ws": "^8.18.3"
4848
},
4949
"devDependencies": {
50-
"@agent-relay/broker-sdk": "2.3.4",
5150
"@types/express": "^5.0.6",
5251
"@types/node": "^22.19.3",
5352
"@types/supertest": "^6.0.2",

packages/dashboard-server/src/server.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,25 @@ export async function startDashboard(
462462
? { port: portOrOptions, dataDir: dataDirArg!, teamDir: teamDirArg!, dbPath: dbPathArg }
463463
: portOrOptions;
464464

465-
const { port, dataDir, teamDir, dbPath, enableSpawner, projectRoot, tmuxSession, onMarkSpawning, onClearSpawning, verbose, spawnManager: externalSpawnManager, relayAdapter } = options;
465+
const { port, dataDir, teamDir, dbPath, enableSpawner, projectRoot, tmuxSession, onMarkSpawning, onClearSpawning, verbose, spawnManager: externalSpawnManager } = options;
466+
let { relayAdapter } = options;
467+
468+
// Auto-create a RelayAdapter when projectRoot is available and no adapter/spawnManager is passed.
469+
// This makes the dashboard self-contained — `relay-dashboard-server --integrated --project-root .`
470+
// works without the CLI.
471+
if (!relayAdapter && !externalSpawnManager && enableSpawner && projectRoot) {
472+
try {
473+
const brokerSdk = await import('@agent-relay/broker-sdk');
474+
relayAdapter = new brokerSdk.RelayAdapter({
475+
cwd: projectRoot,
476+
clientName: 'dashboard',
477+
});
478+
console.log('[dashboard] Auto-created RelayAdapter for broker mode');
479+
} catch {
480+
// @agent-relay/broker-sdk not installed — fall back to legacy AgentSpawner
481+
}
482+
}
483+
466484
const useBrokerAdapter = !!relayAdapter;
467485

468486
// Debug logging helper - only logs when verbose is true or VERBOSE env var is set

0 commit comments

Comments
 (0)