contract

package
v0.3.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SkillAddModeFile   = "file"
	SkillAddModeGitHub = "github"
)
View Source
const (
	PluginScopeOrganization = "organization"
)

Variables

View Source
var (
	// ErrPluginNotFound indicates a plugin resource is not visible in the requested scope.
	ErrPluginNotFound = errors.New("plugin not found")
	// ErrPluginImportNotImplemented indicates that package publication is deferred to a later phase.
	ErrPluginImportNotImplemented = errors.New("plugin import is not implemented")
	// ErrInvalidPluginConfig indicates that a plugin configuration failed validation.
	ErrInvalidPluginConfig = errors.New("invalid plugin config")
)

Functions

This section is empty.

Types

type AITeammateTemplate added in v0.1.22

type AITeammateTemplate struct {
	ID             uint      `json:"id"`
	Code           string    `json:"code"`
	Name           string    `json:"name"`
	Description    string    `json:"description"`
	Avatar         string    `json:"avatar"`
	Provider       string    `json:"provider"`
	SystemPrompt   string    `json:"system_prompt"`
	Expertise      []string  `json:"expertise"`
	Category       string    `json:"category"`
	Tags           []string  `json:"tags"`
	SortOrder      int       `json:"sort_order"`
	UseCount       int64     `json:"use_count"`
	RecommendCount int64     `json:"recommend_count"`
	Status         string    `json:"status"`
	IsSystem       bool      `json:"is_system"`
	CreatedAt      time.Time `json:"created_at"`
	UpdatedAt      time.Time `json:"updated_at"`
}

AITeammateTemplate is the API view for a preset AI teammate template.

type AITeammateTemplateList added in v0.1.22

type AITeammateTemplateList struct {
	Total  int64                `json:"total"`
	Offset int                  `json:"offset"`
	Limit  int                  `json:"limit"`
	Items  []AITeammateTemplate `json:"items"`
}

AITeammateTemplateList is a paginated template list response.

type AITeammateTemplateService added in v0.1.22

type AITeammateTemplateService interface {
	ListAITeammateTemplates(ctx context.Context, req *ListAITeammateTemplateRequest) (*AITeammateTemplateList, error)
	GetAITeammateTemplate(ctx context.Context, req *GetAITeammateTemplateRequest) (*AITeammateTemplate, error)
	IncrementAITeammateTemplateUseCount(ctx context.Context, req *IncrementAITeammateTemplateCountRequest) (*AITeammateTemplate, error)
	IncrementAITeammateTemplateRecommendCount(ctx context.Context, req *IncrementAITeammateTemplateCountRequest) (*AITeammateTemplate, error)
}

AITeammateTemplateService defines preset AI teammate template operations.

type AITeammateTemplateStatus added in v0.1.22

type AITeammateTemplateStatus string

AITeammateTemplateStatus AI 队友模板状态。

const (
	// AITeammateTemplateStatusActive 表示模板可展示和使用。
	AITeammateTemplateStatusActive AITeammateTemplateStatus = "active"
	// AITeammateTemplateStatusInactive 表示模板暂不展示和使用。
	AITeammateTemplateStatusInactive AITeammateTemplateStatus = "inactive"
)

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 AddMCPPluginRequest added in v0.3.7

type AddMCPPluginRequest struct {
	MCPPluginConfig
}

AddMCPPluginRequest creates one organization MCP plugin.

type AddMessageRequest

