@truefoundry/trueforge-ui 0.1.0-rc.0 → 0.1.0-rc.1
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/CHANGELOG.md +8 -0
- package/dist/{ConnectorSettings-CLBEWGQJ.js → ConnectorSettings-ADACLWQI.js} +6 -6
- package/dist/{DockLayout-WRF7EQLD.js → DockLayout-BH5XX2AQ.js} +8 -8
- package/dist/{DrawerLayout-X2UXYTOS.js → DrawerLayout-O2XZQCG4.js} +8 -8
- package/dist/{ModelSettings-IJ55QJQO.js → ModelSettings-LKFJVUYQ.js} +8 -8
- package/dist/{ModelSettings-IJ55QJQO.js.map → ModelSettings-LKFJVUYQ.js.map} +1 -1
- package/dist/OpenUiFenceBlock-A2CWCPOP.js +9 -0
- package/dist/{SandboxSettings-S5XGZWOL.js → SandboxSettings-H5MDAE47.js} +6 -6
- package/dist/{SettingsBuilder-64Y33NP3.js → SettingsBuilder-3JOLC56Z.js} +25 -17
- package/dist/SettingsBuilder-3JOLC56Z.js.map +1 -0
- package/dist/{SidebarLayout-M7HEOZVK.js → SidebarLayout-G6BGD7EY.js} +8 -8
- package/dist/{SkillSettings-MXK4ZEI7.js → SkillSettings-4VB42CVG.js} +6 -6
- package/dist/{WidgetLayout-7MDOKLHU.js → WidgetLayout-ABSXZUSQ.js} +8 -8
- package/dist/{chunk-UXZOL5GO.js → chunk-3PTFNAQK.js} +5 -5
- package/dist/{chunk-NBMP2XNL.js → chunk-EFGSH3MO.js} +7 -7
- package/dist/{chunk-42GF723P.js → chunk-FDBJNXH2.js} +2 -2
- package/dist/{chunk-UHGSHDBM.js → chunk-U5GBGEGN.js} +159 -4
- package/dist/chunk-U5GBGEGN.js.map +1 -0
- package/dist/{chunk-WFC3W4C3.js → chunk-VJTCFZNM.js} +4 -4
- package/dist/chunk-WMRZSULD.js +567 -0
- package/dist/chunk-WMRZSULD.js.map +1 -0
- package/dist/{chunk-XSHXH6EI.js → chunk-Z27F4LBZ.js} +380 -461
- package/dist/chunk-Z27F4LBZ.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +12 -12
- package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +5 -9
- package/dist/plugins/trueforge-agent-server-adapter/index.js +52 -31
- package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +3 -3
- package/dist/OpenUiFenceBlock-SLLZSTMJ.js +0 -9
- package/dist/SettingsBuilder-64Y33NP3.js.map +0 -1
- package/dist/chunk-UBOFEI77.js +0 -567
- package/dist/chunk-UBOFEI77.js.map +0 -1
- package/dist/chunk-UHGSHDBM.js.map +0 -1
- package/dist/chunk-XSHXH6EI.js.map +0 -1
- /package/dist/{ConnectorSettings-CLBEWGQJ.js.map → ConnectorSettings-ADACLWQI.js.map} +0 -0
- /package/dist/{DockLayout-WRF7EQLD.js.map → DockLayout-BH5XX2AQ.js.map} +0 -0
- /package/dist/{DrawerLayout-X2UXYTOS.js.map → DrawerLayout-O2XZQCG4.js.map} +0 -0
- /package/dist/{OpenUiFenceBlock-SLLZSTMJ.js.map → OpenUiFenceBlock-A2CWCPOP.js.map} +0 -0
- /package/dist/{SandboxSettings-S5XGZWOL.js.map → SandboxSettings-H5MDAE47.js.map} +0 -0
- /package/dist/{SidebarLayout-M7HEOZVK.js.map → SidebarLayout-G6BGD7EY.js.map} +0 -0
- /package/dist/{SkillSettings-MXK4ZEI7.js.map → SkillSettings-4VB42CVG.js.map} +0 -0
- /package/dist/{WidgetLayout-7MDOKLHU.js.map → WidgetLayout-ABSXZUSQ.js.map} +0 -0
- /package/dist/{chunk-UXZOL5GO.js.map → chunk-3PTFNAQK.js.map} +0 -0
- /package/dist/{chunk-NBMP2XNL.js.map → chunk-EFGSH3MO.js.map} +0 -0
- /package/dist/{chunk-42GF723P.js.map → chunk-FDBJNXH2.js.map} +0 -0
- /package/dist/{chunk-WFC3W4C3.js.map → chunk-VJTCFZNM.js.map} +0 -0
|
@@ -4,20 +4,22 @@ import {
|
|
|
4
4
|
Spinner,
|
|
5
5
|
auiButtonClass,
|
|
6
6
|
useCompactLayout,
|
|
7
|
+
useDraftCatalog,
|
|
7
8
|
useOptionalCatalogServer,
|
|
9
|
+
useOptionalRefreshServerCapabilities,
|
|
8
10
|
useShellMode
|
|
9
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-U5GBGEGN.js";
|
|
10
12
|
import {
|
|
11
13
|
cn
|
|
12
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WMRZSULD.js";
|
|
13
15
|
|
|
14
16
|
// src/containers/SettingsBuilder/index.tsx
|
|
15
|
-
import { lazy, Suspense, useEffect, useMemo
|
|
17
|
+
import { lazy, Suspense, useCallback, useEffect, useMemo } from "react";
|
|
16
18
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
|
-
var ModelSettings = lazy(() => import("./ModelSettings-
|
|
18
|
-
var ConnectorSettings = lazy(() => import("./ConnectorSettings-
|
|
19
|
-
var SkillSettings = lazy(() => import("./SkillSettings-
|
|
20
|
-
var SandboxSettings = lazy(() => import("./SandboxSettings-
|
|
19
|
+
var ModelSettings = lazy(() => import("./ModelSettings-LKFJVUYQ.js"));
|
|
20
|
+
var ConnectorSettings = lazy(() => import("./ConnectorSettings-ADACLWQI.js"));
|
|
21
|
+
var SkillSettings = lazy(() => import("./SkillSettings-4VB42CVG.js"));
|
|
22
|
+
var SandboxSettings = lazy(() => import("./SandboxSettings-H5MDAE47.js"));
|
|
21
23
|
function SettingsSectionFallback() {
|
|
22
24
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-center py-8", role: "status", "aria-live": "polite", "aria-busy": "true", children: [
|
|
23
25
|
/* @__PURE__ */ jsx(Spinner, { size: 20, className: "text-text-secondary" }),
|
|
@@ -25,30 +27,36 @@ function SettingsSectionFallback() {
|
|
|
25
27
|
] });
|
|
26
28
|
}
|
|
27
29
|
var TruefoundrySettingsBuilder = () => {
|
|
28
|
-
const { settingsOpen, setSettingsOpen } = useShellMode();
|
|
30
|
+
const { settingsOpen, settingsSection: section, setSettingsOpen } = useShellMode();
|
|
29
31
|
const catalog = useOptionalCatalogServer();
|
|
32
|
+
const refreshServerCapabilities = useOptionalRefreshServerCapabilities();
|
|
33
|
+
const { refresh: refreshDraftCatalog } = useDraftCatalog();
|
|
30
34
|
const compact = useCompactLayout();
|
|
31
|
-
const [section, setSection] = useState("models");
|
|
32
35
|
const hasSkills = catalog?.skillCatalog != null;
|
|
33
36
|
const hasSandbox = catalog?.sandboxCatalog != null;
|
|
37
|
+
const closeSettings = useCallback(() => {
|
|
38
|
+
setSettingsOpen(false);
|
|
39
|
+
refreshDraftCatalog();
|
|
40
|
+
refreshServerCapabilities?.();
|
|
41
|
+
}, [refreshDraftCatalog, refreshServerCapabilities, setSettingsOpen]);
|
|
34
42
|
useEffect(() => {
|
|
35
43
|
if (!hasSkills && section === "skills") {
|
|
36
|
-
|
|
44
|
+
setSettingsOpen(settingsOpen, "models");
|
|
37
45
|
}
|
|
38
46
|
if (!hasSandbox && section === "sandbox") {
|
|
39
|
-
|
|
47
|
+
setSettingsOpen(settingsOpen, "models");
|
|
40
48
|
}
|
|
41
|
-
}, [hasSkills, hasSandbox, section]);
|
|
49
|
+
}, [hasSkills, hasSandbox, section, settingsOpen, setSettingsOpen]);
|
|
42
50
|
useEffect(() => {
|
|
43
51
|
if (!settingsOpen) return;
|
|
44
52
|
const onKeyDown = (event) => {
|
|
45
53
|
if (event.key !== "Escape") return;
|
|
46
54
|
event.stopImmediatePropagation();
|
|
47
|
-
|
|
55
|
+
closeSettings();
|
|
48
56
|
};
|
|
49
57
|
window.addEventListener("keydown", onKeyDown, true);
|
|
50
58
|
return () => window.removeEventListener("keydown", onKeyDown, true);
|
|
51
|
-
}, [
|
|
59
|
+
}, [closeSettings, settingsOpen]);
|
|
52
60
|
const sections = useMemo(() => {
|
|
53
61
|
const baseSections = [
|
|
54
62
|
{ id: "models", label: "Models", icon: "cpu" },
|
|
@@ -72,7 +80,7 @@ var TruefoundrySettingsBuilder = () => {
|
|
|
72
80
|
"aria-label": "Back",
|
|
73
81
|
title: "Back",
|
|
74
82
|
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
75
|
-
onClick:
|
|
83
|
+
onClick: closeSettings,
|
|
76
84
|
children: /* @__PURE__ */ jsx(Icon, { name: "arrow-left" })
|
|
77
85
|
}
|
|
78
86
|
),
|
|
@@ -101,7 +109,7 @@ var TruefoundrySettingsBuilder = () => {
|
|
|
101
109
|
section === item.id ? "bg-primary-button-bg text-primary-button-text" : "text-text-secondary hover:bg-ghost-button-hover/60 hover:text-text-primary"
|
|
102
110
|
),
|
|
103
111
|
onClick: () => {
|
|
104
|
-
|
|
112
|
+
setSettingsOpen(true, item.id);
|
|
105
113
|
},
|
|
106
114
|
children: [
|
|
107
115
|
/* @__PURE__ */ jsx(Icon, { name: item.icon, className: "h-4 w-4 shrink-0" }),
|
|
@@ -125,4 +133,4 @@ var SettingsBuilder_default = TruefoundrySettingsBuilder;
|
|
|
125
133
|
export {
|
|
126
134
|
SettingsBuilder_default as default
|
|
127
135
|
};
|
|
128
|
-
//# sourceMappingURL=SettingsBuilder-
|
|
136
|
+
//# sourceMappingURL=SettingsBuilder-3JOLC56Z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/containers/SettingsBuilder/index.tsx"],"sourcesContent":["'use client';\n\nimport { lazy, Suspense, useCallback, useEffect, useMemo } from 'react';\n\nimport { useDraftCatalog } from '@/atoms/draft/DraftCatalogProvider.js';\nimport { auiButtonClass } from '@/atoms/lib/buttonClasses.js';\nimport { cn } from '@/atoms/lib/cn.js';\nimport { useCompactLayout } from '@/atoms/lib/CompactLayoutContext.js';\nimport { Spinner } from '@/atoms/primitives/Spinner.js';\nimport { Icon } from '@/icons/Icon.js';\nimport { useOptionalCatalogServer, useOptionalRefreshServerCapabilities } from '@/server/ServerContext.js';\nimport { useShellMode, type SettingsSection } from '@/server/ShellModeContext.js';\n\n// Section modules (and their list/catalog APIs) load only when that tab mounts.\nconst ModelSettings = lazy(() => import('./ModelSettings.js'));\nconst ConnectorSettings = lazy(() => import('./ConnectorSettings.js'));\nconst SkillSettings = lazy(() => import('./SkillSettings.js'));\nconst SandboxSettings = lazy(() => import('./SandboxSettings.js'));\n\nfunction SettingsSectionFallback() {\n return (\n <div className=\"flex flex-1 items-center justify-center py-8\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <Spinner size={20} className=\"text-text-secondary\" />\n <span className=\"sr-only\">Loading</span>\n </div>\n );\n}\n\nconst TruefoundrySettingsBuilder = () => {\n const { settingsOpen, settingsSection: section, setSettingsOpen } = useShellMode();\n const catalog = useOptionalCatalogServer();\n const refreshServerCapabilities = useOptionalRefreshServerCapabilities();\n const { refresh: refreshDraftCatalog } = useDraftCatalog();\n // dock/widget panels are ~mobile width even on a wide viewport — keep Settings stacked.\n const compact = useCompactLayout();\n const hasSkills = catalog?.skillCatalog != null;\n const hasSandbox = catalog?.sandboxCatalog != null;\n\n const closeSettings = useCallback(() => {\n setSettingsOpen(false);\n refreshDraftCatalog();\n refreshServerCapabilities?.();\n }, [refreshDraftCatalog, refreshServerCapabilities, setSettingsOpen]);\n\n useEffect(() => {\n if (!hasSkills && section === 'skills') {\n setSettingsOpen(settingsOpen, 'models');\n }\n if (!hasSandbox && section === 'sandbox') {\n setSettingsOpen(settingsOpen, 'models');\n }\n }, [hasSkills, hasSandbox, section, settingsOpen, setSettingsOpen]);\n\n useEffect(() => {\n if (!settingsOpen) return;\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n event.stopImmediatePropagation();\n closeSettings();\n };\n // Capture so layout Escape handlers (sessions drawer / widget) do not also fire.\n window.addEventListener('keydown', onKeyDown, true);\n return () => window.removeEventListener('keydown', onKeyDown, true);\n }, [closeSettings, settingsOpen]);\n\n const sections = useMemo<\n Array<{\n id: SettingsSection;\n label: string;\n icon: 'cpu' | 'plug' | 'lightbulb' | 'cube';\n }>\n >(() => {\n const baseSections: Array<{\n id: SettingsSection;\n label: string;\n icon: 'cpu' | 'plug' | 'lightbulb' | 'cube';\n }> = [\n { id: 'models', label: 'Models', icon: 'cpu' },\n { id: 'connectors', label: 'Connectors', icon: 'plug' },\n ];\n if (hasSkills) {\n baseSections.push({ id: 'skills', label: 'Skills', icon: 'lightbulb' });\n }\n if (hasSandbox) {\n baseSections.push({ id: 'sandbox', label: 'Sandbox providers', icon: 'cube' });\n }\n return baseSections;\n }, [hasSkills, hasSandbox]);\n\n if (!settingsOpen || !catalog) return null;\n\n return (\n <div className=\"flex h-full min-h-0 w-full flex-col bg-primary-bg\">\n <header className=\"flex shrink-0 items-center gap-2 border-b border-border px-2 py-1.5\">\n <button\n type=\"button\"\n aria-label=\"Back\"\n title=\"Back\"\n className={auiButtonClass({ variant: 'ghost', size: 'icon' })}\n onClick={closeSettings}\n >\n <Icon name=\"arrow-left\" />\n </button>\n <h1 className=\"text-lg font-semibold tracking-tight text-text-primary\">Settings</h1>\n </header>\n\n <div className={cn('flex min-h-0 flex-1 flex-col', !compact && 'md:flex-row')}>\n <nav\n aria-label=\"Settings sections\"\n className={cn(\n 'flex w-full gap-1 border-b border-border bg-secondary-bg/40 p-2',\n compact ? 'min-w-0' : 'justify-center md:w-48 md:flex-col md:justify-start md:border-b-0 md:border-r',\n )}\n >\n {sections.map(item => (\n <button\n key={item.id}\n type=\"button\"\n aria-current={section === item.id ? 'page' : undefined}\n {...(compact ? { title: item.label } : {})}\n className={cn(\n 'flex min-h-9 items-center gap-2 rounded-md px-3 text-sm font-medium transition-colors',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-focus-ring',\n // Narrow panels cannot fit fixed-width tabs, so tabs split the row instead.\n compact ? 'min-w-0 flex-1 justify-center gap-1.5 px-1.5' : 'shrink-0',\n section === item.id\n ? 'bg-primary-button-bg text-primary-button-text'\n : 'text-text-secondary hover:bg-ghost-button-hover/60 hover:text-text-primary',\n )}\n onClick={() => {\n setSettingsOpen(true, item.id);\n }}\n >\n <Icon name={item.icon} className=\"h-4 w-4 shrink-0\" />\n {compact ? <span className=\"truncate\">{item.label}</span> : item.label}\n </button>\n ))}\n </nav>\n\n <section className=\"flex flex-col h-full flex-1 overflow-y-hidden px-6 py-4\">\n <div className=\"w-full max-w-210 h-full min-h-0 flex flex-col mx-auto\">\n <Suspense fallback={<SettingsSectionFallback />}>\n {section === 'models' ? <ModelSettings /> : null}\n {section === 'connectors' ? <ConnectorSettings /> : null}\n {section === 'skills' && hasSkills ? <SkillSettings /> : null}\n {section === 'sandbox' && hasSandbox ? <SandboxSettings /> : null}\n </Suspense>\n </div>\n </section>\n </div>\n </div>\n );\n};\n\nexport default TruefoundrySettingsBuilder;\n"],"mappings":"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","names":[]}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
NamedAgentHeaderLabel,
|
|
4
4
|
ShellActions
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VJTCFZNM.js";
|
|
6
6
|
import {
|
|
7
7
|
Thread,
|
|
8
8
|
ThreadListContainer
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3PTFNAQK.js";
|
|
10
10
|
import {
|
|
11
11
|
useAui
|
|
12
12
|
} from "./chunk-M6MHLVSO.js";
|
|
@@ -14,22 +14,22 @@ import {
|
|
|
14
14
|
useBrandName,
|
|
15
15
|
useChatHeaderContentVisible,
|
|
16
16
|
useSlot
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-Z27F4LBZ.js";
|
|
18
18
|
import {
|
|
19
19
|
Icon,
|
|
20
20
|
Spinner,
|
|
21
21
|
auiButtonClass,
|
|
22
22
|
useOptionalShellMode
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-U5GBGEGN.js";
|
|
24
|
+
import "./chunk-FDBJNXH2.js";
|
|
25
25
|
import {
|
|
26
26
|
cn
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-WMRZSULD.js";
|
|
28
28
|
|
|
29
29
|
// src/layouts/SidebarLayout.tsx
|
|
30
30
|
import { lazy, Suspense, useEffect, useRef, useState } from "react";
|
|
31
31
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
32
|
-
var TruefoundrySettingsBuilder = lazy(() => import("./SettingsBuilder-
|
|
32
|
+
var TruefoundrySettingsBuilder = lazy(() => import("./SettingsBuilder-3JOLC56Z.js"));
|
|
33
33
|
var desktopCollapsed = false;
|
|
34
34
|
function SidebarLayout({ className }) {
|
|
35
35
|
const aui = useAui();
|
|
@@ -233,4 +233,4 @@ function SidebarLayout({ className }) {
|
|
|
233
233
|
export {
|
|
234
234
|
SidebarLayout
|
|
235
235
|
};
|
|
236
|
-
//# sourceMappingURL=SidebarLayout-
|
|
236
|
+
//# sourceMappingURL=SidebarLayout-G6BGD7EY.js.map
|
|
@@ -4,15 +4,15 @@ import {
|
|
|
4
4
|
CenteredModal,
|
|
5
5
|
SearchInput_default,
|
|
6
6
|
auiInputClass,
|
|
7
|
-
getErrorMessage,
|
|
8
7
|
useToasterOptional
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-Z27F4LBZ.js";
|
|
10
9
|
import {
|
|
11
10
|
Icon,
|
|
11
|
+
getErrorMessage,
|
|
12
12
|
useCatalogServer
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-U5GBGEGN.js";
|
|
14
|
+
import "./chunk-FDBJNXH2.js";
|
|
15
|
+
import "./chunk-WMRZSULD.js";
|
|
16
16
|
|
|
17
17
|
// src/containers/SettingsBuilder/SkillSettings.tsx
|
|
18
18
|
import { useCallback, useEffect, useMemo, useState as useState2 } from "react";
|
|
@@ -386,4 +386,4 @@ var SkillSettings_default = SkillSettings;
|
|
|
386
386
|
export {
|
|
387
387
|
SkillSettings_default as default
|
|
388
388
|
};
|
|
389
|
-
//# sourceMappingURL=SkillSettings-
|
|
389
|
+
//# sourceMappingURL=SkillSettings-4VB42CVG.js.map
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
StackChatPanel
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-EFGSH3MO.js";
|
|
5
|
+
import "./chunk-VJTCFZNM.js";
|
|
6
|
+
import "./chunk-3PTFNAQK.js";
|
|
7
7
|
import "./chunk-M6MHLVSO.js";
|
|
8
8
|
import {
|
|
9
9
|
useSlot
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-Z27F4LBZ.js";
|
|
11
11
|
import {
|
|
12
12
|
CompactLayoutProvider,
|
|
13
13
|
Icon,
|
|
14
14
|
auiButtonClass
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-U5GBGEGN.js";
|
|
16
|
+
import "./chunk-FDBJNXH2.js";
|
|
17
17
|
import {
|
|
18
18
|
cn
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-WMRZSULD.js";
|
|
20
20
|
|
|
21
21
|
// src/layouts/WidgetLayout.tsx
|
|
22
22
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -98,4 +98,4 @@ function WidgetLayout({ className }) {
|
|
|
98
98
|
export {
|
|
99
99
|
WidgetLayout
|
|
100
100
|
};
|
|
101
|
-
//# sourceMappingURL=WidgetLayout-
|
|
101
|
+
//# sourceMappingURL=WidgetLayout-ABSXZUSQ.js.map
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
ASK_USER_CUSTOM_OPTION,
|
|
7
7
|
BottomSheet,
|
|
8
8
|
Button,
|
|
9
|
-
DraftCatalogProvider,
|
|
10
9
|
SearchInput_default,
|
|
11
10
|
SlotsProvider,
|
|
12
11
|
USER_MESSAGE_ATTACHMENT_PREVIEW_REM,
|
|
@@ -20,18 +19,19 @@ import {
|
|
|
20
19
|
useSlot,
|
|
21
20
|
useSlotIsDefault,
|
|
22
21
|
useToasterOptional
|
|
23
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-Z27F4LBZ.js";
|
|
24
23
|
import {
|
|
24
|
+
DraftCatalogProvider,
|
|
25
25
|
Icon,
|
|
26
26
|
auiButtonClass,
|
|
27
27
|
libraryAgentId,
|
|
28
28
|
useCompactLayout,
|
|
29
29
|
useOptionalServer,
|
|
30
30
|
useOptionalShellMode
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-U5GBGEGN.js";
|
|
32
32
|
import {
|
|
33
33
|
cn
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-WMRZSULD.js";
|
|
35
35
|
|
|
36
36
|
// src/containers/AgentStepsContainer.tsx
|
|
37
37
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -2085,4 +2085,4 @@ export {
|
|
|
2085
2085
|
Thread,
|
|
2086
2086
|
ThreadListContainer
|
|
2087
2087
|
};
|
|
2088
|
-
//# sourceMappingURL=chunk-
|
|
2088
|
+
//# sourceMappingURL=chunk-3PTFNAQK.js.map
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NamedAgentHeaderLabel,
|
|
3
3
|
ShellActions
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VJTCFZNM.js";
|
|
5
5
|
import {
|
|
6
6
|
Thread,
|
|
7
7
|
ThreadListContainer
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-3PTFNAQK.js";
|
|
9
9
|
import {
|
|
10
10
|
useAui
|
|
11
11
|
} from "./chunk-M6MHLVSO.js";
|
|
12
12
|
import {
|
|
13
13
|
useSlot
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-Z27F4LBZ.js";
|
|
15
15
|
import {
|
|
16
16
|
Icon,
|
|
17
17
|
Spinner,
|
|
18
18
|
auiButtonClass,
|
|
19
19
|
useOptionalShellMode
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-U5GBGEGN.js";
|
|
21
21
|
import {
|
|
22
22
|
cn
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-WMRZSULD.js";
|
|
24
24
|
|
|
25
25
|
// src/layouts/StackChatPanel.tsx
|
|
26
26
|
import { lazy, Suspense, useEffect, useState } from "react";
|
|
27
27
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
28
|
-
var TruefoundrySettingsBuilder = lazy(() => import("./SettingsBuilder-
|
|
28
|
+
var TruefoundrySettingsBuilder = lazy(() => import("./SettingsBuilder-3JOLC56Z.js"));
|
|
29
29
|
function StackChatPanel({ className, threadHeaderEnd }) {
|
|
30
30
|
const [view, setView] = useState("thread");
|
|
31
31
|
const aui = useAui();
|
|
@@ -86,4 +86,4 @@ function StackChatPanel({ className, threadHeaderEnd }) {
|
|
|
86
86
|
export {
|
|
87
87
|
StackChatPanel
|
|
88
88
|
};
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-EFGSH3MO.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
cn,
|
|
3
3
|
useOptionalContentClassNames
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WMRZSULD.js";
|
|
5
5
|
|
|
6
6
|
// src/atoms/OpenUiFenceBlock.tsx
|
|
7
7
|
import { Renderer } from "@openuidev/react-lang";
|
|
@@ -21,4 +21,4 @@ function OpenUiFenceBlock({ content, isStreaming, darkTheme }) {
|
|
|
21
21
|
export {
|
|
22
22
|
OpenUiFenceBlock
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-FDBJNXH2.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ThemeContext,
|
|
3
3
|
cn
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WMRZSULD.js";
|
|
5
5
|
|
|
6
6
|
// src/icons/Icon.tsx
|
|
7
7
|
import { createElement, isValidElement, useContext } from "react";
|
|
@@ -379,12 +379,16 @@ function ShellModeProvider({
|
|
|
379
379
|
const [clearEpoch, setClearEpoch] = useState2(0);
|
|
380
380
|
const [agentsListEpoch, setAgentsListEpoch] = useState2(0);
|
|
381
381
|
const [settingsOpenState, setSettingsOpenState] = useState2(initialSettingsOpen);
|
|
382
|
+
const [settingsSection, setSettingsSection] = useState2("models");
|
|
382
383
|
const [historyAgentFilter, setHistoryAgentFilter] = useState2(null);
|
|
383
384
|
const [pendingSessionId, setPendingSessionId] = useState2(void 0);
|
|
384
385
|
const settingsEnabled = capabilities?.settings?.enabled !== false;
|
|
385
386
|
const settingsOpen = settingsEnabled && settingsOpenState;
|
|
386
387
|
const setSettingsOpen = useCallback2(
|
|
387
|
-
(open) => {
|
|
388
|
+
(open, section) => {
|
|
389
|
+
if (section !== void 0) {
|
|
390
|
+
setSettingsSection(section);
|
|
391
|
+
}
|
|
388
392
|
setSettingsOpenState(settingsEnabled && open);
|
|
389
393
|
},
|
|
390
394
|
[settingsEnabled]
|
|
@@ -546,6 +550,7 @@ function ShellModeProvider({
|
|
|
546
550
|
isComposerEnabled,
|
|
547
551
|
isNewChatEnabled,
|
|
548
552
|
settingsOpen,
|
|
553
|
+
settingsSection,
|
|
549
554
|
setSettingsOpen,
|
|
550
555
|
selectLibraryAgent,
|
|
551
556
|
bindMutableAgent,
|
|
@@ -568,6 +573,7 @@ function ShellModeProvider({
|
|
|
568
573
|
isComposerEnabled,
|
|
569
574
|
isNewChatEnabled,
|
|
570
575
|
settingsOpen,
|
|
576
|
+
settingsSection,
|
|
571
577
|
setSettingsOpen,
|
|
572
578
|
selectLibraryAgent,
|
|
573
579
|
bindMutableAgent,
|
|
@@ -599,6 +605,57 @@ function shellIsMutable(mode) {
|
|
|
599
605
|
return mode.status === "active" && mode.isMutable;
|
|
600
606
|
}
|
|
601
607
|
|
|
608
|
+
// src/utils/getErrorMessage.ts
|
|
609
|
+
function isRecord(value) {
|
|
610
|
+
return value != null && typeof value === "object";
|
|
611
|
+
}
|
|
612
|
+
function readNonEmptyString(value) {
|
|
613
|
+
return typeof value === "string" && value.trim() !== "" ? value : void 0;
|
|
614
|
+
}
|
|
615
|
+
function messageFromErrorShaped(value) {
|
|
616
|
+
if (!isRecord(value)) return void 0;
|
|
617
|
+
const direct = readNonEmptyString(value.message);
|
|
618
|
+
if (direct != null) return direct;
|
|
619
|
+
if (isRecord(value.error)) {
|
|
620
|
+
return readNonEmptyString(value.error.message);
|
|
621
|
+
}
|
|
622
|
+
return void 0;
|
|
623
|
+
}
|
|
624
|
+
function stringifyError(error) {
|
|
625
|
+
if (typeof error === "string") return error;
|
|
626
|
+
if (isRecord(error)) {
|
|
627
|
+
try {
|
|
628
|
+
return JSON.stringify(error);
|
|
629
|
+
} catch {
|
|
630
|
+
return Object.prototype.toString.call(error);
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
return String(error);
|
|
634
|
+
}
|
|
635
|
+
function getErrorMessage(error, fallback) {
|
|
636
|
+
if (typeof error === "string") {
|
|
637
|
+
const trimmed = error.trim();
|
|
638
|
+
if (trimmed !== "") return error;
|
|
639
|
+
return fallback ?? error;
|
|
640
|
+
}
|
|
641
|
+
if (isRecord(error) && "body" in error) {
|
|
642
|
+
const fromBody = messageFromErrorShaped(error.body);
|
|
643
|
+
if (fromBody != null) return fromBody;
|
|
644
|
+
if (error.body != null) {
|
|
645
|
+
if (typeof error.body === "string") {
|
|
646
|
+
const trimmed = error.body.trim();
|
|
647
|
+
if (trimmed !== "") return error.body;
|
|
648
|
+
} else {
|
|
649
|
+
return stringifyError(error.body);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
const fromShape = messageFromErrorShaped(error);
|
|
654
|
+
if (fromShape != null) return fromShape;
|
|
655
|
+
if (fallback != null) return fallback;
|
|
656
|
+
return stringifyError(error);
|
|
657
|
+
}
|
|
658
|
+
|
|
602
659
|
// src/atoms/lib/CompactLayoutContext.tsx
|
|
603
660
|
import { createContext as createContext3, useContext as useContext4 } from "react";
|
|
604
661
|
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
@@ -610,6 +667,100 @@ function useCompactLayout() {
|
|
|
610
667
|
return useContext4(CompactLayoutContext);
|
|
611
668
|
}
|
|
612
669
|
|
|
670
|
+
// src/atoms/draft/DraftCatalogProvider.tsx
|
|
671
|
+
import { createContext as createContext4, useCallback as useCallback3, useContext as useContext5, useEffect as useEffect3, useMemo as useMemo3, useState as useState3 } from "react";
|
|
672
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
673
|
+
var DraftCatalogContext = createContext4(null);
|
|
674
|
+
var IDLE_ENSURE = () => void 0;
|
|
675
|
+
var IDLE_REFRESH = async () => void 0;
|
|
676
|
+
function DraftCatalogProvider({ children }) {
|
|
677
|
+
const server = useOptionalServer();
|
|
678
|
+
const existing = useContext5(DraftCatalogContext);
|
|
679
|
+
if (existing?.server === server) {
|
|
680
|
+
return children;
|
|
681
|
+
}
|
|
682
|
+
return /* @__PURE__ */ jsx7(DraftCatalogStore, { server, children });
|
|
683
|
+
}
|
|
684
|
+
function DraftCatalogStore({ server, children }) {
|
|
685
|
+
const [requestEpoch, setRequestEpoch] = useState3(null);
|
|
686
|
+
const [models, setModels] = useState3([]);
|
|
687
|
+
const [skills, setSkills] = useState3([]);
|
|
688
|
+
const [connectors, setConnectors] = useState3([]);
|
|
689
|
+
const [loading, setLoading] = useState3(false);
|
|
690
|
+
const [error, setError] = useState3(null);
|
|
691
|
+
const ensureLoaded = useCallback3(() => {
|
|
692
|
+
setRequestEpoch((current) => current ?? 0);
|
|
693
|
+
}, []);
|
|
694
|
+
const refresh = useCallback3(() => {
|
|
695
|
+
setRequestEpoch((current) => (current ?? -1) + 1);
|
|
696
|
+
}, []);
|
|
697
|
+
const refreshConnectors = useCallback3(async () => {
|
|
698
|
+
if (!server) return;
|
|
699
|
+
setLoading(true);
|
|
700
|
+
setError(null);
|
|
701
|
+
try {
|
|
702
|
+
const nextConnectors = await server.getMcp();
|
|
703
|
+
setConnectors(nextConnectors);
|
|
704
|
+
} catch (reason) {
|
|
705
|
+
setError(getErrorMessage(reason, "Failed to load connectors."));
|
|
706
|
+
} finally {
|
|
707
|
+
setLoading(false);
|
|
708
|
+
}
|
|
709
|
+
}, [server]);
|
|
710
|
+
useEffect3(() => {
|
|
711
|
+
if (requestEpoch === null || !server) return;
|
|
712
|
+
let cancelled = false;
|
|
713
|
+
setLoading(true);
|
|
714
|
+
setError(null);
|
|
715
|
+
void Promise.allSettled([server.getModels(), server.getSkills(), server.getMcp()]).then(([modelsResult, skillsResult, mcpResult]) => {
|
|
716
|
+
if (cancelled) return;
|
|
717
|
+
const errors = [];
|
|
718
|
+
if (modelsResult.status === "fulfilled") {
|
|
719
|
+
setModels(modelsResult.value);
|
|
720
|
+
} else {
|
|
721
|
+
errors.push(getErrorMessage(modelsResult.reason, "Failed to load models."));
|
|
722
|
+
}
|
|
723
|
+
if (skillsResult.status === "fulfilled") {
|
|
724
|
+
setSkills(skillsResult.value);
|
|
725
|
+
} else {
|
|
726
|
+
errors.push(getErrorMessage(skillsResult.reason, "Failed to load skills."));
|
|
727
|
+
}
|
|
728
|
+
if (mcpResult.status === "fulfilled") {
|
|
729
|
+
setConnectors(mcpResult.value);
|
|
730
|
+
} else {
|
|
731
|
+
errors.push(getErrorMessage(mcpResult.reason, "Failed to load connectors."));
|
|
732
|
+
}
|
|
733
|
+
setError(errors[0] ?? null);
|
|
734
|
+
}).finally(() => {
|
|
735
|
+
if (!cancelled) setLoading(false);
|
|
736
|
+
});
|
|
737
|
+
return () => {
|
|
738
|
+
cancelled = true;
|
|
739
|
+
};
|
|
740
|
+
}, [requestEpoch, server]);
|
|
741
|
+
const value = useMemo3(
|
|
742
|
+
() => ({ server, models, skills, connectors, loading, error, ensureLoaded, refresh, refreshConnectors }),
|
|
743
|
+
[server, models, skills, connectors, loading, error, ensureLoaded, refresh, refreshConnectors]
|
|
744
|
+
);
|
|
745
|
+
return /* @__PURE__ */ jsx7(DraftCatalogContext.Provider, { value, children });
|
|
746
|
+
}
|
|
747
|
+
function useDraftCatalog() {
|
|
748
|
+
const ctx = useContext5(DraftCatalogContext);
|
|
749
|
+
if (ctx == null) {
|
|
750
|
+
return {
|
|
751
|
+
models: [],
|
|
752
|
+
skills: [],
|
|
753
|
+
connectors: [],
|
|
754
|
+
loading: false,
|
|
755
|
+
error: null,
|
|
756
|
+
ensureLoaded: IDLE_ENSURE,
|
|
757
|
+
refresh: IDLE_ENSURE,
|
|
758
|
+
refreshConnectors: IDLE_REFRESH
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
return ctx;
|
|
762
|
+
}
|
|
763
|
+
|
|
613
764
|
export {
|
|
614
765
|
registerIcons,
|
|
615
766
|
Icon,
|
|
@@ -619,6 +770,7 @@ export {
|
|
|
619
770
|
useServer,
|
|
620
771
|
useOptionalServer,
|
|
621
772
|
useServerCapabilities,
|
|
773
|
+
useOptionalRefreshServerCapabilities,
|
|
622
774
|
useCatalogServer,
|
|
623
775
|
useOptionalCatalogServer,
|
|
624
776
|
DEFAULT_AGENT_CONFIG,
|
|
@@ -627,7 +779,10 @@ export {
|
|
|
627
779
|
useShellMode,
|
|
628
780
|
useOptionalShellMode,
|
|
629
781
|
shellIsMutable,
|
|
782
|
+
getErrorMessage,
|
|
630
783
|
CompactLayoutProvider,
|
|
631
|
-
useCompactLayout
|
|
784
|
+
useCompactLayout,
|
|
785
|
+
DraftCatalogProvider,
|
|
786
|
+
useDraftCatalog
|
|
632
787
|
};
|
|
633
|
-
//# sourceMappingURL=chunk-
|
|
788
|
+
//# sourceMappingURL=chunk-U5GBGEGN.js.map
|