@mcp-b/react-components 0.44.0 → 0.45.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 (139) hide show
  1. package/dist/{AgentToolRunsContext-daY67hFM.d.ts → AgentToolRunsContext-jtmveaRE.d.ts} +8 -7
  2. package/dist/{CodeBlock-Dl7a3Wqo.js → CodeBlock-8K1p1BDU.js} +1 -1
  3. package/dist/{FileTree-Uu3ZnW1u.js → FileTree-QTP57Qz4.js} +1 -1
  4. package/dist/{ResponsiveSidebarShell-DOXd5T-d.d.ts → ResponsiveSidebarShell-BTVPxLJK.d.ts} +12 -0
  5. package/dist/{SetupChecklist-DOp-zqjh.js → SetupChecklist-CZeToAbu.js} +1 -1
  6. package/dist/{ThinkChat-BES_3Mb-.js → ThinkChat-CWMcl79Q.js} +3 -21
  7. package/dist/{Workspace-F3raHdYV.d.ts → Workspace-jdVZ9S0a.d.ts} +1 -1
  8. package/dist/{WorkspaceFile-BLaFmMrt.d.ts → WorkspaceFile-Dq-GC0_T.d.ts} +3 -1
  9. package/dist/{WorkspaceFileView-BublZXky.js → WorkspaceFileView-DJ8Oxz57.js} +3 -3
  10. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  11. package/dist/components/agents-sdk/AgentChat.js +18 -13
  12. package/dist/components/agents-sdk/AgentEvent.d.ts +42 -0
  13. package/dist/components/agents-sdk/AgentEvent.js +96 -0
  14. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  15. package/dist/components/agents-sdk/AgentToolRunsContext.js +11 -7
  16. package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
  17. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  18. package/dist/components/agents-sdk/BrowserReplay.js +2 -2
  19. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  20. package/dist/components/agents-sdk/ManagerOffice.d.ts +104 -10
  21. package/dist/components/agents-sdk/ManagerOffice.js +1171 -147
  22. package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
  23. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  24. package/dist/components/agents-sdk/McpPluginCatalog.js +4 -4
  25. package/dist/components/agents-sdk/McpServerPicker.js +3 -3
  26. package/dist/components/agents-sdk/ModelSelector.js +4 -4
  27. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  28. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  29. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -1
  30. package/dist/components/agents-sdk/SubagentRunIndicator.d.ts +21 -3
  31. package/dist/components/agents-sdk/SubagentRunIndicator.js +56 -6
  32. package/dist/components/agents-sdk/SubagentRunSelector.js +5 -12
  33. package/dist/components/agents-sdk/ThinkChat.d.ts +1 -2
  34. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  35. package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
  36. package/dist/components/agents-sdk/ThinkChatActivitySummary.js +1 -1
  37. package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
  38. package/dist/components/agents-sdk/ThinkExecutionDetail.js +3 -3
  39. package/dist/components/agents-sdk/ThinkExecutionRun.js +1 -1
  40. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  41. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
  42. package/dist/components/agents-sdk/ThinkFullApp.d.ts +15 -5
  43. package/dist/components/agents-sdk/ThinkFullApp.js +51 -5
  44. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  45. package/dist/components/agents-sdk/ThinkPendingApproval.js +1 -1
  46. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
  47. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +3 -3
  48. package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
  49. package/dist/components/agents-sdk/ThinkRoutineForm.js +4 -4
  50. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +1 -1
  51. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +4 -4
  52. package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
  53. package/dist/components/agents-sdk/ThinkSidepanel.d.ts +22 -4
  54. package/dist/components/agents-sdk/ThinkSidepanel.js +69 -30
  55. package/dist/components/agents-sdk/ThinkThreadPicker.js +5 -5
  56. package/dist/components/agents-sdk/Workspace.d.ts +1 -1
  57. package/dist/components/agents-sdk/Workspace.js +14 -4
  58. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  59. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  60. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +1 -1
  61. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  62. package/dist/components/agents-sdk/WorkspaceFile.d.ts +2 -2
  63. package/dist/components/agents-sdk/WorkspaceFile.js +18 -1
  64. package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
  65. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  66. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  67. package/dist/components/agents-sdk/WorkspaceMountManager.js +4 -21
  68. package/dist/components/ai-sdk/Activity.js +1 -1
  69. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  70. package/dist/components/ai-sdk/Approval.js +2 -2
  71. package/dist/components/ai-sdk/Artifact.js +1 -1
  72. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  73. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  74. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  75. package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
  76. package/dist/components/ai-sdk/Context.js +1 -1
  77. package/dist/components/ai-sdk/Conversation.js +1 -1
  78. package/dist/components/ai-sdk/Goal.js +2 -2
  79. package/dist/components/ai-sdk/InlineCitation.js +1 -1
  80. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  81. package/dist/components/ai-sdk/Message.js +2 -2
  82. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  83. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  84. package/dist/components/ai-sdk/Plan.js +2 -2
  85. package/dist/components/ai-sdk/PromptInput.js +3 -3
  86. package/dist/components/ai-sdk/Queue.js +2 -2
  87. package/dist/components/ai-sdk/Reasoning.js +2 -2
  88. package/dist/components/ai-sdk/Sources.js +1 -1
  89. package/dist/components/ai-sdk/Task.js +1 -1
  90. package/dist/components/ai-sdk/ToolInvocation.js +1 -1
  91. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  92. package/dist/components/extension/CodexModelSelector.js +2 -2
  93. package/dist/components/extension/ConversationTabPicker.js +2 -2
  94. package/dist/components/foundations/Checkbox.js +1 -1
  95. package/dist/components/foundations/Collapsible.js +1 -1
  96. package/dist/components/foundations/ContextMenu.js +1 -1
  97. package/dist/components/foundations/Menubar.js +1 -1
  98. package/dist/components/foundations/SearchField.js +1 -1
  99. package/dist/components/foundations/Select.js +1 -1
  100. package/dist/components/foundations/Stepper.js +1 -1
  101. package/dist/components/foundations/Toast.js +1 -1
  102. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  103. package/dist/components/foundations/ToggleGroup.js +1 -1
  104. package/dist/components/foundations/icons.js +1 -1
  105. package/dist/components/general-purpose/Commit.js +2 -2
  106. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  107. package/dist/components/general-purpose/FileTree.js +1 -1
  108. package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
  109. package/dist/components/general-purpose/PricingPlanCard.js +2 -2
  110. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  111. package/dist/components/general-purpose/ResizableSidePanel.js +1 -1
  112. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -1
  113. package/dist/components/general-purpose/ResponsiveSidebarShell.js +72 -22
  114. package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
  115. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  116. package/dist/components/general-purpose/Terminal.js +2 -2
  117. package/dist/components/general-purpose/TestResults.js +1 -1
  118. package/dist/components/general-purpose/ThemeModeControl.js +2 -2
  119. package/dist/components/general-purpose/WebPreview.js +3 -3
  120. package/dist/components/nanites/AgentConnection.js +2 -2
  121. package/dist/components/nanites/AgentToolDetail.js +4 -4
  122. package/dist/{copy-button-DHhf-J1d.js → copy-button-BpA7wQva.js} +1 -1
  123. package/dist/{format-DB2mX9DA.js → format-COCyV98Z.js} +23 -1
  124. package/dist/{progress-ring-BEocM1e3.js → progress-ring-Cgii90dC.js} +1 -1
  125. package/dist/styles/agent-event.css +14 -0
  126. package/dist/styles/avatar.css +2 -1
  127. package/dist/styles/base.css +4 -0
  128. package/dist/styles/button.css +10 -0
  129. package/dist/styles/index.css +1 -0
  130. package/dist/styles/manager-office.css +1303 -70
  131. package/dist/styles/message-scroller.css +5 -0
  132. package/dist/styles/responsive-sidebar-shell.css +47 -0
  133. package/dist/styles/subagent-run.css +29 -19
  134. package/dist/styles/think-full-app.css +139 -4
  135. package/dist/styles/think-sidepanel.css +0 -5
  136. package/dist/styles/think-thread-picker.css +13 -12
  137. package/dist/styles/workspace-mount-manager.css +0 -22
  138. package/package.json +8 -8
  139. package/dist/{icons-Dw-im7lg.js → icons-DbrksZyY.js} +1 -1
