ModelRolesConfig.fromYaml constructor
ModelRolesConfig.fromYaml(
- YamlMap map
Parses the roles: / modelOverrides: / retry: sections of the CLI
config. Strict: any schema problem throws ConfigException (a corrupt
roles section must surface, never silently reset to defaults).
Implementation
factory ModelRolesConfig.fromYaml(YamlMap map) {
final rolesNode = map['roles'];
if (rolesNode == null) {
throw const ConfigException('no "roles" section in config');
}
final roles = parseRoleChains(rolesNode);
final overridesNode = map['modelOverrides'];
final overrides = <PathRoleOverride>[];
if (overridesNode != null) {
if (overridesNode is! YamlList) {
throw const ConfigException('"modelOverrides" must be a list');
}
for (final entry in overridesNode) {
overrides.add(PathRoleOverride.fromYaml(entry));
}
}
final retryNode = map['retry'];
if (retryNode != null && retryNode is! YamlMap) {
throw const ConfigException('"retry" must be a map of retry settings');
}
final retry = retryNode == null
? const ModelRolesRetryPolicy()
: ModelRolesRetryPolicy.fromYaml(retryNode);
return ModelRolesConfig(
roles: roles,
pathOverrides: overrides,
retry: retry,
);
}