Documentation
¶
Index ¶
- type AccountCredential
- type AddFileRequest
- type AddMessageRequest
- type Artifact
- type ArtifactDetail
- type ArtifactDownload
- type ArtifactService
- type AuthOrgInfo
- type AuthService
- type AuthTokenResponse
- type AuthUserInfo
- type AuthorizationCallbackRequest
- type AuthorizationResult
- type AuthorizedAccount
- type CompleteSessionMessageRequest
- type CreateDigitalAssistantRequest
- type CreateLLMModelRequest
- type CreateOrgMemberRequest
- type CreateOrgRequest
- type CreateProjectRequest
- type CreateSessionRequest
- type CreateTaskRequest
- type CreateUserRequest
- type DigitalAssistant
- type DigitalAssistantDetail
- type DigitalAssistantList
- type DigitalAssistantService
- type DigitalAssistantStatus
- type FailedSessionMessageRequest
- type FileDownloadInfo
- type FileObjectInfo
- type FileService
- type FileTreeNode
- type FileUploadResult
- type GetSessionMessagesRequest
- type ImportSkillRequest
- type ImportSkillResponse
- type InstallSkillRequest
- type InstallSkillResponse
- type InstalledSkillsRequest
- type InstalledSkillsResponse
- type LLMModel
- type LLMModelList
- type LLMModelService
- type ListDigitalAssistantRequest
- type ListLLMModelsRequest
- type ListOrgMembersRequest
- type ListOrgsRequest
- type ListProjectsRequest
- type ListSessionsRequest
- type ListTasksRequest
- type ListUsersRequest
- type LoginByEmailRequest
- type MessageList
- type NewMessageRequest
- type NewMessageResponse
- type Org
- type OrgList
- type OrgMember
- type OrgMemberList
- type OrgService
- type Project
- type ProjectDetail
- type ProjectList
- type ProjectMemberItem
- type ProjectMemory
- type ProjectService
- type ProjectTaskItem
- type RefreshTokenRequest
- type RegisterByEmailRequest
- type ResolveAuthorizationRequest
- type ResolvedAuthorization
- type SearchSkillMarketplaceRequest
- type SearchSkillMarketplaceResponse
- type Session
- type SessionEvent
- type SessionList
- type SessionMessage
- type SessionRunStartedRequest
- type SessionService
- type SkillDetailRequest
- type SkillDetailResponse
- type SkillInstalledItem
- type SkillMarketplaceItemView
- type SkillMarketplaceService
- type SkillPackageDownload
- type SkillSourceWarning
- type StartAuthorizationRequest
- type SubmitApprovalRequest
- type Task
- type TaskList
- type TaskService
- type TestLLMModelRequest
- type TestLLMModelResponse
- type ThirdAuthService
- type UninstallSkillRequest
- type UninstallSkillResponse
- type UpdateDigitalAssistantRequest
- type UpdateDigitalAssistantStatusRequest
- type UpdateLLMModelRequest
- type UpdateOrgMemberRequest
- type UpdateOrgRequest
- type UpdateProjectRequest
- type UpdateSessionRequest
- type UpdateTaskRequest
- type UpdateUserRequest
- type UploadFileRequest
- type UploadFileResult
- type UserInfo
- type UserList
- type UserService
- type WorkService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccountCredential ¶
type AccountCredential struct {
AccountID string `json:"account_id"`
GrantType string `json:"grant_type"`
AccessToken string `json:"access_token,omitempty"`
RefreshToken string `json:"refresh_token,omitempty"`
ExpiresAt *time.Time `json:"expires_at,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
AccountCredential 表示账户当前可用的授权材料
type AddFileRequest ¶ added in v0.1.2
type AddFileRequest struct {
PublicID string `json:"public_id" binding:"required"`
}
AddFileRequest 将已上传文件关联到项目的请求
type AddMessageRequest ¶
type AddMessageRequest struct {
Role string `json:"role" binding:"required"`
Content string `json:"content" binding:"required"`
MessageType string `json:"message_type,omitempty"`
Chunks []types.MessageChunk `json:"chunks,omitempty"`
Attachments []types.MessageAttachment `json:"attachments,omitempty"`
Thinking string `json:"thinking,omitempty"`
Metadata *types.ObjectMetadata `json:"metadata,omitempty"`
Usage *types.MessageUsage `json:"usage,omitempty"`
}
AddMessageRequest adds a message to a session.
type Artifact ¶
type Artifact struct {
ArtifactID string `json:"artifact_id"`
Title string `json:"title"`
Filename string `json:"filename,omitempty"`
Description string `json:"description,omitempty"`
ArtifactType string `json:"artifact_type"`
MimeType string `json:"mime_type,omitempty"`
FileSize int64 `json:"file_size,omitempty"`
Sha256 string `json:"sha256,omitempty"`
}
Artifact is the public response shape for a generated file.
type ArtifactDetail ¶ added in v0.1.2
type ArtifactDetail struct {
Artifact
RelativePath string `json:"relative_path,omitempty"`
FilePublicID string `json:"file_public_id,omitempty"`
Source string `json:"source,omitempty"`
ExportFormat string `json:"export_format,omitempty"`
Version int `json:"version,omitempty"`
Status string `json:"status,omitempty"`
}
ArtifactDetail is the full detail response for a single artifact.
type ArtifactDownload ¶
type ArtifactDownload struct {
FileName string
MimeType string
Size int64
Reader io.ReadCloser
}
ArtifactDownload contains a file stream and HTTP response metadata.
type ArtifactService ¶
type ArtifactService interface {
ListTaskArtifacts(ctx context.Context, taskPublicID string) ([]Artifact, error)
GetArtifact(ctx context.Context, artifactPublicID string) (*ArtifactDetail, error)
GetArtifactDownload(ctx context.Context, artifactPublicID string) (*ArtifactDownload, error)
}
ArtifactService defines task artifact query and download behavior.
type AuthOrgInfo ¶
type AuthService ¶
type AuthService interface {
RegisterByEmail(ctx context.Context, req *RegisterByEmailRequest) (*AuthTokenResponse, error)
LoginByEmail(ctx context.Context, req *LoginByEmailRequest) (*AuthTokenResponse, error)
RefreshToken(ctx context.Context, req *RefreshTokenRequest) (*AuthTokenResponse, error)
}
AuthService defines local account authentication capabilities.
type AuthTokenResponse ¶
type AuthTokenResponse struct {
LoginStatus string `json:"login_status"`
JwtToken string `json:"jwt_token"`
RefreshToken string `json:"refresh_token"`
ExpiredAt int64 `json:"expired_at"`
Uin uint `json:"uin"`
UserInfo AuthUserInfo `json:"user_info"`
Org AuthOrgInfo `json:"org"`
}
type AuthUserInfo ¶
type AuthorizationCallbackRequest ¶
type AuthorizationCallbackRequest struct {
Provider string `json:"provider"`
State string `json:"state"`
Code string `json:"code"`
}
AuthorizationCallbackRequest 表示 OAuth 回调请求
type AuthorizationResult ¶
type AuthorizationResult struct {
Account *AuthorizedAccount `json:"account"`
Credential *AccountCredential `json:"credential"`
}
AuthorizationResult 表示完成授权后的结果
type AuthorizedAccount ¶
type AuthorizedAccount struct {
ID string `json:"id"`
UserID string `json:"user_id"`
Provider string `json:"provider"`
OwnerType string `json:"owner_type"`
AccountType string `json:"account_type"`
ExternalAccountID string `json:"external_account_id"`
DisplayName string `json:"display_name"`
Scopes []string `json:"scopes"`
Status string `json:"status"`
Metadata map[string]string `json:"metadata,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
AuthorizedAccount 表示授权后可被系统复用的第三方账户
type CompleteSessionMessageRequest ¶
type CompleteSessionMessageRequest struct {
SessionID string `json:"session_id"`
Content string `json:"content"`
ReplyToMessageIDs []string `json:"reply_to_message_ids,omitempty"`
Chunks []types.MessageChunk `json:"chunks,omitempty"`
Artifacts []types.MessageArtifact `json:"artifacts,omitempty"`
Metadata *types.ObjectMetadata `json:"metadata,omitempty"`
Usage *types.MessageUsage `json:"usage,omitempty"`
Seq int64 `json:"seq"`
CreatedAt time.Time `json:"created_at"`
}
CompleteSessionMessageRequest persists a completed assistant message.
type CreateDigitalAssistantRequest ¶
type CreateDigitalAssistantRequest struct {
Code string `json:"code" binding:"required"`
Name string `json:"name" binding:"required"`
Description string `json:"description"`
Avatar string `json:"avatar"`
SystemPrompt string `json:"system_prompt"`
}
CreateDigitalAssistantRequest 创建数字助手请求
type CreateLLMModelRequest ¶
type CreateLLMModelRequest struct {
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Provider string `json:"provider,omitempty"`
Model string `json:"model" binding:"required"`
BaseURL string `json:"base_url" binding:"required"`
APIKey string `json:"api_key" binding:"required"`
Status string `json:"status,omitempty"`
IsDefault bool `json:"is_default,omitempty"`
Config map[string]interface{} `json:"config,omitempty"`
}
CreateLLMModelRequest 创建LLM模型配置请求
type CreateOrgMemberRequest ¶
type CreateOrgRequest ¶
type CreateProjectRequest ¶
type CreateProjectRequest struct {
Name string `json:"name" binding:"required"`
Description string `json:"description,omitempty"`
Objective string `json:"objective,omitempty"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
}
CreateProjectRequest 创建项目请求
type CreateSessionRequest ¶
type CreateSessionRequest struct {
SessionID string `json:"session_id,omitempty"`
Type string `json:"type" binding:"required"`
AssistantID uint `json:"assistant_id,omitempty"`
Title string `json:"title,omitempty"`
Metadata *types.ObjectMetadata `json:"metadata,omitempty"`
ExpiredAt *time.Time `json:"expired_at,omitempty"`
}
CreateSessionRequest creates a session.
type CreateTaskRequest ¶
type CreateTaskRequest struct {
ProjectID string `json:"project_id" binding:"required"`
Title string `json:"title" binding:"required"`
Description string `json:"description,omitempty"`
TaskType *string `json:"task_type,omitempty"`
AssigneeID *uint `json:"assignee_id,omitempty"`
Deadline *time.Time `json:"deadline,omitempty"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
}
CreateTaskRequest 创建任务请求
type CreateUserRequest ¶
type CreateUserRequest struct {
GithubLogin string `json:"github_login" binding:"required"`
Password string `json:"password,omitempty"`
Name string `json:"name" binding:"required"`
Email string `json:"email,omitempty"`
AvatarURL string `json:"avatar_url,omitempty"`
Bio string `json:"bio,omitempty"`
Company string `json:"company,omitempty"`
Location string `json:"location,omitempty"`
}
type DigitalAssistant ¶
type DigitalAssistant struct {
ID uint `json:"id"`
Code string `json:"code"`
OrgID uint `json:"org_id"`
OwnerID uint `json:"owner_id"`
Name string `json:"name"`
Description string `json:"description"`
Avatar string `json:"avatar"`
Status string `json:"status"`
Version int `json:"version"`
SystemPrompt string `json:"system_prompt"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
DigitalAssistant 数字助手信息
type DigitalAssistantDetail ¶
type DigitalAssistantDetail struct {
DigitalAssistant
}
DigitalAssistantDetail 数字助手详情响应
type DigitalAssistantList ¶
type DigitalAssistantList struct {
Total int64 `json:"total"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Items []DigitalAssistant `json:"items"`
}
DigitalAssistantList 数字助手列表响应
type DigitalAssistantService ¶
type DigitalAssistantService interface {
// 创建数字助手
CreateDigitalAssistant(ctx context.Context, req *CreateDigitalAssistantRequest) (*DigitalAssistant, error)
// 根据 ID 获取数字助手详情(从上下文获取权限信息)
GetDigitalAssistantByID(ctx context.Context, id uint) (*DigitalAssistantDetail, error)
// 根据 Code 获取数字助手详情(从上下文获取权限信息)
GetDigitalAssistantByCode(ctx context.Context, code string) (*DigitalAssistantDetail, error)
// 更新数字助手信息(从上下文获取权限信息)
UpdateDigitalAssistant(ctx context.Context, id uint, req *UpdateDigitalAssistantRequest) (*DigitalAssistant, error)
// 删除数字助手(从上下文获取权限信息)
DeleteDigitalAssistant(ctx context.Context, id uint) error
// 查询数字助手列表(从上下文获取权限信息)
ListDigitalAssistant(ctx context.Context, req *ListDigitalAssistantRequest) (*DigitalAssistantList, error)
// 更新数字助手状态(从上下文获取权限信息)
UpdateDigitalAssistantStatus(ctx context.Context, id uint, req *UpdateDigitalAssistantStatusRequest) error
}
DigitalAssistantService 定义数字助手服务接口
type DigitalAssistantStatus ¶
type DigitalAssistantStatus string
DigitalAssistantStatus 数字助手状态常量
const ( DigitalAssistantStatusDraft DigitalAssistantStatus = "draft" DigitalAssistantStatusActive DigitalAssistantStatus = "active" DigitalAssistantStatusInactive DigitalAssistantStatus = "inactive" DigitalAssistantStatusArchived DigitalAssistantStatus = "archived" )
type FailedSessionMessageRequest ¶
type FailedSessionMessageRequest struct {
SessionID string `json:"session_id"`
Content string `json:"content,omitempty"`
ReplyToMessageIDs []string `json:"reply_to_message_ids,omitempty"`
Chunks []types.MessageChunk `json:"chunks,omitempty"`
Artifacts []types.MessageArtifact `json:"artifacts,omitempty"`
ErrorMsg string `json:"error_msg"`
ErrorCode string `json:"error_code,omitempty"`
Status string `json:"status,omitempty"`
Metadata *types.ObjectMetadata `json:"metadata,omitempty"`
Usage *types.MessageUsage `json:"usage,omitempty"`
Seq int64 `json:"seq"`
CreatedAt time.Time `json:"created_at"`
}
FailedSessionMessageRequest persists a failed assistant message.
type FileDownloadInfo ¶ added in v0.1.2
type FileObjectInfo ¶ added in v0.1.2
type FileObjectInfo struct {
Key string `json:"key"`
Filename string `json:"filename"`
OriginalName string `json:"original_name"`
MimeType string `json:"mime_type"`
FileSize int64 `json:"file_size"`
PublicID string `json:"public_id"`
ModTime int64 `json:"mod_time,omitempty"`
URL string `json:"url,omitempty"`
}
type FileService ¶ added in v0.1.2
type FileService interface {
UploadFile(ctx context.Context, req *UploadFileRequest) (*UploadFileResult, error)
DownloadFile(ctx context.Context, orgID uint, fileID string) (io.ReadCloser, *FileDownloadInfo, error)
}
type FileTreeNode ¶
type FileTreeNode struct {
Name string `json:"name"` // 文件/目录名
Path string `json:"path"` // 相对路径,兼做节点标识
Type string `json:"type"` // "file" | "directory"
Children []*FileTreeNode `json:"children,omitempty"` // 仅目录有
Size int64 `json:"size,omitempty"` // 仅文件有
MimeType string `json:"mime_type,omitempty"` // 仅文件有
ModTime int64 `json:"mod_time,omitempty"` // 最后修改时间,Unix 时间戳(秒)
PublicID string `json:"public_id,omitempty"` // 上传文件关联的 public_id,仓库文件为空
}
FileTreeNode 文件树节点,递归结构
type FileUploadResult ¶
type FileUploadResult struct {
Path string `json:"path"` // 相对 repo 根目录的路径
Filename string `json:"filename"` // 文件名
Size int64 `json:"size"` // 文件大小(字节)
URL string `json:"url,omitempty"` // 文件访问 URL
}
FileUploadResult 文件上传结果
type GetSessionMessagesRequest ¶ added in v0.1.4
type GetSessionMessagesRequest struct {
SessionID string `json:"session_id"`
Page int `json:"page,omitempty"`
PerPage int `json:"per_page,omitempty"`
}
GetSessionMessagesRequest queries paged session messages.
type ImportSkillRequest ¶ added in v0.1.10
type ImportSkillRequest struct {
FileUploadID string `json:"file_upload_id" binding:"required"`
}
ImportSkillRequest 从已上传文件导入 Skill 的请求。
type ImportSkillResponse ¶ added in v0.1.10
ImportSkillResponse Skill 导入响应(异步,仅表示已接受)。
type InstallSkillRequest ¶ added in v0.1.1
type InstallSkillRequest struct {
Source string `json:"source" binding:"required"`
SkillID string `json:"skill_id" binding:"required"`
}
InstallSkillRequest Skill 安装请求。
type InstallSkillResponse ¶ added in v0.1.1
InstallSkillResponse Skill 安装响应(异步,仅表示已接受)。
type InstalledSkillsRequest ¶ added in v0.1.10
type InstalledSkillsRequest struct{}
InstalledSkillsRequest 查询 worker 上已安装 Skill 的请求。
type InstalledSkillsResponse ¶ added in v0.1.10
type InstalledSkillsResponse struct {
Skills []SkillInstalledItem `json:"skills"`
}
InstalledSkillsResponse 已安装 Skill 列表响应。
type LLMModel ¶
type LLMModel struct {
ID uint `json:"id"`
OrgID uint `json:"org_id"`
Code string `json:"code"`
Name string `json:"name"`
Description string `json:"description"`
Provider string `json:"provider"`
Model string `json:"model"`
BaseURL string `json:"base_url"`
BaseURLHasV1 bool `json:"base_url_has_v1"`
APIKey string `json:"api_key"`
MaxTokens int `json:"max_tokens"`
Temperature float64 `json:"temperature"`
TimeoutSec int `json:"timeout_sec"`
Status string `json:"status"`
IsDefault bool `json:"is_default"`
IsSystem bool `json:"is_system"`
Config map[string]interface{} `json:"config,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
LLMModel LLM模型配置响应结构
type LLMModelList ¶
type LLMModelList struct {
Total int64 `json:"total"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Items []LLMModel `json:"items"`
}
LLMModelList LLM模型配置列表响应
type LLMModelService ¶
type LLMModelService interface {
// 创建LLM模型配置
CreateLLMModel(ctx context.Context, req *CreateLLMModelRequest) (*LLMModel, error)
// 根据ID或Code获取LLM模型配置
GetLLMModel(ctx context.Context, id uint, code string) (*LLMModel, error)
// 获取组织默认LLM模型配置
GetDefaultLLMModel(ctx context.Context) (*LLMModel, error)
// 更新LLM模型配置
UpdateLLMModel(ctx context.Context, id uint, req *UpdateLLMModelRequest) (*LLMModel, error)
// 删除LLM模型配置
DeleteLLMModel(ctx context.Context, id uint) error
// 查询LLM模型配置列表
ListLLMModels(ctx context.Context, req *ListLLMModelsRequest) (*LLMModelList, error)
// 测试LLM模型配置连通性
TestLLMModel(ctx context.Context, req *TestLLMModelRequest) (*TestLLMModelResponse, error)
}
LLMModelService 定义LLM模型配置服务接口
type ListDigitalAssistantRequest ¶
type ListDigitalAssistantRequest struct {
Status *string `json:"status,omitempty"`
Keyword *string `json:"keyword,omitempty"`
types.Pagination
}
ListDigitalAssistantRequest 查询数字助手列表请求
type ListLLMModelsRequest ¶
type ListLLMModelsRequest struct {
Provider *string `json:"provider,omitempty"`
Status *string `json:"status,omitempty"`
Keyword *string `json:"keyword,omitempty"`
types.Pagination
}
ListLLMModelsRequest 查询LLM模型配置列表请求
type ListOrgMembersRequest ¶
type ListOrgMembersRequest struct {
OrgID *string `json:"org_id,omitempty"`
UserID *string `json:"user_id,omitempty"`
types.Pagination
}
type ListOrgsRequest ¶
type ListOrgsRequest struct {
Keyword *string `json:"keyword,omitempty"`
Status *string `json:"status,omitempty"`
types.Pagination
}
type ListProjectsRequest ¶
type ListProjectsRequest struct {
Keyword *string `json:"keyword,omitempty"`
Status *string `json:"status,omitempty"`
types.Pagination
}
ListProjectsRequest 查询项目列表请求
type ListSessionsRequest ¶
type ListSessionsRequest struct {
Type *string `json:"type,omitempty"`
Status *string `json:"status,omitempty"`
AssistantID *uint `json:"assistant_id,omitempty"`
AssistantCode *string `json:"assistant_code,omitempty"`
Keyword *string `json:"keyword,omitempty"`
types.Pagination
}
ListSessionsRequest queries sessions.
type ListTasksRequest ¶
type ListTasksRequest struct {
Keyword *string `json:"keyword,omitempty"`
Status *string `json:"status,omitempty"`
ProjectID *string `json:"project_id,omitempty"`
TaskType *string `json:"task_type,omitempty"`
AssigneeID *uint `json:"assignee_id,omitempty"`
types.Pagination
}
ListTasksRequest 查询任务列表请求
type ListUsersRequest ¶
type ListUsersRequest struct {
Keyword *string `json:"keyword,omitempty"`
GithubLogin *string `json:"github_login,omitempty"`
types.Pagination
}
type LoginByEmailRequest ¶
type MessageList ¶
type MessageList struct {
Total int64 `json:"total"`
Page int `json:"page"`
Items []SessionMessage `json:"items"`
}
MessageList is a paginated session message response.
type NewMessageRequest ¶
type NewMessageRequest struct {
Content string `json:"content" binding:"required"`
ProjectID string `json:"project_id,omitempty"`
TaskID string `json:"task_id,omitempty"`
AssistantID uint `json:"assistant_id,omitempty"`
MessageType string `json:"message_type,omitempty"`
Objective string `json:"objective,omitempty"`
Attachments []types.MessageAttachment `json:"attachments,omitempty"`
}
NewMessageRequest is the homepage new-message request that atomically creates Project + Task + Session and dispatches to the allocated AgentWorker.
type NewMessageResponse ¶
type NewMessageResponse struct {
ProjectID string `json:"project_id"`
TaskID string `json:"task_id"`
SessionID string `json:"session_id"`
MessageID string `json:"message_id"`
AssistantID uint `json:"assistant_id"`
}
NewMessageResponse is the homepage new-message response containing IDs of all created entities so the frontend can navigate to the session.
type OrgMember ¶
type OrgMember struct {
ID uint `json:"id"`
Uin uint `json:"uin"`
UserID string `json:"user_id"`
OrgID string `json:"org_id"`
IsDefault bool `json:"is_default"`
UserName string `json:"user_name,omitempty"`
UserLogin string `json:"user_login,omitempty"`
AvatarURL string `json:"avatar_url,omitempty"`
OrgName string `json:"org_name,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type OrgMemberList ¶
type OrgService ¶
type OrgService interface {
CreateOrg(ctx context.Context, req *CreateOrgRequest) (*Org, error)
GetOrg(ctx context.Context, publicID string, code string) (*Org, error)
UpdateOrg(ctx context.Context, publicID string, req *UpdateOrgRequest) (*Org, error)
DeleteOrg(ctx context.Context, publicID string) error
ListOrgs(ctx context.Context, req *ListOrgsRequest) (*OrgList, error)
CreateOrgMember(ctx context.Context, req *CreateOrgMemberRequest) (*OrgMember, error)
GetOrgMember(ctx context.Context, id uint, uin uint) (*OrgMember, error)
UpdateOrgMember(ctx context.Context, id uint, req *UpdateOrgMemberRequest) (*OrgMember, error)
DeleteOrgMember(ctx context.Context, id uint) error
ListOrgMembers(ctx context.Context, req *ListOrgMembersRequest) (*OrgMemberList, error)
}
type Project ¶
type Project struct {
PublicID string `json:"public_id"`
Name string `json:"name"`
Description string `json:"description"`
Objective string `json:"objective,omitempty"`
OwnerID uint `json:"owner_id"`
Status string `json:"status"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
Project 项目响应结构
type ProjectDetail ¶
type ProjectDetail struct {
Project
Session *Session `json:"session,omitempty"`
Tasks []ProjectTaskItem `json:"tasks"`
Artifacts []Artifact `json:"artifacts,omitempty"`
Members []ProjectMemberItem `json:"members"`
}
ProjectDetail 项目详情响应,包含关联的会话、任务、产物和成员
type ProjectList ¶
type ProjectList struct {
Total int64 `json:"total"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Items []Project `json:"items"`
}
ProjectList 项目列表响应
type ProjectMemberItem ¶
type ProjectMemberItem struct {
MemberID uint `json:"member_id"`
MemberType string `json:"member_type"`
MemberRole string `json:"member_role"`
JoinedAt time.Time `json:"joined_at"`
Name string `json:"name,omitempty"`
AvatarURL string `json:"avatar_url,omitempty"`
}
ProjectMemberItem 项目详情中的成员项,包含用户基本信息
type ProjectMemory ¶
ProjectMemory 项目记忆响应
type ProjectService ¶
type ProjectService interface {
// 创建项目
CreateProject(ctx context.Context, req *CreateProjectRequest) (*Project, error)
// 根据PublicID获取项目详情
GetProject(ctx context.Context, publicID string) (*Project, error)
// 更新项目
UpdateProject(ctx context.Context, publicID string, req *UpdateProjectRequest) (*Project, error)
// 删除项目
DeleteProject(ctx context.Context, publicID string) error
// 查询项目列表
ListProjects(ctx context.Context, req *ListProjectsRequest) (*ProjectList, error)
// 获取项目详情(含任务、会话、产物、成员)
DetailProject(ctx context.Context, publicID string) (*ProjectDetail, error)
// 获取项目记忆
GetProjectMemory(ctx context.Context, publicID string) (*ProjectMemory, error)
// 获取项目文件树
GetProjectFileTree(ctx context.Context, publicID string, parentPath string, depth int) ([]*FileTreeNode, error)
// 下载项目文件(返回文件流、MIME类型、文件大小)
DownloadProjectFile(ctx context.Context, publicID string, filePath string) (io.ReadCloser, string, int64, error)
// 上传项目文件
UploadProjectFile(ctx context.Context, publicID string, reader io.Reader, filename string) (*FileUploadResult, error)
AddFile(ctx context.Context, publicID string, filePublicID string) error
}
ProjectService 定义项目服务接口
type ProjectTaskItem ¶
ProjectTaskItem 项目详情中的任务项,包含关联的会话信息
type RefreshTokenRequest ¶
type RefreshTokenRequest struct {
RefreshToken string `json:"refresh_token" binding:"required"`
}
type RegisterByEmailRequest ¶
type ResolveAuthorizationRequest ¶
type ResolveAuthorizationRequest struct {
UserID string `json:"user_id"`
Provider string `json:"provider"`
AccountID string `json:"account_id,omitempty"`
}
ResolveAuthorizationRequest 表示运行时授权解析请求
type ResolvedAuthorization ¶
type ResolvedAuthorization struct {
Account *AuthorizedAccount `json:"account"`
Credential *AccountCredential `json:"credential"`
}
ResolvedAuthorization 表示解析完成的授权结果
type SearchSkillMarketplaceRequest ¶ added in v0.1.1
type SearchSkillMarketplaceRequest struct {
Keyword string `form:"keyword" json:"keyword,omitempty"`
Category string `form:"category" json:"category,omitempty"`
SourceTypes []string `form:"source_types" json:"source_types,omitempty"`
Limit int `form:"limit" json:"limit,omitempty"`
}
SearchSkillMarketplaceRequest Skill 市场搜索请求。
type SearchSkillMarketplaceResponse ¶ added in v0.1.1
type SearchSkillMarketplaceResponse struct {
Items []SkillMarketplaceItemView `json:"items"`
Warnings []SkillSourceWarning `json:"warnings,omitempty"`
}
SearchSkillMarketplaceResponse Skill 市场搜索响应。
type Session ¶
type Session struct {
SessionID string `json:"session_id"`
Type string `json:"type"`
Uin uint `json:"uin"`
OrgID uint `json:"org_id"`
AssistantID uint `json:"assistant_id"`
AllocatedAssistantID uint `json:"allocated_assistant_id"`
AssistantCode string `json:"assistant_code"`
Status string `json:"status"`
RuntimeStatus string `json:"runtime_status"`
Title string `json:"title"`
TitleManuallySet bool `json:"title_manually_set,omitempty"`
Metadata *types.ObjectMetadata `json:"metadata,omitempty"`
MessageCount int `json:"message_count"`
LastMessageAt *time.Time `json:"last_message_at,omitempty"`
ExpiredAt *time.Time `json:"expired_at,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type SessionEvent ¶
type SessionEvent struct {
Type string `json:"type"`
SessionID string `json:"session_id"`
Payload interface{} `json:"payload,omitempty"`
Sequence int64 `json:"sequence"`
Timestamp int64 `json:"timestamp"`
}
SessionEvent is the public event shape embedded in persisted message chunks.
type SessionList ¶
type SessionList struct {
Total int64 `json:"total"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Items []Session `json:"items"`
}
SessionList is a paginated session response.
type SessionMessage ¶
type SessionMessage struct {
ID string `json:"id"`
SessionID string `json:"session_id"`
Role string `json:"role"`
Content string `json:"content"`
Chunks []SessionEvent `json:"chunks,omitempty"`
Artifacts []types.MessageArtifact `json:"artifacts,omitempty"`
Attachments []types.MessageAttachment `json:"attachments,omitempty"`
Timestamp int64 `json:"timestamp"`
MessageType string `json:"message_type,omitempty"`
Metadata *types.ObjectMetadata `json:"metadata,omitempty"`
Usage *types.MessageUsage `json:"usage,omitempty"`
Sequence int64 `json:"sequence"`
CreatedAt time.Time `json:"created_at"`
}
SessionMessage is the API response shape for a persisted conversation message.
type SessionRunStartedRequest ¶ added in v0.1.10
type SessionRunStartedRequest struct {
SessionID string `json:"session_id"`
ReplyToMessageIDs []string `json:"reply_to_message_ids,omitempty"`
RequestID string `json:"request_id,omitempty"`
StreamStartSeq uint64 `json:"stream_start_seq"`
}
SessionRunStartedRequest marks user messages as processing when a worker run starts.
type SessionService ¶
type SessionService interface {
// Session CRUD
CreateSession(ctx context.Context, req *CreateSessionRequest) (*Session, error)
GetSession(ctx context.Context, sessionID string) (*Session, error)
UpdateSession(ctx context.Context, sessionID string, req *UpdateSessionRequest) (*Session, error)
DeleteSession(ctx context.Context, sessionID string) error
ListSessions(ctx context.Context, req *ListSessionsRequest) (*SessionList, error)
// Lifecycle management
ActivateSession(ctx context.Context, sessionID string) error
PauseSession(ctx context.Context, sessionID string) error
EndSession(ctx context.Context, sessionID string) error
ResumeSession(ctx context.Context, sessionID string) error
// Message management
AddMessage(ctx context.Context, sessionID string, req *AddMessageRequest) (*SessionMessage, error)
GetSessionMessages(ctx context.Context, sessionID string, page, perPage int) (*MessageList, error)
DeleteMessage(ctx context.Context, messageID uint) error
ClearSessionMessages(ctx context.Context, sessionID string) error
// Event streaming
StreamSessionEvents(ctx context.Context, sessionID string, replay bool, sink events.Sink) error
// HandleSessionRunStarted marks source user messages as processing and records replay metadata.
HandleSessionRunStarted(ctx context.Context, req *SessionRunStartedRequest) error
// CompleteSessionMessage persists the final assistant message for a completed session run.
CompleteSessionMessage(ctx context.Context, req *CompleteSessionMessageRequest) error
// FailedSessionMessage persists the final assistant message for a failed session run.
FailedSessionMessage(ctx context.Context, req *FailedSessionMessageRequest) error
// HandleSessionTitleRequest handles an asynchronous session title update request.
HandleSessionTitleRequest(ctx context.Context, sessionID string) error
// SubmitApproval forwards an approval decision to the worker via NATS.
SubmitApproval(ctx context.Context, req *SubmitApprovalRequest) error
}
SessionService defines the session service contract.
type SkillDetailRequest ¶ added in v0.1.10
type SkillDetailRequest struct {
Source string `json:"source" binding:"required"` // "Leros" for marketplace, "installed" for installed skills
SkillID string `json:"skill_id" binding:"required"` // skill identifier
}
SkillDetailRequest 获取 Skill 详情的请求。
type SkillDetailResponse ¶ added in v0.1.10
type SkillDetailResponse struct {
SkillID string `json:"skill_id"`
Source string `json:"source"`
Name string `json:"name"`
Description string `json:"description"`
SkillMD string `json:"skill_md"`
Version string `json:"version"`
Author string `json:"author"`
Category string `json:"category"`
Tags []string `json:"tags"`
Icon string `json:"icon,omitempty"`
Installs int64 `json:"installs"`
Verified bool `json:"verified"`
SourceType string `json:"source_type"`
Files []string `json:"files"`
}
SkillDetailResponse Skill 详情响应,包含完整元数据和 SKILL.md 正文。
type SkillInstalledItem ¶ added in v0.1.10
type SkillInstalledItem struct {
Name string `json:"name"`
Description string `json:"description"`
Category string `json:"category"`
Source string `json:"source"`
Trust string `json:"trust"`
}
SkillInstalledItem 表示 worker 上已安装的 Skill。
type SkillMarketplaceItemView ¶ added in v0.1.1
type SkillMarketplaceItemView struct {
SourceType string `json:"source_type"`
SkillID string `json:"skill_id"`
Name string `json:"name"`
Description string `json:"description"`
Version string `json:"version"`
Author string `json:"author"`
Category string `json:"category"`
Tags []string `json:"tags"`
Icon string `json:"icon,omitempty"`
Installs int64 `json:"installs"`
}
SkillMarketplaceItemView Skill 市场条目视图。
type SkillMarketplaceService ¶ added in v0.1.1
type SkillMarketplaceService interface {
SearchSkillMarketplace(ctx context.Context, req *SearchSkillMarketplaceRequest) (*SearchSkillMarketplaceResponse, error)
DownloadBuiltinSkill(ctx context.Context, skillID string) (*SkillPackageDownload, error)
InstallSkill(ctx context.Context, req *InstallSkillRequest) (*InstallSkillResponse, error)
InstalledSkills(ctx context.Context, req *InstalledSkillsRequest) (*InstalledSkillsResponse, error)
UninstallSkill(ctx context.Context, req *UninstallSkillRequest) (*UninstallSkillResponse, error)
GetSkillDetail(ctx context.Context, req *SkillDetailRequest) (*SkillDetailResponse, error)
ImportSkill(ctx context.Context, req *ImportSkillRequest) (*ImportSkillResponse, error)
}
SkillMarketplaceService 定义 Skill 市场搜索服务接口。
type SkillPackageDownload ¶ added in v0.1.1
type SkillPackageDownload struct {
Reader io.ReadCloser
FileName string
}
SkillPackageDownload 技能包下载结果。
type SkillSourceWarning ¶ added in v0.1.1
type SkillSourceWarning struct {
SourceType string `json:"source_type"`
Message string `json:"message"`
}
SkillSourceWarning 源查询警告信息。
type StartAuthorizationRequest ¶
type StartAuthorizationRequest struct {
UserID string `json:"user_id"`
Provider string `json:"provider"`
RedirectURI string `json:"redirect_uri,omitempty"`
}
StartAuthorizationRequest 表示发起授权请求
type SubmitApprovalRequest ¶
type SubmitApprovalRequest struct {
OrgID uint `json:"-"`
WorkerID uint `json:"-"` // TODO: 由 session 关联的运行时动态获取
SessionID string `json:"session_id"`
RequestID string `json:"request_id"`
Action string `json:"action"`
Reason string `json:"reason,omitempty"`
}
Session is the API response shape for a conversation. SubmitApprovalRequest forwards an approval decision to the worker via NATS.
type Task ¶
type Task struct {
PublicID string `json:"public_id"`
OrgID uint `json:"org_id"`
OwnerID uint `json:"owner_id"`
ProjectID string `json:"project_id"`
SessionID *uint `json:"session_id,omitempty"`
TaskType string `json:"task_type"`
AssigneeID *uint `json:"assignee_id,omitempty"`
Title string `json:"title"`
Description string `json:"description"`
Status string `json:"status"`
Deadline *time.Time `json:"deadline,omitempty"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
Task 任务响应结构
type TaskList ¶
type TaskList struct {
Total int64 `json:"total"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Items []Task `json:"items"`
}
TaskList 任务列表响应
type TaskService ¶
type TaskService interface {
CreateTask(ctx context.Context, req *CreateTaskRequest) (*Task, error)
GetTask(ctx context.Context, publicID string) (*Task, error)
UpdateTask(ctx context.Context, publicID string, req *UpdateTaskRequest) (*Task, error)
DeleteTask(ctx context.Context, publicID string) error
ListTasks(ctx context.Context, req *ListTasksRequest) (*TaskList, error)
}
TaskService 定义任务服务接口
type TestLLMModelRequest ¶
type TestLLMModelRequest struct {
ID *uint `json:"id,omitempty"`
Code string `json:"code,omitempty"`
Provider string `json:"provider,omitempty"`
Model string `json:"model,omitempty"`
BaseURL string `json:"base_url,omitempty"`
APIKey string `json:"api_key,omitempty"`
}
TestLLMModelRequest 测试LLM模型配置请求
type TestLLMModelResponse ¶
type TestLLMModelResponse struct {
Success bool `json:"success"`
StatusCode int `json:"status_code"`
Message string `json:"message"`
Endpoint string `json:"endpoint"`
LatencyMS int64 `json:"latency_ms"`
BaseURLHasV1 bool `json:"base_url_has_v1"`
}
TestLLMModelResponse 测试LLM模型配置响应
type ThirdAuthService ¶
type ThirdAuthService interface {
// OAuth 流程启动 - 返回授权 URL
StartAuthorization(ctx context.Context, req *StartAuthorizationRequest) (string, error)
// OAuth 回调处理 - 处理 provider 回调,保存授权账户
HandleAuthorizationCallback(ctx context.Context, req *AuthorizationCallbackRequest) (*AuthorizationResult, error)
// 运行时授权解析 - 根据条件解析可用的授权账户
ResolveAuthorization(ctx context.Context, req *ResolveAuthorizationRequest) (*ResolvedAuthorization, error)
}
ThirdAuthService 定义第三方平台授权服务接口
type UninstallSkillRequest ¶ added in v0.1.10
type UninstallSkillRequest struct {
Name string `json:"name" binding:"required"`
}
UninstallSkillRequest 卸载 Skill 请求。
type UninstallSkillResponse ¶ added in v0.1.10
type UninstallSkillResponse struct {
Status string `json:"status"`
Message string `json:"message"`
}
UninstallSkillResponse 卸载 Skill 响应(异步,仅表示已接受)。
type UpdateDigitalAssistantRequest ¶
type UpdateDigitalAssistantRequest struct {
Name string `json:"name"`
Description string `json:"description"`
Avatar string `json:"avatar"`
SystemPrompt *string `json:"system_prompt,omitempty"`
}
UpdateDigitalAssistantRequest 更新数字助手请求
type UpdateDigitalAssistantStatusRequest ¶
type UpdateDigitalAssistantStatusRequest struct {
Status string `json:"status" binding:"required"`
}
UpdateDigitalAssistantStatusRequest 更新数字助手状态请求
type UpdateLLMModelRequest ¶
type UpdateLLMModelRequest struct {
Name string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
Provider string `json:"provider,omitempty"`
Model string `json:"model,omitempty"`
BaseURL *string `json:"base_url,omitempty"`
APIKey *string `json:"api_key,omitempty"`
Status string `json:"status,omitempty"`
IsDefault *bool `json:"is_default,omitempty"`
Config *map[string]interface{} `json:"config,omitempty"`
}
UpdateLLMModelRequest 更新LLM模型配置请求
type UpdateOrgMemberRequest ¶
type UpdateOrgRequest ¶
type UpdateProjectRequest ¶
type UpdateProjectRequest struct {
Name *string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
Objective *string `json:"objective,omitempty"`
OwnerID *uint `json:"owner_id,omitempty"`
Status *string `json:"status,omitempty"`
Metadata *map[string]interface{} `json:"metadata,omitempty"`
}
UpdateProjectRequest 更新项目请求
type UpdateSessionRequest ¶
type UpdateSessionRequest struct {
Title string `json:"title,omitempty"`
Metadata *types.ObjectMetadata `json:"metadata,omitempty"`
ExpiredAt *time.Time `json:"expired_at,omitempty"`
}
UpdateSessionRequest updates basic session fields.
type UpdateTaskRequest ¶
type UpdateTaskRequest struct {
ProjectID *string `json:"project_id,omitempty"`
Title *string `json:"title,omitempty"`
Description *string `json:"description,omitempty"`
TaskType *string `json:"task_type,omitempty"`
AssigneeID *uint `json:"assignee_id,omitempty"`
Status *string `json:"status,omitempty"`
Deadline *time.Time `json:"deadline,omitempty"`
Metadata *map[string]interface{} `json:"metadata,omitempty"`
}
UpdateTaskRequest 更新任务请求
type UpdateUserRequest ¶
type UpdateUserRequest struct {
GithubLogin *string `json:"github_login,omitempty"`
Password *string `json:"password,omitempty"`
Name *string `json:"name,omitempty"`
Email *string `json:"email,omitempty"`
AvatarURL *string `json:"avatar_url,omitempty"`
Bio *string `json:"bio,omitempty"`
Company *string `json:"company,omitempty"`
Location *string `json:"location,omitempty"`
}
type UploadFileRequest ¶ added in v0.1.2
type UploadFileResult ¶ added in v0.1.2
type UploadFileResult struct {
PublicID string `json:"public_id"`
FileUploadID string `json:"file_upload_id"`
Filename string `json:"filename"`
OriginalName string `json:"original_name"`
MimeType string `json:"mime_type"`
FileSize int64 `json:"file_size"`
Sha256 string `json:"sha256"`
StoragePath string `json:"storage_path"`
URL string `json:"url"`
}
type UserInfo ¶
type UserInfo struct {
PublicID string `json:"public_id"`
GithubID int64 `json:"github_id,omitempty"`
GithubLogin string `json:"github_login"`
Name string `json:"name"`
Email string `json:"email,omitempty"`
AvatarURL string `json:"avatar_url,omitempty"`
Bio string `json:"bio,omitempty"`
Company string `json:"company,omitempty"`
Location string `json:"location,omitempty"`
PublicRepos int `json:"public_repos,omitempty"`
Followers int `json:"followers,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type UserService ¶
type UserService interface {
CreateUser(ctx context.Context, req *CreateUserRequest) (*UserInfo, error)
GetUser(ctx context.Context, publicID string, githubLogin string) (*UserInfo, error)
UpdateUser(ctx context.Context, publicID string, req *UpdateUserRequest) (*UserInfo, error)
DeleteUser(ctx context.Context, publicID string) error
ListUsers(ctx context.Context, req *ListUsersRequest) (*UserList, error)
}
type WorkService ¶
type WorkService interface {
// NewMessage 首页新建消息接口,原子创建 Project + Task + Session 并分配 AgentWorker
NewMessage(ctx context.Context, req *NewMessageRequest) (*NewMessageResponse, error)
}
WorkService 定义工作台服务接口
Source Files
¶
- account_third_auth.go
- account_third_auth_type.go
- artifact.go
- auth.go
- auth_type.go
- digital_assistant.go
- digital_assistant_type.go
- file.go
- llm_model.go
- llm_model_type.go
- org.go
- org_type.go
- project.go
- project_type.go
- session.go
- session_type.go
- skill_marketplace.go
- task.go
- task_type.go
- user.go
- user_type.go
- work.go
- work_type.go