@vfarcic/dot-ai 0.189.0 → 0.190.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.
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Agent Display Utilities
3
+ *
4
+ * Provides utilities for building agent instruction content blocks
5
+ * that ensure important information (visualization URLs, feedback messages)
6
+ * is displayed to users by AI agents.
7
+ */
8
+ /**
9
+ * Options for building agent display instructions
10
+ */
11
+ export interface AgentDisplayOptions {
12
+ /** Visualization URL to display (optional) */
13
+ visualizationUrl?: string;
14
+ /** Feedback message to display (optional) */
15
+ feedbackMessage?: string;
16
+ }
17
+ /**
18
+ * Build an agent instruction content block that tells AI agents to display
19
+ * specific fields from the JSON response to the user.
20
+ *
21
+ * @param options - The display options containing visualization URL and/or feedback message
22
+ * @returns A content block with agent instructions, or null if nothing to display
23
+ */
24
+ export declare function buildAgentDisplayBlock(options: AgentDisplayOptions): {
25
+ type: 'text';
26
+ text: string;
27
+ } | null;
28
+ //# sourceMappingURL=agent-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-display.d.ts","sourceRoot":"","sources":["../../src/core/agent-display.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBvC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Display Utilities
4
+ *
5
+ * Provides utilities for building agent instruction content blocks
6
+ * that ensure important information (visualization URLs, feedback messages)
7
+ * is displayed to users by AI agents.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.buildAgentDisplayBlock = buildAgentDisplayBlock;
11
+ /**
12
+ * Build an agent instruction content block that tells AI agents to display
13
+ * specific fields from the JSON response to the user.
14
+ *
15
+ * @param options - The display options containing visualization URL and/or feedback message
16
+ * @returns A content block with agent instructions, or null if nothing to display
17
+ */
18
+ function buildAgentDisplayBlock(options) {
19
+ const fields = [];
20
+ if (options.visualizationUrl) {
21
+ fields.push('visualizationUrl');
22
+ }
23
+ if (options.feedbackMessage) {
24
+ fields.push('feedbackMessage');
25
+ }
26
+ if (fields.length === 0) {
27
+ return null;
28
+ }
29
+ const fieldList = fields.join(' and ');
30
+ return {
31
+ type: 'text',
32
+ text: `IMPORTANT: After presenting the main response data, also display the ${fieldList} field${fields.length > 1 ? 's' : ''} to the user.`
33
+ };
34
+ }
@@ -53,5 +53,6 @@ export { PolicyVectorService, PolicySearchOptions, PolicySearchResult } from './
53
53
  export { CapabilityVectorService, ResourceCapability, CapabilitySearchOptions } from './capability-vector-service';
54
54
  export { EmbeddingService, EmbeddingConfig, EmbeddingProvider, VercelEmbeddingProvider } from './embedding-service';
55
55
  export { FeedbackConfig, loadFeedbackConfig, shouldShowFeedback, getFeedbackMessage, maybeGetFeedbackMessage } from './feedback';
56
+ export { AgentDisplayOptions, buildAgentDisplayBlock } from './agent-display';
56
57
  export default DotAI;
57
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAkB;IAErC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,EAAE,EAAE,UAAU,CAAC;IAC/B,SAAgB,MAAM,EAAE;QACtB,MAAM,EAAE,YAAY,CAAC;QACrB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACnC,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,6BAA6B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9I,qBAAqB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClG,CAAC;gBAEU,MAAM,GAAE,UAAe;IA2E7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/C,aAAa,IAAI,OAAO;IAIxB,UAAU,IAAI,MAAM;CAGrB;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACpI,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE5G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAGjI,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Shared intelligence for both CLI and MCP interfaces
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.maybeGetFeedbackMessage = exports.getFeedbackMessage = exports.shouldShowFeedback = exports.loadFeedbackConfig = exports.VercelEmbeddingProvider = exports.EmbeddingService = exports.CapabilityVectorService = exports.PolicyVectorService = exports.PatternVectorService = exports.BaseVectorService = exports.VectorDBService = exports.deserializePattern = exports.serializePattern = exports.createPattern = exports.validatePattern = exports.ResourceRecommender = exports.ManifestValidator = exports.SchemaParser = exports.AIProviderFactory = exports.createAIProvider = exports.WorkflowEngine = exports.MemorySystem = exports.KubernetesDiscovery = exports.DotAI = void 0;
8
+ exports.buildAgentDisplayBlock = exports.maybeGetFeedbackMessage = exports.getFeedbackMessage = exports.shouldShowFeedback = exports.loadFeedbackConfig = exports.VercelEmbeddingProvider = exports.EmbeddingService = exports.CapabilityVectorService = exports.PolicyVectorService = exports.PatternVectorService = exports.BaseVectorService = exports.VectorDBService = exports.deserializePattern = exports.serializePattern = exports.createPattern = exports.validatePattern = exports.ResourceRecommender = exports.ManifestValidator = exports.SchemaParser = exports.AIProviderFactory = exports.createAIProvider = exports.WorkflowEngine = exports.MemorySystem = exports.KubernetesDiscovery = exports.DotAI = void 0;
9
9
  const discovery_1 = require("./discovery");
