Eclipse Benchkit
Free vendor self-bench SDK — Assay scorecard format + verifier spot-check sampling.
Installation
Les étapes d'installation sont dans la documentation ci-dessous. Documentation
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Eclipse Benchkit
A free, local SDK a vendor runs against their own MCP server to execute their declared check battery and emit a scorecard in the Assay scorecard format — check ids, verdicts, evidence hashes, environment fingerprint — with a spot-check hook embedded in every check entry as it runs. A separate local harness draws a random sample from the sealed scorecard and re-runs those checks, issuing a counter-signed verification receipt.
Scope label: LOCAL / fixture. v0.1 is exercised only against fixture vendor servers. No live vendor server, no network call, no registry.
Status: v0.1.1 — CERTIFIED (local/fixture). Verity re-bench 2026-10-27: all v0.1.0 FAIL defects (D1/D2 blockers, M1–M4 majors, m1–m5 minors) closed and independently verified; builder suite 27/27. Two new minors (N1 fence-encoding edges, N2 seed-commitment provenance) are recorded for the next fix loop and do not gate this scope. The certification binds exactly this scope: the SDK, emitter, and spot-check harness against fixture vendor servers only. A spot-check receipt is a statement about a sample of one sealed scorecard — not a house bench verdict and not a certification of any vendor server.
v0.1.1 protocol notes
- Commit-then-sample, unpredictable (D1). The verifier nonce is
generated verifier-side from a secret seed held in
keys/plus fresh CSPRNG entropy, and revealed only in the sample manifest after the seal is verified. It is never a caller input for a new draw and cannot be precomputed from the scorecard hash or any public state. A supplied nonce is honoured only as a replay key for an already-issued(scorecard_hash, verifier_nonce)pair, which returns the recorded receipt (§3.3); a novel supplied nonce is refused by name. - Verifier token (§5, M4). Verifier verbs require the verifier
token: the fixture token in
keys/verifier-token.fixture.key(chmod 600, gitignored), presented per call asverifier_tokenor viaBENCHKIT_VERIFIER_TOKENin the verifier process. - Config fence (§7.3, F-B14). Startup hard-exits with
CONFIG_FENCE_REFUSED:<class>on a non-local endpoint, a live-key string, a vendor-nonce config, a non-testvalue_class, or an Assay/Cupel price-or-checkout config; live-URL server descriptors are refused atbenchkit_run_beginwith the same named code. - Authenticated artefacts (M1/M2). The seal signature binds the head hash, all counts, and the format version; recompute verifies receipt signatures, the outcome record chain, and the rerun chain head, and rejects extra outcomes.
- Keys (§7.4, M3). All fixture keys are locally generated in
keys/(chmod 600, gitignored, fixture-labelled). No key material exists in source.
Novel mechanism
Vendor-run scorecards embed spot-check hooks; the house bench re-runs
a random sample, so a fabricated self-bench is statistically
detectable. The protocol is commit-then-sample: the scorecard is
sealed (hash-chained, vendor-signed) before any sample exists, and the
sample seed derives from scorecard_hash ‖ verifier_nonce, the nonce
revealed only after the seal is presented. The receipt states the
arithmetic on its face: at sample size k and fabricated fraction
f, detection probability is 1 − (1−f)^k — default k = 30 (or all
hook-bearing checks if fewer), powered at f ≥ 0.10 → detection
≥ 95%. A check without a hook is labelled HOOKLESS on the
scorecard's face and is outside every sample and every verified
claim; a sampled non-deterministic or secret-requiring check resolves
to UNVERIFIABLE, never to a silent pass. Receipt verdicts:
VERIFIED_SAMPLE · DIVERGENT (mismatched check ids named) ·
UNVERIFIABLE.
Every vendor scorecard is labelled vendor-run / self-bench on its
face. A spot-check receipt says only that a random sample of k of
N hook-bearing checks was re-run and matched (or diverged — verdict
as issued), powered to detect fabrication at fraction ≥ f with
probability p. It is not a house bench verdict and not a
certification of the vendor's server, and it never upgrades a
self-bench into one. Unverifiable scorecards export only as
DOWNGRADED_EXPORT, never upgraded post-hoc.
Format attribution, exact and minimal: scorecard emitted in the
Assay scorecard format. Eclipse Assay and Eclipse Cupel are internal
tools; Benchkit consumes their scorecard format as a specification
only and contains no product surface, price, licence, or buy path for
them. The full bench is a paid service engagement; intake via the
existing route — Benchkit contains no intake form, no engagement
checkout, and no service pricing. Benchkit's own metering point is
one spotcheck_verification_completed event per completed
verification ($10/verification shape, metering record only, no charge
path in this build), keyed to (scorecard_hash, verifier_nonce) so
idempotent returns do not double-meter.
Tools
Vendor surface (default, ECLIPSE_BENCHKIT_SURFACE=vendor):
benchkit_run_begin, benchkit_check_record,
benchkit_scorecard_seal, benchkit_scorecard_get,
benchkit_export_get.
Verifier surface (ECLIPSE_BENCHKIT_SURFACE=verifier):
spotcheck_request, spotcheck_run, spotcheck_receipt_get,
spotcheck_recompute, anomaly_queue_read.
Surfaces are disjoint; cross-surface calls return the identical unknown-tool refusal as a nonsense name. Pre-seal sample attempts, vendor-supplied nonces, and same-nonce re-draws after a verdict are refused by name and receipted in the anomaly queue.
Fixtures
fixtures/battery-*.json — deterministic fixture batteries over
fixture vendor servers: good (40 checks), small (8), honest failures
(3 genuinely failing checks sealed as failures), hookless (5 of 12),
flaky (one non-deterministic check), secret-hook (one un-runnable
hook), fabricated (40 claimed checks, 12 fabricated, over the
fabricated-source server — the decisive fixture: the seeded
spot-check must catch at least one).
Run
python3 server.py # MCP over stdio JSON-RPC
python3 -m unittest discover -s tests -v
State lives in data/ or BENCHKIT_DATA_DIR. Python 3, standard
library only.
Powered by Cyan Eclipse Technologies — https://cetech.ai
MIT License · Copyright © 2026 Cyan Eclipse Technologies LLC · cetech.ai
Questions fréquentes
Qu'est-ce que Eclipse Benchkit ?
Free vendor self-bench SDK — Assay scorecard format + verifier spot-check sampling.
Comment installer Eclipse Benchkit ?
Suivez les étapes d'installation de sa documentation, affichée sur cette page et dans son dépôt.
Eclipse Benchkit est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient Eclipse Benchkit ?
Il est publié par CYAN-ECLIPSE-TECHNOLOGIES-LLC. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.