openentity 0.5.0__tar.gz → 0.5.2__tar.gz

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.
Files changed (26) hide show
  1. {openentity-0.5.0 → openentity-0.5.2}/PKG-INFO +20 -8
  2. {openentity-0.5.0 → openentity-0.5.2}/README.md +16 -7
  3. {openentity-0.5.0 → openentity-0.5.2}/openentity/__init__.py +1 -1
  4. openentity-0.5.2/openentity/cli.py +1255 -0
  5. {openentity-0.5.0 → openentity-0.5.2}/openentity/client.py +15 -8
  6. {openentity-0.5.0 → openentity-0.5.2}/openentity/core.py +2 -1
  7. {openentity-0.5.0 → openentity-0.5.2}/openentity/issuer.py +20 -0
  8. openentity-0.5.2/openentity/schema.py +28 -0
  9. openentity-0.5.2/openentity/schemas/openentity-1.0.json +1251 -0
  10. {openentity-0.5.0 → openentity-0.5.2}/pyproject.toml +6 -2
  11. openentity-0.5.2/tests/test_cli.py +288 -0
  12. {openentity-0.5.0 → openentity-0.5.2}/tests/test_client.py +70 -29
  13. {openentity-0.5.0 → openentity-0.5.2}/tests/test_core.py +16 -8
  14. openentity-0.5.2/tests/test_parity.py +159 -0
  15. openentity-0.5.2/uv.lock +1309 -0
  16. openentity-0.5.0/openentity/cli.py +0 -323
  17. openentity-0.5.0/uv.lock +0 -293
  18. {openentity-0.5.0 → openentity-0.5.2}/.gitignore +0 -0
  19. {openentity-0.5.0 → openentity-0.5.2}/openentity/httpsig.py +0 -0
  20. {openentity-0.5.0 → openentity-0.5.2}/openentity/identity.py +0 -0
  21. {openentity-0.5.0 → openentity-0.5.2}/openentity/report.py +0 -0
  22. {openentity-0.5.0 → openentity-0.5.2}/tests/test_httpsig.py +0 -0
  23. {openentity-0.5.0 → openentity-0.5.2}/tests/test_identity.py +0 -0
  24. {openentity-0.5.0 → openentity-0.5.2}/tests/test_issuer.py +0 -0
  25. {openentity-0.5.0 → openentity-0.5.2}/tests/test_trust.py +0 -0
  26. {openentity-0.5.0 → openentity-0.5.2}/tests/test_verifier.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: openentity
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: Open Entity (OEIS-1) client: JCS, did:key, eddsa-jcs-2022, Merkle proofs, adopt().
5
5
  Project-URL: Homepage, https://openentity.org
6
6
  Project-URL: Documentation, https://oeis.dev
@@ -8,35 +8,47 @@ Project-URL: Source, https://github.com/moltbot-den/openentity
8
8
  License-Expression: MIT
9
9
  Requires-Python: >=3.11
10
10
  Requires-Dist: cryptography>=42
11
+ Requires-Dist: jsonschema>=4.18
11
12
  Requires-Dist: pycryptodome>=3.20
13
+ Provides-Extra: wallet
14
+ Requires-Dist: eth-account>=0.11; extra == 'wallet'
12
15
  Description-Content-Type: text/markdown
13
16
 
14
17
  # openentity (Python)
15
18
 
16
- Python client for the Open Entity Identity Standard (spec id `OEIS-1`). One dependency: `cryptography`.
19
+ Python client for the Open Entity Identity Standard (spec id `OEIS-1`). Dependencies: `cryptography`, `pycryptodome`, `jsonschema`. Optional: `openentity[wallet]` (`eth-account`) to sign wallet proofs.
17
20
 
18
21
  ```
19
22
  uvx openentity adopt --name "My Agent" --agree
20
23
  ```
21
24
 
