@ibiz-template-plugin/ai-chat 0.0.111 → 0.0.113

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.
Files changed (29) hide show
  1. package/dist/index.es.js +8187 -6335
  2. package/dist/index.legacy.js +1 -1
  3. package/dist/style.css +1 -1
  4. package/dist/types/components/chat-container/chat-container.d.ts +1 -1
  5. package/dist/types/components/chat-group-topics/chat-group-topics.d.ts +13 -0
  6. package/dist/types/components/chat-messages/use-virtual-list.d.ts +5 -0
  7. package/dist/types/components/chat-project/chat-project.d.ts +12 -0
  8. package/dist/types/components/chat-topic-item/chat-topic-item.d.ts +8 -0
  9. package/dist/types/components/common/lazy-tree/lazy-tree.d.ts +92 -0
  10. package/dist/types/constants/index.d.ts +16 -0
  11. package/dist/types/controller/ai-chat/ai-chat.controller.d.ts +19 -2
  12. package/dist/types/controller/ai-topic/ai-topic.controller.d.ts +235 -7
  13. package/dist/types/controller/chat/chat-base.controller.d.ts +19 -0
  14. package/dist/types/entity/chart-topic/chart-topic.d.ts +2 -0
  15. package/dist/types/icons/index.d.ts +4 -0
  16. package/dist/types/icons/list-checkbox-svg.d.ts +1 -0
  17. package/dist/types/icons/plus-svg.d.ts +1 -0
  18. package/dist/types/icons/solid-down-svg.d.ts +1 -0
  19. package/dist/types/icons/untop-svg.d.ts +1 -0
  20. package/dist/types/interface/i-chat-controller/i-chat-controller.d.ts +7 -0
  21. package/dist/types/interface/i-chat-options/i-chat-options.d.ts +19 -1
  22. package/dist/types/interface/i-project/i-project.d.ts +14 -0
  23. package/dist/types/interface/i-remote-resource/i-remote-resource.d.ts +6 -0
  24. package/dist/types/interface/i-resource-options/i-resource-options.d.ts +21 -0
  25. package/dist/types/interface/i-topic-options/i-topic-options.d.ts +112 -11
  26. package/dist/types/interface/index.d.ts +3 -1
  27. package/dist/types/locale/en/index.d.ts +24 -0
  28. package/dist/types/locale/zh-CN/index.d.ts +24 -0
  29. package/package.json +1 -1
