@mcp-b/react-components 0.46.7 → 0.48.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.
- package/dist/{CodeBlock-CcteqDvA.js → CodeBlock-BSJl682D.js} +1 -1
- package/dist/Correspondent-7K6uNLUm.d.ts +64 -0
- package/dist/{FileTree-jtP9471I.js → FileTree-DvE0hNZu.js} +1 -1
- package/dist/{SetupChecklist-BXwSSorj.js → SetupChecklist-DeTU9YpW.js} +1 -1
- package/dist/ThinkChat-CwMdEum8.d.ts +185 -0
- package/dist/{ThinkChat-qztQ6Clo.js → ThinkChat-DiI6hhDP.js} +14 -14
- package/dist/ThinkThreadPicker-yFz4vvIf.d.ts +91 -0
- package/dist/{Workspace-DZusrEeP.d.ts → Workspace-LIoU30n7.d.ts} +13 -2
- package/dist/{WorkspaceFileView-D0HyoUV8.js → WorkspaceFileView-C_WnYm-a.js} +4 -4
- package/dist/{WorkspaceLink-DtH66bAY.js → WorkspaceLink-B1d2GIGl.js} +7 -2
- package/dist/WorkspaceLive-DfjH1Ypm.d.ts +61 -0
- package/dist/{WorkspaceMessageResponse-CJCmGvTx.js → WorkspaceMessageResponse-BqOezptB.js} +79 -40
- package/dist/WorkspaceMessageResponse-kJYU8Onj.d.ts +48 -0
- package/dist/components/agents-sdk/AgentActivity.js +1 -1
- package/dist/components/agents-sdk/AgentChat.js +2 -2
- package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
- package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
- package/dist/components/agents-sdk/BrowserReplay.js +1 -1
- package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
- package/dist/components/agents-sdk/ManagerOffice.d.ts +41 -50
- package/dist/components/agents-sdk/ManagerOffice.js +359 -978
- package/dist/components/agents-sdk/McpConnectionRequest.js +1 -1
- package/dist/components/agents-sdk/McpPluginCatalog.js +1 -1
- package/dist/components/agents-sdk/McpServerPicker.js +1 -1
- package/dist/components/agents-sdk/ModelSelector.js +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
- package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
- package/dist/components/agents-sdk/ThinkChat.d.ts +1 -180
- package/dist/components/agents-sdk/ThinkChat.js +1 -1
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionDetail.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +1 -1
- package/dist/components/agents-sdk/ThinkFullApp.d.ts +12 -3
- package/dist/components/agents-sdk/ThinkFullApp.js +15 -3
- package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineLibrary.js +1 -1
- package/dist/components/agents-sdk/ThinkSidepanel.d.ts +20 -5
- package/dist/components/agents-sdk/ThinkSidepanel.js +48 -36
- package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +1 -90
- package/dist/components/agents-sdk/ThinkThreadPicker.js +1 -1
- package/dist/components/agents-sdk/Workspace.d.ts +2 -2
- package/dist/components/agents-sdk/Workspace.js +13 -10
- package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
- package/dist/components/agents-sdk/WorkspaceConcept.d.ts +45 -0
- package/dist/components/agents-sdk/WorkspaceConcept.js +42 -0
- package/dist/components/agents-sdk/WorkspaceCorrespondence.d.ts +96 -0
- package/dist/components/agents-sdk/WorkspaceCorrespondence.js +429 -0
- package/dist/components/agents-sdk/WorkspaceExecution.d.ts +115 -0
- package/dist/components/agents-sdk/WorkspaceExecution.js +330 -0
- package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceExplorer.js +2 -2
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
- package/dist/components/agents-sdk/WorkspaceLink.js +1 -1
- package/dist/components/agents-sdk/WorkspaceLive.d.ts +2 -0
- package/dist/components/agents-sdk/WorkspaceLive.js +113 -0
- package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +2 -2
- package/dist/components/agents-sdk/WorkspaceMessageResponse.js +2 -2
- package/dist/components/agents-sdk/WorkspaceMountManager.js +1 -1
- package/dist/components/agents-sdk/WorkspaceProject.d.ts +131 -0
- package/dist/components/agents-sdk/WorkspaceProject.js +238 -0
- package/dist/components/agents-sdk/WorkspaceUserScript.d.ts +47 -0
- package/dist/components/agents-sdk/WorkspaceUserScript.js +146 -0
- package/dist/components/ai-sdk/Activity.js +1 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
- package/dist/components/ai-sdk/Approval.js +1 -1
- package/dist/components/ai-sdk/Artifact.js +3 -3
- package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
- package/dist/components/ai-sdk/ChainOfThought.js +1 -1
- package/dist/components/ai-sdk/Checkpoint.js +1 -1
- package/dist/components/ai-sdk/CodeBlock.js +1 -1
- package/dist/components/ai-sdk/ComposerLink.d.ts +4 -1
- package/dist/components/ai-sdk/ComposerLink.js +4 -3
- package/dist/components/ai-sdk/ConnectedAppCards.d.ts +29 -2
- package/dist/components/ai-sdk/ConnectedAppCards.js +78 -103
- package/dist/components/ai-sdk/Conversation.js +1 -1
- package/dist/components/ai-sdk/Correspondent.d.ts +2 -0
- package/dist/components/ai-sdk/Correspondent.js +145 -0
- package/dist/components/ai-sdk/Goal.js +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
- package/dist/components/ai-sdk/Message.js +1 -1
- package/dist/components/ai-sdk/MessageScroller.js +1 -1
- package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
- package/dist/components/ai-sdk/Plan.js +1 -1
- package/dist/components/ai-sdk/PromptInput.js +1 -1
- package/dist/components/ai-sdk/Queue.js +1 -1
- package/dist/components/ai-sdk/Reasoning.js +1 -1
- package/dist/components/ai-sdk/Sources.js +1 -1
- package/dist/components/ai-sdk/Task.js +1 -1
- package/dist/components/extension/ChatGptSignInScreen.js +1 -1
- package/dist/components/extension/CodexModelSelector.js +1 -1
- package/dist/components/extension/ConversationTabPicker.js +1 -1
- package/dist/components/foundations/Checkbox.js +1 -1
- package/dist/components/foundations/ContextMenu.js +1 -1
- package/dist/components/foundations/Menubar.js +1 -1
- package/dist/components/foundations/SearchField.js +1 -1
- package/dist/components/foundations/Select.js +1 -1
- package/dist/components/foundations/Stepper.js +1 -1
- package/dist/components/foundations/Toast.js +1 -1
- package/dist/components/foundations/icons.d.ts +2 -2
- package/dist/components/foundations/icons.js +2 -2
- package/dist/components/general-purpose/Commit.js +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
- package/dist/components/general-purpose/FileTree.js +1 -1
- package/dist/components/general-purpose/PricingPlanCard.js +1 -1
- package/dist/components/general-purpose/ResponsiveSidebarShell.js +1 -1
- package/dist/components/general-purpose/SetupChecklist.js +1 -1
- package/dist/components/general-purpose/Terminal.js +2 -2
- package/dist/components/general-purpose/TestResults.js +1 -1
- package/dist/components/general-purpose/ThemeModeControl.js +1 -1
- package/dist/components/general-purpose/WebPreview.js +1 -1
- package/dist/components/nanites/AgentConnection.js +2 -2
- package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
- package/dist/components/nanites/AgentToolDetail.js +2 -2
- package/dist/{copy-button-BABPlsc-.js → copy-button-Dk2vRe9j.js} +1 -1
- package/dist/{icons-ChPpNMmU.d.ts → icons-CCZGYUwU.d.ts} +6 -1
- package/dist/{icons-BC4HZqSK.js → icons-CeGfXO21.js} +3 -2
- package/dist/styles/base.css +2 -2
- package/dist/styles/connected-app-card.css +8 -0
- package/dist/styles/correspondent.css +73 -0
- package/dist/styles/description-list.css +3 -1
- package/dist/styles/index.css +2 -0
- package/dist/styles/manager-office.css +380 -1086
- package/dist/styles/workspace-concepts.css +28 -0
- package/dist/workspace-assets-GqsCYxqT.js +168 -0
- package/package.json +2 -2
- package/dist/WorkspaceMessageResponse-D66ty4FO.d.ts +0 -24
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MessageResponse } from "./components/ai-sdk/Message.js";
|
|
2
|
-
import { c as useWorkspaceNavigationContext, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "./WorkspaceLink-
|
|
2
|
+
import { c as useWorkspaceNavigationContext, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "./WorkspaceLink-B1d2GIGl.js";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { defaultRehypePlugins } from "streamdown";
|
|
6
6
|
import { visit } from "unist-util-visit";
|
|
7
7
|
//#region src/components/_internal/workspace-markdown.ts
|
|
@@ -79,49 +79,88 @@ function createWorkspaceRehypePlugins(root, base) {
|
|
|
79
79
|
}
|
|
80
80
|
//#endregion
|
|
81
81
|
//#region src/components/agents-sdk/WorkspaceMessageResponse.tsx
|
|
82
|
+
const WorkspaceFileRendererContext = React.createContext(null);
|
|
83
|
+
/**
|
|
84
|
+
* Ambient workspace-file renderer for every `WorkspaceMessageResponse` below,
|
|
85
|
+
* and the only way to supply one. The value is read inside the promoted
|
|
86
|
+
* paragraph, not by the response component, so a host handing down a fresh
|
|
87
|
+
* callback every render re-renders only the paragraphs — the memoized Markdown
|
|
88
|
+
* pipeline is untouched and promoted cards keep their state.
|
|
89
|
+
* `ThinkChat.Messages` provides it from its `renderWorkspaceFile` prop; hosts
|
|
90
|
+
* composing `WorkspaceMessageResponse` directly provide it once at their
|
|
91
|
+
* conversation root.
|
|
92
|
+
*/
|
|
93
|
+
function WorkspaceFileRendererProvider({ children, renderWorkspaceFile }) {
|
|
94
|
+
return /* @__PURE__ */ jsx(WorkspaceFileRendererContext.Provider, {
|
|
95
|
+
value: renderWorkspaceFile ?? null,
|
|
96
|
+
children
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The paragraph the promoted one falls back to — the caller's `components.p`
|
|
101
|
+
* where it gave one, otherwise a plain `<p>`. It travels by context so the
|
|
102
|
+
* promoted paragraph can be a module-scope component with a constant identity:
|
|
103
|
+
* defining it inside a memo made every context change a new element type, and
|
|
104
|
+
* React remounted every promoted card, discarding its draft and sent latch.
|
|
105
|
+
*/
|
|
106
|
+
const FallbackParagraphContext = React.createContext("p");
|
|
82
107
|
const workspaceComponents = {
|
|
83
108
|
img: "img",
|
|
84
109
|
a: WorkspaceFileLink
|
|
85
110
|
};
|
|
111
|
+
function WorkspaceFileParagraph({ node, children, ...paragraphProps }) {
|
|
112
|
+
const workspace = useWorkspaceNavigationContext();
|
|
113
|
+
const renderFile = React.useContext(WorkspaceFileRendererContext);
|
|
114
|
+
const FallbackParagraph = React.useContext(FallbackParagraphContext);
|
|
115
|
+
const renderFallbackParagraph = (content) => React.createElement(FallbackParagraph, typeof FallbackParagraph === "string" ? paragraphProps : {
|
|
116
|
+
node,
|
|
117
|
+
...paragraphProps
|
|
118
|
+
}, content);
|
|
119
|
+
if (!workspace || !renderFile) return renderFallbackParagraph(children);
|
|
120
|
+
const file = getStandaloneWorkspaceFileParagraph(node, workspace.root, workspace.base);
|
|
121
|
+
if (!file) return renderFallbackParagraph(children);
|
|
122
|
+
const promoted = renderFile({
|
|
123
|
+
label: file.label,
|
|
124
|
+
path: file.path,
|
|
125
|
+
sourceLink: /* @__PURE__ */ jsx(WorkspaceFileLink, {
|
|
126
|
+
href: file.path,
|
|
127
|
+
children: file.label
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
if (promoted == null) return renderFallbackParagraph(children);
|
|
131
|
+
const remainingChildren = React.Children.toArray(children).filter((_child, index) => index !== file.childIndex);
|
|
132
|
+
return /* @__PURE__ */ jsxs(React.Fragment, { children: [file.showRemainingChildren ? renderFallbackParagraph(remainingChildren) : null, promoted] }, file.path);
|
|
133
|
+
}
|
|
86
134
|
/** Adds workspace-aware Markdown links when rendered inside a workspace provider. */
|
|
87
|
-
const WorkspaceMessageResponse = React.memo(function WorkspaceMessageResponse({ components, rehypePlugins,
|
|
135
|
+
const WorkspaceMessageResponse = React.memo(function WorkspaceMessageResponse({ components, rehypePlugins, promoteWorkspaceFiles = true, ...props }) {
|
|
88
136
|
const workspace = useWorkspaceNavigationContext();
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
}, [
|
|
116
|
-
components,
|
|
117
|
-
renderWorkspaceHtmlArtifact,
|
|
118
|
-
workspace
|
|
119
|
-
]),
|
|
120
|
-
rehypePlugins: resolvedRehypePlugins,
|
|
121
|
-
...props
|
|
137
|
+
const workspaceRoot = workspace?.root;
|
|
138
|
+
const workspaceBase = workspace?.base;
|
|
139
|
+
const resolvedRehypePlugins = React.useMemo(() => rehypePlugins ?? (workspaceRoot !== void 0 && workspaceBase !== void 0 ? createWorkspaceRehypePlugins(workspaceRoot, workspaceBase) : void 0), [
|
|
140
|
+
rehypePlugins,
|
|
141
|
+
workspaceBase,
|
|
142
|
+
workspaceRoot
|
|
143
|
+
]);
|
|
144
|
+
const resolvedComponents = React.useMemo(() => {
|
|
145
|
+
const merged = components ? {
|
|
146
|
+
...workspaceComponents,
|
|
147
|
+
...components
|
|
148
|
+
} : workspaceComponents;
|
|
149
|
+
return promoteWorkspaceFiles ? {
|
|
150
|
+
...merged,
|
|
151
|
+
p: WorkspaceFileParagraph
|
|
152
|
+
} : merged;
|
|
153
|
+
}, [components, promoteWorkspaceFiles]);
|
|
154
|
+
return /* @__PURE__ */ jsx(FallbackParagraphContext, {
|
|
155
|
+
value: components?.p ?? "p",
|
|
156
|
+
children: /* @__PURE__ */ jsx(MessageResponse, {
|
|
157
|
+
components: resolvedComponents,
|
|
158
|
+
rehypePlugins: resolvedRehypePlugins,
|
|
159
|
+
...props
|
|
160
|
+
})
|
|
122
161
|
});
|
|
123
162
|
});
|
|
124
|
-
function
|
|
163
|
+
function getStandaloneWorkspaceFileParagraph(node, root, base) {
|
|
125
164
|
if (!node || node.tagName !== "p") return null;
|
|
126
165
|
const children = node.children;
|
|
127
166
|
const matches = children.flatMap((child, childIndex) => {
|
|
@@ -133,7 +172,7 @@ function getWorkspaceHtmlArtifactParagraph(node, root, base) {
|
|
|
133
172
|
root,
|
|
134
173
|
base
|
|
135
174
|
});
|
|
136
|
-
if (destination.kind !== "file" || destination.fragment !== null
|
|
175
|
+
if (destination.kind !== "file" || destination.fragment !== null) return [];
|
|
137
176
|
return [{
|
|
138
177
|
anchor: child,
|
|
139
178
|
childIndex,
|
|
@@ -145,7 +184,7 @@ function getWorkspaceHtmlArtifactParagraph(node, root, base) {
|
|
|
145
184
|
return {
|
|
146
185
|
childIndex,
|
|
147
186
|
path,
|
|
148
|
-
label: markdownText(anchor).trim() || path.split("/").at(-1) || "
|
|
187
|
+
label: markdownText(anchor).trim() || path.split("/").at(-1) || "Workspace file",
|
|
149
188
|
showRemainingChildren: children.some((child, index) => index !== childIndex && (child.type !== "text" || child.value.trim()))
|
|
150
189
|
};
|
|
151
190
|
}
|
|
@@ -154,4 +193,4 @@ function markdownText(node) {
|
|
|
154
193
|
return node.type === "element" ? node.children.map(markdownText).join("") : "";
|
|
155
194
|
}
|
|
156
195
|
//#endregion
|
|
157
|
-
export {
|
|
196
|
+
export { WorkspaceMessageResponse as n, createWorkspaceRehypePlugins as r, WorkspaceFileRendererProvider as t };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { E as MessageResponseProps } from "./Message-D_vCVEGB.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/agents-sdk/WorkspaceMessageResponse.d.ts
|
|
5
|
+
interface WorkspaceFileRenderInput {
|
|
6
|
+
label: string;
|
|
7
|
+
path: string;
|
|
8
|
+
/** Shared workspace link element; hosts pass it through to the preview unchanged. */
|
|
9
|
+
sourceLink: React.ReactElement;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Host callback for one standalone workspace file link in an assistant
|
|
13
|
+
* paragraph. Return a node to replace the link, or `null` to keep it.
|
|
14
|
+
*/
|
|
15
|
+
type WorkspaceFileRenderer = (file: WorkspaceFileRenderInput) => React.ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Ambient workspace-file renderer for every `WorkspaceMessageResponse` below,
|
|
18
|
+
* and the only way to supply one. The value is read inside the promoted
|
|
19
|
+
* paragraph, not by the response component, so a host handing down a fresh
|
|
20
|
+
* callback every render re-renders only the paragraphs — the memoized Markdown
|
|
21
|
+
* pipeline is untouched and promoted cards keep their state.
|
|
22
|
+
* `ThinkChat.Messages` provides it from its `renderWorkspaceFile` prop; hosts
|
|
23
|
+
* composing `WorkspaceMessageResponse` directly provide it once at their
|
|
24
|
+
* conversation root.
|
|
25
|
+
*/
|
|
26
|
+
declare function WorkspaceFileRendererProvider({
|
|
27
|
+
children,
|
|
28
|
+
renderWorkspaceFile
|
|
29
|
+
}: {
|
|
30
|
+
children: React.ReactNode;
|
|
31
|
+
renderWorkspaceFile: WorkspaceFileRenderer | undefined;
|
|
32
|
+
}): React.JSX.Element;
|
|
33
|
+
interface WorkspaceMessageResponseProps extends MessageResponseProps {
|
|
34
|
+
/**
|
|
35
|
+
* Whether standalone workspace file links may be promoted. `ThinkChat`
|
|
36
|
+
* passes `false` for user messages: user links remain ordinary navigation.
|
|
37
|
+
*/
|
|
38
|
+
promoteWorkspaceFiles?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** Adds workspace-aware Markdown links when rendered inside a workspace provider. */
|
|
41
|
+
declare const WorkspaceMessageResponse: React.MemoExoticComponent<({
|
|
42
|
+
components,
|
|
43
|
+
rehypePlugins,
|
|
44
|
+
promoteWorkspaceFiles,
|
|
45
|
+
...props
|
|
46
|
+
}: WorkspaceMessageResponseProps) => React.JSX.Element>;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { WorkspaceMessageResponseProps as a, WorkspaceMessageResponse as i, WorkspaceFileRenderer as n, WorkspaceFileRendererProvider as r, WorkspaceFileRenderInput as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { canRequestFavicon, inferFaviconUrl } from "../../utils/favicon.js";
|
|
2
|
-
import {
|
|
2
|
+
import { D as LinkIcon, P as MonitorIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, U as SearchIcon, Z as TerminalIcon, et as WarningIcon, tt as WrenchIcon } from "../../icons-CeGfXO21.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/agents-sdk/AgentActivity.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { replaceComposerTrigger } from "../../utils/composer-link.js";
|
|
2
2
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
3
3
|
import { ExpansionStateProvider } from "../ai-sdk/ExpansionState.js";
|
|
4
|
-
import { B as PlusIcon, H as RefreshIcon, K as SpinnerIcon, Q as TrashIcon, R as PencilIcon, V as QueueIcon, t as ArchiveIcon } from "../../icons-
|
|
4
|
+
import { B as PlusIcon, H as RefreshIcon, K as SpinnerIcon, Q as TrashIcon, R as PencilIcon, V as QueueIcon, t as ArchiveIcon } from "../../icons-CeGfXO21.js";
|
|
5
5
|
import { Button } from "../foundations/Button.js";
|
|
6
6
|
import { AgentChatMessageEditor } from "../ai-sdk/AgentChatMessageEditor.js";
|
|
7
7
|
import { IconButton } from "../foundations/IconButton.js";
|
|
@@ -11,7 +11,7 @@ import { AgentChatStartScreen } from "../ai-sdk/AgentChatStartScreen.js";
|
|
|
11
11
|
import { Message, MessageAction, MessageActions, MessageMeta, MessageTimestamp } from "../ai-sdk/Message.js";
|
|
12
12
|
import { AgentMessageParts } from "../ai-sdk/AgentMessageParts.js";
|
|
13
13
|
import { Marker, MarkerContent } from "../foundations/Marker.js";
|
|
14
|
-
import { t as CopyButton } from "../../copy-button-
|
|
14
|
+
import { t as CopyButton } from "../../copy-button-Dk2vRe9j.js";
|
|
15
15
|
import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "../ai-sdk/Context.js";
|
|
16
16
|
import { VirtualMessageScroller } from "../ai-sdk/MessageScrollerVirtual.js";
|
|
17
17
|
import { QueueItem, QueueItemActions, QueueItemContent } from "../ai-sdk/Queue.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as KeyboardIcon, H as RefreshIcon, r as ArrowLeftIcon } from "../../icons-
|
|
1
|
+
import { E as KeyboardIcon, H as RefreshIcon, r as ArrowLeftIcon } from "../../icons-CeGfXO21.js";
|
|
2
2
|
import { Button } from "../foundations/Button.js";
|
|
3
3
|
import { WebPreviewNavigationButton } from "../general-purpose/WebPreview.js";
|
|
4
4
|
import { BrowserLiveView } from "./BrowserLiveView.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { K as SpinnerIcon, _ as DotIcon, k as MaximizeIcon } from "../../icons-
|
|
2
|
+
import { K as SpinnerIcon, _ as DotIcon, k as MaximizeIcon } from "../../icons-CeGfXO21.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
4
|
import { Dialog } from "../foundations/Dialog.js";
|
|
5
5
|
import { TransitionSurface } from "../foundations/TransitionSurface.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { L as PauseIcon, z as PlayIcon } from "../../icons-
|
|
2
|
+
import { L as PauseIcon, z as PlayIcon } from "../../icons-CeGfXO21.js";
|
|
3
3
|
import { IconButton } from "../foundations/IconButton.js";
|
|
4
4
|
import { i as formatClock } from "../../format-COCyV98Z.js";
|
|
5
5
|
import { EmptyState } from "../foundations/EmptyState.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { K as SpinnerIcon,
|
|
2
|
+
import { K as SpinnerIcon, nt as XIcon } from "../../icons-CeGfXO21.js";
|
|
3
3
|
import { Tabs } from "../foundations/Tabs.js";
|
|
4
4
|
import { WebPreview, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewUrl } from "../general-purpose/WebPreview.js";
|
|
5
5
|
import { BrowserLiveView } from "./BrowserLiveView.js";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as Correspondent } from "../../Correspondent-7K6uNLUm.js";
|
|
1
2
|
import { n as ResponsiveSidebarShell } from "../../ResponsiveSidebarShell-BTVPxLJK.js";
|
|
2
3
|
import { ThinkRoutine } from "./ThinkRoutine.js";
|
|
3
4
|
import * as React from "react";
|
|
@@ -6,8 +7,6 @@ import * as React from "react";
|
|
|
6
7
|
type ManagerOfficeWorkStatus = "idle" | "running" | "attention" | "error" | "interrupted";
|
|
7
8
|
/** The app-owned projection currently shown by the manager office. */
|
|
8
9
|
type ManagerOfficeView = {
|
|
9
|
-
kind: "dashboard";
|
|
10
|
-
} | {
|
|
11
10
|
kind: "attention";
|
|
12
11
|
} | {
|
|
13
12
|
kind: "employee";
|
|
@@ -33,6 +32,27 @@ interface ManagerOfficeHandoff {
|
|
|
33
32
|
/** Unix timestamp in milliseconds when this handoff began. */
|
|
34
33
|
createdAt: number;
|
|
35
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* One item in a lane's workspace staging area. Companion projects a thread
|
|
37
|
+
* folder (files, recorded Google Doc/Sheet URLs, people) once the employee
|
|
38
|
+
* creates it. Not a document registry and not a CRM.
|
|
39
|
+
*/
|
|
40
|
+
type ManagerOfficeWorkingSetItem = {
|
|
41
|
+
kind: "file";
|
|
42
|
+
path: string;
|
|
43
|
+
title: string;
|
|
44
|
+
} | {
|
|
45
|
+
kind: "folder";
|
|
46
|
+
path: string;
|
|
47
|
+
title: string;
|
|
48
|
+
} | {
|
|
49
|
+
kind: "link";
|
|
50
|
+
href: string;
|
|
51
|
+
title: string;
|
|
52
|
+
} | {
|
|
53
|
+
kind: "correspondent";
|
|
54
|
+
correspondent: Correspondent;
|
|
55
|
+
};
|
|
36
56
|
interface ManagerOfficeWork {
|
|
37
57
|
/** Stable work identity. */
|
|
38
58
|
id: string;
|
|
@@ -44,16 +64,18 @@ interface ManagerOfficeWork {
|
|
|
44
64
|
summary?: string;
|
|
45
65
|
/** Unix timestamp in milliseconds of the latest lifecycle transition. */
|
|
46
66
|
updatedAt: number;
|
|
67
|
+
/**
|
|
68
|
+
* Staging files, provider documents, and people this lane is using. Omit or
|
|
69
|
+
* empty until the employee creates the thread's workspace folder.
|
|
70
|
+
*/
|
|
71
|
+
workingSet?: readonly ManagerOfficeWorkingSetItem[];
|
|
47
72
|
}
|
|
48
|
-
/** Which way work moves through a channel, from the employee's side. */
|
|
49
|
-
type ManagerOfficeChannelDirection = "input" | "output" | "both";
|
|
50
73
|
type ManagerOfficeChannelStatus = "connected" | "needs-auth" | "error";
|
|
51
74
|
interface ManagerOfficeChannel {
|
|
52
75
|
/** Stable channel identity. */
|
|
53
76
|
id: string;
|
|
54
77
|
/** Service the employee reaches through, such as “Slack” or “Gmail”. */
|
|
55
78
|
name: string;
|
|
56
|
-
direction: ManagerOfficeChannelDirection;
|
|
57
79
|
status: ManagerOfficeChannelStatus;
|
|
58
80
|
/** Connected account or workspace, or the reason the channel stopped. */
|
|
59
81
|
detail?: string;
|
|
@@ -64,30 +86,6 @@ interface ManagerOfficeChannel {
|
|
|
64
86
|
*/
|
|
65
87
|
icon?: React.ReactNode;
|
|
66
88
|
}
|
|
67
|
-
interface ManagerOfficeBrowserPreview {
|
|
68
|
-
/** Title of the tab currently visible on the employee's browser. */
|
|
69
|
-
title: string;
|
|
70
|
-
/** Display-safe URL supplied by the host. */
|
|
71
|
-
url: string;
|
|
72
|
-
}
|
|
73
|
-
interface ManagerOfficeAnalyticsPoint {
|
|
74
|
-
/** Start of the reporting bucket as a Unix timestamp in milliseconds. */
|
|
75
|
-
timestamp: number;
|
|
76
|
-
/** Outcomes completed during this bucket. */
|
|
77
|
-
completed: number;
|
|
78
|
-
/** Employee runtime consumed during this bucket. */
|
|
79
|
-
workloadHours: number;
|
|
80
|
-
/** Host-estimated inference and tool cost during this bucket. */
|
|
81
|
-
estimatedCost: number;
|
|
82
|
-
}
|
|
83
|
-
interface ManagerOfficeEmployeeAnalytics {
|
|
84
|
-
employeeId: string;
|
|
85
|
-
points: readonly ManagerOfficeAnalyticsPoint[];
|
|
86
|
-
}
|
|
87
|
-
interface ManagerOfficeReportSelection {
|
|
88
|
-
employeeIds: readonly string[];
|
|
89
|
-
rangeDays: 7 | 30 | 90;
|
|
90
|
-
}
|
|
91
89
|
interface ManagerOfficeEmployeeBase {
|
|
92
90
|
/** Stable employee identity used by routes and list keys. */
|
|
93
91
|
id: string;
|
|
@@ -108,8 +106,6 @@ interface ManagerOfficeConnectedEmployee extends ManagerOfficeEmployeeBase {
|
|
|
108
106
|
routines: readonly ThinkRoutine[];
|
|
109
107
|
/** Every service the employee reads from or acts on. Empty is meaningful. */
|
|
110
108
|
channels: readonly ManagerOfficeChannel[];
|
|
111
|
-
/** The live tab the manager can glance at from the office. */
|
|
112
|
-
browserPreview?: ManagerOfficeBrowserPreview;
|
|
113
109
|
}
|
|
114
110
|
interface ManagerOfficeDisconnectedEmployee extends ManagerOfficeEmployeeBase {
|
|
115
111
|
status: "offline" | "connecting" | "unavailable";
|
|
@@ -148,7 +144,9 @@ type ManagerOfficeDestination = {
|
|
|
148
144
|
employee: ManagerOfficeConnectedEmployee;
|
|
149
145
|
} | {
|
|
150
146
|
kind: "workspace";
|
|
151
|
-
employee: ManagerOfficeConnectedEmployee;
|
|
147
|
+
employee: ManagerOfficeConnectedEmployee; /** Owning lane when opening a file from that lane's working set. */
|
|
148
|
+
work?: ManagerOfficeWork; /** Workspace path to select, when the destination is a specific entry. */
|
|
149
|
+
path?: string;
|
|
152
150
|
};
|
|
153
151
|
interface ManagerOfficeProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
154
152
|
/** Current disposable navigation projection; durable selection remains app-owned. */
|
|
@@ -168,12 +166,6 @@ interface ManagerOfficeProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
168
166
|
renderEmployeeActions?: (employee: ManagerOfficeConnectedEmployee) => React.ReactNode;
|
|
169
167
|
/** Action shown in the empty office. */
|
|
170
168
|
emptyOfficeAction?: React.ReactNode;
|
|
171
|
-
/** Per-employee reporting buckets used by the executive analytics view. */
|
|
172
|
-
analytics?: readonly ManagerOfficeEmployeeAnalytics[];
|
|
173
|
-
/** Currency used for cost estimates. Defaults to USD. */
|
|
174
|
-
analyticsCurrency?: string;
|
|
175
|
-
/** Export the exact filtered portfolio and time range currently on screen. */
|
|
176
|
-
onExportReport?: (selection: ManagerOfficeReportSelection) => void;
|
|
177
169
|
}
|
|
178
170
|
interface ManagerOfficeSidebarProps extends Omit<React.HTMLAttributes<HTMLElement>, "content"> {
|
|
179
171
|
/** Close the office drawer after a compact-width selection. */
|
|
@@ -190,6 +182,11 @@ interface ManagerOfficeSidebarProps extends Omit<React.HTMLAttributes<HTMLElemen
|
|
|
190
182
|
content?: React.ReactNode;
|
|
191
183
|
/** Persistent sidebar action, such as starting a conversation with the selected employee. */
|
|
192
184
|
footer?: React.ReactNode;
|
|
185
|
+
/**
|
|
186
|
+
* Office is a vertical named roster. Chat is a horizontal seat strip so the
|
|
187
|
+
* thread list owns the column.
|
|
188
|
+
*/
|
|
189
|
+
layout?: "office" | "chat";
|
|
193
190
|
}
|
|
194
191
|
type ManagerOfficeSidebarAlertProps = {
|
|
195
192
|
"aria-label"?: string;
|
|
@@ -211,11 +208,6 @@ declare function ManagerOfficeSidebarAlert({
|
|
|
211
208
|
title,
|
|
212
209
|
...props
|
|
213
210
|
}: ManagerOfficeSidebarAlertProps): React.JSX.Element;
|
|
214
|
-
/**
|
|
215
|
-
* Shared Manager Office rail. Stories and host shells may add employee-owned
|
|
216
|
-
* content, but the Workforce header, roster identity, status language, scrolling,
|
|
217
|
-
* and footer placement stay component-owned and therefore cannot drift.
|
|
218
|
-
*/
|
|
219
211
|
declare function ManagerOfficeSidebar({
|
|
220
212
|
className,
|
|
221
213
|
closeSidebarOnCompact,
|
|
@@ -223,24 +215,23 @@ declare function ManagerOfficeSidebar({
|
|
|
223
215
|
employees,
|
|
224
216
|
renderLink,
|
|
225
217
|
footer,
|
|
218
|
+
layout,
|
|
226
219
|
officeActions,
|
|
227
220
|
selectedEmployeeId,
|
|
228
221
|
...props
|
|
229
222
|
}: ManagerOfficeSidebarProps): React.JSX.Element;
|
|
230
223
|
/**
|
|
231
|
-
* Multi-employee manager office:
|
|
232
|
-
* roster, and one employee dossier. The consuming app
|
|
233
|
-
* Agent connections, routing, and the selected
|
|
224
|
+
* Multi-employee manager office: inbox of browser waits plus ready work,
|
|
225
|
+
* employee roster, and one employee dossier of work lanes. The consuming app
|
|
226
|
+
* owns authentication, Agent connections, routing, and the selected
|
|
227
|
+
* employee's full work surface.
|
|
234
228
|
*/
|
|
235
229
|
declare function ManagerOffice({
|
|
236
|
-
analytics,
|
|
237
|
-
analyticsCurrency,
|
|
238
230
|
className,
|
|
239
231
|
emptyOfficeAction,
|
|
240
232
|
employees,
|
|
241
233
|
renderLink,
|
|
242
234
|
officeActions,
|
|
243
|
-
onExportReport,
|
|
244
235
|
renderEmployeeActions,
|
|
245
236
|
sidebarTogglePlacement,
|
|
246
237
|
style,
|
|
@@ -248,4 +239,4 @@ declare function ManagerOffice({
|
|
|
248
239
|
...props
|
|
249
240
|
}: ManagerOfficeProps): React.JSX.Element;
|
|
250
241
|
//#endregion
|
|
251
|
-
export { ManagerOffice,
|
|
242
|
+
export { ManagerOffice, ManagerOfficeChannel, ManagerOfficeChannelStatus, ManagerOfficeConnectedEmployee, ManagerOfficeDestination, ManagerOfficeDisconnectedEmployee, ManagerOfficeEmployee, ManagerOfficeEmployeeStatus, ManagerOfficeHandoff, ManagerOfficeProps, ManagerOfficeSidebar, ManagerOfficeSidebarAlert, ManagerOfficeSidebarAlertProps, ManagerOfficeSidebarProps, ManagerOfficeView, ManagerOfficeWork, ManagerOfficeWorkStatus, ManagerOfficeWorkingSetItem };
|