type AddMessageRequest struct {
	Role          string                    `json:"role" binding:"required"`
	Content       string                    `json:"content" binding:"required"`
	ExecutionMode types.ExecutionMode       `json:"execution_mode,omitempty" binding:"omitempty,oneof=default plan"`
	AssistantIDs  []string                  `json:"assistant_ids,omitempty"`
	ConnectorIDs  []string                  `json:"connector_ids,omitempty"`
	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 AddSkillPluginRequest added in v0.3.7

type AddSkillPluginRequest struct {
	Mode         string `json:"mode"`
	FileUploadID string `json:"file_upload_id"`
	GitHubURL    string `json:"github_url"`
}

AddSkillPluginRequest adds a Skill plugin using the selected source mode.

type AuthOrgInfo

type AuthOrgInfo struct {
	account.AuthOrgInfo
}

type AuthSessionResponse added in v0.1.23

type AuthSessionResponse struct {
	account.AuthSessionOutput
}

type AuthUserInfo

type AuthUserInfo struct {
	account.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 Automation added in v0.3.9

type Automation struct {
	PublicID     string                        `json:"public_id"`
	OrgID        uint                          `json:"org_id"`
	OwnerID      uint                          `json:"owner_id"`
	Name         string                        `json:"name"`
	Instruction  string                        `json:"instruction,omitempty"`
	Enabled      bool                          `json:"enabled"`
	ScheduleMode string                        `json:"schedule_mode"`
	ScheduleSpec *types.AutomationScheduleSpec `json:"schedule_spec"`
	Timezone     string                        `json:"timezone"`
	AssistantID  uint                          `json:"assistant_id"`
	NextRunAt    *time.Time                    `json:"next_run_at,omitempty"`
	// Summary 周期摘要文案(前端直接展示)
	Summary   string    `json:"summary,omitempty"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`

	// 执行状态聚合(列表/详情展示)
	// HasActiveExecution 是否存在 queued/running 执行
	HasActiveExecution bool `json:"has_active_execution"`
	// LastExecutionStatus 最近一次执行状态(无则空)
	LastExecutionStatus string `json:"last_execution_status,omitempty"`
	// LastExecutionTime 最近一次执行的理论触发时间
	LastExecutionTime *time.Time `json:"last_execution_time,omitempty"`
	// LastExecutionPublicID 最近一次执行对外 ID
	LastExecutionPublicID string `json:"last_execution_public_id,omitempty"`
	// LastTaskID 最近一次执行对应的任务主键(用于跳转)
	LastTaskID *uint `json:"last_task_id,omitempty"`
	// ProjectID 当前自动化项目主键
	ProjectID *uint `json:"project_id,omitempty"`
}

Automation 自动化响应结构

type AutomationExecution added in v0.3.9

type AutomationExecution struct {
	PublicID            string     `json:"public_id"`
	AutomationID        uint       `json:"automation_id"`
	OrgID               uint       `json:"org_id"`
	OwnerID             uint       `json:"owner_id"`
	TriggerType         string     `json:"trigger_type"`
	Status              string     `json:"status"`
	ScheduledAt         time.Time  `json:"scheduled_at"`
	NotAfter            *time.Time `json:"not_after,omitempty"`
	StartedAt           *time.Time `json:"started_at,omitempty"`
	FinishedAt          *time.Time `json:"finished_at,omitempty"`
	NameSnapshot        string     `json:"name_snapshot"`
	InstructionSnapshot string     `json:"instruction_snapshot,omitempty"`
	AssistantIDSnapshot uint       `json:"assistant_id_snapshot"`
	MissedCount         int        `json:"missed_count"`
	ProjectID           *uint      `json:"project_id,omitempty"`
	TaskID              *uint      `json:"task_id,omitempty"`
	SessionID           *uint      `json:"session_id,omitempty"`
	MessageID           *uint      `json:"message_id,omitempty"`
	// 关联实体的对外 public_id(用于前端跳转),仅展示,不落库
	ProjectPublicID string    `json:"project_public_id,omitempty"`
	TaskPublicID    string    `json:"task_public_id,omitempty"`
	SessionPublicID string    `json:"session_public_id,omitempty"`
	MessagePublicID string    `json:"message_public_id,omitempty"`
	RunID           string    `json:"run_id,omitempty"`
	AttemptCount    int       `json:"attempt_count"`
	ErrorCode       string    `json:"error_code,omitempty"`
	ErrorMsg        string    `json:"error_msg,omitempty"`
	CreatedAt       time.Time `json:"created_at"`
}

AutomationExecution 执行记录响应

type AutomationExecutionList added in v0.3.9

type AutomationExecutionList struct {
	Total  int64                 `json:"total"`
	Offset int                   `json:"offset"`
	Limit  int                   `json:"limit"`
	Items  []AutomationExecution `json:"items"`
}

AutomationExecutionList 执行历史列表响应

type AutomationList added in v0.3.9

type AutomationList struct {
	Total  int64        `json:"total"`
	Offset int          `json:"offset"`
	Limit  int          `json:"limit"`
	Items  []Automation `json:"items"`
}

AutomationList 自动化列表响应

type AutomationService added in v0.3.9

type AutomationService interface {
	CreateAutomation(ctx context.Context, req *CreateAutomationRequest) (*Automation, error)

	GetAutomation(ctx context.Context, publicID string) (*Automation, error)

	UpdateAutomation(ctx context.Context, publicID string, req *UpdateAutomationRequest) (*Automation, error)

	DeleteAutomation(ctx context.Context, publicID string) error

	ListAutomations(ctx context.Context, req *ListAutomationsRequest) (*AutomationList, error)

	RunAutomationNow(ctx context.Context, publicID string) (*AutomationExecution, error)

	ListAutomationExecutions(ctx context.Context, req *ListAutomationExecutionsRequest) (*AutomationExecutionList, error)

	GetAutomationExecution(ctx context.Context, publicID string) (*AutomationExecution, error)
}

AutomationService 定义自动化服务接口

type CancelSessionRunRequest added in v0.1.17

type CancelSessionRunRequest struct {
	SessionID   string `json:"session_id" binding:"required"`
	RunID       string `json:"run_id,omitempty"`
	AssistantID string `json:"assistant_id,omitempty"`
	Reason      string `json:"reason,omitempty"`
}

CancelSessionRunRequest is the request body for cancelling a session agent run.

type CancelSessionRunResponse added in v0.1.17

type CancelSessionRunResponse struct {
	SessionID string `json:"session_id"`
	Status    string `json:"status"` // "cancelled" | "no_active_run"
}

CancelSessionRunResponse is the response for a cancel session run request.

type CheckDigitalAssistantNameRequest added in v0.3.0

type CheckDigitalAssistantNameRequest struct {
	Name      string `json:"name" binding:"required"`
	ExcludeID uint   `json:"exclude_id,omitempty"`
}

CheckDigitalAssistantNameRequest checks whether a teammate name can be used in the current organization.

type CheckDigitalAssistantNameResponse added in v0.3.0

type CheckDigitalAssistantNameResponse struct {
	Available bool `json:"available"`
}

CheckDigitalAssistantNameResponse returns the availability of a normalized teammate name.

type ChooseUinRequest added in v0.3.3

type ChooseUinRequest struct {
	account.ChooseUinInput
}

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"`
	RunID             string                  `json:"run_id,omitempty"`
	AssistantID       string                  `json:"assistant_id,omitempty"`
}

CompleteSessionMessageRequest persists a completed assistant message.

type ConnectMCPPlatformRequest added in v0.3.7

type ConnectMCPPlatformRequest struct {
	AuthValues map[string]string `json:"auth_values,omitempty"`
}

ConnectMCPPlatformRequest contains schema-defined authorization values.

type ConnectMCPPlatformResponse added in v0.3.7

type ConnectMCPPlatformResponse struct {
	Platform  MCPPlatformView `json:"platform"`
	Plugin    PluginView      `json:"plugin"`
	ToolCount int             `json:"tool_count"`
}

ConnectMCPPlatformResponse returns the connected platform and created plugin.

type ConnectorSkillRef added in v0.3.7

type ConnectorSkillRef struct {
	PluginID string `json:"plugin_id"`
	Revision int    `json:"revision"`
}

ConnectorSkillRef identifies the immutable project connector revision requesting a Skill artifact.

type CreateAutomationRequest added in v0.3.9

type CreateAutomationRequest struct {
	Name         string                              `json:"name" binding:"required"`
	Instruction  string                              `json:"instruction,omitempty"`
	Enabled      *bool                               `json:"enabled,omitempty"`
	ScheduleMode string                              `json:"schedule_mode" binding:"required"`
	Schedule     *types.AutomationScheduleFormConfig `json:"schedule" binding:"required"`
	Timezone     string                              `json:"timezone,omitempty"`
}

CreateAutomationRequest 创建自动化请求

type CreateDepartmentRequest added in v0.1.23

type CreateDepartmentRequest struct {
	account.CreateDepartmentInput
}

type CreateDigitalAssistantFromTemplateRequest added in v0.1.22

type CreateDigitalAssistantFromTemplateRequest struct {
	TemplateID   uint     `json:"template_id" binding:"required"`
	Name         string   `json:"name"`
	RoleName     string   `json:"role_name"`
	Description  string   `json:"description"`
	Avatar       string   `json:"avatar"`
	SystemPrompt string   `json:"system_prompt"`
	Expertise    []string `json:"expertise"`
}

CreateDigitalAssistantFromTemplateRequest 基于模板创建数字助手请求

type CreateDigitalAssistantRequest

type CreateDigitalAssistantRequest struct {
	Name         string   `json:"name" binding:"required"`
	RoleName     string   `json:"role_name"`
	Description  string   `json:"description"`
	Avatar       string   `json:"avatar"`
	SystemPrompt string   `json:"system_prompt"`
	Expertise    []string `json:"expertise"`
	TemplateID   *uint    `json:"template_id,omitempty"`
	Source       string   `json:"source"`
}

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 CreateMemberDepartmentRequest added in v0.1.23

type CreateMemberDepartmentRequest struct {
	Uin          uint `json:"uin" binding:"required"`
	DepartmentID uint `json:"department_id" binding:"required"`
	IsPrimary    bool `json:"is_primary,omitempty"`
}

type CreateOrgMemberRequest

type CreateOrgMemberRequest struct {
	account.CreateOrgMemberInput
}

type CreateOrgRequest

type CreateOrgRequest struct {
	account.CreateOrgInput
}

type CreateOrganizationRequest added in v0.1.23

type CreateOrganizationRequest struct {
	account.CreateOrganizationInput
}

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"`
	Members     []MemberInput          `json:"members,omitempty"`
}

CreateProjectRequest 创建项目请求

type CreateSessionRequest

