build
This commit is contained in:
+55
-15
@@ -18650,7 +18650,6 @@ function getI18nLocal(value) {
|
|||||||
|
|
||||||
// src/commands/config.ts
|
// src/commands/config.ts
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
var DEFAULT_MODEL_TOKEN_LIMIT = 4096;
|
|
||||||
var validateConfig = (key, condition, validationMessage) => {
|
var validateConfig = (key, condition, validationMessage) => {
|
||||||
if (!condition) {
|
if (!condition) {
|
||||||
ce(
|
ce(
|
||||||
@@ -18682,17 +18681,33 @@ var configValidators = {
|
|||||||
);
|
);
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
["OCO_OPENAI_MAX_TOKENS" /* OCO_OPENAI_MAX_TOKENS */](value) {
|
["OCO_TOKENS_MAX_INPUT" /* OCO_TOKENS_MAX_INPUT */](value) {
|
||||||
if (typeof value === "string") {
|
if (typeof value === "string") {
|
||||||
value = parseInt(value);
|
value = parseInt(value);
|
||||||
validateConfig(
|
validateConfig(
|
||||||
"OCO_OPENAI_MAX_TOKENS" /* OCO_OPENAI_MAX_TOKENS */,
|
"OCO_TOKENS_MAX_INPUT" /* OCO_TOKENS_MAX_INPUT */,
|
||||||
!isNaN(value),
|
!isNaN(value),
|
||||||
"Must be a number"
|
"Must be a number"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
validateConfig(
|
validateConfig(
|
||||||
"OCO_OPENAI_MAX_TOKENS" /* OCO_OPENAI_MAX_TOKENS */,
|
"OCO_TOKENS_MAX_INPUT" /* OCO_TOKENS_MAX_INPUT */,
|
||||||
|
value ? typeof value === "number" : void 0,
|
||||||
|
"Must be a number"
|
||||||
|
);
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
["OCO_TOKENS_MAX_OUTPUT" /* OCO_TOKENS_MAX_OUTPUT */](value) {
|
||||||
|
if (typeof value === "string") {
|
||||||
|
value = parseInt(value);
|
||||||
|
validateConfig(
|
||||||
|
"OCO_TOKENS_MAX_OUTPUT" /* OCO_TOKENS_MAX_OUTPUT */,
|
||||||
|
!isNaN(value),
|
||||||
|
"Must be a number"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
validateConfig(
|
||||||
|
"OCO_TOKENS_MAX_OUTPUT" /* OCO_TOKENS_MAX_OUTPUT */,
|
||||||
value ? typeof value === "number" : void 0,
|
value ? typeof value === "number" : void 0,
|
||||||
"Must be a number"
|
"Must be a number"
|
||||||
);
|
);
|
||||||
@@ -18729,9 +18744,10 @@ var configValidators = {
|
|||||||
"gpt-3.5-turbo",
|
"gpt-3.5-turbo",
|
||||||
"gpt-4",
|
"gpt-4",
|
||||||
"gpt-3.5-turbo-16k",
|
"gpt-3.5-turbo-16k",
|
||||||
"gpt-3.5-turbo-0613"
|
"gpt-3.5-turbo-0613",
|
||||||
|
"gpt-4-1106-preview"
|
||||||
].includes(value),
|
].includes(value),
|
||||||
`${value} is not supported yet, use 'gpt-4', 'gpt-3.5-turbo-16k' (default), 'gpt-3.5-turbo-0613' or 'gpt-3.5-turbo'`
|
`${value} is not supported yet, use 'gpt-4', 'gpt-3.5-turbo-16k' (default), 'gpt-3.5-turbo-0613', 'gpt-3.5-turbo' or 'gpt-4-1106-preview'`
|
||||||
);
|
);
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
@@ -18768,7 +18784,8 @@ var configPath = (0, import_path.join)((0, import_os.homedir)(), ".opencommit");
|
|||||||
var getConfig = () => {
|
var getConfig = () => {
|
||||||
const configFromEnv = {
|
const configFromEnv = {
|
||||||
OCO_OPENAI_API_KEY: process.env.OCO_OPENAI_API_KEY,
|
OCO_OPENAI_API_KEY: process.env.OCO_OPENAI_API_KEY,
|
||||||
OCO_OPENAI_MAX_TOKENS: process.env.OCO_OPENAI_MAX_TOKENS ? Number(process.env.OCO_OPENAI_MAX_TOKENS) : void 0,
|
OCO_TOKENS_MAX_INPUT: process.env.OCO_TOKENS_MAX_INPUT ? Number(process.env.OCO_TOKENS_MAX_INPUT) : void 0,
|
||||||
|
OCO_TOKENS_MAX_OUTPUT: process.env.OCO_TOKENS_MAX_OUTPUT ? Number(process.env.OCO_TOKENS_MAX_OUTPUT) : void 0,
|
||||||
OCO_OPENAI_BASE_PATH: process.env.OCO_OPENAI_BASE_PATH,
|
OCO_OPENAI_BASE_PATH: process.env.OCO_OPENAI_BASE_PATH,
|
||||||
OCO_DESCRIPTION: process.env.OCO_DESCRIPTION === "true" ? true : false,
|
OCO_DESCRIPTION: process.env.OCO_DESCRIPTION === "true" ? true : false,
|
||||||
OCO_EMOJI: process.env.OCO_EMOJI === "true" ? true : false,
|
OCO_EMOJI: process.env.OCO_EMOJI === "true" ? true : false,
|
||||||
@@ -19036,6 +19053,15 @@ var removeDoubleNewlines = (input) => {
|
|||||||
}
|
}
|
||||||
return input;
|
return input;
|
||||||
};
|
};
|
||||||
|
var getJSONBlock = (input) => {
|
||||||
|
const jsonIndex = input.search("```json");
|
||||||
|
if (jsonIndex > -1) {
|
||||||
|
input = input.slice(jsonIndex + 8);
|
||||||
|
const endJsonIndex = consistency.search("```");
|
||||||
|
input = input.slice(0, endJsonIndex);
|
||||||
|
}
|
||||||
|
return input;
|
||||||
|
};
|
||||||
var commitlintLLMConfigExists = async () => {
|
var commitlintLLMConfigExists = async () => {
|
||||||
let exists;
|
let exists;
|
||||||
try {
|
try {
|
||||||
@@ -21899,7 +21925,8 @@ function tokenCount(content) {
|
|||||||
|
|
||||||
// src/engine/openAi.ts
|
// src/engine/openAi.ts
|
||||||
var config3 = getConfig();
|
var config3 = getConfig();
|
||||||
var maxTokens = config3?.OCO_OPENAI_MAX_TOKENS;
|
var MAX_TOKENS_OUTPUT = config3?.OCO_TOKENS_MAX_OUTPUT || 500 /* DEFAULT_MAX_TOKENS_OUTPUT */;
|
||||||
|
var MAX_TOKENS_INPUT = config3?.OCO_TOKENS_MAX_INPUT || 4096 /* DEFAULT_MAX_TOKENS_INPUT */;
|
||||||
var basePath = config3?.OCO_OPENAI_BASE_PATH;
|
var basePath = config3?.OCO_OPENAI_BASE_PATH;
|
||||||
var apiKey = config3?.OCO_OPENAI_API_KEY;
|
var apiKey = config3?.OCO_OPENAI_API_KEY;
|
||||||
var [command, mode] = process.argv.slice(2);
|
var [command, mode] = process.argv.slice(2);
|
||||||
@@ -21932,11 +21959,11 @@ var OpenAi = class {
|
|||||||
messages,
|
messages,
|
||||||
temperature: 0,
|
temperature: 0,
|
||||||
top_p: 0.1,
|
top_p: 0.1,
|
||||||
max_tokens: maxTokens || 500
|
max_tokens: MAX_TOKENS_OUTPUT
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
const REQUEST_TOKENS = messages.map((msg) => tokenCount(msg.content) + 4).reduce((a2, b6) => a2 + b6, 0);
|
const REQUEST_TOKENS = messages.map((msg) => tokenCount(msg.content) + 4).reduce((a2, b6) => a2 + b6, 0);
|
||||||
if (REQUEST_TOKENS > DEFAULT_MODEL_TOKEN_LIMIT - maxTokens) {
|
if (REQUEST_TOKENS > MAX_TOKENS_INPUT - MAX_TOKENS_OUTPUT) {
|
||||||
throw new Error("TOO_MUCH_TOKENS" /* tooMuchTokens */);
|
throw new Error("TOO_MUCH_TOKENS" /* tooMuchTokens */);
|
||||||
}
|
}
|
||||||
const { data } = await this.openAI.createChatCompletion(params);
|
const { data } = await this.openAI.createChatCompletion(params);
|
||||||
@@ -22020,15 +22047,16 @@ var configureCommitlintIntegration = async (force = false) => {
|
|||||||
const prompts = inferPromptsFromCommitlintConfig(commitLintConfig);
|
const prompts = inferPromptsFromCommitlintConfig(commitLintConfig);
|
||||||
const consistencyPrompts = commitlintPrompts.GEN_COMMITLINT_CONSISTENCY_PROMPT(prompts);
|
const consistencyPrompts = commitlintPrompts.GEN_COMMITLINT_CONSISTENCY_PROMPT(prompts);
|
||||||
const engine = getEngine();
|
const engine = getEngine();
|
||||||
let consistency = await engine.generateCommitMessage(consistencyPrompts) || "{}";
|
let consistency2 = await engine.generateCommitMessage(consistencyPrompts) || "{}";
|
||||||
prompts.forEach((prompt) => consistency = consistency.replace(prompt, ""));
|
prompts.forEach((prompt) => consistency2 = consistency2.replace(prompt, ""));
|
||||||
consistency = removeDoubleNewlines(consistency);
|
consistency2 = getJSONBlock(consistency2);
|
||||||
|
consistency2 = removeDoubleNewlines(consistency2);
|
||||||
const commitlintLLMConfig = {
|
const commitlintLLMConfig = {
|
||||||
hash,
|
hash,
|
||||||
prompts,
|
prompts,
|
||||||
consistency: {
|
consistency: {
|
||||||
[translation2.localLanguage]: {
|
[translation2.localLanguage]: {
|
||||||
...JSON.parse(consistency)
|
...JSON.parse(consistency2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -22127,6 +22155,8 @@ function mergeDiffs(arr, maxStringLength) {
|
|||||||
|
|
||||||
// src/generateCommitMessageFromGitDiff.ts
|
// src/generateCommitMessageFromGitDiff.ts
|
||||||
var config6 = getConfig();
|
var config6 = getConfig();
|
||||||
|
var MAX_TOKENS_INPUT2 = config6?.OCO_TOKENS_MAX_INPUT || 4096 /* DEFAULT_MAX_TOKENS_INPUT */;
|
||||||
|
var MAX_TOKENS_OUTPUT2 = config6?.OCO_TOKENS_MAX_OUTPUT || 500 /* DEFAULT_MAX_TOKENS_OUTPUT */;
|
||||||
var generateCommitMessageChatCompletionPrompt = async (diff) => {
|
var generateCommitMessageChatCompletionPrompt = async (diff) => {
|
||||||
const INIT_MESSAGES_PROMPT = await getMainCommitPrompt();
|
const INIT_MESSAGES_PROMPT = await getMainCommitPrompt();
|
||||||
const chatContextAsCompletionRequest = [...INIT_MESSAGES_PROMPT];
|
const chatContextAsCompletionRequest = [...INIT_MESSAGES_PROMPT];
|
||||||
@@ -22136,6 +22166,13 @@ var generateCommitMessageChatCompletionPrompt = async (diff) => {
|
|||||||
});
|
});
|
||||||
return chatContextAsCompletionRequest;
|
return chatContextAsCompletionRequest;
|
||||||
};
|
};
|
||||||
|
var GenerateCommitMessageErrorEnum = ((GenerateCommitMessageErrorEnum2) => {
|
||||||
|
GenerateCommitMessageErrorEnum2["tooMuchTokens"] = "TOO_MUCH_TOKENS";
|
||||||
|
GenerateCommitMessageErrorEnum2["internalError"] = "INTERNAL_ERROR";
|
||||||
|
GenerateCommitMessageErrorEnum2["emptyMessage"] = "EMPTY_MESSAGE";
|
||||||
|
GenerateCommitMessageErrorEnum2[GenerateCommitMessageErrorEnum2["outputTokensTooHigh"] = `Token limit exceeded, OCO_TOKENS_MAX_OUTPUT must not be much higher than the default ${500 /* DEFAULT_MAX_TOKENS_OUTPUT */} tokens.`] = "outputTokensTooHigh";
|
||||||
|
return GenerateCommitMessageErrorEnum2;
|
||||||
|
})(GenerateCommitMessageErrorEnum || {});
|
||||||
var ADJUSTMENT_FACTOR = 20;
|
var ADJUSTMENT_FACTOR = 20;
|
||||||
var generateCommitMessageByDiff = async (diff) => {
|
var generateCommitMessageByDiff = async (diff) => {
|
||||||
try {
|
try {
|
||||||
@@ -22143,7 +22180,7 @@ var generateCommitMessageByDiff = async (diff) => {
|
|||||||
const INIT_MESSAGES_PROMPT_LENGTH = INIT_MESSAGES_PROMPT.map(
|
const INIT_MESSAGES_PROMPT_LENGTH = INIT_MESSAGES_PROMPT.map(
|
||||||
(msg) => tokenCount(msg.content) + 4
|
(msg) => tokenCount(msg.content) + 4
|
||||||
).reduce((a2, b6) => a2 + b6, 0);
|
).reduce((a2, b6) => a2 + b6, 0);
|
||||||
const MAX_REQUEST_TOKENS = DEFAULT_MODEL_TOKEN_LIMIT - ADJUSTMENT_FACTOR - INIT_MESSAGES_PROMPT_LENGTH - config6?.OCO_OPENAI_MAX_TOKENS;
|
const MAX_REQUEST_TOKENS = MAX_TOKENS_INPUT2 - ADJUSTMENT_FACTOR - INIT_MESSAGES_PROMPT_LENGTH - MAX_TOKENS_OUTPUT2;
|
||||||
if (tokenCount(diff) >= MAX_REQUEST_TOKENS) {
|
if (tokenCount(diff) >= MAX_REQUEST_TOKENS) {
|
||||||
const commitMessagePromises = await getCommitMsgsPromisesFromFileDiffs(
|
const commitMessagePromises = await getCommitMsgsPromisesFromFileDiffs(
|
||||||
diff,
|
diff,
|
||||||
@@ -22198,6 +22235,9 @@ function splitDiff(diff, maxChangeLength) {
|
|||||||
const lines = diff.split("\n");
|
const lines = diff.split("\n");
|
||||||
const splitDiffs = [];
|
const splitDiffs = [];
|
||||||
let currentDiff = "";
|
let currentDiff = "";
|
||||||
|
if (maxChangeLength <= 0) {
|
||||||
|
throw new Error(GenerateCommitMessageErrorEnum.outputTokensTooHigh);
|
||||||
|
}
|
||||||
for (let line of lines) {
|
for (let line of lines) {
|
||||||
while (tokenCount(line) > maxChangeLength) {
|
while (tokenCount(line) > maxChangeLength) {
|
||||||
const subLine = line.substring(0, maxChangeLength);
|
const subLine = line.substring(0, maxChangeLength);
|
||||||
|
|||||||
+55
-15
@@ -24145,7 +24145,6 @@ function getI18nLocal(value) {
|
|||||||
|
|
||||||
// src/commands/config.ts
|
// src/commands/config.ts
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
var DEFAULT_MODEL_TOKEN_LIMIT = 4096;
|
|
||||||
var validateConfig = (key, condition, validationMessage) => {
|
var validateConfig = (key, condition, validationMessage) => {
|
||||||
if (!condition) {
|
if (!condition) {
|
||||||
ce(
|
ce(
|
||||||
@@ -24177,17 +24176,33 @@ var configValidators = {
|
|||||||
);
|
);
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
["OCO_OPENAI_MAX_TOKENS" /* OCO_OPENAI_MAX_TOKENS */](value) {
|
["OCO_TOKENS_MAX_INPUT" /* OCO_TOKENS_MAX_INPUT */](value) {
|
||||||
if (typeof value === "string") {
|
if (typeof value === "string") {
|
||||||
value = parseInt(value);
|
value = parseInt(value);
|
||||||
validateConfig(
|
validateConfig(
|
||||||
"OCO_OPENAI_MAX_TOKENS" /* OCO_OPENAI_MAX_TOKENS */,
|
"OCO_TOKENS_MAX_INPUT" /* OCO_TOKENS_MAX_INPUT */,
|
||||||
!isNaN(value),
|
!isNaN(value),
|
||||||
"Must be a number"
|
"Must be a number"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
validateConfig(
|
validateConfig(
|
||||||
"OCO_OPENAI_MAX_TOKENS" /* OCO_OPENAI_MAX_TOKENS */,
|
"OCO_TOKENS_MAX_INPUT" /* OCO_TOKENS_MAX_INPUT */,
|
||||||
|
value ? typeof value === "number" : void 0,
|
||||||
|
"Must be a number"
|
||||||
|
);
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
["OCO_TOKENS_MAX_OUTPUT" /* OCO_TOKENS_MAX_OUTPUT */](value) {
|
||||||
|
if (typeof value === "string") {
|
||||||
|
value = parseInt(value);
|
||||||
|
validateConfig(
|
||||||
|
"OCO_TOKENS_MAX_OUTPUT" /* OCO_TOKENS_MAX_OUTPUT */,
|
||||||
|
!isNaN(value),
|
||||||
|
"Must be a number"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
validateConfig(
|
||||||
|
"OCO_TOKENS_MAX_OUTPUT" /* OCO_TOKENS_MAX_OUTPUT */,
|
||||||
value ? typeof value === "number" : void 0,
|
value ? typeof value === "number" : void 0,
|
||||||
"Must be a number"
|
"Must be a number"
|
||||||
);
|
);
|
||||||
@@ -24224,9 +24239,10 @@ var configValidators = {
|
|||||||
"gpt-3.5-turbo",
|
"gpt-3.5-turbo",
|
||||||
"gpt-4",
|
"gpt-4",
|
||||||
"gpt-3.5-turbo-16k",
|
"gpt-3.5-turbo-16k",
|
||||||
"gpt-3.5-turbo-0613"
|
"gpt-3.5-turbo-0613",
|
||||||
|
"gpt-4-1106-preview"
|
||||||
].includes(value),
|
].includes(value),
|
||||||
`${value} is not supported yet, use 'gpt-4', 'gpt-3.5-turbo-16k' (default), 'gpt-3.5-turbo-0613' or 'gpt-3.5-turbo'`
|
`${value} is not supported yet, use 'gpt-4', 'gpt-3.5-turbo-16k' (default), 'gpt-3.5-turbo-0613', 'gpt-3.5-turbo' or 'gpt-4-1106-preview'`
|
||||||
);
|
);
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
@@ -24263,7 +24279,8 @@ var configPath = (0, import_path.join)((0, import_os.homedir)(), ".opencommit");
|
|||||||
var getConfig = () => {
|
var getConfig = () => {
|
||||||
const configFromEnv = {
|
const configFromEnv = {
|
||||||
OCO_OPENAI_API_KEY: process.env.OCO_OPENAI_API_KEY,
|
OCO_OPENAI_API_KEY: process.env.OCO_OPENAI_API_KEY,
|
||||||
OCO_OPENAI_MAX_TOKENS: process.env.OCO_OPENAI_MAX_TOKENS ? Number(process.env.OCO_OPENAI_MAX_TOKENS) : void 0,
|
OCO_TOKENS_MAX_INPUT: process.env.OCO_TOKENS_MAX_INPUT ? Number(process.env.OCO_TOKENS_MAX_INPUT) : void 0,
|
||||||
|
OCO_TOKENS_MAX_OUTPUT: process.env.OCO_TOKENS_MAX_OUTPUT ? Number(process.env.OCO_TOKENS_MAX_OUTPUT) : void 0,
|
||||||
OCO_OPENAI_BASE_PATH: process.env.OCO_OPENAI_BASE_PATH,
|
OCO_OPENAI_BASE_PATH: process.env.OCO_OPENAI_BASE_PATH,
|
||||||
OCO_DESCRIPTION: process.env.OCO_DESCRIPTION === "true" ? true : false,
|
OCO_DESCRIPTION: process.env.OCO_DESCRIPTION === "true" ? true : false,
|
||||||
OCO_EMOJI: process.env.OCO_EMOJI === "true" ? true : false,
|
OCO_EMOJI: process.env.OCO_EMOJI === "true" ? true : false,
|
||||||
@@ -24531,6 +24548,15 @@ var removeDoubleNewlines = (input) => {
|
|||||||
}
|
}
|
||||||
return input;
|
return input;
|
||||||
};
|
};
|
||||||
|
var getJSONBlock = (input) => {
|
||||||
|
const jsonIndex = input.search("```json");
|
||||||
|
if (jsonIndex > -1) {
|
||||||
|
input = input.slice(jsonIndex + 8);
|
||||||
|
const endJsonIndex = consistency.search("```");
|
||||||
|
input = input.slice(0, endJsonIndex);
|
||||||
|
}
|
||||||
|
return input;
|
||||||
|
};
|
||||||
var commitlintLLMConfigExists = async () => {
|
var commitlintLLMConfigExists = async () => {
|
||||||
let exists;
|
let exists;
|
||||||
try {
|
try {
|
||||||
@@ -27394,7 +27420,8 @@ function tokenCount(content) {
|
|||||||
|
|
||||||
// src/engine/openAi.ts
|
// src/engine/openAi.ts
|
||||||
var config3 = getConfig();
|
var config3 = getConfig();
|
||||||
var maxTokens = config3?.OCO_OPENAI_MAX_TOKENS;
|
var MAX_TOKENS_OUTPUT = config3?.OCO_TOKENS_MAX_OUTPUT || 500 /* DEFAULT_MAX_TOKENS_OUTPUT */;
|
||||||
|
var MAX_TOKENS_INPUT = config3?.OCO_TOKENS_MAX_INPUT || 4096 /* DEFAULT_MAX_TOKENS_INPUT */;
|
||||||
var basePath = config3?.OCO_OPENAI_BASE_PATH;
|
var basePath = config3?.OCO_OPENAI_BASE_PATH;
|
||||||
var apiKey = config3?.OCO_OPENAI_API_KEY;
|
var apiKey = config3?.OCO_OPENAI_API_KEY;
|
||||||
var [command, mode] = process.argv.slice(2);
|
var [command, mode] = process.argv.slice(2);
|
||||||
@@ -27427,11 +27454,11 @@ var OpenAi = class {
|
|||||||
messages,
|
messages,
|
||||||
temperature: 0,
|
temperature: 0,
|
||||||
top_p: 0.1,
|
top_p: 0.1,
|
||||||
max_tokens: maxTokens || 500
|
max_tokens: MAX_TOKENS_OUTPUT
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
const REQUEST_TOKENS = messages.map((msg) => tokenCount(msg.content) + 4).reduce((a2, b2) => a2 + b2, 0);
|
const REQUEST_TOKENS = messages.map((msg) => tokenCount(msg.content) + 4).reduce((a2, b2) => a2 + b2, 0);
|
||||||
if (REQUEST_TOKENS > DEFAULT_MODEL_TOKEN_LIMIT - maxTokens) {
|
if (REQUEST_TOKENS > MAX_TOKENS_INPUT - MAX_TOKENS_OUTPUT) {
|
||||||
throw new Error("TOO_MUCH_TOKENS" /* tooMuchTokens */);
|
throw new Error("TOO_MUCH_TOKENS" /* tooMuchTokens */);
|
||||||
}
|
}
|
||||||
const { data } = await this.openAI.createChatCompletion(params);
|
const { data } = await this.openAI.createChatCompletion(params);
|
||||||
@@ -27515,15 +27542,16 @@ var configureCommitlintIntegration = async (force = false) => {
|
|||||||
const prompts = inferPromptsFromCommitlintConfig(commitLintConfig);
|
const prompts = inferPromptsFromCommitlintConfig(commitLintConfig);
|
||||||
const consistencyPrompts = commitlintPrompts.GEN_COMMITLINT_CONSISTENCY_PROMPT(prompts);
|
const consistencyPrompts = commitlintPrompts.GEN_COMMITLINT_CONSISTENCY_PROMPT(prompts);
|
||||||
const engine = getEngine();
|
const engine = getEngine();
|
||||||
let consistency = await engine.generateCommitMessage(consistencyPrompts) || "{}";
|
let consistency2 = await engine.generateCommitMessage(consistencyPrompts) || "{}";
|
||||||
prompts.forEach((prompt) => consistency = consistency.replace(prompt, ""));
|
prompts.forEach((prompt) => consistency2 = consistency2.replace(prompt, ""));
|
||||||
consistency = removeDoubleNewlines(consistency);
|
consistency2 = getJSONBlock(consistency2);
|
||||||
|
consistency2 = removeDoubleNewlines(consistency2);
|
||||||
const commitlintLLMConfig = {
|
const commitlintLLMConfig = {
|
||||||
hash,
|
hash,
|
||||||
prompts,
|
prompts,
|
||||||
consistency: {
|
consistency: {
|
||||||
[translation2.localLanguage]: {
|
[translation2.localLanguage]: {
|
||||||
...JSON.parse(consistency)
|
...JSON.parse(consistency2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -27622,6 +27650,8 @@ function mergeDiffs(arr, maxStringLength) {
|
|||||||
|
|
||||||
// src/generateCommitMessageFromGitDiff.ts
|
// src/generateCommitMessageFromGitDiff.ts
|
||||||
var config6 = getConfig();
|
var config6 = getConfig();
|
||||||
|
var MAX_TOKENS_INPUT2 = config6?.OCO_TOKENS_MAX_INPUT || 4096 /* DEFAULT_MAX_TOKENS_INPUT */;
|
||||||
|
var MAX_TOKENS_OUTPUT2 = config6?.OCO_TOKENS_MAX_OUTPUT || 500 /* DEFAULT_MAX_TOKENS_OUTPUT */;
|
||||||
var generateCommitMessageChatCompletionPrompt = async (diff) => {
|
var generateCommitMessageChatCompletionPrompt = async (diff) => {
|
||||||
const INIT_MESSAGES_PROMPT = await getMainCommitPrompt();
|
const INIT_MESSAGES_PROMPT = await getMainCommitPrompt();
|
||||||
const chatContextAsCompletionRequest = [...INIT_MESSAGES_PROMPT];
|
const chatContextAsCompletionRequest = [...INIT_MESSAGES_PROMPT];
|
||||||
@@ -27631,6 +27661,13 @@ var generateCommitMessageChatCompletionPrompt = async (diff) => {
|
|||||||
});
|
});
|
||||||
return chatContextAsCompletionRequest;
|
return chatContextAsCompletionRequest;
|
||||||
};
|
};
|
||||||
|
var GenerateCommitMessageErrorEnum = ((GenerateCommitMessageErrorEnum2) => {
|
||||||
|
GenerateCommitMessageErrorEnum2["tooMuchTokens"] = "TOO_MUCH_TOKENS";
|
||||||
|
GenerateCommitMessageErrorEnum2["internalError"] = "INTERNAL_ERROR";
|
||||||
|
GenerateCommitMessageErrorEnum2["emptyMessage"] = "EMPTY_MESSAGE";
|
||||||
|
GenerateCommitMessageErrorEnum2[GenerateCommitMessageErrorEnum2["outputTokensTooHigh"] = `Token limit exceeded, OCO_TOKENS_MAX_OUTPUT must not be much higher than the default ${500 /* DEFAULT_MAX_TOKENS_OUTPUT */} tokens.`] = "outputTokensTooHigh";
|
||||||
|
return GenerateCommitMessageErrorEnum2;
|
||||||
|
})(GenerateCommitMessageErrorEnum || {});
|
||||||
var ADJUSTMENT_FACTOR = 20;
|
var ADJUSTMENT_FACTOR = 20;
|
||||||
var generateCommitMessageByDiff = async (diff) => {
|
var generateCommitMessageByDiff = async (diff) => {
|
||||||
try {
|
try {
|
||||||
@@ -27638,7 +27675,7 @@ var generateCommitMessageByDiff = async (diff) => {
|
|||||||
const INIT_MESSAGES_PROMPT_LENGTH = INIT_MESSAGES_PROMPT.map(
|
const INIT_MESSAGES_PROMPT_LENGTH = INIT_MESSAGES_PROMPT.map(
|
||||||
(msg) => tokenCount(msg.content) + 4
|
(msg) => tokenCount(msg.content) + 4
|
||||||
).reduce((a2, b2) => a2 + b2, 0);
|
).reduce((a2, b2) => a2 + b2, 0);
|
||||||
const MAX_REQUEST_TOKENS = DEFAULT_MODEL_TOKEN_LIMIT - ADJUSTMENT_FACTOR - INIT_MESSAGES_PROMPT_LENGTH - config6?.OCO_OPENAI_MAX_TOKENS;
|
const MAX_REQUEST_TOKENS = MAX_TOKENS_INPUT2 - ADJUSTMENT_FACTOR - INIT_MESSAGES_PROMPT_LENGTH - MAX_TOKENS_OUTPUT2;
|
||||||
if (tokenCount(diff) >= MAX_REQUEST_TOKENS) {
|
if (tokenCount(diff) >= MAX_REQUEST_TOKENS) {
|
||||||
const commitMessagePromises = await getCommitMsgsPromisesFromFileDiffs(
|
const commitMessagePromises = await getCommitMsgsPromisesFromFileDiffs(
|
||||||
diff,
|
diff,
|
||||||
@@ -27693,6 +27730,9 @@ function splitDiff(diff, maxChangeLength) {
|
|||||||
const lines = diff.split("\n");
|
const lines = diff.split("\n");
|
||||||
const splitDiffs = [];
|
const splitDiffs = [];
|
||||||
let currentDiff = "";
|
let currentDiff = "";
|
||||||
|
if (maxChangeLength <= 0) {
|
||||||
|
throw new Error(GenerateCommitMessageErrorEnum.outputTokensTooHigh);
|
||||||
|
}
|
||||||
for (let line of lines) {
|
for (let line of lines) {
|
||||||
while (tokenCount(line) > maxChangeLength) {
|
while (tokenCount(line) > maxChangeLength) {
|
||||||
const subLine = line.substring(0, maxChangeLength);
|
const subLine = line.substring(0, maxChangeLength);
|
||||||
|
|||||||
Reference in New Issue
Block a user