idea187-autopoiesis-verifia.../README.md

86 lines
2.9 KiB
Markdown

# Autopoiesis: Verifiable Service-Genome Fabric
Autopoiesis is a Python reference implementation for a compact, verifiable service-genome layer.
It focuses on the trust substrate needed for safe self-replication across edge and cloud environments:
- `ServiceGenome` models immutable service blueprints with resources, capabilities, invariants, mutation operators, and test contracts.
- `GenomeSigner` produces and verifies Ed25519 signatures for genome artifacts.
- `PolicySandbox` checks a genome against operational budgets and deterministic smoke-test contracts.
- `ProvenanceLedger` records append-only replication events with a Merkle root for tamper evidence.
- `ReplicatorPlanner` turns an approved genome into a deterministic rollout trace.
- `ReplicaWeaveIntent` provides a lightweight admission contract for solver/adapter integrations.
## What is implemented
This repository ships a production-shaped core for the autonomy fabric:
- schema validation for genomes and policies
- content addressing via canonical JSON hashing
- signed artifact creation and verification
- deterministic smoke-test evaluation
- provenance logging with Merkle aggregation
- replayable replication traces
- a small test suite and buildable Python package
## Install
```bash
python3 -m pip install -e .[dev]
```
## Test
```bash
bash test.sh
```
## Example
```python
from idea187_autopoiesis_verifiable_service import (
GenomeSigner,
PolicySandbox,
PolicyTemplate,
ProvenanceLedger,
ReplicatorPlanner,
ResourceEnvelope,
SafetyInvariants,
ServiceGenome,
TestContract,
)
genome = ServiceGenome(
name="http-service",
version="1.0.0",
image_ref="ghcr.io/acme/http-service:1.0.0",
capabilities={"network": ["https://internal.example"]},
resource_envelope=ResourceEnvelope(cpu_millicores=250, memory_mib=256, bandwidth_mbps=20, cost_usd_per_hour=0.04, max_replicas=3),
safety_invariants=SafetyInvariants(max_exposure=10, read_only_scopes=["/var/lib/cache"], denied_endpoints=["https://example.com"]),
mutation_operators=[{"name": "safe-fork", "kind": "fork"}],
test_contracts=[TestContract(name="startup", seed=7, input_fingerprint="boot", expected_output_hash="...")],
)
signer = GenomeSigner.generate()
artifact = signer.sign(genome)
policy = PolicyTemplate(name="default-edge", max_cpu_millicores=500, max_memory_mib=512, max_bandwidth_mbps=100, max_cost_usd_per_hour=1.0)
attestation = PolicySandbox().evaluate(genome, policy)
ledger = ProvenanceLedger()
entry = ledger.append(
actor_did="did:key:z6Mkh...",
action="replicate",
genome_hash=artifact.genome_hash,
attestation_hash=attestation.digest(),
trace_hash="trace-hash",
resource_snapshot=genome.resource_envelope.model_dump(mode="json"),
)
plan = ReplicatorPlanner().plan(genome, attestation)
```
## Package
The package name is `idea187-autopoiesis-verifiable-service` and the import name is `idea187_autopoiesis_verifiable_service`.