playwright-intelligence-engine 0.0.0-stage → 2.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 (353) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +229 -3
  3. package/bin/pw-intel.js +37 -0
  4. package/dist/authoring/author.d.ts +83 -0
  5. package/dist/authoring/author.d.ts.map +1 -0
  6. package/dist/authoring/generation-contract.d.ts +90 -0
  7. package/dist/authoring/generation-contract.d.ts.map +1 -0
  8. package/dist/authoring/hybrid-author.d.ts +6 -0
  9. package/dist/authoring/hybrid-author.d.ts.map +1 -0
  10. package/dist/authoring/index.d.ts +7 -0
  11. package/dist/authoring/index.d.ts.map +1 -0
  12. package/dist/authoring/llm-author.d.ts +28 -0
  13. package/dist/authoring/llm-author.d.ts.map +1 -0
  14. package/dist/authoring/naming/index.d.ts +4 -0
  15. package/dist/authoring/naming/index.d.ts.map +1 -0
  16. package/dist/authoring/naming/name-plan.d.ts +45 -0
  17. package/dist/authoring/naming/name-plan.d.ts.map +1 -0
  18. package/dist/authoring/naming/name-planner.d.ts +25 -0
  19. package/dist/authoring/naming/name-planner.d.ts.map +1 -0
  20. package/dist/authoring/naming/naming-linter.d.ts +20 -0
  21. package/dist/authoring/naming/naming-linter.d.ts.map +1 -0
  22. package/dist/authoring/template-author.d.ts +6 -0
  23. package/dist/authoring/template-author.d.ts.map +1 -0
  24. package/dist/cli/index.d.ts +2 -0
  25. package/dist/cli/index.d.ts.map +1 -0
  26. package/dist/collectors/collector-interface.d.ts +7 -0
  27. package/dist/collectors/collector-interface.d.ts.map +1 -0
  28. package/dist/collectors/environment-collector.d.ts +12 -0
  29. package/dist/collectors/environment-collector.d.ts.map +1 -0
  30. package/dist/collectors/error-collector.d.ts +18 -0
  31. package/dist/collectors/error-collector.d.ts.map +1 -0
  32. package/dist/collectors/git-diff-collector.d.ts +20 -0
  33. package/dist/collectors/git-diff-collector.d.ts.map +1 -0
  34. package/dist/collectors/live-browser-collector.d.ts +45 -0
  35. package/dist/collectors/live-browser-collector.d.ts.map +1 -0
  36. package/dist/collectors/network-collector.d.ts +28 -0
  37. package/dist/collectors/network-collector.d.ts.map +1 -0
  38. package/dist/collectors/static-ast-collector.d.ts +32 -0
  39. package/dist/collectors/static-ast-collector.d.ts.map +1 -0
  40. package/dist/collectors/trace-collector.d.ts +12 -0
  41. package/dist/collectors/trace-collector.d.ts.map +1 -0
  42. package/dist/config/project-config.d.ts +33 -0
  43. package/dist/config/project-config.d.ts.map +1 -0
  44. package/dist/core/errors/engine-errors.d.ts +34 -0
  45. package/dist/core/errors/engine-errors.d.ts.map +1 -0
  46. package/dist/core/types/diagnostic-context.d.ts +151 -0
  47. package/dist/core/types/diagnostic-context.d.ts.map +1 -0
  48. package/dist/core/types/repair-evidence.d.ts +56 -0
  49. package/dist/core/types/repair-evidence.d.ts.map +1 -0
  50. package/dist/core/version.d.ts +13 -0
  51. package/dist/core/version.d.ts.map +1 -0
  52. package/dist/diagnostics/diagnostic-contract.d.ts +52 -0
  53. package/dist/diagnostics/diagnostic-contract.d.ts.map +1 -0
  54. package/dist/diagnostics/diagnostic-report.d.ts +11 -0
  55. package/dist/diagnostics/diagnostic-report.d.ts.map +1 -0
  56. package/dist/diagnostics/evidence-correlator.d.ts +22 -0
  57. package/dist/diagnostics/evidence-correlator.d.ts.map +1 -0
  58. package/dist/diagnostics/external-failure-evidence.d.ts +18 -0
  59. package/dist/diagnostics/external-failure-evidence.d.ts.map +1 -0
  60. package/dist/diagnostics/failure-category.d.ts +4 -0
  61. package/dist/diagnostics/failure-category.d.ts.map +1 -0
  62. package/dist/diagnostics/failure-classifier.d.ts +58 -0
  63. package/dist/diagnostics/failure-classifier.d.ts.map +1 -0
  64. package/dist/evaluation/evaluation-scorecard.d.ts +72 -0
  65. package/dist/evaluation/evaluation-scorecard.d.ts.map +1 -0
  66. package/dist/evaluation/repository-inspector.d.ts +21 -0
  67. package/dist/evaluation/repository-inspector.d.ts.map +1 -0
  68. package/dist/evaluation/repository-runner.d.ts +24 -0
  69. package/dist/evaluation/repository-runner.d.ts.map +1 -0
  70. package/dist/evidence/evidence-model.d.ts +88 -0
  71. package/dist/evidence/evidence-model.d.ts.map +1 -0
  72. package/dist/evidence/evidence-normalizer.d.ts +19 -0
  73. package/dist/evidence/evidence-normalizer.d.ts.map +1 -0
  74. package/dist/evidence/evidence-redactor.d.ts +37 -0
  75. package/dist/evidence/evidence-redactor.d.ts.map +1 -0
  76. package/dist/framework/config-adapter.d.ts +28 -0
  77. package/dist/framework/config-adapter.d.ts.map +1 -0
  78. package/dist/gate/index.d.ts +21 -0
  79. package/dist/gate/index.d.ts.map +1 -0
  80. package/dist/gate/oracle.d.ts +26 -0
  81. package/dist/gate/oracle.d.ts.map +1 -0
  82. package/dist/gate/quality.d.ts +27 -0
  83. package/dist/gate/quality.d.ts.map +1 -0
  84. package/dist/gate/safety.d.ts +28 -0
  85. package/dist/gate/safety.d.ts.map +1 -0
  86. package/dist/generator/architecture-generator.d.ts +55 -0
  87. package/dist/generator/architecture-generator.d.ts.map +1 -0
  88. package/dist/generator/assertion-quality-gate.d.ts +18 -0
  89. package/dist/generator/assertion-quality-gate.d.ts.map +1 -0
  90. package/dist/generator/candidate-writer.d.ts +34 -0
  91. package/dist/generator/candidate-writer.d.ts.map +1 -0
  92. package/dist/generator/test-generator.d.ts +26 -0
  93. package/dist/generator/test-generator.d.ts.map +1 -0
  94. package/dist/governance/audit-log.d.ts +23 -0
  95. package/dist/governance/audit-log.d.ts.map +1 -0
  96. package/dist/governance/governance-policy.d.ts +24 -0
  97. package/dist/governance/governance-policy.d.ts.map +1 -0
  98. package/dist/governance/team-dashboard.d.ts +51 -0
  99. package/dist/governance/team-dashboard.d.ts.map +1 -0
  100. package/dist/governance/workflow-audit.d.ts +13 -0
  101. package/dist/governance/workflow-audit.d.ts.map +1 -0
  102. package/dist/index.d.ts +90 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +20318 -0
  105. package/dist/integrations/ci-summary.d.ts +14 -0
  106. package/dist/integrations/ci-summary.d.ts.map +1 -0
  107. package/dist/integrations/playwright-report-adapter.d.ts +22 -0
  108. package/dist/integrations/playwright-report-adapter.d.ts.map +1 -0
  109. package/dist/integrations/quality-gate.d.ts +35 -0
  110. package/dist/integrations/quality-gate.d.ts.map +1 -0
  111. package/dist/integrations/sarif-report.d.ts +48 -0
  112. package/dist/integrations/sarif-report.d.ts.map +1 -0
  113. package/dist/intelligence/autonomous-repair-workflow.d.ts +31 -0
  114. package/dist/intelligence/autonomous-repair-workflow.d.ts.map +1 -0
  115. package/dist/intelligence/business-intent.d.ts +58 -0
  116. package/dist/intelligence/business-intent.d.ts.map +1 -0
  117. package/dist/intelligence/evidence-bundle.d.ts +364 -0
  118. package/dist/intelligence/evidence-bundle.d.ts.map +1 -0
  119. package/dist/intelligence/failure-clustering.d.ts +38 -0
  120. package/dist/intelligence/failure-clustering.d.ts.map +1 -0
  121. package/dist/intelligence/generation-agent.d.ts +120 -0
  122. package/dist/intelligence/generation-agent.d.ts.map +1 -0
  123. package/dist/intelligence/generation-verifier.d.ts +151 -0
  124. package/dist/intelligence/generation-verifier.d.ts.map +1 -0
  125. package/dist/intelligence/llm-proposal.d.ts +377 -0
  126. package/dist/intelligence/llm-proposal.d.ts.map +1 -0
  127. package/dist/intelligence/locator-disambiguation-engine.d.ts +38 -0
  128. package/dist/intelligence/locator-disambiguation-engine.d.ts.map +1 -0
  129. package/dist/intelligence/model-contract.d.ts +86 -0
  130. package/dist/intelligence/model-contract.d.ts.map +1 -0
  131. package/dist/intelligence/model-provider.d.ts +75 -0
  132. package/dist/intelligence/model-provider.d.ts.map +1 -0
  133. package/dist/intelligence/project-intelligence.d.ts +22 -0
  134. package/dist/intelligence/project-intelligence.d.ts.map +1 -0
  135. package/dist/intelligence/repair-agent.d.ts +46 -0
  136. package/dist/intelligence/repair-agent.d.ts.map +1 -0
  137. package/dist/intelligence/repository-profile.d.ts +131 -0
  138. package/dist/intelligence/repository-profile.d.ts.map +1 -0
  139. package/dist/intelligence/suite-intelligence.d.ts +59 -0
  140. package/dist/intelligence/suite-intelligence.d.ts.map +1 -0
  141. package/dist/intelligence/test-intelligence.d.ts +44 -0
  142. package/dist/intelligence/test-intelligence.d.ts.map +1 -0
  143. package/dist/intelligence/trace-proposal-workflow.d.ts +30 -0
  144. package/dist/intelligence/trace-proposal-workflow.d.ts.map +1 -0
  145. package/dist/intelligence/verified-llm-repair-workflow.d.ts +21 -0
  146. package/dist/intelligence/verified-llm-repair-workflow.d.ts.map +1 -0
  147. package/dist/intelligence/workflow-planner.d.ts +278 -0
  148. package/dist/intelligence/workflow-planner.d.ts.map +1 -0
  149. package/dist/mcp/server.d.ts +32 -0
  150. package/dist/mcp/server.d.ts.map +1 -0
  151. package/dist/memory/stability-ledger.d.ts +46 -0
  152. package/dist/memory/stability-ledger.d.ts.map +1 -0
  153. package/dist/perception/app-model.d.ts +55 -0
  154. package/dist/perception/app-model.d.ts.map +1 -0
  155. package/dist/perception/crawler.d.ts +18 -0
  156. package/dist/perception/crawler.d.ts.map +1 -0
  157. package/dist/perception/index.d.ts +3 -0
  158. package/dist/perception/index.d.ts.map +1 -0
  159. package/dist/repair/approval-service.d.ts +139 -0
  160. package/dist/repair/approval-service.d.ts.map +1 -0
  161. package/dist/repair/assertion-hasher.d.ts +62 -0
  162. package/dist/repair/assertion-hasher.d.ts.map +1 -0
  163. package/dist/repair/ast-patcher.d.ts +36 -0
  164. package/dist/repair/ast-patcher.d.ts.map +1 -0
  165. package/dist/repair/browser-operation-executor.d.ts +27 -0
  166. package/dist/repair/browser-operation-executor.d.ts.map +1 -0
  167. package/dist/repair/diff-allowlist.d.ts +74 -0
  168. package/dist/repair/diff-allowlist.d.ts.map +1 -0
  169. package/dist/repair/intent-validator.d.ts +157 -0
  170. package/dist/repair/intent-validator.d.ts.map +1 -0
  171. package/dist/repair/repair-operations.d.ts +40 -0
  172. package/dist/repair/repair-operations.d.ts.map +1 -0
  173. package/dist/repair/repair-planner.d.ts +98 -0
  174. package/dist/repair/repair-planner.d.ts.map +1 -0
  175. package/dist/repair/repair-workflow.d.ts +42 -0
  176. package/dist/repair/repair-workflow.d.ts.map +1 -0
  177. package/dist/repair/safe-operation-compiler.d.ts +15 -0
  178. package/dist/repair/safe-operation-compiler.d.ts.map +1 -0
  179. package/dist/repair/source-mapper.d.ts +19 -0
  180. package/dist/repair/source-mapper.d.ts.map +1 -0
  181. package/dist/repair/statement-patcher.d.ts +75 -0
  182. package/dist/repair/statement-patcher.d.ts.map +1 -0
  183. package/dist/repair/verification-gates.d.ts +25 -0
  184. package/dist/repair/verification-gates.d.ts.map +1 -0
  185. package/dist/repair/workflow-plan.d.ts +35 -0
  186. package/dist/repair/workflow-plan.d.ts.map +1 -0
  187. package/dist/repair/workspace-promoter.d.ts +43 -0
  188. package/dist/repair/workspace-promoter.d.ts.map +1 -0
  189. package/dist/reproduce/diagnostic-rerunner.d.ts +40 -0
  190. package/dist/reproduce/diagnostic-rerunner.d.ts.map +1 -0
  191. package/dist/reproduce/direct-browser-investigator.d.ts +41 -0
  192. package/dist/reproduce/direct-browser-investigator.d.ts.map +1 -0
  193. package/dist/reproduce/interactive-workflow-runner.d.ts +43 -0
  194. package/dist/reproduce/interactive-workflow-runner.d.ts.map +1 -0
  195. package/dist/sandbox/dependency-strategy.d.ts +45 -0
  196. package/dist/sandbox/dependency-strategy.d.ts.map +1 -0
  197. package/dist/sandbox/execution-runner.d.ts +81 -0
  198. package/dist/sandbox/execution-runner.d.ts.map +1 -0
  199. package/dist/sandbox/worktree-manager.d.ts +51 -0
  200. package/dist/sandbox/worktree-manager.d.ts.map +1 -0
  201. package/dist/selector/abstention-policy.d.ts +34 -0
  202. package/dist/selector/abstention-policy.d.ts.map +1 -0
  203. package/dist/selector/candidate-extractor.d.ts +71 -0
  204. package/dist/selector/candidate-extractor.d.ts.map +1 -0
  205. package/dist/selector/live-locator-verifier.d.ts +28 -0
  206. package/dist/selector/live-locator-verifier.d.ts.map +1 -0
  207. package/dist/selector/repair-candidate-ranker.d.ts +10 -0
  208. package/dist/selector/repair-candidate-ranker.d.ts.map +1 -0
  209. package/dist/selector/selector-scorer.d.ts +43 -0
  210. package/dist/selector/selector-scorer.d.ts.map +1 -0
  211. package/dist/trace/adapters/adapter-registry.d.ts +18 -0
  212. package/dist/trace/adapters/adapter-registry.d.ts.map +1 -0
  213. package/dist/trace/adapters/trace-adapter.d.ts +21 -0
  214. package/dist/trace/adapters/trace-adapter.d.ts.map +1 -0
  215. package/dist/trace/adapters/unknown-adapter.d.ts +10 -0
  216. package/dist/trace/adapters/unknown-adapter.d.ts.map +1 -0
  217. package/dist/trace/adapters/v10-adapter.d.ts +10 -0
  218. package/dist/trace/adapters/v10-adapter.d.ts.map +1 -0
  219. package/dist/trace/adapters/v4-adapter.d.ts +11 -0
  220. package/dist/trace/adapters/v4-adapter.d.ts.map +1 -0
  221. package/dist/trace/adapters/v8-adapter.d.ts +10 -0
  222. package/dist/trace/adapters/v8-adapter.d.ts.map +1 -0
  223. package/dist/trace/adapters/v9-adapter.d.ts +10 -0
  224. package/dist/trace/adapters/v9-adapter.d.ts.map +1 -0
  225. package/dist/trace/archive-reader.d.ts +44 -0
  226. package/dist/trace/archive-reader.d.ts.map +1 -0
  227. package/dist/trace/snapshot-resolver.d.ts +55 -0
  228. package/dist/trace/snapshot-resolver.d.ts.map +1 -0
  229. package/dist/trace/trace-parser.d.ts +50 -0
  230. package/dist/trace/trace-parser.d.ts.map +1 -0
  231. package/dist/trace/version-detector.d.ts +20 -0
  232. package/dist/trace/version-detector.d.ts.map +1 -0
  233. package/package.json +76 -6
  234. package/skills/README.md +20 -0
  235. package/skills/pie-failure-investigation/SKILL.md +16 -0
  236. package/skills/pie-quality-engineer/SKILL.md +66 -0
  237. package/skills/pie-release-readiness/SKILL.md +22 -0
  238. package/skills/pie-repair-review/SKILL.md +21 -0
  239. package/skills/pie-trace-to-repair/SKILL.md +35 -0
  240. package/src/authoring/author.ts +81 -0
  241. package/src/authoring/generation-contract.ts +283 -0
  242. package/src/authoring/hybrid-author.ts +115 -0
  243. package/src/authoring/index.ts +7 -0
  244. package/src/authoring/llm-author.ts +282 -0
  245. package/src/authoring/naming/index.ts +4 -0
  246. package/src/authoring/naming/name-plan.ts +28 -0
  247. package/src/authoring/naming/name-planner.ts +339 -0
  248. package/src/authoring/naming/naming-linter.ts +292 -0
  249. package/src/authoring/template-author.ts +39 -0
  250. package/src/cli/index.ts +1172 -0
  251. package/src/collectors/collector-interface.ts +8 -0
  252. package/src/collectors/environment-collector.ts +103 -0
  253. package/src/collectors/error-collector.ts +177 -0
  254. package/src/collectors/git-diff-collector.ts +190 -0
  255. package/src/collectors/live-browser-collector.ts +412 -0
  256. package/src/collectors/network-collector.ts +90 -0
  257. package/src/collectors/static-ast-collector.ts +226 -0
  258. package/src/collectors/trace-collector.ts +66 -0
  259. package/src/config/project-config.ts +114 -0
  260. package/src/core/errors/engine-errors.ts +90 -0
  261. package/src/core/types/diagnostic-context.ts +94 -0
  262. package/src/core/types/repair-evidence.ts +45 -0
  263. package/src/core/version.ts +25 -0
  264. package/src/diagnostics/diagnostic-contract.ts +79 -0
  265. package/src/diagnostics/diagnostic-report.ts +204 -0
  266. package/src/diagnostics/evidence-correlator.ts +117 -0
  267. package/src/diagnostics/external-failure-evidence.ts +72 -0
  268. package/src/diagnostics/failure-category.ts +40 -0
  269. package/src/diagnostics/failure-classifier.ts +701 -0
  270. package/src/evaluation/evaluation-scorecard.ts +198 -0
  271. package/src/evaluation/repository-inspector.ts +143 -0
  272. package/src/evaluation/repository-runner.ts +197 -0
  273. package/src/evidence/evidence-model.ts +76 -0
  274. package/src/evidence/evidence-normalizer.ts +322 -0
  275. package/src/evidence/evidence-redactor.ts +218 -0
  276. package/src/framework/config-adapter.ts +131 -0
  277. package/src/gate/index.ts +43 -0
  278. package/src/gate/oracle.ts +69 -0
  279. package/src/gate/quality.ts +101 -0
  280. package/src/gate/safety.ts +94 -0
  281. package/src/generator/architecture-generator.ts +582 -0
  282. package/src/generator/assertion-quality-gate.ts +88 -0
  283. package/src/generator/candidate-writer.ts +288 -0
  284. package/src/generator/test-generator.ts +52 -0
  285. package/src/governance/audit-log.ts +115 -0
  286. package/src/governance/governance-policy.ts +72 -0
  287. package/src/governance/team-dashboard.ts +189 -0
  288. package/src/governance/workflow-audit.ts +72 -0
  289. package/src/index.ts +107 -0
  290. package/src/integrations/ci-summary.ts +37 -0
  291. package/src/integrations/playwright-report-adapter.ts +173 -0
  292. package/src/integrations/quality-gate.ts +95 -0
  293. package/src/integrations/sarif-report.ts +110 -0
  294. package/src/intelligence/autonomous-repair-workflow.ts +139 -0
  295. package/src/intelligence/business-intent.ts +163 -0
  296. package/src/intelligence/evidence-bundle.ts +300 -0
  297. package/src/intelligence/failure-clustering.ts +134 -0
  298. package/src/intelligence/generation-agent.ts +561 -0
  299. package/src/intelligence/generation-verifier.ts +1115 -0
  300. package/src/intelligence/llm-proposal.ts +519 -0
  301. package/src/intelligence/locator-disambiguation-engine.ts +331 -0
  302. package/src/intelligence/model-contract.ts +205 -0
  303. package/src/intelligence/model-provider.ts +348 -0
  304. package/src/intelligence/project-intelligence.ts +140 -0
  305. package/src/intelligence/repair-agent.ts +297 -0
  306. package/src/intelligence/repository-profile.ts +796 -0
  307. package/src/intelligence/suite-intelligence.ts +305 -0
  308. package/src/intelligence/test-intelligence.ts +136 -0
  309. package/src/intelligence/trace-proposal-workflow.ts +318 -0
  310. package/src/intelligence/verified-llm-repair-workflow.ts +48 -0
  311. package/src/intelligence/workflow-planner.ts +966 -0
  312. package/src/mcp/server.ts +970 -0
  313. package/src/memory/stability-ledger.ts +243 -0
  314. package/src/perception/app-model.ts +32 -0
  315. package/src/perception/crawler.ts +263 -0
  316. package/src/perception/index.ts +3 -0
  317. package/src/repair/approval-service.ts +541 -0
  318. package/src/repair/assertion-hasher.ts +386 -0
  319. package/src/repair/ast-patcher.ts +223 -0
  320. package/src/repair/browser-operation-executor.ts +263 -0
  321. package/src/repair/diff-allowlist.ts +612 -0
  322. package/src/repair/intent-validator.ts +761 -0
  323. package/src/repair/repair-operations.ts +65 -0
  324. package/src/repair/repair-planner.ts +467 -0
  325. package/src/repair/repair-workflow.ts +241 -0
  326. package/src/repair/safe-operation-compiler.ts +68 -0
  327. package/src/repair/source-mapper.ts +156 -0
  328. package/src/repair/statement-patcher.ts +544 -0
  329. package/src/repair/verification-gates.ts +46 -0
  330. package/src/repair/workflow-plan.ts +59 -0
  331. package/src/repair/workspace-promoter.ts +313 -0
  332. package/src/reproduce/diagnostic-rerunner.ts +287 -0
  333. package/src/reproduce/direct-browser-investigator.ts +208 -0
  334. package/src/reproduce/interactive-workflow-runner.ts +828 -0
  335. package/src/sandbox/dependency-strategy.ts +215 -0
  336. package/src/sandbox/execution-runner.ts +408 -0
  337. package/src/sandbox/worktree-manager.ts +287 -0
  338. package/src/selector/abstention-policy.ts +175 -0
  339. package/src/selector/candidate-extractor.ts +343 -0
  340. package/src/selector/live-locator-verifier.ts +139 -0
  341. package/src/selector/repair-candidate-ranker.ts +92 -0
  342. package/src/selector/selector-scorer.ts +344 -0
  343. package/src/trace/adapters/adapter-registry.ts +49 -0
  344. package/src/trace/adapters/trace-adapter.ts +28 -0
  345. package/src/trace/adapters/unknown-adapter.ts +50 -0
  346. package/src/trace/adapters/v10-adapter.ts +39 -0
  347. package/src/trace/adapters/v4-adapter.ts +31 -0
  348. package/src/trace/adapters/v8-adapter.ts +42 -0
  349. package/src/trace/adapters/v9-adapter.ts +39 -0
  350. package/src/trace/archive-reader.ts +246 -0
  351. package/src/trace/snapshot-resolver.ts +308 -0
  352. package/src/trace/trace-parser.ts +467 -0
  353. package/src/trace/version-detector.ts +81 -0
