lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

radroots_mesh_agent_v1.capnp (2123B)


      1 @0xb83e0c4f71838d9a;
      2 
      3 using Cxx = import "/capnp/c++.capnp";
      4 
      5 $Cxx.namespace("radroots::mesh_agent::v1");
      6 
      7 struct MeshAgentRequest {
      8   requestId @0 :Text;
      9   action @1 :MeshAgentAction;
     10   frameCbor @2 :Data;
     11   statusRequest @3 :MeshAgentStatusRequest;
     12   publishRequest @4 :MeshAgentPublishRequest;
     13 }
     14 
     15 enum MeshAgentAction {
     16   validateFrame @0;
     17   stageDelivery @1;
     18   observeEventHead @2;
     19   status @3;
     20   publish @4;
     21 }
     22 
     23 struct MeshAgentResponse {
     24   requestId @0 :Text;
     25   status @1 :MeshAgentResponseStatus;
     26   receipt @2 :MeshAgentReceipt;
     27   errors @3 :List(MeshAgentError);
     28   statusResponse @4 :MeshAgentStatusResponse;
     29   publishResponse @5 :MeshAgentPublishResponse;
     30 }
     31 
     32 enum MeshAgentResponseStatus {
     33   accepted @0;
     34   deferred @1;
     35   rejected @2;
     36 }
     37 
     38 struct MeshAgentReceipt {
     39   frameDigest @0 :Text;
     40   acceptedEventHeads @1 :List(Text);
     41 }
     42 
     43 struct MeshAgentStatusRequest {
     44   includeTransports @0 :Bool;
     45 }
     46 
     47 struct MeshAgentStatusResponse {
     48   transports @0 :List(MeshAgentTransportStatus);
     49 }
     50 
     51 struct MeshAgentTransportStatus {
     52   transport @0 :MeshAgentTransportKind;
     53   profileId @1 :Text;
     54   endpointUri @2 :Text;
     55   configured @3 :Bool;
     56   implementation @4 :MeshAgentImplementation;
     57   usableForDelivery @5 :Bool;
     58   message @6 :Text;
     59 }
     60 
     61 enum MeshAgentImplementation {
     62   real @0;
     63   mock @1;
     64   previewUnavailable @2;
     65 }
     66 
     67 enum MeshAgentTransportKind {
     68   reticulum @0;
     69 }
     70 
     71 struct MeshAgentPublishRequest {
     72   publishRequestId @0 :Text;
     73   payloadCbor @1 :Data;
     74   eventId @2 :Text;
     75   targetFingerprint @3 :Text;
     76 }
     77 
     78 struct MeshAgentPublishResponse {
     79   publishRequestId @0 :Text;
     80   status @1 :MeshAgentResponseStatus;
     81   transportReceipts @2 :List(MeshAgentTransportReceipt);
     82   eventId @3 :Text;
     83 }
     84 
     85 struct MeshAgentTransportReceipt {
     86   transportKind @0 :MeshAgentTransportKind;
     87   endpointUri @1 :Text;
     88   outcome @2 :MeshAgentTransportOutcome;
     89   message @3 :Text;
     90 }
     91 
     92 enum MeshAgentTransportOutcome {
     93   accepted @0;
     94   delivered @1;
     95   forwarded @2;
     96   storedByGateway @3;
     97   deferredUntilImplemented @4;
     98   rejected @5;
     99   routeUnavailable @6;
    100   timeout @7;
    101   transportUnavailable @8;
    102 }
    103 
    104 struct MeshAgentError {
    105   code @0 :Text;
    106   message @1 :Text;
    107 }