10
10
  const memory_1 = require("./memory");
11
11
  const workflow_1 = require("./workflow");
@@ -156,5 +156,7 @@ Object.defineProperty(exports, "loadFeedbackConfig", { enumerable: true, get: fu
156
156
  Object.defineProperty(exports, "shouldShowFeedback", { enumerable: true, get: function () { return feedback_1.shouldShowFeedback; } });
157
157
  Object.defineProperty(exports, "getFeedbackMessage", { enumerable: true, get: function () { return feedback_1.getFeedbackMessage; } });
158
158
  Object.defineProperty(exports, "maybeGetFeedbackMessage", { enumerable: true, get: function () { return feedback_1.maybeGetFeedbackMessage; } });
159
+ var agent_display_1 = require("./agent-display");
160
+ Object.defineProperty(exports, "buildAgentDisplayBlock", { enumerable: true, get: function () { return agent_display_1.buildAgentDisplayBlock; } });
159
161
  // Default export
160
162
  exports.default = DotAI;
@@ -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,EAA2B,MAAM,eAAe,CAAC;AAC/D,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;AA8vBF;;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,CAoVxD"}
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,EAAmD,MAAM,eAAe,CAAC;AACvF,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;AAsvBF;;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,CAoUxD"}
@@ -426,25 +426,18 @@ async function handleHelmGeneration(solution, solutionId, dotAI, logger, request
426
426
  namespace: namespace,
427
427
  validationAttempts: attempt,
428
428
  timestamp: new Date().toISOString(),
429
- ...(visualizationUrl && { visualizationUrl })
429
+ ...(visualizationUrl ? { visualizationUrl } : {}),
430
+ ...(feedbackMessage ? { feedbackMessage } : {})
430
431
  };
431
- // PRD #320: Return two content blocks - JSON for REST API, text instruction for MCP agents
432
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
432
433
  const content = [{
433
434
  type: 'text',
434
435
  text: JSON.stringify(response, null, 2)
435
436
  }];
436
- if (visualizationUrl) {
437
- content.push({
438
- type: 'text',
439
- text: `šŸ“Š **View visualization**: ${visualizationUrl}`
440
- });
441
- }
442
- // PRD #326: Add feedback message as separate content block so agents display it to users
443
- if (feedbackMessage) {
444
- content.push({
445
- type: 'text',
446
- text: feedbackMessage
447
- });
437
+ // Add agent instruction block if visualization URL or feedback message is present
438
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl, feedbackMessage });
439
+ if (agentDisplayBlock) {
440
+ content.push(agentDisplayBlock);
448
441
  }
449
442
  return { content };
450
443
  }
@@ -791,25 +784,18 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
791
784
  packagingAttempts: packagingResult.attempts,
792
785
  timestamp: new Date().toISOString(),
793
786
  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".`,
794
- ...(visualizationUrl && { visualizationUrl })
787
+ ...(visualizationUrl ? { visualizationUrl } : {}),
788
+ ...(feedbackMessage ? { feedbackMessage } : {})
795
789
  };
796
- // PRD #320: Return two content blocks - JSON for REST API, text instruction for MCP agents
790
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
797
791
  const content = [{
798
792
  type: 'text',
799
793
  text: JSON.stringify(response, null, 2)
800
794
  }];
