3557
*/
3558
setNetworkDiagnosticsService(service: INetworkDiagnosticsService): void {
3560
>
}
3561
3562
async getNetworkDiagnosticsInfo(): Promise<IAgentHostNetworkDiagnosticsInfo> {
3564
throw new Error('Network diagnostics unavailable: service not wired');
3565
}
3567
>
const contributions = await Promise.all(providers.map(async provider => {
3568
>
try {
3569
>
return await provider.getNetworkDiagnosticsEndpoints?.() ?? [];
3570
>
} catch (error) {
3571
>
this._logService.warn(`[AgentService] Failed to resolve network diagnostics endpoints for ${provider.id}: ${error instanceof Error ? error.message : String(error)}`);
3572
>
return [];
3573
>
}
3574
>
}));
3575
>
const accounts = await Promise.all(providers.map(async provider => {
3576
>
try {
3577
>
return await provider.getNetworkDiagnosticsAccount?.();
3578
>
} catch (error) {
3579
this._logService.warn(`[AgentService] Failed to resolve network diagnostics account for ${provider.id}: ${error instanceof Error ? error.message : String(error)}`);
3580
return undefined;
3581
}
3583
>
const endpoints: IAgentHostNetworkEndpoint[] = [];
3584
>
const seen = new Set<string>();
3585
>
for (const endpoint of contributions.flat()) {
3586
>
let key: string;
3587
>
try {
3588
>
key = new URL(endpoint.url).toString();
3589
>
} catch {
3590
key = endpoint.url;
3591
}
3593
>
seen.add(key);
3594
>
endpoints.push(endpoint);
3595
>
}
3596
>
}
3597
>
return this._networkDiagnostics.getInfo(endpoints, accounts.find(account => !!account));
3598
>
}
3599
3600
async getManagedSettingsDiagnostics(): Promise<readonly IAgentHostManagedSettingsDiagnostics[]> {