@cejel/cejel 0.6.2 → 0.6.3

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
@@ -92,7 +92,7 @@ if (-not $expected -or $actual -ne $expected.ToLowerInvariant()) {
92
92
  ```
93
93
 
94
94
  > **Windows signing status:** `cejel-Windows-x86_64.exe` is intentionally unsigned in
95
- > 0.6.2 and may trigger Microsoft SmartScreen. The release build removes Node's inherited
95
+ > 0.6.3 and may trigger Microsoft SmartScreen. The release build removes Node's inherited
96
96
  > signature before SEA injection and fails unless Windows reports the result as `NotSigned`;
97
97
  > it does not ship an invalid signature. Before running it, verify `SHA256SUMS` and the
98
98
  > GitHub build-provenance attestation. Each binary also has an attached SPDX SBOM (the packages
@@ -116,7 +116,7 @@ docker run --rm --network=none -v "$PWD:/w" -w /w -v "$PWD/cejel:/cejel:ro" debi
116
116
  npx @cejel/cejel@latest .
117
117
  ```
118
118
 
119
- > **Distribution note:** Cejel `0.6.2` is the coordinated release version for npm,
119
+ > **Distribution note:** Cejel `0.6.3` is the coordinated release version for npm,
120
120
  > standalone binaries, Docker/OCI, GitHub Action, Homebrew, and MCP Registry. A GitLab CI
121
121
  > template and Code Quality export live in [`docs/gitlab-ci.md`](./docs/gitlab-ci.md).
122
122
 
@@ -187,16 +187,16 @@ gh attestation verify ./cejel-Windows-x86_64.exe -R BargLabs/cejel
187
187
  This is cryptographically signed provenance. It is distinct from Apple Developer ID or
188
188
  Microsoft Authenticode code-signing.
189
189
 
190
- **Docker / OCI.** The current container release is `0.6.2`:
190
+ **Docker / OCI.** The current container release is `0.6.3`:
191
191
 
192
192
  ```bash
193
- docker run --rm -i -v "$PWD:/workspace:ro" ghcr.io/barglabs/cejel:0.6.2
193
+ docker run --rm -i -v "$PWD:/workspace:ro" ghcr.io/barglabs/cejel:0.6.3
194
194
  ```
195
195
 
196
196
  The image defaults to `cejel-mcp` over stdio. To use the CLI instead:
197
197
 
198
198
  ```bash
199
- docker run --rm -v "$PWD:/workspace:ro" --entrypoint cejel ghcr.io/barglabs/cejel:0.6.2 .
199
+ docker run --rm -v "$PWD:/workspace:ro" --entrypoint cejel ghcr.io/barglabs/cejel:0.6.3 .
200
200
  ```
201
201
 
202
202
  The OCI image carries an SBOM of its base-image packages, maximum-mode build provenance, and a
@@ -567,7 +567,7 @@ The OCI image is an alternative when Docker is the preferred execution boundary.
567
567
  the host path with the repository OpenClaw should allow Cejel to read:
568
568
 
569
569
  ```bash
570
- npx -y openclaw@latest mcp set cejel-oci '{"command":"docker","args":["run","--rm","-i","-v","/absolute/path/to/repo:/workspace:ro","ghcr.io/barglabs/cejel:0.6.2"]}'
570
+ npx -y openclaw@latest mcp set cejel-oci '{"command":"docker","args":["run","--rm","-i","-v","/absolute/path/to/repo:/workspace:ro","ghcr.io/barglabs/cejel:0.6.3"]}'
571
571
  npx -y openclaw@latest mcp doctor cejel-oci --probe
572
572
  ```
573
573
 
@@ -5,7 +5,7 @@ import {
5
5
  deriveProductIdentity,
6
6
  runCejelScan,
7
7
  serializeWitanReport
8
- } from "../chunk-KG62JCJZ.js";
8
+ } from "../chunk-FA72HEWJ.js";
9
9
  import {
10
10
  listCejelLlmPackFiles
11
11
  } from "../chunk-M6YYPJSN.js";