801
- if (visualizationUrl) {
802
- content.push({
803
- type: 'text',
804
- text: `šŸ“Š **View visualization**: ${visualizationUrl}`
805
- });
806
- }
807
- // PRD #326: Add feedback message as separate content block so agents display it to users
808
- if (feedbackMessage) {
809
- content.push({
810
- type: 'text',
811
- text: feedbackMessage
812
- });
795
+ // Add agent instruction block if visualization URL or feedback message is present
796
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl, feedbackMessage });
797
+ if (agentDisplayBlock) {
798
+ content.push(agentDisplayBlock);
813
799
  }
814
800
  return { content };
815
801
  }
@@ -839,25 +825,18 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
839
825
  validationAttempts: attempt,
840
826
  timestamp: new Date().toISOString(),
841
827
  agentInstructions: `Write the files to "${outputPath}". If immediate deployment is desired, call the recommend tool with stage: "deployManifests".`,
842
- ...(visualizationUrl && { visualizationUrl })
828
+ ...(visualizationUrl ? { visualizationUrl } : {}),
829
+ ...(feedbackMessage ? { feedbackMessage } : {})
843
830
  };
844
- // PRD #320: Return two content blocks - JSON for REST API, text instruction for MCP agents
831
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
845
832
  const content = [{
846
833
  type: 'text',
847
834
  text: JSON.stringify(response, null, 2)
848
835
  }];
849
- if (visualizationUrl) {
850
- content.push({
851
- type: 'text',
852
- text: `šŸ“Š **View visualization**: ${visualizationUrl}`
853
- });
854
- }
855
- // PRD #326: Add feedback message as separate content block so agents display it to users
856
- if (feedbackMessage) {
857
- content.push({
858
- type: 'text',
859
- text: feedbackMessage
860
- });
836
+ // Add agent instruction block if visualization URL or feedback message is present
837
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl, feedbackMessage });
838
+ if (agentDisplayBlock) {
839
+ content.push(agentDisplayBlock);
861
840
  }
862
841
  return { content };
863
842
  }
@@ -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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"}
@@ -49,7 +49,7 @@ const generic_session_manager_1 = require("../core/generic-session-manager");
49
49
  const pattern_vector_service_1 = require("../core/pattern-vector-service");
50
50
  const policy_vector_service_1 = require("../core/policy-vector-service");
51
51
  const capability_vector_service_1 = require("../core/capability-vector-service");
52
- const feedback_1 = require("../core/feedback");
52
+ const index_1 = require("../core/index");
53
53
  // Tool metadata for direct MCP registration
54
54
  exports.OPERATE_TOOL_NAME = 'operate';
55
55
  exports.OPERATE_TOOL_DESCRIPTION = 'AI-powered Kubernetes application operations tool for Day 2 operations. Handles updates, scaling, enhancements, rollbacks, and deletions through natural language intents. Analyzes current state, applies organizational patterns and policies, validates changes via dry-run, and executes approved operations safely.';
@@ -229,27 +229,25 @@ async function operate(args) {
229
229
  */
230
230
  async function handleOperateTool(args) {
231
231
  const result = await operate(args);
232
- // PRD #320: Embed visualization URL in message so agents display it to users
233
- const messageWithVisualization = result.visualizationUrl
234
- ? `${result.message}\n\nšŸ“Š View visualization: ${result.visualizationUrl}`
235
- : result.message;
236
- // PRD #320: Return JSON with visualization URL in message (for agents) and visualizationUrl field (for REST API)
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
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
237
240
  const content = [{
238
241
  type: 'text',
239
- text: JSON.stringify({
240
- ...result,
241
- message: messageWithVisualization
242
- }, null, 2)
242
+ text: JSON.stringify(responseData, null, 2)
243
243
  }];
244
- // PRD #326: Add feedback message as separate content block so agents display it to users
245
- if (result.status === 'success') {
246
- const feedbackMessage = (0, feedback_1.maybeGetFeedbackMessage)();
247
- if (feedbackMessage) {
248
- content.push({
249
- type: 'text',
250
- text: feedbackMessage
251
- });
252
- }
244
+ // Add agent instruction block if visualization URL or feedback message is present
245
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({
246
+ visualizationUrl: result.visualizationUrl,
247
+ feedbackMessage
248
+ });
249
+ if (agentDisplayBlock) {
250
+ content.push(agentDisplayBlock);
253
251
  }
254
252
  return { content };
255
253
  }
@@ -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;AAgBhD,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAC7D,eAAO,MAAM,oCAAoC,+jBAAyjB,CAAC;AAG3mB,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BjD,CAAC;AA0sBF;;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,CAsId"}
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;AAgBhD,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAC7D,eAAO,MAAM,oCAAoC,+jBAAyjB,CAAC;AAG3mB,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BjD,CAAC;AA0sBF;;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,CA2Id"}
@@ -58,7 +58,7 @@ 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 feedback_1 = require("../core/feedback");
61
+ const index_2 = require("../core/index");
62
62
  // Tool metadata for MCP registration
63
63
  exports.ORGANIZATIONAL_DATA_TOOL_NAME = 'manageOrgData';
64
64
  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.';
@@ -684,21 +684,24 @@ async function handleOrganizationalDataTool(args, _dotAI, logger, requestId) {
684
684
  operation: args.operation,
685
685
  success: result.success
686
686
  });
687
- // Return consistent MCP response format
687
+ // Get feedback message when pattern/policy creation workflow is complete and successful
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
688
697
  const content = [{
689
698
  type: 'text',
690
- text: JSON.stringify(result, null, 2)
699
+ text: JSON.stringify(responseData, null, 2)
691
700
  }];
692
- // PRD #326: Add feedback message as separate content block so agents display it to users
693
- // Show feedback when pattern/policy creation workflow is complete and successful
694
- if (result.success && result.operation === 'create' && result.storage?.stored === true) {
695
- const feedbackMessage = (0, feedback_1.maybeGetFeedbackMessage)();
696
- if (feedbackMessage) {
697
- content.push({
698
- type: 'text',
699
- text: feedbackMessage
700
- });
701
- }
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);
702
705
  }