type CreateSessionRequest struct {
	SessionID   string                `json:"session_id,omitempty"`
	Type        string                `json:"type" binding:"required"`
	AssistantID string                `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 {
	account.CreateUserInput
}

type CreateUserResponse added in v0.3.3

type CreateUserResponse struct {
	account.CreateUserResponse
}

type DeleteAutomationRequest added in v0.3.9

type DeleteAutomationRequest struct {
	PublicID string `json:"public_id" binding:"required"`
}

DeleteAutomationRequest 删除自动化请求

type DeletePluginRequest added in v0.3.7

type DeletePluginRequest struct {
	ProjectID string `form:"project_id" json:"project_id,omitempty"`
}

DeletePluginRequest optionally removes a plugin from one project instead of archiving it.

type DeletePluginResponse added in v0.3.7

type DeletePluginResponse struct {
	Operation string `json:"operation"`
}

DeletePluginResponse reports which operation completed.

type Department added in v0.1.23

type Department struct {
	account.Department
}

type DepartmentList added in v0.1.23

type DepartmentList struct {
	account.DepartmentList
}

type DigitalAssistant

type DigitalAssistant struct {
	ID           uint                    `json:"id"`
	PublicID     string                  `json:"public_id"`
	OrgID        uint                    `json:"org_id"`
	OwnerID      uint                    `json:"owner_id"`
	Name         string                  `json:"name"`
	RoleName     string                  `json:"role_name"`
	Description  string                  `json:"description"`
	Avatar       string                  `json:"avatar"`
	Status       string                  `json:"status"`
	Version      int                     `json:"version"`
	SystemPrompt string                  `json:"system_prompt"`
	Expertise    []string                `json:"expertise"`
	TemplateID   *uint                   `json:"template_id,omitempty"`
	Source       string                  `json:"source"`
	Deployment   *WorkerDeploymentStatus `json:"deployment,omitempty"`
	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)

	// 根据 PublicID 获取数字助手详情(从上下文获取权限信息)
	GetDigitalAssistantByPublicID(ctx context.Context, publicID 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)

	// 检查当前组织内的数字助手名称是否可用。
	CheckDigitalAssistantName(ctx context.Context, req *CheckDigitalAssistantNameRequest) (*CheckDigitalAssistantNameResponse, error)

	// 更新数字助手状态(从上下文获取权限信息)
	UpdateDigitalAssistantStatus(ctx context.Context, id uint, req *UpdateDigitalAssistantStatusRequest) error

	// 基于模板创建数字助手(从上下文获取权限信息)
	CreateDigitalAssistantFromTemplate(ctx context.Context, req *CreateDigitalAssistantFromTemplateRequest) (*DigitalAssistant, 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"`
	RunID             string                  `json:"run_id,omitempty"`
	AssistantID       string                  `json:"assistant_id,omitempty"`
}

FailedSessionMessageRequest persists a failed assistant message.

type FileDownloadInfo added in v0.1.2

type FileDownloadInfo struct {
	FileName  string
	MimeType  string
	Size      int64
	PublicURL string
}

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)
	DownloadFileByURI(ctx context.Context, orgID uint, storageURI string) (io.ReadCloser, *FileDownloadInfo, error)
	PresignDownloadURL(ctx context.Context, orgID uint, publicID, storageURI string) (string, error)
}

type FileTreeNode

type FileTreeNode struct {
	Name                string `json:"name"`
	Path                string `json:"path"`
	Type                string `json:"type"`
	Size                int64  `json:"size,omitempty"`
	MimeType            string `json:"mime_type,omitempty"`
	ModTime             int64  `json:"mod_time,omitempty"`
	CreatedAt           int64  `json:"created_at,omitempty"`
	PublicID            string `json:"public_id,omitempty"`
	StorageURI          string `json:"storage_uri,omitempty"`
	Sha256              string `json:"sha256,omitempty"`
	InitialFilePublicID string `json:"initial_file_public_id,omitempty"`
	VersionNo           int    `json:"version_no,omitempty"`
	VersionLabel        string `json:"version_label,omitempty"`
	VersionCount        int    `json:"version_count,omitempty"`
	ResourceType        string `json:"resource_type,omitempty"`
}

FileTreeNode 文件树节点。列表接口以平铺结构返回,前端按 parent_id 组装树。

type FileUploadResult

type FileUploadResult struct {
	PublicID string `json:"public_id"`     // 文件记录 public_id
	Path     string `json:"path"`          // 相对 repo 根目录的路径
	Filename string `json:"filename"`      // 文件名
	Size     int64  `json:"size"`          // 文件大小(字节)
	URL      string `json:"url,omitempty"` // 文件访问 URL
}

FileUploadResult 文件上传结果

type GetAITeammateTemplateRequest added in v0.1.22

type GetAITeammateTemplateRequest struct {
	ID   *uint   `json:"id,omitempty"`
	Code *string `json:"code,omitempty"`
}

GetAITeammateTemplateRequest gets a template by ID or code.

type GetAutomationExecutionRequest added in v0.3.9

type GetAutomationExecutionRequest struct {
	PublicID string `json:"public_id" binding:"required"`
}

GetAutomationExecutionRequest 查询执行详情请求

type GetAutomationRequest added in v0.3.9

type GetAutomationRequest struct {
	PublicID string `json:"public_id" binding:"required"`
}

GetAutomationRequest 查询自动化详情请求

type GetOfficialPluginLatestVersionRequest added in v0.3.7

type GetOfficialPluginLatestVersionRequest struct {
	Kind string `form:"kind" json:"kind"`
	Code string `form:"code" json:"code"`
}

GetOfficialPluginLatestVersionRequest identifies one official plugin by stable identity.

type GetPluginInstallationStatusRequest added in v0.3.7

type GetPluginInstallationStatusRequest struct {
	Kind string `form:"kind" json:"kind"`
	Code string `form:"code" json:"code"`
}

GetPluginInstallationStatusRequest identifies one organization plugin by stable identity.

type GetPluginRequest added in v0.3.7

type GetPluginRequest struct{}

GetPluginRequest selects an organization plugin by public ID.

type GetPluginResponse added in v0.3.7

type GetPluginResponse struct {
	Plugin  *PluginView                `json:"plugin,omitempty"`
	Content *PluginRevisionContentView `json:"content"`
	// Definition is returned for non-bundle plugin kinds such as MCP.
	Definition json.RawMessage `json:"definition,omitempty"`
}

GetPluginResponse contains one organization plugin detail.

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 IncrementAITeammateTemplateCountRequest added in v0.1.22

type IncrementAITeammateTemplateCountRequest struct {
	ID   *uint   `json:"id,omitempty"`
	Code *string `json:"code,omitempty"`
}

IncrementAITeammateTemplateCountRequest increments a template counter.

type InstallOfficialPluginResponse added in v0.3.7

type InstallOfficialPluginResponse struct {
	Operation string     `json:"operation"`
	Plugin    PluginView `json:"plugin"`
}

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 ListAITeammateTemplateRequest added in v0.1.22

type ListAITeammateTemplateRequest struct {
	Keyword  *string `json:"keyword,omitempty"`
	Category *string `json:"category,omitempty"`
	Status   *string `json:"status,omitempty"`
	types.Pagination
}

ListAITeammateTemplateRequest queries AI teammate templates.

type ListAutomationExecutionsRequest added in v0.3.9

type ListAutomationExecutionsRequest struct {
	PublicID string  `json:"public_id" binding:"required"`
	Status   *string `json:"status,omitempty"`
	types.Pagination
}

ListAutomationExecutionsRequest 查询执行历史请求

type ListAutomationsRequest added in v0.3.9

