keepwork-sdk 1.0.0
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/README.md +21 -0
- package/dist-npm/keepwork-sdk.js +37514 -0
- package/dist-npm/keepwork-sdk.js.map +1 -0
- package/dist-npm/md5-CZ0vz1_S.js +240 -0
- package/dist-npm/md5-CZ0vz1_S.js.map +1 -0
- package/dist-npm/types/index.d.ts +42 -0
- package/dist-npm/types/index.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/AIChat.core.d.ts +218 -0
- package/dist-npm/types/src/ai-chat/AIChat.core.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/AIChat.d.ts +18 -0
- package/dist-npm/types/src/ai-chat/AIChat.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/AIChat.session.d.ts +201 -0
- package/dist-npm/types/src/ai-chat/AIChat.session.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/AIGenerators.base.d.ts +297 -0
- package/dist-npm/types/src/ai-chat/AIGenerators.base.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/AIGenerators.d.ts +15 -0
- package/dist-npm/types/src/ai-chat/AIGenerators.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/AIGenerators.media.d.ts +208 -0
- package/dist-npm/types/src/ai-chat/AIGenerators.media.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/ChildSessionMixin.d.ts +153 -0
- package/dist-npm/types/src/ai-chat/ChildSessionMixin.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/CopilotTools.d.ts +150 -0
- package/dist-npm/types/src/ai-chat/CopilotTools.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/MqttManager.d.ts +123 -0
- package/dist-npm/types/src/ai-chat/MqttManager.d.ts.map +1 -0
- package/dist-npm/types/src/ai-chat/SandboxToolEnv.d.ts +210 -0
- package/dist-npm/types/src/ai-chat/SandboxToolEnv.d.ts.map +1 -0
- package/dist-npm/types/src/audio/AudioEngine.d.ts +272 -0
- package/dist-npm/types/src/audio/AudioEngine.d.ts.map +1 -0
- package/dist-npm/types/src/audio/AudioEngine.utils.d.ts +72 -0
- package/dist-npm/types/src/audio/AudioEngine.utils.d.ts.map +1 -0
- package/dist-npm/types/src/audio/Speech.d.ts +247 -0
- package/dist-npm/types/src/audio/Speech.d.ts.map +1 -0
- package/dist-npm/types/src/core/AgentConfig.d.ts +104 -0
- package/dist-npm/types/src/core/AgentConfig.d.ts.map +1 -0
- package/dist-npm/types/src/core/AgentRouter.d.ts +342 -0
- package/dist-npm/types/src/core/AgentRouter.d.ts.map +1 -0
- package/dist-npm/types/src/core/NPL.d.ts +251 -0
- package/dist-npm/types/src/core/NPL.d.ts.map +1 -0
- package/dist-npm/types/src/core/RemoteLog.d.ts +132 -0
- package/dist-npm/types/src/core/RemoteLog.d.ts.map +1 -0
- package/dist-npm/types/src/core/keepworkSDK.core.d.ts +84 -0
- package/dist-npm/types/src/core/keepworkSDK.core.d.ts.map +1 -0
- package/dist-npm/types/src/core/keepworkSDK.d.ts +129 -0
- package/dist-npm/types/src/core/keepworkSDK.d.ts.map +1 -0
- package/dist-npm/types/src/core/keepworkSDK.pages.d.ts +101 -0
- package/dist-npm/types/src/core/keepworkSDK.pages.d.ts.map +1 -0
- package/dist-npm/types/src/core/keepworkSDK.utils.d.ts +40 -0
- package/dist-npm/types/src/core/keepworkSDK.utils.d.ts.map +1 -0
- package/dist-npm/types/src/digital-human/DigitalHuman.d.ts +1316 -0
- package/dist-npm/types/src/digital-human/DigitalHuman.d.ts.map +1 -0
- package/dist-npm/types/src/digital-human/DigitalHumanBridge.d.ts +54 -0
- package/dist-npm/types/src/digital-human/DigitalHumanBridge.d.ts.map +1 -0
- package/dist-npm/types/src/digital-human/DigitalHumanConfig.d.ts +104 -0
- package/dist-npm/types/src/digital-human/DigitalHumanConfig.d.ts.map +1 -0
- package/dist-npm/types/src/digital-human/DigitalHumanFrame.d.ts +390 -0
- package/dist-npm/types/src/digital-human/DigitalHumanFrame.d.ts.map +1 -0
- package/dist-npm/types/src/digital-human/DigitalHumanFrameMessages.d.ts +59 -0
- package/dist-npm/types/src/digital-human/DigitalHumanFrameMessages.d.ts.map +1 -0
- package/dist-npm/types/src/digital-human/DigitalHumanSubtitleOverlay.d.ts +114 -0
- package/dist-npm/types/src/digital-human/DigitalHumanSubtitleOverlay.d.ts.map +1 -0
- package/dist-npm/types/src/digital-human/DigitalHumanUtils.d.ts +53 -0
- package/dist-npm/types/src/digital-human/DigitalHumanUtils.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/AIChatRTC.constants.d.ts +65 -0
- package/dist-npm/types/src/rtc/AIChatRTC.constants.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/AIChatRTC.d.ts +91 -0
- package/dist-npm/types/src/rtc/AIChatRTC.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/AIChatRTC.session.d.ts +268 -0
- package/dist-npm/types/src/rtc/AIChatRTC.session.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.backends.d.ts +232 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.backends.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.core.d.ts +92 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.core.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.d.ts +15 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.session.d.ts +127 -0
- package/dist-npm/types/src/rtc/AIChatRTCLocal.session.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/LocalRTC.d.ts +91 -0
- package/dist-npm/types/src/rtc/LocalRTC.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/SpeechRTC.d.ts +156 -0
- package/dist-npm/types/src/rtc/SpeechRTC.d.ts.map +1 -0
- package/dist-npm/types/src/rtc/SpeechRTC.transport.d.ts +191 -0
- package/dist-npm/types/src/rtc/SpeechRTC.transport.d.ts.map +1 -0
- package/dist-npm/types/src/store/CloudDrive.d.ts +140 -0
- package/dist-npm/types/src/store/CloudDrive.d.ts.map +1 -0
- package/dist-npm/types/src/store/LocalStorageUtil.d.ts +136 -0
- package/dist-npm/types/src/store/LocalStorageUtil.d.ts.map +1 -0
- package/dist-npm/types/src/store/PersonalPageStore.base.d.ts +267 -0
- package/dist-npm/types/src/store/PersonalPageStore.base.d.ts.map +1 -0
- package/dist-npm/types/src/store/PersonalPageStore.d.ts +13 -0
- package/dist-npm/types/src/store/PersonalPageStore.d.ts.map +1 -0
- package/dist-npm/types/src/store/PersonalPageStore.data.d.ts +198 -0
- package/dist-npm/types/src/store/PersonalPageStore.data.d.ts.map +1 -0
- package/dist-npm/types/src/store/PersonalPageStore.sync.d.ts +171 -0
- package/dist-npm/types/src/store/PersonalPageStore.sync.d.ts.map +1 -0
- package/dist-npm/types/src/store/PersonalPageStore.types.d.ts +92 -0
- package/dist-npm/types/src/store/PersonalPageStore.types.d.ts.map +1 -0
- package/dist-npm/types/src/store/YMLParser.d.ts +96 -0
- package/dist-npm/types/src/store/YMLParser.d.ts.map +1 -0
- package/dist-npm/types/src/tools/AgentTool.d.ts +110 -0
- package/dist-npm/types/src/tools/AgentTool.d.ts.map +1 -0
- package/dist-npm/types/src/tools/AppTools.d.ts +122 -0
- package/dist-npm/types/src/tools/AppTools.d.ts.map +1 -0
- package/dist-npm/types/src/tools/ExecuteTool.d.ts +96 -0
- package/dist-npm/types/src/tools/ExecuteTool.d.ts.map +1 -0
- package/dist-npm/types/src/tools/FileTools.d.ts +77 -0
- package/dist-npm/types/src/tools/FileTools.d.ts.map +1 -0
- package/dist-npm/types/src/tools/MinigameTools.d.ts +234 -0
- package/dist-npm/types/src/tools/MinigameTools.d.ts.map +1 -0
- package/dist-npm/types/src/tools/MqttTool.d.ts +53 -0
- package/dist-npm/types/src/tools/MqttTool.d.ts.map +1 -0
- package/dist-npm/types/src/tools/PersonalPageTool.d.ts +57 -0
- package/dist-npm/types/src/tools/PersonalPageTool.d.ts.map +1 -0
- package/dist-npm/types/src/tools/SummarizeTool.d.ts +279 -0
- package/dist-npm/types/src/tools/SummarizeTool.d.ts.map +1 -0
- package/dist-npm/types/src/tools/WebTool.d.ts +106 -0
- package/dist-npm/types/src/tools/WebTool.d.ts.map +1 -0
- package/dist-npm/types/src/types/common.d.ts +164 -0
- package/dist-npm/types/src/types/common.d.ts.map +1 -0
- package/dist-npm/types/src/ui/LocalAPIKeySettings.d.ts +229 -0
- package/dist-npm/types/src/ui/LocalAPIKeySettings.d.ts.map +1 -0
- package/dist-npm/types/src/ui/LoginWindow.d.ts +163 -0
- package/dist-npm/types/src/ui/LoginWindow.d.ts.map +1 -0
- package/dist-npm/types/src/ui/ProfileWindow.d.ts +75 -0
- package/dist-npm/types/src/ui/ProfileWindow.d.ts.map +1 -0
- package/dist-npm/types/src/ui/VerifyHuman.d.ts +23 -0
- package/dist-npm/types/src/ui/VerifyHuman.d.ts.map +1 -0
- package/dist-npm/types/src/ui/WorkspaceViewer.d.ts +184 -0
- package/dist-npm/types/src/ui/WorkspaceViewer.d.ts.map +1 -0
- package/dist-npm/types/src/user/SocialFriends.d.ts +173 -0
- package/dist-npm/types/src/user/SocialFriends.d.ts.map +1 -0
- package/dist-npm/types/src/user/UserWorks.d.ts +187 -0
- package/dist-npm/types/src/user/UserWorks.d.ts.map +1 -0
- package/dist-npm/types/src/utils/ImageUtils.d.ts +107 -0
- package/dist-npm/types/src/utils/ImageUtils.d.ts.map +1 -0
- package/dist-npm/types/src/utils/SDKLogger.d.ts +111 -0
- package/dist-npm/types/src/utils/SDKLogger.d.ts.map +1 -0
- package/dist-npm/types/src/utils/translation.d.ts +95 -0
- package/dist-npm/types/src/utils/translation.d.ts.map +1 -0
- package/dist-npm/types/src/wechat/WxAuth.d.ts +126 -0
- package/dist-npm/types/src/wechat/WxAuth.d.ts.map +1 -0
- package/dist-npm/types/src/wechat/WxLaunchApp.d.ts +96 -0
- package/dist-npm/types/src/wechat/WxLaunchApp.d.ts.map +1 -0
- package/dist-npm/types/src/wechat/WxUtils.d.ts +145 -0
- package/dist-npm/types/src/wechat/WxUtils.d.ts.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MinigameTools.ts — 小游戏 iframe 覆盖层管理工具(TypeScript 完整实现)
|
|
3
|
+
*
|
|
4
|
+
* 向 LLM 暴露两个工具:
|
|
5
|
+
* - `load_minigame`:将工作空间相对路径的 HTML 加载到 iframe 覆盖层
|
|
6
|
+
* - `configure_minigame`:运行时更新 iframe 外观(位置/大小/标题栏等)
|
|
7
|
+
*
|
|
8
|
+
* 特性:
|
|
9
|
+
* - 多 slot 并发(每个 slot 独立 iframe + z-index)
|
|
10
|
+
* - 拖拽标题栏、关闭按钮
|
|
11
|
+
* - postMessage 双向通信 + gameLoaded / gameFinished 生命周期事件
|
|
12
|
+
* - persistKey 防止重复加载同一游戏
|
|
13
|
+
* - backdrop 遮罩层支持
|
|
14
|
+
* - 前景元素提升(setSlotForegroundElements)
|
|
15
|
+
* - 与 DigitalHuman 集成(launchSkill / openSkill 消息桥)
|
|
16
|
+
*/
|
|
17
|
+
/** OpenAI Function Calling 工具定义 */
|
|
18
|
+
export interface ToolDefinition {
|
|
19
|
+
type: 'function';
|
|
20
|
+
function: {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
parameters: Record<string, unknown>;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** 帧外观选项(load_minigame / configure_minigame 参数) */
|
|
27
|
+
export interface FrameOptions {
|
|
28
|
+
width?: number | string;
|
|
29
|
+
height?: number | string;
|
|
30
|
+
left?: string;
|
|
31
|
+
top?: string;
|
|
32
|
+
right?: string;
|
|
33
|
+
bottom?: string;
|
|
34
|
+
zIndex?: number;
|
|
35
|
+
showTitleBar?: boolean;
|
|
36
|
+
showCloseButton?: boolean;
|
|
37
|
+
titleText?: string;
|
|
38
|
+
borderRadius?: string;
|
|
39
|
+
boxShadow?: string;
|
|
40
|
+
background?: string;
|
|
41
|
+
backdrop?: string | boolean;
|
|
42
|
+
slot?: string;
|
|
43
|
+
layout?: string;
|
|
44
|
+
preset?: string;
|
|
45
|
+
frameOptions?: FrameOptions;
|
|
46
|
+
[key: string]: unknown;
|
|
47
|
+
}
|
|
48
|
+
/** Slot 会话信息 */
|
|
49
|
+
export interface SlotSession {
|
|
50
|
+
slot: string;
|
|
51
|
+
parentSlot: string | null;
|
|
52
|
+
promptFile: string;
|
|
53
|
+
tools?: string[];
|
|
54
|
+
parentPromptFile: string;
|
|
55
|
+
parentTools?: string[];
|
|
56
|
+
root: boolean;
|
|
57
|
+
restorePolicy: string;
|
|
58
|
+
closePolicy: string;
|
|
59
|
+
frameOptions: FrameOptions | null;
|
|
60
|
+
title: string;
|
|
61
|
+
sourceSlot: string;
|
|
62
|
+
openedAt: number;
|
|
63
|
+
preload: boolean;
|
|
64
|
+
revealed: boolean;
|
|
65
|
+
[key: string]: unknown;
|
|
66
|
+
}
|
|
67
|
+
/** MinigameTools 构造选项 */
|
|
68
|
+
export interface MinigameToolsOptions {
|
|
69
|
+
width?: number;
|
|
70
|
+
height?: number;
|
|
71
|
+
zIndex?: number;
|
|
72
|
+
containerId?: string;
|
|
73
|
+
onEvent?: (data: Record<string, unknown>) => void;
|
|
74
|
+
log?: (msg: string) => void;
|
|
75
|
+
}
|
|
76
|
+
/** openSlotSession 选项 */
|
|
77
|
+
export interface OpenSlotSessionOptions extends FrameOptions {
|
|
78
|
+
slot?: string;
|
|
79
|
+
root?: boolean;
|
|
80
|
+
parentSlot?: string;
|
|
81
|
+
sourceSlot?: string;
|
|
82
|
+
promptFile?: string;
|
|
83
|
+
skillPath?: string;
|
|
84
|
+
tools?: string[];
|
|
85
|
+
parentPromptFile?: string;
|
|
86
|
+
parentTools?: string[];
|
|
87
|
+
restorePolicy?: string;
|
|
88
|
+
closePolicy?: string;
|
|
89
|
+
gameTitle?: string;
|
|
90
|
+
title?: string;
|
|
91
|
+
preload?: boolean;
|
|
92
|
+
foregroundElements?: HTMLElement | HTMLElement[] | string | string[];
|
|
93
|
+
foregroundOptions?: Record<string, unknown>;
|
|
94
|
+
autoContinue?: boolean;
|
|
95
|
+
[key: string]: unknown;
|
|
96
|
+
}
|
|
97
|
+
/** SDK 最小接口 */
|
|
98
|
+
interface SDKRef {
|
|
99
|
+
copilotTools?: {
|
|
100
|
+
registerToolCategory?: (name: string, entry: Record<string, unknown>) => void;
|
|
101
|
+
resolveEnabledCategories?: (tools: Record<string, unknown>) => string[];
|
|
102
|
+
};
|
|
103
|
+
personalPageStore?: {
|
|
104
|
+
withConfig: (config: Record<string, unknown>) => {
|
|
105
|
+
getAbsUrl: (path: string) => string;
|
|
106
|
+
workspace?: string;
|
|
107
|
+
mountedFolder?: unknown;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
getToken?: () => string;
|
|
111
|
+
constructor?: {
|
|
112
|
+
source?: string;
|
|
113
|
+
sourceIsModule?: boolean;
|
|
114
|
+
};
|
|
115
|
+
token?: string | null;
|
|
116
|
+
__minigameTools?: MinigameTools;
|
|
117
|
+
[key: string]: unknown;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* MinigameTools — 小游戏 iframe 管理工具(供 CopilotTools 注册为 'minigame' 分类)。
|
|
121
|
+
*
|
|
122
|
+
* 使用工厂方法创建实例:
|
|
123
|
+
* ```ts
|
|
124
|
+
* const minigame = MinigameTools.register(sdk, { onEvent: (d) => console.log(d) });
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export default class MinigameTools {
|
|
128
|
+
static readonly definitions: ToolDefinition[];
|
|
129
|
+
readonly sdk: SDKRef;
|
|
130
|
+
defaultWidth: number;
|
|
131
|
+
defaultHeight: number;
|
|
132
|
+
zIndex: number;
|
|
133
|
+
containerId: string;
|
|
134
|
+
private _listeners;
|
|
135
|
+
private _log;
|
|
136
|
+
private _slots;
|
|
137
|
+
private _slotSessions;
|
|
138
|
+
private _sessionStack;
|
|
139
|
+
private _launchHost;
|
|
140
|
+
private _zIndexCursor;
|
|
141
|
+
private _activeSlot;
|
|
142
|
+
_defaultSlot: string | null;
|
|
143
|
+
private _msgListener;
|
|
144
|
+
constructor(sdk: SDKRef, options?: MinigameToolsOptions);
|
|
145
|
+
get _container(): HTMLDivElement | null;
|
|
146
|
+
get _iframe(): HTMLIFrameElement | null;
|
|
147
|
+
get _title(): HTMLSpanElement | null;
|
|
148
|
+
get _header(): HTMLDivElement | null;
|
|
149
|
+
get _closeBtn(): HTMLButtonElement | null;
|
|
150
|
+
private _getActiveSlotField;
|
|
151
|
+
/**
|
|
152
|
+
* 创建并注册 MinigameTools 实例(幂等)。
|
|
153
|
+
* 若 sdk 上已有实例则复用,并追加 onEvent / log。
|
|
154
|
+
*/
|
|
155
|
+
static register(sdk: SDKRef, options?: MinigameToolsOptions): MinigameTools;
|
|
156
|
+
/**
|
|
157
|
+
* 向 CopilotTools 注册 'minigame' 工具分类并启动 postMessage 监听。
|
|
158
|
+
*/
|
|
159
|
+
register(): this;
|
|
160
|
+
private _resolveSlot;
|
|
161
|
+
private _getOrCreateSlot;
|
|
162
|
+
private _getSlot;
|
|
163
|
+
/**
|
|
164
|
+
* 设置当前活跃 slot,将 `id="minigame-iframe"` 移动到目标 slot 的 iframe。
|
|
165
|
+
*/
|
|
166
|
+
setActiveSlot(name: string): void;
|
|
167
|
+
/** 当前活跃 slot 名称。 */
|
|
168
|
+
get activeSlot(): string;
|
|
169
|
+
setLaunchHost(host: typeof this._launchHost): void;
|
|
170
|
+
getLaunchSession(slotName?: string): SlotSession | null;
|
|
171
|
+
finishSlotSession(slotName?: string): SlotSession | null;
|
|
172
|
+
/**
|
|
173
|
+
* 打开一个命名 slot 会话(设置尺寸/层级/前景元素并激活 slot)。
|
|
174
|
+
*/
|
|
175
|
+
openSlotSession(options?: OpenSlotSessionOptions): SlotSession;
|
|
176
|
+
restorePreviousActiveSlot(preferredSlot?: string): string | null;
|
|
177
|
+
/**
|
|
178
|
+
* 运行时更新 slot 的帧外观配置(可在加载前后调用)。
|
|
179
|
+
*/
|
|
180
|
+
configure(options?: FrameOptions): void;
|
|
181
|
+
setSlotForegroundElements(slotName: string | undefined, elements?: HTMLElement | HTMLElement[] | string | string[], options?: Record<string, unknown>): void;
|
|
182
|
+
/**
|
|
183
|
+
* 执行工具函数(CopilotTools 分发入口)。
|
|
184
|
+
*/
|
|
185
|
+
execute(fnName: string, fnArgs?: Record<string, unknown>, config?: Record<string, unknown>): Promise<unknown>;
|
|
186
|
+
/**
|
|
187
|
+
* 预加载(隐藏加载)小游戏页面。
|
|
188
|
+
*/
|
|
189
|
+
preload(fnArgs?: Record<string, unknown>, config?: Record<string, unknown>): Promise<unknown>;
|
|
190
|
+
/**
|
|
191
|
+
* 显示已预加载的 slot(使其可见)。
|
|
192
|
+
*/
|
|
193
|
+
showSlot(slotName: string | undefined, options?: Record<string, unknown>): boolean;
|
|
194
|
+
private _loadMinigame;
|
|
195
|
+
/**
|
|
196
|
+
* 隐藏并清除 slot 的 iframe src。
|
|
197
|
+
* @param opts - slot 名称和关闭原因
|
|
198
|
+
*/
|
|
199
|
+
close(opts?: {
|
|
200
|
+
slot?: string;
|
|
201
|
+
reason?: string;
|
|
202
|
+
}): void;
|
|
203
|
+
/** 销毁所有 slot 并移除 DOM 和监听器。 */
|
|
204
|
+
destroy(): void;
|
|
205
|
+
/**
|
|
206
|
+
* 注册 iframe 事件监听器(gameLoaded / gameFinished / 自定义)。
|
|
207
|
+
* @returns unsubscribe 函数
|
|
208
|
+
*/
|
|
209
|
+
addEventListener(fn: (data: Record<string, unknown>) => void): () => void;
|
|
210
|
+
removeEventListener(fn: (data: Record<string, unknown>) => void): void;
|
|
211
|
+
/**
|
|
212
|
+
* 向指定 slot 的 minigame iframe 发送 postMessage。
|
|
213
|
+
* @param data - 结构化可克隆的消息载荷
|
|
214
|
+
* @param opts - 目标 slot(默认当前活跃 slot)
|
|
215
|
+
*/
|
|
216
|
+
postMessageToMinigame(data: Record<string, unknown>, opts?: {
|
|
217
|
+
slot?: string;
|
|
218
|
+
}): boolean;
|
|
219
|
+
private _createSessionSlotName;
|
|
220
|
+
private _withoutBackdrop;
|
|
221
|
+
private _nextZIndex;
|
|
222
|
+
private _resolveFrameOptions;
|
|
223
|
+
private _applyFrameOptions;
|
|
224
|
+
private _showBackdrop;
|
|
225
|
+
private _hideBackdrop;
|
|
226
|
+
private _normalizeForegroundElements;
|
|
227
|
+
private _applyForegroundElements;
|
|
228
|
+
private _restoreForegroundElements;
|
|
229
|
+
private _ensureMessageListener;
|
|
230
|
+
private _createSlotDOM;
|
|
231
|
+
private _wireDrag;
|
|
232
|
+
}
|
|
233
|
+
export {};
|
|
234
|
+
//# sourceMappingURL=MinigameTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinigameTools.d.ts","sourceRoot":"","sources":["../../../../src/tools/MinigameTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MqttTool.ts — MQTT 工具类(供 CopilotTools 注册为 'mqtt' 分类)
|
|
3
|
+
*
|
|
4
|
+
* 封装 MqttManager,向 LLM 暴露三个工具函数:
|
|
5
|
+
* - `mqtt_publish`:向指定 topic 发布消息
|
|
6
|
+
* - `mqtt_get`:读取指定 topic 的最新消息
|
|
7
|
+
* - `mqtt_subscribe`:订阅指定 topic
|
|
8
|
+
*
|
|
9
|
+
* 使用示例(通过 CopilotTools):
|
|
10
|
+
* ```ts
|
|
11
|
+
* const result = await copilot.mqtt_publish({ topic: 'light/control', message: 'on' });
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { MqttConfig } from '../ai-chat/MqttManager';
|
|
15
|
+
/** 工具函数定义(OpenAI Function Calling 格式) */
|
|
16
|
+
export interface ToolDefinition {
|
|
17
|
+
type: 'function';
|
|
18
|
+
function: {
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
parameters: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** MqttTool 运行时配置(继承 MqttConfig 并添加 topic 覆盖) */
|
|
25
|
+
export type MqttToolConfig = MqttConfig & {
|
|
26
|
+
/** 覆盖 args.topic 的默认 topic */
|
|
27
|
+
topic?: string;
|
|
28
|
+
};
|
|
29
|
+
declare class MqttTool {
|
|
30
|
+
/** LLM 可见的工具定义列表 */
|
|
31
|
+
static readonly definitions: ToolDefinition[];
|
|
32
|
+
private config;
|
|
33
|
+
private mqttManager;
|
|
34
|
+
constructor();
|
|
35
|
+
/**
|
|
36
|
+
* 更新工具运行时配置(由 CopilotTools.setToolConfig 调用)。
|
|
37
|
+
* 同步将配置传递给底层 MqttManager。
|
|
38
|
+
*/
|
|
39
|
+
setConfig(config: MqttToolConfig): void;
|
|
40
|
+
/**
|
|
41
|
+
* 执行 MQTT 工具操作。
|
|
42
|
+
*
|
|
43
|
+
* @param name - 工具名('mqtt_publish' | 'mqtt_get' | 'mqtt_subscribe')
|
|
44
|
+
* @param args - 工具参数(topic + message 等)
|
|
45
|
+
* @param config - 运行时配置(可覆盖 this.config)
|
|
46
|
+
*/
|
|
47
|
+
execute(name: string, args?: {
|
|
48
|
+
topic?: string;
|
|
49
|
+
message?: string;
|
|
50
|
+
}, config?: MqttToolConfig): Promise<string>;
|
|
51
|
+
}
|
|
52
|
+
export default MqttTool;
|
|
53
|
+
//# sourceMappingURL=MqttTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MqttTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/MqttTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACtF;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,cAAM,QAAQ;IACZ,oBAAoB;IACpB,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAoD3C;IAEF,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,WAAW,CAAc;;IAMjC;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAOvC;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,EAC/C,MAAM,GAAE,cAAqC,GAC5C,OAAO,CAAC,MAAM,CAAC;CAgCnB;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PersonalPageTool.ts — 个人页面数据存取工具(供 CopilotTools 注册为 'personalPage' 分类)
|
|
3
|
+
*
|
|
4
|
+
* 封装 sdk.personalPageStore,向 LLM 暴露两个工具函数:
|
|
5
|
+
* - `personal_page_load`:按 pageName/key 读取持久化数据
|
|
6
|
+
* - `personal_page_save`:按 pageName/key 写入持久化数据
|
|
7
|
+
*
|
|
8
|
+
* 数据层级:`[Root] → [Category (pageName)] → [Property (key)]`
|
|
9
|
+
*/
|
|
10
|
+
/** 工具函数定义(OpenAI Function Calling 格式) */
|
|
11
|
+
export interface ToolDefinition {
|
|
12
|
+
type: 'function';
|
|
13
|
+
function: {
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
parameters: Record<string, unknown>;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** PersonalPageTool 运行时配置 */
|
|
20
|
+
export interface PersonalPageToolConfig {
|
|
21
|
+
/** 页面名称前缀(从 config 或 args 中取) */
|
|
22
|
+
pageName?: string;
|
|
23
|
+
/** key 前缀 */
|
|
24
|
+
key?: string;
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
/** SDK 最小接口 */
|
|
28
|
+
interface SDKRef {
|
|
29
|
+
personalPageStore?: {
|
|
30
|
+
loadPageData(pageName: string, key?: string): Promise<unknown>;
|
|
31
|
+
savePageData(pageName: string, key: string | undefined, data: unknown, bForceFlush?: boolean): Promise<void>;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
declare class PersonalPageTool {
|
|
35
|
+
/** LLM 可见的工具定义列表 */
|
|
36
|
+
static readonly definitions: ToolDefinition[];
|
|
37
|
+
private sdk;
|
|
38
|
+
private config;
|
|
39
|
+
constructor(sdk: SDKRef);
|
|
40
|
+
/** 更新工具运行时配置(由 CopilotTools.setToolConfig 调用)。 */
|
|
41
|
+
setConfig(config: PersonalPageToolConfig): void;
|
|
42
|
+
/**
|
|
43
|
+
* 执行个人页面工具操作。
|
|
44
|
+
*
|
|
45
|
+
* @param name - 工具名('personal_page_load' | 'personal_page_save')
|
|
46
|
+
* @param args - 工具参数
|
|
47
|
+
* @param config - 运行时配置(含 pageName / key 前缀)
|
|
48
|
+
*/
|
|
49
|
+
execute(name: string, args?: {
|
|
50
|
+
pageName?: string;
|
|
51
|
+
key?: string;
|
|
52
|
+
data?: unknown;
|
|
53
|
+
bForceFlush?: boolean;
|
|
54
|
+
}, config?: PersonalPageToolConfig): Promise<string>;
|
|
55
|
+
}
|
|
56
|
+
export default PersonalPageTool;
|
|
57
|
+
//# sourceMappingURL=PersonalPageTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersonalPageTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/PersonalPageTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACtF;AAED,6BAA6B;AAC7B,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAe;AACf,UAAU,MAAM;IACd,iBAAiB,CAAC,EAAE;QAClB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9G,CAAC;CACH;AAED,cAAM,gBAAgB;IACpB,oBAAoB;IACpB,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAgE3C;IAEF,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAA8B;gBAEhC,GAAG,EAAE,MAAM;IAIvB,kDAAkD;IAClD,SAAS,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAM/C;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,WAAW,CAAC,EAAE,OAAO,CAAC;KAClB,EACN,MAAM,GAAE,sBAA2B,GAClC,OAAO,CAAC,MAAM,CAAC;CA2DnB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SummarizeTool.ts — 对话历史摘要工具(TypeScript 完整实现)
|
|
3
|
+
*
|
|
4
|
+
* 提供两个类:
|
|
5
|
+
* - SummarizeTool:CopilotTools 工具执行类(summarize_conversation / get_history_messages)
|
|
6
|
+
* - SummarizeAgent:专用摘要 agent 管理类,含静默计时器和自动触发阈值检查
|
|
7
|
+
*/
|
|
8
|
+
/** OpenAI Function Calling 工具定义 */
|
|
9
|
+
export interface ToolDefinition {
|
|
10
|
+
type: 'function';
|
|
11
|
+
function: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
parameters: Record<string, unknown>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** 聊天消息(支持 ChatSession messages 和 RTCChatSession _history 两种来源) */
|
|
18
|
+
export interface SummarizeChatMessage {
|
|
19
|
+
role: string;
|
|
20
|
+
content?: unknown;
|
|
21
|
+
text?: string;
|
|
22
|
+
tool_calls?: Array<{
|
|
23
|
+
id?: string;
|
|
24
|
+
function?: {
|
|
25
|
+
name?: string;
|
|
26
|
+
arguments?: string;
|
|
27
|
+
};
|
|
28
|
+
}>;
|
|
29
|
+
tool_call_id?: string;
|
|
30
|
+
_contextOnly?: boolean;
|
|
31
|
+
_ts?: number;
|
|
32
|
+
}
|
|
33
|
+
/** filterSessionMessages 的过滤条件 */
|
|
34
|
+
export interface MessageFilters {
|
|
35
|
+
role?: string;
|
|
36
|
+
keyword?: string;
|
|
37
|
+
excludeSystem?: boolean;
|
|
38
|
+
excludeToolCalls?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** summarize() 返回值 */
|
|
41
|
+
export interface SummarizeResult {
|
|
42
|
+
summary: string;
|
|
43
|
+
removedCount: number;
|
|
44
|
+
remainingCount: number;
|
|
45
|
+
status?: 'pending' | 'merged';
|
|
46
|
+
mode?: string;
|
|
47
|
+
summarizeBeginTime?: number;
|
|
48
|
+
}
|
|
49
|
+
/** summarize() 调用选项 */
|
|
50
|
+
export interface SummarizeOptions {
|
|
51
|
+
keepRecentRounds?: number;
|
|
52
|
+
prompt?: string;
|
|
53
|
+
model?: string;
|
|
54
|
+
enableTools?: string[];
|
|
55
|
+
mode?: 'replace' | 'append';
|
|
56
|
+
async?: boolean;
|
|
57
|
+
}
|
|
58
|
+
/** ChatSession / RTCChatSession 最小接口(避免循环引用) */
|
|
59
|
+
export interface SummarizeSessionRef {
|
|
60
|
+
messages?: SummarizeChatMessage[];
|
|
61
|
+
_history?: Array<{
|
|
62
|
+
role: string;
|
|
63
|
+
text?: string;
|
|
64
|
+
content?: string;
|
|
65
|
+
roundId?: unknown;
|
|
66
|
+
}>;
|
|
67
|
+
sdk?: {
|
|
68
|
+
aiChat?: unknown;
|
|
69
|
+
copilotTools?: {
|
|
70
|
+
resolveEnabledCategories?: (t: Record<string, unknown>) => string[];
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
aiChat?: {
|
|
74
|
+
sdk?: unknown;
|
|
75
|
+
};
|
|
76
|
+
model?: string;
|
|
77
|
+
workspace?: string;
|
|
78
|
+
mountFolder?: unknown;
|
|
79
|
+
sandbox?: {
|
|
80
|
+
processTemplate?: (s: string) => Promise<string>;
|
|
81
|
+
registerAPI?: (name: string, fn: (...args: unknown[]) => Promise<unknown>) => void;
|
|
82
|
+
};
|
|
83
|
+
_isSummarizing?: boolean;
|
|
84
|
+
_pendingChildResults?: Array<unknown>;
|
|
85
|
+
skipHistory?: boolean;
|
|
86
|
+
chatId?: string;
|
|
87
|
+
modId?: string;
|
|
88
|
+
historyId?: string;
|
|
89
|
+
[key: string]: unknown;
|
|
90
|
+
}
|
|
91
|
+
/** SummarizeAgent 构造参数 */
|
|
92
|
+
export interface SummarizeAgentParams {
|
|
93
|
+
session: SummarizeSessionRef;
|
|
94
|
+
sdk: unknown;
|
|
95
|
+
getOptions: (opts?: Record<string, unknown>) => SummarizeAgentOptions;
|
|
96
|
+
getRtcSession?: () => SummarizeSessionRef | null;
|
|
97
|
+
onEvent?: (eventName: string, data: unknown) => void;
|
|
98
|
+
}
|
|
99
|
+
/** SummarizeAgent.getOptions 返回值 */
|
|
100
|
+
export interface SummarizeAgentOptions {
|
|
101
|
+
enabled?: boolean;
|
|
102
|
+
keepRecentRounds?: number;
|
|
103
|
+
maxRounds?: number;
|
|
104
|
+
maxTextLength?: number;
|
|
105
|
+
silentTickInterval?: number;
|
|
106
|
+
mode?: 'replace' | 'append';
|
|
107
|
+
model?: string;
|
|
108
|
+
enableTools?: string[];
|
|
109
|
+
prompt?: string;
|
|
110
|
+
async?: boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* SummarizeTool — 对话摘要工具(供 CopilotTools 注册为 'summarize' 分类)。
|
|
114
|
+
*
|
|
115
|
+
* 向 LLM 暴露三个工具:
|
|
116
|
+
* - `summarize_conversation`:压缩会话历史(replace / append 两种模式)
|
|
117
|
+
* - `get_history_messages`:获取最近 N 条消息(支持角色/关键词过滤)
|
|
118
|
+
* - `get_history_messages_count`:获取消息数量
|
|
119
|
+
*/
|
|
120
|
+
declare class SummarizeTool {
|
|
121
|
+
static readonly definitions: ToolDefinition[];
|
|
122
|
+
config: Record<string, unknown>;
|
|
123
|
+
constructor();
|
|
124
|
+
/** 更新运行时配置(由 CopilotTools.setToolConfig 调用)。 */
|
|
125
|
+
setConfig(config: Record<string, unknown>): void;
|
|
126
|
+
/**
|
|
127
|
+
* 执行摘要分类工具(CopilotTools 分发入口)。
|
|
128
|
+
* @param name - 工具名
|
|
129
|
+
* @param args - 工具参数
|
|
130
|
+
* @param config - 运行时配置(含 `_session`)
|
|
131
|
+
*/
|
|
132
|
+
execute(name: string, args: Record<string, unknown>, config?: Record<string, unknown>): Promise<string>;
|
|
133
|
+
/**
|
|
134
|
+
* 过滤会话消息。
|
|
135
|
+
* 同时支持 ChatSession(messages 数组)和 RTCChatSession(_history 数组)。
|
|
136
|
+
*
|
|
137
|
+
* @param session - 会话对象
|
|
138
|
+
* @param filters - 可选过滤条件(role / keyword / excludeSystem / excludeToolCalls)
|
|
139
|
+
*/
|
|
140
|
+
filterSessionMessages(session: SummarizeSessionRef, filters?: MessageFilters | null): SummarizeChatMessage[];
|
|
141
|
+
/**
|
|
142
|
+
* 执行 get_history_messages 工具。
|
|
143
|
+
* 返回 JSON 序列化的消息数组(默认过滤 system 和纯工具调用消息)。
|
|
144
|
+
*/
|
|
145
|
+
executeGetHistoryMessages(args: Record<string, unknown>, config?: Record<string, unknown>): string;
|
|
146
|
+
/**
|
|
147
|
+
* 执行 get_history_messages_count 工具。
|
|
148
|
+
* 返回 `{ count: number, total: number }` 的 JSON 字符串。
|
|
149
|
+
*/
|
|
150
|
+
executeGetHistoryMessagesCount(args: Record<string, unknown>, config?: Record<string, unknown>): string;
|
|
151
|
+
/**
|
|
152
|
+
* 执行 summarize_conversation 工具(CopilotTools 分发入口)。
|
|
153
|
+
* 通过 SummarizeAgent 创建临时摘要会话,支持 replace / append / async 三种模式。
|
|
154
|
+
*/
|
|
155
|
+
executeSummarize(args: Record<string, unknown>, config?: Record<string, unknown>): Promise<string>;
|
|
156
|
+
/**
|
|
157
|
+
* 对指定会话的对话历史进行摘要压缩。
|
|
158
|
+
*
|
|
159
|
+
* 创建一个临时 SummarizeAgent,其系统 prompt 通过
|
|
160
|
+
* `${await copilot.get_history_messages()}` 注入完整对话历史。
|
|
161
|
+
*
|
|
162
|
+
* @param session - 要摘要的会话(ChatSession 或 RTCChatSession)
|
|
163
|
+
* @param options - 摘要选项(保留轮数 / 自定义 prompt / 模型 / 模式 / 异步等)
|
|
164
|
+
*/
|
|
165
|
+
summarize(session: SummarizeSessionRef, options?: SummarizeOptions): Promise<SummarizeResult>;
|
|
166
|
+
/** @private 后台异步执行摘要,结果推入 _pendingChildResults。 */
|
|
167
|
+
private _runAsyncSummarize;
|
|
168
|
+
/** 从会话获取 AIChat 实例(兼容 ChatSession 和 RTCChatSession)。 */
|
|
169
|
+
static getAIChat(session: SummarizeSessionRef): unknown;
|
|
170
|
+
/**
|
|
171
|
+
* 获取规范化的消息数组(统一 ChatSession 和 RTCChatSession 格式)。
|
|
172
|
+
* RTCChatSession 的 _history `{ role, text }` 条目转换为 `{ role, content }`。
|
|
173
|
+
*/
|
|
174
|
+
static getMessages(session: SummarizeSessionRef): SummarizeChatMessage[];
|
|
175
|
+
/** 检查会话是否为基于 messages 数组的 ChatSession(可直接修改)。 */
|
|
176
|
+
static isMessageBased(session: SummarizeSessionRef): boolean;
|
|
177
|
+
/**
|
|
178
|
+
* 将消息数组序列化为人类可读的文本块(供摘要 LLM 消费)。
|
|
179
|
+
* 工具结果和纯工具调用消息做特殊格式化。
|
|
180
|
+
*/
|
|
181
|
+
static serializeMessages(messages: SummarizeChatMessage[]): string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* SummarizeAgent — 专用摘要 agent 管理类。
|
|
185
|
+
*
|
|
186
|
+
* 管理一个独立的 agent ChatSession,提供:
|
|
187
|
+
* - 静默计时器(silentTickInterval):闲置一段时间后自动触发摘要
|
|
188
|
+
* - 自动触发阈值检查(maxRounds / maxTextLength):超过阈值时触发
|
|
189
|
+
* - CopilotTools executor 覆盖:使摘要工具使用 agent 而非内置 SummarizeTool
|
|
190
|
+
* - RTC 历史同步(syncHistoryToRTC)
|
|
191
|
+
*
|
|
192
|
+
* 通常由 DigitalHuman 创建:
|
|
193
|
+
* ```ts
|
|
194
|
+
* const agent = new SummarizeAgent({ session, sdk, getOptions: () => opts });
|
|
195
|
+
* await agent.loadConfig(config);
|
|
196
|
+
* agent.startTimer();
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
declare class SummarizeAgent {
|
|
200
|
+
readonly session: SummarizeSessionRef;
|
|
201
|
+
readonly sdk: unknown;
|
|
202
|
+
private _getOptions;
|
|
203
|
+
private _getRtcSession;
|
|
204
|
+
private _onEvent;
|
|
205
|
+
private _tool;
|
|
206
|
+
private _config;
|
|
207
|
+
private _agentSession;
|
|
208
|
+
private _running;
|
|
209
|
+
private _timer;
|
|
210
|
+
private _lastActivity;
|
|
211
|
+
private _tickSummarizing;
|
|
212
|
+
private _autoTriggerSignature;
|
|
213
|
+
private _pendingAutoCheck;
|
|
214
|
+
private _checkAndTriggerRunning;
|
|
215
|
+
constructor({ session, sdk, getOptions, getRtcSession, onEvent }: SummarizeAgentParams);
|
|
216
|
+
/** 当前已加载的 agent 配置(未加载时为 null)。 */
|
|
217
|
+
get config(): Record<string, unknown> | null;
|
|
218
|
+
/**
|
|
219
|
+
* 加载 agent 配置,创建专用摘要 ChatSession。
|
|
220
|
+
*
|
|
221
|
+
* @param config - 解析后的 agent 配置(model / system_prompt / tools 等)
|
|
222
|
+
* @param opts - skipCopilotToolsOverride:true 时跳过 CopilotTools executor 覆盖
|
|
223
|
+
*/
|
|
224
|
+
loadConfig(config: Record<string, unknown>, { skipCopilotToolsOverride }?: {
|
|
225
|
+
skipCopilotToolsOverride?: boolean | undefined;
|
|
226
|
+
}): Promise<Record<string, unknown>>;
|
|
227
|
+
/**
|
|
228
|
+
* 启动静默计时器(间隔由 getOptions().silentTickInterval 控制,单位秒)。
|
|
229
|
+
* 若已存在计时器则先停止再重新启动。
|
|
230
|
+
*/
|
|
231
|
+
startTimer(): void;
|
|
232
|
+
/** 停止静默计时器。 */
|
|
233
|
+
stopTimer(): void;
|
|
234
|
+
/** 记录当前时刻为最近活动时间(重置闲置计时)。 */
|
|
235
|
+
resetActivity(): void;
|
|
236
|
+
/**
|
|
237
|
+
* 检查是否超过自动摘要阈值并触发摘要。
|
|
238
|
+
* 优先通过已加载的 agent 会话执行,否则回退到内置 SummarizeTool。
|
|
239
|
+
*
|
|
240
|
+
* @param options - 可选的运行时选项覆盖
|
|
241
|
+
*/
|
|
242
|
+
checkAndTrigger(options?: Record<string, unknown>): Promise<void>;
|
|
243
|
+
/**
|
|
244
|
+
* 运行一次专用 agent 摘要。
|
|
245
|
+
* 若 agent 会话不存在或尚未加载配置则立即返回空结果。
|
|
246
|
+
*
|
|
247
|
+
* @param options - 可选覆盖(mode / keepRecentRounds)
|
|
248
|
+
*/
|
|
249
|
+
run(options?: {
|
|
250
|
+
mode?: string;
|
|
251
|
+
keepRecentRounds?: number;
|
|
252
|
+
}): Promise<SummarizeResult>;
|
|
253
|
+
/** 将 ChatSession messages 同步回 RTCChatSession 的 _history。 */
|
|
254
|
+
syncHistoryToRTC(): void;
|
|
255
|
+
/** 完全销毁 agent:停止计时器,清除所有状态。 */
|
|
256
|
+
destroy(): void;
|
|
257
|
+
/** @private 采集当前会话对话指标(用于自动触发阈值判断)。 */
|
|
258
|
+
private _collectConversationMetrics;
|
|
259
|
+
/** @private 生成触发签名(轮次桶 + 文本长度桶,用于去重判断)。 */
|
|
260
|
+
private _getAutoTriggerSignature;
|
|
261
|
+
/** @private 排队一次待处理的自动摘要检查(当前正在运行时使用)。 */
|
|
262
|
+
private _queuePendingAutoCheck;
|
|
263
|
+
/** @private 当前运行结束后处理排队的自动触发检查。 */
|
|
264
|
+
private _drainPendingAutoCheck;
|
|
265
|
+
/** @private 定时器 tick 处理器(闲置超时后触发摘要)。 */
|
|
266
|
+
private _onTick;
|
|
267
|
+
/** @private 创建专用摘要 agent ChatSession(共享父会话的 sandbox)。 */
|
|
268
|
+
private _createAgentSession;
|
|
269
|
+
/** @private 覆盖 CopilotTools 的 summarize 分类 executor,使其通过 agent 执行。 */
|
|
270
|
+
private _overrideCopilotToolsExecutor;
|
|
271
|
+
/**
|
|
272
|
+
* @private 在 sandbox 上注册 get_history_messages / get_history_messages_count 自定义 API,
|
|
273
|
+
* 使其可在 `${await copilot.get_history_messages()}` 模板表达式中调用。
|
|
274
|
+
*/
|
|
275
|
+
private _registerHistoryAPIsOnSandbox;
|
|
276
|
+
}
|
|
277
|
+
export { SummarizeTool, SummarizeAgent };
|
|
278
|
+
export default SummarizeTool;
|
|
279
|
+
//# sourceMappingURL=SummarizeTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SummarizeTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/SummarizeTool.ts"],"names":[],"mappings":"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"}
|