getProxyFetchOptions function

ProxyFetchOptions getProxyFetchOptions({
  1. bool forAnthropicAPI = false,
})

Get fetch options with proxy and mTLS configuration.

Implementation

ProxyFetchOptions getProxyFetchOptions({bool forAnthropicAPI = false}) {
  final keepAlive = !_keepAliveDisabled;

  // ANTHROPIC_UNIX_SOCKET tunneling (for `neomage ssh`)
  if (forAnthropicAPI) {
    final unixSocket = Platform.environment['ANTHROPIC_UNIX_SOCKET'];
    if (unixSocket != null && unixSocket.isNotEmpty) {
      return ProxyFetchOptions(unixSocket: unixSocket, keepAlive: keepAlive);
    }
  }

  final proxyUrl = getProxyUrl();

  if (proxyUrl != null) {
    return ProxyFetchOptions(
      proxyUrl: proxyUrl,
      tlsConfig: getTLSConfig(),
      keepAlive: keepAlive,
    );
  }

  return ProxyFetchOptions(tlsConfig: getTLSConfig(), keepAlive: keepAlive);
}