openagent-oas 1.0.0__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.
- openagent_oas-1.0.0/.editorconfig +12 -0
- openagent_oas-1.0.0/.gitignore +10 -0
- openagent_oas-1.0.0/.hypothesis/constants/094997e5df0dd928 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/0a54689002859f4d +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/14b20b65e2f985a2 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/23485c6303c5f128 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/2aca3966189a23b8 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/2dc134da0ebe3f22 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/3c1242a72cc1b8ee +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/3dffdae98dbbeb30 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/41dd003b26e8afe0 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/49410dca89309d1c +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/4f7a6f939fc084fa +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/5930653da6e3fa9b +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/5eb8e8eeaea0819c +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/5f681a600b31f0ec +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/6934e938ca7b2913 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/695a685bd650d908 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/6fe6ec3c48284247 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/74fce42fcb4a3d42 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/7748671158d1d455 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/79355159e6898416 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/7a4e7aa5f8ea3030 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/7d8c105083c6b82a +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/839512362241867b +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/85c0ecb2dac7c628 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/8847d8fb0524e229 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/912616f0beaf7cbd +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/92e6240e06720d55 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/968e0a2ccdee5d6c +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/995eb3e9ccd4dbf3 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/9cd8904526f5e860 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/9fa48a53c9d5b3c0 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/9fa69804aed7af87 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/aef80d182e0530b6 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/afadf80bf0f52966 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/b2575aa4eac33921 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/b369624580b47529 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/bf6447ea610584c7 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/cca041d9158e00ba +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/ce1960d5a47ad9d2 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/e0e698455323b1c0 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/e411e59d5827a79b +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/e975cffd51ab0bcb +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/eb3657c1a893b17d +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/f2300f0efb02251c +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/f37a6d6998104227 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/f39fa090231aef9d +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/f78db60eaa05ce79 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/fa9eb545e0f03ea9 +4 -0
- openagent_oas-1.0.0/.hypothesis/constants/fc5b8f35886d416b +4 -0
- openagent_oas-1.0.0/.hypothesis/unicode_data/15.0.0/charmap.json.gz +0 -0
- openagent_oas-1.0.0/.hypothesis/unicode_data/15.0.0/codec-utf-8.json.gz +0 -0
- openagent_oas-1.0.0/CHANGELOG.md +39 -0
- openagent_oas-1.0.0/CLAUDE.md +577 -0
- openagent_oas-1.0.0/CODE_OF_CONDUCT.md +49 -0
- openagent_oas-1.0.0/CONTRIBUTING.md +132 -0
- openagent_oas-1.0.0/LICENSE +21 -0
- openagent_oas-1.0.0/PKG-INFO +383 -0
- openagent_oas-1.0.0/README.md +355 -0
- openagent_oas-1.0.0/SECURITY.md +77 -0
- openagent_oas-1.0.0/pyproject.toml +50 -0
- openagent_oas-1.0.0/src/openagent/__init__.py +1 -0
- openagent_oas-1.0.0/src/openagent/oas/__init__.py +19 -0
- openagent_oas-1.0.0/src/openagent/oas/attestation/README.md +241 -0
- openagent_oas-1.0.0/src/openagent/oas/attestation/__init__.py +36 -0
- openagent_oas-1.0.0/src/openagent/oas/attestation/credential.py +142 -0
- openagent_oas-1.0.0/src/openagent/oas/attestation/errors.py +65 -0
- openagent_oas-1.0.0/src/openagent/oas/attestation/sign.py +77 -0
- openagent_oas-1.0.0/src/openagent/oas/attestation/types.py +28 -0
- openagent_oas-1.0.0/src/openagent/oas/attestation/verify.py +60 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/README.md +327 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/__init__.py +61 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/derivation.py +97 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/encoding.py +200 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/errors.py +93 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/hashing.py +29 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/jcs.py +111 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/keypair.py +237 -0
- openagent_oas-1.0.0/src/openagent/oas/crypto/proof.py +244 -0
- openagent_oas-1.0.0/src/openagent/oas/did/README.md +225 -0
- openagent_oas-1.0.0/src/openagent/oas/did/__init__.py +45 -0
- openagent_oas-1.0.0/src/openagent/oas/did/did.py +158 -0
- openagent_oas-1.0.0/src/openagent/oas/did/errors.py +100 -0
- openagent_oas-1.0.0/src/openagent/oas/did/kind.py +108 -0
- openagent_oas-1.0.0/src/openagent/oas/did/namespace.py +56 -0
- openagent_oas-1.0.0/src/openagent/oas/did/validation.py +55 -0
- openagent_oas-1.0.0/src/openagent/oas/document/README.md +297 -0
- openagent_oas-1.0.0/src/openagent/oas/document/__init__.py +99 -0
- openagent_oas-1.0.0/src/openagent/oas/document/builder.py +265 -0
- openagent_oas-1.0.0/src/openagent/oas/document/calendar.py +130 -0
- openagent_oas-1.0.0/src/openagent/oas/document/compliance.py +90 -0
- openagent_oas-1.0.0/src/openagent/oas/document/conformance.py +33 -0
- openagent_oas-1.0.0/src/openagent/oas/document/contact.py +101 -0
- openagent_oas-1.0.0/src/openagent/oas/document/document.py +262 -0
- openagent_oas-1.0.0/src/openagent/oas/document/errors.py +67 -0
- openagent_oas-1.0.0/src/openagent/oas/document/governance.py +260 -0
- openagent_oas-1.0.0/src/openagent/oas/document/interop.py +106 -0
- openagent_oas-1.0.0/src/openagent/oas/document/lifecycle.py +33 -0
- openagent_oas-1.0.0/src/openagent/oas/document/lineage_section.py +72 -0
- openagent_oas-1.0.0/src/openagent/oas/document/operational.py +122 -0
- openagent_oas-1.0.0/src/openagent/oas/document/pricing.py +96 -0
- openagent_oas-1.0.0/src/openagent/oas/document/profile.py +56 -0
- openagent_oas-1.0.0/src/openagent/oas/document/proof_format.py +153 -0
- openagent_oas-1.0.0/src/openagent/oas/document/relationships.py +73 -0
- openagent_oas-1.0.0/src/openagent/oas/document/reputation.py +62 -0
- openagent_oas-1.0.0/src/openagent/oas/document/service.py +91 -0
- openagent_oas-1.0.0/src/openagent/oas/document/verification_method.py +71 -0
- openagent_oas-1.0.0/src/openagent/oas/document/visibility.py +40 -0
- openagent_oas-1.0.0/src/openagent/oas/lineage/README.md +290 -0
- openagent_oas-1.0.0/src/openagent/oas/lineage/__init__.py +49 -0
- openagent_oas-1.0.0/src/openagent/oas/lineage/config.py +32 -0
- openagent_oas-1.0.0/src/openagent/oas/lineage/derive.py +154 -0
- openagent_oas-1.0.0/src/openagent/oas/lineage/errors.py +109 -0
- openagent_oas-1.0.0/src/openagent/oas/lineage/provider.py +84 -0
- openagent_oas-1.0.0/src/openagent/oas/lineage/verify.py +177 -0
- openagent_oas-1.0.0/src/openagent/oas/py.typed +0 -0
- openagent_oas-1.0.0/src/openagent/oas/resolve/README.md +175 -0
- openagent_oas-1.0.0/src/openagent/oas/resolve/__init__.py +33 -0
- openagent_oas-1.0.0/src/openagent/oas/resolve/cache.py +100 -0
- openagent_oas-1.0.0/src/openagent/oas/resolve/errors.py +51 -0
- openagent_oas-1.0.0/src/openagent/oas/resolve/fallback.py +60 -0
- openagent_oas-1.0.0/src/openagent/oas/resolve/memory.py +79 -0
- openagent_oas-1.0.0/src/openagent/oas/resolve/resolver.py +38 -0
- openagent_oas-1.0.0/src/openagent/oas/sdk/README.md +304 -0
- openagent_oas-1.0.0/src/openagent/oas/sdk/__init__.py +40 -0
- openagent_oas-1.0.0/src/openagent/oas/sdk/errors.py +27 -0
- openagent_oas-1.0.0/src/openagent/oas/sdk/identity.py +204 -0
- openagent_oas-1.0.0/src/openagent/oas/sdk/lineage.py +106 -0
- openagent_oas-1.0.0/tests/__init__.py +0 -0
- openagent_oas-1.0.0/tests/test_attestation.py +210 -0
- openagent_oas-1.0.0/tests/test_crypto.py +410 -0
- openagent_oas-1.0.0/tests/test_did.py +306 -0
- openagent_oas-1.0.0/tests/test_document.py +305 -0
- openagent_oas-1.0.0/tests/test_lineage.py +348 -0
- openagent_oas-1.0.0/tests/test_resolve.py +189 -0
- openagent_oas-1.0.0/tests/test_sdk.py +314 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /Volumes/L1feAI/l1feosx/forge/oas-python/src/openagent/oas/attestation/__init__.py
|
|
2
|
+
# hypothesis_version: 6.151.9
|
|
3
|
+
|
|
4
|
+
['AttestationError', 'AttestationType', 'CredentialBuildError', 'CredentialSignError', 'CredentialSubject', 'OasCredential', 'sign_credential', 'verify_credential']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /Volumes/L1feAI/l1feosx/forge/oas-python/src/openagent/oas/crypto/__init__.py
|
|
2
|
+
# hypothesis_version: 6.151.9
|
|
3
|
+
|
|
4
|
+
['AgentLineageProof', 'CryptoError', 'DerivationError', 'EncodingError', 'KeyGenerationError', 'OasKeyPair', 'ProofError', 'SignatureError', 'base58_decode', 'base58_encode', 'base64url_decode', 'base64url_encode', 'blake3_hash', 'canonicalize', 'derive_child_keypair', 'derive_key_material', 'multibase_decode', 'multibase_encode']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /Volumes/L1feAI/l1feosx/forge/oas-python/src/openagent/oas/document/__init__.py
|
|
2
|
+
# hypothesis_version: 6.151.9
|
|
3
|
+
|
|
4
|
+
['ConformanceLevel', 'DocumentBuildError', 'DocumentBuilder', 'DocumentError', 'DocumentMetadata', 'DocumentProof', 'DocumentProofError', 'LifecycleStatus', 'LineageSection', 'OasDocument', 'ServiceEndpoint', 'VerificationMethod']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /Volumes/L1feAI/l1feosx/forge/oas-python/src/openagent/oas/document/document.py
|
|
2
|
+
# hypothesis_version: 6.151.9
|
|
3
|
+
|
|
4
|
+
['authentication', 'conformanceLevel', 'created', 'id', 'kind', 'lifecycleStatus', 'lineage', 'metadata', 'proof', 'service', 'updated', 'verificationMethod', 'version']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /Volumes/L1feAI/l1feosx/forge/oas-python/src/openagent/oas/lineage/__init__.py
|
|
2
|
+
# hypothesis_version: 6.151.9
|
|
3
|
+
|
|
4
|
+
['ChainTooDeepError', 'DerivedEntity', 'DocumentProvider', 'InMemoryProvider', 'LineageError', 'ParentMismatchError', 'ResolutionError', 'VerifyConfig', 'derive_child_entity', 'verify_lineage']
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the OAS Python SDK will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased] - 2026-05-11
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Updated CONTRIBUTING clone URLs to use the public `OpenAgentID` GitHub organization.
|
|
13
|
+
|
|
14
|
+
## [1.1.0] - 2026-03-03
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **openagent.oas.did**: ENR (Enterprise Root) entity kind -- a stable signing key governed by a rotating MHR. `EntityKind.ENR` added, `is_root()` now returns `True` for ENR. Total: 12 entity kinds.
|
|
19
|
+
- **openagent.oas.document**: `GovernanceSection`, `GovernanceTransition`, `GovernanceTransitionProof`, `GovernancePolicy` dataclasses for ENR governance (OAS Spec section 8). `GovernancePolicy.default_policy()` factory and `ENR_GOVERNANCE_PROOF_TYPE` constant. `OasDocument.governance` optional field.
|
|
20
|
+
|
|
21
|
+
## [1.0.0] - 2026-02-18
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **openagent.oas.crypto**: Ed25519 keypair management via `cryptography`, HKDF-SHA256 child key derivation, BLAKE3 content hashing via `blake3`, AgentLineageProof2025 generation and verification, JSON Canonicalization Scheme (RFC 8785), multibase and base64url encoding.
|
|
26
|
+
- **openagent.oas.did**: `did:oas` DID parsing and validation with support for all 12 entity kinds including compound `agent:instance`, namespace validation, identifier format checking.
|
|
27
|
+
- **openagent.oas.document**: OAS Identity Document model with DocumentBuilder, Ed25519Signature2020 proof generation and verification, conformance level checking (L0/L1/L2), lifecycle status management, verification method and service endpoint types.
|
|
28
|
+
- **openagent.oas.lineage**: Lineage derivation and verification with chain walking, generation depth enforcement (MAX_GENERATION=16), configurable timeouts, InMemoryProvider for testing.
|
|
29
|
+
- **openagent.oas.resolve**: Async `Resolver` protocol with InMemoryResolver, CachingResolver (TTL-based), FallbackResolver (priority-ordered), typed error codes matching OAS Spec section 12.5.
|
|
30
|
+
- **openagent.oas.attestation**: W3C Verifiable Credential integration with 6 attestation types (SecurityAudit, BehaviorAttestation, CapabilityVerification, ComplianceAttestation, ExpertEndorsement, CommunityReview), credential building, signing, and verification with temporal validity checks.
|
|
31
|
+
- **openagent.oas.sdk**: Unified high-level API combining identity creation (HMR/MHR), lineage derivation, chain verification, and attestation workflows.
|
|
32
|
+
|
|
33
|
+
### Security
|
|
34
|
+
|
|
35
|
+
- Strict `mypy --strict` type checking with zero suppression comments
|
|
36
|
+
- `bytearray` for all secret material (mutable for explicit zeroing)
|
|
37
|
+
- `hmac.compare_digest` for constant-time secret comparisons
|
|
38
|
+
- `py.typed` marker (PEP 561) for downstream type checking
|
|
39
|
+
- No C extensions required (pure Python with optional native accelerators)
|