@@ -1,8 +1,8 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { A as McpIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-Dw-im7lg.js";
2
+ import { A as McpIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
3
3
  import { Button } from "../foundations/Button.js";
4
- import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
5
4
  import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
5
+ import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
6
6
  import { DescriptionList } from "../foundations/DescriptionList.js";
7
7
  import { n as getMcpServerProjection } from "../../mcp-server-SD_S-IpB.js";
8
8
  import * as React from "react";
@@ -1,9 +1,9 @@
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
3
  import { Button } from "../foundations/Button.js";
4
- import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
5
4
  import { Field } from "../foundations/Field.js";
6
5
  import { Form } from "../foundations/Form.js";
6
+ import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
7
7
  import { Fieldset } from "../foundations/Fieldset.js";
8
8
  import * as React from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -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 { V as PlusIcon, et as WarningIcon, nt as XIcon, o as ArrowUpRightIcon, q as SpinnerIcon, y as EllipsisIcon } from "../../icons-Dw-im7lg.js";
3
+ import { V as PlusIcon, et as WarningIcon, nt as XIcon, o as ArrowUpRightIcon, q as SpinnerIcon, y as EllipsisIcon } from "../../icons-DbrksZyY.js";
4
4
  import { Button } from "../foundations/Button.js";
5
+ import { AgentAttention, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
5
6
  import { IconButton } from "../foundations/IconButton.js";
6
7
  import { Dialog } from "../foundations/Dialog.js";
7
- import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
8
+ import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
8
9
  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 { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
12
11
  import { SearchField } from "../foundations/SearchField.js";
12
+ import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.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 { N as MinusIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-Dw-im7lg.js";
2
+ import { N as MinusIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
- import { Dialog } from "../foundations/Dialog.js";
5
- import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
6
4
  import { Menu } from "../foundations/Menu.js";
5
+ import { Dialog } from "../foundations/Dialog.js";
6
+ import { a as formatErrorMessage } from "../../format-COCyV98Z.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 { W as SearchIcon, f as ChevronDownIcon } from "../../icons-Dw-im7lg.js";
2
+ import { W as SearchIcon, f as ChevronDownIcon } from "../../icons-DbrksZyY.js";
3
3
  import { Button } from "../foundations/Button.js";
4
+ import { Autocomplete } from "../foundations/Autocomplete.js";
4
5
  import { Dialog } from "../foundations/Dialog.js";
5
- import { o as titleCase } from "../../format-DB2mX9DA.js";
6
+ import { c as titleCase } from "../../format-COCyV98Z.js";
6
7
  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";
10
9
  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 { ThinkExecutionApproval, ThinkPendingApproval, getPausedExecution } from "./ThinkPendingApproval.js";
3
2
  import { ToolApproval } from "../ai-sdk/ToolApproval.js";
3
+ import { ThinkExecutionApproval, ThinkPendingApproval, getPausedExecution } from "./ThinkPendingApproval.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 { A as McpIcon, c as BoxIcon } from "../../icons-Dw-im7lg.js";
1
+ import { A as McpIcon, c as BoxIcon } from "../../icons-DbrksZyY.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 { n as clamp } from "../../format-DB2mX9DA.js";
2
+ import { n as clamp } from "../../format-COCyV98Z.js";
3
3
  import { Progress } from "../foundations/Progress.js";
4
4
  import * as React from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -3,8 +3,15 @@ import { AgentToolRunPart, AgentToolRunState } from "agents/agent-tools";
3
3
 
4
4
  //#region src/components/agents-sdk/SubagentRunIndicator.d.ts
5
5
  declare function getSubagentRunName(run: AgentToolRunState): string;
6
- /** Human-readable detail for a retained run selector's tooltip. */
7
- declare function getSubagentRunTooltip(run: AgentToolRunState): React.ReactNode;
6
+ /**
7
+ * One line of status for a retained run, derived from upstream's whole
8
+ * record: the latest progress report or streamed text while it runs, the
9
+ * report's first line once it finished, the failure otherwise. Rendered under
10
+ * the run's name wherever the run labels itself, and as its tooltip. Every
11
+ * source is cut in one place here, because a host's progress message, error,
12
+ * and report are all unbounded prose.
13
+ */
14
+ declare function getSubagentRunStatusText(run: AgentToolRunState): string;
8
15
  interface SubagentRunIndicatorProps<Part extends AgentToolRunPart = AgentToolRunPart> extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> {
9
16
  /** Complete retained-run state returned by `useAgentToolEvents()`. */
10
17
  run: AgentToolRunState<Part>;
@@ -18,5 +25,16 @@ declare function SubagentRunIndicator<Part extends AgentToolRunPart = AgentToolR
18
25
  }: SubagentRunIndicatorProps<Part> & {
19
26
  ref?: React.Ref<HTMLSpanElement>;
20
27
  }): React.JSX.Element;
28
+ /**
29
+ * How a run labels itself anywhere it appears: its Nanite, its name over its
30
+ * live status line, and its status mark. The selector chip and the drill-in's
31
+ * top bar share this so what a person clicks and what they land on read the
32
+ * same. The caller owns the surrounding row (a link, a bar title).
33
+ */
34
+ declare function SubagentRunLabel<Part extends AgentToolRunPart = AgentToolRunPart>({
35
+ run
36
+ }: {
37
+ /** Complete retained-run state returned by `useAgentToolEvents()`. */run: AgentToolRunState<Part>;
38
+ }): React.JSX.Element;
21
39
  //#endregion
22
- export { SubagentRunIndicator, SubagentRunIndicatorProps, getSubagentRunName, getSubagentRunTooltip };
40
+ export { SubagentRunIndicator, SubagentRunIndicatorProps, SubagentRunLabel, getSubagentRunName, getSubagentRunStatusText };
@@ -1,21 +1,48 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { Y as StopIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-Dw-im7lg.js";
2
+ import { Y as StopIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
3
+ import { r as firstLine, s as textLines } from "../../format-COCyV98Z.js";
4
+ import { NaniteMark } from "../nanites/NaniteScene.js";
3
5
  import "react";
4
- import { jsx } from "react/jsx-runtime";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
7
  //#region src/components/agents-sdk/SubagentRunIndicator.tsx
6
8
  function getSubagentRunName(run) {
7
9
  return run.display?.name ?? run.agentType;
8
10
  }
9
- /** Human-readable detail for a retained run selector's tooltip. */
10
- function getSubagentRunTooltip(run) {
11
+ /**
12
+ * The last thing the child said, read off the run's live stream projection —
13
+ * what a running run shows before (or between) its progress reports. The
14
+ * projection's part type only guarantees `type`, so the text is narrowed here
15
+ * rather than assumed.
16
+ */
17
+ function lastStreamedLine(run) {
18
+ for (let index = run.parts.length - 1; index >= 0; index -= 1) {
19
+ const part = run.parts[index];
20
+ if (part.type !== "text" || !("text" in part) || typeof part.text !== "string") continue;
21
+ const line = textLines(part.text).at(-1);
22
+ if (line) return line;
23
+ }
24
+ }
25
+ /** Where a run's status line comes from, before it is cut to one line. */
26
+ function statusSource(run) {
11
27
  switch (run.status) {
12
- case "running": return run.progress?.message ?? run.progress?.phase ?? "Running";
28
+ case "running": return run.progress?.message ?? run.progress?.phase ?? lastStreamedLine(run) ?? "Running";
13
29
  case "completed": return run.summary ?? "Completed";
14
30
  case "error": return run.error ?? "Agent run failed";
15
31
  case "aborted": return run.error ?? "Agent run stopped";
16
32
  case "interrupted": return run.error ?? (run.childStillRunning ? "Interrupted · agent may still be running" : "Interrupted");
17
33
  }
18
34
  }
35
+ /**
36
+ * One line of status for a retained run, derived from upstream's whole
37
+ * record: the latest progress report or streamed text while it runs, the
38
+ * report's first line once it finished, the failure otherwise. Rendered under
39
+ * the run's name wherever the run labels itself, and as its tooltip. Every
40
+ * source is cut in one place here, because a host's progress message, error,
41
+ * and report are all unbounded prose.
42
+ */
43
+ function getSubagentRunStatusText(run) {
44
+ return firstLine(statusSource(run));
45
+ }
19
46
  /** Decorative status mark derived from a whole upstream retained-run record. */
20
47
  function SubagentRunIndicator({ className, run, ref, ...props }) {
21
48
  const icon = run.status === "running" ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : run.status === "completed" ? /* @__PURE__ */ jsx(CheckIcon, {}) : run.status === "aborted" ? /* @__PURE__ */ jsx(StopIcon, {}) : /* @__PURE__ */ jsx(WarningIcon, {});
@@ -29,5 +56,28 @@ function SubagentRunIndicator({ className, run, ref, ...props }) {
29
56
  children: icon
30
57
  });
31
58
  }
59
+ /**
60
+ * How a run labels itself anywhere it appears: its Nanite, its name over its
61
+ * live status line, and its status mark. The selector chip and the drill-in's
62
+ * top bar share this so what a person clicks and what they land on read the
63
+ * same. The caller owns the surrounding row (a link, a bar title).
64
+ */
65
+ function SubagentRunLabel({ run }) {
66
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
67
+ /* @__PURE__ */ jsx(NaniteMark, { index: run.order }),
68
+ /* @__PURE__ */ jsxs("span", {
69
+ className: "subagent-run__text",
70
+ "data-status": run.status,
71
+ children: [/* @__PURE__ */ jsx("span", {
72
+ className: "subagent-run__title sigvelo-truncate",
73
+ children: getSubagentRunName(run)
74
+ }), /* @__PURE__ */ jsx("span", {
75
+ className: "subagent-run__status sigvelo-truncate",
76
+ children: getSubagentRunStatusText(run)
77
+ })]
78
+ }),
79
+ /* @__PURE__ */ jsx(SubagentRunIndicator, { run })
80
+ ] });
81
+ }
32
82
  //#endregion
33
- export { SubagentRunIndicator, getSubagentRunName, getSubagentRunTooltip };
83
+ export { SubagentRunIndicator, SubagentRunLabel, getSubagentRunName, getSubagentRunStatusText };
@@ -2,8 +2,7 @@ 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 { SubagentRunIndicator, getSubagentRunName, getSubagentRunTooltip } from "./SubagentRunIndicator.js";
6
- import { NaniteMark } from "../nanites/NaniteScene.js";
5
+ import { SubagentRunLabel, getSubagentRunName, getSubagentRunStatusText } from "./SubagentRunIndicator.js";
7
6
  import "react";
8
7
  import { jsx, jsxs } from "react/jsx-runtime";
9
8
  //#region src/components/agents-sdk/SubagentRunSelector.tsx
@@ -19,10 +18,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
19
18
  */
20
19
  function SubagentRunSelector({ className, render, run, tooltip, ref, "aria-label": ariaLabel, ...props }) {
21
20
  const name = getSubagentRunName(run);
22
- const link = /* @__PURE__ */ jsxs(NavigationLink, {
21
+ const link = /* @__PURE__ */ jsx(NavigationLink, {
23
22
  ref,
24
23
  render,
25
24
  "data-slot": "subagent-run-selector",
25
+ "data-status": run.status,
26
26
  className: cx(buttonVariants({
27
27
  variant: "ghost",
28
28
  color: "neutral",
@@ -30,16 +30,9 @@ function SubagentRunSelector({ className, render, run, tooltip, ref, "aria-label
30
30
  }), "subagent-run__selector", className),
31
31
  "aria-label": ariaLabel ?? `Open ${name}, ${run.status}`,
32
32
  ...props,
33
- children: [
34
- /* @__PURE__ */ jsx(NaniteMark, { index: run.order }),
35
- /* @__PURE__ */ jsx("span", {
36
- className: "subagent-run__title sigvelo-truncate",
37
- children: name
38
- }),
39
- /* @__PURE__ */ jsx(SubagentRunIndicator, { run })
40
- ]
33
+ children: /* @__PURE__ */ jsx(SubagentRunLabel, { run })
41
34
  });
42
- const tooltipContent = tooltip === false ? null : tooltip ?? getSubagentRunTooltip(run);
35
+ const tooltipContent = tooltip === false ? null : tooltip ?? getSubagentRunStatusText(run);
43
36
  if (!tooltipContent) return link;
44
37
  return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
45
38
  render: link,
@@ -1,7 +1,7 @@
1
1
  import { i as AgentMessageRenderPartContext } from "../../AgentMessageParts-C7L-Mv9U.js";
2
2
  import { K as PromptInputMessage } from "../../PromptInput-BRX7FhjH.js";
3
3
  import { r as AgentChatProps } from "../../AgentChat-Bibfj7u1.js";
4
- import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-daY67hFM.js";
4
+ import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-jtmveaRE.js";
5
5
  import { o as UseSessionCompactionResult } from "../../SessionCompaction-CmTJFpzj.js";
6
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";
@@ -124,7 +124,6 @@ declare function ThinkChatRoot<State = unknown, MessageT extends UIMessage = UIM
124
124
  * card) — see README "App-specific tools" and the Custom Tool Panel story.
125
125
  */
126
126
  declare function ThinkChatMessages<State = unknown, MessageT extends UIMessage = UIMessage>({
127
- composerHeader,
128
127
  draft,
129
128
  loading,
130
129
  renderPart,
@@ -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-BES_3Mb-.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-CWMcl79Q.js";
2
2
  export { ThinkChat, ThinkChatMessages, ThinkChatProvider, ThinkChatRoot, thinkPendingExecutionApprovalsQueryOptions, useThinkChat, useThinkPendingExecutionApprovals };
@@ -1,9 +1,9 @@
1
- import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
2
- import { Button } from "../foundations/Button.js";
3
- import { MessageResponse } from "../ai-sdk/Message.js";
4
1
  import { useExpansionState } from "../ai-sdk/ExpansionState.js";
5
2
  import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityText, ActivityTrigger } from "../ai-sdk/Activity.js";
3
+ import { Button } from "../foundations/Button.js";
4
+ import { MessageResponse } from "../ai-sdk/Message.js";
6
5
  import { useOptionalAgentToolRuns } from "./AgentToolRunsContext.js";
6
+ import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
7
7
  import { SubagentRunList } from "./SubagentRunList.js";
8
8
  import { useOptionalThinkChatLive } from "./ThinkChatContext.js";
9
9
  import { isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartWorking, isSessionContextToolPart, isSkillToolPart, isThinkChatActivityPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
@@ -1,4 +1,4 @@
1
- import { t as capitalize } from "../../format-DB2mX9DA.js";
1
+ import { t as capitalize } from "../../format-COCyV98Z.js";
2
2
  import { getToolDisplayName } from "../ai-sdk/ToolPart.js";
3
3
  import { t as summarizeToolInput } from "../../summarize-tool-input-CqTcGRYy.js";
4
4
  import { displayUrl, isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartFailed, isPartWorking, isSessionContextToolFailure, isSessionContextToolPart, isSkillToolPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
@@ -1,8 +1,8 @@
1
- import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
2
1
  import { ActivityOutput, ActivityPanel } from "../ai-sdk/Activity.js";
3
2
  import { Tabs } from "../foundations/Tabs.js";
3
+ import { o as formatUnknownValue } from "../../format-COCyV98Z.js";
4
+ import { t as CodeBlock } from "../../CodeBlock-8K1p1BDU.js";
4
5
  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-Dw-im7lg.js";
3
- import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
2
+ import { S as FileIcon, T as InfoIcon } from "../../icons-DbrksZyY.js";
4
3
  import { Activity, ActivityContent, ActivityItemGroup, ActivityOutput, ActivityTrigger } from "../ai-sdk/Activity.js";
5
- import { EmptyState } from "../foundations/EmptyState.js";
4
+ import { o as formatUnknownValue } from "../../format-COCyV98Z.js";
6
5
  import { DescriptionList } from "../foundations/DescriptionList.js";
6
+ import { EmptyState } from "../foundations/EmptyState.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,4 +1,4 @@
1
- import { t as capitalize } from "../../format-DB2mX9DA.js";
1
+ import { t as capitalize } from "../../format-COCyV98Z.js";
2
2
  //#region src/components/agents-sdk/ThinkExecutionRun.ts
3
3
  /** Narrows the direct upstream execution union without wrapping either record. */
4
4
  function isThinkSubmissionRun(run) {
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { R as PauseIcon, T as InfoIcon, d as CheckIcon, nt as XIcon, q as SpinnerIcon } from "../../icons-Dw-im7lg.js";
2
+ import { R as PauseIcon, T as InfoIcon, d as CheckIcon, nt as XIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.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 { U as RefreshIcon, et as WarningIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-Dw-im7lg.js";
2
+ import { U as RefreshIcon, et as WarningIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-DbrksZyY.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
4
  import { IconButton } from "../foundations/IconButton.js";
5
- import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
6
- import { EmptyState } from "../foundations/EmptyState.js";
7
5
  import { Menu } from "../foundations/Menu.js";
6
+ import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
8
7
  import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
8
+ import { EmptyState } from "../foundations/EmptyState.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
- import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-daY67hFM.js";
2
+ import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-jtmveaRE.js";
3
+ import { n as ResponsiveSidebarShell, t as AppBarSlots } from "../../ResponsiveSidebarShell-BTVPxLJK.js";
3
4
  import { n as McpPluginCatalogProps } from "../../McpPluginCatalog-mbGw8FTu.js";
4
5
  import { ThinkChatMessagesProps } from "./ThinkChat.js";
5
- import { n as ResponsiveSidebarShell, t as AppBarSlots } from "../../ResponsiveSidebarShell-DOXd5T-d.js";
6
6
  import { ThinkThreadStatusSummary } from "./ThinkThreadPicker.js";
7
- import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-BLaFmMrt.js";
8
- import { v as WorkspaceSource } from "../../Workspace-F3raHdYV.js";
7
+ import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-Dq-GC0_T.js";
8
+ import { v as WorkspaceSource } from "../../Workspace-jdVZ9S0a.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";
@@ -70,8 +70,11 @@ interface ThinkFullAppConversation<AgentT extends ThinkFullAppAgent<State>, Stat
70
70
  * The app owns the subscription — mounted beside the `useAgent` call, since
71
71
  * the server replays retained runs once per socket connect — so a run-detail
72
72
  * route can read the same projection. ThinkFullApp never subscribes itself.
73
+ *
74
+ * Omit it for a connection that spawns no runs — a delegated run's own
75
+ * socket carries none — rather than passing an empty stand-in projection.
73
76
  */
74
- agentTools: AgentToolEventsValue<MessageT["parts"][number]>;
77
+ agentTools?: AgentToolEventsValue<MessageT["parts"][number]>;
75
78
  }
76
79
  interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unknown, MessageT extends UIMessage = UIMessage> extends React.HTMLAttributes<HTMLDivElement> {
77
80
  /**
@@ -106,6 +109,12 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
106
109
  * Use the render form to close the compact drawer after selecting a thread.
107
110
  */
108
111
  threadSidebar?: React.ComponentProps<typeof ResponsiveSidebarShell>["sidebar"];
112
+ /**
113
+ * Place the wide-layout thread toggle. The thread rail owns it by default;
114
+ * hosts that compose their own rail header may keep the shell fallback in
115
+ * the main bar and render `closeSidebar` themselves.
116
+ */
117
+ sidebarTogglePlacement?: React.ComponentProps<typeof ResponsiveSidebarShell>["sidebarTogglePlacement"];
109
118
  /**
110
119
  * Visible surface. Omit for internal state. A controlled `view` naming a
111
120
  * panel that does not exist renders the conversation alone — it is never
@@ -135,6 +144,7 @@ declare function ThinkFullApp<AgentT extends ThinkFullAppAgent<State>, State = u
135
144
  ref,
136
145
  renderAgentToolRunLink,
137
146
  sourceKey,
147
+ sidebarTogglePlacement,
138
148
  style,
139
149
  threadSidebar,
140
150
  threadStatusSummary,
@@ -1,11 +1,13 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { S as FileIcon, c as BoxIcon } from "../../icons-Dw-im7lg.js";
2
+ import { S as FileIcon, c as BoxIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-DbrksZyY.js";
3
+ import { IconButton } from "../foundations/IconButton.js";
4
+ import { Menu } from "../foundations/Menu.js";
3
5
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
4
6
  import { ResizableSidePanel } from "../general-purpose/ResizableSidePanel.js";
5
7
  import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
6
- import { McpPluginCatalog } from "./McpPluginCatalog.js";
7
8
  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
+ import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-CWMcl79Q.js";
10
+ import { McpPluginCatalog } from "./McpPluginCatalog.js";
9
11
  import { ThinkFullAppViewSwitch } from "./ThinkFullAppViewSwitch.js";
10
12
  import { ThinkThreadStatusIndicators } from "./ThinkThreadPicker.js";
11
13
  import { useWorkspace } from "./Workspace.js";
@@ -28,6 +30,29 @@ function compactBreakPx(el) {
28
30
  function isCompactApp(el) {
29
31
  return el.getBoundingClientRect().width <= compactBreakPx(el);
30
32
  }
33
+ function ThinkFullAppCompactViewMenu({ activeView, onViewChange, views }) {
34
+ return /* @__PURE__ */ jsx("div", {
35
+ className: "think-full-app__compact-view-menu",
36
+ children: /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(IconButton, {
37
+ label: "More views",
38
+ tooltip: "More views",
39
+ render: /* @__PURE__ */ jsx(Menu.Trigger, { unstyled: true }),
40
+ variant: "ghost",
41
+ color: "neutral",
42
+ size: "sm",
43
+ children: /* @__PURE__ */ jsx(EllipsisIcon, {})
44
+ }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
45
+ side: "bottom",
46
+ align: "end",
47
+ sideOffset: 4,
48
+ children: /* @__PURE__ */ jsx(Menu.Popup, { children: views.map((view) => /* @__PURE__ */ jsxs(Menu.Item, {
49
+ "aria-current": activeView === view.id ? "page" : void 0,
50
+ onClick: () => onViewChange(view.id),
51
+ children: [view.icon, view.label]
52
+ }, view.id)) })
53
+ }) })] })
54
+ });
55
+ }
31
56
  function WorkspacePanel({ config }) {
32
57
  const selectedPath = config.navigation.current.destination.kind === "file" ? config.navigation.current.destination.path : null;
33
58
  return /* @__PURE__ */ jsx(WorkspaceExplorer, {
@@ -83,7 +108,7 @@ function ThinkFullAppThreadChat({ agent, agentTools, chat, messages, renderAgent
83
108
  /** Combines ThinkChat with a resizable workbench. Wide apps with a workspace
84
109
  * open Files beside the conversation; compact (extension) widths stay on chat
85
110
  * until a view is selected. */
86
- function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewProp, messages, onViewChange, plugins, ref, renderAgentToolRunLink, sourceKey, style, threadSidebar, threadStatusSummary, view, workbenchPanels, workspace, ...props }) {
111
+ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewProp, messages, onViewChange, plugins, ref, renderAgentToolRunLink, sourceKey, sidebarTogglePlacement = "sidebar", style, threadSidebar, threadStatusSummary, view, workbenchPanels, workspace, ...props }) {
87
112
  const appRef = React.useRef(null);
88
113
  const workbenchPanelRef = React.useRef(null);
89
114
  const pendingPanelFocusRef = React.useRef(null);
@@ -155,7 +180,26 @@ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewPr
155
180
  "aria-label": "App views",
156
181
  onValueChange: (next) => updateView(next ?? "chat")
157
182
  }) : bar?.views ?? null;
158
- const appBarActions = bar?.actions || viewSwitch ? /* @__PURE__ */ jsxs(Fragment, { children: [bar?.actions, viewSwitch] }) : void 0;
183
+ const compactViewMenu = bar?.views === void 0 && availableWorkbenchPanels.length ? /* @__PURE__ */ jsx(ThinkFullAppCompactViewMenu, {
184
+ activeView: activePanel?.id,
185
+ views: availableWorkbenchPanels,
186
+ onViewChange: updateView
187
+ }) : null;
188
+ const appBarActions = bar?.actions || compactViewMenu || viewSwitch ? /* @__PURE__ */ jsxs(Fragment, { children: [
189
+ bar?.actions,
190
+ compactViewMenu,
191
+ viewSwitch
192
+ ] }) : void 0;
193
+ const compactLeading = bar?.compactLeading !== void 0 ? bar.compactLeading : activePanel ? /* @__PURE__ */ jsx(IconButton, {
194
+ type: "button",
195
+ label: "Back to chat",
196
+ tooltip: "Back to chat",
197
+ variant: "ghost",
198
+ color: "neutral",
199
+ size: "sm",
200
+ onClick: () => updateView("chat"),
201
+ children: /* @__PURE__ */ jsx(ArrowLeftIcon, {})
202
+ }) : void 0;
159
203
  const appContent = /* @__PURE__ */ jsxs(ResizableSidePanel.Root, {
160
204
  ref: mergeRefs(appRef, ref),
161
205
  className: cx("think-full-app", className),
@@ -228,10 +272,12 @@ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewPr
228
272
  className: "think-full-app-shell",
229
273
  sidebar: threadSidebar,
230
274
  sidebarLabel: "threads",
275
+ sidebarTogglePlacement,
231
276
  showMainLabel: "Show selected thread",
232
277
  bar: {
233
278
  ...bar,
234
279
  actions: appBarActions,
280
+ compactLeading,
235
281
  primary: bar?.primary,
236
282
  className: "think-full-app__app-bar",
237
283
  label: "Workbench controls",
@@ -1,6 +1,6 @@
1
1
  import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
2
- import { AppTopBar } from "../general-purpose/AppTopBar.js";
3
2
  import { ToggleGroup } from "../foundations/ToggleGroup.js";
3
+ import { AppTopBar } from "../general-purpose/AppTopBar.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/components/agents-sdk/ThinkFullAppViewSwitch.tsx
@@ -1,4 +1,4 @@
1
- import { a as formatUnknownValue, o as titleCase } from "../../format-DB2mX9DA.js";
1
+ import { c as titleCase, o as formatUnknownValue } from "../../format-COCyV98Z.js";
2
2
  import { Approval, ApprovalCount, ApprovalDecision, ApprovalHeader, ApprovalInputPreview, ApprovalPreview, ApprovalPreviewRow, ApprovalQuestion } from "../ai-sdk/Approval.js";
3
3
  import "react";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
- import { TransitionSurface } from "../foundations/TransitionSurface.js";
2
1
  import { AgentChatTurnError } from "../ai-sdk/AgentChatTurnError.js";
2
+ import { TransitionSurface } from "../foundations/TransitionSurface.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/agents-sdk/ThinkRecoveryNotice.tsx
5
5
  function connectionReason(error) {
@@ -1,10 +1,10 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { V as PlusIcon } from "../../icons-Dw-im7lg.js";
2
+ import { V as PlusIcon } from "../../icons-DbrksZyY.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
4
  import { Tooltip } from "../foundations/Tooltip.js";
5
- import { t as capitalize } from "../../format-DB2mX9DA.js";
6
- import { EmptyState } from "../foundations/EmptyState.js";
5
+ import { t as capitalize } from "../../format-COCyV98Z.js";
7
6
  import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
7
+ import { EmptyState } from "../foundations/EmptyState.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 { getThinkRoutineNextRun } from "./ThinkRoutine.js";
3
2
  import { Switch } from "../foundations/Switch.js";
3
+ import { getThinkRoutineNextRun } from "./ThinkRoutine.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,17 +1,17 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, q as SpinnerIcon, r as ArrowLeftIcon } from "../../icons-Dw-im7lg.js";
2
+ import { d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, q as SpinnerIcon, r as ArrowLeftIcon } from "../../icons-DbrksZyY.js";
3
3
  import { Button } from "../foundations/Button.js";
4
- import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
5
4
  import { Field } from "../foundations/Field.js";
6
5
  import { Form } from "../foundations/Form.js";
7
6
  import { Textarea } from "../foundations/Textarea.js";
8
- import { AppTopBar } from "../general-purpose/AppTopBar.js";
9
- import { Fieldset } from "../foundations/Fieldset.js";
7
+ import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
10
8
  import { Select } from "../foundations/Select.js";
11
9
  import { Checkbox } from "../foundations/Checkbox.js";
12
10
  import { CheckboxGroup } from "../foundations/CheckboxGroup.js";
13
11
  import { Combobox } from "../foundations/Combobox.js";
12
+ import { Fieldset } from "../foundations/Fieldset.js";
14
13
  import { NumberField } from "../foundations/NumberField.js";
14
+ import { AppTopBar } from "../general-purpose/AppTopBar.js";
15
15
  import * as React from "react";
16
16
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
17
17
  //#region src/components/agents-sdk/ThinkRoutineForm.tsx
@@ -1,4 +1,4 @@
1
- import { t as AppBarSlots } from "../../ResponsiveSidebarShell-DOXd5T-d.js";
1
+ import { t as AppBarSlots } from "../../ResponsiveSidebarShell-BTVPxLJK.js";
2
2
  import { ThinkRoutine, ThinkRoutineRunOf } from "./ThinkRoutine.js";
3
3
  import * as React from "react";
4
4
 
@@ -1,12 +1,12 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { $ as TrashIcon, B as PlayIcon, q as SpinnerIcon, z as PencilIcon } from "../../icons-Dw-im7lg.js";
2
+ import { $ as TrashIcon, B as PlayIcon, q as SpinnerIcon, z as PencilIcon } from "../../icons-DbrksZyY.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
- import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
5
- import { EmptyState } from "../foundations/EmptyState.js";
4
+ import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
6
5
  import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
6
+ import { AlertDialog } from "../foundations/AlertDialog.js";
7
+ import { EmptyState } from "../foundations/EmptyState.js";
7
8
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
8
9
  import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
9
- import { AlertDialog } from "../foundations/AlertDialog.js";
10
10
  import { ThinkRoutineBrowser } from "./ThinkRoutineBrowser.js";
11
11
  import { ThinkRoutineDetail } from "./ThinkRoutineDetail.js";
12
12
  import * as React from "react";