@mcp-b/react-components 0.42.0 → 0.44.0

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 (134) hide show
  1. package/dist/{AgentChat-DVr2giwD.d.ts → AgentChat-Bibfj7u1.d.ts} +1 -1
  2. package/dist/{AgentChatStartScreen-CO49yepa.d.ts → AgentChatStartScreen-Bkv7Avni.d.ts} +6 -0
  3. package/dist/{CodeBlock-BjELA-_s.js → CodeBlock-Dl7a3Wqo.js} +1 -1
  4. package/dist/{FileTree-DMYRdT6R.js → FileTree-Uu3ZnW1u.js} +1 -1
  5. package/dist/McpPluginCatalog-mbGw8FTu.d.ts +92 -0
  6. package/dist/ResponsiveSidebarShell-DOXd5T-d.d.ts +111 -0
  7. package/dist/SetupChecklist-DOp-zqjh.js +77 -0
  8. package/dist/{ThinkChatActivity-CsDql-ER.d.ts → ThinkChatActivity-CgvmTXXB.d.ts} +1 -1
  9. package/dist/Workspace-F3raHdYV.d.ts +140 -0
  10. package/dist/{WorkspaceFileView-DwdXiKku.js → WorkspaceFileView-BublZXky.js} +2 -3
  11. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  12. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  13. package/dist/components/agents-sdk/AgentChat.js +10 -10
  14. package/dist/components/agents-sdk/BrowserLiveScreen.js +4 -1
  15. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  16. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  17. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  18. package/dist/components/agents-sdk/ManagerOffice.js +4 -4
  19. package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
  20. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  21. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -91
  22. package/dist/components/agents-sdk/McpPluginCatalog.js +3 -3
  23. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  24. package/dist/components/agents-sdk/ModelSelector.js +3 -3
  25. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  26. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  27. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  28. package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
  29. package/dist/components/agents-sdk/ThinkChat.d.ts +2 -2
  30. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  31. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  32. package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
  33. package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
  34. package/dist/components/agents-sdk/ThinkExecutionDetail.js +3 -3
  35. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  36. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
  37. package/dist/components/agents-sdk/ThinkFullApp.d.ts +20 -6
  38. package/dist/components/agents-sdk/ThinkFullApp.js +7 -6
  39. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  40. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +3 -2
  41. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -7
  42. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +2 -2
  43. package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
  44. package/dist/components/agents-sdk/ThinkRoutineForm.d.ts +34 -18
  45. package/dist/components/agents-sdk/ThinkRoutineForm.js +395 -110
  46. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +5 -4
  47. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +19 -33
  48. package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
  49. package/dist/components/agents-sdk/ThinkSidepanel.d.ts +173 -0
  50. package/dist/components/agents-sdk/ThinkSidepanel.js +711 -0
  51. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +4 -5
  52. package/dist/components/agents-sdk/ThinkThreadPicker.js +9 -9
  53. package/dist/components/agents-sdk/Workspace.d.ts +1 -139
  54. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  55. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  56. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +1 -1
  57. package/dist/components/agents-sdk/WorkspaceExplorer.js +3 -3
  58. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  59. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  60. package/dist/components/agents-sdk/WorkspaceMountManager.js +2 -2
  61. package/dist/components/ai-sdk/Activity.js +1 -1
  62. package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +1 -1
  63. package/dist/components/ai-sdk/AgentChatStartScreen.js +6 -3
  64. package/dist/components/ai-sdk/Approval.js +2 -2
  65. package/dist/components/ai-sdk/Artifact.js +1 -1
  66. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  67. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  68. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  69. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  70. package/dist/components/ai-sdk/ConnectedAppCards.d.ts +106 -0
  71. package/dist/components/ai-sdk/ConnectedAppCards.js +416 -0
  72. package/dist/components/ai-sdk/Conversation.js +1 -1
  73. package/dist/components/ai-sdk/Goal.js +1 -1
  74. package/dist/components/ai-sdk/InlineCitation.js +1 -1
  75. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  76. package/dist/components/ai-sdk/Message.js +1 -1
  77. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  78. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  79. package/dist/components/ai-sdk/Plan.js +1 -1
  80. package/dist/components/ai-sdk/PromptInput.js +3 -3
  81. package/dist/components/ai-sdk/Queue.js +2 -2
  82. package/dist/components/ai-sdk/Reasoning.js +2 -2
  83. package/dist/components/ai-sdk/Sources.js +1 -1
  84. package/dist/components/ai-sdk/Task.js +1 -1
  85. package/dist/components/ai-sdk/ToolInvocation.js +1 -1
  86. package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -3
  87. package/dist/components/extension/ChatGptSignInScreen.js +7 -20
  88. package/dist/components/extension/CodexModelSelector.js +2 -2
  89. package/dist/components/extension/ConversationTabPicker.js +2 -2
  90. package/dist/components/foundations/Checkbox.js +1 -1
  91. package/dist/components/foundations/Collapsible.js +1 -1
  92. package/dist/components/foundations/ContextMenu.js +1 -1
  93. package/dist/components/foundations/DescriptionList.d.ts +3 -0
  94. package/dist/components/foundations/DescriptionList.js +2 -1
  95. package/dist/components/foundations/Menubar.js +1 -1
  96. package/dist/components/foundations/SearchField.js +1 -1
  97. package/dist/components/foundations/Select.js +1 -1
  98. package/dist/components/foundations/Stepper.js +1 -1
  99. package/dist/components/foundations/Toast.js +1 -1
  100. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  101. package/dist/components/foundations/ToggleGroup.js +1 -1
  102. package/dist/components/foundations/icons.d.ts +2 -2
  103. package/dist/components/foundations/icons.js +2 -2
  104. package/dist/components/general-purpose/Commit.js +2 -2
  105. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  106. package/dist/components/general-purpose/FileTree.js +1 -1
  107. package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
  108. package/dist/components/general-purpose/PricingPlanCard.js +1 -1
  109. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  110. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -104
  111. package/dist/components/general-purpose/ResponsiveSidebarShell.js +3 -3
  112. package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
  113. package/dist/components/general-purpose/SetupChecklist.js +1 -76
  114. package/dist/components/general-purpose/Terminal.js +2 -2
  115. package/dist/components/general-purpose/TestResults.js +1 -1
  116. package/dist/components/general-purpose/ThemeModeControl.js +2 -2
  117. package/dist/components/general-purpose/WebPreview.js +2 -2
  118. package/dist/components/nanites/AgentConnection.js +2 -2
  119. package/dist/components/nanites/AgentToolDetail.js +4 -4
  120. package/dist/{copy-button-lys9N_aI.js → copy-button-DHhf-J1d.js} +1 -1
  121. package/dist/{icons-0corjfxR.d.ts → icons-6ZnyZJiR.d.ts} +6 -1
  122. package/dist/{icons-CVFSeTJn.js → icons-Dw-im7lg.js} +4 -3
  123. package/dist/styles/agent-chat.css +20 -15
  124. package/dist/styles/browser-live-screen.css +3 -0
  125. package/dist/styles/button.css +1 -5
  126. package/dist/styles/chatgpt-sign-in-screen.css +87 -43
  127. package/dist/styles/connected-app-card.css +54 -0
  128. package/dist/styles/description-list.css +25 -0
  129. package/dist/styles/index.css +2 -0
  130. package/dist/styles/responsive-sidebar-shell.css +12 -9
  131. package/dist/styles/think-routine-library.css +28 -0
  132. package/dist/styles/think-sidepanel.css +74 -0
  133. package/package.json +2 -2
  134. package/dist/{ThinkChat-DkA4Wr71.js → ThinkChat-BES_3Mb-.js} +1 -1
