diff --git a/Cargo.lock b/Cargo.lock index f0b49d1..3f247a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1010,7 +1010,7 @@ dependencies = [ [[package]] name = "kinode_process_lib" -version = "0.5.4" +version = "0.5.5" dependencies = [ "alloy-rpc-types", "anyhow", diff --git a/src/kernel_types.rs b/src/kernel_types.rs index 87303f2..7c5e084 100644 --- a/src/kernel_types.rs +++ b/src/kernel_types.rs @@ -218,6 +218,17 @@ pub struct PackageManifestEntry { pub public: bool, } +/// the type that gets deserialized from a `scripts.json` object +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct DotScriptsEntry { + pub root: bool, + pub public: bool, + pub request_networking: bool, + pub request_capabilities: Option>, + pub grant_capabilities: Option>, +} + impl std::fmt::Display for Message { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match self { diff --git a/src/lib.rs b/src/lib.rs index 19b3ba1..68591e4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -215,3 +215,10 @@ pub fn get_capability(our: &Address, params: &str) -> Option { }) .cloned() } + +pub fn await_next_request_body() -> anyhow::Result> { + let Ok(Message::Request { body, .. }) = await_message() else { + return Err(anyhow::anyhow!("failed to get request body, bailing out")); + }; + Ok(body) +}