@invergent/agent-chat-react 2.19.1 → 2.19.3

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
@@ -759,12 +759,21 @@ interface AgentChatWorkspaceFile {
759
759
  encoding: "utf-8" | "base64";
760
760
  truncated: boolean;
761
761
  }
762
+ /** Someone a comment in the editor can mention: the chat's agent. */
763
+ interface AgentChatMentionableUser {
764
+ id: string;
765
+ name: string;
766
+ /** The address the editor offers and matches the mention by. */
767
+ email: string;
768
+ }
762
769
  /** A document opened in the document server's editor. */
763
770
  interface AgentChatWorkspaceEditor {
764
771
  /** Where the browser loads the editor (`<url>/web-apps/apps/api/documents/api.js`). */
765
772
  document_server_url: string;
766
- /** The signed editor config, passed to `DocsAPI.DocEditor` unchanged. */
773
+ /** The signed editor config, passed to `DocsAPI.DocEditor` as signed; the pane adds only its own `events` beside it. */
767
774
  config: Record<string, unknown>;
775
+ /** Who a comment can mention: the chat's agent where it answers in the thread; none elsewhere. */
776
+ mentionable_users?: AgentChatMentionableUser[];
768
777
  }
769
778
  interface AgentChatWorkspaceUpload {
770
779
  path: string;
@@ -1098,6 +1107,18 @@ interface AgentChatAdapter {
1098
1107
  theme: "light" | "dark";
1099
1108
  view?: boolean;
1100
1109
  }): Promise<AgentChatWorkspaceEditor>;
1110
+ /**
1111
+ * Tells the chat that a comment in its file pane mentioned the agent: the agent answers in the comment's thread.
1112
+ * *commentId* is the editor's id for the comment (a reply's is its thread's), *message* the comment's words.
1113
+ * Optional, like `getWorkspaceEditorConfig`.
1114
+ */
1115
+ notifyWorkspaceEditorMention?(input: {
1116
+ sessionId: string;
1117
+ path: string;
1118
+ commentId: string;
1119
+ message: string;
1120
+ emails: string[];
1121
+ }): Promise<void>;
1101
1122
  openEventStream(input: {
1102
1123
  sessionId: string;
1103
1124
  after: number;
@@ -1951,4 +1972,4 @@ declare function sessionComputer(config: Record<string, unknown> | undefined): s
1951
1972
 
1952
1973
  type BorderBeamSize = NonNullable<BrandBeamProps["size"]>;
1953
1974
 
1954
- 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 AgentChatDeviceWaitState, 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 AgentChatOfficeEvent, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProjectStream, 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 AgentChatThreadProposal, type AgentChatThreadRow, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorker, type AgentChatWorkspaceEditor, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, AgentWhiteboard, type AgentWhiteboardProps, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, type BorderBeamSize, BrowserShell, 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, ORB_STATE_LABELS, type OrbActivity, type OrbDerivationOptions, OrbShimmerLabel, type OrbShimmerLabelProps, ResearchSourcesPanel, type RetryIndicator, SIMPLE_MODE_HIDDEN_TOOLS, SIMPLE_MODE_ORB_OPTIONS, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WbDoc, type WbObject, type WbTool, WhiteboardSurface, type WhiteboardSurfaceProps, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, deriveOrbActivity, forgetChatFiles, formatMissionTimestamp, groupMissionTasksByBucket, isHiddenSimpleTool, isTerminalMissionStatus, mergeMissionEvents, messageOrbState, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, persistChatViewMode, sessionComputer, splitCitations, stripMissionControlMarkup, toolOrbState, useAgentChatAdapterContext, useAgentChatRuntime, useBrowserControl, useChatViewMode, useInboxUnreadCount, useMissionEvents };
1975
+ 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 AgentChatDeviceWaitState, 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 AgentChatMentionableUser, type AgentChatMessage, type AgentChatMessageStatus, type AgentChatMissionEvent, type AgentChatMissionEventSession, type AgentChatMissionEventsPage, type AgentChatMissionList, type AgentChatMissionResearch, type AgentChatMissionStatus, type AgentChatMissionSummary, type AgentChatMissionTask, type AgentChatMissionWorker, type AgentChatOfficeEvent, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProjectStream, 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 AgentChatThreadProposal, type AgentChatThreadRow, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorker, type AgentChatWorkspaceEditor, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, AgentWhiteboard, type AgentWhiteboardProps, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, type BorderBeamSize, BrowserShell, 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, ORB_STATE_LABELS, type OrbActivity, type OrbDerivationOptions, OrbShimmerLabel, type OrbShimmerLabelProps, ResearchSourcesPanel, type RetryIndicator, SIMPLE_MODE_HIDDEN_TOOLS, SIMPLE_MODE_ORB_OPTIONS, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WbDoc, type WbObject, type WbTool, WhiteboardSurface, type WhiteboardSurfaceProps, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, deriveOrbActivity, forgetChatFiles, formatMissionTimestamp, groupMissionTasksByBucket, isHiddenSimpleTool, isTerminalMissionStatus, mergeMissionEvents, messageOrbState, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, persistChatViewMode, sessionComputer, splitCitations, stripMissionControlMarkup, toolOrbState, useAgentChatAdapterContext, useAgentChatRuntime, useBrowserControl, useChatViewMode, useInboxUnreadCount, useMissionEvents };
package/dist/index.d.ts CHANGED
@@ -759,12 +759,21 @@ interface AgentChatWorkspaceFile {
759
759
  encoding: "utf-8" | "base64";
760
760
  truncated: boolean;
761
761
  }