@@ -642,14 +642,14 @@ init_esm_shims();
642
642
  init_esm_shims();
643
643
  import { createHash } from "crypto";
644
644
  var WITAN_RUBRIC_BEHAVIOUR_FINGERPRINTS = Object.freeze({
645
- [WITAN_RUBRIC_VERSION_V17]: "sha256:eabdc78425373baf23f50c23b0b025bae4116461f3bc5ddc7d5b8496df03f653",
646
- [WITAN_RUBRIC_VERSION_V18]: "sha256:23cde3839b54875cf78eb8b4295779bc66327f7f5b331628a17839c2fb9562f1",
647
- [WITAN_RUBRIC_VERSION_V19]: "sha256:07e06ce68ba5ca365242f099e8860e1e466fa503dbcdac99986aab1e65c7c867",
648
- [WITAN_RUBRIC_VERSION_V20]: "sha256:4fb83b8972b76fb28cc6b59796f18ecfa16a37be52997c139f5cb14f60fd3717",
649
- [WITAN_RUBRIC_VERSION_V21]: "sha256:009f82a0ccaae4e9efcb1bb33776bf6cff2f268ddb21db0fb43f4b505563f645",
650
- [WITAN_RUBRIC_VERSION_V22]: "sha256:df8fcacf9a6f0d57c0ff00cafc51149e1bebafd3bec03f13316803b4ae27f0cc",
651
- [WITAN_RUBRIC_VERSION_V23]: "sha256:01ec9f9057f649f4bc737dc2f972bcec227237416cda5a4255db2c23d874ec5c",
652
- [WITAN_RUBRIC_VERSION_V24]: "sha256:4452f3b033552b7feb205048a07d6d851d1dc459a06f39befa86d22281e201fb"
645
+ [WITAN_RUBRIC_VERSION_V17]: "sha256:2da86acf64c39d2edb7824df46250ea23c396264266a2cd925953e9c6ad25858",
646
+ [WITAN_RUBRIC_VERSION_V18]: "sha256:60917d1d81efe7cda6f6adbfaa05293e2d9bf1db37b39d084e47f9011a996b67",
647
+ [WITAN_RUBRIC_VERSION_V19]: "sha256:e050ce8563de0736d9cfb6c23e2ba04725d88465d378a8632576269b9bc9f269",
648
+ [WITAN_RUBRIC_VERSION_V20]: "sha256:0433adc34b58c0fd5500a0bdeaa910c854eedbadbeaabb9045238d4ba9be8878",
649
+ [WITAN_RUBRIC_VERSION_V21]: "sha256:d3796b78a45ea3593f6abe71c77c2d00a0056d0f2d88476a01329dc342166aa6",
650
+ [WITAN_RUBRIC_VERSION_V22]: "sha256:932bc09cbe555c6058a95be581ccf7a286c43887f90d32698f5273b7623824bf",
651
+ [WITAN_RUBRIC_VERSION_V23]: "sha256:db97dc999d37e3c39c3bd3e4b1778c94eb9ad3176fb5c7d7264a7e510b162fc1",
652
+ [WITAN_RUBRIC_VERSION_V24]: "sha256:e313fab25ae1779a11e86b23696881cd6f8fe2a845609dc93e2ff6f3ff8c16d5"
653
653
  });
