@ibiz-template-plugin/ai-chat 0.0.112 → 0.0.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +7561 -5813
- package/dist/index.legacy.js +1 -1
- package/dist/style.css +1 -1
- package/dist/types/components/chat-container/chat-container.d.ts +1 -1
- package/dist/types/components/chat-group-topics/chat-group-topics.d.ts +13 -0
- package/dist/types/components/chat-messages/chat-messages.d.ts +2 -1
- package/dist/types/components/chat-messages/use-virtual-list.d.ts +36 -0
- package/dist/types/components/chat-project/chat-project.d.ts +12 -0
- package/dist/types/components/chat-scrollbar/chat-scrollbar.d.ts +102 -0
- package/dist/types/components/common/lazy-tree/lazy-tree.d.ts +92 -0
- package/dist/types/constants/index.d.ts +16 -0
- package/dist/types/controller/ai-chat/ai-chat.controller.d.ts +25 -1
- package/dist/types/controller/ai-topic/ai-topic.controller.d.ts +208 -24
- package/dist/types/controller/chat/chat-base.controller.d.ts +10 -0
- package/dist/types/entity/ai-agent/ai-agent.d.ts +1 -0
- package/dist/types/entity/chart-topic/chart-topic.d.ts +2 -0
- package/dist/types/icons/arrow-down.d.ts +3 -1
- package/dist/types/icons/index.d.ts +2 -0
- package/dist/types/icons/plus-svg.d.ts +1 -0
- package/dist/types/icons/untop-svg.d.ts +1 -0
- package/dist/types/interface/i-ai-agent/i-ai-agent.d.ts +6 -0
- package/dist/types/interface/i-chat-options/i-chat-options.d.ts +20 -1
- package/dist/types/interface/i-project/i-project.d.ts +14 -0
- package/dist/types/interface/i-remote-resource/i-remote-resource.d.ts +6 -0
- package/dist/types/interface/i-resource-options/i-resource-options.d.ts +21 -0
- package/dist/types/interface/i-topic-options/i-topic-options.d.ts +118 -11
- package/dist/types/interface/index.d.ts +3 -1
- package/dist/types/locale/en/index.d.ts +20 -1
- package/dist/types/locale/zh-CN/index.d.ts +20 -1
- package/package.json +1 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { RefObject } from 'preact';
|
|
2
|
+
import { ReadonlySignal, Signal } from '@preact/signals';
|
|
3
|
+
|
|
4
|
+
export interface ChatScrollbarProps {
|
|
5
|
+
/**
|
|
6
|
+
* 滚动容器 ref(与 useVirtualList 的 containerRef 同源)
|
|
7
|
+
*
|
|
8
|
+
* @type {RefObject<HTMLDivElement | null>}
|
|
9
|
+
*/
|
|
10
|
+
containerRef: RefObject<HTMLDivElement | null>;
|
|
11
|
+
/**
|
|
12
|
+
* 容器 scrollTop 信号
|
|
13
|
+
*
|
|
14
|
+
* @type {Signal<number>}
|
|
15
|
+
*/
|
|
16
|
+
scrollTop: Signal<number>;
|
|
17
|
+
/**
|
|
18
|
+
* 容器可视高度信号
|
|
19
|
+
*
|
|
20
|
+
* @type {Signal<number>}
|
|
21
|
+
*/
|
|
22
|
+
clientHeight: Signal<number>;
|
|
23
|
+
/**
|
|
24
|
+
* 内容总高度信号(依赖实测高度回填)
|
|
25
|
+
*
|
|
26
|
+
* @type {ReadonlySignal<number>}
|
|
27
|
+
*/
|
|
28
|
+
totalSize: ReadonlySignal<number>;
|
|
29
|
+
/**
|
|
30
|
+
* 程序化写滚动位置(同步信号 + 写容器 scrollTop)
|
|
31
|
+
*
|
|
32
|
+
* @type {(top: number) => void}
|
|
33
|
+
*/
|
|
34
|
+
setScrollTop: (top: number) => void;
|
|
35
|
+
/**
|
|
36
|
+
* 拖动到顶部附近的通知(触发加载更早历史)
|
|
37
|
+
*
|
|
38
|
+
* 拖到顶部且前插补偿被跳过时,scrollTop 值可能不变导致浏览器不派发 scroll 事件,
|
|
39
|
+
* 因此不能只依赖 scroll 事件,需在此处直接通知
|
|
40
|
+
*
|
|
41
|
+
* @type {() => void}
|
|
42
|
+
*/
|
|
43
|
+
onNearTop?: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* 拖动状态回调(父组件转发给 useVirtualList 的 setIsDragging)
|
|
46
|
+
*
|
|
47
|
+
* @type {(dragging: boolean) => void}
|
|
48
|
+
*/
|
|
49
|
+
onDragStateChange?: (dragging: boolean) => void;
|
|
50
|
+
/**
|
|
51
|
+
* thumb 最小高度,避免内容过长时不可抓取
|
|
52
|
+
*
|
|
53
|
+
* @type {number}
|
|
54
|
+
*/
|
|
55
|
+
minThumbSize?: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 自定义虚拟滚动条
|
|
59
|
+
*
|
|
60
|
+
* ## 为什么不用原生滚动条
|
|
61
|
+
* 动态高度虚拟列表中未测量的项用预估高度占位,快速拖动原生滚动条时新项不断被实测,
|
|
62
|
+
* totalSize(scrollHeight)持续变化,原生 thumb 按比例重定位导致滚动条乱跳。
|
|
63
|
+
*
|
|
64
|
+
* ## 核心策略
|
|
65
|
+
* 隐藏原生滚动条绘制,保留原生 scrollTop 驱动内容(wheel/键盘/触摸不变),自绘 thumb:
|
|
66
|
+
* - 拖动期间 thumb 定位用指针比例(dragRatio),不依赖异步的 scroll 事件回读,无滞后抖动;
|
|
67
|
+
* - 拖动期间 totalSize 变化(测量回填/历史前插)时,按指针比例重映射 scrollTop,
|
|
68
|
+
* thumb 始终钉在指针下方,内容坐标系在其下方重排。
|
|
69
|
+
*
|
|
70
|
+
* ## 与 useVirtualList 的数据流交联
|
|
71
|
+
* 本组件不持有滚动状态,全部通过 props 注入 useVirtualList 暴露的信号与回调,
|
|
72
|
+
* 二者是「显示层 ↔ 驱动层」的关系:
|
|
73
|
+
*
|
|
74
|
+
* ```
|
|
75
|
+
* useVirtualList ChatScrollbar
|
|
76
|
+
* ──────────── ──────────────
|
|
77
|
+
* totalSizeSignal ─────────────────────► totalSize (thumb 高度/比例)
|
|
78
|
+
* clientHeightSignal ──────────────────► clientHeight (thumb 高度/比例)
|
|
79
|
+
* scrollTopSignal ─────────────────────► scrollTop (非拖动期 thumb 位置)
|
|
80
|
+
* setScrollTop ◄──────────────────────── 拖动/翻页 (程序化写滚动位置)
|
|
81
|
+
* onDragStateChange ──► isDragging ──► 前插补偿跳过
|
|
82
|
+
* onNearTop ──────────────────────────► 加载更早历史
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* 正向(useVirtualList → 本组件):
|
|
86
|
+
* - 滚动/测量回填/历史前插 → totalSize、scrollTop 信号变化 → 本组件重渲染更新 thumb;
|
|
87
|
+
* - totalSizeSignal 是懒求值信号(只依赖测量版本号),滚动过程中零额外计算。
|
|
88
|
+
*
|
|
89
|
+
* 反向(本组件 → useVirtualList):
|
|
90
|
+
* - 拖动/点击翻页 → setScrollTop:同步写 scrollTop 信号 + 写容器 DOM,
|
|
91
|
+
* 信号先行避免下一帧用旧值闪跳;虚拟列表据此重算可视区;
|
|
92
|
+
* - onDragStateChange → 虚拟列表的 isDragging 信号置 true:
|
|
93
|
+
* 拖动期间「头部前插补偿」被跳过(use-virtual-list.ts:373),
|
|
94
|
+
* 前插导致的 totalSize 变化改由本组件的重锚定 effect 按指针比例重映射 scrollTop 接管,
|
|
95
|
+
* 两端不会同时争抢滚动位置;
|
|
96
|
+
* - onNearTop:拖到顶部时直接通知父级加载历史——前插补偿被跳过后 scrollTop 可能不变,
|
|
97
|
+
* 浏览器不派发 scroll 事件,不能只依赖滚动事件触发加载。
|
|
98
|
+
*
|
|
99
|
+
* @author zpc
|
|
100
|
+
* @date 2026-10-12
|
|
101
|
+
*/
|
|
102
|
+
export declare const ChatScrollbar: (props: ChatScrollbarProps) => import("preact").JSX.Element | null;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
|
|
2
|
+
export interface LazyTreeNode {
|
|
3
|
+
/**
|
|
4
|
+
* 节点唯一标识
|
|
5
|
+
*/
|
|
6
|
+
id: string;
|
|
7
|
+
/**
|
|
8
|
+
* 节点显示文本
|
|
9
|
+
*/
|
|
10
|
+
label: string;
|
|
11
|
+
/**
|
|
12
|
+
* 是否叶子节点
|
|
13
|
+
*/
|
|
14
|
+
isLeaf: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* 子节点
|
|
17
|
+
*/
|
|
18
|
+
children?: LazyTreeNode[];
|
|
19
|
+
/**
|
|
20
|
+
* 是否已加载子节点
|
|
21
|
+
*/
|
|
22
|
+
loaded?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* 是否展开
|
|
25
|
+
*/
|
|
26
|
+
expanded?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* 是否正在加载
|
|
29
|
+
*/
|
|
30
|
+
loading?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 父节点标识
|
|
33
|
+
*/
|
|
34
|
+
parentId?: string | null;
|
|
35
|
+
/**
|
|
36
|
+
* 节点深度
|
|
37
|
+
*/
|
|
38
|
+
depth?: number;
|
|
39
|
+
/**
|
|
40
|
+
* 自定义图标
|
|
41
|
+
*/
|
|
42
|
+
icon?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface LazyTreeProps {
|
|
45
|
+
/**
|
|
46
|
+
* 根节点数据
|
|
47
|
+
*/
|
|
48
|
+
nodes: LazyTreeNode[];
|
|
49
|
+
/**
|
|
50
|
+
* 异步加载子节点方法
|
|
51
|
+
* 返回子节点数组
|
|
52
|
+
*/
|
|
53
|
+
lazyLoad?: (node: LazyTreeNode) => Promise<LazyTreeNode[]>;
|
|
54
|
+
/**
|
|
55
|
+
* 节点点击回调
|
|
56
|
+
*/
|
|
57
|
+
onNodeClick?: (node: LazyTreeNode, event: MouseEvent) => void;
|
|
58
|
+
/**
|
|
59
|
+
* 节点选中回调
|
|
60
|
+
*/
|
|
61
|
+
onNodeCheck?: (node: LazyTreeNode, checked: boolean) => void;
|
|
62
|
+
/**
|
|
63
|
+
* 节点展开回调
|
|
64
|
+
*/
|
|
65
|
+
onNodeExpand?: (node: LazyTreeNode, expanded: boolean) => void;
|
|
66
|
+
/**
|
|
67
|
+
* 是否显示搜索框
|
|
68
|
+
*/
|
|
69
|
+
showSearch?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* 默认选中keys
|
|
72
|
+
*/
|
|
73
|
+
defaultCheckedKeys?: string[];
|
|
74
|
+
/**
|
|
75
|
+
* 高亮选中
|
|
76
|
+
*/
|
|
77
|
+
highlight?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* 是否在点击节点的时候展开或者收缩节点
|
|
80
|
+
*/
|
|
81
|
+
expandOnClickNode?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* 标识分隔符
|
|
84
|
+
*/
|
|
85
|
+
separator?: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 懒加载树组件
|
|
89
|
+
*
|
|
90
|
+
* 具有懒加载、搜索、展开折叠等功能
|
|
91
|
+
*/
|
|
92
|
+
export declare const LazyTree: (props: LazyTreeProps) => import("preact").JSX.Element;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description AI聊天常规常量
|
|
3
|
+
*/
|
|
1
4
|
export declare enum AIChatConst {
|
|
2
5
|
/**
|
|
3
6
|
* 聊天窗口样式缓存
|
|
@@ -49,3 +52,16 @@ export declare enum DeepResearchType {
|
|
|
49
52
|
*/
|
|
50
53
|
DEEP_RESEARCH_REPORT = "deep_research_report"
|
|
51
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* @description AI分组话题常量
|
|
57
|
+
*/
|
|
58
|
+
export declare enum AIGroupChatConst {
|
|
59
|
+
/**
|
|
60
|
+
* 无分类域分组存储标识(无分类虚拟节点没有真实scope,分组数据以此标记归属)
|
|
61
|
+
*/
|
|
62
|
+
NONE_SCOPE_ID = "__NONE__",
|
|
63
|
+
/**
|
|
64
|
+
* 无分类虚拟节点标识(与 AiTopicController.computeGroupTree 约定一致)
|
|
65
|
+
*/
|
|
66
|
+
NONE_SCOPE_KEY = "scope:__NONE__"
|
|
67
|
+
}
|
|
@@ -107,6 +107,10 @@ export declare class AiChatController {
|
|
|
107
107
|
* @type {Signal<boolean>}
|
|
108
108
|
*/
|
|
109
109
|
readonly enableRecallConfigSetting: Signal<boolean>;
|
|
110
|
+
/**
|
|
111
|
+
* 是否显示项目选择组件(当前激活智能体的 flow_mode 为 SKILL 时才显示)
|
|
112
|
+
*/
|
|
113
|
+
readonly enableChatProject: Signal<boolean>;
|
|
110
114
|
/**
|
|
111
115
|
* 是否允许切换AI代理
|
|
112
116
|
*/
|
|
@@ -197,6 +201,10 @@ export declare class AiChatController {
|
|
|
197
201
|
* 选中知识库
|
|
198
202
|
*/
|
|
199
203
|
selectionKnowledgeBases: Signal<string[]>;
|
|
204
|
+
/**
|
|
205
|
+
* 选中项目
|
|
206
|
+
*/
|
|
207
|
+
selectionProject: string | undefined;
|
|
200
208
|
/**
|
|
201
209
|
* 当前可选知识库
|
|
202
210
|
*/
|
|
@@ -282,6 +290,10 @@ export declare class AiChatController {
|
|
|
282
290
|
* 初始化AI知识库
|
|
283
291
|
*/
|
|
284
292
|
private initAIChatKnowledge;
|
|
293
|
+
/**
|
|
294
|
+
* 计算项目选择组件是否显示(当前激活智能体的 flow_mode 为 SKILL 时才显示)
|
|
295
|
+
*/
|
|
296
|
+
private computeEnableChatProject;
|
|
285
297
|
/**
|
|
286
298
|
* 计算选中知识库
|
|
287
299
|
*/
|
|
@@ -341,7 +353,7 @@ export declare class AiChatController {
|
|
|
341
353
|
*/
|
|
342
354
|
loadHistoryMore(): Promise<void>;
|
|
343
355
|
/**
|
|
344
|
-
* 获取历史记录后续处理
|
|
356
|
+
* 获取历史记录后续处理(仅查询history接口时调用)
|
|
345
357
|
*/
|
|
346
358
|
private afterFecthHistory;
|
|
347
359
|
/**
|
|
@@ -608,6 +620,18 @@ export declare class AiChatController {
|
|
|
608
620
|
* @returns
|
|
609
621
|
*/
|
|
610
622
|
searchAIAgent(query: string): Promise<AIAgent[]>;
|
|
623
|
+
/**
|
|
624
|
+
* @description 搜索项目
|
|
625
|
+
* @param {string} [file_path='']
|
|
626
|
+
* @param {string} [pattern='']
|
|
627
|
+
* @returns {*} {Promise<{ id: string; label: string; isLeaf: boolean }[]>}
|
|
628
|
+
* @memberof AiChatController
|
|
629
|
+
*/
|
|
630
|
+
searchProject(file_path?: string, pattern?: string): Promise<{
|
|
631
|
+
id: string;
|
|
632
|
+
label: string;
|
|
633
|
+
isLeaf: boolean;
|
|
634
|
+
}[]>;
|
|
611
635
|
/**
|
|
612
636
|
* 设置选中知识库
|
|
613
637
|
* @param ids
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Signal } from '@preact/signals';
|
|
2
2
|
import { ChatTopic } from '../../entity';
|
|
3
|
-
import { ITopic, ITopicOptions, IResourceOptions, IChatController } from '../../interface';
|
|
3
|
+
import { ITopic, ITopicOptions, IResourceOptions, IChatController, IGroupItem, IScopeItem, ITopicGroupNode } from '../../interface';
|
|
4
|
+
import { AiChatController } from '../ai-chat/ai-chat.controller';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* ai话题控制器
|
|
@@ -98,6 +99,37 @@ export declare class AiTopicController {
|
|
|
98
99
|
* @memberof AiTopicController
|
|
99
100
|
*/
|
|
100
101
|
compWrapperId: string;
|
|
102
|
+
/**
|
|
103
|
+
* @description 工作模式,默认值,会话数据以列表显示; WORKSPACE:工作区,会话数据分为域(scope)、会话分组分层显示
|
|
104
|
+
* @type {('DEFAULT' | 'WORKSPACE')}
|
|
105
|
+
* @memberof AiTopicController
|
|
106
|
+
*/
|
|
107
|
+
workMode: 'DEFAULT' | 'WORKSPACE';
|
|
108
|
+
/**
|
|
109
|
+
* @description 是否禁用选择业务域(WORKSPACE 工作模式使用)
|
|
110
|
+
* @type {boolean}
|
|
111
|
+
* @memberof AiTopicController
|
|
112
|
+
*/
|
|
113
|
+
disableSelectScope: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* @description 业务域列表(WORKSPACE 工作模式使用)
|
|
116
|
+
* @type {IScopeItem[]}
|
|
117
|
+
* @memberof AiTopicController
|
|
118
|
+
*/
|
|
119
|
+
scopeList: IScopeItem[];
|
|
120
|
+
/**
|
|
121
|
+
* @description 用户自定义分组清单(WORKSPACE 工作模式使用)
|
|
122
|
+
* @type {Signal<IGroupItem[]>}
|
|
123
|
+
* @memberof AiTopicController
|
|
124
|
+
*/
|
|
125
|
+
readonly groups: Signal<IGroupItem[]>;
|
|
126
|
+
/**
|
|
127
|
+
* @description 分组存储服务实例('aigroups',与会话数据 'aitopics' 区分)
|
|
128
|
+
* @private
|
|
129
|
+
* @type {(IConfigService | undefined)}
|
|
130
|
+
* @memberof AiTopicController
|
|
131
|
+
*/
|
|
132
|
+
private groupConfig;
|
|
101
133
|
/**
|
|
102
134
|
* Creates an instance of AiTopicController.
|
|
103
135
|
* @author tony001
|
|
@@ -120,10 +152,14 @@ export declare class AiTopicController {
|
|
|
120
152
|
*/
|
|
121
153
|
setActivedTopic(topic: ChatTopic | undefined): void;
|
|
122
154
|
/**
|
|
123
|
-
*
|
|
124
|
-
* @param compWrapperId
|
|
155
|
+
* @description 注入基础资源
|
|
156
|
+
* @param {string} compWrapperId
|
|
157
|
+
* @param {('DEFAULT' | 'WORKSPACE')} workMode
|
|
158
|
+
* @param {boolean} [disableSelectScope]
|
|
159
|
+
* @param {IScopeItem[]} [scopeList]
|
|
160
|
+
* @memberof AiTopicController
|
|
125
161
|
*/
|
|
126
|
-
|
|
162
|
+
injectBasicResources(compWrapperId: string, workMode: 'DEFAULT' | 'WORKSPACE', disableSelectScope?: boolean, scopeList?: IScopeItem[]): void;
|
|
127
163
|
/**
|
|
128
164
|
* 注入资源选项
|
|
129
165
|
* @param resourceOptions
|
|
@@ -161,6 +197,23 @@ export declare class AiTopicController {
|
|
|
161
197
|
* @param topicid 话题标识
|
|
162
198
|
*/
|
|
163
199
|
updateTopicChatByID(topicid: string, args: Record<string, any>): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* @description 构建话题远程 ui_meta 数据
|
|
202
|
+
* @private
|
|
203
|
+
* @param {ChatTopic} topic 话题数据
|
|
204
|
+
* @param {Record<string, any>} [args] 需合并进aiChat的附加数据
|
|
205
|
+
* @returns {*} {Record<string, any>}
|
|
206
|
+
* @memberof AiTopicController
|
|
207
|
+
*/
|
|
208
|
+
private buildTopicUiMeta;
|
|
209
|
+
/**
|
|
210
|
+
* @description 更新话题远程会话的 ui_meta 数据(存在真实id直接更新;否则基于sessionid查询后更新)
|
|
211
|
+
* @private
|
|
212
|
+
* @param {ChatTopic} topic 话题数据
|
|
213
|
+
* @returns {*} {Promise<void>}
|
|
214
|
+
* @memberof AiTopicController
|
|
215
|
+
*/
|
|
216
|
+
private updateTopicRemoteMeta;
|
|
164
217
|
/**
|
|
165
218
|
* 删除话题
|
|
166
219
|
*
|
|
@@ -170,10 +223,10 @@ export declare class AiTopicController {
|
|
|
170
223
|
* @param {object} context
|
|
171
224
|
* @param {object} params
|
|
172
225
|
* @param {ITopic} data
|
|
173
|
-
* @param {MouseEvent}
|
|
226
|
+
* @param {MouseEvent} _event
|
|
174
227
|
* @return {*} {Promise<void>}
|
|
175
228
|
*/
|
|
176
|
-
removeTopic(options: ITopicOptions, context: object, params: object, data: ITopic,
|
|
229
|
+
removeTopic(options: ITopicOptions, context: object, params: object, data: ITopic, _event: MouseEvent): Promise<void>;
|
|
177
230
|
/**
|
|
178
231
|
* 删除远程会话数据
|
|
179
232
|
* 存在真实id,则删除远程session数据;不存在真实id,先基于sessionid查询,如果存在则删除,不存在视为删除成功
|
|
@@ -208,14 +261,18 @@ export declare class AiTopicController {
|
|
|
208
261
|
* @date 2025-03-18 18:03:49
|
|
209
262
|
* @return {*} {Promise<void>}
|
|
210
263
|
*/
|
|
211
|
-
newTopic(topicid: string, args: Record<string, any
|
|
264
|
+
newTopic(topicid: string, args: Record<string, any>, extra?: {
|
|
265
|
+
scope?: string | number;
|
|
266
|
+
groupid?: string;
|
|
267
|
+
}): Promise<void>;
|
|
212
268
|
/**
|
|
213
269
|
* 清空话题
|
|
214
270
|
* - 当前激活项不清空
|
|
271
|
+
* @param {boolean} [clearGroups=false] 是否同时清空自定义分组数据(WORKSPACE 工作模式)
|
|
215
272
|
* @return {*} {Promise<void>}
|
|
216
273
|
* @memberof AiTopicController
|
|
217
274
|
*/
|
|
218
|
-
clearTopic(): Promise<void>;
|
|
275
|
+
clearTopic(clearGroups?: boolean): Promise<void>;
|
|
219
276
|
/**
|
|
220
277
|
* 清空远程会话数据(排除指定会话)
|
|
221
278
|
* 激活会话存在会话标识时,清空其余会话;不存在时视为成功
|
|
@@ -246,21 +303,6 @@ export declare class AiTopicController {
|
|
|
246
303
|
* @return {*} {ChatTopic[]}
|
|
247
304
|
*/
|
|
248
305
|
private getSelectedTopics;
|
|
249
|
-
/**
|
|
250
|
-
* 批量置顶
|
|
251
|
-
* 将所有选中话题统一置为置顶状态并持久化,完成后退出多选模式
|
|
252
|
-
*
|
|
253
|
-
* @return {*} {Promise<void>}
|
|
254
|
-
*/
|
|
255
|
-
batchPinTop(): Promise<void>;
|
|
256
|
-
/**
|
|
257
|
-
* 批量删除
|
|
258
|
-
* 删除前统一走一次 beforeDelete 校验(isBatch=true),完成后退出多选模式
|
|
259
|
-
*
|
|
260
|
-
* @param {MouseEvent} [_event] 触发事件
|
|
261
|
-
* @return {*} {Promise<void>}
|
|
262
|
-
*/
|
|
263
|
-
batchDeleteTopics(_event?: MouseEvent): Promise<void>;
|
|
264
306
|
/**
|
|
265
307
|
* 更新话题标题
|
|
266
308
|
* @param topicId
|
|
@@ -300,9 +342,11 @@ export declare class AiTopicController {
|
|
|
300
342
|
switchTopicSidebarCollapse(): void;
|
|
301
343
|
/**
|
|
302
344
|
* 全局新建会话
|
|
345
|
+
* @param scope 业务域标识(WORKSPACE 工作模式)
|
|
346
|
+
* @param groupid 自定义分组标识(WORKSPACE 工作模式)
|
|
303
347
|
* @returns
|
|
304
348
|
*/
|
|
305
|
-
globalNewTopic(): void;
|
|
349
|
+
globalNewTopic(scope?: string | number, groupid?: string): void;
|
|
306
350
|
/**
|
|
307
351
|
* 进入临时会话
|
|
308
352
|
*/
|
|
@@ -321,4 +365,144 @@ export declare class AiTopicController {
|
|
|
321
365
|
* @memberof AiTopicController
|
|
322
366
|
*/
|
|
323
367
|
private handleAction;
|
|
368
|
+
/**
|
|
369
|
+
* @description 批量收集话题真实id,话题存在真实id直接使用;否则基于sessionid查询,查不到则忽略该话题
|
|
370
|
+
* @private
|
|
371
|
+
* @param {ChatTopic[]} topics 话题列表
|
|
372
|
+
* @returns {*} {Promise<string[]>} 真实id列表
|
|
373
|
+
* @memberof AiTopicController
|
|
374
|
+
*/
|
|
375
|
+
private resolveTopicRealIds;
|
|
376
|
+
/**
|
|
377
|
+
* @description 批量删除会话
|
|
378
|
+
* @private
|
|
379
|
+
* @param {ChatTopic[]} selectedTopics
|
|
380
|
+
* @returns {*} {Promise<boolean>}
|
|
381
|
+
* @memberof AiTopicController
|
|
382
|
+
*/
|
|
383
|
+
private batchDeleteRemoteSession;
|
|
384
|
+
/**
|
|
385
|
+
* @description 批量置顶,将所有选中话题统一置为置顶状态并持久化,完成后退出多选模式
|
|
386
|
+
* @returns {*} {Promise<void>}
|
|
387
|
+
* @memberof AiTopicController
|
|
388
|
+
*/
|
|
389
|
+
batchPinTop(): Promise<void>;
|
|
390
|
+
/**
|
|
391
|
+
* @description 批量取消置顶,将所有选中话题统一置为未置顶状态并持久化,完成后退出多选模式
|
|
392
|
+
* @returns {*} {Promise<void>}
|
|
393
|
+
* @memberof AiTopicController
|
|
394
|
+
*/
|
|
395
|
+
batchUnPinTop(): Promise<void>;
|
|
396
|
+
/**
|
|
397
|
+
* @description 批量删除,删除前统一走一次 beforeDelete 校验,完成后退出多选模式
|
|
398
|
+
* @param {MouseEvent} [_event]
|
|
399
|
+
* @returns {*} {Promise<void>}
|
|
400
|
+
* @memberof AiTopicController
|
|
401
|
+
*/
|
|
402
|
+
batchDeleteTopics(_event?: MouseEvent): Promise<void>;
|
|
403
|
+
/**
|
|
404
|
+
* @description 批量删除话题内核:删除前统一走一次 beforeDelete 校验,真删存储数据并同步界面
|
|
405
|
+
* @private
|
|
406
|
+
* @param {ChatTopic[]} targetTopics 待删除话题
|
|
407
|
+
* @param {string} [confirmTitle] 删除确认标题,默认为批量删除文案
|
|
408
|
+
* @param {string} [confirmDescription] 删除确认描述,默认为批量删除文案
|
|
409
|
+
* @returns {*} {Promise<boolean>} 是否删除成功
|
|
410
|
+
* @memberof AiTopicController
|
|
411
|
+
*/
|
|
412
|
+
private deleteTopicsCore;
|
|
413
|
+
/**
|
|
414
|
+
* @description 获取分组存储服务实例('aigroups',与会话数据 'aitopics' 区分)
|
|
415
|
+
* @private
|
|
416
|
+
* @param {ITopicOptions} options 话题配置
|
|
417
|
+
* @returns {*} {IConfigService}
|
|
418
|
+
* @memberof AiTopicController
|
|
419
|
+
*/
|
|
420
|
+
private getGroupConfig;
|
|
421
|
+
/**
|
|
422
|
+
* @description 加载用户自定义分组数据
|
|
423
|
+
* @param {ITopicOptions} options 话题配置
|
|
424
|
+
* @returns {*} {Promise<void>}
|
|
425
|
+
* @memberof AiTopicController
|
|
426
|
+
*/
|
|
427
|
+
fetchGroups(options: ITopicOptions): Promise<void>;
|
|
428
|
+
/**
|
|
429
|
+
* @description 保存用户自定义分组数据
|
|
430
|
+
* @returns {*} {Promise<void>}
|
|
431
|
+
* @memberof AiTopicController
|
|
432
|
+
*/
|
|
433
|
+
private saveGroups;
|
|
434
|
+
/**
|
|
435
|
+
* @description 计算分组树(WORKSPACE 工作模式):业务域第一层,自定义分组第二层,其后为话题
|
|
436
|
+
* @param {string} [query] 快速搜索关键词
|
|
437
|
+
* @returns {*} {ITopicGroupNode[]}
|
|
438
|
+
* @memberof AiTopicController
|
|
439
|
+
*/
|
|
440
|
+
computeGroupTree(query?: string): ITopicGroupNode[];
|
|
441
|
+
/**
|
|
442
|
+
* @description 判断话题是否属于无分类(无scope、scope为空或scope不在scopeList中)
|
|
443
|
+
* @private
|
|
444
|
+
* @param {ChatTopic} topic 话题数据
|
|
445
|
+
* @returns {*} {boolean}
|
|
446
|
+
* @memberof AiTopicController
|
|
447
|
+
*/
|
|
448
|
+
private isUnclassifiedTopic;
|
|
449
|
+
/**
|
|
450
|
+
* @description 新增用户自定义分组
|
|
451
|
+
* @param {(string | number)} [scopeid] 所属业务域标识,不传表示无分类域(存储为NONE_SCOPE_ID标记)
|
|
452
|
+
* @returns {*} {Promise<IGroupItem | undefined>} 成功返回新建分组数据,持久化失败返回undefined
|
|
453
|
+
* @memberof AiTopicController
|
|
454
|
+
*/
|
|
455
|
+
addGroup(scopeid?: string | number): Promise<IGroupItem | undefined>;
|
|
456
|
+
/**
|
|
457
|
+
* @description 重命名用户自定义分组
|
|
458
|
+
* @param {string} groupid 分组标识
|
|
459
|
+
* @param {string} text 新分组名称
|
|
460
|
+
* @returns {*} {Promise<IGroupItem | undefined>} 成功返回更新后的分组数据,分组不存在、名称为空、未变化或持久化失败返回undefined
|
|
461
|
+
* @memberof AiTopicController
|
|
462
|
+
*/
|
|
463
|
+
renameGroup(groupid: string, text: string): Promise<IGroupItem | undefined>;
|
|
464
|
+
/**
|
|
465
|
+
* @description 切换用户自定义分组折叠状态(持久化)
|
|
466
|
+
* @param {string} groupid 分组标识
|
|
467
|
+
* @returns {*} {Promise<void>}
|
|
468
|
+
* @memberof AiTopicController
|
|
469
|
+
*/
|
|
470
|
+
toggleGroupCollapse(groupid: string): Promise<void>;
|
|
471
|
+
/**
|
|
472
|
+
* @description 删除业务域:真删该域下所有分组和会话数据;不传scopeid表示删除无分类域
|
|
473
|
+
* @param {(string | number)} [scopeid] 业务域标识
|
|
474
|
+
* @returns {*} {Promise<boolean>} 是否删除成功
|
|
475
|
+
* @memberof AiTopicController
|
|
476
|
+
*/
|
|
477
|
+
removeScope(scopeid?: string | number): Promise<boolean>;
|
|
478
|
+
/**
|
|
479
|
+
* @description 删除用户自定义分组:真删该分组下所有会话数据
|
|
480
|
+
* @param {string} groupid 分组标识
|
|
481
|
+
* @returns {*} {Promise<boolean>} 是否删除成功
|
|
482
|
+
* @memberof AiTopicController
|
|
483
|
+
*/
|
|
484
|
+
removeGroup(groupid: string): Promise<boolean>;
|
|
485
|
+
/**
|
|
486
|
+
* @description 移动话题至指定业务域或自定义分组(拖拽),并持久化
|
|
487
|
+
* @param {string} topicid 话题标识
|
|
488
|
+
* @param {(string | number)} [scope] 目标业务域标识,无分类节点传 undefined 清除归属
|
|
489
|
+
* @param {string} [groupid] 目标自定义分组标识
|
|
490
|
+
* @returns {*} {Promise<boolean>} 是否移动成功(归属未变化视为成功)
|
|
491
|
+
* @memberof AiTopicController
|
|
492
|
+
*/
|
|
493
|
+
moveTopic(topicid: string, scope?: string | number, groupid?: string): Promise<boolean>;
|
|
494
|
+
/**
|
|
495
|
+
* @description 基于归一化字符串还原scopeList中的原始scope标识(dataset取值为字符串)
|
|
496
|
+
* @private
|
|
497
|
+
* @param {(string | number)} scopeid 归一化后的业务域标识
|
|
498
|
+
* @returns {*} {(string | number)}
|
|
499
|
+
* @memberof AiTopicController
|
|
500
|
+
*/
|
|
501
|
+
private getOriginScopeId;
|
|
502
|
+
/**
|
|
503
|
+
* @description 获取聊天控制器
|
|
504
|
+
* @returns {*} {(AiChatController | undefined)}
|
|
505
|
+
* @memberof AiTopicController
|
|
506
|
+
*/
|
|
507
|
+
getAiChat(): AiChatController | undefined;
|
|
324
508
|
}
|
|
@@ -157,4 +157,14 @@ export declare abstract class ChatBaseController implements IChatController {
|
|
|
157
157
|
* @memberof ChatBaseController
|
|
158
158
|
*/
|
|
159
159
|
close(): void;
|
|
160
|
+
/**
|
|
161
|
+
* @description 组件失活事件
|
|
162
|
+
* @memberof ChatBaseController
|
|
163
|
+
*/
|
|
164
|
+
onDeactivated(): void;
|
|
165
|
+
/**
|
|
166
|
+
* @description 组件激活事件
|
|
167
|
+
* @memberof ChatBaseController
|
|
168
|
+
*/
|
|
169
|
+
onActivated(): void;
|
|
160
170
|
}
|
|
@@ -20,6 +20,7 @@ export declare class AIAgent implements IAIAgent {
|
|
|
20
20
|
get maxchunks(): number | undefined;
|
|
21
21
|
get chunkthreshold(): number | undefined;
|
|
22
22
|
get chunkpageindex(): 0 | 1 | undefined;
|
|
23
|
+
get flow_mode(): 'SKILL' | 'DEFAULT' | 'DE' | 'HUB' | 'SCRIPT' | undefined;
|
|
23
24
|
constructor(agent: IAIAgent, defaultConfig: {
|
|
24
25
|
chunkrerank: 0 | 1 | 2;
|
|
25
26
|
maxchunks?: number;
|
|
@@ -51,3 +51,5 @@ export { InputTokensSvg } from './statistics/input-tokens-svg';
|
|
|
51
51
|
export { OutputTokensSvg } from './statistics/output-tokens-svg';
|
|
52
52
|
export { ToolCallCountSvg } from './statistics/tool-call-count-svg';
|
|
53
53
|
export { ListCheckBoxSvg } from './list-checkbox-svg';
|
|
54
|
+
export { UnTopSvg } from './untop-svg';
|
|
55
|
+
export { PlusSvg } from './plus-svg';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PlusSvg: () => import("preact").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UnTopSvg: () => import("preact").JSX.Element;
|
|
@@ -75,4 +75,10 @@ export interface IAIAgent {
|
|
|
75
75
|
* 页面目录召回
|
|
76
76
|
*/
|
|
77
77
|
chunkpageindex?: 0 | 1;
|
|
78
|
+
/**
|
|
79
|
+
* @description 智能体模式
|
|
80
|
+
* @type {('SKILL' | 'DEFAULT' | 'DE' | 'HUB' | 'SCRIPT')} 可执行SKILL模式 | 简单Prompt模式 | 工作流模式 | 分角色总线模式 | 脚本代码模式
|
|
81
|
+
* @memberof IAIAgent
|
|
82
|
+
*/
|
|
83
|
+
flow_mode?: 'SKILL' | 'DEFAULT' | 'DE' | 'HUB' | 'SCRIPT';
|
|
78
84
|
}
|