@webskill/chatbot 0.6.0 → 0.8.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 +4 -3
- package/dist/chatbot.css +251 -46
- package/dist/index.d.ts +234 -14
- package/dist/index.js +2486 -1794
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentLoopConfig, ApprovalScope, BridgeCapabilities, ExternalSkillProvider, ExternalToolSource, FileSystemProvider, HookRunner, InteractionRequest, InteractionResponse, LifecycleEventInit, LlmClient, NetworkPolicy, Page, PageQuery, RenderBlock, RenderResultRequest, RunSnapshot, RunSnapshotListEntry, RuntimePhase, RuntimeRun, ScriptExecutor, SessionStore, SkillCandidateMarker, SkillCatalogEntry, SkillIntegrityGuard, SkillOutcomeReporter, SkillStateGuard, UiBridge, UiSpecDrafts, UiSpecEvent, UiSpecSnapshot, UiSurfaceActionRequest, UiSurfaceActionResponse, UserProfile, UserProfileExport, WebSkillErrorCode, diffUserProfile } from "@webskill/sdk";
|
|
1
|
+
import { AgentLoopConfig, ApprovalScope, BridgeCapabilities, DocxTextExtractor, ExternalSkillProvider, ExternalToolSource, FileSystemProvider, HookRunner, InteractionRequest, InteractionResponse, LifecycleEventInit, LinkedDocumentReader, LlmClient, NetworkPolicy, Page, PageQuery, RenderBlock, RenderResultRequest, RunSnapshot, RunSnapshotListEntry, RuntimePhase, RuntimeRun, ScriptExecutor, SessionStore, SkillCandidateMarker, SkillCatalogEntry, SkillIntegrityGuard, SkillOutcomeReporter, SkillStateGuard, UiBridge, UiSpecDrafts, UiSpecEvent, UiSpecSnapshot, UiSurfaceActionRequest, UiSurfaceActionResponse, UserProfile, 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
4
|
import { PageActionPolicy, PagePerceptionPolicy, PerceptionRecord, SkillCandidateSink, TodoItem } from "@webskill/sdk/agent";
|
|
@@ -53,6 +53,10 @@ interface RuntimeLoopConfig {
|
|
|
53
53
|
temperature?: number;
|
|
54
54
|
toolResultMaxBytes: number;
|
|
55
55
|
maxHistoryMessages: number;
|
|
56
|
+
/** `file` 分片的 base64 上限;超出即拒绝并说明,不截断(FR-23.4) */
|
|
57
|
+
maxDocumentBytes: number;
|
|
58
|
+
/** `document-text` 分片的字节上限;同样拒绝而不截断(FR-23.4) */
|
|
59
|
+
maxDocumentTextBytes: number;
|
|
56
60
|
}
|
|
57
61
|
interface RuntimeInteractionConfig {
|
|
58
62
|
missingParams: 'user' | 'llm';
|
|
@@ -74,9 +78,22 @@ interface RuntimeSandboxConfig {
|
|
|
74
78
|
networkPolicy: NetworkPolicy$1;
|
|
75
79
|
capabilities: {
|
|
76
80
|
readReference: CapabilityMode;
|
|
81
|
+
/** 同时管 readAsset 与 readAssetBinary */
|
|
82
|
+
readAsset: CapabilityMode;
|
|
77
83
|
writeArtifact: CapabilityMode;
|
|
78
84
|
confirm: CapabilityMode;
|
|
85
|
+
/**
|
|
86
|
+
* 脚本按宿主声明的数据源取数(分册 16)。
|
|
87
|
+
* 与 `readAsset` **相反**,缺省 `false`:它会出网,缺省开等于每个技能默认拿到出站能力。
|
|
88
|
+
*/
|
|
89
|
+
fetchData: CapabilityMode;
|
|
79
90
|
};
|
|
91
|
+
/**
|
|
92
|
+
* 单次取数结果的字节上限(分册 16)。超出即拒绝,**不截断**
|
|
93
|
+
* ——截断后的 JSON 解不出来,比拒绝更糟。结果回到脚本,不进模型上下文,
|
|
94
|
+
* 所以不受 `toolResultMaxBytes` 约束。
|
|
95
|
+
*/
|
|
96
|
+
maxDataSourceBytes: number;
|
|
80
97
|
/**
|
|
81
98
|
* 出站 URL 准入策略(`RemoteUrlPolicy` 的可配置部分):技能安装、MCP 端点连接
|
|
82
99
|
* 这类由宿主发起的取数都按它判定。两项都默认关,即 https-only 且拒绝内网/环回。
|
|
@@ -129,6 +146,13 @@ interface RuntimeLlmEntry {
|
|
|
129
146
|
model: string;
|
|
130
147
|
requestTimeoutMs?: number;
|
|
131
148
|
capabilities?: RuntimeLlmCapabilities;
|
|
149
|
+
/**
|
|
150
|
+
* Anthropic extended thinking 预算(0.10.0 遗留项 #1):仅 anthropic 条目有意义;
|
|
151
|
+
* 设置面是开关,开启写入 `DEFAULT_THINKING_BUDGET_TOKENS`。
|
|
152
|
+
* 0.10.0 #40.4:缺省(undefined)视为**开启**(按默认预算),显式关闭存 0。
|
|
153
|
+
* @experimental
|
|
154
|
+
*/
|
|
155
|
+
thinkingBudgetTokens?: number;
|
|
132
156
|
}
|
|
133
157
|
/** 模型列表 + 默认项。`defaultId` 由 `mergeRuntimeConfigDefaults` 归一到真实存在的条目 */
|
|
134
158
|
interface RuntimeLlmSelection {
|
|
@@ -182,6 +206,17 @@ interface RuntimeAppearanceConfig {
|
|
|
182
206
|
* 两者都会把图像随请求外发给模型提供方,属新增攻击面。
|
|
183
207
|
* @experimental
|
|
184
208
|
*/
|
|
209
|
+
/**
|
|
210
|
+
* 文档投放面(0.11.0 分册 18)。
|
|
211
|
+
*
|
|
212
|
+
* **只有一个闸门字段**。CSP 白名单不在这里:它由 viewer 路由的**响应头**
|
|
213
|
+
* 下发(FR-18.3 第 1 条),是宿主部署时调 `viewerCspHeader` 的入参;
|
|
214
|
+
* 浏览器侧的运行时配置改不动已经发出去的响应头,携在这里只会是个不生效的假开关。
|
|
215
|
+
*/
|
|
216
|
+
interface RuntimeDocumentSurfaceConfig {
|
|
217
|
+
/** 关着即没有这个投放面;开启还要求宿主额外提供一条 viewer 路由 */
|
|
218
|
+
enabled: boolean;
|
|
219
|
+
}
|
|
185
220
|
interface RuntimeMultimodalConfig {
|
|
186
221
|
imageAttachments: boolean;
|
|
187
222
|
/** 页面图像抓取总开关(FR-12.3);关时感知只走纯文本路径 */
|
|
@@ -208,6 +243,15 @@ interface RuntimeUserProfileConfig {
|
|
|
208
243
|
encrypted: boolean;
|
|
209
244
|
}
|
|
210
245
|
/** @experimental */
|
|
246
|
+
interface RuntimeSkillStateConfig {
|
|
247
|
+
/**
|
|
248
|
+
* 技能连续失败自动隔离阈值(0.10.0 UI-UX5 #48-12;#49-2 起默认 5),
|
|
249
|
+
* 与 governance `SkillStatePolicy` 的缺省对齐。读点在 console 的
|
|
250
|
+
* GovernanceFacade 装配处(`failureThreshold`),守卫本身不读配置。
|
|
251
|
+
*/
|
|
252
|
+
quarantineThreshold: number;
|
|
253
|
+
}
|
|
254
|
+
/** @experimental */
|
|
211
255
|
interface RuntimeConfig {
|
|
212
256
|
loop: RuntimeLoopConfig;
|
|
213
257
|
interaction: RuntimeInteractionConfig;
|
|
@@ -223,7 +267,9 @@ interface RuntimeConfig {
|
|
|
223
267
|
security: RuntimeSecurityConfig;
|
|
224
268
|
appearance: RuntimeAppearanceConfig;
|
|
225
269
|
multimodal: RuntimeMultimodalConfig;
|
|
270
|
+
documentSurface: RuntimeDocumentSurfaceConfig;
|
|
226
271
|
userProfile: RuntimeUserProfileConfig;
|
|
272
|
+
skillState: RuntimeSkillStateConfig;
|
|
227
273
|
/** 被用户删掉的自动模型条目 id(FR-14.3):删一次就不该再自己长回来 */
|
|
228
274
|
dismissedAutoEntries: readonly string[];
|
|
229
275
|
}
|
|
@@ -272,7 +318,7 @@ declare function createMemoryRuntimeConfigStore(initial?: Partial<RuntimeConfig>
|
|
|
272
318
|
//#endregion
|
|
273
319
|
//#region src/core/attachmentKind.d.ts
|
|
274
320
|
/** 附件在模型侧的内容形态(0.6.0 FR-11.2) @experimental */
|
|
275
|
-
type ChatAttachmentKind = 'text' | 'image' | 'file';
|
|
321
|
+
type ChatAttachmentKind = 'text' | 'image' | 'file' | 'document-text';
|
|
276
322
|
//#endregion
|
|
277
323
|
//#region src/core/types.d.ts
|
|
278
324
|
/**
|
|
@@ -330,6 +376,11 @@ interface ChatToolCall {
|
|
|
330
376
|
args?: string;
|
|
331
377
|
/** 执行耗时(trace completed/failed 回填;live 由 started→终态计时) */
|
|
332
378
|
durationMs?: number;
|
|
379
|
+
/**
|
|
380
|
+
* 开始时刻(epoch ms,0.10.0 UI-UX5 #32)。与思考段按时间穿插需要共同时钟;
|
|
381
|
+
* 旧会话消息没有该字段时工具卡片保持原有相对顺序。
|
|
382
|
+
*/
|
|
383
|
+
at?: number;
|
|
333
384
|
/**
|
|
334
385
|
* failed 时的结构化错误码(如 `TOOL_NOT_ALLOWED`)。
|
|
335
386
|
* 「被策略拒绝」与「执行失败」在 UI 上是两回事,靠错误码区分而不是解析文案。
|
|
@@ -365,6 +416,8 @@ interface ChatRunPhase {
|
|
|
365
416
|
endedAt?: number;
|
|
366
417
|
/** 由结构化 `LifecycleEvent.data` 派生的一句摘要 */
|
|
367
418
|
note?: string;
|
|
419
|
+
/** fail 相位的具体说明:`reason` 只有七种取值,说不出「哪个上限、哪个模型」 */
|
|
420
|
+
detail?: string;
|
|
368
421
|
}
|
|
369
422
|
/** 本轮发生的一次已提交交互(FR-17.8:提交后表单保留所填值) @experimental */
|
|
370
423
|
interface ChatInteractionRecord {
|
|
@@ -373,6 +426,28 @@ interface ChatInteractionRecord {
|
|
|
373
426
|
/** 提交时的表单值;文件类字段已在引擎侧脱敏 */
|
|
374
427
|
submittedValues?: unknown;
|
|
375
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* 该 run 内模型产出的一段思考正文(0.10.0 UI-UX5 #32)。
|
|
431
|
+
* 每次模型调用的思考算一段;随消息持久化,重开会话仍能看到。
|
|
432
|
+
* 模型不支持思考输出时整个数组缺省——不产空壳卡片。
|
|
433
|
+
* @experimental
|
|
434
|
+
*/
|
|
435
|
+
interface ChatThinking {
|
|
436
|
+
text: string;
|
|
437
|
+
/** 首个思考增量到达时刻(epoch ms;与工具卡片按时间穿插的排序依据) */
|
|
438
|
+
at: number;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* 该 run 的大模型用量(0.10.0 UI-UX5 #47):随消息持久化,重开会话仍可见。
|
|
442
|
+
* 上游不回报 token 用量时整个字段缺省——不显示假数据。
|
|
443
|
+
* @experimental
|
|
444
|
+
*/
|
|
445
|
+
interface ChatTokenUsage {
|
|
446
|
+
inputTokens: number;
|
|
447
|
+
outputTokens: number;
|
|
448
|
+
/** 本 run 向大模型发送请求的次数(模型调用轮数) */
|
|
449
|
+
llmCalls: number;
|
|
450
|
+
}
|
|
376
451
|
/** @stable */
|
|
377
452
|
interface ChatMessage {
|
|
378
453
|
id: string;
|
|
@@ -397,6 +472,12 @@ interface ChatMessage {
|
|
|
397
472
|
activeSkillNames?: string[];
|
|
398
473
|
/** 该 run 的工具调用序列(思维链工具行;按 trace 顺序) */
|
|
399
474
|
toolCalls?: ChatToolCall[];
|
|
475
|
+
/**
|
|
476
|
+
* 该 run 的思考段序列(0.10.0 UI-UX5 #32):渲染时与 `toolCalls` 按 `at` 归并,
|
|
477
|
+
* 多张思考卡片按时间穿插在工具卡片之间。
|
|
478
|
+
* @experimental
|
|
479
|
+
*/
|
|
480
|
+
thinkings?: ChatThinking[];
|
|
400
481
|
/**
|
|
401
482
|
* 该 run 的结果块(bridge.renderResult 的 blocks),随消息持久化。
|
|
402
483
|
* 当前 run 的块由 ResultBlocksPro 直读 bridge 渲染;历史消息按 blocks 逐条渲染(ResultBlockList)。
|
|
@@ -412,6 +493,12 @@ interface ChatMessage {
|
|
|
412
493
|
* @experimental
|
|
413
494
|
*/
|
|
414
495
|
perceptions?: PerceptionRecord[];
|
|
496
|
+
/**
|
|
497
|
+
* 该 run 的大模型用量(0.10.0 UI-UX5 #47):消息操作区图标右侧显示
|
|
498
|
+
* 输入输出合计 tokens(千分位)。上游不回报用量时缺省,不显示假数据。
|
|
499
|
+
* @experimental
|
|
500
|
+
*/
|
|
501
|
+
usage?: ChatTokenUsage;
|
|
415
502
|
/**
|
|
416
503
|
* 发出本轮请求的模型条目 id(`RuntimeConfig.llm.entries[].id`)。
|
|
417
504
|
* 写在消息上而不是会话上:切换模型只对后续消息生效,已有消息的归属不能被改写。
|
|
@@ -465,6 +552,15 @@ type ChatEvent = {
|
|
|
465
552
|
type: 'message-delta';
|
|
466
553
|
runId: string;
|
|
467
554
|
delta: string;
|
|
555
|
+
} |
|
|
556
|
+
/**
|
|
557
|
+
* 思考增量(0.10.0 UI-UX5 #32):runtime 的 thinking-delta 原样转发。
|
|
558
|
+
* 模型不产出思考时一个事件也没有;UI 据事件有无决定渲不渲染思考卡片。
|
|
559
|
+
*/
|
|
560
|
+
{
|
|
561
|
+
type: 'thinking-delta';
|
|
562
|
+
runId: string;
|
|
563
|
+
delta: string;
|
|
468
564
|
} | {
|
|
469
565
|
type: 'message-complete';
|
|
470
566
|
message: ChatMessage;
|
|
@@ -565,7 +661,8 @@ interface ChatbotConfig {
|
|
|
565
661
|
quickPrompts?: string[];
|
|
566
662
|
/**
|
|
567
663
|
* 开启后模型多一个 `render_ui` 工具,可面向 AI Component Catalog 直接生成声明式 UI。
|
|
568
|
-
* 默认关:工具描述 + 入参 schema 约
|
|
664
|
+
* 默认关:工具描述 + 入参 schema 约 34 KB,会计入每一次请求。
|
|
665
|
+
* 数字的单一来源是 `@webskill/ui` 的 `catalog/budget.ts`(实测终态 12 744 + 21 470)。
|
|
569
666
|
*
|
|
570
667
|
* 接了 `runtimeConfig` 时以 `RuntimeConfig.agentCapabilities.generativeUi` 为准
|
|
571
668
|
* (设置抽屉里的开关就是它),本字段只在未接配置存储的宿主上生效。
|
|
@@ -584,6 +681,14 @@ interface ChatbotConfig {
|
|
|
584
681
|
* `SKILL_GENERATION_DISABLED`,不弹确认框、不产生候选。
|
|
585
682
|
*/
|
|
586
683
|
skillCandidates?: SkillCandidateSink;
|
|
684
|
+
/**
|
|
685
|
+
* 宿主声明的数据源取数入口(分册 16):透传给 `ChatEngineOptions.fetchData`。
|
|
686
|
+
* 不注入即脚本上下文没有 `fetchData` 这个键。
|
|
687
|
+
*
|
|
688
|
+
* **必须是稳定引用**(模块级或 `useMemo`):它进 `ChatEngine` 的 `useMemo`
|
|
689
|
+
* 依赖表,每次渲染新建一个箭头函数会把整个引擎重建掉。
|
|
690
|
+
*/
|
|
691
|
+
fetchData?: (sourceId: string, params?: Record<string, unknown>) => Promise<unknown>;
|
|
587
692
|
}
|
|
588
693
|
//#endregion
|
|
589
694
|
//#region src/core/hostAdapter.d.ts
|
|
@@ -620,9 +725,44 @@ interface ChatbotHostAdapter {
|
|
|
620
725
|
* @experimental
|
|
621
726
|
*/
|
|
622
727
|
pageActions?: PageActionPolicy;
|
|
728
|
+
/**
|
|
729
|
+
* 读页面链接指向的文档(分册 22)。实现住在 `@webskill/browser`,
|
|
730
|
+
* 而 chatbot 不依赖它 —— 与 `pagePerception` 同一条装配规矩:宿主注入。
|
|
731
|
+
* 不注入即 `read_linked_document` 不注册。
|
|
732
|
+
*/
|
|
733
|
+
linkedDocuments?: LinkedDocumentReader;
|
|
734
|
+
/** docx → 文本(`extractDocxText`);不注入即 Word 文档明确报「本环境不支持」 */
|
|
735
|
+
docxExtractor?: DocxTextExtractor;
|
|
736
|
+
/** 文档读取留痕出口(FR-22.6) */
|
|
737
|
+
documentAudit?: {
|
|
738
|
+
append(event: {
|
|
739
|
+
type: string;
|
|
740
|
+
target: string;
|
|
741
|
+
data?: Record<string, unknown>;
|
|
742
|
+
}): Promise<unknown>;
|
|
743
|
+
};
|
|
623
744
|
}
|
|
624
745
|
//#endregion
|
|
625
746
|
//#region src/core/chatEngine.d.ts
|
|
747
|
+
/**
|
|
748
|
+
* 条目能否真的发请求:云端要有端点或密钥,浏览器内置两者都不需要。
|
|
749
|
+
*
|
|
750
|
+
* 导出给 UI:选择器不用同一份判据的话,用户能选中一个空配置条目,
|
|
751
|
+
* 而引擎静默回退到另一条——界面说在用 A、实际跑的是 B(UI-UX8 D1)。
|
|
752
|
+
* @experimental
|
|
753
|
+
*/
|
|
754
|
+
declare const isLlmEntryUsable: (entry: RuntimeLlmEntry) => boolean;
|
|
755
|
+
/**
|
|
756
|
+
* 选中条目 → 默认条目 → 首条;命中不可用条目时**回退到下一个可用条目**
|
|
757
|
+
* (0.10.0 复核:选中项失效时宁可静默换用可用模型,也不能把 UI 锁死成
|
|
758
|
+
* 「未配置」死胡同——引擎与 UI 共用同一判据,两边必须同进退)。
|
|
759
|
+
* 全部不可用才 undefined(引擎走内置演示)。
|
|
760
|
+
*
|
|
761
|
+
* 导出给 UI 复用同一判据:composer 的「未配置模型」引导判定必须与引擎的
|
|
762
|
+
* 实际挑选结果一致,否则会出现「UI 说有模型、引擎却走演示档」的错位(0.10.0 UI-UX5 #49-1)。
|
|
763
|
+
* @experimental
|
|
764
|
+
*/
|
|
765
|
+
declare function pickUsableLlmEntry(entries: readonly RuntimeLlmEntry[], defaultId: string | undefined, selectedId: string | undefined): RuntimeLlmEntry | undefined;
|
|
626
766
|
/** 默认沙箱执行器的构造参数(adapter.executor 未注入时;executorFactory 替换点可见同一形状) @stable */
|
|
627
767
|
interface SandboxExecutorDeps {
|
|
628
768
|
fs: FileSystemProvider;
|
|
@@ -666,6 +806,14 @@ interface ChatEngineOptions {
|
|
|
666
806
|
generativeUi?: boolean;
|
|
667
807
|
/** 沙箱执行器替换点(测试注入 spy 断言构造参数;缺省 BrowserWorkerScriptExecutor) */
|
|
668
808
|
executorFactory?: (deps: SandboxExecutorDeps) => ScriptExecutor;
|
|
809
|
+
/**
|
|
810
|
+
* 宿主声明的数据源取数入口(分册 16)。不注入即脚本上下文没有 `fetchData` 这个键。
|
|
811
|
+
*
|
|
812
|
+
* 装配点必须在宿主:策略本体 `DataSourcePolicy` 住在 `@webskill/agent`,
|
|
813
|
+
* 而数据源的目标地址是宿主自己的业务知识,chatbot 无从代为声明。
|
|
814
|
+
* 能力开关 `sandbox.capabilities.fetchData` 缺省关,注入了也还要宿主在配置里打开。
|
|
815
|
+
*/
|
|
816
|
+
fetchData?: (sourceId: string, params?: Record<string, unknown>) => Promise<unknown>;
|
|
669
817
|
/**
|
|
670
818
|
* 会话落盘替换点(缺省 `FsSessionStore`,落在 `<chatRoot>/sessions`)。
|
|
671
819
|
* 宕主换自己的实现(如 IndexedDB)与测试统计端口读写量都走这里。
|
|
@@ -918,6 +1066,7 @@ declare const chatbotDictionary: {
|
|
|
918
1066
|
'header.console': string;
|
|
919
1067
|
'header.theme.light': string;
|
|
920
1068
|
'header.theme.dark': string;
|
|
1069
|
+
'header.language': string;
|
|
921
1070
|
'session.title': string;
|
|
922
1071
|
'session.new': string;
|
|
923
1072
|
'session.searchPlaceholder': string;
|
|
@@ -934,6 +1083,11 @@ declare const chatbotDictionary: {
|
|
|
934
1083
|
'session.delete.confirmTitle': string;
|
|
935
1084
|
'session.delete.confirmDescription': string;
|
|
936
1085
|
'common.cancel': string;
|
|
1086
|
+
'toast.saved': string;
|
|
1087
|
+
'toast.applied': string;
|
|
1088
|
+
'toast.couldNotSave': string;
|
|
1089
|
+
'toast.undo': string;
|
|
1090
|
+
'toast.dismiss': string;
|
|
937
1091
|
'session.rename': string;
|
|
938
1092
|
'session.renameInput': string;
|
|
939
1093
|
'session.archive': string;
|
|
@@ -963,7 +1117,9 @@ declare const chatbotDictionary: {
|
|
|
963
1117
|
'message.deleted.title': string;
|
|
964
1118
|
'message.deleted.description': string;
|
|
965
1119
|
'message.viewTrace': string;
|
|
1120
|
+
'message.tokens': string;
|
|
966
1121
|
'message.skillsUsed': string;
|
|
1122
|
+
'message.skill': string;
|
|
967
1123
|
'message.edit': string;
|
|
968
1124
|
'message.editSend': string;
|
|
969
1125
|
'message.editCancel': string;
|
|
@@ -986,9 +1142,10 @@ declare const chatbotDictionary: {
|
|
|
986
1142
|
'cot.thinking': string;
|
|
987
1143
|
'cot.thought': string;
|
|
988
1144
|
'cot.summary': string;
|
|
989
|
-
'cot.reasoning': string;
|
|
990
1145
|
'cot.working': string;
|
|
1146
|
+
'thinking.title': string;
|
|
991
1147
|
'trace.title': string;
|
|
1148
|
+
'trace.flow': string;
|
|
992
1149
|
'trace.runId': string;
|
|
993
1150
|
'trace.runId.copy': string;
|
|
994
1151
|
'trace.runId.copied': string;
|
|
@@ -1034,6 +1191,7 @@ declare const chatbotDictionary: {
|
|
|
1034
1191
|
'interaction.authorize.description': string;
|
|
1035
1192
|
'interaction.authorize.capability': string;
|
|
1036
1193
|
'interaction.authorize.details': string;
|
|
1194
|
+
'skillGeneration.confirm': string;
|
|
1037
1195
|
'interaction.pageAction.click': string;
|
|
1038
1196
|
'interaction.pageAction.fill': string;
|
|
1039
1197
|
'interaction.pageAction.submit': string;
|
|
@@ -1052,6 +1210,8 @@ declare const chatbotDictionary: {
|
|
|
1052
1210
|
'surface.removeItem': string;
|
|
1053
1211
|
'surface.arrayFirstItemOnly': string;
|
|
1054
1212
|
'surface.readOnlySnapshot': string;
|
|
1213
|
+
'surface.suggested': string;
|
|
1214
|
+
'surface.useSuggestion': string;
|
|
1055
1215
|
'interaction.wait': string;
|
|
1056
1216
|
'interaction.wait.inPanel': string;
|
|
1057
1217
|
'interaction.wait.fallback': string;
|
|
@@ -1081,15 +1241,21 @@ declare const chatbotDictionary: {
|
|
|
1081
1241
|
'composer.attachment.kind.text': string;
|
|
1082
1242
|
'composer.attachment.kind.image': string;
|
|
1083
1243
|
'composer.attachment.kind.file': string;
|
|
1244
|
+
'composer.attachment.kind.document-text': string;
|
|
1084
1245
|
'composer.attachment.compressed': string;
|
|
1085
1246
|
'composer.model': string;
|
|
1247
|
+
'composer.model.unconfigured': string;
|
|
1086
1248
|
'composer.model.demo': string;
|
|
1249
|
+
'composer.noModel.title': string;
|
|
1250
|
+
'composer.noModel.description': string;
|
|
1251
|
+
'composer.noModel.configure': string;
|
|
1087
1252
|
'capability.group': string;
|
|
1088
1253
|
'composer.pageCapture': string;
|
|
1089
1254
|
'composer.pageCapture.disabled.setting': string;
|
|
1090
1255
|
'composer.pageCapture.disabled.model': string;
|
|
1091
1256
|
'composer.addAttachment.imagesOff': string;
|
|
1092
1257
|
'composer.addAttachment.modelNoImages': string;
|
|
1258
|
+
'attachment.imagesDropped': string;
|
|
1093
1259
|
'composer.dictate': string;
|
|
1094
1260
|
'composer.dictate.stop': string;
|
|
1095
1261
|
'composer.dictate.recording': string;
|
|
@@ -1239,6 +1405,7 @@ declare const chatbotDictionary: {
|
|
|
1239
1405
|
'header.console': string;
|
|
1240
1406
|
'header.theme.light': string;
|
|
1241
1407
|
'header.theme.dark': string;
|
|
1408
|
+
'header.language': string;
|
|
1242
1409
|
'session.title': string;
|
|
1243
1410
|
'session.new': string;
|
|
1244
1411
|
'session.searchPlaceholder': string;
|
|
@@ -1255,6 +1422,11 @@ declare const chatbotDictionary: {
|
|
|
1255
1422
|
'session.delete.confirmTitle': string;
|
|
1256
1423
|
'session.delete.confirmDescription': string;
|
|
1257
1424
|
'common.cancel': string;
|
|
1425
|
+
'toast.saved': string;
|
|
1426
|
+
'toast.applied': string;
|
|
1427
|
+
'toast.couldNotSave': string;
|
|
1428
|
+
'toast.undo': string;
|
|
1429
|
+
'toast.dismiss': string;
|
|
1258
1430
|
'session.rename': string;
|
|
1259
1431
|
'session.renameInput': string;
|
|
1260
1432
|
'session.archive': string;
|
|
@@ -1287,7 +1459,9 @@ declare const chatbotDictionary: {
|
|
|
1287
1459
|
'message.deleted.title': string;
|
|
1288
1460
|
'message.deleted.description': string;
|
|
1289
1461
|
'message.viewTrace': string;
|
|
1462
|
+
'message.tokens': string;
|
|
1290
1463
|
'message.skillsUsed': string;
|
|
1464
|
+
'message.skill': string;
|
|
1291
1465
|
'capability.tools.on': string;
|
|
1292
1466
|
'capability.tools.off': string;
|
|
1293
1467
|
'capability.images.on': string;
|
|
@@ -1307,9 +1481,10 @@ declare const chatbotDictionary: {
|
|
|
1307
1481
|
'cot.thinking': string;
|
|
1308
1482
|
'cot.thought': string;
|
|
1309
1483
|
'cot.summary': string;
|
|
1310
|
-
'cot.reasoning': string;
|
|
1311
1484
|
'cot.working': string;
|
|
1485
|
+
'thinking.title': string;
|
|
1312
1486
|
'trace.title': string;
|
|
1487
|
+
'trace.flow': string;
|
|
1313
1488
|
'trace.runId': string;
|
|
1314
1489
|
'trace.runId.copy': string;
|
|
1315
1490
|
'trace.runId.copied': string;
|
|
@@ -1355,6 +1530,7 @@ declare const chatbotDictionary: {
|
|
|
1355
1530
|
'interaction.authorize.description': string;
|
|
1356
1531
|
'interaction.authorize.capability': string;
|
|
1357
1532
|
'interaction.authorize.details': string;
|
|
1533
|
+
'skillGeneration.confirm': string;
|
|
1358
1534
|
'interaction.pageAction.click': string;
|
|
1359
1535
|
'interaction.pageAction.fill': string;
|
|
1360
1536
|
'interaction.pageAction.submit': string;
|
|
@@ -1373,6 +1549,8 @@ declare const chatbotDictionary: {
|
|
|
1373
1549
|
'surface.removeItem': string;
|
|
1374
1550
|
'surface.arrayFirstItemOnly': string;
|
|
1375
1551
|
'surface.readOnlySnapshot': string;
|
|
1552
|
+
'surface.suggested': string;
|
|
1553
|
+
'surface.useSuggestion': string;
|
|
1376
1554
|
'interaction.wait': string;
|
|
1377
1555
|
'interaction.wait.inPanel': string;
|
|
1378
1556
|
'interaction.wait.fallback': string;
|
|
@@ -1402,15 +1580,21 @@ declare const chatbotDictionary: {
|
|
|
1402
1580
|
'composer.attachment.kind.text': string;
|
|
1403
1581
|
'composer.attachment.kind.image': string;
|
|
1404
1582
|
'composer.attachment.kind.file': string;
|
|
1583
|
+
'composer.attachment.kind.document-text': string;
|
|
1405
1584
|
'composer.attachment.compressed': string;
|
|
1406
1585
|
'composer.model': string;
|
|
1586
|
+
'composer.model.unconfigured': string;
|
|
1407
1587
|
'composer.model.demo': string;
|
|
1588
|
+
'composer.noModel.title': string;
|
|
1589
|
+
'composer.noModel.description': string;
|
|
1590
|
+
'composer.noModel.configure': string;
|
|
1408
1591
|
'capability.group': string;
|
|
1409
1592
|
'composer.pageCapture': string;
|
|
1410
1593
|
'composer.pageCapture.disabled.setting': string;
|
|
1411
1594
|
'composer.pageCapture.disabled.model': string;
|
|
1412
1595
|
'composer.addAttachment.imagesOff': string;
|
|
1413
1596
|
'composer.addAttachment.modelNoImages': string;
|
|
1597
|
+
'attachment.imagesDropped': string;
|
|
1414
1598
|
'composer.dictate': string;
|
|
1415
1599
|
'composer.dictate.stop': string;
|
|
1416
1600
|
'composer.dictate.recording': string;
|
|
@@ -1563,6 +1747,7 @@ declare const useT: () => TranslateFn<{
|
|
|
1563
1747
|
'header.console': string;
|
|
1564
1748
|
'header.theme.light': string;
|
|
1565
1749
|
'header.theme.dark': string;
|
|
1750
|
+
'header.language': string;
|
|
1566
1751
|
'session.title': string;
|
|
1567
1752
|
'session.new': string;
|
|
1568
1753
|
'session.searchPlaceholder': string;
|
|
@@ -1579,6 +1764,11 @@ declare const useT: () => TranslateFn<{
|
|
|
1579
1764
|
'session.delete.confirmTitle': string;
|
|
1580
1765
|
'session.delete.confirmDescription': string;
|
|
1581
1766
|
'common.cancel': string;
|
|
1767
|
+
'toast.saved': string;
|
|
1768
|
+
'toast.applied': string;
|
|
1769
|
+
'toast.couldNotSave': string;
|
|
1770
|
+
'toast.undo': string;
|
|
1771
|
+
'toast.dismiss': string;
|
|
1582
1772
|
'session.rename': string;
|
|
1583
1773
|
'session.renameInput': string;
|
|
1584
1774
|
'session.archive': string;
|
|
@@ -1608,7 +1798,9 @@ declare const useT: () => TranslateFn<{
|
|
|
1608
1798
|
'message.deleted.title': string;
|
|
1609
1799
|
'message.deleted.description': string;
|
|
1610
1800
|
'message.viewTrace': string;
|
|
1801
|
+
'message.tokens': string;
|
|
1611
1802
|
'message.skillsUsed': string;
|
|
1803
|
+
'message.skill': string;
|
|
1612
1804
|
'message.edit': string;
|
|
1613
1805
|
'message.editSend': string;
|
|
1614
1806
|
'message.editCancel': string;
|
|
@@ -1631,9 +1823,10 @@ declare const useT: () => TranslateFn<{
|
|
|
1631
1823
|
'cot.thinking': string;
|
|
1632
1824
|
'cot.thought': string;
|
|
1633
1825
|
'cot.summary': string;
|
|
1634
|
-
'cot.reasoning': string;
|
|
1635
1826
|
'cot.working': string;
|
|
1827
|
+
'thinking.title': string;
|
|
1636
1828
|
'trace.title': string;
|
|
1829
|
+
'trace.flow': string;
|
|
1637
1830
|
'trace.runId': string;
|
|
1638
1831
|
'trace.runId.copy': string;
|
|
1639
1832
|
'trace.runId.copied': string;
|
|
@@ -1679,6 +1872,7 @@ declare const useT: () => TranslateFn<{
|
|
|
1679
1872
|
'interaction.authorize.description': string;
|
|
1680
1873
|
'interaction.authorize.capability': string;
|
|
1681
1874
|
'interaction.authorize.details': string;
|
|
1875
|
+
'skillGeneration.confirm': string;
|
|
1682
1876
|
'interaction.pageAction.click': string;
|
|
1683
1877
|
'interaction.pageAction.fill': string;
|
|
1684
1878
|
'interaction.pageAction.submit': string;
|
|
@@ -1697,6 +1891,8 @@ declare const useT: () => TranslateFn<{
|
|
|
1697
1891
|
'surface.removeItem': string;
|
|
1698
1892
|
'surface.arrayFirstItemOnly': string;
|
|
1699
1893
|
'surface.readOnlySnapshot': string;
|
|
1894
|
+
'surface.suggested': string;
|
|
1895
|
+
'surface.useSuggestion': string;
|
|
1700
1896
|
'interaction.wait': string;
|
|
1701
1897
|
'interaction.wait.inPanel': string;
|
|
1702
1898
|
'interaction.wait.fallback': string;
|
|
@@ -1726,15 +1922,21 @@ declare const useT: () => TranslateFn<{
|
|
|
1726
1922
|
'composer.attachment.kind.text': string;
|
|
1727
1923
|
'composer.attachment.kind.image': string;
|
|
1728
1924
|
'composer.attachment.kind.file': string;
|
|
1925
|
+
'composer.attachment.kind.document-text': string;
|
|
1729
1926
|
'composer.attachment.compressed': string;
|
|
1730
1927
|
'composer.model': string;
|
|
1928
|
+
'composer.model.unconfigured': string;
|
|
1731
1929
|
'composer.model.demo': string;
|
|
1930
|
+
'composer.noModel.title': string;
|
|
1931
|
+
'composer.noModel.description': string;
|
|
1932
|
+
'composer.noModel.configure': string;
|
|
1732
1933
|
'capability.group': string;
|
|
1733
1934
|
'composer.pageCapture': string;
|
|
1734
1935
|
'composer.pageCapture.disabled.setting': string;
|
|
1735
1936
|
'composer.pageCapture.disabled.model': string;
|
|
1736
1937
|
'composer.addAttachment.imagesOff': string;
|
|
1737
1938
|
'composer.addAttachment.modelNoImages': string;
|
|
1939
|
+
'attachment.imagesDropped': string;
|
|
1738
1940
|
'composer.dictate': string;
|
|
1739
1941
|
'composer.dictate.stop': string;
|
|
1740
1942
|
'composer.dictate.recording': string;
|
|
@@ -1884,6 +2086,7 @@ declare const useT: () => TranslateFn<{
|
|
|
1884
2086
|
'header.console': string;
|
|
1885
2087
|
'header.theme.light': string;
|
|
1886
2088
|
'header.theme.dark': string;
|
|
2089
|
+
'header.language': string;
|
|
1887
2090
|
'session.title': string;
|
|
1888
2091
|
'session.new': string;
|
|
1889
2092
|
'session.searchPlaceholder': string;
|
|
@@ -1900,6 +2103,11 @@ declare const useT: () => TranslateFn<{
|
|
|
1900
2103
|
'session.delete.confirmTitle': string;
|
|
1901
2104
|
'session.delete.confirmDescription': string;
|
|
1902
2105
|
'common.cancel': string;
|
|
2106
|
+
'toast.saved': string;
|
|
2107
|
+
'toast.applied': string;
|
|
2108
|
+
'toast.couldNotSave': string;
|
|
2109
|
+
'toast.undo': string;
|
|
2110
|
+
'toast.dismiss': string;
|
|
1903
2111
|
'session.rename': string;
|
|
1904
2112
|
'session.renameInput': string;
|
|
1905
2113
|
'session.archive': string;
|
|
@@ -1932,7 +2140,9 @@ declare const useT: () => TranslateFn<{
|
|
|
1932
2140
|
'message.deleted.title': string;
|
|
1933
2141
|
'message.deleted.description': string;
|
|
1934
2142
|
'message.viewTrace': string;
|
|
2143
|
+
'message.tokens': string;
|
|
1935
2144
|
'message.skillsUsed': string;
|
|
2145
|
+
'message.skill': string;
|
|
1936
2146
|
'capability.tools.on': string;
|
|
1937
2147
|
'capability.tools.off': string;
|
|
1938
2148
|
'capability.images.on': string;
|
|
@@ -1952,9 +2162,10 @@ declare const useT: () => TranslateFn<{
|
|
|
1952
2162
|
'cot.thinking': string;
|
|
1953
2163
|
'cot.thought': string;
|
|
1954
2164
|
'cot.summary': string;
|
|
1955
|
-
'cot.reasoning': string;
|
|
1956
2165
|
'cot.working': string;
|
|
2166
|
+
'thinking.title': string;
|
|
1957
2167
|
'trace.title': string;
|
|
2168
|
+
'trace.flow': string;
|
|
1958
2169
|
'trace.runId': string;
|
|
1959
2170
|
'trace.runId.copy': string;
|
|
1960
2171
|
'trace.runId.copied': string;
|
|
@@ -2000,6 +2211,7 @@ declare const useT: () => TranslateFn<{
|
|
|
2000
2211
|
'interaction.authorize.description': string;
|
|
2001
2212
|
'interaction.authorize.capability': string;
|
|
2002
2213
|
'interaction.authorize.details': string;
|
|
2214
|
+
'skillGeneration.confirm': string;
|
|
2003
2215
|
'interaction.pageAction.click': string;
|
|
2004
2216
|
'interaction.pageAction.fill': string;
|
|
2005
2217
|
'interaction.pageAction.submit': string;
|
|
@@ -2018,6 +2230,8 @@ declare const useT: () => TranslateFn<{
|
|
|
2018
2230
|
'surface.removeItem': string;
|
|
2019
2231
|
'surface.arrayFirstItemOnly': string;
|
|
2020
2232
|
'surface.readOnlySnapshot': string;
|
|
2233
|
+
'surface.suggested': string;
|
|
2234
|
+
'surface.useSuggestion': string;
|
|
2021
2235
|
'interaction.wait': string;
|
|
2022
2236
|
'interaction.wait.inPanel': string;
|
|
2023
2237
|
'interaction.wait.fallback': string;
|
|
@@ -2047,15 +2261,21 @@ declare const useT: () => TranslateFn<{
|
|
|
2047
2261
|
'composer.attachment.kind.text': string;
|
|
2048
2262
|
'composer.attachment.kind.image': string;
|
|
2049
2263
|
'composer.attachment.kind.file': string;
|
|
2264
|
+
'composer.attachment.kind.document-text': string;
|
|
2050
2265
|
'composer.attachment.compressed': string;
|
|
2051
2266
|
'composer.model': string;
|
|
2267
|
+
'composer.model.unconfigured': string;
|
|
2052
2268
|
'composer.model.demo': string;
|
|
2269
|
+
'composer.noModel.title': string;
|
|
2270
|
+
'composer.noModel.description': string;
|
|
2271
|
+
'composer.noModel.configure': string;
|
|
2053
2272
|
'capability.group': string;
|
|
2054
2273
|
'composer.pageCapture': string;
|
|
2055
2274
|
'composer.pageCapture.disabled.setting': string;
|
|
2056
2275
|
'composer.pageCapture.disabled.model': string;
|
|
2057
2276
|
'composer.addAttachment.imagesOff': string;
|
|
2058
2277
|
'composer.addAttachment.modelNoImages': string;
|
|
2278
|
+
'attachment.imagesDropped': string;
|
|
2059
2279
|
'composer.dictate': string;
|
|
2060
2280
|
'composer.dictate.stop': string;
|
|
2061
2281
|
'composer.dictate.recording': string;
|
|
@@ -2228,7 +2448,7 @@ interface AppearanceChange {
|
|
|
2228
2448
|
* 不在其中(AC-20.7 按「无未覆盖的配置类 leaf」执行,见偏差 D-15)。
|
|
2229
2449
|
* @experimental
|
|
2230
2450
|
*/
|
|
2231
|
-
type SettingsSectionId = 'settings.runtime' | 'settings.sandbox' | 'settings.genui' | 'settings.trust' | 'settings.privacy' | 'settings.appearance' | 'connections.models' | 'connections.page' | 'connections.mcp';
|
|
2451
|
+
type SettingsSectionId = 'settings.runtime' | 'settings.sandbox' | 'settings.genui' | 'settings.trust' | 'settings.privacy' | 'settings.appearance' | 'connections.models' | 'connections.webmcp' | 'connections.page' | 'connections.mcp';
|
|
2232
2452
|
//#endregion
|
|
2233
2453
|
//#region src/react/useChatLayout.d.ts
|
|
2234
2454
|
/** 宿主可指定的布局档;auto 按容器尺寸判定 @stable */
|
|
@@ -2242,11 +2462,12 @@ interface ChatbotProps {
|
|
|
2242
2462
|
adapter: ChatbotHostAdapter;
|
|
2243
2463
|
config?: ChatbotConfig;
|
|
2244
2464
|
/**
|
|
2245
|
-
* 界面语言(默认 '
|
|
2465
|
+
* 界面语言(默认 'zh',0.10.0 UI-UX5 #1:SDK 缺省中文)。
|
|
2466
|
+
* **传了 `config.runtimeConfig` 时本属性被忽略**:
|
|
2246
2467
|
* 0.6.0 起外观配置的唯一真值源是配置存储(FR-20.1)。
|
|
2247
2468
|
*/
|
|
2248
2469
|
locale?: Locale;
|
|
2249
|
-
/** 主题(默认 '
|
|
2470
|
+
/** 主题(默认 'dark',0.10.0 UI-UX5 #1:SDK 缺省深色)。同上:有配置源时被忽略 */
|
|
2250
2471
|
theme?: ChatTheme;
|
|
2251
2472
|
/** 交互渲染框架档(默认 'native';'a2ui' 需宿主安装 optional peer @a2ui/lit) */
|
|
2252
2473
|
renderer?: RendererKind;
|
|
@@ -2256,7 +2477,6 @@ interface ChatbotProps {
|
|
|
2256
2477
|
surfaceRegistry?: SurfaceRegistry;
|
|
2257
2478
|
/** 布局档(默认 'auto':按容器尺寸在 fullscreen / embedded / mobile 之间判定) */
|
|
2258
2479
|
layout?: ChatLayout;
|
|
2259
|
-
onAppearanceChange?(next: AppearanceChange): void;
|
|
2260
2480
|
/**
|
|
2261
2481
|
* 打开配置面(FR-20.4)。配置面本身已迁到 console,chatbot 只负责发出这个请求;
|
|
2262
2482
|
* 宿主不接就不渲染任何「打开设置」出口——给一个点了没反应的按钮更糟。
|
|
@@ -2274,7 +2494,7 @@ interface ChatbotProps {
|
|
|
2274
2494
|
* presentation shell and accessible thread primitives.
|
|
2275
2495
|
* @stable
|
|
2276
2496
|
*/
|
|
2277
|
-
declare function Chatbot({ adapter, config, locale: localeProp, theme: themeProp, renderer: rendererProp, dictationLang: dictationLangProp, surfaceRegistry, layout,
|
|
2497
|
+
declare function Chatbot({ adapter, config, locale: localeProp, theme: themeProp, renderer: rendererProp, dictationLang: dictationLangProp, surfaceRegistry, layout, onOpenSettings, onEngineReady }: ChatbotProps): import("react").JSX.Element;
|
|
2278
2498
|
//#endregion
|
|
2279
2499
|
//#region src/react/A2uiSurfaceHost.d.ts
|
|
2280
2500
|
/** @experimental */
|
|
@@ -2458,6 +2678,6 @@ declare function ErrorCard({ code, message, loopLimits, onOpenSettings, onDismis
|
|
|
2458
2678
|
* Version of the published `@webskill/chatbot` package, injected at build time.
|
|
2459
2679
|
* @stable
|
|
2460
2680
|
*/
|
|
2461
|
-
declare const CHATBOT_VERSION = "0.
|
|
2681
|
+
declare const CHATBOT_VERSION = "0.8.0";
|
|
2462
2682
|
//#endregion
|
|
2463
|
-
export { A2uiSurfaceHost, type A2uiSurfaceHostProps, A2uiSurfaceSnapshotHost, type A2uiSurfaceSnapshotHostProps, type AppearanceChange, CHATBOT_VERSION, 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, type SettingsSectionId, SkillBadges, SpecInteraction, type SpecInteractionProps, VercelPayloadPreview, type VercelPayloadPreviewProps, VercelSurfaceHost, type VercelSurfaceHostProps, VercelSurfaceSnapshotHost, type VercelSurfaceSnapshotHostProps, chatbotDictionary, configureA2uiMarkdown, createLocalStorageRuntimeConfigStore, createMemoryRuntimeConfigStore, probeA2uiAvailability, probeOpenUiAvailability, sandboxExecutorDeps, useT };
|
|
2683
|
+
export { A2uiSurfaceHost, type A2uiSurfaceHostProps, A2uiSurfaceSnapshotHost, type A2uiSurfaceSnapshotHostProps, type AppearanceChange, CHATBOT_VERSION, type ChatAttachmentInput, type ChatAttachmentMeta, ChatEngine, type ChatEngineOptions, type ChatEvent, type ChatInteractionRecord, type ChatLayout, type ChatMessage, type ChatRunPhase, type ChatSessionListResult, type ChatSessionMeta, type ChatTheme, type ChatThinking, type ChatTokenUsage, 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, type SettingsSectionId, SkillBadges, SpecInteraction, type SpecInteractionProps, VercelPayloadPreview, type VercelPayloadPreviewProps, VercelSurfaceHost, type VercelSurfaceHostProps, VercelSurfaceSnapshotHost, type VercelSurfaceSnapshotHostProps, chatbotDictionary, configureA2uiMarkdown, createLocalStorageRuntimeConfigStore, createMemoryRuntimeConfigStore, isLlmEntryUsable, pickUsableLlmEntry, probeA2uiAvailability, probeOpenUiAvailability, sandboxExecutorDeps, useT };
|