@elevasis/ui 2.56.0 → 2.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ import { CardHeader } from './chunk-S3XR4II4.js';
7
7
  import { useInitialization, InitializationContext, InitializationProvider } from './chunk-LO7GWG24.js';
8
8
  import { OrganizationContext, useOrganization } from './chunk-DD3CCMCZ.js';
9
9
  import { SessionIdParamSchema, CreateSessionSchema, GetNotificationsQuerySchema, MarkAsReadParamsSchema, ExecutionIdParamsSchema, createLiveTempMessageIdentity, WebSocketSessionTurnSchema, mergeSessionMessages } from './chunk-M7WWRZ5Z.js';
10
- import { StyledMarkdown, ChatInterface, ChatHeader, ChatSidebar } from './chunk-E6NSKXYN.js';
10
+ import { StyledMarkdown, ChatInterface, ChatHeader } from './chunk-T73S4G4P.js';
11
11
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
12
12
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger, useGraphHighlighting, calculateGraphHeight, GRAPH_CONSTANTS } from './chunk-HENXLGVD.js';
13
13
  import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent, getResourceStatusColor, useMergedExecution, useTimelineData, useAgentIterationData } from './chunk-I3CFGE3N.js';
@@ -22,7 +22,7 @@ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
22
22
  import { createContext, forwardRef, lazy, memo, useEffect, useRef, createElement, useContext, useLayoutEffect, useMemo, useState, cloneElement, useCallback, useId, Fragment as Fragment$1, Component, useDeferredValue, useEffectEvent, Suspense } from 'react';
23
23
  import { useQueryClient, useMutation, useQuery, QueryClientProvider, useQueries, QueryClient } from '@tanstack/react-query';
24
24
  import { z } from 'zod';
25
- import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconChevronRight, IconLayoutGrid, IconColumns, IconFileInvoice, IconMail, IconSend, IconClock, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconShieldLock, IconActivity, IconTopologyStar3, IconApps, IconBriefcase, IconBuilding, IconBolt, IconSearch, IconChartBar, IconUsers, IconInfoCircle, IconMessagePlus, IconDatabase, IconGitBranch, IconDashboard, IconBuildingStore, IconPlug, IconTargetArrow, IconBook, IconArchive, IconSettings, IconTool, IconCalendar, IconNotes, IconChecklist, IconFlag, IconList, IconAddressBook, IconTarget, IconCode, IconLock, IconShieldOff, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconMinus, IconTrendingUp, IconTrendingDown, IconAlertCircle, IconBan, IconInbox, IconHeartHandshake, IconUserOff, IconMailForward, IconBell, IconCalendarEvent, IconCalendarCancel, IconMessageReply, IconCircleCheck, IconCreditCard, IconArrowRight, IconPlus, IconDownload, IconChartLine, IconThumbDown, IconThumbUp, IconCircleX, IconFilterOff, IconArrowUpRight, IconExternalLink, IconChartPie, IconHeartbeat, IconCpu, IconCash, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconMoonStars, IconSun, IconFocus2, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconPencil, IconKey, IconExclamationMark, IconCopy, IconPower, IconTag, IconWebhook, IconReload, IconTerminal2, IconMessage, IconArrowLeft, IconCalendarRepeat, IconCalendarTime, IconRobot, IconDotsVertical, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconHistory, IconCurrencyDollar, IconTrophy, IconMessages, IconRestore, IconSparkles, IconListDetails, IconLayoutDashboard, IconBuildingFactory2, IconFileDescription, IconRoute, IconHandStop, IconAdjustmentsHorizontal, IconCircleDashed, IconFolders, IconBraces, IconLayoutSidebarRightExpand, IconNote, IconTimeline, IconPalette, IconStar, IconUserCog, IconUsersGroup, IconBrandDropbox, IconBrandGoogleDrive, IconClockExclamation, IconArrowDown, IconUserX, IconUserCheck, IconFileOff, IconActivityHeartbeat, IconClockPause, IconArrowsMaximize, IconShare2, IconFolder, IconCheckbox, IconPhone, IconStarFilled, IconWand, IconScript, IconPlugConnected, IconCircleCheckFilled } from '@tabler/icons-react';
25
+ import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconChevronRight, IconLayoutGrid, IconColumns, IconFileInvoice, IconMail, IconSend, IconClock, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconShieldLock, IconActivity, IconTopologyStar3, IconApps, IconBriefcase, IconBuilding, IconBolt, IconSearch, IconChartBar, IconUsers, IconInfoCircle, IconMessagePlus, IconDatabase, IconGitBranch, IconDashboard, IconBuildingStore, IconPlug, IconTargetArrow, IconBook, IconArchive, IconSettings, IconTool, IconCalendar, IconNotes, IconChecklist, IconFlag, IconList, IconAddressBook, IconTarget, IconCode, IconLock, IconShieldOff, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconMinus, IconTrendingUp, IconTrendingDown, IconAlertCircle, IconBan, IconInbox, IconHeartHandshake, IconUserOff, IconMailForward, IconBell, IconCalendarEvent, IconCalendarCancel, IconMessageReply, IconCircleCheck, IconCreditCard, IconArrowRight, IconPlus, IconDownload, IconChartLine, IconThumbDown, IconThumbUp, IconCircleX, IconFilterOff, IconArrowUpRight, IconExternalLink, IconChartPie, IconHeartbeat, IconCpu, IconCash, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconMoonStars, IconSun, IconFocus2, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconPencil, IconKey, IconExclamationMark, IconCopy, IconPower, IconTag, IconWebhook, IconReload, IconTerminal2, IconMessage, IconArrowLeft, IconCalendarRepeat, IconCalendarTime, IconRobot, IconDotsVertical, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconHistory, IconCurrencyDollar, IconTrophy, IconMessages, IconRestore, IconSparkles, IconListDetails, IconLayoutDashboard, IconBuildingFactory2, IconFileDescription, IconRoute, IconHandStop, IconAdjustmentsHorizontal, IconCircleDashed, IconFolders, IconBraces, IconTimeline, IconNote, IconPalette, IconStar, IconUserCog, IconUsersGroup, IconBrandDropbox, IconBrandGoogleDrive, IconClockExclamation, IconArrowDown, IconUserX, IconUserCheck, IconFileOff, IconActivityHeartbeat, IconClockPause, IconArrowsMaximize, IconShare2, IconFolder, IconCheckbox, IconPhone, IconStarFilled, IconWand, IconScript, IconPlugConnected, IconCircleCheckFilled } from '@tabler/icons-react';
26
26
  import * as runtime from 'react/jsx-runtime';
27
27
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
28
28
  import { createUseExternalEvents, Collapse, Paper, Stack, Text, Group, Badge, Box, HoverCard, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, useComputedColorScheme, ThemeIcon, Center, Card, Title, Checkbox, Modal, TextInput, Textarea, Loader, Alert, Button, Space, Table, Select, Code, Grid, Timeline, NumberFormatter, SimpleGrid, SegmentedControl, ActionIcon, Switch, Pagination, mergeThemeOverrides, MantineProvider, Divider, Popover, Indicator, Container, useMantineColorScheme, CopyButton, PasswordInput, Anchor, useMantineTheme, RangeSlider, Progress, Tabs, Breadcrumbs as Breadcrumbs$1, NumberInput, ColorSwatch, RingProgress, LoadingOverlay, Accordion, MultiSelect, useTree, Tree, Radio, Pill, Drawer, Chip, JsonInput, TagsInput, List } from '@mantine/core';