type ListAutomationsRequest struct {
	Keyword      *string `json:"keyword,omitempty"`
	Enabled      *bool   `json:"enabled,omitempty"`
	ScheduleMode *string `json:"schedule_mode,omitempty"`
	types.Pagination
}

ListAutomationsRequest 查询自动化列表请求

type ListDepartmentRequest added in v0.3.3

type ListDepartmentRequest struct {
	account.ListDepartmentInput
}

type ListDigitalAssistantRequest

type ListDigitalAssistantRequest struct {
	Status  *string `json:"status,omitempty"`
	Keyword *string `json:"keyword,omitempty"`
	Source  *string `json:"source,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 ListMCPPlatformsResponse added in v0.3.7

type ListMCPPlatformsResponse struct {
	Platforms []MCPPlatformView `json:"platforms"`
}

ListMCPPlatformsResponse contains the built-in MCP platform catalogue.

type ListMemberDepartmentsRequest added in v0.1.23

type ListMemberDepartmentsRequest struct {
	Uin          *uint `json:"uin,omitempty"`
	DepartmentID *uint `json:"department_id,omitempty"`
	OrgID        *uint `json:"org_id,omitempty"`
	IsPrimary    *bool `json:"is_primary,omitempty"`
	types.Pagination
}

type ListOfficialPluginMarketplaceItemsRequest added in v0.3.7

type ListOfficialPluginMarketplaceItemsRequest struct {
	Kind     string `form:"kind" json:"kind,omitempty"`
	Category string `form:"category" json:"category,omitempty"`
	Keyword  string `form:"keyword" json:"keyword,omitempty"`
	Limit    int    `form:"limit" json:"limit,omitempty"`
}

ListOfficialPluginMarketplaceItemsRequest filters the official plugin catalogue.

type ListOfficialPluginMarketplaceItemsResponse added in v0.3.7

type ListOfficialPluginMarketplaceItemsResponse struct {
	Items []OfficialPluginMarketplaceItemView `json:"items"`
}

type ListOrgMembersRequest

type ListOrgMembersRequest struct {
	account.ListOrgMembersInput
}

type ListOrgsRequest

type ListOrgsRequest struct {
	account.ListOrgsInput
}

type ListPluginVersionsResponse added in v0.3.7

type ListPluginVersionsResponse struct {
	Versions []PluginRevisionView `json:"versions"`
}

ListPluginVersionsResponse contains organization plugin revisions.

type ListPluginsRequest added in v0.3.7

type ListPluginsRequest struct {
	Kind                    string `form:"kind" json:"kind,omitempty"`
	Status                  string `form:"status" json:"status,omitempty"`
	Category                string `form:"category" json:"category,omitempty"`
	Keyword                 string `form:"keyword" json:"keyword,omitempty"`
	Limit                   int    `form:"limit" json:"limit,omitempty"`
	ExcludeMarketplaceBased bool   `form:"exclude_marketplace_based" json:"exclude_marketplace_based,omitempty"`
}

ListPluginsRequest describes filters for organization plugin lists.

type ListPluginsResponse added in v0.3.7

type ListPluginsResponse struct {
	Plugins []PluginView `json:"plugins"`
}

ListPluginsResponse contains organization plugins.

type ListProjectActivitiesRequest added in v0.2.1

type ListProjectActivitiesRequest struct {
	ProjectID   string   `json:"project_id,omitempty"`
	OperatorID  string   `json:"operator_id,omitempty"`
	OperatorIDs []string `json:"operator_ids,omitempty"`
	Cursor      string   `json:"cursor,omitempty"`
	Limit       int      `json:"limit,omitempty"`
}

ListProjectActivitiesRequest 查询项目操作动态请求。

type ListProjectPluginsRequest added in v0.3.7

type ListProjectPluginsRequest struct {
	PublicID string `json:"public_id" binding:"required"`
	Kind     string `json:"kind,omitempty"`
}

ListProjectPluginsRequest filters plugins bound to a project.

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 *string `json:"assistant_id,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 ListUinRequest added in v0.3.3

type ListUinRequest struct{}

type ListUinResponse added in v0.3.3

type ListUinResponse struct {
	account.ListUinOutput
}

type ListUserRequest added in v0.3.3

type ListUserRequest struct {
	account.ListUserInput
}

type LoginByPasswordRequest added in v0.3.7

type LoginByPasswordRequest struct {
	account.LoginByPasswordInput
}

type LoginByPhoneCodeRequest added in v0.1.12

type LoginByPhoneCodeRequest struct {
	account.LoginByPhoneCodeInput
}

type MCPPlatformOAuthStatusResponse added in v0.3.7

type MCPPlatformOAuthStatusResponse struct {
	AttemptID   string `json:"attempt_id"`
	Status      string `json:"status"`
	PluginID    string `json:"plugin_id,omitempty"`
	DisplayName string `json:"display_name,omitempty"`
	ErrorCode   string `json:"error_code,omitempty"`
	Connected   bool   `json:"connected"`
}

MCPPlatformOAuthStatusResponse is the safe polling view of one OAuth attempt.

type MCPPlatformView added in v0.3.7

type MCPPlatformView struct {
	Code                 string                      `json:"code"`
	Name                 string                      `json:"name"`
	Description          string                      `json:"description"`
	Mode                 string                      `json:"mode"`
	AuthType             string                      `json:"auth_type"`
	AuthFields           []types.MCPChannelAuthField `json:"auth_fields,omitempty"`
	AutoConnectSupported bool                        `json:"auto_connect_supported"`
	Connected            bool                        `json:"connected"`
	AuthorizationStatus  string                      `json:"authorization_status,omitempty"`
	PluginID             string                      `json:"plugin_id,omitempty"`
}

MCPPlatformView describes one built-in platform and the caller's connection state.

type MCPPluginConfig added in v0.3.7

type MCPPluginConfig struct {
	Code        string            `json:"code,omitempty"`
	Name        string            `json:"name"`
	Description string            `json:"description,omitempty"`
	Transport   string            `json:"transport,omitempty"`
	URL         string            `json:"url,omitempty"`
	BearerToken string            `json:"bearer_token,omitempty"`
	Headers     map[string]string `json:"headers,omitempty"`
	Command     string            `json:"command,omitempty"`
	Args        []string          `json:"args,omitempty"`
	Env         map[string]string `json:"env,omitempty"`
	Provider    string            `json:"-"`
}

MCPPluginConfig is the organization-managed HTTP or stdio MCP configuration. Code is optional on create and update; the service generates it for new plugins.

type MemberDepartment added in v0.1.23

type MemberDepartment struct {
	ID           uint      `json:"id"`
	Uin          uint      `json:"uin"`
	OrgID        uint      `json:"org_id"`
	DepartmentID uint      `json:"department_id"`
	IsPrimary    bool      `json:"is_primary"`
	CreatedAt    time.Time `json:"created_at"`
	UpdatedAt    time.Time `json:"updated_at"`
}

type MemberDepartmentList added in v0.1.23

type MemberDepartmentList struct {
	Total  int64              `json:"total"`
	Offset int                `json:"offset"`
	Limit  int                `json:"limit"`
	Items  []MemberDepartment `json:"items"`
}

type MemberDepartmentService added in v0.1.23

type MemberDepartmentService interface {
	CreateMemberDepartment(ctx context.Context, req *CreateMemberDepartmentRequest) (*MemberDepartment, error)
	GetMemberDepartment(ctx context.Context, id uint) (*MemberDepartment, error)
	UpdateMemberDepartment(ctx context.Context, id uint, req *UpdateMemberDepartmentRequest) (*MemberDepartment, error)
	DeleteMemberDepartment(ctx context.Context, id uint) error
	ListMemberDepartments(ctx context.Context, req *ListMemberDepartmentsRequest) (*MemberDepartmentList, error)
}

type MemberInput added in v0.1.26

type MemberInput struct {
	Type string `json:"type" binding:"required"` // "user" | "assistant"
	ID   string `json:"id" binding:"required"`   // user 传 public_id, assistant 传 public_id
	Role string `json:"role,omitempty"`          // 仅 type=user 生效,可选 owner|admin|member,空值默认 member
}

MemberInput 创建/编辑项目时传入的成员项

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,omitempty"`
	ExecutionMode types.ExecutionMode       `json:"execution_mode,omitempty" binding:"omitempty,oneof=default plan"`
	ProjectID     string                    `json:"project_id,omitempty"`
	TaskID        string                    `json:"task_id,omitempty"`
	AssistantIDs  []string                  `json:"assistant_ids,omitempty"`
	ConnectorIDs  []string                  `json:"connector_ids,omitempty"`
	MessageType   string                    `json:"message_type,omitempty"`
	Objective     string                    `json:"objective,omitempty"`
	Attachments   []types.MessageAttachment `json:"attachments,omitempty"`
	Metadata      *types.ObjectMetadata     `json:"metadata,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 string `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 OfficialPluginLatestVersionResponse added in v0.3.7

type OfficialPluginLatestVersionResponse struct {
	Kind          string `json:"kind"`
	Code          string `json:"code"`
	Available     bool   `json:"available"`
	ItemID        string `json:"item_id,omitempty"`
	LatestVersion string `json:"latest_version,omitempty"`
}

OfficialPluginLatestVersionResponse reports whether an official release is available.

type OfficialPluginMarketplaceItemView added in v0.3.7

type OfficialPluginMarketplaceItemView struct {
	PublicID             string                     `json:"public_id"`
	Code                 string                     `json:"code"`
	Kind                 string                     `json:"kind"`
	Name                 string                     `json:"name"`
	Description          string                     `json:"description,omitempty"`
	Author               string                     `json:"author"`
	Version              string                     `json:"version"`
	Category             string                     `json:"category"`
	Tags                 []string                   `json:"tags"`
	Icon                 string                     `json:"icon,omitempty"`
	Verified             bool                       `json:"verified"`
	Installed            bool                       `json:"installed"`
	InstalledPluginID    string                     `json:"installed_plugin_id,omitempty"`
	MarketplaceAvailable bool                       `json:"marketplace_available"`
	LatestVersion        string                     `json:"latest_version,omitempty"`
	UpdateAvailable      bool                       `json:"update_available"`
	OrganizationOverride bool                       `json:"organization_override"`
	Content              *PluginRevisionContentView `json:"content,omitempty"`
}

OfficialPluginMarketplaceItemView is the public projection of one official plugin.

type OfficialPluginMarketplaceService added in v0.3.7

type OfficialPluginMarketplaceService interface {
	ListOfficialPluginMarketplaceItems(ctx context.Context, orgID uint, req *ListOfficialPluginMarketplaceItemsRequest) (*ListOfficialPluginMarketplaceItemsResponse, error)
	GetOfficialPluginMarketplaceItem(ctx context.Context, orgID uint, itemID string) (*OfficialPluginMarketplaceItemView, error)
	GetOfficialPluginLatestVersion(ctx context.Context, req *GetOfficialPluginLatestVersionRequest) (*OfficialPluginLatestVersionResponse, error)
	InstallOfficialPlugin(ctx context.Context, orgID, uin uint, itemID string) (*InstallOfficialPluginResponse, error)
}

OfficialPluginMarketplaceService isolates official catalogue reads and installs from organization plugin APIs.

type Org

type Org struct {
	account.Org
}

type OrgList

type OrgList struct {
	account.OrgList
}

type OrgMember

type OrgMember struct {
	account.OrgMember
}

type OrgMemberDepartment added in v0.2.1

type OrgMemberDepartment struct {
	account.OrgMemberDepartment
}

type OrgMemberList

type OrgMemberList struct {
	account.OrgMemberList
}

type PluginInstallationStatusResponse added in v0.3.7

type PluginInstallationStatusResponse struct {
	Kind                        string `json:"kind"`
	Code                        string `json:"code"`
	Installed                   bool   `json:"installed"`
	PluginID                    string `json:"plugin_id,omitempty"`
	CurrentVersion              string `json:"current_version,omitempty"`
	MarketplaceBased            bool   `json:"marketplace_based"`
	MarketplaceItemID           string `json:"marketplace_item_id,omitempty"`
	InstalledMarketplaceVersion string `json:"installed_marketplace_version,omitempty"`
	MarketplaceAvailable        bool   `json:"marketplace_available"`
	LatestMarketplaceVersion    string `json:"latest_marketplace_version,omitempty"`
	UpdateAvailable             bool   `json:"update_available"`
}

PluginInstallationStatusResponse describes installation and official update state.

type PluginRevisionContentView added in v0.3.7

type PluginRevisionContentView struct {
	Schema         string                   `json:"schema"`
	Version        int                      `json:"version"`
	EntrypointPath string                   `json:"entrypoint_path"`
	SkillMD        string                   `json:"skill_md"`
	Files          []PluginRevisionFileView `json:"files"`
}

PluginRevisionContentView contains the current revision content used by detail pages.

type PluginRevisionFileView added in v0.3.7

type PluginRevisionFileView struct {
	Path      string `json:"path"`
	SizeBytes int64  `json:"size_bytes"`
	SHA256    string `json:"sha256"`
}

PluginRevisionFileView exposes one immutable file in the current plugin revision.

type PluginRevisionView added in v0.3.7

type PluginRevisionView struct {
	Revision        int       `json:"revision"`
	Status          string    `json:"status"`
	PublishedByType string    `json:"published_by_type"`
	PublishedByID   uint      `json:"published_by_id"`
	PublishedAt     time.Time `json:"published_at"`
}

PluginRevisionView exposes immutable revision metadata without the storage URI.

type PluginService added in v0.3.7

type PluginService interface {
	ListPlugins(ctx context.Context, orgID, uin uint, req *ListPluginsRequest) (*ListPluginsResponse, error)
	GetPlugin(ctx context.Context, orgID, uin uint, pluginID string, req *GetPluginRequest) (*GetPluginResponse, error)
	GetPluginInstallationStatus(ctx context.Context, orgID, uin uint, req *GetPluginInstallationStatusRequest) (*PluginInstallationStatusResponse, error)
	ListPluginVersions(ctx context.Context, orgID, uin uint, pluginID string) (*ListPluginVersionsResponse, error)
	DeletePlugin(ctx context.Context, orgID, uin uint, pluginID string, req *DeletePluginRequest) (*DeletePluginResponse, error)
	AddSkillPlugin(ctx context.Context, orgID, uin uint, req *AddSkillPluginRequest) error
	AddMCPPlugin(ctx context.Context, orgID, uin uint, req *AddMCPPluginRequest) (*PluginView, error)
	UpdateMCPPlugin(ctx context.Context, orgID, uin uint, pluginID string, req *UpdateMCPPluginRequest) (*PluginView, error)
	TestMCPPlugin(ctx context.Context, req *TestMCPPluginRequest) (*TestMCPPluginResponse, error)
	ListMCPPlatforms(ctx context.Context, orgID, uin uint) (*ListMCPPlatformsResponse, error)
	ConnectMCPPlatform(ctx context.Context, orgID, uin uint, platformCode string, req *ConnectMCPPlatformRequest) (*ConnectMCPPlatformResponse, error)
	StartMCPPlatformOAuth(ctx context.Context, orgID, uin uint, platformCode string) (*StartMCPPlatformOAuthResponse, error)
	GetMCPPlatformOAuthStatus(ctx context.Context, orgID, uin uint, platformCode, attemptID string) (*MCPPlatformOAuthStatusResponse, error)
	CompleteMCPPlatformOAuth(ctx context.Context, platformCode, state, code, providerError string) (*MCPPlatformOAuthStatusResponse, error)
	ResolveSkillDownloadURLs(ctx context.Context, orgID uint, callerKind types.CallerKind, callerID uint, req *ResolveSkillDownloadURLsRequest) (*ResolveSkillDownloadURLsResponse, error)
	ListBuiltinSkills(ctx context.Context) (*ListPluginsResponse, error)
}

PluginService defines the new organization plugin management contract.

type PluginView added in v0.3.7

type PluginView struct {
	PublicID        string `json:"public_id"`
	Code            string `json:"code"`
	Kind            string `json:"kind"`
	Name            string `json:"name"`
	Description     string `json:"description,omitempty"`
	Status          string `json:"status"`
	Origin          string `json:"origin"`
	CurrentRevision int    `json:"current_revision"`
}

PluginView is the safe API representation of an organization plugin.

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"`
	TaskCount   int64                  `json:"task_count"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`
	// AutomationID 关联的自动化主键(自动化为该自动化创建时非空,用于标记时钟图标)
	AutomationID *uint     `json:"automation_id,omitempty"`
	CreatedAt    time.Time `json:"created_at"`
	UpdatedAt    time.Time `json:"updated_at"`
}

