Metadata-Version: 2.4
Name: headless-w3c-e2e
Version: 0.1.0
Summary: Python-first headless W3C holder presentation E2E harness
Project-URL: Repository, https://github.com/GLEIF-IT/w3c-crosswalk
Project-URL: Issues, https://github.com/GLEIF-IT/w3c-crosswalk/issues
Author-email: Kent Bull <kent@kentbull.com>
License: Apache-2.0
Requires-Python: <3.14,>=3.12.6
Requires-Dist: requests<3,>=2
Requires-Dist: signifypy-did-webs<0.2.0,>=0.1.0
Requires-Dist: signifypy-w3c<0.2.0,>=0.1.0
Requires-Dist: signifypy<0.5.0,>=0.4.2
Requires-Dist: vc-isomer<0.2.0,>=0.1.0
Description-Content-Type: text/markdown

# headless-w3c-e2e

Python-first executable harness for the holder-centered W3C VRD flow.

The package wraps SignifyPy/KERIA-style clients with in-memory wallet actors,
drives issuer edge VC-JWT creation, holder credential materialization, holder
edge VP-JWT creation, and verifier checks, then emits manifests that
TypeScript, React, and local-stack work can compare against.

Verifier acceptance is live-service only. The harness expects Python, Node, and
Go verifier base URLs, builds runtime presentation descriptors for KERIA, lets
KERIA submit the holder VP-JWT, then polls the verifier service operation that
KERIA created. CLI-style stdin commands, verifier test doubles, direct verifier
library calls, and fixture-only verifier responses are not acceptance evidence.

Signing and W3C artifact assembly remain edge operations. The harness uses
`signifypy-w3c` to build and sign VC-JWT and VP-JWT artifacts with holder or
issuer edge key material. KERIA validates those artifacts and forwards them.

It is not a production wallet SDK.

See `../../docs/live-service-headless-e2e.md` for the full runbook.

## CLI Shape

Typical attach-mode run:

```bash
python -m headless_w3c_e2e.cli \
  --w3c-stack attach \
  --manifest .tmp/local-stack/w3c-vrd-chain-manifest.json \
  --manifest-out .tmp/local-stack/headless-w3c-live-manifest.json
```

Supported stack modes:

- `attach`: consume already-running live services.
- `process`: start real local service processes, then seed.
- `docker`: start the portable compose stack, then seed.

The harness requires Python, Node, and Go verifier URLs. Docker mode uses host
URLs for harness polling and container DNS submission URLs for KERIA.

## Evidence

The output manifest records issuance, holder credential materialization,
presentation results, verifier operation evidence, negative cases, and
dashboard webhook evidence when configured. Raw JWTs are redacted unless
`--unsafe-raw-tokens` is set for local debugging.