@@ -1,92 +1,2 @@
1
- import { o as McpServerCard } from "../../mcp-server-catalog-CCj2ItkV.js";
2
- import { r as McpConnectorFormValues } from "../../McpConnectorForm-MRm1r59e.js";
3
- import { l as DialogProps } from "../../Dialog-B_FhRWaz.js";
4
- import * as React from "react";
5
- import { MCPServersState } from "agents";
6
-
7
- //#region src/components/agents-sdk/McpPluginCatalog.d.ts
8
- /** Optional plugin-specific copy layered over the canonical MCP server card. */
9
- interface McpPluginDetails {
10
- developerName?: string;
11
- marketplaceName?: string;
12
- longDescription?: string;
13
- capabilities?: readonly string[];
14
- skills?: readonly string[];
15
- }
16
- interface McpPluginCatalogProps extends Omit<React.HTMLAttributes<HTMLElement>, "onSelect"> {
17
- /** Canonical connector cards. The directory does not create a second plugin registry. */
18
- servers: readonly McpServerCard[];
19
- /** Upstream Agents MCP state used to project connected and recovery states. */
20
- mcp?: MCPServersState;
21
- /** Optional plugin metadata keyed by the canonical server ID. */
22
- detailsByServerId?: Readonly<Record<string, McpPluginDetails | undefined>>;
23
- /** Server IDs promoted into the Featured section, in display order. */
24
- featuredServerIds?: readonly string[];
25
- /** Host product name paired with the plugin in the connection dialog. */
26
- brandName?: string;
27
- /** Host product mark paired with the plugin in the connection dialog. */
28
- brandLogo?: React.ReactNode;
29
- /** Product-authored trust and data-sharing copy. Pass null to omit it. */
30
- disclosure?: React.ReactNode;
31
- /** Starts or recovers the existing MCP connection path. */
32
- onConnect?: (server: McpServerCard) => void | Promise<void>;
33
- /** Removes the exact upstream MCP entry. */
34
- onDisconnect?: (serverId: string) => void | Promise<void>;
35
- /**
36
- * Connects a user-supplied MCP server. Providing it puts the "Custom
37
- * plugin" action in the bar, opening the shared connector setup dialog.
38
- */
39
- onAddCustom?: (values: McpConnectorFormValues) => void | Promise<void>;
40
- /** Accessible name only — the hosting tab or icon is the visible title. */
41
- heading?: React.ReactNode;
42
- searchLabel?: string;
43
- emptyMessage?: React.ReactNode;
44
- }
45
- interface McpPluginDetailsDialogProps {
46
- /** Selected canonical server card. Passing null closes the dialog. */
47
- server: McpServerCard | null;
48
- details?: McpPluginDetails;
49
- mcp?: MCPServersState;
50
- brandName?: string;
51
- brandLogo?: React.ReactNode;
52
- disclosure?: React.ReactNode;
53
- onConnect?: (server: McpServerCard) => void | Promise<void>;
54
- onDisconnect?: (serverId: string) => void | Promise<void>;
55
- onOpenChange: NonNullable<DialogProps["onOpenChange"]>;
56
- }
57
- /**
58
- * Searchable plugin directory backed by the same MCP cards and live Agents
59
- * state as {@link McpServerPicker}. Selecting a row opens the shared details
60
- * dialog; connecting still delegates to the host's existing MCP/OAuth path.
61
- */
62
- declare function McpPluginCatalog({
63
- servers,
64
- mcp,
65
- detailsByServerId,
66
- featuredServerIds,
67
- brandName,
68
- brandLogo,
69
- disclosure,
70
- onConnect,
71
- onDisconnect,
72
- onAddCustom,
73
- heading,
74
- searchLabel,
75
- emptyMessage,
76
- className,
77
- ...props
78
- }: McpPluginCatalogProps): React.JSX.Element;
79
- /** Reference-derived plugin detail surface without a parallel install state. */
80
- declare function McpPluginDetailsDialog({
81
- server,
82
- details,
83
- mcp,
84
- brandName,
85
- brandLogo,
86
- disclosure,
87
- onConnect,
88
- onDisconnect,
89
- onOpenChange
90
- }: McpPluginDetailsDialogProps): React.JSX.Element;
91
- //#endregion
1
+ import { a as McpPluginDetailsDialogProps, i as McpPluginDetailsDialog, n as McpPluginCatalogProps, r as McpPluginDetails, t as McpPluginCatalog } from "../../McpPluginCatalog-mbGw8FTu.js";
92
2
  export { McpPluginCatalog, McpPluginCatalogProps, McpPluginDetails, McpPluginDetailsDialog, McpPluginDetailsDialogProps };
