~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/atlibs-socialweb-computer-requester

socialweb.computer market requester and policy modules for atlibs, with its web pages and lexicons

0
0
main
48 lines · 2.4 KB Raw History
// requester: the socialweb.computer compute requester (publicdomainrelay atproto-market
// requester-xrpc runComputeContract) as step protocol handlers.
// Records go to the user's repo; calls to a peer carry a route: `service` (an https origin, or a
// DID whose PDS the host resolves, with a service-auth token the host mints) or `proxy`
// (did#service, the atproto-proxy header).
//   bind_key   attest{}                -> createRecord badgeBlueKeys (did:key bound at its deterministic rkey)
//   associate  associateConfirm(proxy) -> createRecord badgeBlueKeys (peer)
//   offerings  getRecord offering/self (each bidder's PDS) -> { did, endpoints }
//   request    createRecord vm -> attest rfp -> createRecord rfp -> submitRfp per bidder endpoint
//   bids       getRecord bid at its computed key (each bidder's PDS) -> bids on this rfp + winner
//   accept     evaluatePolicy (full) -> attest accept -> createRecord accept -> submitAccept -> receipt
//   receipt    getRecord receipt at its computed key (the winner's PDS) -> receipt for this accept
//   guest      the receipt-derived reports and guest event streams (getRecord n = 0, 1, ...) -> iroh ticket, webrtc, host keys
//   release    attest vm.delete -> createRecord -> attest event -> createRecord -> submitEvent
//              (contract's tail) -> vm.terminated -> cleanup of records, else receipt -> accept -> rfp -> vm
//   signal     the same chain with a guest.signalWebRTC offer or guest.publicKey payload (webrtc)
//   shell      webrtc.connect{receipt,tag,command?}, or guest's reads -> iroh.connect{ticket,hostKeys,command}
//   contract   request -> bids -> accept -> receipt -> guest -> shell -> release -> cleanup
//              release: false keeps the VM; the result names its MCP servers (mcp) and records
//   watch      the receipt-derived reports (and, with scan, guest events) until ready
use abi::entries;

mod badge;
mod calls;
mod cleanup;
mod contract;
mod guest;
mod ids;
mod input;
mod market;
mod nsid;
mod release;

entries!(
    bind_key => badge::bind_key,
    associate => badge::associate,
    offerings => market::offerings,
    request => market::request,
    bids => market::bids,
    receipt => guest::receipt,
    guest => guest::guest,
    accept => market::accept,
    release => release::release,
    signal => release::signal,
    shell => guest::shell,
    contract => contract::contract,
    watch => guest::watch,
);