johnandersen777.bsky.social/atlibs-socialweb-computer-requester
socialweb.computer market requester and policy modules for atlibs, with its web pages and lexicons
0
0
// 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,
);