agentic-qe 3.5.4 → 3.6.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 (247) hide show
  1. package/.claude/agents/v3/README.md +1 -1
  2. package/.claude/agents/v3/qe-message-broker-tester.md +380 -0
  3. package/.claude/agents/v3/qe-middleware-validator.md +423 -0
  4. package/.claude/agents/v3/qe-odata-contract-tester.md +484 -0
  5. package/.claude/agents/v3/qe-pentest-validator.md +359 -0
  6. package/.claude/agents/v3/qe-qx-partner.md +85 -3
  7. package/.claude/agents/v3/qe-sap-idoc-tester.md +407 -0
  8. package/.claude/agents/v3/qe-sap-rfc-tester.md +357 -0
  9. package/.claude/agents/v3/qe-soap-tester.md +340 -0
  10. package/.claude/agents/v3/qe-sod-analyzer.md +528 -0
  11. package/.claude/agents/v3/templates/qx-report-template.html +437 -0
  12. package/.claude/skills/debug-loop/SKILL.md +61 -0
  13. package/.claude/skills/enterprise-integration-testing/SKILL.md +735 -0
  14. package/.claude/skills/middleware-testing-patterns/SKILL.md +798 -0
  15. package/.claude/skills/observability-testing-patterns/SKILL.md +930 -0
  16. package/.claude/skills/pentest-validation/SKILL.md +268 -0
  17. package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +708 -0
  18. package/.claude/skills/pentest-validation/schemas/output.json +281 -0
  19. package/.claude/skills/pentest-validation/scripts/validate.sh +402 -0
  20. package/.claude/skills/pr-review/SKILL.md +61 -0
  21. package/.claude/skills/qcsd-cicd-swarm/SKILL.md +315 -13
  22. package/.claude/skills/qcsd-development-swarm/SKILL.md +331 -16
  23. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +258 -9
  24. package/.claude/skills/qcsd-refinement-swarm/SKILL.md +344 -22
  25. package/.claude/skills/release/SKILL.md +333 -0
  26. package/.claude/skills/skills-manifest.json +5 -4
  27. package/.claude/skills/wms-testing-patterns/SKILL.md +949 -0
  28. package/README.md +30 -21
  29. package/package.json +2 -2
  30. package/v3/CHANGELOG.md +57 -0
  31. package/v3/README.md +23 -20
  32. package/v3/assets/agents/v3/qe-message-broker-tester.md +380 -0
  33. package/v3/assets/agents/v3/qe-middleware-validator.md +423 -0
  34. package/v3/assets/agents/v3/qe-odata-contract-tester.md +484 -0
  35. package/v3/assets/agents/v3/qe-pentest-validator.md +359 -0
  36. package/v3/assets/agents/v3/qe-qx-partner.md +90 -12
  37. package/v3/assets/agents/v3/qe-sap-idoc-tester.md +407 -0
  38. package/v3/assets/agents/v3/qe-sap-rfc-tester.md +357 -0
  39. package/v3/assets/agents/v3/qe-soap-tester.md +340 -0
  40. package/v3/assets/agents/v3/qe-sod-analyzer.md +528 -0
  41. package/v3/assets/agents/v3/templates/qx-report-template.html +437 -0
  42. package/v3/assets/skills/debug-loop/SKILL.md +61 -0
  43. package/v3/assets/skills/enterprise-integration-testing/SKILL.md +735 -0
  44. package/v3/assets/skills/middleware-testing-patterns/SKILL.md +798 -0
  45. package/v3/assets/skills/observability-testing-patterns/SKILL.md +930 -0
  46. package/v3/assets/skills/pentest-validation/SKILL.md +268 -0
  47. package/v3/assets/skills/pentest-validation/evals/pentest-validation.yaml +708 -0
  48. package/v3/assets/skills/pentest-validation/schemas/output.json +281 -0
  49. package/v3/assets/skills/pentest-validation/scripts/validate.sh +402 -0
  50. package/v3/assets/skills/pr-review/SKILL.md +61 -0
  51. package/v3/assets/skills/qcsd-cicd-swarm/SKILL.md +2206 -0
  52. package/v3/assets/skills/qcsd-development-swarm/SKILL.md +2154 -0
  53. package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +2008 -1753
  54. package/v3/assets/skills/qcsd-refinement-swarm/SKILL.md +2398 -0
  55. package/v3/assets/skills/security-visual-testing/SKILL.md +223 -0
  56. package/v3/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -0
  57. package/v3/assets/skills/security-visual-testing/schemas/output.json +486 -0
  58. package/v3/assets/skills/security-visual-testing/scripts/validate.sh +748 -0
  59. package/v3/assets/skills/sfdipot-product-factors/SKILL.md +239 -0
  60. package/v3/assets/skills/test-idea-rewriting/SKILL.md +229 -0
  61. package/v3/assets/skills/wms-testing-patterns/SKILL.md +949 -0
  62. package/v3/dist/cli/bundle.js +10816 -4625
  63. package/v3/dist/cli/commands/coverage.d.ts.map +1 -1
  64. package/v3/dist/cli/commands/coverage.js +29 -0
  65. package/v3/dist/cli/commands/coverage.js.map +1 -1
  66. package/v3/dist/cli/commands/learning.d.ts.map +1 -1
  67. package/v3/dist/cli/commands/learning.js +9 -0
  68. package/v3/dist/cli/commands/learning.js.map +1 -1
  69. package/v3/dist/cli/commands/token-usage.d.ts.map +1 -1
  70. package/v3/dist/cli/commands/token-usage.js +6 -2
  71. package/v3/dist/cli/commands/token-usage.js.map +1 -1
  72. package/v3/dist/coordination/protocols/learning-consolidation.d.ts.map +1 -1
  73. package/v3/dist/coordination/protocols/learning-consolidation.js +1 -0
  74. package/v3/dist/coordination/protocols/learning-consolidation.js.map +1 -1
  75. package/v3/dist/domains/coverage-analysis/coordinator.d.ts +8 -0
  76. package/v3/dist/domains/coverage-analysis/coordinator.d.ts.map +1 -1
  77. package/v3/dist/domains/coverage-analysis/coordinator.js +67 -0
  78. package/v3/dist/domains/coverage-analysis/coordinator.js.map +1 -1
  79. package/v3/dist/domains/coverage-analysis/interfaces.d.ts +33 -0
  80. package/v3/dist/domains/coverage-analysis/interfaces.d.ts.map +1 -1
  81. package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
  82. package/v3/dist/domains/coverage-analysis/plugin.js +17 -0
  83. package/v3/dist/domains/coverage-analysis/plugin.js.map +1 -1
  84. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.d.ts +125 -0
  85. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.d.ts.map +1 -0
  86. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js +317 -0
  87. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js.map +1 -0
  88. package/v3/dist/domains/coverage-analysis/services/index.d.ts +1 -0
  89. package/v3/dist/domains/coverage-analysis/services/index.d.ts.map +1 -1
  90. package/v3/dist/domains/coverage-analysis/services/index.js +4 -0
  91. package/v3/dist/domains/coverage-analysis/services/index.js.map +1 -1
  92. package/v3/dist/domains/enterprise-integration/coordinator.d.ts +91 -0
  93. package/v3/dist/domains/enterprise-integration/coordinator.d.ts.map +1 -0
  94. package/v3/dist/domains/enterprise-integration/coordinator.js +672 -0
  95. package/v3/dist/domains/enterprise-integration/coordinator.js.map +1 -0
  96. package/v3/dist/domains/enterprise-integration/index.d.ts +14 -0
  97. package/v3/dist/domains/enterprise-integration/index.d.ts.map +1 -0
  98. package/v3/dist/domains/enterprise-integration/index.js +18 -0
  99. package/v3/dist/domains/enterprise-integration/index.js.map +1 -0
  100. package/v3/dist/domains/enterprise-integration/interfaces.d.ts +376 -0
  101. package/v3/dist/domains/enterprise-integration/interfaces.d.ts.map +1 -0
  102. package/v3/dist/domains/enterprise-integration/interfaces.js +11 -0
  103. package/v3/dist/domains/enterprise-integration/interfaces.js.map +1 -0
  104. package/v3/dist/domains/enterprise-integration/plugin.d.ts +88 -0
  105. package/v3/dist/domains/enterprise-integration/plugin.d.ts.map +1 -0
  106. package/v3/dist/domains/enterprise-integration/plugin.js +515 -0
  107. package/v3/dist/domains/enterprise-integration/plugin.js.map +1 -0
  108. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.d.ts +67 -0
  109. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.d.ts.map +1 -0
  110. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.js +670 -0
  111. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.js.map +1 -0
  112. package/v3/dist/domains/enterprise-integration/services/index.d.ts +13 -0
  113. package/v3/dist/domains/enterprise-integration/services/index.d.ts.map +1 -0
  114. package/v3/dist/domains/enterprise-integration/services/index.js +13 -0
  115. package/v3/dist/domains/enterprise-integration/services/index.js.map +1 -0
  116. package/v3/dist/domains/enterprise-integration/services/message-broker-service.d.ts +88 -0
  117. package/v3/dist/domains/enterprise-integration/services/message-broker-service.d.ts.map +1 -0
  118. package/v3/dist/domains/enterprise-integration/services/message-broker-service.js +560 -0
  119. package/v3/dist/domains/enterprise-integration/services/message-broker-service.js.map +1 -0
  120. package/v3/dist/domains/enterprise-integration/services/odata-service.d.ts +75 -0
  121. package/v3/dist/domains/enterprise-integration/services/odata-service.d.ts.map +1 -0
  122. package/v3/dist/domains/enterprise-integration/services/odata-service.js +618 -0
  123. package/v3/dist/domains/enterprise-integration/services/odata-service.js.map +1 -0
  124. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.d.ts +73 -0
  125. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.d.ts.map +1 -0
  126. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.js +513 -0
  127. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.js.map +1 -0
  128. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.d.ts +84 -0
  129. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.d.ts.map +1 -0
  130. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js +639 -0
  131. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js.map +1 -0
  132. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.d.ts +90 -0
  133. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.d.ts.map +1 -0
  134. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.js +389 -0
  135. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.js.map +1 -0
  136. package/v3/dist/domains/index.d.ts +1 -0
  137. package/v3/dist/domains/index.d.ts.map +1 -1
  138. package/v3/dist/domains/index.js +1 -0
  139. package/v3/dist/domains/index.js.map +1 -1
  140. package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
  141. package/v3/dist/domains/learning-optimization/coordinator.js +1 -0
  142. package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
  143. package/v3/dist/domains/learning-optimization/services/learning-coordinator.d.ts.map +1 -1
  144. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js +1 -0
  145. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js.map +1 -1
  146. package/v3/dist/domains/learning-optimization/services/transfer-specialist.d.ts.map +1 -1
  147. package/v3/dist/domains/learning-optimization/services/transfer-specialist.js +1 -0
  148. package/v3/dist/domains/learning-optimization/services/transfer-specialist.js.map +1 -1
  149. package/v3/dist/domains/test-execution/coordinator.d.ts.map +1 -1
  150. package/v3/dist/domains/test-execution/coordinator.js +34 -0
  151. package/v3/dist/domains/test-execution/coordinator.js.map +1 -1
  152. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts +7 -1
  153. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts.map +1 -1
  154. package/v3/dist/domains/test-generation/services/test-data-generator.js +116 -98
  155. package/v3/dist/domains/test-generation/services/test-data-generator.js.map +1 -1
  156. package/v3/dist/init/agents-installer.d.ts +4 -0
  157. package/v3/dist/init/agents-installer.d.ts.map +1 -1
  158. package/v3/dist/init/agents-installer.js +32 -3
  159. package/v3/dist/init/agents-installer.js.map +1 -1
  160. package/v3/dist/init/skills-installer.d.ts.map +1 -1
  161. package/v3/dist/init/skills-installer.js +4 -1
  162. package/v3/dist/init/skills-installer.js.map +1 -1
  163. package/v3/dist/init/types.d.ts.map +1 -1
  164. package/v3/dist/init/types.js +1 -0
  165. package/v3/dist/init/types.js.map +1 -1
  166. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.d.ts +16 -0
  167. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.d.ts.map +1 -1
  168. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.js +41 -0
  169. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.js.map +1 -1
  170. package/v3/dist/integrations/ruvector/provider.d.ts.map +1 -1
  171. package/v3/dist/integrations/ruvector/provider.js +1 -0
  172. package/v3/dist/integrations/ruvector/provider.js.map +1 -1
  173. package/v3/dist/kernel/anti-drift-middleware.d.ts +160 -0
  174. package/v3/dist/kernel/anti-drift-middleware.d.ts.map +1 -0
  175. package/v3/dist/kernel/anti-drift-middleware.js +376 -0
  176. package/v3/dist/kernel/anti-drift-middleware.js.map +1 -0
  177. package/v3/dist/kernel/event-bus.d.ts +29 -1
  178. package/v3/dist/kernel/event-bus.d.ts.map +1 -1
  179. package/v3/dist/kernel/event-bus.js +69 -6
  180. package/v3/dist/kernel/event-bus.js.map +1 -1
  181. package/v3/dist/kernel/interfaces.d.ts +35 -0
  182. package/v3/dist/kernel/interfaces.d.ts.map +1 -1
  183. package/v3/dist/kernel/kernel.d.ts.map +1 -1
  184. package/v3/dist/kernel/kernel.js +14 -17
  185. package/v3/dist/kernel/kernel.js.map +1 -1
  186. package/v3/dist/kernel/unified-memory.d.ts +5 -0
  187. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  188. package/v3/dist/kernel/unified-memory.js +28 -0
  189. package/v3/dist/kernel/unified-memory.js.map +1 -1
  190. package/v3/dist/learning/asymmetric-learning.d.ts +133 -0
  191. package/v3/dist/learning/asymmetric-learning.d.ts.map +1 -0
  192. package/v3/dist/learning/asymmetric-learning.js +170 -0
  193. package/v3/dist/learning/asymmetric-learning.js.map +1 -0
  194. package/v3/dist/learning/pattern-lifecycle.d.ts +26 -0
  195. package/v3/dist/learning/pattern-lifecycle.d.ts.map +1 -1
  196. package/v3/dist/learning/pattern-lifecycle.js +83 -0
  197. package/v3/dist/learning/pattern-lifecycle.js.map +1 -1
  198. package/v3/dist/learning/qe-patterns.d.ts +8 -0
  199. package/v3/dist/learning/qe-patterns.d.ts.map +1 -1
  200. package/v3/dist/learning/qe-patterns.js.map +1 -1
  201. package/v3/dist/learning/real-qe-reasoning-bank.d.ts +28 -0
  202. package/v3/dist/learning/real-qe-reasoning-bank.d.ts.map +1 -1
  203. package/v3/dist/learning/real-qe-reasoning-bank.js +72 -4
  204. package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
  205. package/v3/dist/learning/token-tracker.d.ts +22 -0
  206. package/v3/dist/learning/token-tracker.d.ts.map +1 -1
  207. package/v3/dist/learning/token-tracker.js +67 -0
  208. package/v3/dist/learning/token-tracker.js.map +1 -1
  209. package/v3/dist/mcp/bundle.js +11099 -4879
  210. package/v3/dist/mcp/tool-registry.d.ts.map +1 -1
  211. package/v3/dist/mcp/tool-registry.js +4 -0
  212. package/v3/dist/mcp/tool-registry.js.map +1 -1
  213. package/v3/dist/mcp/tools/analysis/token-usage.d.ts +1 -1
  214. package/v3/dist/mcp/tools/analysis/token-usage.d.ts.map +1 -1
  215. package/v3/dist/mcp/tools/analysis/token-usage.js +23 -3
  216. package/v3/dist/mcp/tools/analysis/token-usage.js.map +1 -1
  217. package/v3/dist/mcp/tools/base.d.ts.map +1 -1
  218. package/v3/dist/mcp/tools/base.js +1 -15
  219. package/v3/dist/mcp/tools/base.js.map +1 -1
  220. package/v3/dist/mcp/tools/coverage-analysis/index.d.ts +7 -0
  221. package/v3/dist/mcp/tools/coverage-analysis/index.d.ts.map +1 -1
  222. package/v3/dist/mcp/tools/coverage-analysis/index.js +30 -0
  223. package/v3/dist/mcp/tools/coverage-analysis/index.js.map +1 -1
  224. package/v3/dist/optimization/token-optimizer-service.d.ts +7 -0
  225. package/v3/dist/optimization/token-optimizer-service.d.ts.map +1 -1
  226. package/v3/dist/optimization/token-optimizer-service.js +10 -1
  227. package/v3/dist/optimization/token-optimizer-service.js.map +1 -1
  228. package/v3/dist/shared/types/index.d.ts +20 -1
  229. package/v3/dist/shared/types/index.d.ts.map +1 -1
  230. package/v3/dist/shared/types/index.js +1 -0
  231. package/v3/dist/shared/types/index.js.map +1 -1
  232. package/v3/dist/strange-loop/healing-controller.d.ts.map +1 -1
  233. package/v3/dist/strange-loop/healing-controller.js +12 -0
  234. package/v3/dist/strange-loop/healing-controller.js.map +1 -1
  235. package/v3/dist/strange-loop/strange-loop.d.ts +14 -0
  236. package/v3/dist/strange-loop/strange-loop.d.ts.map +1 -1
  237. package/v3/dist/strange-loop/strange-loop.js +24 -0
  238. package/v3/dist/strange-loop/strange-loop.js.map +1 -1
  239. package/v3/dist/strange-loop/types.d.ts +2 -2
  240. package/v3/dist/strange-loop/types.d.ts.map +1 -1
  241. package/v3/dist/strange-loop/types.js.map +1 -1
  242. package/v3/dist/sync/claude-flow-bridge.d.ts.map +1 -1
  243. package/v3/dist/sync/claude-flow-bridge.js +3 -24
  244. package/v3/dist/sync/claude-flow-bridge.js.map +1 -1
  245. package/v3/package.json +12 -9
  246. /package/{v3/assets/skills/sfdipot-product-factors/skill.md → .claude/skills/sfdipot-product-factors/SKILL.md} +0 -0
  247. /package/{v3/assets/skills/test-idea-rewriting/skill.md → .claude/skills/test-idea-rewriting/SKILL.md} +0 -0
