qa360 2.1.7 → 2.2.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 (906) hide show
  1. package/.BETA_TESTING_FEEDBACK.md +256 -0
  2. package/.claude/settings.local.json +154 -0
  3. package/.editorconfig +21 -0
  4. package/.github/CODEOWNERS +23 -0
  5. package/.github/ISSUE_TEMPLATE/bug_report.yml +108 -0
  6. package/.github/ISSUE_TEMPLATE/feedback_dx.yml +121 -0
  7. package/.github/dependabot.yml +35 -0
  8. package/.github/workflows/mcp-dx.yml +106 -0
  9. package/.github/workflows/release.yml +26 -0
  10. package/.github/workflows/test.yml +93 -0
  11. package/.nvmrc +1 -0
  12. package/.qa360-artifacts/.gitkeep +0 -0
  13. package/.qa360-artifacts/baselines/.gitkeep +0 -0
  14. package/.qa360-artifacts/cache/.gitkeep +0 -0
  15. package/.qa360-artifacts/reports/.gitkeep +0 -0
  16. package/.qa360-artifacts/screenshots/.gitkeep +0 -0
  17. package/.qa360-baselines/www_xyqo_ai.baseline.json +33 -0
  18. package/CHANGELOG.md +234 -0
  19. package/CODEOWNERS +43 -0
  20. package/CONTRIBUTING.md +273 -0
  21. package/NOVICE_USER_GUIDE.md +272 -0
  22. package/QUICK_START.md +191 -0
  23. package/README.md +191 -163
  24. package/adapters/README.md +46 -0
  25. package/check-branches.sh +32 -0
  26. package/cli/.qa360/keys/ed25519.key +1 -0
  27. package/cli/.qa360/keys/ed25519.pub +1 -0
  28. package/cli/CHANGELOG.md +84 -0
  29. package/cli/LICENSE +24 -0
  30. package/cli/README.md +222 -0
  31. package/cli/examples/README.md +160 -0
  32. package/cli/package.json +76 -0
  33. package/cli/scripts/bundle-for-npm.sh +51 -0
  34. package/cli/scripts/validate-package.js +116 -0
  35. package/cli/src/__tests__/commands/doctor.test.ts +108 -0
  36. package/cli/src/__tests__/index.test.ts +15 -0
  37. package/cli/src/cli-minimal.ts +44 -0
  38. package/cli/src/commands/__tests__/crawl.test.ts +412 -0
  39. package/cli/src/commands/__tests__/doctor-qa360-home.test.ts +156 -0
  40. package/cli/src/commands/__tests__/e2e-ui-tests.test.ts +494 -0
  41. package/cli/src/commands/__tests__/e2e.test.ts +187 -0
  42. package/cli/src/commands/__tests__/flakiness.test.ts +528 -0
  43. package/cli/src/commands/__tests__/generate.test.ts +507 -0
  44. package/cli/src/commands/__tests__/history.integration.test.ts +358 -0
  45. package/cli/src/commands/__tests__/history.test.ts +433 -0
  46. package/cli/src/commands/__tests__/monitor-realworld.test.ts +199 -0
  47. package/cli/src/commands/__tests__/monitor.test.ts +81 -0
  48. package/cli/src/commands/__tests__/ollama.test.ts +529 -0
  49. package/cli/src/commands/__tests__/repair.test.ts +225 -0
  50. package/cli/src/commands/__tests__/report.integration.test.ts +167 -0
  51. package/cli/src/commands/__tests__/report.test.ts +294 -0
  52. package/cli/src/commands/__tests__/report.vitest.ts +288 -0
  53. package/cli/src/commands/__tests__/retry.test.ts +78 -0
  54. package/cli/src/commands/__tests__/run.integration.test.ts +240 -0
  55. package/cli/src/commands/__tests__/run.test.ts +346 -0
  56. package/cli/src/commands/__tests__/run.vitest.ts +301 -0
  57. package/cli/src/commands/__tests__/secrets.test.ts +114 -0
  58. package/cli/src/commands/__tests__/serve.test.ts +80 -0
  59. package/cli/src/commands/__tests__/verify.test.ts +103 -0
  60. package/cli/src/commands/ai.ts +702 -0
  61. package/cli/src/commands/ask.ts +678 -0
  62. package/cli/src/commands/coverage.ts +305 -0
  63. package/cli/src/commands/crawl.ts +155 -0
  64. package/cli/src/commands/doctor.ts +610 -0
  65. package/cli/src/commands/examples.ts +248 -0
  66. package/cli/src/commands/explain.ts +710 -0
  67. package/cli/src/commands/flakiness.ts +560 -0
  68. package/cli/src/commands/generate.ts +566 -0
  69. package/cli/src/commands/history.ts +914 -0
  70. package/cli/src/commands/init.ts +777 -0
  71. package/cli/src/commands/monitor.ts +270 -0
  72. package/cli/src/commands/ollama.ts +337 -0
  73. package/cli/src/commands/pack.ts +497 -0
  74. package/cli/src/commands/regression.ts +400 -0
  75. package/cli/src/commands/repair.ts +356 -0
  76. package/cli/src/commands/report.ts +463 -0
  77. package/cli/src/commands/retry.ts +380 -0
  78. package/cli/src/commands/run.ts +218 -0
  79. package/cli/src/commands/scan.ts +177 -0
  80. package/cli/src/commands/secrets.ts +340 -0
  81. package/cli/src/commands/serve.ts +194 -0
  82. package/cli/src/commands/slo.ts +387 -0
  83. package/cli/src/commands/verify-temp-note.md +11 -0
  84. package/cli/src/commands/verify.ts +322 -0
  85. package/cli/src/generators/index.ts +6 -0
  86. package/cli/src/generators/json-reporter.ts +15 -0
  87. package/cli/src/generators/test-generator.ts +90 -0
  88. package/cli/src/index.ts +289 -0
  89. package/cli/src/scanners/dom-scanner.ts +360 -0
  90. package/cli/src/scanners/index.ts +5 -0
  91. package/cli/src/types/scan.ts +84 -0
  92. package/cli/src/utils/config.ts +145 -0
  93. package/cli/tsconfig.bundle.json +12 -0
  94. package/cli/tsconfig.json +23 -0
  95. package/cli/vitest.config.ts +59 -0
  96. package/core/LICENSE +24 -0
  97. package/core/README.md +64 -0
  98. package/core/package.json +81 -0
  99. package/core/src/__tests__/adapters-contract/adapters-contract.test.md +156 -0
  100. package/core/src/__tests__/index.test.ts +31 -0
  101. package/core/src/__tests__/integration/phase3.test.ts +405 -0
  102. package/core/src/__tests__/pack/validator.test.ts +312 -0
  103. package/core/src/__tests__/secrets/crypto.test.ts +190 -0
  104. package/core/src/__tests__/secrets/manager.test.ts +316 -0
  105. package/core/src/__tests__/security/redactor-phase3.test.ts +233 -0
  106. package/core/src/__tests__/serve/health-checker.test.ts +155 -0
  107. package/core/src/__tests__/serve/process-manager.test.ts +213 -0
  108. package/core/src/__tests__/serve/server.test.ts +103 -0
  109. package/core/src/__tests__/vault/cas.test.ts +178 -0
  110. package/core/src/__tests__/vault/vault.test.ts +296 -0
  111. package/core/src/adapters/__tests__/fixtures/jest-coverage.json +8 -0
  112. package/core/src/adapters/__tests__/fixtures/jest-results.json +41 -0
  113. package/core/src/adapters/__tests__/fixtures/pytest-junit.xml +16 -0
  114. package/core/src/adapters/__tests__/fixtures/vitest-coverage.json +8 -0
  115. package/core/src/adapters/__tests__/fixtures/vitest-results.json +50 -0
  116. package/core/src/adapters/__tests__/gitleaks-secrets.test.ts +452 -0
  117. package/core/src/adapters/__tests__/jest-adapter.test.ts +276 -0
  118. package/core/src/adapters/__tests__/k6-perf.test.ts +538 -0
  119. package/core/src/adapters/__tests__/osv-deps.test.ts +471 -0
  120. package/core/src/adapters/__tests__/playwright-native-api.test.ts +792 -0
  121. package/core/src/adapters/__tests__/playwright-ui-e2e.test.ts +431 -0
  122. package/core/src/adapters/__tests__/playwright-ui.test.ts +1073 -0
  123. package/core/src/adapters/__tests__/pytest-adapter.test.ts +207 -0
  124. package/core/src/adapters/__tests__/semgrep-sast.test.ts +436 -0
  125. package/core/src/adapters/__tests__/vitest-adapter.test.ts +208 -0
  126. package/core/src/adapters/__tests__/zap-dast.test.ts +453 -0
  127. package/core/src/adapters/gitleaks-secrets.ts +521 -0
  128. package/core/src/adapters/jest-adapter.ts +306 -0
  129. package/core/src/adapters/k6-perf.ts +479 -0
  130. package/core/src/adapters/osv-deps.ts +467 -0
  131. package/core/src/adapters/playwright-native-adapter.ts +472 -0
  132. package/core/src/adapters/playwright-native-api.ts +619 -0
  133. package/core/src/adapters/playwright-ui.ts +1088 -0
  134. package/core/src/adapters/pytest-adapter.ts +472 -0
  135. package/core/src/adapters/semgrep-sast.ts +410 -0
  136. package/core/src/adapters/unit-test-types.ts +106 -0
  137. package/core/src/adapters/vitest-adapter.ts +295 -0
  138. package/core/src/adapters/zap-dast.ts +551 -0
  139. package/core/src/ai/__tests__/deepseek-provider.test.ts +586 -0
  140. package/core/src/ai/__tests__/ollama-provider.test.ts +641 -0
  141. package/core/src/ai/anthropic-provider.ts +262 -0
  142. package/core/src/ai/deepseek-provider.ts +315 -0
  143. package/core/src/ai/index.ts +87 -0
  144. package/core/src/ai/llm-client.ts +52 -0
  145. package/core/src/ai/mock-provider.ts +146 -0
  146. package/core/src/ai/ollama-provider.ts +269 -0
  147. package/core/src/ai/openai-provider.ts +240 -0
  148. package/core/src/ai/provider-factory.ts +408 -0
  149. package/core/src/artifacts/README.md +78 -0
  150. package/core/src/artifacts/index.ts +16 -0
  151. package/core/src/artifacts/ui-artifacts.ts +412 -0
  152. package/core/src/assertions/__tests__/engine.test.ts +360 -0
  153. package/core/src/assertions/engine.ts +577 -0
  154. package/core/src/assertions/index.ts +13 -0
  155. package/core/src/assertions/types.ts +229 -0
  156. package/core/src/auth/__tests__/api-key-provider.test.ts +282 -0
  157. package/core/src/auth/__tests__/auth-manager.test.ts +430 -0
  158. package/core/src/auth/__tests__/basic-auth-provider.test.ts +364 -0
  159. package/core/src/auth/__tests__/cloud-providers.test.ts +751 -0
  160. package/core/src/auth/__tests__/jwt-provider.test.ts +400 -0
  161. package/core/src/auth/__tests__/oauth2-provider.test.ts +383 -0
  162. package/core/src/auth/__tests__/totp-provider.test.ts +294 -0
  163. package/core/src/auth/__tests__/ui-login-provider.test.ts +323 -0
  164. package/core/src/auth/api-key-provider.ts +75 -0
  165. package/core/src/auth/aws-iam-provider.ts +212 -0
  166. package/core/src/auth/azure-ad-provider.ts +126 -0
  167. package/core/src/auth/basic-auth-provider.ts +133 -0
  168. package/core/src/auth/gcp-adc-provider.ts +146 -0
  169. package/core/src/auth/index.ts +342 -0
  170. package/core/src/auth/jwt-provider.ts +193 -0
  171. package/core/src/auth/manager.ts +281 -0
  172. package/core/src/auth/oauth2-provider.ts +141 -0
  173. package/core/src/auth/totp-provider.ts +163 -0
  174. package/core/src/auth/ui-login-provider.ts +242 -0
  175. package/core/src/cache/__tests__/lru-cache.test.ts +564 -0
  176. package/core/src/cache/index.ts +13 -0
  177. package/core/src/cache/lru-cache.ts +536 -0
  178. package/core/src/crawler/__tests__/journey-generator.test.ts +344 -0
  179. package/core/src/crawler/__tests__/selector-generator.test.ts +211 -0
  180. package/core/src/crawler/index.ts +335 -0
  181. package/core/src/crawler/journey-generator.ts +471 -0
  182. package/core/src/crawler/page-analyzer.ts +857 -0
  183. package/core/src/crawler/selector-generator.ts +280 -0
  184. package/core/src/crawler/types.ts +475 -0
  185. package/core/src/dashboard/__tests__/real-world.test.ts +430 -0
  186. package/core/src/dashboard/__tests__/server.test.ts +283 -0
  187. package/core/src/dashboard/__tests__/types.test.ts +208 -0
  188. package/core/src/dashboard/assets.ts +692 -0
  189. package/core/src/dashboard/index.ts +17 -0
  190. package/core/src/dashboard/server.ts +401 -0
  191. package/core/src/dashboard/types.ts +78 -0
  192. package/core/src/discoverer/__tests__/test-discoverer.test.ts +444 -0
  193. package/core/src/discoverer/index.ts +374 -0
  194. package/core/src/fixtures/__tests__/loader.test.ts +246 -0
  195. package/core/src/fixtures/__tests__/resolver.test.ts +334 -0
  196. package/core/src/fixtures/index.ts +9 -0
  197. package/core/src/fixtures/loader.ts +189 -0
  198. package/core/src/fixtures/resolver.ts +221 -0
  199. package/core/src/fixtures/types.ts +86 -0
  200. package/core/src/flakiness/__tests__/flakiness.test.ts +554 -0
  201. package/core/src/flakiness/index.ts +536 -0
  202. package/core/src/generation/__tests__/code-formatter.test.ts +170 -0
  203. package/core/src/generation/__tests__/code-generator-contract.test.ts +207 -0
  204. package/core/src/generation/__tests__/code-generator.test.ts +586 -0
  205. package/core/src/generation/__tests__/crawler-pack-generator.test.ts +479 -0
  206. package/core/src/generation/__tests__/generation-e2e-b2bshop.test.ts +718 -0
  207. package/core/src/generation/__tests__/generation-integration.test.ts +655 -0
  208. package/core/src/generation/__tests__/pack-generator.test.ts +408 -0
  209. package/core/src/generation/__tests__/prompt-builder.test.ts +200 -0
  210. package/core/src/generation/__tests__/real-provider-integration.test.ts +414 -0
  211. package/core/src/generation/__tests__/source-analyzer.test.ts +774 -0
  212. package/core/src/generation/__tests__/test-optimizer.test.ts +255 -0
  213. package/core/src/generation/code-formatter.ts +408 -0
  214. package/core/src/generation/code-generator.ts +470 -0
  215. package/core/src/generation/crawler-pack-generator.ts +289 -0
  216. package/core/src/generation/generator.ts +113 -0
  217. package/core/src/generation/index.ts +59 -0
  218. package/core/src/generation/pack-generator.ts +527 -0
  219. package/core/src/generation/prompt-builder.ts +772 -0
  220. package/core/src/generation/source-analyzer.ts +830 -0
  221. package/core/src/generation/test-optimizer.ts +474 -0
  222. package/core/src/generation/types.ts +217 -0
  223. package/core/src/hooks/__tests__/compose.test.ts +636 -0
  224. package/core/src/hooks/__tests__/runner.test.ts +478 -0
  225. package/core/src/hooks/compose.ts +268 -0
  226. package/core/src/hooks/runner.ts +364 -0
  227. package/core/src/index.ts +255 -0
  228. package/core/src/pack/__tests__/migrator.test.ts +594 -0
  229. package/core/src/pack/__tests__/validator.test.ts +759 -0
  230. package/core/src/pack/migrator.ts +353 -0
  231. package/core/src/pack/validator.ts +359 -0
  232. package/core/src/pack-v2/__tests__/loader.test.ts +533 -0
  233. package/core/src/pack-v2/__tests__/migrator.test.ts +455 -0
  234. package/core/src/pack-v2/__tests__/validator.test.ts +609 -0
  235. package/core/src/pack-v2/index.ts +41 -0
  236. package/core/src/pack-v2/loader.ts +358 -0
  237. package/core/src/pack-v2/migrator.ts +540 -0
  238. package/core/src/pack-v2/validator.ts +726 -0
  239. package/core/src/parallel/README.md +143 -0
  240. package/core/src/parallel/index.ts +16 -0
  241. package/core/src/parallel/parallel-runner.ts +282 -0
  242. package/core/src/pom/__tests__/loader.test.ts +378 -0
  243. package/core/src/pom/base-page.ts +425 -0
  244. package/core/src/pom/index.ts +45 -0
  245. package/core/src/pom/loader.ts +480 -0
  246. package/core/src/pom/types.ts +146 -0
  247. package/core/src/proof/__tests__/proof-roundtrip.test.ts +149 -0
  248. package/core/src/proof/__tests__/schema-validation-manual.mjs +211 -0
  249. package/core/src/proof/__tests__/schema-validation.test.ts +336 -0
  250. package/core/src/proof/__tests__/signer.test.ts +486 -0
  251. package/core/src/proof/__tests__/temporal-regression.test.ts +537 -0
  252. package/core/src/proof/__tests__/verifier-advanced.test.ts +588 -0
  253. package/core/src/proof/__tests__/verifier.test.ts +413 -0
  254. package/core/src/proof/bundle.ts +290 -0
  255. package/core/src/proof/canonicalize.ts +116 -0
  256. package/core/src/proof/index.ts +74 -0
  257. package/core/src/proof/schema.ts +285 -0
  258. package/core/src/proof/signer.ts +293 -0
  259. package/core/src/proof/verifier.ts +380 -0
  260. package/core/src/regression/__tests__/detector.test.ts +396 -0
  261. package/core/src/regression/__tests__/trend-analyzer.test.ts +300 -0
  262. package/core/src/regression/detector.ts +629 -0
  263. package/core/src/regression/index.ts +34 -0
  264. package/core/src/regression/trend-analyzer.ts +468 -0
  265. package/core/src/regression/types.ts +295 -0
  266. package/core/src/regression/vault.ts +419 -0
  267. package/core/src/repair/__tests__/repairer.test.ts +572 -0
  268. package/core/src/repair/__tests__/types.test.ts +302 -0
  269. package/core/src/repair/engine/__tests__/fixer.test.ts +482 -0
  270. package/core/src/repair/engine/__tests__/suggestion-engine.test.ts +395 -0
  271. package/core/src/repair/engine/fixer.ts +271 -0
  272. package/core/src/repair/engine/suggestion-engine.ts +234 -0
  273. package/core/src/repair/index.ts +53 -0
  274. package/core/src/repair/repairer.ts +376 -0
  275. package/core/src/repair/types.ts +119 -0
  276. package/core/src/repair/utils/__tests__/error-analyzer.test.ts +454 -0
  277. package/core/src/repair/utils/error-analyzer.ts +308 -0
  278. package/core/src/reporting/README.md +144 -0
  279. package/core/src/reporting/html-reporter.ts +835 -0
  280. package/core/src/reporting/index.ts +16 -0
  281. package/core/src/retry/README.md +192 -0
  282. package/core/src/retry/__tests__/flakiness-integration.test.ts +475 -0
  283. package/core/src/retry/__tests__/retry-engine.test.ts +424 -0
  284. package/core/src/retry/flakiness-integration.ts +267 -0
  285. package/core/src/retry/index.ts +48 -0
  286. package/core/src/retry/retry-engine.ts +368 -0
  287. package/core/src/retry/types.ts +208 -0
  288. package/core/src/retry/vault.ts +413 -0
  289. package/core/src/runner/__tests__/flakiness-integration.test.ts +566 -0
  290. package/core/src/runner/__tests__/phase3-e2e-b2bshop.test.ts +218 -0
  291. package/core/src/runner/__tests__/phase3-e2e-reqres.test.ts +199 -0
  292. package/core/src/runner/__tests__/phase3-runner.test.ts +1118 -0
  293. package/core/src/runner/e2e-helpers.ts +216 -0
  294. package/core/src/runner/phase3-runner.ts +1236 -0
  295. package/core/src/schemas/gherkin-report.json +122 -0
  296. package/core/src/secrets/__tests__/crypto.test.ts +180 -0
  297. package/core/src/secrets/crypto.ts +289 -0
  298. package/core/src/secrets/manager.ts +272 -0
  299. package/core/src/security/__tests__/hardening.test.ts +480 -0
  300. package/core/src/security/redaction-patterns-extended.ts +278 -0
  301. package/core/src/security/redactor.ts +326 -0
  302. package/core/src/self-healing/assertion-healer.ts +485 -0
  303. package/core/src/self-healing/engine.ts +626 -0
  304. package/core/src/self-healing/index.ts +33 -0
  305. package/core/src/self-healing/selector-healer.ts +488 -0
  306. package/core/src/self-healing/types.ts +193 -0
  307. package/core/src/serve/diagnostics-collector.ts +201 -0
  308. package/core/src/serve/health-checker.ts +274 -0
  309. package/core/src/serve/index.ts +9 -0
  310. package/core/src/serve/metrics-collector.ts +386 -0
  311. package/core/src/serve/process-manager.ts +265 -0
  312. package/core/src/serve/server.ts +230 -0
  313. package/core/src/slo/config.ts +408 -0
  314. package/core/src/slo/index.ts +68 -0
  315. package/core/src/slo/sli-calculator.ts +474 -0
  316. package/core/src/slo/slo-tracker.ts +481 -0
  317. package/core/src/slo/types.ts +408 -0
  318. package/core/src/slo/vault.ts +600 -0
  319. package/core/src/tui/__tests__/monitor.test.ts +336 -0
  320. package/core/src/tui/__tests__/real-world.test.ts +376 -0
  321. package/core/src/tui/__tests__/renderer.test.ts +201 -0
  322. package/core/src/tui/__tests__/types.test.ts +295 -0
  323. package/core/src/tui/index.ts +19 -0
  324. package/core/src/tui/monitor.ts +331 -0
  325. package/core/src/tui/renderer.ts +269 -0
  326. package/core/src/tui/types.ts +68 -0
  327. package/core/src/types/pack-v1.ts +305 -0
  328. package/core/src/types/pack-v2.ts +501 -0
  329. package/core/src/types/trust-score.ts +258 -0
  330. package/core/src/vault/__tests__/flakiness-vault.test.ts +562 -0
  331. package/core/src/vault/__tests__/vault.test.ts +259 -0
  332. package/core/src/vault/cas.ts +323 -0
  333. package/core/src/vault/index.ts +1361 -0
  334. package/core/src/vault/schema.sql +168 -0
  335. package/core/src/visual/README.md +185 -0
  336. package/core/src/visual/index.ts +14 -0
  337. package/core/src/visual/visual-regression.ts +347 -0
  338. package/core/src/watch/__tests__/watch-mode.test.ts +192 -0
  339. package/core/src/watch/index.ts +14 -0
  340. package/core/src/watch/watch-mode.ts +565 -0
  341. package/core/tsconfig.json +12 -0
  342. package/core/vitest.config.ts +52 -0
  343. package/docs/ARCHITECTURE.md +901 -0
  344. package/docs/AUDIT-GLOBAL-DEC2025.md +271 -0
  345. package/docs/BETA_TESTING.md +257 -0
  346. package/docs/BETA_TESTING_PLAN.md +727 -0
  347. package/docs/CERTIFICATION-REPORT.md +142 -0
  348. package/docs/COMPLETE_AUDIT_REFACTORING.md +965 -0
  349. package/docs/DEVELOPMENT.md +545 -0
  350. package/docs/DEVELOPMENT_HISTORY.md +345 -0
  351. package/docs/LIMITATIONS.md +176 -0
  352. package/docs/MIGRATION.md +303 -0
  353. package/docs/OPTION_3_4_EXPLORATION.md +1257 -0
  354. package/docs/PHASE1_PERFORMANCE.md +144 -0
  355. package/docs/QA360_Cloud.postman_collection.json +89 -0
  356. package/docs/QA360_TESTING_PHILOSOPHY.md +769 -0
  357. package/docs/QA_TEST_PLAN.md +727 -0
  358. package/docs/README.md +50 -0
  359. package/docs/STATUS.md +198 -0
  360. package/docs/STRATEGIC_STUDY_GOOSE_INTEGRATION.md +615 -0
  361. package/docs/USER_GUIDE.md +687 -0
  362. package/docs/WORK-DONE-ADAPTER-TESTS.md +136 -0
  363. package/docs/adapters-security.md +485 -0
  364. package/docs/architecture-diagram.mmd +168 -0
  365. package/docs/archive/ARCH-01-DAY6-BUILD-FIXES.md +396 -0
  366. package/docs/archive/ARCH-01-DAY6-FINAL-STATUS.md +324 -0
  367. package/docs/archive/ARCH-01_MCP_MERGE_ANALYSIS.md +644 -0
  368. package/docs/archive/ARCH-01_NEXT_STEPS.md +60 -0
  369. package/docs/archive/BRANCH_PROTECTION.md +183 -0
  370. package/docs/archive/CI_LOCKDOWN_CHECKLIST.md +222 -0
  371. package/docs/archive/HANDOFF_TEST-01.md +669 -0
  372. package/docs/archive/LEGAL_READY_PLACEHOLDERS.md +372 -0
  373. package/docs/archive/NODE_UPGRADE_GUIDE.md +188 -0
  374. package/docs/archive/PHASE1_COMPLETION.md +386 -0
  375. package/docs/archive/PHASE2_COMPLETION.md +404 -0
  376. package/docs/archive/PHASE3_AND_4_FINAL.md +360 -0
  377. package/docs/archive/PHASE3_COMPLETE.md +301 -0
  378. package/docs/archive/PHASE3_STATUS.md +255 -0
  379. package/docs/archive/PRE-WEEK2-AUDIT.md +364 -0
  380. package/docs/archive/README.md +16 -0
  381. package/docs/archive/SCHEMA_AJV_2020_FIX.md +245 -0
  382. package/docs/archive/TEST-01_AUDIT_REPORT.md +240 -0
  383. package/docs/archive/TEST-01_COVERAGE_PLAN.md +423 -0
  384. package/docs/archive/obsolete-proposals/dom-element-discovery-mode.md +250 -0
  385. package/docs/archive/obsolete-proposals/qa360-comprehensive-test-plan.md +1249 -0
  386. package/docs/archive/obsolete-proposals/qa360-quick-start-guide.md +298 -0
  387. package/docs/archive/obsolete-proposals/technical-plan-dom-discovery.md +870 -0
  388. package/docs/budgets-advanced.md +308 -0
  389. package/docs/examples/history-export-gc.md +285 -0
  390. package/docs/examples/pack-v2-complete.yaml +158 -0
  391. package/docs/examples/pack-v2-quickstart.yaml +24 -0
  392. package/docs/examples/pack-v2-ui-login.yaml +81 -0
  393. package/docs/examples/qa360-report.json +50 -0
  394. package/docs/history.md +565 -0
  395. package/docs/hooks.md +304 -0
  396. package/docs/llm-providers.md +512 -0
  397. package/docs/mcp-server.md +651 -0
  398. package/docs/mcp-tools.md +1131 -0
  399. package/docs/pack-v1.md +383 -0
  400. package/docs/pack-v2.md +558 -0
  401. package/docs/page-objects.md +366 -0
  402. package/docs/proofs.md +670 -0
  403. package/docs/quickstart-5min.md +257 -0
  404. package/docs/readiness-ci.md +654 -0
  405. package/docs/rfc/README.md +20 -0
  406. package/docs/rfc/proof-bundle-v1.md +787 -0
  407. package/docs/secrets.md +392 -0
  408. package/docs/serve.md +494 -0
  409. package/docs/unit-test-adapters.md +168 -0
  410. package/docs/vault.md +491 -0
  411. package/e2e/qa360-e2e.test.ts +696 -0
  412. package/e2e/vitest.config.ts +18 -0
  413. package/examples/README.md +30 -140
  414. package/examples/ci/docker-compose-serve.yml +375 -0
  415. package/examples/ci/github-actions-serve.yml +345 -0
  416. package/examples/ci/gitlab-ci-serve.yml +407 -0
  417. package/examples/datasets/README.md +101 -0
  418. package/examples/datasets/b2bshop.ts +155 -0
  419. package/examples/datasets/index.ts +57 -0
  420. package/examples/datasets/reqres.ts +195 -0
  421. package/examples/fixtures-demo/fixtures/users.yml +39 -0
  422. package/examples/fixtures-demo/pack.yml +71 -0
  423. package/examples/future-api/README.md +16 -0
  424. package/examples/future-api/diag.js +7 -0
  425. package/examples/future-api/health.js +4 -0
  426. package/examples/future-api/packs.js +13 -0
  427. package/examples/future-api/runpack.js +10 -0
  428. package/examples/generation/README.md +148 -0
  429. package/examples/generation/pack-generator-example.js +115 -0
  430. package/examples/generation/source-analyzer-example.js +115 -0
  431. package/examples/httpbin/pack.yml +59 -0
  432. package/examples/load-testing/mcp-load.yml +115 -0
  433. package/examples/load-testing/mcp-stdio.yml +95 -0
  434. package/examples/mcp/claude-desktop-config.json +33 -0
  435. package/examples/mcp/claude-desktop.json +16 -0
  436. package/examples/mcp/conversation-sample.md +131 -0
  437. package/examples/mcp/demo-60s.md +330 -0
  438. package/examples/mcp/sample-conversation.jsonl +21 -0
  439. package/examples/mcp/vscode-settings.json +22 -0
  440. package/examples/pack-v2-complete.yml +242 -0
  441. package/examples/pack-v2-examples.md +244 -0
  442. package/examples/pack-v2-quickstart.yml +55 -0
  443. package/examples/packs-business/ecommerce-api.yml +121 -0
  444. package/examples/packs-business/saas-dashboard-ui.yml +133 -0
  445. package/examples/packs-conformance/compose-multi.yml +174 -0
  446. package/examples/packs-conformance/full.yml +152 -0
  447. package/examples/packs-conformance/heavy-artifacts.yml +152 -0
  448. package/examples/packs-conformance/minimal.yml +71 -0
  449. package/examples/packs-conformance/secrets-missing.yml +97 -0
  450. package/examples/packs-conformance/timeouts.yml +77 -0
  451. package/examples/pom-demo/README.md +104 -0
  452. package/examples/pom-demo/pack.yml +60 -0
  453. package/examples/pom-demo/pages/DashboardPage.page.ts +73 -0
  454. package/examples/pom-demo/pages/LoginPage.page.ts +76 -0
  455. package/examples/proofs/e2e-playwright-proof.json +75 -0
  456. package/examples/proofs/httpbin-proof.json +69 -0
  457. package/examples/proofs/multi-adapter-proof.json +117 -0
  458. package/examples/proofs/test-proof.json +26 -0
  459. package/examples/restful-api-dev/README.md +102 -0
  460. package/examples/restful-api-dev/restful-api-advanced.yml +29 -0
  461. package/examples/restful-api-dev/restful-api-basic.yml +29 -0
  462. package/examples/web-lite/.github/workflows/qa360-phase3.yml +73 -0
  463. package/examples/web-lite/api-mock/server.js +258 -0
  464. package/examples/web-lite/pack.yml +71 -0
  465. package/examples/web-lite/services.yml +43 -0
  466. package/examples/web-lite/web-content/healthz +1 -0
  467. package/examples/web-lite/web-content/index.html +259 -0
  468. package/package.json +55 -45
  469. package/packages/mcp/CHANGELOG.md +109 -0
  470. package/packages/mcp/IMPLEMENTATION_SUMMARY.md +350 -0
  471. package/packages/mcp/LICENSE +21 -0
  472. package/packages/mcp/QUICK_START.md +291 -0
  473. package/packages/mcp/README.md +294 -0
  474. package/packages/mcp/TELEMETRY.md +220 -0
  475. package/packages/mcp/package.json +91 -0
  476. package/packages/mcp/scripts/generate-sbom-fallback.cjs +84 -0
  477. package/packages/mcp/scripts/safe-postinstall.cjs +32 -0
  478. package/packages/mcp/src/__tests__/contract.test.ts +902 -0
  479. package/packages/mcp/src/cli/cli.ts +137 -0
  480. package/packages/mcp/src/cli/doctor.ts +286 -0
  481. package/packages/mcp/src/cli/fix.ts +99 -0
  482. package/packages/mcp/src/cli/init.ts +233 -0
  483. package/packages/mcp/src/cli/postinstall.ts +14 -0
  484. package/packages/mcp/src/cli/reset.ts +44 -0
  485. package/packages/mcp/src/cli/telemetry.ts +166 -0
  486. package/packages/mcp/src/cli/test-dx.ts +94 -0
  487. package/packages/mcp/src/cli/uninstall.ts +80 -0
  488. package/packages/mcp/src/cli/up.ts +178 -0
  489. package/packages/mcp/src/index.ts +12 -0
  490. package/packages/mcp/src/scripts/e2e-local.ts +337 -0
  491. package/packages/mcp/src/scripts/verify-settings.ts +242 -0
  492. package/packages/mcp/src/security/audit.ts +244 -0
  493. package/packages/mcp/src/security/manager.ts +242 -0
  494. package/packages/mcp/src/server/full-server.ts +212 -0
  495. package/packages/mcp/src/server/minimal-server.ts +134 -0
  496. package/packages/mcp/src/tools/history.ts +388 -0
  497. package/packages/mcp/src/tools/pack.ts +449 -0
  498. package/packages/mcp/src/tools/registry.ts +638 -0
  499. package/packages/mcp/src/tools/report.ts +100 -0
  500. package/packages/mcp/src/tools/run.ts +268 -0
  501. package/packages/mcp/src/tools/secrets.ts +198 -0
  502. package/packages/mcp/src/tools/serve.ts +221 -0
  503. package/packages/mcp/src/tools/triage.ts +532 -0
  504. package/packages/mcp/src/tools/types.ts +26 -0
  505. package/packages/mcp/src/tools/vault.ts +164 -0
  506. package/packages/mcp/src/tools/verify.ts +166 -0
  507. package/packages/mcp/src/types/index.ts +311 -0
  508. package/packages/mcp/src/types/mcp-stubs.ts +83 -0
  509. package/packages/mcp/tsconfig.json +16 -0
  510. package/playwright.config.ts +20 -0
  511. package/pnpm-workspace.yaml +4 -0
  512. package/run-test-and-push.sh +20 -0
  513. package/scripts/build-proof-cli.sh +110 -0
  514. package/scripts/ci/check-windows-paths.js +92 -0
  515. package/scripts/ci/invariants.sh +124 -0
  516. package/scripts/ci/make-final-bundle.js +106 -0
  517. package/scripts/ci/mcp-run-multipack.js +305 -0
  518. package/scripts/ci/run-pack-suite.sh +103 -0
  519. package/scripts/ci/run-phase7-final.sh +190 -0
  520. package/scripts/ci/slo-assert.js +158 -0
  521. package/scripts/ci/test-fault-tolerance.sh +301 -0
  522. package/scripts/install-mcp.sh +66 -0
  523. package/scripts/mcp-smoke.mjs +27 -0
  524. package/scripts/smoke.sh +26 -0
  525. package/scripts/stress-test.js +288 -0
  526. package/scripts/sync-version.mjs +50 -0
  527. package/scripts/validate-examples.mjs +404 -0
  528. package/scripts/validation/simple-pack-check.sh +51 -0
  529. package/scripts/validation/validate-universal-pack.mjs +77 -0
  530. package/scripts/verify-persistence.js +127 -0
  531. package/test-pack.yaml +43 -0
  532. package/test-results/.last-run.json +4 -0
  533. package/test-runner.mjs +87 -0
  534. package/tests/artifacts.spec.js +147 -0
  535. package/tests/contracts.spec.js +239 -0
  536. package/tests/e2e/assertions.test.mjs +370 -0
  537. package/tests/e2e/crawler.test.mjs +451 -0
  538. package/tests/e2e/playwright-plus-plus.test.mjs +604 -0
  539. package/tests/e2e/proof-bundle.test.mjs +258 -0
  540. package/tests/e2e/real-world/saucedemo.test.mjs +714 -0
  541. package/tests/e2e/real-world/the-internet-herokuapp.test.mjs +760 -0
  542. package/tests/e2e/ui-actions.test.mjs +546 -0
  543. package/tests/gherkin.e2e.spec.ts +310 -0
  544. package/tests/no-console-errors.spec.js +136 -0
  545. package/tests/pdf.spec.ts +252 -0
  546. package/tests/run-pack.spec.ts +58 -0
  547. package/tsconfig.base.json +15 -0
  548. package/tsconfig.build.json +8 -0
  549. package/tsconfig.json +37 -0
  550. package/tsconfig.test.json +18 -0
  551. package/typedoc.json +37 -0
  552. package/ui/README.md +50 -0
  553. package/verify-proof.mjs +60 -0
  554. package/dist/cli-minimal.d.ts +0 -6
  555. package/dist/cli-minimal.js +0 -36
  556. package/dist/commands/ai.d.ts +0 -43
  557. package/dist/commands/ai.js +0 -616
  558. package/dist/commands/ask.d.ts +0 -94
  559. package/dist/commands/ask.js +0 -582
  560. package/dist/commands/coverage.d.ts +0 -8
  561. package/dist/commands/coverage.js +0 -252
  562. package/dist/commands/crawl.d.ts +0 -24
  563. package/dist/commands/crawl.js +0 -121
  564. package/dist/commands/doctor.d.ts +0 -54
  565. package/dist/commands/doctor.js +0 -513
  566. package/dist/commands/examples.d.ts +0 -33
  567. package/dist/commands/examples.js +0 -193
  568. package/dist/commands/explain.d.ts +0 -27
  569. package/dist/commands/explain.js +0 -630
  570. package/dist/commands/flakiness.d.ts +0 -73
  571. package/dist/commands/flakiness.js +0 -435
  572. package/dist/commands/generate.d.ts +0 -66
  573. package/dist/commands/generate.js +0 -438
  574. package/dist/commands/history.d.ts +0 -76
  575. package/dist/commands/history.js +0 -755
  576. package/dist/commands/init.d.ts +0 -106
  577. package/dist/commands/init.js +0 -616
  578. package/dist/commands/monitor.d.ts +0 -27
  579. package/dist/commands/monitor.js +0 -225
  580. package/dist/commands/ollama.d.ts +0 -40
  581. package/dist/commands/ollama.js +0 -301
  582. package/dist/commands/pack.d.ts +0 -70
  583. package/dist/commands/pack.js +0 -413
  584. package/dist/commands/regression.d.ts +0 -8
  585. package/dist/commands/regression.js +0 -340
  586. package/dist/commands/repair.d.ts +0 -26
  587. package/dist/commands/repair.js +0 -307
  588. package/dist/commands/report.d.ts +0 -62
  589. package/dist/commands/report.js +0 -378
  590. package/dist/commands/retry.d.ts +0 -43
  591. package/dist/commands/retry.js +0 -275
  592. package/dist/commands/run.d.ts +0 -41
  593. package/dist/commands/run.js +0 -169
  594. package/dist/commands/scan.d.ts +0 -5
  595. package/dist/commands/scan.js +0 -155
  596. package/dist/commands/secrets.d.ts +0 -58
  597. package/dist/commands/secrets.js +0 -289
  598. package/dist/commands/serve.d.ts +0 -13
  599. package/dist/commands/serve.js +0 -156
  600. package/dist/commands/slo.d.ts +0 -8
  601. package/dist/commands/slo.js +0 -327
  602. package/dist/commands/verify.d.ts +0 -32
  603. package/dist/commands/verify.js +0 -278
  604. package/dist/core/adapters/gitleaks-secrets.d.ts +0 -114
  605. package/dist/core/adapters/gitleaks-secrets.js +0 -410
  606. package/dist/core/adapters/k6-perf.d.ts +0 -85
  607. package/dist/core/adapters/k6-perf.js +0 -398
  608. package/dist/core/adapters/osv-deps.d.ts +0 -123
  609. package/dist/core/adapters/osv-deps.js +0 -372
  610. package/dist/core/adapters/playwright-native-adapter.d.ts +0 -121
  611. package/dist/core/adapters/playwright-native-adapter.js +0 -339
  612. package/dist/core/adapters/playwright-native-api.d.ts +0 -183
  613. package/dist/core/adapters/playwright-native-api.js +0 -465
  614. package/dist/core/adapters/playwright-ui.d.ts +0 -197
  615. package/dist/core/adapters/playwright-ui.js +0 -840
  616. package/dist/core/adapters/semgrep-sast.d.ts +0 -99
  617. package/dist/core/adapters/semgrep-sast.js +0 -322
  618. package/dist/core/adapters/zap-dast.d.ts +0 -133
  619. package/dist/core/adapters/zap-dast.js +0 -424
  620. package/dist/core/ai/anthropic-provider.d.ts +0 -50
  621. package/dist/core/ai/anthropic-provider.js +0 -223
  622. package/dist/core/ai/deepseek-provider.d.ts +0 -81
  623. package/dist/core/ai/deepseek-provider.js +0 -266
  624. package/dist/core/ai/index.d.ts +0 -60
  625. package/dist/core/ai/index.js +0 -18
  626. package/dist/core/ai/llm-client.d.ts +0 -45
  627. package/dist/core/ai/llm-client.js +0 -7
  628. package/dist/core/ai/mock-provider.d.ts +0 -49
  629. package/dist/core/ai/mock-provider.js +0 -121
  630. package/dist/core/ai/ollama-provider.d.ts +0 -78
  631. package/dist/core/ai/ollama-provider.js +0 -204
  632. package/dist/core/ai/openai-provider.d.ts +0 -48
  633. package/dist/core/ai/openai-provider.js +0 -200
  634. package/dist/core/ai/provider-factory.d.ts +0 -160
  635. package/dist/core/ai/provider-factory.js +0 -269
  636. package/dist/core/artifacts/index.d.ts +0 -6
  637. package/dist/core/artifacts/index.js +0 -6
  638. package/dist/core/artifacts/ui-artifacts.d.ts +0 -133
  639. package/dist/core/artifacts/ui-artifacts.js +0 -304
  640. package/dist/core/assertions/engine.d.ts +0 -51
  641. package/dist/core/assertions/engine.js +0 -530
  642. package/dist/core/assertions/index.d.ts +0 -11
  643. package/dist/core/assertions/index.js +0 -11
  644. package/dist/core/assertions/types.d.ts +0 -121
  645. package/dist/core/assertions/types.js +0 -37
  646. package/dist/core/auth/api-key-provider.d.ts +0 -16
  647. package/dist/core/auth/api-key-provider.js +0 -63
  648. package/dist/core/auth/aws-iam-provider.d.ts +0 -35
  649. package/dist/core/auth/aws-iam-provider.js +0 -177
  650. package/dist/core/auth/azure-ad-provider.d.ts +0 -15
  651. package/dist/core/auth/azure-ad-provider.js +0 -99
  652. package/dist/core/auth/basic-auth-provider.d.ts +0 -26
  653. package/dist/core/auth/basic-auth-provider.js +0 -111
  654. package/dist/core/auth/gcp-adc-provider.d.ts +0 -27
  655. package/dist/core/auth/gcp-adc-provider.js +0 -126
  656. package/dist/core/auth/index.d.ts +0 -238
  657. package/dist/core/auth/index.js +0 -82
  658. package/dist/core/auth/jwt-provider.d.ts +0 -19
  659. package/dist/core/auth/jwt-provider.js +0 -160
  660. package/dist/core/auth/manager.d.ts +0 -84
  661. package/dist/core/auth/manager.js +0 -230
  662. package/dist/core/auth/oauth2-provider.d.ts +0 -17
  663. package/dist/core/auth/oauth2-provider.js +0 -114
  664. package/dist/core/auth/totp-provider.d.ts +0 -31
  665. package/dist/core/auth/totp-provider.js +0 -134
  666. package/dist/core/auth/ui-login-provider.d.ts +0 -26
  667. package/dist/core/auth/ui-login-provider.js +0 -198
  668. package/dist/core/cache/index.d.ts +0 -7
  669. package/dist/core/cache/index.js +0 -6
  670. package/dist/core/cache/lru-cache.d.ts +0 -203
  671. package/dist/core/cache/lru-cache.js +0 -397
  672. package/dist/core/core/coverage/analyzer.d.ts +0 -101
  673. package/dist/core/core/coverage/analyzer.js +0 -415
  674. package/dist/core/core/coverage/collector.d.ts +0 -74
  675. package/dist/core/core/coverage/collector.js +0 -459
  676. package/dist/core/core/coverage/config.d.ts +0 -37
  677. package/dist/core/core/coverage/config.js +0 -156
  678. package/dist/core/core/coverage/index.d.ts +0 -11
  679. package/dist/core/core/coverage/index.js +0 -15
  680. package/dist/core/core/coverage/types.d.ts +0 -267
  681. package/dist/core/core/coverage/types.js +0 -6
  682. package/dist/core/core/coverage/vault.d.ts +0 -95
  683. package/dist/core/core/coverage/vault.js +0 -405
  684. package/dist/core/coverage/analyzer.d.ts +0 -101
  685. package/dist/core/coverage/analyzer.js +0 -415
  686. package/dist/core/coverage/collector.d.ts +0 -74
  687. package/dist/core/coverage/collector.js +0 -459
  688. package/dist/core/coverage/config.d.ts +0 -37
  689. package/dist/core/coverage/config.js +0 -156
  690. package/dist/core/coverage/index.d.ts +0 -11
  691. package/dist/core/coverage/index.js +0 -15
  692. package/dist/core/coverage/types.d.ts +0 -267
  693. package/dist/core/coverage/types.js +0 -6
  694. package/dist/core/coverage/vault.d.ts +0 -95
  695. package/dist/core/coverage/vault.js +0 -405
  696. package/dist/core/crawler/index.d.ts +0 -57
  697. package/dist/core/crawler/index.js +0 -281
  698. package/dist/core/crawler/journey-generator.d.ts +0 -49
  699. package/dist/core/crawler/journey-generator.js +0 -412
  700. package/dist/core/crawler/page-analyzer.d.ts +0 -88
  701. package/dist/core/crawler/page-analyzer.js +0 -709
  702. package/dist/core/crawler/selector-generator.d.ts +0 -34
  703. package/dist/core/crawler/selector-generator.js +0 -240
  704. package/dist/core/crawler/types.d.ts +0 -353
  705. package/dist/core/crawler/types.js +0 -6
  706. package/dist/core/dashboard/assets.d.ts +0 -6
  707. package/dist/core/dashboard/assets.js +0 -690
  708. package/dist/core/dashboard/index.d.ts +0 -6
  709. package/dist/core/dashboard/index.js +0 -5
  710. package/dist/core/dashboard/server.d.ts +0 -72
  711. package/dist/core/dashboard/server.js +0 -354
  712. package/dist/core/dashboard/types.d.ts +0 -70
  713. package/dist/core/dashboard/types.js +0 -5
  714. package/dist/core/discoverer/index.d.ts +0 -115
  715. package/dist/core/discoverer/index.js +0 -250
  716. package/dist/core/flakiness/index.d.ts +0 -228
  717. package/dist/core/flakiness/index.js +0 -384
  718. package/dist/core/generation/code-formatter.d.ts +0 -111
  719. package/dist/core/generation/code-formatter.js +0 -307
  720. package/dist/core/generation/code-generator.d.ts +0 -144
  721. package/dist/core/generation/code-generator.js +0 -293
  722. package/dist/core/generation/crawler-pack-generator.d.ts +0 -44
  723. package/dist/core/generation/crawler-pack-generator.js +0 -231
  724. package/dist/core/generation/generator.d.ts +0 -40
  725. package/dist/core/generation/generator.js +0 -76
  726. package/dist/core/generation/index.d.ts +0 -32
  727. package/dist/core/generation/index.js +0 -30
  728. package/dist/core/generation/pack-generator.d.ts +0 -107
  729. package/dist/core/generation/pack-generator.js +0 -416
  730. package/dist/core/generation/prompt-builder.d.ts +0 -132
  731. package/dist/core/generation/prompt-builder.js +0 -672
  732. package/dist/core/generation/source-analyzer.d.ts +0 -213
  733. package/dist/core/generation/source-analyzer.js +0 -657
  734. package/dist/core/generation/test-optimizer.d.ts +0 -117
  735. package/dist/core/generation/test-optimizer.js +0 -328
  736. package/dist/core/generation/types.d.ts +0 -214
  737. package/dist/core/generation/types.js +0 -4
  738. package/dist/core/hooks/compose.d.ts +0 -61
  739. package/dist/core/hooks/compose.js +0 -225
  740. package/dist/core/hooks/runner.d.ts +0 -68
  741. package/dist/core/hooks/runner.js +0 -303
  742. package/dist/core/index.d.ts +0 -104
  743. package/dist/core/index.js +0 -91
  744. package/dist/core/pack/migrator.d.ts +0 -51
  745. package/dist/core/pack/migrator.js +0 -304
  746. package/dist/core/pack/validator.d.ts +0 -42
  747. package/dist/core/pack/validator.js +0 -322
  748. package/dist/core/pack-v2/index.d.ts +0 -9
  749. package/dist/core/pack-v2/index.js +0 -8
  750. package/dist/core/pack-v2/loader.d.ts +0 -63
  751. package/dist/core/pack-v2/loader.js +0 -292
  752. package/dist/core/pack-v2/migrator.d.ts +0 -61
  753. package/dist/core/pack-v2/migrator.js +0 -480
  754. package/dist/core/pack-v2/validator.d.ts +0 -61
  755. package/dist/core/pack-v2/validator.js +0 -577
  756. package/dist/core/parallel/index.d.ts +0 -6
  757. package/dist/core/parallel/index.js +0 -6
  758. package/dist/core/parallel/parallel-runner.d.ts +0 -107
  759. package/dist/core/parallel/parallel-runner.js +0 -192
  760. package/dist/core/proof/bundle.d.ts +0 -137
  761. package/dist/core/proof/bundle.js +0 -160
  762. package/dist/core/proof/canonicalize.d.ts +0 -47
  763. package/dist/core/proof/canonicalize.js +0 -105
  764. package/dist/core/proof/index.d.ts +0 -13
  765. package/dist/core/proof/index.js +0 -18
  766. package/dist/core/proof/schema.d.ts +0 -217
  767. package/dist/core/proof/schema.js +0 -263
  768. package/dist/core/proof/signer.d.ts +0 -111
  769. package/dist/core/proof/signer.js +0 -226
  770. package/dist/core/proof/verifier.d.ts +0 -97
  771. package/dist/core/proof/verifier.js +0 -308
  772. package/dist/core/regression/detector.d.ts +0 -107
  773. package/dist/core/regression/detector.js +0 -497
  774. package/dist/core/regression/index.d.ts +0 -9
  775. package/dist/core/regression/index.js +0 -11
  776. package/dist/core/regression/trend-analyzer.d.ts +0 -102
  777. package/dist/core/regression/trend-analyzer.js +0 -345
  778. package/dist/core/regression/types.d.ts +0 -222
  779. package/dist/core/regression/types.js +0 -7
  780. package/dist/core/regression/vault.d.ts +0 -87
  781. package/dist/core/regression/vault.js +0 -289
  782. package/dist/core/repair/engine/fixer.d.ts +0 -24
  783. package/dist/core/repair/engine/fixer.js +0 -226
  784. package/dist/core/repair/engine/suggestion-engine.d.ts +0 -18
  785. package/dist/core/repair/engine/suggestion-engine.js +0 -187
  786. package/dist/core/repair/index.d.ts +0 -10
  787. package/dist/core/repair/index.js +0 -13
  788. package/dist/core/repair/repairer.d.ts +0 -90
  789. package/dist/core/repair/repairer.js +0 -284
  790. package/dist/core/repair/types.d.ts +0 -91
  791. package/dist/core/repair/types.js +0 -6
  792. package/dist/core/repair/utils/error-analyzer.d.ts +0 -28
  793. package/dist/core/repair/utils/error-analyzer.js +0 -264
  794. package/dist/core/reporting/html-reporter.d.ts +0 -119
  795. package/dist/core/reporting/html-reporter.js +0 -737
  796. package/dist/core/reporting/index.d.ts +0 -6
  797. package/dist/core/reporting/index.js +0 -6
  798. package/dist/core/retry/flakiness-integration.d.ts +0 -60
  799. package/dist/core/retry/flakiness-integration.js +0 -228
  800. package/dist/core/retry/index.d.ts +0 -14
  801. package/dist/core/retry/index.js +0 -16
  802. package/dist/core/retry/retry-engine.d.ts +0 -80
  803. package/dist/core/retry/retry-engine.js +0 -296
  804. package/dist/core/retry/types.d.ts +0 -178
  805. package/dist/core/retry/types.js +0 -52
  806. package/dist/core/retry/vault.d.ts +0 -77
  807. package/dist/core/retry/vault.js +0 -304
  808. package/dist/core/runner/e2e-helpers.d.ts +0 -102
  809. package/dist/core/runner/e2e-helpers.js +0 -153
  810. package/dist/core/runner/phase3-runner.d.ts +0 -200
  811. package/dist/core/runner/phase3-runner.js +0 -1041
  812. package/dist/core/secrets/crypto.d.ts +0 -75
  813. package/dist/core/secrets/crypto.js +0 -223
  814. package/dist/core/secrets/manager.d.ts +0 -76
  815. package/dist/core/secrets/manager.js +0 -219
  816. package/dist/core/security/redaction-patterns-extended.d.ts +0 -27
  817. package/dist/core/security/redaction-patterns-extended.js +0 -247
  818. package/dist/core/security/redactor.d.ts +0 -71
  819. package/dist/core/security/redactor.js +0 -279
  820. package/dist/core/self-healing/assertion-healer.d.ts +0 -97
  821. package/dist/core/self-healing/assertion-healer.js +0 -371
  822. package/dist/core/self-healing/engine.d.ts +0 -122
  823. package/dist/core/self-healing/engine.js +0 -538
  824. package/dist/core/self-healing/index.d.ts +0 -10
  825. package/dist/core/self-healing/index.js +0 -11
  826. package/dist/core/self-healing/selector-healer.d.ts +0 -103
  827. package/dist/core/self-healing/selector-healer.js +0 -372
  828. package/dist/core/self-healing/types.d.ts +0 -152
  829. package/dist/core/self-healing/types.js +0 -6
  830. package/dist/core/serve/diagnostics-collector.d.ts +0 -32
  831. package/dist/core/serve/diagnostics-collector.js +0 -149
  832. package/dist/core/serve/health-checker.d.ts +0 -44
  833. package/dist/core/serve/health-checker.js +0 -219
  834. package/dist/core/serve/index.d.ts +0 -8
  835. package/dist/core/serve/index.js +0 -8
  836. package/dist/core/serve/metrics-collector.d.ts +0 -24
  837. package/dist/core/serve/metrics-collector.js +0 -322
  838. package/dist/core/serve/process-manager.d.ts +0 -36
  839. package/dist/core/serve/process-manager.js +0 -213
  840. package/dist/core/serve/server.d.ts +0 -36
  841. package/dist/core/serve/server.js +0 -191
  842. package/dist/core/slo/config.d.ts +0 -107
  843. package/dist/core/slo/config.js +0 -360
  844. package/dist/core/slo/index.d.ts +0 -11
  845. package/dist/core/slo/index.js +0 -15
  846. package/dist/core/slo/sli-calculator.d.ts +0 -92
  847. package/dist/core/slo/sli-calculator.js +0 -364
  848. package/dist/core/slo/slo-tracker.d.ts +0 -148
  849. package/dist/core/slo/slo-tracker.js +0 -379
  850. package/dist/core/slo/types.d.ts +0 -281
  851. package/dist/core/slo/types.js +0 -7
  852. package/dist/core/slo/vault.d.ts +0 -102
  853. package/dist/core/slo/vault.js +0 -427
  854. package/dist/core/tui/index.d.ts +0 -7
  855. package/dist/core/tui/index.js +0 -6
  856. package/dist/core/tui/monitor.d.ts +0 -92
  857. package/dist/core/tui/monitor.js +0 -271
  858. package/dist/core/tui/renderer.d.ts +0 -33
  859. package/dist/core/tui/renderer.js +0 -218
  860. package/dist/core/tui/types.d.ts +0 -63
  861. package/dist/core/tui/types.js +0 -5
  862. package/dist/core/types/pack-v1.d.ts +0 -251
  863. package/dist/core/types/pack-v1.js +0 -5
  864. package/dist/core/types/pack-v2.d.ts +0 -425
  865. package/dist/core/types/pack-v2.js +0 -8
  866. package/dist/core/types/trust-score.d.ts +0 -69
  867. package/dist/core/types/trust-score.js +0 -191
  868. package/dist/core/vault/cas.d.ts +0 -90
  869. package/dist/core/vault/cas.js +0 -261
  870. package/dist/core/vault/index.d.ts +0 -326
  871. package/dist/core/vault/index.js +0 -1042
  872. package/dist/core/visual/index.d.ts +0 -6
  873. package/dist/core/visual/index.js +0 -6
  874. package/dist/core/visual/visual-regression.d.ts +0 -113
  875. package/dist/core/visual/visual-regression.js +0 -236
  876. package/dist/core/watch/index.d.ts +0 -7
  877. package/dist/core/watch/index.js +0 -6
  878. package/dist/core/watch/watch-mode.d.ts +0 -213
  879. package/dist/core/watch/watch-mode.js +0 -389
  880. package/dist/generators/index.d.ts +0 -5
  881. package/dist/generators/index.js +0 -5
  882. package/dist/generators/json-reporter.d.ts +0 -10
  883. package/dist/generators/json-reporter.js +0 -12
  884. package/dist/generators/test-generator.d.ts +0 -18
  885. package/dist/generators/test-generator.js +0 -78
  886. package/dist/index.d.ts +0 -8
  887. package/dist/index.js +0 -246
  888. package/dist/scanners/dom-scanner.d.ts +0 -52
  889. package/dist/scanners/dom-scanner.js +0 -296
  890. package/dist/scanners/index.d.ts +0 -4
  891. package/dist/scanners/index.js +0 -4
  892. package/dist/schemas/pack.schema.json +0 -236
  893. package/dist/types/scan.d.ts +0 -68
  894. package/dist/types/scan.js +0 -4
  895. package/dist/utils/config.d.ts +0 -5
  896. package/dist/utils/config.js +0 -136
  897. /package/{bin → cli/bin}/qa360.js +0 -0
  898. /package/{examples → cli/examples}/accessibility.yml +0 -0
  899. /package/{examples → cli/examples}/api-basic.yml +0 -0
  900. /package/{examples → cli/examples}/complete.yml +0 -0
  901. /package/{examples → cli/examples}/crawler.yml +0 -0
  902. /package/{examples → cli/examples}/fullstack.yml +0 -0
  903. /package/{examples → cli/examples}/security.yml +0 -0
  904. /package/{examples → cli/examples}/ui-advanced.yml +0 -0
  905. /package/{examples → cli/examples}/ui-basic.yml +0 -0
  906. /package/{dist/core → core}/schemas/pack.schema.json +0 -0
