@dotsetlabs/bellwether 0.12.0 → 1.0.1
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.
- package/.dockerignore +25 -0
- package/CHANGELOG.md +123 -0
- package/Dockerfile +43 -0
- package/README.md +107 -665
- package/dist/auth/keychain.js +14 -7
- package/dist/baseline/accessors.d.ts +1 -1
- package/dist/baseline/baseline-hash.js +23 -6
- package/dist/baseline/change-impact-analyzer.js +1 -1
- package/dist/baseline/cloud-types.d.ts +281 -0
- package/dist/baseline/cloud-types.js +12 -0
- package/dist/baseline/comparator.js +2 -2
- package/dist/baseline/converter.d.ts +1 -1
- package/dist/baseline/deprecation-tracker.js +1 -1
- package/dist/baseline/diff.js +4 -4
- package/dist/baseline/golden-output.js +2 -2
- package/dist/baseline/migration-generator.js +2 -2
- package/dist/baseline/performance-tracker.js +1 -1
- package/dist/baseline/pr-comment-generator.js +6 -6
- package/dist/baseline/risk-scorer.js +1 -1
- package/dist/baseline/schema-evolution.js +1 -1
- package/dist/baseline/types.d.ts +1 -1
- package/dist/benchmark/benchmarker.d.ts +30 -0
- package/dist/benchmark/benchmarker.js +309 -0
- package/dist/benchmark/index.d.ts +6 -0
- package/dist/benchmark/index.js +5 -0
- package/dist/benchmark/types.d.ts +133 -0
- package/dist/benchmark/types.js +5 -0
- package/dist/cli/commands/auth.d.ts +0 -1
- package/dist/cli/commands/auth.js +0 -1
- package/dist/cli/commands/baseline.js +7 -7
- package/dist/cli/commands/benchmark.d.ts +11 -0
- package/dist/cli/commands/benchmark.js +260 -0
- package/dist/cli/commands/check.js +13 -8
- package/dist/cli/commands/cloud/badge.js +2 -2
- package/dist/cli/commands/contract.js +4 -4
- package/dist/cli/commands/discover.js +1 -1
- package/dist/cli/commands/explore.js +1 -1
- package/dist/cli/commands/watch.js +5 -5
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.js +9 -29
- package/dist/cli/output/terminal-reporter.d.ts +1 -1
- package/dist/cli/output/terminal-reporter.js +4 -24
- package/dist/cli/output.js +2 -2
- package/dist/cli/utils/progress.js +10 -10
- package/dist/cloud/http-client.d.ts +2 -2
- package/dist/cloud/http-client.js +6 -6
- package/dist/cloud/mock-client.d.ts +2 -2
- package/dist/cloud/mock-client.js +26 -26
- package/dist/cloud/types.d.ts +28 -28
- package/dist/config/defaults.d.ts +0 -14
- package/dist/config/defaults.js +0 -14
- package/dist/config/loader.js +33 -4
- package/dist/config/template.js +0 -40
- package/dist/config/validator.d.ts +6 -146
- package/dist/config/validator.js +0 -85
- package/dist/constants/cloud.d.ts +0 -36
- package/dist/constants/cloud.js +1 -38
- package/dist/constants/core.d.ts +13 -20
- package/dist/constants/core.js +13 -20
- package/dist/constants/testing.d.ts +4 -8
- package/dist/constants/testing.js +4 -9
- package/dist/contract/validator.js +1 -1
- package/dist/discovery/discovery.js +4 -4
- package/dist/docs/agents.js +1 -1
- package/dist/docs/contract.js +6 -7
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/dist/interview/interviewer.js +1 -1
- package/dist/interview/orchestrator.js +1 -1
- package/dist/llm/anthropic.js +1 -1
- package/dist/llm/token-budget.js +1 -1
- package/dist/logging/logger.js +4 -2
- package/dist/registry/client.d.ts +2 -0
- package/dist/registry/client.js +38 -1
- package/dist/security/security-tester.js +2 -2
- package/dist/transport/http-transport.js +1 -1
- package/dist/transport/mcp-client.d.ts +2 -0
- package/dist/transport/mcp-client.js +12 -7
- package/dist/transport/stdio-transport.js +1 -1
- package/dist/utils/markdown.js +3 -3
- package/dist/utils/sanitize.js +1 -1
- package/dist/utils/smart-truncate.js +1 -1
- package/dist/utils/timeout.d.ts +1 -1
- package/dist/utils/timeout.js +2 -2
- package/dist/version.js +1 -1
- package/dist/workflow/auto-generator.js +3 -3
- package/dist/workflow/state-tracker.js +1 -1
- package/package.json +38 -7
- package/scripts/completions/bellwether.bash +61 -0
- package/scripts/completions/bellwether.zsh +94 -0
package/.dockerignore
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
node_modules
|
|
2
|
+
npm-debug.log
|
|
3
|
+
.git
|
|
4
|
+
.gitignore
|
|
5
|
+
README.md
|
|
6
|
+
CHANGELOG.md
|
|
7
|
+
.eslintrc.json
|
|
8
|
+
.prettierrc
|
|
9
|
+
.github
|
|
10
|
+
.nyc_output
|
|
11
|
+
coverage
|
|
12
|
+
.vscode
|
|
13
|
+
.idea
|
|
14
|
+
test/
|
|
15
|
+
src/
|
|
16
|
+
*.test.ts
|
|
17
|
+
*.spec.ts
|
|
18
|
+
tsconfig.json
|
|
19
|
+
typedoc.json
|
|
20
|
+
vitest.config.ts
|
|
21
|
+
.dccache
|
|
22
|
+
*.md
|
|
23
|
+
!LICENSE
|
|
24
|
+
!README.md
|
|
25
|
+
!CHANGELOG.md
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,129 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [1.0.1] - 2026-01-29
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Added `$VAR` syntax support for environment variable interpolation in config files
|
|
15
|
+
- Added rate limiting to registry client (5 req/s default)
|
|
16
|
+
- Added `AnthropicClient` and `OllamaClient` exports to public API
|
|
17
|
+
- Added `repository.directory` and `funding` fields to package.json
|
|
18
|
+
- Added required permissions documentation to GitHub Action
|
|
19
|
+
- Added debug logging for all credential operations
|
|
20
|
+
- Added warning when environment variables in config are not resolved
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Optimized GitHub Action to run check once; SARIF and JUnit are now converted from JSON output
|
|
25
|
+
- Removed test coverage exclusion for CLI entry point
|
|
26
|
+
- Removed unnecessary type casts in check.ts and security-tester.ts
|
|
27
|
+
- Replaced magic number 100 with PERCENTAGE_CONVERSION.DIVISOR constant
|
|
28
|
+
- Removed dead code sections from constants
|
|
29
|
+
- Refactored string concatenation to template literals in CLI output modules
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- Fixed version fallback inconsistency (0.13.0 → 1.0.1)
|
|
34
|
+
- Fixed missing pino-pretty dependency
|
|
35
|
+
- Fixed non-null assertion for remoteUrl in check.ts (added proper null check)
|
|
36
|
+
- Fixed non-null assertion for incrementalResult in check.ts
|
|
37
|
+
- Added debug logging to catch blocks in keychain.ts (graceful degradation with visibility)
|
|
38
|
+
- Fixed flaky test in workflow executor (timing assertion)
|
|
39
|
+
- Fixed test failures in baseline-accept tests (process.exit mock)
|
|
40
|
+
|
|
41
|
+
## [1.0.0] - 2026-01-27
|
|
42
|
+
|
|
43
|
+
### Breaking Changes
|
|
44
|
+
|
|
45
|
+
- **Removed cloud commands**: The following commands have been removed: `login`, `upload`, `projects`, `history`, `diff`, `link`, `teams`, `badge`
|
|
46
|
+
- **Removed benchmark command**: The `benchmark` command and "Tested with Bellwether" certification program have been removed
|
|
47
|
+
- **Removed cloud module**: All cloud integration code has been removed from the CLI
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
|
|
51
|
+
- **Fully open source**: Bellwether is now a completely free, open-source tool with no cloud dependencies
|
|
52
|
+
- **Simplified configuration**: Removed cloud-related settings from `bellwether.yaml` template
|
|
53
|
+
- **Updated documentation**: Removed all cloud-related documentation
|
|
54
|
+
|
|
55
|
+
### Migration Guide
|
|
56
|
+
|
|
57
|
+
If you were using cloud features:
|
|
58
|
+
|
|
59
|
+
1. **Baselines**: Store baselines in git instead of uploading to cloud
|
|
60
|
+
```bash
|
|
61
|
+
bellwether baseline save
|
|
62
|
+
git add bellwether-baseline.json
|
|
63
|
+
git commit -m "Add baseline"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
2. **CI/CD**: Use local baseline comparison instead of cloud upload
|
|
67
|
+
```bash
|
|
68
|
+
# Old
|
|
69
|
+
bellwether upload --ci --fail-on-drift
|
|
70
|
+
|
|
71
|
+
# New
|
|
72
|
+
bellwether check --fail-on-drift
|
|
73
|
+
bellwether baseline compare ./bellwether-baseline.json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
3. **Environment variables**: Remove `BELLWETHER_SESSION`, `BELLWETHER_API_URL`, `BELLWETHER_TEAM_ID` from your CI/CD configuration
|
|
77
|
+
|
|
78
|
+
## [0.13.0] - 2026-01-27
|
|
79
|
+
|
|
80
|
+
### Breaking Changes
|
|
81
|
+
|
|
82
|
+
- **Renamed `bellwether verify` to `bellwether benchmark`**: The verification command has been renamed to better reflect its purpose
|
|
83
|
+
- Old: `bellwether verify <server-command>`
|
|
84
|
+
- New: `bellwether benchmark <server-command>`
|
|
85
|
+
- **Renamed "Verified by Bellwether" to "Tested with Bellwether"**: Updated branding throughout the CLI and documentation
|
|
86
|
+
- Badge text now shows "Tested with Bellwether"
|
|
87
|
+
- Status values changed: `verified` → `passed`, `not_verified` → `not_tested`
|
|
88
|
+
- **Config section renamed**: The `verify:` section in `bellwether.yaml` is now `benchmark:`
|
|
89
|
+
- Old: `verify: { timeout: 30000 }`
|
|
90
|
+
- New: `benchmark: { timeout: 30000 }`
|
|
91
|
+
- **Output file renamed**: Default benchmark report file changed from `bellwether-verification.json` to `bellwether-benchmark.json`
|
|
92
|
+
- **Cloud API changes**: Benchmark-related API endpoints have been renamed
|
|
93
|
+
- `/verifications` → `/benchmarks`
|
|
94
|
+
- Activity events: `verification.completed` → `benchmark.completed`, `verification.failed` → `benchmark.failed`
|
|
95
|
+
|
|
96
|
+
### Changed
|
|
97
|
+
|
|
98
|
+
- All CLI output messages updated to use "benchmark" terminology
|
|
99
|
+
- Documentation updated throughout to reflect new naming
|
|
100
|
+
- Badge command description updated to reference "benchmark badge"
|
|
101
|
+
- Constants renamed: `VERIFICATION_TIERS` → `BENCHMARK_TIERS`, `DEFAULT_VERIFICATION_REPORT_FILE` → `DEFAULT_BENCHMARK_REPORT_FILE`
|
|
102
|
+
|
|
103
|
+
### Migration Guide
|
|
104
|
+
|
|
105
|
+
1. Update your `bellwether.yaml` config file:
|
|
106
|
+
```yaml
|
|
107
|
+
# Old
|
|
108
|
+
verify:
|
|
109
|
+
timeout: 30000
|
|
110
|
+
|
|
111
|
+
# New
|
|
112
|
+
benchmark:
|
|
113
|
+
timeout: 30000
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
2. Update any CI/CD scripts:
|
|
117
|
+
```bash
|
|
118
|
+
# Old
|
|
119
|
+
bellwether verify npx @mcp/server
|
|
120
|
+
|
|
121
|
+
# New
|
|
122
|
+
bellwether benchmark npx @mcp/server
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
3. Update any references to the output file:
|
|
126
|
+
- `bellwether-verification.json` → `bellwether-benchmark.json`
|
|
127
|
+
|
|
5
128
|
## [0.12.0] - 2026-01-26
|
|
6
129
|
|
|
7
130
|
### Features
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Bellwether MCP Testing Tool
|
|
2
|
+
# https://github.com/dotsetlabs/bellwether
|
|
3
|
+
|
|
4
|
+
FROM node:20-alpine
|
|
5
|
+
|
|
6
|
+
LABEL maintainer="Dotset Labs <hello@dotsetlabs.com>"
|
|
7
|
+
LABEL description="Bellwether - MCP Server Testing & Validation"
|
|
8
|
+
LABEL org.opencontainers.image.source="https://github.com/dotsetlabs/bellwether"
|
|
9
|
+
|
|
10
|
+
# Install git for npm dependencies that may need it
|
|
11
|
+
RUN apk add --no-cache git
|
|
12
|
+
|
|
13
|
+
# Create app directory
|
|
14
|
+
WORKDIR /app
|
|
15
|
+
|
|
16
|
+
# Copy package files
|
|
17
|
+
COPY package*.json ./
|
|
18
|
+
|
|
19
|
+
# Install production dependencies only
|
|
20
|
+
RUN npm ci --omit=dev
|
|
21
|
+
|
|
22
|
+
# Copy built application
|
|
23
|
+
COPY dist/ ./dist/
|
|
24
|
+
COPY schemas/ ./schemas/
|
|
25
|
+
COPY LICENSE README.md CHANGELOG.md ./
|
|
26
|
+
|
|
27
|
+
# Create non-root user
|
|
28
|
+
RUN addgroup -g 1001 -S bellwether && \
|
|
29
|
+
adduser -S bellwether -u 1001
|
|
30
|
+
|
|
31
|
+
# Set proper permissions
|
|
32
|
+
RUN chown -R bellwether:bellwether /app
|
|
33
|
+
|
|
34
|
+
# Switch to non-root user
|
|
35
|
+
USER bellwether
|
|
36
|
+
|
|
37
|
+
# Set environment
|
|
38
|
+
ENV NODE_ENV=production
|
|
39
|
+
ENV BELLWETHER_DOCKER=1
|
|
40
|
+
|
|
41
|
+
# Entry point
|
|
42
|
+
ENTRYPOINT ["node", "dist/cli/index.js"]
|
|
43
|
+
CMD ["--help"]
|