(fileDiff, separator, maxChangeLength, fullGitMojiSpec, context)
| 85551 | context, |
| 85552 | newModel |
| 85553 | ); |
| 85554 | } |
| 85555 | } |
| 85556 | throw error; |
| 85557 | } |
| 85558 | }; |
| 85559 | function getMessagesPromisesByChangesInFile(fileDiff, separator, maxChangeLength, fullGitMojiSpec, context) { |
| 85560 | const hunkHeaderSeparator = "@@ "; |
| 85561 | const [fileHeader, ...fileDiffByLines] = fileDiff.split(hunkHeaderSeparator); |
| 85562 | const mergedChanges = mergeDiffs( |
| 85563 | fileDiffByLines.map((line) => hunkHeaderSeparator + line), |
| 85564 | maxChangeLength |
| 85565 | ); |
| 85566 | const lineDiffsWithHeader = []; |
| 85567 | for (const change of mergedChanges) { |
| 85568 | const totalChange = fileHeader + change; |
| 85569 | if (tokenCount(totalChange) > maxChangeLength) { |
| 85570 | const splitChanges = splitDiff(totalChange, maxChangeLength); |
| 85571 | lineDiffsWithHeader.push(...splitChanges); |
| 85572 | } else { |
| 85573 | lineDiffsWithHeader.push(totalChange); |
| 85574 | } |
| 85575 | } |
| 85576 | const engine = getEngine(); |
| 85577 | const commitMsgsFromFileLineDiffs = lineDiffsWithHeader.map( |
| 85578 | async (lineDiff) => { |
| 85579 | const messages = await generateCommitMessageChatCompletionPrompt( |
| 85580 | separator + lineDiff, |
| 85581 | fullGitMojiSpec, |
| 85582 | context |
| 85583 | ); |
| 85584 | return engine.generateCommitMessage(messages); |
| 85585 | } |
no test coverage detected
searching dependent graphs…