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 @@
|
|
|
1
|
+
{"version":3,"file":"PersonalPageStore.sync.d.ts","sourceRoot":"","sources":["../../../../src/store/PersonalPageStore.sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,qBAAa,qBAAsB,SAAQ,qBAAqB;IAI9D;;;;;;OAMG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8CxD;;;;;OAKG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzD;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQpC;;;OAGG;IACH,oBAAoB,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAYtF;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA4B3C;;;;;;OAMG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BpF;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA2CzE;;;;;;;;OAQG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAsCxE;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAezB;;;;;OAKG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IA2BxC;;;;;;OAMG;IACG,cAAc,CAAC,SAAS,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA6BxD;;OAEG;IACG,iBAAiB,CAAC,SAAS,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAM3D;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAW5C;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAUlC;;;;;;;;;OASG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBvF;;;;;;;;OAQG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlG;;;;;;;;;OASG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,QAAQ,UAAQ,EAChB,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,SAAM,GACf,OAAO,CAAC,MAAM,CAAC;IA2ElB;;;;;OAKG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOrE;;;;;;;;OAQG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,UAAQ,EAAE,OAAO,GAAE,cAAc,GAAG,IAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CA4G1G"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PersonalPageStore.types.ts — PersonalPageStore 共享类型定义
|
|
3
|
+
*
|
|
4
|
+
* 被 PersonalPageStore.base / data / sync 三个分层文件共同使用,
|
|
5
|
+
* 避免循环导入。
|
|
6
|
+
*/
|
|
7
|
+
/** mountedFolder 规范化后的对象格式 */
|
|
8
|
+
export interface MountedFolder {
|
|
9
|
+
/** 外部用户名 */
|
|
10
|
+
username: string;
|
|
11
|
+
/** 外部工作空间名 */
|
|
12
|
+
workspace: string;
|
|
13
|
+
/** 远端存储路径(默认继承 remoteStorePath)*/
|
|
14
|
+
remoteStorePath: string;
|
|
15
|
+
}
|
|
16
|
+
/** addSearchPath 注册的 URL 回退搜索路径 */
|
|
17
|
+
export interface SearchPath {
|
|
18
|
+
/** 路径前缀(含 workspace,如 "myws/skills") */
|
|
19
|
+
prefix: string;
|
|
20
|
+
/** 基础 URL(末尾含 /,如 "https://cdn.example.com/skills/") */
|
|
21
|
+
baseUrl: string;
|
|
22
|
+
/** 是否只读(只读路径在 readFile 中优先级最高) */
|
|
23
|
+
isReadonly: boolean;
|
|
24
|
+
}
|
|
25
|
+
/** 站点树条目(来自 sdk.getSiteTree)*/
|
|
26
|
+
export interface TreeEntry {
|
|
27
|
+
name?: string;
|
|
28
|
+
path?: string;
|
|
29
|
+
isTree?: boolean;
|
|
30
|
+
isBlob?: boolean;
|
|
31
|
+
children?: TreeEntry[];
|
|
32
|
+
}
|
|
33
|
+
/** 各页面的同步选项 */
|
|
34
|
+
export interface PageSyncOptions {
|
|
35
|
+
useCache?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/** 页面数据的版本元数据 */
|
|
38
|
+
export interface PageMetadata {
|
|
39
|
+
version?: number;
|
|
40
|
+
created_at?: string;
|
|
41
|
+
updated_at?: string;
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
/** versionConflict 事件载荷 */
|
|
45
|
+
export interface VersionConflictEvent {
|
|
46
|
+
pageKey: string;
|
|
47
|
+
localVersion: number;
|
|
48
|
+
remoteVersion: number;
|
|
49
|
+
localUpdatedAt: string;
|
|
50
|
+
remoteUpdatedAt: string;
|
|
51
|
+
localLength: number;
|
|
52
|
+
remoteLength: number;
|
|
53
|
+
tiebreaker: 'updated_at' | 'length';
|
|
54
|
+
resolution: 'local' | 'remote';
|
|
55
|
+
}
|
|
56
|
+
/** savePageDataTimeSeries 的 keyValue 条目 */
|
|
57
|
+
export interface TimeSeriesKeyValue {
|
|
58
|
+
key: string;
|
|
59
|
+
value: unknown;
|
|
60
|
+
type?: 'unique' | 'replace' | 'addictive' | 'mean';
|
|
61
|
+
/** 内部字段,函数执行过程中填充 */
|
|
62
|
+
values?: unknown[];
|
|
63
|
+
}
|
|
64
|
+
/** listDir 的附加选项 */
|
|
65
|
+
export interface ListDirOptions {
|
|
66
|
+
/** 是否显示以 '.' 开头的隐藏文件 */
|
|
67
|
+
showInvisibleFiles?: boolean;
|
|
68
|
+
/** 仅列出远端文件,跳过本地 */
|
|
69
|
+
remoteOnly?: boolean;
|
|
70
|
+
/** 跳过仅存在于本地磁盘(不在远端)的文件 */
|
|
71
|
+
skipLocalOnlyFile?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* PersonalPageStore 依赖的 SDK 最小接口(避免与主类循环引用)
|
|
75
|
+
*/
|
|
76
|
+
export interface IPersonalPageSDK {
|
|
77
|
+
token?: string | null;
|
|
78
|
+
user?: {
|
|
79
|
+
username?: string;
|
|
80
|
+
[key: string]: unknown;
|
|
81
|
+
} | null;
|
|
82
|
+
extractMainDomain?: (hostname: string) => string;
|
|
83
|
+
getUserProfile?: (opts?: {
|
|
84
|
+
useCache?: boolean;
|
|
85
|
+
}) => Promise<unknown>;
|
|
86
|
+
getMarkdownByFullPath?: (path: string, cb?: unknown, useCache?: boolean) => Promise<string | null>;
|
|
87
|
+
editMarkdownByFullPath?: (path: string, content: string, cb?: unknown, useCache?: boolean) => Promise<unknown>;
|
|
88
|
+
deleteMarkdownByFullPath?: (path: string, cb?: unknown) => Promise<unknown>;
|
|
89
|
+
getSiteTree?: (sitePath: string, recursive?: boolean, folderPath?: string, useCache?: boolean) => Promise<TreeEntry[]>;
|
|
90
|
+
[key: string]: unknown;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=PersonalPageStore.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersonalPageStore.types.d.ts","sourceRoot":"","sources":["../../../../src/store/PersonalPageStore.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YMLParser — Keepwork 页面数据专用 YAML 序列化/反序列化工具
|
|
3
|
+
*
|
|
4
|
+
* 实现了一个轻量级的 YAML 子集解析器,用于读写存储在 PersonalPage 中的结构化数据。
|
|
5
|
+
* 支持 front-matter 格式(`---` 分隔的 YAML 头 + 正文),常用于页面元数据 + 内容分离。
|
|
6
|
+
*
|
|
7
|
+
* 注意:这不是一个完整的 YAML 实现;设计目标是覆盖 Keepwork 页面数据的实际存储格式,
|
|
8
|
+
* 保持与现有 Lua 端(KeepworkReposApi)序列化行为的兼容。
|
|
9
|
+
*/
|
|
10
|
+
/** objectToYaml 的选项 */
|
|
11
|
+
export interface ObjectToYamlOptions {
|
|
12
|
+
/** 是否按字母顺序排序键,默认 true */
|
|
13
|
+
isSortKeys?: boolean;
|
|
14
|
+
/** 是否使用 front-matter 格式(将 content 键序列化为 --- 块后的正文),默认 false */
|
|
15
|
+
useFrontMatter?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** yamlToObject 的选项 */
|
|
18
|
+
export interface YamlToObjectOptions {
|
|
19
|
+
/** 是否解析 front-matter 格式,默认 false */
|
|
20
|
+
useFrontMatter?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** 可序列化的 YAML 值类型(递归) */
|
|
23
|
+
export type YamlValue = string | number | boolean | null | YamlValue[] | {
|
|
24
|
+
[key: string]: YamlValue;
|
|
25
|
+
};
|
|
26
|
+
declare class YMLParser {
|
|
27
|
+
/**
|
|
28
|
+
* 将 JavaScript 对象序列化为 YAML 字符串。
|
|
29
|
+
*
|
|
30
|
+
* 当 `useFrontMatter=true` 且对象含有 `content` 键时,
|
|
31
|
+
* 输出格式为:
|
|
32
|
+
* ```
|
|
33
|
+
* ---
|
|
34
|
+
* key1: value1
|
|
35
|
+
* ---
|
|
36
|
+
* <content 字符串>
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @param obj - 要序列化的对象
|
|
40
|
+
* @param isSortKeys - 是否按字母排序键(默认 true)
|
|
41
|
+
* @param useFrontMatter - 是否使用 front-matter 格式(默认 false)
|
|
42
|
+
* @returns 序列化后的 YAML 字符串
|
|
43
|
+
*/
|
|
44
|
+
static objectToYaml(obj: Record<string, YamlValue>, isSortKeys?: boolean, useFrontMatter?: boolean): string;
|
|
45
|
+
/**
|
|
46
|
+
* 将 YAML 字符串反序列化为 JavaScript 对象。
|
|
47
|
+
*
|
|
48
|
+
* 解析顺序:
|
|
49
|
+
* 1. 若启用 `useFrontMatter` 且以 `---` 开头,先尝试 front-matter 解析
|
|
50
|
+
* 2. 回退尝试 JSON.parse(兼容旧版 JSON 存储格式)
|
|
51
|
+
* 3. 最终使用自有 YAML 行解析器
|
|
52
|
+
*
|
|
53
|
+
* @param yamlString - YAML/JSON 字符串
|
|
54
|
+
* @param useFrontMatter - 是否解析 front-matter 格式(默认 false)
|
|
55
|
+
* @returns 解析后的对象,失败时返回空对象 `{}`
|
|
56
|
+
*/
|
|
57
|
+
static yamlToObject(yamlString: string, useFrontMatter?: boolean): Record<string, YamlValue> | YamlValue[];
|
|
58
|
+
/**
|
|
59
|
+
* 递归解析 YAML 行数组,返回结构化对象。
|
|
60
|
+
* 支持嵌套对象、数组、标量值,兼容 YAML 缩进层级。
|
|
61
|
+
*
|
|
62
|
+
* @param lines - 预过滤的 YAML 行(已去除空行和注释行)
|
|
63
|
+
* @returns 解析结果对象或数组
|
|
64
|
+
*/
|
|
65
|
+
static parseYamlLines(lines: string[]): Record<string, YamlValue> | YamlValue[];
|
|
66
|
+
/**
|
|
67
|
+
* 从 YAML 行数组中解析指定缩进层级的数组元素。
|
|
68
|
+
*
|
|
69
|
+
* @param lines - YAML 行数组
|
|
70
|
+
* @param baseIndent - 数组元素所在的缩进列数
|
|
71
|
+
* @returns 解析出的数组
|
|
72
|
+
*/
|
|
73
|
+
static parseArrayItems(lines: string[], baseIndent: number): YamlValue[];
|
|
74
|
+
/**
|
|
75
|
+
* 将 YAML 标量字符串解析为对应的 JS 原生类型。
|
|
76
|
+
*
|
|
77
|
+
* 支持:null/~、boolean、整数、浮点数、单引号/双引号字符串、
|
|
78
|
+
* 内联 JSON 对象/数组,其余回退为字符串。
|
|
79
|
+
*
|
|
80
|
+
* @param value - 原始 YAML 标量字符串(已 trim)
|
|
81
|
+
* @returns 解析后的值
|
|
82
|
+
*/
|
|
83
|
+
static parseYamlValue(value: string): YamlValue;
|
|
84
|
+
/**
|
|
85
|
+
* 解析 front-matter 格式字符串:`---\n<yaml>\n---\n<content>`
|
|
86
|
+
*
|
|
87
|
+
* 解析成功后,YAML 头部字段与 `content`(正文字符串)合并到同一对象。
|
|
88
|
+
* 若格式不匹配(缺少第二个 `---`)则返回 null。
|
|
89
|
+
*
|
|
90
|
+
* @param str - 以 `---` 开头的字符串
|
|
91
|
+
* @returns 包含 content 键的解析对象,或 null(格式不符)
|
|
92
|
+
*/
|
|
93
|
+
static _parseFrontMatter(str: string): Record<string, YamlValue> | null;
|
|
94
|
+
}
|
|
95
|
+
export default YMLParser;
|
|
96
|
+
//# sourceMappingURL=YMLParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YMLParser.d.ts","sourceRoot":"","sources":["../../../../src/store/YMLParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,uBAAuB;AACvB,MAAM,WAAW,mBAAmB;IAClC,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,uBAAuB;AACvB,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,yBAAyB;AACzB,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,cAAM,SAAS;IACb;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,YAAY,CACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC9B,UAAU,UAAO,EACjB,cAAc,UAAQ,GACrB,MAAM;IAsET;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,cAAc,UAAQ,GACrB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,EAAE;IA0B1C;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,EAAE;IA2G/E;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;IAgFxE;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAqC/C;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;CA+BxE;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentTool.ts — Agent 任务派发与管理工具(TypeScript 版)
|
|
3
|
+
*
|
|
4
|
+
* 向 LLM 暴露三个工具函数:
|
|
5
|
+
* - `runAsyncAgentTask`:将任务委托给命名子 agent 异步执行
|
|
6
|
+
* - `getParentAgentContext`:获取父 agent 会话的上下文
|
|
7
|
+
* - `restartAgent`:重启当前 agent 会话(可指定新配置文件)
|
|
8
|
+
* - `getAgentConfig`:读取 agent 的配置字段
|
|
9
|
+
*
|
|
10
|
+
* 依赖:AgentRouter(跨 iframe 路由)、ChildSessionMixin(本地子 agent)
|
|
11
|
+
* 实现细节见 AgentTool.js,此文件提供类型声明和 TS 入口。
|
|
12
|
+
*/
|
|
13
|
+
/** 工具函数定义(OpenAI Function Calling 格式) */
|
|
14
|
+
export interface ToolDefinition {
|
|
15
|
+
type: 'function';
|
|
16
|
+
function: {
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
parameters: Record<string, unknown>;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** AgentTool 运行时配置 */
|
|
23
|
+
export interface AgentToolConfig {
|
|
24
|
+
/** 关联的 ChatSession */
|
|
25
|
+
_session?: AgentSession;
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
/** ChatSession 最小接口(避免循环引用) */
|
|
29
|
+
export interface AgentSession {
|
|
30
|
+
name?: string;
|
|
31
|
+
workspace?: string;
|
|
32
|
+
model?: string;
|
|
33
|
+
sandbox?: {
|
|
34
|
+
processTemplate?: (v: string) => Promise<string>;
|
|
35
|
+
_activePromptFile?: string | null;
|
|
36
|
+
_templateSourceFile?: string | null;
|
|
37
|
+
};
|
|
38
|
+
messages?: Array<{
|
|
39
|
+
role: string;
|
|
40
|
+
content: string;
|
|
41
|
+
}>;
|
|
42
|
+
customTools?: unknown[];
|
|
43
|
+
options?: Record<string, unknown>;
|
|
44
|
+
_digitalHuman?: Record<string, unknown>;
|
|
45
|
+
_digitalHumanFrame?: Record<string, unknown>;
|
|
46
|
+
_pendingChildResults?: Array<unknown>;
|
|
47
|
+
_restartSignal?: {
|
|
48
|
+
promptFile?: string;
|
|
49
|
+
tools?: string[];
|
|
50
|
+
options?: Record<string, unknown>;
|
|
51
|
+
isRestartAgentSignal?: boolean;
|
|
52
|
+
timestamp?: number;
|
|
53
|
+
} | null;
|
|
54
|
+
_characterConfig?: Record<string, unknown>;
|
|
55
|
+
_isSummarizing?: boolean;
|
|
56
|
+
enqueueChildTask?: (name: string, task: string, tools: unknown, maxIter: number, sysPrompt: unknown, opts: unknown) => void;
|
|
57
|
+
getParentContext?: (count: number) => unknown;
|
|
58
|
+
restartAgent?: (promptFile: unknown, tools: string[], options: unknown) => Promise<{
|
|
59
|
+
configSource?: string;
|
|
60
|
+
}>;
|
|
61
|
+
_handleChildCallback?: (mode: string, seconds: number) => void;
|
|
62
|
+
_emitChildStream?: (event: unknown) => void;
|
|
63
|
+
send?: (task: string, opts: Record<string, unknown>) => Promise<unknown>;
|
|
64
|
+
clear?: () => void;
|
|
65
|
+
}
|
|
66
|
+
/** SDK 最小接口 */
|
|
67
|
+
interface SDKRef {
|
|
68
|
+
agentRouter?: {
|
|
69
|
+
hasRemoteAgent: (name: string) => boolean;
|
|
70
|
+
submitTask: (name: string, payload: unknown, callbacks: unknown) => Promise<unknown>;
|
|
71
|
+
};
|
|
72
|
+
aiChat?: {
|
|
73
|
+
createSession: (opts: unknown) => AgentSession;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
declare class AgentTool {
|
|
77
|
+
static readonly definitions: ToolDefinition[];
|
|
78
|
+
private sdk;
|
|
79
|
+
private config;
|
|
80
|
+
constructor(sdk: SDKRef);
|
|
81
|
+
/** 更新工具运行时配置(由 CopilotTools.setToolConfig 调用)。 */
|
|
82
|
+
setConfig(config: AgentToolConfig): void;
|
|
83
|
+
/**
|
|
84
|
+
* 执行 agent 工具操作。
|
|
85
|
+
* 核心逻辑(模板展开、路由选择、子 session 创建等)完整实现在此文件中。
|
|
86
|
+
*
|
|
87
|
+
* @param name - 工具名
|
|
88
|
+
* @param args - 工具参数
|
|
89
|
+
* @param config - 运行时配置(含 _session)
|
|
90
|
+
*/
|
|
91
|
+
execute(name: string, args?: Record<string, unknown>, config?: AgentToolConfig): Promise<string>;
|
|
92
|
+
private currentAgentName;
|
|
93
|
+
private summarizeDebugValue;
|
|
94
|
+
/**
|
|
95
|
+
* 通过 session.sandbox.processTemplate 展开 ${...} 表达式。
|
|
96
|
+
* 若无 sandbox 或无 ${...} 则原样返回。
|
|
97
|
+
*/
|
|
98
|
+
private expandTemplate;
|
|
99
|
+
/**
|
|
100
|
+
* 在 DigitalHuman / DigitalHumanFrame 路径下创建子 ChatSession 并执行任务。
|
|
101
|
+
* 结果通过 dh.sendMessage / dhf.sendMessage 发回给主会话。
|
|
102
|
+
* 立即返回确认字符串(fire-and-forget)。
|
|
103
|
+
* @private
|
|
104
|
+
*/
|
|
105
|
+
private _runChildForDigitalHuman;
|
|
106
|
+
private _resolveCharacterConfig;
|
|
107
|
+
private _getNestedValue;
|
|
108
|
+
}
|
|
109
|
+
export default AgentTool;
|
|
110
|
+
//# sourceMappingURL=AgentTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/AgentTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppTools.ts — 浏览器端 DOM 自动化工具(TypeScript 完整实现)
|
|
3
|
+
*
|
|
4
|
+
* 向 LLM 暴露四个工具:
|
|
5
|
+
* - `read_app`:描述当前页面可见的可交互元素快照
|
|
6
|
+
* - `click_element`:按 selector / ref 点击元素
|
|
7
|
+
* - `type_in_app`:向输入框输入文本或触发按键
|
|
8
|
+
* - `screenshot_app`:委托外部 screenshotHandler 截图
|
|
9
|
+
*
|
|
10
|
+
* 特性:
|
|
11
|
+
* - data-ai-hint / data-ai-type 属性支持非交互元素
|
|
12
|
+
* - addIframe 注册子 iframe,自动合并到 read_app 结果
|
|
13
|
+
* - ignoreList / whiteList 过滤器(持久 + 单次调用两种粒度)
|
|
14
|
+
* - 元素 ref 数字索引,支持过期 ref 回退(aria-label → 文本匹配)
|
|
15
|
+
*/
|
|
16
|
+
/** OpenAI Function Calling 工具定义 */
|
|
17
|
+
export interface ToolDefinition {
|
|
18
|
+
type: 'function';
|
|
19
|
+
function: {
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
parameters: Record<string, unknown>;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** AppTools 运行时配置(setConfig 参数) */
|
|
26
|
+
export interface AppToolsConfig {
|
|
27
|
+
readHandler?: (filters: unknown, whiteList?: string[]) => Promise<unknown>;
|
|
28
|
+
screenshotHandler?: () => Promise<unknown>;
|
|
29
|
+
clickHandler?: (args: Record<string, unknown>) => Promise<unknown>;
|
|
30
|
+
typeHandler?: (args: Record<string, unknown>) => Promise<unknown>;
|
|
31
|
+
ignoreList?: string[];
|
|
32
|
+
whiteList?: string[];
|
|
33
|
+
[key: string]: unknown;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* AppTools — 浏览器端 DOM 自动化工具(供 CopilotTools 注册为 'app' 分类)。
|
|
37
|
+
*/
|
|
38
|
+
declare class AppTools {
|
|
39
|
+
static readonly definitions: ToolDefinition[];
|
|
40
|
+
private sdk;
|
|
41
|
+
private _readHandler;
|
|
42
|
+
private _screenshotHandler;
|
|
43
|
+
private _clickHandler;
|
|
44
|
+
private _typeHandler;
|
|
45
|
+
private _refMap;
|
|
46
|
+
private _refMetaMap;
|
|
47
|
+
private _iframeRefMap;
|
|
48
|
+
private _ignoreList;
|
|
49
|
+
private _whiteList;
|
|
50
|
+
private _iframes;
|
|
51
|
+
private _pendingCalls;
|
|
52
|
+
private _callIdCounter;
|
|
53
|
+
private _instanceId;
|
|
54
|
+
private _onMessage?;
|
|
55
|
+
constructor(sdk: unknown);
|
|
56
|
+
setReadHandler(handler: (filters: unknown, whiteList?: string[]) => Promise<unknown>): void;
|
|
57
|
+
setScreenshotHandler(handler: () => Promise<unknown>): void;
|
|
58
|
+
setClickHandler(handler: (args: Record<string, unknown>) => Promise<unknown>): void;
|
|
59
|
+
setTypeHandler(handler: (args: Record<string, unknown>) => Promise<unknown>): void;
|
|
60
|
+
/** 设置持久 ignore 列表(CSS selectors),匹配的元素及其后代从 read_app 排除。 */
|
|
61
|
+
setIgnoreList(selectors: string[]): void;
|
|
62
|
+
/** 设置持久 white 列表(CSS selectors),非空时只返回匹配元素或其后代。 */
|
|
63
|
+
setWhiteList(selectors: string[]): void;
|
|
64
|
+
/** 更新运行时配置(由 CopilotTools.setToolConfig 调用)。 */
|
|
65
|
+
setConfig(config: AppToolsConfig): void;
|
|
66
|
+
/**
|
|
67
|
+
* 注册子 iframe 以参与 read_app / click_element / type_in_app 操作。
|
|
68
|
+
* iframe 内需已加载 keepworkSDK。
|
|
69
|
+
*/
|
|
70
|
+
addIframe(iframe: HTMLIFrameElement): void;
|
|
71
|
+
/** 取消注册子 iframe。 */
|
|
72
|
+
removeIframe(iframe: HTMLIFrameElement): void;
|
|
73
|
+
/** 返回所有活跃 iframe(手动注册 + data-ai-hint 自动发现)。 */
|
|
74
|
+
private _getActiveIframes;
|
|
75
|
+
private _initMessageListener;
|
|
76
|
+
private _handleRequest;
|
|
77
|
+
/** 向子 iframe 的 AppTools 发送请求并等待响应。 */
|
|
78
|
+
private _queryIframe;
|
|
79
|
+
/** 清除 ref→element 映射(DOM 重大变化后调用)。 */
|
|
80
|
+
clearRefs(): void;
|
|
81
|
+
/**
|
|
82
|
+
* 执行指定工具函数(CopilotTools 分发入口)。
|
|
83
|
+
* @param name - 工具名
|
|
84
|
+
* @param args - 工具参数
|
|
85
|
+
* @param config - 运行时配置(当前未使用,预留扩展)
|
|
86
|
+
*/
|
|
87
|
+
execute(name: string, args?: Record<string, unknown>, _config?: unknown): Promise<unknown>;
|
|
88
|
+
private _defaultReadApp;
|
|
89
|
+
private _passesFilter;
|
|
90
|
+
private _resolveScope;
|
|
91
|
+
private _isVisible;
|
|
92
|
+
private _describeElement;
|
|
93
|
+
private _getRole;
|
|
94
|
+
private _getAiHintRole;
|
|
95
|
+
private _isPressableElement;
|
|
96
|
+
private _getLabel;
|
|
97
|
+
private _getElementRefMeta;
|
|
98
|
+
private _getAriaLabelText;
|
|
99
|
+
private _getElementText;
|
|
100
|
+
private _parseRefMetadataFromReadResult;
|
|
101
|
+
private _getState;
|
|
102
|
+
private _buildSelector;
|
|
103
|
+
private _defaultClickElement;
|
|
104
|
+
private _defaultTypeInApp;
|
|
105
|
+
private _keyToCode;
|
|
106
|
+
private _resolveElement;
|
|
107
|
+
private _resolveStaleRefFallback;
|
|
108
|
+
private _resolveSelector;
|
|
109
|
+
private _getTargetHints;
|
|
110
|
+
private _firstText;
|
|
111
|
+
private _findByAriaLabel;
|
|
112
|
+
private _findByText;
|
|
113
|
+
private _truncate;
|
|
114
|
+
/**
|
|
115
|
+
* 发出 `dh:app-page-opened` postMessage 通知 DigitalHuman 页面切换。
|
|
116
|
+
* DigitalHuman 会根据 pageRouters 配置切换 agent 并发送唤醒文本。
|
|
117
|
+
* @param page - 页面名称(必须匹配 pageRouters 配置中的某个 key)
|
|
118
|
+
*/
|
|
119
|
+
static postAppPageOpened(page: string): void;
|
|
120
|
+
}
|
|
121
|
+
export default AppTools;
|
|
122
|
+
//# sourceMappingURL=AppTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppTools.d.ts","sourceRoot":"","sources":["../../../../src/tools/AppTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExecuteTool.ts — 在当前浏览器上下文中安全执行任意 JavaScript 的工具
|
|
3
|
+
*
|
|
4
|
+
* 以 `AsyncFunction` 动态编译并运行代码,捕获 `console` 输出,
|
|
5
|
+
* 并通过 `copilot` 代理对象暴露 CopilotTools 的全部工具给代码内部调用。
|
|
6
|
+
*
|
|
7
|
+
* LLM 工具定义:`run_app_cmd`
|
|
8
|
+
*/
|
|
9
|
+
/** 工具函数定义(OpenAI Function Calling 格式) */
|
|
10
|
+
export interface ToolDefinition {
|
|
11
|
+
type: 'function';
|
|
12
|
+
function: {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
parameters: Record<string, unknown>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/** 捕获的 console 日志条目 */
|
|
19
|
+
interface ConsoleLog {
|
|
20
|
+
level: string;
|
|
21
|
+
message: string;
|
|
22
|
+
}
|
|
23
|
+
/** execute() 调用配置 */
|
|
24
|
+
export interface ExecuteConfig {
|
|
25
|
+
/** 关联的 ChatSession(用于访问 sandbox.copilot) */
|
|
26
|
+
_session?: {
|
|
27
|
+
sandbox?: {
|
|
28
|
+
copilot?: Record<string, (...args: unknown[]) => Promise<unknown>>;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
}
|
|
33
|
+
/** SDK 最小接口(避免循环引用) */
|
|
34
|
+
interface SDKRef {
|
|
35
|
+
copilotTools?: {
|
|
36
|
+
execute: (toolName: string, params: unknown, config: unknown) => Promise<unknown>;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
declare class ExecuteTool {
|
|
40
|
+
/** LLM 可见的工具定义列表 */
|
|
41
|
+
static readonly definitions: ToolDefinition[];
|
|
42
|
+
private sdk;
|
|
43
|
+
private config;
|
|
44
|
+
constructor(sdk: SDKRef);
|
|
45
|
+
/** 更新工具运行时配置(由 CopilotTools.setToolConfig 调用)。 */
|
|
46
|
+
setConfig(config: ExecuteConfig): void;
|
|
47
|
+
/**
|
|
48
|
+
* 执行指定工具函数。
|
|
49
|
+
*
|
|
50
|
+
* @param name - 工具名(目前仅支持 'run_app_cmd')
|
|
51
|
+
* @param args - 工具参数
|
|
52
|
+
* @param config - 运行时配置(含 _session 等)
|
|
53
|
+
*/
|
|
54
|
+
execute(name: string, args: {
|
|
55
|
+
command?: string;
|
|
56
|
+
timeout?: number;
|
|
57
|
+
} | string[] | unknown, config?: ExecuteConfig): Promise<string>;
|
|
58
|
+
/**
|
|
59
|
+
* 在安全沙箱中执行 JavaScript 代码。
|
|
60
|
+
*
|
|
61
|
+
* 执行环境:
|
|
62
|
+
* - `sdk`:KeepworkSDK 实例
|
|
63
|
+
* - `config`:调用方配置
|
|
64
|
+
* - `window` / `document`:当前浏览器环境
|
|
65
|
+
* - `console`:已捕获输出的代理 console
|
|
66
|
+
* - `copilot`:CopilotTools 的 Proxy,可调用任意已注册工具
|
|
67
|
+
*
|
|
68
|
+
* 单行表达式自动加 `return`;多行代码以语句形式执行。
|
|
69
|
+
*
|
|
70
|
+
* @param code - 要执行的 JavaScript 代码字符串
|
|
71
|
+
* @param config - 运行时配置
|
|
72
|
+
* @returns 格式化的执行输出(含 console 日志 + 返回值)
|
|
73
|
+
*/
|
|
74
|
+
runAppCmd(code: string, config?: ExecuteConfig): Promise<string>;
|
|
75
|
+
/**
|
|
76
|
+
* 创建 copilot 工具代理对象。
|
|
77
|
+
* 优先使用 session.sandbox.copilot(已配置完整代理);
|
|
78
|
+
* 否则创建一个直接调用 sdk.copilotTools.execute 的 Proxy。
|
|
79
|
+
*
|
|
80
|
+
* @param config - 运行时配置
|
|
81
|
+
*/
|
|
82
|
+
createCopilotProxy(config: ExecuteConfig): Record<string, unknown>;
|
|
83
|
+
/** 将任意值序列化为字符串(循环引用安全)。 */
|
|
84
|
+
stringifyValue(value: unknown): string;
|
|
85
|
+
/** 格式化捕获的 console 日志数组为字符串。 */
|
|
86
|
+
formatConsoleOutput(logs: ConsoleLog[]): string;
|
|
87
|
+
/** 组合 console 输出和执行结果为最终字符串。 */
|
|
88
|
+
formatExecutionOutput(result: unknown, logs: ConsoleLog[]): string;
|
|
89
|
+
/**
|
|
90
|
+
* 判断给定代码是否为单行 JS 表达式(可安全加 `return`)。
|
|
91
|
+
* 任何包含换行、分号或语句关键字的代码视为语句块。
|
|
92
|
+
*/
|
|
93
|
+
isSingleExpression(code: string): boolean;
|
|
94
|
+
}
|
|
95
|
+
export default ExecuteTool;
|
|
96
|
+
//# sourceMappingURL=ExecuteTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecuteTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/ExecuteTool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,uBAAuB;AACvB,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAqB;AACrB,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;SACpE,CAAC;KACH,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,uBAAuB;AACvB,UAAU,MAAM;IACd,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACnF,CAAC;CACH;AAED,cAAM,WAAW;IACf,oBAAoB;IACpB,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAyB3C;IAEF,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAqB;gBAEvB,GAAG,EAAE,MAAM;IAIvB,kDAAkD;IAClD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAMtC;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EACjE,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,MAAM,CAAC;IAelB;;;;;;;;;;;;;;;OAeG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmD1E;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA2BlE,2BAA2B;IAC3B,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAStC,+BAA+B;IAC/B,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM;IAO/C,gCAAgC;IAChC,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM;IAclE;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAU1C;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FileTools.ts — 工作空间文件操作工具(供 CopilotTools 注册为 'read'/'edit'/'search'/'fileOps' 分类)
|
|
3
|
+
*
|
|
4
|
+
* 所有文件操作均在 `sdk.personalPageStore` 的工作空间作用域内执行,
|
|
5
|
+
* 不允许访问主机文件系统。
|
|
6
|
+
*
|
|
7
|
+
* 支持的工具函数:
|
|
8
|
+
* - `read_file`:按行范围读取文件内容(可选 `${...}` 模板展开)
|
|
9
|
+
* - `list_dir`:列出目录内容
|
|
10
|
+
* - `replace_string_in_file`:单次字符串替换
|
|
11
|
+
* - `multi_replace_string_in_file`:批量字符串替换
|
|
12
|
+
* - `create_file`:创建新文件
|
|
13
|
+
* - `grep_search`:文本/正则搜索
|
|
14
|
+
*/
|
|
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
|
+
/** FileTools 运行时配置 */
|
|
25
|
+
export interface FileToolsConfig {
|
|
26
|
+
/** 文件路径前缀(所有路径都会被拼接到此前缀下) */
|
|
27
|
+
pathPrefix?: string;
|
|
28
|
+
/** 工作空间名称(传递给 personalPageStore.withConfig) */
|
|
29
|
+
workspace?: string;
|
|
30
|
+
/** Mounted folder 配置 */
|
|
31
|
+
mountFolder?: unknown;
|
|
32
|
+
/** 关联的 ChatSession(用于 processTemplate 展开) */
|
|
33
|
+
_session?: {
|
|
34
|
+
sandbox?: {
|
|
35
|
+
processTemplate?: (content: string) => Promise<string>;
|
|
36
|
+
_templateSourceFile?: string | null;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
}
|
|
41
|
+
/** PersonalPageStore 作用域实例的最小接口 */
|
|
42
|
+
interface ScopedStore {
|
|
43
|
+
readFile(pageName: string, startLine?: number, endLine?: number): Promise<string | null>;
|
|
44
|
+
replaceStringInFile(pageName: string, oldString: string, newString: string): Promise<string>;
|
|
45
|
+
grepSearch(query: string, isRegexp?: boolean, includePattern?: string, maxResults?: number): Promise<string>;
|
|
46
|
+
createFile(pageName: string, content?: string): Promise<string>;
|
|
47
|
+
listDir(path: string, recursive?: boolean): Promise<string>;
|
|
48
|
+
withConfig(config: Record<string, unknown>): ScopedStore;
|
|
49
|
+
}
|
|
50
|
+
/** SDK 最小接口 */
|
|
51
|
+
interface SDKRef {
|
|
52
|
+
personalPageStore?: ScopedStore;
|
|
53
|
+
}
|
|
54
|
+
declare class FileTools {
|
|
55
|
+
static readonly readDefinitions: ToolDefinition[];
|
|
56
|
+
static readonly editDefinitions: ToolDefinition[];
|
|
57
|
+
static readonly searchDefinitions: ToolDefinition[];
|
|
58
|
+
/** 所有工具定义的合并(read + edit + search) */
|
|
59
|
+
static get definitions(): ToolDefinition[];
|
|
60
|
+
private sdk;
|
|
61
|
+
private config;
|
|
62
|
+
constructor(sdk: SDKRef);
|
|
63
|
+
/** 更新工具运行时配置(由 CopilotTools.setToolConfig 调用)。 */
|
|
64
|
+
setConfig(config: FileToolsConfig): void;
|
|
65
|
+
/**
|
|
66
|
+
* 执行文件操作工具。
|
|
67
|
+
* 所有路径经 `pathPrefix` 拼接后传入 `personalPageStore`,
|
|
68
|
+
* 不会直接操作主机文件系统。
|
|
69
|
+
*
|
|
70
|
+
* @param name - 工具名
|
|
71
|
+
* @param args - 工具参数
|
|
72
|
+
* @param config - 运行时配置(含 workspace / pathPrefix / _session 等)
|
|
73
|
+
*/
|
|
74
|
+
execute(name: string, args?: Record<string, unknown>, config?: FileToolsConfig): Promise<string>;
|
|
75
|
+
}
|
|
76
|
+
export default FileTools;
|
|
77
|
+
//# sourceMappingURL=FileTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileTools.d.ts","sourceRoot":"","sources":["../../../../src/tools/FileTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;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,sBAAsB;AACtB,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE;YACR,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SACrC,CAAC;KACH,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,mCAAmC;AACnC,UAAU,WAAW;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7F,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7G,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC;CAC1D;AAED,eAAe;AACf,UAAU,MAAM;IACd,iBAAiB,CAAC,EAAE,WAAW,CAAC;CACjC;AASD,cAAM,SAAS;IAGb,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,cAAc,EAAE,CAsC/C;IAEF,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,cAAc,EAAE,CA8D/C;IAEF,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,EAAE,CAkBjD;IAEF,sCAAsC;IACtC,MAAM,KAAK,WAAW,IAAI,cAAc,EAAE,CAEzC;IAID,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAuB;gBAEzB,GAAG,EAAE,MAAM;IAIvB,kDAAkD;IAClD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAMxC;;;;;;;;OAQG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,MAAM,GAAE,eAAoB,GAC3B,OAAO,CAAC,MAAM,CAAC;CAmHnB;AAED,eAAe,SAAS,CAAC"}
|