@blade-hq/agent-react 2612.0.0-beta.7 → 2612.0.0-beta.71
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 +33 -0
- package/dist/chat/AgentLoopBlock.d.ts +0 -2
- package/dist/chat/AskUserQuestionBlock.d.ts +3 -20
- package/dist/chat/AssistantTurnBlock.d.ts +1 -9
- package/dist/chat/AttachmentPreviewDialog.d.ts +0 -1
- package/dist/chat/ChatLoadingIndicator.d.ts +7 -0
- package/dist/chat/ContextAttachmentPills.d.ts +4 -0
- package/dist/chat/CurrentPlanPanel.d.ts +0 -3
- package/dist/chat/FileDeliveryCards.d.ts +0 -4
- package/dist/chat/FinalArtifactCards.d.ts +0 -1
- package/dist/chat/ImageLightbox.d.ts +1 -1
- package/dist/chat/LiteMessageList.d.ts +1 -3
- package/dist/chat/MessageFileAttachmentList.d.ts +0 -5
- package/dist/chat/QuestionnaireQuestionBlock.d.ts +11 -0
- package/dist/chat/SessionReplayBar.d.ts +0 -1
- package/dist/chat/TextAttachmentPills.d.ts +0 -3
- package/dist/chat/TurnNavRail.d.ts +0 -3
- package/dist/chat/WorkflowRunBlock.d.ts +21 -4
- package/dist/chat/ai-elements/shimmer.d.ts +0 -4
- package/dist/chat/customization.d.ts +1 -1
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/markdown/ExternalAnchor.d.ts +2 -2
- package/dist/chat/markdown/MarkdownContent.d.ts +3 -0
- package/dist/chat/message-list-blocks.d.ts +0 -1
- package/dist/chat/runtime/actions.d.ts +2 -2
- package/dist/chat/runtime/background-task-dismissals.d.ts +0 -1
- package/dist/chat/runtime/composer-channels.d.ts +0 -3
- package/dist/chat/runtime/input-cache-reset.d.ts +0 -5
- package/dist/chat/runtime/input-services.d.ts +10 -0
- package/dist/chat/runtime/session-source.d.ts +0 -5
- package/dist/chat/runtime/use-chat-actions.d.ts +0 -4
- package/dist/{chat-OCLOVB3H.css → chat-IHPRU35X.css} +5 -18
- package/dist/chat.css +5 -18
- package/dist/{chunk-MERN5XEM.js → chunk-2DPLLZOU.js} +2162 -13284
- package/dist/chunk-2DPLLZOU.js.map +1 -0
- package/dist/chunk-7MCGQH34.js +605 -0
- package/dist/chunk-7MCGQH34.js.map +1 -0
- package/dist/{chunk-67GHJQK5.js → chunk-HCW7SI5Q.js} +3897 -26116
- package/dist/chunk-HCW7SI5Q.js.map +1 -0
- package/dist/chunk-J72ZLILV.js +2317 -0
- package/dist/chunk-J72ZLILV.js.map +1 -0
- package/dist/chunk-QIR73CES.js +7917 -0
- package/dist/chunk-QIR73CES.js.map +1 -0
- package/dist/chunk-WRIMPZPN.js +4031 -0
- package/dist/chunk-WRIMPZPN.js.map +1 -0
- package/dist/chunk-XJ6ZA6LN.js +9480 -0
- package/dist/chunk-XJ6ZA6LN.js.map +1 -0
- package/dist/chunk-XP6T6SHZ.js +13622 -0
- package/dist/chunk-XP6T6SHZ.js.map +1 -0
- package/dist/components/AccountConnectors.d.ts +13 -0
- package/dist/components/BrowserConnectionDialog.d.ts +7 -0
- package/dist/components/ChatInput.d.ts +1 -15
- package/dist/components/ConnectorAuthorizationProgress.d.ts +6 -0
- package/dist/components/ConnectorConnection.d.ts +4 -0
- package/dist/components/ConnectorPanel.d.ts +3 -1
- package/dist/components/ConnectorRuntimeDiagnostics.d.ts +5 -0
- package/dist/components/DeviceConnection.d.ts +15 -0
- package/dist/components/FeishuCapabilitySelection.d.ts +14 -0
- package/dist/components/FeishuPermissionStatus.d.ts +5 -0
- package/dist/components/LlmAdvancedSettings.d.ts +0 -1
- package/dist/components/ManagedConnection.d.ts +9 -0
- package/dist/components/McpAppFrame.d.ts +17 -0
- package/dist/components/PlanUpdateBlock.d.ts +0 -1
- package/dist/components/SessionPluginConfigForm.d.ts +3 -1
- package/dist/components/SessionPluginIcon.d.ts +1 -0
- package/dist/components/plugin-connector.d.ts +1 -0
- package/dist/connectors.d.ts +2 -0
- package/dist/connectors.js +11 -0
- package/dist/connectors.js.map +1 -0
- package/dist/embed/blade-chat-element.d.ts +0 -8
- package/dist/embed/entry.d.ts +8 -19
- package/dist/hooks/use-message-pin.d.ts +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +14 -3
- package/dist/internal.d.ts +6 -2
- package/dist/internal.js +49 -70
- package/dist/internal.js.map +1 -1
- package/dist/lib/message-shortcuts.d.ts +5 -0
- package/dist/questions.d.ts +7 -0
- package/dist/questions.js +908 -0
- package/dist/questions.js.map +1 -0
- package/dist/rich-input/ConnectButton.d.ts +7 -5
- package/dist/rich-input/FileCompletionMenu.d.ts +1 -2
- package/dist/rich-input/InputActionSubmenu.d.ts +10 -0
- package/dist/rich-input/SkillActionMenu.d.ts +10 -0
- package/dist/rich-input/SkillStatusBar.d.ts +0 -6
- package/dist/rich-input/extensions/skill-mention.d.ts +3 -20
- package/dist/rich-input/index.d.ts +3 -2
- package/dist/rich-input/lib/composer-content.d.ts +5 -1
- package/dist/rich-input/lib/plugin-suggestions.d.ts +5 -5
- package/dist/rich-input/lib/reference-candidates.d.ts +0 -1
- package/dist/rich-input/lib/skill-suggestions.d.ts +1 -1
- package/dist/rich-input/lib/user-home.d.ts +0 -17
- package/dist/rich-input/services.d.ts +1 -1
- package/dist/rich-input/voice/VoiceWaveform.d.ts +0 -3
- package/dist/rich-input.js +768 -1065
- package/dist/rich-input.js.map +1 -1
- package/dist/style.css +16 -55
- package/dist/style.full.css +23 -77
- package/dist/tool-details.d.ts +8 -0
- package/dist/tool-details.js +24 -0
- package/dist/tool-details.js.map +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/LICENSE +216 -0
- package/node_modules/@modelcontextprotocol/ext-apps/README.md +284 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/docs/patterns.d.ts +9 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app-bridge.d.ts +1348 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app-bridge.examples.d.ts +9 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app-bridge.js +39 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app-bridge.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app-with-deps.js +82 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app.d.ts +1214 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app.examples.d.ts +9 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app.js +39 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/app.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/constants.d.ts +65 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/events.d.ts +47 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/events.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/generated/schema.d.ts +1047 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/generated/schema.json +6170 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/generated/schema.test.d.ts +41 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/interop-v1.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/legacy-handlers.d.ts +66 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/legacy-handlers.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/message-transport.d.ts +126 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/message-transport.examples.d.ts +9 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/message-transport.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/index.d.ts +37 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/index.examples.d.ts +6 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/index.js +39 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/react-with-deps.js +82 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useApp.d.ts +115 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useApp.examples.d.ts +6 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useAutoResize.d.ts +54 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useAutoResize.examples.d.ts +6 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useDocumentTheme.d.ts +44 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useDocumentTheme.examples.d.ts +6 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useHostStyles.d.ts +113 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/useHostStyles.examples.d.ts +6 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/server/index.d.ts +381 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/server/index.examples.d.ts +9 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/server/index.js +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/server/index.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/spec.types.d.ts +698 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/standard-schema.d.ts +23 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/styles.d.ts +184 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/styles.examples.d.ts +9 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/types.d.ts +33 -0
- package/node_modules/@modelcontextprotocol/ext-apps/dist/src/wire-compat.test.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/ext-apps/package.json +144 -0
- package/node_modules/@standard-schema/spec/LICENSE +21 -0
- package/node_modules/@standard-schema/spec/README.md +198 -0
- package/node_modules/@standard-schema/spec/dist/index.cjs +18 -0
- package/node_modules/@standard-schema/spec/dist/index.d.cts +119 -0
- package/node_modules/@standard-schema/spec/dist/index.d.ts +119 -0
- package/node_modules/@standard-schema/spec/dist/index.js +0 -0
- package/node_modules/@standard-schema/spec/package.json +52 -0
- package/package.json +19 -3
- package/public-api.md +16 -4
- package/dist/chunk-67GHJQK5.js.map +0 -1
- package/dist/chunk-DPDXGYGM.js +0 -258
- package/dist/chunk-DPDXGYGM.js.map +0 -1
- package/dist/chunk-MERN5XEM.js.map +0 -1
- package/dist/lib/agent-computer-command.d.ts +0 -32
- package/dist/rich-input/extensions/workflow-mention.d.ts +0 -10
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AccountConnector, BladeClient } from "@blade-hq/agent-client/internal";
|
|
2
|
+
export declare function AccountConnectors({ client, query, sessionId, pending, onUse, onSelectedChange, disabledReason, catalog, manage, onEdit }: {
|
|
3
|
+
client: BladeClient;
|
|
4
|
+
query?: string;
|
|
5
|
+
sessionId?: string | null;
|
|
6
|
+
pending?: Set<string>;
|
|
7
|
+
onUse?: (name: string, label: string, enabled: boolean, icon?: string | null) => Promise<void>;
|
|
8
|
+
onSelectedChange?: (items: AccountConnector[]) => void;
|
|
9
|
+
disabledReason?: string | null;
|
|
10
|
+
manage?: boolean;
|
|
11
|
+
onEdit?: (item: AccountConnector) => void;
|
|
12
|
+
catalog?: boolean;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BladeClient } from "@blade-hq/agent-client";
|
|
2
|
+
export declare function BrowserConnectionDialog({ client, name, label, onClose }: {
|
|
3
|
+
client: BladeClient;
|
|
4
|
+
name: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,31 +1,17 @@
|
|
|
1
1
|
import { type KeyboardEvent } from "react";
|
|
2
2
|
interface Props {
|
|
3
|
-
/** 受控输入内容(由 ChatView 持有,便于 attach/insertText 注入)。 */
|
|
4
3
|
value: string;
|
|
5
4
|
onValueChange: (value: string) => void;
|
|
6
|
-
onSend: (text: string) => boolean | Promise<boolean>;
|
|
5
|
+
onSend: (text: string, queueWhenRunning?: boolean) => boolean | Promise<boolean>;
|
|
7
6
|
onStop: () => void;
|
|
8
7
|
isStreaming: boolean;
|
|
9
8
|
isStopping?: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* 宿主是否渲染了队列面板。没有面板时不给"运行中提交"入口:消息进了队列却看不见,
|
|
12
|
-
* 比明确提示用户等一等更糟。ChatSurface 按 queuePanel 是否存在传入。
|
|
13
|
-
*/
|
|
14
9
|
queueWhileRunning?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* 上方紧贴着一个比自己窄的面板(队列面板)时置 true:上两角改直角。
|
|
17
|
-
*
|
|
18
|
-
* 面板比输入框窄一圈,输入框上角留圆弧的话,那两段弧会从面板两侧露出来,
|
|
19
|
-
* 看着就是两个尖角。跟内置 Web 的 ChatInput 是同一个判据。
|
|
20
|
-
*/
|
|
21
10
|
mergesWithPanelAbove?: boolean;
|
|
22
11
|
placeholder?: string;
|
|
23
12
|
className?: string;
|
|
24
|
-
/** 输入框卡片(`.blade-chat-input-inner`):边框、圆角、底色在这里。 */
|
|
25
13
|
innerClassName?: string;
|
|
26
|
-
/** 文本输入框(`.blade-chat-textarea`)。 */
|
|
27
14
|
textareaClassName?: string;
|
|
28
|
-
/** 右侧按钮组(`.blade-chat-input-toolbar`)。 */
|
|
29
15
|
toolbarClassName?: string;
|
|
30
16
|
queueKey?: string;
|
|
31
17
|
hasAttachments?: boolean;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ConnectorAuthorization } from "@blade-hq/agent-client";
|
|
2
|
+
export declare function ConnectorAuthorizationProgress({ result, onCheck, busy }: {
|
|
3
|
+
result: ConnectorAuthorization["authorization_result"];
|
|
4
|
+
onCheck: () => void;
|
|
5
|
+
busy: boolean;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -25,6 +25,8 @@ export interface ConnectorPanelProps {
|
|
|
25
25
|
onSelectedChange?: (items: PluginConnectorItem[]) => void;
|
|
26
26
|
/** 宿主注入:电脑分区。参数是搜索词,宿主自己决定怎么过滤。 */
|
|
27
27
|
renderComputerSection?: (query: string) => ReactNode;
|
|
28
|
+
/** 宿主注入:手机分区,渲染在电脑下面。参数是搜索词。 */
|
|
29
|
+
renderPhoneSection?: (query: string) => ReactNode;
|
|
28
30
|
/** 宿主注入:外部账号分区(飞书 / GitHub 等固定连接入口)。 */
|
|
29
31
|
renderExternalAccounts?: (query: string) => ReactNode;
|
|
30
32
|
/** 宿主注入:底部操作区;不注入就不渲染这一块。 */
|
|
@@ -38,4 +40,4 @@ export interface ConnectorPanelProps {
|
|
|
38
40
|
* 判定不各写一份。电脑与外部账号由宿主注入——那些入口需要宿主的路由与 CLI
|
|
39
41
|
* 引导,SDK 不硬编码内部路径,也不替第三方决定跳到哪里。
|
|
40
42
|
*/
|
|
41
|
-
export declare function ConnectorPanel({ client, sessionId, pendingPlugins, onPendingPluginsChange, pendingDisabledReason, onPluginsChanged, onSelectedChange, renderComputerSection, renderExternalAccounts, renderFooterActions, className, }: ConnectorPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
export declare function ConnectorPanel({ client, sessionId, pendingPlugins, onPendingPluginsChange, pendingDisabledReason, onPluginsChanged, onSelectedChange, renderComputerSection, renderPhoneSection, renderExternalAccounts, renderFooterActions, className, }: ConnectorPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ConnectorRuntimeDiagnostics as Runtime } from "@blade-hq/agent-client";
|
|
2
|
+
/** These are SW's persisted observations, never an inferred connectivity check. */
|
|
3
|
+
export declare function ConnectorRuntimeDiagnostics({ runtime }: {
|
|
4
|
+
runtime: Runtime;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ConnectorAuthorization, ConnectorAuthorizationAction, ConnectorAuthorizationOptions, ConnectorAuthorizationPlan, ConnectorDiagnostics } from "@blade-hq/agent-client";
|
|
2
|
+
export declare function DeviceConnection({ read, act, diagnostics, onChanged, bindDelivery, onDisable, initialPage, authorizationCapabilities, autoAuthorize }: {
|
|
3
|
+
read: () => Promise<ConnectorAuthorization>;
|
|
4
|
+
act: (action: ConnectorAuthorizationAction, options?: ConnectorAuthorizationOptions) => Promise<ConnectorAuthorization>;
|
|
5
|
+
plan?: (capabilities: string[]) => Promise<ConnectorAuthorizationPlan>;
|
|
6
|
+
diagnostics?: () => Promise<ConnectorDiagnostics>;
|
|
7
|
+
onChanged: () => Promise<unknown>;
|
|
8
|
+
bindDelivery?: boolean;
|
|
9
|
+
onDisable?: () => Promise<unknown>;
|
|
10
|
+
initialPage?: "connection" | "manage";
|
|
11
|
+
/** A chat recovery opens only the failed operation, without another selection. */
|
|
12
|
+
authorizationCapabilities?: string[];
|
|
13
|
+
/** A user opened the chat connection card; begin the official QR flow. */
|
|
14
|
+
autoAuthorize?: boolean;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ConnectorCapability, ConnectorDomain, ConnectorPermission } from "@blade-hq/agent-client";
|
|
2
|
+
export type BusinessCapability = ConnectorCapability;
|
|
3
|
+
export declare const capabilityStatus: Record<string, string>;
|
|
4
|
+
export declare function selectableCapabilities(capabilities: BusinessCapability[]): ConnectorCapability[];
|
|
5
|
+
export declare function defaultCapabilities(capabilities: BusinessCapability[]): string[];
|
|
6
|
+
export declare function FeishuCapabilitySelection({ capabilities, permissions, domains }: {
|
|
7
|
+
capabilities: BusinessCapability[];
|
|
8
|
+
permissions?: ConnectorPermission[];
|
|
9
|
+
operations?: BusinessCapability[];
|
|
10
|
+
domains?: ConnectorDomain[];
|
|
11
|
+
selected: string[];
|
|
12
|
+
onChange: (ids: string[]) => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ConnectorAuthorization, ConnectorPermission } from "@blade-hq/agent-client";
|
|
2
|
+
export declare function FeishuPermissionStatus({ permissions, template }: {
|
|
3
|
+
permissions: ConnectorPermission[];
|
|
4
|
+
template?: ConnectorAuthorization["permission_template"];
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -24,7 +24,6 @@ export declare function readOverride(settings: boolean | LlmAdvancedSettings | u
|
|
|
24
24
|
declare function writeOverride(settings: boolean | LlmAdvancedSettings | undefined, baseURL: string, override: LlmOverride): void;
|
|
25
25
|
interface Props {
|
|
26
26
|
settings: boolean | LlmAdvancedSettings;
|
|
27
|
-
/** 组件拿到的默认值,用来做占位提示与"恢复默认" */
|
|
28
27
|
defaults: {
|
|
29
28
|
baseURL: string;
|
|
30
29
|
model: string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ConnectorAuthorization, ConnectorAuthorizationAction, ConnectorAuthorizationOptions } from "@blade-hq/agent-client";
|
|
2
|
+
export interface ManagedConnectionProps {
|
|
3
|
+
read: () => Promise<ConnectorAuthorization>;
|
|
4
|
+
act: (action: ConnectorAuthorizationAction, options?: ConnectorAuthorizationOptions) => Promise<ConnectorAuthorization>;
|
|
5
|
+
onChanged: () => Promise<unknown>;
|
|
6
|
+
bindDelivery?: boolean;
|
|
7
|
+
onDisable?: () => Promise<unknown>;
|
|
8
|
+
}
|
|
9
|
+
export declare function ManagedConnection({ read, act, onChanged, bindDelivery, onDisable }: ManagedConnectionProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AppBridge } from "@modelcontextprotocol/ext-apps/app-bridge";
|
|
2
|
+
export interface McpAppFrameProps {
|
|
3
|
+
html?: string;
|
|
4
|
+
resourceMeta: Record<string, unknown>;
|
|
5
|
+
title?: string;
|
|
6
|
+
error?: string | null;
|
|
7
|
+
toolInput?: Parameters<AppBridge["sendToolInput"]>[0];
|
|
8
|
+
callTool?: AppBridge["oncalltool"];
|
|
9
|
+
sendMessage?: AppBridge["onmessage"];
|
|
10
|
+
updateModelContext?: AppBridge["onupdatemodelcontext"];
|
|
11
|
+
requestDisplayMode?: AppBridge["onrequestdisplaymode"];
|
|
12
|
+
sizeChange?: AppBridge["onsizechange"];
|
|
13
|
+
openLink?: AppBridge["onopenlink"];
|
|
14
|
+
onReady?: (bridge: AppBridge) => void;
|
|
15
|
+
}
|
|
16
|
+
/** Sandboxed MCP App surface shared by chat cards and file previews. */
|
|
17
|
+
export declare function McpAppFrame(props: McpAppFrameProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -18,7 +18,6 @@ export declare function pickCurrentPlanStep(plan: PlanUpdateData["plan"]): PlanU
|
|
|
18
18
|
export declare function PlanUpdateBlock({ toolCall, running, autoReveal, className, }: {
|
|
19
19
|
toolCall: ToolCallInfo;
|
|
20
20
|
running?: boolean;
|
|
21
|
-
/** 实时收到的新进度短暂展开;加载历史时保持默认收起。 */
|
|
22
21
|
autoReveal?: boolean;
|
|
23
22
|
className?: string;
|
|
24
23
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -10,5 +10,7 @@ export interface SessionPluginConfigFormProps {
|
|
|
10
10
|
failure: string | null;
|
|
11
11
|
onSubmit: (draft: SessionPluginConfigDraft) => void;
|
|
12
12
|
onCancel: () => void;
|
|
13
|
+
submitLabel?: string;
|
|
14
|
+
submittingLabel?: string;
|
|
13
15
|
}
|
|
14
|
-
export declare function SessionPluginConfigForm({ config, submitting, errors, failure, onSubmit, onCancel, }: SessionPluginConfigFormProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function SessionPluginConfigForm({ config, submitting, errors, failure, onSubmit, onCancel, submitLabel, submittingLabel, }: SessionPluginConfigFormProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,6 +6,7 @@ export interface SessionPluginIconProps {
|
|
|
6
6
|
* 这样首页这种还没有会话的地方也能显示包内图标。
|
|
7
7
|
*/
|
|
8
8
|
sessionId: string | null;
|
|
9
|
+
/** Also accepts the package data image returned by the connector catalog. */
|
|
9
10
|
plugin: Pick<SessionPlugin, "name" | "icon">;
|
|
10
11
|
/** 边长,默认 20。 */
|
|
11
12
|
size?: number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -15,7 +15,6 @@ export declare class BladeChatElement extends HTMLElement {
|
|
|
15
15
|
/** 当前会话(连接完成后可用);BladeAgent.getChat() 依赖它。 */
|
|
16
16
|
session: AgentSession | null;
|
|
17
17
|
private sessionWaiters;
|
|
18
|
-
/** 自动创建的会话 id:attribute 变化触发的重渲染要继续用它,避免重复建会话。 */
|
|
19
18
|
private autoCreatedSessionId;
|
|
20
19
|
private mountRenderers;
|
|
21
20
|
/** 转换后的 React 渲染器按渲染器对象缓存,避免每次渲染重建挂载内容。 */
|
|
@@ -29,13 +28,6 @@ export declare class BladeChatElement extends HTMLElement {
|
|
|
29
28
|
set renderers(value: BladeChatMountRenderers | null);
|
|
30
29
|
private currentReactRenderers;
|
|
31
30
|
connectedCallback(): void;
|
|
32
|
-
/**
|
|
33
|
-
* 自定义样式口子:<blade-chat> 的直接 <style> 子元素会被拷入 Shadow DOM,
|
|
34
|
-
* 排在内置样式之后(同优先级时后者胜)。配合内置的 .blade-chat-* 类名、
|
|
35
|
-
* ::part()(每个可见区块都带与锚点同名的 part,如
|
|
36
|
-
* blade-chat::part(user-bubble))与 CSS 变量(--primary / --background 等,
|
|
37
|
-
* 页面直接对 blade-chat 元素设置即可穿透),无需构建工具即可深度定制。
|
|
38
|
-
*/
|
|
39
31
|
private adoptUserStyles;
|
|
40
32
|
disconnectedCallback(): void;
|
|
41
33
|
attributeChangedCallback(): void;
|
package/dist/embed/entry.d.ts
CHANGED
|
@@ -1,27 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* blade-agent.js(IIFE)入口:纯静态 HTML 的接入方式。
|
|
3
|
-
*
|
|
4
|
-
* ```html
|
|
5
|
-
* <script src="https://blade.example.com/sdk/blade-agent.js"></script>
|
|
6
|
-
* <blade-chat base-url="https://blade.example.com"></blade-chat>
|
|
7
|
-
* <script>
|
|
8
|
-
* const chat = await BladeAgent.getChat(document.querySelector("blade-chat"))
|
|
9
|
-
* chat.onCommand("map.highlight", (data) => { ... })
|
|
10
|
-
* </script>
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
1
|
import * as agentClient from "@blade-hq/agent-client";
|
|
14
2
|
import type { AgentSession } from "@blade-hq/agent-client";
|
|
15
3
|
import { BladeChatElement } from "./blade-chat-element";
|
|
16
|
-
/** 取某个 `<blade-chat>` 元素背后的会话对象(等待连接就绪)。 */
|
|
17
4
|
declare function getChat(element: Element | null): Promise<AgentSession>;
|
|
18
5
|
declare const BladeAgent: {
|
|
6
|
+
BladeApplicationClient: typeof agentClient.BladeApplicationClient;
|
|
19
7
|
BladeClient: typeof agentClient.BladeClient;
|
|
8
|
+
ConnectorsResource: typeof agentClient.ConnectorsResource;
|
|
20
9
|
BladeApiError: typeof agentClient.BladeApiError;
|
|
21
10
|
SDK_NAME: "agent-client";
|
|
22
11
|
SDK_VERSION: string;
|
|
23
12
|
AgentSession: typeof AgentSession;
|
|
24
13
|
AgentSessionError: typeof agentClient.AgentSessionError;
|
|
14
|
+
parseAskUserQuestion: typeof agentClient.parseAskUserQuestion;
|
|
15
|
+
formatAskUserAnswer: typeof agentClient.formatAskUserAnswer;
|
|
25
16
|
SessionSetupError: typeof agentClient.SessionSetupError;
|
|
26
17
|
DEFAULT_REPLAY_SPEED: agentClient.ReplaySpeed;
|
|
27
18
|
SessionInfo: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
@@ -31,12 +22,12 @@ declare const BladeAgent: {
|
|
|
31
22
|
created_at: string;
|
|
32
23
|
updated_at: string;
|
|
33
24
|
shared?: boolean | undefined;
|
|
25
|
+
anonymous?: boolean | undefined;
|
|
34
26
|
memory_enabled?: boolean | undefined;
|
|
35
27
|
is_persistent?: boolean | undefined;
|
|
36
28
|
initiator?: "sdk" | "ui" | "unknown" | null | undefined;
|
|
37
29
|
is_headless?: boolean | undefined;
|
|
38
30
|
viewer_role?: "owner" | "viewer" | undefined;
|
|
39
|
-
template_id?: string | null | undefined;
|
|
40
31
|
model?: string | null | undefined;
|
|
41
32
|
enable_thinking?: boolean | null | undefined;
|
|
42
33
|
solution_id?: string | null | undefined;
|
|
@@ -44,17 +35,12 @@ declare const BladeAgent: {
|
|
|
44
35
|
biz_role_id?: string | null | undefined;
|
|
45
36
|
solution?: unknown;
|
|
46
37
|
plan_summary?: string | null | undefined;
|
|
47
|
-
primary_skill_id?: string | null | undefined;
|
|
48
|
-
bound_skill_id?: string | null | undefined;
|
|
49
38
|
replay_state?: unknown;
|
|
50
39
|
is_pinned?: boolean | undefined;
|
|
51
40
|
pinned_at?: string | null | undefined;
|
|
52
41
|
is_example?: boolean | undefined;
|
|
53
42
|
ports?: unknown;
|
|
54
43
|
disable_tools?: string[] | undefined;
|
|
55
|
-
runtime_type?: string | null | undefined;
|
|
56
|
-
daemon_id?: string | null | undefined;
|
|
57
|
-
agent_runtime_id?: string | null | undefined;
|
|
58
44
|
workspace_path?: string | null | undefined;
|
|
59
45
|
ba_version?: string | null | undefined;
|
|
60
46
|
sandbox_version?: string | null | undefined;
|
|
@@ -72,6 +58,9 @@ declare const BladeAgent: {
|
|
|
72
58
|
userFacingErrorText: typeof agentClient.userFacingErrorText;
|
|
73
59
|
normalizeTopicAssetRefs: typeof agentClient.normalizeTopicAssetRefs;
|
|
74
60
|
normalizePluginRefs: typeof agentClient.normalizePluginRefs;
|
|
61
|
+
normalizeMessageRefs: typeof agentClient.normalizeMessageRefs;
|
|
62
|
+
ToolProvider: typeof agentClient.ToolProvider;
|
|
63
|
+
SandboxResource: typeof agentClient.SandboxResource;
|
|
75
64
|
getChat: typeof getChat;
|
|
76
65
|
BladeChatElement: typeof BladeChatElement;
|
|
77
66
|
};
|
|
@@ -22,7 +22,7 @@ export interface UseMessagePinOptions {
|
|
|
22
22
|
* 用户发言顶置的共享状态机。SDK 和内置轻量列表只提供 DOM/虚拟列表适配器,
|
|
23
23
|
* 触发、调度、resize、手动接管和跟随交还的决策只在这里维护。
|
|
24
24
|
*/
|
|
25
|
-
export declare function useMessagePin({ targetKey, pinTarget, isStreaming, layoutKey, getScrollElement, getContentElement, getTargetElement, getTargetScrollTop, getSpacerHeight, setSpacerHeight, stopAutoScroll,
|
|
25
|
+
export declare function useMessagePin({ targetKey, pinTarget, isStreaming, layoutKey, getScrollElement, getContentElement, getTargetElement, getTargetScrollTop, getSpacerHeight, setSpacerHeight, stopAutoScroll, margin, }: UseMessagePinOptions): {
|
|
26
26
|
release: () => void;
|
|
27
27
|
isActive: () => boolean;
|
|
28
28
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -21,3 +21,5 @@ export { MarkdownContent } from "./chat/markdown/MarkdownContent";
|
|
|
21
21
|
export type { MarkdownContentProps } from "./chat/markdown/MarkdownContent";
|
|
22
22
|
export { TopicAssetSubmitDialog, useTopicAssetSubmissionAccess } from "./components/TopicAssetSubmitDialog";
|
|
23
23
|
export type { TopicAssetSubmitDialogProps } from "./components/TopicAssetSubmitDialog";
|
|
24
|
+
export { DeviceConnection } from "./components/DeviceConnection";
|
|
25
|
+
export { ConnectorConnection } from "./components/ConnectorConnection";
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ChatView,
|
|
3
|
-
MarkdownContent,
|
|
4
3
|
ReplayBar,
|
|
5
4
|
ReplayMismatchPrompt,
|
|
6
5
|
TopicAssetSubmitDialog,
|
|
7
6
|
useAgentSession,
|
|
8
7
|
useReplay,
|
|
9
8
|
useTopicAssetSubmissionAccess
|
|
10
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XP6T6SHZ.js";
|
|
10
|
+
import "./chunk-2DPLLZOU.js";
|
|
11
|
+
import {
|
|
12
|
+
ConnectorConnection,
|
|
13
|
+
DeviceConnection
|
|
14
|
+
} from "./chunk-J72ZLILV.js";
|
|
15
|
+
import "./chunk-HCW7SI5Q.js";
|
|
16
|
+
import {
|
|
17
|
+
MarkdownContent
|
|
18
|
+
} from "./chunk-XJ6ZA6LN.js";
|
|
11
19
|
import {
|
|
12
20
|
BladeProvider,
|
|
13
21
|
useBladeClient
|
|
14
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-WRIMPZPN.js";
|
|
23
|
+
import "./chunk-QIR73CES.js";
|
|
15
24
|
import "./chunk-PR4QN5HX.js";
|
|
16
25
|
export {
|
|
17
26
|
BladeProvider,
|
|
18
27
|
ChatView,
|
|
28
|
+
ConnectorConnection,
|
|
29
|
+
DeviceConnection,
|
|
19
30
|
MarkdownContent,
|
|
20
31
|
ReplayBar,
|
|
21
32
|
ReplayMismatchPrompt,
|
package/dist/internal.d.ts
CHANGED
|
@@ -52,11 +52,15 @@ export { SessionMemoryToggle } from "./components/SessionMemoryToggle";
|
|
|
52
52
|
export type { SessionMemoryToggleProps } from "./components/SessionMemoryToggle";
|
|
53
53
|
export { SessionQueuePanel, isQueuePanelVisible } from "./components/SessionQueuePanel";
|
|
54
54
|
export type { SessionQueuePanelProps } from "./components/SessionQueuePanel";
|
|
55
|
-
export { isAgentComputerCommand, isAgentComputerToolCall, classifyAgentComputerLaunchOutcome, } from "./lib/agent-computer-command";
|
|
56
|
-
export type { AgentComputerLaunchOutcome } from "./lib/agent-computer-command";
|
|
57
55
|
export { SessionBranchPicker } from "./components/SessionBranchPicker";
|
|
58
56
|
export type { SessionBranchPickerProps } from "./components/SessionBranchPicker";
|
|
59
57
|
export { MessageImage, type MessageImageProps } from "./components/MessageImage";
|
|
60
58
|
export { BackgroundWakeNotice } from "./components/BackgroundWakeNotice";
|
|
61
59
|
export { TopicAssetSubmitDialog, useTopicAssetSubmissionAccess } from "./components/TopicAssetSubmitDialog";
|
|
62
60
|
export type { TopicAssetSubmitDialogProps } from "./components/TopicAssetSubmitDialog";
|
|
61
|
+
export { CodeBlockPre } from "./chat/markdown/MarkdownContent";
|
|
62
|
+
export { ChatLoadingIndicator, isPreparingReply } from "./chat/ChatLoadingIndicator";
|
|
63
|
+
export { BrowserConnectionDialog } from "./components/BrowserConnectionDialog";
|
|
64
|
+
export { AccountConnectors } from "./components/AccountConnectors";
|
|
65
|
+
export { McpAppFrame } from "./components/McpAppFrame";
|
|
66
|
+
export type { McpAppFrameProps } from "./components/McpAppFrame";
|
package/dist/internal.js
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentChat,
|
|
3
3
|
BackgroundWakeNotice,
|
|
4
|
+
ChatLoadingIndicator,
|
|
4
5
|
ChatView,
|
|
5
6
|
ContextCard,
|
|
6
7
|
ContextGroupCard,
|
|
7
|
-
DEFAULT_ALLOWED_TAGS,
|
|
8
8
|
LlmChat,
|
|
9
|
-
MarkdownContent,
|
|
10
|
-
MarkdownRenderer,
|
|
11
|
-
McpAppCard,
|
|
12
|
-
MessageImage,
|
|
13
9
|
ReplayBar,
|
|
14
10
|
ReplayMismatchPrompt,
|
|
15
11
|
SessionPluginSelector,
|
|
16
12
|
SessionQueuePanel,
|
|
17
13
|
TURN_NAV_HIGHLIGHT_CLASS,
|
|
18
|
-
ToolUiCardView,
|
|
19
14
|
TopicAssetSubmitDialog,
|
|
20
15
|
WhatIfUserBubble,
|
|
16
|
+
isPreparingReply,
|
|
21
17
|
isQueuePanelVisible,
|
|
22
18
|
latestUserSpeechEntryId,
|
|
23
19
|
parseWhatIfPrompt,
|
|
@@ -29,45 +25,67 @@ import {
|
|
|
29
25
|
useTopicAssetSubmissionAccess,
|
|
30
26
|
useTurnNavigation,
|
|
31
27
|
useTypewriterReveal
|
|
32
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-XP6T6SHZ.js";
|
|
33
29
|
import {
|
|
30
|
+
AccountConnectors,
|
|
34
31
|
ConnectorPanel,
|
|
35
32
|
PluginTriggerStack,
|
|
36
33
|
TRIGGER_ICON_LIMIT,
|
|
37
34
|
selectionFromItem,
|
|
38
35
|
triggerSummary
|
|
39
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-7MCGQH34.js";
|
|
40
37
|
import {
|
|
41
|
-
BladeProvider,
|
|
42
|
-
Content2,
|
|
43
|
-
PLAN_AUTO_COLLAPSE_MS,
|
|
44
|
-
PlanUpdateBlock,
|
|
45
38
|
PluginConnectorList,
|
|
46
|
-
Portal,
|
|
47
|
-
Provider,
|
|
48
|
-
Root3,
|
|
49
39
|
SessionPluginConfigDialog,
|
|
50
40
|
SessionPluginConfigForm,
|
|
51
41
|
SessionPluginIcon,
|
|
52
|
-
Trigger,
|
|
53
42
|
catalogToConnectorItems,
|
|
54
|
-
cn,
|
|
55
43
|
filterConnectorItems,
|
|
44
|
+
mergeConnectorItems,
|
|
45
|
+
sessionPluginLabel,
|
|
46
|
+
useSessionPluginActivation
|
|
47
|
+
} from "./chunk-2DPLLZOU.js";
|
|
48
|
+
import {
|
|
49
|
+
ConnectorConnection,
|
|
50
|
+
DeviceConnection
|
|
51
|
+
} from "./chunk-J72ZLILV.js";
|
|
52
|
+
import {
|
|
53
|
+
McpAppCard,
|
|
54
|
+
McpAppFrame,
|
|
55
|
+
MessageImage,
|
|
56
|
+
ToolUiCardView
|
|
57
|
+
} from "./chunk-HCW7SI5Q.js";
|
|
58
|
+
import {
|
|
59
|
+
CodeBlockPre,
|
|
60
|
+
DEFAULT_ALLOWED_TAGS,
|
|
61
|
+
MarkdownContent,
|
|
62
|
+
MarkdownRenderer
|
|
63
|
+
} from "./chunk-XJ6ZA6LN.js";
|
|
64
|
+
import {
|
|
65
|
+
BladeProvider,
|
|
66
|
+
BrowserConnectionDialog,
|
|
67
|
+
PLAN_AUTO_COLLAPSE_MS,
|
|
68
|
+
PlanUpdateBlock,
|
|
69
|
+
cn,
|
|
56
70
|
getPlanUpdateDisplayState,
|
|
57
71
|
isPlanUpdateTool,
|
|
58
|
-
mergeConnectorItems,
|
|
59
72
|
parsePlanUpdate,
|
|
60
73
|
pickCurrentPlanStep,
|
|
61
|
-
sessionPluginLabel,
|
|
62
74
|
useBladeClient,
|
|
63
75
|
useBladeHost,
|
|
64
|
-
useOptionalBladeClient
|
|
65
|
-
|
|
66
|
-
|
|
76
|
+
useOptionalBladeClient
|
|
77
|
+
} from "./chunk-WRIMPZPN.js";
|
|
78
|
+
import {
|
|
79
|
+
Content2,
|
|
80
|
+
Portal,
|
|
81
|
+
Provider,
|
|
82
|
+
Root3,
|
|
83
|
+
Trigger
|
|
84
|
+
} from "./chunk-QIR73CES.js";
|
|
67
85
|
import "./chunk-PR4QN5HX.js";
|
|
68
86
|
|
|
69
87
|
// src/internal.ts
|
|
70
|
-
export * from "./chat-
|
|
88
|
+
export * from "./chat-IHPRU35X.css";
|
|
71
89
|
|
|
72
90
|
// src/lib/mount-renderers.tsx
|
|
73
91
|
import { createContext, useContext, useId, useLayoutEffect, useRef } from "react";
|
|
@@ -258,48 +276,6 @@ function SessionMemoryToggle({
|
|
|
258
276
|
] });
|
|
259
277
|
}
|
|
260
278
|
|
|
261
|
-
// src/lib/agent-computer-command.ts
|
|
262
|
-
var COMPUTER_LAUNCH_COMMAND_PATTERN = /(?:^|[\n;&|(]\s*)computer\s+launch(?:\s|$)/;
|
|
263
|
-
function isAgentComputerCommand(command) {
|
|
264
|
-
return COMPUTER_LAUNCH_COMMAND_PATTERN.test(command);
|
|
265
|
-
}
|
|
266
|
-
function isAgentComputerToolCall(argumentsJson) {
|
|
267
|
-
if (!argumentsJson) return false;
|
|
268
|
-
let command;
|
|
269
|
-
try {
|
|
270
|
-
const parsed = JSON.parse(argumentsJson);
|
|
271
|
-
if (typeof parsed !== "object" || parsed === null) return false;
|
|
272
|
-
command = parsed.command;
|
|
273
|
-
} catch {
|
|
274
|
-
return false;
|
|
275
|
-
}
|
|
276
|
-
return typeof command === "string" && isAgentComputerCommand(command);
|
|
277
|
-
}
|
|
278
|
-
var LAUNCH_SUCCESS_MARKER = "\u5DF2\u542F\u52A8 ";
|
|
279
|
-
function resultContainsLaunchSuccessMarker(result, depth = 0) {
|
|
280
|
-
if (depth > 2) return false;
|
|
281
|
-
if (typeof result === "string") {
|
|
282
|
-
if (result.includes(LAUNCH_SUCCESS_MARKER)) return true;
|
|
283
|
-
try {
|
|
284
|
-
return resultContainsLaunchSuccessMarker(JSON.parse(result), depth + 1);
|
|
285
|
-
} catch {
|
|
286
|
-
return false;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
if (typeof result === "object" && result !== null) {
|
|
290
|
-
for (const value of Object.values(result)) {
|
|
291
|
-
if (typeof value === "string" && value.includes(LAUNCH_SUCCESS_MARKER)) return true;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
return false;
|
|
295
|
-
}
|
|
296
|
-
function classifyAgentComputerLaunchOutcome(toolCall) {
|
|
297
|
-
if (toolCall.status === "error" || toolCall.status === "cancelled") return "failed";
|
|
298
|
-
if (toolCall.status !== "done") return "pending";
|
|
299
|
-
if (toolCall.result === void 0 || toolCall.result === null) return "unknown";
|
|
300
|
-
return resultContainsLaunchSuccessMarker(toolCall.result) ? "succeeded" : "failed";
|
|
301
|
-
}
|
|
302
|
-
|
|
303
279
|
// src/components/SessionBranchPicker.tsx
|
|
304
280
|
import { useMemo, useState as useState2 } from "react";
|
|
305
281
|
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
@@ -449,8 +425,6 @@ function SessionBranchPicker({
|
|
|
449
425
|
side: "right",
|
|
450
426
|
sideOffset: 8,
|
|
451
427
|
className: cn(
|
|
452
|
-
// z-[60]:这张图会被放进回溯弹层(z-50 且背景不透明),
|
|
453
|
-
// 消息预览不抬到弹层之上就会被它的背景吃掉。
|
|
454
428
|
"z-[60] rounded-md border border-border bg-popover px-2 py-1 text-xs text-foreground shadow-md",
|
|
455
429
|
!node.isVirtual && node.isCurrent && "font-semibold"
|
|
456
430
|
),
|
|
@@ -594,18 +568,25 @@ function buildEdgePath(fromX, fromY, toX, toY) {
|
|
|
594
568
|
].join(" ");
|
|
595
569
|
}
|
|
596
570
|
export {
|
|
571
|
+
AccountConnectors,
|
|
597
572
|
AgentChat,
|
|
598
573
|
BackgroundWakeNotice,
|
|
599
574
|
BladeProvider,
|
|
575
|
+
BrowserConnectionDialog,
|
|
576
|
+
ChatLoadingIndicator,
|
|
600
577
|
ChatView,
|
|
578
|
+
CodeBlockPre,
|
|
579
|
+
ConnectorConnection,
|
|
601
580
|
ConnectorPanel,
|
|
602
581
|
ContextCard,
|
|
603
582
|
ContextGroupCard,
|
|
604
583
|
DEFAULT_ALLOWED_TAGS,
|
|
584
|
+
DeviceConnection,
|
|
605
585
|
LlmChat,
|
|
606
586
|
MarkdownContent,
|
|
607
587
|
MarkdownRenderer,
|
|
608
588
|
McpAppCard,
|
|
589
|
+
McpAppFrame,
|
|
609
590
|
MessageImage,
|
|
610
591
|
MountHostContext,
|
|
611
592
|
MountSlot,
|
|
@@ -628,12 +609,10 @@ export {
|
|
|
628
609
|
TopicAssetSubmitDialog,
|
|
629
610
|
WhatIfUserBubble,
|
|
630
611
|
catalogToConnectorItems,
|
|
631
|
-
classifyAgentComputerLaunchOutcome,
|
|
632
612
|
filterConnectorItems,
|
|
633
613
|
getPlanUpdateDisplayState,
|
|
634
|
-
isAgentComputerCommand,
|
|
635
|
-
isAgentComputerToolCall,
|
|
636
614
|
isPlanUpdateTool,
|
|
615
|
+
isPreparingReply,
|
|
637
616
|
isQueuePanelVisible,
|
|
638
617
|
latestUserSpeechEntryId,
|
|
639
618
|
mergeConnectorItems,
|