Skip to content

Commit 83f9193

Browse files
committed
fix: stabilize e2e flow in clean CI env
Signed-off-by: majiayu000 <majiayu000@users.noreply.github.com>
1 parent bc608e9 commit 83f9193

File tree

11 files changed

+146
-92
lines changed

11 files changed

+146
-92
lines changed

out/cli.cjs

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -57238,7 +57238,9 @@ var PROVIDER_BILLING_URLS = {
5723857238
};
5723957239
var 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) {
@@ -67949,11 +67953,9 @@ var GenerateCommitMessageErrorEnum = ((GenerateCommitMessageErrorEnum2) => {
6794967953
return GenerateCommitMessageErrorEnum2;
6795067954
})(GenerateCommitMessageErrorEnum || {});
6795167955
async 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
];
6892768929
var 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
}
6921169222
function 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
}
6922269233
async 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(`
6923469244
API 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
}
6932469344
var 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

out/github-action.cjs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78216,7 +78216,9 @@ var PROVIDER_BILLING_URLS = {
7821678216
};
7821778217
var InsufficientCreditsError = class extends Error {
7821878218
constructor(provider, message) {
78219-
super(message || `Insufficient credits or quota for provider '${provider}'`);
78219+
super(
78220+
message || `Insufficient credits or quota for provider '${provider}'`
78221+
);
7822078222
this.name = "InsufficientCreditsError";
7822178223
this.provider = provider;
7822278224
}
@@ -88734,11 +88736,9 @@ var GenerateCommitMessageErrorEnum = ((GenerateCommitMessageErrorEnum2) => {
8873488736
return GenerateCommitMessageErrorEnum2;
8873588737
})(GenerateCommitMessageErrorEnum || {});
8873688738
async function handleModelNotFoundError(error, provider, currentModel) {
88737-
console.log(
88738-
source_default.red(`
88739+
console.log(source_default.red(`
8873988740
\u2716 Model '${currentModel}' not found
88740-
`)
88741-
);
88741+
`));
8874288742
const suggestedModels = getSuggestedModels(provider, currentModel);
8874388743
const recommended = RECOMMENDED_MODELS[provider];
8874488744
if (suggestedModels.length === 0) {

src/commands/commit.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@ import {
1111
import chalk from 'chalk';
1212
import { execa } from 'execa';
1313
import { generateCommitMessageByDiff } from '../generateCommitMessageFromGitDiff';
14-
import {
15-
formatUserFriendlyError,
16-
printFormattedError
17-
} from '../utils/errors';
14+
import { formatUserFriendlyError, printFormattedError } from '../utils/errors';
1815
import {
1916
assertGitRepo,
2017
getChangedFiles,

src/commands/config.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,8 @@ export enum OCO_AI_PROVIDER_ENUM {
849849

850850
export const PROVIDER_API_KEY_URLS: Record<string, string | null> = {
851851
[OCO_AI_PROVIDER_ENUM.OPENAI]: 'https://platform.openai.com/api-keys',
852-
[OCO_AI_PROVIDER_ENUM.ANTHROPIC]: 'https://console.anthropic.com/settings/keys',
852+
[OCO_AI_PROVIDER_ENUM.ANTHROPIC]:
853+
'https://console.anthropic.com/settings/keys',
853854
[OCO_AI_PROVIDER_ENUM.GEMINI]: 'https://aistudio.google.com/app/apikey',
854855
[OCO_AI_PROVIDER_ENUM.GROQ]: 'https://console.groq.com/keys',
855856
[OCO_AI_PROVIDER_ENUM.MISTRAL]: 'https://console.mistral.ai/api-keys/',
@@ -872,7 +873,7 @@ export const RECOMMENDED_MODELS: Record<string, string> = {
872873
[OCO_AI_PROVIDER_ENUM.DEEPSEEK]: 'deepseek-chat',
873874
[OCO_AI_PROVIDER_ENUM.OPENROUTER]: 'openai/gpt-4o-mini',
874875
[OCO_AI_PROVIDER_ENUM.AIMLAPI]: 'gpt-4o-mini'
875-
}
876+
};
876877

877878
export type ConfigType = {
878879
[CONFIG_KEYS.OCO_API_KEY]?: string;

src/commands/models.ts

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ import { intro, outro, spinner } from '@clack/prompts';
22
import chalk from 'chalk';
33
import { command } from 'cleye';
44
import { COMMANDS } from './ENUMS';
5-
import {
6-
MODEL_LIST,
7-
OCO_AI_PROVIDER_ENUM,
8-
getConfig
9-
} from './config';
5+
import { MODEL_LIST, OCO_AI_PROVIDER_ENUM, getConfig } from './config';
106
import {
117
fetchModelsForProvider,
128
clearModelCache,
@@ -31,7 +27,10 @@ function formatCacheAge(timestamp: number | null): string {
3127
return 'just now';
3228
}
3329

34-
async function listModels(provider: string, useCache: boolean = true): Promise<void> {
30+
async function listModels(
31+
provider: string,
32+
useCache: boolean = true
33+
): Promise<void> {
3534
const config = getConfig();
3635
const apiKey = config.OCO_API_KEY;
3736
const currentModel = config.OCO_MODEL;
@@ -52,7 +51,9 @@ async function listModels(provider: string, useCache: boolean = true): Promise<v
5251
models = MODEL_LIST[providerKey] || [];
5352
}
5453

55-
console.log(`\n${chalk.bold('Available models for')} ${chalk.cyan(provider)}:\n`);
54+
console.log(
55+
`\n${chalk.bold('Available models for')} ${chalk.cyan(provider)}:\n`
56+
);
5657

5758
if (models.length === 0) {
5859
console.log(chalk.dim(' No models found'));
@@ -79,14 +80,23 @@ async function refreshModels(provider: string): Promise<void> {
7980
clearModelCache();
8081

8182
try {
82-
const models = await fetchModelsForProvider(provider, apiKey, undefined, true);
83+
const models = await fetchModelsForProvider(
84+
provider,
85+
apiKey,
86+
undefined,
87+
true
88+
);
8389
loadingSpinner.stop(`${chalk.green('+')} Fetched ${models.length} models`);
8490

8591
// List the models
8692
await listModels(provider, true);
8793
} catch (error) {
8894
loadingSpinner.stop(chalk.red('Failed to fetch models'));
89-
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
95+
console.error(
96+
chalk.red(
97+
`Error: ${error instanceof Error ? error.message : 'Unknown error'}`
98+
)
99+
);
90100
}
91101
}
92102

@@ -112,15 +122,18 @@ export const modelsCommand = command(
112122
},
113123
async ({ flags }) => {
114124
const config = getConfig();
115-
const provider = flags.provider || config.OCO_AI_PROVIDER || OCO_AI_PROVIDER_ENUM.OPENAI;
125+
const provider =
126+
flags.provider || config.OCO_AI_PROVIDER || OCO_AI_PROVIDER_ENUM.OPENAI;
116127

117128
intro(chalk.bgCyan(' OpenCommit Models '));
118129

119130
// Show cache info
120131
const cacheInfo = getCacheInfo();
121132
if (cacheInfo.timestamp) {
122133
console.log(
123-
chalk.dim(` Cache last updated: ${formatCacheAge(cacheInfo.timestamp)}`)
134+
chalk.dim(
135+
` Cache last updated: ${formatCacheAge(cacheInfo.timestamp)}`
136+
)
124137
);
125138
if (cacheInfo.providers.length > 0) {
126139
console.log(
@@ -137,8 +150,6 @@ export const modelsCommand = command(
137150
await listModels(provider);
138151
}
139152

140-
outro(
141-
`Run ${chalk.cyan('oco models --refresh')} to update the model list`
142-
);
153+
outro(`Run ${chalk.cyan('oco models --refresh')} to update the model list`);
143154
}
144155
);

0 commit comments

Comments
 (0)