@@ -57238,7 +57238,9 @@ var PROVIDER_BILLING_URLS = {
5723857238};
5723957239var InsufficientCreditsError = class extends Error {
5724057240 constructor(provider, message) {
57241- super(message || `Insufficient credits or quota for provider '${provider}'`);
57241+ super(
57242+ message || `Insufficient credits or quota for provider '${provider}'`
57243+ );
5724257244 this.name = "InsufficientCreditsError";
5724357245 this.provider = provider;
5724457246 }
@@ -57490,7 +57492,9 @@ ${source_default.red("\u2716")} ${source_default.bold.red(formatted.title)}
5749057492`;
5749157493 if (formatted.helpUrl) {
5749257494 output += `
57493- ${source_default.cyan("Help:")} ${source_default.underline(formatted.helpUrl)}
57495+ ${source_default.cyan("Help:")} ${source_default.underline(
57496+ formatted.helpUrl
57497+ )}
5749457498`;
5749557499 }
5749657500 if (formatted.suggestion) {
@@ -67277,8 +67281,8 @@ var MLXEngine = class {
6727767281var DeepseekEngine = class extends OpenAiEngine {
6727867282 constructor(config7) {
6727967283 super({
67280- ...config7 ,
67281- baseURL: "https://api.deepseek.com/v1"
67284+ baseURL: "https://api.deepseek.com/v1" ,
67285+ ...config7
6728267286 });
6728367287 // Identical method from OpenAiEngine, re-implemented here
6728467288 this.generateCommitMessage = async (messages) => {
@@ -67949,11 +67953,9 @@ var GenerateCommitMessageErrorEnum = ((GenerateCommitMessageErrorEnum2) => {
6794967953 return GenerateCommitMessageErrorEnum2;
6795067954})(GenerateCommitMessageErrorEnum || {});
6795167955async function handleModelNotFoundError(error, provider, currentModel) {
67952- console.log(
67953- source_default.red(`
67956+ console.log(source_default.red(`
6795467957\u2716 Model '${currentModel}' not found
67955- `)
67956- );
67958+ `));
6795767959 const suggestedModels = getSuggestedModels(provider, currentModel);
6795867960 const recommended = RECOMMENDED_MODELS[provider];
6795967961 if (suggestedModels.length === 0) {
@@ -68925,6 +68927,11 @@ var OTHER_PROVIDERS = [
6892568927 "mlx" /* MLX */
6892668928];
6892768929var NO_API_KEY_PROVIDERS = [
68930+ "ollama" /* OLLAMA */,
68931+ "mlx" /* MLX */,
68932+ "test" /* TEST */
68933+ ];
68934+ var MODEL_REQUIRED_PROVIDERS = [
6892868935 "ollama" /* OLLAMA */,
6892968936 "mlx" /* MLX */
6893068937];
@@ -69202,21 +69209,25 @@ async function runSetup() {
6920269209 };
6920369210 setGlobalConfig(newConfig);
6920469211 ce(
69205- `${source_default.green("\u2714")} Configuration saved to ~/.opencommit
69212+ `${source_default.green(
69213+ "\u2714"
69214+ )} Configuration saved to ~/.opencommit
6920669215
69207- Run ${source_default.cyan("oco")} to generate commit messages!`
69216+ Run ${source_default.cyan(
69217+ "oco"
69218+ )} to generate commit messages!`
6920869219 );
6920969220 return true;
6921069221}
6921169222function isFirstRun() {
69212- if (!getIsGlobalConfigFileExist()) {
69213- return true;
69214- }
6921569223 const config7 = getConfig();
6921669224 const provider = config7.OCO_AI_PROVIDER || "openai" /* OPENAI */;
69217- if (NO_API_KEY_PROVIDERS .includes(provider)) {
69225+ if (MODEL_REQUIRED_PROVIDERS .includes(provider)) {
6921869226 return !config7.OCO_MODEL;
6921969227 }
69228+ if (provider === "test" /* TEST */) {
69229+ return false;
69230+ }
6922069231 return !config7.OCO_API_KEY;
6922169232}
6922269233async function promptForMissingApiKey() {
@@ -69229,11 +69240,9 @@ async function promptForMissingApiKey() {
6922969240 return true;
6923069241 }
6923169242 console.log(
69232- source_default.yellow(
69233- `
69243+ source_default.yellow(`
6923469244API key missing for ${provider}. Let's set it up.
69235- `
69236- )
69245+ `)
6923769246 );
6923869247 const apiKey = await getApiKey(provider);
6923969248 if (hD2(apiKey)) {
@@ -69291,9 +69300,11 @@ async function listModels(provider, useCache = true) {
6929169300 const providerKey = provider.toLowerCase();
6929269301 models = MODEL_LIST[providerKey] || [];
6929369302 }
69294- console.log(`
69303+ console.log(
69304+ `
6929569305${source_default.bold("Available models for")} ${source_default.cyan(provider)}:
69296- `);
69306+ `
69307+ );
6929769308 if (models.length === 0) {
6929869309 console.log(source_default.dim(" No models found"));
6929969310 } else {
@@ -69313,12 +69324,21 @@ async function refreshModels(provider) {
6931369324 loadingSpinner.start(`Fetching models from ${provider}...`);
6931469325 clearModelCache();
6931569326 try {
69316- const models = await fetchModelsForProvider(provider, apiKey, void 0, true);
69327+ const models = await fetchModelsForProvider(
69328+ provider,
69329+ apiKey,
69330+ void 0,
69331+ true
69332+ );
6931769333 loadingSpinner.stop(`${source_default.green("+")} Fetched ${models.length} models`);
6931869334 await listModels(provider, true);
6931969335 } catch (error) {
6932069336 loadingSpinner.stop(source_default.red("Failed to fetch models"));
69321- console.error(source_default.red(`Error: ${error instanceof Error ? error.message : "Unknown error"}`));
69337+ console.error(
69338+ source_default.red(
69339+ `Error: ${error instanceof Error ? error.message : "Unknown error"}`
69340+ )
69341+ );
6932269342 }
6932369343}
6932469344var modelsCommand = G3(
@@ -69348,7 +69368,9 @@ var modelsCommand = G3(
6934869368 const cacheInfo = getCacheInfo();
6934969369 if (cacheInfo.timestamp) {
6935069370 console.log(
69351- source_default.dim(` Cache last updated: ${formatCacheAge2(cacheInfo.timestamp)}`)
69371+ source_default.dim(
69372+ ` Cache last updated: ${formatCacheAge2(cacheInfo.timestamp)}`
69373+ )
6935269374 );
6935369375 if (cacheInfo.providers.length > 0) {
6935469376 console.log(
@@ -69363,9 +69385,7 @@ var modelsCommand = G3(
6936369385 } else {
6936469386 await listModels(provider);
6936569387 }
69366- ce(
69367- `Run ${source_default.cyan("oco models --refresh")} to update the model list`
69368- );
69388+ ce(`Run ${source_default.cyan("oco models --refresh")} to update the model list`);
6936969389 }
6937069390);
6937169391
@@ -69561,7 +69581,13 @@ Z2(
6956169581 {
6956269582 version: package_default.version,
6956369583 name: "opencommit",
69564- commands: [configCommand, hookCommand, commitlintConfigCommand, setupCommand, modelsCommand],
69584+ commands: [
69585+ configCommand,
69586+ hookCommand,
69587+ commitlintConfigCommand,
69588+ setupCommand,
69589+ modelsCommand
69590+ ],
6956569591 flags: {
6956669592 fgm: {
6956769593 type: Boolean,
@@ -69585,23 +69611,23 @@ Z2(
6958569611 help: { description: package_default.description }
6958669612 },
6958769613 async ({ flags }) => {
69614+ if (await isHookCalled()) {
69615+ await prepareCommitMessageHook();
69616+ return;
69617+ }
6958869618 await runMigrations();
6958969619 await checkIsLatestVersion();
69590- if (await isHookCalled()) {
69591- prepareCommitMessageHook();
69592- } else {
69593- if (isFirstRun()) {
69594- const setupComplete = await runSetup();
69595- if (!setupComplete) {
69596- process.exit(1);
69597- }
69598- }
69599- const hasApiKey = await promptForMissingApiKey();
69600- if (!hasApiKey) {
69620+ if (isFirstRun()) {
69621+ const setupComplete = await runSetup();
69622+ if (!setupComplete) {
6960169623 process.exit(1);
6960269624 }
69603- commit(extraArgs, flags.context, false, flags.fgm, flags.yes);
6960469625 }
69626+ const hasApiKey = await promptForMissingApiKey();
69627+ if (!hasApiKey) {
69628+ process.exit(1);
69629+ }
69630+ commit(extraArgs, flags.context, false, flags.fgm, flags.yes);
6960569631 },
6960669632 extraArgs
6960769633);
0 commit comments