654
654
  function rubricBehaviourFingerprint(rubricVersion) {
655
655
  return WITAN_RUBRIC_BEHAVIOUR_FINGERPRINTS[rubricVersion];
@@ -4811,14 +4811,14 @@ function collectA3ProdReadinessEvidence(repoPath, repoFiles, useV27Detectors, us
4811
4811
  const serverEntrypoint = v22PackageStartHttpEntrypoint ?? findServerEntrypointFile(repoPath, repoFiles, useV27Detectors) ?? v20DirectHttpEntrypoint ?? null;
4812
4812
  const runtimeContainer = useV27Detectors ? findRuntimeContainerEntrypointFile(repoPath, repoFiles, useV20ExplicitGaps) : null;
4813
4813
  const errorBoundaries = repoFiles.filter(
4814
- (file) => (!useV27Detectors || isAuthoredProductionPath(file)) && /error-boundary|error\.(tsx|jsx|ts|js)$/.test(file)
4814
+ (file) => (!useV27Detectors || isAuthoredProductionPath(file)) && isImplementationEvidencePath(file) && ERROR_BOUNDARY_FILENAME_PATTERN.test(file)
4815
4815
  );
4816
- const errorBoundaryFileReads = (file) => observabilityDepthReads(file) || (!useV27Detectors || isAuthoredProductionPath(file)) && /(^|\/)server\//.test(file) && /\.(?:mjs|cjs)$/.test(file);
4816
+ const errorBoundaryFileReads = (file) => isImplementationEvidencePath(file) && (observabilityDepthReads(file) || (!useV27Detectors || isAuthoredProductionPath(file)) && /(^|\/)server\//.test(file) && /\.(?:mjs|cjs)$/.test(file));
4817
4817
  const expressErrorMiddlewareFile = errorBoundaries.length > 0 ? void 0 : withContentReadSignal(
4818
4818
  "A3",
4819
4819
  "prod_readiness_primitives",
4820
4820
  () => repoFiles.find(
4821
- (file) => errorBoundaryFileReads(file) && fileContains(repoPath, file, EXPRESS_ERROR_MIDDLEWARE_PATTERN) && fileMatchesOutsideLineComments(repoPath, file, EXPRESS_MIDDLEWARE_REACHABLE_PATTERN)
4821
+ (file) => errorBoundaryFileReads(file) && fileMatchesOutsideComments(repoPath, file, EXPRESS_ERROR_MIDDLEWARE_PATTERN) && fileMatchesOutsideComments(repoPath, file, EXPRESS_MIDDLEWARE_REACHABLE_PATTERN)
4822
4822
  )
4823
4823
  );
4824
4824
  const errorBoundary = errorBoundaries[0] ?? expressErrorMiddlewareFile;
@@ -4897,7 +4897,11 @@ function collectA3ProdReadinessEvidence(repoPath, repoFiles, useV27Detectors, us
4897
4897
  errorBoundary,
4898
4898
  "prod_check",
4899
4899
  "Error boundary",
4900
- findFirstMatchingLine(repoPath, errorBoundary, EXPRESS_ERROR_MIDDLEWARE_PATTERN)
4900
+ findFirstMatchingLineOutsideComments(
4901
+ repoPath,
4902
+ errorBoundary,
4903
+ EXPRESS_ERROR_MIDDLEWARE_PATTERN
4904
+ )
4901
4905
  ) : evidenceForRelative(repoPath, errorBoundary, "prod_check", "Error boundary")
4902
4906
  );
4903
4907
  }
@@ -5436,7 +5440,7 @@ function collectB2PrTraceEvidence(repoPath, repoFiles) {
5436
5440
  (file) => /(^|\/)(pull_request_template|PULL_REQUEST_TEMPLATE)(\.md$|\/[^/]+\.md$)/.test(file)
5437
5441
  );
5438
5442
  const branchProtectionDoc = repoFiles.find(
5439
- (file) => /branch.*protection|review.*gate|CODEOWNERS/i.test(file)
5443
+ (file) => /branch.*protection|review.*gate/i.test(file) || GITHUB_CODEOWNERS_PATH_PATTERN.test(file)
5440
5444
  );
5441
5445
  const evidence = [
5442
5446
  ...workflows.slice(0, 3).map((file) => evidenceForRelative(repoPath, file, "ci_run", "Pull-request CI workflow")),
@@ -5689,32 +5693,36 @@ function collectB4AuditEvidence(repoPath, repoFiles, generatedAt, useV19CommitYe
5689
5693
  function collectB6PrivilegedOpsGatingEvidence(repoPath, repoFiles, useV39Detectors = false, useV21ExecutedEscalations = false) {
5690
5694
  const evidence = [];
5691
5695
  const findings = [];
5692
- const docFiles = repoFiles.filter((file) => /\.(md|mdx)$/i.test(file));
5696
+ const policyDocFiles = repoFiles.filter(
5697
+ (file) => /\.(md|mdx)$/i.test(file) && isPolicyDocumentEvidencePath(file)
5698
+ );
5699
+ const isPolicyDocMatching = (file, pattern) => fileContains(repoPath, file, pattern) && !isCejelCertificateText(repoPath, file);
5693
5700
  const humanGateDoc = withContentReadSignal(
5694
5701
  "B6",
5695
5702
  "human_gate_documented",
5696
- () => docFiles.find((file) => fileContains(repoPath, file, HUMAN_GATE_MARKER_PATTERN))
5703
+ () => policyDocFiles.find((file) => isPolicyDocMatching(file, HUMAN_GATE_MARKER_PATTERN))
5697
5704
  );
5698
5705
  const implFiles = repoFiles.filter(isImplementationFile);
5706
+ const implementationEvidenceFiles = implFiles.filter(isImplementationEvidencePath);
5699
5707
  const gatedPrivilegeCheckFile = withContentReadSignal(
5700
5708
  "B6",
5701
5709
  "fail_closed_privilege_check",
5702
- () => implFiles.find(
5703
- (file) => fileContains(repoPath, file, GATED_PRIVILEGE_CHECK_PATTERN) && fileContains(repoPath, file, SET_ROLE_PATTERN)
5710
+ () => implementationEvidenceFiles.find(
5711
+ (file) => fileMatchesOutsideComments(repoPath, file, GATED_PRIVILEGE_CHECK_PATTERN) && fileMatchesOutsideComments(repoPath, file, SET_ROLE_PATTERN)
5704
5712
  )
5705
5713
  );
5706
5714
  const killSwitchFile = withContentReadSignal(
5707
5715
  "B6",
5708
5716
  "kill_switch_fail_safe_present",
5709
- () => implFiles.find(
5710
- (file) => fileContains(repoPath, file, KILL_SWITCH_NAME_PATTERN) && fileContains(repoPath, file, KILL_SWITCH_FAIL_CLOSED_PATTERN)
5717
+ () => implementationEvidenceFiles.find(
5718
+ (file) => fileMatchesOutsideComments(repoPath, file, KILL_SWITCH_NAME_PATTERN) && fileMatchesOutsideComments(repoPath, file, KILL_SWITCH_FAIL_CLOSED_PATTERN)
5711
5719
  )
5712
5720
  );
5713
- const codeownersFile = repoFiles.find((file) => /(^|\/)CODEOWNERS$/.test(file));
5721
+ const codeownersFile = repoFiles.find((file) => GITHUB_CODEOWNERS_PATH_PATTERN.test(file));
5714
5722
  const reviewGateDoc = withContentReadSignal(
5715
5723
  "B6",
5716
5724
  "protected_path_review_gate",
5717
- () => docFiles.find((file) => fileContains(repoPath, file, REQUIRED_REVIEW_PATTERN))
5725
+ () => policyDocFiles.find((file) => isPolicyDocMatching(file, REQUIRED_REVIEW_PATTERN))
5718
5726
  );
5719
5727
  const protectedPathReviewGate = codeownersFile ?? reviewGateDoc;
5720
5728
  const { executableFiles, v21ExecutedEscalationFileSet, productionUngatedEscalationFiles } = withContentReadSignal("B6", "privilege_escalation_cleanliness", () => {
@@ -5792,7 +5800,7 @@ function collectB6PrivilegedOpsGatingEvidence(repoPath, repoFiles, useV39Detecto
5792
5800
  repoPath,
5793
5801
  protectedPathReviewGate,
5794
5802
  "artifact",
5795
- "CODEOWNERS/required-review gate on protected paths"
5803
+ protectedPathReviewGate === codeownersFile ? "CODEOWNERS file in a location GitHub reads (protected-path review gate)" : "Documented required-review/branch-protection policy"
5796
5804
  )
5797
5805
  )
5798
5806
  );
@@ -5883,7 +5891,7 @@ function collectB6PrivilegedOpsGatingEvidence(repoPath, repoFiles, useV39Detecto
5883
5891
  1,
5884
5892
  hasPrivilegedOpsSurface ? 0.2 : 0.6,
5885
5893
  "present",
5886
- "Credits a CODEOWNERS file or documented required-review/branch-protection policy \u2014 the general OSS-observable analogue of human-gating changes to sensitive paths."
5894
+ "Credits a CODEOWNERS file where GitHub reads it (root, .github/ or docs/) or a documented required-review/branch-protection policy (not a changelog, record, review note or report) \u2014 the general OSS-observable analogue of human-gating changes to sensitive paths."
5887
5895
  ),
5888
5896
  ...killSwitchMetrics
5889
5897
  ],
@@ -5929,6 +5937,19 @@ function isTestFile(file, rubricVersion = WITAN_RUBRIC_VERSION) {
5929
5937
  }
5930
5938
  var NAME_SHAPED_TEST_FILE_PATTERN = /^test(?:-[^/]+)?\.[cm]?[jt]sx?$|\.(test|spec)\.[cm]?[jt]sx?$|(^|\/)__tests__\/|(^|\/)test_[^/]*\.py$|(^|\/)tests?\.py$|_test\.go$|(^|\/)test_[^/]*\.(cpp|cc|cxx)$|_(test|tests)\.(cpp|cc|cxx)$|Tests?\.(java|kt)$|(_test|_spec)\.(rs|rb|php|swift|kt)$/;
5931
5939
  var NAME_SHAPED_TEST_FILE_PATTERN_V17 = /\.tftest\.hcl$|\.bats$|(^|\/)test[^/]*\.m$|_test\.m$/i;
5940
+ var CALIBRATION_RECORD_DIR_PATTERN = /(^|\/)calibrations?(\/|$)/i;
5941
+ function isImplementationEvidencePath(path) {
5942
+ return isProductionSourcePath(path) && !CALIBRATION_RECORD_DIR_PATTERN.test(path);
5943
+ }
5944
+ var CHANGELOG_FILE_PATTERN = /(^|\/)(?:CHANGELOG|CHANGES|HISTORY|NEWS|RELEASE[-_]?NOTES|RELEASES)(?:\.[^/]*)?$/i;
5945
+ var NON_POLICY_RECORD_DIR_PATTERN = /(^|\/)(?:\.changesets?|changelogs?|changelog\.d|experiments?|calibrations?|reviews|review[-_]notes?|reports)(\/|$)/i;
5946
+ function isPolicyDocumentEvidencePath(path) {
5947
+ return isProductionSourcePath(path) && !CHANGELOG_FILE_PATTERN.test(path) && !NON_POLICY_RECORD_DIR_PATTERN.test(path);
5948
+ }
5949
+ var CEJEL_CERTIFICATE_TEXT_PATTERN = /^# Cejel Trust Report\b[\s\S]*?^- Rubric: /m;
5950
+ function isCejelCertificateText(repoPath, file) {
5951
+ return fileContains(repoPath, file, CEJEL_CERTIFICATE_TEXT_PATTERN);
5952
+ }
5932
5953
  var TEST_RUNNER_PATTERN = /\b(vitest|jest|mocha|ava|tap|pytest|go test|cargo test|rspec|phpunit|gradle test|mvn test|node\s+--test|node:test)\b/i;
5933
5954
  function hasCredibleTestScript(scripts) {
5934
5955
  const script = scripts.get("test");
@@ -5980,6 +6001,7 @@ function fileHasV21RawSqlEscalation(repoPath, file) {
5980
6001
  var GATED_PRIVILEGE_CHECK_PATTERN = /pg_has_role\s*\(|has_role\s*\(|is not a member of/i;
5981
6002
  var SET_ROLE_PATTERN = /\bset\s+(local\s+)?role\b/i;
5982
6003
  var REQUIRED_REVIEW_PATTERN = /required review|branch protection|protected branch/i;
6004
+ var GITHUB_CODEOWNERS_PATH_PATTERN = /^(?:\.github\/|docs\/)?CODEOWNERS$/;
5983
6005
  var HISTORY_SECRET_SCAN_CREDENTIAL_BLOB_LIMIT = 5e3;
5984
6006
  var V23_PEM_WIDENED_HISTORY_BLOB_LIMIT = 500;
5985
6007
  var SECRET_IDENTIFIER_KEYWORD_PATTERN = /secret|token|api[_-]?key|password|access[_-]?key/gi;
@@ -8038,6 +8060,7 @@ var HEALTH_ROUTE_FUNCTIONS_DIR_PATTERN = /(^|\/)functions\/.*\.(?:ts|tsx|js|jsx|
8038
8060
  var V20_HEALTH_OR_READINESS_ROUTE_PATTERN = /["'`](?:[\w${}./-]{0,60}\/[_-]?(?:(?:health|ready|live)z?|readiness|liveness|up)(?=["'`/])|(?:healthz|readiness|liveness)(?=["'`]))|@Get\s*\(\s*(["'`])health\1\s*\)/i;
8039
8061
  var EXPRESS_ERROR_MIDDLEWARE_PATTERN = /\(\s*(?:_?err|_?error)(?:\s*:\s*(?:[^,()<]|<[^<>]*>)*)?\s*,\s*(?:req|request)(?:\s*:\s*(?:[^,()<]|<[^<>]*>)*)?\s*,\s*(?:res|response)(?:\s*:\s*(?:[^,()<]|<[^<>]*>)*)?\s*,\s*_?next(?:\s*:\s*(?:[^,()<]|<[^<>]*>)*)?\s*\)\s*(?:=>|\{)/i;
8040
8062
  var EXPRESS_MIDDLEWARE_REACHABLE_PATTERN = /\.use\s*\(|\bmodule\.exports\b|\bexport\s+(?:default\b|function\b|const\b|class\b)/;
8063
+ var ERROR_BOUNDARY_FILENAME_PATTERN = /(^|\/)(?:error-boundary|error)\.(?:tsx|jsx|ts|js)$/;
8041
8064
  var RACK_SERVER_ENTRYPOINT_PATTERN = /Rack::(?:Server|Handler(?:::\w+)?)\.(?:start|run)\s*\(/;
8042
8065
  var RACK_CONFIG_RUN_PATTERN = /^\s*run\s+(?:(?:[A-Z]\w*(?:::\w+)*(?:\.new)?|lambda)\b|->)/m;
8043
8066
  var RUNTIME_CONTAINER_COMMAND_PATTERN = /^\s*(?:CMD|ENTRYPOINT)\s+.*(?:\b(?:start|serve|server|qgis|nginx|apache|gunicorn|uvicorn)\b|manage\.py\s+runserver).*$/im;
@@ -8232,11 +8255,22 @@ function fileContains(repoPath, file, pattern) {
8232
8255
  if (!isRegularFile(fullPath)) return false;
8233
8256
  return pattern.test(readRepoText(fullPath, "utf8"));
8234
8257
  }
8235
- function fileMatchesOutsideLineComments(repoPath, file, pattern) {
8258
+ var HASH_COMMENT_SOURCE_PATTERN = /\.(?:py|rb)$/i;
8259
+ function stripCodeComments(file, contents) {
8260
+ const withoutComments = contents.replace(/\/\*[\s\S]*?\*\//g, (block) => block.replace(/[^\n]/g, "")).replace(/(?<!:)\/\/.*$/gm, "");
8261
+ return HASH_COMMENT_SOURCE_PATTERN.test(file) ? withoutComments.replace(/^[ \t]*#.*$/gm, "") : withoutComments;
8262
+ }
8263
+ function fileMatchesOutsideComments(repoPath, file, pattern) {
8236
8264
  const fullPath = join(repoPath, file);
8237
8265
  if (!isRegularFile(fullPath)) return false;
8238
- const withoutLineComments = readRepoText(fullPath, "utf8").replace(/(?<!:)\/\/.*$/gm, "");
8239
- return pattern.test(withoutLineComments);
8266
+ return pattern.test(stripCodeComments(file, readRepoText(fullPath, "utf8")));
8267
+ }
8268
+ function findFirstMatchingLineOutsideComments(repoPath, file, pattern) {
8269
+ const fullPath = join(repoPath, file);
8270
+ if (!isRegularFile(fullPath)) return null;
8271
+ const lines = stripCodeComments(file, readRepoText(fullPath, "utf8")).split("\n");
8272
+ const index = lines.findIndex((line) => pattern.test(line));
8273
+ return index === -1 ? null : index + 1;
8240
8274
  }
8241
8275
  var PEM_PRIVATE_KEY_ASSIGNMENT_PATTERN = /(?:["'])?([A-Za-z_$][\w$.-]*)(?:["'])?\s*[:=]\s*(?:\|[-+0-9]*\s*\r?\n[ \t]*)?["'`]?-----BEGIN((?: (?:RSA|DSA|EC|OPENSSH|ENCRYPTED))? PRIVATE KEY)-----([\s\S]{0,32768}?)-----END\2-----/g;
8242
8276
  var BARE_PEM_PRIVATE_KEY_PATTERN = /["'`]?-----BEGIN((?: (?:RSA|DSA|EC|OPENSSH|ENCRYPTED))? PRIVATE KEY)-----([\s\S]{0,32768}?)-----END\1-----/g;
@@ -5,7 +5,7 @@ import {
5
5
  renderWitanBadgeSvg,
6
6
  renderWitanHtmlReport,
7
7
  runCejelScan
8
- } from "./chunk-KG62JCJZ.js";
8
+ } from "./chunk-FA72HEWJ.js";
9
9
  import {
10
10
  ZodFirstPartyTypeKind,
11
11
  ZodOptional,
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { createRequire as __cejelCreateRequire } from 'node:module';
3
3
  const require = __cejelCreateRequire(import.meta.url);
4
4
  import {
5
5
  serveCejelMcpOverStdio
6
- } from "./chunk-QDP7QWA7.js";
6
+ } from "./chunk-KAMWXGY7.js";
7
7
  import {
8
8
  CALLER_CONTEXT_PRODUCT_IDENTITY_NOTICE,
9
9
  CERTIFICATE_GLOSSARY,
@@ -29,7 +29,7 @@ import {
29
29
  runCejelScan,
30
30
  serializeWitanReport,
31
31
  verifyWitanAttestationBinding
32
- } from "./chunk-KG62JCJZ.js";
32
+ } from "./chunk-FA72HEWJ.js";
33
33
  import "./chunk-63XQDYQ5.js";
34
34
  import {
35
35
  external_exports
package/dist/mcp/index.js CHANGED
@@ -3,8 +3,8 @@ import { createRequire as __cejelCreateRequire } from 'node:module';
3
3
  const require = __cejelCreateRequire(import.meta.url);
4
4
  import {
5
5
  serveCejelMcpOverStdio
6
- } from "../chunk-QDP7QWA7.js";
7
- import "../chunk-KG62JCJZ.js";
6
+ } from "../chunk-KAMWXGY7.js";
7
+ import "../chunk-FA72HEWJ.js";
8
8
  import "../chunk-63XQDYQ5.js";
9
9
  import "../chunk-FSMZV3Y6.js";
10
10
  import {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cejel/cejel",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "mcpName": "io.github.BargLabs/cejel",
5
5
  "private": false,
6
6
  "publishConfig": {