@@ -197,6 +197,10 @@ export declare class AiChatController {
197
197
  * 选中知识库
198
198
  */
199
199
  selectionKnowledgeBases: Signal<string[]>;
200
+ /**
201
+ * 选中项目
202
+ */
203
+ selectionProject: string | undefined;
200
204
  /**
201
205
  * 当前可选知识库
202
206
  */
@@ -527,12 +531,13 @@ export declare class AiChatController {
527
531
  * 重置对话(清空当前对话、查询历史)
528
532
  * @returns
529
533
  */
530
- resetTopic(): Promise<boolean>;
534
+ resetTopicMessage(): Promise<boolean>;
531
535
  /**
532
536
  * 清空对话
537
+ * @param {boolean} [isConfirm=true] 是否需要确认提示,外部直接调用时弹出,内部(重置)调用时跳过
533
538
  * @returns
534
539
  */
535
- clearTopic(): Promise<boolean>;
540
+ clearTopicMessage(isConfirm?: boolean): Promise<boolean>;
536
541
  /**
537
542
  * 新增素材资源
538
543
  *
@@ -607,6 +612,18 @@ export declare class AiChatController {
607
612
  * @returns
608
613
  */
609
614
  searchAIAgent(query: string): Promise<AIAgent[]>;
615
+ /**
616
+ * @description 搜索项目
617
+ * @param {string} [file_path='']
618
+ * @param {string} [pattern='']
619
+ * @returns {*} {Promise<{ id: string; label: string; isLeaf: boolean }[]>}
620
+ * @memberof AiChatController
621
+ */
622
+ searchProject(file_path?: string, pattern?: string): Promise<{
623
+ id: string;
624
+ label: string;
625
+ isLeaf: boolean;
626
+ }[]>;
610
627
  /**
611
628
  * 设置选中知识库
612
629
  * @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话题控制器
@@ -51,6 +52,14 @@ export declare class AiTopicController {
51
52
  * @type {Signal<boolean>}
52
53
  */
53
54
  readonly isTempChat: Signal<boolean>;
55
+ /**
56
+ * 是否处于多选模式
57
+ */
58
+ readonly isSelectMode: Signal<boolean>;
59
+ /**
60
+ * 多选模式下已选中的话题id集合
61
+ */
62
+ readonly selectedTopicIds: Signal<Set<string>>;
54
63
  /**
55
64
  * 当前话题配置备份
56
65
  *
@@ -90,6 +99,31 @@ export declare class AiTopicController {
90
99
  * @memberof AiTopicController
91
100
  */
92
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 {IScopeItem[]}
111
+ * @memberof AiTopicController
112
+ */
113
+ scopeList: IScopeItem[];
114
+ /**
115
+ * @description 用户自定义分组清单(WORKSPACE 工作模式使用)
116
+ * @type {Signal<IGroupItem[]>}
117
+ * @memberof AiTopicController
118
+ */
119
+ readonly groups: Signal<IGroupItem[]>;
120
+ /**
121
+ * @description 分组存储服务实例('aigroups',与会话数据 'aitopics' 区分)
122
+ * @private
123
+ * @type {(IConfigService | undefined)}
124
+ * @memberof AiTopicController
125
+ */
126
+ private groupConfig;
93
127
  /**
94
128
  * Creates an instance of AiTopicController.
95
129
  * @author tony001
@@ -97,6 +131,15 @@ export declare class AiTopicController {
97
131
  * @param {IChatController} chat
98
132
  */
99
133
  constructor(chat: IChatController);
134
+ /**
135
+ * @description 判断话题是否正在与AI会话中
136
+ * @author tony001
137
+ * @date 2026-09-28 10:09:00
138
+ * @param {string} topicId 话题标识
139
+ * @returns {*} {boolean}
140
+ * @memberof AiTopicController
141
+ */
142
+ isTopicGenerating(topicId: string): boolean;
100
143
  /**
101
144
  * 设置激活话题
102
145
  * @param topic 话题数据
@@ -106,7 +149,7 @@ export declare class AiTopicController {
106
149
  * 注入组件外层容器id
107
150
  * @param compWrapperId
108
151
  */
109
- injectCompWrapperId(compWrapperId: string): void;
152
+ injectBasicResources(compWrapperId: string, workMode: 'DEFAULT' | 'WORKSPACE', scopeList?: IScopeItem[]): void;
110
153
  /**
111
154
  * 注入资源选项
112
155
  * @param resourceOptions
@@ -144,6 +187,23 @@ export declare class AiTopicController {
144
187
  * @param topicid 话题标识
145
188
  */
146
189
  updateTopicChatByID(topicid: string, args: Record<string, any>): Promise<void>;
190
+ /**
191
+ * @description 构建话题远程 ui_meta 数据
192
+ * @private
193
+ * @param {ChatTopic} topic 话题数据
194
+ * @param {Record<string, any>} [args] 需合并进aiChat的附加数据
195
+ * @returns {*} {Record<string, any>}
196
+ * @memberof AiTopicController
197
+ */
198
+ private buildTopicUiMeta;
199
+ /**
200
+ * @description 更新话题远程会话的 ui_meta 数据(存在真实id直接更新;否则基于sessionid查询后更新)
201
+ * @private
202
+ * @param {ChatTopic} topic 话题数据
203
+ * @returns {*} {Promise<void>}
204
+ * @memberof AiTopicController
205
+ */
206
+ private updateTopicRemoteMeta;
147
207
  /**
148
208
  * 删除话题
149
209
  *
@@ -153,10 +213,10 @@ export declare class AiTopicController {
153
213
  * @param {object} context
154
214
  * @param {object} params
155
215
  * @param {ITopic} data
156
- * @param {MouseEvent} event
216
+ * @param {MouseEvent} _event
157
217
  * @return {*} {Promise<void>}
158
218
  */
159
- removeTopic(options: ITopicOptions, context: object, params: object, data: ITopic, event: MouseEvent): Promise<void>;
219
+ removeTopic(options: ITopicOptions, context: object, params: object, data: ITopic, _event: MouseEvent): Promise<void>;
160
220
  /**
161
221
  * 删除远程会话数据
162
222
  * 存在真实id,则删除远程session数据;不存在真实id,先基于sessionid查询,如果存在则删除,不存在视为删除成功
@@ -191,14 +251,18 @@ export declare class AiTopicController {
191
251
  * @date 2025-03-18 18:03:49
192
252
  * @return {*} {Promise<void>}
193
253
  */
194
- newTopic(topicid: string, args: Record<string, any>): Promise<void>;
254
+ newTopic(topicid: string, args: Record<string, any>, extra?: {
255
+ scope?: string | number;
256
+ groupid?: string;
257
+ }): Promise<void>;
195
258
  /**
196
259
  * 清空话题
197
260
  * - 当前激活项不清空
261
+ * @param {boolean} [clearGroups=false] 是否同时清空自定义分组数据(WORKSPACE 工作模式)
198
262
  * @return {*} {Promise<void>}
199
263
  * @memberof AiTopicController
200
264
  */
201
- clearTopic(): Promise<void>;
265
+ clearTopic(clearGroups?: boolean): Promise<void>;
202
266
  /**
203
267
  * 清空远程会话数据(排除指定会话)
204
268
  * 激活会话存在会话标识时,清空其余会话;不存在时视为成功
@@ -207,6 +271,28 @@ export declare class AiTopicController {
207
271
  * @return {*} {Promise<boolean>}
208
272
  */
209
273
  private clearRemoteSession;
274
+ /**
275
+ * 进入多选模式
276
+ *
277
+ * @param {string} [topicId] 默认选中的话题id,未传则仅进入多选模式
278
+ */
279
+ enterSelectMode(topicId?: string): void;
280
+ /**
281
+ * 退出多选模式并清空选中
282
+ */
283
+ exitSelectMode(): void;
284
+ /**
285
+ * 切换话题选中状态(多选模式)
286
+ *
287
+ * @param {string} id 话题id
288
+ */
289
+ toggleTopicSelected(id: string): void;
290
+ /**
291
+ * 获取多选模式下已选中的话题
292
+ *
293
+ * @return {*} {ChatTopic[]}
294
+ */
295
+ private getSelectedTopics;
210
296
  /**
211
297
  * 更新话题标题
212
298
  * @param topicId
@@ -246,9 +332,11 @@ export declare class AiTopicController {
246
332
  switchTopicSidebarCollapse(): void;
247
333
  /**
248
334
  * 全局新建会话
335
+ * @param scope 业务域标识(WORKSPACE 工作模式)
336
+ * @param groupid 自定义分组标识(WORKSPACE 工作模式)
249
337
  * @returns
250
338
  */
251
- globalNewTopic(): void;
339
+ globalNewTopic(scope?: string | number, groupid?: string): void;
252
340
  /**
253
341
  * 进入临时会话
254
342
  */
@@ -267,4 +355,144 @@ export declare class AiTopicController {
267
355
  * @memberof AiTopicController
268
356
  */
269
357
  private handleAction;
358
+ /**
359
+ * @description 批量收集话题真实id,话题存在真实id直接使用;否则基于sessionid查询,查不到则忽略该话题
360
+ * @private
361
+ * @param {ChatTopic[]} topics 话题列表
362
+ * @returns {*} {Promise<string[]>} 真实id列表
363
+ * @memberof AiTopicController
364
+ */
365
+ private resolveTopicRealIds;
366
+ /**
367
+ * @description 批量删除会话
368
+ * @private
369
+ * @param {ChatTopic[]} selectedTopics
370
+ * @returns {*} {Promise<boolean>}
371
+ * @memberof AiTopicController
372
+ */
373
+ private batchDeleteRemoteSession;
374
+ /**
375
+ * @description 批量置顶,将所有选中话题统一置为置顶状态并持久化,完成后退出多选模式
376
+ * @returns {*} {Promise<void>}
377
+ * @memberof AiTopicController
378
+ */
379
+ batchPinTop(): Promise<void>;
380
+ /**
381
+ * @description 批量取消置顶,将所有选中话题统一置为未置顶状态并持久化,完成后退出多选模式
382
+ * @returns {*} {Promise<void>}
383
+ * @memberof AiTopicController
384
+ */
385
+ batchUnPinTop(): Promise<void>;
386
+ /**
387
+ * @description 批量删除,删除前统一走一次 beforeDelete 校验,完成后退出多选模式
388
+ * @param {MouseEvent} [_event]
389
+ * @returns {*} {Promise<void>}
390
+ * @memberof AiTopicController
391
+ */
392
+ batchDeleteTopics(_event?: MouseEvent): Promise<void>;
393
+ /**
394
+ * @description 批量删除话题内核:删除前统一走一次 beforeDelete 校验,真删存储数据并同步界面
395
+ * @private
396
+ * @param {ChatTopic[]} targetTopics 待删除话题
397
+ * @param {string} [confirmTitle] 删除确认标题,默认为批量删除文案
398
+ * @param {string} [confirmDescription] 删除确认描述,默认为批量删除文案
399
+ * @returns {*} {Promise<boolean>} 是否删除成功
400
+ * @memberof AiTopicController
401
+ */
402
+ private deleteTopicsCore;
403
+ /**
404
+ * @description 获取分组存储服务实例('aigroups',与会话数据 'aitopics' 区分)
405
+ * @private
406
+ * @param {ITopicOptions} options 话题配置
407
+ * @returns {*} {IConfigService}
408
+ * @memberof AiTopicController
409
+ */
410
+ private getGroupConfig;
411
+ /**
412
+ * @description 加载用户自定义分组数据
413
+ * @param {ITopicOptions} options 话题配置
414
+ * @returns {*} {Promise<void>}
415
+ * @memberof AiTopicController
416
+ */
417
+ fetchGroups(options: ITopicOptions): Promise<void>;
418
+ /**
419
+ * @description 保存用户自定义分组数据
420
+ * @returns {*} {Promise<void>}
421
+ * @memberof AiTopicController
422
+ */
423
+ private saveGroups;
424
+ /**
425
+ * @description 计算分组树(WORKSPACE 工作模式):业务域第一层,自定义分组第二层,其后为话题
426
+ * @param {string} [query] 快速搜索关键词
427
+ * @returns {*} {ITopicGroupNode[]}
428
+ * @memberof AiTopicController
429
+ */
430
+ computeGroupTree(query?: string): ITopicGroupNode[];
431
+ /**
432
+ * @description 判断话题是否属于无分类(无scope、scope为空或scope不在scopeList中)
433
+ * @private
434
+ * @param {ChatTopic} topic 话题数据
435
+ * @returns {*} {boolean}
436
+ * @memberof AiTopicController
437
+ */
438
+ private isUnclassifiedTopic;
439
+ /**
440
+ * @description 新增用户自定义分组
441
+ * @param {(string | number)} [scopeid] 所属业务域标识,不传表示无分类域(存储为NONE_SCOPE_ID标记)
442
+ * @returns {*} {Promise<IGroupItem | undefined>} 成功返回新建分组数据,持久化失败返回undefined
443
+ * @memberof AiTopicController
444
+ */
445
+ addGroup(scopeid?: string | number): Promise<IGroupItem | undefined>;
446
+ /**
447
+ * @description 重命名用户自定义分组
448
+ * @param {string} groupid 分组标识
449
+ * @param {string} text 新分组名称
450
+ * @returns {*} {Promise<IGroupItem | undefined>} 成功返回更新后的分组数据,分组不存在、名称为空、未变化或持久化失败返回undefined
451
+ * @memberof AiTopicController
452
+ */
453
+ renameGroup(groupid: string, text: string): Promise<IGroupItem | undefined>;
454
+ /**
455
+ * @description 切换用户自定义分组折叠状态(持久化)
456
+ * @param {string} groupid 分组标识
457
+ * @returns {*} {Promise<void>}
458
+ * @memberof AiTopicController
459
+ */
460
+ toggleGroupCollapse(groupid: string): Promise<void>;
461
+ /**
462
+ * @description 删除业务域:真删该域下所有分组和会话数据;不传scopeid表示删除无分类域
463
+ * @param {(string | number)} [scopeid] 业务域标识
464
+ * @returns {*} {Promise<boolean>} 是否删除成功
465
+ * @memberof AiTopicController
466
+ */
467
+ removeScope(scopeid?: string | number): Promise<boolean>;
468
+ /**
469
+ * @description 删除用户自定义分组:真删该分组下所有会话数据
470
+ * @param {string} groupid 分组标识
471
+ * @returns {*} {Promise<boolean>} 是否删除成功
472
+ * @memberof AiTopicController
473
+ */
474
+ removeGroup(groupid: string): Promise<boolean>;
475
+ /**
476
+ * @description 移动话题至指定业务域或自定义分组(拖拽),并持久化
477
+ * @param {string} topicid 话题标识
478
+ * @param {(string | number)} [scope] 目标业务域标识,无分类节点传 undefined 清除归属
479
+ * @param {string} [groupid] 目标自定义分组标识
480
+ * @returns {*} {Promise<boolean>} 是否移动成功(归属未变化视为成功)
481
+ * @memberof AiTopicController
482
+ */
483
+ moveTopic(topicid: string, scope?: string | number, groupid?: string): Promise<boolean>;
484
+ /**
485
+ * @description 基于归一化字符串还原scopeList中的原始scope标识(dataset取值为字符串)
486
+ * @private
487
+ * @param {(string | number)} scopeid 归一化后的业务域标识
488
+ * @returns {*} {(string | number)}
489
+ * @memberof AiTopicController
490
+ */
491
+ private getOriginScopeId;
492
+ /**
493
+ * @description 获取聊天控制器
494
+ * @returns {*} {(AiChatController | undefined)}
495
+ * @memberof AiTopicController
496
+ */
497
+ getAiChat(): AiChatController | undefined;
270
498
  }
@@ -54,6 +54,15 @@ export declare abstract class ChatBaseController implements IChatController {
54
54
  * @memberof ChatBaseController
55
55
  */
56
56
  get aiChat(): AiChatController | undefined;
57
+ /**
58
+ * @description 基于话题id获取对应聊天控制器
59
+ * @author tony001
60
+ * @date 2026-09-28 10:09:00
61
+ * @param {string} topicId
62
+ * @returns {*} {(AiChatController | undefined)}
63
+ * @memberof ChatBaseController
64
+ */
65
+ getAiChatControllerByTopicId(topicId: string): AiChatController | undefined;
57
66
  /**
58
67
  * @description 话题map
59
68
  * @author tony001
@@ -148,4 +157,14 @@ export declare abstract class ChatBaseController implements IChatController {
148
157
  * @memberof ChatBaseController
149
158
  */
150
159
  close(): void;
160
+ /**
161
+ * @description 组件失活事件
162
+ * @memberof ChatBaseController
163
+ */
164
+ onDeactivated(): void;
165
+ /**
166
+ * @description 组件激活事件
167
+ * @memberof ChatBaseController
168
+ */
169
+ onActivated(): void;
151
170
  }
@@ -25,5 +25,7 @@ export declare class ChatTopic implements ITopic {
25
25
  get isShow(): boolean;
26
26
  get disableStorage(): boolean;
27
27
  get captionComputed(): boolean;
28
+ get scope(): ITopic['scope'];
29
+ get groupid(): ITopic['groupid'];
28
30
  constructor(data: ITopic);
29
31
  }
@@ -50,3 +50,7 @@ export { TotalTokensSvg } from './statistics/total-tokens-svg';
50
50
  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
+ export { ListCheckBoxSvg } from './list-checkbox-svg';
54
+ export { UnTopSvg } from './untop-svg';
55
+ export { PlusSvg } from './plus-svg';
56
+ export { SolidDownSvg } from './solid-down-svg';
@@ -0,0 +1 @@
1
+ export declare const ListCheckBoxSvg: () => import("preact").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const PlusSvg: () => import("preact").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const SolidDownSvg: () => import("preact").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const UnTopSvg: () => import("preact").JSX.Element;
@@ -27,4 +27,11 @@ export interface IChatController {
27
27
  * @memberof IChatController
28
28
  */
29
29
  switchAiChatController(topic: ChatTopic): void;
30
+ /**
31
+ * @description 基于话题id获取对应聊天控制器
32
+ * @param {string} topicId
33
+ * @returns {*} {(AiChatController | undefined)}
34
+ * @memberof IChatController
35
+ */
36
+ getAiChatControllerByTopicId(topicId: string): AiChatController | undefined;
30
37
  }
@@ -8,6 +8,7 @@ import { IKnowledgeBase } from '../i-knowledge-base/i-knowledge-base';
8
8
  import { ISpeechRecognition } from '../i-speech-recognition/i-speech-recognition';
9
9
  import { Locale } from '../../locale';
10
10
  import { IConfirmUtil, IMessageUtil, INotificationUtil } from '../util';
11
+ import { IProject } from '../i-project/i-project';
11
12
 
12
13
  /**
13
14
  * 聊天数据
@@ -222,6 +223,12 @@ export interface IChatOptions extends IChat {
222
223
  * @type {boolean}
223
224
  */
224
225
  enableKnowledgeBaseSelect: boolean;
226
+ /**
227
+ * @description 是否启用AI项目功能
228
+ * @type {boolean}
229
+ * @memberof IChatOptions
230
+ */
231
+ enableAIProject: boolean;
225
232
  /**
226
233
  * 话题标题计算模式
227
234
  *
@@ -307,7 +314,7 @@ export interface IChatOptions extends IChat {
307
314
  * @param {IChatMessage[]} question 提问历史内容(包含当前提问)
308
315
  * @return {*} {Promise<boolean>} 等待回答,用于显示 loading 并获取最终成功与否
309
316
  */
310
- question(aiChat: AiChatController, context: object, params: object, otherParams: object, question: IChatMessage[], sessionid: string, srfaiagent: string | undefined, srfmode: string | undefined, srfscope: string | undefined, srfaiknowledgebases: string | undefined, srfaiagentconfig: IAIAgentConfig | undefined, appendcurdata: object | undefined, srfmcpservers: string | undefined, srfsessionmeta: object | undefined): Promise<boolean>;
317
+ question(aiChat: AiChatController, context: object, params: object, otherParams: object, question: IChatMessage[], sessionid: string, srfaiagent: string | undefined, srfmode: string | undefined, srfscope: string | undefined, srfaiknowledgebases: string | undefined, srfaiagentconfig: IAIAgentConfig | undefined, appendcurdata: object | undefined, srfmcpservers: string | undefined, srfsessionmeta: object | undefined, srfproject: string | undefined): Promise<boolean>;
311
318
  /**
312
319
  * 中断消息
313
320
  * @param aiChat
@@ -387,6 +394,17 @@ export interface IChatOptions extends IChat {
387
394
  query?: string;
388
395
  knowledgebases?: string;
389
396
  }) => Promise<IKnowledgeBase[]>;
397
+ /**
398
+ * @description 查询项目
399
+ * @memberof IChatOptions
400
+ */
401
+ fetchProject?: (context: object, params: object, other: {
402
+ srfaiagent: string;
403
+ sessionid: string;
404
+ pattern: string;
405
+ file_path: string;
406
+ max_depth: number;
407
+ }) => Promise<IProject[]>;
390
408
  /**
391
409
  * 文件上传配置
392
410
  *
@@ -0,0 +1,14 @@
1
+ export interface IProject {
2
+ /**
3
+ * 项目名称
4
+ */
5
+ name: string;
6
+ /**
7
+ * 项目类型
8
+ */
9
+ type: string;
10
+ /**
11
+ * 子项目
12
+ */
13
+ children?: IProject[];
14
+ }
@@ -28,6 +28,12 @@ export interface IRemoteSession {
28
28
  * @description 会话元数据
29
29
  */
30
30
  ui_meta: string;
31
+ /**
32
+ * @description 作用域
33
+ * @type {string}
34
+ * @memberof IRemoteSession
35
+ */
36
+ scope: string;
31
37
  }
32
38
  /**
33
39
  * @description 远程消息接口
@@ -56,6 +56,27 @@ export interface IResourceOptions {
56
56
  * @param excludeSessionID 排除会话的会话id
57
57
  */
58
58
  clearAllSession(excludeSessionID: string): Promise<boolean>;
59
+ /**
60
+ * @description 批量删除会话
61
+ * @param {string[]} realIDs 会话真实id集合
62
+ * @returns {*} {Promise<boolean>}
63
+ * @memberof IResourceOptions
64
+ */
65
+ batchDeleteSession(realIDs: string[]): Promise<boolean>;
66
+ /**
67
+ * @description 批量置顶会话
68
+ * @param {string[]} realIDs 会话真实id集合
69
+ * @returns {*} {Promise<boolean>}
70
+ * @memberof IResourceOptions
71
+ */
72
+ batchTopSession(realIDs: string[]): Promise<boolean>;
73
+ /**
74
+ * @description 批量取消置顶会话
75
+ * @param {string[]} realIDs 会话真实id集合
76
+ * @returns {*} {Promise<boolean>}
77
+ * @memberof IResourceOptions
78
+ */
79
+ batchUnTopSession(realIDs: string[]): Promise<boolean>;
59
80
  /**
60
81
  * 清空指定会话的所有消息
61
82
  * @param realID