@blade-hq/agent-react 2610.0.0-beta.50 → 2610.0.0-beta.52
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 +18 -1
- package/dist/chunk-G3PMV62Z.js +36 -0
- package/dist/{chunk-ZXXLY4RM.js → chunk-MAAMCOAU.js} +8 -32
- package/dist/{chunk-ZXXLY4RM.js.map → chunk-MAAMCOAU.js.map} +1 -1
- package/dist/components/ChatInput.d.ts +4 -3
- package/dist/components/ChatSurface.d.ts +5 -3
- package/dist/components/McpAppCard.d.ts +14 -0
- package/dist/components/SessionPluginConfigDialog.d.ts +10 -0
- package/dist/components/SessionPluginConfigForm.d.ts +14 -0
- package/dist/components/SessionPluginIcon.d.ts +19 -0
- package/dist/components/SessionQueuePanel.d.ts +25 -0
- package/dist/components/ToolUiCardView.d.ts +9 -0
- package/dist/components/plugin-config-draft.d.ts +13 -0
- package/dist/components/plugin-config-schema.d.ts +6 -0
- package/dist/embed/entry.d.ts +17 -0
- package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js → highlighted-body-B3W2YXNL-IASCZDV2.js} +3 -2
- package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js.map → highlighted-body-B3W2YXNL-IASCZDV2.js.map} +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +42642 -2196
- package/dist/index.js.map +1 -1
- package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js +9 -0
- package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js.map +1 -0
- package/dist/style.full.css +1 -1
- package/dist/webapi-W3IB5DO4.js +2481 -0
- package/dist/webapi-W3IB5DO4.js.map +1 -0
- package/package.json +2 -2
- package/public-api.md +431 -6
- package/dist/mermaid-3ZIDBTTL-N7YKJ3SM.js +0 -8
- /package/dist/{mermaid-3ZIDBTTL-N7YKJ3SM.js.map → chunk-G3PMV62Z.js.map} +0 -0
|
@@ -3,19 +3,20 @@ interface Props {
|
|
|
3
3
|
value: string;
|
|
4
4
|
onValueChange: (value: string) => void;
|
|
5
5
|
onSend: (text: string) => boolean | Promise<boolean>;
|
|
6
|
-
/**
|
|
7
|
-
onAppend?: (text: string) =>
|
|
6
|
+
/** 运行中提交:把消息交给服务端队列(入队)。 */
|
|
7
|
+
onAppend?: (text: string) => boolean | undefined | Promise<boolean>;
|
|
8
8
|
onStop: () => void;
|
|
9
9
|
isStreaming: boolean;
|
|
10
10
|
isStopping?: boolean;
|
|
11
11
|
placeholder?: string;
|
|
12
12
|
className?: string;
|
|
13
13
|
queueKey?: string;
|
|
14
|
+
hasAttachments?: boolean;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* 轻量聊天输入框:textarea(Enter 发送 / Shift+Enter 换行)+ 发送/停止按钮。
|
|
17
18
|
* 不含第一方版本的富文本编辑、@ 补全、技能菜单、语音输入与模型选择。
|
|
18
19
|
* 内容受控,session.attach() / insertText() 通过 ChatView 注入到这里。
|
|
19
20
|
*/
|
|
20
|
-
export declare function ChatInput({ value, onValueChange, onSend, onAppend, onStop, isStreaming, isStopping, placeholder, className, queueKey, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function ChatInput({ value, onValueChange, onSend, onAppend, onStop, isStreaming, isStopping, placeholder, className, queueKey, hasAttachments, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
21
22
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AskUserAnswerData, ChatMessage, ConnectionStatus, PostChatFollowup } from "@blade-hq/agent-client";
|
|
2
|
-
import type
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
3
|
import type { ToolCallRenderer } from "./ToolCallBlock";
|
|
4
4
|
import type { FollowupInteractionEvent } from "./PostChatFollowupBlock";
|
|
5
5
|
import type { ResultFeedback } from "@blade-hq/agent-client";
|
|
@@ -45,7 +45,7 @@ interface ChatSurfaceProps extends ChatPresentationProps {
|
|
|
45
45
|
onInputChange: (value: string) => void;
|
|
46
46
|
onSuggestion?: (value: string) => void;
|
|
47
47
|
onSend: (text: string) => Promise<boolean>;
|
|
48
|
-
onAppend?: (text: string) =>
|
|
48
|
+
onAppend?: (text: string) => boolean | undefined | Promise<boolean>;
|
|
49
49
|
onStop: () => void;
|
|
50
50
|
sessionStatus?: string;
|
|
51
51
|
askAnswers?: Record<string, AskUserAnswerData>;
|
|
@@ -56,6 +56,8 @@ interface ChatSurfaceProps extends ChatPresentationProps {
|
|
|
56
56
|
onResultFeedbackSaved?: (feedback: ResultFeedback) => void;
|
|
57
57
|
/** 输入框上方的内部区域(纯 LLM 模式的高级设置用)。不传时不渲染任何节点。 */
|
|
58
58
|
beforeInput?: ReactNode;
|
|
59
|
+
/** 输入框上方的会话队列面板(智能体模式用)。不传时不渲染任何节点。 */
|
|
60
|
+
queuePanel?: ReactNode;
|
|
59
61
|
/** 仅 Agent 模式启用 Blade 的 update_plan 面板。 */
|
|
60
62
|
showPlanUpdates?: boolean;
|
|
61
63
|
/** 仅实时成功的 update_plan 递增;历史 hydration 不得改变。 */
|
|
@@ -75,5 +77,5 @@ interface ChatSurfaceProps extends ChatPresentationProps {
|
|
|
75
77
|
* 这里的 DOM 结构受 tests/chat-view-compat.test.tsx 的快照保护——接入方拿
|
|
76
78
|
* .blade-chat-* 类名写了自己的样式,结构一动他们的页面就歪。
|
|
77
79
|
*/
|
|
78
|
-
export declare function ChatSurface({ theme, classNames, renderers, slots, placeholder, connection, errorMessage, messages, postChatFollowup, isStreaming, isStopping, inputText, onInputChange, onSuggestion, onSend, onAppend, onStop, sessionStatus, askAnswers, onAnswer, sessionId, isViewer, resultFeedbackByEntry, onResultFeedbackSaved, onFollowupInteraction, beforeInput, showPlanUpdates, planRevealRevision, historyPaging, banner, }: ChatSurfaceProps): import("react/jsx-runtime").JSX.Element;
|
|
80
|
+
export declare function ChatSurface({ theme, classNames, renderers, slots, placeholder, connection, errorMessage, messages, postChatFollowup, isStreaming, isStopping, inputText, onInputChange, onSuggestion, onSend, onAppend, onStop, sessionStatus, askAnswers, onAnswer, sessionId, isViewer, resultFeedbackByEntry, onResultFeedbackSaved, onFollowupInteraction, beforeInput, queuePanel, showPlanUpdates, planRevealRevision, historyPaging, banner, }: ChatSurfaceProps): import("react/jsx-runtime").JSX.Element;
|
|
79
81
|
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BladeClient } from "@blade-hq/agent-client";
|
|
2
|
+
export interface McpAppMessage {
|
|
3
|
+
sessionId: string;
|
|
4
|
+
sourceId: string;
|
|
5
|
+
label: string;
|
|
6
|
+
content: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const McpAppMessageContext: import("react").Context<((message: McpAppMessage) => void) | null>;
|
|
9
|
+
export declare function McpAppCard({ sessionId, sourceId, client: suppliedClient, onMessage: suppliedOnMessage }: {
|
|
10
|
+
sessionId: string;
|
|
11
|
+
sourceId: string;
|
|
12
|
+
client?: BladeClient;
|
|
13
|
+
onMessage?: (message: McpAppMessage) => void;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BladeClient, SessionPlugin, SessionPluginConfigState } from "@blade-hq/agent-client";
|
|
2
|
+
export interface SessionPluginConfigDialogProps {
|
|
3
|
+
client: BladeClient;
|
|
4
|
+
sessionId: string;
|
|
5
|
+
plugin: Pick<SessionPlugin, "name" | "display_name" | "icon">;
|
|
6
|
+
/** Called after every successful save with the freshly published state. */
|
|
7
|
+
onSaved?: (state: SessionPluginConfigState) => void;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function SessionPluginConfigDialog({ client, sessionId, plugin, ...props }: SessionPluginConfigDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SessionPluginConfigError, SessionPluginConfigSet, SessionPluginConfigState } from "@blade-hq/agent-client";
|
|
2
|
+
export interface SessionPluginConfigDraft {
|
|
3
|
+
set: SessionPluginConfigSet[];
|
|
4
|
+
remove: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface SessionPluginConfigFormProps {
|
|
7
|
+
config: SessionPluginConfigState;
|
|
8
|
+
submitting: boolean;
|
|
9
|
+
errors: SessionPluginConfigError[];
|
|
10
|
+
failure: string | null;
|
|
11
|
+
onSubmit: (draft: SessionPluginConfigDraft) => void;
|
|
12
|
+
onCancel: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function SessionPluginConfigForm({ config, submitting, errors, failure, onSubmit, onCancel, }: SessionPluginConfigFormProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BladeClient, SessionPlugin } from "@blade-hq/agent-client";
|
|
2
|
+
export interface SessionPluginIconProps {
|
|
3
|
+
client: BladeClient;
|
|
4
|
+
sessionId: string;
|
|
5
|
+
plugin: Pick<SessionPlugin, "name" | "icon">;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SessionPluginLabelProps {
|
|
9
|
+
plugin: Pick<SessionPlugin, "name" | "display_name">;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Business name for a plugin, falling back to the technical ID.
|
|
13
|
+
*
|
|
14
|
+
* The ID stays authoritative for paths, authorization, caching and calls; this
|
|
15
|
+
* helper only decides what a user reads. Keep it shared — one place decides.
|
|
16
|
+
*/
|
|
17
|
+
export declare function sessionPluginLabel(plugin: Pick<SessionPlugin, "name" | "display_name">): string;
|
|
18
|
+
/** Package-local plugin icon, with a stable generic placeholder. */
|
|
19
|
+
export declare function SessionPluginIcon({ client, sessionId, plugin, className }: SessionPluginIconProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type QueuedMessage, type SessionQueueSnapshot } from "@blade-hq/agent-client";
|
|
2
|
+
import { type JSX } from "react";
|
|
3
|
+
export interface SessionQueuePanelProps {
|
|
4
|
+
snapshot: SessionQueueSnapshot;
|
|
5
|
+
/** 当前是否有可接收补充的运行任务(决定「立即补充」是否可用) */
|
|
6
|
+
canDeliver: boolean;
|
|
7
|
+
/** 正在等服务端确认的条目 id:禁用该条目的操作,避免重复提交 */
|
|
8
|
+
pendingItemId?: string | null;
|
|
9
|
+
/** 冲突/失败提示,例如「该消息已开始执行」;展示在面板顶部 */
|
|
10
|
+
notice?: string | null;
|
|
11
|
+
onResume: () => void;
|
|
12
|
+
onCancel: (item: QueuedMessage) => void;
|
|
13
|
+
onEdit: (item: QueuedMessage, content: string) => boolean | undefined | Promise<boolean>;
|
|
14
|
+
onRequeue?: (content: string) => Promise<boolean>;
|
|
15
|
+
onMove: (item: QueuedMessage, delta: -1 | 1) => void;
|
|
16
|
+
onReorder: (orderedIds: string[]) => void;
|
|
17
|
+
onDeliver: (item: QueuedMessage) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 会话消息队列面板:输入框上方的「待执行 · N」区域。
|
|
21
|
+
*
|
|
22
|
+
* 纯展示组件,不持有会话状态;能否编辑/删除/补充全部用 agent-client 的判定函数,
|
|
23
|
+
* 不在本包重写一份。上移/下移、拖动排序最终都由调用方提交完整的 pending id 顺序。
|
|
24
|
+
*/
|
|
25
|
+
export declare function SessionQueuePanel({ snapshot, canDeliver, pendingItemId, notice, onResume, onCancel, onEdit, onRequeue, onMove, onReorder, onDeliver, }: SessionQueuePanelProps): JSX.Element | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ToolUiCard } from "@blade-hq/agent-client";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Apps 使用 SDK/Web 共享的 AppBridge;恢复只消费留档,不重读资源。
|
|
4
|
+
* 普通资源卡片仍使用 agent-client 的共享内容判定。
|
|
5
|
+
*/
|
|
6
|
+
export declare function ToolUiCardView({ card, sessionId }: {
|
|
7
|
+
card: ToolUiCard;
|
|
8
|
+
sessionId?: string;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SessionPluginConfigSet, SessionPluginConfigState } from "@blade-hq/agent-client";
|
|
2
|
+
export type ConfigPath = (string | number)[];
|
|
3
|
+
export type ConfigValues = Record<string, unknown>;
|
|
4
|
+
export declare function createConfigDraft(config: SessionPluginConfigState): {
|
|
5
|
+
values: ConfigValues;
|
|
6
|
+
retained: Map<string, string>;
|
|
7
|
+
};
|
|
8
|
+
/** Array edits address the original indices because the API applies sets before removals. */
|
|
9
|
+
export declare function originalConfigPath(path: ConfigPath, removed: Set<string>): ConfigPath;
|
|
10
|
+
export declare function configDraftOperations(initial: ConfigValues, values: ConfigValues, retained: Map<string, string>, removed: Set<string>): {
|
|
11
|
+
set: SessionPluginConfigSet[];
|
|
12
|
+
remove: string[];
|
|
13
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SessionPluginConfigState } from "@blade-hq/agent-client";
|
|
2
|
+
export type JsonSchema = Record<string, unknown>;
|
|
3
|
+
export declare function pointerOf(parts: (string | number)[]): string;
|
|
4
|
+
export declare function pointerParts(pointer: string): string[];
|
|
5
|
+
export declare function formSupport(schema: JsonSchema | null): string | null;
|
|
6
|
+
export declare function configIsEditable(state: SessionPluginConfigState): boolean;
|
package/dist/embed/entry.d.ts
CHANGED
|
@@ -26,11 +26,21 @@ declare const BladeAgent: {
|
|
|
26
26
|
SDK_VERSION: string;
|
|
27
27
|
AgentSession: typeof AgentSession;
|
|
28
28
|
SessionHub: typeof agentClient.SessionHub;
|
|
29
|
+
isMcpAppData: typeof agentClient.isMcpAppData;
|
|
29
30
|
SessionSetupError: typeof agentClient.SessionSetupError;
|
|
30
31
|
createInitialSessionState: typeof agentClient.createInitialSessionState;
|
|
31
32
|
reconcileHistoricalUserTurns: typeof agentClient.reconcileHistoricalUserTurns;
|
|
32
33
|
reconcileOptimisticUserTurns: typeof agentClient.reconcileOptimisticUserTurns;
|
|
33
34
|
toReplaySnapshot: typeof agentClient.toReplaySnapshot;
|
|
35
|
+
EMPTY_SESSION_QUEUE: agentClient.SessionQueueSnapshot;
|
|
36
|
+
canCancelQueuedMessage: typeof agentClient.canCancelQueuedMessage;
|
|
37
|
+
canDeliverQueuedMessage: typeof agentClient.canDeliverQueuedMessage;
|
|
38
|
+
canEditQueuedMessage: typeof agentClient.canEditQueuedMessage;
|
|
39
|
+
isSessionQueueSnapshot: typeof agentClient.isSessionQueueSnapshot;
|
|
40
|
+
parseQueueAck: typeof agentClient.parseQueueAck;
|
|
41
|
+
queuePauseReasonLabel: typeof agentClient.queuePauseReasonLabel;
|
|
42
|
+
queuedMessageStatusLabel: typeof agentClient.queuedMessageStatusLabel;
|
|
43
|
+
shouldApplySnapshot: typeof agentClient.shouldApplySnapshot;
|
|
34
44
|
connectEmbedded: typeof agentClient.connectEmbedded;
|
|
35
45
|
isCommandEnvelope: typeof agentClient.isCommandEnvelope;
|
|
36
46
|
isInboundEnvelope: typeof agentClient.isInboundEnvelope;
|
|
@@ -60,6 +70,13 @@ declare const BladeAgent: {
|
|
|
60
70
|
getContextGroupDisplayState: typeof agentClient.getContextGroupDisplayState;
|
|
61
71
|
groupAdjacentContextRuns: typeof agentClient.groupAdjacentContextRuns;
|
|
62
72
|
latestPostChatFollowup: typeof agentClient.latestPostChatFollowup;
|
|
73
|
+
buildToolUiCardKey: typeof agentClient.buildToolUiCardKey;
|
|
74
|
+
collectInlineToolUiCards: typeof agentClient.collectInlineToolUiCards;
|
|
75
|
+
collectPreviewToolUiCards: typeof agentClient.collectPreviewToolUiCards;
|
|
76
|
+
isAppDevToolUiCard: typeof agentClient.isAppDevToolUiCard;
|
|
77
|
+
isInternalStatusToolUiCard: typeof agentClient.isInternalStatusToolUiCard;
|
|
78
|
+
isToolUiCard: typeof agentClient.isToolUiCard;
|
|
79
|
+
resolveToolUiCardContent: typeof agentClient.resolveToolUiCardContent;
|
|
63
80
|
prependOlder: typeof agentClient.prependOlder;
|
|
64
81
|
replaceWindow: typeof agentClient.replaceWindow;
|
|
65
82
|
DEFAULT_REPLAY_SPEED: agentClient.ReplaySpeed;
|
package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js → highlighted-body-B3W2YXNL-IASCZDV2.js}
RENAMED
|
@@ -3,7 +3,8 @@ import {
|
|
|
3
3
|
Ks,
|
|
4
4
|
Qe,
|
|
5
5
|
R
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MAAMCOAU.js";
|
|
7
|
+
import "./chunk-G3PMV62Z.js";
|
|
7
8
|
|
|
8
9
|
// ../../node_modules/.pnpm/streamdown@2.3.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/streamdown/dist/highlighted-body-B3W2YXNL.js
|
|
9
10
|
import { useContext, useState, useEffect } from "react";
|
|
@@ -24,4 +25,4 @@ var L = ({ code: s, language: t, raw: e, className: n, ...d$1 }) => {
|
|
|
24
25
|
export {
|
|
25
26
|
L as HighlightedCodeBlockBody
|
|
26
27
|
};
|
|
27
|
-
//# sourceMappingURL=highlighted-body-B3W2YXNL-
|
|
28
|
+
//# sourceMappingURL=highlighted-body-B3W2YXNL-IASCZDV2.js.map
|
package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js.map → highlighted-body-B3W2YXNL-IASCZDV2.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/streamdown@2.3.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/streamdown/dist/highlighted-body-B3W2YXNL.js"],"sourcesContent":["\"use client\";\nimport {k,d,c}from'./chunk-RLXIAIE6.js';import {useContext,useState,useEffect}from'react';import {jsx}from'react/jsx-runtime';var L=({code:s,language:t,raw:e,className:n,...d$1})=>{let{shikiTheme:l}=useContext(k),o=d(),[m,i]=useState(e);return useEffect(()=>{if(!o){i(e);return}let g=o.highlight({code:s,language:t,themes:l},p=>{i(p);});g&&i(g);},[s,t,l,o,e]),jsx(c,{className:n,language:t,result:m,...d$1})};export{L as HighlightedCodeBlockBody};"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/streamdown@2.3.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/streamdown/dist/highlighted-body-B3W2YXNL.js"],"sourcesContent":["\"use client\";\nimport {k,d,c}from'./chunk-RLXIAIE6.js';import {useContext,useState,useEffect}from'react';import {jsx}from'react/jsx-runtime';var L=({code:s,language:t,raw:e,className:n,...d$1})=>{let{shikiTheme:l}=useContext(k),o=d(),[m,i]=useState(e);return useEffect(()=>{if(!o){i(e);return}let g=o.highlight({code:s,language:t,themes:l},p=>{i(p);});g&&i(g);},[s,t,l,o,e]),jsx(c,{className:n,language:t,result:m,...d$1})};export{L as HighlightedCodeBlockBody};"],"mappings":";;;;;;;;;AACwC,SAAQ,YAAW,UAAS,iBAAc;AAAQ,SAAQ,WAAQ;AAAoB,IAAI,IAAE,CAAC,EAAC,MAAK,GAAE,UAAS,GAAE,KAAI,GAAE,WAAU,GAAE,GAAG,IAAG,MAAI;AAAC,MAAG,EAAC,YAAW,EAAC,IAAE,WAAW,CAAC,GAAE,IAAE,GAAE,GAAE,CAAC,GAAE,CAAC,IAAE,SAAS,CAAC;AAAE,SAAO,UAAU,MAAI;AAAC,QAAG,CAAC,GAAE;AAAC,QAAE,CAAC;AAAE;AAAA,IAAM;AAAC,QAAI,IAAE,EAAE,UAAU,EAAC,MAAK,GAAE,UAAS,GAAE,QAAO,EAAC,GAAE,OAAG;AAAC,QAAE,CAAC;AAAA,IAAE,CAAC;AAAE,SAAG,EAAE,CAAC;AAAA,EAAE,GAAE,CAAC,GAAE,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,IAAI,IAAE,EAAC,WAAU,GAAE,UAAS,GAAE,QAAO,GAAE,GAAG,IAAG,CAAC;AAAC;","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,12 @@ export { ChatView } from "./components/ChatView";
|
|
|
12
12
|
export type { ChatViewClassNames, ChatViewProps, ChatViewRenderers, ChatViewSlots, FollowupInteractionEvent, } from "./components/ChatView";
|
|
13
13
|
export { SessionPluginSelector } from "./components/SessionPluginSelector";
|
|
14
14
|
export type { SessionPluginSelectorProps } from "./components/SessionPluginSelector";
|
|
15
|
+
export { SessionPluginIcon, sessionPluginLabel } from "./components/SessionPluginIcon";
|
|
16
|
+
export type { SessionPluginIconProps, SessionPluginLabelProps } from "./components/SessionPluginIcon";
|
|
17
|
+
export { SessionPluginConfigDialog } from "./components/SessionPluginConfigDialog";
|
|
18
|
+
export type { SessionPluginConfigDialogProps } from "./components/SessionPluginConfigDialog";
|
|
19
|
+
export { SessionPluginConfigForm } from "./components/SessionPluginConfigForm";
|
|
20
|
+
export type { SessionPluginConfigDraft, SessionPluginConfigFormProps, } from "./components/SessionPluginConfigForm";
|
|
15
21
|
export { AgentChat } from "./components/AgentChat";
|
|
16
22
|
export type { AgentChatProps } from "./components/AgentChat";
|
|
17
23
|
export { LlmChat } from "./components/LlmChat";
|
|
@@ -34,8 +40,13 @@ export type { PlanStepStatus, PlanUpdateData, PlanUpdateDisplayState, } from "./
|
|
|
34
40
|
export { ContextCard, ContextGroupCard } from "./components/ContextCard";
|
|
35
41
|
export type { ContextCardProps, ContextGroupCardProps } from "./components/ContextCard";
|
|
36
42
|
export { collectMemoryRefs, MemoryRefsHint } from "./components/AssistantTurnBlock";
|
|
43
|
+
export { ToolUiCardView } from "./components/ToolUiCardView";
|
|
44
|
+
export { McpAppCard } from "./components/McpAppCard";
|
|
45
|
+
export type { McpAppMessage } from "./components/McpAppCard";
|
|
37
46
|
export { SessionMemoryToggle } from "./components/SessionMemoryToggle";
|
|
38
47
|
export type { SessionMemoryToggleProps } from "./components/SessionMemoryToggle";
|
|
48
|
+
export { SessionQueuePanel } from "./components/SessionQueuePanel";
|
|
49
|
+
export type { SessionQueuePanelProps } from "./components/SessionQueuePanel";
|
|
39
50
|
export { isAgentComputerCommand, isAgentComputerToolCall, classifyAgentComputerLaunchOutcome, } from "./lib/agent-computer-command";
|
|
40
51
|
export type { AgentComputerLaunchOutcome } from "./lib/agent-computer-command";
|
|
41
52
|
export * from "@blade-hq/agent-client";
|