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.
Files changed (146) hide show
  1. package/README.md +21 -0
  2. package/dist-npm/keepwork-sdk.js +37514 -0
  3. package/dist-npm/keepwork-sdk.js.map +1 -0
  4. package/dist-npm/md5-CZ0vz1_S.js +240 -0
  5. package/dist-npm/md5-CZ0vz1_S.js.map +1 -0
  6. package/dist-npm/types/index.d.ts +42 -0
  7. package/dist-npm/types/index.d.ts.map +1 -0
  8. package/dist-npm/types/src/ai-chat/AIChat.core.d.ts +218 -0
  9. package/dist-npm/types/src/ai-chat/AIChat.core.d.ts.map +1 -0
  10. package/dist-npm/types/src/ai-chat/AIChat.d.ts +18 -0
  11. package/dist-npm/types/src/ai-chat/AIChat.d.ts.map +1 -0
  12. package/dist-npm/types/src/ai-chat/AIChat.session.d.ts +201 -0
  13. package/dist-npm/types/src/ai-chat/AIChat.session.d.ts.map +1 -0
  14. package/dist-npm/types/src/ai-chat/AIGenerators.base.d.ts +297 -0
  15. package/dist-npm/types/src/ai-chat/AIGenerators.base.d.ts.map +1 -0
  16. package/dist-npm/types/src/ai-chat/AIGenerators.d.ts +15 -0
  17. package/dist-npm/types/src/ai-chat/AIGenerators.d.ts.map +1 -0
  18. package/dist-npm/types/src/ai-chat/AIGenerators.media.d.ts +208 -0
  19. package/dist-npm/types/src/ai-chat/AIGenerators.media.d.ts.map +1 -0
  20. package/dist-npm/types/src/ai-chat/ChildSessionMixin.d.ts +153 -0
  21. package/dist-npm/types/src/ai-chat/ChildSessionMixin.d.ts.map +1 -0
  22. package/dist-npm/types/src/ai-chat/CopilotTools.d.ts +150 -0
  23. package/dist-npm/types/src/ai-chat/CopilotTools.d.ts.map +1 -0
  24. package/dist-npm/types/src/ai-chat/MqttManager.d.ts +123 -0
  25. package/dist-npm/types/src/ai-chat/MqttManager.d.ts.map +1 -0
  26. package/dist-npm/types/src/ai-chat/SandboxToolEnv.d.ts +210 -0
  27. package/dist-npm/types/src/ai-chat/SandboxToolEnv.d.ts.map +1 -0
  28. package/dist-npm/types/src/audio/AudioEngine.d.ts +272 -0
  29. package/dist-npm/types/src/audio/AudioEngine.d.ts.map +1 -0
  30. package/dist-npm/types/src/audio/AudioEngine.utils.d.ts +72 -0
  31. package/dist-npm/types/src/audio/AudioEngine.utils.d.ts.map +1 -0
  32. package/dist-npm/types/src/audio/Speech.d.ts +247 -0
  33. package/dist-npm/types/src/audio/Speech.d.ts.map +1 -0
  34. package/dist-npm/types/src/core/AgentConfig.d.ts +104 -0
  35. package/dist-npm/types/src/core/AgentConfig.d.ts.map +1 -0
  36. package/dist-npm/types/src/core/AgentRouter.d.ts +342 -0
  37. package/dist-npm/types/src/core/AgentRouter.d.ts.map +1 -0
  38. package/dist-npm/types/src/core/NPL.d.ts +251 -0
  39. package/dist-npm/types/src/core/NPL.d.ts.map +1 -0
  40. package/dist-npm/types/src/core/RemoteLog.d.ts +132 -0
  41. package/dist-npm/types/src/core/RemoteLog.d.ts.map +1 -0
  42. package/dist-npm/types/src/core/keepworkSDK.core.d.ts +84 -0
  43. package/dist-npm/types/src/core/keepworkSDK.core.d.ts.map +1 -0
  44. package/dist-npm/types/src/core/keepworkSDK.d.ts +129 -0
  45. package/dist-npm/types/src/core/keepworkSDK.d.ts.map +1 -0
  46. package/dist-npm/types/src/core/keepworkSDK.pages.d.ts +101 -0
  47. package/dist-npm/types/src/core/keepworkSDK.pages.d.ts.map +1 -0
  48. package/dist-npm/types/src/core/keepworkSDK.utils.d.ts +40 -0
  49. package/dist-npm/types/src/core/keepworkSDK.utils.d.ts.map +1 -0
  50. package/dist-npm/types/src/digital-human/DigitalHuman.d.ts +1316 -0
  51. package/dist-npm/types/src/digital-human/DigitalHuman.d.ts.map +1 -0
  52. package/dist-npm/types/src/digital-human/DigitalHumanBridge.d.ts +54 -0
  53. package/dist-npm/types/src/digital-human/DigitalHumanBridge.d.ts.map +1 -0
  54. package/dist-npm/types/src/digital-human/DigitalHumanConfig.d.ts +104 -0
  55. package/dist-npm/types/src/digital-human/DigitalHumanConfig.d.ts.map +1 -0
  56. package/dist-npm/types/src/digital-human/DigitalHumanFrame.d.ts +390 -0
  57. package/dist-npm/types/src/digital-human/DigitalHumanFrame.d.ts.map +1 -0
  58. package/dist-npm/types/src/digital-human/DigitalHumanFrameMessages.d.ts +59 -0
  59. package/dist-npm/types/src/digital-human/DigitalHumanFrameMessages.d.ts.map +1 -0
  60. package/dist-npm/types/src/digital-human/DigitalHumanSubtitleOverlay.d.ts +114 -0
  61. package/dist-npm/types/src/digital-human/DigitalHumanSubtitleOverlay.d.ts.map +1 -0
  62. package/dist-npm/types/src/digital-human/DigitalHumanUtils.d.ts +53 -0
  63. package/dist-npm/types/src/digital-human/DigitalHumanUtils.d.ts.map +1 -0
  64. package/dist-npm/types/src/rtc/AIChatRTC.constants.d.ts +65 -0
  65. package/dist-npm/types/src/rtc/AIChatRTC.constants.d.ts.map +1 -0
  66. package/dist-npm/types/src/rtc/AIChatRTC.d.ts +91 -0
  67. package/dist-npm/types/src/rtc/AIChatRTC.d.ts.map +1 -0
  68. package/dist-npm/types/src/rtc/AIChatRTC.session.d.ts +268 -0
  69. package/dist-npm/types/src/rtc/AIChatRTC.session.d.ts.map +1 -0
  70. package/dist-npm/types/src/rtc/AIChatRTCLocal.backends.d.ts +232 -0
  71. package/dist-npm/types/src/rtc/AIChatRTCLocal.backends.d.ts.map +1 -0
  72. package/dist-npm/types/src/rtc/AIChatRTCLocal.core.d.ts +92 -0
  73. package/dist-npm/types/src/rtc/AIChatRTCLocal.core.d.ts.map +1 -0
  74. package/dist-npm/types/src/rtc/AIChatRTCLocal.d.ts +15 -0
  75. package/dist-npm/types/src/rtc/AIChatRTCLocal.d.ts.map +1 -0
  76. package/dist-npm/types/src/rtc/AIChatRTCLocal.session.d.ts +127 -0
  77. package/dist-npm/types/src/rtc/AIChatRTCLocal.session.d.ts.map +1 -0
  78. package/dist-npm/types/src/rtc/LocalRTC.d.ts +91 -0
  79. package/dist-npm/types/src/rtc/LocalRTC.d.ts.map +1 -0
  80. package/dist-npm/types/src/rtc/SpeechRTC.d.ts +156 -0
  81. package/dist-npm/types/src/rtc/SpeechRTC.d.ts.map +1 -0
  82. package/dist-npm/types/src/rtc/SpeechRTC.transport.d.ts +191 -0
  83. package/dist-npm/types/src/rtc/SpeechRTC.transport.d.ts.map +1 -0
  84. package/dist-npm/types/src/store/CloudDrive.d.ts +140 -0
  85. package/dist-npm/types/src/store/CloudDrive.d.ts.map +1 -0
  86. package/dist-npm/types/src/store/LocalStorageUtil.d.ts +136 -0
  87. package/dist-npm/types/src/store/LocalStorageUtil.d.ts.map +1 -0
  88. package/dist-npm/types/src/store/PersonalPageStore.base.d.ts +267 -0
  89. package/dist-npm/types/src/store/PersonalPageStore.base.d.ts.map +1 -0
  90. package/dist-npm/types/src/store/PersonalPageStore.d.ts +13 -0
  91. package/dist-npm/types/src/store/PersonalPageStore.d.ts.map +1 -0
  92. package/dist-npm/types/src/store/PersonalPageStore.data.d.ts +198 -0
  93. package/dist-npm/types/src/store/PersonalPageStore.data.d.ts.map +1 -0
  94. package/dist-npm/types/src/store/PersonalPageStore.sync.d.ts +171 -0
  95. package/dist-npm/types/src/store/PersonalPageStore.sync.d.ts.map +1 -0
  96. package/dist-npm/types/src/store/PersonalPageStore.types.d.ts +92 -0
  97. package/dist-npm/types/src/store/PersonalPageStore.types.d.ts.map +1 -0
  98. package/dist-npm/types/src/store/YMLParser.d.ts +96 -0
  99. package/dist-npm/types/src/store/YMLParser.d.ts.map +1 -0
  100. package/dist-npm/types/src/tools/AgentTool.d.ts +110 -0
  101. package/dist-npm/types/src/tools/AgentTool.d.ts.map +1 -0
  102. package/dist-npm/types/src/tools/AppTools.d.ts +122 -0
  103. package/dist-npm/types/src/tools/AppTools.d.ts.map +1 -0
  104. package/dist-npm/types/src/tools/ExecuteTool.d.ts +96 -0
  105. package/dist-npm/types/src/tools/ExecuteTool.d.ts.map +1 -0
  106. package/dist-npm/types/src/tools/FileTools.d.ts +77 -0
  107. package/dist-npm/types/src/tools/FileTools.d.ts.map +1 -0
  108. package/dist-npm/types/src/tools/MinigameTools.d.ts +234 -0
  109. package/dist-npm/types/src/tools/MinigameTools.d.ts.map +1 -0
  110. package/dist-npm/types/src/tools/MqttTool.d.ts +53 -0
  111. package/dist-npm/types/src/tools/MqttTool.d.ts.map +1 -0
  112. package/dist-npm/types/src/tools/PersonalPageTool.d.ts +57 -0
  113. package/dist-npm/types/src/tools/PersonalPageTool.d.ts.map +1 -0
  114. package/dist-npm/types/src/tools/SummarizeTool.d.ts +279 -0
  115. package/dist-npm/types/src/tools/SummarizeTool.d.ts.map +1 -0
  116. package/dist-npm/types/src/tools/WebTool.d.ts +106 -0
  117. package/dist-npm/types/src/tools/WebTool.d.ts.map +1 -0
  118. package/dist-npm/types/src/types/common.d.ts +164 -0
  119. package/dist-npm/types/src/types/common.d.ts.map +1 -0
  120. package/dist-npm/types/src/ui/LocalAPIKeySettings.d.ts +229 -0
  121. package/dist-npm/types/src/ui/LocalAPIKeySettings.d.ts.map +1 -0
  122. package/dist-npm/types/src/ui/LoginWindow.d.ts +163 -0
  123. package/dist-npm/types/src/ui/LoginWindow.d.ts.map +1 -0
  124. package/dist-npm/types/src/ui/ProfileWindow.d.ts +75 -0
  125. package/dist-npm/types/src/ui/ProfileWindow.d.ts.map +1 -0
  126. package/dist-npm/types/src/ui/VerifyHuman.d.ts +23 -0
  127. package/dist-npm/types/src/ui/VerifyHuman.d.ts.map +1 -0
  128. package/dist-npm/types/src/ui/WorkspaceViewer.d.ts +184 -0
  129. package/dist-npm/types/src/ui/WorkspaceViewer.d.ts.map +1 -0
  130. package/dist-npm/types/src/user/SocialFriends.d.ts +173 -0
  131. package/dist-npm/types/src/user/SocialFriends.d.ts.map +1 -0
  132. package/dist-npm/types/src/user/UserWorks.d.ts +187 -0
  133. package/dist-npm/types/src/user/UserWorks.d.ts.map +1 -0
  134. package/dist-npm/types/src/utils/ImageUtils.d.ts +107 -0
  135. package/dist-npm/types/src/utils/ImageUtils.d.ts.map +1 -0
  136. package/dist-npm/types/src/utils/SDKLogger.d.ts +111 -0
  137. package/dist-npm/types/src/utils/SDKLogger.d.ts.map +1 -0
  138. package/dist-npm/types/src/utils/translation.d.ts +95 -0
  139. package/dist-npm/types/src/utils/translation.d.ts.map +1 -0
  140. package/dist-npm/types/src/wechat/WxAuth.d.ts +126 -0
  141. package/dist-npm/types/src/wechat/WxAuth.d.ts.map +1 -0
  142. package/dist-npm/types/src/wechat/WxLaunchApp.d.ts +96 -0
  143. package/dist-npm/types/src/wechat/WxLaunchApp.d.ts.map +1 -0
  144. package/dist-npm/types/src/wechat/WxUtils.d.ts +145 -0
  145. package/dist-npm/types/src/wechat/WxUtils.d.ts.map +1 -0
  146. package/package.json +52 -0
