feat(image): 新建 knowai-core:1.0.0 镜像并完成推送
Some checks reported errors
continuous-integration/drone/push Build was killed

- 搭建 api、auth、utils 等逻辑模块
- 通过 tsc、eslint、vitest 测试验证

BREAKING CHANGE: 新镜像分支
This commit is contained in:
tobegold574
2025-11-10 20:20:25 +08:00
commit 6a81b7bb13
73 changed files with 10511 additions and 0 deletions

96
types/chat/api.d.ts vendored Normal file
View File

@@ -0,0 +1,96 @@
import type { ChatSession, ChatMessage } from './base';
import type { ChatMessageType } from './enum';
// 创建聊天会话请求接口
export interface CreateChatSessionRequest {
participantId: string;
}
// 更新聊天会话请求接口
export interface UpdateChatSessionRequest {
sessionId: string;
}
// 发送消息请求接口
export interface SendMessageRequest {
sessionId: string;
content: string;
type: ChatMessageType;
metadata?: Record<string, unknown>;
}
// 获取聊天会话列表请求接口
export interface GetChatSessionsRequest {
page?: number;
limit?: number;
}
// 获取聊天会话列表响应接口
export interface GetChatSessionsResponse {
sessions: ChatSession[];
total: number;
page: number;
limit: number;
}
// 获取聊天消息请求接口
export interface GetChatMessagesRequest {
sessionId: string;
page?: number;
limit?: number;
before?: string; // 消息ID获取该消息之前的消息
after?: string; // 消息ID获取该消息之后的消息
}
// 获取聊天消息响应接口
export interface GetChatMessagesResponse {
messages: ChatMessage[];
total: number;
page: number;
limit: number;
hasMore: boolean;
}
// 标记消息已读请求接口
export interface MarkMessagesAsReadRequest {
sessionId: string;
messageIds: string[];
}
// 标记消息已读响应接口
export interface MarkMessagesAsReadResponse {
success: boolean;
markedMessageIds: string[]; // 成功标记的消息ID
failedMessageIds?: string[]; // 失败的消息ID
}
// 搜索聊天消息请求接口
export interface SearchChatMessagesRequest {
sessionId?: string;
query: string;
page?: number;
limit?: number;
}
// 搜索聊天消息响应接口
export interface SearchChatMessagesResponse {
messages: ChatMessage[];
total: number;
page: number;
limit: number;
}
// 搜索聊天会话请求接口
export interface SearchChatSessionsRequest {
query: string;
page?: number;
limit?: number;
}
// 搜索聊天会话响应接口
export interface SearchChatSessionsResponse {
sessions: ChatSession[];
total: number;
page: number;
limit: number;
}

45
types/chat/base.d.ts vendored Normal file
View File

@@ -0,0 +1,45 @@
import type { User } from '../index';
import type { ChatMessageType, ChatMessageStatus } from './enum';
// 聊天消息接口
export interface ChatMessage {
id: string;
sessionId: string;
sender: User;
receiver: User;
content: string;
type: ChatMessageType;
status: ChatMessageStatus;
createdAt: Date;
// 非文本消息类型的元数据
metadata?: {
fileName?: string;
fileSize?: number;
duration?: number;
thumbnail?: string;
[key: string]: unknown;
};
}
// 聊天会话接口
export interface ChatSession {
id: string;
participant1Id: string;
participant2Id: string;
participant1: User;
participant2: User;
lastMessage?: {
id: string;
content: string;
senderId: string;
createdAt: Date;
};
unreadCount1: number; // 参与者1的未读消息数
unreadCount2: number; // 参与者2的未读消息数
createdAt: Date;
updatedAt: Date;
// 会话元数据(特殊标记、背景设置、自定义属性等等)
metadata?: {
[key: string]: unknown;
};
}

19
types/chat/enum.d.ts vendored Normal file
View File

@@ -0,0 +1,19 @@
// 聊天消息类型枚举
export enum ChatMessageType {
TEXT = 'text',
IMAGE = 'image',
FILE = 'file',
VOICE = 'voice',
VIDEO = 'video',
SYSTEM = 'system'
}
// 聊天消息状态枚举
export enum ChatMessageStatus {
SENDING = 'sending',
SENT = 'sent',
DELIVERED = 'delivered',
READ = 'read',
FAILED = 'failed'
}

3
types/chat/index.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
export * from './enum';
export * from './base';
export * from './api';