MCPcopy Create free account
hub / github.com/SkyworkAI/DeepResearchAgent / ComponentVersionHistory

Class ComponentVersionHistory

src/version/types.py:25–99  ·  view source on GitHub ↗

Version history for a component (only version records, no configs)

Source from the content-addressed store, hash-verified

23
24
25class ComponentVersionHistory(BaseModel):
26 """Version history for a component (only version records, no configs)"""
27 name: str = Field(description="Name of the component")
28 component_type: str = Field(description="Type of component (tool, environment, agent)")
29 current_version: str = Field(description="Current active version")
30 versions: Dict[str, VersionInfo] = Field(default_factory=dict, description="Version history records")
31 metadata: Dict[str, Any] = Field(default_factory=dict, description="Component metadata")
32
33 def add_version(self, version: str, description: Optional[str] = None,
34 metadata: Optional[Dict[str, Any]] = None) -> VersionInfo:
35 """Add a new version record
36
37 Args:
38 version: Version string
39 description: Version description
40 metadata: Version metadata
41
42 Returns:
43 VersionInfo: Created version info
44 """
45 if version in self.versions:
46 logger.warning(f"| ⚠️ Version {version} already exists for {self.name}, updating...")
47 version_info = self.versions[version]
48 version_info.updated_at = datetime.now()
49 if description:
50 version_info.description = description
51 if metadata:
52 version_info.metadata.update(metadata)
53 else:
54 version_info = VersionInfo(
55 version=version,
56 description=description,
57 metadata=metadata or {}
58 )
59 self.versions[version] = version_info
60
61 self.current_version = version
62
63 logger.debug(f"| ✅ Added version record {version} for {self.name}")
64 return version_info
65
66 def list_versions(self) -> List[str]:
67 """List all available versions
68
69 Returns:
70 List of version strings
71 """
72 return list(self.versions.keys())
73
74 def deprecate_version(self, version: str):
75 """Deprecate a version
76
77 Args:
78 version: Version string to deprecate
79 """
80 if version not in self.versions:
81 raise ValueError(f"Version {version} not found for {self.name}")
82

Callers 2

register_versionMethod · 0.90
load_from_jsonMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected