mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-20 08:37:42 +02:00
65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import Optional, Any
|
|
from uuid import uuid4
|
|
from datetime import datetime
|
|
|
|
|
|
class App(BaseModel):
|
|
id: str = Field(default_factory=lambda: uuid4().hex)
|
|
name: str
|
|
description: str = ""
|
|
icon: str = "view_quilt"
|
|
input_schema: dict[str, Any] = Field(default_factory=lambda: {
|
|
"type": "object",
|
|
"properties": {},
|
|
"required": [],
|
|
})
|
|
files: dict[str, str] = Field(default_factory=dict)
|
|
thumbnail: Optional[str] = None
|
|
created_at: str = Field(default_factory=lambda: datetime.now().isoformat())
|
|
updated_at: str = Field(default_factory=lambda: datetime.now().isoformat())
|
|
|
|
|
|
class AppCreate(BaseModel):
|
|
name: str
|
|
description: str = ""
|
|
icon: str = "view_quilt"
|
|
input_schema: dict[str, Any] = Field(default_factory=lambda: {
|
|
"type": "object",
|
|
"properties": {},
|
|
"required": [],
|
|
})
|
|
files: dict[str, str] = Field(default_factory=dict)
|
|
thumbnail: Optional[str] = None
|
|
|
|
|
|
class AppUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
icon: Optional[str] = None
|
|
input_schema: Optional[dict[str, Any]] = None
|
|
files: Optional[dict[str, str]] = None
|
|
thumbnail: Optional[str] = None
|
|
|
|
|
|
class AppExecute(BaseModel):
|
|
app_id: str
|
|
input_data: dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class AppExecuteResult(BaseModel):
|
|
app_id: str
|
|
app_name: str
|
|
frontend_code: str
|
|
input_data: dict[str, Any]
|
|
backend_result: Optional[dict[str, Any]] = None
|
|
stdout: Optional[str] = None
|
|
stderr: Optional[str] = None
|
|
error: Optional[str] = None
|
|
|
|
|
|
class WorkspaceSeedRequest(BaseModel):
|
|
workspace_id: str
|
|
files: Optional[dict[str, str]] = None
|
|
meta: Optional[dict[str, Any]] = None
|