@webskill/chatbot 0.2.0 → 0.4.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 +17 -0
- package/dist/chatbot.css +168 -84
- package/dist/index.d.ts +834 -160
- package/dist/index.js +6900 -2438
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AgentLoopConfig, ApprovalScope, BridgeCapabilities, ExternalSkillProvider, ExternalToolSource, FileSystemProvider, HookRunner, InteractionRequest, InteractionResponse, LifecycleEventInit, LlmClient, NetworkPolicy, Page, PageQuery, RenderBlock, RenderResultRequest, RunSnapshot, RunSnapshotListEntry, ScriptExecutor, SessionStore, SkillCatalogEntry, SkillIntegrityGuard, SkillOutcomeReporter, SkillStateGuard, UiBridge, UiSpecDrafts, UiSpecEvent, UiSpecSnapshot, UiSurfaceActionRequest, UiSurfaceActionResponse } from "@webskill/sdk";
|
|
1
|
+
import { AgentLoopConfig, ApprovalScope, BridgeCapabilities, ExternalSkillProvider, ExternalToolSource, FileSystemProvider, HookRunner, InteractionRequest, InteractionResponse, LifecycleEventInit, LlmClient, NetworkPolicy, Page, PageQuery, RenderBlock, RenderResultRequest, RunSnapshot, RunSnapshotListEntry, RuntimePhase, ScriptExecutor, SessionStore, SkillCandidateMarker, SkillCatalogEntry, SkillIntegrityGuard, SkillOutcomeReporter, SkillStateGuard, UiBridge, UiSpecDrafts, UiSpecEvent, UiSpecSnapshot, UiSurfaceActionRequest, UiSurfaceActionResponse, UserProfile, UserProfileEntry, UserProfileExport, WebSkillErrorCode, diffUserProfile } from "@webskill/sdk";
|
|
2
2
|
import { SandboxMode, TypeScriptSupportOptions } from "@webskill/sdk/browser";
|
|
3
3
|
import { CustomSurfaceActionEvent, ReactBridgeState, SpecInteractionChannel, SurfaceRegistry, UiSurfaceActionEvent } from "@webskill/sdk/ui-react";
|
|
4
|
-
import { PagePerceptionPolicy, PerceptionRecord, SkillCandidateSink, TodoItem } from "@webskill/sdk/agent";
|
|
4
|
+
import { PageActionPolicy, PagePerceptionPolicy, PerceptionRecord, SkillCandidateSink, TodoItem } from "@webskill/sdk/agent";
|
|
5
5
|
import "react";
|
|
6
6
|
import "react/jsx-runtime";
|
|
7
7
|
//#region ../ui-kit/src/i18n/types.d.ts
|
|
@@ -103,6 +103,18 @@ interface RuntimeRemoteUrlConfig {
|
|
|
103
103
|
}
|
|
104
104
|
/** `chrome-builtin` 走浏览器 Prompt API,无端点与密钥;其余三档是云端 HTTP 协议 */
|
|
105
105
|
type RuntimeLlmProvider = 'openai-compatible' | 'anthropic' | 'google' | 'chrome-builtin';
|
|
106
|
+
/**
|
|
107
|
+
* 单个模型的能力声明(FR-11.4 / FR-14.2)。`image` 缺省视为 `false`:
|
|
108
|
+
* 猜测支持会把图片发给纯文本模型,拿到的是 provider 的不可读报错。
|
|
109
|
+
* `tools` 反过来,缺省视为 `true`:云端模型几乎都支持,默认关会把存量配置里
|
|
110
|
+
* 没标能力的条目全部降级成纯对话。
|
|
111
|
+
* @experimental
|
|
112
|
+
*/
|
|
113
|
+
interface RuntimeLlmCapabilities {
|
|
114
|
+
image: boolean;
|
|
115
|
+
/** 是否支持原生工具调用;false 时 Agent 走纯对话路径 */
|
|
116
|
+
tools: boolean;
|
|
117
|
+
}
|
|
106
118
|
/**
|
|
107
119
|
* 单个模型条目。`id` 稳定,会话记录与消息归属存的是它,用户改名不影响历史;
|
|
108
120
|
* `label` 只用于展示——同一个 `model` 可能配了两个不同的 `baseUrl`(公司代理与直连),
|
|
@@ -116,6 +128,7 @@ interface RuntimeLlmEntry {
|
|
|
116
128
|
apiKey?: string;
|
|
117
129
|
model: string;
|
|
118
130
|
requestTimeoutMs?: number;
|
|
131
|
+
capabilities?: RuntimeLlmCapabilities;
|
|
119
132
|
}
|
|
120
133
|
/** 模型列表 + 默认项。`defaultId` 由 `mergeRuntimeConfigDefaults` 归一到真实存在的条目 */
|
|
121
134
|
interface RuntimeLlmSelection {
|
|
@@ -129,8 +142,6 @@ interface RuntimeLlmSelection {
|
|
|
129
142
|
* `skillGeneration`:技能自动生成,默认**关闭**——会把对话内容写进持久化的候选,
|
|
130
143
|
* 属于新增攻击面(AC-G7 判据一)。
|
|
131
144
|
* `generativeUi`:生成式 UI,默认**关闭**——catalog 描述约 14 KB 计入每次请求。
|
|
132
|
-
* `formAutofill`:跨会话表单自动填充,默认**关闭**(FR-5.10)——会把用户亲手填的内容
|
|
133
|
-
* (可能是手机号、地址)跨会话持久化,属新增攻击面。
|
|
134
145
|
* `uiPresets`:开放给模型的场景预设,默认全开——预设本体按需加载,
|
|
135
146
|
* 只有名字与一行摘要计入请求;置空列表等于完全关闭预设。
|
|
136
147
|
*/
|
|
@@ -138,7 +149,6 @@ interface RuntimeAgentCapabilitiesConfig {
|
|
|
138
149
|
todo: boolean;
|
|
139
150
|
skillGeneration: boolean;
|
|
140
151
|
generativeUi: boolean;
|
|
141
|
-
formAutofill: boolean;
|
|
142
152
|
/** 串行委派(FR-11.8):默认关。一句话可能展开成多个子 run,调用量对用户不可预期 */
|
|
143
153
|
delegation: boolean;
|
|
144
154
|
uiPresets: string[];
|
|
@@ -152,6 +162,51 @@ type UnsignedSkillPolicy = 'allow' | 'warn' | 'deny';
|
|
|
152
162
|
interface RuntimeSecurityConfig {
|
|
153
163
|
unsignedSkills: UnsignedSkillPolicy;
|
|
154
164
|
}
|
|
165
|
+
/** 生成式 UI 的渲染器档位。ui-kit 不依赖 `@webskill/ui`,因此这里写字面量联合 @experimental */
|
|
166
|
+
type RuntimeRendererId = 'native' | 'a2ui' | 'openui' | 'vercel';
|
|
167
|
+
/**
|
|
168
|
+
* 外观配置(0.6.0 FR-20.1)。0.5.x 之前外观由宿主自持并单独存一份,
|
|
169
|
+
* 导致 chatbot 与 console 各看各的;纳入 `RuntimeConfig` 后两端共用同一份。
|
|
170
|
+
* `dictationLang` 只对 chatbot 有意义(console 无语音输入),但同属外观段。
|
|
171
|
+
* @experimental
|
|
172
|
+
*/
|
|
173
|
+
interface RuntimeAppearanceConfig {
|
|
174
|
+
theme: 'light' | 'dark';
|
|
175
|
+
locale: Locale;
|
|
176
|
+
renderer: RuntimeRendererId;
|
|
177
|
+
dictationLang: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* 多模态输入配置(0.6.0 FR-11.3 / FR-11.6 / FR-12.3)。
|
|
181
|
+
* `imageAttachments` 与 `pageImageCapture` 默认都关(AC-G5):
|
|
182
|
+
* 两者都会把图像随请求外发给模型提供方,属新增攻击面。
|
|
183
|
+
* @experimental
|
|
184
|
+
*/
|
|
185
|
+
interface RuntimeMultimodalConfig {
|
|
186
|
+
imageAttachments: boolean;
|
|
187
|
+
/** 页面图像抓取总开关(FR-12.3);关时感知只走纯文本路径 */
|
|
188
|
+
pageImageCapture: boolean;
|
|
189
|
+
/** 附件与取像共用 */
|
|
190
|
+
maxImageBytes: number;
|
|
191
|
+
/** 附件与取像共用 */
|
|
192
|
+
maxImagesPerMessage: number;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* 用户画像配置(0.6.0 FR-19.6)。`enabled` 默认**关**(AC-G5):
|
|
196
|
+
* 开启后会把用户的提问与填写持久化到本地,属新增攻击面;
|
|
197
|
+
* `encrypted` 默认**开**——它不新增采集,只决定已采集的数据怎么落盘,默认明文无正当理由。
|
|
198
|
+
* chatbot 与 console 共用这一份。
|
|
199
|
+
* @experimental
|
|
200
|
+
*/
|
|
201
|
+
interface RuntimeUserProfileConfig {
|
|
202
|
+
enabled: boolean;
|
|
203
|
+
/** 画像注入系统提示的字节上限(FR-19.4) */
|
|
204
|
+
injectMaxBytes: number;
|
|
205
|
+
/** 行为记录容量上限,超出淘汰最旧(FR-19.2) */
|
|
206
|
+
recordLimit: number;
|
|
207
|
+
/** 本地存储加密(FR-19.5) */
|
|
208
|
+
encrypted: boolean;
|
|
209
|
+
}
|
|
155
210
|
/** @experimental */
|
|
156
211
|
interface RuntimeConfig {
|
|
157
212
|
loop: RuntimeLoopConfig;
|
|
@@ -166,6 +221,11 @@ interface RuntimeConfig {
|
|
|
166
221
|
llm: RuntimeLlmSelection;
|
|
167
222
|
agentCapabilities: RuntimeAgentCapabilitiesConfig;
|
|
168
223
|
security: RuntimeSecurityConfig;
|
|
224
|
+
appearance: RuntimeAppearanceConfig;
|
|
225
|
+
multimodal: RuntimeMultimodalConfig;
|
|
226
|
+
userProfile: RuntimeUserProfileConfig;
|
|
227
|
+
/** 被用户删掉的自动模型条目 id(FR-14.3):删一次就不该再自己长回来 */
|
|
228
|
+
dismissedAutoEntries: readonly string[];
|
|
169
229
|
}
|
|
170
230
|
/** @experimental */
|
|
171
231
|
interface RuntimeConfigStore {
|
|
@@ -178,44 +238,41 @@ interface RuntimeConfigStore {
|
|
|
178
238
|
load(): Promise<RuntimeConfig>;
|
|
179
239
|
save(config: RuntimeConfig): Promise<void>;
|
|
180
240
|
reset(): Promise<void>;
|
|
241
|
+
/**
|
|
242
|
+
* Subscribes to configuration changes; returns an unsubscribe function.
|
|
243
|
+
* Optional: stores without it degrade to the previous behaviour where hosts
|
|
244
|
+
* remount consumers after a save.
|
|
245
|
+
*/
|
|
246
|
+
subscribe?(listener: () => void): () => void;
|
|
181
247
|
}
|
|
182
248
|
//#endregion
|
|
183
|
-
//#region ../ui-kit/src/runtime-config/
|
|
184
|
-
/** 导出结构的版本;导入时逐字校验,不做向前兼容猜测 */
|
|
185
|
-
declare const PREFERENCE_EXPORT_VERSION = 1;
|
|
249
|
+
//#region ../ui-kit/src/runtime-config/stores.d.ts
|
|
186
250
|
/**
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
251
|
+
* `RuntimeConfigStore` 的两个实现(0.6.0 FR-20.1)。0.5.x 之前 SDK 只有接口没有实现,
|
|
252
|
+
* 每个宿主自己写一份 localStorage 读写,「chatbot 与 console 读同一份配置」靠宿主恰好传了
|
|
253
|
+
* 同一个对象,不是 SDK 保证。
|
|
190
254
|
*/
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
interface PreferenceAppearance {
|
|
194
|
-
theme?: string;
|
|
195
|
-
locale?: string;
|
|
196
|
-
renderer?: string;
|
|
197
|
-
}
|
|
255
|
+
/** 默认存储键;外观也在这份配置里,宿主不应再开第二个键存主题 @experimental */
|
|
256
|
+
declare const DEFAULT_RUNTIME_CONFIG_STORAGE_KEY = "webskill.runtime-config";
|
|
198
257
|
/** @experimental */
|
|
199
|
-
interface
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
appearance?: PreferenceAppearance;
|
|
204
|
-
interaction?: {
|
|
205
|
-
missingParams?: string;
|
|
206
|
-
confirmations?: string;
|
|
207
|
-
};
|
|
208
|
-
models?: readonly PreferenceLlmEntry[];
|
|
209
|
-
agentCapabilities?: {
|
|
210
|
-
todo?: boolean;
|
|
211
|
-
skillGeneration?: boolean;
|
|
212
|
-
generativeUi?: boolean;
|
|
213
|
-
formAutofill?: boolean;
|
|
214
|
-
delegation?: boolean;
|
|
215
|
-
uiPresets?: string[];
|
|
216
|
-
};
|
|
217
|
-
};
|
|
258
|
+
interface LocalStorageRuntimeConfigStoreOptions {
|
|
259
|
+
key?: string;
|
|
260
|
+
/** 注入存储实现,便于测试与非 window 环境;缺省取 `globalThis.localStorage` */
|
|
261
|
+
storage?: Storage;
|
|
218
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* localStorage 实现。跨标签页同步经 `storage` 事件——该事件只在**其他**标签页写入时触发,
|
|
265
|
+
* 因此本标签页 `save()` 后需要自行通知订阅者。
|
|
266
|
+
* 存储不可用(SSR、隐私模式、配额满)时退化为内存,不抛错:配置读写失败不该让宿主白屏。
|
|
267
|
+
* @experimental
|
|
268
|
+
*/
|
|
269
|
+
declare function createLocalStorageRuntimeConfigStore(options?: LocalStorageRuntimeConfigStoreOptions): RuntimeConfigStore;
|
|
270
|
+
/** 内存实现:测试、SSR、以及宿主明确不想持久化时使用。 @experimental */
|
|
271
|
+
declare function createMemoryRuntimeConfigStore(initial?: Partial<RuntimeConfig>): RuntimeConfigStore;
|
|
272
|
+
//#endregion
|
|
273
|
+
//#region src/core/attachmentKind.d.ts
|
|
274
|
+
/** 附件在模型侧的内容形态(0.6.0 FR-11.2) @experimental */
|
|
275
|
+
type ChatAttachmentKind = 'text' | 'image' | 'file';
|
|
219
276
|
//#endregion
|
|
220
277
|
//#region src/core/types.d.ts
|
|
221
278
|
/**
|
|
@@ -277,20 +334,51 @@ interface ChatAttachmentInput {
|
|
|
277
334
|
/** 相对 `attachmentsRoot` 的路径 */
|
|
278
335
|
path: string;
|
|
279
336
|
size: number;
|
|
337
|
+
/** 注入模型的内容形态;决定 send 时读文本还是读二进制 */
|
|
338
|
+
kind: ChatAttachmentKind;
|
|
339
|
+
/** 图片经压缩时的原始字节数,供 UI 显示「3.2 MB → 1.8 MB」(FR-11.3) */
|
|
340
|
+
originalSize?: number;
|
|
280
341
|
}
|
|
281
342
|
/** 随消息持久化的附件元数据 @experimental */
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
343
|
+
type ChatAttachmentMeta = ChatAttachmentInput;
|
|
344
|
+
/**
|
|
345
|
+
* 归并后的显示相位。进行中通道与历史通道共用这一个结构:
|
|
346
|
+
* 各存一份正是「运行细节首轮后消失」的根因(需求 17 条目 10-6)。
|
|
347
|
+
* @experimental
|
|
348
|
+
*/
|
|
349
|
+
interface ChatRunPhase {
|
|
350
|
+
phase: RuntimePhase;
|
|
351
|
+
at: number;
|
|
352
|
+
/** 下一个步进到达时回填 */
|
|
353
|
+
endedAt?: number;
|
|
354
|
+
/** 由结构化 `LifecycleEvent.data` 派生的一句摘要 */
|
|
355
|
+
note?: string;
|
|
356
|
+
}
|
|
357
|
+
/** 本轮发生的一次已提交交互(FR-17.8:提交后表单保留所填值) @experimental */
|
|
358
|
+
interface ChatInteractionRecord {
|
|
359
|
+
id: string;
|
|
360
|
+
request: InteractionRequest;
|
|
361
|
+
/** 提交时的表单值;文件类字段已在引擎侧脱敏 */
|
|
362
|
+
submittedValues?: unknown;
|
|
285
363
|
}
|
|
286
364
|
/** @stable */
|
|
287
365
|
interface ChatMessage {
|
|
288
366
|
id: string;
|
|
289
367
|
role: 'user' | 'assistant';
|
|
290
|
-
|
|
368
|
+
/**
|
|
369
|
+
* 消息正文。本 run 一个字也没产出时(例如模型开口前就被中止)**缺省**,
|
|
370
|
+
* 与「产出了空串」区分开——写空串会渲染出一个空白气泡(FR-20.4)。
|
|
371
|
+
*/
|
|
372
|
+
text?: string;
|
|
291
373
|
ts: string;
|
|
292
374
|
/** user 消息携带的附件(旧会话文件无该字段) */
|
|
293
375
|
attachments?: ChatAttachmentMeta[];
|
|
376
|
+
/**
|
|
377
|
+
* 随消息持久化的系统提示(例如「图片超出数量上限,未发送 X」,FR-11.3)。
|
|
378
|
+
* 放在消息里而不是 toast:toast 会消失,用户回头就查不到这次到底发了什么。
|
|
379
|
+
* @experimental
|
|
380
|
+
*/
|
|
381
|
+
notice?: string;
|
|
294
382
|
/** assistant 消息所属 run */
|
|
295
383
|
runId?: string;
|
|
296
384
|
/** 该 run 激活的技能(消息底部 badges) */
|
|
@@ -317,6 +405,24 @@ interface ChatMessage {
|
|
|
317
405
|
* 写在消息上而不是会话上:切换模型只对后续消息生效,已有消息的归属不能被改写。
|
|
318
406
|
*/
|
|
319
407
|
model?: string;
|
|
408
|
+
/**
|
|
409
|
+
* 该轮的生命周期相位快照(FR-17.7)。不持久化它,live 状态一丢「运行细节」入口就消失,
|
|
410
|
+
* 表现为容器高度先减后增。
|
|
411
|
+
* @experimental
|
|
412
|
+
*/
|
|
413
|
+
phases?: ChatRunPhase[];
|
|
414
|
+
/**
|
|
415
|
+
* 该轮发生的交互及其终态(FR-17.8)。交互卡归属发起它的那条消息,
|
|
416
|
+
* 后续结果另开新消息,而不是就地改写原表单。
|
|
417
|
+
* @experimental
|
|
418
|
+
*/
|
|
419
|
+
interactions?: ChatInteractionRecord[];
|
|
420
|
+
/**
|
|
421
|
+
* 该轮提交的技能候选(FR-24.1)。数据来自 `$skillCandidate` 载荷,
|
|
422
|
+
* 不从模型复述的自然语言里解析。
|
|
423
|
+
* @experimental
|
|
424
|
+
*/
|
|
425
|
+
candidates?: SkillCandidateMarker[];
|
|
320
426
|
}
|
|
321
427
|
/** @stable */
|
|
322
428
|
interface ChatSessionMeta {
|
|
@@ -328,6 +434,17 @@ interface ChatSessionMeta {
|
|
|
328
434
|
/** 用户已手动重命名:后续 send 不再用首条消息覆盖标题 */
|
|
329
435
|
titleLocked?: boolean;
|
|
330
436
|
}
|
|
437
|
+
/**
|
|
438
|
+
* 会话列表页:除了数据,还得告诉 UI「为什么是空的」(FR-21.4 / FR-21.11)。 @experimental
|
|
439
|
+
*/
|
|
440
|
+
interface ChatSessionListResult {
|
|
441
|
+
items: ChatSessionMeta[];
|
|
442
|
+
nextCursor?: string;
|
|
443
|
+
/** `'ok'` = 正常列举;`'missing-root'` = 会话目录不存在(多半是 chatRoot 配错) */
|
|
444
|
+
source: 'ok' | 'missing-root';
|
|
445
|
+
/** 读不动而被跳过的会话文件名 */
|
|
446
|
+
skipped: readonly string[];
|
|
447
|
+
}
|
|
331
448
|
/** @stable */
|
|
332
449
|
type ChatEvent = {
|
|
333
450
|
type: 'run-started';
|
|
@@ -368,6 +485,8 @@ type ChatEvent = {
|
|
|
368
485
|
status: 'completed' | 'failed' | 'cancelled';
|
|
369
486
|
output: string;
|
|
370
487
|
activeSkillNames: string[];
|
|
488
|
+
/** 终止原因对应的稳定错误码(仅非正常结束时):UI 据此分类提示,不再压平为 RUN_FAILED */
|
|
489
|
+
code?: WebSkillErrorCode;
|
|
371
490
|
} | {
|
|
372
491
|
type: 'todo-changed';
|
|
373
492
|
runId: string;
|
|
@@ -380,6 +499,8 @@ type ChatEvent = {
|
|
|
380
499
|
type: 'interaction-requested';
|
|
381
500
|
id: string;
|
|
382
501
|
requestType: InteractionRequest['type'];
|
|
502
|
+
/** 等待对象的可读名称(表单标题 / 问题正文):等待指示器要说清在等什么(FR-21.3) */
|
|
503
|
+
label?: string;
|
|
383
504
|
} | {
|
|
384
505
|
type: 'interaction-resolved';
|
|
385
506
|
id: string;
|
|
@@ -388,6 +509,21 @@ type ChatEvent = {
|
|
|
388
509
|
} | LifecycleChatEvent | {
|
|
389
510
|
type: 'session-updated';
|
|
390
511
|
session: ChatSessionMeta;
|
|
512
|
+
} |
|
|
513
|
+
/**
|
|
514
|
+
* 会话结束(需求 19 FR-19.3):切换、删除、归档、引擎释放各算一次。
|
|
515
|
+
* 用户画像的自动提炼挂在这个事件上——没有它就只能靠定时器猜「聊完了没」。
|
|
516
|
+
* @experimental
|
|
517
|
+
*/
|
|
518
|
+
{
|
|
519
|
+
type: 'session-ended';
|
|
520
|
+
sessionId: string;
|
|
521
|
+
reason: 'switched' | 'deleted' | 'archived' | 'closed';
|
|
522
|
+
} |
|
|
523
|
+
/** 画像提炼完成(需求 19 FR-19.3):设置面板据此刷新列表 @experimental */
|
|
524
|
+
{
|
|
525
|
+
type: 'user-profile-updated';
|
|
526
|
+
profile: UserProfile;
|
|
391
527
|
} | {
|
|
392
528
|
type: 'warning';
|
|
393
529
|
message: string;
|
|
@@ -453,6 +589,8 @@ interface ChatbotHostAdapter {
|
|
|
453
589
|
openConsole(): void;
|
|
454
590
|
/** 跳 console Traces 面板并定位该 run(v1.1;缺省时消息不渲染 View trace 入口) */
|
|
455
591
|
openConsoleTrace?(runId: string): void;
|
|
592
|
+
/** 打开治理面的审批队列并定位该候选(FR-24.2);宿主未接治理面时不提供,入口随之不渲染 */
|
|
593
|
+
openConsoleCandidate?(candidateId: string): void;
|
|
456
594
|
};
|
|
457
595
|
/** 缺省 BrowserWorkerScriptExecutor(@webskill/browser);Node 宿主可注入自己的执行器 */
|
|
458
596
|
executor?: ScriptExecutor;
|
|
@@ -463,6 +601,13 @@ interface ChatbotHostAdapter {
|
|
|
463
601
|
* @experimental
|
|
464
602
|
*/
|
|
465
603
|
pagePerception?: PagePerceptionPolicy;
|
|
604
|
+
/**
|
|
605
|
+
* 页面操作能力(需求 23)。**不注入即完全关闭**,与 `pagePerception` 分开:
|
|
606
|
+
* 可读不等于可操作。同样只能在这里注入——给终端用户一个「打开代操作」的开关
|
|
607
|
+
* 等于把安全边界交给最不了解它的人。
|
|
608
|
+
* @experimental
|
|
609
|
+
*/
|
|
610
|
+
pageActions?: PageActionPolicy;
|
|
466
611
|
}
|
|
467
612
|
//#endregion
|
|
468
613
|
//#region src/core/chatEngine.d.ts
|
|
@@ -544,6 +689,8 @@ declare class ChatEngine {
|
|
|
544
689
|
* 重装配 runtime 以换掉客户端;已落盘的消息不受影响。
|
|
545
690
|
*/
|
|
546
691
|
setModel(entryId: string | undefined): void;
|
|
692
|
+
/** 会话文件所在目录:「存储未初始化」提示要把路径写给用户看 @experimental */
|
|
693
|
+
get sessionsRoot(): string;
|
|
547
694
|
/** 渲染框架热切换:复合桥按档分发,无需重装配 runtime(会话句柄保留) */
|
|
548
695
|
setRenderer(renderer: RendererKind): void;
|
|
549
696
|
/** 非 native 三档共用的交互通道(Chatbot 的 SpecInteraction 订阅/attach;core 只产出 catalog 节点树) */
|
|
@@ -560,8 +707,11 @@ declare class ChatEngine {
|
|
|
560
707
|
* 会话列表页。归档会话也返回:UI 自己分区展示。
|
|
561
708
|
* `limit` 不给默认值——缺省属于 `SessionStore` 实现,在这里兜底就等于只下推了一半。
|
|
562
709
|
*/
|
|
563
|
-
listSessions(options?: PageQuery): Promise<
|
|
564
|
-
|
|
710
|
+
listSessions(options?: PageQuery): Promise<ChatSessionListResult>;
|
|
711
|
+
/** `title` 缺省时会话先无标题,首条消息发出时再按内容补(FR-21.8) */
|
|
712
|
+
createSession(options?: {
|
|
713
|
+
title?: string;
|
|
714
|
+
}): Promise<ChatSessionMeta>;
|
|
565
715
|
/**
|
|
566
716
|
* 选中会话并取**最新**一页历史(页内时间升序)。
|
|
567
717
|
* 返回全量 `ChatMessage[]` 的旧签名已移除:长会话下它强迫每个调用方拿全量。
|
|
@@ -590,13 +740,18 @@ declare class ChatEngine {
|
|
|
590
740
|
/**
|
|
591
741
|
* 驱动当前 session 的一轮 run。同 session 并发由 runtime session handle 内部
|
|
592
742
|
* 队列串行化(此处直接 await);UI 层应在 send 期间禁用输入。
|
|
593
|
-
*
|
|
743
|
+
* 附件按 `attachmentsRoot` 内的路径读回并构造 `LlmContentPart[]`(FR-11.2)。
|
|
594
744
|
*/
|
|
595
745
|
send(text: string, attachments?: readonly ChatAttachmentInput[]): Promise<void>;
|
|
596
746
|
/** 附件落盘根目录(composer 附件适配器写入,send 时读回) */
|
|
597
747
|
get attachmentsRoot(): string;
|
|
598
748
|
/** 取消进行中的 run(Composer Stop 按钮);run 未找到/已结束返回 false */
|
|
599
749
|
cancel(runId: string): boolean;
|
|
750
|
+
/**
|
|
751
|
+
* 释放引擎:取消进行中的 run、退订全部事件、丢弃装配缓存。
|
|
752
|
+
* 宿主重挂组件时用它收尾;只是换配置的话用 `reloadConfig()`,不要 dispose。
|
|
753
|
+
*/
|
|
754
|
+
dispose(): Promise<void>;
|
|
600
755
|
/** 列出 interrupted run(InterruptedBanner 数据源);版本不受支持的项带 unsupported 标记 */
|
|
601
756
|
listInterrupted(): Promise<RunSnapshotListEntry[]>;
|
|
602
757
|
/**
|
|
@@ -604,12 +759,36 @@ declare class ChatEngine {
|
|
|
604
759
|
* 完成后与 send 同路径(assistant 消息持久化 + run-completed + trace 落盘)。
|
|
605
760
|
*/
|
|
606
761
|
resume(runId: string): Promise<void>;
|
|
762
|
+
/** 读取当前画像(FR-19.3:可见) @experimental */
|
|
763
|
+
readUserProfile(): Promise<UserProfile>;
|
|
764
|
+
/** 已记录的行为条数;设置面板用它告诉用户「清除」会删掉什么 @experimental */
|
|
765
|
+
countBehaviorRecords(): Promise<number>;
|
|
766
|
+
/** 删除单条画像结论(FR-19.3:可编辑可删除) @experimental */
|
|
767
|
+
deleteUserProfileEntry(id: string): Promise<UserProfile>;
|
|
768
|
+
/** 清除全部行为记录(FR-19.8)。与清除画像是两个独立操作 @experimental */
|
|
769
|
+
clearBehaviorRecords(): Promise<void>;
|
|
770
|
+
/** 清除提炼出的画像(FR-19.8) @experimental */
|
|
771
|
+
clearUserProfile(): Promise<void>;
|
|
772
|
+
/**
|
|
773
|
+
* 一并清除记录与画像,并销毁加密密钥(FR-19.8:关闭总开关时的「一并清除」)。
|
|
774
|
+
* 密钥留着就等于给残留密文留了一把能解开的钥匙。
|
|
775
|
+
* @experimental
|
|
776
|
+
*/
|
|
777
|
+
clearUserProfileData(): Promise<void>;
|
|
607
778
|
/**
|
|
608
|
-
*
|
|
609
|
-
*
|
|
779
|
+
* 手动提炼(FR-19.3)。与会话结束后的自动提炼同一条路径,
|
|
780
|
+
* 区别只在于这里的失败会抛给调用方——用户点了按钮就该看到结果。
|
|
610
781
|
* @experimental
|
|
611
782
|
*/
|
|
612
|
-
|
|
783
|
+
refineUserProfile(): Promise<UserProfile>;
|
|
784
|
+
/** 导出画像(FR-19.7)。`excludeIds` 来自导出前的审阅界面 @experimental */
|
|
785
|
+
exportUserProfile(excludeIds?: readonly string[]): Promise<UserProfileExport>;
|
|
786
|
+
/** 导入前的差异(FR-19.7):由 UI 展示并确认后才调用 `applyUserProfileImport` @experimental */
|
|
787
|
+
diffUserProfileImport(incoming: UserProfileExport): Promise<ReturnType<typeof diffUserProfile> & {
|
|
788
|
+
origin: string;
|
|
789
|
+
}>;
|
|
790
|
+
/** 确认后落库(FR-19.7) @experimental */
|
|
791
|
+
applyUserProfileImport(incoming: UserProfileExport): Promise<UserProfile>;
|
|
613
792
|
}
|
|
614
793
|
//#endregion
|
|
615
794
|
//#region src/core/interactionBridge.d.ts
|
|
@@ -658,6 +837,18 @@ interface CompositeUiBridgeDeps {
|
|
|
658
837
|
getInteractionChannel(): SpecInteractionChannel;
|
|
659
838
|
/** 渲染档能力表(省略用 DEFAULT_RENDERER_CAPABILITIES) */
|
|
660
839
|
capabilities?: Readonly<Record<RendererKind, RendererCapability>>;
|
|
840
|
+
/**
|
|
841
|
+
* 交互结束(含取消)后的回调,带完整请求与应答。
|
|
842
|
+
* `interaction-resolved` 事件不带值,而切分消息需要把用户填的内容留在表单上(FR-17.8)。
|
|
843
|
+
* @experimental
|
|
844
|
+
*/
|
|
845
|
+
onResolved?(request: InteractionRequest, response: InteractionResponse): void;
|
|
846
|
+
/**
|
|
847
|
+
* 工具返回值里的技能候选(FR-24.1)。它不经任何渲染层,
|
|
848
|
+
* 直接给引擎收集到本 run 的终态消息上。
|
|
849
|
+
* @experimental
|
|
850
|
+
*/
|
|
851
|
+
onSkillCandidate?(runId: string, candidate: SkillCandidateMarker): void;
|
|
661
852
|
emit(event: ChatEvent): void;
|
|
662
853
|
}
|
|
663
854
|
/**
|
|
@@ -683,6 +874,7 @@ declare class CompositeUiBridge implements UiBridge {
|
|
|
683
874
|
requestSurfaceAction(input: UiSurfaceActionRequest): Promise<UiSurfaceActionResponse>;
|
|
684
875
|
cancelSurfaceAction(nonce: string): void;
|
|
685
876
|
onTextDelta(runId: string, delta: string): Promise<void>;
|
|
877
|
+
onSkillCandidate(runId: string, candidate: SkillCandidateMarker): void;
|
|
686
878
|
}
|
|
687
879
|
//#endregion
|
|
688
880
|
//#region src/i18n.d.ts
|
|
@@ -698,11 +890,24 @@ declare const chatbotDictionary: {
|
|
|
698
890
|
'header.sessions': string;
|
|
699
891
|
'header.settings': string;
|
|
700
892
|
'header.console': string;
|
|
893
|
+
'header.theme.light': string;
|
|
894
|
+
'header.theme.dark': string;
|
|
701
895
|
'session.title': string;
|
|
702
896
|
'session.new': string;
|
|
703
897
|
'session.searchPlaceholder': string;
|
|
898
|
+
'session.searchClear': string;
|
|
704
899
|
'session.empty': string;
|
|
900
|
+
'session.missingRoot': string;
|
|
901
|
+
'session.skipped': string;
|
|
705
902
|
'session.delete': string;
|
|
903
|
+
'session.actions': string;
|
|
904
|
+
'session.menu.rename': string;
|
|
905
|
+
'session.menu.archive': string;
|
|
906
|
+
'session.menu.unarchive': string;
|
|
907
|
+
'session.menu.delete': string;
|
|
908
|
+
'session.delete.confirmTitle': string;
|
|
909
|
+
'session.delete.confirmDescription': string;
|
|
910
|
+
'common.cancel': string;
|
|
706
911
|
'session.rename': string;
|
|
707
912
|
'session.renameInput': string;
|
|
708
913
|
'session.archive': string;
|
|
@@ -731,6 +936,13 @@ declare const chatbotDictionary: {
|
|
|
731
936
|
'message.delete': string;
|
|
732
937
|
'message.viewTrace': string;
|
|
733
938
|
'message.skillsUsed': string;
|
|
939
|
+
'message.edit': string;
|
|
940
|
+
'message.editSend': string;
|
|
941
|
+
'message.editCancel': string;
|
|
942
|
+
'capability.tools.on': string;
|
|
943
|
+
'capability.tools.off': string;
|
|
944
|
+
'capability.images.on': string;
|
|
945
|
+
'capability.images.off': string;
|
|
734
946
|
'tool.summary.one': string;
|
|
735
947
|
'tool.summary.other': string;
|
|
736
948
|
'tool.status.running': string;
|
|
@@ -741,21 +953,41 @@ declare const chatbotDictionary: {
|
|
|
741
953
|
'tool.args': string;
|
|
742
954
|
'tool.denied.reason': string;
|
|
743
955
|
'tool.failed.reason': string;
|
|
956
|
+
'tool.notFound.reason': string;
|
|
957
|
+
'tool.exhausted.reason': string;
|
|
744
958
|
'cot.thinking': string;
|
|
745
959
|
'cot.thought': string;
|
|
746
960
|
'cot.summary': string;
|
|
747
961
|
'cot.reasoning': string;
|
|
748
962
|
'cot.working': string;
|
|
749
963
|
'trace.title': string;
|
|
964
|
+
'trace.runId': string;
|
|
965
|
+
'trace.runId.copy': string;
|
|
966
|
+
'trace.runId.copied': string;
|
|
967
|
+
'candidate.submitted': string;
|
|
968
|
+
'candidate.id.copy': string;
|
|
969
|
+
'candidate.id.copied': string;
|
|
970
|
+
'candidate.review': string;
|
|
750
971
|
'trace.skill': string;
|
|
751
972
|
'perception.reading': string;
|
|
752
973
|
'perception.excluded': string;
|
|
974
|
+
'perception.images': string;
|
|
975
|
+
'perception.imagesOmitted': string;
|
|
976
|
+
'perception.imageFailures': string;
|
|
753
977
|
'trace.phase.route': string;
|
|
754
978
|
'trace.phase.activate': string;
|
|
755
979
|
'trace.phase.execute': string;
|
|
756
980
|
'trace.phase.interact': string;
|
|
757
981
|
'trace.phase.complete': string;
|
|
758
982
|
'trace.phase.fail': string;
|
|
983
|
+
'run.terminated.userCancelled': string;
|
|
984
|
+
'run.terminated.maxTurns': string;
|
|
985
|
+
'run.terminated.timeout': string;
|
|
986
|
+
'run.terminated.llmError': string;
|
|
987
|
+
'run.terminated.interactionTimeout': string;
|
|
988
|
+
'run.terminated.hookError': string;
|
|
989
|
+
'run.terminated.toolResolutionExhausted': string;
|
|
990
|
+
'run.terminated.unknown': string;
|
|
759
991
|
'todo.title': string;
|
|
760
992
|
'todo.progress': string;
|
|
761
993
|
'todo.status.pending': string;
|
|
@@ -767,16 +999,31 @@ declare const chatbotDictionary: {
|
|
|
767
999
|
'interaction.form.title': string;
|
|
768
1000
|
'interaction.select.title': string;
|
|
769
1001
|
'interaction.authorize.title': string;
|
|
1002
|
+
'interaction.filePick.title': string;
|
|
1003
|
+
'interaction.filePick.choose': string;
|
|
1004
|
+
'interaction.filePick.decline': string;
|
|
1005
|
+
'interaction.filePick.selected': string;
|
|
770
1006
|
'interaction.authorize.description': string;
|
|
771
1007
|
'interaction.authorize.capability': string;
|
|
772
1008
|
'interaction.authorize.details': string;
|
|
1009
|
+
'interaction.pageAction.click': string;
|
|
1010
|
+
'interaction.pageAction.fill': string;
|
|
1011
|
+
'interaction.pageAction.submit': string;
|
|
1012
|
+
'interaction.pageAction.role.click': string;
|
|
1013
|
+
'interaction.pageAction.role.fill': string;
|
|
1014
|
+
'interaction.pageAction.role.submit': string;
|
|
773
1015
|
'interaction.origin': string;
|
|
1016
|
+
'interaction.submitted': string;
|
|
774
1017
|
'interaction.submit': string;
|
|
775
1018
|
'interaction.cancel': string;
|
|
776
1019
|
'interaction.confirm': string;
|
|
777
1020
|
'interaction.allow': string;
|
|
778
1021
|
'interaction.deny': string;
|
|
779
1022
|
'interaction.required': string;
|
|
1023
|
+
'interaction.wait': string;
|
|
1024
|
+
'interaction.wait.inPanel': string;
|
|
1025
|
+
'interaction.wait.fallback': string;
|
|
1026
|
+
'interaction.wait.locate': string;
|
|
780
1027
|
'result.artifacts': string;
|
|
781
1028
|
'result.download': string;
|
|
782
1029
|
'result.file': string;
|
|
@@ -798,14 +1045,37 @@ declare const chatbotDictionary: {
|
|
|
798
1045
|
'composer.attachments': string;
|
|
799
1046
|
'composer.addAttachment': string;
|
|
800
1047
|
'composer.removeAttachment': string;
|
|
1048
|
+
'composer.attachment.kind.text': string;
|
|
1049
|
+
'composer.attachment.kind.image': string;
|
|
1050
|
+
'composer.attachment.kind.file': string;
|
|
1051
|
+
'composer.attachment.compressed': string;
|
|
801
1052
|
'composer.model': string;
|
|
802
1053
|
'composer.model.demo': string;
|
|
1054
|
+
'composer.menu': string;
|
|
1055
|
+
'composer.pageCapture': string;
|
|
1056
|
+
'composer.pageCapture.disabled.setting': string;
|
|
1057
|
+
'composer.pageCapture.disabled.model': string;
|
|
1058
|
+
'composer.addAttachment.imagesOff': string;
|
|
1059
|
+
'composer.addAttachment.modelNoImages': string;
|
|
803
1060
|
'composer.dictate': string;
|
|
804
1061
|
'composer.dictate.stop': string;
|
|
805
1062
|
'composer.dictate.recording': string;
|
|
806
1063
|
'composer.dictate.api-missing': string;
|
|
807
1064
|
'composer.dictate.insecure-context': string;
|
|
808
1065
|
'settings.title': string;
|
|
1066
|
+
'settings.group.general': string;
|
|
1067
|
+
'settings.group.models': string;
|
|
1068
|
+
'settings.group.agent': string;
|
|
1069
|
+
'settings.group.multimodal': string;
|
|
1070
|
+
'settings.group.privacy': string;
|
|
1071
|
+
'settings.general.title': string;
|
|
1072
|
+
'settings.general.description': string;
|
|
1073
|
+
'settings.privacy.title': string;
|
|
1074
|
+
'settings.privacy.description': string;
|
|
1075
|
+
'settings.model.actions': string;
|
|
1076
|
+
'settings.model.removeConfirmTitle': string;
|
|
1077
|
+
'settings.model.removeConfirmDescription': string;
|
|
1078
|
+
'settings.model.isDefault': string;
|
|
809
1079
|
'settings.model.title': string;
|
|
810
1080
|
'settings.model.description': string;
|
|
811
1081
|
'settings.model.empty': string;
|
|
@@ -854,44 +1124,77 @@ declare const chatbotDictionary: {
|
|
|
854
1124
|
'settings.agent.todoNote': string;
|
|
855
1125
|
'settings.agent.generativeUi': string;
|
|
856
1126
|
'settings.agent.generativeUiNote': string;
|
|
1127
|
+
'settings.agent.generativeUiUnaffected': string;
|
|
857
1128
|
'settings.agent.skillGeneration': string;
|
|
858
1129
|
'settings.agent.skillGenerationNote': string;
|
|
859
1130
|
'settings.agent.delegation': string;
|
|
860
1131
|
'settings.agent.delegationNote': string;
|
|
861
|
-
'settings.agent.
|
|
862
|
-
'settings.agent.
|
|
863
|
-
'settings.agent.
|
|
864
|
-
'settings.agent.
|
|
865
|
-
'settings.
|
|
866
|
-
'settings.
|
|
867
|
-
'settings.
|
|
868
|
-
'settings.
|
|
869
|
-
'settings.
|
|
870
|
-
'settings.
|
|
1132
|
+
'settings.agent.limits': string;
|
|
1133
|
+
'settings.agent.limitsNote': string;
|
|
1134
|
+
'settings.agent.totalTimeout': string;
|
|
1135
|
+
'settings.agent.maxTurns': string;
|
|
1136
|
+
'settings.agent.toolTimeout': string;
|
|
1137
|
+
'settings.agent.limits.invalid': string;
|
|
1138
|
+
'settings.agent.limits.reset': string;
|
|
1139
|
+
'settings.privacy.enabled': string;
|
|
1140
|
+
'settings.privacy.enabledRisk': string;
|
|
1141
|
+
'settings.privacy.encrypted': string;
|
|
1142
|
+
'settings.privacy.encryptedNote': string;
|
|
1143
|
+
'settings.privacy.injectMaxBytes': string;
|
|
1144
|
+
'settings.privacy.injectMaxBytesNote': string;
|
|
1145
|
+
'settings.privacy.recordLimit': string;
|
|
1146
|
+
'settings.privacy.recordLimitNote': string;
|
|
1147
|
+
'settings.privacy.disableClearPrompt': string;
|
|
1148
|
+
'settings.privacy.disableClearConfirm': string;
|
|
1149
|
+
'settings.privacy.disableClearKeep': string;
|
|
1150
|
+
'settings.privacy.profileTitle': string;
|
|
1151
|
+
'settings.privacy.profileNote': string;
|
|
1152
|
+
'settings.privacy.profileEmpty': string;
|
|
1153
|
+
'settings.privacy.profileDelete': string;
|
|
1154
|
+
'settings.privacy.refine': string;
|
|
1155
|
+
'settings.privacy.export': string;
|
|
1156
|
+
'settings.privacy.import': string;
|
|
1157
|
+
'settings.privacy.clearRecords': string;
|
|
1158
|
+
'settings.privacy.clearProfile': string;
|
|
1159
|
+
'settings.privacy.clearConfirm': string;
|
|
1160
|
+
'settings.privacy.exportReview': string;
|
|
1161
|
+
'settings.privacy.exportConfirm': string;
|
|
1162
|
+
'settings.privacy.importDiff': string;
|
|
1163
|
+
'settings.model.image': string;
|
|
1164
|
+
'settings.model.imageNote': string;
|
|
1165
|
+
'settings.model.tools': string;
|
|
1166
|
+
'settings.model.toolsNote': string;
|
|
1167
|
+
'settings.model.builtinFixed': string;
|
|
1168
|
+
'settings.capability.plainChat': string;
|
|
1169
|
+
'settings.multimodal.title': string;
|
|
1170
|
+
'settings.multimodal.description': string;
|
|
1171
|
+
'settings.multimodal.imageAttachments': string;
|
|
1172
|
+
'settings.multimodal.imageAttachmentsRisk': string;
|
|
1173
|
+
'settings.multimodal.pageImageCapture': string;
|
|
1174
|
+
'settings.multimodal.pageImageCaptureRisk': string;
|
|
1175
|
+
'settings.multimodal.maxImages': string;
|
|
1176
|
+
'settings.multimodal.maxImagesNote': string;
|
|
1177
|
+
'settings.multimodal.maxImageBytes': string;
|
|
1178
|
+
'settings.multimodal.maxImageBytesNote': string;
|
|
871
1179
|
'settings.voice.title': string;
|
|
872
1180
|
'settings.voice.description': string;
|
|
873
1181
|
'settings.voice.lang': string;
|
|
874
1182
|
'settings.voice.langFollow': string;
|
|
875
|
-
'settings.appearance.title': string;
|
|
876
|
-
'settings.appearance.description': string;
|
|
877
|
-
'settings.theme': string;
|
|
878
|
-
'settings.theme.light': string;
|
|
879
|
-
'settings.theme.dark': string;
|
|
880
|
-
'settings.language': string;
|
|
881
|
-
'settings.language.en': string;
|
|
882
|
-
'settings.language.zh': string;
|
|
883
|
-
'settings.renderer': string;
|
|
884
|
-
'settings.renderer.description': string;
|
|
885
|
-
'settings.renderer.native': string;
|
|
886
|
-
'settings.renderer.a2ui': string;
|
|
887
|
-
'settings.renderer.openui': string;
|
|
888
|
-
'settings.renderer.vercel': string;
|
|
889
1183
|
'vercel.preview.title': string;
|
|
890
1184
|
'vercel.preview.badge': string;
|
|
891
1185
|
'vercel.preview.description': string;
|
|
892
1186
|
'surface.legacy.placeholder': string;
|
|
893
1187
|
'error.title': string;
|
|
894
1188
|
'error.suggestion': string;
|
|
1189
|
+
'error.suggestion.LLM_UNAVAILABLE': string;
|
|
1190
|
+
'error.suggestion.LLM_REQUEST_FAILED': string;
|
|
1191
|
+
'error.suggestion.RUN_TIMEOUT': string;
|
|
1192
|
+
'error.suggestion.RUN_INTERACTION_TIMEOUT': string;
|
|
1193
|
+
'error.suggestion.RUN_MAX_TURNS_EXCEEDED': string;
|
|
1194
|
+
'error.suggestion.TOOL_RESOLUTION_EXHAUSTED': string;
|
|
1195
|
+
'error.limit.totalTimeoutMs': string;
|
|
1196
|
+
'error.limit.maxTurns': string;
|
|
1197
|
+
'error.openSettings': string;
|
|
895
1198
|
'error.dismiss': string;
|
|
896
1199
|
};
|
|
897
1200
|
zh: {
|
|
@@ -899,11 +1202,24 @@ declare const chatbotDictionary: {
|
|
|
899
1202
|
'header.sessions': string;
|
|
900
1203
|
'header.settings': string;
|
|
901
1204
|
'header.console': string;
|
|
1205
|
+
'header.theme.light': string;
|
|
1206
|
+
'header.theme.dark': string;
|
|
902
1207
|
'session.title': string;
|
|
903
1208
|
'session.new': string;
|
|
904
1209
|
'session.searchPlaceholder': string;
|
|
1210
|
+
'session.searchClear': string;
|
|
905
1211
|
'session.empty': string;
|
|
1212
|
+
'session.missingRoot': string;
|
|
1213
|
+
'session.skipped': string;
|
|
906
1214
|
'session.delete': string;
|
|
1215
|
+
'session.actions': string;
|
|
1216
|
+
'session.menu.rename': string;
|
|
1217
|
+
'session.menu.archive': string;
|
|
1218
|
+
'session.menu.unarchive': string;
|
|
1219
|
+
'session.menu.delete': string;
|
|
1220
|
+
'session.delete.confirmTitle': string;
|
|
1221
|
+
'session.delete.confirmDescription': string;
|
|
1222
|
+
'common.cancel': string;
|
|
907
1223
|
'session.rename': string;
|
|
908
1224
|
'session.renameInput': string;
|
|
909
1225
|
'session.archive': string;
|
|
@@ -928,10 +1244,17 @@ declare const chatbotDictionary: {
|
|
|
928
1244
|
'welcome.prompt.4': string;
|
|
929
1245
|
'message.copy': string;
|
|
930
1246
|
'message.copied': string;
|
|
1247
|
+
'message.edit': string;
|
|
1248
|
+
'message.editSend': string;
|
|
1249
|
+
'message.editCancel': string;
|
|
931
1250
|
'message.retry': string;
|
|
932
1251
|
'message.delete': string;
|
|
933
1252
|
'message.viewTrace': string;
|
|
934
1253
|
'message.skillsUsed': string;
|
|
1254
|
+
'capability.tools.on': string;
|
|
1255
|
+
'capability.tools.off': string;
|
|
1256
|
+
'capability.images.on': string;
|
|
1257
|
+
'capability.images.off': string;
|
|
935
1258
|
'tool.summary.one': string;
|
|
936
1259
|
'tool.summary.other': string;
|
|
937
1260
|
'tool.status.running': string;
|
|
@@ -942,21 +1265,41 @@ declare const chatbotDictionary: {
|
|
|
942
1265
|
'tool.args': string;
|
|
943
1266
|
'tool.denied.reason': string;
|
|
944
1267
|
'tool.failed.reason': string;
|
|
1268
|
+
'tool.notFound.reason': string;
|
|
1269
|
+
'tool.exhausted.reason': string;
|
|
945
1270
|
'cot.thinking': string;
|
|
946
1271
|
'cot.thought': string;
|
|
947
1272
|
'cot.summary': string;
|
|
948
1273
|
'cot.reasoning': string;
|
|
949
1274
|
'cot.working': string;
|
|
950
1275
|
'trace.title': string;
|
|
1276
|
+
'trace.runId': string;
|
|
1277
|
+
'trace.runId.copy': string;
|
|
1278
|
+
'trace.runId.copied': string;
|
|
1279
|
+
'candidate.submitted': string;
|
|
1280
|
+
'candidate.id.copy': string;
|
|
1281
|
+
'candidate.id.copied': string;
|
|
1282
|
+
'candidate.review': string;
|
|
951
1283
|
'trace.skill': string;
|
|
952
1284
|
'perception.reading': string;
|
|
953
1285
|
'perception.excluded': string;
|
|
1286
|
+
'perception.images': string;
|
|
1287
|
+
'perception.imagesOmitted': string;
|
|
1288
|
+
'perception.imageFailures': string;
|
|
954
1289
|
'trace.phase.route': string;
|
|
955
1290
|
'trace.phase.activate': string;
|
|
956
1291
|
'trace.phase.execute': string;
|
|
957
1292
|
'trace.phase.interact': string;
|
|
958
1293
|
'trace.phase.complete': string;
|
|
959
1294
|
'trace.phase.fail': string;
|
|
1295
|
+
'run.terminated.userCancelled': string;
|
|
1296
|
+
'run.terminated.maxTurns': string;
|
|
1297
|
+
'run.terminated.timeout': string;
|
|
1298
|
+
'run.terminated.llmError': string;
|
|
1299
|
+
'run.terminated.interactionTimeout': string;
|
|
1300
|
+
'run.terminated.hookError': string;
|
|
1301
|
+
'run.terminated.toolResolutionExhausted': string;
|
|
1302
|
+
'run.terminated.unknown': string;
|
|
960
1303
|
'todo.title': string;
|
|
961
1304
|
'todo.progress': string;
|
|
962
1305
|
'todo.status.pending': string;
|
|
@@ -968,16 +1311,31 @@ declare const chatbotDictionary: {
|
|
|
968
1311
|
'interaction.form.title': string;
|
|
969
1312
|
'interaction.select.title': string;
|
|
970
1313
|
'interaction.authorize.title': string;
|
|
1314
|
+
'interaction.filePick.title': string;
|
|
1315
|
+
'interaction.filePick.choose': string;
|
|
1316
|
+
'interaction.filePick.decline': string;
|
|
1317
|
+
'interaction.filePick.selected': string;
|
|
971
1318
|
'interaction.authorize.description': string;
|
|
972
1319
|
'interaction.authorize.capability': string;
|
|
973
1320
|
'interaction.authorize.details': string;
|
|
1321
|
+
'interaction.pageAction.click': string;
|
|
1322
|
+
'interaction.pageAction.fill': string;
|
|
1323
|
+
'interaction.pageAction.submit': string;
|
|
1324
|
+
'interaction.pageAction.role.click': string;
|
|
1325
|
+
'interaction.pageAction.role.fill': string;
|
|
1326
|
+
'interaction.pageAction.role.submit': string;
|
|
974
1327
|
'interaction.origin': string;
|
|
1328
|
+
'interaction.submitted': string;
|
|
975
1329
|
'interaction.submit': string;
|
|
976
1330
|
'interaction.cancel': string;
|
|
977
1331
|
'interaction.confirm': string;
|
|
978
1332
|
'interaction.allow': string;
|
|
979
1333
|
'interaction.deny': string;
|
|
980
1334
|
'interaction.required': string;
|
|
1335
|
+
'interaction.wait': string;
|
|
1336
|
+
'interaction.wait.inPanel': string;
|
|
1337
|
+
'interaction.wait.fallback': string;
|
|
1338
|
+
'interaction.wait.locate': string;
|
|
981
1339
|
'result.artifacts': string;
|
|
982
1340
|
'result.download': string;
|
|
983
1341
|
'result.file': string;
|
|
@@ -999,14 +1357,37 @@ declare const chatbotDictionary: {
|
|
|
999
1357
|
'composer.attachments': string;
|
|
1000
1358
|
'composer.addAttachment': string;
|
|
1001
1359
|
'composer.removeAttachment': string;
|
|
1360
|
+
'composer.attachment.kind.text': string;
|
|
1361
|
+
'composer.attachment.kind.image': string;
|
|
1362
|
+
'composer.attachment.kind.file': string;
|
|
1363
|
+
'composer.attachment.compressed': string;
|
|
1002
1364
|
'composer.model': string;
|
|
1003
1365
|
'composer.model.demo': string;
|
|
1366
|
+
'composer.menu': string;
|
|
1367
|
+
'composer.pageCapture': string;
|
|
1368
|
+
'composer.pageCapture.disabled.setting': string;
|
|
1369
|
+
'composer.pageCapture.disabled.model': string;
|
|
1370
|
+
'composer.addAttachment.imagesOff': string;
|
|
1371
|
+
'composer.addAttachment.modelNoImages': string;
|
|
1004
1372
|
'composer.dictate': string;
|
|
1005
1373
|
'composer.dictate.stop': string;
|
|
1006
1374
|
'composer.dictate.recording': string;
|
|
1007
1375
|
'composer.dictate.api-missing': string;
|
|
1008
1376
|
'composer.dictate.insecure-context': string;
|
|
1009
1377
|
'settings.title': string;
|
|
1378
|
+
'settings.group.general': string;
|
|
1379
|
+
'settings.group.models': string;
|
|
1380
|
+
'settings.group.agent': string;
|
|
1381
|
+
'settings.group.multimodal': string;
|
|
1382
|
+
'settings.group.privacy': string;
|
|
1383
|
+
'settings.general.title': string;
|
|
1384
|
+
'settings.general.description': string;
|
|
1385
|
+
'settings.privacy.title': string;
|
|
1386
|
+
'settings.privacy.description': string;
|
|
1387
|
+
'settings.model.actions': string;
|
|
1388
|
+
'settings.model.removeConfirmTitle': string;
|
|
1389
|
+
'settings.model.removeConfirmDescription': string;
|
|
1390
|
+
'settings.model.isDefault': string;
|
|
1010
1391
|
'settings.model.title': string;
|
|
1011
1392
|
'settings.model.description': string;
|
|
1012
1393
|
'settings.model.empty': string;
|
|
@@ -1055,44 +1436,77 @@ declare const chatbotDictionary: {
|
|
|
1055
1436
|
'settings.agent.todoNote': string;
|
|
1056
1437
|
'settings.agent.generativeUi': string;
|
|
1057
1438
|
'settings.agent.generativeUiNote': string;
|
|
1439
|
+
'settings.agent.generativeUiUnaffected': string;
|
|
1058
1440
|
'settings.agent.skillGeneration': string;
|
|
1059
1441
|
'settings.agent.skillGenerationNote': string;
|
|
1060
1442
|
'settings.agent.delegation': string;
|
|
1061
1443
|
'settings.agent.delegationNote': string;
|
|
1062
|
-
'settings.agent.
|
|
1063
|
-
'settings.agent.
|
|
1064
|
-
'settings.agent.
|
|
1065
|
-
'settings.agent.
|
|
1066
|
-
'settings.
|
|
1067
|
-
'settings.
|
|
1068
|
-
'settings.
|
|
1069
|
-
'settings.
|
|
1070
|
-
'settings.
|
|
1071
|
-
'settings.
|
|
1444
|
+
'settings.agent.limits': string;
|
|
1445
|
+
'settings.agent.limitsNote': string;
|
|
1446
|
+
'settings.agent.totalTimeout': string;
|
|
1447
|
+
'settings.agent.maxTurns': string;
|
|
1448
|
+
'settings.agent.toolTimeout': string;
|
|
1449
|
+
'settings.agent.limits.invalid': string;
|
|
1450
|
+
'settings.agent.limits.reset': string;
|
|
1451
|
+
'settings.privacy.enabled': string;
|
|
1452
|
+
'settings.privacy.enabledRisk': string;
|
|
1453
|
+
'settings.privacy.encrypted': string;
|
|
1454
|
+
'settings.privacy.encryptedNote': string;
|
|
1455
|
+
'settings.privacy.injectMaxBytes': string;
|
|
1456
|
+
'settings.privacy.injectMaxBytesNote': string;
|
|
1457
|
+
'settings.privacy.recordLimit': string;
|
|
1458
|
+
'settings.privacy.recordLimitNote': string;
|
|
1459
|
+
'settings.privacy.disableClearPrompt': string;
|
|
1460
|
+
'settings.privacy.disableClearConfirm': string;
|
|
1461
|
+
'settings.privacy.disableClearKeep': string;
|
|
1462
|
+
'settings.privacy.profileTitle': string;
|
|
1463
|
+
'settings.privacy.profileNote': string;
|
|
1464
|
+
'settings.privacy.profileEmpty': string;
|
|
1465
|
+
'settings.privacy.profileDelete': string;
|
|
1466
|
+
'settings.privacy.refine': string;
|
|
1467
|
+
'settings.privacy.export': string;
|
|
1468
|
+
'settings.privacy.import': string;
|
|
1469
|
+
'settings.privacy.clearRecords': string;
|
|
1470
|
+
'settings.privacy.clearProfile': string;
|
|
1471
|
+
'settings.privacy.clearConfirm': string;
|
|
1472
|
+
'settings.privacy.exportReview': string;
|
|
1473
|
+
'settings.privacy.exportConfirm': string;
|
|
1474
|
+
'settings.privacy.importDiff': string;
|
|
1475
|
+
'settings.model.image': string;
|
|
1476
|
+
'settings.model.imageNote': string;
|
|
1477
|
+
'settings.model.tools': string;
|
|
1478
|
+
'settings.model.toolsNote': string;
|
|
1479
|
+
'settings.model.builtinFixed': string;
|
|
1480
|
+
'settings.capability.plainChat': string;
|
|
1481
|
+
'settings.multimodal.title': string;
|
|
1482
|
+
'settings.multimodal.description': string;
|
|
1483
|
+
'settings.multimodal.imageAttachments': string;
|
|
1484
|
+
'settings.multimodal.imageAttachmentsRisk': string;
|
|
1485
|
+
'settings.multimodal.pageImageCapture': string;
|
|
1486
|
+
'settings.multimodal.pageImageCaptureRisk': string;
|
|
1487
|
+
'settings.multimodal.maxImages': string;
|
|
1488
|
+
'settings.multimodal.maxImagesNote': string;
|
|
1489
|
+
'settings.multimodal.maxImageBytes': string;
|
|
1490
|
+
'settings.multimodal.maxImageBytesNote': string;
|
|
1072
1491
|
'settings.voice.title': string;
|
|
1073
1492
|
'settings.voice.description': string;
|
|
1074
1493
|
'settings.voice.lang': string;
|
|
1075
1494
|
'settings.voice.langFollow': string;
|
|
1076
|
-
'settings.appearance.title': string;
|
|
1077
|
-
'settings.appearance.description': string;
|
|
1078
|
-
'settings.theme': string;
|
|
1079
|
-
'settings.theme.light': string;
|
|
1080
|
-
'settings.theme.dark': string;
|
|
1081
|
-
'settings.language': string;
|
|
1082
|
-
'settings.language.en': string;
|
|
1083
|
-
'settings.language.zh': string;
|
|
1084
|
-
'settings.renderer': string;
|
|
1085
|
-
'settings.renderer.description': string;
|
|
1086
|
-
'settings.renderer.native': string;
|
|
1087
|
-
'settings.renderer.a2ui': string;
|
|
1088
|
-
'settings.renderer.openui': string;
|
|
1089
|
-
'settings.renderer.vercel': string;
|
|
1090
1495
|
'vercel.preview.title': string;
|
|
1091
1496
|
'vercel.preview.badge': string;
|
|
1092
1497
|
'vercel.preview.description': string;
|
|
1093
1498
|
'surface.legacy.placeholder': string;
|
|
1094
1499
|
'error.title': string;
|
|
1095
1500
|
'error.suggestion': string;
|
|
1501
|
+
'error.suggestion.LLM_UNAVAILABLE': string;
|
|
1502
|
+
'error.suggestion.LLM_REQUEST_FAILED': string;
|
|
1503
|
+
'error.suggestion.RUN_TIMEOUT': string;
|
|
1504
|
+
'error.suggestion.RUN_INTERACTION_TIMEOUT': string;
|
|
1505
|
+
'error.suggestion.RUN_MAX_TURNS_EXCEEDED': string;
|
|
1506
|
+
'error.suggestion.TOOL_RESOLUTION_EXHAUSTED': string;
|
|
1507
|
+
'error.limit.totalTimeoutMs': string;
|
|
1508
|
+
'error.limit.maxTurns': string;
|
|
1509
|
+
'error.openSettings': string;
|
|
1096
1510
|
'error.dismiss': string;
|
|
1097
1511
|
};
|
|
1098
1512
|
};
|
|
@@ -1103,11 +1517,24 @@ declare const useT: () => TranslateFn<{
|
|
|
1103
1517
|
'header.sessions': string;
|
|
1104
1518
|
'header.settings': string;
|
|
1105
1519
|
'header.console': string;
|
|
1520
|
+
'header.theme.light': string;
|
|
1521
|
+
'header.theme.dark': string;
|
|
1106
1522
|
'session.title': string;
|
|
1107
1523
|
'session.new': string;
|
|
1108
1524
|
'session.searchPlaceholder': string;
|
|
1525
|
+
'session.searchClear': string;
|
|
1109
1526
|
'session.empty': string;
|
|
1527
|
+
'session.missingRoot': string;
|
|
1528
|
+
'session.skipped': string;
|
|
1110
1529
|
'session.delete': string;
|
|
1530
|
+
'session.actions': string;
|
|
1531
|
+
'session.menu.rename': string;
|
|
1532
|
+
'session.menu.archive': string;
|
|
1533
|
+
'session.menu.unarchive': string;
|
|
1534
|
+
'session.menu.delete': string;
|
|
1535
|
+
'session.delete.confirmTitle': string;
|
|
1536
|
+
'session.delete.confirmDescription': string;
|
|
1537
|
+
'common.cancel': string;
|
|
1111
1538
|
'session.rename': string;
|
|
1112
1539
|
'session.renameInput': string;
|
|
1113
1540
|
'session.archive': string;
|
|
@@ -1136,6 +1563,13 @@ declare const useT: () => TranslateFn<{
|
|
|
1136
1563
|
'message.delete': string;
|
|
1137
1564
|
'message.viewTrace': string;
|
|
1138
1565
|
'message.skillsUsed': string;
|
|
1566
|
+
'message.edit': string;
|
|
1567
|
+
'message.editSend': string;
|
|
1568
|
+
'message.editCancel': string;
|
|
1569
|
+
'capability.tools.on': string;
|
|
1570
|
+
'capability.tools.off': string;
|
|
1571
|
+
'capability.images.on': string;
|
|
1572
|
+
'capability.images.off': string;
|
|
1139
1573
|
'tool.summary.one': string;
|
|
1140
1574
|
'tool.summary.other': string;
|
|
1141
1575
|
'tool.status.running': string;
|
|
@@ -1146,21 +1580,41 @@ declare const useT: () => TranslateFn<{
|
|
|
1146
1580
|
'tool.args': string;
|
|
1147
1581
|
'tool.denied.reason': string;
|
|
1148
1582
|
'tool.failed.reason': string;
|
|
1583
|
+
'tool.notFound.reason': string;
|
|
1584
|
+
'tool.exhausted.reason': string;
|
|
1149
1585
|
'cot.thinking': string;
|
|
1150
1586
|
'cot.thought': string;
|
|
1151
1587
|
'cot.summary': string;
|
|
1152
1588
|
'cot.reasoning': string;
|
|
1153
1589
|
'cot.working': string;
|
|
1154
1590
|
'trace.title': string;
|
|
1591
|
+
'trace.runId': string;
|
|
1592
|
+
'trace.runId.copy': string;
|
|
1593
|
+
'trace.runId.copied': string;
|
|
1594
|
+
'candidate.submitted': string;
|
|
1595
|
+
'candidate.id.copy': string;
|
|
1596
|
+
'candidate.id.copied': string;
|
|
1597
|
+
'candidate.review': string;
|
|
1155
1598
|
'trace.skill': string;
|
|
1156
1599
|
'perception.reading': string;
|
|
1157
1600
|
'perception.excluded': string;
|
|
1601
|
+
'perception.images': string;
|
|
1602
|
+
'perception.imagesOmitted': string;
|
|
1603
|
+
'perception.imageFailures': string;
|
|
1158
1604
|
'trace.phase.route': string;
|
|
1159
1605
|
'trace.phase.activate': string;
|
|
1160
1606
|
'trace.phase.execute': string;
|
|
1161
1607
|
'trace.phase.interact': string;
|
|
1162
1608
|
'trace.phase.complete': string;
|
|
1163
1609
|
'trace.phase.fail': string;
|
|
1610
|
+
'run.terminated.userCancelled': string;
|
|
1611
|
+
'run.terminated.maxTurns': string;
|
|
1612
|
+
'run.terminated.timeout': string;
|
|
1613
|
+
'run.terminated.llmError': string;
|
|
1614
|
+
'run.terminated.interactionTimeout': string;
|
|
1615
|
+
'run.terminated.hookError': string;
|
|
1616
|
+
'run.terminated.toolResolutionExhausted': string;
|
|
1617
|
+
'run.terminated.unknown': string;
|
|
1164
1618
|
'todo.title': string;
|
|
1165
1619
|
'todo.progress': string;
|
|
1166
1620
|
'todo.status.pending': string;
|
|
@@ -1172,16 +1626,31 @@ declare const useT: () => TranslateFn<{
|
|
|
1172
1626
|
'interaction.form.title': string;
|
|
1173
1627
|
'interaction.select.title': string;
|
|
1174
1628
|
'interaction.authorize.title': string;
|
|
1629
|
+
'interaction.filePick.title': string;
|
|
1630
|
+
'interaction.filePick.choose': string;
|
|
1631
|
+
'interaction.filePick.decline': string;
|
|
1632
|
+
'interaction.filePick.selected': string;
|
|
1175
1633
|
'interaction.authorize.description': string;
|
|
1176
1634
|
'interaction.authorize.capability': string;
|
|
1177
1635
|
'interaction.authorize.details': string;
|
|
1636
|
+
'interaction.pageAction.click': string;
|
|
1637
|
+
'interaction.pageAction.fill': string;
|
|
1638
|
+
'interaction.pageAction.submit': string;
|
|
1639
|
+
'interaction.pageAction.role.click': string;
|
|
1640
|
+
'interaction.pageAction.role.fill': string;
|
|
1641
|
+
'interaction.pageAction.role.submit': string;
|
|
1178
1642
|
'interaction.origin': string;
|
|
1643
|
+
'interaction.submitted': string;
|
|
1179
1644
|
'interaction.submit': string;
|
|
1180
1645
|
'interaction.cancel': string;
|
|
1181
1646
|
'interaction.confirm': string;
|
|
1182
1647
|
'interaction.allow': string;
|
|
1183
1648
|
'interaction.deny': string;
|
|
1184
1649
|
'interaction.required': string;
|
|
1650
|
+
'interaction.wait': string;
|
|
1651
|
+
'interaction.wait.inPanel': string;
|
|
1652
|
+
'interaction.wait.fallback': string;
|
|
1653
|
+
'interaction.wait.locate': string;
|
|
1185
1654
|
'result.artifacts': string;
|
|
1186
1655
|
'result.download': string;
|
|
1187
1656
|
'result.file': string;
|
|
@@ -1203,14 +1672,37 @@ declare const useT: () => TranslateFn<{
|
|
|
1203
1672
|
'composer.attachments': string;
|
|
1204
1673
|
'composer.addAttachment': string;
|
|
1205
1674
|
'composer.removeAttachment': string;
|
|
1675
|
+
'composer.attachment.kind.text': string;
|
|
1676
|
+
'composer.attachment.kind.image': string;
|
|
1677
|
+
'composer.attachment.kind.file': string;
|
|
1678
|
+
'composer.attachment.compressed': string;
|
|
1206
1679
|
'composer.model': string;
|
|
1207
1680
|
'composer.model.demo': string;
|
|
1681
|
+
'composer.menu': string;
|
|
1682
|
+
'composer.pageCapture': string;
|
|
1683
|
+
'composer.pageCapture.disabled.setting': string;
|
|
1684
|
+
'composer.pageCapture.disabled.model': string;
|
|
1685
|
+
'composer.addAttachment.imagesOff': string;
|
|
1686
|
+
'composer.addAttachment.modelNoImages': string;
|
|
1208
1687
|
'composer.dictate': string;
|
|
1209
1688
|
'composer.dictate.stop': string;
|
|
1210
1689
|
'composer.dictate.recording': string;
|
|
1211
1690
|
'composer.dictate.api-missing': string;
|
|
1212
1691
|
'composer.dictate.insecure-context': string;
|
|
1213
1692
|
'settings.title': string;
|
|
1693
|
+
'settings.group.general': string;
|
|
1694
|
+
'settings.group.models': string;
|
|
1695
|
+
'settings.group.agent': string;
|
|
1696
|
+
'settings.group.multimodal': string;
|
|
1697
|
+
'settings.group.privacy': string;
|
|
1698
|
+
'settings.general.title': string;
|
|
1699
|
+
'settings.general.description': string;
|
|
1700
|
+
'settings.privacy.title': string;
|
|
1701
|
+
'settings.privacy.description': string;
|
|
1702
|
+
'settings.model.actions': string;
|
|
1703
|
+
'settings.model.removeConfirmTitle': string;
|
|
1704
|
+
'settings.model.removeConfirmDescription': string;
|
|
1705
|
+
'settings.model.isDefault': string;
|
|
1214
1706
|
'settings.model.title': string;
|
|
1215
1707
|
'settings.model.description': string;
|
|
1216
1708
|
'settings.model.empty': string;
|
|
@@ -1259,44 +1751,77 @@ declare const useT: () => TranslateFn<{
|
|
|
1259
1751
|
'settings.agent.todoNote': string;
|
|
1260
1752
|
'settings.agent.generativeUi': string;
|
|
1261
1753
|
'settings.agent.generativeUiNote': string;
|
|
1754
|
+
'settings.agent.generativeUiUnaffected': string;
|
|
1262
1755
|
'settings.agent.skillGeneration': string;
|
|
1263
1756
|
'settings.agent.skillGenerationNote': string;
|
|
1264
1757
|
'settings.agent.delegation': string;
|
|
1265
1758
|
'settings.agent.delegationNote': string;
|
|
1266
|
-
'settings.agent.
|
|
1267
|
-
'settings.agent.
|
|
1268
|
-
'settings.agent.
|
|
1269
|
-
'settings.agent.
|
|
1270
|
-
'settings.
|
|
1271
|
-
'settings.
|
|
1272
|
-
'settings.
|
|
1273
|
-
'settings.
|
|
1274
|
-
'settings.
|
|
1275
|
-
'settings.
|
|
1759
|
+
'settings.agent.limits': string;
|
|
1760
|
+
'settings.agent.limitsNote': string;
|
|
1761
|
+
'settings.agent.totalTimeout': string;
|
|
1762
|
+
'settings.agent.maxTurns': string;
|
|
1763
|
+
'settings.agent.toolTimeout': string;
|
|
1764
|
+
'settings.agent.limits.invalid': string;
|
|
1765
|
+
'settings.agent.limits.reset': string;
|
|
1766
|
+
'settings.privacy.enabled': string;
|
|
1767
|
+
'settings.privacy.enabledRisk': string;
|
|
1768
|
+
'settings.privacy.encrypted': string;
|
|
1769
|
+
'settings.privacy.encryptedNote': string;
|
|
1770
|
+
'settings.privacy.injectMaxBytes': string;
|
|
1771
|
+
'settings.privacy.injectMaxBytesNote': string;
|
|
1772
|
+
'settings.privacy.recordLimit': string;
|
|
1773
|
+
'settings.privacy.recordLimitNote': string;
|
|
1774
|
+
'settings.privacy.disableClearPrompt': string;
|
|
1775
|
+
'settings.privacy.disableClearConfirm': string;
|
|
1776
|
+
'settings.privacy.disableClearKeep': string;
|
|
1777
|
+
'settings.privacy.profileTitle': string;
|
|
1778
|
+
'settings.privacy.profileNote': string;
|
|
1779
|
+
'settings.privacy.profileEmpty': string;
|
|
1780
|
+
'settings.privacy.profileDelete': string;
|
|
1781
|
+
'settings.privacy.refine': string;
|
|
1782
|
+
'settings.privacy.export': string;
|
|
1783
|
+
'settings.privacy.import': string;
|
|
1784
|
+
'settings.privacy.clearRecords': string;
|
|
1785
|
+
'settings.privacy.clearProfile': string;
|
|
1786
|
+
'settings.privacy.clearConfirm': string;
|
|
1787
|
+
'settings.privacy.exportReview': string;
|
|
1788
|
+
'settings.privacy.exportConfirm': string;
|
|
1789
|
+
'settings.privacy.importDiff': string;
|
|
1790
|
+
'settings.model.image': string;
|
|
1791
|
+
'settings.model.imageNote': string;
|
|
1792
|
+
'settings.model.tools': string;
|
|
1793
|
+
'settings.model.toolsNote': string;
|
|
1794
|
+
'settings.model.builtinFixed': string;
|
|
1795
|
+
'settings.capability.plainChat': string;
|
|
1796
|
+
'settings.multimodal.title': string;
|
|
1797
|
+
'settings.multimodal.description': string;
|
|
1798
|
+
'settings.multimodal.imageAttachments': string;
|
|
1799
|
+
'settings.multimodal.imageAttachmentsRisk': string;
|
|
1800
|
+
'settings.multimodal.pageImageCapture': string;
|
|
1801
|
+
'settings.multimodal.pageImageCaptureRisk': string;
|
|
1802
|
+
'settings.multimodal.maxImages': string;
|
|
1803
|
+
'settings.multimodal.maxImagesNote': string;
|
|
1804
|
+
'settings.multimodal.maxImageBytes': string;
|
|
1805
|
+
'settings.multimodal.maxImageBytesNote': string;
|
|
1276
1806
|
'settings.voice.title': string;
|
|
1277
1807
|
'settings.voice.description': string;
|
|
1278
1808
|
'settings.voice.lang': string;
|
|
1279
1809
|
'settings.voice.langFollow': string;
|
|
1280
|
-
'settings.appearance.title': string;
|
|
1281
|
-
'settings.appearance.description': string;
|
|
1282
|
-
'settings.theme': string;
|
|
1283
|
-
'settings.theme.light': string;
|
|
1284
|
-
'settings.theme.dark': string;
|
|
1285
|
-
'settings.language': string;
|
|
1286
|
-
'settings.language.en': string;
|
|
1287
|
-
'settings.language.zh': string;
|
|
1288
|
-
'settings.renderer': string;
|
|
1289
|
-
'settings.renderer.description': string;
|
|
1290
|
-
'settings.renderer.native': string;
|
|
1291
|
-
'settings.renderer.a2ui': string;
|
|
1292
|
-
'settings.renderer.openui': string;
|
|
1293
|
-
'settings.renderer.vercel': string;
|
|
1294
1810
|
'vercel.preview.title': string;
|
|
1295
1811
|
'vercel.preview.badge': string;
|
|
1296
1812
|
'vercel.preview.description': string;
|
|
1297
1813
|
'surface.legacy.placeholder': string;
|
|
1298
1814
|
'error.title': string;
|
|
1299
1815
|
'error.suggestion': string;
|
|
1816
|
+
'error.suggestion.LLM_UNAVAILABLE': string;
|
|
1817
|
+
'error.suggestion.LLM_REQUEST_FAILED': string;
|
|
1818
|
+
'error.suggestion.RUN_TIMEOUT': string;
|
|
1819
|
+
'error.suggestion.RUN_INTERACTION_TIMEOUT': string;
|
|
1820
|
+
'error.suggestion.RUN_MAX_TURNS_EXCEEDED': string;
|
|
1821
|
+
'error.suggestion.TOOL_RESOLUTION_EXHAUSTED': string;
|
|
1822
|
+
'error.limit.totalTimeoutMs': string;
|
|
1823
|
+
'error.limit.maxTurns': string;
|
|
1824
|
+
'error.openSettings': string;
|
|
1300
1825
|
'error.dismiss': string;
|
|
1301
1826
|
};
|
|
1302
1827
|
zh: {
|
|
@@ -1304,11 +1829,24 @@ declare const useT: () => TranslateFn<{
|
|
|
1304
1829
|
'header.sessions': string;
|
|
1305
1830
|
'header.settings': string;
|
|
1306
1831
|
'header.console': string;
|
|
1832
|
+
'header.theme.light': string;
|
|
1833
|
+
'header.theme.dark': string;
|
|
1307
1834
|
'session.title': string;
|
|
1308
1835
|
'session.new': string;
|
|
1309
1836
|
'session.searchPlaceholder': string;
|
|
1837
|
+
'session.searchClear': string;
|
|
1310
1838
|
'session.empty': string;
|
|
1839
|
+
'session.missingRoot': string;
|
|
1840
|
+
'session.skipped': string;
|
|
1311
1841
|
'session.delete': string;
|
|
1842
|
+
'session.actions': string;
|
|
1843
|
+
'session.menu.rename': string;
|
|
1844
|
+
'session.menu.archive': string;
|
|
1845
|
+
'session.menu.unarchive': string;
|
|
1846
|
+
'session.menu.delete': string;
|
|
1847
|
+
'session.delete.confirmTitle': string;
|
|
1848
|
+
'session.delete.confirmDescription': string;
|
|
1849
|
+
'common.cancel': string;
|
|
1312
1850
|
'session.rename': string;
|
|
1313
1851
|
'session.renameInput': string;
|
|
1314
1852
|
'session.archive': string;
|
|
@@ -1333,10 +1871,17 @@ declare const useT: () => TranslateFn<{
|
|
|
1333
1871
|
'welcome.prompt.4': string;
|
|
1334
1872
|
'message.copy': string;
|
|
1335
1873
|
'message.copied': string;
|
|
1874
|
+
'message.edit': string;
|
|
1875
|
+
'message.editSend': string;
|
|
1876
|
+
'message.editCancel': string;
|
|
1336
1877
|
'message.retry': string;
|
|
1337
1878
|
'message.delete': string;
|
|
1338
1879
|
'message.viewTrace': string;
|
|
1339
1880
|
'message.skillsUsed': string;
|
|
1881
|
+
'capability.tools.on': string;
|
|
1882
|
+
'capability.tools.off': string;
|
|
1883
|
+
'capability.images.on': string;
|
|
1884
|
+
'capability.images.off': string;
|
|
1340
1885
|
'tool.summary.one': string;
|
|
1341
1886
|
'tool.summary.other': string;
|
|
1342
1887
|
'tool.status.running': string;
|
|
@@ -1347,21 +1892,41 @@ declare const useT: () => TranslateFn<{
|
|
|
1347
1892
|
'tool.args': string;
|
|
1348
1893
|
'tool.denied.reason': string;
|
|
1349
1894
|
'tool.failed.reason': string;
|
|
1895
|
+
'tool.notFound.reason': string;
|
|
1896
|
+
'tool.exhausted.reason': string;
|
|
1350
1897
|
'cot.thinking': string;
|
|
1351
1898
|
'cot.thought': string;
|
|
1352
1899
|
'cot.summary': string;
|
|
1353
1900
|
'cot.reasoning': string;
|
|
1354
1901
|
'cot.working': string;
|
|
1355
1902
|
'trace.title': string;
|
|
1903
|
+
'trace.runId': string;
|
|
1904
|
+
'trace.runId.copy': string;
|
|
1905
|
+
'trace.runId.copied': string;
|
|
1906
|
+
'candidate.submitted': string;
|
|
1907
|
+
'candidate.id.copy': string;
|
|
1908
|
+
'candidate.id.copied': string;
|
|
1909
|
+
'candidate.review': string;
|
|
1356
1910
|
'trace.skill': string;
|
|
1357
1911
|
'perception.reading': string;
|
|
1358
1912
|
'perception.excluded': string;
|
|
1913
|
+
'perception.images': string;
|
|
1914
|
+
'perception.imagesOmitted': string;
|
|
1915
|
+
'perception.imageFailures': string;
|
|
1359
1916
|
'trace.phase.route': string;
|
|
1360
1917
|
'trace.phase.activate': string;
|
|
1361
1918
|
'trace.phase.execute': string;
|
|
1362
1919
|
'trace.phase.interact': string;
|
|
1363
1920
|
'trace.phase.complete': string;
|
|
1364
1921
|
'trace.phase.fail': string;
|
|
1922
|
+
'run.terminated.userCancelled': string;
|
|
1923
|
+
'run.terminated.maxTurns': string;
|
|
1924
|
+
'run.terminated.timeout': string;
|
|
1925
|
+
'run.terminated.llmError': string;
|
|
1926
|
+
'run.terminated.interactionTimeout': string;
|
|
1927
|
+
'run.terminated.hookError': string;
|
|
1928
|
+
'run.terminated.toolResolutionExhausted': string;
|
|
1929
|
+
'run.terminated.unknown': string;
|
|
1365
1930
|
'todo.title': string;
|
|
1366
1931
|
'todo.progress': string;
|
|
1367
1932
|
'todo.status.pending': string;
|
|
@@ -1373,16 +1938,31 @@ declare const useT: () => TranslateFn<{
|
|
|
1373
1938
|
'interaction.form.title': string;
|
|
1374
1939
|
'interaction.select.title': string;
|
|
1375
1940
|
'interaction.authorize.title': string;
|
|
1941
|
+
'interaction.filePick.title': string;
|
|
1942
|
+
'interaction.filePick.choose': string;
|
|
1943
|
+
'interaction.filePick.decline': string;
|
|
1944
|
+
'interaction.filePick.selected': string;
|
|
1376
1945
|
'interaction.authorize.description': string;
|
|
1377
1946
|
'interaction.authorize.capability': string;
|
|
1378
1947
|
'interaction.authorize.details': string;
|
|
1948
|
+
'interaction.pageAction.click': string;
|
|
1949
|
+
'interaction.pageAction.fill': string;
|
|
1950
|
+
'interaction.pageAction.submit': string;
|
|
1951
|
+
'interaction.pageAction.role.click': string;
|
|
1952
|
+
'interaction.pageAction.role.fill': string;
|
|
1953
|
+
'interaction.pageAction.role.submit': string;
|
|
1379
1954
|
'interaction.origin': string;
|
|
1955
|
+
'interaction.submitted': string;
|
|
1380
1956
|
'interaction.submit': string;
|
|
1381
1957
|
'interaction.cancel': string;
|
|
1382
1958
|
'interaction.confirm': string;
|
|
1383
1959
|
'interaction.allow': string;
|
|
1384
1960
|
'interaction.deny': string;
|
|
1385
1961
|
'interaction.required': string;
|
|
1962
|
+
'interaction.wait': string;
|
|
1963
|
+
'interaction.wait.inPanel': string;
|
|
1964
|
+
'interaction.wait.fallback': string;
|
|
1965
|
+
'interaction.wait.locate': string;
|
|
1386
1966
|
'result.artifacts': string;
|
|
1387
1967
|
'result.download': string;
|
|
1388
1968
|
'result.file': string;
|
|
@@ -1404,14 +1984,37 @@ declare const useT: () => TranslateFn<{
|
|
|
1404
1984
|
'composer.attachments': string;
|
|
1405
1985
|
'composer.addAttachment': string;
|
|
1406
1986
|
'composer.removeAttachment': string;
|
|
1987
|
+
'composer.attachment.kind.text': string;
|
|
1988
|
+
'composer.attachment.kind.image': string;
|
|
1989
|
+
'composer.attachment.kind.file': string;
|
|
1990
|
+
'composer.attachment.compressed': string;
|
|
1407
1991
|
'composer.model': string;
|
|
1408
1992
|
'composer.model.demo': string;
|
|
1993
|
+
'composer.menu': string;
|
|
1994
|
+
'composer.pageCapture': string;
|
|
1995
|
+
'composer.pageCapture.disabled.setting': string;
|
|
1996
|
+
'composer.pageCapture.disabled.model': string;
|
|
1997
|
+
'composer.addAttachment.imagesOff': string;
|
|
1998
|
+
'composer.addAttachment.modelNoImages': string;
|
|
1409
1999
|
'composer.dictate': string;
|
|
1410
2000
|
'composer.dictate.stop': string;
|
|
1411
2001
|
'composer.dictate.recording': string;
|
|
1412
2002
|
'composer.dictate.api-missing': string;
|
|
1413
2003
|
'composer.dictate.insecure-context': string;
|
|
1414
2004
|
'settings.title': string;
|
|
2005
|
+
'settings.group.general': string;
|
|
2006
|
+
'settings.group.models': string;
|
|
2007
|
+
'settings.group.agent': string;
|
|
2008
|
+
'settings.group.multimodal': string;
|
|
2009
|
+
'settings.group.privacy': string;
|
|
2010
|
+
'settings.general.title': string;
|
|
2011
|
+
'settings.general.description': string;
|
|
2012
|
+
'settings.privacy.title': string;
|
|
2013
|
+
'settings.privacy.description': string;
|
|
2014
|
+
'settings.model.actions': string;
|
|
2015
|
+
'settings.model.removeConfirmTitle': string;
|
|
2016
|
+
'settings.model.removeConfirmDescription': string;
|
|
2017
|
+
'settings.model.isDefault': string;
|
|
1415
2018
|
'settings.model.title': string;
|
|
1416
2019
|
'settings.model.description': string;
|
|
1417
2020
|
'settings.model.empty': string;
|
|
@@ -1460,44 +2063,77 @@ declare const useT: () => TranslateFn<{
|
|
|
1460
2063
|
'settings.agent.todoNote': string;
|
|
1461
2064
|
'settings.agent.generativeUi': string;
|
|
1462
2065
|
'settings.agent.generativeUiNote': string;
|
|
2066
|
+
'settings.agent.generativeUiUnaffected': string;
|
|
1463
2067
|
'settings.agent.skillGeneration': string;
|
|
1464
2068
|
'settings.agent.skillGenerationNote': string;
|
|
1465
2069
|
'settings.agent.delegation': string;
|
|
1466
2070
|
'settings.agent.delegationNote': string;
|
|
1467
|
-
'settings.agent.
|
|
1468
|
-
'settings.agent.
|
|
1469
|
-
'settings.agent.
|
|
1470
|
-
'settings.agent.
|
|
1471
|
-
'settings.
|
|
1472
|
-
'settings.
|
|
1473
|
-
'settings.
|
|
1474
|
-
'settings.
|
|
1475
|
-
'settings.
|
|
1476
|
-
'settings.
|
|
2071
|
+
'settings.agent.limits': string;
|
|
2072
|
+
'settings.agent.limitsNote': string;
|
|
2073
|
+
'settings.agent.totalTimeout': string;
|
|
2074
|
+
'settings.agent.maxTurns': string;
|
|
2075
|
+
'settings.agent.toolTimeout': string;
|
|
2076
|
+
'settings.agent.limits.invalid': string;
|
|
2077
|
+
'settings.agent.limits.reset': string;
|
|
2078
|
+
'settings.privacy.enabled': string;
|
|
2079
|
+
'settings.privacy.enabledRisk': string;
|
|
2080
|
+
'settings.privacy.encrypted': string;
|
|
2081
|
+
'settings.privacy.encryptedNote': string;
|
|
2082
|
+
'settings.privacy.injectMaxBytes': string;
|
|
2083
|
+
'settings.privacy.injectMaxBytesNote': string;
|
|
2084
|
+
'settings.privacy.recordLimit': string;
|
|
2085
|
+
'settings.privacy.recordLimitNote': string;
|
|
2086
|
+
'settings.privacy.disableClearPrompt': string;
|
|
2087
|
+
'settings.privacy.disableClearConfirm': string;
|
|
2088
|
+
'settings.privacy.disableClearKeep': string;
|
|
2089
|
+
'settings.privacy.profileTitle': string;
|
|
2090
|
+
'settings.privacy.profileNote': string;
|
|
2091
|
+
'settings.privacy.profileEmpty': string;
|
|
2092
|
+
'settings.privacy.profileDelete': string;
|
|
2093
|
+
'settings.privacy.refine': string;
|
|
2094
|
+
'settings.privacy.export': string;
|
|
2095
|
+
'settings.privacy.import': string;
|
|
2096
|
+
'settings.privacy.clearRecords': string;
|
|
2097
|
+
'settings.privacy.clearProfile': string;
|
|
2098
|
+
'settings.privacy.clearConfirm': string;
|
|
2099
|
+
'settings.privacy.exportReview': string;
|
|
2100
|
+
'settings.privacy.exportConfirm': string;
|
|
2101
|
+
'settings.privacy.importDiff': string;
|
|
2102
|
+
'settings.model.image': string;
|
|
2103
|
+
'settings.model.imageNote': string;
|
|
2104
|
+
'settings.model.tools': string;
|
|
2105
|
+
'settings.model.toolsNote': string;
|
|
2106
|
+
'settings.model.builtinFixed': string;
|
|
2107
|
+
'settings.capability.plainChat': string;
|
|
2108
|
+
'settings.multimodal.title': string;
|
|
2109
|
+
'settings.multimodal.description': string;
|
|
2110
|
+
'settings.multimodal.imageAttachments': string;
|
|
2111
|
+
'settings.multimodal.imageAttachmentsRisk': string;
|
|
2112
|
+
'settings.multimodal.pageImageCapture': string;
|
|
2113
|
+
'settings.multimodal.pageImageCaptureRisk': string;
|
|
2114
|
+
'settings.multimodal.maxImages': string;
|
|
2115
|
+
'settings.multimodal.maxImagesNote': string;
|
|
2116
|
+
'settings.multimodal.maxImageBytes': string;
|
|
2117
|
+
'settings.multimodal.maxImageBytesNote': string;
|
|
1477
2118
|
'settings.voice.title': string;
|
|
1478
2119
|
'settings.voice.description': string;
|
|
1479
2120
|
'settings.voice.lang': string;
|
|
1480
2121
|
'settings.voice.langFollow': string;
|
|
1481
|
-
'settings.appearance.title': string;
|
|
1482
|
-
'settings.appearance.description': string;
|
|
1483
|
-
'settings.theme': string;
|
|
1484
|
-
'settings.theme.light': string;
|
|
1485
|
-
'settings.theme.dark': string;
|
|
1486
|
-
'settings.language': string;
|
|
1487
|
-
'settings.language.en': string;
|
|
1488
|
-
'settings.language.zh': string;
|
|
1489
|
-
'settings.renderer': string;
|
|
1490
|
-
'settings.renderer.description': string;
|
|
1491
|
-
'settings.renderer.native': string;
|
|
1492
|
-
'settings.renderer.a2ui': string;
|
|
1493
|
-
'settings.renderer.openui': string;
|
|
1494
|
-
'settings.renderer.vercel': string;
|
|
1495
2122
|
'vercel.preview.title': string;
|
|
1496
2123
|
'vercel.preview.badge': string;
|
|
1497
2124
|
'vercel.preview.description': string;
|
|
1498
2125
|
'surface.legacy.placeholder': string;
|
|
1499
2126
|
'error.title': string;
|
|
1500
2127
|
'error.suggestion': string;
|
|
2128
|
+
'error.suggestion.LLM_UNAVAILABLE': string;
|
|
2129
|
+
'error.suggestion.LLM_REQUEST_FAILED': string;
|
|
2130
|
+
'error.suggestion.RUN_TIMEOUT': string;
|
|
2131
|
+
'error.suggestion.RUN_INTERACTION_TIMEOUT': string;
|
|
2132
|
+
'error.suggestion.RUN_MAX_TURNS_EXCEEDED': string;
|
|
2133
|
+
'error.suggestion.TOOL_RESOLUTION_EXHAUSTED': string;
|
|
2134
|
+
'error.limit.totalTimeoutMs': string;
|
|
2135
|
+
'error.limit.maxTurns': string;
|
|
2136
|
+
'error.openSettings': string;
|
|
1501
2137
|
'error.dismiss': string;
|
|
1502
2138
|
};
|
|
1503
2139
|
}>;
|
|
@@ -1529,9 +2165,12 @@ type ResolvedChatLayout = 'fullscreen' | 'embedded' | 'mobile';
|
|
|
1529
2165
|
interface ChatbotProps {
|
|
1530
2166
|
adapter: ChatbotHostAdapter;
|
|
1531
2167
|
config?: ChatbotConfig;
|
|
1532
|
-
/**
|
|
2168
|
+
/**
|
|
2169
|
+
* 界面语言(默认 'en')。**传了 `config.runtimeConfig` 时本属性被忽略**:
|
|
2170
|
+
* 0.6.0 起外观配置的唯一真值源是配置存储(FR-20.1)。
|
|
2171
|
+
*/
|
|
1533
2172
|
locale?: Locale;
|
|
1534
|
-
/** 主题(默认 'light'
|
|
2173
|
+
/** 主题(默认 'light')。同上:有配置源时被忽略 */
|
|
1535
2174
|
theme?: ChatTheme;
|
|
1536
2175
|
/** 交互渲染框架档(默认 'native';'a2ui' 需宿主安装 optional peer @a2ui/lit) */
|
|
1537
2176
|
renderer?: RendererKind;
|
|
@@ -1688,7 +2327,9 @@ interface ResultBlockListProps {
|
|
|
1688
2327
|
declare function ResultBlockList({ blocks, runId, onDownload }: ResultBlockListProps): import("react").JSX.Element;
|
|
1689
2328
|
/**
|
|
1690
2329
|
* run 完成结果块渐进挂载(AnimatePresence 逐块入场):
|
|
1691
|
-
* markdown / json / table / chart / image / file
|
|
2330
|
+
* markdown / json / table / chart / image / file。
|
|
2331
|
+
* 产物只由 blocks 中的 file block 承载——历史消息也只持久化 blocks,
|
|
2332
|
+
* 走同一路渲染,刷新前后的卡片计数才一致。
|
|
1692
2333
|
* @stable
|
|
1693
2334
|
*/
|
|
1694
2335
|
declare function ResultBlocksPro({ bridge, activeRunId, onDownload }: ResultBlocksProProps): import("react").JSX.Element | null;
|
|
@@ -1716,34 +2357,56 @@ interface SettingsDrawerProps {
|
|
|
1716
2357
|
* 缺省时模型区只读展示(宿主没接配置源,谈不上持久化)。
|
|
1717
2358
|
*/
|
|
1718
2359
|
runtimeConfig?: RuntimeConfigStore;
|
|
1719
|
-
theme: ChatTheme;
|
|
1720
|
-
locale: Locale;
|
|
1721
|
-
/** 当前渲染框架档(Appearance 区可切换;缺 optional peer 的档位置灰) */
|
|
1722
|
-
renderer?: RendererKind;
|
|
1723
2360
|
/**
|
|
1724
2361
|
* 语音识别语言(BCP-47);空串即跟随界面语言(FR-7.7)。
|
|
1725
2362
|
* @experimental
|
|
1726
2363
|
*/
|
|
1727
2364
|
dictationLang?: string;
|
|
1728
|
-
/**
|
|
2365
|
+
/** 语音语言切换时回调(写回同一份外观配置) */
|
|
1729
2366
|
onAppearanceChange?(next: AppearanceChange): void;
|
|
2367
|
+
/**
|
|
2368
|
+
* 当前选中的模型条目 id(FR-14.4):它不支持工具时,Agent 能力开关置灰。
|
|
2369
|
+
* @experimental
|
|
2370
|
+
*/
|
|
2371
|
+
selectedModelId?: string;
|
|
1730
2372
|
/** 保存/清除成功后回调(Chatbot 借此触发 engine.reloadConfig) */
|
|
1731
2373
|
onSaved(): void;
|
|
1732
2374
|
/**
|
|
1733
|
-
*
|
|
2375
|
+
* 用户画像的读写入口(需求 19)。不注入即整段画像 UI 不渲染(R11)——
|
|
2376
|
+
* 没有数据源时展示一个空列表比不展示更容易让人以为「记录丢了」。
|
|
1734
2377
|
* @experimental
|
|
1735
2378
|
*/
|
|
1736
|
-
|
|
2379
|
+
userProfileApi?: UserProfileApi;
|
|
1737
2380
|
/**
|
|
1738
|
-
*
|
|
1739
|
-
*
|
|
2381
|
+
* 打开时定位到哪个分区(缺省 `'general'`)。触顶报错的「打开设置」按此直达 Agent 区,
|
|
2382
|
+
* 让用户少找一步(FR-21.2)。传了不存在的 id 则回落到 `'general'`。
|
|
1740
2383
|
* @experimental
|
|
1741
2384
|
*/
|
|
1742
|
-
|
|
2385
|
+
initialSectionId?: string;
|
|
1743
2386
|
onClose(): void;
|
|
1744
2387
|
}
|
|
1745
|
-
/**
|
|
1746
|
-
|
|
2388
|
+
/** 设置面板对画像数据的最小依赖面;实现由 Chatbot 用 ChatEngine 装配 @experimental */
|
|
2389
|
+
interface UserProfileApi {
|
|
2390
|
+
read(): Promise<UserProfile>;
|
|
2391
|
+
refine(): Promise<UserProfile>;
|
|
2392
|
+
deleteEntry(id: string): Promise<UserProfile>;
|
|
2393
|
+
clearRecords(): Promise<void>;
|
|
2394
|
+
clearProfile(): Promise<void>;
|
|
2395
|
+
/** 记录与画像一并清除(关闭总开关时的追问) */
|
|
2396
|
+
clearAll(): Promise<void>;
|
|
2397
|
+
/** `excludeIds` 来自导出前的逐条审阅 */
|
|
2398
|
+
export(excludeIds: readonly string[]): Promise<UserProfileExport>;
|
|
2399
|
+
diffImport(incoming: UserProfileExport): Promise<UserProfileImportDiff>;
|
|
2400
|
+
applyImport(incoming: UserProfileExport): Promise<UserProfile>;
|
|
2401
|
+
}
|
|
2402
|
+
/** @experimental */
|
|
2403
|
+
interface UserProfileImportDiff {
|
|
2404
|
+
added: readonly UserProfileEntry[];
|
|
2405
|
+
updated: readonly UserProfileEntry[];
|
|
2406
|
+
origin: string;
|
|
2407
|
+
}
|
|
2408
|
+
/** 设置抽屉:模型列表(增删改 / 设默认 / 逐条探测)+ 流式与 temperature + Agent 能力 + 语音语言 @stable */
|
|
2409
|
+
declare function SettingsDrawer({ open, runtimeConfig, dictationLang, selectedModelId, onAppearanceChange, onSaved, userProfileApi: profileApi, initialSectionId, onClose }: SettingsDrawerProps): import("react").JSX.Element;
|
|
1747
2410
|
//#endregion
|
|
1748
2411
|
//#region src/react/ErrorCard.d.ts
|
|
1749
2412
|
/** @stable */
|
|
@@ -1751,9 +2414,20 @@ interface ErrorCardProps {
|
|
|
1751
2414
|
/** 稳定错误码(WebSkillError.code / RUN_FAILED;缺省不渲染徽章) */
|
|
1752
2415
|
code?: string;
|
|
1753
2416
|
message: string;
|
|
2417
|
+
/**
|
|
2418
|
+
* 触顶类错误的生效上限值:`totalTimeoutMs` 为毫秒、`maxTurns` 为轮数。
|
|
2419
|
+
* 给了才渲染「哪个上限 / 当前值 / 去哪改」,否则退回英文 message(FR-21.2)。
|
|
2420
|
+
* @experimental
|
|
2421
|
+
*/
|
|
2422
|
+
loopLimits?: {
|
|
2423
|
+
totalTimeoutMs: number;
|
|
2424
|
+
maxTurns: number;
|
|
2425
|
+
};
|
|
2426
|
+
/** 提供时,触顶类错误下多一个直达设置的按钮 @experimental */
|
|
2427
|
+
onOpenSettings?(): void;
|
|
1754
2428
|
onDismiss?(): void;
|
|
1755
2429
|
}
|
|
1756
2430
|
/** 结构化错误卡:错误码徽章 + 描述 + 建议(engine error 事件 / 失败 run) @stable */
|
|
1757
|
-
declare function ErrorCard({ code, message, onDismiss }: ErrorCardProps): import("react").JSX.Element;
|
|
2431
|
+
declare function ErrorCard({ code, message, loopLimits, onOpenSettings, onDismiss }: ErrorCardProps): import("react").JSX.Element;
|
|
1758
2432
|
//#endregion
|
|
1759
|
-
export { A2uiSurfaceHost, type A2uiSurfaceHostProps, A2uiSurfaceSnapshotHost, type A2uiSurfaceSnapshotHostProps, type AppearanceChange, type ChatAttachmentInput, type ChatAttachmentMeta, ChatEngine, type ChatEngineOptions, type ChatEvent, type ChatLayout, type ChatMessage, type ChatSessionMeta, type ChatTheme, type ChatToolCall, Chatbot, type ChatbotConfig, type ChatbotGovernancePorts, type ChatbotHostAdapter, type ChatbotProps, CompositeUiBridge, type CompositeUiBridgeDeps, DEFAULT_RENDERER_CAPABILITIES, type DownloadableFile, ErrorCard, type ErrorCardProps, InteractionCard, type InteractionCardProps, InterruptedBanner, type InterruptedBannerProps, type Locale, OpenUiSurfaceHost, type OpenUiSurfaceHostProps, OpenUiSurfaceSnapshotHost, type OpenUiSurfaceSnapshotHostProps, type RendererCapability, type RendererKind, type ResolvedChatLayout, ResultBlockList, type ResultBlockListProps, ResultBlocksPro, type ResultBlocksProProps, type RunSnapshot, type SandboxExecutorDeps, SettingsDrawer, type SettingsDrawerProps, SkillBadges, SpecInteraction, type SpecInteractionProps, VercelPayloadPreview, type VercelPayloadPreviewProps, VercelSurfaceHost, type VercelSurfaceHostProps, VercelSurfaceSnapshotHost, type VercelSurfaceSnapshotHostProps, chatbotDictionary, configureA2uiMarkdown, probeA2uiAvailability, probeOpenUiAvailability, useT };
|
|
2433
|
+
export { A2uiSurfaceHost, type A2uiSurfaceHostProps, A2uiSurfaceSnapshotHost, type A2uiSurfaceSnapshotHostProps, type AppearanceChange, type ChatAttachmentInput, type ChatAttachmentMeta, ChatEngine, type ChatEngineOptions, type ChatEvent, type ChatInteractionRecord, type ChatLayout, type ChatMessage, type ChatRunPhase, type ChatSessionListResult, type ChatSessionMeta, type ChatTheme, type ChatToolCall, Chatbot, type ChatbotConfig, type ChatbotGovernancePorts, type ChatbotHostAdapter, type ChatbotProps, CompositeUiBridge, type CompositeUiBridgeDeps, DEFAULT_RENDERER_CAPABILITIES, DEFAULT_RUNTIME_CONFIG_STORAGE_KEY, type DownloadableFile, ErrorCard, type ErrorCardProps, InteractionCard, type InteractionCardProps, InterruptedBanner, type InterruptedBannerProps, type Locale, OpenUiSurfaceHost, type OpenUiSurfaceHostProps, OpenUiSurfaceSnapshotHost, type OpenUiSurfaceSnapshotHostProps, type RendererCapability, type RendererKind, type ResolvedChatLayout, ResultBlockList, type ResultBlockListProps, ResultBlocksPro, type ResultBlocksProProps, type RunSnapshot, type RuntimeAppearanceConfig, type RuntimeConfig, type RuntimeConfigStore, type RuntimeRendererId, type SandboxExecutorDeps, SettingsDrawer, type SettingsDrawerProps, SkillBadges, SpecInteraction, type SpecInteractionProps, type UserProfileApi, type UserProfileImportDiff, VercelPayloadPreview, type VercelPayloadPreviewProps, VercelSurfaceHost, type VercelSurfaceHostProps, VercelSurfaceSnapshotHost, type VercelSurfaceSnapshotHostProps, chatbotDictionary, configureA2uiMarkdown, createLocalStorageRuntimeConfigStore, createMemoryRuntimeConfigStore, probeA2uiAvailability, probeOpenUiAvailability, useT };
|