refactor: reorganize asset-related classes into entities module and remove unused skill and asset files

This commit is contained in:
Harry
2026-01-19 12:52:49 +08:00
parent fc49592769
commit c38463c9a9
12 changed files with 39 additions and 44 deletions

View File

@ -1,8 +1,6 @@
from .assets import AssetItem, FileAsset
from .packager import AssetPackager, ZipPackager
from .parser import AssetItemParser, AssetParser, FileAssetParser, SkillAssetParser
from .paths import AssetPaths
from .skill import (
from .entities import (
AssetItem,
FileAsset,
FileReference,
SkillAsset,
SkillMetadata,
@ -12,6 +10,9 @@ from .skill import (
ToolReference,
ToolType,
)
from .packager import AssetPackager, ZipPackager
from .parser import AssetItemParser, AssetParser, FileAssetParser, SkillAssetParser
from .paths import AssetPaths
__all__ = [
"AssetItem",

View File

@ -0,0 +1,24 @@
from .assets import AssetItem, FileAsset
from .skill import (
FileReference,
SkillAsset,
SkillMetadata,
ToolConfiguration,
ToolDefinition,
ToolFieldConfig,
ToolReference,
ToolType,
)
__all__ = [
"AssetItem",
"FileAsset",
"FileReference",
"SkillAsset",
"SkillMetadata",
"ToolConfiguration",
"ToolDefinition",
"ToolFieldConfig",
"ToolReference",
"ToolType",
]

View File

@ -1,6 +1,6 @@
from abc import ABC, abstractmethod
from core.app_assets.assets import AssetItem
from core.app_assets.entities import AssetItem
class AssetPackager(ABC):

View File

@ -2,7 +2,7 @@ import io
import zipfile
from typing import TYPE_CHECKING
from core.app_assets.assets import AssetItem
from core.app_assets.entities import AssetItem
from .base import AssetPackager

View File

@ -1,7 +1,7 @@
from typing import TYPE_CHECKING
from core.app.entities.app_asset_entities import AppAssetFileTree
from core.app_assets.assets import AssetItem
from core.app_assets.entities import AssetItem
from core.app_assets.paths import AssetPaths
from .base import AssetItemParser, FileAssetParser

View File

@ -1,6 +1,6 @@
from abc import ABC, abstractmethod
from core.app_assets.assets import AssetItem, FileAsset
from core.app_assets.entities import AssetItem, FileAsset
class AssetItemParser(ABC):

View File

@ -2,13 +2,13 @@ import json
import re
from typing import TYPE_CHECKING, Any
from core.app_assets.paths import AssetPaths
from core.app_assets.skill import (
from core.app_assets.entities import (
FileReference,
SkillAsset,
SkillMetadata,
ToolReference,
)
from core.app_assets.paths import AssetPaths
from .base import AssetItemParser

View File

@ -2,7 +2,7 @@ from typing import Any
from pydantic import BaseModel, ConfigDict, Field
from core.app_assets.skill import ToolType
from core.app_assets.entities import ToolType
class ToolManifestEntry(BaseModel):

View File

@ -1,5 +1,5 @@
from core.app_assets.entities import SkillAsset
from core.app_assets.paths import AssetPaths
from core.app_assets.skill import SkillAsset
from extensions.ext_storage import storage
from .entities import ToolManifest, ToolManifestEntry

View File

@ -1,7 +1,5 @@
import hashlib
import io
import logging
import zipfile
from uuid import uuid4
from sqlalchemy.orm import Session
@ -14,11 +12,11 @@ from core.app.entities.app_asset_entities import (
TreeParentNotFoundError,
TreePathConflictError,
)
from core.app_assets.entities import SkillAsset
from core.app_assets.packager.zip_packager import ZipPackager
from core.app_assets.parser.asset_parser import AssetParser
from core.app_assets.parser.skill_parser import SkillAssetParser
from core.app_assets.paths import AssetPaths
from core.app_assets.skill import SkillAsset
from core.skill.skill_manager import SkillManager
from extensions.ext_database import db
from extensions.ext_storage import storage
@ -315,34 +313,6 @@ class AppAssetService:
return published
@staticmethod
def get_published_file_content(
app_model: App,
assets_id: str,
file_path: str,
) -> bytes:
with Session(db.engine) as session:
published = (
session.query(AppAssets)
.filter(
AppAssets.tenant_id == app_model.tenant_id,
AppAssets.app_id == app_model.id,
AppAssets.id == assets_id,
)
.first()
)
if not published or published.version == AppAssets.VERSION_DRAFT:
raise AppAssetNodeNotFoundError(f"Published version {assets_id} not found")
zip_key = AssetPaths.published_zip(app_model.tenant_id, app_model.id, assets_id)
zip_data = storage.load_once(zip_key)
archive_path = file_path.lstrip("/")
with zipfile.ZipFile(io.BytesIO(zip_data), "r") as zf:
if archive_path not in zf.namelist():
raise AppAssetNodeNotFoundError(f"File {file_path} not found in published version")
return zf.read(archive_path)
@staticmethod
def get_file_download_url(
app_model: App,