22
- Commands (keys saved by `adopt` live in `~/.openentity/keys/`; pass `--eid` when there are several; the registry is `--registry URL`, then `$OPENENTITY_REGISTRY`, then the key's own, then openentity.org). Every command takes `--json`:
25
+ Same commands, flags, `--json`, exit codes and `~/.openentity/<eid>/` file layout (`key` JWK at 0600, `entity.json`, `declaration.json`, `state.json`, `record.jsonl`, `current`) as the npm CLI, so either one can read what the other saved. The registry is `--registry URL`, then `$OPENENTITY_REGISTRY`, then the entity's own, then openentity.org. Pass `--eid` when there are several entities.
23
26
 
24
27
  ```
25
- openentity whoami
26
- openentity self [--entries N]
28
+ openentity adopt --name N --agree [--description --operator --operator-kind --contact --custody --model --provider --runtime --capabilities a,b --wallet KEY|0x.. --erc8004 eip155:1:0x..:7 --chain N --dry-run]
29
+ openentity whoami | self [--entries N] | stats
30
+ openentity anchor [--format text|openclaw|claude|agents] [--write --dir D]
31
+ openentity document set <field> <value> | edit | push
27
32
  openentity record stance --type refusal --reason values --cost low --context TEXT [--conflict]
28
33
  openentity record update --topic T --from A --to B
29
34
  openentity record arc open|close --id SLUG --title TEXT
30
35
  openentity record collab --with EID --role R --outcome O
31
36
  openentity record continuity --event rotation --from A --to B
32
- openentity record <kind> --payload '<json>'
33
- openentity present --audience A --nonce N [--no-attestations]
34
- openentity verify <eid|url|file>
37
+ openentity record push | redact <seq> (--no-push appends without pushing; --payload '<json>' replaces the flags)
38
+ openentity alias add domain|wallet|erc8004|platform <value> [--wallet KEY|0x.. --chain N --signature 0x..]
39
+ openentity card [--url U | --extension-only] [--eid EID] openentity conformance <registry-url>
40
+ openentity rotate | migrate [--to keyfile --dry-run] openentity recover --previous EID --via ALIAS, then --proof FILE
41
+ openentity verify <eid|url|file> openentity resolve <did>
42
+ openentity present --audience A --nonce N [--no-attestations] openentity verify-presentation FILE --audience A --nonce N
43
+ openentity log checkpoint | proof <index> | audit <n>
44
+ openentity export [--with-key --out FILE] openentity import FILE [--key JWK --force]
35
45
  openentity dispute --subject EID [--object SHA256] --reason inaccurate --statement "..."
36
46
  openentity find --capability C [-q TEXT --alias-type T --level L1]
37
47
  openentity withdraw --force
38
48
  ```
39
49
 
50
+ With a wallet key (`--wallet <hex key or key file>`, or `$OPENENTITY_WALLET_KEY`) `adopt --wallet/--erc8004` and `alias add wallet|erc8004` sign the EIP-4361 proof here and the entity lands at L1 in one command. With only an address, `alias add wallet` prints the EIP-4361 message, you sign it with the wallet, and a second run with `--signature` submits it. Objects are validated against the spec schemas (packaged in the wheel) before signing. Keys saved by 0.4 under `~/.openentity/keys/` are migrated into the layout above on first use; the old file is left alone.
51
+
40
52
  Exit codes match the npm CLI: 0 ok, 1 usage, 2 network, 3 verification failed, 4 registry rejected, 5 local state. `verify` checks signatures, the signer, the Declaration hash, the record chain (with Redaction signatures) and the log checkpoint and inclusion proof.
41
53
 
42
54
  Library, each taking the 32-byte seed and a registry URL: `adopt(name, registry=...)`, `withdraw(seed, registry)`, `record(seed, [(kind, payload), ...], registry)` (chains `seq` and `prev` from the registry head, pushes in batches of 100), `dispute(seed, subject, reason, statement, object_sha256=None, registry=...)`, `find(registry, capability=..., q=..., alias_type=..., level=...)`, `present(seed, audience, nonce, registry=None)`. Primitives: `canonicalize`, `sign_object`, `verify_object`, `verify_presentation`, `did_key`, `mint_stamp`, `verify_inclusion`.
@@ -1,29 +1,38 @@
1
1
  # openentity (Python)
2
2
 
3
- Python client for the Open Entity Identity Standard (spec id `OEIS-1`). One dependency: `cryptography`.
3
+ Python client for the Open Entity Identity Standard (spec id `OEIS-1`). Dependencies: `cryptography`, `pycryptodome`, `jsonschema`. Optional: `openentity[wallet]` (`eth-account`) to sign wallet proofs.
4
4
 
5
5
  ```
6
6
  uvx openentity adopt --name "My Agent" --agree
7
7
  ```
8
8
 
9
- Commands (keys saved by `adopt` live in `~/.openentity/keys/`; pass `--eid` when there are several; the registry is `--registry URL`, then `$OPENENTITY_REGISTRY`, then the key's own, then openentity.org). Every command takes `--json`:
9
+ Same commands, flags, `--json`, exit codes and `~/.openentity/<eid>/` file layout (`key` JWK at 0600, `entity.json`, `declaration.json`, `state.json`, `record.jsonl`, `current`) as the npm CLI, so either one can read what the other saved. The registry is `--registry URL`, then `$OPENENTITY_REGISTRY`, then the entity's own, then openentity.org. Pass `--eid` when there are several entities.
10
10
 
11
11
  ```
12
- openentity whoami
13
- openentity self [--entries N]
12
+ openentity adopt --name N --agree [--description --operator --operator-kind --contact --custody --model --provider --runtime --capabilities a,b --wallet KEY|0x.. --erc8004 eip155:1:0x..:7 --chain N --dry-run]
13
+ openentity whoami | self [--entries N] | stats
14
+ openentity anchor [--format text|openclaw|claude|agents] [--write --dir D]
15
+ openentity document set <field> <value> | edit | push
14
16
  openentity record stance --type refusal --reason values --cost low --context TEXT [--conflict]
15
17
  openentity record update --topic T --from A --to B
16
18
  openentity record arc open|close --id SLUG --title TEXT
17
19
  openentity record collab --with EID --role R --outcome O
18
20
  openentity record continuity --event rotation --from A --to B
19
- openentity record <kind> --payload '<json>'
20
- openentity present --audience A --nonce N [--no-attestations]
21
- openentity verify <eid|url|file>
21
+ openentity record push | redact <seq> (--no-push appends without pushing; --payload '<json>' replaces the flags)
22
+ openentity alias add domain|wallet|erc8004|platform <value> [--wallet KEY|0x.. --chain N --signature 0x..]
23
+ openentity card [--url U | --extension-only] [--eid EID] openentity conformance <registry-url>
24
+ openentity rotate | migrate [--to keyfile --dry-run] openentity recover --previous EID --via ALIAS, then --proof FILE
25
+ openentity verify <eid|url|file> openentity resolve <did>
26
+ openentity present --audience A --nonce N [--no-attestations] openentity verify-presentation FILE --audience A --nonce N
27
+ openentity log checkpoint | proof <index> | audit <n>
28
+ openentity export [--with-key --out FILE] openentity import FILE [--key JWK --force]
22
29
  openentity dispute --subject EID [--object SHA256] --reason inaccurate --statement "..."
23
30
  openentity find --capability C [-q TEXT --alias-type T --level L1]
24
31
  openentity withdraw --force
25
32
  ```
26
33
 
34
+ With a wallet key (`--wallet <hex key or key file>`, or `$OPENENTITY_WALLET_KEY`) `adopt --wallet/--erc8004` and `alias add wallet|erc8004` sign the EIP-4361 proof here and the entity lands at L1 in one command. With only an address, `alias add wallet` prints the EIP-4361 message, you sign it with the wallet, and a second run with `--signature` submits it. Objects are validated against the spec schemas (packaged in the wheel) before signing. Keys saved by 0.4 under `~/.openentity/keys/` are migrated into the layout above on first use; the old file is left alone.
35
+
27
36
  Exit codes match the npm CLI: 0 ok, 1 usage, 2 network, 3 verification failed, 4 registry rejected, 5 local state. `verify` checks signatures, the signer, the Declaration hash, the record chain (with Redaction signatures) and the log checkpoint and inclusion proof.
28
37
 
29
38
  Library, each taking the 32-byte seed and a registry URL: `adopt(name, registry=...)`, `withdraw(seed, registry)`, `record(seed, [(kind, payload), ...], registry)` (chains `seq` and `prev` from the registry head, pushes in batches of 100), `dispute(seed, subject, reason, statement, object_sha256=None, registry=...)`, `find(registry, capability=..., q=..., alias_type=..., level=...)`, `present(seed, audience, nonce, registry=None)`. Primitives: `canonicalize`, `sign_object`, `verify_object`, `verify_presentation`, `did_key`, `mint_stamp`, `verify_inclusion`.
@@ -5,4 +5,4 @@ from .httpsig import HttpSigError, sign_request, verify_request # noqa: F401
5
5
  from .identity import Identity # noqa: F401
6
6
  from .report import TrustReport, trust # noqa: F401
7
7
 
8
- __version__ = "0.5.0"
8
+ __version__ = "0.5.2"