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 }