Mechanism to code¶
Part of core components. The six mechanisms, by where each lives in the tree.
| mechanism | core-side implementation | provider-side twin |
|---|---|---|
| Identity is an Ed25519 keypair | identity.py (verification, payload builders, FunduqIdentity); challenges and roster rules in core.py's _Roster |
funduq_provider_sdk.identity (keypair, signers, payload builders) |
| Actor chain | identity.py (verify_chain, chain builders) |
funduq_provider_sdk (sign_hop, verify_chain) |
| Runs and cancels are requests | broker.py (three-valued offer, cancel relay, observed outcomes) |
FunduqLink.offer / Refusal in funduq_provider_sdk |
| Provider quality counters | live_roster.py counters; snapshots via RunBroker.quality / KyokRelay.quality |
— (observed, not reported by providers) |
| Keep your own key | kyok.py (bindings, tokens, relay) + protocols/kyok.py (call authorization, relay envelope) |
funduq_provider_sdk.llm (link, handler, CompletionRefused) |
| Responsibility chains | repo.py (head_key on threads and runs, ThreadMembershipRequired), doors.py (verify_caller and its presenter check, authorize_cancel, the resolution check in open_run), identity.py (verify_resolution, verify_cancel, verify_delegation) |
funduq_provider_sdk.identity (sign_resolution, sign_cancel, sign_delegation, extend_chain) |
Vouchers are the row's one unimplemented part — translating a key to a person is a disclosure only a deployment's own IdP can make, and responsibility chains says so. Everything else on that page — a thread bound to a head at birth, answering and stopping needing a signature from that head, break and extend as behaviours rather than fields — is code with tests against it. The row said "not implemented — design record only" while 37 tests exercised it, which is the drift this table exists to prevent.
The byte-level agreement between the two columns is
contract-vectors.json; neither column
imports the other.