703
706
  return { content };
704
707
  }
@@ -11,7 +11,7 @@ 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 feedback_1 = require("../core/feedback");
14
+ const index_1 = require("../core/index");
15
15
  // Tool metadata for MCP registration
16
16
  exports.PROJECT_SETUP_TOOL_NAME = 'projectSetup';
17
17
  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,19 +115,22 @@ async function handleGenerateScopeStep(args, logger, requestId) {
115
115
  });
116
116
  }
117
117
  const response = await (0, generate_scope_1.handleGenerateScope)(args.sessionId, args.scope, args.answers, logger, requestId);
118
+ // Get feedback message for successful responses
119
+ const feedbackMessage = response.success ? (0, index_1.maybeGetFeedbackMessage)() : '';
120
+ // Build response with optional feedback message in JSON
121
+ const responseData = {
122
+ ...response,
123
+ ...(feedbackMessage ? { feedbackMessage } : {})
124
+ };
125
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
118
126
  const content = [{
119
127
  type: 'text',
120
- text: JSON.stringify(response, null, 2)
128
+ text: JSON.stringify(responseData, null, 2)
121
129
  }];
122
- // PRD #326: Add feedback message as separate content block so agents display it to users
123
- if (response.success) {
124
- const feedbackMessage = (0, feedback_1.maybeGetFeedbackMessage)();
125
- if (feedbackMessage) {
126
- content.push({
127
- type: 'text',
128
- text: feedbackMessage
129
- });
130
- }
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);
131
134
  }
132
135
  return { content };
133
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recommend.d.ts","sourceRoot":"","sources":["../../src/tools/recommend.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;AAWhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,yXAAyX,CAAC;AAGja,eAAO,MAAM,2BAA2B;;;;;;;;CAWvC,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,kBAAkB,CAAC,EAAE;QACnB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;QACnC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE;YACN,UAAU,EAAE,MAAM,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAiCD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,GAAG,EACT,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,CA+WxD"}
1
+ {"version":3,"file":"recommend.d.ts","sourceRoot":"","sources":["../../src/tools/recommend.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,EAA0B,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAWhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,yXAAyX,CAAC;AAGja,eAAO,MAAM,2BAA2B;;;;;;;;CAWvC,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,kBAAkB,CAAC,EAAE;QACnB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;QACnC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE;YACN,UAAU,EAAE,MAAM,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAiCD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,GAAG,EACT,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,CA6WxD"}
@@ -8,6 +8,7 @@ exports.handleRecommendTool = handleRecommendTool;
8
8
  const zod_1 = require("zod");
9
9
  const error_handling_1 = require("../core/error-handling");
10
10
  const schema_1 = require("../core/schema");
11
+ const index_1 = require("../core/index");
11
12
  const cluster_utils_1 = require("../core/cluster-utils");
12
13
  const generic_session_manager_1 = require("../core/generic-session-manager");
13
14
  const choose_solution_1 = require("./choose-solution");
@@ -253,16 +254,15 @@ async function handleRecommendTool(args, dotAI, logger, requestId) {
253
254
  topScore: helmSolutionSummaries[0]?.score,
254
255
  ...(helmVisualizationUrl && { visualizationUrl: helmVisualizationUrl })
255
256
  });
