namespace AIStudio.Assistants.Builder; public enum LuaResponseParseError { NONE, MISSING_JSON_OBJECT, INVALID_JSON, EMPTY_JSON_OBJECT, UNSUPPORTED_SCHEMA_VERSION, MISSING_PLUGIN_METADATA, MISSING_ASSISTANT_METADATA, INCOMPLETE_PLUGIN_METADATA, INCOMPLETE_ASSISTANT_METADATA, MISSING_LUA, LUA_MISSING_ID, } public static class LuaResponseParseErrorExtension { private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(LuaResponseParseErrorExtension).Namespace, nameof(LuaResponseParseErrorExtension)); public static string GetMessage(this LuaResponseParseError parseError, string technicalDetails) => parseError switch { LuaResponseParseError.MISSING_JSON_OBJECT => TB("The model response is missing or unreadable."), LuaResponseParseError.INVALID_JSON => string.IsNullOrWhiteSpace(technicalDetails) ? TB("The model returned an invalid response.") : string.Format(TB("The model returned an invalid response: {0}"), technicalDetails), LuaResponseParseError.EMPTY_JSON_OBJECT => TB("The model returned an empty JSON object."), LuaResponseParseError.UNSUPPORTED_SCHEMA_VERSION => TB("The model responded with an unsupported or deprecated JSON schema."), LuaResponseParseError.MISSING_PLUGIN_METADATA => TB("The model's answer is missing the plugin metadata."), LuaResponseParseError.MISSING_ASSISTANT_METADATA => TB("The model's answer is missing the assistant metadata."), LuaResponseParseError.INCOMPLETE_PLUGIN_METADATA => TB("The model's answer contains incomplete plugin metadata."), LuaResponseParseError.INCOMPLETE_ASSISTANT_METADATA => TB("The model's answer contains incomplete assistant metadata."), LuaResponseParseError.MISSING_LUA => TB("The model response does not contain the generated Lua plugin code."), LuaResponseParseError.LUA_MISSING_ID => TB("The generated Lua plugin code does not contain a readable plugin ID."), _ => TB("The model returned an unusable JSON response."), }; }