Type marketplace source as String
Serde rejects non-strings at parse time instead of at lookup time.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/src/marketplace.rs b/src/marketplace.rs
index d765a24..f4034f8 100644
--- a/src/marketplace.rs
+++ b/src/marketplace.rs
@@ -13,7 +13,7 @@ pub struct Marketplace {
#[derive(Debug, Deserialize)]
pub struct MarketplacePlugin {
pub name: String,
- pub source: serde_json::Value,
+ pub source: String,
}
/// Find the source path for a plugin by name in the marketplace.json.
@@ -32,14 +32,7 @@ pub fn find_plugin_source(
for mp in &marketplace.plugins {
if mp.name == plugin_name {
- return match &mp.source {
- serde_json::Value::String(s) => Ok(s.clone()),
- _ => bail!(
- "plugin '{}': unsupported source type in {} (only string paths are supported)",
- plugin_name,
- manifest_path.display()
- ),
- };
+ return Ok(mp.source.clone());
}
}