mindheal 1.0.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.
Files changed (255) hide show
  1. package/.env.example +48 -0
  2. package/CHANGELOG.md +27 -0
  3. package/LICENSE +21 -0
  4. package/README.md +481 -0
  5. package/dist/cjs/ai/ai-provider.js +46 -0
  6. package/dist/cjs/ai/ai-provider.js.map +1 -0
  7. package/dist/cjs/ai/anthropic-provider.js +106 -0
  8. package/dist/cjs/ai/anthropic-provider.js.map +1 -0
  9. package/dist/cjs/ai/azure-openai-provider.js +130 -0
  10. package/dist/cjs/ai/azure-openai-provider.js.map +1 -0
  11. package/dist/cjs/ai/bedrock-provider.js +183 -0
  12. package/dist/cjs/ai/bedrock-provider.js.map +1 -0
  13. package/dist/cjs/ai/deepseek-provider.js +118 -0
  14. package/dist/cjs/ai/deepseek-provider.js.map +1 -0
  15. package/dist/cjs/ai/gemini-provider.js +129 -0
  16. package/dist/cjs/ai/gemini-provider.js.map +1 -0
  17. package/dist/cjs/ai/groq-provider.js +118 -0
  18. package/dist/cjs/ai/groq-provider.js.map +1 -0
  19. package/dist/cjs/ai/meta-provider.js +118 -0
  20. package/dist/cjs/ai/meta-provider.js.map +1 -0
  21. package/dist/cjs/ai/ollama-provider.js +127 -0
  22. package/dist/cjs/ai/ollama-provider.js.map +1 -0
  23. package/dist/cjs/ai/openai-provider.js +117 -0
  24. package/dist/cjs/ai/openai-provider.js.map +1 -0
  25. package/dist/cjs/ai/perplexity-provider.js +118 -0
  26. package/dist/cjs/ai/perplexity-provider.js.map +1 -0
  27. package/dist/cjs/ai/prompt-templates.js +174 -0
  28. package/dist/cjs/ai/prompt-templates.js.map +1 -0
  29. package/dist/cjs/ai/qwen-provider.js +118 -0
  30. package/dist/cjs/ai/qwen-provider.js.map +1 -0
  31. package/dist/cjs/analytics/healing-analytics.js +263 -0
  32. package/dist/cjs/analytics/healing-analytics.js.map +1 -0
  33. package/dist/cjs/cli/init.js +517 -0
  34. package/dist/cjs/cli/init.js.map +1 -0
  35. package/dist/cjs/config/config-loader.js +135 -0
  36. package/dist/cjs/config/config-loader.js.map +1 -0
  37. package/dist/cjs/config/defaults.js +109 -0
  38. package/dist/cjs/config/defaults.js.map +1 -0
  39. package/dist/cjs/core/dom-snapshot.js +280 -0
  40. package/dist/cjs/core/dom-snapshot.js.map +1 -0
  41. package/dist/cjs/core/enterprise-strategy.js +702 -0
  42. package/dist/cjs/core/enterprise-strategy.js.map +1 -0
  43. package/dist/cjs/core/healer.js +283 -0
  44. package/dist/cjs/core/healer.js.map +1 -0
  45. package/dist/cjs/core/interceptor.js +945 -0
  46. package/dist/cjs/core/interceptor.js.map +1 -0
  47. package/dist/cjs/core/locator-analyzer.js +172 -0
  48. package/dist/cjs/core/locator-analyzer.js.map +1 -0
  49. package/dist/cjs/core/locator-strategies.js +891 -0
  50. package/dist/cjs/core/locator-strategies.js.map +1 -0
  51. package/dist/cjs/core/self-heal-cache.js +178 -0
  52. package/dist/cjs/core/self-heal-cache.js.map +1 -0
  53. package/dist/cjs/core/smart-retry.js +248 -0
  54. package/dist/cjs/core/smart-retry.js.map +1 -0
  55. package/dist/cjs/core/visual-verification.js +262 -0
  56. package/dist/cjs/core/visual-verification.js.map +1 -0
  57. package/dist/cjs/git/code-modifier.js +184 -0
  58. package/dist/cjs/git/code-modifier.js.map +1 -0
  59. package/dist/cjs/git/git-operations.js +145 -0
  60. package/dist/cjs/git/git-operations.js.map +1 -0
  61. package/dist/cjs/git/pr-creator.js +190 -0
  62. package/dist/cjs/git/pr-creator.js.map +1 -0
  63. package/dist/cjs/index.js +97 -0
  64. package/dist/cjs/index.js.map +1 -0
  65. package/dist/cjs/rag/context-retriever.js +289 -0
  66. package/dist/cjs/rag/context-retriever.js.map +1 -0
  67. package/dist/cjs/rag/embeddings.js +82 -0
  68. package/dist/cjs/rag/embeddings.js.map +1 -0
  69. package/dist/cjs/rag/knowledge-store.js +159 -0
  70. package/dist/cjs/rag/knowledge-store.js.map +1 -0
  71. package/dist/cjs/reporters/heal-report.js +279 -0
  72. package/dist/cjs/reporters/heal-report.js.map +1 -0
  73. package/dist/cjs/reporters/heal-reporter.js +294 -0
  74. package/dist/cjs/reporters/heal-reporter.js.map +1 -0
  75. package/dist/cjs/server/review-server.js +166 -0
  76. package/dist/cjs/server/review-server.js.map +1 -0
  77. package/dist/cjs/server/routes.js +92 -0
  78. package/dist/cjs/server/routes.js.map +1 -0
  79. package/dist/cjs/utils/environment.js +57 -0
  80. package/dist/cjs/utils/environment.js.map +1 -0
  81. package/dist/cjs/utils/file-lock.js +136 -0
  82. package/dist/cjs/utils/file-lock.js.map +1 -0
  83. package/dist/cjs/utils/file-utils.js +49 -0
  84. package/dist/cjs/utils/file-utils.js.map +1 -0
  85. package/dist/cjs/utils/logger.js +78 -0
  86. package/dist/cjs/utils/logger.js.map +1 -0
  87. package/dist/esm/ai/ai-provider.js +44 -0
  88. package/dist/esm/ai/ai-provider.js.map +1 -0
  89. package/dist/esm/ai/anthropic-provider.js +104 -0
  90. package/dist/esm/ai/anthropic-provider.js.map +1 -0
  91. package/dist/esm/ai/azure-openai-provider.js +128 -0
  92. package/dist/esm/ai/azure-openai-provider.js.map +1 -0
  93. package/dist/esm/ai/bedrock-provider.js +181 -0
  94. package/dist/esm/ai/bedrock-provider.js.map +1 -0
  95. package/dist/esm/ai/deepseek-provider.js +116 -0
  96. package/dist/esm/ai/deepseek-provider.js.map +1 -0
  97. package/dist/esm/ai/gemini-provider.js +127 -0
  98. package/dist/esm/ai/gemini-provider.js.map +1 -0
  99. package/dist/esm/ai/groq-provider.js +116 -0
  100. package/dist/esm/ai/groq-provider.js.map +1 -0
  101. package/dist/esm/ai/meta-provider.js +116 -0
  102. package/dist/esm/ai/meta-provider.js.map +1 -0
  103. package/dist/esm/ai/ollama-provider.js +125 -0
  104. package/dist/esm/ai/ollama-provider.js.map +1 -0
  105. package/dist/esm/ai/openai-provider.js +115 -0
  106. package/dist/esm/ai/openai-provider.js.map +1 -0
  107. package/dist/esm/ai/perplexity-provider.js +116 -0
  108. package/dist/esm/ai/perplexity-provider.js.map +1 -0
  109. package/dist/esm/ai/prompt-templates.js +171 -0
  110. package/dist/esm/ai/prompt-templates.js.map +1 -0
  111. package/dist/esm/ai/qwen-provider.js +116 -0
  112. package/dist/esm/ai/qwen-provider.js.map +1 -0
  113. package/dist/esm/analytics/healing-analytics.js +261 -0
  114. package/dist/esm/analytics/healing-analytics.js.map +1 -0
  115. package/dist/esm/cli/init.js +495 -0
  116. package/dist/esm/cli/init.js.map +1 -0
  117. package/dist/esm/config/config-loader.js +132 -0
  118. package/dist/esm/config/config-loader.js.map +1 -0
  119. package/dist/esm/config/defaults.js +107 -0
  120. package/dist/esm/config/defaults.js.map +1 -0
  121. package/dist/esm/core/dom-snapshot.js +278 -0
  122. package/dist/esm/core/dom-snapshot.js.map +1 -0
  123. package/dist/esm/core/enterprise-strategy.js +695 -0
  124. package/dist/esm/core/enterprise-strategy.js.map +1 -0
  125. package/dist/esm/core/healer.js +281 -0
  126. package/dist/esm/core/healer.js.map +1 -0
  127. package/dist/esm/core/interceptor.js +940 -0
  128. package/dist/esm/core/interceptor.js.map +1 -0
  129. package/dist/esm/core/locator-analyzer.js +169 -0
  130. package/dist/esm/core/locator-analyzer.js.map +1 -0
  131. package/dist/esm/core/locator-strategies.js +882 -0
  132. package/dist/esm/core/locator-strategies.js.map +1 -0
  133. package/dist/esm/core/self-heal-cache.js +176 -0
  134. package/dist/esm/core/self-heal-cache.js.map +1 -0
  135. package/dist/esm/core/smart-retry.js +246 -0
  136. package/dist/esm/core/smart-retry.js.map +1 -0
  137. package/dist/esm/core/visual-verification.js +260 -0
  138. package/dist/esm/core/visual-verification.js.map +1 -0
  139. package/dist/esm/git/code-modifier.js +182 -0
  140. package/dist/esm/git/code-modifier.js.map +1 -0
  141. package/dist/esm/git/git-operations.js +143 -0
  142. package/dist/esm/git/git-operations.js.map +1 -0
  143. package/dist/esm/git/pr-creator.js +188 -0
  144. package/dist/esm/git/pr-creator.js.map +1 -0
  145. package/dist/esm/index.js +37 -0
  146. package/dist/esm/index.js.map +1 -0
  147. package/dist/esm/rag/context-retriever.js +287 -0
  148. package/dist/esm/rag/context-retriever.js.map +1 -0
  149. package/dist/esm/rag/embeddings.js +77 -0
  150. package/dist/esm/rag/embeddings.js.map +1 -0
  151. package/dist/esm/rag/knowledge-store.js +157 -0
  152. package/dist/esm/rag/knowledge-store.js.map +1 -0
  153. package/dist/esm/reporters/heal-report.js +277 -0
  154. package/dist/esm/reporters/heal-report.js.map +1 -0
  155. package/dist/esm/reporters/heal-reporter.js +290 -0
  156. package/dist/esm/reporters/heal-reporter.js.map +1 -0
  157. package/dist/esm/server/review-server.js +164 -0
  158. package/dist/esm/server/review-server.js.map +1 -0
  159. package/dist/esm/server/routes.js +90 -0
  160. package/dist/esm/server/routes.js.map +1 -0
  161. package/dist/esm/utils/environment.js +53 -0
  162. package/dist/esm/utils/environment.js.map +1 -0
  163. package/dist/esm/utils/file-lock.js +134 -0
  164. package/dist/esm/utils/file-lock.js.map +1 -0
  165. package/dist/esm/utils/file-utils.js +43 -0
  166. package/dist/esm/utils/file-utils.js.map +1 -0
  167. package/dist/esm/utils/logger.js +75 -0
  168. package/dist/esm/utils/logger.js.map +1 -0
  169. package/dist/types/ai/ai-provider.d.ts +4 -0
  170. package/dist/types/ai/ai-provider.d.ts.map +1 -0
  171. package/dist/types/ai/anthropic-provider.d.ts +11 -0
  172. package/dist/types/ai/anthropic-provider.d.ts.map +1 -0
  173. package/dist/types/ai/azure-openai-provider.d.ts +13 -0
  174. package/dist/types/ai/azure-openai-provider.d.ts.map +1 -0
  175. package/dist/types/ai/bedrock-provider.d.ts +14 -0
  176. package/dist/types/ai/bedrock-provider.d.ts.map +1 -0
  177. package/dist/types/ai/deepseek-provider.d.ts +12 -0
  178. package/dist/types/ai/deepseek-provider.d.ts.map +1 -0
  179. package/dist/types/ai/gemini-provider.d.ts +12 -0
  180. package/dist/types/ai/gemini-provider.d.ts.map +1 -0
  181. package/dist/types/ai/groq-provider.d.ts +12 -0
  182. package/dist/types/ai/groq-provider.d.ts.map +1 -0
  183. package/dist/types/ai/meta-provider.d.ts +12 -0
  184. package/dist/types/ai/meta-provider.d.ts.map +1 -0
  185. package/dist/types/ai/ollama-provider.d.ts +10 -0
  186. package/dist/types/ai/ollama-provider.d.ts.map +1 -0
  187. package/dist/types/ai/openai-provider.d.ts +11 -0
  188. package/dist/types/ai/openai-provider.d.ts.map +1 -0
  189. package/dist/types/ai/perplexity-provider.d.ts +12 -0
  190. package/dist/types/ai/perplexity-provider.d.ts.map +1 -0
  191. package/dist/types/ai/prompt-templates.d.ts +11 -0
  192. package/dist/types/ai/prompt-templates.d.ts.map +1 -0
  193. package/dist/types/ai/qwen-provider.d.ts +12 -0
  194. package/dist/types/ai/qwen-provider.d.ts.map +1 -0
  195. package/dist/types/analytics/healing-analytics.d.ts +36 -0
  196. package/dist/types/analytics/healing-analytics.d.ts.map +1 -0
  197. package/dist/types/cli/init.d.ts +15 -0
  198. package/dist/types/cli/init.d.ts.map +1 -0
  199. package/dist/types/config/config-loader.d.ts +4 -0
  200. package/dist/types/config/config-loader.d.ts.map +1 -0
  201. package/dist/types/config/defaults.d.ts +3 -0
  202. package/dist/types/config/defaults.d.ts.map +1 -0
  203. package/dist/types/core/dom-snapshot.d.ts +12 -0
  204. package/dist/types/core/dom-snapshot.d.ts.map +1 -0
  205. package/dist/types/core/enterprise-strategy.d.ts +56 -0
  206. package/dist/types/core/enterprise-strategy.d.ts.map +1 -0
  207. package/dist/types/core/healer.d.ts +52 -0
  208. package/dist/types/core/healer.d.ts.map +1 -0
  209. package/dist/types/core/interceptor.d.ts +64 -0
  210. package/dist/types/core/interceptor.d.ts.map +1 -0
  211. package/dist/types/core/locator-analyzer.d.ts +31 -0
  212. package/dist/types/core/locator-analyzer.d.ts.map +1 -0
  213. package/dist/types/core/locator-strategies.d.ts +45 -0
  214. package/dist/types/core/locator-strategies.d.ts.map +1 -0
  215. package/dist/types/core/self-heal-cache.d.ts +51 -0
  216. package/dist/types/core/self-heal-cache.d.ts.map +1 -0
  217. package/dist/types/core/smart-retry.d.ts +64 -0
  218. package/dist/types/core/smart-retry.d.ts.map +1 -0
  219. package/dist/types/core/visual-verification.d.ts +46 -0
  220. package/dist/types/core/visual-verification.d.ts.map +1 -0
  221. package/dist/types/git/code-modifier.d.ts +51 -0
  222. package/dist/types/git/code-modifier.d.ts.map +1 -0
  223. package/dist/types/git/git-operations.d.ts +40 -0
  224. package/dist/types/git/git-operations.d.ts.map +1 -0
  225. package/dist/types/git/pr-creator.d.ts +27 -0
  226. package/dist/types/git/pr-creator.d.ts.map +1 -0
  227. package/dist/types/index.d.ts +40 -0
  228. package/dist/types/index.d.ts.map +1 -0
  229. package/dist/types/rag/context-retriever.d.ts +69 -0
  230. package/dist/types/rag/context-retriever.d.ts.map +1 -0
  231. package/dist/types/rag/embeddings.d.ts +32 -0
  232. package/dist/types/rag/embeddings.d.ts.map +1 -0
  233. package/dist/types/rag/index.d.ts +12 -0
  234. package/dist/types/rag/index.d.ts.map +1 -0
  235. package/dist/types/rag/knowledge-store.d.ts +38 -0
  236. package/dist/types/rag/knowledge-store.d.ts.map +1 -0
  237. package/dist/types/reporters/heal-report.d.ts +29 -0
  238. package/dist/types/reporters/heal-report.d.ts.map +1 -0
  239. package/dist/types/reporters/heal-reporter.d.ts +49 -0
  240. package/dist/types/reporters/heal-reporter.d.ts.map +1 -0
  241. package/dist/types/server/review-server.d.ts +20 -0
  242. package/dist/types/server/review-server.d.ts.map +1 -0
  243. package/dist/types/server/routes.d.ts +4 -0
  244. package/dist/types/server/routes.d.ts.map +1 -0
  245. package/dist/types/types/index.d.ts +433 -0
  246. package/dist/types/types/index.d.ts.map +1 -0
  247. package/dist/types/utils/environment.d.ts +10 -0
  248. package/dist/types/utils/environment.d.ts.map +1 -0
  249. package/dist/types/utils/file-lock.d.ts +37 -0
  250. package/dist/types/utils/file-lock.d.ts.map +1 -0
  251. package/dist/types/utils/file-utils.d.ts +7 -0
  252. package/dist/types/utils/file-utils.d.ts.map +1 -0
  253. package/dist/types/utils/logger.d.ts +9 -0
  254. package/dist/types/utils/logger.d.ts.map +1 -0
  255. package/package.json +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-strategy.js","sources":["../../../../src/core/enterprise-strategy.ts"],"sourcesContent":[null],"names":["logger"],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ 'use strict';