Project 项目响应结构

type ProjectActivityActor added in v0.2.1

type ProjectActivityActor struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	AvatarURL string `json:"avatar_url"`
}

ProjectActivityActor 是动态中的用户或 AI 队友展示信息。

type ProjectActivityItem added in v0.2.1

type ProjectActivityItem struct {
	ID         uint                       `json:"id"`
	ProjectID  string                     `json:"project_id"`
	OperatorID string                     `json:"operator_id"`
	Operator   *ProjectActivityActor      `json:"operator,omitempty"`
	ActionType string                     `json:"action_type"`
	Payload    ProjectActivityPayloadView `json:"payload"`
	CreatedAt  time.Time                  `json:"created_at"`
}

ProjectActivityItem 项目动态响应项。

type ProjectActivityList added in v0.2.1

type ProjectActivityList struct {
	Items      []ProjectActivityItem `json:"items"`
	NextCursor string                `json:"next_cursor,omitempty"`
}

ProjectActivityList 项目动态列表响应。

type ProjectActivityPayloadView added in v0.2.1

type ProjectActivityPayloadView struct {
	AddedSkills        []ProjectActivitySkill `json:"added_skills"`
	RemovedSkills      []ProjectActivitySkill `json:"removed_skills"`
	AddedMCPs          []ProjectActivitySkill `json:"added_mcps"`
	RemovedMCPs        []ProjectActivitySkill `json:"removed_mcps"`
	AddedMembers       []ProjectActivityActor `json:"added_members"`
	RemovedMembers     []ProjectActivityActor `json:"removed_members"`
	AddedAITeammates   []ProjectActivityActor `json:"added_ai_teammates"`
	RemovedAITeammates []ProjectActivityActor `json:"removed_ai_teammates"`
}