256
- // PRD #320: Return two content blocks - JSON for REST API, text instruction for MCP agents
257
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
257
258
  const content = [{
258
259
  type: 'text',
259
260
  text: JSON.stringify(helmResponse, null, 2)
260
261
  }];
261
- if (helmVisualizationUrl) {
262
- content.push({
263
- type: 'text',
264
- text: `šŸ“Š **View visualization**: ${helmVisualizationUrl}`
265
- });
262
+ // Add agent instruction block if visualization URL is present
263
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl: helmVisualizationUrl });
264
+ if (agentDisplayBlock) {
265
+ content.push(agentDisplayBlock);
266
266
  }
267
267
  return { content };
268
268
  }
@@ -348,16 +348,15 @@ async function handleRecommendTool(args, dotAI, logger, requestId) {
348
348
  solutionCount: solutionSummaries.length,
349
349
  ...(visualizationUrl && { visualizationUrl })
350
350
  });
351
- // PRD #320: Return two content blocks - JSON for REST API, text instruction for MCP agents
351
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
352
352
  const content = [{
353
353
  type: 'text',
354
354
  text: JSON.stringify(response, null, 2)
355
355
  }];
356
- if (visualizationUrl) {
357
- content.push({
358
- type: 'text',
359
- text: `šŸ“Š **View visualization**: ${visualizationUrl}`
360
- });
356
+ // Add agent instruction block if visualization URL is present
357
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl });
358
+ if (agentDisplayBlock) {
359
+ content.push(agentDisplayBlock);
361
360
  }
362
361
  return { content };
363
362
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"remediate.d.ts","sourceRoot":"","sources":["../../src/tools/remediate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAuB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAOnF,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,yfAAwf,CAAC;AAIhiB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;CASvC,CAAC;AAGF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,MAAM,EAAE,eAAe,GAAG,mBAAmB,GAAG,QAAQ,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,WAAW,CAAC;IAC1H,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,wBAAwB,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACjC,CAAC;IAEF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;CAC/B;AAqJD;;GAEG;AACH,UAAU,uBAAuB;IAC/B,WAAW,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACjC,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB,CAmGhF;AA0YD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CA0MjE"}
1
+ {"version":3,"file":"remediate.d.ts","sourceRoot":"","sources":["../../src/tools/remediate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAuB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAOnF,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,yfAAwf,CAAC;AAIhiB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;CASvC,CAAC;AAGF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,MAAM,EAAE,eAAe,GAAG,mBAAmB,GAAG,QAAQ,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,WAAW,CAAC;IAC1H,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,wBAAwB,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACjC,CAAC;IAEF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;CAC/B;AAqJD;;GAEG;AACH,UAAU,uBAAuB;IAC/B,WAAW,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACjC,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB,CAmGhF;AAgZD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CA0MjE"}
@@ -485,19 +485,22 @@ IMPORTANT: You MUST respond with the final JSON analysis format as specified in
485
485
  summary: 'Validation confirmed issue resolution'
486
486
  }
487
487
  };
488
- // PRD #326: Add feedback message as separate content block so agents display it to users
488
+ // Build response with optional feedback message in JSON
489
489
  const feedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
490
+ const responseWithFeedback = {
491
+ ...successResponse,
492
+ ...(feedbackMessage ? { feedbackMessage } : {})
493
+ };
490
494
  const content = [
491
495
  {
492
496
  type: 'text',
493
- text: JSON.stringify(successResponse, null, 2)
497
+ text: JSON.stringify(responseWithFeedback, null, 2)
494
498
  }
495
499
  ];
496
- if (feedbackMessage) {
497
- content.push({
498
- type: 'text',
499
- text: feedbackMessage
500
- });
500
+ // Add agent instruction block if feedback message is present
501
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ feedbackMessage });
502
+ if (agentDisplayBlock) {
503
+ content.push(agentDisplayBlock);
501
504
  }
502
505
  return { content };
503
506
  }
