@blade-hq/agent-react 2610.0.0-beta.8 → 2610.0.0-beta.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +313 -8
  2. package/dist/chunk-G3PMV62Z.js +36 -0
  3. package/dist/components/AgentChat.d.ts +3 -0
  4. package/dist/components/AgentLoopBlock.d.ts +3 -5
  5. package/dist/components/AgentTaskCard.d.ts +12 -0
  6. package/dist/components/AskUserQuestionBlock.d.ts +12 -1
  7. package/dist/components/AssistantTurnBlock.d.ts +26 -8
  8. package/dist/components/ChatInput.d.ts +21 -1
  9. package/dist/components/ChatSurface.d.ts +133 -2
  10. package/dist/components/ChatView.d.ts +1 -1
  11. package/dist/components/ConnectorPanel.d.ts +41 -0
  12. package/dist/components/ContextCard.d.ts +20 -0
  13. package/dist/components/MarkdownContent.d.ts +17 -0
  14. package/dist/components/McpAppCard.d.ts +14 -0
  15. package/dist/components/MessageList.d.ts +38 -4
  16. package/dist/components/PlanUpdateBlock.d.ts +32 -0
  17. package/dist/components/PluginConnectorList.d.ts +47 -0
  18. package/dist/components/PluginTriggerStack.d.ts +22 -0
  19. package/dist/components/PostChatFollowupBlock.d.ts +5 -1
  20. package/dist/components/SessionMemoryToggle.d.ts +19 -0
  21. package/dist/components/SessionPluginConfigDialog.d.ts +10 -0
  22. package/dist/components/SessionPluginConfigForm.d.ts +14 -0
  23. package/dist/components/SessionPluginIcon.d.ts +30 -0
  24. package/dist/components/SessionPluginSelector.d.ts +10 -0
  25. package/dist/components/SessionQueuePanel.d.ts +74 -0
  26. package/dist/components/ToolCallBlock.d.ts +9 -3
  27. package/dist/components/ToolUiCardView.d.ts +9 -0
  28. package/dist/components/TurnNavRail.d.ts +23 -0
  29. package/dist/components/UserMessageBubble.d.ts +7 -3
  30. package/dist/components/WhatIfUserBubble.d.ts +7 -0
  31. package/dist/components/connector-panel-types.d.ts +37 -0
  32. package/dist/components/display-utils.d.ts +10 -0
  33. package/dist/components/markdown/heal-incomplete.d.ts +7 -0
  34. package/dist/components/markdown/incremental.d.ts +73 -0
  35. package/dist/components/markdown/index.d.ts +18 -0
  36. package/dist/components/markdown/parse.d.ts +19 -0
  37. package/dist/components/markdown/render.d.ts +79 -0
  38. package/dist/components/markdown/sanitize.d.ts +50 -0
  39. package/dist/components/markdown/types.d.ts +53 -0
  40. package/dist/components/plugin-config-draft.d.ts +13 -0
  41. package/dist/components/plugin-config-schema.d.ts +6 -0
  42. package/dist/components/plugin-connector.d.ts +40 -0
  43. package/dist/components/queue-panel-adjacency.d.ts +1 -0
  44. package/dist/components/use-session-plugin-activation.d.ts +40 -0
  45. package/dist/context.d.ts +1 -0
  46. package/dist/embed/blade-chat-element.d.ts +4 -3
  47. package/dist/embed/entry.d.ts +50 -0
  48. package/dist/hooks/use-agent-session.d.ts +5 -0
  49. package/dist/hooks/use-message-pin.d.ts +28 -0
  50. package/dist/hooks/use-turn-navigation.d.ts +117 -0
  51. package/dist/hooks/use-typewriter-reveal.d.ts +32 -0
  52. package/dist/index.d.ts +53 -1
  53. package/dist/index.js +58276 -2243
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/agent-computer-command.d.ts +34 -0
  56. package/dist/lib/random-id.d.ts +10 -0
  57. package/dist/lib/utils.d.ts +17 -2
  58. package/dist/lib/whatif-prompt.d.ts +18 -0
  59. package/dist/style.css +506 -401
  60. package/dist/style.full.css +517 -405
  61. package/dist/webapi-W3IB5DO4.js +2481 -0
  62. package/dist/webapi-W3IB5DO4.js.map +1 -0
  63. package/package.json +2 -2
  64. package/public-api.md +1762 -67
  65. package/dist/chunk-ZXXLY4RM.js +0 -28255
  66. package/dist/chunk-ZXXLY4RM.js.map +0 -1
  67. package/dist/highlighted-body-B3W2YXNL-YD7FAP6V.js +0 -27
  68. package/dist/highlighted-body-B3W2YXNL-YD7FAP6V.js.map +0 -1
  69. package/dist/mermaid-3ZIDBTTL-N7YKJ3SM.js +0 -8
  70. /package/dist/{mermaid-3ZIDBTTL-N7YKJ3SM.js.map → chunk-G3PMV62Z.js.map} +0 -0