ProjectActivityPayloadView 是补全展示信息后的动态 payload。

type ProjectActivitySkill added in v0.2.1

type ProjectActivitySkill struct {
	ID   string `json:"id"`
	Name string `json:"name"`
	Icon string `json:"icon"`
}

ProjectActivitySkill 是动态中的技能展示信息。

type ProjectDetail

type ProjectDetail struct {
	Project
	Session *Session            `json:"session,omitempty"`
	Tasks   []ProjectTaskItem   `json:"tasks"`
	Members []ProjectMemberItem `json:"members"`
}

ProjectDetail 项目详情响应,包含关联的会话、任务、产物和成员

type ProjectFileTreeQuery added in v0.3.0

type ProjectFileTreeQuery struct {
	ResourceType string
	TaskPublicID string
	FileExt      string
}

ProjectFileTreeQuery scopes project file tree list requests.

type ProjectFileVersion added in v0.2.3

type ProjectFileVersion struct {
	PublicID            string `json:"public_id"`
	InitialFilePublicID string `json:"initial_file_public_id"`
	RelativePath        string `json:"relative_path"`
	Name                string `json:"name"`
	VersionNo           int    `json:"version_no"`
	VersionLabel        string `json:"version_label"`
	Size                int64  `json:"size,omitempty"`
	MimeType            string `json:"mime_type,omitempty"`
	CreatedAt           int64  `json:"created_at,omitempty"`
	StorageURI          string `json:"storage_uri,omitempty"`
	Sha256              string `json:"sha256,omitempty"`
}

ProjectFileVersion describes one concrete version in a logical project file chain.

type ProjectFileVersionList added in v0.2.3

type ProjectFileVersionList struct {
	InitialFilePublicID string               `json:"initial_file_public_id"`
	CurrentFilePublicID string               `json:"current_file_public_id"`
	Items               []ProjectFileVersion `json:"items"`
}

ProjectFileVersionList contains all versions of one logical project file.

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"`
	PublicID   string    `json:"public_id,omitempty"`
	MemberType string    `json:"member_type"`
	MemberRole string    `json:"member_role"`
	IsDefault  bool      `json:"is_default"`
	JoinedAt   time.Time `json:"joined_at"`
	Name       string    `json:"name,omitempty"`
	AvatarURL  string    `json:"avatar_url"`
}

ProjectMemberItem 项目详情中的成员项,包含用户基本信息

type ProjectMemory

type ProjectMemory struct {
	Entries []string `json:"entries"`
	Total   int      `json:"total"`
}

ProjectMemory 项目记忆响应

type ProjectPlugin added in v0.3.7

type ProjectPlugin struct {
	PublicID        string `json:"public_id"`
	Code            string `json:"code"`
	Kind            string `json:"kind"`
	Name            string `json:"name"`
	Description     string `json:"description,omitempty"`
	Status          string `json:"status"`
	CurrentRevision int    `json:"current_revision"`
}

ProjectPlugin is a project-authorized organization plugin.

type ProjectService