2
+
3
+ var domSnapshot = require('./dom-snapshot.js');
4
+ var locatorStrategies = require('./locator-strategies.js');
5
+ var locatorAnalyzer = require('./locator-analyzer.js');
6
+ var logger = require('../utils/logger.js');
7
+
8
+ /**
9
+ * Generates a unique event ID using a timestamp and random hex suffix.
10
+ */
11
+ function generateEventId() {
12
+ const timestamp = Date.now().toString(36);
13
+ const random = Math.random().toString(36).substring(2, 10);
14
+ return `heal_${timestamp}_${random}`;
15
+ }
16
+ /**
17
+ * The healing engine that orchestrates locator recovery.
18
+ *
19
+ * Executes strategies in the order defined by the configuration and stops
20
+ * on the first result whose confidence meets or exceeds the configured threshold.
21
+ *
22
+ * Pipeline order: cache -> attribute -> text -> role -> css -> xpath -> ai
23
+ */
24
+ class Healer {
25
+ constructor(config, aiProvider, cache, contextRetriever, smartRetry, visualVerifier, analytics) {
26
+ this.config = config;
27
+ this.aiProvider = aiProvider;
28
+ this.cache = cache;
29
+ this.contextRetriever = contextRetriever ?? null;
30
+ this.smartRetry = smartRetry ?? null;
31
+ this.visualVerifier = visualVerifier ?? null;
32
+ this.analytics = analytics ?? null;
33
+ }
34
+ /**
35
+ * Attempts to heal a broken locator by running configured strategies in order.
36
+ *
37
+ * @param page - Playwright Page instance for DOM inspection.
38
+ * @param originalLocator - The locator that failed to resolve.
39
+ * @param action - The Playwright action that was attempted (e.g. "click", "fill").
40
+ * @param error - The original error that triggered healing.
41
+ * @returns A HealingResult describing what happened, including all attempts.
42
+ */
43
+ async heal(page, originalLocator, action, error) {
44
+ const eventId = generateEventId();
45
+ const overallStart = Date.now();
46
+ const attempts = [];
47
+ const threshold = this.config.healing.confidenceThreshold;
48
+ logger.logger.info(`[${eventId}] Healing started for "${originalLocator.playwrightExpression}" ` +
49
+ `(action: ${action})`);
50
+ logger.logger.debug(`[${eventId}] Original error: ${error.message}`);
51
+ // Smart retry: wait for network idle before healing (page may still be loading)
52
+ if (this.smartRetry) {
53
+ await this.smartRetry.waitForNetworkIdle(page);
54
+ await this.smartRetry.waitForDOMStable(page);
55
+ }
56
+ // Capture a DOM snapshot once and reuse it across strategies.
57
+ let domSnapshot$1;
58
+ try {
59
+ domSnapshot$1 = await domSnapshot.captureDOMSnapshot(page, undefined, this.config.healing.domSnapshotDepth ?? 3);
60
+ }
61
+ catch (snapshotError) {
62
+ const msg = snapshotError instanceof Error ? snapshotError.message : String(snapshotError);
63
+ logger.logger.error(`[${eventId}] DOM snapshot capture failed: ${msg}`);
64
+ return this.buildFailureResult(originalLocator, attempts, overallStart);
65
+ }
66
+ const strategies = this.config.healing.strategies;
67
+ for (const strategyName of strategies) {
68
+ logger.logger.debug(`[${eventId}] Trying strategy: ${strategyName}`);
69
+ try {
70
+ const attempt = await this.executeStrategy(strategyName, page, originalLocator, domSnapshot$1, action, error);
71
+ attempts.push(attempt);
72
+ if (attempt.locator && attempt.confidence >= threshold) {
73
+ // Verify the healed locator actually resolves on the page before accepting.
74
+ const verified = await this.verifyLocator(page, attempt.locator);
75
+ if (verified) {
76
+ // Visual verification: ensure the healed element is visually correct.
77
+ if (this.visualVerifier) {
78
+ const visualResult = await this.visualVerifier.verify(page, attempt.locator, eventId);
79
+ if (!visualResult.verified) {
80
+ logger.logger.warn(`[${eventId}] Visual verification failed for strategy "${strategyName}". Continuing.`);
81
+ continue;
82
+ }
83
+ }
84
+ logger.logger.info(`[${eventId}] Healed by "${strategyName}" with confidence ${attempt.confidence}: ` +
85
+ `${attempt.locator.playwrightExpression}`);
86
+ // Persist to cache for future runs.
87
+ this.cacheResult(originalLocator, attempt.locator, strategyName, attempt.confidence, domSnapshot$1.url);
88
+ return {
89
+ success: true,
90
+ originalLocator,
91
+ healedLocator: attempt.locator,
92
+ strategy: strategyName,
93
+ confidence: attempt.confidence,
94
+ reasoning: this.buildReasoning(strategyName, attempt, originalLocator),
95
+ duration: Date.now() - overallStart,
96
+ attempts,
97
+ };
98
+ }
99
+ logger.logger.debug(`[${eventId}] Strategy "${strategyName}" produced a locator that did not resolve. Continuing.`);
100
+ }
101
+ else if (attempt.locator) {
102
+ logger.logger.debug(`[${eventId}] Strategy "${strategyName}" below threshold ` +
103
+ `(${attempt.confidence} < ${threshold})`);
104
+ }
105
+ else {
106
+ logger.logger.debug(`[${eventId}] Strategy "${strategyName}" found no candidate`);
107
+ }
108
+ }
109
+ catch (strategyError) {
110
+ const msg = strategyError instanceof Error ? strategyError.message : String(strategyError);
111
+ logger.logger.error(`[${eventId}] Strategy "${strategyName}" threw: ${msg}`);
112
+ attempts.push({
113
+ strategy: strategyName,
114
+ locator: null,
115
+ confidence: 0,
116
+ duration: 0,
117
+ error: msg,
118
+ });
119
+ }
120
+ }
121
+ logger.logger.warn(`[${eventId}] All strategies exhausted. Healing failed for "${originalLocator.playwrightExpression}"`);
122
+ return this.buildFailureResult(originalLocator, attempts, overallStart);
123
+ }
124
+ // ── Strategy dispatch ───────────────────────────────────────────────────────
125
+ /**
126
+ * Executes a single named strategy and returns the attempt result.
127
+ * The "cache" and "ai" strategies are handled specially; everything else
128
+ * delegates to the shared `runStrategy` dispatcher.
129
+ */
130
+ async executeStrategy(name, page, originalLocator, domSnapshot, action, error) {
131
+ const start = Date.now();
132
+ if (name === 'cache') {
133
+ return this.cacheStrategy(originalLocator, domSnapshot.url, start);
134
+ }
135
+ if (name === 'ai') {
136
+ return this.aiStrategy(originalLocator, domSnapshot, action, error, start);
137
+ }
138
+ // All other strategies are handled by the locator-strategies module.
139
+ return locatorStrategies.runStrategy(name, page, originalLocator, domSnapshot);
140
+ }
141
+ // ── Cache strategy ──────────────────────────────────────────────────────────
142
+ cacheStrategy(originalLocator, pageUrl, startTime) {
143
+ if (!this.config.healing.cacheHeals) {
144
+ return { strategy: 'cache', locator: null, confidence: 0, duration: Date.now() - startTime };
145
+ }
146
+ const hash = locatorAnalyzer.getLocatorHash(originalLocator, pageUrl);
147
+ const cached = this.cache.get(hash);
148
+ if (cached) {
149
+ logger.logger.debug(`Cache hit for hash ${hash}, confidence ${cached.confidence}`);
150
+ const locator = {
151
+ type: cached.healedType,
152
+ selector: cached.healedSelector,
153
+ playwrightExpression: cached.healedExpression,
154
+ };
155
+ return {
156
+ strategy: 'cache',
157
+ locator,
158
+ confidence: cached.confidence,
159
+ duration: Date.now() - startTime,
160
+ };
161
+ }
162
+ return { strategy: 'cache', locator: null, confidence: 0, duration: Date.now() - startTime };
163
+ }
164
+ // ── AI strategy ─────────────────────────────────────────────────────────────
165
+ async aiStrategy(originalLocator, domSnapshot, action, error, startTime) {
166
+ if (!this.aiProvider) {
167
+ logger.logger.debug('AI strategy skipped: no AI provider configured');
168
+ return { strategy: 'ai', locator: null, confidence: 0, duration: Date.now() - startTime };
169
+ }
170
+ try {
171
+ // Retrieve RAG context to enhance the AI prompt
172
+ let ragContext;
173
+ if (this.contextRetriever) {
174
+ ragContext = this.contextRetriever.retrieve(originalLocator, domSnapshot.url, action, error.message);
175
+ if (ragContext.length > 0) {
176
+ logger.logger.debug(`AI strategy enriched with ${ragContext.length} RAG context chunk(s)`);
177
+ }
178
+ }
179
+ const response = await this.aiProvider.suggestLocator({
180
+ originalLocator,
181
+ domSnapshot: domSnapshot.html,
182
+ pageUrl: domSnapshot.url,
183
+ action,
184
+ errorMessage: error.message,
185
+ ragContext,
186
+ });
187
+ const locator = {
188
+ type: response.locatorType,
189
+ selector: response.selector,
190
+ playwrightExpression: response.playwrightExpression,
191
+ };
192
+ return {
193
+ strategy: 'ai',
194
+ locator,
195
+ confidence: response.confidence,
196
+ duration: Date.now() - startTime,
197
+ };
198
+ }
199
+ catch (aiError) {
200
+ const msg = aiError instanceof Error ? aiError.message : String(aiError);
201
+ logger.logger.error(`AI strategy failed: ${msg}`);
202
+ return {
203
+ strategy: 'ai',
204
+ locator: null,
205
+ confidence: 0,
206
+ duration: Date.now() - startTime,
207
+ error: msg,
208
+ };
209
+ }
210
+ }
211
+ // ── Locator verification ────────────────────────────────────────────────────
212
+ /**
213
+ * Verifies that a proposed healed locator actually resolves to at least one
214
+ * element on the page. Uses a short timeout to avoid blocking.
215
+ */
216
+ async verifyLocator(page, locator) {
217
+ try {
218
+ const resolved = page.locator(locator.selector);
219
+ const count = await resolved.count();
220
+ if (count === 0) {
221
+ logger.logger.debug(`Verification failed: "${locator.selector}" resolved 0 elements`);
222
+ return false;
223
+ }
224
+ if (count > 1) {
225
+ logger.logger.debug(`Verification warning: "${locator.selector}" resolved ${count} elements (using first)`);
226
+ }
227
+ return true;
228
+ }
229
+ catch {
230
+ return false;
231
+ }
232
+ }
233
+ // ── Cache persistence ───────────────────────────────────────────────────────
234
+ cacheResult(original, healed, strategy, confidence, pageUrl) {
235
+ if (!this.config.healing.cacheHeals)
236
+ return;
237
+ const hash = locatorAnalyzer.getLocatorHash(original, pageUrl);
238
+ let urlPattern;
239
+ try {
240
+ const parsed = new URL(pageUrl);
241
+ urlPattern = `${parsed.origin}${parsed.pathname}`;
242
+ }
243
+ catch {
244
+ urlPattern = pageUrl;
245
+ }
246
+ this.cache.set(hash, {
247
+ originalSelector: original.selector,
248
+ originalType: original.type,
249
+ healedSelector: healed.selector,
250
+ healedType: healed.type,
251
+ healedExpression: healed.playwrightExpression,
252
+ pageUrlPattern: urlPattern,
253
+ confidence,
254
+ strategy,
255
+ createdAt: Date.now(),
256
+ usageCount: 1,
257
+ lastUsed: Date.now(),
258
+ });
259
+ }
260
+ // ── Helpers ─────────────────────────────────────────────────────────────────
261
+ buildReasoning(strategy, attempt, original) {
262
+ const healed = attempt.locator;
263
+ if (!healed)
264
+ return 'No healed locator produced.';
265
+ return (`Strategy "${strategy}" healed "${original.playwrightExpression}" -> ` +
266
+ `"${healed.playwrightExpression}" with confidence ${attempt.confidence}.`);
267
+ }
268
+ buildFailureResult(originalLocator, attempts, overallStart) {
269
+ return {
270
+ success: false,
271
+ originalLocator,
272
+ healedLocator: null,
273
+ strategy: null,
274
+ confidence: 0,
275
+ reasoning: 'All healing strategies failed to find a suitable replacement locator.',
276
+ duration: Date.now() - overallStart,
277
+ attempts,
278
+ };
279
+ }
280
+ }
281
+
282
+ exports.Healer = Healer;
283
+ //# sourceMappingURL=healer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"healer.js","sources":["../../../../src/core/healer.ts"],"sourcesContent":[null],"names":["logger","domSnapshot","captureDOMSnapshot","runStrategy","getLocatorHash"],"mappings":"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"}