loopd: subagent in the M5c registry, not core

Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
This commit is contained in:
2026-10-03 19:44:25 -07:00
co-authored by ornith-1.5-35b-a3b
parent 25278b4c03
commit bab22bb4c8
5 changed files with 85 additions and 0 deletions
+1
View File
@@ -15,6 +15,7 @@ pub mod selftest;
pub mod session;
pub mod socket;
pub mod sse;
pub mod subagent;
pub mod summarise;
pub mod tools;
pub mod turn;
+22
View File
@@ -0,0 +1,22 @@
//! The `subagent` tool: loopd answers it itself (M6 spec, section 3).
//! It is not core; the parent finds it with `find_tool` and calls it through `call_tool`.
pub const SUBAGENT: &str = "subagent";
pub fn schema() -> crate::llama::ToolSchema {
crate::llama::ToolSchema {
name: SUBAGENT.to_string(),
description: "Run a short task in an isolated child session on the background slot."
.to_string(),
parameters: serde_json::json!({
"type": "object",
"properties": {
"task": {
"type": "string",
"description": "What the child should do."
}
},
"required": ["task"]
}),
}
}
+4
View File
@@ -114,6 +114,10 @@ impl Registry {
core: true,
},
);
entries.push(Entry {
schema: crate::subagent::schema(),
core: false,
});
Registry::new(entries)
}