{ "$type": "com.fedfork.exec.composition", "name": "atirc agents service", "description": "The public face of the agents service: the ingress module holds the did:key registration with xrpc.fedproxy.com and forwards the three agents XRPC methods to the host's handlers, which check atproto service auth and run composition.json (agents + requester).", "instances": [ { "name": "ingress", "module": "ingress", "input": { "routes": [ "com.fedfork.agents.launchAgent", "com.fedfork.agents.getAgent", "com.fedfork.agents.shutdownAgent" ], "deadlineMs": 28000 }, "budget": { "wallMs": 2000000000, "events": 100000000, "calls": 10000000 } } ], "handlers": [ { "name": "launchAgent", "description": "Check the caller's service auth, create the launch record, launch the agent in the background; answers {rkey, uri, status}" }, { "name": "getAgent", "description": "Check the caller's service auth; the launch record and one read of the guest" }, { "name": "shutdownAgent", "description": "Check the caller's service auth; revoke, release, clean up by rkey" } ], "edges": [ { "from": "ingress", "nsid": "com.fedfork.agents.launchAgent", "handler": "launchAgent", "reason": "a caller on the internet asks to launch an agent" }, { "from": "ingress", "nsid": "com.fedfork.agents.getAgent", "handler": "getAgent", "reason": "a caller on the internet reads an agent's status" }, { "from": "ingress", "nsid": "com.fedfork.agents.shutdownAgent", "handler": "shutdownAgent", "reason": "a caller on the internet shuts an agent down" } ], "limits": { "depth": 2, "calls": 10000000 } }