@@ -0,0 +1,38 @@
1
+ import { ResolvedElement } from '../trace/snapshot-resolver.js';
2
+ export type DisambiguationStrategy = 'UNIQUE_DIRECT_MATCH' | 'VISIBILITY_FILTER' | 'CONTAINER_ANCHOR' | 'LANDMARK_SECTION' | 'EXPLICIT_POSITIONAL_INTENT' | 'ABSTAIN_AMBIGUOUS';
3
+ export interface DisambiguationContext {
4
+ originalSelector?: string | undefined;
5
+ intendedAction?: string | undefined;
6
+ testIntentText?: string | undefined;
7
+ rootDom?: ResolvedElement | undefined;
8
+ }
9
+ export interface DisambiguationResult {
10
+ strategy: DisambiguationStrategy;
11
+ resolvedCandidate?: ResolvedElement;
12
+ resolvedExpression?: string;
13
+ scopedContainer?: ResolvedElement;
14
+ containerAnchorText?: string;
15
+ matchCount: number;
16
+ explanation: string;
17
+ confidence: number;
18
+ isUnique: boolean;
19
+ }
20
+ export declare class LocatorDisambiguationEngine {
21
+ /**
22
+ * Evaluates multiple candidate elements through the evidence-based disambiguation hierarchy:
23
+ * 1. Unique Direct Match (matchCount === 1)
24
+ * 2. Visibility Filtering (filter { visible: true })
25
+ * 3. Container Anchoring (tr, card, list item with distinguishing text)
26
+ * 4. Landmark / Section Scoping (header, nav, main, dialog)
27
+ * 5. Explicit Positional Intent (.first(), .nth() only if original test explicitly declared it)
28
+ * 6. Safe Abstention (never guess positional intent)
29
+ */
30
+ static disambiguate(candidates: ResolvedElement[], context?: DisambiguationContext, pageProperty?: string): DisambiguationResult;
31
+ private static isElementVisible;
32
+ private static attemptContainerAnchoring;
33
+ private static attemptLandmarkScoping;
34
+ private static verifyExplicitPositionalIntent;
35
+ private static findPathToElement;
36
+ private static getCleanText;
37
+ }
38
+ //# sourceMappingURL=locator-disambiguation-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locator-disambiguation-engine.d.ts","sourceRoot":"","sources":["../../src/intelligence/locator-disambiguation-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,MAAM,MAAM,sBAAsB,GAC9B,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,4BAA4B,GAC5B,mBAAmB,CAAC;AAExB,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,2BAA2B;IACtC;;;;;;;;OAQG;IACH,OAAc,YAAY,CACxB,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,GAAE,qBAA0B,EACnC,YAAY,SAAS,GACpB,oBAAoB,CAqFtB;IAMD,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAc/B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAyExC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAyCrC,OAAO,CAAC,MAAM,CAAC,8BAA8B;IAoC7C,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAkBhC,OAAO,CAAC,MAAM,CAAC,YAAY;CAa5B"}
@@ -0,0 +1,86 @@
1
+ export type ModelTransport = 'openai-compatible' | 'anthropic-compatible' | 'local' | 'unknown';
2
+ export type StructuredOutputCapability = 'json_schema' | 'json_object' | 'prompt_only' | 'unknown';
3
+ export type ReasoningCapability = 'separate_channel' | 'inline' | 'unsupported' | 'unknown';
4
+ export type ToolCallCapability = 'native' | 'application_protocol' | 'unsupported' | 'unknown';
5
+ export interface ModelCapabilities {
6
+ transport: ModelTransport;
7
+ structuredOutput: StructuredOutputCapability;
8
+ reasoning: ReasoningCapability;
9
+ toolCalls: ToolCallCapability;
10
+ maxOutputTokens?: number | undefined;
11
+ }
12
+ export interface ModelUsageEnvelope {
13
+ inputTokens?: number | undefined;
14
+ outputTokens?: number | undefined;
15
+ totalTokens?: number | undefined;
16
+ }
17
+ /** Provider-neutral response shape consumed by PIE's agent protocol. */
18
+ export interface ModelResponseEnvelope {
19
+ finalText?: string | undefined;
20
+ reasoningText?: string | undefined;
21
+ structuredOutput?: unknown;
22
+ toolCalls?: unknown[] | undefined;
23
+ usage?: ModelUsageEnvelope | undefined;
24
+ finishReason?: string | undefined;
25
+ transport: ModelTransport;
26
+ }
27
+ export type ModelRequestKind = 'proposal' | 'agent_step';
28
+ export interface ModelResponseDiagnostics {
29
+ requestKind: ModelRequestKind;
30
+ transport: ModelTransport;
31
+ topLevelKeys: string[];
32
+ choiceKeys: string[];
33
+ messageKeys: string[];
34
+ contentKind: 'string' | 'array' | 'missing' | 'null';
35
+ hasFinalText: boolean;
36
+ finalTextLength: number;
37
+ reasoningTextLength: number;
38
+ toolCallCount: number;
39
+ finishReason?: string | undefined;
40
+ usagePresent: boolean;
41
+ candidateKeys: string[];
42
+ candidateResponseType?: string | undefined;
43
+ candidateStatus?: string | undefined;
44
+ candidateDecision?: string | undefined;
45
+ candidateActionKind?: string | undefined;
46
+ candidateProposalVersion?: string | undefined;
47
+ /** Transport metadata keys recognized and removed before protocol validation. */
48
+ recognizedResponseMetadataKeys: string[];
49
+ validationErrors: string[];
50
+ normalizationNotes: string[];
51
+ redactedPreview?: string | undefined;
52
+ }
53
+ export interface OpenAiCompatibleResponsePayload {
54
+ choices?: Array<{
55
+ finish_reason?: string;
56
+ message?: {
57
+ content?: string | Array<{
58
+ type?: string;
59
+ text?: string;
60
+ }> | null;
61
+ reasoning_content?: string | null;
62
+ tool_calls?: unknown[];
63
+ };
64
+ }>;
65
+ output_text?: string;
66
+ usage?: ModelUsageEnvelope & {
67
+ prompt_tokens?: number;
68
+ completion_tokens?: number;
69
+ total_tokens?: number;
70
+ };
71
+ }
72
+ export interface AnthropicResponsePayload {
73
+ content?: Array<{
74
+ type?: string;
75
+ text?: string;
76
+ }>;
77
+ usage?: {
78
+ input_tokens?: number;
79
+ output_tokens?: number;
80
+ };
81
+ stop_reason?: string;
82
+ }
83
+ export declare function normalizeOpenAiResponse(payload: OpenAiCompatibleResponsePayload): ModelResponseEnvelope;
84
+ export declare function normalizeAnthropicResponse(payload: AnthropicResponsePayload): ModelResponseEnvelope;
85
+ export declare function createModelResponseDiagnostics(payload: unknown, envelope: ModelResponseEnvelope, requestKind: ModelRequestKind, validationErrors?: string[], normalizationNotes?: string[], recognizedResponseMetadataKeys?: string[], includePreview?: boolean): ModelResponseDiagnostics;
86
+ //# sourceMappingURL=model-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-contract.d.ts","sourceRoot":"","sources":["../../src/intelligence/model-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { AgentResponseParseResult, EvidenceBundle, ProposalParseResult } from './llm-proposal.js';
2
+ import { ModelCapabilities, ModelResponseDiagnostics } from './model-contract.js';
3
+ export interface ProposalProvider {
4
+ propose(bundle: EvidenceBundle): Promise<ProposalParseResult>;
5
+ }
6
+ export interface AgentStepRequest {
7
+ bundle: EvidenceBundle;
8
+ deterministicCategory: string;
9
+ deterministicConfidence: number;
10
+ observation: unknown;
11
+ stepIndex: number;
12
+ maxSteps: number;
13
+ }
14
+ export interface AgentStepProvider {
15
+ proposeStep(input: AgentStepRequest): Promise<AgentResponseParseResult>;
16
+ }
17
+ export interface OpenAiCompatibleProviderOptions {
18
+ endpoint: string;
19
+ model: string;
20
+ apiKey?: string | undefined;
21
+ timeoutMs?: number | undefined;
22
+ maxOutputTokens?: number | undefined;
23
+ capabilities?: Partial<ModelCapabilities> | undefined;
24
+ fetchImpl?: typeof fetch | undefined;
25
+ onUsage?: ((usage: ModelUsage) => void) | undefined;
26
+ onResponse?: ((diagnostics: ModelResponseDiagnostics) => void) | undefined;
27
+ captureResponsePreview?: boolean | undefined;
28
+ }
29
+ export interface ModelUsage {
30
+ provider: 'openai-compatible' | 'anthropic-compatible';
31
+ model: string;
32
+ inputTokens?: number | undefined;
33
+ outputTokens?: number | undefined;
34
+ totalTokens?: number | undefined;
35
+ estimatedCostUsd?: number | undefined;
36
+ durationMs: number;
37
+ }
38
+ export interface AnthropicCompatibleProviderOptions {
39
+ endpoint: string;
40
+ model: string;
41
+ apiKey?: string | undefined;
42
+ timeoutMs?: number | undefined;
43
+ anthropicVersion?: string | undefined;
44
+ maxTokens?: number | undefined;
45
+ inputCostPerMillionTokens?: number | undefined;
46
+ outputCostPerMillionTokens?: number | undefined;
47
+ fetchImpl?: typeof fetch | undefined;
48
+ capabilities?: Partial<ModelCapabilities> | undefined;
49
+ onUsage?: ((usage: ModelUsage) => void) | undefined;
50
+ onResponse?: ((diagnostics: ModelResponseDiagnostics) => void) | undefined;
51
+ captureResponsePreview?: boolean | undefined;
52
+ }
53
+ /**
54
+ * Calls any OpenAI-compatible JSON model endpoint. The provider sends only the
55
+ * normalized, redaction-aware evidence bundle and accepts only the strict PIE
56
+ * proposal schema in return.
57
+ */
58
+ export declare class OpenAiCompatibleProposalProvider implements ProposalProvider, AgentStepProvider {
59
+ private readonly options;
60
+ constructor(options: OpenAiCompatibleProviderOptions);
61
+ getCapabilities(): ModelCapabilities;
62
+ propose(bundle: EvidenceBundle): Promise<ProposalParseResult>;
63
+ proposeStep(input: AgentStepRequest): Promise<AgentResponseParseResult>;
64
+ private recordUsage;
65
+ }
66
+ /** Calls an Anthropic Messages-compatible endpoint without coupling PIE to an SDK. */
67
+ export declare class AnthropicCompatibleProposalProvider implements ProposalProvider, AgentStepProvider {
68
+ private readonly options;
69
+ constructor(options: AnthropicCompatibleProviderOptions);
70
+ getCapabilities(): ModelCapabilities;
71
+ propose(bundle: EvidenceBundle): Promise<ProposalParseResult>;
72
+ proposeStep(input: AgentStepRequest): Promise<AgentResponseParseResult>;
73
+ private recordAnthropicUsage;
74
+ }
75
+ //# sourceMappingURL=model-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-provider.d.ts","sourceRoot":"","sources":["../../src/intelligence/model-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { RepositoryConventionProfile } from './repository-profile.js';
2
+ import { StabilityLedgerData, RepairFeedbackOutcome } from '../memory/stability-ledger.js';
3
+ export interface ProjectIntelligenceSnapshot {
4
+ projectRoot: string;
5
+ profile?: RepositoryConventionProfile | undefined;
6
+ ledger: StabilityLedgerData;
7
+ }
8
+ /** Loads project-scoped memory without requiring a cloud service or model. */
9
+ export declare function loadProjectIntelligence(projectRoot?: string): Promise<ProjectIntelligenceSnapshot>;
10
+ /** Creates a profile once, then returns the same project-scoped intelligence snapshot. */
11
+ export declare function bootstrapProjectIntelligence(projectRoot?: string): Promise<ProjectIntelligenceSnapshot>;
12
+ export declare function getHistoricalSelectorScore(snapshot: ProjectIntelligenceSnapshot | undefined, selector: string): number | undefined;
13
+ /** Reads project memory with time decay for ranking while retaining raw history for audit. */
14
+ export declare function getDecayedHistoricalSelectorScore(snapshot: ProjectIntelligenceSnapshot | undefined, selector: string, now?: number): number | undefined;
15
+ export declare function shouldLearnFromFailure(category: string): boolean;
16
+ export declare function recordProjectFailure(projectRoot: string, selector: string | undefined, category: string): Promise<void>;
17
+ /** Records a selector that passed semantic and isolated execution checks. */
18
+ export declare function recordProjectSemanticVerification(projectRoot: string, selector: string | undefined): Promise<void>;
19
+ /** Records that an operator accepted a verified repair for this project. */
20
+ export declare function recordProjectRepairAccepted(projectRoot: string, selector: string | undefined): Promise<void>;
21
+ export declare function recordProjectRepairFeedback(projectRoot: string, selector: string | undefined, outcome: RepairFeedbackOutcome): Promise<void>;
22
+ //# sourceMappingURL=project-intelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-intelligence.d.ts","sourceRoot":"","sources":["../../src/intelligence/project-intelligence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiH,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACrL,OAAO,EAA8C,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEvI,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAClD,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAWD,8EAA8E;AAC9E,wBAAsB,uBAAuB,CAAC,WAAW,SAAgB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAS/G;AAoBD,0FAA0F;AAC1F,wBAAsB,4BAA4B,CAAC,WAAW,SAAgB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CA+BpH;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,2BAA2B,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOlI;AAED,8FAA8F;AAC9F,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,2BAA2B,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,SAAS,CAO3J;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,6EAA6E;AAC7E,wBAAsB,iCAAiC,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxH;AAED,4EAA4E;AAC5E,wBAAsB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlH;AAED,wBAAsB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlJ"}
@@ -0,0 +1,46 @@
1
+ import { ClassificationResult } from '../diagnostics/failure-classifier.js';
2
+ import { DiagnosticContext } from '../core/types/diagnostic-context.js';
3
+ import { AgentAction, AgentFinalResponse, AgentResponse, EvidenceBundle, LlmRepairProposal, ProposalParseResult } from './llm-proposal.js';
4
+ import { ProposalProvider } from './model-provider.js';
5
+ export type RepairAgentState = 'DETERMINISTIC_ABSTAIN' | 'MODEL_NOT_CONFIGURED' | 'EVIDENCE_NOT_REDACTED' | 'PROPOSAL_RECEIVED' | 'PROPOSAL_REJECTED' | 'MODEL_ABSTAINED' | 'AGENT_NO_PROGRESS' | 'AGENT_TIME_BUDGET' | 'AGENT_MAX_STEPS';
6
+ export interface RepairAgentStepRecord {
7
+ stepIndex: number;
8
+ response: AgentResponse;
9
+ observation?: unknown;
10
+ durationMs: number;
11
+ }
12
+ export type RepairAgentActionHandler = (action: AgentAction) => Promise<unknown>;
13
+ export interface RepairAgentInput {
14
+ context: DiagnosticContext;
15
+ bundle: EvidenceBundle;
16
+ provider?: ProposalProvider | undefined;
17
+ strategy?: 'auto' | 'single-shot' | 'agent' | undefined;
18
+ maxSteps?: number | undefined;
19
+ maxDurationMs?: number | undefined;
20
+ actionHandlers?: Partial<Record<AgentAction['kind'], RepairAgentActionHandler>> | undefined;
21
+ /**
22
+ * Allows the model to refine only locator-related incomplete evidence. The
23
+ * default remains fail-closed so callers cannot accidentally route backend,
24
+ * auth, assertion, or environment failures to a repair model.
25
+ */
26
+ allowModelEscalation?: boolean | undefined;
27
+ }
28
+ export interface RepairAgentResult {
29
+ state: RepairAgentState;
30
+ classification: ClassificationResult;
31
+ modelInvoked: boolean;
32
+ proposal?: LlmRepairProposal | undefined;
33
+ errors: string[];
34
+ steps?: RepairAgentStepRecord[] | undefined;
35
+ finalResponse?: AgentFinalResponse | undefined;
36
+ }
37
+ /**
38
+ * Executes one bounded model proposal step. This is intentionally not a free
39
+ * running agent: deterministic negative controls stop before the provider,
40
+ * the provider receives only an attested bundle, and the result remains a
41
+ * proposal until worktree execution, oracle verification, and approval occur.
42
+ */
43
+ export declare function runRepairProposalAgent(input: RepairAgentInput): Promise<RepairAgentResult>;
44
+ /** Re-validates a serialized provider response at the orchestration boundary. */
45
+ export declare function validateAgentProposal(input: unknown): ProposalParseResult;
46
+ //# sourceMappingURL=repair-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair-agent.d.ts","sourceRoot":"","sources":["../../src/intelligence/repair-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAA0B,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnK,OAAO,EAAuC,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,MAAM,MAAM,gBAAgB,GACxB,uBAAuB,GACvB,sBAAsB,GACtB,uBAAuB,GACvB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5F;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,CAAC;IACxB,cAAc,EAAE,oBAAoB,CAAC;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAC5C,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CAChD;AAoBD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuBhG;AAkMD,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAEzE"}
@@ -0,0 +1,131 @@
1
+ import { RepositoryManifest } from '../evaluation/repository-inspector.js';
2
+ export declare const REPOSITORY_PROFILE_VERSION = 1;
3
+ export interface IdentifierConventions {
4
+ propertySuffixes: string[];
5
+ methodVerbs: Record<string, number>;
6
+ usesReadonly: boolean;
7
+ pageInjection: 'constructor-param-property' | 'constructor-assignment' | 'getter' | 'inline';
8
+ gotoMethodName: string;
9
+ recommendedLocatorPolicy: 'prefer-role-over-css' | 'prefer-testid' | 'prefer-label' | 'prefer-locator' | 'unknown';
10
+ }
11
+ export interface PageObjectExemplar {
12
+ filePath: string;
13
+ className: string;
14
+ content: string;
15
+ }
16
+ export interface RepositoryConventionProfile {
17
+ version: typeof REPOSITORY_PROFILE_VERSION;
18
+ generatedAt: string;
19
+ /** Fingerprint of source paths and metadata used to detect convention drift. */
20
+ sourceFingerprint?: string | undefined;
21
+ repository: {
22
+ name: string;
23
+ root: string;
24
+ packageManager: RepositoryManifest['packageManager'];
25
+ playwrightVersion?: string | undefined;
26
+ scripts: Record<string, string>;
27
+ };
28
+ structure: {
29
+ testFiles: number;
30
+ /** Test files whose source explicitly references Playwright. */
31
+ playwrightTestFiles?: number | undefined;
32
+ pageObjectFiles: number;
33
+ fixtureFiles: number;
34
+ configFiles: string[];
35
+ usesPageObjects: boolean;
36
+ usesCustomFixtures: boolean;
37
+ usesApiHelpers: boolean;
38
+ usesStorageState: boolean;
39
+ };
40
+ paths?: {
41
+ testDirectory?: string | undefined;
42
+ pageObjectDirectory?: string | undefined;
43
+ fixtureDirectory?: string | undefined;
44
+ };
45
+ pathConfidence?: {
46
+ testDirectory: number;
47
+ pageObjectDirectory: number;
48
+ fixtureDirectory: number;
49
+ } | undefined;
50
+ locatorConventions: {
51
+ getByRole: number;
52
+ getByTestId: number;
53
+ getByLabel: number;
54
+ getByText: number;
55
+ locator: number;
56
+ cssOrXpath: number;
57
+ preferred: 'getByRole' | 'getByTestId' | 'getByLabel' | 'getByText' | 'locator' | 'unknown';
58
+ };
59
+ identifierConventions?: IdentifierConventions | undefined;
60
+ exemplars?: PageObjectExemplar[] | undefined;
61
+ testConventions: {
62
+ tags: string[];
63
+ usesDescribeBlocks: boolean;
64
+ usesTestSteps: boolean;
65
+ usesAssertions: boolean;
66
+ baseUrl?: string | undefined;
67
+ };
68
+ domainTerms: string[];
69
+ evidence: string[];
70
+ }
71
+ /** Returns whether a directory has enough project markers to profile safely. */
72
+ export declare function isLikelyProjectRoot(root: string): Promise<boolean>;
73
+ /** Detects evaluation/workspace containers that must not be profiled recursively. */
74
+ export declare function isLikelyRepositoryContainer(root: string): Promise<boolean>;
75
+ export declare function sampleExemplars(pomFiles: string[], maxExemplars?: number): Promise<PageObjectExemplar[]>;
76
+ export declare function extractBaseUrlFromConfigs(configPaths: string[], root: string): Promise<string | undefined>;
77
+ /** Computes a cheap change detector without rereading source contents. */
78
+ export declare function computeRepositoryProfileFingerprint(root: string): Promise<string>;
79
+ export declare function buildRepositoryProfile(root: string, now?: Date): Promise<RepositoryConventionProfile>;
80
+ export declare function writeRepositoryProfile(root: string, profile?: RepositoryConventionProfile): Promise<{
81
+ profile: RepositoryConventionProfile;
82
+ profilePath: string;
83
+ conventionsPath: string;
84
+ }>;
85
+ export interface FixtureExportInfo {
86
+ name: string;
87
+ sourceFile: string;
88
+ reExportedFrom?: string | undefined;
89
+ scope: 'test' | 'worker';
90
+ dependencies: string[];
91
+ }
92
+ export interface PomExportInfo {
93
+ className: string;
94
+ sourceFile: string;
95
+ extendsClass?: string | undefined;
96
+ methods: string[];
97
+ }
98
+ export interface HelperExportInfo {
99
+ name: string;
100
+ kind: 'function' | 'class' | 'const';
101
+ sourceFile: string;
102
+ category: 'api-client' | 'test-data-factory' | 'helper' | 'matcher';
103
+ }
104
+ export interface PlaywrightProjectInfo {
105
+ name: string;
106
+ dependencies: string[];
107
+ storageState?: string | undefined;
108
+ }
109
+ export interface BrownfieldRepositoryGraph {
110
+ topology: 'monorepo' | 'standalone';
111
+ testImport: string;
112
+ fixtureExports: FixtureExportInfo[];
113
+ pomExports: PomExportInfo[];
114
+ helperExports: HelperExportInfo[];
115
+ authProjects: PlaywrightProjectInfo[];
116
+ storageStatePaths: string[];
117
+ configPaths: string[];
118
+ tsconfigPaths: string[];
119
+ pathAliases: Record<string, string[]>;
120
+ packageScripts: Record<string, string>;
121
+ sourceHints: {
122
+ routes: string[];
123
+ validationRules: string[];
124
+ apiEndpoints: string[];
125
+ authRequired: boolean;
126
+ persistenceDetected: boolean;
127
+ };
128
+ ambiguities: string[];
129
+ }
130
+ export declare function buildBrownfieldRepositoryGraph(root: string): Promise<BrownfieldRepositoryGraph>;
131
+ //# sourceMappingURL=repository-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-profile.d.ts","sourceRoot":"","sources":["../../src/intelligence/repository-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export type TestRunStatus = 'PASS' | 'FAIL' | 'SKIP' | 'TIMEOUT' | 'BLOCKED';
2
+ export interface TestRunObservation {
3
+ runId: string;
4
+ testId: string;
5
+ repository?: string | undefined;
6
+ title?: string | undefined;
7
+ sourceFile?: string | undefined;
8
+ status: TestRunStatus;
9
+ durationMs?: number | undefined;
10
+ timestamp?: number | undefined;
11
+ retryIndex?: number | undefined;
12
+ failureClusterId?: string | undefined;
13
+ }
14
+ export interface TestStabilitySummary {
15
+ testId: string;
16
+ repository?: string | undefined;
17
+ title?: string | undefined;
18
+ sourceFile?: string | undefined;
19
+ runs: number;
20
+ passes: number;
21
+ failures: number;
22
+ skips: number;
23
+ blocked: number;
24
+ passRate: number;
25
+ flakeRate: number;
26
+ flaky: boolean;
27
+ averageDurationMs?: number | undefined;
28
+ p95DurationMs?: number | undefined;
29
+ lastStatus: TestRunStatus;
30
+ failureClusters: string[];
31
+ }
32
+ export interface TestImpactCandidate {
33
+ testId: string;
34
+ title?: string | undefined;
35
+ sourceFile: string;
36
+ dependencies?: string[] | undefined;
37
+ tags?: string[] | undefined;
38
+ }
39
+ export interface ImpactedTest {
40
+ testId: string;
41
+ title?: string | undefined;
42
+ sourceFile: string;
43
+ confidence: 'direct' | 'dependency' | 'directory' | 'tag' | 'unknown';
44
+ reasons: string[];
45
+ }
46
+ export interface RepositoryImpactAnalysis {
47
+ root: string;
48
+ changedFiles: string[];
49
+ candidates: TestImpactCandidate[];
50
+ impactedTests: ImpactedTest[];
51
+ limitations: string[];
52
+ }
53
+ export declare function analyzeTestStability(records: TestRunObservation[]): TestStabilitySummary[];
54
+ /** Discovers test impact metadata from a repository's real test sources. */
55
+ export declare function discoverTestImpactCandidates(root: string): Promise<TestImpactCandidate[]>;
56
+ /** Builds a deterministic changed-file impact report for a repository. */
57
+ export declare function analyzeRepositoryImpact(root: string, changedFiles: string[]): Promise<RepositoryImpactAnalysis>;
58
+ export declare function selectImpactedTests(changedFiles: string[], tests: TestImpactCandidate[]): ImpactedTest[];
59
+ //# sourceMappingURL=suite-intelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suite-intelligence.d.ts","sourceRoot":"","sources":["../../src/intelligence/suite-intelligence.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;IACtE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAaD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,oBAAoB,EAAE,CAoC1F;AAmHD,4EAA4E;AAC5E,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAwB/F;AAED,0EAA0E;AAC1E,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAiBrH;AAUD,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,YAAY,EAAE,CAwBxG"}
@@ -0,0 +1,44 @@
1
+ import { BusinessIntent } from './business-intent.js';
2
+ export interface RequirementInput {
3
+ id: string;
4
+ title: string;
5
+ description?: string | undefined;
6
+ tags?: string[] | undefined;
7
+ }
8
+ export interface ExistingTestInput {
9
+ id: string;
10
+ title?: string | undefined;
11
+ sourceFile?: string | undefined;
12
+ sourceText: string;
13
+ fixtureNames?: string[] | undefined;
14
+ pageObjectNames?: string[] | undefined;
15
+ }
16
+ export interface PlannedTestScenario {
17
+ id: string;
18
+ requirementId: string;
19
+ title: string;
20
+ intent: BusinessIntent;
21
+ requiredFixtures: string[];
22
+ preferredPageObjects: string[];
23
+ }
24
+ export interface CoverageMatch {
25
+ scenarioId: string;
26
+ status: 'covered' | 'partial' | 'missing';
27
+ score: number;
28
+ matchedTestIds: string[];
29
+ reasons: string[];
30
+ }
31
+ export interface DuplicateTestGroup {
32
+ testIds: string[];
33
+ similarity: number;
34
+ reason: string;
35
+ }
36
+ export interface TestIntelligencePlan {
37
+ scenarios: PlannedTestScenario[];
38
+ coverage: CoverageMatch[];
39
+ missingScenarios: string[];
40
+ highRiskScenarios: string[];
41
+ duplicateTests: DuplicateTestGroup[];
42
+ }
43
+ export declare function buildTestIntelligencePlan(requirements: RequirementInput[], existingTests?: ExistingTestInput[]): TestIntelligencePlan;
44
+ //# sourceMappingURL=test-intelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-intelligence.d.ts","sourceRoot":"","sources":["../../src/intelligence/test-intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAyB,MAAM,sBAAsB,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACtC;AAyCD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,gBAAgB,EAAE,EAChC,aAAa,GAAE,iBAAiB,EAAO,GACtC,oBAAoB,CA4CtB"}
@@ -0,0 +1,30 @@
1
+ import { RepairAgentResult } from './repair-agent.js';
2
+ import { ProposalProvider } from './model-provider.js';
3
+ import { EvidenceBundle } from './llm-proposal.js';
4
+ import { CorrelatedEvidence } from '../diagnostics/evidence-correlator.js';
5
+ import { DiagnosticContext } from '../core/types/diagnostic-context.js';
6
+ export interface TraceProposalWorkflowInput {
7
+ tracePath: string;
8
+ workspaceRoot?: string | undefined;
9
+ errorContextPath?: string | undefined;
10
+ executionId?: string | undefined;
11
+ testIdentity?: string | undefined;
12
+ enableBrowserInvestigation?: boolean | undefined;
13
+ browserUrl?: string | undefined;
14
+ browserAllowedHosts?: string[] | undefined;
15
+ enableTestExecution?: boolean | undefined;
16
+ provider?: ProposalProvider | undefined;
17
+ }
18
+ export interface TraceProposalWorkflowResult {
19
+ context: DiagnosticContext;
20
+ correlated: CorrelatedEvidence;
21
+ bundle: EvidenceBundle;
22
+ agent: RepairAgentResult;
23
+ }
24
+ /**
25
+ * Runs one bounded, redaction-aware model proposal step from a trace archive.
26
+ * Deterministic classification executes before the provider and the returned
27
+ * proposal is never executed or promoted by this function.
28
+ */
29
+ export declare function runTraceProposalWorkflow(input: TraceProposalWorkflowInput): Promise<TraceProposalWorkflowResult>;
30
+ //# sourceMappingURL=trace-proposal-workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-proposal-workflow.d.ts","sourceRoot":"","sources":["../../src/intelligence/trace-proposal-workflow.ts"],"names":[],"mappings":"AAQA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAoC,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAWxE,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3C,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AA0DD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAqNtH"}
@@ -0,0 +1,21 @@
1
+ import { LlmRepairProposal } from './llm-proposal.js';
2
+ import { RepairWorkflowInput, RepairWorkflowResult } from '../repair/repair-workflow.js';
3
+ import { WorkflowPlan } from '../repair/workflow-plan.js';
4
+ export interface VerifiedLlmRepairInput extends Omit<RepairWorkflowInput, 'operation'> {
5
+ proposal: LlmRepairProposal | unknown;
6
+ }
7
+ export interface LlmRepairPlanValidation {
8
+ isValid: boolean;
9
+ proposal?: LlmRepairProposal | undefined;
10
+ workflowPlan?: WorkflowPlan | undefined;
11
+ errors: string[];
12
+ }
13
+ /** Validates a possibly multi-operation LLM plan without touching source files. */
14
+ export declare function validateLlmRepairPlan(input: unknown): LlmRepairPlanValidation;
15
+ /**
16
+ * Bridges a validated LLM proposal into PIE's existing deterministic repair
17
+ * workflow. The bridge is intentionally limited to one exact-target operation
18
+ * until multi-operation convergence has its own combined verification proof.
19
+ */
20
+ export declare function runVerifiedLlmRepairWorkflow(input: VerifiedLlmRepairInput): Promise<RepairWorkflowResult>;
21
+ //# sourceMappingURL=verified-llm-repair-workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-llm-repair-workflow.d.ts","sourceRoot":"","sources":["../../src/intelligence/verified-llm-repair-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA0B,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAqB,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAuB,MAAM,4BAA4B,CAAC;AAE/E,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC;IACpF,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAM7E;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkB/G"}