@dotsetlabs/bellwether 0.10.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 (403) hide show
  1. package/CHANGELOG.md +291 -0
  2. package/LICENSE +21 -0
  3. package/README.md +739 -0
  4. package/dist/auth/credentials.d.ts +64 -0
  5. package/dist/auth/credentials.js +218 -0
  6. package/dist/auth/index.d.ts +6 -0
  7. package/dist/auth/index.js +6 -0
  8. package/dist/auth/keychain.d.ts +64 -0
  9. package/dist/auth/keychain.js +268 -0
  10. package/dist/baseline/ab-testing.d.ts +80 -0
  11. package/dist/baseline/ab-testing.js +236 -0
  12. package/dist/baseline/ai-compatibility-scorer.d.ts +95 -0
  13. package/dist/baseline/ai-compatibility-scorer.js +606 -0
  14. package/dist/baseline/calibration.d.ts +77 -0
  15. package/dist/baseline/calibration.js +136 -0
  16. package/dist/baseline/category-matching.d.ts +85 -0
  17. package/dist/baseline/category-matching.js +289 -0
  18. package/dist/baseline/change-impact-analyzer.d.ts +98 -0
  19. package/dist/baseline/change-impact-analyzer.js +592 -0
  20. package/dist/baseline/comparator.d.ts +64 -0
  21. package/dist/baseline/comparator.js +916 -0
  22. package/dist/baseline/confidence.d.ts +55 -0
  23. package/dist/baseline/confidence.js +122 -0
  24. package/dist/baseline/converter.d.ts +61 -0
  25. package/dist/baseline/converter.js +585 -0
  26. package/dist/baseline/dependency-analyzer.d.ts +89 -0
  27. package/dist/baseline/dependency-analyzer.js +567 -0
  28. package/dist/baseline/deprecation-tracker.d.ts +133 -0
  29. package/dist/baseline/deprecation-tracker.js +322 -0
  30. package/dist/baseline/diff.d.ts +55 -0
  31. package/dist/baseline/diff.js +1584 -0
  32. package/dist/baseline/documentation-scorer.d.ts +205 -0
  33. package/dist/baseline/documentation-scorer.js +466 -0
  34. package/dist/baseline/embeddings.d.ts +118 -0
  35. package/dist/baseline/embeddings.js +251 -0
  36. package/dist/baseline/error-analyzer.d.ts +198 -0
  37. package/dist/baseline/error-analyzer.js +721 -0
  38. package/dist/baseline/evaluation/evaluator.d.ts +42 -0
  39. package/dist/baseline/evaluation/evaluator.js +323 -0
  40. package/dist/baseline/evaluation/expanded-dataset.d.ts +45 -0
  41. package/dist/baseline/evaluation/expanded-dataset.js +1164 -0
  42. package/dist/baseline/evaluation/golden-dataset.d.ts +58 -0
  43. package/dist/baseline/evaluation/golden-dataset.js +717 -0
  44. package/dist/baseline/evaluation/index.d.ts +15 -0
  45. package/dist/baseline/evaluation/index.js +15 -0
  46. package/dist/baseline/evaluation/types.d.ts +186 -0
  47. package/dist/baseline/evaluation/types.js +8 -0
  48. package/dist/baseline/external-dependency-detector.d.ts +181 -0
  49. package/dist/baseline/external-dependency-detector.js +524 -0
  50. package/dist/baseline/golden-output.d.ts +162 -0
  51. package/dist/baseline/golden-output.js +636 -0
  52. package/dist/baseline/health-scorer.d.ts +174 -0
  53. package/dist/baseline/health-scorer.js +451 -0
  54. package/dist/baseline/incremental-checker.d.ts +97 -0
  55. package/dist/baseline/incremental-checker.js +174 -0
  56. package/dist/baseline/index.d.ts +31 -0
  57. package/dist/baseline/index.js +42 -0
  58. package/dist/baseline/migration-generator.d.ts +137 -0
  59. package/dist/baseline/migration-generator.js +554 -0
  60. package/dist/baseline/migrations.d.ts +60 -0
  61. package/dist/baseline/migrations.js +197 -0
  62. package/dist/baseline/performance-tracker.d.ts +214 -0
  63. package/dist/baseline/performance-tracker.js +577 -0
  64. package/dist/baseline/pr-comment-generator.d.ts +117 -0
  65. package/dist/baseline/pr-comment-generator.js +546 -0
  66. package/dist/baseline/response-fingerprint.d.ts +127 -0
  67. package/dist/baseline/response-fingerprint.js +728 -0
  68. package/dist/baseline/response-schema-tracker.d.ts +129 -0
  69. package/dist/baseline/response-schema-tracker.js +420 -0
  70. package/dist/baseline/risk-scorer.d.ts +54 -0
  71. package/dist/baseline/risk-scorer.js +434 -0
  72. package/dist/baseline/saver.d.ts +89 -0
  73. package/dist/baseline/saver.js +554 -0
  74. package/dist/baseline/scenario-generator.d.ts +151 -0
  75. package/dist/baseline/scenario-generator.js +905 -0
  76. package/dist/baseline/schema-compare.d.ts +86 -0
  77. package/dist/baseline/schema-compare.js +557 -0
  78. package/dist/baseline/schema-evolution.d.ts +189 -0
  79. package/dist/baseline/schema-evolution.js +467 -0
  80. package/dist/baseline/semantic.d.ts +203 -0
  81. package/dist/baseline/semantic.js +908 -0
  82. package/dist/baseline/synonyms.d.ts +60 -0
  83. package/dist/baseline/synonyms.js +386 -0
  84. package/dist/baseline/telemetry.d.ts +165 -0
  85. package/dist/baseline/telemetry.js +294 -0
  86. package/dist/baseline/test-pruner.d.ts +120 -0
  87. package/dist/baseline/test-pruner.js +387 -0
  88. package/dist/baseline/types.d.ts +449 -0
  89. package/dist/baseline/types.js +5 -0
  90. package/dist/baseline/version.d.ts +138 -0
  91. package/dist/baseline/version.js +206 -0
  92. package/dist/cache/index.d.ts +5 -0
  93. package/dist/cache/index.js +5 -0
  94. package/dist/cache/response-cache.d.ts +151 -0
  95. package/dist/cache/response-cache.js +287 -0
  96. package/dist/ci/index.d.ts +60 -0
  97. package/dist/ci/index.js +342 -0
  98. package/dist/cli/commands/auth.d.ts +12 -0
  99. package/dist/cli/commands/auth.js +352 -0
  100. package/dist/cli/commands/badge.d.ts +3 -0
  101. package/dist/cli/commands/badge.js +74 -0
  102. package/dist/cli/commands/baseline-accept.d.ts +15 -0
  103. package/dist/cli/commands/baseline-accept.js +178 -0
  104. package/dist/cli/commands/baseline-migrate.d.ts +12 -0
  105. package/dist/cli/commands/baseline-migrate.js +164 -0
  106. package/dist/cli/commands/baseline.d.ts +14 -0
  107. package/dist/cli/commands/baseline.js +449 -0
  108. package/dist/cli/commands/beta.d.ts +10 -0
  109. package/dist/cli/commands/beta.js +231 -0
  110. package/dist/cli/commands/check.d.ts +11 -0
  111. package/dist/cli/commands/check.js +820 -0
  112. package/dist/cli/commands/cloud/badge.d.ts +3 -0
  113. package/dist/cli/commands/cloud/badge.js +74 -0
  114. package/dist/cli/commands/cloud/diff.d.ts +6 -0
  115. package/dist/cli/commands/cloud/diff.js +79 -0
  116. package/dist/cli/commands/cloud/history.d.ts +6 -0
  117. package/dist/cli/commands/cloud/history.js +102 -0
  118. package/dist/cli/commands/cloud/link.d.ts +9 -0
  119. package/dist/cli/commands/cloud/link.js +119 -0
  120. package/dist/cli/commands/cloud/login.d.ts +7 -0
  121. package/dist/cli/commands/cloud/login.js +499 -0
  122. package/dist/cli/commands/cloud/projects.d.ts +6 -0
  123. package/dist/cli/commands/cloud/projects.js +44 -0
  124. package/dist/cli/commands/cloud/shared.d.ts +7 -0
  125. package/dist/cli/commands/cloud/shared.js +42 -0
  126. package/dist/cli/commands/cloud/teams.d.ts +8 -0
  127. package/dist/cli/commands/cloud/teams.js +169 -0
  128. package/dist/cli/commands/cloud/upload.d.ts +8 -0
  129. package/dist/cli/commands/cloud/upload.js +181 -0
  130. package/dist/cli/commands/contract.d.ts +11 -0
  131. package/dist/cli/commands/contract.js +280 -0
  132. package/dist/cli/commands/discover.d.ts +3 -0
  133. package/dist/cli/commands/discover.js +82 -0
  134. package/dist/cli/commands/eval.d.ts +9 -0
  135. package/dist/cli/commands/eval.js +187 -0
  136. package/dist/cli/commands/explore.d.ts +11 -0
  137. package/dist/cli/commands/explore.js +437 -0
  138. package/dist/cli/commands/feedback.d.ts +9 -0
  139. package/dist/cli/commands/feedback.js +174 -0
  140. package/dist/cli/commands/golden.d.ts +12 -0
  141. package/dist/cli/commands/golden.js +407 -0
  142. package/dist/cli/commands/history.d.ts +10 -0
  143. package/dist/cli/commands/history.js +202 -0
  144. package/dist/cli/commands/init.d.ts +9 -0
  145. package/dist/cli/commands/init.js +219 -0
  146. package/dist/cli/commands/interview.d.ts +3 -0
  147. package/dist/cli/commands/interview.js +903 -0
  148. package/dist/cli/commands/link.d.ts +10 -0
  149. package/dist/cli/commands/link.js +169 -0
  150. package/dist/cli/commands/login.d.ts +7 -0
  151. package/dist/cli/commands/login.js +499 -0
  152. package/dist/cli/commands/preset.d.ts +33 -0
  153. package/dist/cli/commands/preset.js +297 -0
  154. package/dist/cli/commands/profile.d.ts +33 -0
  155. package/dist/cli/commands/profile.js +286 -0
  156. package/dist/cli/commands/registry.d.ts +11 -0
  157. package/dist/cli/commands/registry.js +146 -0
  158. package/dist/cli/commands/shared.d.ts +79 -0
  159. package/dist/cli/commands/shared.js +196 -0
  160. package/dist/cli/commands/teams.d.ts +8 -0
  161. package/dist/cli/commands/teams.js +169 -0
  162. package/dist/cli/commands/test.d.ts +9 -0
  163. package/dist/cli/commands/test.js +500 -0
  164. package/dist/cli/commands/upload.d.ts +8 -0
  165. package/dist/cli/commands/upload.js +223 -0
  166. package/dist/cli/commands/validate-config.d.ts +6 -0
  167. package/dist/cli/commands/validate-config.js +35 -0
  168. package/dist/cli/commands/verify.d.ts +11 -0
  169. package/dist/cli/commands/verify.js +283 -0
  170. package/dist/cli/commands/watch.d.ts +12 -0
  171. package/dist/cli/commands/watch.js +253 -0
  172. package/dist/cli/index.d.ts +3 -0
  173. package/dist/cli/index.js +178 -0
  174. package/dist/cli/interactive.d.ts +47 -0
  175. package/dist/cli/interactive.js +216 -0
  176. package/dist/cli/output/terminal-reporter.d.ts +19 -0
  177. package/dist/cli/output/terminal-reporter.js +104 -0
  178. package/dist/cli/output.d.ts +226 -0
  179. package/dist/cli/output.js +438 -0
  180. package/dist/cli/utils/env.d.ts +5 -0
  181. package/dist/cli/utils/env.js +14 -0
  182. package/dist/cli/utils/progress.d.ts +59 -0
  183. package/dist/cli/utils/progress.js +206 -0
  184. package/dist/cli/utils/server-context.d.ts +10 -0
  185. package/dist/cli/utils/server-context.js +36 -0
  186. package/dist/cloud/auth.d.ts +144 -0
  187. package/dist/cloud/auth.js +374 -0
  188. package/dist/cloud/client.d.ts +24 -0
  189. package/dist/cloud/client.js +65 -0
  190. package/dist/cloud/http-client.d.ts +38 -0
  191. package/dist/cloud/http-client.js +215 -0
  192. package/dist/cloud/index.d.ts +23 -0
  193. package/dist/cloud/index.js +25 -0
  194. package/dist/cloud/mock-client.d.ts +107 -0
  195. package/dist/cloud/mock-client.js +545 -0
  196. package/dist/cloud/types.d.ts +515 -0
  197. package/dist/cloud/types.js +15 -0
  198. package/dist/config/defaults.d.ts +160 -0
  199. package/dist/config/defaults.js +169 -0
  200. package/dist/config/loader.d.ts +24 -0
  201. package/dist/config/loader.js +122 -0
  202. package/dist/config/template.d.ts +42 -0
  203. package/dist/config/template.js +647 -0
  204. package/dist/config/validator.d.ts +2112 -0
  205. package/dist/config/validator.js +658 -0
  206. package/dist/constants/cloud.d.ts +107 -0
  207. package/dist/constants/cloud.js +110 -0
  208. package/dist/constants/core.d.ts +521 -0
  209. package/dist/constants/core.js +556 -0
  210. package/dist/constants/testing.d.ts +1283 -0
  211. package/dist/constants/testing.js +1568 -0
  212. package/dist/constants.d.ts +10 -0
  213. package/dist/constants.js +10 -0
  214. package/dist/contract/index.d.ts +6 -0
  215. package/dist/contract/index.js +5 -0
  216. package/dist/contract/validator.d.ts +177 -0
  217. package/dist/contract/validator.js +574 -0
  218. package/dist/cost/index.d.ts +6 -0
  219. package/dist/cost/index.js +5 -0
  220. package/dist/cost/tracker.d.ts +134 -0
  221. package/dist/cost/tracker.js +313 -0
  222. package/dist/discovery/discovery.d.ts +16 -0
  223. package/dist/discovery/discovery.js +173 -0
  224. package/dist/discovery/types.d.ts +51 -0
  225. package/dist/discovery/types.js +2 -0
  226. package/dist/docs/agents.d.ts +3 -0
  227. package/dist/docs/agents.js +995 -0
  228. package/dist/docs/contract.d.ts +51 -0
  229. package/dist/docs/contract.js +1681 -0
  230. package/dist/docs/generator.d.ts +4 -0
  231. package/dist/docs/generator.js +4 -0
  232. package/dist/docs/html-reporter.d.ts +9 -0
  233. package/dist/docs/html-reporter.js +757 -0
  234. package/dist/docs/index.d.ts +10 -0
  235. package/dist/docs/index.js +11 -0
  236. package/dist/docs/junit-reporter.d.ts +18 -0
  237. package/dist/docs/junit-reporter.js +210 -0
  238. package/dist/docs/report.d.ts +14 -0
  239. package/dist/docs/report.js +44 -0
  240. package/dist/docs/sarif-reporter.d.ts +19 -0
  241. package/dist/docs/sarif-reporter.js +335 -0
  242. package/dist/docs/shared.d.ts +35 -0
  243. package/dist/docs/shared.js +162 -0
  244. package/dist/docs/templates.d.ts +12 -0
  245. package/dist/docs/templates.js +76 -0
  246. package/dist/errors/index.d.ts +6 -0
  247. package/dist/errors/index.js +6 -0
  248. package/dist/errors/retry.d.ts +92 -0
  249. package/dist/errors/retry.js +323 -0
  250. package/dist/errors/types.d.ts +321 -0
  251. package/dist/errors/types.js +584 -0
  252. package/dist/index.d.ts +32 -0
  253. package/dist/index.js +32 -0
  254. package/dist/interview/dependency-resolver.d.ts +11 -0
  255. package/dist/interview/dependency-resolver.js +32 -0
  256. package/dist/interview/interviewer.d.ts +232 -0
  257. package/dist/interview/interviewer.js +1939 -0
  258. package/dist/interview/mock-response-generator.d.ts +7 -0
  259. package/dist/interview/mock-response-generator.js +102 -0
  260. package/dist/interview/orchestrator.d.ts +237 -0
  261. package/dist/interview/orchestrator.js +1296 -0
  262. package/dist/interview/rate-limiter.d.ts +15 -0
  263. package/dist/interview/rate-limiter.js +55 -0
  264. package/dist/interview/response-validator.d.ts +10 -0
  265. package/dist/interview/response-validator.js +132 -0
  266. package/dist/interview/schema-inferrer.d.ts +8 -0
  267. package/dist/interview/schema-inferrer.js +71 -0
  268. package/dist/interview/schema-test-generator.d.ts +71 -0
  269. package/dist/interview/schema-test-generator.js +834 -0
  270. package/dist/interview/smart-value-generator.d.ts +155 -0
  271. package/dist/interview/smart-value-generator.js +554 -0
  272. package/dist/interview/stateful-test-runner.d.ts +19 -0
  273. package/dist/interview/stateful-test-runner.js +106 -0
  274. package/dist/interview/types.d.ts +561 -0
  275. package/dist/interview/types.js +2 -0
  276. package/dist/llm/anthropic.d.ts +41 -0
  277. package/dist/llm/anthropic.js +355 -0
  278. package/dist/llm/client.d.ts +123 -0
  279. package/dist/llm/client.js +42 -0
  280. package/dist/llm/factory.d.ts +38 -0
  281. package/dist/llm/factory.js +145 -0
  282. package/dist/llm/fallback.d.ts +140 -0
  283. package/dist/llm/fallback.js +379 -0
  284. package/dist/llm/index.d.ts +18 -0
  285. package/dist/llm/index.js +15 -0
  286. package/dist/llm/ollama.d.ts +37 -0
  287. package/dist/llm/ollama.js +330 -0
  288. package/dist/llm/openai.d.ts +25 -0
  289. package/dist/llm/openai.js +320 -0
  290. package/dist/llm/token-budget.d.ts +161 -0
  291. package/dist/llm/token-budget.js +395 -0
  292. package/dist/logging/logger.d.ts +70 -0
  293. package/dist/logging/logger.js +130 -0
  294. package/dist/metrics/collector.d.ts +106 -0
  295. package/dist/metrics/collector.js +547 -0
  296. package/dist/metrics/index.d.ts +7 -0
  297. package/dist/metrics/index.js +7 -0
  298. package/dist/metrics/prometheus.d.ts +20 -0
  299. package/dist/metrics/prometheus.js +241 -0
  300. package/dist/metrics/types.d.ts +209 -0
  301. package/dist/metrics/types.js +5 -0
  302. package/dist/persona/builtins.d.ts +54 -0
  303. package/dist/persona/builtins.js +219 -0
  304. package/dist/persona/index.d.ts +8 -0
  305. package/dist/persona/index.js +8 -0
  306. package/dist/persona/loader.d.ts +30 -0
  307. package/dist/persona/loader.js +190 -0
  308. package/dist/persona/types.d.ts +144 -0
  309. package/dist/persona/types.js +5 -0
  310. package/dist/persona/validation.d.ts +94 -0
  311. package/dist/persona/validation.js +332 -0
  312. package/dist/prompts/index.d.ts +5 -0
  313. package/dist/prompts/index.js +5 -0
  314. package/dist/prompts/templates.d.ts +180 -0
  315. package/dist/prompts/templates.js +431 -0
  316. package/dist/registry/client.d.ts +49 -0
  317. package/dist/registry/client.js +191 -0
  318. package/dist/registry/index.d.ts +7 -0
  319. package/dist/registry/index.js +6 -0
  320. package/dist/registry/types.d.ts +140 -0
  321. package/dist/registry/types.js +6 -0
  322. package/dist/scenarios/evaluator.d.ts +43 -0
  323. package/dist/scenarios/evaluator.js +206 -0
  324. package/dist/scenarios/index.d.ts +10 -0
  325. package/dist/scenarios/index.js +9 -0
  326. package/dist/scenarios/loader.d.ts +20 -0
  327. package/dist/scenarios/loader.js +285 -0
  328. package/dist/scenarios/types.d.ts +153 -0
  329. package/dist/scenarios/types.js +8 -0
  330. package/dist/security/index.d.ts +17 -0
  331. package/dist/security/index.js +18 -0
  332. package/dist/security/payloads.d.ts +61 -0
  333. package/dist/security/payloads.js +268 -0
  334. package/dist/security/security-tester.d.ts +42 -0
  335. package/dist/security/security-tester.js +582 -0
  336. package/dist/security/types.d.ts +166 -0
  337. package/dist/security/types.js +8 -0
  338. package/dist/transport/base-transport.d.ts +59 -0
  339. package/dist/transport/base-transport.js +38 -0
  340. package/dist/transport/http-transport.d.ts +67 -0
  341. package/dist/transport/http-transport.js +238 -0
  342. package/dist/transport/mcp-client.d.ts +141 -0
  343. package/dist/transport/mcp-client.js +496 -0
  344. package/dist/transport/sse-transport.d.ts +88 -0
  345. package/dist/transport/sse-transport.js +316 -0
  346. package/dist/transport/stdio-transport.d.ts +43 -0
  347. package/dist/transport/stdio-transport.js +238 -0
  348. package/dist/transport/types.d.ts +125 -0
  349. package/dist/transport/types.js +16 -0
  350. package/dist/utils/concurrency.d.ts +123 -0
  351. package/dist/utils/concurrency.js +213 -0
  352. package/dist/utils/formatters.d.ts +16 -0
  353. package/dist/utils/formatters.js +37 -0
  354. package/dist/utils/index.d.ts +8 -0
  355. package/dist/utils/index.js +8 -0
  356. package/dist/utils/jsonpath.d.ts +87 -0
  357. package/dist/utils/jsonpath.js +326 -0
  358. package/dist/utils/markdown.d.ts +113 -0
  359. package/dist/utils/markdown.js +265 -0
  360. package/dist/utils/network.d.ts +14 -0
  361. package/dist/utils/network.js +17 -0
  362. package/dist/utils/sanitize.d.ts +92 -0
  363. package/dist/utils/sanitize.js +191 -0
  364. package/dist/utils/semantic.d.ts +194 -0
  365. package/dist/utils/semantic.js +1051 -0
  366. package/dist/utils/smart-truncate.d.ts +94 -0
  367. package/dist/utils/smart-truncate.js +361 -0
  368. package/dist/utils/timeout.d.ts +153 -0
  369. package/dist/utils/timeout.js +205 -0
  370. package/dist/utils/yaml-parser.d.ts +58 -0
  371. package/dist/utils/yaml-parser.js +86 -0
  372. package/dist/validation/index.d.ts +32 -0
  373. package/dist/validation/index.js +32 -0
  374. package/dist/validation/semantic-test-generator.d.ts +50 -0
  375. package/dist/validation/semantic-test-generator.js +176 -0
  376. package/dist/validation/semantic-types.d.ts +66 -0
  377. package/dist/validation/semantic-types.js +94 -0
  378. package/dist/validation/semantic-validator.d.ts +38 -0
  379. package/dist/validation/semantic-validator.js +340 -0
  380. package/dist/verification/index.d.ts +6 -0
  381. package/dist/verification/index.js +5 -0
  382. package/dist/verification/types.d.ts +133 -0
  383. package/dist/verification/types.js +5 -0
  384. package/dist/verification/verifier.d.ts +30 -0
  385. package/dist/verification/verifier.js +309 -0
  386. package/dist/version.d.ts +19 -0
  387. package/dist/version.js +48 -0
  388. package/dist/workflow/auto-generator.d.ts +27 -0
  389. package/dist/workflow/auto-generator.js +513 -0
  390. package/dist/workflow/discovery.d.ts +40 -0
  391. package/dist/workflow/discovery.js +195 -0
  392. package/dist/workflow/executor.d.ts +82 -0
  393. package/dist/workflow/executor.js +611 -0
  394. package/dist/workflow/index.d.ts +10 -0
  395. package/dist/workflow/index.js +10 -0
  396. package/dist/workflow/loader.d.ts +24 -0
  397. package/dist/workflow/loader.js +194 -0
  398. package/dist/workflow/state-tracker.d.ts +98 -0
  399. package/dist/workflow/state-tracker.js +424 -0
  400. package/dist/workflow/types.d.ts +337 -0
  401. package/dist/workflow/types.js +5 -0
  402. package/package.json +94 -0
  403. package/schemas/bellwether-check.schema.json +651 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Incremental checking for faster CI runs.