@@ -44402,13 +44402,34 @@ function SessionsPage({
44402
44402
  ] }) }) })
44403
44403
  ] });
44404
44404
  }
44405
- function SessionHeader({
44406
- session: _session,
44407
- connectionState,
44408
- onToggleSidebar,
44409
- isSidebarOpen,
44410
- tokenUsage
44411
- }) {
44405
+
44406
+ // src/features/operations/sidebar/pathUtils.ts
44407
+ var RESOURCE_DETAIL_PATTERN = /^\/operations\/resources\/(workflow|agent)\/([^/]+)$/;
44408
+ var SESSION_DETAIL_PATTERN = /^\/operations\/sessions\/([^/]+)$/;
44409
+ function getActiveResource(pathname) {
44410
+ const match = pathname.match(RESOURCE_DETAIL_PATTERN);
44411
+ if (!match) return null;
44412
+ return {
44413
+ type: match[1],
44414
+ id: match[2]
44415
+ };
44416
+ }
44417
+ function isResourceDetailPage(pathname) {
44418
+ return RESOURCE_DETAIL_PATTERN.test(pathname);
44419
+ }
44420
+ function getSessionId(pathname) {
44421
+ const match = pathname.match(SESSION_DETAIL_PATTERN);
44422
+ return match?.[1];
44423
+ }
44424
+ function getSessionAgentParam(search) {
44425
+ if (!search) return void 0;
44426
+ return new URLSearchParams(search).get("agent") ?? void 0;
44427
+ }
44428
+ function getSessionView(search) {
44429
+ if (!search) return "chat";
44430
+ return new URLSearchParams(search).get("view") === "info" ? "info" : "chat";
44431
+ }
44432
+ function SessionHeader({ session: _session, connectionState, tokenUsage }) {
44412
44433
  const mockTokenUsage = tokenUsage || { used: 45e3, total: 128e3 };
44413
44434
  return /* @__PURE__ */ jsx(
44414
44435
  ChatHeader,
@@ -44418,11 +44439,7 @@ function SessionHeader({
44418
44439
  label: connectionState.isConnected ? "Connected" : "Disconnected",
44419
44440
  color: connectionState.isConnected ? "green" : "gray"
44420
44441
  },
44421
- contextUsage: mockTokenUsage,
44422
- sidebarIcon: /* @__PURE__ */ jsx(IconLayoutSidebarRightExpand, { size: 20 }),
44423
- onToggleSidebar,
44424
- isSidebarOpen,
44425
- sidebarTooltip: isSidebarOpen ? "Close details" : "Show details"
44442
+ contextUsage: mockTokenUsage
44426
44443
  }
44427
44444
  );
44428
44445
  }
@@ -44445,275 +44462,7 @@ function SessionChatInterface({
44445
44462
  placeholder: "Message the agent..."
44446
44463
  }) });
44447
44464
  }
