feat: complete debranding of MoreMinimore by removing Dyad dependencies and integrating custom features
This commit is contained in:
@@ -19,14 +19,14 @@ import log from "electron-log";
|
||||
import { FREE_OPENROUTER_MODEL_NAMES } from "../shared/language_model_constants";
|
||||
import { getLanguageModelProviders } from "../shared/language_model_helpers";
|
||||
import { LanguageModelProvider } from "../ipc_types";
|
||||
import { createDyadEngine } from "./llm_engine_provider";
|
||||
// import { createDyadEngine } from "./llm_engine_provider"; // Removed - Dyad Engine dependency
|
||||
|
||||
import { LM_STUDIO_BASE_URL } from "./lm_studio_utils";
|
||||
import { createOllamaProvider } from "./ollama_provider";
|
||||
import { getOllamaApiUrl } from "../handlers/local_model_ollama_handler";
|
||||
import { createFallback } from "./fallback_ai_model";
|
||||
|
||||
const dyadEngineUrl = process.env.DYAD_ENGINE_URL;
|
||||
// const dyadEngineUrl = process.env.DYAD_ENGINE_URL; // Removed - Dyad Engine dependency
|
||||
|
||||
const AUTO_MODELS = [
|
||||
{
|
||||
@@ -73,56 +73,13 @@ export async function getModelClient(
|
||||
throw new Error(`Configuration not found for provider: ${model.provider}`);
|
||||
}
|
||||
|
||||
// Handle Dyad Pro override
|
||||
// Dyad Pro functionality removed - eliminated Dyad Engine dependency
|
||||
// All models now use direct provider connections
|
||||
if (dyadApiKey && settings.enableDyadPro) {
|
||||
// Check if the selected provider supports Dyad Pro (has a gateway prefix) OR
|
||||
// we're using local engine.
|
||||
// IMPORTANT: some providers like OpenAI have an empty string gateway prefix,
|
||||
// so we do a nullish and not a truthy check here.
|
||||
if (providerConfig.gatewayPrefix != null || dyadEngineUrl) {
|
||||
const enableSmartFilesContext = settings.enableProSmartFilesContextMode;
|
||||
const provider = createDyadEngine({
|
||||
apiKey: dyadApiKey,
|
||||
baseURL: dyadEngineUrl ?? "https://engine.dyad.sh/v1",
|
||||
originalProviderId: model.provider,
|
||||
dyadOptions: {
|
||||
enableLazyEdits:
|
||||
settings.selectedChatMode === "ask"
|
||||
? false
|
||||
: settings.enableProLazyEditsMode &&
|
||||
settings.proLazyEditsMode !== "v2",
|
||||
enableSmartFilesContext,
|
||||
enableWebSearch: settings.enableProWebSearch,
|
||||
},
|
||||
settings,
|
||||
});
|
||||
|
||||
logger.info(
|
||||
`\x1b[1;97;44m Using Dyad Pro API key for model: ${model.name} \x1b[0m`,
|
||||
);
|
||||
|
||||
logger.info(
|
||||
`\x1b[1;30;42m Using Dyad Pro engine: ${dyadEngineUrl ?? "<prod>"} \x1b[0m`,
|
||||
);
|
||||
|
||||
// Do not use free variant (for openrouter).
|
||||
const modelName = model.name.split(":free")[0];
|
||||
const autoModelClient = {
|
||||
model: provider(`${providerConfig.gatewayPrefix || ""}${modelName}`),
|
||||
builtinProviderId: model.provider,
|
||||
};
|
||||
|
||||
return {
|
||||
modelClient: autoModelClient,
|
||||
isEngineEnabled: true,
|
||||
isSmartContextEnabled: enableSmartFilesContext,
|
||||
};
|
||||
} else {
|
||||
logger.warn(
|
||||
`Dyad Pro enabled, but provider ${model.provider} does not have a gateway prefix defined. Falling back to direct provider connection.`,
|
||||
);
|
||||
// Fall through to regular provider logic if gateway prefix is missing
|
||||
}
|
||||
logger.warn(
|
||||
`Dyad Pro was enabled but has been disabled to remove Dyad API dependency. Falling back to direct provider connection.`,
|
||||
);
|
||||
// Fall through to regular provider logic
|
||||
}
|
||||
// Handle 'auto' provider by trying each model in AUTO_MODELS until one works
|
||||
if (model.provider === "auto") {
|
||||
|
||||
Reference in New Issue
Block a user