@@ -565,21 +568,22 @@ IMPORTANT: You MUST respond with the final JSON analysis format as specified in
565
568
  successfulActions: results.filter(r => r.success).length,
566
569
  failedActions: results.filter(r => !r.success).length
567
570
  });
571
+ // Build response with optional feedback message in JSON (only on success)
572
+ const executionFeedbackMessage = overallSuccess ? (0, index_1.maybeGetFeedbackMessage)() : '';
573
+ const responseWithFeedback = {
574
+ ...response,
575
+ ...(executionFeedbackMessage ? { feedbackMessage: executionFeedbackMessage } : {})
576
+ };
568
577
  const content = [
569
578
  {
570
579
  type: 'text',
571
- text: JSON.stringify(response, null, 2)
580
+ text: JSON.stringify(responseWithFeedback, null, 2)
572
581
  }
573
582
  ];
574
- // PRD #326: Add feedback message as separate content block so agents display it to users
575
- if (overallSuccess) {
576
- const executionFeedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
577
- if (executionFeedbackMessage) {
578
- content.push({
579
- type: 'text',
580
- text: executionFeedbackMessage
581
- });
582
- }
583
+ // Add agent instruction block if feedback message is present
584
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ feedbackMessage: executionFeedbackMessage });
585
+ if (agentDisplayBlock) {
586
+ content.push(agentDisplayBlock);
583
587
  }
584
588
  return { content };
585
589
  }
@@ -637,23 +641,22 @@ async function handleRemediateTool(args) {
637
641
  sessionId: session.sessionId,
638
642
  status: finalAnalysis.status
639
643
  });
640
- // PRD #320: Generate visualization URL for resolved issues
644
+ // Generate visualization URL for resolved issues
641
645
  const visualizationUrl = (0, visualization_1.getVisualizationUrl)(session.sessionId);
642
- // PRD #320: Append visualization URL to message so agents display it to users
643
- const messageWithVisualization = visualizationUrl
644
- ? `${finalAnalysis.message}\n\nšŸ“Š View visualization: ${visualizationUrl}`
645
- : finalAnalysis.message;
646
- // PRD #320: Return JSON with visualization URL in message (for agents) and visualizationUrl field (for REST API)
647
- return {
648
- content: [{
649
- type: 'text',
650
- text: JSON.stringify({
651
- ...finalAnalysis,
652
- message: messageWithVisualization,
653
- ...(visualizationUrl && { visualizationUrl })
654
- }, null, 2)
655
- }]
656
- };
646
+ // Build response with visualization URL in JSON
647
+ const content = [{
648
+ type: 'text',
649
+ text: JSON.stringify({
650
+ ...finalAnalysis,
651
+ ...(visualizationUrl ? { visualizationUrl } : {})
652
+ }, null, 2)
653
+ }];
654
+ // Add agent instruction block if visualization URL is present
655
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl });
656
+ if (agentDisplayBlock) {
657
+ content.push(agentDisplayBlock);
658
+ }
659
+ return { content };
657
660
  }
658
661
  // Make execution decision based on mode and thresholds
659
662
  const executionDecision = makeExecutionDecision(validatedInput.mode || 'manual', finalAnalysis.analysis.confidence, finalAnalysis.remediation.risk, validatedInput.confidenceThreshold, validatedInput.maxRiskLevel);
@@ -696,23 +699,22 @@ async function handleRemediateTool(args) {
696
699
  // Execute commands and return the complete result (includes post-execution validation)
697
700
  return await executeRemediationCommands(session, sessionManager, logger, requestId, validatedInput.interaction_id);
698
701
  }
699
- // PRD #320: Generate visualization URL for analysis response
702
+ // Generate visualization URL for analysis response
700
703
  const visualizationUrl = (0, visualization_1.getVisualizationUrl)(session.sessionId);
701
- // PRD #320: Append visualization URL to message so agents display it to users
702
- const messageWithVisualization = visualizationUrl
703
- ? `${finalResult.message}\n\nšŸ“Š View visualization: ${visualizationUrl}`
704
- : finalResult.message;
705
- // PRD #320: Return JSON with visualization URL in message (for agents) and visualizationUrl field (for REST API)
706
- return {
707
- content: [{
708
- type: 'text',
709
- text: JSON.stringify({
710
- ...finalResult,
711
- message: messageWithVisualization,
712
- ...(visualizationUrl && { visualizationUrl })
713
- }, null, 2)
714
- }]
715
- };
704
+ // Build response with visualization URL in JSON
705
+ const content = [{
706
+ type: 'text',
707
+ text: JSON.stringify({
708
+ ...finalResult,
709
+ ...(visualizationUrl ? { visualizationUrl } : {})
710
+ }, null, 2)
711
+ }];
712
+ // Add agent instruction block if visualization URL is present
713
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl });
714
+ if (agentDisplayBlock) {
715
+ content.push(agentDisplayBlock);
716
+ }
717
+ return { content };
716
718
  }
