easyai-plugin-dev-kit/types/workflow.ts
2025-08-29 18:02:27 +08:00

275 lines
7.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export enum WorkFlowTypeEnum {
system = 'system', // 系统级别,内置工作流
common = 'common', // 公共级别,用户共享工作流
personal = 'personal' // 个人级别,创作者工作流
}
/**
* @property _id 工作流id
* @property title 显示名称
* @property name 标准名称,需要保持唯一
* @property params 参数
* @property workflow 工作流
* @property cover 封面图
* @property preview 预览图
* @property is_public 是否公开
* @property description 工作流描述
* @property power 算力消耗
* @property nodeCount 节点数
* @property runTime 运行时间,秒
* @property sortNumber 排序
* @property tags 应用标签
* @property useGuide 使用指导图,显示在工作流的使用页面
* @property includeServers 指定运行的服务器名
* @property excludeServers 排除运行的服务器名
* @property user 用户
* @property type 工作流类型
* @property mainProducts 代表作
* @property comment 评论
* @property organizations 所属组织
* @property salePrice 销售价格
* @property updated_at 更新时间
* @property application_id 所属应用
* @property editor_model 0表示创造新内容 1表示编辑已有内容
* @property prem_level_min 默认为空,表示无需权限层级,有值时表示需要相应的权限层级才可以访问
* @property category 分类
* @property appType 应用类型
* @property custom_workflow 自定义工作流id
* @property customAccessUrl 自定义访问接口
* @property created_at 创建时间
* @property isLiked 是否喜欢
* @property likeCount 喜欢数
* @property isFavorited 是否喜欢
* @property favoriteCount 喜欢数
* @property useCount 使用次数
*/
export interface WorkFlow {
_id?: string
title?: string // 显示名称
name: string // 标准名称,需要保持唯一
params: any // 参数
workflow: string | object // 工作流
cover?: string // 封面图
preview?: string // 预览图
is_public?: boolean // 是否公开
description?: string // 工作流描述
description_mcp?: string // 描述用于mcp
power?: number // 算力消耗
nodeCount?: number // 节点数
runTime?: number // 运行时间,秒
timeout_setting: TimeOutConfig
sortNumber?: number // 排序
tags?: string[] // 应用标签
useGuide?: string // 使用指导图,显示在工作流的使用页面
includeServers?: string[] // 指定运行的服务器名
excludeServers?: string[] // 排除运行的服务器名
user?: User
type?: WorkFlowTypeEnum // 工作流类型
mainProducts?: string[] // 代表作
comment?: IComment[] // 评论
organizations?: string[] // 所属组织
salePrice?: number // 销售价格
updated_at?: number // 更新时间
application_id?: string[] // 所属应用
editor_model?: 0 | 1 // editor_model 0表示创造新内容 1表示编辑已有内容
prem_level_min?: number // 默认为空,表示无需权限层级,有值时表示需要相应的权限层级才可以访问
category?: WorkFlowCategoriesEnum[] // 分类
appType: AppTypeEnum
custom_workflow?: string // 自定义工作流id
template_example_data?: Record<string, any>
customAccessUrl?: string // 自定义访问接口
created_at?: number // 创建时间
isLiked?: boolean // 是否喜欢
likeCount?: number // 喜欢数
isFavorited?: boolean // 是否收藏
favoriteCount?: number // 收藏数
useCount?: number // 使用次数
integrationPlatforms?: { _id: string, code: string, isAuthed: boolean }[] // 集成平台
}
export type WorkFlowApp = Pick<
WorkFlow,
| 'cover'
| 'user'
| 'title'
| 'description'
| '_id'
| 'tags'
| 'name'
| 'type'
| 'category'
| 'customAccessUrl'
| 'params'
| 'appType'
| 'sortNumber'
| 'created_at'
| 'isLiked'
| 'likeCount'
| 'isFavorited'
| 'favoriteCount'
| 'useCount'
| 'power'
>
/** 工作流超时设定 */
export interface TimeOutConfig {
timeout: number
timeoutActions?: TimeOutActionEnum[]
}
export const TimeOutActionConst = {
CANCEL: 'cancel',
CONTINUE: 'continue',
RETRY: 'RETRY'
} as const
export type TimeOutActionEnum =
(typeof TimeOutActionConst)[keyof typeof TimeOutActionConst]
/**
* 用户信息
* @property _id 用户id
* @property nickname 用户名
* @property password 密码
* @property username 用户名
* @property wx_openid 微信openid
* @property wx_unionid 微信unionid
* @property avatar_url 头像url
* @property email 邮箱
* @property inviter_uid 邀请人id
* @property last_login_date 最后一次登录时间
* @property register_date 注册时间
* @property last_login_ip 最后一次登录ip
* @property mobile 手机号
* @property my_invite_code 我的邀请码
* @property role 用户角色
* @property token 登录token
* @property socket_id 用户socket id
* @property status 用户状态
* @property balance 用户余额
*/
export interface User {
_id: string
nickname?: string
password?: string
username: string
wx_openid?: string
wx_unionid?: string
avatar_url?: string
email?: string
inviter_uid?: string | User
last_login_date?: number
register_date?: number
last_login_ip?: string
mobile?: string
my_invite_code?: string[]
role?: RoleEnum[]
token?: string
refresh_token?: string
socket_id?: string
status?: 0 | 1 | 2 // 0:正常1:禁用2:删除
balance?: number // 余额
points?: number // 积分
organizations?: Array<Pick<IOrganization, '_id' | 'name' | 'admin_ids'>> // 组织id列表
totalPower?: number // 总积分
}
export interface IComment {
_id?: string
rootId?: string
replyTo?: User | string // 回复的评论ID
content: string // 评论内容
author?: User // 评论者
targetType: CommentTypeEnum // 评论对象的类型 (应用|作品|AI模型|项目)
targetId?: string // 评论对象的ID
deleteFlag?: boolean // 删除标记
created_at?: number // 创建时间
likeCount?: number // 点赞数
authorFlag?: boolean // 作者标记
replies?: IComment[] // 回复评论
}
/**
* 工作流分类
* @description 工作流分类,用于前端展示
* @enum Marketing 营销
* @enum Design 设计
* @enum Development 开发
* @enum CustomerService 客服
* @enum Product 产品
* @enum Operations 运营
*/
export enum WorkFlowCategoriesEnum {
Marketing = 'Marketing',
Design = 'Design',
Development = 'Development',
CustomerService = 'CustomerService',
Product = 'Product',
Operations = 'Operations'
}
/**
* 工作流的类型
* @enum workflow: ComfyUI工作流应用
* @enum custom: 自定义应用,访问链接跳转
* @enum api: 自定义工作流应用EasyAI 应用
*/
export enum AppTypeEnum {
workflow = 'workflow',
custom = 'custom',
customWorkflow = 'customWorkflow'
}
export enum CommentTypeEnum {
app = 'app', // 应用(工作流)
work = 'work', // 作品
aiModel = 'aiModel', // AI模型
project = 'project' // 项目
}
/**
* 用户权限
* @property PUBLIC 游客
* @property USER 普通用户
* @property CREATOR 创作者
* @property OPERATOR 运营人员
* @property MANAGER 普通管理员
* @property ADMIN 超级管理员
*/
export enum RoleEnum {
// 游客
PUBLIC = 'public',
// 普通用户
USER = 'user',
// 创作者
CREATOR = 'creator',
// 运营人员
OPERATOR = 'operator',
// 普通管理员
MANAGER = 'manager',
// 超级管理员
ADMIN = 'admin'
}
export interface IOrganization {
_id: string
name: string
description?: string
parent?: string
level?: number // 权限等级
workflows?: string[] | WorkFlow[]
users?: string[] | User[]
created_at?: number
children?: IOrganization[]
admin_ids: Array<string>
balance: number
concurrency_limit: number
is_default_register_org: boolean // 是否是默认注册组织
enableExclusive: boolean // 启用独享部署
}