qa360 2.1.2 → 2.1.4

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 (866) hide show
  1. package/.BETA_TESTING_FEEDBACK.md +256 -0
  2. package/.claude/settings.local.json +151 -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 +62 -0
  25. package/check-branches.sh +32 -0
  26. package/cli/CHANGELOG.md +84 -0
  27. package/cli/LICENSE +24 -0
  28. package/cli/README.md +222 -0
  29. package/cli/examples/README.md +160 -0
  30. package/cli/package.json +76 -0
  31. package/cli/scripts/bundle-for-npm.sh +51 -0
  32. package/cli/scripts/validate-package.js +116 -0
  33. package/cli/src/__tests__/commands/doctor.test.ts +97 -0
  34. package/cli/src/__tests__/index.test.ts +15 -0
  35. package/cli/src/cli-minimal.ts +44 -0
  36. package/cli/src/commands/__tests__/crawl.test.ts +412 -0
  37. package/cli/src/commands/__tests__/doctor-qa360-home.test.ts +156 -0
  38. package/cli/src/commands/__tests__/e2e-ui-tests.test.ts +494 -0
  39. package/cli/src/commands/__tests__/e2e.test.ts +187 -0
  40. package/cli/src/commands/__tests__/flakiness.test.ts +528 -0
  41. package/cli/src/commands/__tests__/generate.test.ts +507 -0
  42. package/cli/src/commands/__tests__/history.integration.test.ts +358 -0
  43. package/cli/src/commands/__tests__/history.test.ts +433 -0
  44. package/cli/src/commands/__tests__/monitor-realworld.test.ts +199 -0
  45. package/cli/src/commands/__tests__/monitor.test.ts +81 -0
  46. package/cli/src/commands/__tests__/ollama.test.ts +529 -0
  47. package/cli/src/commands/__tests__/repair.test.ts +225 -0
  48. package/cli/src/commands/__tests__/report.integration.test.ts +167 -0
  49. package/cli/src/commands/__tests__/report.test.ts +294 -0
  50. package/cli/src/commands/__tests__/report.vitest.ts +288 -0
  51. package/cli/src/commands/__tests__/retry.test.ts +78 -0
  52. package/cli/src/commands/__tests__/run.integration.test.ts +240 -0
  53. package/cli/src/commands/__tests__/run.test.ts +346 -0
  54. package/cli/src/commands/__tests__/run.vitest.ts +301 -0
  55. package/cli/src/commands/__tests__/secrets.test.ts +114 -0
  56. package/cli/src/commands/__tests__/serve.test.ts +80 -0
  57. package/cli/src/commands/__tests__/verify.test.ts +103 -0
  58. package/cli/src/commands/ai.ts +579 -0
  59. package/cli/src/commands/ask.ts +678 -0
  60. package/cli/src/commands/coverage.ts +305 -0
  61. package/cli/src/commands/crawl.ts +155 -0
  62. package/cli/src/commands/doctor.ts +610 -0
  63. package/cli/src/commands/examples.ts +248 -0
  64. package/cli/src/commands/explain.ts +710 -0
  65. package/cli/src/commands/flakiness.ts +560 -0
  66. package/cli/src/commands/generate.ts +566 -0
  67. package/cli/src/commands/history.ts +914 -0
  68. package/cli/src/commands/init.ts +763 -0
  69. package/cli/src/commands/monitor.ts +270 -0
  70. package/cli/src/commands/ollama.ts +337 -0
  71. package/cli/src/commands/pack.ts +497 -0
  72. package/cli/src/commands/regression.ts +400 -0
  73. package/cli/src/commands/repair.ts +356 -0
  74. package/cli/src/commands/report.ts +463 -0
  75. package/cli/src/commands/retry.ts +380 -0
  76. package/cli/src/commands/run.ts +218 -0
  77. package/cli/src/commands/scan.ts +177 -0
  78. package/cli/src/commands/secrets.ts +340 -0
  79. package/cli/src/commands/serve.ts +194 -0
  80. package/cli/src/commands/slo.ts +387 -0
  81. package/cli/src/commands/verify-temp-note.md +11 -0
  82. package/cli/src/commands/verify.ts +322 -0
  83. package/cli/src/generators/index.ts +6 -0
  84. package/cli/src/generators/json-reporter.ts +15 -0
  85. package/cli/src/generators/test-generator.ts +90 -0
  86. package/cli/src/index.ts +289 -0
  87. package/cli/src/scanners/dom-scanner.ts +360 -0
  88. package/cli/src/scanners/index.ts +5 -0
  89. package/cli/src/types/scan.ts +84 -0
  90. package/cli/src/utils/config.ts +145 -0
  91. package/cli/tsconfig.bundle.json +12 -0
  92. package/cli/tsconfig.json +23 -0
  93. package/cli/vitest.config.ts +57 -0
  94. package/core/LICENSE +24 -0
  95. package/core/README.md +64 -0
  96. package/core/package.json +81 -0
  97. package/core/src/__tests__/adapters-contract/adapters-contract.test.md +156 -0
  98. package/core/src/__tests__/index.test.ts +31 -0
  99. package/core/src/__tests__/integration/phase3.test.ts +405 -0
  100. package/core/src/__tests__/pack/validator.test.ts +312 -0
  101. package/core/src/__tests__/secrets/crypto.test.ts +190 -0
  102. package/core/src/__tests__/secrets/manager.test.ts +316 -0
  103. package/core/src/__tests__/security/redactor-phase3.test.ts +233 -0
  104. package/core/src/__tests__/serve/health-checker.test.ts +155 -0
  105. package/core/src/__tests__/serve/process-manager.test.ts +213 -0
  106. package/core/src/__tests__/serve/server.test.ts +103 -0
  107. package/core/src/__tests__/vault/cas.test.ts +178 -0
  108. package/core/src/__tests__/vault/vault.test.ts +296 -0
  109. package/core/src/adapters/__tests__/gitleaks-secrets.test.ts +452 -0
  110. package/core/src/adapters/__tests__/k6-perf.test.ts +538 -0
  111. package/core/src/adapters/__tests__/osv-deps.test.ts +471 -0
  112. package/core/src/adapters/__tests__/playwright-native-api.test.ts +792 -0
  113. package/core/src/adapters/__tests__/playwright-ui-e2e.test.ts +431 -0
  114. package/core/src/adapters/__tests__/playwright-ui.test.ts +1073 -0
  115. package/core/src/adapters/__tests__/semgrep-sast.test.ts +436 -0
  116. package/core/src/adapters/__tests__/zap-dast.test.ts +453 -0
  117. package/core/src/adapters/gitleaks-secrets.ts +521 -0
  118. package/core/src/adapters/k6-perf.ts +479 -0
  119. package/core/src/adapters/osv-deps.ts +467 -0
  120. package/core/src/adapters/playwright-native-adapter.ts +472 -0
  121. package/core/src/adapters/playwright-native-api.ts +619 -0
  122. package/core/src/adapters/playwright-ui.ts +1088 -0
  123. package/core/src/adapters/semgrep-sast.ts +410 -0
  124. package/core/src/adapters/zap-dast.ts +551 -0
  125. package/core/src/ai/__tests__/deepseek-provider.test.ts +586 -0
  126. package/core/src/ai/__tests__/ollama-provider.test.ts +641 -0
  127. package/core/src/ai/anthropic-provider.ts +248 -0
  128. package/core/src/ai/deepseek-provider.ts +301 -0
  129. package/core/src/ai/index.ts +87 -0
  130. package/core/src/ai/llm-client.ts +52 -0
  131. package/core/src/ai/mock-provider.ts +146 -0
  132. package/core/src/ai/ollama-provider.ts +255 -0
  133. package/core/src/ai/openai-provider.ts +226 -0
  134. package/core/src/ai/provider-factory.ts +408 -0
  135. package/core/src/artifacts/README.md +78 -0
  136. package/core/src/artifacts/index.ts +16 -0
  137. package/core/src/artifacts/ui-artifacts.ts +412 -0
  138. package/core/src/assertions/__tests__/engine.test.ts +360 -0
  139. package/core/src/assertions/engine.ts +577 -0
  140. package/core/src/assertions/index.ts +13 -0
  141. package/core/src/assertions/types.ts +229 -0
  142. package/core/src/auth/__tests__/api-key-provider.test.ts +282 -0
  143. package/core/src/auth/__tests__/auth-manager.test.ts +430 -0
  144. package/core/src/auth/__tests__/basic-auth-provider.test.ts +364 -0
  145. package/core/src/auth/__tests__/cloud-providers.test.ts +751 -0
  146. package/core/src/auth/__tests__/jwt-provider.test.ts +400 -0
  147. package/core/src/auth/__tests__/oauth2-provider.test.ts +383 -0
  148. package/core/src/auth/__tests__/totp-provider.test.ts +294 -0
  149. package/core/src/auth/__tests__/ui-login-provider.test.ts +323 -0
  150. package/core/src/auth/api-key-provider.ts +75 -0
  151. package/core/src/auth/aws-iam-provider.ts +212 -0
  152. package/core/src/auth/azure-ad-provider.ts +126 -0
  153. package/core/src/auth/basic-auth-provider.ts +133 -0
  154. package/core/src/auth/gcp-adc-provider.ts +146 -0
  155. package/core/src/auth/index.ts +342 -0
  156. package/core/src/auth/jwt-provider.ts +193 -0
  157. package/core/src/auth/manager.ts +281 -0
  158. package/core/src/auth/oauth2-provider.ts +141 -0
  159. package/core/src/auth/totp-provider.ts +163 -0
  160. package/core/src/auth/ui-login-provider.ts +242 -0
  161. package/core/src/cache/__tests__/lru-cache.test.ts +564 -0
  162. package/core/src/cache/index.ts +13 -0
  163. package/core/src/cache/lru-cache.ts +536 -0
  164. package/core/src/crawler/__tests__/journey-generator.test.ts +344 -0
  165. package/core/src/crawler/__tests__/selector-generator.test.ts +211 -0
  166. package/core/src/crawler/index.ts +335 -0
  167. package/core/src/crawler/journey-generator.ts +471 -0
  168. package/core/src/crawler/page-analyzer.ts +857 -0
  169. package/core/src/crawler/selector-generator.ts +280 -0
  170. package/core/src/crawler/types.ts +475 -0
  171. package/core/src/dashboard/__tests__/real-world.test.ts +430 -0
  172. package/core/src/dashboard/__tests__/server.test.ts +283 -0
  173. package/core/src/dashboard/__tests__/types.test.ts +208 -0
  174. package/core/src/dashboard/assets.ts +692 -0
  175. package/core/src/dashboard/index.ts +17 -0
  176. package/core/src/dashboard/server.ts +401 -0
  177. package/core/src/dashboard/types.ts +78 -0
  178. package/core/src/discoverer/__tests__/test-discoverer.test.ts +444 -0
  179. package/core/src/discoverer/index.ts +374 -0
  180. package/core/src/flakiness/__tests__/flakiness.test.ts +554 -0
  181. package/core/src/flakiness/index.ts +536 -0
  182. package/core/src/generation/__tests__/code-formatter.test.ts +170 -0
  183. package/core/src/generation/__tests__/code-generator-contract.test.ts +207 -0
  184. package/core/src/generation/__tests__/code-generator.test.ts +586 -0
  185. package/core/src/generation/__tests__/crawler-pack-generator.test.ts +479 -0
  186. package/core/src/generation/__tests__/generation-e2e-b2bshop.test.ts +718 -0
  187. package/core/src/generation/__tests__/generation-integration.test.ts +655 -0
  188. package/core/src/generation/__tests__/pack-generator.test.ts +408 -0
  189. package/core/src/generation/__tests__/prompt-builder.test.ts +200 -0
  190. package/core/src/generation/__tests__/real-provider-integration.test.ts +414 -0
  191. package/core/src/generation/__tests__/source-analyzer.test.ts +774 -0
  192. package/core/src/generation/__tests__/test-optimizer.test.ts +255 -0
  193. package/core/src/generation/code-formatter.ts +408 -0
  194. package/core/src/generation/code-generator.ts +470 -0
  195. package/core/src/generation/crawler-pack-generator.ts +289 -0
  196. package/core/src/generation/generator.ts +113 -0
  197. package/core/src/generation/index.ts +59 -0
  198. package/core/src/generation/pack-generator.ts +527 -0
  199. package/core/src/generation/prompt-builder.ts +772 -0
  200. package/core/src/generation/source-analyzer.ts +830 -0
  201. package/core/src/generation/test-optimizer.ts +474 -0
  202. package/core/src/generation/types.ts +217 -0
  203. package/core/src/hooks/__tests__/compose.test.ts +636 -0
  204. package/core/src/hooks/__tests__/runner.test.ts +478 -0
  205. package/core/src/hooks/compose.ts +268 -0
  206. package/core/src/hooks/runner.ts +364 -0
  207. package/core/src/index.ts +237 -0
  208. package/core/src/pack/__tests__/migrator.test.ts +594 -0
  209. package/core/src/pack/__tests__/validator.test.ts +759 -0
  210. package/core/src/pack/migrator.ts +353 -0
  211. package/core/src/pack/validator.ts +359 -0
  212. package/core/src/pack-v2/__tests__/loader.test.ts +533 -0
  213. package/core/src/pack-v2/__tests__/migrator.test.ts +455 -0
  214. package/core/src/pack-v2/__tests__/validator.test.ts +549 -0
  215. package/core/src/pack-v2/index.ts +41 -0
  216. package/core/src/pack-v2/loader.ts +321 -0
  217. package/core/src/pack-v2/migrator.ts +540 -0
  218. package/core/src/pack-v2/validator.ts +673 -0
  219. package/core/src/parallel/README.md +143 -0
  220. package/core/src/parallel/index.ts +16 -0
  221. package/core/src/parallel/parallel-runner.ts +282 -0
  222. package/core/src/proof/__tests__/proof-roundtrip.test.ts +149 -0
  223. package/core/src/proof/__tests__/schema-validation-manual.mjs +211 -0
  224. package/core/src/proof/__tests__/schema-validation.test.ts +336 -0
  225. package/core/src/proof/__tests__/signer.test.ts +486 -0
  226. package/core/src/proof/__tests__/temporal-regression.test.ts +537 -0
  227. package/core/src/proof/__tests__/verifier-advanced.test.ts +588 -0
  228. package/core/src/proof/__tests__/verifier.test.ts +413 -0
  229. package/core/src/proof/bundle.ts +290 -0
  230. package/core/src/proof/canonicalize.ts +116 -0
  231. package/core/src/proof/index.ts +74 -0
  232. package/core/src/proof/schema.ts +285 -0
  233. package/core/src/proof/signer.ts +293 -0
  234. package/core/src/proof/verifier.ts +380 -0
  235. package/core/src/regression/__tests__/detector.test.ts +396 -0
  236. package/core/src/regression/__tests__/trend-analyzer.test.ts +300 -0
  237. package/core/src/regression/detector.ts +629 -0
  238. package/core/src/regression/index.ts +34 -0
  239. package/core/src/regression/trend-analyzer.ts +468 -0
  240. package/core/src/regression/types.ts +295 -0
  241. package/core/src/regression/vault.ts +419 -0
  242. package/core/src/repair/__tests__/repairer.test.ts +572 -0
  243. package/core/src/repair/__tests__/types.test.ts +302 -0
  244. package/core/src/repair/engine/__tests__/fixer.test.ts +482 -0
  245. package/core/src/repair/engine/__tests__/suggestion-engine.test.ts +395 -0
  246. package/core/src/repair/engine/fixer.ts +271 -0
  247. package/core/src/repair/engine/suggestion-engine.ts +234 -0
  248. package/core/src/repair/index.ts +53 -0
  249. package/core/src/repair/repairer.ts +376 -0
  250. package/core/src/repair/types.ts +119 -0
  251. package/core/src/repair/utils/__tests__/error-analyzer.test.ts +454 -0
  252. package/core/src/repair/utils/error-analyzer.ts +308 -0
  253. package/core/src/reporting/README.md +144 -0
  254. package/core/src/reporting/html-reporter.ts +835 -0
  255. package/core/src/reporting/index.ts +16 -0
  256. package/core/src/retry/README.md +192 -0
  257. package/core/src/retry/__tests__/flakiness-integration.test.ts +475 -0
  258. package/core/src/retry/__tests__/retry-engine.test.ts +424 -0
  259. package/core/src/retry/flakiness-integration.ts +267 -0
  260. package/core/src/retry/index.ts +48 -0
  261. package/core/src/retry/retry-engine.ts +368 -0
  262. package/core/src/retry/types.ts +208 -0
  263. package/core/src/retry/vault.ts +413 -0
  264. package/core/src/runner/__tests__/flakiness-integration.test.ts +566 -0
  265. package/core/src/runner/__tests__/phase3-e2e-b2bshop.test.ts +218 -0
  266. package/core/src/runner/__tests__/phase3-e2e-reqres.test.ts +199 -0
  267. package/core/src/runner/__tests__/phase3-runner.test.ts +1118 -0
  268. package/core/src/runner/e2e-helpers.ts +216 -0
  269. package/core/src/runner/phase3-runner.ts +1236 -0
  270. package/core/src/schemas/gherkin-report.json +122 -0
  271. package/core/src/secrets/__tests__/crypto.test.ts +180 -0
  272. package/core/src/secrets/crypto.ts +289 -0
  273. package/core/src/secrets/manager.ts +272 -0
  274. package/core/src/security/__tests__/hardening.test.ts +480 -0
  275. package/core/src/security/redaction-patterns-extended.ts +278 -0
  276. package/core/src/security/redactor.ts +326 -0
  277. package/core/src/self-healing/assertion-healer.ts +485 -0
  278. package/core/src/self-healing/engine.ts +626 -0
  279. package/core/src/self-healing/index.ts +33 -0
  280. package/core/src/self-healing/selector-healer.ts +488 -0
  281. package/core/src/self-healing/types.ts +193 -0
  282. package/core/src/serve/diagnostics-collector.ts +201 -0
  283. package/core/src/serve/health-checker.ts +274 -0
  284. package/core/src/serve/index.ts +9 -0
  285. package/core/src/serve/metrics-collector.ts +386 -0
  286. package/core/src/serve/process-manager.ts +265 -0
  287. package/core/src/serve/server.ts +230 -0
  288. package/core/src/slo/config.ts +408 -0
  289. package/core/src/slo/index.ts +68 -0
  290. package/core/src/slo/sli-calculator.ts +474 -0
  291. package/core/src/slo/slo-tracker.ts +481 -0
  292. package/core/src/slo/types.ts +408 -0
  293. package/core/src/slo/vault.ts +600 -0
  294. package/core/src/tui/__tests__/monitor.test.ts +336 -0
  295. package/core/src/tui/__tests__/real-world.test.ts +376 -0
  296. package/core/src/tui/__tests__/renderer.test.ts +201 -0
  297. package/core/src/tui/__tests__/types.test.ts +295 -0
  298. package/core/src/tui/index.ts +19 -0
  299. package/core/src/tui/monitor.ts +331 -0
  300. package/core/src/tui/renderer.ts +269 -0
  301. package/core/src/tui/types.ts +68 -0
  302. package/core/src/types/pack-v1.ts +305 -0
  303. package/core/src/types/pack-v2.ts +491 -0
  304. package/core/src/types/trust-score.ts +258 -0
  305. package/core/src/vault/__tests__/flakiness-vault.test.ts +562 -0
  306. package/core/src/vault/__tests__/vault.test.ts +259 -0
  307. package/core/src/vault/cas.ts +323 -0
  308. package/core/src/vault/index.ts +1361 -0
  309. package/core/src/vault/schema.sql +168 -0
  310. package/core/src/visual/README.md +185 -0
  311. package/core/src/visual/index.ts +14 -0
  312. package/core/src/visual/visual-regression.ts +347 -0
  313. package/core/src/watch/__tests__/watch-mode.test.ts +192 -0
  314. package/core/src/watch/index.ts +14 -0
  315. package/core/src/watch/watch-mode.ts +565 -0
  316. package/core/tsconfig.json +12 -0
  317. package/core/vitest.config.ts +52 -0
  318. package/docs/ARCHITECTURE.md +901 -0
  319. package/docs/AUDIT-GLOBAL-DEC2025.md +271 -0
  320. package/docs/BETA_TESTING.md +257 -0
  321. package/docs/BETA_TESTING_PLAN.md +727 -0
  322. package/docs/CERTIFICATION-REPORT.md +142 -0
  323. package/docs/COMPLETE_AUDIT_REFACTORING.md +965 -0
  324. package/docs/DEVELOPMENT.md +331 -0
  325. package/docs/DEVELOPMENT_HISTORY.md +345 -0
  326. package/docs/LIMITATIONS.md +176 -0
  327. package/docs/MIGRATION.md +303 -0
  328. package/docs/OPTION_3_4_EXPLORATION.md +1257 -0
  329. package/docs/PHASE1_PERFORMANCE.md +144 -0
  330. package/docs/QA360_Cloud.postman_collection.json +89 -0
  331. package/docs/README.md +50 -0
  332. package/docs/STATUS.md +179 -0
  333. package/docs/STRATEGIC_STUDY_GOOSE_INTEGRATION.md +615 -0
  334. package/docs/USER_GUIDE.md +687 -0
  335. package/docs/WORK-DONE-ADAPTER-TESTS.md +136 -0
  336. package/docs/adapters-security.md +485 -0
  337. package/docs/architecture-diagram.mmd +168 -0
  338. package/docs/archive/ARCH-01-DAY6-BUILD-FIXES.md +396 -0
  339. package/docs/archive/ARCH-01-DAY6-FINAL-STATUS.md +324 -0
  340. package/docs/archive/ARCH-01_MCP_MERGE_ANALYSIS.md +644 -0
  341. package/docs/archive/ARCH-01_NEXT_STEPS.md +60 -0
  342. package/docs/archive/BRANCH_PROTECTION.md +183 -0
  343. package/docs/archive/CI_LOCKDOWN_CHECKLIST.md +222 -0
  344. package/docs/archive/HANDOFF_TEST-01.md +669 -0
  345. package/docs/archive/LEGAL_READY_PLACEHOLDERS.md +372 -0
  346. package/docs/archive/NODE_UPGRADE_GUIDE.md +188 -0
  347. package/docs/archive/PHASE1_COMPLETION.md +386 -0
  348. package/docs/archive/PHASE2_COMPLETION.md +404 -0
  349. package/docs/archive/PHASE3_AND_4_FINAL.md +360 -0
  350. package/docs/archive/PHASE3_COMPLETE.md +301 -0
  351. package/docs/archive/PHASE3_STATUS.md +255 -0
  352. package/docs/archive/PRE-WEEK2-AUDIT.md +364 -0
  353. package/docs/archive/README.md +33 -0
  354. package/docs/archive/SCHEMA_AJV_2020_FIX.md +245 -0
  355. package/docs/archive/TEST-01_AUDIT_REPORT.md +240 -0
  356. package/docs/archive/TEST-01_COVERAGE_PLAN.md +423 -0
  357. package/docs/budgets-advanced.md +308 -0
  358. package/docs/examples/history-export-gc.md +285 -0
  359. package/docs/examples/pack-v2-complete.yaml +158 -0
  360. package/docs/examples/pack-v2-quickstart.yaml +24 -0
  361. package/docs/examples/pack-v2-ui-login.yaml +81 -0
  362. package/docs/examples/qa360-report.json +50 -0
  363. package/docs/history.md +565 -0
  364. package/docs/hooks.md +304 -0
  365. package/docs/llm-providers.md +419 -0
  366. package/docs/mcp-server.md +651 -0
  367. package/docs/mcp-tools.md +1131 -0
  368. package/docs/pack-v1.md +383 -0
  369. package/docs/pack-v2.md +558 -0
  370. package/docs/proofs.md +670 -0
  371. package/docs/quickstart-5min.md +257 -0
  372. package/docs/readiness-ci.md +654 -0
  373. package/docs/rfc/README.md +20 -0
  374. package/docs/rfc/proof-bundle-v1.md +787 -0
  375. package/docs/secrets.md +392 -0
  376. package/docs/serve.md +494 -0
  377. package/docs/vault.md +491 -0
  378. package/e2e/qa360-e2e.test.ts +696 -0
  379. package/e2e/vitest.config.ts +18 -0
  380. package/examples/README.md +30 -140
  381. package/examples/ci/docker-compose-serve.yml +375 -0
  382. package/examples/ci/github-actions-serve.yml +345 -0
  383. package/examples/ci/gitlab-ci-serve.yml +407 -0
  384. package/examples/datasets/README.md +101 -0
  385. package/examples/datasets/b2bshop.ts +155 -0
  386. package/examples/datasets/index.ts +57 -0
  387. package/examples/datasets/reqres.ts +195 -0
  388. package/examples/future-api/README.md +16 -0
  389. package/examples/future-api/diag.js +7 -0
  390. package/examples/future-api/health.js +4 -0
  391. package/examples/future-api/packs.js +13 -0
  392. package/examples/future-api/runpack.js +10 -0
  393. package/examples/generation/README.md +148 -0
  394. package/examples/generation/pack-generator-example.js +115 -0
  395. package/examples/generation/source-analyzer-example.js +115 -0
  396. package/examples/httpbin/pack.yml +59 -0
  397. package/examples/load-testing/mcp-load.yml +115 -0
  398. package/examples/load-testing/mcp-stdio.yml +95 -0
  399. package/examples/mcp/claude-desktop-config.json +33 -0
  400. package/examples/mcp/claude-desktop.json +16 -0
  401. package/examples/mcp/conversation-sample.md +131 -0
  402. package/examples/mcp/demo-60s.md +330 -0
  403. package/examples/mcp/sample-conversation.jsonl +21 -0
  404. package/examples/mcp/vscode-settings.json +22 -0
  405. package/examples/pack-v2-complete.yml +242 -0
  406. package/examples/pack-v2-examples.md +244 -0
  407. package/examples/pack-v2-quickstart.yml +55 -0
  408. package/examples/packs-business/ecommerce-api.yml +121 -0
  409. package/examples/packs-business/saas-dashboard-ui.yml +133 -0
  410. package/examples/packs-conformance/compose-multi.yml +174 -0
  411. package/examples/packs-conformance/full.yml +152 -0
  412. package/examples/packs-conformance/heavy-artifacts.yml +152 -0
  413. package/examples/packs-conformance/minimal.yml +71 -0
  414. package/examples/packs-conformance/secrets-missing.yml +97 -0
  415. package/examples/packs-conformance/timeouts.yml +77 -0
  416. package/examples/proofs/e2e-playwright-proof.json +75 -0
  417. package/examples/proofs/httpbin-proof.json +69 -0
  418. package/examples/proofs/multi-adapter-proof.json +117 -0
  419. package/examples/proofs/test-proof.json +26 -0
  420. package/examples/restful-api-dev/README.md +102 -0
  421. package/examples/restful-api-dev/restful-api-advanced.yml +29 -0
  422. package/examples/restful-api-dev/restful-api-basic.yml +29 -0
  423. package/examples/web-lite/.github/workflows/qa360-phase3.yml +73 -0
  424. package/examples/web-lite/api-mock/server.js +258 -0
  425. package/examples/web-lite/pack.yml +71 -0
  426. package/examples/web-lite/services.yml +43 -0
  427. package/examples/web-lite/web-content/healthz +1 -0
  428. package/examples/web-lite/web-content/index.html +259 -0
  429. package/package.json +55 -45
  430. package/packages/mcp/CHANGELOG.md +109 -0
  431. package/packages/mcp/IMPLEMENTATION_SUMMARY.md +350 -0
  432. package/packages/mcp/LICENSE +21 -0
  433. package/packages/mcp/QUICK_START.md +291 -0
  434. package/packages/mcp/README.md +294 -0
  435. package/packages/mcp/TELEMETRY.md +220 -0
  436. package/packages/mcp/package.json +92 -0
  437. package/packages/mcp/scripts/generate-sbom-fallback.cjs +84 -0
  438. package/packages/mcp/scripts/safe-postinstall.cjs +32 -0
  439. package/packages/mcp/src/__tests__/contract.test.ts +902 -0
  440. package/packages/mcp/src/cli/cli.ts +137 -0
  441. package/packages/mcp/src/cli/doctor.ts +286 -0
  442. package/packages/mcp/src/cli/fix.ts +99 -0
  443. package/packages/mcp/src/cli/init.ts +233 -0
  444. package/packages/mcp/src/cli/postinstall.ts +14 -0
  445. package/packages/mcp/src/cli/reset.ts +44 -0
  446. package/packages/mcp/src/cli/telemetry.ts +166 -0
  447. package/packages/mcp/src/cli/test-dx.ts +94 -0
  448. package/packages/mcp/src/cli/uninstall.ts +80 -0
  449. package/packages/mcp/src/cli/up.ts +178 -0
  450. package/packages/mcp/src/index.ts +12 -0
  451. package/packages/mcp/src/scripts/e2e-local.ts +337 -0
  452. package/packages/mcp/src/scripts/verify-settings.ts +242 -0
  453. package/packages/mcp/src/security/audit.ts +244 -0
  454. package/packages/mcp/src/security/manager.ts +242 -0
  455. package/packages/mcp/src/server/full-server.ts +212 -0
  456. package/packages/mcp/src/server/minimal-server.ts +134 -0
  457. package/packages/mcp/src/tools/history.ts +388 -0
  458. package/packages/mcp/src/tools/pack.ts +449 -0
  459. package/packages/mcp/src/tools/registry.ts +638 -0
  460. package/packages/mcp/src/tools/report.ts +100 -0
  461. package/packages/mcp/src/tools/run.ts +268 -0
  462. package/packages/mcp/src/tools/secrets.ts +198 -0
  463. package/packages/mcp/src/tools/serve.ts +221 -0
  464. package/packages/mcp/src/tools/triage.ts +532 -0
  465. package/packages/mcp/src/tools/types.ts +26 -0
  466. package/packages/mcp/src/tools/vault.ts +164 -0
  467. package/packages/mcp/src/tools/verify.ts +166 -0
  468. package/packages/mcp/src/types/index.ts +311 -0
  469. package/packages/mcp/src/types/mcp-stubs.ts +83 -0
  470. package/packages/mcp/tsconfig.json +16 -0
  471. package/playwright.config.ts +20 -0
  472. package/pnpm-workspace.yaml +4 -0
  473. package/run-test-and-push.sh +20 -0
  474. package/scripts/build-proof-cli.sh +110 -0
  475. package/scripts/ci/check-windows-paths.js +92 -0
  476. package/scripts/ci/invariants.sh +124 -0
  477. package/scripts/ci/make-final-bundle.js +106 -0
  478. package/scripts/ci/mcp-run-multipack.js +305 -0
  479. package/scripts/ci/run-pack-suite.sh +103 -0
  480. package/scripts/ci/run-phase7-final.sh +190 -0
  481. package/scripts/ci/slo-assert.js +158 -0
  482. package/scripts/ci/test-fault-tolerance.sh +301 -0
  483. package/scripts/install-mcp.sh +66 -0
  484. package/scripts/mcp-smoke.mjs +27 -0
  485. package/scripts/smoke.sh +26 -0
  486. package/scripts/stress-test.js +288 -0
  487. package/scripts/validate-examples.mjs +404 -0
  488. package/scripts/validation/simple-pack-check.sh +51 -0
  489. package/scripts/validation/validate-universal-pack.mjs +77 -0
  490. package/scripts/verify-persistence.js +127 -0
  491. package/test-pack.yaml +43 -0
  492. package/test-results/.last-run.json +4 -0
  493. package/test-runner.mjs +87 -0
  494. package/tests/artifacts.spec.js +147 -0
  495. package/tests/contracts.spec.js +239 -0
  496. package/tests/e2e/assertions.test.mjs +370 -0
  497. package/tests/e2e/crawler.test.mjs +451 -0
  498. package/tests/e2e/playwright-plus-plus.test.mjs +604 -0
  499. package/tests/e2e/proof-bundle.test.mjs +258 -0
  500. package/tests/e2e/real-world/saucedemo.test.mjs +714 -0
  501. package/tests/e2e/real-world/the-internet-herokuapp.test.mjs +760 -0
  502. package/tests/e2e/ui-actions.test.mjs +546 -0
  503. package/tests/gherkin.e2e.spec.ts +310 -0
  504. package/tests/no-console-errors.spec.js +136 -0
  505. package/tests/pdf.spec.ts +252 -0
  506. package/tests/run-pack.spec.ts +58 -0
  507. package/tsconfig.base.json +15 -0
  508. package/tsconfig.build.json +8 -0
  509. package/tsconfig.json +37 -0
  510. package/tsconfig.test.json +18 -0
  511. package/typedoc.json +37 -0
  512. package/ui/README.md +51 -0
  513. package/verify-proof.mjs +60 -0
  514. package/dist/cli-minimal.d.ts +0 -6
  515. package/dist/cli-minimal.js +0 -36
  516. package/dist/commands/ai.d.ts +0 -41
  517. package/dist/commands/ai.js +0 -511
  518. package/dist/commands/ask.d.ts +0 -94
  519. package/dist/commands/ask.js +0 -582
  520. package/dist/commands/coverage.d.ts +0 -8
  521. package/dist/commands/coverage.js +0 -252
  522. package/dist/commands/crawl.d.ts +0 -24
  523. package/dist/commands/crawl.js +0 -121
  524. package/dist/commands/doctor.d.ts +0 -54
  525. package/dist/commands/doctor.js +0 -513
  526. package/dist/commands/examples.d.ts +0 -33
  527. package/dist/commands/examples.js +0 -193
  528. package/dist/commands/explain.d.ts +0 -27
  529. package/dist/commands/explain.js +0 -630
  530. package/dist/commands/flakiness.d.ts +0 -73
  531. package/dist/commands/flakiness.js +0 -435
  532. package/dist/commands/generate.d.ts +0 -66
  533. package/dist/commands/generate.js +0 -438
  534. package/dist/commands/history.d.ts +0 -76
  535. package/dist/commands/history.js +0 -757
  536. package/dist/commands/init.d.ts +0 -106
  537. package/dist/commands/init.js +0 -599
  538. package/dist/commands/monitor.d.ts +0 -27
  539. package/dist/commands/monitor.js +0 -225
  540. package/dist/commands/ollama.d.ts +0 -40
  541. package/dist/commands/ollama.js +0 -301
  542. package/dist/commands/pack.d.ts +0 -70
  543. package/dist/commands/pack.js +0 -413
  544. package/dist/commands/regression.d.ts +0 -8
  545. package/dist/commands/regression.js +0 -340
  546. package/dist/commands/repair.d.ts +0 -26
  547. package/dist/commands/repair.js +0 -307
  548. package/dist/commands/report.d.ts +0 -62
  549. package/dist/commands/report.js +0 -378
  550. package/dist/commands/retry.d.ts +0 -43
  551. package/dist/commands/retry.js +0 -275
  552. package/dist/commands/run.d.ts +0 -41
  553. package/dist/commands/run.js +0 -169
  554. package/dist/commands/scan.d.ts +0 -5
  555. package/dist/commands/scan.js +0 -155
  556. package/dist/commands/secrets.d.ts +0 -58
  557. package/dist/commands/secrets.js +0 -289
  558. package/dist/commands/serve.d.ts +0 -13
  559. package/dist/commands/serve.js +0 -156
  560. package/dist/commands/slo.d.ts +0 -8
  561. package/dist/commands/slo.js +0 -327
  562. package/dist/commands/verify.d.ts +0 -32
  563. package/dist/commands/verify.js +0 -278
  564. package/dist/core/adapters/gitleaks-secrets.d.ts +0 -114
  565. package/dist/core/adapters/gitleaks-secrets.js +0 -410
  566. package/dist/core/adapters/k6-perf.d.ts +0 -85
  567. package/dist/core/adapters/k6-perf.js +0 -398
  568. package/dist/core/adapters/osv-deps.d.ts +0 -123
  569. package/dist/core/adapters/osv-deps.js +0 -372
  570. package/dist/core/adapters/playwright-native-adapter.d.ts +0 -121
  571. package/dist/core/adapters/playwright-native-adapter.js +0 -339
  572. package/dist/core/adapters/playwright-native-api.d.ts +0 -183
  573. package/dist/core/adapters/playwright-native-api.js +0 -461
  574. package/dist/core/adapters/playwright-ui.d.ts +0 -197
  575. package/dist/core/adapters/playwright-ui.js +0 -840
  576. package/dist/core/adapters/semgrep-sast.d.ts +0 -99
  577. package/dist/core/adapters/semgrep-sast.js +0 -322
  578. package/dist/core/adapters/zap-dast.d.ts +0 -133
  579. package/dist/core/adapters/zap-dast.js +0 -424
  580. package/dist/core/ai/anthropic-provider.d.ts +0 -50
  581. package/dist/core/ai/anthropic-provider.js +0 -211
  582. package/dist/core/ai/deepseek-provider.d.ts +0 -81
  583. package/dist/core/ai/deepseek-provider.js +0 -254
  584. package/dist/core/ai/index.d.ts +0 -60
  585. package/dist/core/ai/index.js +0 -18
  586. package/dist/core/ai/llm-client.d.ts +0 -45
  587. package/dist/core/ai/llm-client.js +0 -7
  588. package/dist/core/ai/mock-provider.d.ts +0 -49
  589. package/dist/core/ai/mock-provider.js +0 -121
  590. package/dist/core/ai/ollama-provider.d.ts +0 -78
  591. package/dist/core/ai/ollama-provider.js +0 -192
  592. package/dist/core/ai/openai-provider.d.ts +0 -48
  593. package/dist/core/ai/openai-provider.js +0 -188
  594. package/dist/core/ai/provider-factory.d.ts +0 -160
  595. package/dist/core/ai/provider-factory.js +0 -269
  596. package/dist/core/artifacts/index.d.ts +0 -6
  597. package/dist/core/artifacts/index.js +0 -6
  598. package/dist/core/artifacts/ui-artifacts.d.ts +0 -133
  599. package/dist/core/artifacts/ui-artifacts.js +0 -304
  600. package/dist/core/assertions/engine.d.ts +0 -51
  601. package/dist/core/assertions/engine.js +0 -530
  602. package/dist/core/assertions/index.d.ts +0 -11
  603. package/dist/core/assertions/index.js +0 -11
  604. package/dist/core/assertions/types.d.ts +0 -121
  605. package/dist/core/assertions/types.js +0 -37
  606. package/dist/core/auth/api-key-provider.d.ts +0 -16
  607. package/dist/core/auth/api-key-provider.js +0 -63
  608. package/dist/core/auth/aws-iam-provider.d.ts +0 -35
  609. package/dist/core/auth/aws-iam-provider.js +0 -177
  610. package/dist/core/auth/azure-ad-provider.d.ts +0 -15
  611. package/dist/core/auth/azure-ad-provider.js +0 -99
  612. package/dist/core/auth/basic-auth-provider.d.ts +0 -26
  613. package/dist/core/auth/basic-auth-provider.js +0 -111
  614. package/dist/core/auth/gcp-adc-provider.d.ts +0 -27
  615. package/dist/core/auth/gcp-adc-provider.js +0 -126
  616. package/dist/core/auth/index.d.ts +0 -238
  617. package/dist/core/auth/index.js +0 -82
  618. package/dist/core/auth/jwt-provider.d.ts +0 -19
  619. package/dist/core/auth/jwt-provider.js +0 -160
  620. package/dist/core/auth/manager.d.ts +0 -84
  621. package/dist/core/auth/manager.js +0 -230
  622. package/dist/core/auth/oauth2-provider.d.ts +0 -17
  623. package/dist/core/auth/oauth2-provider.js +0 -114
  624. package/dist/core/auth/totp-provider.d.ts +0 -31
  625. package/dist/core/auth/totp-provider.js +0 -134
  626. package/dist/core/auth/ui-login-provider.d.ts +0 -26
  627. package/dist/core/auth/ui-login-provider.js +0 -198
  628. package/dist/core/cache/index.d.ts +0 -7
  629. package/dist/core/cache/index.js +0 -6
  630. package/dist/core/cache/lru-cache.d.ts +0 -203
  631. package/dist/core/cache/lru-cache.js +0 -397
  632. package/dist/core/core/coverage/analyzer.d.ts +0 -101
  633. package/dist/core/core/coverage/analyzer.js +0 -415
  634. package/dist/core/core/coverage/collector.d.ts +0 -74
  635. package/dist/core/core/coverage/collector.js +0 -459
  636. package/dist/core/core/coverage/config.d.ts +0 -37
  637. package/dist/core/core/coverage/config.js +0 -156
  638. package/dist/core/core/coverage/index.d.ts +0 -11
  639. package/dist/core/core/coverage/index.js +0 -15
  640. package/dist/core/core/coverage/types.d.ts +0 -267
  641. package/dist/core/core/coverage/types.js +0 -6
  642. package/dist/core/core/coverage/vault.d.ts +0 -95
  643. package/dist/core/core/coverage/vault.js +0 -405
  644. package/dist/core/coverage/analyzer.d.ts +0 -101
  645. package/dist/core/coverage/analyzer.js +0 -415
  646. package/dist/core/coverage/collector.d.ts +0 -74
  647. package/dist/core/coverage/collector.js +0 -459
  648. package/dist/core/coverage/config.d.ts +0 -37
  649. package/dist/core/coverage/config.js +0 -156
  650. package/dist/core/coverage/index.d.ts +0 -11
  651. package/dist/core/coverage/index.js +0 -15
  652. package/dist/core/coverage/types.d.ts +0 -267
  653. package/dist/core/coverage/types.js +0 -6
  654. package/dist/core/coverage/vault.d.ts +0 -95
  655. package/dist/core/coverage/vault.js +0 -405
  656. package/dist/core/crawler/index.d.ts +0 -57
  657. package/dist/core/crawler/index.js +0 -281
  658. package/dist/core/crawler/journey-generator.d.ts +0 -49
  659. package/dist/core/crawler/journey-generator.js +0 -412
  660. package/dist/core/crawler/page-analyzer.d.ts +0 -88
  661. package/dist/core/crawler/page-analyzer.js +0 -709
  662. package/dist/core/crawler/selector-generator.d.ts +0 -34
  663. package/dist/core/crawler/selector-generator.js +0 -240
  664. package/dist/core/crawler/types.d.ts +0 -353
  665. package/dist/core/crawler/types.js +0 -6
  666. package/dist/core/dashboard/assets.d.ts +0 -6
  667. package/dist/core/dashboard/assets.js +0 -690
  668. package/dist/core/dashboard/index.d.ts +0 -6
  669. package/dist/core/dashboard/index.js +0 -5
  670. package/dist/core/dashboard/server.d.ts +0 -72
  671. package/dist/core/dashboard/server.js +0 -354
  672. package/dist/core/dashboard/types.d.ts +0 -70
  673. package/dist/core/dashboard/types.js +0 -5
  674. package/dist/core/discoverer/index.d.ts +0 -115
  675. package/dist/core/discoverer/index.js +0 -250
  676. package/dist/core/flakiness/index.d.ts +0 -228
  677. package/dist/core/flakiness/index.js +0 -384
  678. package/dist/core/generation/code-formatter.d.ts +0 -111
  679. package/dist/core/generation/code-formatter.js +0 -307
  680. package/dist/core/generation/code-generator.d.ts +0 -144
  681. package/dist/core/generation/code-generator.js +0 -293
  682. package/dist/core/generation/crawler-pack-generator.d.ts +0 -44
  683. package/dist/core/generation/crawler-pack-generator.js +0 -231
  684. package/dist/core/generation/generator.d.ts +0 -40
  685. package/dist/core/generation/generator.js +0 -76
  686. package/dist/core/generation/index.d.ts +0 -32
  687. package/dist/core/generation/index.js +0 -30
  688. package/dist/core/generation/pack-generator.d.ts +0 -107
  689. package/dist/core/generation/pack-generator.js +0 -416
  690. package/dist/core/generation/prompt-builder.d.ts +0 -132
  691. package/dist/core/generation/prompt-builder.js +0 -672
  692. package/dist/core/generation/source-analyzer.d.ts +0 -213
  693. package/dist/core/generation/source-analyzer.js +0 -657
  694. package/dist/core/generation/test-optimizer.d.ts +0 -117
  695. package/dist/core/generation/test-optimizer.js +0 -328
  696. package/dist/core/generation/types.d.ts +0 -214
  697. package/dist/core/generation/types.js +0 -4
  698. package/dist/core/hooks/compose.d.ts +0 -61
  699. package/dist/core/hooks/compose.js +0 -225
  700. package/dist/core/hooks/runner.d.ts +0 -68
  701. package/dist/core/hooks/runner.js +0 -303
  702. package/dist/core/index.d.ts +0 -104
  703. package/dist/core/index.js +0 -91
  704. package/dist/core/pack/migrator.d.ts +0 -51
  705. package/dist/core/pack/migrator.js +0 -304
  706. package/dist/core/pack/validator.d.ts +0 -42
  707. package/dist/core/pack/validator.js +0 -322
  708. package/dist/core/pack-v2/index.d.ts +0 -9
  709. package/dist/core/pack-v2/index.js +0 -8
  710. package/dist/core/pack-v2/loader.d.ts +0 -62
  711. package/dist/core/pack-v2/loader.js +0 -259
  712. package/dist/core/pack-v2/migrator.d.ts +0 -61
  713. package/dist/core/pack-v2/migrator.js +0 -480
  714. package/dist/core/pack-v2/validator.d.ts +0 -61
  715. package/dist/core/pack-v2/validator.js +0 -577
  716. package/dist/core/parallel/index.d.ts +0 -6
  717. package/dist/core/parallel/index.js +0 -6
  718. package/dist/core/parallel/parallel-runner.d.ts +0 -107
  719. package/dist/core/parallel/parallel-runner.js +0 -192
  720. package/dist/core/proof/bundle.d.ts +0 -137
  721. package/dist/core/proof/bundle.js +0 -160
  722. package/dist/core/proof/canonicalize.d.ts +0 -47
  723. package/dist/core/proof/canonicalize.js +0 -105
  724. package/dist/core/proof/index.d.ts +0 -13
  725. package/dist/core/proof/index.js +0 -18
  726. package/dist/core/proof/schema.d.ts +0 -217
  727. package/dist/core/proof/schema.js +0 -263
  728. package/dist/core/proof/signer.d.ts +0 -111
  729. package/dist/core/proof/signer.js +0 -226
  730. package/dist/core/proof/verifier.d.ts +0 -97
  731. package/dist/core/proof/verifier.js +0 -308
  732. package/dist/core/regression/detector.d.ts +0 -107
  733. package/dist/core/regression/detector.js +0 -497
  734. package/dist/core/regression/index.d.ts +0 -9
  735. package/dist/core/regression/index.js +0 -11
  736. package/dist/core/regression/trend-analyzer.d.ts +0 -102
  737. package/dist/core/regression/trend-analyzer.js +0 -345
  738. package/dist/core/regression/types.d.ts +0 -222
  739. package/dist/core/regression/types.js +0 -7
  740. package/dist/core/regression/vault.d.ts +0 -87
  741. package/dist/core/regression/vault.js +0 -289
  742. package/dist/core/repair/engine/fixer.d.ts +0 -24
  743. package/dist/core/repair/engine/fixer.js +0 -226
  744. package/dist/core/repair/engine/suggestion-engine.d.ts +0 -18
  745. package/dist/core/repair/engine/suggestion-engine.js +0 -187
  746. package/dist/core/repair/index.d.ts +0 -10
  747. package/dist/core/repair/index.js +0 -13
  748. package/dist/core/repair/repairer.d.ts +0 -90
  749. package/dist/core/repair/repairer.js +0 -284
  750. package/dist/core/repair/types.d.ts +0 -91
  751. package/dist/core/repair/types.js +0 -6
  752. package/dist/core/repair/utils/error-analyzer.d.ts +0 -28
  753. package/dist/core/repair/utils/error-analyzer.js +0 -264
  754. package/dist/core/reporting/html-reporter.d.ts +0 -119
  755. package/dist/core/reporting/html-reporter.js +0 -737
  756. package/dist/core/reporting/index.d.ts +0 -6
  757. package/dist/core/reporting/index.js +0 -6
  758. package/dist/core/retry/flakiness-integration.d.ts +0 -60
  759. package/dist/core/retry/flakiness-integration.js +0 -228
  760. package/dist/core/retry/index.d.ts +0 -14
  761. package/dist/core/retry/index.js +0 -16
  762. package/dist/core/retry/retry-engine.d.ts +0 -80
  763. package/dist/core/retry/retry-engine.js +0 -296
  764. package/dist/core/retry/types.d.ts +0 -178
  765. package/dist/core/retry/types.js +0 -52
  766. package/dist/core/retry/vault.d.ts +0 -77
  767. package/dist/core/retry/vault.js +0 -304
  768. package/dist/core/runner/e2e-helpers.d.ts +0 -102
  769. package/dist/core/runner/e2e-helpers.js +0 -153
  770. package/dist/core/runner/phase3-runner.d.ts +0 -200
  771. package/dist/core/runner/phase3-runner.js +0 -1039
  772. package/dist/core/secrets/crypto.d.ts +0 -75
  773. package/dist/core/secrets/crypto.js +0 -223
  774. package/dist/core/secrets/manager.d.ts +0 -76
  775. package/dist/core/secrets/manager.js +0 -219
  776. package/dist/core/security/redaction-patterns-extended.d.ts +0 -27
  777. package/dist/core/security/redaction-patterns-extended.js +0 -247
  778. package/dist/core/security/redactor.d.ts +0 -71
  779. package/dist/core/security/redactor.js +0 -279
  780. package/dist/core/self-healing/assertion-healer.d.ts +0 -97
  781. package/dist/core/self-healing/assertion-healer.js +0 -371
  782. package/dist/core/self-healing/engine.d.ts +0 -122
  783. package/dist/core/self-healing/engine.js +0 -538
  784. package/dist/core/self-healing/index.d.ts +0 -10
  785. package/dist/core/self-healing/index.js +0 -11
  786. package/dist/core/self-healing/selector-healer.d.ts +0 -103
  787. package/dist/core/self-healing/selector-healer.js +0 -372
  788. package/dist/core/self-healing/types.d.ts +0 -152
  789. package/dist/core/self-healing/types.js +0 -6
  790. package/dist/core/serve/diagnostics-collector.d.ts +0 -32
  791. package/dist/core/serve/diagnostics-collector.js +0 -149
  792. package/dist/core/serve/health-checker.d.ts +0 -44
  793. package/dist/core/serve/health-checker.js +0 -219
  794. package/dist/core/serve/index.d.ts +0 -8
  795. package/dist/core/serve/index.js +0 -8
  796. package/dist/core/serve/metrics-collector.d.ts +0 -24
  797. package/dist/core/serve/metrics-collector.js +0 -322
  798. package/dist/core/serve/process-manager.d.ts +0 -36
  799. package/dist/core/serve/process-manager.js +0 -213
  800. package/dist/core/serve/server.d.ts +0 -36
  801. package/dist/core/serve/server.js +0 -191
  802. package/dist/core/slo/config.d.ts +0 -107
  803. package/dist/core/slo/config.js +0 -360
  804. package/dist/core/slo/index.d.ts +0 -11
  805. package/dist/core/slo/index.js +0 -15
  806. package/dist/core/slo/sli-calculator.d.ts +0 -92
  807. package/dist/core/slo/sli-calculator.js +0 -364
  808. package/dist/core/slo/slo-tracker.d.ts +0 -148
  809. package/dist/core/slo/slo-tracker.js +0 -379
  810. package/dist/core/slo/types.d.ts +0 -281
  811. package/dist/core/slo/types.js +0 -7
  812. package/dist/core/slo/vault.d.ts +0 -102
  813. package/dist/core/slo/vault.js +0 -427
  814. package/dist/core/tui/index.d.ts +0 -7
  815. package/dist/core/tui/index.js +0 -6
  816. package/dist/core/tui/monitor.d.ts +0 -92
  817. package/dist/core/tui/monitor.js +0 -271
  818. package/dist/core/tui/renderer.d.ts +0 -33
  819. package/dist/core/tui/renderer.js +0 -218
  820. package/dist/core/tui/types.d.ts +0 -63
  821. package/dist/core/tui/types.js +0 -5
  822. package/dist/core/types/pack-v1.d.ts +0 -251
  823. package/dist/core/types/pack-v1.js +0 -5
  824. package/dist/core/types/pack-v2.d.ts +0 -425
  825. package/dist/core/types/pack-v2.js +0 -8
  826. package/dist/core/types/trust-score.d.ts +0 -69
  827. package/dist/core/types/trust-score.js +0 -191
  828. package/dist/core/vault/cas.d.ts +0 -90
  829. package/dist/core/vault/cas.js +0 -261
  830. package/dist/core/vault/index.d.ts +0 -326
  831. package/dist/core/vault/index.js +0 -1042
  832. package/dist/core/visual/index.d.ts +0 -6
  833. package/dist/core/visual/index.js +0 -6
  834. package/dist/core/visual/visual-regression.d.ts +0 -113
  835. package/dist/core/visual/visual-regression.js +0 -236
  836. package/dist/core/watch/index.d.ts +0 -7
  837. package/dist/core/watch/index.js +0 -6
  838. package/dist/core/watch/watch-mode.d.ts +0 -213
  839. package/dist/core/watch/watch-mode.js +0 -389
  840. package/dist/generators/index.d.ts +0 -5
  841. package/dist/generators/index.js +0 -5
  842. package/dist/generators/json-reporter.d.ts +0 -10
  843. package/dist/generators/json-reporter.js +0 -12
  844. package/dist/generators/test-generator.d.ts +0 -18
  845. package/dist/generators/test-generator.js +0 -78
  846. package/dist/index.d.ts +0 -8
  847. package/dist/index.js +0 -246
  848. package/dist/scanners/dom-scanner.d.ts +0 -52
  849. package/dist/scanners/dom-scanner.js +0 -296
  850. package/dist/scanners/index.d.ts +0 -4
  851. package/dist/scanners/index.js +0 -4
  852. package/dist/schemas/pack.schema.json +0 -236
  853. package/dist/types/scan.d.ts +0 -68
  854. package/dist/types/scan.js +0 -4
  855. package/dist/utils/config.d.ts +0 -5
  856. package/dist/utils/config.js +0 -136
  857. /package/{bin → cli/bin}/qa360.js +0 -0
  858. /package/{examples → cli/examples}/accessibility.yml +0 -0
  859. /package/{examples → cli/examples}/api-basic.yml +0 -0
  860. /package/{examples → cli/examples}/complete.yml +0 -0
  861. /package/{examples → cli/examples}/crawler.yml +0 -0
  862. /package/{examples → cli/examples}/fullstack.yml +0 -0
  863. /package/{examples → cli/examples}/security.yml +0 -0
  864. /package/{examples → cli/examples}/ui-advanced.yml +0 -0
  865. /package/{examples → cli/examples}/ui-basic.yml +0 -0
  866. /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.