@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,66 @@
1
+ /**
2
+ * Semantic type inference and validation.
3
+ *
4
+ * This module defines semantic types that can be inferred from parameter
5
+ * names and descriptions, enabling more intelligent validation testing.
6
+ */
7
+ /**
8
+ * Semantic types that can be inferred from parameter descriptions.
9
+ * Used to generate targeted validation tests.
10
+ */
11
+ export type SemanticType = 'date_iso8601' | 'date_month' | 'datetime' | 'timestamp' | 'amount_currency' | 'percentage' | 'identifier' | 'email' | 'url' | 'phone' | 'ip_address' | 'file_path' | 'json' | 'base64' | 'regex' | 'unknown';
12
+ /**
13
+ * Inference result for a parameter.
14
+ * Contains the inferred semantic type and confidence level.
15
+ */
16
+ export interface SemanticInference {
17
+ /** Parameter name that was analyzed */
18
+ paramName: string;
19
+ /** The inferred semantic type */
20
+ inferredType: SemanticType;
21
+ /** Confidence level (0-1) */
22
+ confidence: number;
23
+ /** Evidence supporting the inference */
24
+ evidence: string[];
25
+ }
26
+ /**
27
+ * Result of validating a value against an expected semantic type.
28
+ */
29
+ export interface SemanticValidationResult {
30
+ /** Parameter name that was validated */
31
+ paramName: string;
32
+ /** The expected semantic type */
33
+ expectedType: SemanticType;
34
+ /** The value that was validated */
35
+ providedValue: unknown;
36
+ /** Whether the value is valid for the expected type */
37
+ isValid: boolean;
38
+ /** Description of the validation issue (if invalid) */
39
+ issue?: string;
40
+ }
41
+ /**
42
+ * Pattern definition for semantic type inference.
43
+ * Contains patterns to match against parameter names and descriptions.
44
+ */
45
+ export interface SemanticPatternDefinition {
46
+ /** Patterns to match against parameter names */
47
+ namePatterns: RegExp[];
48
+ /** Patterns to match against parameter descriptions */
49
+ descriptionPatterns: RegExp[];
50
+ /** Optional patterns to validate actual values */
51
+ formatPatterns?: RegExp[];
52
+ }
53
+ /**
54
+ * Patterns for semantic type inference.
55
+ * Maps each semantic type to patterns that indicate that type.
56
+ */
57
+ export declare const SEMANTIC_PATTERNS: Record<SemanticType, SemanticPatternDefinition>;
58
+ /**
59
+ * Get all known semantic types (excluding 'unknown').
60
+ */
61
+ export declare function getAllSemanticTypes(): SemanticType[];
62
+ /**
63
+ * Check if a value is a valid SemanticType.
64
+ */
65
+ export declare function isSemanticType(value: string): value is SemanticType;
66
+ //# sourceMappingURL=semantic-types.d.ts.map
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Semantic type inference and validation.
3
+ *
4
+ * This module defines semantic types that can be inferred from parameter
5
+ * names and descriptions, enabling more intelligent validation testing.
6
+ */
7
+ /**
8
+ * Patterns for semantic type inference.
9
+ * Maps each semantic type to patterns that indicate that type.
10
+ */
11
+ export const SEMANTIC_PATTERNS = {
12
+ date_iso8601: {
13
+ namePatterns: [/date/i, /day/i, /_at$/i, /created/i, /updated/i, /birth/i, /expir/i],
14
+ descriptionPatterns: [/YYYY-MM-DD/i, /ISO.?8601/i, /date format/i, /date string/i],
15
+ formatPatterns: [/^\d{4}-\d{2}-\d{2}$/],
16
+ },
17
+ date_month: {
18
+ namePatterns: [/month/i, /period/i, /billing_?month/i],
19
+ descriptionPatterns: [/YYYY-MM/i, /month format/i, /year-month/i],
20
+ formatPatterns: [/^\d{4}-\d{2}$/],
21
+ },
22
+ datetime: {
23
+ namePatterns: [/datetime/i, /timestamp/i, /time$/i, /created_?at/i, /updated_?at/i],
24
+ descriptionPatterns: [/ISO.?8601/i, /datetime/i, /\d{4}-\d{2}-\d{2}T/, /RFC.?3339/i],
25
+ formatPatterns: [/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/],
26
+ },
27
+ timestamp: {
28
+ namePatterns: [/timestamp/i, /unix/i, /epoch/i, /time_?ms/i, /millis/i],
29
+ descriptionPatterns: [/unix/i, /epoch/i, /milliseconds/i, /seconds since/i, /timestamp/i],
30
+ },
31
+ amount_currency: {
32
+ namePatterns: [/amount/i, /price/i, /cost/i, /fee/i, /total/i, /balance/i, /payment/i, /charge/i],
33
+ descriptionPatterns: [/currency/i, /dollar/i, /USD/i, /EUR/i, /amount/i, /monetary/i, /cents/i],
34
+ },
35
+ percentage: {
36
+ namePatterns: [/percent/i, /rate/i, /ratio/i, /progress/i, /completion/i],
37
+ descriptionPatterns: [/percent/i, /0-100/i, /0-1/i, /proportion/i, /percentage/i],
38
+ },
39
+ identifier: {
40
+ namePatterns: [/id$/i, /_id/i, /uuid/i, /guid/i, /sku/i, /code$/i],
41
+ descriptionPatterns: [/identifier/i, /UUID/i, /unique/i, /GUID/i],
42
+ },
43
+ email: {
44
+ namePatterns: [/email/i, /mail/i, /e_?mail/i],
45
+ descriptionPatterns: [/email/i, /@/, /e-mail/i],
46
+ formatPatterns: [/^[\w.-]+@[\w.-]+\.\w+$/],
47
+ },
48
+ url: {
49
+ namePatterns: [/url/i, /uri/i, /link/i, /href/i, /endpoint/i, /website/i],
50
+ descriptionPatterns: [/URL/i, /URI/i, /http/i, /link/i, /web address/i],
51
+ formatPatterns: [/^https?:\/\//i],
52
+ },
53
+ phone: {
54
+ namePatterns: [/phone/i, /tel/i, /mobile/i, /cell/i, /fax/i],
55
+ descriptionPatterns: [/phone/i, /telephone/i, /mobile/i, /number/i],
56
+ },
57
+ ip_address: {
58
+ namePatterns: [/ip/i, /ip_?address/i, /host/i, /server_?ip/i],
59
+ descriptionPatterns: [/IP address/i, /IPv4/i, /IPv6/i, /internet protocol/i],
60
+ },
61
+ file_path: {
62
+ namePatterns: [/path/i, /file/i, /directory/i, /dir/i, /folder/i, /filename/i],
63
+ descriptionPatterns: [/path/i, /file/i, /directory/i, /folder/i],
64
+ },
65
+ json: {
66
+ namePatterns: [/json/i, /data/i, /payload/i, /body/i, /config/i],
67
+ descriptionPatterns: [/JSON/i, /object/i, /serialized/i],
68
+ },
69
+ base64: {
70
+ namePatterns: [/base64/i, /encoded/i, /b64/i],
71
+ descriptionPatterns: [/base64/i, /encoded/i, /binary/i],
72
+ },
73
+ regex: {
74
+ namePatterns: [/regex/i, /pattern/i, /expression/i, /regexp/i],
75
+ descriptionPatterns: [/regex/i, /regular expression/i, /pattern/i, /regexp/i],
76
+ },
77
+ unknown: {
78
+ namePatterns: [],
79
+ descriptionPatterns: [],
80
+ },
81
+ };
82
+ /**
83
+ * Get all known semantic types (excluding 'unknown').
84
+ */
85
+ export function getAllSemanticTypes() {
86
+ return Object.keys(SEMANTIC_PATTERNS).filter((t) => t !== 'unknown');
87
+ }
88
+ /**
89
+ * Check if a value is a valid SemanticType.
90
+ */
91
+ export function isSemanticType(value) {
92
+ return value in SEMANTIC_PATTERNS;
93
+ }
94
+ //# sourceMappingURL=semantic-types.js.map
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Semantic validator for inferring and validating semantic types.
3
+ *
4
+ * This module provides functions to:
5
+ * 1. Infer semantic types from parameter names and descriptions
6
+ * 2. Validate values against expected semantic types
7
+ */
8
+ import type { SemanticType, SemanticInference, SemanticValidationResult } from './semantic-types.js';
9
+ /**
10
+ * Infer semantic type from parameter name and description.
11
+ *
12
+ * Uses pattern matching against known semantic type patterns to determine
13
+ * the most likely semantic type for a parameter.
14
+ *
15
+ * @param paramName - The name of the parameter
16
+ * @param description - Optional description of the parameter
17
+ * @param schemaFormat - Optional JSON Schema format hint
18
+ * @returns Inference result with type, confidence, and evidence
19
+ */
20
+ export declare function inferSemanticType(paramName: string, description?: string, schemaFormat?: string): SemanticInference;
21
+ /**
22
+ * Validate a value against an expected semantic type.
23
+ *
24
+ * @param paramName - The name of the parameter being validated
25
+ * @param value - The value to validate
26
+ * @param expectedType - The expected semantic type
27
+ * @returns Validation result with validity and any issues
28
+ */
29
+ export declare function validateSemanticValue(paramName: string, value: unknown, expectedType: SemanticType): SemanticValidationResult;
30
+ /**
31
+ * Validate all parameters in a tool call against inferred types.
32
+ *
33
+ * @param args - The arguments to validate
34
+ * @param inferences - The semantic inferences for each parameter
35
+ * @returns Array of validation results
36
+ */
37
+ export declare function validateAllParameters(args: Record<string, unknown>, inferences: SemanticInference[]): SemanticValidationResult[];
38
+ //# sourceMappingURL=semantic-validator.d.ts.map
@@ -0,0 +1,340 @@
1
+ /**
2
+ * Semantic validator for inferring and validating semantic types.
3
+ *
4
+ * This module provides functions to:
5
+ * 1. Infer semantic types from parameter names and descriptions
6
+ * 2. Validate values against expected semantic types
7
+ */
8
+ import { SEMANTIC_PATTERNS } from './semantic-types.js';
9
+ import { SEMANTIC_VALIDATION } from '../constants.js';
10
+ /**
11
+ * Infer semantic type from parameter name and description.
12
+ *
13
+ * Uses pattern matching against known semantic type patterns to determine
14
+ * the most likely semantic type for a parameter.
15
+ *
16
+ * @param paramName - The name of the parameter
17
+ * @param description - Optional description of the parameter
18
+ * @param schemaFormat - Optional JSON Schema format hint
19
+ * @returns Inference result with type, confidence, and evidence
20
+ */
21
+ export function inferSemanticType(paramName, description, schemaFormat) {
22
+ const evidence = [];
23
+ let bestMatch = 'unknown';
24
+ let bestConfidence = 0;
25
+ // Check schema format first (highest confidence)
26
+ if (schemaFormat) {
27
+ const formatType = mapFormatToSemanticType(schemaFormat);
28
+ if (formatType !== 'unknown') {
29
+ return {
30
+ paramName,
31
+ inferredType: formatType,
32
+ confidence: SEMANTIC_VALIDATION.CONFIDENCE.SCHEMA_FORMAT,
33
+ evidence: [`Schema format: ${schemaFormat}`],
34
+ };
35
+ }
36
+ }
37
+ // Check each semantic type
38
+ for (const [type, patterns] of Object.entries(SEMANTIC_PATTERNS)) {
39
+ if (type === 'unknown')
40
+ continue;
41
+ let confidence = 0;
42
+ const typeEvidence = [];
43
+ // Check name patterns
44
+ for (const pattern of patterns.namePatterns) {
45
+ if (pattern.test(paramName)) {
46
+ confidence += SEMANTIC_VALIDATION.CONFIDENCE.NAME_PATTERN_MATCH;
47
+ typeEvidence.push(`Name matches pattern: ${pattern.source}`);
48
+ break;
49
+ }
50
+ }
51
+ // Check description patterns
52
+ if (description) {
53
+ for (const pattern of patterns.descriptionPatterns) {
54
+ if (pattern.test(description)) {
55
+ confidence += SEMANTIC_VALIDATION.CONFIDENCE.DESCRIPTION_PATTERN_MATCH;
56
+ typeEvidence.push(`Description matches: ${pattern.source}`);
57
+ break;
58
+ }
59
+ }
60
+ }
61
+ if (confidence > bestConfidence) {
62
+ bestConfidence = confidence;
63
+ bestMatch = type;
64
+ evidence.length = 0;
65
+ evidence.push(...typeEvidence);
66
+ }
67
+ }
68
+ return {
69
+ paramName,
70
+ inferredType: bestMatch,
71
+ confidence: Math.min(1, bestConfidence),
72
+ evidence,
73
+ };
74
+ }
75
+ /**
76
+ * Map JSON Schema format to semantic type.
77
+ *
78
+ * @param format - JSON Schema format string
79
+ * @returns Corresponding semantic type or 'unknown'
80
+ */
81
+ function mapFormatToSemanticType(format) {
82
+ const formatLower = format.toLowerCase();
83
+ const formatMap = {
84
+ 'date': 'date_iso8601',
85
+ 'date-time': 'datetime',
86
+ 'email': 'email',
87
+ 'uri': 'url',
88
+ 'url': 'url',
89
+ 'uuid': 'identifier',
90
+ 'ipv4': 'ip_address',
91
+ 'ipv6': 'ip_address',
92
+ 'ip-address': 'ip_address',
93
+ 'hostname': 'url',
94
+ };
95
+ return formatMap[formatLower] ?? 'unknown';
96
+ }
97
+ /**
98
+ * Validate a value against an expected semantic type.
99
+ *
100
+ * @param paramName - The name of the parameter being validated
101
+ * @param value - The value to validate
102
+ * @param expectedType - The expected semantic type
103
+ * @returns Validation result with validity and any issues
104
+ */
105
+ export function validateSemanticValue(paramName, value, expectedType) {
106
+ if (expectedType === 'unknown') {
107
+ return { paramName, expectedType, providedValue: value, isValid: true };
108
+ }
109
+ if (typeof value !== 'string') {
110
+ // Non-string values can't be validated semantically
111
+ return { paramName, expectedType, providedValue: value, isValid: true };
112
+ }
113
+ const validators = {
114
+ date_iso8601: validateDate,
115
+ date_month: validateMonth,
116
+ datetime: validateDateTime,
117
+ timestamp: validateTimestamp,
118
+ amount_currency: validateAmount,
119
+ percentage: validatePercentage,
120
+ identifier: validateIdentifier,
121
+ email: validateEmail,
122
+ url: validateUrl,
123
+ phone: validatePhone,
124
+ ip_address: validateIpAddress,
125
+ file_path: () => null, // Paths are hard to validate generically
126
+ json: validateJson,
127
+ base64: validateBase64,
128
+ regex: validateRegex,
129
+ unknown: () => null,
130
+ };
131
+ const issue = validators[expectedType](value);
132
+ return {
133
+ paramName,
134
+ expectedType,
135
+ providedValue: value,
136
+ isValid: issue === null,
137
+ issue: issue ?? undefined,
138
+ };
139
+ }
140
+ /**
141
+ * Validate all parameters in a tool call against inferred types.
142
+ *
143
+ * @param args - The arguments to validate
144
+ * @param inferences - The semantic inferences for each parameter
145
+ * @returns Array of validation results
146
+ */
147
+ export function validateAllParameters(args, inferences) {
148
+ const results = [];
149
+ for (const inference of inferences) {
150
+ const value = args[inference.paramName];
151
+ if (value !== undefined) {
152
+ results.push(validateSemanticValue(inference.paramName, value, inference.inferredType));
153
+ }
154
+ }
155
+ return results;
156
+ }
157
+ // ==================== Validation Functions ====================
158
+ /**
159
+ * Validate ISO 8601 date format (YYYY-MM-DD).
160
+ */
161
+ function validateDate(value) {
162
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) {
163
+ return `Expected date format YYYY-MM-DD, got: ${value}`;
164
+ }
165
+ const date = new Date(value);
166
+ if (isNaN(date.getTime())) {
167
+ return `Invalid date: ${value}`;
168
+ }
169
+ // Validate the date components are valid
170
+ const [, month, day] = value.split('-').map(Number);
171
+ if (month < 1 || month > 12) {
172
+ return `Invalid month: ${month}`;
173
+ }
174
+ if (day < 1 || day > 31) {
175
+ return `Invalid day: ${day}`;
176
+ }
177
+ return null;
178
+ }
179
+ /**
180
+ * Validate month format (YYYY-MM).
181
+ */
182
+ function validateMonth(value) {
183
+ if (!/^\d{4}-\d{2}$/.test(value)) {
184
+ return `Expected month format YYYY-MM, got: ${value}`;
185
+ }
186
+ const [, month] = value.split('-').map(Number);
187
+ if (month < 1 || month > 12) {
188
+ return `Invalid month: ${month}`;
189
+ }
190
+ return null;
191
+ }
192
+ /**
193
+ * Validate ISO 8601 datetime.
194
+ */
195
+ function validateDateTime(value) {
196
+ const date = new Date(value);
197
+ if (isNaN(date.getTime())) {
198
+ return `Invalid datetime: ${value}`;
199
+ }
200
+ return null;
201
+ }
202
+ /**
203
+ * Validate Unix timestamp.
204
+ */
205
+ function validateTimestamp(value) {
206
+ const num = Number(value);
207
+ if (isNaN(num) || num < 0) {
208
+ return `Expected positive number for timestamp, got: ${value}`;
209
+ }
210
+ return null;
211
+ }
212
+ /**
213
+ * Validate monetary amount.
214
+ */
215
+ function validateAmount(value) {
216
+ // Remove currency symbols and commas
217
+ const cleaned = value.replace(/[$,\u20AC\u00A3]/g, '');
218
+ const num = Number(cleaned);
219
+ if (isNaN(num)) {
220
+ return `Expected numeric amount, got: ${value}`;
221
+ }
222
+ return null;
223
+ }
224
+ /**
225
+ * Validate percentage.
226
+ */
227
+ function validatePercentage(value) {
228
+ // Remove % symbol if present
229
+ const cleaned = value.replace(/%$/, '');
230
+ const num = Number(cleaned);
231
+ if (isNaN(num)) {
232
+ return `Expected numeric percentage, got: ${value}`;
233
+ }
234
+ // Don't enforce range - could be 0-1 or 0-100
235
+ return null;
236
+ }
237
+ /**
238
+ * Validate identifier (non-empty string).
239
+ */
240
+ function validateIdentifier(value) {
241
+ if (value.trim().length === 0) {
242
+ return 'Identifier cannot be empty';
243
+ }
244
+ return null;
245
+ }
246
+ /**
247
+ * Validate email format.
248
+ */
249
+ function validateEmail(value) {
250
+ // Basic email validation - requires @ and at least one dot after @
251
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
252
+ return `Invalid email format: ${value}`;
253
+ }
254
+ return null;
255
+ }
256
+ /**
257
+ * Validate URL format.
258
+ */
259
+ function validateUrl(value) {
260
+ try {
261
+ new URL(value);
262
+ return null;
263
+ }
264
+ catch {
265
+ return `Invalid URL: ${value}`;
266
+ }
267
+ }
268
+ /**
269
+ * Validate phone number (loose validation - at least 7 digits).
270
+ */
271
+ function validatePhone(value) {
272
+ const digitsOnly = value.replace(/\D/g, '');
273
+ if (digitsOnly.length < 7) {
274
+ return `Invalid phone number (too few digits): ${value}`;
275
+ }
276
+ return null;
277
+ }
278
+ /**
279
+ * Validate IP address (IPv4 or IPv6).
280
+ */
281
+ function validateIpAddress(value) {
282
+ // IPv4 validation
283
+ if (/^(\d{1,3}\.){3}\d{1,3}$/.test(value)) {
284
+ const parts = value.split('.').map(Number);
285
+ if (parts.every((p) => p >= 0 && p <= 255)) {
286
+ return null;
287
+ }
288
+ return `Invalid IPv4 address (octets must be 0-255): ${value}`;
289
+ }
290
+ // IPv6 validation (simplified - just check for valid hex groups with colons)
291
+ if (/^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/.test(value)) {
292
+ return null;
293
+ }
294
+ // IPv6 with :: shorthand
295
+ if (value.includes('::') && /^[0-9a-fA-F:]+$/.test(value)) {
296
+ return null;
297
+ }
298
+ return `Invalid IP address: ${value}`;
299
+ }
300
+ /**
301
+ * Validate JSON string.
302
+ */
303
+ function validateJson(value) {
304
+ try {
305
+ JSON.parse(value);
306
+ return null;
307
+ }
308
+ catch {
309
+ const preview = value.length > 50 ? `${value.slice(0, 50)}...` : value;
310
+ return `Invalid JSON: ${preview}`;
311
+ }
312
+ }
313
+ /**
314
+ * Validate Base64 encoded string.
315
+ */
316
+ function validateBase64(value) {
317
+ // Standard base64 characters plus optional padding
318
+ if (!/^[A-Za-z0-9+/]*={0,2}$/.test(value)) {
319
+ const preview = value.length > 50 ? `${value.slice(0, 50)}...` : value;
320
+ return `Invalid base64: ${preview}`;
321
+ }
322
+ // Check length is valid (must be multiple of 4 when padded)
323
+ if (value.length % 4 !== 0) {
324
+ return `Invalid base64 length (must be multiple of 4): ${value.length}`;
325
+ }
326
+ return null;
327
+ }
328
+ /**
329
+ * Validate regular expression.
330
+ */
331
+ function validateRegex(value) {
332
+ try {
333
+ new RegExp(value);
334
+ return null;
335
+ }
336
+ catch {
337
+ return `Invalid regex: ${value}`;
338
+ }
339
+ }
340
+ //# sourceMappingURL=semantic-validator.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Verified by Bellwether program module.
3
+ */
4
+ export { generateVerificationResult, generateVerificationReport, generateVerificationBadge, generateBadgeUrl, generateBadgeMarkdown, isVerificationValid, } from './verifier.js';
5
+ export type { VerificationStatus, VerificationTier, VerificationResult, VerificationBadge, VerificationConfig, VerificationReport, VerificationSubmission, } from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Verified by Bellwether program module.
3
+ */
4
+ export { generateVerificationResult, generateVerificationReport, generateVerificationBadge, generateBadgeUrl, generateBadgeMarkdown, isVerificationValid, } from './verifier.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Types for the Verified by Bellwether program.
3
+ */
4
+ /**
5
+ * Verification status for a server.
6
+ */
7
+ export type VerificationStatus = 'verified' | 'pending' | 'failed' | 'expired' | 'not_verified';
8
+ /**
9
+ * Verification tier based on test coverage.
10
+ */
11
+ export type VerificationTier = 'bronze' | 'silver' | 'gold' | 'platinum';
12
+ /**
13
+ * Verification result from a verification run.
14
+ */
15
+ export interface VerificationResult {
16
+ /** Server identifier (namespace/name) */
17
+ serverId: string;
18
+ /** Server version */
19
+ version: string;
20
+ /** Verification status */
21
+ status: VerificationStatus;
22
+ /** Verification tier achieved */
23
+ tier?: VerificationTier;
24
+ /** ISO timestamp when verified */
25
+ verifiedAt: string;
26
+ /** ISO timestamp when verification expires */
27
+ expiresAt: string;
28
+ /** Number of tools verified */
29
+ toolsVerified: number;
30
+ /** Number of tests passed */
31
+ testsPassed: number;
32
+ /** Total number of tests run */
33
+ testsTotal: number;
34
+ /** Pass rate (0-100) */
35
+ passRate: number;
36
+ /** Checksum of the verification report */
37
+ reportHash: string;
38
+ /** Bellwether version used */
39
+ bellwetherVersion: string;
40
+ /** Additional metadata */
41
+ metadata?: Record<string, unknown>;
42
+ }
43
+ /**
44
+ * Verification badge data for embedding.
45
+ */
46
+ export interface VerificationBadge {
47
+ /** Badge label */
48
+ label: string;
49
+ /** Badge message */
50
+ message: string;
51
+ /** Badge color */
52
+ color: string;
53
+ /** Verification tier icon */
54
+ icon?: string;
55
+ /** Link to verification report */
56
+ reportUrl?: string;
57
+ /** ISO timestamp of verification */
58
+ verifiedAt?: string;
59
+ }
60
+ /**
61
+ * Configuration for verification.
62
+ */
63
+ export interface VerificationConfig {
64
+ /** Server identifier */
65
+ serverId: string;
66
+ /** Server version */
67
+ version?: string;
68
+ /** Tier to target */
69
+ targetTier?: VerificationTier;
70
+ /** Include security testing */
71
+ includeSecurity?: boolean;
72
+ /** Custom scenarios to include */
73
+ scenariosPath?: string;
74
+ /** Output directory for reports */
75
+ outputDir?: string;
76
+ }
77
+ /**
78
+ * Verification report (full detailed report).
79
+ */
80
+ export interface VerificationReport {
81
+ /** Verification result summary */
82
+ result: VerificationResult;
83
+ /** Server information */
84
+ serverInfo: {
85
+ name: string;
86
+ version: string;
87
+ description?: string;
88
+ repository?: string;
89
+ };
90
+ /** Tool verification details */
91
+ tools: Array<{
92
+ name: string;
93
+ testsRun: number;
94
+ testsPassed: number;
95
+ errors: string[];
96
+ }>;
97
+ /** Prompt verification details */
98
+ prompts?: Array<{
99
+ name: string;
100
+ testsRun: number;
101
+ testsPassed: number;
102
+ errors: string[];
103
+ }>;
104
+ /** Resource verification details */
105
+ resources?: Array<{
106
+ uri: string;
107
+ name: string;
108
+ testsRun: number;
109
+ testsPassed: number;
110
+ errors: string[];
111
+ }>;
112
+ /** Environment information */
113
+ environment: {
114
+ os: string;
115
+ nodeVersion: string;
116
+ bellwetherVersion: string;
117
+ };
118
+ }
119
+ /**
120
+ * Verification submission for the registry.
121
+ */
122
+ export interface VerificationSubmission {
123
+ /** Verification result */
124
+ result: VerificationResult;
125
+ /** Signed verification token */
126
+ signature?: string;
127
+ /** Submitter information */
128
+ submitter?: {
129
+ email?: string;
130
+ organization?: string;
131
+ };
132
+ }
133
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types for the Verified by Bellwether program.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map