@j0hanz/code-review-analyst-mcp 1.0.0 → 1.0.1
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.
- package/dist/lib/tool-factory.js +17 -2
- package/package.json +2 -1
package/dist/lib/tool-factory.js
CHANGED
|
@@ -6,7 +6,7 @@ import { generateStructuredJson } from './gemini.js';
|
|
|
6
6
|
import { createErrorToolResponse, createToolResponse, } from './tool-response.js';
|
|
7
7
|
export function registerStructuredToolTask(server, config) {
|
|
8
8
|
const responseSchema = config.geminiSchema
|
|
9
|
-
? z.toJSONSchema(config.geminiSchema)
|
|
9
|
+
? stripJsonSchemaConstraints(z.toJSONSchema(config.geminiSchema))
|
|
10
10
|
: stripJsonSchemaConstraints(z.toJSONSchema(config.resultSchema));
|
|
11
11
|
server.experimental.tasks.registerToolTask(config.name, {
|
|
12
12
|
title: config.title,
|
|
@@ -46,6 +46,14 @@ export function registerStructuredToolTask(server, config) {
|
|
|
46
46
|
if (config.validateInput) {
|
|
47
47
|
const validationError = await config.validateInput(inputRecord);
|
|
48
48
|
if (validationError) {
|
|
49
|
+
const validationMessage = validationError.structuredContent.error?.message ??
|
|
50
|
+
'Input validation failed';
|
|
51
|
+
try {
|
|
52
|
+
await extra.taskStore.updateTaskStatus(task.taskId, 'working', validationMessage);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// statusMessage is best-effort; task may already be terminal.
|
|
56
|
+
}
|
|
49
57
|
await extra.taskStore.storeTaskResult(task.taskId, 'failed', validationError);
|
|
50
58
|
return { task };
|
|
51
59
|
}
|
|
@@ -68,7 +76,14 @@ export function registerStructuredToolTask(server, config) {
|
|
|
68
76
|
await sendProgress(4, 4);
|
|
69
77
|
}
|
|
70
78
|
catch (error) {
|
|
71
|
-
|
|
79
|
+
const errorMessage = getErrorMessage(error);
|
|
80
|
+
try {
|
|
81
|
+
await extra.taskStore.updateTaskStatus(task.taskId, 'working', errorMessage);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// statusMessage is best-effort; task may already be terminal.
|
|
85
|
+
}
|
|
86
|
+
await extra.taskStore.storeTaskResult(task.taskId, 'failed', createErrorToolResponse(config.errorCode, errorMessage));
|
|
72
87
|
}
|
|
73
88
|
return { task };
|
|
74
89
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@j0hanz/code-review-analyst-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"mcpName": "io.github.j0hanz/code-review-analyst",
|
|
5
5
|
"description": "Gemini-powered MCP server for code review analysis.",
|
|
6
6
|
"type": "module",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"start": "node dist/index.js",
|
|
42
42
|
"format": "prettier --write .",
|
|
43
43
|
"type-check": "node scripts/tasks.mjs type-check",
|
|
44
|
+
"type-check:tests": "tsc -p tsconfig.test.json --noEmit",
|
|
44
45
|
"type-check:diagnostics": "tsc --noEmit --extendedDiagnostics",
|
|
45
46
|
"type-check:trace": "node -e \"require('fs').rmSync('.ts-trace',{recursive:true,force:true})\" && tsc --noEmit --generateTrace .ts-trace",
|
|
46
47
|
"lint": "eslint .",
|