@krotovm/gitlab-ai-review 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,6 +32,13 @@ export const buildPrompt = ({ changes, oldFiles }) => {
32
32
  };
33
33
  const ERROR_ANSWER = 'I\'m sorry, I\'m not feeling well today. Please ask a human to review this code change.';
34
34
  const DISCLAIMER = 'This comment was generated by an artificial intelligence duck.';
35
+ function sanitizeGitLabMarkdown(input) {
36
+ const normalized = input.replace(/\r\n/g, '\n').trim();
37
+ // If the model forgets to close a fenced code block, GitLab will render the rest (incl. disclaimer) inside it.
38
+ const fenceCount = (normalized.match(/```/g) ?? []).length;
39
+ const withClosedFence = fenceCount % 2 === 1 ? `${normalized}\n\`\`\`` : normalized;
40
+ return withClosedFence;
41
+ }
35
42
  export const buildAnswer = (completion) => {
36
43
  if (completion instanceof Error) {
37
44
  const maybeCause = completion.cause;
@@ -41,6 +48,8 @@ export const buildAnswer = (completion) => {
41
48
  if ((completion == null) || (completion.choices.length === 0)) {
42
49
  return `${ERROR_ANSWER}\n\n${DISCLAIMER}`;
43
50
  }
44
- return `${completion.choices[0].message.content}\n\n${DISCLAIMER}`;
51
+ const content = completion.choices[0].message.content ?? '';
52
+ const safe = sanitizeGitLabMarkdown(content);
53
+ return `${safe}\n\n---\n_${DISCLAIMER}_`;
45
54
  };
46
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG;;;;;;8DAM4C,CAAA;AAE9D,MAAM,QAAQ,GAAiC,CAAC;QAC9C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,oDAAoD;KAC9D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,yPAAyP;KACnQ,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAOvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAyB,EAAgC,EAAE;IACxG,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG;;MAEZ,WAAW,CAAC,CAAC,CAAC,4HAA4H,CAAC,CAAC,CAAC,8EAA8E;;;MAG3N,WAAW,CAAC,CAAC,CAAC,QAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB;;;MAG/F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;MAE/C,SAAS;KACV,CAAA;IAEH,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,yFAAyF,CAAA;AAE9G,MAAM,UAAU,GAAG,gEAAgE,CAAA;AAEnF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAA8C,EAAU,EAAE;IACpF,IAAI,UAAU,YAAY,KAAK,EAAE,CAAC;QAChC,MAAM,UAAU,GAAI,UAAkB,CAAC,KAAK,CAAA;QAC5C,MAAM,YAAY,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QACjF,OAAO,GAAG,YAAY,cAAc,UAAU,CAAC,OAAO,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IACnH,CAAC;IACD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,YAAY,OAAO,UAAU,EAAE,CAAA;IAC3C,CAAC;IACD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,OAAO,OAAO,UAAU,EAAE,CAAA;AACrE,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG;;;;;;8DAM4C,CAAA;AAE9D,MAAM,QAAQ,GAAiC,CAAC;QAC9C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,oDAAoD;KAC9D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,yPAAyP;KACnQ,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAOvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAyB,EAAgC,EAAE;IACxG,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG;;MAEZ,WAAW,CAAC,CAAC,CAAC,4HAA4H,CAAC,CAAC,CAAC,8EAA8E;;;MAG3N,WAAW,CAAC,CAAC,CAAC,QAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB;;;MAG/F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;MAE/C,SAAS;KACV,CAAA;IAEH,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,yFAAyF,CAAA;AAE9G,MAAM,UAAU,GAAG,gEAAgE,CAAA;AAEnF,SAAS,sBAAsB,CAAE,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IACtD,+GAA+G;IAC/G,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAC1D,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IACnF,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAA8C,EAAU,EAAE;IACpF,IAAI,UAAU,YAAY,KAAK,EAAE,CAAC;QAChC,MAAM,UAAU,GAAI,UAAkB,CAAC,KAAK,CAAA;QAC5C,MAAM,YAAY,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QACjF,OAAO,GAAG,YAAY,cAAc,UAAU,CAAC,OAAO,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IACnH,CAAC;IACD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,YAAY,OAAO,UAAU,EAAE,CAAA;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAA;IAC5D,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO,GAAG,IAAI,aAAa,UAAU,GAAG,CAAA;AAC1C,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@krotovm/gitlab-ai-review",
4
- "version": "1.0.2",
4
+ "version": "1.0.3",
5
5
  "description": "CLI tool to generate AI code reviews for GitLab merge requests and local diffs.",
6
6
  "main": "dist/cli.js",
7
7
  "bin": {