@@ -18,19 +18,48 @@ declare function getChat(element: Element | null): Promise<AgentSession>;
18
18
  declare const BladeAgent: {
19
19
  BladeClient: typeof agentClient.BladeClient;
20
20
  BladeApiError: typeof agentClient.BladeApiError;
21
+ isEntryGoneError: typeof agentClient.isEntryGoneError;
22
+ PollingBackoff: typeof agentClient.PollingBackoff;
23
+ EMPTY_PLATFORM_ENDPOINTS: agentClient.PlatformEndpoints;
24
+ loadPlatformEndpoints: typeof agentClient.loadPlatformEndpoints;
25
+ resolveServiceUrl: typeof agentClient.resolveServiceUrl;
21
26
  SDK_NAME: "agent-client";
22
27
  SDK_VERSION: string;
23
28
  AgentSession: typeof AgentSession;
29
+ AgentSessionError: typeof agentClient.AgentSessionError;
24
30
  SessionHub: typeof agentClient.SessionHub;
31
+ isMcpAppData: typeof agentClient.isMcpAppData;
25
32
  SessionSetupError: typeof agentClient.SessionSetupError;
26
33
  createInitialSessionState: typeof agentClient.createInitialSessionState;
34
+ reconcileHistoricalUserTurns: typeof agentClient.reconcileHistoricalUserTurns;
27
35
  reconcileOptimisticUserTurns: typeof agentClient.reconcileOptimisticUserTurns;
28
36
  toReplaySnapshot: typeof agentClient.toReplaySnapshot;
37
+ EMPTY_SESSION_QUEUE: agentClient.SessionQueueSnapshot;
38
+ canCancelQueuedMessage: typeof agentClient.canCancelQueuedMessage;
39
+ canDeliverQueuedMessage: typeof agentClient.canDeliverQueuedMessage;
40
+ canEditQueuedMessage: typeof agentClient.canEditQueuedMessage;
41
+ isSessionQueueSnapshot: typeof agentClient.isSessionQueueSnapshot;
42
+ parseQueueAck: typeof agentClient.parseQueueAck;
43
+ queuePauseReasonLabel: typeof agentClient.queuePauseReasonLabel;
44
+ queuedMessageStatusLabel: typeof agentClient.queuedMessageStatusLabel;
45
+ shouldApplySnapshot: typeof agentClient.shouldApplySnapshot;
29
46
  connectEmbedded: typeof agentClient.connectEmbedded;
30
47
  isCommandEnvelope: typeof agentClient.isCommandEnvelope;
31
48
  isInboundEnvelope: typeof agentClient.isInboundEnvelope;
49
+ ComputersResource: typeof agentClient.ComputersResource;
50
+ canToggleComputer: typeof agentClient.canToggleComputer;
51
+ computerDaemonVersion: typeof agentClient.computerDaemonVersion;
52
+ computerOS: typeof agentClient.computerOS;
53
+ computerPlatformLabel: typeof agentClient.computerPlatformLabel;
54
+ computerState: typeof agentClient.computerState;
55
+ sortComputers: typeof agentClient.sortComputers;
32
56
  ModelsResource: typeof agentClient.ModelsResource;
57
+ ChatGroupsResource: typeof agentClient.ChatGroupsResource;
58
+ PluginsResource: typeof agentClient.PluginsResource;
59
+ hasChatRunEvent: typeof agentClient.hasChatRunEvent;
60
+ inferToolStatus: typeof agentClient.inferToolStatus;
33
61
  buildMessageContent: typeof agentClient.buildMessageContent;
62
+ chatErrorForDisplay: typeof agentClient.chatErrorForDisplay;
34
63
  contentPreview: typeof agentClient.contentPreview;
35
64
  extractTextAttachments: typeof agentClient.extractTextAttachments;
36
65
  getFileParts: typeof agentClient.getFileParts;
@@ -40,7 +69,20 @@ declare const BladeAgent: {
40
69
  isHiddenInternalMessage: typeof agentClient.isHiddenInternalMessage;
41
70
  normalizeMessageContent: typeof agentClient.normalizeMessageContent;
42
71
  transformSlashCommand: typeof agentClient.transformSlashCommand;
72
+ contextProjectionData: typeof agentClient.contextProjectionData;
73
+ getContextDisplayState: typeof agentClient.getContextDisplayState;
74
+ getContextGroupDisplayState: typeof agentClient.getContextGroupDisplayState;
75
+ groupAdjacentContextRuns: typeof agentClient.groupAdjacentContextRuns;
43
76
  latestPostChatFollowup: typeof agentClient.latestPostChatFollowup;
77
+ buildToolUiCardKey: typeof agentClient.buildToolUiCardKey;
78
+ collectInlineToolUiCards: typeof agentClient.collectInlineToolUiCards;
79
+ collectPreviewToolUiCards: typeof agentClient.collectPreviewToolUiCards;
80
+ isAppDevToolUiCard: typeof agentClient.isAppDevToolUiCard;
81
+ isInternalStatusToolUiCard: typeof agentClient.isInternalStatusToolUiCard;
82
+ isToolUiCard: typeof agentClient.isToolUiCard;
83
+ resolveToolUiCardContent: typeof agentClient.resolveToolUiCardContent;
84
+ prependOlder: typeof agentClient.prependOlder;
85
+ replaceWindow: typeof agentClient.replaceWindow;
44
86
  DEFAULT_REPLAY_SPEED: agentClient.ReplaySpeed;
45
87
  SessionInfo: import("arktype/internal/variants/object.ts").ObjectType<{
46
88
  id: string;
@@ -51,6 +93,7 @@ declare const BladeAgent: {
51
93
  shared?: boolean | undefined;
52
94
  memory_enabled?: boolean | undefined;
53
95
  is_persistent?: boolean | undefined;
96
+ initiator?: "sdk" | "ui" | "unknown" | null | undefined;
54
97
  is_headless?: boolean | undefined;
55
98
  viewer_role?: "owner" | "viewer" | undefined;
56
99
  template_id?: string | null | undefined;
@@ -71,7 +114,11 @@ declare const BladeAgent: {
71
114
  disable_tools?: string[] | undefined;
72
115
  runtime_type?: string | null | undefined;
73
116
  daemon_id?: string | null | undefined;
117
+ agent_runtime_id?: string | null | undefined;
74
118
  workspace_path?: string | null | undefined;
119
+ ba_version?: string | null | undefined;
120
+ sandbox_version?: string | null | undefined;
121
+ chat_group_id?: string | null | undefined;
75
122
  match?: unknown;
76
123
  }, {}>;
77
124
  SessionStatus: import("arktype/internal/variants/string.ts").StringType<"completed" | "created" | "failed" | "interrupted" | "running" | "waiting_for_input", {}>;
@@ -87,7 +134,10 @@ declare const BladeAgent: {
87
134
  }, {}>;
88
135
  TaskStatus: import("arktype/internal/variants/string.ts").StringType<"done" | "failed" | "in_progress" | "pending" | "skipped", {}>;
89
136
  acceptedPostChatFollowupCompletesLatestRun: typeof agentClient.acceptedPostChatFollowupCompletesLatestRun;
137
+ acknowledgeTurnEvents: typeof agentClient.acknowledgeTurnEvents;
90
138
  ClientProjectionBuilder: typeof agentClient.ClientProjectionBuilder;
139
+ AuthBusyReconnect: typeof agentClient.AuthBusyReconnect;
140
+ authBusyRetryDelayMs: typeof agentClient.authBusyRetryDelayMs;
91
141
  createSocket: typeof agentClient.createSocket;
92
142
  getChat: typeof getChat;
93
143
  BladeChatElement: typeof BladeChatElement;
@@ -4,6 +4,11 @@ export interface UseAgentSessionOptions {
4
4
  createOptions?: CreateSessionRequest;
5
5
  /** 自动创建出的 sessionId 通过此回调交还调用方持有(重挂载复用的依据)。 */
6
6
  onSessionCreated?: (sessionId: string) => void;
7
+ /**
8
+ * 会话进入实时事件路由后、历史加载与房间订阅开始前同步执行。
9
+ * 返回的清理函数会在切换会话或卸载时执行。
10
+ */
11
+ onSessionConnected?: (session: AgentSession) => () => void;
7
12
  }
8
13
  export interface UseAgentSessionResult {
9
14
  /** 连接/创建完成前为 null。 */
@@ -0,0 +1,28 @@
1
+ export interface UseMessagePinOptions {
2
+ targetKey: string | null;
3
+ pinTarget: boolean;
4
+ /**
5
+ * 省略时按旧行为处理(视为一直流式中,只靠 targetKey 变化释放)——
6
+ * useMessagePin 是导出的公开 hook,加这个字段前如果直接改成必填,
7
+ * 所有已经在调用这个 hook 的外部使用方都会编译不过。
8
+ */
9
+ isStreaming?: boolean;
10
+ layoutKey?: string;
11
+ getScrollElement: () => HTMLElement | null;
12
+ getContentElement?: () => HTMLElement | null;
13
+ getTargetElement: () => HTMLElement | null;
14
+ getTargetScrollTop?: (scroll: HTMLElement) => number | null;
15
+ getSpacerHeight: () => number;
16
+ setSpacerHeight: (height: number) => void;
17
+ stopAutoScroll: () => void;
18
+ scrollToBottom: () => void;
19
+ margin?: number;
20
+ }
21
+ /**
22
+ * 用户发言顶置的共享状态机。SDK 和内置轻量列表只提供 DOM/虚拟列表适配器,
23
+ * 触发、调度、resize、手动接管和跟随交还的决策只在这里维护。
24
+ */
25
+ export declare function useMessagePin({ targetKey, pinTarget, isStreaming, layoutKey, getScrollElement, getContentElement, getTargetElement, getTargetScrollTop, getSpacerHeight, setSpacerHeight, stopAutoScroll, scrollToBottom, margin, }: UseMessagePinOptions): {
26
+ release: () => void;
27
+ isActive: () => boolean;
28
+ };
@@ -0,0 +1,117 @@
1
+ import { type ChatMessage, type SessionTurnIndexItem, type TurnProjection } from "@blade-hq/agent-client";
2
+ /** 高亮用的类名。样式在 agent-react 的 style.css 与内置 Web 的 app.css 各有一份。 */
3
+ export declare const TURN_NAV_HIGHLIGHT_CLASS = "blade-turn-nav-flash";
4
+ /**
5
+ * 消息导航的数据源:宿主把"目录从哪来""定位怎么发"接给共享时序。
6
+ *
7
+ * SDK 的 AgentChat 用 `AgentSession.loadTurnIndex` / `locateEntry`;内置 Web 用
8
+ * 自己的 store。没有会话目录的宿主(例如分享页)只传 `locateEntry` 与兜底条目。
9
+ */
10
+ /** 刻度轨的一条:稳定 entry id + 标题。内置 Web 的同名类型形状一致。 */
11
+ export interface TurnNavItem {
12
+ id: string;
13
+ title: string;
14
+ }
15
+ export interface TurnNavigationSource {
16
+ /** 目录来源;不传就不请求目录,导航条目只由 `fallbackItems` 兜底。 */
17
+ loadTurnIndex?: () => Promise<SessionTurnIndexItem[]>;
18
+ /** 定位:服务端返回"从这条发言到最新"的窗口并整窗替换。成功返回 true。 */
19
+ locateEntry: (entryId: string) => Promise<boolean>;
20
+ /**
21
+ * 取消在途定位。每次新的选择都会先调它每次新的选择都会先调它:用户改点一条**已加载**的发言时不发定位请求,
22
+ * 前一次在途的定位却已经发出去了——不取消的话它晚回来照样换窗口,把用户刚选中的
23
+ * 那一段换掉。
24
+ */
25
+ cancelPendingLocate?: () => void;
26
+ /**
27
+ * 目录刷新信号:会话里最新的用户发言变了(新发言、乐观发言被服务端确认)。
28
+ *
29
+ * 只认**最新一条**发言:往上翻页会补进更早的发言,用"窗口里全部发言"当信号的话,
30
+ * 正在进行的定位会被自己触发的刷新作废——翻页成功了却不滚动,要再点一次。
31
+ */
32
+ reloadKey?: number | string | null;
33
+ /**
34
+ * timeline 被**外部**整体重写(rewind / checkout / 修复重载)时变化。与 `reloadKey`
35
+ * 的区别是语义:`reloadKey` 变化只是「可能变了」,刷新期间先照旧显示;这里变化一定是
36
+ * 旧目录作废,旧条目必须立刻丢掉——它们的 entry id 可能已经不在 timeline 上了。
37
+ *
38
+ * 必须只由外部改写推进:定位自己换窗口同样会推进"窗口世代",拿它当信号会把正在进行的
39
+ * 那次定位当场作废(点了没反应,要再点一次)。内置 Web 用 store 的
40
+ * `historyRewriteRevision`,SDK 用会话的 `rewind` 事件。
41
+ */
42
+ rewriteKey?: number | string | null;
43
+ /**
44
+ * 目录拿不到时的兜底条目。
45
+ *
46
+ * 分享页的历史本来就是整份加载的:它没有会话目录接口,导航条目直接由已加载的
47
+ * 发言推出来。这只覆盖"整份都在窗口里"的场景,长会话不能拿它代替目录。
48
+ */
49
+ fallbackItems?: TurnNavItem[];
50
+ }
51
+ /** 共享时序还要知道"怎么在宿主自己的列表里找到那一行"。 */
52
+ export interface TurnNavigationOptions extends TurnNavigationSource {
53
+ /** 当前会话;变了就丢弃在途的定位结果、目录和高亮。 */
54
+ sessionId?: string | null;
55
+ /** 已加载窗口里该发言的行;不在当前列表里返回 null。 */
56
+ getLoadedEntryElement: (entryId: string) => HTMLElement | null;
57
+ /**
58
+ * 这条发言在不在已加载窗口里(哪怕它的行因为虚拟列表还没挂出来)。
59
+ *
60
+ * 没有它就只能拿"DOM 里有没有这一行"当"加载没加载":长会话里滚出挂载范围的旧发言
61
+ * 会被当成窗口外,白白发一次定位请求(分享页更糟——那里根本没有定位接口)。不传则
62
+ * 退回只看 DOM。
63
+ */
64
+ isEntryLoaded?: (entryId: string) => boolean;
65
+ /**
66
+ * 已加载但还没进 DOM 的行(虚拟列表)——让宿主先把目标挂出来,下一帧
67
+ * `getLoadedEntryElement` 就能查到。宿主没有虚拟列表时不用传。
68
+ */
69
+ revealEntry?: (entryId: string) => void;
70
+ /**
71
+ * 开始定位前的一次性钩子:宿主在这里放弃自己的滚动控制(新轮置顶动画、
72
+ * 「跟随到底」),否则它们会继续写 `scrollTop`,把视口从目标行上拽走。
73
+ */
74
+ beforeSeek?: (entryId: string) => void;
75
+ }
76
+ /**
77
+ * 目录刷新信号:窗口里**最后一条**用户发言的稳定 id。
78
+ *
79
+ * 与内置 Web 的 `latestUserSpeechEntryId`(message-list-blocks.ts)同一判据、同一
80
+ * 名称,输入不同:那边拿渲染好的消息,这边拿投影轮。两边都只认"最新一条",因为
81
+ * 往前翻页补进的更早发言不改变目录的结尾,用"窗口里全部发言"当信号会把正在进行的
82
+ * 定位判成过期。
83
+ *
84
+ * AskUserQuestion 的回答在消息列表里也渲染成用户发言,所以带回答标记的轮同样算一条。
85
+ */
86
+ export declare function latestUserSpeechEntryId(turns: TurnProjection[]): string | null;
87
+ /**
88
+ * 从已加载的消息推出轨道条目:给没有目录接口的宿主(分享页、静态会话)兜底。
89
+ *
90
+ * 判据与内置 Web 的 `MessageList` 一致:根循环里渲染成用户发言的消息、排除内部提示,
91
+ * 标题按服务端目录同一口径截断。**不能**拿它代替长会话的目录——窗口里没有更早的发言。
92
+ */
93
+ export declare function turnNavItemsFromMessages(messages: ChatMessage[]): TurnNavItem[];
94
+ export interface TurnNavigationResult {
95
+ /** 当前会话的用户发言目录。 */
96
+ items: TurnNavItem[];
97
+ /** 正在请求定位的那条发言;请求结束就清空。 */
98
+ loadingEntryId: string | null;
99
+ /** 上一条定位失败的提示;点下一条时清空。 */
100
+ error: string | null;
101
+ /** 定位失败的那条发言:重试就是再点它一次。 */
102
+ failedEntryId: string | null;
103
+ /** 最后一条被定位(或正在定位)的发言,用来给刻度轨选中态。 */
104
+ activeEntryId: string | null;
105
+ selectEntry: (entryId: string) => void;
106
+ }
107
+ /**
108
+ * 用户发言的跨页定位:滚动、加载状态、高亮三件事的唯一实现,内置 Web 与 SDK
109
+ * 共用同一份时序。
110
+ *
111
+ * 点已加载的发言:不请求任何东西,直接滚动 + 高亮。点窗口外的发言:发一次定位请求
112
+ * (服务端返回"从它到最新"的窗口),等 React 提交、目标行挂出来再滚动 + 高亮;
113
+ * 请求失败或行始终没出现就报一句可重试的提示,**不动滚动位置**。
114
+ *
115
+ * 会话切换、历史被整体重写、或用户点了下一条时,在途结果一律丢弃。
116
+ */
117
+ export declare function useTurnNavigation({ sessionId, getLoadedEntryElement, isEntryLoaded, locateEntry, cancelPendingLocate, loadTurnIndex, fallbackItems, revealEntry, beforeSeek, reloadKey, rewriteKey, }: TurnNavigationOptions): TurnNavigationResult;
@@ -0,0 +1,32 @@
1
+ export interface UseTypewriterRevealResult {
2
+ /** 当前应该渲染的文字——被截断到"已显示长度",不是目标全文。 */
3
+ displayedText: string;
4
+ /** 缓冲池是否还没追平目标全文;跟 isStreaming 做 || 判断输入框状态用。 */
5
+ isRevealing: boolean;
6
+ /**
7
+ * 立即把 displayedText 设成当前目标全文、取消播放循环——用户主动点了
8
+ * 停止,或者这一路因为中断/出错结束时调用。到达的内容不能丢,只是不再
9
+ * 需要"看起来在打字"这个动画效果。
10
+ */
11
+ flushNow: () => void;
12
+ }
13
+ /**
14
+ * 打字机式显示节流:服务端到达速率天然不均匀(一次推 5 个字、一次推 20
15
+ * 个字),直接原样渲染会显得忽快忽慢。按估算到达速度、留一个很小的固定
16
+ * 滞后量匀速播放 targetText。
17
+ *
18
+ * 纯渲染层的本地播放状态,不触碰 AgentSession/chat-store 的任何内部状态——
19
+ * 调用方从各自现有的、没有改动过的数据里取 targetText,这里只负责"这一帧
20
+ * 该显示到第几个字"。
21
+ *
22
+ * @param targetText 当前已到达的完整(未截断)文本。
23
+ * @param isLive 是否是真正的实时直播(不是历史加载 / rewind / replay)——
24
+ * 非直播场景永远整段直接显示,这是"流式与历史必须产生相同结果"这条硬
25
+ * 规则唯一允许的例外,只在真正的实时直播里生效。
26
+ * @param resetKey 标识"这是哪一段正在增长的内容"(比如 turn_id 或者
27
+ * `${turnId}:${blockIndex}`)——变化时说明换了一段全新的内容(比如上一个
28
+ * block 已经交付完、轮到下一个 block 在长,或者切到了新的一轮),播放
29
+ * 状态要重新从头开始,不能带着上一段的进度继续,否则会出现"从上一段的
30
+ * 长度往下掉"这种回退闪烁。
31
+ */
32
+ export declare function useTypewriterReveal(targetText: string, isLive: boolean, resetKey: string | null): UseTypewriterRevealResult;
package/dist/index.d.ts CHANGED
@@ -5,19 +5,71 @@ export type { UseAgentSessionOptions, UseAgentSessionResult } from "./hooks/use-
5
5
  export { useReplay } from "./hooks/use-replay";
6
6
  export type { ReplayMismatch, UseReplayResult } from "./hooks/use-replay";
7
7
  export { useLlmChat } from "./hooks/use-llm-chat";
8
+ export { useMessagePin } from "./hooks/use-message-pin";
9
+ export type { UseMessagePinOptions } from "./hooks/use-message-pin";
10
+ export { useTypewriterReveal } from "./hooks/use-typewriter-reveal";
11
+ export type { UseTypewriterRevealResult } from "./hooks/use-typewriter-reveal";
12
+ export { latestUserSpeechEntryId, TURN_NAV_HIGHLIGHT_CLASS, turnNavItemsFromMessages, useTurnNavigation, } from "./hooks/use-turn-navigation";
13
+ export type { TurnNavigationOptions, TurnNavigationResult, TurnNavigationSource, } from "./hooks/use-turn-navigation";
14
+ export { TurnNavRail } from "./components/TurnNavRail";
15
+ export type { TurnNavRailProps } from "./components/TurnNavRail";
8
16
  export type { ChatCompletionTool, LlmChatOptions, LlmToolCall, UseLlmChatResult, } from "./hooks/use-llm-chat";
9
17
  export { ChatView } from "./components/ChatView";
10
- export type { ChatViewClassNames, ChatViewProps, ChatViewRenderers, ChatViewSlots, FollowupInteractionEvent, } from "./components/ChatView";
18
+ export type { AssistantTextRendererProps, AskUserQuestionRendererProps, ChatViewClassNames, ChatViewProps, ChatViewRenderers, ChatViewSlots, FollowupInteractionEvent, PlanUpdateRendererProps, UserMessageRendererProps, } from "./components/ChatView";
19
+ export { ConnectorPanel } from "./components/ConnectorPanel";
20
+ export type { ConnectorPanelProps } from "./components/ConnectorPanel";
21
+ export { PluginConnectorList } from "./components/PluginConnectorList";
22
+ export type { ConfiguringPlugin, PluginConnectorListProps } from "./components/PluginConnectorList";
23
+ export { useSessionPluginActivation } from "./components/use-session-plugin-activation";
24
+ export type { UseSessionPluginActivationResult } from "./components/use-session-plugin-activation";
25
+ export { catalogToConnectorItems, filterConnectorItems, mergeConnectorItems, } from "./components/plugin-connector";
26
+ export type { PluginConnectorItem } from "./components/plugin-connector";
27
+ export { selectionFromItem, triggerSummary, TRIGGER_ICON_LIMIT } from "./components/connector-panel-types";
28
+ export type { PluginConnectorSelection, TriggerSummary, } from "./components/connector-panel-types";
29
+ export { SessionPluginSelector } from "./components/SessionPluginSelector";
30
+ export type { SessionPluginSelectorProps } from "./components/SessionPluginSelector";
31
+ export { SessionPluginIcon, sessionPluginLabel } from "./components/SessionPluginIcon";
32
+ export type { SessionPluginIconProps, SessionPluginLabelProps } from "./components/SessionPluginIcon";
33
+ export { PluginTriggerStack } from "./components/PluginTriggerStack";
34
+ export type { PluginTriggerStackProps } from "./components/PluginTriggerStack";
35
+ export { SessionPluginConfigDialog } from "./components/SessionPluginConfigDialog";
36
+ export type { SessionPluginConfigDialogProps } from "./components/SessionPluginConfigDialog";
37
+ export { SessionPluginConfigForm } from "./components/SessionPluginConfigForm";
38
+ export type { SessionPluginConfigDraft, SessionPluginConfigFormProps, } from "./components/SessionPluginConfigForm";
11
39
  export { AgentChat } from "./components/AgentChat";
12
40
  export type { AgentChatProps } from "./components/AgentChat";
13
41
  export { LlmChat } from "./components/LlmChat";
14
42
  export type { LlmChatHandle, LlmChatProps } from "./components/LlmChat";
15
43
  export type { LlmAdvancedSettings, LlmOverride } from "./components/LlmAdvancedSettings";
16
44
  export { MarkdownContent } from "./components/MarkdownContent";
45
+ export { ExternalAnchor, normalizeAdjacentUrlFormatting, stripSystemReminders } from "./components/MarkdownContent";
17
46
  export type { MarkdownContentProps } from "./components/MarkdownContent";
47
+ export { DEFAULT_ALLOWED_TAGS, MarkdownRenderer } from "./components/markdown";
48
+ export type { AllowedTags, CodeBlockOverrides, LinkSafetyConfig, MarkdownComponents, MarkdownRendererProps, RawHtmlPlugin, } from "./components/markdown";
49
+ export { WhatIfUserBubble } from "./components/WhatIfUserBubble";
50
+ export type { WhatIfUserBubbleProps } from "./components/WhatIfUserBubble";
51
+ export { parseWhatIfPrompt } from "./lib/whatif-prompt";
52
+ export type { ParsedWhatIfPrompt, WhatIfQuote } from "./lib/whatif-prompt";
18
53
  export { ReplayBar } from "./components/ReplayBar";
19
54
  export type { ReplayBarProps } from "./components/ReplayBar";
20
55
  export { ReplayMismatchPrompt } from "./components/ReplayMismatchPrompt";
21
56
  export type { ReplayMismatchPromptProps } from "./components/ReplayMismatchPrompt";
22
57
  export type { ToolCallRenderer } from "./components/ToolCallBlock";
58
+ export { CurrentPlanPanel, getPlanUpdateDisplayState, isPlanUpdateTool, PLAN_AUTO_COLLAPSE_MS, parsePlanUpdate, pickCurrentPlanStep, PlanUpdateBlock, } from "./components/PlanUpdateBlock";
59
+ export type { PlanStepStatus, PlanUpdateData, PlanUpdateDisplayState, } from "./components/PlanUpdateBlock";
60
+ export { ContextCard, ContextGroupCard } from "./components/ContextCard";
61
+ export type { ContextCardProps, ContextGroupCardProps } from "./components/ContextCard";
62
+ export { collectMemoryRefs, MemoryRefsHint } from "./components/AssistantTurnBlock";
63
+ export { ToolUiCardView } from "./components/ToolUiCardView";
64
+ export type { AskUserQuestionData } from "./components/AskUserQuestionBlock";
65
+ export { McpAppCard } from "./components/McpAppCard";
66
+ export type { McpAppMessage } from "./components/McpAppCard";
67
+ export { SessionMemoryToggle } from "./components/SessionMemoryToggle";
68
+ export type { SessionMemoryToggleProps } from "./components/SessionMemoryToggle";
69
+ export { SessionQueuePanel, isQueuePanelVisible } from "./components/SessionQueuePanel";
70
+ export type { SessionQueuePanelProps } from "./components/SessionQueuePanel";
71
+ export { isAgentComputerCommand, isAgentComputerToolCall, classifyAgentComputerLaunchOutcome, } from "./lib/agent-computer-command";
72
+ export type { AgentComputerLaunchOutcome } from "./lib/agent-computer-command";
23
73
  export * from "@blade-hq/agent-client";
74
+ export { AgentTaskCard } from "./components/AgentTaskCard";
75
+ export type { AgentTaskCardProps, AgentTaskStatus } from "./components/AgentTaskCard";