type ProjectService interface {
	CreateProject(ctx context.Context, req *CreateProjectRequest) (*Project, error)

	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

	LeaveProject(ctx context.Context, publicID string) error

	ListProjects(ctx context.Context, req *ListProjectsRequest) (*ProjectList, error)

	ListProjectActivities(ctx context.Context, req *ListProjectActivitiesRequest) (*ProjectActivityList, error)

	GetWorkbenchRecentContext(ctx context.Context) (*WorkbenchRecentContext, error)

	SaveWorkbenchRecentContext(ctx context.Context, req *SaveWorkbenchRecentContextRequest) (*WorkbenchRecentContext, error)

	DetailProject(ctx context.Context, publicID string) (*ProjectDetail, error)

	ListProjectPlugins(ctx context.Context, req *ListProjectPluginsRequest) ([]ProjectPlugin, error)

	AddProjectPlugin(ctx context.Context, req *UpdateProjectPluginRequest) error

	RemoveProjectPlugin(ctx context.Context, req *UpdateProjectPluginRequest) error

	GetProjectMemory(ctx context.Context, publicID string) (*ProjectMemory, error)

	GetProjectFileTree(ctx context.Context, publicID string, query ProjectFileTreeQuery) ([]*FileTreeNode, error)

	DownloadProjectFile(ctx context.Context, publicID string, filePath string) (io.ReadCloser, string, int64, error)

	GetProjectFileVersions(ctx context.Context, publicID string, filePublicID string) (*ProjectFileVersionList, error)

	DownloadProjectFileByPublicID(ctx context.Context, publicID string, filePublicID string) (io.ReadCloser, string, int64, error)

	RestoreProjectFileVersion(ctx context.Context, publicID string, filePublicID string) (*FileTreeNode, error)
}

ProjectService 定义项目服务接口

type ProjectTaskItem

type ProjectTaskItem struct {
	Task
	Session *Session `json:"session,omitempty"`
}

ProjectTaskItem 项目详情中的任务项,包含关联的会话信息

type RefreshTokenRequest

type RefreshTokenRequest struct {
	account.RefreshTokenInput
}

type RegisterByEmailRequest

type RegisterByEmailRequest struct {
	account.RegisterByEmailInput
}

type ResolveAuthorizationRequest

type ResolveAuthorizationRequest struct {
	UserID    string `json:"user_id"`
	Provider  string `json:"provider"`
	AccountID string `json:"account_id,omitempty"`
}

ResolveAuthorizationRequest 表示运行时授权解析请求

type ResolveSkillDownloadURLsRequest added in v0.3.7

type ResolveSkillDownloadURLsRequest struct {
	SkillCodes      []string            `json:"skill_codes"`
	ConnectorSkills []ConnectorSkillRef `json:"connector_skills,omitempty"`
}

ResolveSkillDownloadURLsRequest selects the current downloadable artifacts by Skill code. Codes that are unavailable to the caller are omitted from the response.

type ResolveSkillDownloadURLsResponse added in v0.3.7

type ResolveSkillDownloadURLsResponse struct {
	Skills []SkillDownloadURL `json:"skills"`
}

ResolveSkillDownloadURLsResponse contains only the Skill artifacts that could be resolved.

type ResolvedAuthorization

type ResolvedAuthorization struct {
	Account    *AuthorizedAccount `json:"account"`
	Credential *AccountCredential `json:"credential"`
}

ResolvedAuthorization 表示解析完成的授权结果

type RunAutomationNowRequest added in v0.3.9

type RunAutomationNowRequest struct {
	PublicID string `json:"public_id" binding:"required"`
}

RunAutomationNowRequest 立即运行请求

type SaveWorkbenchRecentContextRequest added in v0.1.21

type SaveWorkbenchRecentContextRequest struct {
	ProjectID string  `json:"project_id" binding:"required"`
	TaskID    *string `json:"task_id,omitempty"`
}

SaveWorkbenchRecentContextRequest 保存首页工作台最近使用上下文的请求。

type SendPhoneLoginCodeRequest added in v0.1.12

type SendPhoneLoginCodeRequest struct {
	account.SendPhoneLoginCodeInput
}

type SendPhoneLoginCodeResponse added in v0.1.12

type SendPhoneLoginCodeResponse struct {
	account.SendPhoneLoginCodeOutput
}

type Session

type Session struct {
	SessionID        string                `json:"session_id"`
	Type             string                `json:"type"`
	Uin              uint                  `json:"uin"`
	OrgID            uint                  `json:"org_id"`
	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"`
	AssistantID string      `json:"assistant_id,omitempty"`
	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 SessionEventSink added in v0.1.22

type SessionEventSink interface {
	EmitSessionEvent(ctx context.Context, event *SessionEvent) error
}

SessionEventSink receives projected Server session events.

type SessionEventSinkFunc added in v0.1.22

type SessionEventSinkFunc func(ctx context.Context, event *SessionEvent) error

SessionEventSinkFunc adapts a function to SessionEventSink.

func (SessionEventSinkFunc) EmitSessionEvent added in v0.1.22

func (f SessionEventSinkFunc) EmitSessionEvent(
	ctx context.Context,
	event *SessionEvent,
) error

EmitSessionEvent calls the adapted function.

type SessionEventsRequest added in v0.3.7

type SessionEventsRequest struct {
	SessionID   string `json:"session_id" binding:"required"`
	Replay      bool   `json:"replay,omitempty"`
	AssistantID string `json:"assistant_id,omitempty"`
}

SessionEventsRequest is the request to subscribe to a session event stream.

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"`
	ErrorMsg          string                    `json:"error_msg,omitempty"`
	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"`
	SenderUin         *uint                     `json:"sender_uin,omitempty"`
	SenderName        string                    `json:"sender_name,omitempty"`
	RunID             string                    `json:"run_id,omitempty"`
	AssistantID       string                    `json:"assistant_id,omitempty"`
	DispatchState     string                    `json:"dispatch_state,omitempty"`
	QueueDeadlineAt   *time.Time                `json:"queue_deadline_at,omitempty"`
	LastDispatchError string                    `json:"last_dispatch_error,omitempty"`
}

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"`
	StateStartSeq     uint64   `json:"state_start_seq,omitempty"`
	RunID             string   `json:"run_id,omitempty"`
	AssistantID       string   `json:"assistant_id,omitempty"`
}

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)

	// 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
	// When assistantID is non-empty, only RunEvents whose Route.WorkerID matches the
	// requested AI teammate are delivered; assistantID == "" disables filtering.
	StreamSessionEvents(ctx context.Context, sessionID string, replay bool, assistantID string, sink SessionEventSink) error

	// StreamGlobalEvents subscribes the caller to project-level global notify events
	// (message.created, etc.) for all projects the caller is a member of.
	// Events are delivered via ch; the call blocks until ctx is cancelled.
	StreamGlobalEvents(ctx context.Context, orgID, userID uint, replaySinceSeq uint64, ch chan<- *messaging.GlobalEventPayload) 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

	// SubmitApproval forwards an approval decision to the worker via NATS.
	SubmitApproval(ctx context.Context, req *SubmitApprovalRequest) error

	// SubmitQuestionAnswer forwards a question answer to the worker via NATS.
	SubmitQuestionAnswer(ctx context.Context, req *SubmitQuestionAnswerRequest) error

	// CancelSessionRun cancels an active agent run for the given session.
	CancelSessionRun(ctx context.Context, sessionID string, req *CancelSessionRunRequest) (*CancelSessionRunResponse, error)

	// SetSessionStreamStartSeq records the NATS stream sequence for the first
	// run.stream event of a session, used by the stream projector for SSE replay.
	SetSessionStreamStartSeq(ctx context.Context, sessionID string, streamSeq uint64) error

	// CreateInitialMessage atomically creates Project + Task + Session and optionally posts
	// the first message, then dispatches to the allocated AgentWorker.
	CreateInitialMessage(ctx context.Context, req *NewMessageRequest) (*NewMessageResponse, error)
}

