@vfarcic/dot-ai 0.148.0 → 0.150.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 CHANGED
@@ -129,6 +129,12 @@ We welcome contributions from the community! Please review:
129
129
  - **[Maintainers](docs/MAINTAINERS.md)** - Current project maintainers
130
130
  - **[Roadmap](docs/ROADMAP.md)** - Project direction and priorities
131
131
 
132
+ ## Help Us Improve
133
+
134
+ Your feedback shapes dot-ai's future! After using the tools, you may occasionally see a feedback prompt - we'd love to hear what's working and what could be better.
135
+
136
+ 📝 **[Share your feedback](https://forms.gle/dJcDXtsxhCCwgxtT6)**
137
+
132
138
  ## License
133
139
 
134
140
  MIT License - see [LICENSE](LICENSE) file for details.
@@ -0,0 +1,43 @@
1
+ /**
2
+ * User Feedback Collection Module
3
+ *
4
+ * Manages feedback prompts shown to users at workflow completion.
5
+ * Uses Google Forms for collecting feedback without requiring backend infrastructure.
6
+ *
7
+ * Configuration via environment variables:
8
+ * - DOT_AI_FEEDBACK_ENABLED: Enable/disable feedback prompts (default: true)
9
+ * - DOT_AI_FEEDBACK_PROBABILITY: Probability of showing prompt 0.0-1.0 (default: 0.05)
10
+ * - DOT_AI_FEEDBACK_URL: Google Form URL (default: https://forms.gle/dJcDXtsxhCCwgxtT6)
11
+ */
12
+ /**
13
+ * Feedback configuration loaded from environment variables
14
+ */
15
+ export interface FeedbackConfig {
16
+ /** Whether feedback prompts are enabled */
17
+ enabled: boolean;
18
+ /** Probability of showing feedback prompt (0.0 to 1.0) */
19
+ probability: number;
20
+ /** Google Form URL for feedback collection */
21
+ formUrl: string;
22
+ }
23
+ /**
24
+ * Load feedback configuration from environment variables
25
+ */
26
+ export declare function loadFeedbackConfig(): FeedbackConfig;
27
+ /**
28
+ * Determine if feedback prompt should be shown based on configuration
29
+ * Uses random probability check when feedback is enabled
30
+ */
31
+ export declare function shouldShowFeedback(config: FeedbackConfig): boolean;
32
+ /**
33
+ * Generate the feedback message to append to tool responses
34
+ */
35
+ export declare function getFeedbackMessage(config: FeedbackConfig): string;
36
+ /**
37
+ * Check if feedback should be shown and return the message if so
38
+ * Convenience function combining shouldShowFeedback and getFeedbackMessage
39
+ *
40
+ * @returns Feedback message string if should be shown, empty string otherwise
41
+ */
42
+ export declare function maybeGetFeedbackMessage(config?: FeedbackConfig): string;
43
+ //# sourceMappingURL=feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/core/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;CACjB;AAiDD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAMnD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAMlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAQjE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAQvE"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * User Feedback Collection Module
4
+ *
5
+ * Manages feedback prompts shown to users at workflow completion.
6
+ * Uses Google Forms for collecting feedback without requiring backend infrastructure.
7
+ *
8
+ * Configuration via environment variables:
9
+ * - DOT_AI_FEEDBACK_ENABLED: Enable/disable feedback prompts (default: true)
10
+ * - DOT_AI_FEEDBACK_PROBABILITY: Probability of showing prompt 0.0-1.0 (default: 0.05)
11
+ * - DOT_AI_FEEDBACK_URL: Google Form URL (default: https://forms.gle/dJcDXtsxhCCwgxtT6)
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.loadFeedbackConfig = loadFeedbackConfig;
15
+ exports.shouldShowFeedback = shouldShowFeedback;
16
+ exports.getFeedbackMessage = getFeedbackMessage;
17
+ exports.maybeGetFeedbackMessage = maybeGetFeedbackMessage;
18
+ /** Default Google Form URL for feedback collection */
19
+ const DEFAULT_FEEDBACK_URL = 'https://forms.gle/dJcDXtsxhCCwgxtT6';
20
+ /** Default probability of showing feedback prompt (5%) */
21
+ const DEFAULT_FEEDBACK_PROBABILITY = 0.05;
22
+ /**
23
+ * Parse boolean from environment variable string
24
+ * Supports: true/false, 1/0, yes/no (case-insensitive)
25
+ */
26
+ function parseBoolean(value, defaultValue) {
27
+ if (value === undefined || value === '') {
28
+ return defaultValue;
29
+ }
30
+ const lowered = value.trim().toLowerCase();
31
+ if (lowered === 'true' || lowered === '1' || lowered === 'yes') {
32
+ return true;
33
+ }
34
+ if (lowered === 'false' || lowered === '0' || lowered === 'no') {
35
+ return false;
36
+ }
37
+ return defaultValue;
38
+ }
39
+ /**
40
+ * Parse probability from environment variable string
41
+ * Validates range 0.0 to 1.0, returns default if invalid
42
+ */
43
+ function parseProbability(value, defaultValue) {
44
+ if (value === undefined || value === '') {
45
+ return defaultValue;
46
+ }
47
+ const probability = parseFloat(value);
48
+ if (isNaN(probability) || probability < 0 || probability > 1) {
49
+ console.warn(`Invalid DOT_AI_FEEDBACK_PROBABILITY: ${value}, using ${defaultValue}`);
50
+ return defaultValue;
51
+ }
52
+ return probability;
53
+ }
54
+ /**
55
+ * Load feedback configuration from environment variables
56
+ */
57
+ function loadFeedbackConfig() {
58
+ return {
59
+ enabled: parseBoolean(process.env.DOT_AI_FEEDBACK_ENABLED, true),
60
+ probability: parseProbability(process.env.DOT_AI_FEEDBACK_PROBABILITY, DEFAULT_FEEDBACK_PROBABILITY),
61
+ formUrl: process.env.DOT_AI_FEEDBACK_URL || DEFAULT_FEEDBACK_URL
62
+ };
63
+ }
64
+ /**
65
+ * Determine if feedback prompt should be shown based on configuration
66
+ * Uses random probability check when feedback is enabled
67
+ */
68
+ function shouldShowFeedback(config) {
69
+ if (!config.enabled) {
70
+ return false;
71
+ }
72
+ return Math.random() < config.probability;
73
+ }
74
+ /**
75
+ * Generate the feedback message to append to tool responses
76
+ */
77
+ function getFeedbackMessage(config) {
78
+ return `
79
+
80
+ ════════════════════════════════════════════════════
81
+ 📣 Help us improve dot-ai!
82
+ Share your feedback: ${config.formUrl}
83
+ (Disable feedback: DOT_AI_FEEDBACK_ENABLED=false)
84
+ ════════════════════════════════════════════════════`;
85
+ }
86
+ /**
87
+ * Check if feedback should be shown and return the message if so
88
+ * Convenience function combining shouldShowFeedback and getFeedbackMessage
89
+ *
90
+ * @returns Feedback message string if should be shown, empty string otherwise
91
+ */
92
+ function maybeGetFeedbackMessage(config) {
93
+ const feedbackConfig = config || loadFeedbackConfig();
94
+ if (shouldShowFeedback(feedbackConfig)) {
95
+ return getFeedbackMessage(feedbackConfig);
96
+ }
97
+ return '';
98
+ }
@@ -46,5 +46,6 @@ export { PatternVectorService, PatternSearchOptions, PatternSearchResult } from
46
46
  export { PolicyVectorService, PolicySearchOptions, PolicySearchResult } from './policy-vector-service';
47
47
  export { CapabilityVectorService, ResourceCapability, CapabilitySearchOptions } from './capability-vector-service';
48
48
  export { EmbeddingService, EmbeddingConfig, EmbeddingProvider, VercelEmbeddingProvider } from './embedding-service';
49
+ export { FeedbackConfig, loadFeedbackConfig, shouldShowFeedback, getFeedbackMessage, maybeGetFeedbackMessage } from './feedback';
49
50
  export default DotAI;
50
51
  //# 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,MAAM,UAAU,CAAC;AAEhF,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;KACjD,CAAC;gBAEU,MAAM,GAAE,UAAe;IA+D7B,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,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzG,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;AAGpH,eAAe,KAAK,CAAC"}
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,MAAM,UAAU,CAAC;AAEhF,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;KACjD,CAAC;gBAEU,MAAM,GAAE,UAAe;IA+D7B,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,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzG,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"}
@@ -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.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.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");
@@ -138,5 +138,10 @@ Object.defineProperty(exports, "CapabilityVectorService", { enumerable: true, ge
138
138
  var embedding_service_1 = require("./embedding-service");
139
139
  Object.defineProperty(exports, "EmbeddingService", { enumerable: true, get: function () { return embedding_service_1.EmbeddingService; } });
140
140
  Object.defineProperty(exports, "VercelEmbeddingProvider", { enumerable: true, get: function () { return embedding_service_1.VercelEmbeddingProvider; } });
141
+ var feedback_1 = require("./feedback");
142
+ Object.defineProperty(exports, "loadFeedbackConfig", { enumerable: true, get: function () { return feedback_1.loadFeedbackConfig; } });
143
+ Object.defineProperty(exports, "shouldShowFeedback", { enumerable: true, get: function () { return feedback_1.shouldShowFeedback; } });
144
+ Object.defineProperty(exports, "getFeedbackMessage", { enumerable: true, get: function () { return feedback_1.getFeedbackMessage; } });
145
+ Object.defineProperty(exports, "maybeGetFeedbackMessage", { enumerable: true, get: function () { return feedback_1.maybeGetFeedbackMessage; } });
141
146
  // Default export
142
147
  exports.default = DotAI;
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-operations.d.ts","sourceRoot":"","sources":["../../src/core/pattern-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAA8C,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAmB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAShE,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,CA2BvE;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,qBAAqB,CAwBlF;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAEvE;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAWtE;AAkBD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,EAClJ,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,GAC1G,OAAO,CAAC,GAAG,CAAC,CAuYd"}
1
+ {"version":3,"file":"pattern-operations.d.ts","sourceRoot":"","sources":["../../src/core/pattern-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAA8C,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAmB,oBAAoB,EAA2B,MAAM,SAAS,CAAC;AASzF,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,CA2BvE;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,qBAAqB,CAwBlF;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAEvE;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAWtE;AAkBD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,EAClJ,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,GAC1G,OAAO,CAAC,GAAG,CAAC,CA0Yd"}
@@ -278,6 +278,8 @@ async function handlePatternOperation(operation, args, logger, requestId, valida
278
278
  // For completed patterns, storage failure means creation failure
279
279
  const storageSucceeded = storageInfo.stored === true;
280
280
  const operationSucceeded = !isComplete || storageSucceeded;
281
+ // Check if we should show feedback message (workflow completion point)
282
+ const feedbackMessage = (isComplete && storageSucceeded) ? (0, index_1.maybeGetFeedbackMessage)() : '';
281
283
  return {
282
284
  success: operationSucceeded,
283
285
  operation: 'create',
@@ -285,7 +287,7 @@ async function handlePatternOperation(operation, args, logger, requestId, valida
285
287
  workflow: workflowStep,
286
288
  storage: storageInfo,
287
289
  message: isComplete ?
288
- (storageSucceeded ? 'Pattern created successfully' : `Pattern creation failed: ${storageInfo.error}`) :
290
+ (storageSucceeded ? `Pattern created successfully${feedbackMessage}` : `Pattern creation failed: ${storageInfo.error}`) :
289
291
  'Workflow step ready'
290
292
  };
291
293
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy-operations.d.ts","sourceRoot":"","sources":["../../src/core/policy-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA8C,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQ9D;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAarE;AAGD;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,EAAE,CAAC,CAoChB;AAED;;GAEG;AACH,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,EAAE,CAAC,CAkChB;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAqCd;AAED;;GAEG;AACH,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAkCd;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,GAAG,EAClB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAyEd;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,GAAG,EAClB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CA6Ed;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,CAAC,aAAa,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,EACjJ,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,GAC1G,OAAO,CAAC,GAAG,CAAC,CAyQd"}
1
+ {"version":3,"file":"policy-operations.d.ts","sourceRoot":"","sources":["../../src/core/policy-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA8C,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAS9D;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAarE;AAGD;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,EAAE,CAAC,CAoChB;AAED;;GAEG;AACH,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,EAAE,CAAC,CAkChB;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAqCd;AAED;;GAEG;AACH,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAkCd;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,GAAG,EAClB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAyEd;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,GAAG,EAClB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CA6Ed;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,CAAC,aAAa,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,EACjJ,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,GAC1G,OAAO,CAAC,GAAG,CAAC,CA4Qd"}
@@ -19,6 +19,7 @@ const policy_vector_service_1 = require("./policy-vector-service");
19
19
  const vector_db_service_1 = require("./vector-db-service");
20
20
  const unified_creation_session_1 = require("./unified-creation-session");
21
21
  const kubernetes_utils_1 = require("./kubernetes-utils");
22
+ const index_1 = require("./index");
22
23
  // Note: validateVectorDBConnection and validateEmbeddingService are shared utilities
23
24
  // that remain in the main organizational-data.ts file as they're used by multiple domains
24
25
  /**
@@ -444,6 +445,8 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
444
445
  // For completed policies, storage failure means creation failure
445
446
  const storageSucceeded = storageInfo.stored === true;
446
447
  const operationSucceeded = !isComplete || storageSucceeded;
448
+ // Check if we should show feedback message (workflow completion point)
449
+ const feedbackMessage = (isComplete && storageSucceeded) ? (0, index_1.maybeGetFeedbackMessage)() : '';
447
450
  return {
448
451
  success: operationSucceeded,
449
452
  operation: 'create',
@@ -451,7 +454,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
451
454
  workflow: workflowStep,
452
455
  storage: storageInfo,
453
456
  message: isComplete ?
454
- (storageSucceeded ? 'Policy created and stored successfully' : 'Policy creation failed - storage error') :
457
+ (storageSucceeded ? `Policy created and stored successfully${feedbackMessage}` : 'Policy creation failed - storage error') :
455
458
  'Workflow step ready'
456
459
  };
457
460
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/generate-manifests.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;AAehD,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,kCAAkC,+IAA+I,CAAC;AAG/L,eAAO,MAAM,mCAAmC;;;CAG/C,CAAC;AAsMF;;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,CAiNxD"}
1
+ {"version":3,"file":"generate-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/generate-manifests.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAA2B,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAehD,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,kCAAkC,+IAA+I,CAAC;AAG/L,eAAO,MAAM,mCAAmC;;;CAG/C,CAAC;AAsMF;;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,CAqNxD"}
@@ -40,6 +40,7 @@ exports.GENERATEMANIFESTS_TOOL_INPUT_SCHEMA = exports.GENERATEMANIFESTS_TOOL_DES
40
40
  exports.handleGenerateManifestsTool = handleGenerateManifestsTool;
41
41
  const zod_1 = require("zod");
42
42
  const error_handling_1 = require("../core/error-handling");
43
+ const index_1 = require("../core/index");
43
44
  const cluster_utils_1 = require("../core/cluster-utils");
44
45
  const schema_1 = require("../core/schema");
45
46
  const fs = __importStar(require("fs"));
@@ -321,6 +322,8 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
321
322
  requestId
322
323
  });
323
324
  // Success! Return the validated manifests
325
+ // Check if we should show feedback message (workflow completion point)
326
+ const feedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
324
327
  const response = {
325
328
  success: true,
326
329
  status: 'manifests_generated',
@@ -328,7 +331,8 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId) {
328
331
  manifests: manifests,
329
332
  yamlPath: yamlPath,
330
333
  validationAttempts: attempt,
331
- timestamp: new Date().toISOString()
334
+ timestamp: new Date().toISOString(),
335
+ ...(feedbackMessage ? { message: feedbackMessage } : {})
332
336
  };
333
337
  return {
334
338
  content: [{
@@ -1 +1 @@
1
- {"version":3,"file":"operate-execution.d.ts","sourceRoot":"","sources":["../../src/tools/operate-execution.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAA8C,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAmB,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/E;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,GACxD,OAAO,CAAC,aAAa,CAAC,CAwIxB"}
1
+ {"version":3,"file":"operate-execution.d.ts","sourceRoot":"","sources":["../../src/tools/operate-execution.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAA8C,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAmB,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,GACxD,OAAO,CAAC,aAAa,CAAC,CA2IxB"}
@@ -10,6 +10,7 @@ exports.executeOperations = executeOperations;
10
10
  const error_handling_1 = require("../core/error-handling");
11
11
  const command_executor_1 = require("../core/command-executor");
12
12
  const remediate_1 = require("./remediate");
13
+ const index_1 = require("../core/index");
13
14
  /**
14
15
  * Executes approved operational changes
15
16
  * @param sessionId - Session ID with approved changes
@@ -92,6 +93,8 @@ async function executeOperations(sessionId, logger, sessionManager) {
92
93
  failureCount: executionResults.filter(r => !r.success).length
93
94
  });
94
95
  // 5. Return execution results with validation
96
+ // Check if we should show feedback message (workflow completion point)
97
+ const feedbackMessage = overallSuccess ? (0, index_1.maybeGetFeedbackMessage)() : '';
95
98
  return {
96
99
  status: overallSuccess ? 'success' : 'failed',
97
100
  sessionId,
@@ -100,7 +103,7 @@ async function executeOperations(sessionId, logger, sessionManager) {
100
103
  validation: validationSummary
101
104
  },
102
105
  message: overallSuccess
103
- ? `All ${executionResults.length} command(s) executed successfully. ${validationSummary}`
106
+ ? `All ${executionResults.length} command(s) executed successfully. ${validationSummary}${feedbackMessage}`
104
107
  : `${executionResults.filter(r => !r.success).length} of ${executionResults.length} command(s) failed. See execution results for details.`
105
108
  };
106
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-scope.d.ts","sourceRoot":"","sources":["../../../src/tools/project-setup/generate-scope.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgB,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAA2B,aAAa,EAAiB,MAAM,SAAS,CAAC;AAGvG;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,GAAG,aAAa,CAAC,CA8JhD"}
1
+ {"version":3,"file":"generate-scope.d.ts","sourceRoot":"","sources":["../../../src/tools/project-setup/generate-scope.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgB,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAA2B,aAAa,EAAiB,MAAM,SAAS,CAAC;AAIvG;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,GAAG,aAAa,CAAC,CAiKhD"}
@@ -10,6 +10,7 @@ exports.handleGenerateScope = handleGenerateScope;
10
10
  const error_handling_1 = require("../../core/error-handling");
11
11
  const generic_session_manager_1 = require("../../core/generic-session-manager");
12
12
  const shared_prompt_loader_1 = require("../../core/shared-prompt-loader");
13
+ const index_1 = require("../../core/index");
13
14
  /**
14
15
  * Handle generateScope stage - Step 3 of project setup workflow
15
16
  *
@@ -130,6 +131,8 @@ async function handleGenerateScope(sessionId, scope, answers, logger, requestId)
130
131
  if (scopeConfig.additionalInstructions) {
131
132
  additionalInstructions = replaceTemplateVariables(scopeConfig.additionalInstructions, answers);
132
133
  }
134
+ // Check if we should show feedback message (workflow completion point)
135
+ const feedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
133
136
  return {
134
137
  success: true,
135
138
  sessionId,
@@ -139,7 +142,7 @@ async function handleGenerateScope(sessionId, scope, answers, logger, requestId)
139
142
  instructions: `Generated ${generatedFiles.length} file(s) for scope "${scope}".\n\n` +
140
143
  `Files:\n${generatedFiles.map(f => `- ${f.path}`).join('\n')}\n\n` +
141
144
  (excludedFiles.length > 0 ? `Excluded ${excludedFiles.length} file(s):\n${excludedFiles.map(f => `- ${f}`).join('\n')}\n\n` : '') +
142
- `Write these files to your repository using the Write tool.`,
145
+ `Write these files to your repository using the Write tool.${feedbackMessage}`,
143
146
  additionalInstructions
144
147
  };
145
148
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"remediate.d.ts","sourceRoot":"","sources":["../../src/tools/remediate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remediate.d.ts","sourceRoot":"","sources":["../../src/tools/remediate.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ const error_handling_1 = require("../core/error-handling");
44
44
  const ai_provider_factory_1 = require("../core/ai-provider-factory");
45
45
  const generic_session_manager_1 = require("../core/generic-session-manager");
46
46
  const kubectl_tools_1 = require("../core/kubectl-tools");
47
+ const index_1 = require("../core/index");
47
48
  const fs = __importStar(require("fs"));
48
49
  const path = __importStar(require("path"));
49
50
  // PRD #143 Milestone 1: Hybrid approach - AI can use kubectl_api_resources tool OR continue with JSON dataRequests
@@ -461,6 +462,8 @@ IMPORTANT: You MUST respond with the final JSON analysis format as specified in
461
462
  validationStatus: validationData.status
462
463
  });
463
464
  // Create success response with execution context
465
+ // Check if we should show feedback message (workflow completion point)
466
+ const feedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
464
467
  const successResponse = {
465
468
  status: 'success',
466
469
  sessionId: session.sessionId,
@@ -477,7 +480,7 @@ IMPORTANT: You MUST respond with the final JSON analysis format as specified in
477
480
  validationIntent: validationData.validationIntent,
478
481
  guidance: `✅ REMEDIATION COMPLETE: Issue has been successfully resolved through executed commands.`,
479
482
  agentInstructions: `1. Show user that the issue has been successfully resolved\n2. Display the actual kubectl commands that were executed (from remediation.actions[].command field)\n3. Show execution results with success/failure status for each command\n4. Show the validation results confirming the fix worked\n5. No further action required`,
480
- message: `Issue successfully resolved. Executed ${results.length} remediation actions and validated the fix.`,
483
+ message: `Issue successfully resolved. Executed ${results.length} remediation actions and validated the fix.${feedbackMessage}`,
481
484
  validation: {
482
485
  success: true,
483
486
  summary: 'Validation confirmed issue resolution'
@@ -510,6 +513,8 @@ IMPORTANT: You MUST respond with the final JSON analysis format as specified in
510
513
  status: overallSuccess ? 'executed_successfully' : 'executed_with_errors',
511
514
  executionResults: results
512
515
  });
516
+ // Check if we should show feedback message (workflow completion point)
517
+ const executionFeedbackMessage = overallSuccess ? (0, index_1.maybeGetFeedbackMessage)() : '';
513
518
  const response = {
514
519
  status: overallSuccess ? 'success' : 'failed',
515
520
  sessionId: session.sessionId,
@@ -517,7 +522,7 @@ IMPORTANT: You MUST respond with the final JSON analysis format as specified in
517
522
  results: results,
518
523
  executedCommands: results.map(r => r.action),
519
524
  message: overallSuccess
520
- ? `Successfully executed ${results.length} remediation actions`
525
+ ? `Successfully executed ${results.length} remediation actions${executionFeedbackMessage}`
521
526
  : `Executed ${results.length} actions with ${results.filter(r => !r.success).length} failures`,
522
527
  validation: validationResult,
523
528
  instructions: {
@@ -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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"}
@@ -601,6 +601,8 @@ async function handleVersionTool(args, logger, requestId) {
601
601
  capabilitySystemReady: capabilityStatus.systemReady,
602
602
  kyvernoReady: kyvernoStatus.policyGenerationReady
603
603
  });
604
+ // Check if we should show feedback message
605
+ const feedbackMessage = (0, index_1.maybeGetFeedbackMessage)();
604
606
  return {
605
607
  content: [{
606
608
  type: 'text',
@@ -626,7 +628,8 @@ async function handleVersionTool(args, logger, requestId) {
626
628
  kyvernoStatus.policyGenerationReady ? 'kyverno-policy-generation' : null
627
629
  ].filter(Boolean)
628
630
  },
629
- timestamp: new Date().toISOString()
631
+ timestamp: new Date().toISOString(),
632
+ ...(feedbackMessage ? { message: feedbackMessage } : {})
630
633
  }, null, 2)
631
634
  }]
632
635
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vfarcic/dot-ai",
3
- "version": "0.148.0",
3
+ "version": "0.150.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",
@@ -147,11 +147,8 @@ git push -u origin feature/prd-[issue-id]-[feature-name]
147
147
  - **Documentation tools**: Ensure documentation generation tools are available
148
148
 
149
149
  ### Implementation Tracking Setup
150
- - **Mark PRD as "In Progress"**: Update PRD status section
151
- - **Create implementation log**: Add initial work log entry with start date
152
- - **Set up progress tracking**: Identify key milestones for progress updates
153
- - **✅ CRITICAL: Update milestone checkboxes**: As you complete each implementation milestone in the PRD, immediately mark the corresponding checkbox as [x] completed
154
- - **Commit milestone updates**: Include PRD milestone updates in your commits to maintain accurate progress tracking
150
+ - **Identify key milestones**: Review the PRD milestones for progress tracking
151
+ - **Plan progress checkpoints**: Determine when to update progress during implementation
155
152
 
156
153
  ## Step 4: Identify Implementation Starting Point
157
154
 
@@ -208,27 +205,20 @@ If confirmed, provide:
208
205
  - **Testing approach**: How to validate the implementation
209
206
  - **Progress checkpoints**: When to update the PRD with progress
210
207
 
211
- ### Progress Tracking Setup
212
- - **Update PRD status**: Mark relevant items as "in progress"
213
- - **Commit initial setup**: Make initial commit with branch and any setup changes
214
- - **Documentation updates**: Add PRD traceability comments to any docs being implemented
208
+ ### After Implementation
209
+ Once you complete a task or milestone, update PRD progress by running the `prd-update-progress` prompt.
215
210
 
216
- ### Ongoing PRD Maintenance During Implementation
217
- Throughout the implementation process:
218
- - **After completing any milestone**: Immediately update the corresponding checkbox in the PRD file from `[ ]` to `[x]`
219
- - **Update work log**: Add entries documenting what was accomplished
220
- - **Keep status current**: Update the PRD status section to reflect current implementation state
211
+ *Note: Different agents/clients may have different syntax for executing commands and prompts (e.g., `/prd-update-progress` in Claude Code, or other syntax in different MCP clients).*
221
212
 
222
213
  ## Success Criteria
223
214
 
224
215
  This command should:
225
216
  - ✅ Successfully identify the target PRD for implementation
226
217
  - ✅ Validate that the PRD is ready for development work
227
- - ✅ Set up proper implementation context (branch, environment, tracking)
218
+ - ✅ Set up proper implementation context (branch, environment)
228
219
  - ✅ Identify the optimal first implementation task
229
220
  - ✅ Provide clear, actionable next steps for beginning development
230
221
  - ✅ Bridge the gap between planning and actual coding work
231
- - ✅ Ensure proper progress tracking is established from the start
232
222
 
233
223
  ## Notes
234
224