Metadata-Version: 2.1
Name: algovoi-a2a-journey
Version: 0.1.1
Summary: Compute a content-addressed journey_ref over an A2A task run (hops + outcome, open tier); byte-compatible with the AlgoVoi commercial journey tier (Apache-2.0)
Author-email: AlgoVoi <chopmob@gmail.com>
License: Apache-2.0
Keywords: a2a,journey,agentic-payments,execution_ref,jcs,rfc8785,algovoi,multi-agent
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: algovoi-substrate>=0.4.0
Requires-Dist: rfc8785>=0.1.2

# algovoi-a2a-journey

[![Keystone Enabled](https://img.shields.io/badge/Keystone-enabled-5cb9f8)](https://docs.algovoi.co.uk/keystone)

Compute a content-addressed **`journey_ref`** over an A2A multi-agent task run — the ordered
hops plus the outcome — and detect tampering. Open tier, Apache-2.0. Python and TypeScript
byte-for-byte identical, and byte-compatible with the AlgoVoi commercial journey tier.

> **Keystone Enabled** — discovered by the [AlgoVoi keystone control panel](https://docs.algovoi.co.uk/keystone).
> Verify it yourself: `pip install algovoi-keystone-control && keystone-verify algovoi-a2a-journey` → `PASS`.

```
journey_ref = "sha256:" + SHA-256(JCS({
    "delegations": [],          # always empty in the open tier (moat boundary)
    "hops":        [execution_ref, ...],
    "journey_outcome": "COMPLETE" | "PARTIAL" | "ABORTED",
}))
```

```python
from algovoi_a2a_journey import journey_ref, tamper_detected

ref = journey_ref(
    hops=["sha256:" + "a" * 64, "sha256:" + "b" * 64],   # one execution_ref per agent hop
    outcome="COMPLETE",
)

# anyone can recompute and detect tampering with no AlgoVoi service:
tamper_detected(ref, ["sha256:" + "a" * 64, "sha256:" + "b" * 64], "COMPLETE")  # -> False
```

## What the open tier does and does not do

| | Open tier (this package) | Commercial tier |
|---|---|---|
| Content-addressed `journey_ref` | yes | yes |
| Tamper detection (recompute) | yes | yes |
| Delegation-chain proofs (scope not widened, no hop omitted, no revoked grant) | — | yes |
| PQC-signed journey evidence + CCC ingest | — | yes |

The open tier lets you **hash a task run, not prove it**. `delegations` is always `[]` — proving
the chain's properties is the commercial Orchestrator. Upgrading requires no migration: the open
`journey_ref` is byte-identical to the commercial one called with `delegations=[]`.

## Keystone control panel

This package registers a `journey_a2a` source under the `algovoi.keystone.steps` entry-point
group, so the [AlgoVoi keystone control panel](https://docs.algovoi.co.uk/keystone) auto-detects
it as a journey-stage source.

## License

Apache-2.0. Copyright AlgoVoi.
