@vfarcic/dot-ai 0.13.0 → 0.15.0
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/interfaces/mcp.d.ts.map +1 -1
- package/dist/interfaces/mcp.js +10 -2
- package/dist/tools/answer-question.d.ts +1 -1
- package/dist/tools/answer-question.d.ts.map +1 -1
- package/dist/tools/answer-question.js +3 -3
- package/dist/tools/version.d.ts +32 -0
- package/dist/tools/version.d.ts.map +1 -0
- package/dist/tools/version.js +72 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/interfaces/mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/interfaces/mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AA0CtC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAa;gBAEzB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe;IA2BjD;;OAEG;IACH,OAAO,CAAC,aAAa;IAsFrB,OAAO,CAAC,iBAAiB;IAKnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,IAAI,OAAO;CAGnB"}
|
package/dist/interfaces/mcp.js
CHANGED
|
@@ -15,6 +15,7 @@ const choose_solution_1 = require("../tools/choose-solution");
|
|
|
15
15
|
const answer_question_1 = require("../tools/answer-question");
|
|
16
16
|
const generate_manifests_1 = require("../tools/generate-manifests");
|
|
17
17
|
const deploy_manifests_1 = require("../tools/deploy-manifests");
|
|
18
|
+
const version_1 = require("../tools/version");
|
|
18
19
|
class MCPServer {
|
|
19
20
|
server;
|
|
20
21
|
dotAI;
|
|
@@ -75,15 +76,22 @@ class MCPServer {
|
|
|
75
76
|
this.logger.info(`Processing ${deploy_manifests_1.DEPLOYMANIFESTS_TOOL_NAME} tool request`, { requestId });
|
|
76
77
|
return await (0, deploy_manifests_1.handleDeployManifestsTool)(args, this.dotAI, this.logger, requestId);
|
|
77
78
|
});
|
|
79
|
+
// Register version tool
|
|
80
|
+
this.server.tool(version_1.VERSION_TOOL_NAME, version_1.VERSION_TOOL_DESCRIPTION, version_1.VERSION_TOOL_INPUT_SCHEMA, async (args) => {
|
|
81
|
+
const requestId = this.generateRequestId();
|
|
82
|
+
this.logger.info(`Processing ${version_1.VERSION_TOOL_NAME} tool request`, { requestId });
|
|
83
|
+
return await (0, version_1.handleVersionTool)(args, this.logger, requestId);
|
|
84
|
+
});
|
|
78
85
|
this.logger.info('Registered all tools with McpServer', {
|
|
79
86
|
tools: [
|
|
80
87
|
recommend_1.RECOMMEND_TOOL_NAME,
|
|
81
88
|
choose_solution_1.CHOOSESOLUTION_TOOL_NAME,
|
|
82
89
|
answer_question_1.ANSWERQUESTION_TOOL_NAME,
|
|
83
90
|
generate_manifests_1.GENERATEMANIFESTS_TOOL_NAME,
|
|
84
|
-
deploy_manifests_1.DEPLOYMANIFESTS_TOOL_NAME
|
|
91
|
+
deploy_manifests_1.DEPLOYMANIFESTS_TOOL_NAME,
|
|
92
|
+
version_1.VERSION_TOOL_NAME
|
|
85
93
|
],
|
|
86
|
-
totalTools:
|
|
94
|
+
totalTools: 6
|
|
87
95
|
});
|
|
88
96
|
}
|
|
89
97
|
generateRequestId() {
|
|
@@ -5,7 +5,7 @@ import { z } from 'zod';
|
|
|
5
5
|
import { DotAI } from '../core/index';
|
|
6
6
|
import { Logger } from '../core/error-handling';
|
|
7
7
|
export declare const ANSWERQUESTION_TOOL_NAME = "answerQuestion";
|
|
8
|
-
export declare const ANSWERQUESTION_TOOL_DESCRIPTION = "Process user answers and return remaining questions or completion status";
|
|
8
|
+
export declare const ANSWERQUESTION_TOOL_DESCRIPTION = "Process user answers and return remaining questions or completion status. For open stage, use \"open\" as the answer key.";
|
|
9
9
|
export declare const ANSWERQUESTION_TOOL_INPUT_SCHEMA: {
|
|
10
10
|
solutionId: z.ZodString;
|
|
11
11
|
stage: z.ZodEnum<["required", "basic", "advanced", "open"]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-question.d.ts","sourceRoot":"","sources":["../../src/tools/answer-question.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAMhD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,+BAA+B,
|
|
1
|
+
{"version":3,"file":"answer-question.d.ts","sourceRoot":"","sources":["../../src/tools/answer-question.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAMhD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,+BAA+B,8HAA4H,CAAC;AAGzK,eAAO,MAAM,gCAAgC;;;;CAI5C,CAAC;AA6eF;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,EAC7G,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,CAmTxD"}
|
|
@@ -46,12 +46,12 @@ const path = __importStar(require("path"));
|
|
|
46
46
|
const session_utils_1 = require("../core/session-utils");
|
|
47
47
|
// Tool metadata for direct MCP registration
|
|
48
48
|
exports.ANSWERQUESTION_TOOL_NAME = 'answerQuestion';
|
|
49
|
-
exports.ANSWERQUESTION_TOOL_DESCRIPTION = 'Process user answers and return remaining questions or completion status';
|
|
49
|
+
exports.ANSWERQUESTION_TOOL_DESCRIPTION = 'Process user answers and return remaining questions or completion status. For open stage, use "open" as the answer key.';
|
|
50
50
|
// Zod schema for MCP registration
|
|
51
51
|
exports.ANSWERQUESTION_TOOL_INPUT_SCHEMA = {
|
|
52
52
|
solutionId: zod_1.z.string().regex(/^sol_[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{6}_[a-f0-9]+$/).describe('The solution ID to update (e.g., sol_2025-07-01T154349_1e1e242592ff)'),
|
|
53
53
|
stage: zod_1.z.enum(['required', 'basic', 'advanced', 'open']).describe('The configuration stage being addressed'),
|
|
54
|
-
answers: zod_1.z.record(zod_1.z.any()).describe('User answers to configuration questions for the specified stage')
|
|
54
|
+
answers: zod_1.z.record(zod_1.z.any()).describe('User answers to configuration questions for the specified stage. For required/basic/advanced stages, use questionId as key. For open stage, use "open" as key (e.g., {"open": "add persistent storage"})')
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
57
57
|
* Load solution file by ID
|
|
@@ -541,7 +541,7 @@ async function handleAnswerQuestionTool(args, dotAI, logger, requestId) {
|
|
|
541
541
|
if (args.stage === 'open') {
|
|
542
542
|
// Only allow 'open' as the question ID for open stage
|
|
543
543
|
if (questionId !== 'open') {
|
|
544
|
-
validationErrors.push(`
|
|
544
|
+
validationErrors.push(`Invalid question ID '${questionId}' for open stage. Use "open" as the key, e.g., {"open": "add persistent storage"}.`);
|
|
545
545
|
continue;
|
|
546
546
|
}
|
|
547
547
|
// Skip further validation for open stage as it doesn't follow Question interface
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version tool for MCP server
|
|
3
|
+
*
|
|
4
|
+
* Provides version information for debugging and validation
|
|
5
|
+
*/
|
|
6
|
+
import { Logger } from '../core/error-handling';
|
|
7
|
+
export declare const VERSION_TOOL_NAME = "version";
|
|
8
|
+
export declare const VERSION_TOOL_DESCRIPTION = "Get version information for the DevOps AI Toolkit MCP server";
|
|
9
|
+
export declare const VERSION_TOOL_INPUT_SCHEMA: {
|
|
10
|
+
type: string;
|
|
11
|
+
properties: {};
|
|
12
|
+
required: never[];
|
|
13
|
+
additionalProperties: boolean;
|
|
14
|
+
};
|
|
15
|
+
export interface VersionInfo {
|
|
16
|
+
version: string;
|
|
17
|
+
gitCommit?: string;
|
|
18
|
+
gitBranch?: string;
|
|
19
|
+
buildTime: string;
|
|
20
|
+
nodeVersion: string;
|
|
21
|
+
platform: string;
|
|
22
|
+
arch: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get version information from package.json and git
|
|
26
|
+
*/
|
|
27
|
+
export declare function getVersionInfo(): VersionInfo;
|
|
28
|
+
/**
|
|
29
|
+
* Handle version tool request
|
|
30
|
+
*/
|
|
31
|
+
export declare function handleVersionTool(args: any, logger: Logger, requestId: string): Promise<any>;
|
|
32
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/tools/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,wBAAwB,iEAAiE,CAAC;AACvG,eAAO,MAAM,yBAAyB;;;;;CAKrC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAyB5C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAuBd"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Version tool for MCP server
|
|
4
|
+
*
|
|
5
|
+
* Provides version information for debugging and validation
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.VERSION_TOOL_INPUT_SCHEMA = exports.VERSION_TOOL_DESCRIPTION = exports.VERSION_TOOL_NAME = void 0;
|
|
9
|
+
exports.getVersionInfo = getVersionInfo;
|
|
10
|
+
exports.handleVersionTool = handleVersionTool;
|
|
11
|
+
const fs_1 = require("fs");
|
|
12
|
+
const path_1 = require("path");
|
|
13
|
+
const child_process_1 = require("child_process");
|
|
14
|
+
exports.VERSION_TOOL_NAME = 'version';
|
|
15
|
+
exports.VERSION_TOOL_DESCRIPTION = 'Get version information for the DevOps AI Toolkit MCP server';
|
|
16
|
+
exports.VERSION_TOOL_INPUT_SCHEMA = {
|
|
17
|
+
type: 'object',
|
|
18
|
+
properties: {},
|
|
19
|
+
required: [],
|
|
20
|
+
additionalProperties: false
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Get version information from package.json and git
|
|
24
|
+
*/
|
|
25
|
+
function getVersionInfo() {
|
|
26
|
+
// Read package.json version
|
|
27
|
+
const packageJsonPath = (0, path_1.join)(process.cwd(), 'package.json');
|
|
28
|
+
const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf8'));
|
|
29
|
+
// Get git information
|
|
30
|
+
let gitCommit;
|
|
31
|
+
let gitBranch;
|
|
32
|
+
try {
|
|
33
|
+
gitCommit = (0, child_process_1.execSync)('git rev-parse HEAD', { encoding: 'utf8' }).trim();
|
|
34
|
+
gitBranch = (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', { encoding: 'utf8' }).trim();
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
// Git info not available (e.g., not a git repo or git not installed)
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
version: packageJson.version,
|
|
41
|
+
gitCommit,
|
|
42
|
+
gitBranch,
|
|
43
|
+
buildTime: new Date().toISOString(),
|
|
44
|
+
nodeVersion: process.version,
|
|
45
|
+
platform: process.platform,
|
|
46
|
+
arch: process.arch
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Handle version tool request
|
|
51
|
+
*/
|
|
52
|
+
async function handleVersionTool(args, logger, requestId) {
|
|
53
|
+
try {
|
|
54
|
+
logger.info('Processing version tool request', { requestId });
|
|
55
|
+
const versionInfo = getVersionInfo();
|
|
56
|
+
logger.info('Version tool request completed', { requestId, version: versionInfo.version });
|
|
57
|
+
return {
|
|
58
|
+
status: 'success',
|
|
59
|
+
versionInfo,
|
|
60
|
+
timestamp: new Date().toISOString()
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
65
|
+
logger.error('Version tool request failed', error);
|
|
66
|
+
return {
|
|
67
|
+
status: 'error',
|
|
68
|
+
error: errorMessage,
|
|
69
|
+
timestamp: new Date().toISOString()
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|