MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / sync_skills_cache

Function sync_skills_cache

atomic-cli/src/commands/agent/enable.rs:441–465  ·  view source on GitHub ↗

Always sync the atomic-skills cache to latest. Unlike the plugin cache (which reuses until --force), the skills cache is **always** re-cloned on every install. This ensures new skills added to atomic-skills are picked up immediately without --force. If the re-clone fails (network), the error is returned — the caller can retry or use --from to install from a local checkout.

(_force: bool)

Source from the content-addressed store, hash-verified

439/// re-clone fails (network), the error is returned — the caller can retry
440/// or use --from to install from a local checkout.
441fn sync_skills_cache(_force: bool) -> CliResult<std::path::PathBuf> {
442 const SKILLS_AGENT: &str = "atomic-skills";
443
444 let spec = atomic_agent::integrations::resolve(SKILLS_AGENT).ok_or_else(|| {
445 crate::error::CliError::Internal(anyhow::anyhow!(
446 "atomic-skills not found in the integration registry — this is a bug"
447 ))
448 })?;
449
450 let cache = atomic_agent::integrations::cache_repo_dir(SKILLS_AGENT)
451 .map_err(|e| crate::error::CliError::Internal(anyhow::anyhow!(e.to_string())))?;
452
453 // Always delete + re-clone to get latest. The atomic-skills package is
454 // small (markdown files only), so this is fast.
455 if cache.exists() {
456 std::fs::remove_dir_all(&cache).map_err(crate::error::CliError::Io)?;
457 }
458
459 crate::commands::clone::Clone::new(spec.url.clone())
460 .with_path(cache.display().to_string())
461 .with_view(spec.view.clone())
462 .run()?;
463
464 Ok(cache)
465}
466
467/// Sync an agent's integration package into the CLI-managed cache
468/// (`~/.atomic/integrations/<agent>/repo`) using Atomic's own remote

Callers 1

install_integrationMethod · 0.85

Calls 8

resolveFunction · 0.85
cache_repo_dirFunction · 0.85
displayMethod · 0.80
existsMethod · 0.45
runMethod · 0.45
with_viewMethod · 0.45
with_pathMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected