fetch method
Implementation
Future<Map<String, dynamic>> fetch(
Client client, {
String? customUri,
}) async {
if (customUri != null) {
_logger.debug('Fetching summary by customUri', {'uri': customUri});
return _readAndParse(client, customUri);
}
final resources = await client.listResources();
for (final r in resources) {
if (r.uri == 'ui://views/summary') {
return _readAndParse(client, r.uri);
}
}
for (final r in resources) {
if (r.uri.toLowerCase().contains('summary')) {
return _readAndParse(client, r.uri);
}
}
// Fallback: build a minimal summary from manifest.
Resource? manifest;
for (final r in resources) {
if (r.uri == 'ui://manifest' ||
r.name.toLowerCase().contains('manifest')) {
manifest = r;
break;
}
}
if (manifest != null) {
final data = await _readAndParse(client, manifest.uri);
return _buildFallbackSummary(data);
}
throw ResourceNotFoundException('No summary view available');
}