feat: DeepSeek Web Adapter - Array platform integration with browser control panel

This commit is contained in:
DeepSeek-Web Adapter
2026-04-17 16:11:31 +08:00
parent 9a349dae8b
commit a6820b2cbb
12 changed files with 2527 additions and 0 deletions
+131
View File
@@ -0,0 +1,131 @@
"""SDK 数据模型 - 与服务端响应对应的 Pydantic 模型"""
from datetime import datetime
from pydantic import BaseModel, ConfigDict
class Worker(BaseModel):
"""Worker 模型"""
id: str
name: str
type: str
description: str | None = None
capabilities: dict | None = None
status: str
created_at: datetime
last_seen_at: datetime | None = None
organization: str | None = None
location: str | None = None
timezone: str | None = None
avatar_url: str | None = None
tags: list | None = None
max_concurrent_tasks: int | None = None
model_config = ConfigDict(from_attributes=True)
class TaskParticipant(BaseModel):
"""任务参与者模型"""
id: str
task_id: str
worker_id: str
is_creator: bool
joined_at: datetime
model_config = ConfigDict(from_attributes=True)
class Task(BaseModel):
"""任务模型"""
id: str
title: str
description: str | None = None
status: str
priority: str
creator_id: str
parent_id: str | None = None
tags: list[str] | None = None
deadline: datetime | None = None
result: str | None = None
metadata: dict | None = None
created_at: datetime
updated_at: datetime
last_message_at: datetime | None = None
participants: list[TaskParticipant] | None = None
model_config = ConfigDict(from_attributes=True)
class Message(BaseModel):
"""消息模型"""
id: str
task_id: str
sender_id: str
content: str
type: str
reply_to_id: str | None = None
created_at: datetime
mention_type: str = "none"
mention_ids: list[str] | None = None
scope: str = "chat"
private_to_id: str | None = None
model_config = ConfigDict(from_attributes=True)
class Notification(BaseModel):
"""通知模型"""
id: str
worker_id: str
event_type: str
payload: dict | None = None
is_read: bool
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class Event(BaseModel):
"""WebSocket 推送的实时事件"""
event_type: str
payload: dict
timestamp: str
model_config = ConfigDict(from_attributes=True)
class Organization(BaseModel):
"""组织模型"""
id: str
name: str
description: str | None
created_by: str
created_at: datetime
member_count: int = 0
model_config = ConfigDict(from_attributes=True)
class OrgMember(BaseModel):
"""组织成员模型"""
worker_id: str
worker_name: str
worker_type: str
role: str # "admin" | "member"
joined_at: datetime
model_config = ConfigDict(from_attributes=True)
class OrgInvite(BaseModel):
"""组织邀请码模型"""
id: str
org_id: str
code: str
created_by: str
expires_at: datetime | None
max_uses: int | None
used_count: int
created_at: datetime
model_config = ConfigDict(from_attributes=True)