@invergent/agent-chat-react 2.8.5 → 2.8.7

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/dist/index.d.cts CHANGED
@@ -353,6 +353,8 @@ interface AgentChatInboxItem {
353
353
  updatedAt: string;
354
354
  readAt: string | null;
355
355
  respondedAt: string | null;
356
+ agentId?: string | null;
357
+ agentSlug?: string | null;
356
358
  }
357
359
  interface AgentChatInboxList {
358
360
  items: AgentChatInboxItem[];
@@ -384,6 +386,14 @@ interface AgentChatBrowserState {
384
386
  status: "provisioning" | "live" | "user-control" | "closed";
385
387
  controlOwner: string | null;
386
388
  }
389
+ interface AgentChatBrowserProfile {
390
+ id: string;
391
+ name: string;
392
+ cookieDomains: string[];
393
+ hasState: boolean;
394
+ createdAt: string;
395
+ lastUsedAt: string | null;
396
+ }
387
397
  interface AgentChatBrowserPreviewSnapshot {
388
398
  src: string;
389
399
  capturedAt?: string;
@@ -831,6 +841,8 @@ interface AgentChatAdapter {
831
841
  acquireBrowserControl(sessionId: string): Promise<AgentChatBrowserControlResponse>;
832
842
  releaseBrowserControl(sessionId: string): Promise<void>;
833
843
  browserLiveViewUrl(sessionId: string): string;
844
+ /** List the caller's saved browser profiles (optional capability). */
845
+ listBrowserProfiles?(): Promise<AgentChatBrowserProfile[]>;
834
846
  /**
835
847
  * Permanently terminate the session's browser sandbox (destroys the
836
848
  * pod / container, drops the registry entry). Optional — when
@@ -933,6 +945,13 @@ interface AgentChatProps {
933
945
  * their toast system; the SDK does not surface these on its own.
934
946
  */
935
947
  onComposerError?: (err: ChatComposerError) => void;
948
+ /**
949
+ * Browser-profile selection (host-managed). When ``onSelectBrowserProfile``
950
+ * is provided and the browser is available, the composer shows a profile
951
+ * picker; the host threads the chosen id into session creation.
952
+ */
953
+ browserProfileId?: string | null;
954
+ onSelectBrowserProfile?: (id: string | null) => void;
936
955
  /**
937
956
  * Per-agent capability flag. When true, the composer surfaces the
938
957
  * ``/deep-research`` slash command in its builtin menu. Off by
@@ -977,7 +996,7 @@ interface AgentChatProps {
977
996
  */
978
997
  onOpenBilling?: () => void;
979
998
  }
980
- declare function AgentChat({ adapter, agentId, sessionId, onSessionChange, onFileSelect, onMessagesChange, disabled, onComposerError, deepResearchEnabled, researchEnabled, codeAgentsEnabled, loopsEnabled, missionsEnabled, goalsEnabled, compressEnabled, onOpenIntegrations, onOpenBilling, }: AgentChatProps): react_jsx_runtime.JSX.Element;
999
+ declare function AgentChat({ adapter, agentId, sessionId, onSessionChange, onFileSelect, onMessagesChange, disabled, onComposerError, browserProfileId, onSelectBrowserProfile, deepResearchEnabled, researchEnabled, codeAgentsEnabled, loopsEnabled, missionsEnabled, goalsEnabled, compressEnabled, onOpenIntegrations, onOpenBilling, }: AgentChatProps): react_jsx_runtime.JSX.Element;
981
1000
 
982
1001
  interface AgentChatAdapterContextValue {
983
1002
  adapter: AgentChatAdapter;
@@ -1039,6 +1058,19 @@ declare class FetchSseEventStream {
1039
1058
  type MessageResponseProps = ComponentProps<typeof Streamdown>;
1040
1059
  declare const MessageResponse: React.MemoExoticComponent<({ className, ...props }: MessageResponseProps) => react_jsx_runtime.JSX.Element>;
1041
1060
 
1061
+ interface BrowserLiveViewProps {
1062
+ src: string;
1063
+ testId?: string;
1064
+ /**
1065
+ * Called when the RFB connection drops *unexpectedly* (server close on
1066
+ * control-lease expiry, network blip, security failure) — not on intentional
1067
+ * unmount. ``clean`` mirrors noVNC's ``disconnect`` detail. The pane uses
1068
+ * this to drop local control state and fall back to the preview snapshot.
1069
+ */
1070
+ onDisconnect?: (clean: boolean) => void;
1071
+ }
1072
+ declare function BrowserLiveView({ src, testId, onDisconnect, }: BrowserLiveViewProps): react_jsx_runtime.JSX.Element;
1073
+
1042
1074
  interface ComposioConnectCardProps {
1043
1075
  /** The Composio hosted connect URL (connect.composio.dev/link/…). */
1044
1076
  url: string;
@@ -1092,12 +1124,13 @@ interface CodingAgentsPanelProps {
1092
1124
  */
1093
1125
  declare function CodingAgentsPanel({ agentId, adapter, onBack }: CodingAgentsPanelProps): react_jsx_runtime.JSX.Element | null;
1094
1126
 
1127
+ type OnSessionSelect = (sessionId: string, item?: AgentChatInboxItem) => void;
1095
1128
  interface InboxPanelProps {
1096
1129
  adapter: AgentChatAdapter;
1097
1130
  title?: string;
1098
1131
  selectedId?: number | null;
1099
1132
  onSelectedIdChange?: (itemId: number | null) => void;
1100
- onSessionSelect?: (sessionId: string) => void;
1133
+ onSessionSelect?: OnSessionSelect;
1101
1134
  hideHeader?: boolean;
1102
1135
  limit?: number;
1103
1136
  }
@@ -1288,4 +1321,4 @@ interface SessionTreePanelProps {
1288
1321
  }
1289
1322
  declare function SessionTreePanel({ adapter, sessionId, activeSessionId, agentId, title, sessionListLimit, hideRoot, hideHeader, loadList, onSessionSelect, onSessionDelete, }: SessionTreePanelProps): react_jsx_runtime.JSX.Element | null;
1290
1323
 
1291
- export { ACTIVE_MISSION_STATUSES, AgentChat, type AgentChatAdapter, type AgentChatAdapterContextValue, AgentChatAdapterProvider, type AgentChatArtifactKind, type AgentChatArtifactMeta, type AgentChatArtifactPayload, type AgentChatAskUserQuestionAnswer, type AgentChatAskUserQuestionArgs, type AgentChatAskUserQuestionChoice, type AgentChatAskUserQuestionQuestion, type AgentChatAttachment, type AgentChatChartArtifactSpec, type AgentChatDisplayAttachment, type AgentChatErrorCategory, type AgentChatErrorInfo, type AgentChatEventStream, type AgentChatEventType, type AgentChatEventsPage, type AgentChatExpertFeedbackRating, type AgentChatHtmlArtifactSpec, type AgentChatIdeaNode, type AgentChatImageAttachment, type AgentChatInboxEventStream, type AgentChatInboxItem, type AgentChatInboxKind, type AgentChatInboxList, type AgentChatInboxListInput, type AgentChatInboxStatus, type AgentChatInboxStreamEvent, type AgentChatMarkdownArtifactSpec, type AgentChatMessage, type AgentChatMessageStatus, type AgentChatMissionEvent, type AgentChatMissionEventSession, type AgentChatMissionEventsPage, type AgentChatMissionList, type AgentChatMissionResearch, type AgentChatMissionStatus, type AgentChatMissionSummary, type AgentChatMissionTask, type AgentChatMissionWorker, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProps, type AgentChatResearchRun, type AgentChatResearchSource, type AgentChatRole, type AgentChatRuntimeApi, type AgentChatRuntimeEvent, type AgentChatScheduledWorkItem, type AgentChatScheduledWorkKind, type AgentChatScheduledWorkList, type AgentChatSession, type AgentChatSessionList, type AgentChatSessionTree, type AgentChatSessionTreeNode, type AgentChatSlashCommand, type AgentChatSseMessageEvent, type AgentChatState, type AgentChatSvgArtifactSpec, type AgentChatSystemKind, type AgentChatTableArtifactSpec, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, type ChartArtifactSpec, type ChatComposerError, type ChatMessage, type CitationSegment, CitationText, type CodingAgentConnection, CodingAgentsPanel, type CodingAgentsPanelProps, ComposioConnectCard, type ComposioConnectCardProps, type ErrorInfo, FetchSseEventStream, type FetchSseEventStreamOptions, type HtmlArtifactSpec, type InboxItem, type InboxList, InboxPanel, type InboxPanelProps, type InboxUnreadCountState, IntegrationsBand, type IntegrationsBandProps, IntegrationsPage, type IntegrationsPageProps, MISSION_EVENT_CATEGORIES, type MarkdownArtifactSpec, MessageResponse, type MessageResponseProps, MissionDashboard, type MissionDashboardProps, type MissionEventCategory, type MissionEventsFeed, type MissionTaskBucket, type MissionTaskRailGroup, type MissionTaskRailGroupKey, MissionsPanel, type MissionsPanelProps, ResearchSourcesPanel, type RetryIndicator, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, formatMissionTimestamp, groupMissionTasksByBucket, isTerminalMissionStatus, mergeMissionEvents, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, splitCitations, stripMissionControlMarkup, useAgentChatAdapterContext, useAgentChatRuntime, useChatViewMode, useInboxUnreadCount, useMissionEvents };
1324
+ export { ACTIVE_MISSION_STATUSES, AgentChat, type AgentChatAdapter, type AgentChatAdapterContextValue, AgentChatAdapterProvider, type AgentChatArtifactKind, type AgentChatArtifactMeta, type AgentChatArtifactPayload, type AgentChatAskUserQuestionAnswer, type AgentChatAskUserQuestionArgs, type AgentChatAskUserQuestionChoice, type AgentChatAskUserQuestionQuestion, type AgentChatAttachment, type AgentChatBrowserProfile, type AgentChatChartArtifactSpec, type AgentChatDisplayAttachment, type AgentChatErrorCategory, type AgentChatErrorInfo, type AgentChatEventStream, type AgentChatEventType, type AgentChatEventsPage, type AgentChatExpertFeedbackRating, type AgentChatHtmlArtifactSpec, type AgentChatIdeaNode, type AgentChatImageAttachment, type AgentChatInboxEventStream, type AgentChatInboxItem, type AgentChatInboxKind, type AgentChatInboxList, type AgentChatInboxListInput, type AgentChatInboxStatus, type AgentChatInboxStreamEvent, type AgentChatMarkdownArtifactSpec, type AgentChatMessage, type AgentChatMessageStatus, type AgentChatMissionEvent, type AgentChatMissionEventSession, type AgentChatMissionEventsPage, type AgentChatMissionList, type AgentChatMissionResearch, type AgentChatMissionStatus, type AgentChatMissionSummary, type AgentChatMissionTask, type AgentChatMissionWorker, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProps, type AgentChatResearchRun, type AgentChatResearchSource, type AgentChatRole, type AgentChatRuntimeApi, type AgentChatRuntimeEvent, type AgentChatScheduledWorkItem, type AgentChatScheduledWorkKind, type AgentChatScheduledWorkList, type AgentChatSession, type AgentChatSessionList, type AgentChatSessionTree, type AgentChatSessionTreeNode, type AgentChatSlashCommand, type AgentChatSseMessageEvent, type AgentChatState, type AgentChatSvgArtifactSpec, type AgentChatSystemKind, type AgentChatTableArtifactSpec, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, BrowserLiveView, type ChartArtifactSpec, type ChatComposerError, type ChatMessage, type CitationSegment, CitationText, type CodingAgentConnection, CodingAgentsPanel, type CodingAgentsPanelProps, ComposioConnectCard, type ComposioConnectCardProps, type ErrorInfo, FetchSseEventStream, type FetchSseEventStreamOptions, type HtmlArtifactSpec, type InboxItem, type InboxList, InboxPanel, type InboxPanelProps, type InboxUnreadCountState, IntegrationsBand, type IntegrationsBandProps, IntegrationsPage, type IntegrationsPageProps, MISSION_EVENT_CATEGORIES, type MarkdownArtifactSpec, MessageResponse, type MessageResponseProps, MissionDashboard, type MissionDashboardProps, type MissionEventCategory, type MissionEventsFeed, type MissionTaskBucket, type MissionTaskRailGroup, type MissionTaskRailGroupKey, MissionsPanel, type MissionsPanelProps, ResearchSourcesPanel, type RetryIndicator, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, formatMissionTimestamp, groupMissionTasksByBucket, isTerminalMissionStatus, mergeMissionEvents, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, splitCitations, stripMissionControlMarkup, useAgentChatAdapterContext, useAgentChatRuntime, useChatViewMode, useInboxUnreadCount, useMissionEvents };
package/dist/index.d.ts CHANGED
@@ -353,6 +353,8 @@ interface AgentChatInboxItem {
353
353
  updatedAt: string;
354
354
  readAt: string | null;
355
355
  respondedAt: string | null;
356
+ agentId?: string | null;
357
+ agentSlug?: string | null;
356
358
  }
357
359
  interface AgentChatInboxList {
358
360
  items: AgentChatInboxItem[];
@@ -384,6 +386,14 @@ interface AgentChatBrowserState {
384
386
  status: "provisioning" | "live" | "user-control" | "closed";
385
387
  controlOwner: string | null;
386
388
  }
389
+ interface AgentChatBrowserProfile {
390
+ id: string;
391
+ name: string;
392
+ cookieDomains: string[];
393
+ hasState: boolean;
394
+ createdAt: string;
395
+ lastUsedAt: string | null;
396
+ }
387
397
  interface AgentChatBrowserPreviewSnapshot {
388
398
  src: string;
389
399
  capturedAt?: string;
@@ -831,6 +841,8 @@ interface AgentChatAdapter {
831
841
  acquireBrowserControl(sessionId: string): Promise<AgentChatBrowserControlResponse>;
832
842
  releaseBrowserControl(sessionId: string): Promise<void>;
833
843
  browserLiveViewUrl(sessionId: string): string;
844
+ /** List the caller's saved browser profiles (optional capability). */
845
+ listBrowserProfiles?(): Promise<AgentChatBrowserProfile[]>;
834
846
  /**
835
847
  * Permanently terminate the session's browser sandbox (destroys the
836
848
  * pod / container, drops the registry entry). Optional — when
@@ -933,6 +945,13 @@ interface AgentChatProps {
933
945
  * their toast system; the SDK does not surface these on its own.
934
946
  */
935
947
  onComposerError?: (err: ChatComposerError) => void;
948
+ /**
949
+ * Browser-profile selection (host-managed). When ``onSelectBrowserProfile``
950
+ * is provided and the browser is available, the composer shows a profile
951
+ * picker; the host threads the chosen id into session creation.
952
+ */
953
+ browserProfileId?: string | null;
954
+ onSelectBrowserProfile?: (id: string | null) => void;
936
955
  /**
937
956
  * Per-agent capability flag. When true, the composer surfaces the
938
957
  * ``/deep-research`` slash command in its builtin menu. Off by
@@ -977,7 +996,7 @@ interface AgentChatProps {
977
996
  */
978
997
  onOpenBilling?: () => void;
979
998
  }
980
- declare function AgentChat({ adapter, agentId, sessionId, onSessionChange, onFileSelect, onMessagesChange, disabled, onComposerError, deepResearchEnabled, researchEnabled, codeAgentsEnabled, loopsEnabled, missionsEnabled, goalsEnabled, compressEnabled, onOpenIntegrations, onOpenBilling, }: AgentChatProps): react_jsx_runtime.JSX.Element;
999
+ declare function AgentChat({ adapter, agentId, sessionId, onSessionChange, onFileSelect, onMessagesChange, disabled, onComposerError, browserProfileId, onSelectBrowserProfile, deepResearchEnabled, researchEnabled, codeAgentsEnabled, loopsEnabled, missionsEnabled, goalsEnabled, compressEnabled, onOpenIntegrations, onOpenBilling, }: AgentChatProps): react_jsx_runtime.JSX.Element;
981
1000
 
982
1001
  interface AgentChatAdapterContextValue {
983
1002
  adapter: AgentChatAdapter;
@@ -1039,6 +1058,19 @@ declare class FetchSseEventStream {
1039
1058
  type MessageResponseProps = ComponentProps<typeof Streamdown>;
1040
1059
  declare const MessageResponse: React.MemoExoticComponent<({ className, ...props }: MessageResponseProps) => react_jsx_runtime.JSX.Element>;
1041
1060
 
1061
+ interface BrowserLiveViewProps {
1062
+ src: string;
1063
+ testId?: string;
1064
+ /**
1065
+ * Called when the RFB connection drops *unexpectedly* (server close on
1066
+ * control-lease expiry, network blip, security failure) — not on intentional
1067
+ * unmount. ``clean`` mirrors noVNC's ``disconnect`` detail. The pane uses
1068
+ * this to drop local control state and fall back to the preview snapshot.
1069
+ */
1070
+ onDisconnect?: (clean: boolean) => void;
1071
+ }
1072
+ declare function BrowserLiveView({ src, testId, onDisconnect, }: BrowserLiveViewProps): react_jsx_runtime.JSX.Element;
1073
+
1042
1074
  interface ComposioConnectCardProps {
1043
1075
  /** The Composio hosted connect URL (connect.composio.dev/link/…). */
1044
1076
  url: string;
@@ -1092,12 +1124,13 @@ interface CodingAgentsPanelProps {
1092
1124
  */
1093
1125
  declare function CodingAgentsPanel({ agentId, adapter, onBack }: CodingAgentsPanelProps): react_jsx_runtime.JSX.Element | null;
1094
1126
 
1127
+ type OnSessionSelect = (sessionId: string, item?: AgentChatInboxItem) => void;
1095
1128
  interface InboxPanelProps {
1096
1129
  adapter: AgentChatAdapter;
1097
1130
  title?: string;
1098
1131
  selectedId?: number | null;
1099
1132
  onSelectedIdChange?: (itemId: number | null) => void;
1100
- onSessionSelect?: (sessionId: string) => void;
1133
+ onSessionSelect?: OnSessionSelect;
1101
1134
  hideHeader?: boolean;
1102
1135
  limit?: number;
1103
1136
  }
@@ -1288,4 +1321,4 @@ interface SessionTreePanelProps {
1288
1321
  }
1289
1322
  declare function SessionTreePanel({ adapter, sessionId, activeSessionId, agentId, title, sessionListLimit, hideRoot, hideHeader, loadList, onSessionSelect, onSessionDelete, }: SessionTreePanelProps): react_jsx_runtime.JSX.Element | null;
1290
1323
 
1291
- export { ACTIVE_MISSION_STATUSES, AgentChat, type AgentChatAdapter, type AgentChatAdapterContextValue, AgentChatAdapterProvider, type AgentChatArtifactKind, type AgentChatArtifactMeta, type AgentChatArtifactPayload, type AgentChatAskUserQuestionAnswer, type AgentChatAskUserQuestionArgs, type AgentChatAskUserQuestionChoice, type AgentChatAskUserQuestionQuestion, type AgentChatAttachment, type AgentChatChartArtifactSpec, type AgentChatDisplayAttachment, type AgentChatErrorCategory, type AgentChatErrorInfo, type AgentChatEventStream, type AgentChatEventType, type AgentChatEventsPage, type AgentChatExpertFeedbackRating, type AgentChatHtmlArtifactSpec, type AgentChatIdeaNode, type AgentChatImageAttachment, type AgentChatInboxEventStream, type AgentChatInboxItem, type AgentChatInboxKind, type AgentChatInboxList, type AgentChatInboxListInput, type AgentChatInboxStatus, type AgentChatInboxStreamEvent, type AgentChatMarkdownArtifactSpec, type AgentChatMessage, type AgentChatMessageStatus, type AgentChatMissionEvent, type AgentChatMissionEventSession, type AgentChatMissionEventsPage, type AgentChatMissionList, type AgentChatMissionResearch, type AgentChatMissionStatus, type AgentChatMissionSummary, type AgentChatMissionTask, type AgentChatMissionWorker, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProps, type AgentChatResearchRun, type AgentChatResearchSource, type AgentChatRole, type AgentChatRuntimeApi, type AgentChatRuntimeEvent, type AgentChatScheduledWorkItem, type AgentChatScheduledWorkKind, type AgentChatScheduledWorkList, type AgentChatSession, type AgentChatSessionList, type AgentChatSessionTree, type AgentChatSessionTreeNode, type AgentChatSlashCommand, type AgentChatSseMessageEvent, type AgentChatState, type AgentChatSvgArtifactSpec, type AgentChatSystemKind, type AgentChatTableArtifactSpec, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, type ChartArtifactSpec, type ChatComposerError, type ChatMessage, type CitationSegment, CitationText, type CodingAgentConnection, CodingAgentsPanel, type CodingAgentsPanelProps, ComposioConnectCard, type ComposioConnectCardProps, type ErrorInfo, FetchSseEventStream, type FetchSseEventStreamOptions, type HtmlArtifactSpec, type InboxItem, type InboxList, InboxPanel, type InboxPanelProps, type InboxUnreadCountState, IntegrationsBand, type IntegrationsBandProps, IntegrationsPage, type IntegrationsPageProps, MISSION_EVENT_CATEGORIES, type MarkdownArtifactSpec, MessageResponse, type MessageResponseProps, MissionDashboard, type MissionDashboardProps, type MissionEventCategory, type MissionEventsFeed, type MissionTaskBucket, type MissionTaskRailGroup, type MissionTaskRailGroupKey, MissionsPanel, type MissionsPanelProps, ResearchSourcesPanel, type RetryIndicator, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, formatMissionTimestamp, groupMissionTasksByBucket, isTerminalMissionStatus, mergeMissionEvents, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, splitCitations, stripMissionControlMarkup, useAgentChatAdapterContext, useAgentChatRuntime, useChatViewMode, useInboxUnreadCount, useMissionEvents };
1324
+ export { ACTIVE_MISSION_STATUSES, AgentChat, type AgentChatAdapter, type AgentChatAdapterContextValue, AgentChatAdapterProvider, type AgentChatArtifactKind, type AgentChatArtifactMeta, type AgentChatArtifactPayload, type AgentChatAskUserQuestionAnswer, type AgentChatAskUserQuestionArgs, type AgentChatAskUserQuestionChoice, type AgentChatAskUserQuestionQuestion, type AgentChatAttachment, type AgentChatBrowserProfile, type AgentChatChartArtifactSpec, type AgentChatDisplayAttachment, type AgentChatErrorCategory, type AgentChatErrorInfo, type AgentChatEventStream, type AgentChatEventType, type AgentChatEventsPage, type AgentChatExpertFeedbackRating, type AgentChatHtmlArtifactSpec, type AgentChatIdeaNode, type AgentChatImageAttachment, type AgentChatInboxEventStream, type AgentChatInboxItem, type AgentChatInboxKind, type AgentChatInboxList, type AgentChatInboxListInput, type AgentChatInboxStatus, type AgentChatInboxStreamEvent, type AgentChatMarkdownArtifactSpec, type AgentChatMessage, type AgentChatMessageStatus, type AgentChatMissionEvent, type AgentChatMissionEventSession, type AgentChatMissionEventsPage, type AgentChatMissionList, type AgentChatMissionResearch, type AgentChatMissionStatus, type AgentChatMissionSummary, type AgentChatMissionTask, type AgentChatMissionWorker, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProps, type AgentChatResearchRun, type AgentChatResearchSource, type AgentChatRole, type AgentChatRuntimeApi, type AgentChatRuntimeEvent, type AgentChatScheduledWorkItem, type AgentChatScheduledWorkKind, type AgentChatScheduledWorkList, type AgentChatSession, type AgentChatSessionList, type AgentChatSessionTree, type AgentChatSessionTreeNode, type AgentChatSlashCommand, type AgentChatSseMessageEvent, type AgentChatState, type AgentChatSvgArtifactSpec, type AgentChatSystemKind, type AgentChatTableArtifactSpec, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, BrowserLiveView, type ChartArtifactSpec, type ChatComposerError, type ChatMessage, type CitationSegment, CitationText, type CodingAgentConnection, CodingAgentsPanel, type CodingAgentsPanelProps, ComposioConnectCard, type ComposioConnectCardProps, type ErrorInfo, FetchSseEventStream, type FetchSseEventStreamOptions, type HtmlArtifactSpec, type InboxItem, type InboxList, InboxPanel, type InboxPanelProps, type InboxUnreadCountState, IntegrationsBand, type IntegrationsBandProps, IntegrationsPage, type IntegrationsPageProps, MISSION_EVENT_CATEGORIES, type MarkdownArtifactSpec, MessageResponse, type MessageResponseProps, MissionDashboard, type MissionDashboardProps, type MissionEventCategory, type MissionEventsFeed, type MissionTaskBucket, type MissionTaskRailGroup, type MissionTaskRailGroupKey, MissionsPanel, type MissionsPanelProps, ResearchSourcesPanel, type RetryIndicator, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, formatMissionTimestamp, groupMissionTasksByBucket, isTerminalMissionStatus, mergeMissionEvents, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, splitCitations, stripMissionControlMarkup, useAgentChatAdapterContext, useAgentChatRuntime, useChatViewMode, useInboxUnreadCount, useMissionEvents };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { cn, __publicField } from './chunk-47MF6JUW.js';
2
2
  import { createContext, memo, useRef, useEffect, useCallback, useMemo, useState, useLayoutEffect, lazy, useContext, Fragment as Fragment$1, Children, Suspense } from 'react';
3
- import { ChevronDownIcon, AlertTriangle, ChevronDown, ChevronRight, RefreshCw, CreditCard, File as File$1, FileImage, FileAudio, FileVideo, FileText, FileCode, FileArchive, FileSpreadsheet, PlugZapIcon, ChevronRightIcon, ArrowLeftIcon, Loader2Icon, InboxIcon, Loader2, AlertCircle, Pause, Play, Ban, TargetIcon, CalendarClockIcon, UsersIcon, MessageSquareIcon, ZapIcon, Maximize2Icon, FolderOpenIcon, UploadIcon, RefreshCwIcon, AlertCircleIcon, ExternalLinkIcon, ClipboardCheckIcon, ShieldAlertIcon, TimerIcon, CircleDotIcon, XIcon, Trash2Icon, SquareIcon, ArrowDownIcon, RotateCcwIcon, MousePointer2Icon, DownloadIcon, TrashIcon, ImageIcon, FileTextIcon, CheckIcon, Clock, ArrowRight, TerminalIcon, SparklesIcon, ClockIcon, PlusIcon, CloudIcon, HardDriveIcon, PaperclipIcon, GlobeIcon, FolderIcon, CopyIcon, FileIcon, ChevronLeftIcon, MinusIcon, SearchIcon, CircleDot, XCircle, CheckCircle2, ArrowUpIcon, CircleCheckIcon, ThumbsUpIcon, ThumbsDownIcon, BookOpenIcon, GitBranchIcon, ActivityIcon, EyeIcon, ListTodoIcon, BotIcon, ListIcon, PenLineIcon, FileEditIcon, WrenchIcon, FileCodeIcon, CodeIcon, FileArchiveIcon, FileVideoIcon, FileAudioIcon, FileImageIcon, FileChartLineIcon, FileSpreadsheetIcon, XCircleIcon, CheckCircle2Icon, Code, CircleXIcon, SkullIcon, CheckCircleIcon, CircleIcon } from 'lucide-react';
3
+ import { ChevronDownIcon, AlertTriangle, ChevronDown, ChevronRight, RefreshCw, CreditCard, File as File$1, FileImage, FileAudio, FileVideo, FileText, FileCode, FileArchive, FileSpreadsheet, PlugZapIcon, ChevronRightIcon, ArrowLeftIcon, Loader2Icon, InboxIcon, Loader2, AlertCircle, Pause, Play, Ban, TargetIcon, CalendarClockIcon, UsersIcon, MessageSquareIcon, ZapIcon, Maximize2Icon, FolderOpenIcon, UploadIcon, RefreshCwIcon, AlertCircleIcon, ExternalLinkIcon, ClipboardCheckIcon, ShieldAlertIcon, TimerIcon, CircleDotIcon, XIcon, Trash2Icon, SquareIcon, ArrowDownIcon, RotateCcwIcon, MousePointer2Icon, DownloadIcon, TrashIcon, ImageIcon, FileTextIcon, CheckIcon, Clock, ArrowRight, TerminalIcon, SparklesIcon, ClockIcon, PlusIcon, CloudIcon, HardDriveIcon, PaperclipIcon, GlobeIcon, IdCardIcon, FolderIcon, CopyIcon, FileIcon, ChevronLeftIcon, MinusIcon, SearchIcon, CircleDot, XCircle, CheckCircle2, ArrowUpIcon, CircleCheckIcon, ThumbsUpIcon, ThumbsDownIcon, BookOpenIcon, GitBranchIcon, ActivityIcon, EyeIcon, ListTodoIcon, BotIcon, ListIcon, PenLineIcon, FileEditIcon, WrenchIcon, FileCodeIcon, CodeIcon, FileArchiveIcon, FileVideoIcon, FileAudioIcon, FileImageIcon, FileChartLineIcon, FileSpreadsheetIcon, XCircleIcon, CheckCircle2Icon, Code, CircleXIcon, SkullIcon, CheckCircleIcon, CircleIcon } from 'lucide-react';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { Collapsible as Collapsible$1, Slot, Tooltip as Tooltip$1, Progress as Progress$1, Tabs as Tabs$1, Dialog as Dialog$1, ScrollArea as ScrollArea$1, Popover as Popover$1 } from 'radix-ui';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -364,6 +364,13 @@ function BrowserControlBar({
364
364
  )
365
365
  ] });
366
366
  }
367
+ var MIN_ZOOM = 1;
368
+ var MAX_ZOOM = 3;
369
+ var ZOOM_STEP = 0.5;
370
+ function clampZoom(zoom) {
371
+ const bounded = Math.min(MAX_ZOOM, Math.max(MIN_ZOOM, zoom));
372
+ return Math.round(bounded * 100) / 100;
373
+ }
367
374
  function toWsUrl(src) {
368
375
  const url = new URL(src, window.location.href);
369
376
  if (url.protocol === "http:") {
@@ -382,10 +389,12 @@ function BrowserLiveView({
382
389
  const onDisconnectRef = useRef(onDisconnect);
383
390
  onDisconnectRef.current = onDisconnect;
384
391
  const [state, setState] = useState("connecting");
392
+ const [zoom, setZoom] = useState(MIN_ZOOM);
385
393
  useEffect(() => {
386
394
  const container = containerRef.current;
387
395
  if (!container) return;
388
396
  setState("connecting");
397
+ setZoom(MIN_ZOOM);
389
398
  let rfb;
390
399
  let disposed = false;
391
400
  const handleConnect = () => setState("connected");
@@ -416,8 +425,68 @@ function BrowserLiveView({
416
425
  }
417
426
  };
418
427
  }, [src]);
428
+ const keepCanvasFocus = (event) => event.preventDefault();
429
+ const zoomTo = (next) => setZoom((current) => clampZoom(next || current));
419
430
  return /* @__PURE__ */ jsxs("div", { className: "relative h-full w-full bg-black", children: [
420
- /* @__PURE__ */ jsx("div", { ref: containerRef, "data-testid": testId, className: "h-full w-full" }),
431
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 overflow-auto", children: /* @__PURE__ */ jsx(
432
+ "div",
433
+ {
434
+ ref: containerRef,
435
+ "data-testid": testId,
436
+ style: { width: `${zoom * 100}%`, height: `${zoom * 100}%` }
437
+ }
438
+ ) }),
439
+ state === "connected" && /* @__PURE__ */ jsxs(
440
+ "div",
441
+ {
442
+ "data-testid": "browser-rfb-zoom",
443
+ className: "absolute bottom-3 right-3 flex items-center gap-0.5 rounded-md border border-line bg-card/90 p-0.5 text-muted-foreground shadow-sm backdrop-blur",
444
+ children: [
445
+ /* @__PURE__ */ jsx(
446
+ "button",
447
+ {
448
+ type: "button",
449
+ tabIndex: -1,
450
+ "aria-label": "Zoom out",
451
+ disabled: zoom <= MIN_ZOOM,
452
+ onMouseDown: keepCanvasFocus,
453
+ onClick: () => zoomTo(zoom - ZOOM_STEP),
454
+ className: "flex size-6 items-center justify-center rounded text-sm leading-none hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-40",
455
+ children: "\u2212"
456
+ }
457
+ ),
458
+ /* @__PURE__ */ jsxs(
459
+ "button",
460
+ {
461
+ type: "button",
462
+ tabIndex: -1,
463
+ "aria-label": "Reset zoom",
464
+ disabled: zoom === MIN_ZOOM,
465
+ onMouseDown: keepCanvasFocus,
466
+ onClick: () => setZoom(MIN_ZOOM),
467
+ className: "min-w-10 rounded px-1 text-center text-xs tabular-nums hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none",
468
+ children: [
469
+ Math.round(zoom * 100),
470
+ "%"
471
+ ]
472
+ }
473
+ ),
474
+ /* @__PURE__ */ jsx(
475
+ "button",
476
+ {
477
+ type: "button",
478
+ tabIndex: -1,
479
+ "aria-label": "Zoom in",
480
+ disabled: zoom >= MAX_ZOOM,
481
+ onMouseDown: keepCanvasFocus,
482
+ onClick: () => zoomTo(zoom + ZOOM_STEP),
483
+ className: "flex size-6 items-center justify-center rounded text-sm leading-none hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-40",
484
+ children: "+"
485
+ }
486
+ )
487
+ ]
488
+ }
489
+ ),
421
490
  state !== "connected" && /* @__PURE__ */ jsx(
422
491
  "div",
423
492
  {
@@ -6405,6 +6474,8 @@ function ChatComposerInner({
6405
6474
  showWorkspace = false,
6406
6475
  onToggleWorkspace,
6407
6476
  canShowBrowser = false,
6477
+ browserProfileId,
6478
+ onSelectBrowserProfile,
6408
6479
  canShowWorkspace = false,
6409
6480
  deepResearchEnabled = false,
6410
6481
  researchEnabled = false,
@@ -6417,6 +6488,20 @@ function ChatComposerInner({
6417
6488
  onViewModeChange
6418
6489
  }) {
6419
6490
  const { adapter } = useAgentChatAdapterContext();
6491
+ const [profileMenuOpen, setProfileMenuOpen] = useState(false);
6492
+ const [browserProfiles, setBrowserProfiles] = useState([]);
6493
+ useEffect(() => {
6494
+ if (!profileMenuOpen || !adapter.listBrowserProfiles) return;
6495
+ let cancelled = false;
6496
+ void adapter.listBrowserProfiles().then((p) => {
6497
+ if (!cancelled) setBrowserProfiles(p);
6498
+ }).catch(() => {
6499
+ if (!cancelled) setBrowserProfiles([]);
6500
+ });
6501
+ return () => {
6502
+ cancelled = true;
6503
+ };
6504
+ }, [profileMenuOpen, adapter]);
6420
6505
  const { textInput, attachments } = usePromptInputController();
6421
6506
  const status = isRunning ? "streaming" : disabled ? "error" : "ready";
6422
6507
  const [adapterCommands, setAdapterCommands] = useState([]);
@@ -6756,6 +6841,60 @@ function ChatComposerInner({
6756
6841
  children: /* @__PURE__ */ jsx(GlobeIcon, { className: "size-4" })
6757
6842
  }
6758
6843
  ),
6844
+ canShowBrowser && onSelectBrowserProfile && adapter.listBrowserProfiles && /* @__PURE__ */ jsxs(
6845
+ Popover,
6846
+ {
6847
+ open: profileMenuOpen,
6848
+ onOpenChange: setProfileMenuOpen,
6849
+ children: [
6850
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
6851
+ PromptInputButton,
6852
+ {
6853
+ "aria-label": "Select browser profile",
6854
+ "aria-pressed": !!browserProfileId,
6855
+ className: browserProfileId ? "bg-accent text-foreground" : void 0,
6856
+ children: /* @__PURE__ */ jsx(IdCardIcon, { className: "size-4" })
6857
+ }
6858
+ ) }),
6859
+ /* @__PURE__ */ jsx(
6860
+ PopoverContent,
6861
+ {
6862
+ side: "top",
6863
+ align: "start",
6864
+ className: "w-64 overflow-hidden rounded-xl p-1",
6865
+ children: /* @__PURE__ */ jsx(Command, { children: /* @__PURE__ */ jsxs(CommandList, { children: [
6866
+ /* @__PURE__ */ jsx(
6867
+ CommandItem,
6868
+ {
6869
+ onSelect: () => {
6870
+ setProfileMenuOpen(false);
6871
+ onSelectBrowserProfile(null);
6872
+ },
6873
+ className: "gap-3 rounded-md px-3 py-2",
6874
+ children: "No profile"
6875
+ }
6876
+ ),
6877
+ browserProfiles.map((p) => /* @__PURE__ */ jsxs(
6878
+ CommandItem,
6879
+ {
6880
+ onSelect: () => {
6881
+ setProfileMenuOpen(false);
6882
+ onSelectBrowserProfile(p.id);
6883
+ },
6884
+ className: "gap-3 rounded-md px-3 py-2",
6885
+ children: [
6886
+ p.name,
6887
+ browserProfileId === p.id && /* @__PURE__ */ jsx("span", { className: "ml-auto text-xs text-muted-foreground", children: "Active" })
6888
+ ]
6889
+ },
6890
+ p.id
6891
+ ))
6892
+ ] }) })
6893
+ }
6894
+ )
6895
+ ]
6896
+ }
6897
+ ),
6759
6898
  canShowWorkspace && onToggleWorkspace && /* @__PURE__ */ jsx(
6760
6899
  PromptInputButton,
6761
6900
  {
@@ -7460,9 +7599,9 @@ function ArtifactTable({ spec }) {
7460
7599
  }
7461
7600
  var DEFAULT_HEIGHT_PX = 480;
7462
7601
  var EXPANDED_HEIGHT_PX = 800;
7463
- var MIN_ZOOM = 0.5;
7464
- var MAX_ZOOM = 2;
7465
- var ZOOM_STEP = 0.1;
7602
+ var MIN_ZOOM2 = 0.5;
7603
+ var MAX_ZOOM2 = 2;
7604
+ var ZOOM_STEP2 = 0.1;
7466
7605
  var SAFETY_STYLE_PREAMBLE = "<style>html,body{max-height:100vh}canvas{max-height:80vh!important}</style>";
7467
7606
  function injectSafetyStyle(html) {
7468
7607
  const headCloseIdx = html.search(/<\/head\s*>/i);
@@ -7479,7 +7618,7 @@ function ArtifactHtml({
7479
7618
  const [zoom, setZoom] = useState(1);
7480
7619
  const safeSrcdoc = useMemo(() => injectSafetyStyle(spec.html), [spec.html]);
7481
7620
  const viewportHeight = expanded ? EXPANDED_HEIGHT_PX : DEFAULT_HEIGHT_PX;
7482
- const clamp = (v) => Math.round(Math.min(MAX_ZOOM, Math.max(MIN_ZOOM, v)) * 100) / 100;
7621
+ const clamp = (v) => Math.round(Math.min(MAX_ZOOM2, Math.max(MIN_ZOOM2, v)) * 100) / 100;
7483
7622
  return /* @__PURE__ */ jsxs(
7484
7623
  "div",
7485
7624
  {
@@ -7525,8 +7664,8 @@ function ArtifactHtml({
7525
7664
  "button",
7526
7665
  {
7527
7666
  type: "button",
7528
- onClick: () => setZoom((z) => clamp(z - ZOOM_STEP)),
7529
- disabled: zoom <= MIN_ZOOM,
7667
+ onClick: () => setZoom((z) => clamp(z - ZOOM_STEP2)),
7668
+ disabled: zoom <= MIN_ZOOM2,
7530
7669
  className: "hover:text-foreground disabled:opacity-40 cursor-pointer",
7531
7670
  "aria-label": "zoom out",
7532
7671
  children: "\u2212"
@@ -7549,8 +7688,8 @@ function ArtifactHtml({
7549
7688
  "button",
7550
7689
  {
7551
7690
  type: "button",
7552
- onClick: () => setZoom((z) => clamp(z + ZOOM_STEP)),
7553
- disabled: zoom >= MAX_ZOOM,
7691
+ onClick: () => setZoom((z) => clamp(z + ZOOM_STEP2)),
7692
+ disabled: zoom >= MAX_ZOOM2,
7554
7693
  className: "hover:text-foreground disabled:opacity-40",
7555
7694
  "aria-label": "zoom in",
7556
7695
  children: "+"
@@ -9921,6 +10060,8 @@ function ChatThread({
9921
10060
  showWorkspace = false,
9922
10061
  onToggleWorkspace,
9923
10062
  canShowBrowser = false,
10063
+ browserProfileId,
10064
+ onSelectBrowserProfile,
9924
10065
  canShowWorkspace = false,
9925
10066
  viewMode = "simple",
9926
10067
  onViewModeChange,
@@ -9992,6 +10133,8 @@ function ChatThread({
9992
10133
  showWorkspace,
9993
10134
  onToggleWorkspace,
9994
10135
  canShowBrowser,
10136
+ browserProfileId,
10137
+ onSelectBrowserProfile,
9995
10138
  canShowWorkspace,
9996
10139
  viewMode,
9997
10140
  onViewModeChange,
@@ -12500,6 +12643,8 @@ function AgentChat({
12500
12643
  onMessagesChange,
12501
12644
  disabled,
12502
12645
  onComposerError,
12646
+ browserProfileId,
12647
+ onSelectBrowserProfile,
12503
12648
  deepResearchEnabled = false,
12504
12649
  researchEnabled = false,
12505
12650
  codeAgentsEnabled = false,
@@ -12649,6 +12794,8 @@ function AgentChat({
12649
12794
  tokenUsage: runtime.tokenUsage,
12650
12795
  retryIndicator: runtime.retryIndicator,
12651
12796
  onComposerError,
12797
+ browserProfileId,
12798
+ onSelectBrowserProfile,
12652
12799
  showBrowser,
12653
12800
  onToggleBrowser: handleToggleBrowser,
12654
12801
  showWorkspace,
@@ -13423,7 +13570,7 @@ function InboxDetailActions({
13423
13570
  {
13424
13571
  type: "button",
13425
13572
  size: "sm",
13426
- onClick: () => onSessionSelect?.(item.sessionId),
13573
+ onClick: () => onSessionSelect?.(item.sessionId, item),
13427
13574
  "aria-label": "Open session",
13428
13575
  children: [
13429
13576
  /* @__PURE__ */ jsx(ExternalLinkIcon, { className: "size-3.5" }),
@@ -16345,11 +16492,16 @@ function SessionTreePanel({
16345
16492
  limit: sessionListLimit
16346
16493
  }) : Promise.resolve(null);
16347
16494
  const sessionTreePromise = sessionId && adapter.getSessionTree ? adapter.getSessionTree({ sessionId }) : Promise.resolve(null);
16348
- const [sessionList, sessionTree] = await Promise.all([
16495
+ const [listResult, treeResult] = await Promise.allSettled([
16349
16496
  sessionListPromise,
16350
16497
  sessionTreePromise
16351
16498
  ]);
16352
16499
  if (!mounted.current || currentRequestId !== requestId.current) return;
16500
+ if (loadList && listResult.status === "rejected") {
16501
+ throw listResult.reason;
16502
+ }
16503
+ const sessionList = listResult.status === "fulfilled" ? listResult.value : null;
16504
+ const sessionTree = treeResult.status === "fulfilled" ? treeResult.value : null;
16353
16505
  let nextNodes = mergeTreeNodes([
16354
16506
  sessionList?.sessions.map(sessionToTreeNode) ?? [],
16355
16507
  sessionTree?.nodes ?? []
@@ -16504,6 +16656,6 @@ function SessionTreePanel({
16504
16656
  ] });
16505
16657
  }
16506
16658
 
16507
- export { ACTIVE_MISSION_STATUSES, AgentChat, AgentChatAdapterProvider, CitationText, CodingAgentsPanel, ComposioConnectCard, FetchSseEventStream, InboxPanel, IntegrationsBand, IntegrationsPage, MISSION_EVENT_CATEGORIES, MessageResponse, MissionDashboard, MissionsPanel, ResearchSourcesPanel, ScheduledWorkPanel, SessionTreePanel, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, formatMissionTimestamp, groupMissionTasksByBucket, isTerminalMissionStatus, mergeMissionEvents, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, splitCitations, stripMissionControlMarkup, useAgentChatAdapterContext, useAgentChatRuntime, useChatViewMode, useInboxUnreadCount, useMissionEvents };
16659
+ export { ACTIVE_MISSION_STATUSES, AgentChat, AgentChatAdapterProvider, BrowserLiveView, CitationText, CodingAgentsPanel, ComposioConnectCard, FetchSseEventStream, InboxPanel, IntegrationsBand, IntegrationsPage, MISSION_EVENT_CATEGORIES, MessageResponse, MissionDashboard, MissionsPanel, ResearchSourcesPanel, ScheduledWorkPanel, SessionTreePanel, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, formatMissionTimestamp, groupMissionTasksByBucket, isTerminalMissionStatus, mergeMissionEvents, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, splitCitations, stripMissionControlMarkup, useAgentChatAdapterContext, useAgentChatRuntime, useChatViewMode, useInboxUnreadCount, useMissionEvents };
16508
16660
  //# sourceMappingURL=index.js.map
16509
16661
  //# sourceMappingURL=index.js.map