3
+ *
4
+ * Compares current tool schemas against a baseline to determine which tools
5
+ * need retesting. Tools with unchanged schemas can use cached results.
6
+ */
7
+ import type { MCPTool } from '../transport/types.js';
8
+ import type { BehavioralBaseline, ToolFingerprint } from './types.js';
9
+ /**
10
+ * Result of incremental analysis.
11
+ */
12
+ export interface IncrementalCheckResult {
13
+ /** Tools that need testing (new or changed schema) */
14
+ toolsToTest: string[];
15
+ /** Tools that can use cached results */
16
+ toolsToSkip: string[];
17
+ /** Tool fingerprints from baseline for skipped tools */
18
+ cachedFingerprints: ToolFingerprint[];
19
+ /** Summary of what changed */
20
+ changeSummary: IncrementalChangeSummary;
21
+ }
22
+ /**
23
+ * Summary of changes detected during incremental analysis.
24
+ */
25
+ export interface IncrementalChangeSummary {
26
+ /** Number of new tools (not in baseline) */
27
+ newTools: number;
28
+ /** Number of tools with changed schemas */
29
+ changedTools: number;
30
+ /** Number of tools with unchanged schemas */
31
+ unchangedTools: number;
32
+ /** Number of removed tools (in baseline but not current) */
33
+ removedTools: number;
34
+ /** Names of new tools */
35
+ newToolNames: string[];
36
+ /** Names of changed tools */
37
+ changedToolNames: string[];
38
+ /** Names of removed tools */
39
+ removedToolNames: string[];
40
+ }
41
+ /**
42
+ * Options for incremental checking.
43
+ */
44
+ export interface IncrementalCheckOptions {
45
+ /** Force retest even if schema unchanged */
46
+ forceRetest?: boolean;
47
+ /** Specific tools to always retest */
48
+ alwaysRetest?: string[];
49
+ /** Maximum age of cached results in hours (default: 168 = 1 week) */
50
+ maxCacheAgeHours?: number;
51
+ }
52
+ /**
53
+ * Determine which tools need testing based on schema changes.
54
+ *
55
+ * Algorithm:
56
+ * 1. Load previous baseline
57
+ * 2. Compare current tool schemas to baseline inputSchemaHash
58
+ * 3. Return list of tools that need testing (new or changed)
59
+ * 4. Return cached fingerprints for unchanged tools
60
+ *
61
+ * @param currentTools - Current tools from discovery
62
+ * @param baseline - Previous baseline to compare against
63
+ * @param options - Incremental check options
64
+ * @returns Analysis result with tools to test and cached data
65
+ */
66
+ export declare function analyzeForIncremental(currentTools: MCPTool[], baseline: BehavioralBaseline | null, options?: IncrementalCheckOptions): IncrementalCheckResult;
67
+ /**
68
+ * Merge new test results with cached fingerprints to create a complete baseline.
69
+ *
70
+ * @param newFingerprints - Fingerprints from newly tested tools
71
+ * @param cachedFingerprints - Fingerprints from skipped tools (cached)
72
+ * @returns Combined fingerprints in deterministic order
73
+ */
74
+ export declare function mergeFingerprints(newFingerprints: ToolFingerprint[], cachedFingerprints: ToolFingerprint[]): ToolFingerprint[];
75
+ /**
76
+ * Format incremental check summary for display.
77
+ *
78
+ * @param summary - The incremental change summary
79
+ * @returns Human-readable summary
80
+ */
81
+ export declare function formatIncrementalSummary(summary: IncrementalChangeSummary): string;
82
+ /**
83
+ * Check if incremental mode can provide meaningful speedup.
84
+ *
85
+ * @param result - Incremental check result
86
+ * @returns true if skipping tools provides >20% speedup
87
+ */
88
+ export declare function isIncrementalWorthwhile(result: IncrementalCheckResult): boolean;
89
+ /**
90
+ * Update tool fingerprints with incremental metadata.
91
+ *
92
+ * @param fingerprint - Tool fingerprint to update
93
+ * @param schemaHash - Current schema hash
94
+ * @returns Updated fingerprint with lastTestedAt and inputSchemaHashAtTest
95
+ */
96
+ export declare function addIncrementalMetadata(fingerprint: ToolFingerprint, schemaHash: string): ToolFingerprint;
97
+ //# sourceMappingURL=incremental-checker.d.ts.map
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Incremental checking for faster CI runs.
3
+ *
4
+ * Compares current tool schemas against a baseline to determine which tools
5
+ * need retesting. Tools with unchanged schemas can use cached results.
6
+ */
7
+ import { computeSchemaHash } from './schema-compare.js';
8
+ /**
9
+ * Determine which tools need testing based on schema changes.
10
+ *
11
+ * Algorithm:
12
+ * 1. Load previous baseline
13
+ * 2. Compare current tool schemas to baseline inputSchemaHash
14
+ * 3. Return list of tools that need testing (new or changed)
15
+ * 4. Return cached fingerprints for unchanged tools
16
+ *
17
+ * @param currentTools - Current tools from discovery
18
+ * @param baseline - Previous baseline to compare against
19
+ * @param options - Incremental check options
20
+ * @returns Analysis result with tools to test and cached data
21
+ */
22
+ export function analyzeForIncremental(currentTools, baseline, options = {}) {
23
+ const { forceRetest = false, alwaysRetest = [], maxCacheAgeHours = 168, // 1 week
24
+ } = options;
25
+ // If no baseline or force retest, test everything
26
+ if (!baseline || forceRetest) {
27
+ return {
28
+ toolsToTest: currentTools.map(t => t.name),
29
+ toolsToSkip: [],
30
+ cachedFingerprints: [],
31
+ changeSummary: {
32
+ newTools: baseline ? 0 : currentTools.length,
33
+ changedTools: 0,
34
+ unchangedTools: 0,
35
+ removedTools: 0,
36
+ newToolNames: baseline ? [] : currentTools.map(t => t.name),
37
+ changedToolNames: [],
38
+ removedToolNames: [],
39
+ },
40
+ };
41
+ }
42
+ const toolsToTest = [];
43
+ const toolsToSkip = [];
44
+ const cachedFingerprints = [];
45
+ const newToolNames = [];
46
+ const changedToolNames = [];
47
+ const removedToolNames = [];
48
+ // Build maps for comparison
49
+ const baselineToolMap = new Map(baseline.tools.map(t => [t.name, t]));
50
+ const currentToolSet = new Set(currentTools.map(t => t.name));
51
+ // Check current tools against baseline
52
+ for (const tool of currentTools) {
53
+ const baselineTool = baselineToolMap.get(tool.name);
54
+ // Always retest if in the alwaysRetest list
55
+ if (alwaysRetest.includes(tool.name)) {
56
+ toolsToTest.push(tool.name);
57
+ continue;
58
+ }
59
+ if (!baselineTool) {
60
+ // New tool - needs testing
61
+ toolsToTest.push(tool.name);
62
+ newToolNames.push(tool.name);
63
+ continue;
64
+ }
65
+ // Check if schema changed
66
+ const currentSchemaHash = computeSchemaHash(tool.inputSchema);
67
+ const baselineSchemaHash = baselineTool.schemaHash;
68
+ if (currentSchemaHash !== baselineSchemaHash) {
69
+ // Schema changed - needs retesting
70
+ toolsToTest.push(tool.name);
71
+ changedToolNames.push(tool.name);
72
+ continue;
73
+ }
74
+ // Check cache age if lastTestedAt is available
75
+ if (baselineTool.lastTestedAt) {
76
+ const testedAt = new Date(baselineTool.lastTestedAt);
77
+ const ageHours = (Date.now() - testedAt.getTime()) / (1000 * 60 * 60);
78
+ if (ageHours > maxCacheAgeHours) {
79
+ // Cache too old - needs retesting
80
+ toolsToTest.push(tool.name);
81
+ continue;
82
+ }
83
+ }
84
+ // Schema unchanged and cache valid - can skip
85
+ toolsToSkip.push(tool.name);
86
+ cachedFingerprints.push(baselineTool);
87
+ }
88
+ // Find removed tools (in baseline but not current)
89
+ for (const [name] of baselineToolMap) {
90
+ if (!currentToolSet.has(name)) {
91
+ removedToolNames.push(name);
92
+ }
93
+ }
94
+ return {
95
+ toolsToTest,
96
+ toolsToSkip,
97
+ cachedFingerprints,
98
+ changeSummary: {
99
+ newTools: newToolNames.length,
100
+ changedTools: changedToolNames.length,
101
+ unchangedTools: toolsToSkip.length,
102
+ removedTools: removedToolNames.length,
103
+ newToolNames,
104
+ changedToolNames,
105
+ removedToolNames,
106
+ },
107
+ };
108
+ }
109
+ /**
110
+ * Merge new test results with cached fingerprints to create a complete baseline.
111
+ *
112
+ * @param newFingerprints - Fingerprints from newly tested tools
113
+ * @param cachedFingerprints - Fingerprints from skipped tools (cached)
114
+ * @returns Combined fingerprints in deterministic order
115
+ */
116
+ export function mergeFingerprints(newFingerprints, cachedFingerprints) {
117
+ // Combine all fingerprints
118
+ const combined = [...newFingerprints, ...cachedFingerprints];
119
+ // Sort by name for deterministic ordering
120
+ return combined.sort((a, b) => a.name.localeCompare(b.name));
121
+ }
122
+ /**
123
+ * Format incremental check summary for display.
124
+ *
125
+ * @param summary - The incremental change summary
126
+ * @returns Human-readable summary
127
+ */
128
+ export function formatIncrementalSummary(summary) {
129
+ const parts = [];
130
+ if (summary.newTools > 0) {
131
+ parts.push(`${summary.newTools} new tool${summary.newTools > 1 ? 's' : ''}`);
132
+ }
133
+ if (summary.changedTools > 0) {
134
+ parts.push(`${summary.changedTools} changed`);
135
+ }
136
+ if (summary.unchangedTools > 0) {
137
+ parts.push(`${summary.unchangedTools} cached`);
138
+ }
139
+ if (summary.removedTools > 0) {
140
+ parts.push(`${summary.removedTools} removed`);
141
+ }
142
+ if (parts.length === 0) {
143
+ return 'No tools to check';
144
+ }
145
+ return parts.join(', ');
146
+ }
147
+ /**
148
+ * Check if incremental mode can provide meaningful speedup.
149
+ *
150
+ * @param result - Incremental check result
151
+ * @returns true if skipping tools provides >20% speedup
152
+ */
153
+ export function isIncrementalWorthwhile(result) {
154
+ const total = result.toolsToTest.length + result.toolsToSkip.length;
155
+ if (total === 0)
156
+ return false;
157
+ const skipRatio = result.toolsToSkip.length / total;
158
+ return skipRatio > 0.2; // At least 20% can be skipped
159
+ }
160
+ /**
161
+ * Update tool fingerprints with incremental metadata.
162
+ *
163
+ * @param fingerprint - Tool fingerprint to update
164
+ * @param schemaHash - Current schema hash
165
+ * @returns Updated fingerprint with lastTestedAt and inputSchemaHashAtTest
166
+ */
167
+ export function addIncrementalMetadata(fingerprint, schemaHash) {
168
+ return {
169
+ ...fingerprint,
170
+ lastTestedAt: new Date(),
171
+ inputSchemaHashAtTest: schemaHash,
172
+ };
173
+ }
174
+ //# sourceMappingURL=incremental-checker.js.map
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Baseline module - structural drift detection.
3
+ */
4
+ export type { ChangeSeverity, BehaviorAspect, BehavioralAssertion, BehaviorChange, ToolDiff, BehavioralDiff, ToolFingerprint, ServerFingerprint, BehavioralBaseline, WorkflowSignature, CompareOptions, BaselineMode, VersionCompatibilityInfo, DriftAcceptance, AcceptedDiff, SeverityConfig, SchemaEvolutionReport, SchemaEvolutionIssue, PerformanceRegressionReport, PerformanceRegression, PerformanceConfidence, PerformanceConfidenceChange, ConfidenceLevel, DocumentationScore, DocumentationScoreSummary, DocumentationScoreChange, DocumentationIssue, DocumentationGrade, DocumentationComponents, ToolDocumentationScore, } from './types.js';
5
+ export { createBaseline, saveBaseline, loadBaseline, verifyIntegrity, baselineExists, recalculateIntegrityHash, acceptDrift, hasAcceptance, clearAcceptance, type LoadBaselineOptions, type AcceptDriftOptions, } from './saver.js';
6
+ export { compareWithBaseline, compareBaselines, hasBreakingChanges, hasSecurityChanges, filterByMinimumSeverity, checkBaselineVersionCompatibility, compareSeverity, severityMeetsThreshold, applyAspectOverride, applySeverityConfig, shouldFailOnDiff, } from './comparator.js';
7
+ export { formatDiffText, formatDiffJson, formatDiffCompact, formatDiffGitHubActions, formatDiffMarkdown, formatDiffJUnit, formatDiffSarif, formatSecurityReport, } from './diff.js';
8
+ export { convertToCloudBaseline, createCloudBaseline, } from './converter.js';
9
+ export { computeSchemaHash, compareSchemas, computeConsensusSchemaHash, type SchemaChangeType, type SchemaChange, type SchemaComparisonResult, } from './schema-compare.js';
10
+ export { getBaselineVersion, parseVersion, areVersionsCompatible, compareVersions, getCompatibilityWarning, checkVersionCompatibility, assertVersionCompatibility, formatVersion, isCurrentVersion, isOlderVersion, isNewerVersion, requiresMigration, BaselineVersionError, type FormatVersion, type VersionCompatibility, } from './version.js';
11
+ export { migrateBaseline, canMigrate, getMigrationsToApply, needsMigration, getMigrationInfo, } from './migrations.js';
12
+ export { analyzeForIncremental, mergeFingerprints, formatIncrementalSummary, isIncrementalWorthwhile, addIncrementalMetadata, type IncrementalCheckResult, type IncrementalChangeSummary, type IncrementalCheckOptions, } from './incremental-checker.js';
13
+ export { analyzeResponses, inferSchemaFromValue, compareFingerprints, compareErrorPatterns, computeInferredSchemaHash, type ResponseFingerprint, type ResponseContentType, type ResponseSize, type InferredSchema, type ErrorPattern, type ResponseAnalysis, type FingerprintDiff, type FingerprintChange, type ErrorPatternDiff, } from './response-fingerprint.js';
14
+ export { compareInferredSchemas, buildSchemaEvolution, compareSchemaEvolution, formatSchemaEvolution, formatSchemaEvolutionDiff, hasSchemaEvolutionIssues, getSchemaStabilityGrade, type ResponseSchemaEvolution, type SchemaVersion as SchemaEvolutionVersion, type SchemaEvolutionDiff, type SchemaTypeChange, } from './response-schema-tracker.js';
15
+ export { analyzeToolChangeImpact, analyzeDiffImpact, analyzeSchemaChanges, isBreakingChange, getBreakingChangeSummary, CHANGE_IMPACT, type SchemaChangeType as ImpactSchemaChangeType, type SchemaChangeDetail, type MigrationComplexity, type ChangeImpact, type DiffImpactAnalysis, type ActionItem, } from './change-impact-analyzer.js';
16
+ export { calculateMetrics, createPerformanceBaseline, extractPerformanceBaselines, comparePerformance, generatePerformanceReport, formatMetrics, formatComparison, isPerformanceAcceptable, aggregateSamplesByTool, calculatePerformanceConfidence, calculateConfidenceFromMetrics, formatConfidenceLevel, hasReliableConfidence, PERFORMANCE, type LatencyTrend, type ToolPerformanceMetrics, type PerformanceBaseline, type PerformanceComparison, type PerformanceReport, type LatencySample, } from './performance-tracker.js';
17
+ export { checkDeprecations, checkToolDeprecation, markAsDeprecated, clearDeprecation, getDeprecatedTools, getExpiredTools, getUpcomingRemovals, formatDeprecationWarning, formatDeprecationReport, shouldFailOnDeprecation, DEPRECATION, DEPRECATION_DEFAULTS, DEPRECATION_THRESHOLDS, type DeprecationStatus, type DeprecationWarning, type DeprecationReport, type DeprecationConfig, } from './deprecation-tracker.js';
18
+ export { calculateHealthScore, formatHealthScore, meetsHealthThreshold, getHealthBadgeColor, createHealthHistoryEntry, HEALTH_SCORING, HEALTH_WEIGHTS, GRADE_THRESHOLDS, SEVERITY_THRESHOLDS, HEALTH_PENALTIES, type HealthTrend, type ActionPriority, type HealthActionItem, type HealthComponents, type HealthScore, type HealthHistory, type HealthInput, } from './health-scorer.js';
19
+ export { buildServerTimeline, buildToolTimeline, formatTimeline, formatServerTimelineSummary, generateVisualTimeline, serializeTimeline, deserializeTimeline, serializeServerTimeline, deserializeServerTimeline, getMostActiveTools, getMostBreakingTools, getBreakingChanges, getVersionAtTime, getChangesBetween, hadBreakingChanges, type SchemaEventType, type SchemaVersion, type SchemaTimeline, type ServerTimeline, type DeprecationEvent, type TimelineStats, type TimelineBuildOptions, } from './schema-evolution.js';
20
+ export { generateMigrationGuide, formatMigrationGuideMarkdown, formatMigrationGuideText, hasBreakingMigrationChanges, getBreakingTools, type MigrationEffort, type MigrationStepType, type CodeExample, type BreakingChange, type MigrationStep, type MigrationGuide, type MigrationStats, } from './migration-generator.js';
21
+ export { generateToolScenarios, generateBaselineScenarios, formatScenariosAsYaml, formatScenariosReport, getScenariosByPriority, getScenariosByCategory, getCriticalScenarios, getSecurityScenarios, type ScenarioCategory, type ScenarioPriority, type TestScenario, type AutoGeneratedScenarios, type ScenarioGenerationSummary, type ScenarioGenerationResult, type ScenarioGenerationConfig, } from './scenario-generator.js';
22
+ export { generatePRComment, generateCompactPRComment, generateCIStatusSummary, generateDiffTable, generateBadgeUrl, generateBadgeMarkdown, getBadgeColor, shouldBlockMerge, getSeverityEmoji, type BadgeColor, type CommentSection, type AffectedWorkflow, type PRComment, type PRCommentConfig, } from './pr-comment-generator.js';
23
+ export type { SecurityCategory, RiskLevel, SecurityPayload, SecurityTestResult, SecurityFinding, SecurityFingerprint, SecurityDiff, SecurityTestOptions, SecurityTestContext, SecurityToolCallResult, SecurityReport, } from '../security/types.js';
24
+ export { runSecurityTests, compareSecurityFingerprints, getRiskLevelFromScore, parseSecurityCategories, getPayloadsForCategory, getAllSecurityPayloads, getAllSecurityCategories, } from '../security/index.js';
25
+ export type { HttpStatusCategory, ErrorSeverity, EnhancedErrorAnalysis, ErrorAnalysisSummary, ErrorTrend, ErrorTrendReport, } from './error-analyzer.js';
26
+ export { analyzeError, analyzeErrorPatterns, generateErrorSummary, analyzeErrorTrends, extractHttpStatus, categorizeHttpStatus, inferRootCause, generateRemediation, extractRelatedParameters, isTransientError, assessErrorSeverity, mapStatusToErrorCategory, formatEnhancedError, formatErrorTrendReport, formatCategoryName, } from './error-analyzer.js';
27
+ export { scoreDocumentation, scoreToolDocumentation, calculateDescriptionCoverage, calculateDescriptionQuality, calculateParameterDocumentation, calculateExampleCoverage, hasExamples, scoreToGrade, generateSuggestions, compareDocumentationScores, formatDocumentationScore, formatDocumentationScoreCompact, formatDocumentationScoreChange, toDocumentationScoreSummary, getGradeIndicator, getGradeBadgeColor, meetsDocumentationThreshold, meetsDocumentationGrade, type DocumentationIssueSeverity, type DocumentationIssueType, } from './documentation-scorer.js';
28
+ export { calculateAICompatibilityScore, generateAICompatibilityMarkdown, type AICompatibilityScore, type ScoreComponent, type AICompatibilityRecommendation, type ToolAIScore, type AICompatibilityInput, } from './ai-compatibility-scorer.js';
29
+ export { calculateRiskScore, generateRiskScoreMarkdown, type RegressionRiskScore, type RiskFactor, } from './risk-scorer.js';
30
+ export { calculatePruningDecisions, calculateToolPruning, prioritizeTools, generatePruningSummary, generatePruningMarkdown, type TestCategory, type TestCategoryDecision, type ToolPruningDecision, type ToolCharacteristics, type PruningInput, type PruningSummary, } from './test-pruner.js';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Baseline module - structural drift detection.
3
+ */
4
+ export { createBaseline, saveBaseline, loadBaseline, verifyIntegrity, baselineExists, recalculateIntegrityHash, acceptDrift, hasAcceptance, clearAcceptance, } from './saver.js';
5
+ export { compareWithBaseline, compareBaselines, hasBreakingChanges, hasSecurityChanges, filterByMinimumSeverity, checkBaselineVersionCompatibility, compareSeverity, severityMeetsThreshold, applyAspectOverride, applySeverityConfig, shouldFailOnDiff, } from './comparator.js';
6
+ export { formatDiffText, formatDiffJson, formatDiffCompact, formatDiffGitHubActions, formatDiffMarkdown, formatDiffJUnit, formatDiffSarif, formatSecurityReport, } from './diff.js';
7
+ export { convertToCloudBaseline, createCloudBaseline, } from './converter.js';
8
+ export { computeSchemaHash, compareSchemas, computeConsensusSchemaHash, } from './schema-compare.js';
9
+ export { getBaselineVersion, parseVersion, areVersionsCompatible, compareVersions, getCompatibilityWarning, checkVersionCompatibility, assertVersionCompatibility, formatVersion, isCurrentVersion, isOlderVersion, isNewerVersion, requiresMigration, BaselineVersionError, } from './version.js';
10
+ export { migrateBaseline, canMigrate, getMigrationsToApply, needsMigration, getMigrationInfo, } from './migrations.js';
11
+ // Incremental checking
12
+ export { analyzeForIncremental, mergeFingerprints, formatIncrementalSummary, isIncrementalWorthwhile, addIncrementalMetadata, } from './incremental-checker.js';
13
+ export { analyzeResponses, inferSchemaFromValue, compareFingerprints, compareErrorPatterns, computeInferredSchemaHash, } from './response-fingerprint.js';
14
+ // Response schema evolution tracking
15
+ export { compareInferredSchemas, buildSchemaEvolution, compareSchemaEvolution, formatSchemaEvolution, formatSchemaEvolutionDiff, hasSchemaEvolutionIssues, getSchemaStabilityGrade, } from './response-schema-tracker.js';
16
+ // Change impact analysis
17
+ export { analyzeToolChangeImpact, analyzeDiffImpact, analyzeSchemaChanges, isBreakingChange, getBreakingChangeSummary, CHANGE_IMPACT, } from './change-impact-analyzer.js';
18
+ // Performance tracking
19
+ export { calculateMetrics, createPerformanceBaseline, extractPerformanceBaselines, comparePerformance, generatePerformanceReport, formatMetrics, formatComparison, isPerformanceAcceptable, aggregateSamplesByTool, calculatePerformanceConfidence, calculateConfidenceFromMetrics, formatConfidenceLevel, hasReliableConfidence, PERFORMANCE, } from './performance-tracker.js';
20
+ // Deprecation tracking
21
+ export { checkDeprecations, checkToolDeprecation, markAsDeprecated, clearDeprecation, getDeprecatedTools, getExpiredTools, getUpcomingRemovals, formatDeprecationWarning, formatDeprecationReport, shouldFailOnDeprecation, DEPRECATION, DEPRECATION_DEFAULTS, DEPRECATION_THRESHOLDS, } from './deprecation-tracker.js';
22
+ // Health scoring
23
+ export { calculateHealthScore, formatHealthScore, meetsHealthThreshold, getHealthBadgeColor, createHealthHistoryEntry, HEALTH_SCORING, HEALTH_WEIGHTS, GRADE_THRESHOLDS, SEVERITY_THRESHOLDS, HEALTH_PENALTIES, } from './health-scorer.js';
24
+ // Schema evolution timeline
25
+ export { buildServerTimeline, buildToolTimeline, formatTimeline, formatServerTimelineSummary, generateVisualTimeline, serializeTimeline, deserializeTimeline, serializeServerTimeline, deserializeServerTimeline, getMostActiveTools, getMostBreakingTools, getBreakingChanges, getVersionAtTime, getChangesBetween, hadBreakingChanges, } from './schema-evolution.js';
26
+ // Migration guide generation
27
+ export { generateMigrationGuide, formatMigrationGuideMarkdown, formatMigrationGuideText, hasBreakingMigrationChanges, getBreakingTools, } from './migration-generator.js';
28
+ // Auto-generated test scenarios
29
+ export { generateToolScenarios, generateBaselineScenarios, formatScenariosAsYaml, formatScenariosReport, getScenariosByPriority, getScenariosByCategory, getCriticalScenarios, getSecurityScenarios, } from './scenario-generator.js';
30
+ // Enhanced PR comments
31
+ export { generatePRComment, generateCompactPRComment, generateCIStatusSummary, generateDiffTable, generateBadgeUrl, generateBadgeMarkdown, getBadgeColor, shouldBlockMerge, getSeverityEmoji, } from './pr-comment-generator.js';
32
+ export { runSecurityTests, compareSecurityFingerprints, getRiskLevelFromScore, parseSecurityCategories, getPayloadsForCategory, getAllSecurityPayloads, getAllSecurityCategories, } from '../security/index.js';
33
+ export { analyzeError, analyzeErrorPatterns, generateErrorSummary, analyzeErrorTrends, extractHttpStatus, categorizeHttpStatus, inferRootCause, generateRemediation, extractRelatedParameters, isTransientError, assessErrorSeverity, mapStatusToErrorCategory, formatEnhancedError, formatErrorTrendReport, formatCategoryName, } from './error-analyzer.js';
34
+ // Documentation quality scoring
35
+ export { scoreDocumentation, scoreToolDocumentation, calculateDescriptionCoverage, calculateDescriptionQuality, calculateParameterDocumentation, calculateExampleCoverage, hasExamples, scoreToGrade, generateSuggestions, compareDocumentationScores, formatDocumentationScore, formatDocumentationScoreCompact, formatDocumentationScoreChange, toDocumentationScoreSummary, getGradeIndicator, getGradeBadgeColor, meetsDocumentationThreshold, meetsDocumentationGrade, } from './documentation-scorer.js';
36
+ // AI Agent Compatibility Scoring
37
+ export { calculateAICompatibilityScore, generateAICompatibilityMarkdown, } from './ai-compatibility-scorer.js';
38
+ // Regression Risk Scoring
39
+ export { calculateRiskScore, generateRiskScoreMarkdown, } from './risk-scorer.js';
40
+ // Intelligent Test Pruning
41
+ export { calculatePruningDecisions, calculateToolPruning, prioritizeTools, generatePruningSummary, generatePruningMarkdown, } from './test-pruner.js';
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Migration Guide Generator
3
+ *
4
+ * Auto-generates migration guides for breaking changes between baselines.
5
+ * Provides step-by-step instructions, code examples, and effort estimates.
6
+ */
7
+ import type { BehavioralBaseline, BehavioralDiff, ChangeSeverity } from './types.js';
8
+ import { type SchemaChangeDetail, type SchemaChangeType } from './change-impact-analyzer.js';
9
+ /**
10
+ * Estimated effort level for migration.
11
+ */
12
+ export type MigrationEffort = 'trivial' | 'minor' | 'moderate' | 'major';
13
+ /**
14
+ * Type of migration step.
15
+ */
16
+ export type MigrationStepType = 'add_parameter' | 'remove_parameter' | 'change_type' | 'update_constraint' | 'update_enum' | 'update_default' | 'deprecation' | 'tool_removal' | 'tool_addition';
17
+ /**
18
+ * A single step in the migration process.
19
+ */
20
+ export interface MigrationStep {
21
+ /** Step number */
22
+ stepNumber: number;
23
+ /** Type of migration action */
24
+ type: MigrationStepType;
25
+ /** Tool affected */
26
+ toolName: string;
27
+ /** Parameter path (if applicable) */
28
+ parameterPath?: string;
29
+ /** Human-readable title */
30
+ title: string;
31
+ /** Detailed description of what to do */
32
+ description: string;
33
+ /** Whether this step is for a breaking change */
34
+ isBreaking: boolean;
35
+ /** Code examples */
36
+ codeExamples: CodeExample[];
37
+ /** Related schema change */
38
+ schemaChange?: SchemaChangeDetail;
39
+ }
40
+ /**
41
+ * Code example for a migration step.
42
+ */
43
+ export interface CodeExample {
44
+ /** Language (typescript, javascript, etc.) */
45
+ language: string;
46
+ /** Title/description of the example */
47
+ title: string;
48
+ /** Code before migration */
49
+ before: string;
50
+ /** Code after migration */
51
+ after: string;
52
+ }
53
+ /**
54
+ * A single breaking change with context.
55
+ */
56
+ export interface BreakingChange {
57
+ /** Tool name */
58
+ toolName: string;
59
+ /** Type of change */
60
+ changeType: SchemaChangeType;
61
+ /** Parameter affected */
62
+ parameterPath: string;
63
+ /** Value before */
64
+ before: unknown;
65
+ /** Value after */
66
+ after: unknown;
67
+ /** Human-readable description */
68
+ description: string;
69
+ /** Severity */
70
+ severity: ChangeSeverity;
71
+ }
72
+ /**
73
+ * Complete migration guide between two versions.
74
+ */
75
+ export interface MigrationGuide {
76
+ /** Source version/identifier */
77
+ fromVersion: string;
78
+ /** Target version/identifier */
79
+ toVersion: string;
80
+ /** Date range of the migration */
81
+ dateRange: {
82
+ from: Date;
83
+ to: Date;
84
+ };
85
+ /** All breaking changes */
86
+ breakingChanges: BreakingChange[];
87
+ /** Step-by-step migration instructions */
88
+ steps: MigrationStep[];
89
+ /** Code examples for common patterns */
90
+ codeExamples: CodeExample[];
91
+ /** Estimated effort level */
92
+ estimatedEffort: MigrationEffort;
93
+ /** Summary statistics */
94
+ stats: MigrationStats;
95
+ /** Human-readable summary */
96
+ summary: string;
97
+ /** Tools that were removed */
98
+ removedTools: string[];
99
+ /** Tools that were added */
100
+ addedTools: string[];
101
+ /** Warnings or notes */
102
+ warnings: string[];
103
+ }
104
+ /**
105
+ * Statistics about the migration.
106
+ */
107
+ export interface MigrationStats {
108
+ /** Total breaking changes */
109
+ breakingChangesCount: number;
110
+ /** Total tools affected */
111
+ toolsAffected: number;
112
+ /** Total migration steps */
113
+ stepsCount: number;
114
+ /** Breakdown by change type */
115
+ changesByType: Record<SchemaChangeType, number>;
116
+ }
117
+ /**
118
+ * Generate a migration guide from two baselines.
119
+ */
120
+ export declare function generateMigrationGuide(oldBaseline: BehavioralBaseline, newBaseline: BehavioralBaseline, diff?: BehavioralDiff): MigrationGuide;
121
+ /**
122
+ * Format migration guide as markdown.
123
+ */
124
+ export declare function formatMigrationGuideMarkdown(guide: MigrationGuide): string;
125
+ /**
126
+ * Format migration guide for console output.
127
+ */
128
+ export declare function formatMigrationGuideText(guide: MigrationGuide): string;
129
+ /**
130
+ * Check if a migration guide contains breaking changes that require action.
131
+ */
132
+ export declare function hasBreakingMigrationChanges(guide: MigrationGuide): boolean;
133
+ /**
134
+ * Get breaking tools from guide.
135
+ */
136
+ export declare function getBreakingTools(guide: MigrationGuide): string[];
137
+ //# sourceMappingURL=migration-generator.d.ts.map