762
+ /** Someone a comment in the editor can mention: the chat's agent. */
763
+ interface AgentChatMentionableUser {
764
+ id: string;
765
+ name: string;
766
+ /** The address the editor offers and matches the mention by. */
767
+ email: string;
768
+ }
762
769
  /** A document opened in the document server's editor. */
763
770
  interface AgentChatWorkspaceEditor {
764
771
  /** Where the browser loads the editor (`<url>/web-apps/apps/api/documents/api.js`). */
765
772
  document_server_url: string;
766
- /** The signed editor config, passed to `DocsAPI.DocEditor` unchanged. */
773
+ /** The signed editor config, passed to `DocsAPI.DocEditor` as signed; the pane adds only its own `events` beside it. */
767
774
  config: Record<string, unknown>;
775
+ /** Who a comment can mention: the chat's agent where it answers in the thread; none elsewhere. */
776
+ mentionable_users?: AgentChatMentionableUser[];
768
777
  }
769
778
  interface AgentChatWorkspaceUpload {
770
779
  path: string;
@@ -1098,6 +1107,18 @@ interface AgentChatAdapter {
1098
1107
  theme: "light" | "dark";
1099
1108
  view?: boolean;
1100
1109
  }): Promise<AgentChatWorkspaceEditor>;
1110
+ /**
1111
+ * Tells the chat that a comment in its file pane mentioned the agent: the agent answers in the comment's thread.
1112
+ * *commentId* is the editor's id for the comment (a reply's is its thread's), *message* the comment's words.
1113
+ * Optional, like `getWorkspaceEditorConfig`.
1114
+ */
1115
+ notifyWorkspaceEditorMention?(input: {
1116
+ sessionId: string;
1117
+ path: string;
1118
+ commentId: string;
1119
+ message: string;
1120
+ emails: string[];
1121
+ }): Promise<void>;
1101
1122
  openEventStream(input: {
1102
1123
  sessionId: string;
1103
1124
  after: number;
@@ -1951,4 +1972,4 @@ declare function sessionComputer(config: Record<string, unknown> | undefined): s
1951
1972
 
1952
1973
  type BorderBeamSize = NonNullable<BrandBeamProps["size"]>;
1953
1974
 
1954
- 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 AgentChatDeviceWaitState, 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 AgentChatOfficeEvent, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProjectStream, 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 AgentChatThreadProposal, type AgentChatThreadRow, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorker, type AgentChatWorkspaceEditor, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, AgentWhiteboard, type AgentWhiteboardProps, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, type BorderBeamSize, BrowserShell, 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, ORB_STATE_LABELS, type OrbActivity, type OrbDerivationOptions, OrbShimmerLabel, type OrbShimmerLabelProps, ResearchSourcesPanel, type RetryIndicator, SIMPLE_MODE_HIDDEN_TOOLS, SIMPLE_MODE_ORB_OPTIONS, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WbDoc, type WbObject, type WbTool, WhiteboardSurface, type WhiteboardSurfaceProps, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, deriveOrbActivity, forgetChatFiles, formatMissionTimestamp, groupMissionTasksByBucket, isHiddenSimpleTool, isTerminalMissionStatus, mergeMissionEvents, messageOrbState, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, persistChatViewMode, sessionComputer, splitCitations, stripMissionControlMarkup, toolOrbState, useAgentChatAdapterContext, useAgentChatRuntime, useBrowserControl, useChatViewMode, useInboxUnreadCount, useMissionEvents };
1975
+ 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 AgentChatDeviceWaitState, 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 AgentChatMentionableUser, type AgentChatMessage, type AgentChatMessageStatus, type AgentChatMissionEvent, type AgentChatMissionEventSession, type AgentChatMissionEventsPage, type AgentChatMissionList, type AgentChatMissionResearch, type AgentChatMissionStatus, type AgentChatMissionSummary, type AgentChatMissionTask, type AgentChatMissionWorker, type AgentChatOfficeEvent, type AgentChatPendingAttachment, type AgentChatPolledEvent, type AgentChatProjectStream, 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 AgentChatThreadProposal, type AgentChatThreadRow, type AgentChatTokenUsage, type AgentChatToolCallInfo, type AgentChatWorker, type AgentChatWorkspaceEditor, type AgentChatWorkspaceEntry, type AgentChatWorkspaceFile, type AgentChatWorkspaceTree, type AgentChatWorkspaceUpload, AgentWhiteboard, type AgentWhiteboardProps, type ArtifactKind, type ArtifactPayload, type AskUserQuestionAnswer, type AskUserQuestionArgs, type AskUserQuestionChoice, type AskUserQuestionQuestion, type BorderBeamSize, BrowserShell, 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, ORB_STATE_LABELS, type OrbActivity, type OrbDerivationOptions, OrbShimmerLabel, type OrbShimmerLabelProps, ResearchSourcesPanel, type RetryIndicator, SIMPLE_MODE_HIDDEN_TOOLS, SIMPLE_MODE_ORB_OPTIONS, type ScheduledWorkItem, type ScheduledWorkList, ScheduledWorkPanel, type ScheduledWorkPanelProps, type SessionTree, type SessionTreeNode, SessionTreePanel, type SessionTreePanelProps, type SvgArtifactSpec, type TableArtifactSpec, type TokenUsage, type ToolCallInfo, type WbDoc, type WbObject, type WbTool, WhiteboardSurface, type WhiteboardSurfaceProps, type WorkspaceEntry, type WorkspaceFile, type WorkspaceTree, type WorkspaceUpload, defaultSelectedMissionTaskId, deriveMissionWorkerActivityLabel, deriveOrbActivity, forgetChatFiles, formatMissionTimestamp, groupMissionTasksByBucket, isHiddenSimpleTool, isTerminalMissionStatus, mergeMissionEvents, messageOrbState, missionEventActorLabel, missionEventCategory, missionEventSummary, missionEventTaskId, missionTaskBlocks, missionTaskBucket, missionTaskRailGroups, missionTaskStatusDotClass, missionTaskTitle, missionWorkerTaskCounts, persistChatViewMode, sessionComputer, splitCitations, stripMissionControlMarkup, toolOrbState, useAgentChatAdapterContext, useAgentChatRuntime, useBrowserControl, useChatViewMode, useInboxUnreadCount, useMissionEvents };
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ import { cn, __publicField } from './chunk-47MF6JUW.js';
2
2
  import { createContext, memo, useRef, useEffect, useCallback, useMemo, useState, useLayoutEffect, lazy, useContext, Fragment as Fragment$1, Suspense, useSyncExternalStore, useId, Children } from 'react';