44448
- function SessionDetailsSidebar({
44449
- session,
44450
- isOpen,
44451
- onClose,
44452
- organizationName,
44453
- onDeleted
44454
- }) {
44455
- const deleteSession = useDeleteSession();
44456
- const [isDeleting, setIsDeleting] = useState(false);
44457
- const [showConfirmation, setShowConfirmation] = useState(false);
44458
- const [copiedResource, setCopiedResource] = useState(false);
44459
- const [copiedSessionId, setCopiedSessionId] = useState(false);
44460
- const { data: executionsData } = useSessionExecutions(session.sessionId);
44461
- const [instructions, setInstructions] = useState(session.metadata?.instructions || "");
44462
- const [isSavingInstructions, setIsSavingInstructions] = useState(false);
44463
- const { data: resourcesData } = useResources();
44464
- const agent = resourcesData?.agents.find((a) => a.resourceId === session.resourceId);
44465
- const { data: agentDefinition } = useResourceDefinition(session.resourceId);
44466
- const agentInfo = {
44467
- name: agent?.name || session.resourceId,
44468
- description: agent?.description || "No description available",
44469
- resourceId: session.resourceId
44470
- };
44471
- const metrics = {
44472
- totalDuration: 0,
44473
- avgTurnTime: 0,
44474
- successRate: 0,
44475
- completedTurns: 0,
44476
- failedTurns: 0
44477
- };
44478
- if (executionsData?.executions) {
44479
- const executions = executionsData.executions;
44480
- metrics.totalDuration = executions.reduce((sum, ex) => sum + (ex.duration || 0), 0);
44481
- metrics.avgTurnTime = executions.length > 0 ? metrics.totalDuration / executions.length : 0;
44482
- metrics.completedTurns = executions.filter((ex) => ex.status === "completed" || ex.status === "warning").length;
44483
- metrics.failedTurns = executions.filter((ex) => ex.status === "failed").length;
44484
- metrics.successRate = executions.length > 0 ? metrics.completedTurns / executions.length * 100 : 0;
44485
- }
44486
- const handleConfirmDelete = async () => {
44487
- if (isDeleting) return;
44488
- setIsDeleting(true);
44489
- try {
44490
- await deleteSession.mutateAsync(session.sessionId);
44491
- setShowConfirmation(false);
44492
- onClose();
44493
- onDeleted?.();
44494
- } catch (error) {
44495
- console.error("Failed to delete session:", error);
44496
- } finally {
44497
- setIsDeleting(false);
44498
- }
44499
- };
44500
- const handleSaveInstructions = async () => {
44501
- setIsSavingInstructions(true);
44502
- try {
44503
- console.log("Saving instructions:", instructions);
44504
- await new Promise((resolve) => setTimeout(resolve, 500));
44505
- } finally {
44506
- setIsSavingInstructions(false);
44507
- }
44508
- };
44509
- const handleCopyResource = async () => {
44510
- const resourcePath = `${organizationName}/${session.resourceId}`;
44511
- await navigator.clipboard.writeText(resourcePath);
44512
- setCopiedResource(true);
44513
- setTimeout(() => setCopiedResource(false), 2e3);
44514
- };
44515
- const handleCopySessionId = async () => {
44516
- await navigator.clipboard.writeText(session.sessionId);
44517
- setCopiedSessionId(true);
44518
- setTimeout(() => setCopiedSessionId(false), 2e3);
44519
- };
44520
- return /* @__PURE__ */ jsxs(Fragment, { children: [
44521
- /* @__PURE__ */ jsxs(ChatSidebar, { isOpen, title: "Session Details", children: [
44522
- /* @__PURE__ */ jsx("div", { style: { flex: 1, overflow: "auto" }, children: /* @__PURE__ */ jsxs(Stack, { p: "sm", children: [
44523
- /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44524
- /* @__PURE__ */ jsxs("div", { children: [
44525
- /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44526
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Resource (CLI)" }),
44527
- /* @__PURE__ */ jsx(Tooltip, { label: copiedResource ? "Copied!" : "Copy resource path", position: "right", children: /* @__PURE__ */ jsx(
44528
- ActionIcon,
44529
- {
44530
- variant: "subtle",
44531
- color: copiedResource ? "green" : "gray",
44532
- onClick: handleCopyResource,
44533
- size: "xs",
44534
- children: copiedResource ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44535
- }
44536
- ) })
44537
- ] }),
44538
- /* @__PURE__ */ jsxs(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: [
44539
- organizationName,
44540
- "/",
44541
- session.resourceId
44542
- ] })
44543
- ] }),
44544
- /* @__PURE__ */ jsxs("div", { children: [
44545
- /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44546
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session ID" }),
44547
- /* @__PURE__ */ jsx(Tooltip, { label: copiedSessionId ? "Copied!" : "Copy session ID", position: "right", children: /* @__PURE__ */ jsx(
44548
- ActionIcon,
44549
- {
44550
- variant: "subtle",
44551
- color: copiedSessionId ? "green" : "gray",
44552
- onClick: handleCopySessionId,
44553
- size: "xs",
44554
- children: copiedSessionId ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44555
- }
44556
- ) })
44557
- ] }),
44558
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: session.sessionId })
44559
- ] })
44560
- ] }),
44561
- /* @__PURE__ */ jsx(Divider, {}),
44562
- /* @__PURE__ */ jsxs("div", { children: [
44563
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Agent" }),
44564
- /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44565
- /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, children: agentInfo.name }),
44566
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", lineClamp: 3, children: agentInfo.description }),
44567
- agentDefinition && "modelConfig" in agentDefinition && /* @__PURE__ */ jsxs(Fragment, { children: [
44568
- /* @__PURE__ */ jsx(Divider, { my: "xs" }),
44569
- /* @__PURE__ */ jsxs("div", { children: [
44570
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", fw: 600, mb: 4, children: "Model Configuration" }),
44571
- /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
44572
- agentDefinition.modelConfig.model && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44573
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Model" }),
44574
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: agentDefinition.modelConfig.model })
44575
- ] }),
44576
- agentDefinition.modelConfig.temperature !== void 0 && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44577
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Temperature" }),
44578
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: agentDefinition.modelConfig.temperature })
44579
- ] }),
44580
- agentDefinition.modelConfig.maxOutputTokens && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44581
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Max Tokens" }),
44582
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: agentDefinition.modelConfig.maxOutputTokens })
44583
- ] })
44584
- ] })
44585
- ] })
44586
- ] }),
44587
- agentDefinition && "tools" in agentDefinition && agentDefinition.tools.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
44588
- /* @__PURE__ */ jsx(Divider, { my: "sm" }),
44589
- /* @__PURE__ */ jsxs("div", { children: [
44590
- /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", fw: 600, mb: 4, children: [
44591
- "Tools (",
44592
- agentDefinition.tools.length,
44593
- ")"
44594
- ] }),
44595
- /* @__PURE__ */ jsx(Stack, { gap: 4, children: agentDefinition.tools.map(
44596
- (tool, index) => {
44597
- const toolName = typeof tool === "string" ? tool : tool.name;
44598
- const toolKey = typeof tool === "string" ? tool : `${tool.name}-${index}`;
44599
- return /* @__PURE__ */ jsxs(Text, { size: "sm", ff: "monospace", c: "dimmed", children: [
44600
- "\u2022 ",
44601
- toolName
44602
- ] }, toolKey);
44603
- }
44604
- ) })
44605
- ] })
44606
- ] })
44607
- ] })
44608
- ] }),
44609
- /* @__PURE__ */ jsx(Divider, {}),
44610
- /* @__PURE__ */ jsxs("div", { children: [
44611
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", mb: 8, children: [
44612
- /* @__PURE__ */ jsxs(Group, { gap: 4, children: [
44613
- /* @__PURE__ */ jsx(IconNote, { size: 14, color: "var(--color-text-subtle)" }),
44614
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session Instructions" })
44615
- ] }),
44616
- isSavingInstructions && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", style: { fontStyle: "italic" }, children: "Saving..." })
44617
- ] }),
44618
- /* @__PURE__ */ jsx(
44619
- Textarea,
44620
- {
44621
- placeholder: "Add custom instructions to append to the system prompt...",
44622
- value: instructions,
44623
- onChange: (e) => setInstructions(e.target.value),
44624
- onBlur: handleSaveInstructions,
44625
- autosize: true,
44626
- minRows: 4,
44627
- maxRows: 8,
44628
- size: "sm",
44629
- styles: {
44630
- input: {
44631
- fontSize: "var(--mantine-font-size-sm)"
44632
- }
44633
- }
44634
- }
44635
- )
44636
- ] }),
44637
- /* @__PURE__ */ jsxs("div", { children: [
44638
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Timestamps" }),
44639
- /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44640
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44641
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Created" }),
44642
- /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.createdAt).toLocaleString() })
44643
- ] }),
44644
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44645
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Last Updated" }),
44646
- /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.updatedAt).toLocaleString() })
44647
- ] }),
44648
- session.endedAt && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44649
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Ended" }),
44650
- /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.endedAt).toLocaleString() })
44651
- ] })
44652
- ] })
44653
- ] }),
44654
- (() => {
44655
- const modelConfig = session.metadata?.modelConfig;
44656
- if (!modelConfig) return null;
44657
- return /* @__PURE__ */ jsxs("div", { children: [
44658
- /* @__PURE__ */ jsx(Divider, {}),
44659
- /* @__PURE__ */ jsxs("div", { children: [
44660
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 4, children: "Model Configuration" }),
44661
- /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
44662
- modelConfig.model && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44663
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Model" }),
44664
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: modelConfig.model })
44665
- ] }),
44666
- modelConfig.temperature !== void 0 && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44667
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Temperature" }),
44668
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: modelConfig.temperature })
44669
- ] }),
44670
- modelConfig.maxOutputTokens && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44671
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Max Tokens" }),
44672
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: modelConfig.maxOutputTokens })
44673
- ] })
44674
- ] })
44675
- ] })
44676
- ] });
44677
- })()
44678
- ] }) }),
44679
- /* @__PURE__ */ jsx("div", { style: { borderTop: "1px solid var(--color-border)", padding: "var(--mantine-spacing-md)" }, children: /* @__PURE__ */ jsx(
44680
- Button,
44681
- {
44682
- fullWidth: true,
44683
- color: "red",
44684
- variant: "light",
44685
- leftSection: /* @__PURE__ */ jsx(IconTrash, { size: 16 }),
44686
- onClick: () => setShowConfirmation(true),
44687
- loading: isDeleting,
44688
- disabled: isDeleting,
44689
- children: "Delete Session"
44690
- }
44691
- ) })
44692
- ] }),
44693
- /* @__PURE__ */ jsx(
44694
- ConfirmationModal,
44695
- {
44696
- opened: showConfirmation,
44697
- onClose: () => setShowConfirmation(false),
44698
- icon: /* @__PURE__ */ jsx(IconAlertTriangle, {}),
44699
- title: "Delete Session",
44700
- text: "Are you sure you want to delete this session? All messages and execution history will be permanently removed. This action cannot be undone.",
44701
- buttonText: "Delete Session",
44702
- buttonColor: "red",
44703
- confirmationHandler: handleConfirmDelete,
44704
- loading: isDeleting
44705
- }
44706
- )
44707
- ] });
44708
- }
44709
- function SessionChatArea({
44710
- sessionId,
44711
- session,
44712
- organizationName,
44713
- onDeleted,
44714
- renderConversationView
44715
- }) {
44716
- const [isSidebarOpen, setIsSidebarOpen] = useState(false);
44465
+ function SessionChatArea({ sessionId, session, renderConversationView }) {
44717
44466
  const [connectionState, setConnectionState] = useState({
44718
44467
  isConnected: false,
44719
44468
  isProcessing: false,
@@ -44727,57 +44476,23 @@ function SessionChatArea({
44727
44476
  display: "flex",
44728
44477
  flexDirection: "column",
44729
44478
  gap: "16px",
44730
- height: `calc(100vh - ${topbarHeight}px)`,
44731
- flexShrink: 0,
44732
- overflowX: "hidden"
44479
+ flex: 1,
44480
+ minHeight: 0,
44481
+ height: "100%",
44482
+ overflow: "hidden",
44483
+ borderRadius: "var(--mantine-radius-md)",
44484
+ padding: 8
44733
44485
  },
44734
44486
  children: [
44735
- /* @__PURE__ */ jsxs(
44736
- "div",
44737
- {
44738
- style: {
44739
- height: "100%",
44740
- display: "flex",
44741
- flexDirection: "column",
44742
- gap: "16px",
44743
- transition: "margin-right var(--duration-normal) var(--easing)",
44744
- marginRight: isSidebarOpen ? "320px" : "0",
44745
- overflow: "hidden",
44746
- borderRadius: "var(--mantine-radius-md)",
44747
- position: "relative",
44748
- padding: 8
44749
- },
44750
- children: [
44751
- /* @__PURE__ */ jsx(
44752
- SessionHeader,
44753
- {
44754
- session,
44755
- connectionState,
44756
- onToggleSidebar: () => setIsSidebarOpen(!isSidebarOpen),
44757
- isSidebarOpen
44758
- }
44759
- ),
44760
- /* @__PURE__ */ jsx("div", { style: { flex: 1, minHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ jsx(
44761
- SessionChatInterface,
44762
- {
44763
- sessionId,
44764
- onConnectionStateChange: setConnectionState,
44765
- renderConversationView
44766
- }
44767
- ) })
44768
- ]
44769
- }
44770
- ),
44771
- /* @__PURE__ */ jsx(
44772
- SessionDetailsSidebar,
44487
+ /* @__PURE__ */ jsx(SessionHeader, { session, connectionState }),
44488
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, minHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ jsx(
44489
+ SessionChatInterface,
44773
44490
  {
44774
- session,
44775
- isOpen: isSidebarOpen,
44776
- onClose: () => setIsSidebarOpen(false),
44777
- organizationName,
44778
- onDeleted
44491
+ sessionId,
44492
+ onConnectionStateChange: setConnectionState,
44493
+ renderConversationView
44779
44494
  }
44780
- )
44495
+ ) })
44781
44496
  ]
44782
44497
  }
44783
44498
  );
@@ -44866,6 +44581,181 @@ function ExecutionItem({ execution, session: _session, buildExecutionUrl }) {
44866
44581
  }
44867
44582
  );
44868
44583
  }
