working on pack installation.

This commit is contained in:
2026-02-12 16:49:57 -06:00
parent 966a5af188
commit aa1425365e
18 changed files with 200 additions and 208 deletions

View File

@@ -48,10 +48,15 @@ pub struct CreatePackRequest {
#[schema(example = json!(["messaging", "collaboration"]))]
pub tags: Vec<String>,
/// Runtime dependencies (refs of required packs)
/// Runtime dependencies (e.g., shell, python, nodejs)
#[serde(default)]
#[schema(example = json!(["shell", "python"]))]
pub runtime_deps: Vec<String>,
/// Pack dependencies (refs of required packs)
#[serde(default)]
#[schema(example = json!(["core"]))]
pub runtime_deps: Vec<String>,
pub dependencies: Vec<String>,
/// Whether this is a standard/built-in pack
#[serde(default)]
@@ -152,10 +157,14 @@ pub struct UpdatePackRequest {
#[schema(example = json!(["messaging", "collaboration", "webhooks"]))]
pub tags: Option<Vec<String>>,
/// Runtime dependencies
#[schema(example = json!(["core", "http"]))]
/// Runtime dependencies (e.g., shell, python, nodejs)
#[schema(example = json!(["shell", "python"]))]
pub runtime_deps: Option<Vec<String>>,
/// Pack dependencies (refs of required packs)
#[schema(example = json!(["core", "http"]))]
pub dependencies: Option<Vec<String>>,
/// Whether this is a standard pack
#[schema(example = false)]
pub is_standard: Option<bool>,
@@ -200,10 +209,14 @@ pub struct PackResponse {
#[schema(example = json!(["messaging", "collaboration"]))]
pub tags: Vec<String>,
/// Runtime dependencies
#[schema(example = json!(["core"]))]
/// Runtime dependencies (e.g., shell, python, nodejs)
#[schema(example = json!(["shell", "python"]))]
pub runtime_deps: Vec<String>,
/// Pack dependencies (refs of required packs)
#[schema(example = json!(["core"]))]
pub dependencies: Vec<String>,
/// Is standard pack
#[schema(example = false)]
pub is_standard: bool,
@@ -271,6 +284,7 @@ impl From<attune_common::models::Pack> for PackResponse {
meta: pack.meta,
tags: pack.tags,
runtime_deps: pack.runtime_deps,
dependencies: pack.dependencies,
is_standard: pack.is_standard,
created: pack.created,
updated: pack.updated,
@@ -803,6 +817,7 @@ mod tests {
assert_eq!(req.version, "1.0.0");
assert!(req.tags.is_empty());
assert!(req.runtime_deps.is_empty());
assert!(req.dependencies.is_empty());
assert!(!req.is_standard);
}
@@ -818,6 +833,7 @@ mod tests {
meta: default_empty_object(),
tags: vec![],
runtime_deps: vec![],
dependencies: vec![],
is_standard: false,
};

View File

@@ -139,6 +139,7 @@ pub async fn create_pack(
meta: request.meta,
tags: request.tags,
runtime_deps: request.runtime_deps,
dependencies: request.dependencies,
is_standard: request.is_standard,
installers: serde_json::json!({}),
};
@@ -222,6 +223,7 @@ pub async fn update_pack(
meta: request.meta,
tags: request.tags,
runtime_deps: request.runtime_deps,
dependencies: request.dependencies,
is_standard: request.is_standard,
installers: None,
};
@@ -522,6 +524,15 @@ async fn register_pack_internal(
})
.unwrap_or_default(),
runtime_deps: pack_yaml
.get("runtime_deps")
.and_then(|v| v.as_sequence())
.map(|seq| {
seq.iter()
.filter_map(|v| v.as_str().map(|s| s.to_string()))
.collect()
})
.unwrap_or_default(),
dependencies: pack_yaml
.get("dependencies")
.and_then(|v| v.as_sequence())
.map(|seq| {