3
3
  import { Button } from '@invergent/ui-sdk/button';
4
4
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from '@invergent/ui-sdk/dropdown-menu';
5
+ import { TabStrip, TabStripTab } from '@invergent/ui-sdk/tab-strip';
5
6
  import { Toggle, FilterPill } from '@invergent/ui-sdk/toggle';
6
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
8
  import { ConfirmDialog } from '@invergent/ui-sdk/confirm-dialog';
@@ -347,12 +348,11 @@ function BrowserShell({
347
348
  (onToggleControl || hasControl) && /* @__PURE__ */ jsx(
348
349
  Toggle,
349
350
  {
350
- size: "sm",
351
+ size: "icon-xs",
351
352
  "data-testid": "browser-shell-control",
352
353
  "aria-label": hasControl ? "Return control" : "Take control",
353
354
  pressed: hasControl,
354
355
  onPressedChange: () => onToggleControl?.(),
355
- className: "size-7 min-h-11 min-w-11 px-0 pointer-fine:min-h-0 pointer-fine:min-w-0",
356
356
  children: /* @__PURE__ */ jsx(Pointer, {})
357
357
  }
358
358
  ),
@@ -410,45 +410,21 @@ function BrowserShell({
410
410
  ] })
411
411
  ] }),
412
412
  showTabs && /* @__PURE__ */ jsx(
413
- "div",
413
+ TabStrip,
414
414
  {
415
415
  "data-testid": "browser-shell-tabs",
416
- className: "flex min-h-[34px] items-center gap-0.5 border-b border-line bg-card px-1.5",
417
- children: tabs.map((tab) => (
418
- // A div, not a button: the close control nests inside, and a
419
- // button inside a button is invalid markup.
420
- /* @__PURE__ */ jsxs(
421
- "div",
422
- {
423
- role: "tab",
424
- tabIndex: 0,
425
- "aria-selected": tab.active,
426
- "data-testid": "browser-shell-tab",
427
- onClick: () => send({ t: "switch_tab", id: tab.id }),
428
- onKeyDown: (event) => {
429
- if (event.key === "Enter") send({ t: "switch_tab", id: tab.id });
430
- },
431
- className: `flex h-6 max-w-33 cursor-pointer items-center gap-1 truncate rounded px-2 text-[11px] ${tab.active ? "bg-secondary text-foreground" : "text-muted-foreground hover:text-foreground"}`,
432
- children: [
433
- /* @__PURE__ */ jsx("span", { className: "truncate", children: tab.title || tab.url }),
434
- hasControl && /* @__PURE__ */ jsx(
435
- "button",
436
- {
437
- type: "button",
438
- "data-testid": "browser-shell-tab-close",
439
- "aria-label": `Close ${tab.title || tab.url}`,
440
- onClick: (event) => {
441
- event.stopPropagation();
442
- command({ t: "close_tab", id: tab.id });
443
- },
444
- className: "flex size-3.5 shrink-0 items-center justify-center rounded-sm text-muted-foreground hover:bg-secondary hover:text-foreground",
445
- children: /* @__PURE__ */ jsx(XSmall, {})
446
- }
447
- )
448
- ]
449
- },
450
- tab.id
451
- )
416
+ className: "min-h-[34px] border-b border-line bg-card px-1.5",
417
+ children: tabs.map((tab) => /* @__PURE__ */ jsx(
418
+ TabStripTab,
419
+ {
420
+ active: tab.active,
421
+ "data-testid": "browser-shell-tab",
422
+ onSelect: () => send({ t: "switch_tab", id: tab.id }),
423
+ onClose: hasControl ? () => command({ t: "close_tab", id: tab.id }) : void 0,
424
+ closeLabel: `Close ${tab.title || tab.url}`,
425
+ children: tab.title || tab.url
426
+ },
427
+ tab.id
452
428
  ))
453
429
  }
454
430
  ),
@@ -528,10 +504,6 @@ var Pointer = () => /* @__PURE__ */ jsxs("svg", { ...svg, children: [
528
504
  /* @__PURE__ */ jsx("path", { d: "M12.586 12.586 19 19" }),
529
505
  /* @__PURE__ */ jsx("path", { d: "M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z" })
530
506
  ] });
531
- var XSmall = () => /* @__PURE__ */ jsxs("svg", { ...svg, width: 10, height: 10, className: "size-2.5", children: [
532
- /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
533
- /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
534
- ] });
535
507
  var Ellipsis = () => /* @__PURE__ */ jsxs("svg", { ...svg, children: [
536
508
  /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "1" }),
537
509
  /* @__PURE__ */ jsx("circle", { cx: "19", cy: "12", r: "1" }),
@@ -2042,7 +2014,7 @@ var statusLabels = {
2042
2014
  };
2043
2015
  var statusTones = {
2044
2016
  "approval-requested": "warn",
2045
- "approval-responded": "muted",
2017
+ "approval-responded": "info",
2046
2018
  "input-available": "muted",
2047
2019
  "input-streaming": "muted",
2048
2020
  "output-available": "ok",
@@ -4326,7 +4298,7 @@ function StatusIcon({ tc }) {
4326
4298
  function DefaultToolBlock({ tc }) {
4327
4299
  const summary = toolSummary(tc);
4328
4300
  return /* @__PURE__ */ jsxs(Collapsible, { className: "overflow-hidden rounded-[10px] border border-foreground/[0.08]", children: [
4329
- /* @__PURE__ */ jsx(CollapsibleHeader, { variant: "section", children: /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-2", children: [
4301
+ /* @__PURE__ */ jsx(CollapsibleHeader, { variant: "section", size: "sm", children: /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-2", children: [
4330
4302
  /* @__PURE__ */ jsx(StatusIcon, { tc }),
4331
4303
  /* @__PURE__ */ jsx("span", { className: "shrink-0", children: toolLabel(tc.toolName) }),
4332
4304
  summary && /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-xs font-normal text-muted-foreground/70", children: summary })
@@ -7049,7 +7021,7 @@ function ResearchSourcesPanel({
7049
7021
  onOpenChange: setExpanded,
7050
7022
  className: "rounded-[10px] border border-foreground/[0.08] bg-card",
7051
7023
  children: [
7052
- /* @__PURE__ */ jsxs(CollapsibleHeader, { variant: "section", children: [
7024
+ /* @__PURE__ */ jsxs(CollapsibleHeader, { variant: "section", size: "sm", children: [
7053
7025
  "Sources \xB7 ",
7054
7026
  sources.length
7055
7027
  ] }),
@@ -14360,8 +14332,6 @@ var TOOLS = [
14360
14332
  { id: "select", label: "Select", Icon: MousePointer2 },
14361
14333
  { id: "pan", label: "Pan", Icon: Hand }
14362
14334
  ];
14363
- var TOOL_ITEM = "size-9 px-0 pointer-coarse:size-11";
14364
- var SWATCH_ITEM = "size-7 px-0 pointer-coarse:size-11";
14365
14335
  function ToolRail({
14366
14336
  tool,
14367
14337
  onToolChange,
@@ -14395,7 +14365,7 @@ function ToolRail({
14395
14365
  if (next) onToolChange(next);
14396
14366
  },
14397
14367
  disabled,
14398
- children: TOOLS.map(({ id, label, Icon }) => /* @__PURE__ */ jsx(ToggleGroupItem, { value: id, "aria-label": label, className: TOOL_ITEM, children: /* @__PURE__ */ jsx(Icon, { className: "size-4" }) }, id))
14368
+ children: TOOLS.map(({ id, label, Icon }) => /* @__PURE__ */ jsx(ToggleGroupItem, { value: id, "aria-label": label, size: "icon", children: /* @__PURE__ */ jsx(Icon, { className: "size-4" }) }, id))
14399
14369
  }
14400
14370
  ),
14401
14371
  /* @__PURE__ */ jsx("div", { className: "my-1 h-px w-full bg-border" }),
@@ -14412,7 +14382,7 @@ function ToolRail({
14412
14382
  if (next) onColorChange(next);
14413
14383
  },
14414
14384
  disabled,
14415
- children: INK_COLORS.map((c) => /* @__PURE__ */ jsx(ToggleGroupItem, { value: c, "aria-label": `Colour ${c}`, className: SWATCH_ITEM, children: /* @__PURE__ */ jsx("span", { className: "size-5 rounded-full", style: { backgroundColor: c } }) }, c))
14385
+ children: INK_COLORS.map((c) => /* @__PURE__ */ jsx(ToggleGroupItem, { value: c, "aria-label": `Colour ${c}`, size: "icon-xs", children: /* @__PURE__ */ jsx("span", { className: "size-5 rounded-full", style: { backgroundColor: c } }) }, c))
14416
14386
  }
14417
14387
  ),
14418
14388
  /* @__PURE__ */ jsx("div", { className: "my-1 h-px w-full bg-border" }),
@@ -14429,7 +14399,7 @@ function ToolRail({
14429
14399
  if (next) onWidthChange(Number(next));
14430
14400
  },
14431
14401
  disabled,
14432
- children: INK_WIDTHS.map((w) => /* @__PURE__ */ jsx(ToggleGroupItem, { value: String(w), "aria-label": `Width ${w}`, className: SWATCH_ITEM, children: /* @__PURE__ */ jsx(
14402
+ children: INK_WIDTHS.map((w) => /* @__PURE__ */ jsx(ToggleGroupItem, { value: String(w), "aria-label": `Width ${w}`, size: "icon-xs", children: /* @__PURE__ */ jsx(
14433
14403
  "span",
14434
14404
  {
14435
14405
  className: "rounded-full bg-foreground",
@@ -15542,6 +15512,7 @@ function OfficeEditorPane({ adapter, sessionId, path, view, officeEvent, onClose
15542
15512
  const placeholderId = `office-editor-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
15543
15513
  const [error, setError] = useState(null);
15544
15514
  const [loading, setLoading] = useState(true);
15515
+ const [mentionTrouble, setMentionTrouble] = useState(null);
15545
15516
  const [openedAfter] = useState(() => officeEvent?.eventId ?? 0);
15546
15517
  const notice = officeEvent && officeEvent.eventId > openedAfter ? officeEvent : null;
15547
15518
  const [reopenedFor, setReopenedFor] = useState(0);
@@ -15558,6 +15529,7 @@ function OfficeEditorPane({ adapter, sessionId, path, view, officeEvent, onClose
15558
15529
  let editor = null;
15559
15530
  setError(null);
15560
15531
  setLoading(true);
15532
+ setMentionTrouble(null);
15561
15533
  void (async () => {
15562
15534
  try {
15563
15535
  if (!adapter.getWorkspaceEditorConfig) throw new Error("Preview not available. Download the file to open it.");
@@ -15565,7 +15537,31 @@ function OfficeEditorPane({ adapter, sessionId, path, view, officeEvent, onClose
15565
15537
  await loadDocsApi(opened.document_server_url);
15566
15538
  if (cancelled) return;
15567
15539
  if (!window.DocsAPI) throw new Error("The document editor could not be loaded.");
15568
- editor = new window.DocsAPI.DocEditor(placeholderId, opened.config);
15540
+ const users = opened.mentionable_users ?? [];
15541
+ const notify = adapter.notifyWorkspaceEditorMention?.bind(adapter);
15542
+ const events = users.length && notify ? {
15543
+ onRequestUsers: (event) => {
15544
+ const c = event.data?.c;
15545
+ editor?.setUsers({ c, users: c === "mention" || c === "info" ? users : [] });
15546
+ },
15547
+ onRequestSendNotify: (event) => {
15548
+ const mention = event.data ?? {};
15549
+ const emails = mention.emails ?? [];
15550
+ const named2 = new Set(emails.map((email) => email.toLowerCase()));
15551
+ if (!users.some((user) => named2.has(user.email.toLowerCase()))) return;
15552
+ setMentionTrouble(null);
15553
+ void notify({
15554
+ sessionId,
15555
+ path,
15556
+ emails,
15557
+ message: mention.message ?? "",
15558
+ commentId: String(mention.actionLink?.action?.data ?? mention.actionId ?? "")
15559
+ }).catch((sendError) => {
15560
+ if (!cancelled) setMentionTrouble(`The agent was not told about your comment: ${sendError.message}`);
15561
+ });
15562
+ }
15563
+ } : null;
15564
+ editor = new window.DocsAPI.DocEditor(placeholderId, events ? { ...opened.config, events } : opened.config);
15569
15565
  } catch (openError) {
15570
15566
  if (!cancelled) setError(openError.message);
15571
15567
  } finally {
@@ -15617,6 +15613,7 @@ function OfficeEditorPane({ adapter, sessionId, path, view, officeEvent, onClose
15617
15613
  /* @__PURE__ */ jsx("span", { children: error })
15618
15614
  ] }),
15619
15615
  notice && saveNotice(notice) && /* @__PURE__ */ jsx("div", { role: "status", className: "border-b border-line px-3 py-2 text-xs text-muted-foreground", children: saveNotice(notice) }),
15616
+ mentionTrouble && /* @__PURE__ */ jsx("div", { role: "status", className: "border-b border-line px-3 py-2 text-xs text-muted-foreground", children: mentionTrouble }),
15620
15617
  loading && !error && /* @__PURE__ */ jsxs("div", { className: "p-3 text-sm text-muted-foreground", children: [
15621
15618
  "Opening ",
15622
15619
  fileName2,
@@ -16293,7 +16290,7 @@ function WorkspacePanel({
16293
16290
  )
16294
16291
  ] }) }),
16295
16292
  /* @__PURE__ */ jsx(
16296
- ConfirmDialog2,
16293
+ ConfirmDialog,
16297
16294
  {
16298
16295
  open: deleteTarget !== null,
16299
16296
  title: "Delete file?",
@@ -16313,53 +16310,6 @@ function WorkspacePanel({
16313
16310
  )
16314
16311
  );
16315
16312
  }
16316
- function ConfirmDialog2({
16317
- open,
16318
- title,
16319
- description,
16320
- confirmLabel,
16321
- loading,
16322
- onConfirm,
16323
- onCancel
16324
- }) {
16325
- return /* @__PURE__ */ jsx(
16326
- Dialog,
16327
- {
16328
- open,
16329
- onOpenChange: (nextOpen) => {
16330
- if (!nextOpen && !loading) onCancel();
16331
- },
16332
- children: /* @__PURE__ */ jsxs(
16333
- DialogContent,
16334
- {
16335
- showCloseButton: false,
16336
- className: "gap-3.5 px-6 pt-6 pb-5 sm:max-w-[430px]",
16337
- children: [
16338
- /* @__PURE__ */ jsxs(DialogHeader, { children: [
16339
- /* @__PURE__ */ jsx(DialogTitle, { children: title }),
16340
- /* @__PURE__ */ jsx(DialogDescription, { children: description })
16341
- ] }),
16342
- /* @__PURE__ */ jsxs(DialogFooter, { className: "pt-1.5", children: [
16343
- /* @__PURE__ */ jsx(Button, { variant: "outline", disabled: loading, onClick: onCancel, children: "Cancel" }),
16344
- /* @__PURE__ */ jsxs(
16345
- Button,
16346
- {
16347
- variant: "destructive",
16348
- disabled: loading,
16349
- onClick: onConfirm,
16350
- children: [
16351
- loading && /* @__PURE__ */ jsx(Loader2Icon, { className: "mr-1.5 size-3.5 animate-spin" }),
16352
- confirmLabel
16353
- ]
16354
- }
16355
- )
16356
- ] })
16357
- ]
16358
- }
16359
- )
16360
- }
16361
- );
16362
- }
16363
16313
 
16364
16314
  // src/lib/sessions.ts
16365
16315
  function sessionComputer(config) {
@@ -16400,12 +16350,7 @@ function readOnlyReasonForSession(session) {
16400
16350
  }
16401
16351
  return { readOnly: false };
16402
16352
  }
16403
- var RIGHT_STACK_STYLE = {
16404
- // Both the column's width and the chat panel's right offset read this, so
16405
- // one value keeps them complementary. 50%: the browser shell renders a real
16406
- // page, and page layouts are unusable in a 440px strip.
16407
- ["--right-stack-w"]: "50%"
16408
- };
16353
+ var RIGHT_STACK_STYLE = { ["--right-stack-w"]: "75%" };
16409
16354
  var MOBILE_PANE_LABELS = {
16410
16355
  chat: "Chat",
16411
16356
  browser: "Browser",
@@ -18414,6 +18359,7 @@ function compareNodes(a, b) {
18414
18359
  }
18415
18360
  var IDEA_STATUS_TONE = {
18416
18361
  merged: "ok",
18362
+ done: "info",
18417
18363
  running: "warn",
18418
18364
  failed: "bad"
18419
18365
  };
@@ -18745,7 +18691,7 @@ function TaskDetail({
18745
18691
  /* @__PURE__ */ jsx(MessageResponse, { className: "text-sm leading-relaxed text-foreground/90", children: task.goal })
18746
18692
  ] }),
18747
18693
  task.resultMetadata ? /* @__PURE__ */ jsxs(Collapsible, { className: "rounded-[10px] border border-foreground/[0.08]", children: [
18748
- /* @__PURE__ */ jsx(CollapsibleHeader, { variant: "section", children: "Result metadata" }),
18694
+ /* @__PURE__ */ jsx(CollapsibleHeader, { variant: "section", size: "sm", children: "Result metadata" }),
18749
18695
  /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("pre", { className: "max-h-64 overflow-auto whitespace-pre-wrap border-t border-foreground/[0.08] px-3 py-2 text-[11px] text-foreground/90", children: JSON.stringify(task.resultMetadata, null, 2) }) })
18750
18696
  ] }) : null,
18751
18697
  eventsSupported && taskEvents.length > 0 ? /* @__PURE__ */ jsxs("div", { children: [