@truefoundry/trueforge-ui 0.3.0-rc.0 → 0.3.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 +48 -0
- package/README.md +14 -6
- package/dist/AgentCodeSnippets-NZOFJE57.js +74 -0
- package/dist/AgentCodeSnippets-NZOFJE57.js.map +1 -0
- package/dist/AgentMetricChart-JPU3MFQ2.js +15 -0
- package/dist/AgentOverview-EEBHJC32.js +167 -0
- package/dist/AgentOverview-EEBHJC32.js.map +1 -0
- package/dist/AgentSessionEventTimeline-26Z6IB3B.js +79 -0
- package/dist/AgentSessionEventTimeline-26Z6IB3B.js.map +1 -0
- package/dist/AgentSessionEventTimelineChart-CGCU7WBK.js +504 -0
- package/dist/AgentSessionEventTimelineChart-CGCU7WBK.js.map +1 -0
- package/dist/AgentSessions-3MPDZASK.js +275 -0
- package/dist/AgentSessions-3MPDZASK.js.map +1 -0
- package/dist/{ConnectorSettings-FXQ5B7TN.js → ConnectorSettings-MXFRWWR6.js} +8 -6
- package/dist/{ConnectorSettings-FXQ5B7TN.js.map → ConnectorSettings-MXFRWWR6.js.map} +1 -1
- package/dist/{DockLayout-LBNQJZNF.js → DockLayout-LM4AFMFY.js} +11 -10
- package/dist/{DockLayout-LBNQJZNF.js.map → DockLayout-LM4AFMFY.js.map} +1 -1
- package/dist/DrawerLayout-JR3O6RRB.js +184 -0
- package/dist/DrawerLayout-JR3O6RRB.js.map +1 -0
- package/dist/{ModelSettings-4L4LOQJA.js → ModelSettings-G7IFNC2Y.js} +8 -6
- package/dist/{ModelSettings-4L4LOQJA.js.map → ModelSettings-G7IFNC2Y.js.map} +1 -1
- package/dist/OpenUiFenceBlock-2TV5TQ6P.js +9 -0
- package/dist/OpenUiFenceBlock-2TV5TQ6P.js.map +1 -0
- package/dist/{SandboxSettings-Z4ZG6ZX4.js → SandboxSettings-NXAANMAX.js} +8 -6
- package/dist/{SandboxSettings-Z4ZG6ZX4.js.map → SandboxSettings-NXAANMAX.js.map} +1 -1
- package/dist/SchedulesPage-KKLUDO6B.js +15 -0
- package/dist/SchedulesPage-KKLUDO6B.js.map +1 -0
- package/dist/{SettingsBuilder-WF7ZWKQW.js → SettingsBuilder-L34IQ56S.js} +26 -22
- package/dist/SettingsBuilder-L34IQ56S.js.map +1 -0
- package/dist/{ShellRouteSync-T4WLY57Q.js → ShellRouteSync-CEBETGEJ.js} +95 -22
- package/dist/ShellRouteSync-CEBETGEJ.js.map +1 -0
- package/dist/SidebarLayout-A2HJPPHS.js +308 -0
- package/dist/SidebarLayout-A2HJPPHS.js.map +1 -0
- package/dist/{SkillSettings-3EPPC3IT.js → SkillSettings-FGGMSUNO.js} +8 -6
- package/dist/{SkillSettings-3EPPC3IT.js.map → SkillSettings-FGGMSUNO.js.map} +1 -1
- package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js → TrueForgeUIWithRouter-MZVJWJMB.js} +14 -10
- package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js.map → TrueForgeUIWithRouter-MZVJWJMB.js.map} +1 -1
- package/dist/{WidgetLayout-3QZ357FL.js → WidgetLayout-6QM45OQQ.js} +17 -13
- package/dist/WidgetLayout-6QM45OQQ.js.map +1 -0
- package/dist/chunk-2XPPBEYF.js +74 -0
- package/dist/chunk-2XPPBEYF.js.map +1 -0
- package/dist/chunk-6O6FWUDW.js +1376 -0
- package/dist/chunk-6O6FWUDW.js.map +1 -0
- package/dist/chunk-7Z2C2K7F.js +578 -0
- package/dist/chunk-7Z2C2K7F.js.map +1 -0
- package/dist/{chunk-WREC7D54.js → chunk-CYHJDKFB.js} +115 -32
- package/dist/chunk-CYHJDKFB.js.map +1 -0
- package/dist/chunk-DJUFS2BW.js +27 -0
- package/dist/chunk-DJUFS2BW.js.map +1 -0
- package/dist/chunk-DMMZSZTN.js +252 -0
- package/dist/chunk-DMMZSZTN.js.map +1 -0
- package/dist/chunk-FJW36PD7.js +180 -0
- package/dist/chunk-FJW36PD7.js.map +1 -0
- package/dist/chunk-M62XY4NC.js +555 -0
- package/dist/chunk-M62XY4NC.js.map +1 -0
- package/dist/{chunk-B52K63AW.js → chunk-MPNSO7E6.js} +2 -2
- package/dist/{chunk-CFLVPV5M.js → chunk-QC42MLAK.js} +7 -2
- package/dist/chunk-QC42MLAK.js.map +1 -0
- package/dist/chunk-RDXBMTP5.js +32 -0
- package/dist/chunk-RDXBMTP5.js.map +1 -0
- package/dist/chunk-SFZNIO6U.js +18 -0
- package/dist/chunk-SFZNIO6U.js.map +1 -0
- package/dist/chunk-U7KURWW3.js +840 -0
- package/dist/chunk-U7KURWW3.js.map +1 -0
- package/dist/chunk-WVE3F724.js +200 -0
- package/dist/chunk-WVE3F724.js.map +1 -0
- package/dist/{chunk-FJ5RSSMA.js → chunk-XAU7QFG3.js} +178 -36
- package/dist/chunk-XAU7QFG3.js.map +1 -0
- package/dist/chunk-Y6S4OVVQ.js +16 -0
- package/dist/chunk-Y6S4OVVQ.js.map +1 -0
- package/dist/chunk-ZKNUMH2M.js +119 -0
- package/dist/chunk-ZKNUMH2M.js.map +1 -0
- package/dist/chunk-ZTMKFZQ3.js +13214 -0
- package/dist/chunk-ZTMKFZQ3.js.map +1 -0
- package/dist/{createTrueFoundryServer-B72bU-J7.d.ts → createTrueFoundryServer-CmZnBh_l.d.ts} +15 -4
- package/dist/index.d.ts +1002 -22
- package/dist/index.js +689 -67
- package/dist/index.js.map +1 -1
- package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +552 -8
- package/dist/plugins/trueforge-agent-server-adapter/index.js +503 -188
- package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +8 -7
- package/dist/DrawerLayout-Q6UK4VMI.js +0 -159
- package/dist/DrawerLayout-Q6UK4VMI.js.map +0 -1
- package/dist/OpenUiFenceBlock-6UIIAVBX.js +0 -9
- package/dist/SettingsBuilder-WF7ZWKQW.js.map +0 -1
- package/dist/ShellRouteSync-T4WLY57Q.js.map +0 -1
- package/dist/SidebarLayout-3WZ3CVON.js +0 -256
- package/dist/SidebarLayout-3WZ3CVON.js.map +0 -1
- package/dist/WidgetLayout-3QZ357FL.js.map +0 -1
- package/dist/chunk-36KOSC2J.js +0 -567
- package/dist/chunk-36KOSC2J.js.map +0 -1
- package/dist/chunk-3S6KHO7H.js +0 -2121
- package/dist/chunk-3S6KHO7H.js.map +0 -1
- package/dist/chunk-7L63OK3O.js +0 -91
- package/dist/chunk-7L63OK3O.js.map +0 -1
- package/dist/chunk-CFLVPV5M.js.map +0 -1
- package/dist/chunk-FJ5RSSMA.js.map +0 -1
- package/dist/chunk-OSV3HI5M.js +0 -6891
- package/dist/chunk-OSV3HI5M.js.map +0 -1
- package/dist/chunk-WQULF5AT.js +0 -460
- package/dist/chunk-WQULF5AT.js.map +0 -1
- package/dist/chunk-WREC7D54.js.map +0 -1
- package/dist/chunk-YIWUG6MC.js +0 -101
- package/dist/chunk-YIWUG6MC.js.map +0 -1
- package/dist/chunk-ZXOADNF3.js +0 -75
- package/dist/chunk-ZXOADNF3.js.map +0 -1
- /package/dist/{OpenUiFenceBlock-6UIIAVBX.js.map → AgentMetricChart-JPU3MFQ2.js.map} +0 -0
- /package/dist/{chunk-B52K63AW.js.map → chunk-MPNSO7E6.js.map} +0 -0
package/dist/chunk-YIWUG6MC.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
// src/routing/paths.ts
|
|
2
|
-
var DEFAULTS = {
|
|
3
|
-
root: "/",
|
|
4
|
-
settings: "/settings",
|
|
5
|
-
agent: "/agents/:agentName",
|
|
6
|
-
session: "/sessions/:sessionId"
|
|
7
|
-
};
|
|
8
|
-
function normalizePath(path) {
|
|
9
|
-
const trimmed = path.trim();
|
|
10
|
-
const withLead = trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
|
|
11
|
-
return withLead.length > 1 && withLead.endsWith("/") ? withLead.slice(0, -1) : withLead;
|
|
12
|
-
}
|
|
13
|
-
function resolveOptional(value, fallback) {
|
|
14
|
-
if (value === false) return null;
|
|
15
|
-
return normalizePath(value ?? fallback);
|
|
16
|
-
}
|
|
17
|
-
function resolveRoutesConfig(routes) {
|
|
18
|
-
const paths = routes?.paths;
|
|
19
|
-
return {
|
|
20
|
-
basename: routes?.basename ?? "",
|
|
21
|
-
root: normalizePath(paths?.root ?? DEFAULTS.root),
|
|
22
|
-
settings: resolveOptional(paths?.settings, DEFAULTS.settings),
|
|
23
|
-
agent: resolveOptional(paths?.agent, DEFAULTS.agent),
|
|
24
|
-
session: resolveOptional(paths?.session, DEFAULTS.session)
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function splitSegments(path) {
|
|
28
|
-
return path.split("/").filter((segment) => segment.length > 0);
|
|
29
|
-
}
|
|
30
|
-
function fillTemplate(template, value) {
|
|
31
|
-
return "/" + splitSegments(template).map((segment) => segment.startsWith(":") ? encodeURIComponent(value) : segment).join("/");
|
|
32
|
-
}
|
|
33
|
-
function buildPath(place, routes) {
|
|
34
|
-
switch (place.type) {
|
|
35
|
-
case "root":
|
|
36
|
-
return routes.root;
|
|
37
|
-
case "settings":
|
|
38
|
-
return routes.settings;
|
|
39
|
-
case "agent":
|
|
40
|
-
return routes.agent == null ? null : fillTemplate(routes.agent, place.agentName);
|
|
41
|
-
case "session":
|
|
42
|
-
return routes.session == null ? null : fillTemplate(routes.session, place.sessionId);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function decodeSegment(segment) {
|
|
46
|
-
try {
|
|
47
|
-
return decodeURIComponent(segment);
|
|
48
|
-
} catch {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
function matchTemplate(template, segments) {
|
|
53
|
-
const templateSegments = splitSegments(template);
|
|
54
|
-
if (templateSegments.length !== segments.length) return null;
|
|
55
|
-
let param = null;
|
|
56
|
-
for (const [i, tpl] of templateSegments.entries()) {
|
|
57
|
-
const seg = segments[i];
|
|
58
|
-
if (seg === void 0) return null;
|
|
59
|
-
if (tpl.startsWith(":")) {
|
|
60
|
-
const decoded = decodeSegment(seg);
|
|
61
|
-
if (decoded == null) return null;
|
|
62
|
-
param = decoded;
|
|
63
|
-
} else if (tpl !== seg) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return param;
|
|
68
|
-
}
|
|
69
|
-
function matchPath(pathname, routes) {
|
|
70
|
-
const normalized = normalizePath(pathname);
|
|
71
|
-
const segments = splitSegments(normalized);
|
|
72
|
-
if (routes.settings != null && normalized === routes.settings) {
|
|
73
|
-
return { type: "settings" };
|
|
74
|
-
}
|
|
75
|
-
if (routes.agent != null) {
|
|
76
|
-
const agentName = matchTemplate(routes.agent, segments);
|
|
77
|
-
if (agentName != null) return { type: "agent", agentName };
|
|
78
|
-
}
|
|
79
|
-
if (routes.session != null) {
|
|
80
|
-
const sessionId = matchTemplate(routes.session, segments);
|
|
81
|
-
if (sessionId != null) return { type: "session", sessionId };
|
|
82
|
-
}
|
|
83
|
-
if (normalized === routes.root) {
|
|
84
|
-
return { type: "root" };
|
|
85
|
-
}
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
function placesEqual(a, b) {
|
|
89
|
-
if (a.type !== b.type) return false;
|
|
90
|
-
if (a.type === "agent" && b.type === "agent") return a.agentName === b.agentName;
|
|
91
|
-
if (a.type === "session" && b.type === "session") return a.sessionId === b.sessionId;
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export {
|
|
96
|
-
resolveRoutesConfig,
|
|
97
|
-
buildPath,
|
|
98
|
-
matchPath,
|
|
99
|
-
placesEqual
|
|
100
|
-
};
|
|
101
|
-
//# sourceMappingURL=chunk-YIWUG6MC.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routing/paths.ts"],"sourcesContent":["import type { ResolvedRoutes, RoutePlace, RoutesConfig } from './types.js';\n\nconst DEFAULTS = {\n root: '/',\n settings: '/settings',\n agent: '/agents/:agentName',\n session: '/sessions/:sessionId',\n} as const;\n\nfunction normalizePath(path: string): string {\n const trimmed = path.trim();\n const withLead = trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n // Drop a trailing slash except for the root itself.\n return withLead.length > 1 && withLead.endsWith('/') ? withLead.slice(0, -1) : withLead;\n}\n\nfunction resolveOptional(value: string | false | undefined, fallback: string): string | null {\n if (value === false) return null;\n return normalizePath(value ?? fallback);\n}\n\nexport function resolveRoutesConfig(routes?: RoutesConfig): ResolvedRoutes {\n const paths = routes?.paths;\n return {\n basename: routes?.basename ?? '',\n root: normalizePath(paths?.root ?? DEFAULTS.root),\n settings: resolveOptional(paths?.settings, DEFAULTS.settings),\n agent: resolveOptional(paths?.agent, DEFAULTS.agent),\n session: resolveOptional(paths?.session, DEFAULTS.session),\n };\n}\n\nfunction splitSegments(path: string): string[] {\n return path.split('/').filter(segment => segment.length > 0);\n}\n\n/** Fill a single-param template (`/agents/:agentName`) with an encoded value. */\nfunction fillTemplate(template: string, value: string): string {\n return (\n '/' +\n splitSegments(template)\n .map(segment => (segment.startsWith(':') ? encodeURIComponent(value) : segment))\n .join('/')\n );\n}\n\n/** Build the URL path for a place, or `null` when that place has no configured route. */\nexport function buildPath(place: RoutePlace, routes: ResolvedRoutes): string | null {\n switch (place.type) {\n case 'root':\n return routes.root;\n case 'settings':\n return routes.settings;\n case 'agent':\n return routes.agent == null ? null : fillTemplate(routes.agent, place.agentName);\n case 'session':\n return routes.session == null ? null : fillTemplate(routes.session, place.sessionId);\n }\n}\n\n/** Percent-decode a segment; `null` when the URL carries a malformed escape. */\nfunction decodeSegment(segment: string): string | null {\n try {\n return decodeURIComponent(segment);\n } catch {\n return null;\n }\n}\n\n/** Match a single-param template against concrete segments; returns the decoded param or null. */\nfunction matchTemplate(template: string, segments: string[]): string | null {\n const templateSegments = splitSegments(template);\n if (templateSegments.length !== segments.length) return null;\n let param: string | null = null;\n for (const [i, tpl] of templateSegments.entries()) {\n const seg = segments[i];\n if (seg === undefined) return null;\n if (tpl.startsWith(':')) {\n // A malformed escape is an unusable id, so the path simply does not match.\n const decoded = decodeSegment(seg);\n if (decoded == null) return null;\n param = decoded;\n } else if (tpl !== seg) {\n return null;\n }\n }\n return param;\n}\n\n/** Parse a (basename-relative) pathname into a place, or `null` when unrecognized. */\nexport function matchPath(pathname: string, routes: ResolvedRoutes): RoutePlace | null {\n const normalized = normalizePath(pathname);\n const segments = splitSegments(normalized);\n\n if (routes.settings != null && normalized === routes.settings) {\n return { type: 'settings' };\n }\n if (routes.agent != null) {\n const agentName = matchTemplate(routes.agent, segments);\n if (agentName != null) return { type: 'agent', agentName };\n }\n if (routes.session != null) {\n const sessionId = matchTemplate(routes.session, segments);\n if (sessionId != null) return { type: 'session', sessionId };\n }\n if (normalized === routes.root) {\n return { type: 'root' };\n }\n return null;\n}\n\nexport function placesEqual(a: RoutePlace, b: RoutePlace): boolean {\n if (a.type !== b.type) return false;\n if (a.type === 'agent' && b.type === 'agent') return a.agentName === b.agentName;\n if (a.type === 'session' && b.type === 'session') return a.sessionId === b.sessionId;\n return true;\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-ZXOADNF3.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Tooltip,
|
|
3
|
-
useNamedAgentHeaderState,
|
|
4
|
-
useSlot
|
|
5
|
-
} from "./chunk-OSV3HI5M.js";
|
|
6
|
-
import {
|
|
7
|
-
Icon,
|
|
8
|
-
auiButtonClass
|
|
9
|
-
} from "./chunk-FJ5RSSMA.js";
|
|
10
|
-
import {
|
|
11
|
-
useOptionalCatalogServer,
|
|
12
|
-
useOptionalShellMode,
|
|
13
|
-
useServerCapabilities
|
|
14
|
-
} from "./chunk-WQULF5AT.js";
|
|
15
|
-
import {
|
|
16
|
-
cn,
|
|
17
|
-
useTheme
|
|
18
|
-
} from "./chunk-36KOSC2J.js";
|
|
19
|
-
|
|
20
|
-
// src/atoms/NamedAgentHeaderLabel.tsx
|
|
21
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
-
function NamedAgentHeaderLabel({ className }) {
|
|
23
|
-
const state = useNamedAgentHeaderState();
|
|
24
|
-
if (state === null) return null;
|
|
25
|
-
return /* @__PURE__ */ jsxs("h1", { className: cn("flex min-w-0 items-center gap-1.5 px-1 text-sm font-medium text-text-primary", className), children: [
|
|
26
|
-
/* @__PURE__ */ jsx(Icon, { name: "robot", className: "size-3.5 shrink-0" }),
|
|
27
|
-
/* @__PURE__ */ jsx("span", { className: "truncate", title: state.name, children: state.name }),
|
|
28
|
-
state.isEditing ? /* @__PURE__ */ jsx(Tooltip, { content: "Try changes here, then choose Update agent to save.", side: "bottom", children: /* @__PURE__ */ jsxs("span", { className: "border-warning-bg/40 bg-warning-bg/10 text-warning-bg inline-flex shrink-0 items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium", children: [
|
|
29
|
-
/* @__PURE__ */ jsx(Icon, { name: "pencil", className: "size-3" }),
|
|
30
|
-
"Editing"
|
|
31
|
-
] }) }) : null
|
|
32
|
-
] });
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// src/atoms/ShellActions.tsx
|
|
36
|
-
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
37
|
-
function ShellActions({ className }) {
|
|
38
|
-
const shell = useOptionalShellMode();
|
|
39
|
-
const catalog = useOptionalCatalogServer();
|
|
40
|
-
const capabilities = useServerCapabilities();
|
|
41
|
-
const { mode, setTheme } = useTheme();
|
|
42
|
-
const ActionSlot = useSlot("ShellActionsActionSlot");
|
|
43
|
-
return /* @__PURE__ */ jsxs2("div", { className: cn("flex shrink-0 items-center gap-1 text-text-primary", className), children: [
|
|
44
|
-
/* @__PURE__ */ jsx2(
|
|
45
|
-
"button",
|
|
46
|
-
{
|
|
47
|
-
type: "button",
|
|
48
|
-
"aria-label": mode === "dark" ? "Switch to light theme" : "Switch to dark theme",
|
|
49
|
-
title: mode === "dark" ? "Light theme" : "Dark theme",
|
|
50
|
-
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
51
|
-
onClick: () => setTheme(mode === "dark" ? "light" : "dark"),
|
|
52
|
-
children: /* @__PURE__ */ jsx2(Icon, { name: mode === "dark" ? "sun" : "moon" })
|
|
53
|
-
}
|
|
54
|
-
),
|
|
55
|
-
shell != null && catalog != null && capabilities?.settings?.enabled !== false ? /* @__PURE__ */ jsx2(
|
|
56
|
-
"button",
|
|
57
|
-
{
|
|
58
|
-
type: "button",
|
|
59
|
-
"aria-label": "Settings",
|
|
60
|
-
title: "Settings",
|
|
61
|
-
"aria-expanded": shell.settingsOpen,
|
|
62
|
-
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
63
|
-
onClick: () => shell.setSettingsOpen(true),
|
|
64
|
-
children: /* @__PURE__ */ jsx2(Icon, { name: "settings" })
|
|
65
|
-
}
|
|
66
|
-
) : null,
|
|
67
|
-
/* @__PURE__ */ jsx2(ActionSlot, {})
|
|
68
|
-
] });
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export {
|
|
72
|
-
NamedAgentHeaderLabel,
|
|
73
|
-
ShellActions
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=chunk-ZXOADNF3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/atoms/NamedAgentHeaderLabel.tsx","../src/atoms/ShellActions.tsx"],"sourcesContent":["'use client';\n\nimport { useNamedAgentHeaderState } from '../hooks/useChatChromeActionsVisible.js';\nimport { Icon } from '../icons/Icon.js';\nimport { cn } from './lib/cn.js';\nimport { Tooltip } from './primitives/Tooltip.js';\n\n/** Left-of-header title for a named agent, including its mutable edit state. */\nexport function NamedAgentHeaderLabel({ className }: { className?: string }) {\n const state = useNamedAgentHeaderState();\n if (state === null) return null;\n\n return (\n <h1 className={cn('flex min-w-0 items-center gap-1.5 px-1 text-sm font-medium text-text-primary', className)}>\n <Icon name=\"robot\" className=\"size-3.5 shrink-0\" />\n <span className=\"truncate\" title={state.name}>\n {state.name}\n </span>\n {state.isEditing ? (\n <Tooltip content=\"Try changes here, then choose Update agent to save.\" side=\"bottom\">\n <span className=\"border-warning-bg/40 bg-warning-bg/10 text-warning-bg inline-flex shrink-0 items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium\">\n <Icon name=\"pencil\" className=\"size-3\" />\n Editing\n </span>\n </Tooltip>\n ) : null}\n </h1>\n );\n}\n","'use client';\n\nimport { Icon } from '../icons/Icon.js';\nimport { useOptionalCatalogServer, useServerCapabilities } from '../server/ServerContext.js';\nimport { useOptionalShellMode } from '../server/ShellModeContext.js';\nimport { useSlot } from '../theme/SlotsProvider.js';\nimport { useTheme } from '../theme/ThemeProvider.js';\nimport { auiButtonClass } from './lib/buttonClasses.js';\nimport { cn } from './lib/cn.js';\n\nexport function ShellActions({ className }: { className?: string }) {\n const shell = useOptionalShellMode();\n const catalog = useOptionalCatalogServer();\n const capabilities = useServerCapabilities();\n const { mode, setTheme } = useTheme();\n const ActionSlot = useSlot('ShellActionsActionSlot');\n\n return (\n <div className={cn('flex shrink-0 items-center gap-1 text-text-primary', className)}>\n <button\n type=\"button\"\n aria-label={mode === 'dark' ? 'Switch to light theme' : 'Switch to dark theme'}\n title={mode === 'dark' ? 'Light theme' : 'Dark theme'}\n className={auiButtonClass({ variant: 'ghost', size: 'icon' })}\n onClick={() => setTheme(mode === 'dark' ? 'light' : 'dark')}\n >\n <Icon name={mode === 'dark' ? 'sun' : 'moon'} />\n </button>\n {shell != null && catalog != null && capabilities?.settings?.enabled !== false ? (\n <button\n type=\"button\"\n aria-label=\"Settings\"\n title=\"Settings\"\n aria-expanded={shell.settingsOpen}\n className={auiButtonClass({ variant: 'ghost', size: 'icon' })}\n onClick={() => shell.setSettingsOpen(true)}\n >\n <Icon name=\"settings\" />\n </button>\n ) : null}\n <ActionSlot />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAcM,cAMI,YANJ;AANC,SAAS,sBAAsB,EAAE,UAAU,GAA2B;AAC3E,QAAM,QAAQ,yBAAyB;AACvC,MAAI,UAAU,KAAM,QAAO;AAE3B,SACE,qBAAC,QAAG,WAAW,GAAG,gFAAgF,SAAS,GACzG;AAAA,wBAAC,QAAK,MAAK,SAAQ,WAAU,qBAAoB;AAAA,IACjD,oBAAC,UAAK,WAAU,YAAW,OAAO,MAAM,MACrC,gBAAM,MACT;AAAA,IACC,MAAM,YACL,oBAAC,WAAQ,SAAQ,uDAAsD,MAAK,UAC1E,+BAAC,UAAK,WAAU,qJACd;AAAA,0BAAC,QAAK,MAAK,UAAS,WAAU,UAAS;AAAA,MAAE;AAAA,OAE3C,GACF,IACE;AAAA,KACN;AAEJ;;;ACVI,SAQI,OAAAA,MARJ,QAAAC,aAAA;AARG,SAAS,aAAa,EAAE,UAAU,GAA2B;AAClE,QAAM,QAAQ,qBAAqB;AACnC,QAAM,UAAU,yBAAyB;AACzC,QAAM,eAAe,sBAAsB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAI,SAAS;AACpC,QAAM,aAAa,QAAQ,wBAAwB;AAEnD,SACE,gBAAAA,MAAC,SAAI,WAAW,GAAG,sDAAsD,SAAS,GAChF;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAY,SAAS,SAAS,0BAA0B;AAAA,QACxD,OAAO,SAAS,SAAS,gBAAgB;AAAA,QACzC,WAAW,eAAe,EAAE,SAAS,SAAS,MAAM,OAAO,CAAC;AAAA,QAC5D,SAAS,MAAM,SAAS,SAAS,SAAS,UAAU,MAAM;AAAA,QAE1D,0BAAAA,KAAC,QAAK,MAAM,SAAS,SAAS,QAAQ,QAAQ;AAAA;AAAA,IAChD;AAAA,IACC,SAAS,QAAQ,WAAW,QAAQ,cAAc,UAAU,YAAY,QACvE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAW;AAAA,QACX,OAAM;AAAA,QACN,iBAAe,MAAM;AAAA,QACrB,WAAW,eAAe,EAAE,SAAS,SAAS,MAAM,OAAO,CAAC;AAAA,QAC5D,SAAS,MAAM,MAAM,gBAAgB,IAAI;AAAA,QAEzC,0BAAAA,KAAC,QAAK,MAAK,YAAW;AAAA;AAAA,IACxB,IACE;AAAA,IACJ,gBAAAA,KAAC,cAAW;AAAA,KACd;AAEJ;","names":["jsx","jsxs"]}
|
|
File without changes
|
|
File without changes
|