feat: add skill pack management features including creation, editing, and syncing

This commit is contained in:
Abhimanyu Saharan
2026-02-14 02:05:11 +05:30
committed by Abhimanyu Saharan
parent 88565f4d69
commit a7e1e5cbf4
28 changed files with 4403 additions and 430 deletions

View File

@@ -38,6 +38,9 @@ from app.schemas.skills_marketplace import (
MarketplaceSkillCardRead,
MarketplaceSkillCreate,
MarketplaceSkillRead,
SkillPackCreate,
SkillPackRead,
SkillPackSyncResponse,
)
from app.schemas.souls_directory import (
SoulsDirectoryMarkdownResponse,
@@ -93,6 +96,9 @@ __all__ = [
"MarketplaceSkillCardRead",
"MarketplaceSkillCreate",
"MarketplaceSkillRead",
"SkillPackCreate",
"SkillPackRead",
"SkillPackSyncResponse",
"TagCreate",
"TagRead",
"TagRef",

View File

@@ -21,6 +21,14 @@ class MarketplaceSkillCreate(SQLModel):
description: str | None = None
class SkillPackCreate(SQLModel):
"""Payload used to register a pack URL in the organization."""
source_url: AnyHttpUrl
name: NonEmptyStr | None = None
description: str | None = None
class MarketplaceSkillRead(SQLModel):
"""Serialized marketplace skill catalog record."""
@@ -28,11 +36,27 @@ class MarketplaceSkillRead(SQLModel):
organization_id: UUID
name: str
description: str | None = None
category: str | None = None
risk: str | None = None
source: str | None = None
source_url: str
created_at: datetime
updated_at: datetime
class SkillPackRead(SQLModel):
"""Serialized skill pack record."""
id: UUID
organization_id: UUID
name: str
description: str | None = None
source_url: str
skill_count: int = 0
created_at: datetime
updated_at: datetime
class MarketplaceSkillCardRead(MarketplaceSkillRead):
"""Marketplace card payload with gateway-specific install state."""
@@ -47,3 +71,13 @@ class MarketplaceSkillActionResponse(SQLModel):
skill_id: UUID
gateway_id: UUID
installed: bool
class SkillPackSyncResponse(SQLModel):
"""Pack sync summary payload."""
ok: bool = True
pack_id: UUID
synced: int
created: int
updated: int