@@ -0,0 +1,1131 @@
1
+ # QA360 MCP Tools Reference
2
+
3
+ ## Overview
4
+
5
+ This document provides detailed specifications for all QA360 MCP tools, including argument schemas, return types, error codes, and usage examples.
6
+
7
+ ## Tool Categories
8
+
9
+ - [Core Execution](#core-execution-tools)
10
+ - [History & Analytics](#history--analytics-tools)
11
+ - [Pack Management](#pack-management-tools)
12
+ - [Secrets Management](#secrets-management-tools)
13
+ - [Server & Vault](#server--vault-tools)
14
+ - [Triage & Support](#triage--support-tools)
15
+
16
+ ---
17
+
18
+ ## Core Execution Tools
19
+
20
+ ### qa360.run
21
+
22
+ Execute a QA360 pack and return comprehensive results.
23
+
24
+ **Permission Required:** `--allow-run`
25
+
26
+ **Arguments Schema:**
27
+ ```json
28
+ {
29
+ "type": "object",
30
+ "properties": {
31
+ "packPath": {
32
+ "type": "string",
33
+ "description": "Path to the QA360 pack file",
34
+ "pattern": "^[^\\0]+\\.(yml|yaml)$"
35
+ },
36
+ "runKey": {
37
+ "type": "string",
38
+ "description": "Unique key for idempotent runs",
39
+ "pattern": "^[a-zA-Z0-9:._-]+$",
40
+ "maxLength": 100
41
+ },
42
+ "strict": {
43
+ "type": "boolean",
44
+ "description": "Enable strict mode validation",
45
+ "default": true
46
+ },
47
+ "weights": {
48
+ "type": "object",
49
+ "description": "Custom weights for trust score calculation",
50
+ "additionalProperties": {
51
+ "type": "number",
52
+ "minimum": 0,
53
+ "maximum": 1
54
+ }
55
+ }
56
+ },
57
+ "required": ["packPath"]
58
+ }
59
+ ```
60
+
61
+ **Return Type:**
62
+ ```json
63
+ {
64
+ "runId": "string",
65
+ "status": "passed|failed|cancelled|error",
66
+ "trust": {
67
+ "score": "number (0-100)",
68
+ "weights": "object"
69
+ },
70
+ "proof": {
71
+ "pdf": {
72
+ "sha256": "string",
73
+ "path": "string"
74
+ }
75
+ },
76
+ "gates": [
77
+ {
78
+ "name": "string",
79
+ "status": "string",
80
+ "duration_ms": "number",
81
+ "key_metrics": "object"
82
+ }
83
+ ]
84
+ }
85
+ ```
86
+
87
+ **Example Usage:**
88
+ ```json
89
+ {
90
+ "packPath": "./security-pack.yml",
91
+ "runKey": "ci:security:v1.2.0",
92
+ "strict": true,
93
+ "weights": {
94
+ "security": 0.4,
95
+ "performance": 0.3,
96
+ "ui": 0.3
97
+ }
98
+ }
99
+ ```
100
+
101
+ **Error Codes:**
102
+ - `QA360_PERMISSION_DENIED`: Requires --allow-run flag
103
+ - `QA360_PACK_NOT_FOUND`: Pack file doesn't exist
104
+ - `QA360_PACK_INVALID`: Pack validation failed
105
+ - `QA360_EXECUTION_FAILED`: Test execution error
106
+
107
+ ---
108
+
109
+ ### qa360.report.sign
110
+
111
+ Sign a test report with Ed25519 cryptographic signature.
112
+
113
+ **Arguments Schema:**
114
+ ```json
115
+ {
116
+ "type": "object",
117
+ "properties": {
118
+ "runId": {
119
+ "type": "string",
120
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
121
+ }
122
+ },
123
+ "required": ["runId"]
124
+ }
125
+ ```
126
+
127
+ **Return Type:**
128
+ ```json
129
+ {
130
+ "signature": "string",
131
+ "algorithm": "ed25519",
132
+ "runId": "string"
133
+ }
134
+ ```
135
+
136
+ **Error Codes:**
137
+ - `QA360_RUN_NOT_FOUND`: Run ID doesn't exist
138
+ - `QA360_ALREADY_SIGNED`: Run already has signature
139
+ - `QA360_SIGNING_FAILED`: Cryptographic signing error
140
+
141
+ ---
142
+
143
+ ### qa360.verify
144
+
145
+ Verify proof integrity and cryptographic signature.
146
+
147
+ **Arguments Schema:**
148
+ ```json
149
+ {
150
+ "type": "object",
151
+ "properties": {
152
+ "runId": {
153
+ "type": "string",
154
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
155
+ },
156
+ "proofPath": {
157
+ "type": "string",
158
+ "description": "Path to proof file"
159
+ }
160
+ }
161
+ }
162
+ ```
163
+
164
+ **Return Type:**
165
+ ```json
166
+ {
167
+ "verified": "boolean",
168
+ "algorithm": "string",
169
+ "message": "string",
170
+ "runId": "string"
171
+ }
172
+ ```
173
+
174
+ **Error Codes:**
175
+ - `QA360_INVALID_ARGUMENTS`: Neither runId nor proofPath provided
176
+ - `QA360_RUN_NOT_FOUND`: Run doesn't exist
177
+ - `QA360_PROOF_NOT_FOUND`: Proof file doesn't exist
178
+ - `QA360_VERIFICATION_FAILED`: Signature verification failed
179
+
180
+ ---
181
+
182
+ ## History & Analytics Tools
183
+
184
+ ### qa360.history.list
185
+
186
+ List test runs with comprehensive filtering options.
187
+
188
+ **Arguments Schema:**
189
+ ```json
190
+ {
191
+ "type": "object",
192
+ "properties": {
193
+ "limit": {
194
+ "type": "integer",
195
+ "minimum": 1,
196
+ "maximum": 100,
197
+ "default": 20
198
+ },
199
+ "status": {
200
+ "type": "string",
201
+ "enum": ["passed", "failed", "error", "cancelled", "any"],
202
+ "default": "any"
203
+ },
204
+ "gate": {
205
+ "type": "string",
206
+ "pattern": "^[a-zA-Z0-9_-]+$"
207
+ },
208
+ "since": {
209
+ "type": "string",
210
+ "format": "date-time"
211
+ }
212
+ }
213
+ }
214
+ ```
215
+
216
+ **Return Type:**
217
+ ```json
218
+ {
219
+ "runs": [
220
+ {
221
+ "id": "string",
222
+ "started_at": "number",
223
+ "status": "string",
224
+ "trust_score": "number",
225
+ "gates_summary": "object"
226
+ }
227
+ ]
228
+ }
229
+ ```
230
+
231
+ **Example Usage:**
232
+ ```json
233
+ {
234
+ "limit": 10,
235
+ "status": "failed",
236
+ "gate": "security",
237
+ "since": "2025-01-01T00:00:00Z"
238
+ }
239
+ ```
240
+
241
+ ---
242
+
243
+ ### qa360.history.get
244
+
245
+ Get detailed information about a specific test run.
246
+
247
+ **Arguments Schema:**
248
+ ```json
249
+ {
250
+ "type": "object",
251
+ "properties": {
252
+ "runId": {
253
+ "type": "string",
254
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
255
+ }
256
+ },
257
+ "required": ["runId"]
258
+ }
259
+ ```
260
+
261
+ **Return Type:**
262
+ ```json
263
+ {
264
+ "run": {
265
+ "id": "string",
266
+ "started_at": "number",
267
+ "ended_at": "number",
268
+ "status": "string",
269
+ "trust_score": "number",
270
+ "pack_path": "string",
271
+ "pack_hash": "string",
272
+ "run_key": "string"
273
+ },
274
+ "gates": [
275
+ {
276
+ "name": "string",
277
+ "status": "string",
278
+ "duration_ms": "number",
279
+ "metrics": "object"
280
+ }
281
+ ],
282
+ "findings": [
283
+ {
284
+ "gate": "string",
285
+ "severity": "string",
286
+ "rule": "string",
287
+ "location": "string",
288
+ "message": "string"
289
+ }
290
+ ],
291
+ "artifacts": [
292
+ {
293
+ "label": "string",
294
+ "sha256": "string",
295
+ "mime_type": "string",
296
+ "size_bytes": "number"
297
+ }
298
+ ]
299
+ }
300
+ ```
301
+
302
+ ---
303
+
304
+ ### qa360.history.diff
305
+
306
+ Compare two test runs to identify changes and regressions.
307
+
308
+ **Arguments Schema:**
309
+ ```json
310
+ {
311
+ "type": "object",
312
+ "properties": {
313
+ "runA": {
314
+ "type": "string",
315
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
316
+ },
317
+ "runB": {
318
+ "type": "string",
319
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
320
+ }
321
+ },
322
+ "required": ["runA", "runB"]
323
+ }
324
+ ```
325
+
326
+ **Return Type:**
327
+ ```json
328
+ {
329
+ "delta": {
330
+ "trust": "number",
331
+ "gates": {
332
+ "gate_name": {
333
+ "status_change": "string",
334
+ "duration_change": "number"
335
+ }
336
+ },
337
+ "findings": {
338
+ "added": ["array"],
339
+ "removed": ["array"],
340
+ "regressed": ["array"]
341
+ }
342
+ }
343
+ }
344
+ ```
345
+
346
+ ---
347
+
348
+ ### qa360.history.trend
349
+
350
+ Analyze trends over time for performance and quality metrics.
351
+
352
+ **Arguments Schema:**
353
+ ```json
354
+ {
355
+ "type": "object",
356
+ "properties": {
357
+ "gate": {
358
+ "type": "string",
359
+ "enum": ["perf", "ui", "api", "a11y", "sast", "dast", "deps", "secrets"]
360
+ },
361
+ "window": {
362
+ "type": "integer",
363
+ "minimum": 5,
364
+ "maximum": 200,
365
+ "default": 20
366
+ }
367
+ }
368
+ }
369
+ ```
370
+
371
+ **Return Type:**
372
+ ```json
373
+ {
374
+ "series": [
375
+ {
376
+ "timestamp": "number",
377
+ "value": "number",
378
+ "metadata": "object"
379
+ }
380
+ ],
381
+ "summary": {
382
+ "average": "number",
383
+ "trend": "up|down|stable",
384
+ "window_size": "number"
385
+ }
386
+ }
387
+ ```
388
+
389
+ ---
390
+
391
+ ### qa360.history.export
392
+
393
+ Export a complete run bundle with all artifacts and metadata.
394
+
395
+ **Arguments Schema:**
396
+ ```json
397
+ {
398
+ "type": "object",
399
+ "properties": {
400
+ "runId": {
401
+ "type": "string",
402
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
403
+ },
404
+ "bundlePath": {
405
+ "type": "string",
406
+ "pattern": "^[^\\0]+\\.zip$"
407
+ }
408
+ },
409
+ "required": ["runId", "bundlePath"]
410
+ }
411
+ ```
412
+
413
+ **Return Type:**
414
+ ```json
415
+ {
416
+ "bundlePath": "string",
417
+ "size_bytes": "number",
418
+ "contents": ["array of strings"]
419
+ }
420
+ ```
421
+
422
+ ---
423
+
424
+ ### qa360.history.gc
425
+
426
+ Garbage collection to manage vault size and remove orphaned data.
427
+
428
+ **Arguments Schema:**
429
+ ```json
430
+ {
431
+ "type": "object",
432
+ "properties": {
433
+ "keepLast": {
434
+ "type": "integer",
435
+ "minimum": 1,
436
+ "maximum": 1000,
437
+ "default": 50
438
+ },
439
+ "maxBytes": {
440
+ "type": "string",
441
+ "pattern": "^\\d+(\\.\\d+)?(B|KB|MB|GB|TB)$"
442
+ },
443
+ "dryRun": {
444
+ "type": "boolean",
445
+ "default": false
446
+ }
447
+ }
448
+ }
449
+ ```
450
+
451
+ **Return Type:**
452
+ ```json
453
+ {
454
+ "removed": {
455
+ "runs": "number",
456
+ "artifacts": "number",
457
+ "bytesFreed": "number"
458
+ },
459
+ "dryRun": "boolean"
460
+ }
461
+ ```
462
+
463
+ ---
464
+
465
+ ### qa360.history.pin / qa360.history.unpin
466
+
467
+ Pin or unpin runs to protect them from garbage collection.
468
+
469
+ **Arguments Schema:**
470
+ ```json
471
+ {
472
+ "type": "object",
473
+ "properties": {
474
+ "runId": {
475
+ "type": "string",
476
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
477
+ }
478
+ },
479
+ "required": ["runId"]
480
+ }
481
+ ```
482
+
483
+ **Return Type:**
484
+ ```json
485
+ {
486
+ "success": "boolean",
487
+ "runId": "string",
488
+ "pinned": "boolean",
489
+ "message": "string"
490
+ }
491
+ ```
492
+
493
+ ---
494
+
495
+ ## Pack Management Tools
496
+
497
+ ### qa360.pack.ask
498
+
499
+ Generate a QA360 pack from natural language query using AI.
500
+
501
+ **Arguments Schema:**
502
+ ```json
503
+ {
504
+ "type": "object",
505
+ "properties": {
506
+ "query": {
507
+ "type": "string",
508
+ "minLength": 10,
509
+ "maxLength": 1000
510
+ },
511
+ "context": {
512
+ "type": "object",
513
+ "properties": {
514
+ "targets": "object"
515
+ }
516
+ }
517
+ },
518
+ "required": ["query"]
519
+ }
520
+ ```
521
+
522
+ **Return Type:**
523
+ ```json
524
+ {
525
+ "pack": "string (YAML)",
526
+ "hints": {
527
+ "tools_needed": ["array of strings"],
528
+ "estimated_duration": "string",
529
+ "complexity": "simple|medium|complex"
530
+ }
531
+ }
532
+ ```
533
+
534
+ **Example Usage:**
535
+ ```json
536
+ {
537
+ "query": "Test my e-commerce checkout flow for security vulnerabilities and performance under load",
538
+ "context": {
539
+ "targets": {
540
+ "url": "https://shop.example.com",
541
+ "checkout_url": "https://shop.example.com/checkout"
542
+ }
543
+ }
544
+ }
545
+ ```
546
+
547
+ ---
548
+
549
+ ### qa360.pack.validate
550
+
551
+ Validate a QA360 pack configuration against the schema.
552
+
553
+ **Arguments Schema:**
554
+ ```json
555
+ {
556
+ "type": "object",
557
+ "properties": {
558
+ "pack": {
559
+ "type": "string",
560
+ "description": "YAML pack content"
561
+ },
562
+ "path": {
563
+ "type": "string",
564
+ "description": "Path to pack file"
565
+ }
566
+ }
567
+ }
568
+ ```
569
+
570
+ **Return Type:**
571
+ ```json
572
+ {
573
+ "valid": "boolean",
574
+ "errors": [
575
+ {
576
+ "code": "string",
577
+ "message": "string",
578
+ "line": "number",
579
+ "column": "number"
580
+ }
581
+ ],
582
+ "warnings": [
583
+ {
584
+ "code": "string",
585
+ "message": "string",
586
+ "line": "number",
587
+ "column": "number"
588
+ }
589
+ ]
590
+ }
591
+ ```
592
+
593
+ **Validation Error Codes:**
594
+ - `PACK_EMPTY`: Pack file is empty or invalid YAML
595
+ - `PACK_NO_NAME`: Missing required name field
596
+ - `PACK_NO_VERSION`: Missing required version field
597
+ - `PACK_NO_GATES`: Missing or invalid gates configuration
598
+ - `GATE_INVALID`: Gate configuration is not an object
599
+ - `GATE_NO_ADAPTER`: Gate missing adapter specification
600
+ - `GATE_UNKNOWN_ADAPTER`: Unknown adapter type
601
+ - `BUDGET_INVALID_DURATION`: Invalid budget duration value
602
+
603
+ ---
604
+
605
+ ### qa360.pack.lint
606
+
607
+ Lint a QA360 pack and suggest improvements and best practices.
608
+
609
+ **Arguments Schema:** Same as `qa360.pack.validate`
610
+
611
+ **Return Type:** Same as `qa360.pack.validate` plus:
612
+ ```json
613
+ {
614
+ "auto_fixes": ["array of suggested fixes"]
615
+ }
616
+ ```
617
+
618
+ **Lint Warning Codes:**
619
+ - `PACK_NO_DESCRIPTION`: Consider adding description field
620
+ - `PACK_NO_METADATA`: Consider adding metadata section
621
+ - `PACK_TOO_MANY_GATES`: Too many gates, consider splitting
622
+ - `GATE_NAME_SPACES`: Gate names should use underscores/hyphens
623
+
624
+ ---
625
+
626
+ ### qa360.pack.migrate
627
+
628
+ Migrate a QA360 pack to the latest version format.
629
+
630
+ **Arguments Schema:** Same as `qa360.pack.validate`
631
+
632
+ **Return Type:** Same as `qa360.pack.lint`
633
+
634
+ **Migration Actions:**
635
+ - Update deprecated adapter names
636
+ - Add missing required fields
637
+ - Modernize configuration format
638
+ - Apply current best practices
639
+
640
+ ---
641
+
642
+ ## Secrets Management Tools
643
+
644
+ **All secrets tools require `--allow-secrets` flag**
645
+
646
+ ### qa360.secrets.add
647
+
648
+ Add a secret to the encrypted vault.
649
+
650
+ **Permission Required:** `--allow-secrets`
651
+
652
+ **Arguments Schema:**
653
+ ```json
654
+ {
655
+ "type": "object",
656
+ "properties": {
657
+ "name": {
658
+ "type": "string",
659
+ "pattern": "^[a-zA-Z0-9_-]+$",
660
+ "minLength": 1,
661
+ "maxLength": 100
662
+ },
663
+ "value": {
664
+ "type": "string",
665
+ "minLength": 1,
666
+ "maxLength": 10000
667
+ },
668
+ "description": {
669
+ "type": "string",
670
+ "maxLength": 500
671
+ }
672
+ },
673
+ "required": ["name", "value"]
674
+ }
675
+ ```
676
+
677
+ **Return Type:**
678
+ ```json
679
+ {
680
+ "success": "boolean",
681
+ "name": "string",
682
+ "message": "string",
683
+ "created_at": "number"
684
+ }
685
+ ```
686
+
687
+ ---
688
+
689
+ ### qa360.secrets.list
690
+
691
+ List all secrets with names and metadata (values redacted).
692
+
693
+ **Permission Required:** `--allow-secrets`
694
+
695
+ **Return Type:**
696
+ ```json
697
+ {
698
+ "secrets": [
699
+ {
700
+ "name": "string",
701
+ "description": "string",
702
+ "created_at": "number",
703
+ "last_used": "number"
704
+ }
705
+ ]
706
+ }
707
+ ```
708
+
709
+ ---
710
+
711
+ ### qa360.secrets.remove
712
+
713
+ Remove a secret from the vault.
714
+
715
+ **Permission Required:** `--allow-secrets`
716
+
717
+ **Arguments Schema:**
718
+ ```json
719
+ {
720
+ "type": "object",
721
+ "properties": {
722
+ "name": {
723
+ "type": "string",
724
+ "pattern": "^[a-zA-Z0-9_-]+$"
725
+ }
726
+ },
727
+ "required": ["name"]
728
+ }
729
+ ```
730
+
731
+ ---
732
+
733
+ ### qa360.secrets.doctor
734
+
735
+ Check secrets vault health and provide recommendations.
736
+
737
+ **Permission Required:** `--allow-secrets`
738
+
739
+ **Return Type:**
740
+ ```json
741
+ {
742
+ "health": "healthy|warning|error",
743
+ "secret_count": "number",
744
+ "issues": ["array of issues"],
745
+ "recommendations": ["array of recommendations"],
746
+ "vault_location": "string",
747
+ "encryption": "string"
748
+ }
749
+ ```
750
+
751
+ ---
752
+
753
+ ## Server & Vault Tools
754
+
755
+ ### qa360.serve.health
756
+
757
+ Check QA360 server health status.
758
+
759
+ **Return Type:**
760
+ ```json
761
+ {
762
+ "status": "healthy|degraded|unhealthy",
763
+ "server": "running|not_running",
764
+ "url": "string",
765
+ "version": "string",
766
+ "uptime": "number"
767
+ }
768
+ ```
769
+
770
+ ---
771
+
772
+ ### qa360.serve.diag
773
+
774
+ Get detailed server diagnostics and system information.
775
+
776
+ **Return Type:**
777
+ ```json
778
+ {
779
+ "health": "healthy|degraded|unhealthy",
780
+ "version": "string",
781
+ "uptime_ms": "number",
782
+ "metrics": {
783
+ "memory": "object",
784
+ "process": "object",
785
+ "mcp": "object"
786
+ },
787
+ "vault_stats": "object"
788
+ }
789
+ ```
790
+
791
+ ---
792
+
793
+ ### qa360.serve.metrics
794
+
795
+ Get server metrics and performance data.
796
+
797
+ **Return Type:**
798
+ ```json
799
+ {
800
+ "timestamp": "number",
801
+ "server_type": "string",
802
+ "uptime_ms": "number",
803
+ "memory_usage": "object",
804
+ "mcp_metrics": {
805
+ "tools_registered": "number",
806
+ "total_calls": "number",
807
+ "success_rate": "number",
808
+ "top_tools": "array"
809
+ },
810
+ "security": "object"
811
+ }
812
+ ```
813
+
814
+ ---
815
+
816
+ ### qa360.vault.get_run
817
+
818
+ Get run data from the evidence vault (read-only).
819
+
820
+ **Arguments Schema:**
821
+ ```json
822
+ {
823
+ "type": "object",
824
+ "properties": {
825
+ "runId": {
826
+ "type": "string",
827
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
828
+ }
829
+ },
830
+ "required": ["runId"]
831
+ }
832
+ ```
833
+
834
+ **Return Type:**
835
+ ```json
836
+ {
837
+ "run": "object (run details)",
838
+ "gates": "array",
839
+ "findings": "array (redacted)",
840
+ "metadata": {
841
+ "total_gates": "number",
842
+ "total_findings": "number",
843
+ "passed_gates": "number",
844
+ "failed_gates": "number",
845
+ "critical_findings": "number",
846
+ "high_findings": "number"
847
+ }
848
+ }
849
+ ```
850
+
851
+ ---
852
+
853
+ ### qa360.vault.get_artifacts
854
+
855
+ Get artifacts metadata for a run (content not included for security).
856
+
857
+ **Arguments Schema:** Same as `qa360.vault.get_run`
858
+
859
+ **Return Type:**
860
+ ```json
861
+ {
862
+ "run_id": "string",
863
+ "total_artifacts": "number",
864
+ "artifacts": [
865
+ {
866
+ "label": "string",
867
+ "sha256": "string",
868
+ "mime_type": "string",
869
+ "size_bytes": "number",
870
+ "original_name": "string",
871
+ "cas_path": "string",
872
+ "created_at": "number",
873
+ "access_note": "string"
874
+ }
875
+ ],
876
+ "summary": {
877
+ "total_size_bytes": "number",
878
+ "mime_types": "array",
879
+ "labels": "array",
880
+ "oldest_artifact": "number",
881
+ "newest_artifact": "number"
882
+ }
883
+ }
884
+ ```
885
+
886
+ ---
887
+
888
+ ## Triage & Support Tools
889
+
890
+ ### qa360.triage.explain_code
891
+
892
+ Explain error codes and provide remediation guidance.
893
+
894
+ **Arguments Schema:**
895
+ ```json
896
+ {
897
+ "type": "object",
898
+ "properties": {
899
+ "code": {
900
+ "type": "string",
901
+ "pattern": "^[A-Z]{2,4}\\d{3,4}$",
902
+ "description": "Error code (e.g., SG001, ZAP002)"
903
+ },
904
+ "context": {
905
+ "type": "object",
906
+ "description": "Additional context for explanation"
907
+ }
908
+ },
909
+ "required": ["code"]
910
+ }
911
+ ```
912
+
913
+ **Return Type:**
914
+ ```json
915
+ {
916
+ "explanation": {
917
+ "cause": "string",
918
+ "severity": "low|medium|high|critical",
919
+ "category": "string"
920
+ },
921
+ "actions": [
922
+ {
923
+ "type": "fix|investigate|ignore",
924
+ "description": "string",
925
+ "command": "string"
926
+ }
927
+ ],
928
+ "references": [
929
+ {
930
+ "title": "string",
931
+ "url": "string"
932
+ }
933
+ ]
934
+ }
935
+ ```
936
+
937
+ **Supported Error Code Prefixes:**
938
+ - `SG`: Semgrep (Static Analysis Security Testing)
939
+ - `ZAP`: OWASP ZAP (Dynamic Application Security Testing)
940
+ - `GL`: Gitleaks (Secret Detection)
941
+ - `OSV`: OSV Scanner (Dependency Vulnerabilities)
942
+ - `PA`: Playwright (UI Testing)
943
+ - `K6`/`PU`: K6/Performance (Load Testing)
944
+
945
+ **Example Usage:**
946
+ ```json
947
+ {
948
+ "code": "SG001",
949
+ "context": {
950
+ "file": "/src/config.js",
951
+ "line": 42,
952
+ "rule": "hardcoded-secret"
953
+ }
954
+ }
955
+ ```
956
+
957
+ ---
958
+
959
+ ## Common Patterns
960
+
961
+ ### Error Handling
962
+
963
+ All tools return errors in this standardized format:
964
+
965
+ ```json
966
+ {
967
+ "error": {
968
+ "code": "QA360_ERROR_CODE",
969
+ "message": "Human readable description",
970
+ "hint": "Suggested resolution"
971
+ }
972
+ }
973
+ ```
974
+
975
+ ### Pagination
976
+
977
+ Tools that return lists support pagination:
978
+
979
+ ```json
980
+ {
981
+ "limit": 20,
982
+ "offset": 0,
983
+ "total": 150,
984
+ "has_more": true
985
+ }
986
+ ```
987
+
988
+ ### Filtering
989
+
990
+ Many tools support filtering with these common patterns:
991
+
992
+ ```json
993
+ {
994
+ "status": "passed|failed|error|cancelled|any",
995
+ "since": "ISO 8601 date string",
996
+ "until": "ISO 8601 date string",
997
+ "gate": "gate name",
998
+ "severity": "low|medium|high|critical"
999
+ }
1000
+ ```
1001
+
1002
+ ### Redaction
1003
+
1004
+ Sensitive data is automatically redacted in responses:
1005
+ - Signatures → `***REDACTED***`
1006
+ - Secrets → `***`
1007
+ - Tokens → `Bearer ***`
1008
+ - Passwords → `***`
1009
+
1010
+ ---
1011
+
1012
+ ## Rate Limiting
1013
+
1014
+ All tools are subject to rate limiting:
1015
+
1016
+ - Default: 5 requests per second
1017
+ - Configurable via `--rate-limit` flag
1018
+ - Heavy operations (run, export, gc) have additional concurrency limits
1019
+ - Rate limit headers included in responses
1020
+
1021
+ ---
1022
+
1023
+ ## Security Considerations
1024
+
1025
+ ### Input Validation
1026
+
1027
+ - All arguments validated against JSON Schema
1028
+ - Path traversal prevention
1029
+ - SQL injection protection
1030
+ - Command injection prevention
1031
+
1032
+ ### Output Sanitization
1033
+
1034
+ - Automatic PII redaction
1035
+ - Sensitive field masking
1036
+ - Safe error messages
1037
+ - Audit trail logging
1038
+
1039
+ ### Access Control
1040
+
1041
+ - Tool-level permissions (`--allow-run`, `--allow-secrets`)
1042
+ - Path sandboxing
1043
+ - Concurrency limiting
1044
+ - Rate limiting
1045
+
1046
+ ---
1047
+
1048
+ ## Performance Notes
1049
+
1050
+ ### Heavy Operations
1051
+
1052
+ These tools may take longer and consume more resources:
1053
+ - `qa360.run`: Executes full test suite
1054
+ - `qa360.history.export`: Creates ZIP bundles
1055
+ - `qa360.history.gc`: Processes large datasets
1056
+ - `qa360.pack.ask`: AI-powered generation
1057
+
1058
+ ### Optimization Tips
1059
+
1060
+ - Use `limit` parameters to reduce response size
1061
+ - Implement client-side caching for static data
1062
+ - Use `dryRun` for preview operations
1063
+ - Pin important runs before garbage collection
1064
+
1065
+ ---
1066
+
1067
+ ## Integration Examples
1068
+
1069
+ ### Batch Operations
1070
+
1071
+ ```javascript
1072
+ // Get recent failed runs and explain their errors
1073
+ const failedRuns = await mcp.call('qa360.history.list', {
1074
+ status: 'failed',
1075
+ limit: 5
1076
+ });
1077
+
1078
+ for (const run of failedRuns.runs) {
1079
+ const details = await mcp.call('qa360.history.get', {
1080
+ runId: run.id
1081
+ });
1082
+
1083
+ for (const finding of details.findings) {
1084
+ if (finding.rule.match(/^[A-Z]{2,4}\d{3,4}$/)) {
1085
+ const explanation = await mcp.call('qa360.triage.explain_code', {
1086
+ code: finding.rule,
1087
+ context: { location: finding.location }
1088
+ });
1089
+ console.log(`${finding.rule}: ${explanation.explanation.cause}`);
1090
+ }
1091
+ }
1092
+ }
1093
+ ```
1094
+
1095
+ ### Workflow Automation
1096
+
1097
+ ```javascript
1098
+ // Complete testing workflow
1099
+ async function runQualityCheck(packPath, runKey) {
1100
+ // 1. Validate pack
1101
+ const validation = await mcp.call('qa360.pack.validate', {
1102
+ path: packPath
1103
+ });
1104
+
1105
+ if (!validation.valid) {
1106
+ throw new Error(`Pack validation failed: ${validation.errors[0].message}`);
1107
+ }
1108
+
1109
+ // 2. Run tests
1110
+ const result = await mcp.call('qa360.run', {
1111
+ packPath,
1112
+ runKey,
1113
+ strict: true
1114
+ });
1115
+
1116
+ // 3. Sign results
1117
+ await mcp.call('qa360.report.sign', {
1118
+ runId: result.runId
1119
+ });
1120
+
1121
+ // 4. Export for archival
1122
+ await mcp.call('qa360.history.export', {
1123
+ runId: result.runId,
1124
+ bundlePath: `./reports/${runKey}.zip`
1125
+ });
1126
+
1127
+ return result;
1128
+ }
1129
+ ```
1130
+
1131
+ This comprehensive reference covers all available MCP tools with their complete specifications, usage patterns, and integration examples.