swarm repositories / source
aboutsummaryrefslogtreecommitdiff
path: root/crates/fidget-spinner-cli/src/mcp/host
diff options
context:
space:
mode:
Diffstat (limited to 'crates/fidget-spinner-cli/src/mcp/host')
-rw-r--r--crates/fidget-spinner-cli/src/mcp/host/runtime.rs19
1 files changed, 13 insertions, 6 deletions
diff --git a/crates/fidget-spinner-cli/src/mcp/host/runtime.rs b/crates/fidget-spinner-cli/src/mcp/host/runtime.rs
index f2f10b7..bacf1c8 100644
--- a/crates/fidget-spinner-cli/src/mcp/host/runtime.rs
+++ b/crates/fidget-spinner-cli/src/mcp/host/runtime.rs
@@ -21,7 +21,9 @@ use crate::mcp::catalog::{
DispatchTarget, list_resources, resource_spec, tool_definitions, tool_spec,
};
use crate::mcp::fault::{FaultKind, FaultRecord, FaultStage};
-use crate::mcp::output::{ToolOutput, detailed_tool_output, split_presentation, tool_success};
+use crate::mcp::output::{
+ ToolOutput, fallback_detailed_tool_output, split_presentation, tool_success,
+};
use crate::mcp::protocol::{
CRASH_ONCE_ENV, FORCE_ROLLOUT_ENV, HOST_STATE_ENV, HostRequestId, HostStateSeed,
PROTOCOL_VERSION, ProjectBindingSeed, SERVER_NAME, WorkerOperation, WorkerSpawnConfig,
@@ -749,7 +751,7 @@ fn project_bind_output(status: &ProjectBindStatus) -> Result<ToolOutput, FaultRe
if status.requested_path != status.project_root {
let _ = concise.insert("requested_path".to_owned(), json!(status.requested_path));
}
- detailed_tool_output(
+ fallback_detailed_tool_output(
&Value::Object(concise),
status,
[
@@ -766,6 +768,7 @@ fn project_bind_output(status: &ProjectBindStatus) -> Result<ToolOutput, FaultRe
]
.join("\n"),
None,
+ libmcp::SurfaceKind::Mutation,
FaultStage::Host,
"tools/call:project.bind",
)
@@ -787,18 +790,19 @@ fn skill_list_output() -> Result<ToolOutput, FaultRecord> {
.iter()
.map(|skill| format!("{}: {}", skill.name, skill.description)),
);
- detailed_tool_output(
+ fallback_detailed_tool_output(
&concise,
&json!({ "skills": skills }),
lines.join("\n"),
None,
+ libmcp::SurfaceKind::List,
FaultStage::Host,
"tools/call:skill.list",
)
}
fn skill_show_output(skill: crate::bundled_skill::BundledSkill) -> Result<ToolOutput, FaultRecord> {
- detailed_tool_output(
+ fallback_detailed_tool_output(
&json!({
"name": skill.name,
"resource_uri": skill.resource_uri,
@@ -812,6 +816,7 @@ fn skill_show_output(skill: crate::bundled_skill::BundledSkill) -> Result<ToolOu
}),
skill.body,
None,
+ libmcp::SurfaceKind::Read,
FaultStage::Host,
"tools/call:skill.show",
)
@@ -874,11 +879,12 @@ fn system_health_output(health: &HealthSnapshot) -> Result<ToolOutput, FaultReco
""
}
));
- detailed_tool_output(
+ fallback_detailed_tool_output(
&Value::Object(concise),
health,
lines.join("\n"),
None,
+ libmcp::SurfaceKind::Ops,
FaultStage::Host,
"tools/call:system.health",
)
@@ -976,11 +982,12 @@ fn system_telemetry_output(telemetry: &ServerTelemetry) -> Result<ToolOutput, Fa
if let Some(fault) = telemetry.last_fault.as_ref() {
lines.push(format!("last fault: {} {}", fault.operation, fault.message));
}
- detailed_tool_output(
+ fallback_detailed_tool_output(
&Value::Object(concise),
telemetry,
lines.join("\n"),
None,
+ libmcp::SurfaceKind::Ops,
FaultStage::Host,
"tools/call:system.telemetry",
)