jep-lineage-explorer
Explore replayable delegation lineage and authority propagation across AI agents and tools.
jep-lineage-explorer turns a JEP replay archive (.jsonl) into inspectable authority artifacts:
- delegation tree for authority propagation and nested delegation
- replay lineage graph for agent-to-agent responsibility chains
- authority timeline for grants, uses, expirations, and revocations
- replay lineage engine with verification for scope attenuation and expiring delegations
- lineage diff between replay ids inside the same archive
- replay ancestry inspection through parent/causal event links
Install for local development
python -m pip install -e .
CLI
jep-lineage inspect archive.jsonl
Useful options:
jep-lineage inspect archive.jsonl --format json
jep-lineage inspect archive.jsonl --strict
--strict exits with status 2 when verification errors are found.
Supported JSONL event shapes
The reader accepts flexible field names so existing JEP archives can be replayed without a rigid schema.
Delegation creation event types include delegation_created, delegate, authority_delegated, and authority_granted.
Common delegation fields:
{
"event_type": "delegation_created",
"timestamp": "2026-01-01T00:00:00Z",
"replay_id": "run-a",
"delegation_id": "d-root",
"parent_delegation_id": null,
"from_agent": "orchestrator",
"to_agent": "planner",
"scopes": ["read", "write"],
"expires_at": "2026-01-01T01:00:00Z"
}
Authority use event types include authority_used, delegation_used, tool_call, and agent_action when they reference a delegation_id.
Revocation event types include delegation_revoked, authority_revoked, and revoke.
Replay ancestry edges are inferred from parent_event_id, parent_id, caused_by, or in_reply_to fields.
Verification
The inspector validates that:
- child scopes are a subset of parent scopes (scope attenuation)
- child delegations do not extend parent expiration
- parent delegations are active when children are issued
- authority uses reference known, active delegations
- requested use scopes do not exceed the referenced delegation
- delegation identifiers are unique and parent links are resolvable
Example
{"event_type":"delegation_created","timestamp":"2026-01-01T00:00:00Z","replay_id":"r1","delegation_id":"root","from_agent":"owner","to_agent":"planner","scopes":["read","write"],"expires_at":"2026-01-02T00:00:00Z"}
{"event_type":"delegation_created","timestamp":"2026-01-01T01:00:00Z","replay_id":"r1","delegation_id":"child","parent_delegation_id":"root","from_agent":"planner","to_agent":"worker","scopes":["read"],"expires_at":"2026-01-01T12:00:00Z"}
{"event_type":"authority_used","timestamp":"2026-01-01T02:00:00Z","replay_id":"r1","agent":"worker","delegation_id":"child","scopes":["read"]}
Runtime and verification notes
See HARDENING.md for supported behavior, regression checks, and compatibility boundaries.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jep_lineage_explorer-0.1.1.tar.gz.
File metadata
- Download URL: jep_lineage_explorer-0.1.1.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88b213b472f1c60c088b4b63646ecd884f7740f369a7ebad9510a058c329d9d2
|
|
| MD5 |
a37cfa7a61ec8037e0052ee9aabece60
|
|
| BLAKE2b-256 |
aaa08639503254e203ca00657eac973f100eeceb6a1d58944765d1dae2830805
|
Provenance
The following attestation bundles were made for jep_lineage_explorer-0.1.1.tar.gz:
Publisher:
release.yml on hjs-spec/jep-lineage-explorer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jep_lineage_explorer-0.1.1.tar.gz -
Subject digest:
88b213b472f1c60c088b4b63646ecd884f7740f369a7ebad9510a058c329d9d2 - Sigstore transparency entry: 2813988511
- Sigstore integration time:
-
Permalink:
hjs-spec/jep-lineage-explorer@cd8961ca2928a61400777236b240f52608ea8ba8 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/hjs-spec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cd8961ca2928a61400777236b240f52608ea8ba8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file jep_lineage_explorer-0.1.1-py3-none-any.whl.
File metadata
- Download URL: jep_lineage_explorer-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50a6f99243af85bba5d413c8537d984bf8cc24c9da5f81ded309dead4557cbd9
|
|
| MD5 |
1c1f699692e7f6efbc216a4ba9363f90
|
|
| BLAKE2b-256 |
808e0ab33b17ce684b4f6d4976d497e25e686c3c3ac69a1e40ead91255ba95b1
|
Provenance
The following attestation bundles were made for jep_lineage_explorer-0.1.1-py3-none-any.whl:
Publisher:
release.yml on hjs-spec/jep-lineage-explorer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jep_lineage_explorer-0.1.1-py3-none-any.whl -
Subject digest:
50a6f99243af85bba5d413c8537d984bf8cc24c9da5f81ded309dead4557cbd9 - Sigstore transparency entry: 2813988560
- Sigstore integration time:
-
Permalink:
hjs-spec/jep-lineage-explorer@cd8961ca2928a61400777236b240f52608ea8ba8 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/hjs-spec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cd8961ca2928a61400777236b240f52608ea8ba8 -
Trigger Event:
push
-
Statement type: