SyniRuntimeCapabilities.fromJson constructor

SyniRuntimeCapabilities.fromJson(
  1. String json
)

Implementation

factory SyniRuntimeCapabilities.fromJson(String json) {
  final decoded = jsonDecode(json);
  if (decoded is! Map) {
    throw SyniRuntimeError.protocol(
        'runtime capabilities were not an object');
  }
  final versions = decoded['api_versions'];
  final roles = decoded['roles'];
  final generation = decoded['generation'];
  final streaming = decoded['streaming'];
  return SyniRuntimeCapabilities(
    apiVersions: versions is List
        ? versions.whereType<String>().toList(growable: false)
        : const [],
    backend: _asString(decoded['backend']) ?? 'unknown',
    accelerator: _asString(decoded['accelerator']) ?? 'unknown',
    supportsSystemRole: roles is Map && roles['system'] == true,
    generationControls: generation is Map
        ? generation.entries
            .where((entry) => entry.value == true)
            .map((entry) => entry.key.toString())
            .toSet()
        : const {},
    supportsStructuredDecoding: decoded['structured_decoding'] == true,
    supportsStreaming: streaming is Map && streaming['supported'] == true,
    streamsDisplayText:
        streaming is Map && streaming['display_text_deltas'] == true,
    supportsProvenance: decoded['provenance'] == true,
    isLegacy: false,
  );
}