@vfarcic/dot-ai 0.192.0 → 0.194.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/README.md +6 -6
- package/dist/core/agent-display.d.ts +2 -4
- package/dist/core/agent-display.d.ts.map +1 -1
- package/dist/core/agent-display.js +4 -12
- package/dist/core/base-vector-service.d.ts +6 -0
- package/dist/core/base-vector-service.d.ts.map +1 -1
- package/dist/core/base-vector-service.js +18 -8
- package/dist/core/capabilities.d.ts +12 -0
- package/dist/core/capabilities.d.ts.map +1 -1
- package/dist/core/capability-operations.d.ts +3 -0
- package/dist/core/capability-operations.d.ts.map +1 -1
- package/dist/core/capability-operations.js +88 -5
- package/dist/core/capability-scan-workflow.d.ts +35 -5
- package/dist/core/capability-scan-workflow.d.ts.map +1 -1
- package/dist/core/capability-scan-workflow.js +169 -145
- package/dist/core/capability-vector-service.d.ts +11 -2
- package/dist/core/capability-vector-service.d.ts.map +1 -1
- package/dist/core/capability-vector-service.js +50 -0
- package/dist/core/discovery.d.ts +34 -0
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +105 -19
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -6
- package/dist/core/kubectl-tools.d.ts +5 -0
- package/dist/core/kubectl-tools.d.ts.map +1 -1
- package/dist/core/kubectl-tools.js +74 -2
- package/dist/core/kubernetes-utils.d.ts +1 -0
- package/dist/core/kubernetes-utils.d.ts.map +1 -1
- package/dist/core/kubernetes-utils.js +92 -49
- package/dist/core/packaging.d.ts.map +1 -1
- package/dist/core/packaging.js +1 -0
- package/dist/core/resource-tools.d.ts +163 -1
- package/dist/core/resource-tools.d.ts.map +1 -1
- package/dist/core/resource-tools.js +343 -23
- package/dist/core/resource-vector-service.d.ts +17 -0
- package/dist/core/resource-vector-service.d.ts.map +1 -1
- package/dist/core/resource-vector-service.js +67 -3
- package/dist/core/telemetry/client.d.ts +16 -0
- package/dist/core/telemetry/client.d.ts.map +1 -0
- package/dist/core/telemetry/client.js +293 -0
- package/dist/core/telemetry/config.d.ts +12 -0
- package/dist/core/telemetry/config.d.ts.map +1 -0
- package/dist/core/telemetry/config.js +130 -0
- package/dist/core/telemetry/index.d.ts +30 -0
- package/dist/core/telemetry/index.d.ts.map +1 -0
- package/dist/core/telemetry/index.js +49 -0
- package/dist/core/telemetry/types.d.ts +125 -0
- package/dist/core/telemetry/types.d.ts.map +1 -0
- package/dist/core/telemetry/types.js +7 -0
- package/dist/core/tracing/index.d.ts +1 -1
- package/dist/core/tracing/index.d.ts.map +1 -1
- package/dist/core/tracing/tool-tracing.d.ts +11 -2
- package/dist/core/tracing/tool-tracing.d.ts.map +1 -1
- package/dist/core/tracing/tool-tracing.js +17 -3
- package/dist/core/vector-db-service.d.ts +7 -0
- package/dist/core/vector-db-service.d.ts.map +1 -1
- package/dist/core/vector-db-service.js +165 -61
- package/dist/core/visualization.d.ts +16 -1
- package/dist/core/visualization.d.ts.map +1 -1
- package/dist/core/visualization.js +64 -1
- package/dist/interfaces/mcp.d.ts +6 -0
- package/dist/interfaces/mcp.d.ts.map +1 -1
- package/dist/interfaces/mcp.js +36 -7
- package/dist/interfaces/rest-api.d.ts +63 -2
- package/dist/interfaces/rest-api.d.ts.map +1 -1
- package/dist/interfaces/rest-api.js +611 -51
- package/dist/mcp/server.js +55 -9
- package/dist/tools/answer-question.d.ts.map +1 -1
- package/dist/tools/answer-question.js +18 -0
- package/dist/tools/choose-solution.d.ts.map +1 -1
- package/dist/tools/choose-solution.js +22 -1
- package/dist/tools/deploy-manifests.d.ts.map +1 -1
- package/dist/tools/deploy-manifests.js +16 -2
- package/dist/tools/generate-manifests.d.ts.map +1 -1
- package/dist/tools/generate-manifests.js +12 -18
- package/dist/tools/operate.d.ts.map +1 -1
- package/dist/tools/operate.js +3 -11
- package/dist/tools/organizational-data.d.ts +1 -1
- package/dist/tools/organizational-data.d.ts.map +1 -1
- package/dist/tools/organizational-data.js +8 -17
- package/dist/tools/project-setup.d.ts.map +1 -1
- package/dist/tools/project-setup.js +5 -18
- package/dist/tools/query.d.ts +2 -11
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +63 -44
- package/dist/tools/recommend.d.ts +18 -1
- package/dist/tools/recommend.d.ts.map +1 -1
- package/dist/tools/recommend.js +44 -10
- package/dist/tools/remediate.d.ts.map +1 -1
- package/dist/tools/remediate.js +2 -24
- package/dist/tools/version.d.ts.map +1 -1
- package/dist/tools/version.js +4 -7
- package/package.json +2 -1
- package/prompts/partials/query-simple-output.md +11 -0
- package/prompts/partials/visualization-output.md +93 -0
- package/prompts/query-system.md +8 -12
- package/prompts/resource-selection.md +4 -0
- package/prompts/visualize.md +1 -68
- package/scripts/dot-ai.nu +1 -0
- package/scripts/reset-sync-and-scan-test-cluster.sh +120 -0
- package/shared-prompts/prd-create.md +1 -1
- package/dist/core/feedback.d.ts +0 -43
- package/dist/core/feedback.d.ts.map +0 -1
- package/dist/core/feedback.js +0 -98
package/dist/mcp/server.js
CHANGED
|
@@ -46,8 +46,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
46
46
|
const mcp_js_1 = require("../interfaces/mcp.js");
|
|
47
47
|
const index_js_1 = require("../core/index.js");
|
|
48
48
|
const index_js_2 = require("../core/tracing/index.js");
|
|
49
|
+
const index_js_3 = require("../core/telemetry/index.js");
|
|
49
50
|
const fs_1 = require("fs");
|
|
50
51
|
const path_1 = __importDefault(require("path"));
|
|
52
|
+
// Track server start time for uptime calculation
|
|
53
|
+
const serverStartTime = Date.now();
|
|
54
|
+
/**
|
|
55
|
+
* Detect deployment method from environment
|
|
56
|
+
*/
|
|
57
|
+
function detectDeploymentMethod() {
|
|
58
|
+
// Check for Helm deployment (set by Helm chart)
|
|
59
|
+
if (process.env.HELM_RELEASE_NAME || process.env.HELM_CHART_NAME) {
|
|
60
|
+
return 'helm';
|
|
61
|
+
}
|
|
62
|
+
// Check for Kubernetes environment (service account or env vars set by k8s)
|
|
63
|
+
if (process.env.KUBERNETES_SERVICE_HOST || process.env.KUBERNETES_PORT) {
|
|
64
|
+
return 'kubernetes';
|
|
65
|
+
}
|
|
66
|
+
// Check for Docker container (/.dockerenv file exists in containers)
|
|
67
|
+
if ((0, fs_1.existsSync)('/.dockerenv') || process.env.DOCKER_CONTAINER === 'true') {
|
|
68
|
+
return 'docker';
|
|
69
|
+
}
|
|
70
|
+
// Default to local development
|
|
71
|
+
return 'local';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get Kubernetes version (non-blocking, returns undefined if unavailable)
|
|
75
|
+
*/
|
|
76
|
+
async function getK8sVersion() {
|
|
77
|
+
try {
|
|
78
|
+
const { KubernetesDiscovery } = await Promise.resolve().then(() => __importStar(require('../core/discovery.js')));
|
|
79
|
+
const discovery = new KubernetesDiscovery({});
|
|
80
|
+
await discovery.connect();
|
|
81
|
+
const result = await discovery.testConnection();
|
|
82
|
+
return result.version;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// K8s version is optional - don't fail startup
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
51
89
|
async function main() {
|
|
52
90
|
try {
|
|
53
91
|
// Initialize OpenTelemetry tracing (must happen before HTTP server starts)
|
|
@@ -127,19 +165,27 @@ async function main() {
|
|
|
127
165
|
process.stderr.write(`Starting DevOps AI Toolkit MCP server with ${transportType} transport...\n`);
|
|
128
166
|
await mcpServer.start();
|
|
129
167
|
process.stderr.write('DevOps AI Toolkit MCP server started successfully\n');
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
168
|
+
// Track server start telemetry (non-blocking)
|
|
169
|
+
const deploymentMethod = detectDeploymentMethod();
|
|
170
|
+
getK8sVersion().then((k8sVersion) => {
|
|
171
|
+
(0, index_js_3.getTelemetry)().trackServerStart(k8sVersion, deploymentMethod);
|
|
172
|
+
}).catch(() => {
|
|
173
|
+
// Telemetry errors are non-fatal - silently ignore
|
|
136
174
|
});
|
|
137
|
-
|
|
138
|
-
|
|
175
|
+
// Handle graceful shutdown
|
|
176
|
+
const gracefulShutdown = async (signal) => {
|
|
177
|
+
process.stderr.write(`Shutting down DevOps AI Toolkit MCP server (${signal})...\n`);
|
|
178
|
+
// Track server stop telemetry
|
|
179
|
+
const uptimeSeconds = Math.floor((Date.now() - serverStartTime) / 1000);
|
|
180
|
+
(0, index_js_3.getTelemetry)().trackServerStop(uptimeSeconds);
|
|
139
181
|
await mcpServer.stop();
|
|
140
182
|
await (0, index_js_2.shutdownTracer)();
|
|
183
|
+
// Flush telemetry events before exit
|
|
184
|
+
await (0, index_js_3.shutdownTelemetry)();
|
|
141
185
|
process.exit(0);
|
|
142
|
-
}
|
|
186
|
+
};
|
|
187
|
+
process.on('SIGINT', () => gracefulShutdown('SIGINT'));
|
|
188
|
+
process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));
|
|
143
189
|
// Keep the process alive for HTTP transport
|
|
144
190
|
if (transportType === 'http') {
|
|
145
191
|
process.stderr.write('HTTP transport active - server will run until terminated\n');
|
|
@@ -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;AAOhD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,+BAA+B,8HAA4H,CAAC;AAGzK,eAAO,MAAM,gCAAgC;;;;;;;;;;CAK5C,CAAC;AAwhBF;;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,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACtI,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,
|
|
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;AAOhD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,+BAA+B,8HAA4H,CAAC;AAGzK,eAAO,MAAM,gCAAgC;;;;;;;;;;CAK5C,CAAC;AAwhBF;;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,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACtI,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,CAqVxD"}
|
|
@@ -652,6 +652,12 @@ async function handleAnswerQuestionTool(args, dotAI, logger, requestId) {
|
|
|
652
652
|
}
|
|
653
653
|
// Extract all user answers for handoff
|
|
654
654
|
const userAnswers = (0, solution_utils_1.extractUserAnswers)(solution);
|
|
655
|
+
// Update session with workflow state - all questions complete
|
|
656
|
+
sessionManager.updateSession(args.solutionId, {
|
|
657
|
+
stage: 'questions',
|
|
658
|
+
currentQuestionStage: 'open',
|
|
659
|
+
nextQuestionStage: null
|
|
660
|
+
});
|
|
655
661
|
const response = {
|
|
656
662
|
status: 'ready_for_manifest_generation',
|
|
657
663
|
solutionId: args.solutionId,
|
|
@@ -683,6 +689,12 @@ async function handleAnswerQuestionTool(args, dotAI, logger, requestId) {
|
|
|
683
689
|
// This happens when advanced stage is completed (open stage is skipped for Helm)
|
|
684
690
|
if (newStageState.isComplete && isHelmSolution(solution)) {
|
|
685
691
|
const userAnswers = (0, solution_utils_1.extractUserAnswers)(solution);
|
|
692
|
+
// Update session with workflow state - all questions complete (Helm)
|
|
693
|
+
sessionManager.updateSession(args.solutionId, {
|
|
694
|
+
stage: 'questions',
|
|
695
|
+
currentQuestionStage: 'advanced',
|
|
696
|
+
nextQuestionStage: null
|
|
697
|
+
});
|
|
686
698
|
const completionResponse = {
|
|
687
699
|
status: 'ready_for_manifest_generation',
|
|
688
700
|
solutionId: args.solutionId,
|
|
@@ -710,6 +722,12 @@ async function handleAnswerQuestionTool(args, dotAI, logger, requestId) {
|
|
|
710
722
|
}
|
|
711
723
|
// If stage is complete, move to next stage
|
|
712
724
|
const nextStageQuestions = getQuestionsForStage(solution, newStageState.currentStage);
|
|
725
|
+
// Update session with workflow state - moving to next question stage
|
|
726
|
+
sessionManager.updateSession(args.solutionId, {
|
|
727
|
+
stage: 'questions',
|
|
728
|
+
currentQuestionStage: newStageState.currentStage,
|
|
729
|
+
nextQuestionStage: newStageState.nextStage
|
|
730
|
+
});
|
|
713
731
|
const response = {
|
|
714
732
|
status: 'stage_questions',
|
|
715
733
|
solutionId: args.solutionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choose-solution.d.ts","sourceRoot":"","sources":["../../src/tools/choose-solution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKhD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,+BAA+B,uEAAuE,CAAC;AAGpH,eAAO,MAAM,gCAAgC;;CAE5C,CAAC;AAIF;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAC5B,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,
|
|
1
|
+
{"version":3,"file":"choose-solution.d.ts","sourceRoot":"","sources":["../../src/tools/choose-solution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKhD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,+BAA+B,uEAAuE,CAAC;AAGpH,eAAO,MAAM,gCAAgC;;CAE5C,CAAC;AAIF;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAC5B,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,CAyJxD"}
|
|
@@ -80,13 +80,34 @@ async function handleChooseSolutionTool(args, dotAI, logger, requestId) {
|
|
|
80
80
|
hasOpen: !!solution.questions?.open
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
|
+
// Determine next stage based on what questions exist
|
|
84
|
+
const hasBasic = solution.questions?.basic && solution.questions.basic.length > 0;
|
|
85
|
+
const hasAdvanced = solution.questions?.advanced && solution.questions.advanced.length > 0;
|
|
86
|
+
const hasOpen = !!solution.questions?.open;
|
|
87
|
+
const isHelm = solution.type === 'helm';
|
|
88
|
+
let nextStage = null;
|
|
89
|
+
if (hasBasic) {
|
|
90
|
+
nextStage = 'basic';
|
|
91
|
+
}
|
|
92
|
+
else if (hasAdvanced) {
|
|
93
|
+
nextStage = 'advanced';
|
|
94
|
+
}
|
|
95
|
+
else if (!isHelm && hasOpen) {
|
|
96
|
+
nextStage = 'open';
|
|
97
|
+
}
|
|
98
|
+
// Update session with workflow state for UI page refresh support
|
|
99
|
+
sessionManager.updateSession(args.solutionId, {
|
|
100
|
+
stage: 'questions',
|
|
101
|
+
currentQuestionStage: 'required',
|
|
102
|
+
nextQuestionStage: nextStage
|
|
103
|
+
});
|
|
83
104
|
// Prepare response with solution details and questions
|
|
84
105
|
const response = {
|
|
85
106
|
status: 'stage_questions',
|
|
86
107
|
solutionId: args.solutionId,
|
|
87
108
|
currentStage: 'required',
|
|
88
109
|
questions: solution.questions.required || [],
|
|
89
|
-
nextStage: '
|
|
110
|
+
nextStage: nextStage || 'complete',
|
|
90
111
|
message: 'Please provide the required configuration for your application.',
|
|
91
112
|
nextAction: 'Call recommend tool with stage: answerQuestion:required',
|
|
92
113
|
guidance: 'Present ALL required questions to the user. All must be answered before proceeding.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/deploy-manifests.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAahD,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAC3D,eAAO,MAAM,gCAAgC,kFAAkF,CAAC;AAGhI,eAAO,MAAM,iCAAiC;;;CAG7C,CAAC;AAEF;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9C,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,
|
|
1
|
+
{"version":3,"file":"deploy-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/deploy-manifests.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAahD,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAC3D,eAAO,MAAM,gCAAgC,kFAAkF,CAAC;AAGhI,eAAO,MAAM,iCAAiC;;;CAG7C,CAAC;AAEF;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9C,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,CAuLxD"}
|
|
@@ -84,6 +84,12 @@ async function handleDeployManifestsTool(args, dotAI, logger, requestId) {
|
|
|
84
84
|
namespace,
|
|
85
85
|
requestId
|
|
86
86
|
});
|
|
87
|
+
// Update session with deployed stage for UI page refresh support
|
|
88
|
+
if (result.success) {
|
|
89
|
+
sessionManager.updateSession(args.solutionId, {
|
|
90
|
+
stage: 'deployed'
|
|
91
|
+
});
|
|
92
|
+
}
|
|
87
93
|
const response = {
|
|
88
94
|
success: result.success,
|
|
89
95
|
solutionId: args.solutionId,
|
|
@@ -101,7 +107,8 @@ async function handleDeployManifestsTool(args, dotAI, logger, requestId) {
|
|
|
101
107
|
: `Helm deployment failed: ${result.error}`,
|
|
102
108
|
helmOutput: result.output || result.error,
|
|
103
109
|
deploymentComplete: result.success,
|
|
104
|
-
timestamp: new Date().toISOString()
|
|
110
|
+
timestamp: new Date().toISOString(),
|
|
111
|
+
agentInstructions: 'Deployment command executed. To verify the deployment is running correctly and resources are healthy, use the query tool to check pod status, events, and logs.'
|
|
105
112
|
};
|
|
106
113
|
return {
|
|
107
114
|
content: [{
|
|
@@ -132,6 +139,12 @@ async function handleDeployManifestsTool(args, dotAI, logger, requestId) {
|
|
|
132
139
|
readinessTimeout: result.readinessTimeout,
|
|
133
140
|
requestId
|
|
134
141
|
});
|
|
142
|
+
// Update session with deployed stage for UI page refresh support
|
|
143
|
+
if (result.success) {
|
|
144
|
+
sessionManager.updateSession(args.solutionId, {
|
|
145
|
+
stage: 'deployed'
|
|
146
|
+
});
|
|
147
|
+
}
|
|
135
148
|
// Prepare response with deployment status
|
|
136
149
|
const response = {
|
|
137
150
|
success: result.success,
|
|
@@ -144,7 +157,8 @@ async function handleDeployManifestsTool(args, dotAI, logger, requestId) {
|
|
|
144
157
|
// Additional deployment status info
|
|
145
158
|
deploymentComplete: result.success && !result.readinessTimeout,
|
|
146
159
|
requiresStatusCheck: result.success && result.readinessTimeout,
|
|
147
|
-
timestamp: new Date().toISOString()
|
|
160
|
+
timestamp: new Date().toISOString(),
|
|
161
|
+
agentInstructions: 'Deployment command executed. To verify the deployment is running correctly and resources are healthy, use the query tool to check pod status, events, and logs.'
|
|
148
162
|
};
|
|
149
163
|
return {
|
|
150
164
|
content: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/generate-manifests.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"generate-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/generate-manifests.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,KAAK,EAA0B,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA0BhD,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,kCAAkC,+IAA+I,CAAC;AAG/L,eAAO,MAAM,mCAAmC;;;CAG/C,CAAC;AAkvBF;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,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,CAiUxD"}
|
|
@@ -386,12 +386,10 @@ async function handleHelmGeneration(solution, solutionId, dotAI, logger, request
|
|
|
386
386
|
// Build user-friendly helm command with generic values file path
|
|
387
387
|
// (internal valuesPath is used for actual execution, not shown to user)
|
|
388
388
|
const helmCommand = (0, helm_utils_1.buildHelmCommand)(chart, releaseName, namespace, 'values.yaml');
|
|
389
|
-
// Check if we should show feedback message
|
|
390
|
-
const feedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
|
|
391
389
|
// PRD #320: Update session with generateManifests data for visualization
|
|
392
390
|
sessionManager.updateSession(solutionId, {
|
|
393
391
|
...solution,
|
|
394
|
-
stage: '
|
|
392
|
+
stage: 'manifests',
|
|
395
393
|
generatedManifests: {
|
|
396
394
|
type: 'helm',
|
|
397
395
|
valuesYaml: valuesYaml,
|
|
@@ -426,16 +424,15 @@ async function handleHelmGeneration(solution, solutionId, dotAI, logger, request
|
|
|
426
424
|
namespace: namespace,
|
|
427
425
|
validationAttempts: attempt,
|
|
428
426
|
timestamp: new Date().toISOString(),
|
|
429
|
-
...(visualizationUrl ? { visualizationUrl } : {})
|
|
430
|
-
...(feedbackMessage ? { feedbackMessage } : {})
|
|
427
|
+
...(visualizationUrl ? { visualizationUrl } : {})
|
|
431
428
|
};
|
|
432
429
|
// Build content blocks - JSON for REST API, agent instruction for MCP agents
|
|
433
430
|
const content = [{
|
|
434
431
|
type: 'text',
|
|
435
432
|
text: JSON.stringify(response, null, 2)
|
|
436
433
|
}];
|
|
437
|
-
// Add agent instruction block if visualization URL
|
|
438
|
-
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl
|
|
434
|
+
// Add agent instruction block if visualization URL is present
|
|
435
|
+
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl });
|
|
439
436
|
if (agentDisplayBlock) {
|
|
440
437
|
content.push(agentDisplayBlock);
|
|
441
438
|
}
|
|
@@ -755,14 +752,13 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
|
|
|
755
752
|
// Extract packaging options from user answers (with defaults)
|
|
756
753
|
const outputFormat = (userAnswers.outputFormat || 'raw');
|
|
757
754
|
const outputPath = userAnswers.outputPath || './manifests';
|
|
758
|
-
const feedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
|
|
759
755
|
// Handle packaging based on outputFormat
|
|
760
756
|
if (outputFormat === 'helm' || outputFormat === 'kustomize') {
|
|
761
757
|
const packagingResult = await packageAndValidate(manifests, solution, outputFormat, outputPath, args.solutionId, dotAI, logger, args.interaction_id);
|
|
762
758
|
// PRD #320: Update session with generateManifests data for visualization
|
|
763
759
|
sessionManager.updateSession(args.solutionId, {
|
|
764
760
|
...solution,
|
|
765
|
-
stage: '
|
|
761
|
+
stage: 'manifests',
|
|
766
762
|
generatedManifests: {
|
|
767
763
|
type: outputFormat,
|
|
768
764
|
outputPath,
|
|
@@ -784,16 +780,15 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
|
|
|
784
780
|
packagingAttempts: packagingResult.attempts,
|
|
785
781
|
timestamp: new Date().toISOString(),
|
|
786
782
|
agentInstructions: `Write the files to "${outputPath}". The output is a ${outputFormat === 'helm' ? 'Helm chart' : 'Kustomize overlay'}. If immediate deployment is desired, call the recommend tool with stage: "deployManifests".`,
|
|
787
|
-
...(visualizationUrl ? { visualizationUrl } : {})
|
|
788
|
-
...(feedbackMessage ? { feedbackMessage } : {})
|
|
783
|
+
...(visualizationUrl ? { visualizationUrl } : {})
|
|
789
784
|
};
|
|
790
785
|
// Build content blocks - JSON for REST API, agent instruction for MCP agents
|
|
791
786
|
const content = [{
|
|
792
787
|
type: 'text',
|
|
793
788
|
text: JSON.stringify(response, null, 2)
|
|
794
789
|
}];
|
|
795
|
-
// Add agent instruction block if visualization URL
|
|
796
|
-
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl
|
|
790
|
+
// Add agent instruction block if visualization URL is present
|
|
791
|
+
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl });
|
|
797
792
|
if (agentDisplayBlock) {
|
|
798
793
|
content.push(agentDisplayBlock);
|
|
799
794
|
}
|
|
@@ -802,7 +797,7 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
|
|
|
802
797
|
// PRD #320: Update session with generateManifests data for visualization (raw format)
|
|
803
798
|
sessionManager.updateSession(args.solutionId, {
|
|
804
799
|
...solution,
|
|
805
|
-
stage: '
|
|
800
|
+
stage: 'manifests',
|
|
806
801
|
generatedManifests: {
|
|
807
802
|
type: 'raw',
|
|
808
803
|
outputPath,
|
|
@@ -825,16 +820,15 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
|
|
|
825
820
|
validationAttempts: attempt,
|
|
826
821
|
timestamp: new Date().toISOString(),
|
|
827
822
|
agentInstructions: `Write the files to "${outputPath}". If immediate deployment is desired, call the recommend tool with stage: "deployManifests".`,
|
|
828
|
-
...(visualizationUrl ? { visualizationUrl } : {})
|
|
829
|
-
...(feedbackMessage ? { feedbackMessage } : {})
|
|
823
|
+
...(visualizationUrl ? { visualizationUrl } : {})
|
|
830
824
|
};
|
|
831
825
|
// Build content blocks - JSON for REST API, agent instruction for MCP agents
|
|
832
826
|
const content = [{
|
|
833
827
|
type: 'text',
|
|
834
828
|
text: JSON.stringify(response, null, 2)
|
|
835
829
|
}];
|
|
836
|
-
// Add agent instruction block if visualization URL
|
|
837
|
-
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl
|
|
830
|
+
// Add agent instruction block if visualization URL is present
|
|
831
|
+
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl });
|
|
838
832
|
if (agentDisplayBlock) {
|
|
839
833
|
content.push(agentDisplayBlock);
|
|
840
834
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operate.d.ts","sourceRoot":"","sources":["../../src/tools/operate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"operate.d.ts","sourceRoot":"","sources":["../../src/tools/operate.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/operate.js
CHANGED
|
@@ -229,22 +229,14 @@ async function operate(args) {
|
|
|
229
229
|
*/
|
|
230
230
|
async function handleOperateTool(args) {
|
|
231
231
|
const result = await operate(args);
|
|
232
|
-
// Get feedback message for successful operations
|
|
233
|
-
const feedbackMessage = result.status === 'success' ? (0, index_1.maybeGetFeedbackMessage)() : '';
|
|
234
|
-
// Build response with visualization URL and feedback message in JSON
|
|
235
|
-
const responseData = {
|
|
236
|
-
...result,
|
|
237
|
-
...(feedbackMessage ? { feedbackMessage } : {})
|
|
238
|
-
};
|
|
239
232
|
// Build content blocks - JSON for REST API, agent instruction for MCP agents
|
|
240
233
|
const content = [{
|
|
241
234
|
type: 'text',
|
|
242
|
-
text: JSON.stringify(
|
|
235
|
+
text: JSON.stringify(result, null, 2)
|
|
243
236
|
}];
|
|
244
|
-
// Add agent instruction block if visualization URL
|
|
237
|
+
// Add agent instruction block if visualization URL is present
|
|
245
238
|
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({
|
|
246
|
-
visualizationUrl: result.visualizationUrl
|
|
247
|
-
feedbackMessage
|
|
239
|
+
visualizationUrl: result.visualizationUrl
|
|
248
240
|
});
|
|
249
241
|
if (agentDisplayBlock) {
|
|
250
242
|
content.push(agentDisplayBlock);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizational-data.d.ts","sourceRoot":"","sources":["../../src/tools/organizational-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"organizational-data.d.ts","sourceRoot":"","sources":["../../src/tools/organizational-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAehD,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAC7D,eAAO,MAAM,oCAAoC,+jBAAyjB,CAAC;AAG3mB,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BjD,CAAC;AAktBF;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,KAAK,GAAG,IAAI,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CA0Hd"}
|
|
@@ -58,7 +58,6 @@ const capability_scan_workflow_1 = require("../core/capability-scan-workflow");
|
|
|
58
58
|
const crypto_1 = require("crypto");
|
|
59
59
|
const fs = __importStar(require("fs"));
|
|
60
60
|
const path = __importStar(require("path"));
|
|
61
|
-
const index_2 = require("../core/index");
|
|
62
61
|
// Tool metadata for MCP registration
|
|
63
62
|
exports.ORGANIZATIONAL_DATA_TOOL_NAME = 'manageOrgData';
|
|
64
63
|
exports.ORGANIZATIONAL_DATA_TOOL_DESCRIPTION = 'Unified tool for managing cluster data: organizational patterns, policy intents, and resource capabilities. For patterns and policies: supports create, list, get, delete, deleteAll, and search operations (patterns also support step-by-step creation workflow). For capabilities: supports scan, list, get, delete, deleteAll, and progress operations for cluster resource capability discovery and management. Use dataType parameter to specify what to manage: "pattern" for organizational patterns, "policy" for policy intents, "capabilities" for resource capabilities.';
|
|
@@ -248,7 +247,13 @@ async function handleFireAndForgetScan(args, logger, requestId, capabilityServic
|
|
|
248
247
|
}
|
|
249
248
|
};
|
|
250
249
|
}
|
|
250
|
+
// Just set the resource list - scanSingleResource will fetch metadata for each
|
|
251
251
|
session.selectedResources = parsedResources;
|
|
252
|
+
logger.info('Targeted scan initiated', {
|
|
253
|
+
requestId,
|
|
254
|
+
resourceCount: parsedResources.length,
|
|
255
|
+
resources: parsedResources
|
|
256
|
+
});
|
|
252
257
|
}
|
|
253
258
|
// Save session for progress tracking
|
|
254
259
|
saveCapabilitySession(session);
|
|
@@ -684,25 +689,11 @@ async function handleOrganizationalDataTool(args, _dotAI, logger, requestId) {
|
|
|
684
689
|
operation: args.operation,
|
|
685
690
|
success: result.success
|
|
686
691
|
});
|
|
687
|
-
//
|
|
688
|
-
const feedbackMessage = (result.success && result.operation === 'create' && result.storage?.stored === true)
|
|
689
|
-
? (0, index_2.maybeGetFeedbackMessage)()
|
|
690
|
-
: '';
|
|
691
|
-
// Build response with optional feedback message in JSON
|
|
692
|
-
const responseData = {
|
|
693
|
-
...result,
|
|
694
|
-
...(feedbackMessage ? { feedbackMessage } : {})
|
|
695
|
-
};
|
|
696
|
-
// Build content blocks - JSON for REST API, agent instruction for MCP agents
|
|
692
|
+
// Build content blocks - JSON for REST API
|
|
697
693
|
const content = [{
|
|
698
694
|
type: 'text',
|
|
699
|
-
text: JSON.stringify(
|
|
695
|
+
text: JSON.stringify(result, null, 2)
|
|
700
696
|
}];
|
|
701
|
-
// Add agent instruction block if feedback message is present
|
|
702
|
-
const agentDisplayBlock = (0, index_2.buildAgentDisplayBlock)({ feedbackMessage });
|
|
703
|
-
if (agentDisplayBlock) {
|
|
704
|
-
content.push(agentDisplayBlock);
|
|
705
|
-
}
|
|
706
697
|
return { content };
|
|
707
698
|
}
|
|
708
699
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-setup.d.ts","sourceRoot":"","sources":["../../src/tools/project-setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAiB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-setup.d.ts","sourceRoot":"","sources":["../../src/tools/project-setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAiB,MAAM,uBAAuB,CAAC;AAO1E,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AACtD,eAAO,MAAM,8BAA8B,qbAAqb,CAAC;AAGje,eAAO,MAAM,+BAA+B;;;;;;;;;;;CAO3C,CAAC;AAEF;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2C7D"}
|
|
@@ -11,7 +11,6 @@ const discovery_1 = require("./project-setup/discovery");
|
|
|
11
11
|
const report_scan_1 = require("./project-setup/report-scan");
|
|
12
12
|
const generate_scope_1 = require("./project-setup/generate-scope");
|
|
13
13
|
const crypto_1 = require("crypto");
|
|
14
|
-
const index_1 = require("../core/index");
|
|
15
14
|
// Tool metadata for MCP registration
|
|
16
15
|
exports.PROJECT_SETUP_TOOL_NAME = 'projectSetup';
|
|
17
16
|
exports.PROJECT_SETUP_TOOL_DESCRIPTION = 'Setup project, audit repository, or generate repository files. Use this when user wants to: setup project, audit repo, check missing files, create README, add LICENSE, generate CONTRIBUTING.md, add CI/CD workflows, initialize documentation, setup governance files. Analyzes local repositories and generates missing configuration, documentation, and governance files. Does NOT handle Kubernetes deployments - use recommend for those.';
|
|
@@ -115,24 +114,12 @@ async function handleGenerateScopeStep(args, logger, requestId) {
|
|
|
115
114
|
});
|
|
116
115
|
}
|
|
117
116
|
const response = await (0, generate_scope_1.handleGenerateScope)(args.sessionId, args.scope, args.answers, logger, requestId);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
...(feedbackMessage ? { feedbackMessage } : {})
|
|
117
|
+
return {
|
|
118
|
+
content: [{
|
|
119
|
+
type: 'text',
|
|
120
|
+
text: JSON.stringify(response, null, 2)
|
|
121
|
+
}]
|
|
124
122
|
};
|
|
125
|
-
// Build content blocks - JSON for REST API, agent instruction for MCP agents
|
|
126
|
-
const content = [{
|
|
127
|
-
type: 'text',
|
|
128
|
-
text: JSON.stringify(responseData, null, 2)
|
|
129
|
-
}];
|
|
130
|
-
// Add agent instruction block if feedback message is present
|
|
131
|
-
const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ feedbackMessage });
|
|
132
|
-
if (agentDisplayBlock) {
|
|
133
|
-
content.push(agentDisplayBlock);
|
|
134
|
-
}
|
|
135
|
-
return { content };
|
|
136
123
|
}
|
|
137
124
|
/**
|
|
138
125
|
* Helper to create error response
|
package/dist/tools/query.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* PRD #291: Cluster Query Tool - Natural Language Cluster Intelligence
|
|
8
8
|
*/
|
|
9
9
|
import { z } from 'zod';
|
|
10
|
+
import { CachedVisualization } from '../core/visualization';
|
|
10
11
|
export declare const QUERY_TOOL_NAME = "query";
|
|
11
12
|
export declare const QUERY_TOOL_DESCRIPTION = "Natural language query interface for Kubernetes cluster intelligence. Ask any questions about your cluster resources, capabilities, and status in plain English. Examples: \"What databases are running?\", \"Describe the nginx deployment\", \"Show me pods in the kube-system namespace\", \"What operators are installed?\", \"Is my-postgres healthy?\"";
|
|
12
13
|
export declare const QUERY_TOOL_INPUT_SCHEMA: {
|
|
@@ -28,17 +29,7 @@ export interface QuerySessionData {
|
|
|
28
29
|
input: any;
|
|
29
30
|
output: any;
|
|
30
31
|
}>;
|
|
31
|
-
cachedVisualization?:
|
|
32
|
-
title: string;
|
|
33
|
-
visualizations: Array<{
|
|
34
|
-
id: string;
|
|
35
|
-
label: string;
|
|
36
|
-
type: 'mermaid' | 'cards' | 'code' | 'table' | 'diff';
|
|
37
|
-
content: any;
|
|
38
|
-
}>;
|
|
39
|
-
insights: string[];
|
|
40
|
-
generatedAt: string;
|
|
41
|
-
};
|
|
32
|
+
cachedVisualization?: CachedVisualization;
|
|
42
33
|
}
|
|
43
34
|
export interface QueryOutput {
|
|
44
35
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,OAAO,EAIL,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAK/B,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,sBAAsB,iWAAuV,CAAC;AAG3X,eAAO,MAAM,uBAAuB;;;CAGnC,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,GAAG,CAAC;QACX,MAAM,EAAE,GAAG,CAAC;KACb,CAAC,CAAC;IAEH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAGD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAgED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAuM7D"}
|