@@ -47,13 +47,6 @@ std::string Repo2Engine(const std::string& r) {
4747 }
4848 return r;
4949};
50-
51- std::string GetEnginePath (std::string_view e) {
52- if (e == kLlamaRepo ) {
53- return kLlamaLibPath ;
54- }
55- return kLlamaLibPath ;
56- };
5750} // namespace
5851
5952cpp::result<void , std::string> EngineService::InstallEngineAsync (
@@ -238,11 +231,10 @@ cpp::result<void, std::string> EngineService::DownloadEngine(
238231 : normalized_version;
239232 std::unordered_set<std::string> merged_variant_name = {
240233 " llama-" + latest_version_semantic + " -bin-" + variant_name.value () +
241- " .tar.gz" ,
234+ " .tar.gz" , // menlo
242235 " llama-" + latest_version_semantic + " -bin-" + variant_name.value () +
243- " .zip" };
236+ " .zip" }; // ggml
244237
245- // CTL_INF("merged_variant_name: " << merged_variant_name);
246238 for (const auto & asset : res.value ()) {
247239 if (merged_variant_name.find (asset.name ) != merged_variant_name.end ()) {
248240 selected_variant = asset;
@@ -279,36 +271,35 @@ cpp::result<void, std::string> EngineService::DownloadEngine(
279271 }
280272 }
281273
282- // auto normalize_version = "v" + selected_variant->version;
283- auto normalize_version = selected_variant->version ;
284274 auto variant_folder_name = engine_matcher_utils::GetVariantFromNameAndVersion (
285275 selected_variant->name , engine, selected_variant->version );
286276 auto variant_folder_path = file_manager_utils::GetEnginesContainerPath () /
287277 engine / variant_folder_name.value () /
288- normalize_version ;
278+ selected_variant-> version ;
289279 auto variant_path = variant_folder_path / selected_variant->name ;
290280
291281 std::filesystem::create_directories (variant_folder_path);
292282
293283 CTL_INF (" variant_folder_path: " + variant_folder_path.string ());
294- auto on_finished = [this , engine, selected_variant, variant_folder_path,
295- normalize_version ](const DownloadTask& finishedTask) {
284+ auto on_finished = [this , engine, selected_variant,
285+ variant_folder_path ](const DownloadTask& finishedTask) {
296286 // try to unzip the downloaded file
297287 CTL_INF (" Engine zip path: " << finishedTask.items [0 ].localPath .string ());
298- CTL_INF (" Version: " + normalize_version );
288+ CTL_INF (" Version: " + selected_variant-> version );
299289
300290 auto extract_path = finishedTask.items [0 ].localPath .parent_path ();
301291 archive_utils::ExtractArchive (finishedTask.items [0 ].localPath .string (),
302292 extract_path.string (), true );
303293 CTL_INF (" local path: " << finishedTask.items [0 ].localPath .string ()
304294 << " , extract path: " << extract_path.string ());
305295 auto variant = engine_matcher_utils::GetVariantFromNameAndVersion (
306- selected_variant->name , engine, normalize_version );
296+ selected_variant->name , engine, selected_variant-> version );
307297 CTL_INF (" Extracted variant: " + variant.value ());
308298 try {
299+ // Create version file
309300 std::ofstream meta (extract_path / " version.txt" , std::ios::out);
310301 meta << " name: " << variant.value () << std::endl;
311- meta << " version: " << normalize_version << std::endl;
302+ meta << " version: " << selected_variant-> version << std::endl;
312303 meta.close ();
313304 namespace fs = std::filesystem;
314305
@@ -326,7 +317,7 @@ cpp::result<void, std::string> EngineService::DownloadEngine(
326317 if (!fs::exists (extract_path.parent_path ().parent_path () / " deps" )) {
327318 fs::create_directory (extract_path.parent_path ().parent_path () / " deps" );
328319 }
329- std::filesystem::permissions (extract_path / " llama-server " ,
320+ std::filesystem::permissions (extract_path / kLlamaServer ,
330321 std::filesystem::perms::owner_exec |
331322 std::filesystem::perms::group_exec |
332323 std::filesystem::perms::others_exec,
@@ -337,17 +328,17 @@ cpp::result<void, std::string> EngineService::DownloadEngine(
337328 }
338329
339330 // set as default
340-
341- auto res =
342- SetDefaultEngineVariant (engine, normalize_version, variant.value ());
331+ auto res = SetDefaultEngineVariant (engine, selected_variant->version ,
332+ variant.value ());
343333 if (res.has_error ()) {
344334 CTL_ERR (" Failed to set default engine variant: " << res.error ());
345335 } else {
346336 CTL_INF (" Set default engine variant: " << res.value ().variant );
347337 }
348- auto create_res = EngineService::UpsertEngine (
349- engine, // engine_name
350- kLocal , " " , " " , normalize_version, variant.value (), " Default" , " " );
338+ auto create_res =
339+ EngineService::UpsertEngine (engine, // engine_name
340+ kLocal , " " , " " , selected_variant->version ,
341+ variant.value (), " Default" , " " );
351342
352343 if (create_res.has_error ()) {
353344 CTL_ERR (" Failed to create engine entry: " << create_res->engine_name );
@@ -358,7 +349,7 @@ cpp::result<void, std::string> EngineService::DownloadEngine(
358349 for (const auto & entry : std::filesystem::directory_iterator (
359350 variant_folder_path.parent_path ())) {
360351 if (entry.is_directory () &&
361- entry.path ().filename () != normalize_version ) {
352+ entry.path ().filename () != selected_variant-> version ) {
362353 try {
363354 std::filesystem::remove_all (entry.path ());
364355 } catch (const std::exception& e) {
@@ -472,8 +463,8 @@ std::string EngineService::GetMatchedVariant(
472463cpp::result<std::vector<EngineService::EngineRelease>, std::string>
473464EngineService::GetEngineReleases (const std::string& engine) const {
474465 auto ne = cortex::engine::NormalizeEngine (engine);
475- auto ggml_org = github_release_utils::GetReleases (" ggml-org " , ne);
476- auto menlo = github_release_utils::GetReleases (" menloresearch " , ne);
466+ auto ggml_org = github_release_utils::GetReleases (kGgmlOrg , ne);
467+ auto menlo = github_release_utils::GetReleases (kMenloOrg , ne);
477468 if (ggml_org.has_error () && menlo.has_error ()) {
478469 return cpp::fail (ggml_org.error ());
479470 }
@@ -500,13 +491,13 @@ EngineService::GetEngineVariants(const std::string& engine,
500491 bool filter_compatible_only) const {
501492 auto ne = cortex::engine::NormalizeEngine (engine);
502493 auto engine_release_menlo =
503- github_release_utils::GetReleaseByVersion (" menloresearch " , ne, version);
494+ github_release_utils::GetReleaseByVersion (kMenloOrg , ne, version);
504495 auto engine_release_ggml =
505- github_release_utils::GetReleaseByVersion (" ggml-org " , ne, version);
496+ github_release_utils::GetReleaseByVersion (kGgmlOrg , ne, version);
506497
507498 if (engine_release_menlo.has_error () && engine_release_ggml.has_error ()) {
508499 return cpp::fail (" Failed to get engine release: " +
509- engine_release_menlo.error ());
500+ engine_release_menlo.error ());
510501 }
511502 if (engine_release_menlo.has_error ()) {
512503 CTL_WRN (" Failed to get engine release: " << engine_release_menlo.error ());
@@ -835,8 +826,8 @@ EngineService::GetEngineDirPath(const std::string& engine_name) {
835826 CTL_DBG (" user defined engine path: " << user_defined_engine_path);
836827 const std::filesystem::path engine_dir_path = [&] {
837828 if (user_defined_engine_path != nullptr ) {
838- return std::filesystem::path (user_defined_engine_path) /
839- GetEnginePath (ne) / selected_engine_variant->variant /
829+ return std::filesystem::path (user_defined_engine_path) / kLlamaLibPath /
830+ selected_engine_variant->variant /
840831 selected_engine_variant->version ;
841832 } else {
842833 return file_manager_utils::GetEnginesContainerPath () / ne /
@@ -897,8 +888,7 @@ std::vector<EngineV> EngineService::GetLoadedEngines() {
897888cpp::result<github_release_utils::GitHubRelease, std::string>
898889EngineService::GetLatestEngineVersion (const std::string& engine) const {
899890 auto ne = cortex::engine::NormalizeEngine (engine);
900- auto res =
901- github_release_utils::GetReleaseByVersion (" menloresearch" , ne, " latest" );
891+ auto res = github_release_utils::GetReleaseByVersion (kMenloOrg , ne, " latest" );
902892 if (res.has_error ()) {
903893 return cpp::fail (" Failed to fetch engine " + engine + " latest version!" );
904894 }
0 commit comments