@cejel/cejel 0.1.9 → 0.1.10
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/README.md +29 -70
- package/dist/{chunk-DVVBWBAA.js → chunk-EFOUXVJE.js} +868 -67
- package/dist/index.js +68 -3586
- package/dist/mcp/index.js +2 -2
- package/package.json +10 -12
package/README.md
CHANGED
|
@@ -20,10 +20,6 @@ certificate + badge over all of them. See "Aggregate your scanners" below.
|
|
|
20
20
|
> monorepo — the ten-product studio it was built inside — which it currently scores
|
|
21
21
|
> 3.1/4.0 ("Conditional"). We score ourselves before asking you to score yourself.
|
|
22
22
|
|
|
23
|
-
The reusable Barg Labs listing mark is kept at [`brand/barg-icon.png`](./brand/barg-icon.png)
|
|
24
|
-
for directories and registries that accept a custom image. GitHub Actions Marketplace uses
|
|
25
|
-
GitHub's predefined `action.yml` branding icons instead.
|
|
26
|
-
|
|
27
23
|
## Install
|
|
28
24
|
|
|
29
25
|
No account, no key, no signup.
|
|
@@ -65,12 +61,19 @@ docker run --rm --network=none -v "$PWD:/w" -w /w -v "$PWD/cejel:/cejel:ro" debi
|
|
|
65
61
|
npx @cejel/cejel .
|
|
66
62
|
```
|
|
67
63
|
|
|
64
|
+
If a root `package.json` still carries a template name, override only the certificate display
|
|
65
|
+
name while keeping the repository-derived stable slug:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx @cejel/cejel . --name "Customer Portal"
|
|
69
|
+
```
|
|
70
|
+
|
|
68
71
|
The npm package is scoped as `@cejel/cejel`; its executable remains the short command `cejel`.
|
|
69
72
|
|
|
70
73
|
**GitHub Action** — score every PR and publish the badge:
|
|
71
74
|
|
|
72
75
|
```yaml
|
|
73
|
-
- uses: BargLabs/cejel/action@
|
|
76
|
+
- uses: BargLabs/cejel/action@v1
|
|
74
77
|
with:
|
|
75
78
|
min-score: "2.5" # optional: fail the build below this
|
|
76
79
|
```
|
|
@@ -99,26 +102,17 @@ Microsoft Authenticode code-signing.
|
|
|
99
102
|
**Docker / OCI.** The same MCP server is published as a non-root, multi-platform image:
|
|
100
103
|
|
|
101
104
|
```bash
|
|
102
|
-
docker run --rm -i -v "$PWD:/workspace:ro" ghcr.io/barglabs/cejel:0.1.
|
|
105
|
+
docker run --rm -i -v "$PWD:/workspace:ro" ghcr.io/barglabs/cejel:0.1.10
|
|
103
106
|
```
|
|
104
107
|
|
|
105
108
|
The image defaults to `cejel-mcp` over stdio. To use the CLI instead:
|
|
106
109
|
|
|
107
110
|
```bash
|
|
108
|
-
docker run --rm -v "$PWD:/workspace:ro" --entrypoint cejel ghcr.io/barglabs/cejel:0.1.
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Beginning with v0.1.7, the standard CLI identity flags are also available directly, while an
|
|
112
|
-
invocation without arguments continues to start the MCP server:
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
docker run --rm ghcr.io/barglabs/cejel:0.1.9 --version
|
|
116
|
-
docker run --rm ghcr.io/barglabs/cejel:0.1.9 --help
|
|
111
|
+
docker run --rm -v "$PWD:/workspace:ro" --entrypoint cejel ghcr.io/barglabs/cejel:0.1.10 .
|
|
117
112
|
```
|
|
118
113
|
|
|
119
114
|
The OCI image carries an SBOM, maximum-mode build provenance, and a signed registry
|
|
120
|
-
attestation.
|
|
121
|
-
Official MCP Registry.
|
|
115
|
+
attestation.
|
|
122
116
|
|
|
123
117
|
## Leaderboard
|
|
124
118
|
|
|
@@ -199,40 +193,6 @@ This verifies the report schema and the report-to-attestation digest, repository
|
|
|
199
193
|
timestamp, and outcome binding. It does not verify a signature or signer identity; the command
|
|
200
194
|
prints that boundary on every successful verification.
|
|
201
195
|
|
|
202
|
-
### Experimental Free LLM Pack
|
|
203
|
-
|
|
204
|
-
The Free LLM Pack is an opt-in, pre-release static check for observable application-integrity
|
|
205
|
-
and evaluation-hygiene weaknesses in supported LLM application code. It is still being calibrated;
|
|
206
|
-
its results are experimental until the frozen untouched-cohort release gate reaches GO.
|
|
207
|
-
|
|
208
|
-
```bash
|
|
209
|
-
./cejel scan . --pack llm
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
The command writes the ordinary Cejel artifacts unchanged and adds `llm-report.json`,
|
|
213
|
-
`llm-attestation.json`, and `llm-certificate.html`. The pack runs locally and offline: it does
|
|
214
|
-
not call a model, execute the target application, or send source, prompts, or findings over the
|
|
215
|
-
network. Its findings and status never alter the base Cejel score or verdict.
|
|
216
|
-
|
|
217
|
-
The alpha recognizes fixture-backed JavaScript/TypeScript patterns around OpenAI, Anthropic,
|
|
218
|
-
Vercel AI SDK, and named model-call shapes. It records LangChain imports as integration metadata,
|
|
219
|
-
but a LangChain import alone does not establish v1 applicability or framework-specific coverage.
|
|
220
|
-
Python coverage is narrower: it recognizes official OpenAI and Anthropic SDK call/response shapes
|
|
221
|
-
for direct unsafe sinks, narrowly fixture-backed action validation and configured self-judge
|
|
222
|
-
checks, unconditional model loops, and secret-like environment values in model requests. See
|
|
223
|
-
[Free LLM Pack usage and limitations](./docs/packs/free-llm-usage.md) for the eight rule IDs,
|
|
224
|
-
artifact verification, exact boundaries, and current limitations.
|
|
225
|
-
|
|
226
|
-
The pack does **not** measure a model's hallucination rate, prove that an application is safe, or
|
|
227
|
-
provide runtime enforcement. Its attestation is self-generated and unsigned unless an external
|
|
228
|
-
signer binds an identity to it.
|
|
229
|
-
|
|
230
|
-
The first frozen 24+24-repository calibration cycle ended in an
|
|
231
|
-
[evidence-integrity NO-GO](./calibration/llm/reviews/v1.2-integrity-no-go-2026-07-23.md). The
|
|
232
|
-
required actual-run compatibility record was not retained, so precision, recall, and
|
|
233
|
-
false-positive rate are not estimable and Cejel makes no measured performance claim from that
|
|
234
|
-
cycle.
|
|
235
|
-
|
|
236
196
|
### Flags
|
|
237
197
|
|
|
238
198
|
- `<path>` — repo to score (default: current directory)
|
|
@@ -244,9 +204,6 @@ cycle.
|
|
|
244
204
|
- `--ingest <file|glob>` — fold another scanner's output into the score (repeatable). Accepts
|
|
245
205
|
SARIF, OpenSSF Scorecard JSON, or the generic Cejel external-signal shape — format is
|
|
246
206
|
auto-detected. See "Aggregate your scanners" below.
|
|
247
|
-
- `--pack llm` — run the opt-in experimental Free LLM Pack and write its separate evidence,
|
|
248
|
-
attestation, and HTML certificate artifacts. Repeatable pack syntax is supported; selecting the
|
|
249
|
-
same pack more than once still runs it once.
|
|
250
207
|
- `--quiet` — suppress the terminal certificate (files are still written)
|
|
251
208
|
- `-h`, `--help` — print usage and exit successfully
|
|
252
209
|
- `-v`, `--version` — print the version derived from the package manifest and exit successfully
|
|
@@ -264,9 +221,10 @@ honestly rather than guessing:
|
|
|
264
221
|
dependency hygiene, audit trail, secrets), but without ecosystem-specific test-framework
|
|
265
222
|
tuning.
|
|
266
223
|
- **Recognised but unmodelled** — shell, R, Lua, Julia, Haskell, Terraform, SQL, Perl, OCaml,
|
|
267
|
-
Clojure, Erlang, Nim, Zig, F#, Groovy
|
|
268
|
-
but with the least ecosystem-specific tuning of the
|
|
269
|
-
|
|
224
|
+
Clojure, Erlang, Nim, Zig, F#, Groovy, Fortran, CUDA/HIP, Web templates/styles: counted as
|
|
225
|
+
source so a repo isn't misread as empty, but with the least ecosystem-specific tuning of the
|
|
226
|
+
three tiers.
|
|
227
|
+
- **Not yet recognised** — other ecosystems, including COBOL and MATLAB. Cejel does
|
|
270
228
|
not score these as "source" at all: a repository with zero
|
|
271
229
|
recognised-extension files gets the `unrecognised_ecosystem` archetype, an explicit
|
|
272
230
|
`insufficient_data` criterion status, `null` headline scores, and an explicit machine verdict
|
|
@@ -361,7 +319,7 @@ a configurable `min-score` threshold. The scoring step makes no network calls an
|
|
|
361
319
|
secrets.
|
|
362
320
|
|
|
363
321
|
```yaml
|
|
364
|
-
- uses: BargLabs/cejel/action@
|
|
322
|
+
- uses: BargLabs/cejel/action@v1
|
|
365
323
|
with:
|
|
366
324
|
min-score: '2.5' # optional; omit to never fail the check
|
|
367
325
|
```
|
|
@@ -373,10 +331,6 @@ server over stdio, so any MCP client (Claude Code, Cowork, Cursor, Codex) can re
|
|
|
373
331
|
trust certificate as a tool call. It wraps the exact same scan the CLI runs — same scores,
|
|
374
332
|
same verdict — and is listed on Smithery via the repo's `smithery.yaml`.
|
|
375
333
|
|
|
376
|
-
The canonical discovery manifest is [`server.json`](./server.json), published under
|
|
377
|
-
`io.github.BargLabs/cejel` in the Official MCP Registry. Its npm ownership metadata,
|
|
378
|
-
OCI ownership label, image version, and registry version are checked together before release.
|
|
379
|
-
|
|
380
334
|
Add it to an MCP client config:
|
|
381
335
|
|
|
382
336
|
```json
|
|
@@ -440,7 +394,7 @@ enforced structurally — the public artifacts are built from filtered data rath
|
|
|
440
394
|
rendered and then scrubbed — and a build that would emit a private path fails rather than
|
|
441
395
|
publishes.
|
|
442
396
|
|
|
443
|
-
**What we exclude from ranking.** The
|
|
397
|
+
**What we exclude from ranking.** The v5 repository scanner does not evaluate B1 (dispatch
|
|
444
398
|
trace completeness) or B5 (verified learning trace) for repository inputs, including ours:
|
|
445
399
|
both are always *not applicable* in a repository certificate. They remain defined in the
|
|
446
400
|
rubric for structured substrate evidence, but that evidence is not accepted by this scanner.
|
|
@@ -522,13 +476,18 @@ scoring tool that has not been checked:
|
|
|
522
476
|
detected even though `test.js` was present at the repository root. That was a detection gap
|
|
523
477
|
in Cejel, not evidence about the repository. Rubric v6 recognizes AVA's `test.js` and
|
|
524
478
|
`test-*.js` conventions; a regression fixture preserves the correction.
|
|
525
|
-
- **
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
479
|
+
- **Version 0.1.9 claimed Express had no coverage configuration while its package scripts used
|
|
480
|
+
`nyc`.** The detector looked only for standalone coverage files and framework configuration.
|
|
481
|
+
Version 0.1.10 also recognizes actual `nyc`, `c8`, and Istanbul commands or configuration in
|
|
482
|
+
`package.json`. An unused dependency is not treated as coverage evidence. This removes a false
|
|
483
|
+
finding without changing the measured coverage score.
|
|
484
|
+
- **Metric-only dimension bands told users that “combined metric weighting” was responsible,
|
|
485
|
+
then stopped.** The underlying metrics were present in the full certificate but absent from
|
|
486
|
+
the terminal finding, and `info` finding severity could appear beside a `critical` dimension
|
|
487
|
+
band without naming the two different concepts. Version 0.1.10 prints the two lowest
|
|
488
|
+
contributing measurements, concrete next actions, `finding severity`, and `dimension band`
|
|
489
|
+
explicitly. It also explains when a requested scan target is gitignored instead of presenting
|
|
490
|
+
the target as a generic empty repository.
|
|
532
491
|
|
|
533
492
|
Every one was a trust failure produced by *us* — false alarms about other people's code,
|
|
534
493
|
silent omissions, inconsistent presentation, or a home-only scoring path — and we would
|