@@ -0,0 +1,486 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentic-qe.dev/schemas/security-visual-testing-output.json",
4
+ "title": "Security Visual Testing Skill Output Schema",
5
+ "description": "Schema for combined security and visual testing output with security findings, visual diffs, and unified quality score.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "security-visual-testing",
12
+ "description": "Must be 'security-visual-testing'"
13
+ },
14
+ "version": {
15
+ "type": "string",
16
+ "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$"
17
+ },
18
+ "timestamp": {
19
+ "type": "string",
20
+ "format": "date-time"
21
+ },
22
+ "status": {
23
+ "type": "string",
24
+ "enum": ["success", "partial", "failed", "skipped"]
25
+ },
26
+ "trustTier": {
27
+ "type": "integer",
28
+ "minimum": 0,
29
+ "maximum": 3
30
+ },
31
+ "output": {
32
+ "type": "object",
33
+ "required": ["summary", "securityFindings", "visualDiffs"],
34
+ "properties": {
35
+ "summary": {
36
+ "type": "string",
37
+ "minLength": 50,
38
+ "maxLength": 2000
39
+ },
40
+ "securityFindings": {
41
+ "$ref": "#/$defs/securityFindings"
42
+ },
43
+ "visualDiffs": {
44
+ "$ref": "#/$defs/visualDiffs"
45
+ },
46
+ "combinedScore": {
47
+ "$ref": "#/$defs/combinedScore"
48
+ },
49
+ "crossDomainIssues": {
50
+ "type": "array",
51
+ "items": {
52
+ "$ref": "#/$defs/crossDomainIssue"
53
+ },
54
+ "description": "Issues that span both security and visual domains"
55
+ },
56
+ "findings": {
57
+ "type": "array",
58
+ "items": {
59
+ "$ref": "#/$defs/finding"
60
+ },
61
+ "maxItems": 200
62
+ },
63
+ "recommendations": {
64
+ "type": "array",
65
+ "items": {
66
+ "$ref": "#/$defs/recommendation"
67
+ },
68
+ "maxItems": 100
69
+ },
70
+ "artifacts": {
71
+ "type": "array",
72
+ "items": {
73
+ "$ref": "#/$defs/artifact"
74
+ }
75
+ }
76
+ }
77
+ },
78
+ "metadata": {
79
+ "$ref": "#/$defs/metadata"
80
+ },
81
+ "validation": {
82
+ "$ref": "#/$defs/validationResult"
83
+ },
84
+ "learning": {
85
+ "$ref": "#/$defs/learningData"
86
+ }
87
+ },
88
+ "$defs": {
89
+ "securityFindings": {
90
+ "type": "object",
91
+ "required": ["totalFindings", "score"],
92
+ "properties": {
93
+ "totalFindings": {
94
+ "type": "integer",
95
+ "minimum": 0
96
+ },
97
+ "criticalCount": {
98
+ "type": "integer",
99
+ "minimum": 0
100
+ },
101
+ "highCount": {
102
+ "type": "integer",
103
+ "minimum": 0
104
+ },
105
+ "mediumCount": {
106
+ "type": "integer",
107
+ "minimum": 0
108
+ },
109
+ "lowCount": {
110
+ "type": "integer",
111
+ "minimum": 0
112
+ },
113
+ "score": {
114
+ "type": "number",
115
+ "minimum": 0,
116
+ "maximum": 100,
117
+ "description": "Security score (100 = no issues)"
118
+ },
119
+ "owaspCategories": {
120
+ "type": "object",
121
+ "additionalProperties": {
122
+ "type": "object",
123
+ "properties": {
124
+ "tested": {
125
+ "type": "boolean"
126
+ },
127
+ "findingCount": {
128
+ "type": "integer"
129
+ },
130
+ "score": {
131
+ "type": "number"
132
+ }
133
+ }
134
+ }
135
+ },
136
+ "vulnerabilities": {
137
+ "type": "array",
138
+ "items": {
139
+ "type": "object",
140
+ "required": ["id", "title", "severity"],
141
+ "properties": {
142
+ "id": {
143
+ "type": "string",
144
+ "pattern": "^SEC-\\d{3,6}$"
145
+ },
146
+ "title": {
147
+ "type": "string"
148
+ },
149
+ "severity": {
150
+ "type": "string",
151
+ "enum": ["critical", "high", "medium", "low", "info"]
152
+ },
153
+ "owasp": {
154
+ "type": "string"
155
+ },
156
+ "cwe": {
157
+ "type": "string"
158
+ },
159
+ "location": {
160
+ "type": "object",
161
+ "properties": {
162
+ "url": {
163
+ "type": "string"
164
+ },
165
+ "element": {
166
+ "type": "string"
167
+ }
168
+ }
169
+ },
170
+ "remediation": {
171
+ "type": "string"
172
+ }
173
+ }
174
+ }
175
+ }
176
+ }
177
+ },
178
+ "visualDiffs": {
179
+ "type": "object",
180
+ "required": ["totalComparisons", "diffsDetected"],
181
+ "properties": {
182
+ "totalComparisons": {
183
+ "type": "integer",
184
+ "minimum": 0
185
+ },
186
+ "diffsDetected": {
187
+ "type": "integer",
188
+ "minimum": 0
189
+ },
190
+ "passRate": {
191
+ "type": "number",
192
+ "minimum": 0,
193
+ "maximum": 100
194
+ },
195
+ "score": {
196
+ "type": "number",
197
+ "minimum": 0,
198
+ "maximum": 100,
199
+ "description": "Visual consistency score"
200
+ },
201
+ "comparisons": {
202
+ "type": "array",
203
+ "items": {
204
+ "type": "object",
205
+ "required": ["id", "status"],
206
+ "properties": {
207
+ "id": {
208
+ "type": "string",
209
+ "pattern": "^VIS-\\d{3,6}$"
210
+ },
211
+ "page": {
212
+ "type": "string"
213
+ },
214
+ "viewport": {
215
+ "type": "string"
216
+ },
217
+ "status": {
218
+ "type": "string",
219
+ "enum": ["passed", "failed", "warning", "skipped"]
220
+ },
221
+ "diffPercentage": {
222
+ "type": "number",
223
+ "minimum": 0,
224
+ "maximum": 100
225
+ },
226
+ "diffPixels": {
227
+ "type": "integer",
228
+ "minimum": 0
229
+ },
230
+ "baselineImage": {
231
+ "type": "string"
232
+ },
233
+ "actualImage": {
234
+ "type": "string"
235
+ },
236
+ "diffImage": {
237
+ "type": "string"
238
+ },
239
+ "regions": {
240
+ "type": "array",
241
+ "items": {
242
+ "type": "object",
243
+ "properties": {
244
+ "x": {
245
+ "type": "integer"
246
+ },
247
+ "y": {
248
+ "type": "integer"
249
+ },
250
+ "width": {
251
+ "type": "integer"
252
+ },
253
+ "height": {
254
+ "type": "integer"
255
+ },
256
+ "type": {
257
+ "type": "string",
258
+ "enum": ["added", "removed", "changed"]
259
+ }
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ },
268
+ "combinedScore": {
269
+ "type": "object",
270
+ "required": ["value", "max"],
271
+ "properties": {
272
+ "value": {
273
+ "type": "number",
274
+ "minimum": 0,
275
+ "maximum": 100
276
+ },
277
+ "max": {
278
+ "type": "number",
279
+ "const": 100
280
+ },
281
+ "grade": {
282
+ "type": "string",
283
+ "pattern": "^[A-F][+-]?$"
284
+ },
285
+ "securityWeight": {
286
+ "type": "number",
287
+ "minimum": 0,
288
+ "maximum": 1
289
+ },
290
+ "visualWeight": {
291
+ "type": "number",
292
+ "minimum": 0,
293
+ "maximum": 1
294
+ },
295
+ "breakdown": {
296
+ "type": "object",
297
+ "properties": {
298
+ "securityScore": {
299
+ "type": "number",
300
+ "minimum": 0,
301
+ "maximum": 100
302
+ },
303
+ "visualScore": {
304
+ "type": "number",
305
+ "minimum": 0,
306
+ "maximum": 100
307
+ }
308
+ }
309
+ }
310
+ }
311
+ },
312
+ "crossDomainIssue": {
313
+ "type": "object",
314
+ "required": ["id", "title", "domains"],
315
+ "properties": {
316
+ "id": {
317
+ "type": "string",
318
+ "pattern": "^SVT-\\d{3,6}$"
319
+ },
320
+ "title": {
321
+ "type": "string"
322
+ },
323
+ "description": {
324
+ "type": "string"
325
+ },
326
+ "domains": {
327
+ "type": "array",
328
+ "items": {
329
+ "type": "string",
330
+ "enum": ["security", "visual"]
331
+ },
332
+ "minItems": 2
333
+ },
334
+ "severity": {
335
+ "type": "string",
336
+ "enum": ["critical", "high", "medium", "low", "info"]
337
+ },
338
+ "examples": {
339
+ "type": "array",
340
+ "items": {
341
+ "type": "string"
342
+ },
343
+ "description": "e.g., XSS that causes visual injection, CSP blocking images"
344
+ },
345
+ "remediation": {
346
+ "type": "string"
347
+ }
348
+ }
349
+ },
350
+ "finding": {
351
+ "type": "object",
352
+ "required": ["id", "title", "severity", "domain"],
353
+ "properties": {
354
+ "id": {
355
+ "type": "string",
356
+ "pattern": "^(SEC|VIS|SVT)-\\d{3,6}$"
357
+ },
358
+ "title": {
359
+ "type": "string"
360
+ },
361
+ "description": {
362
+ "type": "string"
363
+ },
364
+ "severity": {
365
+ "type": "string",
366
+ "enum": ["critical", "high", "medium", "low", "info"]
367
+ },
368
+ "domain": {
369
+ "type": "string",
370
+ "enum": ["security", "visual", "both"]
371
+ },
372
+ "remediation": {
373
+ "type": "string"
374
+ }
375
+ }
376
+ },
377
+ "recommendation": {
378
+ "type": "object",
379
+ "required": ["id", "title", "priority"],
380
+ "properties": {
381
+ "id": {
382
+ "type": "string",
383
+ "pattern": "^REC-\\d{3,6}$"
384
+ },
385
+ "title": {
386
+ "type": "string"
387
+ },
388
+ "description": {
389
+ "type": "string"
390
+ },
391
+ "priority": {
392
+ "type": "string",
393
+ "enum": ["critical", "high", "medium", "low"]
394
+ },
395
+ "effort": {
396
+ "type": "string",
397
+ "enum": ["trivial", "low", "medium", "high", "major"]
398
+ },
399
+ "domain": {
400
+ "type": "string",
401
+ "enum": ["security", "visual", "both"]
402
+ }
403
+ }
404
+ },
405
+ "artifact": {
406
+ "type": "object",
407
+ "required": ["type", "path"],
408
+ "properties": {
409
+ "type": {
410
+ "type": "string",
411
+ "enum": ["report", "screenshot", "diff", "sarif", "data"]
412
+ },
413
+ "path": {
414
+ "type": "string"
415
+ },
416
+ "format": {
417
+ "type": "string"
418
+ },
419
+ "domain": {
420
+ "type": "string",
421
+ "enum": ["security", "visual", "combined"]
422
+ }
423
+ }
424
+ },
425
+ "metadata": {
426
+ "type": "object",
427
+ "properties": {
428
+ "executionTimeMs": {
429
+ "type": "integer",
430
+ "minimum": 0
431
+ },
432
+ "toolsUsed": {
433
+ "type": "array",
434
+ "items": {
435
+ "type": "string"
436
+ }
437
+ },
438
+ "agentId": {
439
+ "type": "string"
440
+ },
441
+ "targetUrl": {
442
+ "type": "string",
443
+ "format": "uri"
444
+ },
445
+ "viewports": {
446
+ "type": "array",
447
+ "items": {
448
+ "type": "string"
449
+ }
450
+ }
451
+ }
452
+ },
453
+ "validationResult": {
454
+ "type": "object",
455
+ "properties": {
456
+ "schemaValid": {
457
+ "type": "boolean"
458
+ },
459
+ "contentValid": {
460
+ "type": "boolean"
461
+ },
462
+ "confidence": {
463
+ "type": "number",
464
+ "minimum": 0,
465
+ "maximum": 1
466
+ }
467
+ }
468
+ },
469
+ "learningData": {
470
+ "type": "object",
471
+ "properties": {
472
+ "patternsDetected": {
473
+ "type": "array",
474
+ "items": {
475
+ "type": "string"
476
+ }
477
+ },
478
+ "reward": {
479
+ "type": "number",
480
+ "minimum": 0,
481
+ "maximum": 1
482
+ }
483
+ }
484
+ }
485
+ }
486
+ }