@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 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@v0.1.9
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.9
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.9 .
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. It is also the package referenced by [`server.json`](./server.json) for the
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: counted as source so a repo isn't misread as empty,
268
- but with the least ecosystem-specific tuning of the three tiers.
269
- - **Not yet recognised** — other ecosystems, including COBOL, Fortran, and MATLAB. Cejel does
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@v0.1.9
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 v6 repository scanner does not evaluate B1 (dispatch
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
- - **A category with no measured dimensions looked like a real failing `0.0`.** Version 0.1.9
526
- labels that state `not measured` in the HTML certificate and prints the measured-coverage
527
- context. A genuine measured zero remains `0.0`; JSON report, summary, and badge contracts are
528
- unchanged.
529
- - **A saturated metric rendered a broken-looking numerator larger than its denominator.**
530
- Version 0.1.9 leads with the scoring cap and keeps the observation explicit — for example,
531
- `2 signals (capped; 4 raw)` — instead of printing `4/2 signals`.
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