44584
+ function SessionDetailsPanel({ session, organizationName, onDeleted }) {
44585
+ const deleteSession = useDeleteSession();
44586
+ const [isDeleting, setIsDeleting] = useState(false);
44587
+ const [showConfirmation, setShowConfirmation] = useState(false);
44588
+ const [copiedResource, setCopiedResource] = useState(false);
44589
+ const [copiedSessionId, setCopiedSessionId] = useState(false);
44590
+ const [instructions, setInstructions] = useState(session.metadata?.instructions || "");
44591
+ const [isSavingInstructions, setIsSavingInstructions] = useState(false);
44592
+ const handleConfirmDelete = async () => {
44593
+ if (isDeleting) return;
44594
+ setIsDeleting(true);
44595
+ try {
44596
+ await deleteSession.mutateAsync(session.sessionId);
44597
+ setShowConfirmation(false);
44598
+ onDeleted?.();
44599
+ } catch (error) {
44600
+ console.error("Failed to delete session:", error);
44601
+ } finally {
44602
+ setIsDeleting(false);
44603
+ }
44604
+ };
44605
+ const handleSaveInstructions = async () => {
44606
+ setIsSavingInstructions(true);
44607
+ try {
44608
+ console.log("Saving instructions:", instructions);
44609
+ await new Promise((resolve) => setTimeout(resolve, 500));
44610
+ } finally {
44611
+ setIsSavingInstructions(false);
44612
+ }
44613
+ };
44614
+ const handleCopyResource = async () => {
44615
+ await navigator.clipboard.writeText(`${organizationName}/${session.resourceId}`);
44616
+ setCopiedResource(true);
44617
+ setTimeout(() => setCopiedResource(false), 2e3);
44618
+ };
44619
+ const handleCopySessionId = async () => {
44620
+ await navigator.clipboard.writeText(session.sessionId);
44621
+ setCopiedSessionId(true);
44622
+ setTimeout(() => setCopiedSessionId(false), 2e3);
44623
+ };
44624
+ const sessionModelConfig = session.metadata?.modelConfig;
44625
+ return /* @__PURE__ */ jsxs(Paper, { withBorder: true, p: "sm", children: [
44626
+ /* @__PURE__ */ jsxs(Stack, { children: [
44627
+ /* @__PURE__ */ jsx(Text, { fw: 600, size: "sm", style: { fontFamily: "var(--mantine-font-family-headings)" }, children: "Session Details" }),
44628
+ /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44629
+ /* @__PURE__ */ jsxs("div", { children: [
44630
+ /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44631
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Resource (CLI)" }),
44632
+ /* @__PURE__ */ jsx(Tooltip, { label: copiedResource ? "Copied!" : "Copy resource path", position: "left", children: /* @__PURE__ */ jsx(
44633
+ ActionIcon,
44634
+ {
44635
+ variant: "subtle",
44636
+ color: copiedResource ? "green" : "gray",
44637
+ onClick: handleCopyResource,
44638
+ size: "xs",
44639
+ children: copiedResource ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44640
+ }
44641
+ ) })
44642
+ ] }),
44643
+ /* @__PURE__ */ jsxs(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: [
44644
+ organizationName,
44645
+ "/",
44646
+ session.resourceId
44647
+ ] })
44648
+ ] }),
44649
+ /* @__PURE__ */ jsxs("div", { children: [
44650
+ /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44651
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session ID" }),
44652
+ /* @__PURE__ */ jsx(Tooltip, { label: copiedSessionId ? "Copied!" : "Copy session ID", position: "left", children: /* @__PURE__ */ jsx(
44653
+ ActionIcon,
44654
+ {
44655
+ variant: "subtle",
44656
+ color: copiedSessionId ? "green" : "gray",
44657
+ onClick: handleCopySessionId,
44658
+ size: "xs",
44659
+ children: copiedSessionId ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44660
+ }
44661
+ ) })
44662
+ ] }),
44663
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: session.sessionId })
44664
+ ] })
44665
+ ] }),
44666
+ /* @__PURE__ */ jsx(Divider, {}),
44667
+ /* @__PURE__ */ jsxs("div", { children: [
44668
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", mb: 8, children: [
44669
+ /* @__PURE__ */ jsxs(Group, { gap: 4, children: [
44670
+ /* @__PURE__ */ jsx(IconNote, { size: 14, color: "var(--color-text-subtle)" }),
44671
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session Instructions" })
44672
+ ] }),
44673
+ isSavingInstructions && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", style: { fontStyle: "italic" }, children: "Saving..." })
44674
+ ] }),
44675
+ /* @__PURE__ */ jsx(
44676
+ Textarea,
44677
+ {
44678
+ placeholder: "Add custom instructions to append to the system prompt...",
44679
+ value: instructions,
44680
+ onChange: (e) => setInstructions(e.target.value),
44681
+ onBlur: handleSaveInstructions,
44682
+ autosize: true,
44683
+ minRows: 4,
44684
+ maxRows: 8,
44685
+ size: "sm",
44686
+ styles: { input: { fontSize: "var(--mantine-font-size-sm)" } }
44687
+ }
44688
+ )
44689
+ ] }),
44690
+ /* @__PURE__ */ jsx(Divider, {}),
44691
+ /* @__PURE__ */ jsxs("div", { children: [
44692
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Timestamps" }),
44693
+ /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44694
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44695
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Created" }),
44696
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.createdAt).toLocaleString() })
44697
+ ] }),
44698
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44699
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Last Updated" }),
44700
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.updatedAt).toLocaleString() })
44701
+ ] }),
44702
+ session.endedAt && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44703
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Ended" }),
44704
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.endedAt).toLocaleString() })
44705
+ ] })
44706
+ ] })
44707
+ ] }),
44708
+ sessionModelConfig && /* @__PURE__ */ jsxs(Fragment, { children: [
44709
+ /* @__PURE__ */ jsx(Divider, {}),
44710
+ /* @__PURE__ */ jsxs("div", { children: [
44711
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Session Model Override" }),
44712
+ /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
44713
+ sessionModelConfig.model && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44714
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Model" }),
44715
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: sessionModelConfig.model })
44716
+ ] }),
44717
+ sessionModelConfig.temperature !== void 0 && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44718
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Temperature" }),
44719
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: sessionModelConfig.temperature })
44720
+ ] }),
44721
+ sessionModelConfig.maxOutputTokens && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44722
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Max Tokens" }),
44723
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: sessionModelConfig.maxOutputTokens })
44724
+ ] })
44725
+ ] })
44726
+ ] })
44727
+ ] }),
44728
+ /* @__PURE__ */ jsx(Divider, {}),
44729
+ /* @__PURE__ */ jsx(
44730
+ Button,
44731
+ {
44732
+ fullWidth: true,
44733
+ color: "red",
44734
+ variant: "light",
44735
+ leftSection: /* @__PURE__ */ jsx(IconTrash, { size: 16 }),
44736
+ onClick: () => setShowConfirmation(true),
44737
+ loading: isDeleting,
44738
+ disabled: isDeleting,
44739
+ children: "Delete Session"
44740
+ }
44741
+ )
44742
+ ] }),
44743
+ /* @__PURE__ */ jsx(
44744
+ ConfirmationModal,
44745
+ {
44746
+ opened: showConfirmation,
44747
+ onClose: () => setShowConfirmation(false),
44748
+ icon: /* @__PURE__ */ jsx(IconAlertTriangle, {}),
44749
+ title: "Delete Session",
44750
+ text: "Are you sure you want to delete this session? All messages and execution history will be permanently removed. This action cannot be undone.",
44751
+ buttonText: "Delete Session",
44752
+ buttonColor: "red",
44753
+ confirmationHandler: handleConfirmDelete,
44754
+ loading: isDeleting
44755
+ }
44756
+ )
44757
+ ] });
44758
+ }
44869
44759
  var DRAFT_SENTINEL2 = "new";