717
719
  catch (error) {
718
720
  if (error instanceof Error && 'category' in error) {
@@ -43,7 +43,6 @@ export interface SystemStatus {
43
43
  resources: {
44
44
  exists: boolean;
45
45
  documentsCount?: number;
46
- syncedTypes?: string[];
47
46
  error?: string;
48
47
  };
49
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/tools/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/tools/version.ts"],"names":[],"mappings":"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"}
@@ -155,7 +155,7 @@ async function testCollectionStatus(collectionName, getCountFn) {
155
155
  }
156
156
  }
157
157
  /**
158
- * Test resources collection status and get unique synced resource types
158
+ * Test resources collection status
159
159
  */
160
160
  async function testResourcesCollectionStatus(embeddingService) {
161
161
  try {
@@ -163,18 +163,9 @@ async function testResourcesCollectionStatus(embeddingService) {
163
163
  const resourceService = new resource_vector_service_1.ResourceVectorService('resources', resourceVectorDB, embeddingService);
164
164
  const resources = await resourceService.listResources();
165
165
  const documentsCount = resources.length;
166
- // Extract unique resource types as "kind.group" (e.g., "Deployment.apps", "Service.")
167
- const typeSet = new Set();
168
- for (const resource of resources) {
169
- const group = resource.apiGroup || '';
170
- const syncedType = group ? `${resource.kind}.${group}` : resource.kind;
171
- typeSet.add(syncedType);
172
- }
173
- const syncedTypes = Array.from(typeSet).sort();
174
166
  return {
175
167
  exists: true,
176
- documentsCount,
177
- syncedTypes
168
+ documentsCount
178
169
  };
179
170
  }
180
171
  catch (error) {
@@ -678,32 +669,24 @@ async function handleVersionTool(args, logger, requestId) {
678
669
  });
679
670
  // PRD #320: Generate visualization URL if configured
680
671
  const visualizationUrl = (0, visualization_1.getVisualizationUrl)(session.sessionId);
681
- // PRD #320: Build response with visualization instruction for agents
672
+ // Build response with optional visualization URL and feedback message in JSON
682
673
  const responseData = {
683
674
  status: 'success',
684
675
  system: systemStatus,
685
676
  summary,
686
677
  timestamp,
687
- ...(visualizationUrl ? { visualizationUrl } : {})
678
+ ...(visualizationUrl ? { visualizationUrl } : {}),
679
+ ...(feedbackMessage ? { feedbackMessage } : {})
688
680
  };
689
- // PRD #320: Return two content blocks - JSON for REST API, text instruction for MCP agents
681
+ // Build content blocks - JSON for REST API, agent instruction for MCP agents
690
682
  const content = [{
691
683
  type: 'text',
692
684
  text: JSON.stringify(responseData, null, 2)
693
685
  }];
694
- // Add visualization instruction as second content block so agents display it to users
695
- if (visualizationUrl) {
696
- content.push({
697
- type: 'text',
698
- text: `šŸ“Š **View visualization**: ${visualizationUrl}`
699
- });
700
- }
701
- // PRD #326: Add feedback message as separate content block so agents display it to users
702
- if (feedbackMessage) {
703
- content.push({
704
- type: 'text',
705
- text: feedbackMessage
706
- });
686
+ // Add agent instruction block if visualization URL or feedback message is present
687
+ const agentDisplayBlock = (0, index_1.buildAgentDisplayBlock)({ visualizationUrl, feedbackMessage });
688
+ if (agentDisplayBlock) {
689
+ content.push(agentDisplayBlock);
707
690
  }
708
691
  return { content };
709
692
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vfarcic/dot-ai",
3
- "version": "0.189.0",
3
+ "version": "0.190.0",
4
4
  "description": "AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance",
5
5
  "mcpName": "io.github.vfarcic/dot-ai",
6
6
  "main": "dist/index.js",