Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 13 additions & 66 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,19 @@ jobs:
- name: Run tests
run: npm test

- name: Run integration tests
run: npm run test:integration
- name: Run test coverage
run: npm run test:coverage

- name: Check coverage threshold
run: |
# Extract coverage percentage from report and fail if below threshold
COVERAGE=$(npm run test:coverage 2>&1 | grep "All files" | awk '{print $4}' | sed 's/%//')
echo "Coverage: $COVERAGE%"
if (( $(echo "$COVERAGE < 65" | bc -l) )); then
echo "❌ Coverage $COVERAGE% is below minimum threshold of 65%"
exit 1
fi
echo "✅ Coverage $COVERAGE% meets minimum threshold of 65%"

build:
runs-on: ubuntu-latest
Expand All @@ -68,70 +79,6 @@ jobs:

- name: Build CLI
run: npm run build

- name: Test CLI basic functionality (Node.js 20.x)
run: |
# Test basic CLI functionality
node dist/cli.js --version
node dist/cli.js --help

- name: Test CLI with Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: 'npm'

- name: Test CLI basic functionality (Node.js 18.x)
run: |
# Test basic CLI functionality on Node.js 18.x
node dist/cli.js --version
node dist/cli.js --help

test-binary-build:
runs-on: ubuntu-latest
needs: test
# Only test binary building on main/master pushes and PRs
if: github.event_name == 'pull_request' || (github.event_name == 'push' && contains(github.ref, 'refs/heads/main'))

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Test binary build process
run: |
npm run build

# Test bundling
npx esbuild src/cli.ts \
--bundle \
--platform=node \
--target=node18 \
--outfile=dist/cli-bundled.js \
--banner:js="#!/usr/bin/env node"

# Test bundled CLI
node dist/cli-bundled.js --version
node dist/cli-bundled.js --help

# Test binary creation (Linux only for CI speed)
mkdir -p dist/binaries
npx pkg dist/cli-bundled.js \
--targets node18-linux-x64 \
--output dist/binaries/capiscio-linux-x64

# Test created binary
chmod +x dist/binaries/capiscio-linux-x64
./dist/binaries/capiscio-linux-x64 --version
./dist/binaries/capiscio-linux-x64 --help

security:
runs-on: ubuntu-latest
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@ jobs:
- name: Run tests
run: npm test

- name: Run integration tests
run: npm run test:integration

- name: Build CLI
run: npm run build

Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Binaries
bin/capiscio-core
bin/capiscio-core.exe

# Build outputs
dist/
build/
Expand Down
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [2.2.0] - 2025-12-10

### Changed
- **VERSION ALIGNMENT**: All CapiscIO packages now share the same version number.
- `capiscio-core`, `capiscio` (npm), and `capiscio` (PyPI) are all v2.2.0.
- Simplifies compatibility - no version matrix needed.
- **CORE VERSION**: Now downloads `capiscio-core` v2.2.0.

## [2.1.3] - 2025-12-10

### Changed
- **CLI-ONLY ARCHITECTURE**: Package is now a pure CLI wrapper matching capiscio-python.
- Passthrough architecture - ALL commands delegated to capiscio-core binary.
- Removed programmatic API (validators, scorers, types).
- For programmatic usage, use `@capiscio/sdk` (coming soon).

### Added
- **`--wrapper-version`**: Display the version of the Node.js wrapper package.
- **`--wrapper-clean`**: Remove the cached capiscio-core binary (forces re-download on next run).

### Removed
- **BREAKING**: Removed `CoreValidator`, `validateAgentCard()` exports.
- **BREAKING**: Removed `A2AValidator`, `FetchHttpClient` exports.
- **BREAKING**: Removed `ValidateCommand`, `ConsoleOutput`, `JsonOutput` exports.
- **BREAKING**: Removed all TypeScript types exports.
- Removed unused dependencies: `commander`, `glob`, `inquirer`, `jose`.

### Fixed
- All core commands (`badge`, `key`, `gateway`, `validate`) now work via passthrough.

## [2.1.2] - 2025-11-20

### Changed
Expand Down
Loading