start method
Starts the dashboard HTTP server.
Implementation
Future<void> start() async {
Jaspr.initializeApp();
final router = Router()
..get('/api/agents', _handleAgentsApi)
..get('/api/project', _handleProjectApi)
..get('/api/v1/state', _handleV1State)
..get('/api/v1/issue/<identifier>', _handleV1Issue)
..post('/api/v1/refresh', _handleV1Refresh)
..get('/', _handleDashboard);
final handler = const shelf.Pipeline()
.addMiddleware(_corsMiddleware())
.addMiddleware(
shelf.logRequests(
logger: (msg, isError) {
if (isError) {
logger.err(msg);
} else {
logger.detail(msg);
}
},
),
)
.addHandler(router.call);
_server = await shelf_io.serve(handler, InternetAddress.loopbackIPv4, port);
logger.success('Dashboard running at http://localhost:$port');
logger.info('Press Ctrl+C to stop.');
}