44870
44760
  function AgentChatOuterSubshellContainer({ children }) {
44871
44761
  return /* @__PURE__ */ jsx(
@@ -44898,7 +44788,7 @@ function SessionChatPage({
44898
44788
  isReady,
44899
44789
  renderConversationView,
44900
44790
  buildExecutionUrl,
44901
- buildSessionListUrl: _buildSessionListUrl,
44791
+ buildSessionListUrl,
44902
44792
  organizationName,
44903
44793
  buildSessionDetailUrl
44904
44794
  }) {
@@ -44972,6 +44862,7 @@ function SessionChatPage({
44972
44862
  sessionId: effectiveSessionId,
44973
44863
  renderConversationView: resolvedRenderer,
44974
44864
  buildExecutionUrl,
44865
+ buildSessionListUrl,
44975
44866
  organizationName,
44976
44867
  pendingFirstMessage: pendingFirstMessage ?? void 0,
44977
44868
  onPendingSent
@@ -44982,6 +44873,7 @@ function SessionChatPageLive({
44982
44873
  sessionId,
44983
44874
  renderConversationView,
44984
44875
  buildExecutionUrl,
44876
+ buildSessionListUrl,
44985
44877
  organizationName,
44986
44878
  pendingFirstMessage,
44987
44879
  onPendingSent
@@ -45003,6 +44895,7 @@ function SessionChatPageLive({
45003
44895
  session,
45004
44896
  renderConversationView,
45005
44897
  buildExecutionUrl,
44898
+ buildSessionListUrl,
45006
44899
  organizationName,
45007
44900
  pendingFirstMessage,
45008
44901
  onPendingSent
@@ -45014,11 +44907,14 @@ function SessionChatPageContent({
45014
44907
  session,
45015
44908
  renderConversationView,
45016
44909
  buildExecutionUrl,
44910
+ buildSessionListUrl,
45017
44911
  organizationName,
45018
44912
  pendingFirstMessage,
45019
44913
  onPendingSent
45020
44914
  }) {
45021
44915
  const { data: resourceDefinition } = useResourceDefinition(session.resourceId);
44916
+ const { currentSearch } = useRouterContext();
44917
+ const activeView = getSessionView(currentSearch);
45022
44918
  const renderConversationViewWithPending = useCallback(
45023
44919
  (args) => renderConversationView({
45024
44920
  ...args,
@@ -45027,23 +44923,59 @@ function SessionChatPageContent({
45027
44923
  }),
45028
44924
  [renderConversationView, pendingFirstMessage, onPendingSent]
45029
44925
  );
45030
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(AgentChatOuterSubshellContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
44926
+ return /* @__PURE__ */ jsx(AgentChatOuterSubshellContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs("div", { style: { height: `calc(100vh - ${topbarHeight}px)`, display: "flex", flexDirection: "column" }, children: [
45031
44927
  /* @__PURE__ */ jsx(
45032
- SessionChatArea,
44928
+ "div",
45033
44929
  {
45034
- sessionId,
45035
- session,
45036
- organizationName,
45037
- renderConversationView: renderConversationViewWithPending
44930
+ style: {
44931
+ flex: 1,
44932
+ minHeight: 0,
44933
+ display: activeView === "chat" ? "flex" : "none",
44934
+ flexDirection: "column"
44935
+ },
44936
+ children: /* @__PURE__ */ jsx(
44937
+ SessionChatArea,
44938
+ {
44939
+ sessionId,
44940
+ session,
44941
+ renderConversationView: renderConversationViewWithPending
44942
+ }
44943
+ )
45038
44944
  }
45039
44945
  ),
45040
- /* @__PURE__ */ jsx("div", { style: { padding: "8px", display: "flex", flexDirection: "column", gap: "8px" }, children: /* @__PURE__ */ jsxs(Stack, { style: { flex: 1, height: "100%" }, children: [
45041
- resourceDefinition && /* @__PURE__ */ jsx(ResourceDefinitionSection, { resourceDefinition }),
45042
- /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { children: [
45043
- /* @__PURE__ */ jsx(SessionMemory, { memory: session.memorySnapshot }),
45044
- /* @__PURE__ */ jsx(SessionExecutionLogs, { sessionId, session, buildExecutionUrl })
45045
- ] }) })
45046
- ] }) })
44946
+ /* @__PURE__ */ jsx(
44947
+ "div",
44948
+ {
44949
+ style: {
44950
+ flex: 1,
44951
+ minHeight: 0,
44952
+ overflow: "auto",
44953
+ display: activeView === "info" ? "block" : "none"
44954
+ },
44955
+ children: /* @__PURE__ */ jsx("div", { style: { padding: "8px", display: "flex", flexDirection: "column", gap: "8px" }, children: /* @__PURE__ */ jsxs(Stack, { style: { flex: 1 }, children: [
44956
+ /* @__PURE__ */ jsx(
44957
+ SessionDetailsPanel,
44958
+ {
44959
+ session,
44960
+ organizationName,
44961
+ onDeleted: () => window.location.assign(buildSessionListUrl())
44962
+ }
44963
+ ),
44964
+ resourceDefinition && /* @__PURE__ */ jsx(ResourceDefinitionSection, { resourceDefinition }),
44965
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { children: [
44966
+ /* @__PURE__ */ jsx(SessionMemory, { memory: session.memorySnapshot }),
44967
+ /* @__PURE__ */ jsx(
44968
+ SessionExecutionLogs,
44969
+ {
44970
+ sessionId,
44971
+ session,
44972
+ buildExecutionUrl
44973
+ }
44974
+ )
44975
+ ] }) })
44976
+ ] }) })
44977
+ }
44978
+ )
45047
44979
  ] }) }) });
45048
44980
  }
45049
44981
  function AgentSessionGroup({
@@ -45106,7 +45038,9 @@ function SessionsSidebar({
45106
45038
  onAgentClick,
45107
45039
  buildSessionDetailUrl,
45108
45040
  sessionId,
45109
- agentParam
45041
+ agentParam,
45042
+ activeView,
45043
+ onViewChange
45110
45044
  }) {
45111
45045
  const theme = useMantineTheme();
45112
45046
  const { organizationReady } = useInitialization();
@@ -45124,6 +45058,32 @@ function SessionsSidebar({
45124
45058
  const hasSessionsData = agentSessions.length > 0;
45125
45059
  const isInitialLoading = !isReady || !organizationReady || isResourcesLoading && !hasResourcesData || isSessionView && (isCurrentSessionLoading || isSessionsLoading) && !hasSessionsData;
45126
45060
  return /* @__PURE__ */ jsxs(Box, { style: { flex: 1, minHeight: 0, padding: theme.spacing.sm, display: "flex", flexDirection: "column" }, children: [
45061
+ isSessionView && activeView && onViewChange && /* @__PURE__ */ jsx(
45062
+ SegmentedControl,
45063
+ {
45064
+ fullWidth: true,
45065
+ size: "xs",
45066
+ value: activeView,
45067
+ onChange: (value) => onViewChange(value),
45068
+ mb: "md",
45069
+ data: [
45070
+ {
45071
+ value: "chat",
45072
+ label: /* @__PURE__ */ jsxs(Center, { style: { gap: 6 }, children: [
45073
+ /* @__PURE__ */ jsx(IconMessageCircle, { size: 14 }),
45074
+ /* @__PURE__ */ jsx("span", { children: "Chat" })
45075
+ ] })
45076
+ },
45077
+ {
45078
+ value: "info",
45079
+ label: /* @__PURE__ */ jsxs(Center, { style: { gap: 6 }, children: [
45080
+ /* @__PURE__ */ jsx(IconInfoCircle, { size: 14 }),
45081
+ /* @__PURE__ */ jsx("span", { children: "Info" })
45082
+ ] })
45083
+ }
45084
+ ]
45085
+ }
45086
+ ),
45127
45087
  /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, c: "dimmed", tt: "uppercase", mb: "md", children: isSessionView ? "Agent Sessions" : "Agents" }),
45128
45088
  /* @__PURE__ */ jsx(ScrollArea, { style: { flex: 1, minHeight: 0 }, scrollbarSize: 8, children: isInitialLoading ? /* @__PURE__ */ jsx(SubshellSidebarLoader, {}) : isSessionView ? agentSessions.length > 0 ? /* @__PURE__ */ jsx(Stack, { gap: "xs", children: agentSessions.map((session) => /* @__PURE__ */ jsx(
45129
45089
  SessionListItem,
@@ -45161,9 +45121,9 @@ function AgentListItem({ agent, isSelected, onAgentClick }) {
45161
45121
  },
45162
45122
  onClick: () => onAgentClick(agent.resourceId),
45163
45123
  children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
45164
- /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
45165
- /* @__PURE__ */ jsx(IconBrain, { size: 16, color: theme.colors[theme.primaryColor][6] }),
45166
- /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: titleColor, children: agent.name })
45124
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", align: "flex-start", children: [
45125
+ /* @__PURE__ */ jsx(IconBrain, { size: 16, color: theme.colors[theme.primaryColor][6], style: { flexShrink: 0, marginTop: 2 } }),
45126
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: titleColor, style: { flex: 1, minWidth: 0 }, children: agent.name })
45167
45127
  ] }),
45168
45128
  agent.description && /* @__PURE__ */ jsx(Text, { size: "xs", c: descriptionColor, lineClamp: 2, children: agent.description })
45169
45129
  ] })
@@ -45175,29 +45135,6 @@ function AgentListItem({ agent, isSelected, onAgentClick }) {
45175
45135
  var OperationsSidebarTop = () => {
45176
45136
  return null;
45177
45137
  };
45178
-
45179
- // src/features/operations/sidebar/pathUtils.ts
45180
- var RESOURCE_DETAIL_PATTERN = /^\/operations\/resources\/(workflow|agent)\/([^/]+)$/;
45181
- var SESSION_DETAIL_PATTERN = /^\/operations\/sessions\/([^/]+)$/;
45182
- function getActiveResource(pathname) {
45183
- const match = pathname.match(RESOURCE_DETAIL_PATTERN);
45184
- if (!match) return null;
45185
- return {
45186
- type: match[1],
45187
- id: match[2]
45188
- };
45189
- }
45190
- function isResourceDetailPage(pathname) {
45191
- return RESOURCE_DETAIL_PATTERN.test(pathname);
45192
- }
45193
- function getSessionId(pathname) {
45194
- const match = pathname.match(SESSION_DETAIL_PATTERN);
45195
- return match?.[1];
45196
- }
45197
- function getSessionAgentParam(search) {
45198
- if (!search) return void 0;
45199
- return new URLSearchParams(search).get("agent") ?? void 0;
45200
- }
45201
45138
  var ExecutionLogsSidebar = () => {
45202
45139
  const { currentPath } = useRouterContext();
45203
45140
  const { operationsApiUrl, operationsSSEManager } = useElevasisSystems();
@@ -45626,6 +45563,8 @@ var OperationsSidebarMiddle = () => {
45626
45563
  isReady: true,
45627
45564
  sessionId: getSessionId(currentPath),
45628
45565
  agentParam: getSessionAgentParam(currentSearch),
45566
+ activeView: getSessionView(currentSearch),
45567
+ onViewChange: (view) => navigate(view === "info" ? `${currentPath}?view=info` : currentPath),
45629
45568
  buildSessionDetailUrl: (sessionId) => `/operations/sessions/${sessionId}`,
45630
45569
  onAgentClick: (agentId) => navigate(`/operations/sessions?agent=${encodeURIComponent(agentId)}`)
45631
45570
  }
@@ -51591,4 +51530,4 @@ function useAccess(key) {
51591
51530
  };
51592
51531
  }
51593
51532
 
51594
- export { APIErrorAlert, AbsoluteScheduleForm, AccessGuard, AccessKeys, AccountSettings, ActionModal, ActivityCard, ActivityFeed, ActivityFeedWidget, ActivityFilters, ActivityLog, ActivityTable, ActivityTimeline, ActivityTrendChart, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionPanel, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationDetailPanel, AgentIterationEdge, AgentIterationNode, AgentResourceEntrySchema, AgentSessionGroup, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeyService, ApiKeySettings, AppErrorBoundary, AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, AppearanceContext, AppearanceProvider, AppearanceSettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CRM_ITEMS, CenteredErrorState, ChartFrame, Checklist, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CollapsibleSidebarGroup, CombinedTrendChart, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewPage, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, ConversationThread, CostAnalytics, CostBreakdownCard, CostByModelTable, CostMetricsCard, CostTrendChart, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateDeliveryEntityModal, CreateRoleModal, CreateScheduleModal, CreateWebhookEndpointModal, CredentialList, CredentialService, CredentialSettings, CrmActionsProvider, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, CyberParticles, DEAL_STAGES, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DEFAULT_KANBAN_CONFIG, DEFAULT_SEMANTIC_ICON_REGISTRY, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, Dashboard, DashboardOperationsOverview, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentService, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EMPTY_LIST_ACTIONS, EditApiKeyModal, EditCredentialModal, EditWebhookEndpointModal, ElevasisCoreProvider, ElevasisLoader, ElevasisSystemsProvider, ElevasisUIProvider, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorDetailsModal, ErrorReportCard, ExecuteWorkflowModal, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealth, ExecutionHealthCard, ExecutionLogsFilters, ExecutionLogsPage, ExecutionLogsTable, ExecutionPanel, ExecutionStats, ExecutionStatusBadge, FILTERABLE_DOMAIN_KEYS, FeatureUnavailableState, FilterBar, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, HeroStatsRow, IdentityDomainSchema, IntegrationResourceEntrySchema, JsonViewer, KNOWLEDGE_DOMAINS_WITH_PANELS, KNOWLEDGE_ICON_TOKEN_BY_KIND, KanbanBoard, KnowledgeSearchBar, KnowledgeTree, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, LinksGroup, ListActionsProvider, ListBuilderIndexPage, ListBuilderPage, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MemberAccessModal, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyRolesPage, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationCenter, NotificationItem, NotificationList, NotificationPanel, NotificationProvider, OAuthConnectModal, OAuthIntegrationsCard, OM_NESTED_TREE_GROUPS, OM_TREE_GROUPS, ORPHAN_STAGE_ORDER, OperationsOverview, OperationsService, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrgMembersList, OrganizationGraphPage, OrganizationMembershipService, OrganizationMembershipsList, OrganizationProvider, OrganizationSettings, OrganizationSwitcher, OrganizationSwitcherConnected, PIPELINE_FUNNEL_ORDER, PageContainer, PageNotFound, PageTitleCaption, PermissionMatrix, PipelineFunnelWidget, PolicySchema, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, ProtectedRoute, QuickCreateActions, RecentExecutionsByResource, RecurringScheduleForm, RelativeScheduleForm, RequestActionIcon, RequestModal, ResourceCard, ResourceDefinitionSection, ResourceDetailPage, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, ResourceOverview, ResourcesPage, ResourcesSidebar, RichTextEditor, RoleBadge, RoleSchema, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, ScriptResourceEntrySchema, SemanticIcon, SessionChatArea, SessionChatInterface, SessionChatPage, SessionConversationView, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionMemory, SessionsPage, SessionsSidebar, Sidebar, SidebarContext, SidebarProvider, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StepConfigForm, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellNavList, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarLoader, SurfaceDefinitionSchema, SystemOpsView, SystemShell, TabCountBadge, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, Topbar, TopbarActions, TopbarContainer, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UnresolvedErrorsTeaser, UpcomingMilestonesPage, Vignette, VisualizerContainer, WebhookEndpointList, WebhookEndpointService, WebhookEndpointSettings, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionPanel, WorkflowExecutionTimeline, WorkflowResourceEntrySchema, ZodFormRenderer, acquisitionListKeys, aggregateSystemMetrics, buildErrorReport, buildKnowledgeOmTreeData, calculateProgress, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, createOrganizationsSlice, createTestSystemsProvider, createUseOrgInitialization, createUseOrganizations, crmManifest, crmPrioritySettingsKeys, dealKeys, dealNoteKeys, dealTaskKeys, deliveryManifest, deriveBusinessProgress, executionsKeys, extendSemanticIconRegistry, filterByDomainFilters, findKnowledgeTreeNodeByValue, findListActionByAction, findOmTreeGroup, formatDate3 as formatDate, formatDealStageLabel, formatResourceAttribution, formatStatusLabel, getConceptDefinition, getEnrichmentColor, getEnrichmentStatus, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getKnowledgeDomainFolderCommand, getKnowledgeGraphNodeCommand, getKnowledgeIconToken, getKnowledgeNodeReadCommand, getKnowledgeOntologyProjection, getKnowledgeTreeFolderCommand, getLeadGenApiInterfaceReadiness, getLeadGenExportWorkflowId, getListActionWorkflowId, getLogLevelConfig, getOntologyDomainLabel, getPrimaryOntologyItemsForDomain, getResourceFilterFacetIds, getSemanticIconComponent, getSeriesColor, getSharedOrganizationGraph, getStateKeyColor, getStatusColor4 as getStatusColor, getStepActionLabel, iconMap, isLeadGenExportAction, isSessionCapable, knowledgeManifest, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, leadGenManifest, mdxComponents, milestoneKeys, milestoneStatusColors, monitoringManifest, normaliseConceptKey, noteKeys, noteTypeColors, observabilityKeys, operationsKeys, operationsManifest, projectActivityKeys, projectKeys, projectNavigationGroups, projectNavigationSurfaces, projectStatusColors, requestTopbarActionManifest, requestsKeys, resolveBuildPlanSteps, resolveBuildState, resolveSemanticIconComponent, scheduleKeys, sessionsKeys, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, sortData, sortStageKeys, subsidebarWidth, taskKeys, taskStatusColors, taskTypeColors, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useAppearance, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBreadcrumbs, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateProject, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useCrmActions, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useCyberColors, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteLists, useDeleteMilestone, useDeleteOrgRole, useDeleteProject, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteTask2, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useElevasisSystems, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphBackgroundStyles, useGraphTheme, useInFlightExecutions, useLeadGenConfig, useList, useListActions, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNewKnowledgeMapLayout, useNotificationAdapter, useNotificationCount, useNotifications, useOptionalElevasisSystems, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentCrmActivity, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResetCrmPrioritySettings, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResolvedOrganizationModel, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionCheck, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSidebar, useSidebarCollapse, useSortedData, useStableAccessToken, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateCrmPrioritySettings, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateProject, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
51533
+ export { APIErrorAlert, AbsoluteScheduleForm, AccessGuard, AccessKeys, AccountSettings, ActionModal, ActivityCard, ActivityFeed, ActivityFeedWidget, ActivityFilters, ActivityLog, ActivityTable, ActivityTimeline, ActivityTrendChart, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionPanel, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationDetailPanel, AgentIterationEdge, AgentIterationNode, AgentResourceEntrySchema, AgentSessionGroup, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeyService, ApiKeySettings, AppErrorBoundary, AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, AppearanceContext, AppearanceProvider, AppearanceSettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CRM_ITEMS, CenteredErrorState, ChartFrame, Checklist, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CollapsibleSidebarGroup, CombinedTrendChart, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewPage, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, ConversationThread, CostAnalytics, CostBreakdownCard, CostByModelTable, CostMetricsCard, CostTrendChart, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateDeliveryEntityModal, CreateRoleModal, CreateScheduleModal, CreateWebhookEndpointModal, CredentialList, CredentialService, CredentialSettings, CrmActionsProvider, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, CyberParticles, DEAL_STAGES, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DEFAULT_KANBAN_CONFIG, DEFAULT_SEMANTIC_ICON_REGISTRY, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, Dashboard, DashboardOperationsOverview, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentService, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EMPTY_LIST_ACTIONS, EditApiKeyModal, EditCredentialModal, EditWebhookEndpointModal, ElevasisCoreProvider, ElevasisLoader, ElevasisSystemsProvider, ElevasisUIProvider, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorDetailsModal, ErrorReportCard, ExecuteWorkflowModal, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealth, ExecutionHealthCard, ExecutionLogsFilters, ExecutionLogsPage, ExecutionLogsTable, ExecutionPanel, ExecutionStats, ExecutionStatusBadge, FILTERABLE_DOMAIN_KEYS, FeatureUnavailableState, FilterBar, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, HeroStatsRow, IdentityDomainSchema, IntegrationResourceEntrySchema, JsonViewer, KNOWLEDGE_DOMAINS_WITH_PANELS, KNOWLEDGE_ICON_TOKEN_BY_KIND, KanbanBoard, KnowledgeSearchBar, KnowledgeTree, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, LinksGroup, ListActionsProvider, ListBuilderIndexPage, ListBuilderPage, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MemberAccessModal, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyRolesPage, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationCenter, NotificationItem, NotificationList, NotificationPanel, NotificationProvider, OAuthConnectModal, OAuthIntegrationsCard, OM_NESTED_TREE_GROUPS, OM_TREE_GROUPS, ORPHAN_STAGE_ORDER, OperationsOverview, OperationsService, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrgMembersList, OrganizationGraphPage, OrganizationMembershipService, OrganizationMembershipsList, OrganizationProvider, OrganizationSettings, OrganizationSwitcher, OrganizationSwitcherConnected, PIPELINE_FUNNEL_ORDER, PageContainer, PageNotFound, PageTitleCaption, PermissionMatrix, PipelineFunnelWidget, PolicySchema, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, ProtectedRoute, QuickCreateActions, RecentExecutionsByResource, RecurringScheduleForm, RelativeScheduleForm, RequestActionIcon, RequestModal, ResourceCard, ResourceDefinitionSection, ResourceDetailPage, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, ResourceOverview, ResourcesPage, ResourcesSidebar, RichTextEditor, RoleBadge, RoleSchema, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, ScriptResourceEntrySchema, SemanticIcon, SessionChatArea, SessionChatInterface, SessionChatPage, SessionConversationView, SessionDetailsPanel, SessionExecutionLogs, SessionHeader, SessionListItem, SessionMemory, SessionsPage, SessionsSidebar, Sidebar, SidebarContext, SidebarProvider, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StepConfigForm, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellNavList, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarLoader, SurfaceDefinitionSchema, SystemOpsView, SystemShell, TabCountBadge, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, Topbar, TopbarActions, TopbarContainer, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UnresolvedErrorsTeaser, UpcomingMilestonesPage, Vignette, VisualizerContainer, WebhookEndpointList, WebhookEndpointService, WebhookEndpointSettings, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionPanel, WorkflowExecutionTimeline, WorkflowResourceEntrySchema, ZodFormRenderer, acquisitionListKeys, aggregateSystemMetrics, buildErrorReport, buildKnowledgeOmTreeData, calculateProgress, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, createOrganizationsSlice, createTestSystemsProvider, createUseOrgInitialization, createUseOrganizations, crmManifest, crmPrioritySettingsKeys, dealKeys, dealNoteKeys, dealTaskKeys, deliveryManifest, deriveBusinessProgress, executionsKeys, extendSemanticIconRegistry, filterByDomainFilters, findKnowledgeTreeNodeByValue, findListActionByAction, findOmTreeGroup, formatDate3 as formatDate, formatDealStageLabel, formatResourceAttribution, formatStatusLabel, getConceptDefinition, getEnrichmentColor, getEnrichmentStatus, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getKnowledgeDomainFolderCommand, getKnowledgeGraphNodeCommand, getKnowledgeIconToken, getKnowledgeNodeReadCommand, getKnowledgeOntologyProjection, getKnowledgeTreeFolderCommand, getLeadGenApiInterfaceReadiness, getLeadGenExportWorkflowId, getListActionWorkflowId, getLogLevelConfig, getOntologyDomainLabel, getPrimaryOntologyItemsForDomain, getResourceFilterFacetIds, getSemanticIconComponent, getSeriesColor, getSharedOrganizationGraph, getStateKeyColor, getStatusColor4 as getStatusColor, getStepActionLabel, iconMap, isLeadGenExportAction, isSessionCapable, knowledgeManifest, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, leadGenManifest, mdxComponents, milestoneKeys, milestoneStatusColors, monitoringManifest, normaliseConceptKey, noteKeys, noteTypeColors, observabilityKeys, operationsKeys, operationsManifest, projectActivityKeys, projectKeys, projectNavigationGroups, projectNavigationSurfaces, projectStatusColors, requestTopbarActionManifest, requestsKeys, resolveBuildPlanSteps, resolveBuildState, resolveSemanticIconComponent, scheduleKeys, sessionsKeys, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, sortData, sortStageKeys, subsidebarWidth, taskKeys, taskStatusColors, taskTypeColors, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useAppearance, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBreadcrumbs, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateProject, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useCrmActions, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useCyberColors, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteLists, useDeleteMilestone, useDeleteOrgRole, useDeleteProject, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteTask2, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useElevasisSystems, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphBackgroundStyles, useGraphTheme, useInFlightExecutions, useLeadGenConfig, useList, useListActions, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNewKnowledgeMapLayout, useNotificationAdapter, useNotificationCount, useNotifications, useOptionalElevasisSystems, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentCrmActivity, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResetCrmPrioritySettings, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResolvedOrganizationModel, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionCheck, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSidebar, useSidebarCollapse, useSortedData, useStableAccessToken, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateCrmPrioritySettings, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateProject, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };