@truefoundry/trueforge-ui 0.3.0-rc.3 → 0.3.0-rc.5

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 (86) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +1 -1
  3. package/dist/{AgentCodeSnippets-N546FNNS.js → AgentCodeSnippets-V5A56M7R.js} +7 -7
  4. package/dist/AgentMetricChart-GEADURES.js +15 -0
  5. package/dist/{AgentOverview-VF74XC7I.js → AgentOverview-NPC4P2EY.js} +7 -7
  6. package/dist/{AgentSessionEventTimeline-RFR6LQMY.js → AgentSessionEventTimeline-UUXOJXTC.js} +7 -7
  7. package/dist/{AgentSessionEventTimelineChart-27CQF6FX.js → AgentSessionEventTimelineChart-FIAQCYJC.js} +7 -7
  8. package/dist/{AgentSessions-4IVX2SGD.js → AgentSessions-WHODEG2M.js} +44 -20
  9. package/dist/AgentSessions-WHODEG2M.js.map +1 -0
  10. package/dist/{ConnectorSettings-R5VEP7BO.js → ConnectorSettings-QTAI4TQX.js} +7 -7
  11. package/dist/{DockLayout-F44RWGEY.js → DockLayout-TATYU5SV.js} +10 -10
  12. package/dist/{DrawerLayout-SQ323AVM.js → DrawerLayout-DXHNV33K.js} +11 -11
  13. package/dist/{ModelSettings-6QLS63HM.js → ModelSettings-UWTBHQRG.js} +7 -7
  14. package/dist/OpenUiFenceBlock-FHEYXZEQ.js +9 -0
  15. package/dist/{SandboxSettings-OLKDXIQS.js → SandboxSettings-BITQONS3.js} +7 -7
  16. package/dist/SchedulesPage-JIUWNYUH.js +15 -0
  17. package/dist/{SettingsBuilder-GISAH2WU.js → SettingsBuilder-3OA4UCIM.js} +8 -8
  18. package/dist/{ShellRouteSync-EN33DUQ7.js → ShellRouteSync-J74MV23Q.js} +4 -4
  19. package/dist/{SidebarLayout-35K4AKTC.js → SidebarLayout-EQXQPYIU.js} +13 -13
  20. package/dist/SidebarLayout-EQXQPYIU.js.map +1 -0
  21. package/dist/{SkillSettings-JSX2BTII.js → SkillSettings-KQ6GQ7JW.js} +7 -7
  22. package/dist/{TrueForgeUIWithRouter-6VCR7ES3.js → TrueForgeUIWithRouter-R3UXQZRY.js} +9 -9
  23. package/dist/{WidgetLayout-RKBSN2FZ.js → WidgetLayout-YWZTYFZL.js} +10 -10
  24. package/dist/{chunk-KR7WYHVF.js → chunk-3QWUHGNL.js} +2 -2
  25. package/dist/{chunk-73FQVITT.js → chunk-4MCIDE2C.js} +3 -3
  26. package/dist/{chunk-LUG7E6BL.js → chunk-7NYDADYN.js} +5 -5
  27. package/dist/{chunk-J5BPHEDT.js → chunk-CFGLAGWH.js} +2 -2
  28. package/dist/{chunk-GSJAYYLR.js → chunk-DCVKW445.js} +11 -6
  29. package/dist/chunk-DCVKW445.js.map +1 -0
  30. package/dist/{chunk-XY6LZQES.js → chunk-ERIIJKJY.js} +4 -4
  31. package/dist/{chunk-Q6TCT7ZJ.js → chunk-IIHJ32YH.js} +3 -3
  32. package/dist/{chunk-F5QVQIBH.js → chunk-INY3J2BV.js} +27 -16
  33. package/dist/{chunk-F5QVQIBH.js.map → chunk-INY3J2BV.js.map} +1 -1
  34. package/dist/{chunk-XLFOXQKZ.js → chunk-IVDIBAVH.js} +2 -2
  35. package/dist/{chunk-2O5EJ6QS.js → chunk-MMU55KCW.js} +1427 -1239
  36. package/dist/chunk-MMU55KCW.js.map +1 -0
  37. package/dist/chunk-OWDH67NY.js +587 -0
  38. package/dist/chunk-OWDH67NY.js.map +1 -0
  39. package/dist/{chunk-PT4EENB3.js → chunk-TAABBM7F.js} +31 -3
  40. package/dist/chunk-TAABBM7F.js.map +1 -0
  41. package/dist/{chunk-6WCIL3H2.js → chunk-TFFTZB26.js} +6 -6
  42. package/dist/{chunk-GIPFF6FZ.js → chunk-ZZB3JIBQ.js} +9 -9
  43. package/dist/index.d.ts +25 -7
  44. package/dist/index.js +14 -12
  45. package/dist/index.js.map +1 -1
  46. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +8 -0
  47. package/dist/plugins/trueforge-agent-server-adapter/index.js +4 -2
  48. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  49. package/dist/styles.css +1 -1
  50. package/package.json +4 -3
  51. package/dist/AgentMetricChart-YWJYVYYA.js +0 -15
  52. package/dist/AgentSessions-4IVX2SGD.js.map +0 -1
  53. package/dist/OpenUiFenceBlock-4ROX3G4X.js +0 -9
  54. package/dist/SchedulesPage-TMOTK6DR.js +0 -15
  55. package/dist/SidebarLayout-35K4AKTC.js.map +0 -1
  56. package/dist/chunk-2O5EJ6QS.js.map +0 -1
  57. package/dist/chunk-GSJAYYLR.js.map +0 -1
  58. package/dist/chunk-LXJMINS6.js +0 -587
  59. package/dist/chunk-LXJMINS6.js.map +0 -1
  60. package/dist/chunk-PT4EENB3.js.map +0 -1
  61. /package/dist/{AgentCodeSnippets-N546FNNS.js.map → AgentCodeSnippets-V5A56M7R.js.map} +0 -0
  62. /package/dist/{AgentMetricChart-YWJYVYYA.js.map → AgentMetricChart-GEADURES.js.map} +0 -0
  63. /package/dist/{AgentOverview-VF74XC7I.js.map → AgentOverview-NPC4P2EY.js.map} +0 -0
  64. /package/dist/{AgentSessionEventTimeline-RFR6LQMY.js.map → AgentSessionEventTimeline-UUXOJXTC.js.map} +0 -0
  65. /package/dist/{AgentSessionEventTimelineChart-27CQF6FX.js.map → AgentSessionEventTimelineChart-FIAQCYJC.js.map} +0 -0
  66. /package/dist/{ConnectorSettings-R5VEP7BO.js.map → ConnectorSettings-QTAI4TQX.js.map} +0 -0
  67. /package/dist/{DockLayout-F44RWGEY.js.map → DockLayout-TATYU5SV.js.map} +0 -0
  68. /package/dist/{DrawerLayout-SQ323AVM.js.map → DrawerLayout-DXHNV33K.js.map} +0 -0
  69. /package/dist/{ModelSettings-6QLS63HM.js.map → ModelSettings-UWTBHQRG.js.map} +0 -0
  70. /package/dist/{OpenUiFenceBlock-4ROX3G4X.js.map → OpenUiFenceBlock-FHEYXZEQ.js.map} +0 -0
  71. /package/dist/{SandboxSettings-OLKDXIQS.js.map → SandboxSettings-BITQONS3.js.map} +0 -0
  72. /package/dist/{SchedulesPage-TMOTK6DR.js.map → SchedulesPage-JIUWNYUH.js.map} +0 -0
  73. /package/dist/{SettingsBuilder-GISAH2WU.js.map → SettingsBuilder-3OA4UCIM.js.map} +0 -0
  74. /package/dist/{ShellRouteSync-EN33DUQ7.js.map → ShellRouteSync-J74MV23Q.js.map} +0 -0
  75. /package/dist/{SkillSettings-JSX2BTII.js.map → SkillSettings-KQ6GQ7JW.js.map} +0 -0
  76. /package/dist/{TrueForgeUIWithRouter-6VCR7ES3.js.map → TrueForgeUIWithRouter-R3UXQZRY.js.map} +0 -0
  77. /package/dist/{WidgetLayout-RKBSN2FZ.js.map → WidgetLayout-YWZTYFZL.js.map} +0 -0
  78. /package/dist/{chunk-KR7WYHVF.js.map → chunk-3QWUHGNL.js.map} +0 -0
  79. /package/dist/{chunk-73FQVITT.js.map → chunk-4MCIDE2C.js.map} +0 -0
  80. /package/dist/{chunk-LUG7E6BL.js.map → chunk-7NYDADYN.js.map} +0 -0
  81. /package/dist/{chunk-J5BPHEDT.js.map → chunk-CFGLAGWH.js.map} +0 -0
  82. /package/dist/{chunk-XY6LZQES.js.map → chunk-ERIIJKJY.js.map} +0 -0
  83. /package/dist/{chunk-Q6TCT7ZJ.js.map → chunk-IIHJ32YH.js.map} +0 -0
  84. /package/dist/{chunk-XLFOXQKZ.js.map → chunk-IVDIBAVH.js.map} +0 -0
  85. /package/dist/{chunk-6WCIL3H2.js.map → chunk-TFFTZB26.js.map} +0 -0
  86. /package/dist/{chunk-GIPFF6FZ.js.map → chunk-ZZB3JIBQ.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0-rc.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 4e72afc: Announce boot loading with a light-themed orb for contrast outside ThemeProvider.
8
+ - ea86853: Move the agent metrics time range filter into the active Metrics tab row.
9
+ - 98ab384: Preserve the active agent draft when returning to Build Agent from another page.
10
+ - 4e72afc: Use an animated thinking orb for application boot and server initialization.
11
+
12
+ ## 0.3.0-rc.4
13
+
14
+ ### Patch Changes
15
+
16
+ - 629b6e9: Paginate the Agent Sessions list on scroll instead of a "Load more" button, showing a skeleton row while the next page loads.
17
+ - 629b6e9: Fix Agents library table scrolling when rows exceed the viewport
18
+ - 629b6e9: Show Created by (avatar + name) on Agents and Schedules tables when creator info is present.
19
+ - 629b6e9: Portal PopoverSelect menus so table page-size and other selects are not clipped by overflow parents.
20
+ - ef278dd: Stop highlighting New Chat while trying a named agent, and clear the Try Agent URL and history filter when starting a new chat.
21
+ - ceeb56f: Show turn and duration statistics alongside the featured agent metric cards.
22
+ - Updated dependencies [648273b]
23
+ - @truefoundry/trueforge-sdk@0.2.0-rc.4
24
+
3
25
  ## 0.3.0-rc.3
4
26
 
5
27
  ### Minor Changes
package/README.md CHANGED
@@ -517,7 +517,7 @@ function MyBubble({ children, error, actionBar, className }: AssistantMessageBub
517
517
  />;
518
518
  ```
519
519
 
520
- Overridable slots include composer pieces (`ComposerShell`, `ComposerLeftSection`, `ComposerRightSection`, `ComposerSendButton`), messages (`AssistantMessageBubble`, `UserMessageBubble`, `UserMessageEdit`), `Markdown`, `WelcomeScreen`, thread-list atoms, agent metrics (`AgentMetrics`, `AgentMetricsView`, `AgentMetricsTimeRangeFilter`, `AgentMetricCard`, `AgentMetricChart`), and tool/prompt cards (`ToolCallCard`, `ToolApprovalBar`, `ToolGroupCard`, `SubAgentCard`, `SandboxToolCallCard`, `AgentStepsCard`, `ReasoningCard`, `AskUserPrompt`, `McpAuthPrompt`, and more).
520
+ Overridable slots include composer pieces (`ComposerShell`, `ComposerLeftSection`, `ComposerRightSection`, `ComposerSendButton`), messages (`AssistantMessageBubble`, `UserMessageBubble`, `UserMessageEdit`), `Markdown`, `WelcomeScreen`, thread-list atoms, agent metrics (`AgentMetrics`, `AgentMetricsView`, `AgentMetricsTimeRangeFilter`, `AgentMetricCard`, `AgentMetricStatistics`, `AgentMetricChart`), and tool/prompt cards (`ToolCallCard`, `ToolApprovalBar`, `ToolGroupCard`, `SubAgentCard`, `SandboxToolCallCard`, `AgentStepsCard`, `ReasoningCard`, `AskUserPrompt`, `McpAuthPrompt`, and more).
521
521
 
522
522
  See [docs/customization.md](./docs/customization.md) for the full slot list.
523
523
 
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import {
3
3
  useSlot
4
- } from "./chunk-2O5EJ6QS.js";
5
- import "./chunk-KR7WYHVF.js";
4
+ } from "./chunk-MMU55KCW.js";
5
+ import "./chunk-3QWUHGNL.js";
6
6
  import {
7
7
  Icon
8
- } from "./chunk-Q6TCT7ZJ.js";
9
- import "./chunk-PT4EENB3.js";
8
+ } from "./chunk-IIHJ32YH.js";
9
+ import "./chunk-TAABBM7F.js";
10
10
  import "./chunk-M6MHLVSO.js";
11
- import "./chunk-J5BPHEDT.js";
11
+ import "./chunk-CFGLAGWH.js";
12
12
  import {
13
13
  cn
14
- } from "./chunk-LXJMINS6.js";
14
+ } from "./chunk-OWDH67NY.js";
15
15
 
16
16
  // src/atoms/agent-details/AgentCodeSnippets.tsx
17
17
  import { useEffect, useState } from "react";
@@ -86,4 +86,4 @@ function AgentCodeSnippets({ snippets }) {
86
86
  export {
87
87
  AgentCodeSnippets as default
88
88
  };
89
- //# sourceMappingURL=AgentCodeSnippets-N546FNNS.js.map
89
+ //# sourceMappingURL=AgentCodeSnippets-V5A56M7R.js.map
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import {
3
+ AgentMetricChart
4
+ } from "./chunk-IVDIBAVH.js";
5
+ import "./chunk-MMU55KCW.js";
6
+ import "./chunk-3QWUHGNL.js";
7
+ import "./chunk-IIHJ32YH.js";
8
+ import "./chunk-TAABBM7F.js";
9
+ import "./chunk-M6MHLVSO.js";
10
+ import "./chunk-CFGLAGWH.js";
11
+ import "./chunk-OWDH67NY.js";
12
+ export {
13
+ AgentMetricChart
14
+ };
15
+ //# sourceMappingURL=AgentMetricChart-GEADURES.js.map
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import {
3
3
  useSlot
4
- } from "./chunk-2O5EJ6QS.js";
5
- import "./chunk-KR7WYHVF.js";
4
+ } from "./chunk-MMU55KCW.js";
5
+ import "./chunk-3QWUHGNL.js";
6
6
  import {
7
7
  Icon
8
- } from "./chunk-Q6TCT7ZJ.js";
9
- import "./chunk-PT4EENB3.js";
8
+ } from "./chunk-IIHJ32YH.js";
9
+ import "./chunk-TAABBM7F.js";
10
10
  import "./chunk-M6MHLVSO.js";
11
- import "./chunk-J5BPHEDT.js";
11
+ import "./chunk-CFGLAGWH.js";
12
12
  import {
13
13
  cn
14
- } from "./chunk-LXJMINS6.js";
14
+ } from "./chunk-OWDH67NY.js";
15
15
 
16
16
  // src/atoms/agent-details/AgentOverview.tsx
17
17
  import { useState } from "react";
@@ -164,4 +164,4 @@ function AgentOverview({ detail }) {
164
164
  export {
165
165
  AgentOverview as default
166
166
  };
167
- //# sourceMappingURL=AgentOverview-VF74XC7I.js.map
167
+ //# sourceMappingURL=AgentOverview-NPC4P2EY.js.map
@@ -4,15 +4,15 @@ import {
4
4
  getSessionEventColor,
5
5
  useSlot,
6
6
  useThemeMode
7
- } from "./chunk-2O5EJ6QS.js";
8
- import "./chunk-KR7WYHVF.js";
9
- import "./chunk-Q6TCT7ZJ.js";
10
- import "./chunk-PT4EENB3.js";
7
+ } from "./chunk-MMU55KCW.js";
8
+ import "./chunk-3QWUHGNL.js";
9
+ import "./chunk-IIHJ32YH.js";
10
+ import "./chunk-TAABBM7F.js";
11
11
  import "./chunk-M6MHLVSO.js";
12
- import "./chunk-J5BPHEDT.js";
12
+ import "./chunk-CFGLAGWH.js";
13
13
  import {
14
14
  cn
15
- } from "./chunk-LXJMINS6.js";
15
+ } from "./chunk-OWDH67NY.js";
16
16
 
17
17
  // src/atoms/agent-details/AgentSessionEventTimeline.tsx
18
18
  import { useCallback, useMemo, useState } from "react";
@@ -85,4 +85,4 @@ function AgentSessionEventTimeline({ turns, segments, onSelectTurn }) {
85
85
  export {
86
86
  AgentSessionEventTimeline
87
87
  };
88
- //# sourceMappingURL=AgentSessionEventTimeline-RFR6LQMY.js.map
88
+ //# sourceMappingURL=AgentSessionEventTimeline-UUXOJXTC.js.map
@@ -25,13 +25,13 @@ import {
25
25
  mergeOverlappingSubAgentSegments,
26
26
  roundDurationMsToSecond,
27
27
  useThemeMode
28
- } from "./chunk-2O5EJ6QS.js";
29
- import "./chunk-KR7WYHVF.js";
30
- import "./chunk-Q6TCT7ZJ.js";
31
- import "./chunk-PT4EENB3.js";
28
+ } from "./chunk-MMU55KCW.js";
29
+ import "./chunk-3QWUHGNL.js";
30
+ import "./chunk-IIHJ32YH.js";
31
+ import "./chunk-TAABBM7F.js";
32
32
  import "./chunk-M6MHLVSO.js";
33
- import "./chunk-J5BPHEDT.js";
34
- import "./chunk-LXJMINS6.js";
33
+ import "./chunk-CFGLAGWH.js";
34
+ import "./chunk-OWDH67NY.js";
35
35
 
36
36
  // src/atoms/agent-details/AgentSessionEventTimelineChart.tsx
37
37
  import {
@@ -588,4 +588,4 @@ function AgentSessionEventTimelineChart({
588
588
  export {
589
589
  AgentSessionEventTimelineChart
590
590
  };
591
- //# sourceMappingURL=AgentSessionEventTimelineChart-27CQF6FX.js.map
591
+ //# sourceMappingURL=AgentSessionEventTimelineChart-FIAQCYJC.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  buildSessionResumeHref
4
- } from "./chunk-73FQVITT.js";
4
+ } from "./chunk-4MCIDE2C.js";
5
5
  import {
6
6
  useOptionalResolvedRoutes
7
7
  } from "./chunk-Y6S4OVVQ.js";
@@ -14,22 +14,22 @@ import {
14
14
  useResourcePermissions,
15
15
  useSessionShareSearch,
16
16
  useSlot
17
- } from "./chunk-2O5EJ6QS.js";
18
- import "./chunk-KR7WYHVF.js";
17
+ } from "./chunk-MMU55KCW.js";
18
+ import "./chunk-3QWUHGNL.js";
19
19
  import {
20
20
  Icon
21
- } from "./chunk-Q6TCT7ZJ.js";
21
+ } from "./chunk-IIHJ32YH.js";
22
22
  import {
23
23
  sessionTimeRangeFromCreatedAt,
24
24
  useAgentSessionsServer,
25
25
  useOptionalShellMode,
26
26
  useServer
27
- } from "./chunk-PT4EENB3.js";
27
+ } from "./chunk-TAABBM7F.js";
28
28
  import "./chunk-M6MHLVSO.js";
29
- import "./chunk-J5BPHEDT.js";
29
+ import "./chunk-CFGLAGWH.js";
30
30
  import {
31
31
  cn
32
- } from "./chunk-LXJMINS6.js";
32
+ } from "./chunk-OWDH67NY.js";
33
33
 
34
34
  // src/atoms/agent-details/AgentSessions.tsx
35
35
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -51,6 +51,7 @@ async function drainListPages({
51
51
 
52
52
  // src/atoms/agent-details/AgentSessions.tsx
53
53
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
54
+ var LOAD_MORE_ROOT_MARGIN = "96px";
54
55
  function sessionTitle(entry) {
55
56
  const title = entry.title?.trim();
56
57
  return title != null && title.length > 0 ? title : "Untitled session";
@@ -82,8 +83,12 @@ function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }) {
82
83
  const [nextPageToken, setNextPageToken] = useState();
83
84
  const [listLoading, setListLoading] = useState(true);
84
85
  const [listLoadingMore, setListLoadingMore] = useState(false);
86
+ const [listLoadMoreFailed, setListLoadMoreFailed] = useState(false);
85
87
  const [listFailed, setListFailed] = useState(false);
86
88
  const listRequestIdRef = useRef(0);
89
+ const loadMoreInflightRef = useRef(false);
90
+ const [listEl, setListEl] = useState(null);
91
+ const [sentinelEl, setSentinelEl] = useState(null);
87
92
  const [detailEvents, setDetailEvents] = useState();
88
93
  const [detailSession, setDetailSession] = useState();
89
94
  const [detailLoading, setDetailLoading] = useState(false);
@@ -101,8 +106,11 @@ function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }) {
101
106
  useEffect(() => {
102
107
  const requestId = ++listRequestIdRef.current;
103
108
  let cancelled = false;
109
+ loadMoreInflightRef.current = false;
110
+ setNextPageToken(void 0);
104
111
  setListLoading(true);
105
112
  setListLoadingMore(false);
113
+ setListLoadMoreFailed(false);
106
114
  setListFailed(false);
107
115
  void sessionsServer.listSessions(listRequest).then((page) => {
108
116
  if (cancelled || listRequestIdRef.current !== requestId) return;
@@ -121,19 +129,36 @@ function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }) {
121
129
  };
122
130
  }, [listRequest, sessionsServer]);
123
131
  const loadMore = useCallback(async () => {
124
- if (nextPageToken == null || listLoadingMore) return;
132
+ if (listLoading || nextPageToken == null || loadMoreInflightRef.current) return;
125
133
  const requestId = listRequestIdRef.current;
134
+ loadMoreInflightRef.current = true;
126
135
  setListLoadingMore(true);
136
+ setListLoadMoreFailed(false);
127
137
  try {
128
138
  const page = await sessionsServer.listSessions({ ...listRequest, pageToken: nextPageToken });
129
139
  if (listRequestIdRef.current !== requestId) return;
130
140
  setEntries((current) => [...current, ...page.data]);
131
141
  setNextPageToken(page.nextPageToken);
132
142
  } catch {
143
+ if (listRequestIdRef.current === requestId) setListLoadMoreFailed(true);
133
144
  } finally {
134
- if (listRequestIdRef.current === requestId) setListLoadingMore(false);
145
+ if (listRequestIdRef.current === requestId) {
146
+ loadMoreInflightRef.current = false;
147
+ setListLoadingMore(false);
148
+ }
135
149
  }
136
- }, [listLoadingMore, listRequest, nextPageToken, sessionsServer]);
150
+ }, [listLoading, listRequest, nextPageToken, sessionsServer]);
151
+ useEffect(() => {
152
+ if (listLoading || nextPageToken == null || listEl == null || sentinelEl == null) return;
153
+ const observer = new IntersectionObserver(
154
+ (observed) => {
155
+ if (observed.some((entry) => entry.isIntersecting)) void loadMore();
156
+ },
157
+ { root: listEl, rootMargin: LOAD_MORE_ROOT_MARGIN }
158
+ );
159
+ observer.observe(sentinelEl);
160
+ return () => observer.disconnect();
161
+ }, [entries.length, listEl, listLoading, loadMore, nextPageToken, sentinelEl]);
137
162
  useEffect(() => {
138
163
  if (selectedSessionId == null || selectedSessionId.length === 0) {
139
164
  setDetailEvents(void 0);
@@ -215,8 +240,8 @@ function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }) {
215
240
  className: "h-full min-h-0 w-full",
216
241
  resizeTargetMinimumSize: { coarse: 24, fine: 11 },
217
242
  children: [
218
- /* @__PURE__ */ jsx(Panel, { id: "agent-sessions-list", defaultSize: "35%", minSize: "20%", maxSize: "50%", children: /* @__PURE__ */ jsxs("aside", { className: "flex h-full min-h-0 w-full flex-col bg-sidebar-bg", children: [
219
- /* @__PURE__ */ jsx("div", { className: "scrollbar-none min-h-0 flex-1 overflow-y-auto", children: listLoading ? /* @__PURE__ */ jsx("div", { className: "space-y-2 p-3", role: "status", "aria-label": "Loading sessions", children: ["a", "b", "c"].map((key) => /* @__PURE__ */ jsx(Skeleton, { className: "h-16 rounded-md" }, key)) }) : listFailed ? /* @__PURE__ */ jsx("p", { className: "px-3 py-6 text-center text-xs text-text-secondary", children: "Sessions could not be loaded." }) : entries.map((entry) => /* @__PURE__ */ jsx(
243
+ /* @__PURE__ */ jsx(Panel, { id: "agent-sessions-list", defaultSize: "35%", minSize: "20%", maxSize: "50%", children: /* @__PURE__ */ jsx("aside", { className: "flex h-full min-h-0 w-full flex-col bg-sidebar-bg", children: /* @__PURE__ */ jsxs("div", { ref: setListEl, className: "scrollbar-none min-h-0 flex-1 overflow-y-auto", children: [
244
+ listLoading ? /* @__PURE__ */ jsx("div", { className: "space-y-2 p-3", role: "status", "aria-label": "Loading sessions", children: ["a", "b", "c"].map((key) => /* @__PURE__ */ jsx(Skeleton, { className: "h-16 rounded-md" }, key)) }) : listFailed ? /* @__PURE__ */ jsx("p", { className: "px-3 py-6 text-center text-xs text-text-secondary", children: "Sessions could not be loaded." }) : entries.map((entry) => /* @__PURE__ */ jsx(
220
245
  AgentSessionListRow,
221
246
  {
222
247
  title: sessionTitle(entry),
@@ -228,18 +253,17 @@ function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }) {
228
253
  onSelect: () => selectSession(entry)
229
254
  },
230
255
  entry.id
231
- )) }),
232
- nextPageToken != null && !listLoading ? /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-border p-3", children: /* @__PURE__ */ jsx(
256
+ )),
257
+ nextPageToken != null && !listLoading && !listFailed ? /* @__PURE__ */ jsx("div", { ref: setSentinelEl, className: "px-3 py-2", children: listLoadingMore ? /* @__PURE__ */ jsx(Skeleton, { className: "h-16 rounded-md", role: "status", "aria-label": "Loading more sessions" }) : listLoadMoreFailed ? /* @__PURE__ */ jsx(
233
258
  "button",
234
259
  {
235
260
  type: "button",
236
- disabled: listLoadingMore,
261
+ className: "h-8 w-full rounded-md border border-border text-xs font-medium text-text-primary hover:bg-ghost-button-hover",
237
262
  onClick: () => void loadMore(),
238
- className: "h-8 w-full rounded-md border border-border text-xs font-medium text-text-primary hover:bg-ghost-button-hover disabled:opacity-60",
239
- children: listLoadingMore ? "Loading\u2026" : "Load more"
263
+ children: "Retry loading sessions"
240
264
  }
241
- ) }) : null
242
- ] }) }),
265
+ ) : null }) : null
266
+ ] }) }) }),
243
267
  /* @__PURE__ */ jsxs(
244
268
  Separator,
245
269
  {
@@ -296,4 +320,4 @@ function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }) {
296
320
  export {
297
321
  AgentSessions
298
322
  };
299
- //# sourceMappingURL=AgentSessions-4IVX2SGD.js.map
323
+ //# sourceMappingURL=AgentSessions-WHODEG2M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/atoms/agent-details/AgentSessions.tsx","../src/utils/drainListPages.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useMemo, useRef, useState, type ComponentType } from 'react';\nimport { Group, Panel, Separator } from 'react-resizable-panels';\n\nimport { useResourcePermissions } from '../../hooks/useResourcePermissions.js';\nimport { useSessionShareSearch } from '../../hooks/useSessionShareSearch.js';\nimport { Icon } from '../../icons/Icon.js';\nimport { buildSessionResumeHref } from '../../routing/paths.js';\nimport { useOptionalResolvedRoutes } from '../../routing/ResolvedRoutesContext.js';\nimport { useAgentSessionsServer, useServer } from '../../server/ServerContext.js';\nimport { useOptionalShellMode } from '../../server/ShellModeContext.js';\nimport type { Session, SessionEventItem, SessionListEntry } from '../../server/types.js';\nimport { useSlot } from '../../theme/SlotsProvider.js';\nimport { drainListPages } from '../../utils/drainListPages.js';\nimport { sessionTimeRangeFromCreatedAt } from '../../utils/sessionShareUrl.js';\nimport { EmptyScreen } from '../EmptyScreen.js';\nimport { cn } from '../lib/cn.js';\nimport { sessionIsCreateAgent } from '../lib/sessionCreateAgent.js';\nimport { Skeleton } from '../primitives/Skeleton.js';\nimport type { AgentSessionsProps } from './types.js';\n\nconst LOAD_MORE_ROOT_MARGIN = '96px';\n\nfunction sessionTitle(entry: Pick<SessionListEntry, 'title'>): string {\n const title = entry.title?.trim();\n return title != null && title.length > 0 ? title : 'Untitled session';\n}\n\nfunction entryIsMutable(entry: SessionListEntry): boolean {\n if ('isMutable' in entry && typeof Reflect.get(entry, 'isMutable') === 'boolean') {\n return Reflect.get(entry, 'isMutable') === true;\n }\n return entry.agentName == null;\n}\n\nfunction entrySourceType(entry: SessionListEntry): 'schedule' | undefined {\n return 'sourceType' in entry && Reflect.get(entry, 'sourceType') === 'schedule' ? 'schedule' : undefined;\n}\n\nexport function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }: AgentSessionsProps) {\n const sessionsServer = useAgentSessionsServer();\n const chatServer = useServer();\n const shell = useOptionalShellMode();\n const routes = useOptionalResolvedRoutes();\n const { sessionId: selectedSessionId, updateShareSearch } = useSessionShareSearch();\n const { allows } = useResourcePermissions({\n resourceType: 'session',\n resourceIds: selectedSessionId == null ? [] : [selectedSessionId],\n });\n const canResume = allows(selectedSessionId, 'MANAGE');\n\n const AgentSessionListRow = useSlot('AgentSessionListRow');\n const AgentSessionDetailHeader = useSlot('AgentSessionDetailHeader');\n const AgentSessionTimelineContainer = useSlot('AgentSessionTimelineContainer');\n\n const [entries, setEntries] = useState<SessionListEntry[]>([]);\n const [nextPageToken, setNextPageToken] = useState<string | undefined>();\n const [listLoading, setListLoading] = useState(true);\n const [listLoadingMore, setListLoadingMore] = useState(false);\n const [listLoadMoreFailed, setListLoadMoreFailed] = useState(false);\n const [listFailed, setListFailed] = useState(false);\n const listRequestIdRef = useRef(0);\n const loadMoreInflightRef = useRef(false);\n const [listEl, setListEl] = useState<HTMLDivElement | null>(null);\n const [sentinelEl, setSentinelEl] = useState<HTMLDivElement | null>(null);\n const [detailEvents, setDetailEvents] = useState<SessionEventItem[]>();\n const [detailSession, setDetailSession] = useState<Session>();\n const [detailLoading, setDetailLoading] = useState(false);\n const [detailFailed, setDetailFailed] = useState(false);\n\n const listRequest = useMemo(\n () => ({\n order: 'desc' as const,\n limit: 20,\n ...(agentId == null || agentId.length === 0 ? {} : { agentId }),\n ...(startTimestamp == null ? {} : { startTimestamp }),\n ...(endTimestamp == null ? {} : { endTimestamp }),\n }),\n [agentId, endTimestamp, startTimestamp],\n );\n\n useEffect(() => {\n const requestId = ++listRequestIdRef.current;\n let cancelled = false;\n loadMoreInflightRef.current = false;\n setNextPageToken(undefined);\n setListLoading(true);\n setListLoadingMore(false);\n setListLoadMoreFailed(false);\n setListFailed(false);\n void sessionsServer\n .listSessions(listRequest)\n .then(page => {\n if (cancelled || listRequestIdRef.current !== requestId) return;\n setEntries(page.data);\n setNextPageToken(page.nextPageToken);\n })\n .catch(() => {\n if (cancelled || listRequestIdRef.current !== requestId) return;\n setEntries([]);\n setNextPageToken(undefined);\n setListFailed(true);\n })\n .finally(() => {\n if (!cancelled && listRequestIdRef.current === requestId) setListLoading(false);\n });\n\n return () => {\n cancelled = true;\n };\n }, [listRequest, sessionsServer]);\n\n const loadMore = useCallback(async () => {\n // A ref, not `listLoadingMore`: the observer can fire twice before a re-render.\n if (listLoading || nextPageToken == null || loadMoreInflightRef.current) return;\n const requestId = listRequestIdRef.current;\n loadMoreInflightRef.current = true;\n setListLoadingMore(true);\n setListLoadMoreFailed(false);\n try {\n const page = await sessionsServer.listSessions({ ...listRequest, pageToken: nextPageToken });\n if (listRequestIdRef.current !== requestId) return;\n setEntries(current => [...current, ...page.data]);\n setNextPageToken(page.nextPageToken);\n } catch {\n if (listRequestIdRef.current === requestId) setListLoadMoreFailed(true);\n } finally {\n if (listRequestIdRef.current === requestId) {\n loadMoreInflightRef.current = false;\n setListLoadingMore(false);\n }\n }\n }, [listLoading, listRequest, nextPageToken, sessionsServer]);\n\n // `entries.length` re-arms the observer: an already-intersecting sentinel emits no new entry.\n useEffect(() => {\n if (listLoading || nextPageToken == null || listEl == null || sentinelEl == null) return;\n\n const observer = new IntersectionObserver(\n observed => {\n if (observed.some(entry => entry.isIntersecting)) void loadMore();\n },\n { root: listEl, rootMargin: LOAD_MORE_ROOT_MARGIN },\n );\n observer.observe(sentinelEl);\n return () => observer.disconnect();\n }, [entries.length, listEl, listLoading, loadMore, nextPageToken, sentinelEl]);\n\n useEffect(() => {\n if (selectedSessionId == null || selectedSessionId.length === 0) {\n setDetailEvents(undefined);\n setDetailSession(undefined);\n setDetailFailed(false);\n setDetailLoading(false);\n return;\n }\n\n let cancelled = false;\n setDetailLoading(true);\n setDetailFailed(false);\n setDetailEvents(undefined);\n setDetailSession(undefined);\n\n void Promise.all([\n drainListPages({\n fetchPage: pageToken =>\n sessionsServer.listSessionEvents({\n sessionId: selectedSessionId,\n limit: 100,\n ...(pageToken == null ? {} : { pageToken }),\n }),\n }),\n chatServer.getSession({ sessionId: selectedSessionId }).catch(() => undefined),\n ])\n .then(([itemsNewestFirst, session]) => {\n if (cancelled) return;\n setDetailEvents([...itemsNewestFirst].reverse());\n setDetailSession(session);\n })\n .catch(() => {\n if (!cancelled) setDetailFailed(true);\n })\n .finally(() => {\n if (!cancelled) setDetailLoading(false);\n });\n\n return () => {\n cancelled = true;\n };\n }, [chatServer, selectedSessionId, sessionsServer]);\n\n const selectSession = (entry: SessionListEntry) => {\n const pinned = shareView === 'sessions' ? sessionTimeRangeFromCreatedAt(entry.createdAt) : null;\n updateShareSearch({\n sessionId: entry.id,\n ...(shareView === 'sessions'\n ? { view: 'sessions', ...(pinned == null ? {} : { timeRange: pinned }) }\n : { agentId: agentId ?? null, tab: 'sessions', view: null, timeRange: null }),\n });\n };\n\n const clearSelectedSession = () => {\n if (selectedSessionId == null) return;\n updateShareSearch({ sessionId: null });\n };\n\n const selectedEntry = entries.find(entry => entry.id === selectedSessionId);\n const selectedTitle =\n detailSession != null\n ? sessionTitle(detailSession)\n : selectedEntry != null\n ? sessionTitle(selectedEntry)\n : (selectedSessionId ?? 'Untitled session');\n\n const resumeIsCreateAgent =\n detailSession != null\n ? sessionIsCreateAgent(detailSession)\n : selectedEntry != null\n ? sessionIsCreateAgent(selectedEntry)\n : false;\n const resumeIsMutable =\n detailSession != null ? detailSession.isMutable : selectedEntry != null ? entryIsMutable(selectedEntry) : true;\n const resumeLabel = resumeIsCreateAgent ? 'Resume Agent building' : 'Resume Chat';\n const resumeHref =\n selectedSessionId != null && routes != null\n ? buildSessionResumeHref({ sessionId: selectedSessionId, routes })\n : null;\n\n const handleResume = () => {\n if (!canResume || selectedSessionId == null || shell == null) return;\n const agentName = detailSession?.agentName ?? selectedEntry?.agentName;\n shell.openHistorySession({\n sessionId: selectedSessionId,\n isMutable: resumeIsMutable,\n isCreateAgent: resumeIsCreateAgent,\n ...(agentName != null && agentName.length > 0 ? { agentName } : {}),\n });\n };\n\n const resumeProps =\n resumeHref != null ? { resumeHref, resumeLabel } : shell != null ? { onResume: handleResume, resumeLabel } : {};\n\n // Full empty only when nothing is selected — keep the detail pane for deep-linked sessionIds\n // (filters/time range can empty the list while share state still points at a session).\n if (\n !listLoading &&\n !listFailed &&\n entries.length === 0 &&\n (selectedSessionId == null || selectedSessionId.length === 0)\n ) {\n return (\n <EmptyScreen\n title=\"No Sessions Found\"\n description=\"There are no sessions available at the moment.\"\n className=\"bg-primary-bg\"\n />\n );\n }\n\n return (\n <Group\n id=\"agent-sessions-split\"\n orientation=\"horizontal\"\n className=\"h-full min-h-0 w-full\"\n resizeTargetMinimumSize={{ coarse: 24, fine: 11 }}\n >\n <Panel id=\"agent-sessions-list\" defaultSize=\"35%\" minSize=\"20%\" maxSize=\"50%\">\n <aside className=\"flex h-full min-h-0 w-full flex-col bg-sidebar-bg\">\n <div ref={setListEl} className=\"scrollbar-none min-h-0 flex-1 overflow-y-auto\">\n {listLoading ? (\n <div className=\"space-y-2 p-3\" role=\"status\" aria-label=\"Loading sessions\">\n {['a', 'b', 'c'].map(key => (\n <Skeleton key={key} className=\"h-16 rounded-md\" />\n ))}\n </div>\n ) : listFailed ? (\n <p className=\"px-3 py-6 text-center text-xs text-text-secondary\">Sessions could not be loaded.</p>\n ) : (\n entries.map(entry => (\n <AgentSessionListRow\n key={entry.id}\n title={sessionTitle(entry)}\n agentName={entry.agentName ?? undefined}\n sourceType={entrySourceType(entry)}\n lastActivityAt={entry.lastActivityAt}\n metrics={entry.metrics}\n active={entry.id === selectedSessionId}\n onSelect={() => selectSession(entry)}\n />\n ))\n )}\n\n {nextPageToken != null && !listLoading && !listFailed ? (\n <div ref={setSentinelEl} className=\"px-3 py-2\">\n {listLoadingMore ? (\n <Skeleton className=\"h-16 rounded-md\" role=\"status\" aria-label=\"Loading more sessions\" />\n ) : listLoadMoreFailed ? (\n <button\n type=\"button\"\n className=\"h-8 w-full rounded-md border border-border text-xs font-medium text-text-primary hover:bg-ghost-button-hover\"\n onClick={() => void loadMore()}\n >\n Retry loading sessions\n </button>\n ) : null}\n </div>\n ) : null}\n </div>\n </aside>\n </Panel>\n\n <Separator\n id=\"agent-sessions-resizer\"\n aria-label=\"Resize session list\"\n className=\"group/resizer relative z-10 w-0 cursor-col-resize focus-visible:outline-none\"\n >\n <div aria-hidden className=\"absolute inset-y-0 -left-1.25 w-2.75\" />\n <div aria-hidden className=\"absolute inset-y-0 left-0 w-px bg-border transition-colors\" />\n <div\n aria-hidden\n className={cn(\n 'absolute top-1/2 left-0 z-10 flex h-4 w-2 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-xs shadow-sm transition-colors',\n 'bg-secondary-button-bg text-text-secondary',\n 'group-hover/resizer:bg-primary-button-bg group-hover/resizer:text-primary-button-text',\n 'group-active/resizer:bg-primary-button-bg group-active/resizer:text-primary-button-text',\n 'group-focus-visible/resizer:bg-primary-button-bg group-focus-visible/resizer:text-primary-button-text',\n )}\n >\n <Icon name=\"grip-vertical\" size={10} />\n </div>\n </Separator>\n\n <Panel id=\"agent-session-detail\" defaultSize=\"65%\" minSize=\"30%\">\n <section className=\"flex h-full min-w-0 flex-col bg-primary-bg\">\n {selectedSessionId == null ? (\n <div className=\"flex flex-1 items-center justify-center px-6 text-sm text-text-secondary\">\n Select a session to view details\n </div>\n ) : detailFailed ? (\n <div className=\"flex flex-1 items-center justify-center px-6 text-sm text-text-secondary\">\n Session details could not be loaded.\n </div>\n ) : (\n <>\n <AgentSessionDetailHeader\n title={selectedTitle}\n sessionId={selectedSessionId}\n agentId={agentId}\n createdAt={detailSession?.createdAt ?? selectedEntry?.createdAt}\n view={shareView}\n onClose={clearSelectedSession}\n canResume={canResume}\n {...resumeProps}\n />\n {detailLoading || detailEvents === undefined ? (\n <div className=\"flex flex-1 flex-col p-4\" role=\"status\" aria-label=\"Loading session details\">\n <Skeleton className=\"min-h-64 flex-1 rounded-lg\" />\n </div>\n ) : (\n <AgentSessionTimelineContainer\n sessionId={selectedSessionId}\n events={detailEvents}\n listMetrics={selectedEntry?.metrics}\n />\n )}\n </>\n )}\n </section>\n </Panel>\n </Group>\n );\n}\n\ndeclare module '../../theme/SlotsProvider.js' {\n interface AtomSlots {\n AgentSessions: ComponentType<AgentSessionsProps>;\n }\n}\n","import type { ListResult } from '../server/types.js';\n\n/** Drain token-paginated list endpoints until `nextPageToken` is exhausted. */\nexport async function drainListPages<T>({\n fetchPage,\n}: {\n fetchPage: (pageToken?: string) => Promise<ListResult<T>>;\n}): Promise<T[]> {\n const items: T[] = [];\n let pageToken: string | undefined;\n do {\n const page = await fetchPage(pageToken);\n items.push(...page.data);\n pageToken = page.nextPageToken;\n } while (pageToken != null && pageToken.length > 0);\n return items;\n}\n"],"mappings":"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","names":[]}
@@ -7,20 +7,20 @@ import {
7
7
  auiInputClass,
8
8
  useMCPAuth,
9
9
  useToasterOptional
10
- } from "./chunk-2O5EJ6QS.js";
11
- import "./chunk-KR7WYHVF.js";
10
+ } from "./chunk-MMU55KCW.js";
11
+ import "./chunk-3QWUHGNL.js";
12
12
  import {
13
13
  Icon
14
- } from "./chunk-Q6TCT7ZJ.js";
14
+ } from "./chunk-IIHJ32YH.js";
15
15
  import {
16
16
  getErrorMessage,
17
17
  useCatalogServer
18
- } from "./chunk-PT4EENB3.js";
18
+ } from "./chunk-TAABBM7F.js";
19
19
  import "./chunk-M6MHLVSO.js";
20
- import "./chunk-J5BPHEDT.js";
20
+ import "./chunk-CFGLAGWH.js";
21
21
  import {
22
22
  cn
23
- } from "./chunk-LXJMINS6.js";
23
+ } from "./chunk-OWDH67NY.js";
24
24
 
25
25
  // src/containers/SettingsBuilder/ConnectorSettings.tsx
26
26
  import { useCallback, useEffect as useEffect3, useMemo, useState as useState3 } from "react";
@@ -958,4 +958,4 @@ var ConnectorSettings_default = ConnectorSettings;
958
958
  export {
959
959
  ConnectorSettings_default as default
960
960
  };
961
- //# sourceMappingURL=ConnectorSettings-R5VEP7BO.js.map
961
+ //# sourceMappingURL=ConnectorSettings-QTAI4TQX.js.map
@@ -1,21 +1,21 @@
1
1
  "use client";
2
2
  import {
3
3
  StackChatPanel
4
- } from "./chunk-GIPFF6FZ.js";
5
- import "./chunk-LUG7E6BL.js";
6
- import "./chunk-XY6LZQES.js";
4
+ } from "./chunk-ZZB3JIBQ.js";
5
+ import "./chunk-7NYDADYN.js";
6
+ import "./chunk-ERIIJKJY.js";
7
7
  import "./chunk-BSIPI3KV.js";
8
- import "./chunk-2O5EJ6QS.js";
9
- import "./chunk-KR7WYHVF.js";
8
+ import "./chunk-MMU55KCW.js";
9
+ import "./chunk-3QWUHGNL.js";
10
10
  import {
11
11
  CompactLayoutProvider
12
- } from "./chunk-Q6TCT7ZJ.js";
13
- import "./chunk-PT4EENB3.js";
12
+ } from "./chunk-IIHJ32YH.js";
13
+ import "./chunk-TAABBM7F.js";
14
14
  import "./chunk-M6MHLVSO.js";
15
- import "./chunk-J5BPHEDT.js";
15
+ import "./chunk-CFGLAGWH.js";
16
16
  import {
17
17
  cn
18
- } from "./chunk-LXJMINS6.js";
18
+ } from "./chunk-OWDH67NY.js";
19
19
 
20
20
  // src/layouts/DockLayout.tsx
21
21
  import { jsx } from "react/jsx-runtime";
@@ -35,4 +35,4 @@ function DockLayout({ className }) {
35
35
  export {
36
36
  DockLayout
37
37
  };
38
- //# sourceMappingURL=DockLayout-F44RWGEY.js.map
38
+ //# sourceMappingURL=DockLayout-TATYU5SV.js.map
@@ -3,40 +3,40 @@ import {
3
3
  AgentConfigDrawerContainer,
4
4
  NamedAgentHeaderLabel,
5
5
  ShellActions
6
- } from "./chunk-LUG7E6BL.js";
6
+ } from "./chunk-7NYDADYN.js";
7
7
  import {
8
8
  Thread
9
- } from "./chunk-XY6LZQES.js";
9
+ } from "./chunk-ERIIJKJY.js";
10
10
  import "./chunk-BSIPI3KV.js";
11
11
  import {
12
12
  useIsMobile,
13
13
  useSlot
14
- } from "./chunk-2O5EJ6QS.js";
15
- import "./chunk-KR7WYHVF.js";
14
+ } from "./chunk-MMU55KCW.js";
15
+ import "./chunk-3QWUHGNL.js";
16
16
  import {
17
17
  Icon,
18
18
  PageHeader,
19
19
  Spinner,
20
20
  auiButtonClass
21
- } from "./chunk-Q6TCT7ZJ.js";
21
+ } from "./chunk-IIHJ32YH.js";
22
22
  import {
23
23
  shellIsCreateAgent,
24
24
  useOptionalShellMode
25
- } from "./chunk-PT4EENB3.js";
25
+ } from "./chunk-TAABBM7F.js";
26
26
  import {
27
27
  useAui
28
28
  } from "./chunk-M6MHLVSO.js";
29
- import "./chunk-J5BPHEDT.js";
29
+ import "./chunk-CFGLAGWH.js";
30
30
  import {
31
31
  cn
32
- } from "./chunk-LXJMINS6.js";
32
+ } from "./chunk-OWDH67NY.js";
33
33
 
34
34
  // src/layouts/DrawerLayout.tsx
35
35
  import { lazy, Suspense, useRef } from "react";
36
36
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
37
- var TruefoundrySettingsBuilder = lazy(() => import("./SettingsBuilder-GISAH2WU.js"));
37
+ var TruefoundrySettingsBuilder = lazy(() => import("./SettingsBuilder-3OA4UCIM.js"));
38
38
  var SchedulesPage = lazy(
39
- () => import("./SchedulesPage-TMOTK6DR.js").then((m) => ({ default: m.SchedulesPage }))
39
+ () => import("./SchedulesPage-JIUWNYUH.js").then((m) => ({ default: m.SchedulesPage }))
40
40
  );
41
41
  function DrawerLayout({ className }) {
42
42
  const aui = useAui();
@@ -183,4 +183,4 @@ function DrawerLayout({ className }) {
183
183
  export {
184
184
  DrawerLayout
185
185
  };
186
- //# sourceMappingURL=DrawerLayout-SQ323AVM.js.map
186
+ //# sourceMappingURL=DrawerLayout-DXHNV33K.js.map
@@ -9,20 +9,20 @@ import {
9
9
  SearchInput_default,
10
10
  auiInputClass,
11
11
  useToasterOptional
12
- } from "./chunk-2O5EJ6QS.js";
13
- import "./chunk-KR7WYHVF.js";
12
+ } from "./chunk-MMU55KCW.js";
13
+ import "./chunk-3QWUHGNL.js";
14
14
  import {
15
15
  Icon
16
- } from "./chunk-Q6TCT7ZJ.js";
16
+ } from "./chunk-IIHJ32YH.js";
17
17
  import {
18
18
  getErrorMessage,
19
19
  useCatalogServer
20
- } from "./chunk-PT4EENB3.js";
20
+ } from "./chunk-TAABBM7F.js";
21
21
  import "./chunk-M6MHLVSO.js";
22
- import "./chunk-J5BPHEDT.js";
22
+ import "./chunk-CFGLAGWH.js";
23
23
  import {
24
24
  cn
25
- } from "./chunk-LXJMINS6.js";
25
+ } from "./chunk-OWDH67NY.js";
26
26
 
27
27
  // src/containers/SettingsBuilder/ModelSettings.tsx
28
28
  import { useCallback, useEffect as useEffect2, useMemo, useState as useState3 } from "react";
@@ -1077,4 +1077,4 @@ var ModelSettings_default = ModelSettings;
1077
1077
  export {
1078
1078
  ModelSettings_default as default
1079
1079
  };
1080
- //# sourceMappingURL=ModelSettings-6QLS63HM.js.map
1080
+ //# sourceMappingURL=ModelSettings-UWTBHQRG.js.map
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ OpenUiFenceBlock
4
+ } from "./chunk-CFGLAGWH.js";
5
+ import "./chunk-OWDH67NY.js";
6
+ export {
7
+ OpenUiFenceBlock
8
+ };
9
+ //# sourceMappingURL=OpenUiFenceBlock-FHEYXZEQ.js.map
@@ -8,21 +8,21 @@ import {
8
8
  Tooltip,
9
9
  auiInputClass,
10
10
  useToasterOptional
11
- } from "./chunk-2O5EJ6QS.js";
12
- import "./chunk-KR7WYHVF.js";
11
+ } from "./chunk-MMU55KCW.js";
12
+ import "./chunk-3QWUHGNL.js";
13
13
  import {
14
14
  Icon,
15
15
  Spinner
16
- } from "./chunk-Q6TCT7ZJ.js";
16
+ } from "./chunk-IIHJ32YH.js";
17
17
  import {
18
18
  getErrorMessage,
19
19
  useCatalogServer
20
- } from "./chunk-PT4EENB3.js";
20
+ } from "./chunk-TAABBM7F.js";
21
21
  import "./chunk-M6MHLVSO.js";
22
- import "./chunk-J5BPHEDT.js";
22
+ import "./chunk-CFGLAGWH.js";
23
23
  import {
24
24
  cn
25
- } from "./chunk-LXJMINS6.js";
25
+ } from "./chunk-OWDH67NY.js";
26
26
 
27
27
  // src/containers/SettingsBuilder/SandboxSettings.tsx
28
28
  import { useCallback, useEffect as useEffect2, useMemo, useState as useState2 } from "react";
@@ -596,4 +596,4 @@ var SandboxSettings_default = SandboxSettings;
596
596
  export {
597
597
  SandboxSettings_default as default
598
598
  };
599
- //# sourceMappingURL=SandboxSettings-OLKDXIQS.js.map
599
+ //# sourceMappingURL=SandboxSettings-BITQONS3.js.map
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import {
3
+ SchedulesPage
4
+ } from "./chunk-DCVKW445.js";
5
+ import "./chunk-MMU55KCW.js";
6
+ import "./chunk-3QWUHGNL.js";
7
+ import "./chunk-IIHJ32YH.js";
8
+ import "./chunk-TAABBM7F.js";
9
+ import "./chunk-M6MHLVSO.js";
10
+ import "./chunk-CFGLAGWH.js";
11
+ import "./chunk-OWDH67NY.js";
12
+ export {
13
+ SchedulesPage
14
+ };
15
+ //# sourceMappingURL=SchedulesPage-JIUWNYUH.js.map
@@ -6,23 +6,23 @@ import {
6
6
  auiButtonClass,
7
7
  useCompactLayout,
8
8
  useDraftCatalog
9
- } from "./chunk-Q6TCT7ZJ.js";
9
+ } from "./chunk-IIHJ32YH.js";
10
10
  import {
11
11
  useOptionalCatalogServer,
12
12
  useOptionalRefreshServerCapabilities,
13
13
  useShellMode
14
- } from "./chunk-PT4EENB3.js";
14
+ } from "./chunk-TAABBM7F.js";
15
15
  import {
16
16
  cn
17
- } from "./chunk-LXJMINS6.js";
17
+ } from "./chunk-OWDH67NY.js";
18
18
 
19
19
  // src/containers/SettingsBuilder/index.tsx
20
20
  import { lazy, Suspense, useCallback, useEffect, useMemo } from "react";
21
21
  import { jsx, jsxs } from "react/jsx-runtime";
22
- var ModelSettings = lazy(() => import("./ModelSettings-6QLS63HM.js"));
23
- var ConnectorSettings = lazy(() => import("./ConnectorSettings-R5VEP7BO.js"));
24
- var SkillSettings = lazy(() => import("./SkillSettings-JSX2BTII.js"));
25
- var SandboxSettings = lazy(() => import("./SandboxSettings-OLKDXIQS.js"));
22
+ var ModelSettings = lazy(() => import("./ModelSettings-UWTBHQRG.js"));
23
+ var ConnectorSettings = lazy(() => import("./ConnectorSettings-QTAI4TQX.js"));
24
+ var SkillSettings = lazy(() => import("./SkillSettings-KQ6GQ7JW.js"));
25
+ var SandboxSettings = lazy(() => import("./SandboxSettings-BITQONS3.js"));
26
26
  function SettingsSectionFallback() {
27
27
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-center py-8", role: "status", "aria-live": "polite", "aria-busy": "true", children: [
28
28
  /* @__PURE__ */ jsx(Spinner, { size: 20, className: "text-text-secondary" }),
@@ -144,4 +144,4 @@ var SettingsBuilder_default = TruefoundrySettingsBuilder;
144
144
  export {
145
145
  SettingsBuilder_default as default
146
146
  };
147
- //# sourceMappingURL=SettingsBuilder-GISAH2WU.js.map
147
+ //# sourceMappingURL=SettingsBuilder-3OA4UCIM.js.map