@@ -1,15 +1,15 @@
1
1
  import { CUSTOM_MCP_SERVER_CARD } from "../../utils/mcp-server-catalog.js";
2
2
  import { t as cx } from "../../class-names-BiMDVpUo.js";
3
- import { $ as WarningIcon, B as PlusIcon, K as SpinnerIcon, o as ArrowUpRightIcon, tt as XIcon, y as EllipsisIcon } from "../../icons-CVFSeTJn.js";
3
+ import { V as PlusIcon, et as WarningIcon, nt as XIcon, o as ArrowUpRightIcon, q as SpinnerIcon, y as EllipsisIcon } from "../../icons-Dw-im7lg.js";
4
4
  import { Button } from "../foundations/Button.js";
5
- import { AgentAttention, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
6
5
  import { IconButton } from "../foundations/IconButton.js";
7
6
  import { Dialog } from "../foundations/Dialog.js";
8
7
  import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
9
8
  import { Separator } from "../foundations/Separator.js";
9
+ import { AgentAttention, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
10
10
  import { AppIcon } from "../foundations/AppIcon.js";
11
- import { SearchField } from "../foundations/SearchField.js";
12
11
  import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
12
+ import { SearchField } from "../foundations/SearchField.js";
13
13
  import { McpServerSetupDialog } from "./McpServerPicker.js";
14
14
  import * as React from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,9 +1,9 @@
1
1
  import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
2
- import { $ as WarningIcon, K as SpinnerIcon, M as MinusIcon, d as CheckIcon } from "../../icons-CVFSeTJn.js";
2
+ import { N as MinusIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-Dw-im7lg.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
- import { Menu } from "../foundations/Menu.js";
5
4
  import { Dialog } from "../foundations/Dialog.js";
6
5
  import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
6
+ import { Menu } from "../foundations/Menu.js";
7
7
  import { PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger } from "../ai-sdk/PromptInput.js";
8
8
  import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
9
9
  import { McpConnectorForm } from "./McpConnectorForm.js";
@@ -1,13 +1,13 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { U as SearchIcon, f as ChevronDownIcon } from "../../icons-CVFSeTJn.js";
2
+ import { W as SearchIcon, f as ChevronDownIcon } from "../../icons-Dw-im7lg.js";
3
3
  import { Button } from "../foundations/Button.js";
4
- import { Autocomplete } from "../foundations/Autocomplete.js";
5
4
  import { Dialog } from "../foundations/Dialog.js";
6
5
  import { o as titleCase } from "../../format-DB2mX9DA.js";
7
6
  import { Separator } from "../foundations/Separator.js";
7
+ import { EmptyState } from "../foundations/EmptyState.js";
8
8
  import { ScrollArea } from "../foundations/ScrollArea.js";
9
+ import { Autocomplete } from "../foundations/Autocomplete.js";
9
10
  import { t as ProviderLogo } from "../../provider-logos-zjZycgV6.js";
10
- import { EmptyState } from "../foundations/EmptyState.js";
11
11
  import * as React from "react";
12
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
13
  import { createPortal } from "react-dom";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { ToolApproval } from "../ai-sdk/ToolApproval.js";
3
2
  import { ThinkExecutionApproval, ThinkPendingApproval, getPausedExecution } from "./ThinkPendingApproval.js";
3
+ import { ToolApproval } from "../ai-sdk/ToolApproval.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import { isToolUIPart } from "ai";
@@ -1,4 +1,4 @@
1
- import { c as BoxIcon, k as McpIcon } from "../../icons-CVFSeTJn.js";
1
+ import { A as McpIcon, c as BoxIcon } from "../../icons-Dw-im7lg.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/agents-sdk/PromptInputCommands.tsx
4
4
  /** Project whole upstream Agents MCP state into composer mention commands. */
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { $ as WarningIcon, J as StopIcon, K as SpinnerIcon, d as CheckIcon } from "../../icons-CVFSeTJn.js";
2
+ import { Y as StopIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-Dw-im7lg.js";
3
3
  import "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/components/agents-sdk/SubagentRunIndicator.tsx
@@ -2,8 +2,8 @@ import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { buttonVariants } from "../foundations/Button.js";
3
3
  import { Tooltip } from "../foundations/Tooltip.js";
4
4
  import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
5
- import { NaniteMark } from "../nanites/NaniteScene.js";
6
5
  import { SubagentRunIndicator, getSubagentRunName, getSubagentRunTooltip } from "./SubagentRunIndicator.js";
6
+ import { NaniteMark } from "../nanites/NaniteScene.js";
7
7
  import "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/components/agents-sdk/SubagentRunSelector.tsx
@@ -1,9 +1,9 @@
1
1
  import { i as AgentMessageRenderPartContext } from "../../AgentMessageParts-C7L-Mv9U.js";
2
2
  import { K as PromptInputMessage } from "../../PromptInput-BRX7FhjH.js";
3
- import { r as AgentChatProps } from "../../AgentChat-DVr2giwD.js";
3
+ import { r as AgentChatProps } from "../../AgentChat-Bibfj7u1.js";
4
4
  import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-daY67hFM.js";
5
5
  import { o as UseSessionCompactionResult } from "../../SessionCompaction-CmTJFpzj.js";
6
- import { o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, t as ThinkChatActivity } from "../../ThinkChatActivity-CsDql-ER.js";
6
+ import { o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, t as ThinkChatActivity } from "../../ThinkChatActivity-CgvmTXXB.js";
7
7
  import { i as ThinkChatValue } from "../../ThinkChatContext-COIgzkYp.js";
8
8
  import { t as ThinkRecoveryNotice } from "../../ThinkRecoveryNotice-DGWr94rk.js";
9
9
  import { n as WorkspaceHtmlArtifactRenderer } from "../../WorkspaceMessageResponse-D66ty4FO.js";
@@ -1,2 +1,2 @@
1
- import { a as thinkPendingExecutionApprovalsQueryOptions, i as ThinkChatRoot, n as ThinkChatMessages, o as useThinkChat, r as ThinkChatProvider, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-DkA4Wr71.js";
1
+ import { a as thinkPendingExecutionApprovalsQueryOptions, i as ThinkChatRoot, n as ThinkChatMessages, o as useThinkChat, r as ThinkChatProvider, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-BES_3Mb-.js";
2
2
  export { ThinkChat, ThinkChatMessages, ThinkChatProvider, ThinkChatRoot, thinkPendingExecutionApprovalsQueryOptions, useThinkChat, useThinkPendingExecutionApprovals };
@@ -1,2 +1,2 @@
1
- import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../../ThinkChatActivity-CsDql-ER.js";
1
+ import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../../ThinkChatActivity-CgvmTXXB.js";
2
2
  export { ThinkChatActivity, ThinkChatActivityProps, ThinkChatActivityRendererOptions, ThinkChatToolRenderer, ThinkChatToolRenderers, createThinkChatActivityRenderer, renderThinkChatActivityPart };
@@ -1,10 +1,10 @@
1
- import { useExpansionState } from "../ai-sdk/ExpansionState.js";
2
- import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityText, ActivityTrigger } from "../ai-sdk/Activity.js";
1
+ import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
3
2
  import { Button } from "../foundations/Button.js";
4
3
  import { MessageResponse } from "../ai-sdk/Message.js";
4
+ import { useExpansionState } from "../ai-sdk/ExpansionState.js";
5
+ import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityText, ActivityTrigger } from "../ai-sdk/Activity.js";
5
6
  import { useOptionalAgentToolRuns } from "./AgentToolRunsContext.js";
6
7
  import { SubagentRunList } from "./SubagentRunList.js";
7
- import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
8
8
  import { useOptionalThinkChatLive } from "./ThinkChatContext.js";
9
9
  import { isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartWorking, isSessionContextToolPart, isSkillToolPart, isThinkChatActivityPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
10
10
  import { ThinkChatBrowserPanel, ThinkChatExecutePanel, ThinkChatFetchPanel, ThinkChatSessionContextPanel, ThinkChatSkillPanel, ThinkChatWorkspacePanel } from "./ThinkChatToolPanels.js";
@@ -1,8 +1,8 @@
1
+ import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
1
2
  import { ActivityOutput, ActivityPanel } from "../ai-sdk/Activity.js";
2
3
  import { Tabs } from "../foundations/Tabs.js";
3
- import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
4
- import { t as CodeBlock } from "../../CodeBlock-BjELA-_s.js";
5
4
  import { BrowserLiveView } from "./BrowserLiveView.js";
5
+ import { t as CodeBlock } from "../../CodeBlock-Dl7a3Wqo.js";
6
6
  import { inferWorkspaceLanguage } from "./WorkspaceFile.js";
7
7
  import { displayUrl, isSessionContextToolFailure } from "./ThinkChatToolParts.js";
8
8
  import * as React from "react";
@@ -1,9 +1,9 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { S as FileIcon, T as InfoIcon } from "../../icons-CVFSeTJn.js";
3
- import { Activity, ActivityContent, ActivityItemGroup, ActivityOutput, ActivityTrigger } from "../ai-sdk/Activity.js";
2
+ import { S as FileIcon, T as InfoIcon } from "../../icons-Dw-im7lg.js";
4
3
  import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
5
- import { DescriptionList } from "../foundations/DescriptionList.js";
4
+ import { Activity, ActivityContent, ActivityItemGroup, ActivityOutput, ActivityTrigger } from "../ai-sdk/Activity.js";
6
5
  import { EmptyState } from "../foundations/EmptyState.js";
6
+ import { DescriptionList } from "../foundations/DescriptionList.js";
7
7
  import { formatThinkExecutionTimestamp, getThinkExecutionRunError, getThinkExecutionRunId, getThinkExecutionRunKindLabel, getThinkExecutionRunProgressedAt, getThinkExecutionRunProgressedLabel, getThinkExecutionRunTitle, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
8
8
  import { ThinkExecutionStatus } from "./ThinkExecutionStatus.js";
9
9
  import "react";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { K as SpinnerIcon, L as PauseIcon, T as InfoIcon, d as CheckIcon, tt as XIcon } from "../../icons-CVFSeTJn.js";
2
+ import { R as PauseIcon, T as InfoIcon, d as CheckIcon, nt as XIcon, q as SpinnerIcon } from "../../icons-Dw-im7lg.js";
3
3
  import { Tooltip } from "../foundations/Tooltip.js";
4
4
  import { formatThinkExecutionRunProgress, formatThinkExecutionStatus, getThinkExecutionRunKindLabel, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone, getThinkExecutionRunTitle } from "./ThinkExecutionRun.js";
5
5
  import "react";
@@ -1,11 +1,11 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { $ as WarningIcon, H as RefreshIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-CVFSeTJn.js";
2
+ import { U as RefreshIcon, et as WarningIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-Dw-im7lg.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
4
  import { IconButton } from "../foundations/IconButton.js";
5
- import { Menu } from "../foundations/Menu.js";
6
5
  import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
7
- import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
8
6
  import { EmptyState } from "../foundations/EmptyState.js";
7
+ import { Menu } from "../foundations/Menu.js";
8
+ import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
9
9
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
10
10
  import { getThinkExecutionRunAccessibleName, getThinkExecutionRunId, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
11
11
  import { ThinkExecutionRunSummary } from "./ThinkExecutionStatus.js";
@@ -1,11 +1,11 @@
1
1
  import { l as WorkspaceNavigationAdapter } from "../../WorkspaceLink-Bh9-Jo1r.js";
2
2
  import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-daY67hFM.js";
3
- import { McpPluginCatalogProps } from "./McpPluginCatalog.js";
3
+ import { n as McpPluginCatalogProps } from "../../McpPluginCatalog-mbGw8FTu.js";
4
4
  import { ThinkChatMessagesProps } from "./ThinkChat.js";
5
- import { AppBarSlots, ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
5
+ import { n as ResponsiveSidebarShell, t as AppBarSlots } from "../../ResponsiveSidebarShell-DOXd5T-d.js";
6
6
  import { ThinkThreadStatusSummary } from "./ThinkThreadPicker.js";
7
7
  import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-BLaFmMrt.js";
8
- import { WorkspaceSource } from "./Workspace.js";
8
+ import { v as WorkspaceSource } from "../../Workspace-F3raHdYV.js";
9
9
  import { t as ThinkAgent } from "../../think-agent-Cip5KAPj.js";
10
10
  import * as React from "react";
11
11
  import { UIMessage } from "ai";
@@ -15,6 +15,20 @@ import { useAgent } from "agents/react";
15
15
  //#region src/components/agents-sdk/ThinkFullApp.d.ts
16
16
  type ThinkFullAppAgent<State = unknown> = ThinkAgent<State>;
17
17
  type ThinkFullAppWorkbenchView = "files" | "plugins" | (string & {});
18
+ /**
19
+ * ThinkFullApp bar: the shared shell slots plus the workbench view switch.
20
+ * `views` omitted uses the built-in Files/Plugins switch. Pass `null` when
21
+ * the host already offers those destinations (an overflow menu). `primary`
22
+ * is always last.
23
+ */
24
+ interface ThinkFullAppBarSlots extends AppBarSlots {
25
+ /**
26
+ * View-switch slot. Omit for the built-in switch. `null` omits it so the
27
+ * host can own Files/Plugins in `actions` instead of showing a second set
28
+ * of icons.
29
+ */
30
+ views?: React.ReactNode | null;
31
+ }
18
32
  /**
19
33
  * The one view axis: the conversation alone, or the conversation with a named
20
34
  * workbench panel raised beside it (leading at narrow widths). Apps that make
@@ -70,8 +84,8 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
70
84
  workspace?: ThinkFullAppWorkspaceConfig;
71
85
  /** Plugin directory backed by the host's live Agents MCP state and connection callbacks. */
72
86
  plugins?: McpPluginCatalogProps;
73
- /** Application bar slots: back control, leading navigation, title, actions. */
74
- bar?: AppBarSlots;
87
+ /** Application bar slots: back, leading, title, actions, views, primary. */
88
+ bar?: ThinkFullAppBarSlots;
75
89
  /** Aggregate thread activity rendered beside the compact thread-title disclosure. */
76
90
  threadStatusSummary?: ThinkThreadStatusSummary;
77
91
  /**
@@ -132,4 +146,4 @@ declare function ThinkFullApp<AgentT extends ThinkFullAppAgent<State>, State = u
132
146
  ref?: React.Ref<HTMLDivElement>;
133
147
  }): React.JSX.Element;
134
148
  //#endregion
135
- export { ThinkFullApp, ThinkFullAppAgent, ThinkFullAppConversation, ThinkFullAppPanel, ThinkFullAppProps, ThinkFullAppView, ThinkFullAppWorkbenchView, ThinkFullAppWorkspaceConfig };
149
+ export { ThinkFullApp, ThinkFullAppAgent, ThinkFullAppBarSlots, ThinkFullAppConversation, ThinkFullAppPanel, ThinkFullAppProps, ThinkFullAppView, ThinkFullAppWorkbenchView, ThinkFullAppWorkspaceConfig };
@@ -1,11 +1,11 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { S as FileIcon, c as BoxIcon } from "../../icons-CVFSeTJn.js";
2
+ import { S as FileIcon, c as BoxIcon } from "../../icons-Dw-im7lg.js";
3
3
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
4
4
  import { ResizableSidePanel } from "../general-purpose/ResizableSidePanel.js";
5
5
  import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
6
- import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../../WorkspaceLink-DtH66bAY.js";
7
- import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-DkA4Wr71.js";
8
6
  import { McpPluginCatalog } from "./McpPluginCatalog.js";
7
+ import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../../WorkspaceLink-DtH66bAY.js";
8
+ import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-BES_3Mb-.js";
9
9
  import { ThinkFullAppViewSwitch } from "./ThinkFullAppViewSwitch.js";
10
10
  import { ThinkThreadStatusIndicators } from "./ThinkThreadPicker.js";
11
11
  import { useWorkspace } from "./Workspace.js";
@@ -131,7 +131,7 @@ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewPr
131
131
  const activePanel = requestedView === "chat" ? void 0 : availableWorkbenchPanels.find((panel) => panel.id === requestedView);
132
132
  const hasWorkbench = activePanel !== void 0;
133
133
  const activeMobileView = hasWorkbench ? "workbench" : "chat";
134
- const hasAppBarRow = Boolean(bar?.back || bar?.leading || bar?.compactLeading || bar?.title || bar?.actions || threadSidebar) || availableWorkbenchPanels.length > 0;
134
+ const hasAppBarRow = Boolean(bar?.back || bar?.leading || bar?.compactLeading || bar?.title || bar?.actions || bar?.primary || bar?.views || threadSidebar) || availableWorkbenchPanels.length > 0;
135
135
  React.useLayoutEffect(() => {
136
136
  const pendingFocus = pendingPanelFocusRef.current;
137
137
  if (!pendingFocus || pendingFocus.id !== activePanel?.id) return;
@@ -148,13 +148,13 @@ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewPr
148
148
  } : null;
149
149
  React.startTransition(() => setView(next));
150
150
  };
151
- const viewSwitch = availableWorkbenchPanels.length ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
151
+ const viewSwitch = bar?.views === void 0 && availableWorkbenchPanels.length ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
152
152
  views: availableWorkbenchPanels,
153
153
  value: activePanel?.id,
154
154
  allowEmpty: true,
155
155
  "aria-label": "App views",
156
156
  onValueChange: (next) => updateView(next ?? "chat")
157
- }) : null;
157
+ }) : bar?.views ?? null;
158
158
  const appBarActions = bar?.actions || viewSwitch ? /* @__PURE__ */ jsxs(Fragment, { children: [bar?.actions, viewSwitch] }) : void 0;
159
159
  const appContent = /* @__PURE__ */ jsxs(ResizableSidePanel.Root, {
160
160
  ref: mergeRefs(appRef, ref),
@@ -232,6 +232,7 @@ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewPr
232
232
  bar: {
233
233
  ...bar,
234
234
  actions: appBarActions,
235
+ primary: bar?.primary,
235
236
  className: "think-full-app__app-bar",
236
237
  label: "Workbench controls",
237
238
  hidden: !hasAppBarRow,
@@ -1,6 +1,6 @@
1
1
  import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
2
- import { ToggleGroup } from "../foundations/ToggleGroup.js";
3
2
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
3
+ import { ToggleGroup } from "../foundations/ToggleGroup.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/components/agents-sdk/ThinkFullAppViewSwitch.tsx
@@ -1,5 +1,5 @@
1
- import { AgentChatTurnError } from "../ai-sdk/AgentChatTurnError.js";
2
1
  import { TransitionSurface } from "../foundations/TransitionSurface.js";
2
+ import { AgentChatTurnError } from "../ai-sdk/AgentChatTurnError.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/agents-sdk/ThinkRecoveryNotice.tsx
5
5
  function connectionReason(error) {
@@ -27,7 +27,8 @@ function ThinkRecoveryNotice({ chat }) {
27
27
  }, "connection-error");
28
28
  }
29
29
  if (chat.error) {
30
- const retryMessageId = chat.messages.findLast((message) => message.role !== "system")?.id;
30
+ const lastMessage = chat.messages.at(-1);
31
+ const retryMessageId = lastMessage?.role === "user" ? lastMessage.id : void 0;
31
32
  return /* @__PURE__ */ jsx(TransitionSurface, {
32
33
  className: "think-recovery-notice",
33
34
  children: /* @__PURE__ */ jsx(AgentChatTurnError, {
@@ -25,12 +25,6 @@ interface ThinkRoutine {
25
25
  }
26
26
  /** Preserves an app-enriched native execution type carried by a routine subtype. */
27
27
  type ThinkRoutineRunOf<TRoutine extends ThinkRoutine = ThinkRoutine> = TRoutine["runs"][number];
28
- interface ThinkRoutineCreateRequest {
29
- name: string;
30
- ownerId: string;
31
- /** Whole upstream task, including prompt functions and handler tasks. */
32
- task: ThinkScheduledTask;
33
- }
34
28
  declare function getThinkRoutineNextRun(routine: ThinkRoutine): string | null;
35
29
  //#endregion
36
- export { ThinkRoutine, ThinkRoutineCreateRequest, ThinkRoutineOwner, ThinkRoutineRunOf, getThinkRoutineNextRun };
30
+ export { ThinkRoutine, ThinkRoutineOwner, ThinkRoutineRunOf, getThinkRoutineNextRun };
@@ -1,10 +1,10 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { B as PlusIcon } from "../../icons-CVFSeTJn.js";
2
+ import { V as PlusIcon } from "../../icons-Dw-im7lg.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
4
  import { Tooltip } from "../foundations/Tooltip.js";
5
5
  import { t as capitalize } from "../../format-DB2mX9DA.js";
6
- import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
7
6
  import { EmptyState } from "../foundations/EmptyState.js";
7
+ import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
8
8
  import { SearchField } from "../foundations/SearchField.js";
9
9
  import { ToggleGroup } from "../foundations/ToggleGroup.js";
10
10
  import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { Switch } from "../foundations/Switch.js";
3
2
  import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
3
+ import { Switch } from "../foundations/Switch.js";
4
4
  import { ThinkRoutineRuns } from "./ThinkRoutineRuns.js";
5
5
  import * as React from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,33 +1,49 @@
1
- import { ThinkRoutineCreateRequest, ThinkRoutineOwner } from "./ThinkRoutine.js";
2
1
  import * as React from "react";
3
2
  import { ThinkScheduledTaskSchedule } from "@cloudflare/think";
4
3
 
5
4
  //#region src/components/agents-sdk/ThinkRoutineForm.d.ts
6
- interface ThinkRoutineFormProps extends React.HTMLAttributes<HTMLElement> {
7
- busy?: boolean;
8
- owners: readonly ThinkRoutineOwner[];
9
- /**
10
- * Upstream Think schedule DSL values the host permits. Use an inline
11
- * timezone for a schedule-specific wall clock, or let the agent's
12
- * `getDefaultTimezone()` own wall-clock fallback behavior.
13
- */
14
- schedules: readonly ThinkScheduledTaskSchedule[];
5
+ /** Parsed schedule fields required to prefill the editor. */
6
+ type ThinkRoutineFormSchedule = {
7
+ kind: "interval";
8
+ intervalMs: number;
9
+ } | {
10
+ kind: "wall-clock";
11
+ timezone: string;
12
+ hour: number;
13
+ minute: number;
14
+ days: "daily" | "weekday" | readonly number[];
15
+ };
16
+ /** Existing routine fields required by the edit form. */
17
+ interface ThinkRoutineFormRoutine {
18
+ name: string;
19
+ task: {
20
+ prompt: string;
21
+ };
22
+ parsedSchedule: ThinkRoutineFormSchedule;
23
+ }
24
+ /** Prompt routine draft emitted by the routine form. */
25
+ interface ThinkRoutineFormValue {
26
+ name: string;
27
+ prompt: string;
28
+ schedule: ThinkScheduledTaskSchedule;
29
+ }
30
+ interface ThinkRoutineFormProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSubmit"> {
31
+ /** Existing routine projected through Think's schedule parser. Omit when creating. */
32
+ routine?: ThinkRoutineFormRoutine;
15
33
  /** App-authored TanStack Router Link to the routine catalog. */
16
34
  cancelLink?: React.ReactElement;
17
- onCreate: (request: ThinkRoutineCreateRequest) => void;
35
+ onSubmit: (value: ThinkRoutineFormValue) => void | Promise<void>;
18
36
  }
19
- /** Authoring surface for a serializable, prompt-based Think scheduled task. */
37
+ /** Complete create/edit surface for a prompt-based Think scheduled task. */
20
38
  declare function ThinkRoutineForm({
21
- busy,
22
39
  cancelLink,
23
40
  className,
24
- owners,
25
- onCreate,
26
- schedules,
41
+ routine,
42
+ onSubmit,
27
43
  ref,
28
44
  ...props
29
45
  }: ThinkRoutineFormProps & {
30
- ref?: React.Ref<HTMLElement>;
46
+ ref?: React.Ref<HTMLDivElement>;
31
47
  }): React.JSX.Element;
32
48
  //#endregion
33
- export { ThinkRoutineForm, ThinkRoutineFormProps };
49
+ export { ThinkRoutineForm, ThinkRoutineFormProps, ThinkRoutineFormRoutine, ThinkRoutineFormSchedule, ThinkRoutineFormValue };