@@ -0,0 +1,106 @@
1
+ /**
2
+ * WebTool.ts — 网页内容抓取工具
3
+ *
4
+ * 通过 `fetch_webpage` 工具获取一个或多个 URL 的页面文本,
5
+ * 提取正文并按 `query` 关键词定位相关片段,供 AI 分析使用。
6
+ *
7
+ * LLM 工具定义:`fetch_webpage`
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
+ /** WebTool 运行时配置 */
19
+ export interface WebToolConfig {
20
+ /** 单个 URL 返回的最大字符数(默认 6000) */
21
+ maxContentLength?: number;
22
+ /** 请求超时毫秒数(默认 15000) */
23
+ timeoutMs?: number;
24
+ [key: string]: unknown;
25
+ }
26
+ /** 单个 URL 的抓取结果 */
27
+ export interface FetchResult {
28
+ url: string;
29
+ title?: string;
30
+ contentType?: string;
31
+ matchedQuery?: boolean;
32
+ truncated?: boolean;
33
+ content?: string;
34
+ error?: string;
35
+ }
36
+ /** fetch_webpage 工具返回值 */
37
+ export interface FetchWebpageResult {
38
+ query: string;
39
+ results: FetchResult[];
40
+ }
41
+ /** parseWebpageContent 返回值 */
42
+ interface ParsedContent {
43
+ title: string;
44
+ content: string;
45
+ }
46
+ declare class WebTool {
47
+ /** LLM 可见的工具定义列表 */
48
+ static readonly definitions: ToolDefinition[];
49
+ private config;
50
+ /** 更新工具运行时配置(由 CopilotTools.setToolConfig 调用)。 */
51
+ setConfig(config: WebToolConfig): void;
52
+ /**
53
+ * 执行指定工具函数。
54
+ *
55
+ * @param name - 工具名(目前仅支持 'fetch_webpage')
56
+ * @param args - 工具参数(urls 数组 + query 字符串)
57
+ * @param config - 运行时配置
58
+ */
59
+ execute(name: string, args: {
60
+ urls?: string[];
61
+ query?: string;
62
+ } | unknown, config?: WebToolConfig): Promise<string | FetchWebpageResult>;
63
+ /**
64
+ * 抓取单个 URL 的页面内容,按 query 提取相关片段。
65
+ *
66
+ * @param url - 目标 URL
67
+ * @param query - 用于定位相关内容的查询词
68
+ * @param options - 配置(maxContentLength / timeoutMs)
69
+ */
70
+ fetchWebpageContent(url: string, query: string, options?: {
71
+ maxContentLength?: number;
72
+ timeoutMs?: number;
73
+ }): Promise<FetchResult>;
74
+ /**
75
+ * 判断是否应直接返回原始内容(Markdown / JSON / 非 HTML)。
76
+ */
77
+ shouldReturnRawContent(url: string, contentType?: string): boolean;
78
+ /**
79
+ * 解析原始 HTML / 文本,提取标题和正文。
80
+ * 浏览器环境使用 DOMParser;SSR 环境使用正则兜底。
81
+ *
82
+ * @param rawText - 原始页面文本
83
+ * @param contentType - HTTP Content-Type 响应头
84
+ */
85
+ parseWebpageContent(rawText: string, contentType?: string): ParsedContent;
86
+ /**
87
+ * 从 document 中选取主内容节点(main / article / [role="main"] 等优先)。
88
+ * 回退到 document.body。
89
+ */
90
+ selectMainContentNode(doc: Document): Element | null;
91
+ /** 从原始 HTML 字符串提取 `<title>` 内容(DOMParser 不可用时兜底)。 */
92
+ extractTitleFromHtml(rawText: string): string;
93
+ /** 压缩多余空白字符,返回干净的单行文本。 */
94
+ normalizeWebpageText(text: string): string;
95
+ /**
96
+ * 在正文中找到 query 词汇最早出现位置,提取上下文片段。
97
+ * 未匹配时返回空字符串。
98
+ *
99
+ * @param content - 已规范化的正文文本
100
+ * @param query - 查询关键词(空格分隔)
101
+ * @param maxLength - 返回片段最大字符数(默认 1800)
102
+ */
103
+ buildQuerySnippet(content: string, query: string, maxLength?: number): string;
104
+ }
105
+ export default WebTool;
106
+ //# sourceMappingURL=WebTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/WebTool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,oBAAoB;AACpB,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,mBAAmB;AACnB,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0BAA0B;AAC1B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,8BAA8B;AAC9B,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,cAAM,OAAO;IACX,oBAAoB;IACpB,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAyB3C;IAEF,OAAO,CAAC,MAAM,CAAqB;IAEnC,kDAAkD;IAClD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAMtC;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,EACnD,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAwBvC;;;;;;OAMG;IACG,mBAAmB,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9D,OAAO,CAAC,WAAW,CAAC;IAoDvB;;OAEG;IACH,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,OAAO;IAO9D;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,aAAa;IA4BrE;;;OAGG;IACH,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI;IAWpD,qDAAqD;IACrD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK7C,0BAA0B;IAC1B,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM;CAyB5E;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * common.ts — KeepworkSDK 跨模块共享类型定义
3
+ *
4
+ * 收录在多个模块中重复出现的数据结构、联合类型和工具类型。
5
+ * 各模块直接 import type { ... } from './types/common' 使用。
6
+ */
7
+ /** 任意普通对象(比 object 更具体,比 Record<string,unknown> 更宽松) */
8
+ export type PlainObject = Record<string, unknown>;
9
+ /** 异步或同步的函数 */
10
+ export type MaybeAsyncFn<T = void> = (() => T) | (() => Promise<T>);
11
+ /** 可为 null 的值 */
12
+ export type Nullable<T> = T | null;
13
+ /** 可为 undefined 的值 */
14
+ export type Optional<T> = T | undefined;
15
+ /** Keepwork 核心 API 的标准响应包装(大部分接口遵循此格式) */
16
+ export interface KwApiResponse<T = unknown> {
17
+ code: number;
18
+ message?: string;
19
+ data?: T;
20
+ [key: string]: unknown;
21
+ }
22
+ /** 用户信息(来自 /user/getCurrentUser 等接口) */
23
+ export interface KwUser {
24
+ id: number;
25
+ username: string;
26
+ nickname?: string;
27
+ portrait?: string;
28
+ email?: string;
29
+ mobile?: string;
30
+ vip?: number;
31
+ [key: string]: unknown;
32
+ }
33
+ /** 页面(PersonalPage)基础信息 */
34
+ export interface KwPage {
35
+ id?: number;
36
+ username: string;
37
+ sitename: string;
38
+ pagename: string;
39
+ content?: string;
40
+ version?: number;
41
+ updatedAt?: string;
42
+ [key: string]: unknown;
43
+ }
44
+ /** 站点基础信息 */
45
+ export interface KwSite {
46
+ id?: number;
47
+ username: string;
48
+ sitename: string;
49
+ displayName?: string;
50
+ visibility?: string;
51
+ [key: string]: unknown;
52
+ }
53
+ /** LLM 工具(Function Calling)定义 */
54
+ export interface LLMTool {
55
+ type: 'function';
56
+ function: {
57
+ name: string;
58
+ description?: string;
59
+ parameters?: {
60
+ type: 'object';
61
+ properties: Record<string, LLMToolParameterSchema>;
62
+ required?: string[];
63
+ };
64
+ };
65
+ }
66
+ /** LLM 工具参数 Schema */
67
+ export interface LLMToolParameterSchema {
68
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'null';
69
+ description?: string;
70
+ enum?: unknown[];
71
+ items?: LLMToolParameterSchema;
72
+ properties?: Record<string, LLMToolParameterSchema>;
73
+ [key: string]: unknown;
74
+ }
75
+ /** LLM 工具调用请求(来自模型响应) */
76
+ export interface LLMToolCall {
77
+ id: string;
78
+ type: 'function';
79
+ function: {
80
+ name: string;
81
+ arguments: string;
82
+ };
83
+ }
84
+ /** 聊天消息角色 */
85
+ export type ChatRole = 'system' | 'user' | 'assistant' | 'tool';
86
+ /** 单条聊天消息 */
87
+ export interface ChatMessage {
88
+ role: ChatRole;
89
+ content: string | null;
90
+ tool_calls?: LLMToolCall[];
91
+ tool_call_id?: string;
92
+ name?: string;
93
+ }
94
+ /** AI 流式响应事件回调 */
95
+ export interface StreamCallbacks {
96
+ /** 收到文本片段 */
97
+ onText?: (delta: string, fullText: string) => void;
98
+ /** 收到工具调用结果 */
99
+ onToolResult?: (toolName: string, result: unknown) => void;
100
+ /** 流结束(正常或被中断) */
101
+ onEnd?: (finalText: string) => void;
102
+ /** 发生错误 */
103
+ onError?: (error: Error) => void;
104
+ }
105
+ /** AgentRouter postMessage 信封(is_agent_router: true) */
106
+ export interface AgentRouterMessage {
107
+ is_agent_router: true;
108
+ agentName?: string;
109
+ taskId?: string;
110
+ /** 任务发布载荷 */
111
+ payload?: {
112
+ task?: string;
113
+ tools?: LLMTool[];
114
+ maxIterations?: number;
115
+ systemPrompt?: string;
116
+ model?: string;
117
+ [key: string]: unknown;
118
+ };
119
+ /** 流式事件片段 */
120
+ stream?: {
121
+ eventName: string;
122
+ eventData: unknown;
123
+ taskId: string;
124
+ };
125
+ /** 任务最终结果 */
126
+ result?: unknown;
127
+ /** 错误信息 */
128
+ error?: string;
129
+ /** 发现/注册消息 */
130
+ type?: 'register' | 'discover' | 'discoverReply' | 'task' | 'taskResult' | 'streamEvent';
131
+ [key: string]: unknown;
132
+ }
133
+ /** NPL/Paracraft 消息信封(is_paracraft_message: true) */
134
+ export interface ParacraftMessage {
135
+ is_paracraft_message: true;
136
+ [key: string]: unknown;
137
+ }
138
+ /** CopilotTools 工具分类名称 */
139
+ export type ToolCategory = 'mqtt' | 'fileOps' | 'execute' | 'web' | 'personalPage' | 'agent' | 'digitalhuman' | string;
140
+ /** SandboxToolEnv / CopilotTools 工具调用请求 */
141
+ export interface ToolCallRequest {
142
+ name: string;
143
+ arguments: PlainObject;
144
+ id?: string;
145
+ }
146
+ /** 工具执行结果 */
147
+ export type ToolCallResult = string | PlainObject | unknown;
148
+ /** PersonalPageStore 写操作选项 */
149
+ export interface WriteOptions {
150
+ /** 是否跳过远程同步 */
151
+ noRemote?: boolean;
152
+ /** 是否跳过 localStorage 层 */
153
+ noLocal?: boolean;
154
+ /** 自定义版本号 */
155
+ version?: number;
156
+ }
157
+ /** 文件操作路径信息 */
158
+ export interface FilePath {
159
+ /** 工作空间(对应 PersonalPage 的 sitename) */
160
+ workspace: string;
161
+ /** 文件相对路径 */
162
+ path: string;
163
+ }
164
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/types/common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,eAAe;AACf,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpE,iBAAiB;AACjB,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,sBAAsB;AACtB,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAMxC,0CAA0C;AAC1C,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wCAAwC;AACxC,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,2BAA2B;AAC3B,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,aAAa;AACb,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,iCAAiC;AACjC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC;YACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;YACnD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED,sBAAsB;AACtB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACpD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,yBAAyB;AACzB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,aAAa;AACb,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhE,aAAa;AACb,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kBAAkB;AAClB,MAAM,WAAW,eAAe;IAC9B,aAAa;IACb,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,eAAe;IACf,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,kBAAkB;IAClB,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,WAAW;IACX,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAMD,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,aAAa;IACb,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc;IACd,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;IACzF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,EAAE,IAAI,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,0BAA0B;AAC1B,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,SAAS,GACT,SAAS,GACT,KAAK,GACL,cAAc,GACd,OAAO,GACP,cAAc,GACd,MAAM,CAAC;AAEX,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,aAAa;AACb,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAM5D,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAe;AACf,MAAM,WAAW,QAAQ;IACvB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * LocalAPIKeySettings — per-model LLM API key and endpoint configuration
3
+ * with a self-contained settings modal UI.
4
+ *
5
+ * Stores per-model overrides (modelId, apiKey, category).
6
+ * When the SDK makes an LLM request
7
+ * for a model that has local settings, those settings take priority over
8
+ * the server-side defaults.
9
+ *
10
+ * Persistence is pluggable: pass `storage: 'personalPageStore'` to use
11
+ * Keepwork cloud storage, or `storage: 'localStorage'` (default) for
12
+ * browser-local persistence.
13
+ *
14
+ * Usage:
15
+ * const settings = sdk.localAPIKeySettings;
16
+ * await settings.load();
17
+ * settings.show(); // opens the config modal
18
+ * settings.show({ onClose: () => console.log('closed') });
19
+ */
20
+ type LAKStrings = Record<string, string>;
21
+ /** 单个模型配置 */
22
+ interface ModelConfig {
23
+ modelId: string;
24
+ endpointId: string;
25
+ apiKey: string;
26
+ category: string;
27
+ enabled: boolean;
28
+ preferDirect: boolean;
29
+ [key: string]: unknown;
30
+ }
31
+ /** 单 provider 设置 */
32
+ interface ProviderSetting {
33
+ enabled: boolean;
34
+ apiKey: string;
35
+ preferDirect: boolean;
36
+ [key: string]: unknown;
37
+ }
38
+ /** 构造选项 */
39
+ export interface LocalAPIKeySettingsOptions {
40
+ storage?: 'personalPageStore' | 'localStorage';
41
+ workspace?: string;
42
+ /** 'zhCN' | 'enUS',缺省时按系统语言自动检测 */
43
+ lang?: string;
44
+ [key: string]: unknown;
45
+ }
46
+ /** LocalAPIKeySettings 依赖的 SDK 表面 */
47
+ interface LAKStore {
48
+ readFile(path: string): Promise<string>;
49
+ createFile(path: string, content: string): Promise<unknown>;
50
+ [key: string]: unknown;
51
+ }
52
+ interface LAKSdk {
53
+ personalPageStore?: {
54
+ withWorkspace(workspace: string, mountFolder?: string | null): LAKStore;
55
+ [key: string]: unknown;
56
+ };
57
+ [key: string]: unknown;
58
+ }
59
+ export default class LocalAPIKeySettings {
60
+ sdk: LAKSdk;
61
+ storageMode: string;
62
+ workspace: string;
63
+ _enabled: boolean;
64
+ _models: Map<string, ModelConfig>;
65
+ _providerSettings: Record<string, ProviderSetting>;
66
+ _abstractModelMap: Record<string, string>;
67
+ _loaded: boolean;
68
+ _loadPromise: Promise<void> | null;
69
+ _saveTimer?: ReturnType<typeof setTimeout> | null;
70
+ _overlay: HTMLElement | null;
71
+ _activeCategory: string;
72
+ _activePresetTab: boolean;
73
+ _styleInjected: boolean;
74
+ _showOptions?: Record<string, unknown>;
75
+ _presetClickHandler?: (e: Event) => void;
76
+ _lang: string;
77
+ _strings: LAKStrings;
78
+ [key: string]: unknown;
79
+ /**
80
+ * @param {object} sdk - KeepworkSDK instance
81
+ * @param {object} [options]
82
+ * @param {'personalPageStore'|'localStorage'} [options.storage='localStorage']
83
+ * @param {string} [options.workspace]
84
+ */
85
+ constructor(sdk: unknown, options?: LocalAPIKeySettingsOptions);
86
+ /** Translate a key, optionally interpolating {placeholders}. */
87
+ _t(key: string, vars?: Record<string, string>): string;
88
+ get enabled(): boolean;
89
+ set enabled(val: boolean);
90
+ setModel(name: string, config?: Record<string, unknown>): void;
91
+ removeModel(name: string): void;
92
+ getModel(name: string): ModelConfig | undefined;
93
+ listModels(category?: string): Array<ModelConfig & {
94
+ name: string;
95
+ }>;
96
+ setAllModels(models: Array<Record<string, unknown>>): void;
97
+ /**
98
+ * Resolve a model ID (possibly abstract like 'keepwork-pro') to
99
+ * { apiKey, realModelId }.
100
+ * Resolution chain:
101
+ * 1. If modelId is an abstract name, map it to a real model ID.
102
+ * 2. Look up the real model ID in per-model settings.
103
+ * 3. Fall back to provider-level defaults, using an explicit provider hint when supplied.
104
+ */
105
+ resolve(modelId: string, options?: Record<string, unknown>): Record<string, unknown> | null;
106
+ _resolveAbstractTarget(abstractName: string, mappedModelId: string): string;
107
+ _getAbstractDisplayValue(abstractName: string, mappedModelId: string): string;
108
+ _getDropdownOptions(category: string): Array<{
109
+ name: string;
110
+ modelId: string;
111
+ }>;
112
+ /**
113
+ * Resolve settings for requests that must remain on Keepwork's `/gpt/*`
114
+ * endpoints. This intentionally strips any direct provider baseURL.
115
+ * @param {string} modelId
116
+ * @returns {{apiKey:string, realModelId?:string}|null}
117
+ */
118
+ resolveProxyConfig(modelId: string): Record<string, unknown> | null;
119
+ /**
120
+ * Resolve settings for direct provider compatibility checks.
121
+ * @param {string} modelId
122
+ * @returns {{apiKey:string, realModelId?:string}|null}
123
+ */
124
+ resolveDirectConfig(modelId: string, options?: Record<string, unknown>): Record<string, unknown> | null;
125
+ /**
126
+ * Set whether a provider should prefer direct browser calls over Keepwork proxy calls.
127
+ * Defaults to false for every provider to preserve existing behavior.
128
+ */
129
+ setProviderPreferDirect(providerKey: string, preferDirect: boolean): void;
130
+ /** Get the saved API key for a provider preset. */
131
+ getProviderApiKey(providerKey: string): string;
132
+ /**
133
+ * Detect which service provider a model ID belongs to.
134
+ * @param {string} modelId
135
+ * @returns {string|null} provider key (e.g. 'doubao', 'openai') or null
136
+ */
137
+ detectProvider(modelId: string): string | null;
138
+ /** Get the full abstract model map. */
139
+ get abstractModelMap(): {
140
+ [x: string]: string;
141
+ };
142
+ /** Set a single abstract mapping: keepwork-pro → real-model-id */
143
+ setAbstractMapping(abstractName: string, realModelId: string): void;
144
+ /** Remove an abstract mapping. */
145
+ removeAbstractMapping(abstractName: string): void;
146
+ /**
147
+ * Reset all settings except API keys (per-provider + per-model) and the
148
+ * abstract model mapping. Useful when the user wants to restore default
149
+ * model lists / enabled flags / direct-call preferences without losing
150
+ * the API keys they have already entered.
151
+ */
152
+ resetExceptApiKeysAndAbstractMap(): void;
153
+ /** Get the real model ID for an abstract name (or return the name unchanged). */
154
+ resolveAbstractName(name: string): string;
155
+ /**
156
+ * Resolve a display name (e.g. "Doubao Seedance 2.0 fast") to its modelId
157
+ * (e.g. "seedance-2.0-fast"). Returns the input unchanged if no match found.
158
+ * @param {string} name
159
+ * @returns {string}
160
+ */
161
+ resolveModelName(name: string): string;
162
+ get hasSettings(): boolean;
163
+ /**
164
+ * Resolve a model name/ID to { model, apiKey } for use by AIChat / AIChatRTC / AIGenerators.
165
+ * Handles display-name resolution, abstract-name mapping, and enabled checks.
166
+ * @param {string} model
167
+ * @param {object|string} [options] - Optional { provider } hint, or provider key string.
168
+ * @returns {{model: string, apiKey: string, provider?: string, preferDirect?: boolean}}
169
+ */
170
+ resolveModelSettings(model: string, options?: Record<string, unknown> | string): Record<string, unknown>;
171
+ load(): Promise<void>;
172
+ _getStore(): LAKStore | null;
173
+ _doLoad(): Promise<void>;
174
+ save(): Promise<void>;
175
+ clear(): Promise<void>;
176
+ _serializeData(): Record<string, unknown>;
177
+ /**
178
+ * Build a one-shot map of legacy Volcano Endpoint IDs to friendly model names.
179
+ * Older builds persisted `modelId: 'ep-...'`; we transparently rewrite them.
180
+ */
181
+ _endpointIdToFriendlyName(endpointId: string): string | null;
182
+ _applyData(data: Record<string, unknown>): void;
183
+ /** Ensure _providerSettings has an entry for every SERVICE_PRESETS key. */
184
+ _initProviderSettings(): void;
185
+ _ensureDefaultServicePresets(): boolean;
186
+ _getPresetProviderByModelName(name: string | undefined): string | null;
187
+ _scheduleSave(): void;
188
+ toJSON(): Record<string, unknown>;
189
+ fromJSON(data: Record<string, unknown>): void;
190
+ /**
191
+ * Open the settings modal.
192
+ * @param {object} [options]
193
+ * @param {Function} [options.onClose] - Called when the modal is dismissed.
194
+ * @param {Function} [options.onSave] - Called after settings are saved.
195
+ * @param {string} [options.title] - Modal title override.
196
+ * @param {string} [options.lang] - 'zhCN' | 'enUS' (auto-detected if omitted).
197
+ * @param {boolean} [options.fullscreen=false] - Use the full viewport instead of a centered dialog.
198
+ */
199
+ show(options?: Record<string, unknown>): void;
200
+ /** Close the modal. */
201
+ hide(): void;
202
+ /** Toggle: show if hidden, hide if shown. */
203
+ toggle(options?: Record<string, unknown>): void;
204
+ _buildHTML(options?: Record<string, unknown>): string;
205
+ _populateFields(): void;
206
+ _renderModels(): void;
207
+ /**
208
+ * Return the "canonical" API key for a provider preset — the first
209
+ * configured preset model's apiKey (matches what Presets tab shows).
210
+ * Returns '' when no preset model for this provider is configured.
211
+ */
212
+ _getProviderPresetKey(providerKey: string | null): string;
213
+ /** Set provider-level API key and propagate to models whose key matched the old value. */
214
+ setProviderApiKey(providerKey: string, newApiKey: string): void;
215
+ _updateCounts(): void;
216
+ _renderActivePanel(): void;
217
+ _switchToPresets(): void;
218
+ _switchToCategory(cat: string): void;
219
+ _renderPresets(): void;
220
+ _bindPresetEvents(container: HTMLElement): void;
221
+ _providerLabel(modelId: string): string;
222
+ _bindEvents(): void;
223
+ _injectStyles(): void;
224
+ _esc(s: unknown): string;
225
+ _attr(s: unknown): string;
226
+ _eyeIcon(open: boolean): string;
227
+ }
228
+ export {};
229
+ //# sourceMappingURL=LocalAPIKeySettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalAPIKeySettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/LocalAPIKeySettings.ts"],"names":[],"mappings":"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"}