SessionService defines the session service contract.

type SkillDownloadURL added in v0.3.7

type SkillDownloadURL struct {
	Code        string `json:"code"`
	Revision    int    `json:"revision"`
	SHA256      string `json:"sha256"`
	DownloadURL string `json:"download_url"`
}

SkillDownloadURL is the worker-safe projection of one current Skill artifact.

type StartAuthorizationRequest

type StartAuthorizationRequest struct {
	UserID      string `json:"user_id"`
	Provider    string `json:"provider"`
	RedirectURI string `json:"redirect_uri,omitempty"`
}

StartAuthorizationRequest 表示发起授权请求

type StartMCPPlatformOAuthResponse added in v0.3.7

type StartMCPPlatformOAuthResponse struct {
	AttemptID        string    `json:"attempt_id"`
	AuthorizationURL string    `json:"authorization_url"`
	ExpiresAt        time.Time `json:"expires_at"`
}

StartMCPPlatformOAuthResponse starts one persisted OAuth authorization attempt.

type SubmitApprovalRequest

type SubmitApprovalRequest struct {
	OrgID       uint   `json:"-"`
	SessionID   string `json:"session_id"`
	RequestID   string `json:"request_id"`
	Action      string `json:"action"`
	Reason      string `json:"reason,omitempty"`
	AssistantID string `json:"assistant_id" binding:"required"`
}

Session is the API response shape for a conversation. SubmitApprovalRequest forwards an approval decision to the worker via NATS.

type SubmitQuestionAnswerRequest added in v0.1.15

type SubmitQuestionAnswerRequest struct {
	OrgID       uint       `json:"-"`
	SessionID   string     `json:"session_id"`
	RequestID   string     `json:"request_id"`
	Answers     [][]string `json:"answers"`
	AssistantID string     `json:"assistant_id" binding:"required"`
}

SubmitQuestionAnswerRequest forwards a question answer to the worker via NATS.

type SwitchOrganizationRequest added in v0.1.23

type SwitchOrganizationRequest struct {
	account.SwitchOrganizationInput
}

type SwitchOrganizationResponse added in v0.3.3

type SwitchOrganizationResponse struct {
	JwtToken string `json:"jwt_token"`
}

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"`
	ProjectName string                 `json:"project_name"`
	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"`
	Session     *Session               `json:"session,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 TestMCPPluginRequest added in v0.3.7

type TestMCPPluginRequest struct {
	Transport   string            `json:"transport,omitempty"`
	URL         string            `json:"url"`
	BearerToken string            `json:"bearer_token,omitempty"`
	Headers     map[string]string `json:"headers,omitempty"`
}

TestMCPPluginRequest tests a draft remote HTTP MCP configuration without storing it.

type TestMCPPluginResponse added in v0.3.7

type TestMCPPluginResponse struct {
	OK        bool `json:"ok"`
	ToolCount int  `json:"tool_count"`
}

TestMCPPluginResponse contains the result of one stateless MCP handshake.

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 UpdateAutomationRequest added in v0.3.9

type UpdateAutomationRequest struct {
	Name        string  `json:"name,omitempty"`
	Instruction *string `json:"instruction,omitempty"`
	Enabled     *bool   `json:"enabled,omitempty"`
	// 修改周期时必须提交完整 schedule
	ScheduleMode *string                             `json:"schedule_mode,omitempty"`
	Schedule     *types.AutomationScheduleFormConfig `json:"schedule,omitempty"`
	Timezone     *string                             `json:"timezone,omitempty"`
}

UpdateAutomationRequest 更新自动化请求(部分更新)

type UpdateCurrentUserRequest added in v0.3.7

type UpdateCurrentUserRequest struct {
	account.UpdateCurrentUserInput
}

type UpdateDepartmentRequest added in v0.1.23

type UpdateDepartmentRequest struct {
	account.UpdateDepartmentInput
}

type UpdateDigitalAssistantRequest

type UpdateDigitalAssistantRequest struct {
	Name         string    `json:"name"`
	RoleName     string    `json:"role_name"`
	Description  string    `json:"description"`
	Avatar       string    `json:"avatar"`
	SystemPrompt *string   `json:"system_prompt,omitempty"`
	Expertise    *[]string `json:"expertise,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 UpdateMCPPluginRequest added in v0.3.7

type UpdateMCPPluginRequest struct {
	MCPPluginConfig
}

UpdateMCPPluginRequest replaces one organization MCP configuration.

type UpdateMemberDepartmentRequest added in v0.1.23

type UpdateMemberDepartmentRequest struct {
	Uin          *uint `json:"uin,omitempty"`
	DepartmentID *uint `json:"department_id,omitempty"`
	IsPrimary    *bool `json:"is_primary,omitempty"`
}

type UpdateOrgMemberRequest

type UpdateOrgMemberRequest struct {
	account.UpdateOrgMemberInput
}

type UpdateOrgRequest

type UpdateOrgRequest struct {
	account.UpdateOrgInput
}

type UpdateProjectPluginRequest added in v0.3.7

type UpdateProjectPluginRequest struct {
	PublicID string `json:"public_id" binding:"required"`
	PluginID string `json:"plugin_id" binding:"required"`
}

UpdateProjectPluginRequest binds or unbinds one organization plugin.

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"`
	Members     []MemberInput           `json:"members,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 {
	account.UpdateUserInput
}

type UploadFileRequest added in v0.1.2

type UploadFileRequest struct {
	OrgID        uint
	OwnerID      uint
	File         io.Reader
	Filename     string
	FileSize     int64
	MimeType     string
	Purpose      string
	SourceID     string
	RelativePath string
}

type UploadFileResult added in v0.1.2

type UploadFileResult struct {
	PublicID     string `json:"public_id"`
	Filename     string `json:"filename"`
	OriginalName string `json:"original_name"`
	MimeType     string `json:"mime_type"`
	FileSize     int64  `json:"file_size"`
	Sha256       string `json:"sha256"`
	StorageURI   string `json:"storage_uri"`
}

type UserInfo

type UserInfo struct {
	account.UserInfo
}

type UserList

type UserList struct {
	account.UserList
}

type WorkbenchRecentContext added in v0.1.21

type WorkbenchRecentContext struct {
	ProjectID   string    `json:"project_id"`
	ProjectName string    `json:"project_name"`
	TaskID      *string   `json:"task_id,omitempty"`
	TaskTitle   *string   `json:"task_title,omitempty"`
	UsedAt      time.Time `json:"used_at"`
}

WorkbenchRecentContext 首页工作台最近明确使用的项目/任务上下文。

type WorkerDeploymentStatus added in v0.1.22

type WorkerDeploymentStatus struct {
	PublicID  string `json:"public_id"`
	Status    string `json:"status"`
	LastError string `json:"last_error,omitempty"`
}

WorkerDeploymentStatus describes the runtime deployment state of an AI teammate.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL