@elevasis/ui 2.51.0 → 2.52.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.
Files changed (55) hide show
  1. package/dist/app/index.d.ts +82 -151
  2. package/dist/app/index.js +6 -5
  3. package/dist/auth/index.js +4 -4
  4. package/dist/charts/index.js +4 -4
  5. package/dist/{chunk-SBNC3FRX.js → chunk-CPIQ5GXG.js} +394 -112
  6. package/dist/{chunk-GUKY77FJ.js → chunk-E6NSKXYN.js} +12 -4
  7. package/dist/{chunk-7FPLLSHN.js → chunk-I3CFGE3N.js} +6 -0
  8. package/dist/chunk-M7WWRZ5Z.js +159 -0
  9. package/dist/components/chat/index.d.ts +9 -1
  10. package/dist/components/chat/index.js +1 -1
  11. package/dist/components/index.d.ts +98 -155
  12. package/dist/components/index.js +4 -4
  13. package/dist/components/navigation/index.js +4 -4
  14. package/dist/execution/index.d.ts +2 -0
  15. package/dist/execution/index.js +1 -1
  16. package/dist/features/auth/index.d.ts +80 -150
  17. package/dist/features/auth/index.js +5 -5
  18. package/dist/features/clients/index.js +4 -4
  19. package/dist/features/crm/index.d.ts +80 -150
  20. package/dist/features/crm/index.js +4 -4
  21. package/dist/features/dashboard/index.js +4 -4
  22. package/dist/features/delivery/index.d.ts +80 -150
  23. package/dist/features/delivery/index.js +4 -4
  24. package/dist/features/knowledge/index.js +4 -4
  25. package/dist/features/lead-gen/index.js +4 -4
  26. package/dist/features/monitoring/index.d.ts +1 -1
  27. package/dist/features/monitoring/index.js +4 -4
  28. package/dist/features/monitoring/requests/index.js +5 -5
  29. package/dist/features/operations/index.js +4 -4
  30. package/dist/features/public-agent-chat/index.d.ts +17 -3
  31. package/dist/features/public-agent-chat/index.js +313 -113
  32. package/dist/features/settings/index.d.ts +80 -150
  33. package/dist/features/settings/index.js +4 -4
  34. package/dist/hooks/access/index.js +4 -4
  35. package/dist/hooks/delivery/index.d.ts +80 -150
  36. package/dist/hooks/delivery/index.js +4 -4
  37. package/dist/hooks/index.d.ts +98 -152
  38. package/dist/hooks/index.js +4 -4
  39. package/dist/hooks/published.d.ts +98 -152
  40. package/dist/hooks/published.js +4 -4
  41. package/dist/index.d.ts +116 -155
  42. package/dist/index.js +4 -4
  43. package/dist/initialization/index.d.ts +80 -150
  44. package/dist/knowledge/index.js +5 -5
  45. package/dist/layout/index.js +4 -4
  46. package/dist/organization/index.js +4 -4
  47. package/dist/profile/index.d.ts +80 -150
  48. package/dist/provider/index.d.ts +80 -150
  49. package/dist/provider/index.js +4 -4
  50. package/dist/provider/published.d.ts +80 -150
  51. package/dist/provider/published.js +4 -4
  52. package/dist/supabase/index.d.ts +159 -292
  53. package/dist/types/index.d.ts +81 -151
  54. package/package.json +3 -3
  55. package/dist/chunk-EJL4U7OZ.js +0 -79
@@ -6,11 +6,11 @@ import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebar
6
6
  import { CardHeader } from './chunk-S3XR4II4.js';
7
7
  import { useInitialization, InitializationContext, InitializationProvider } from './chunk-6DO4PE3O.js';
8
8
  import { OrganizationContext, useOrganization } from './chunk-DD3CCMCZ.js';
9
- import { SessionIdParamSchema, CreateSessionSchema, GetNotificationsQuerySchema, MarkAsReadParamsSchema, ExecutionIdParamsSchema, WebSocketSessionTurnSchema } from './chunk-EJL4U7OZ.js';
10
- import { StyledMarkdown, ChatHeader, ChatSidebar } from './chunk-GUKY77FJ.js';
9
+ import { SessionIdParamSchema, CreateSessionSchema, GetNotificationsQuerySchema, MarkAsReadParamsSchema, ExecutionIdParamsSchema, createLiveTempMessageIdentity, WebSocketSessionTurnSchema } from './chunk-M7WWRZ5Z.js';
10
+ import { StyledMarkdown, ChatHeader, ChatSidebar } from './chunk-E6NSKXYN.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
- 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-7FPLLSHN.js';
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';
14
14
  import { useProfile, useUserProfile, ProfileProvider } from './chunk-W2SFTXMT.js';
15
15
  import { LabelSchema, DescriptionSchema, PathSchema, ModelIdSchema, IconNameSchema, SystemLifecycleSchema, OntologyIdSchema, SystemPathSchema, ActionInvocationSchema, SystemIdSchema, NodeIdStringSchema, JsonValueSchema, SystemInterfaceRefSchema, EntitiesDomainSchema, ActionsDomainSchema, DEFAULT_ORGANIZATION_MODEL_ACTIONS, OntologyScopeSchema, DEFAULT_ONTOLOGY_SCOPE, SystemsDomainSchema, DEFAULT_ORGANIZATION_MODEL_SYSTEMS, defineEntities, defineActions, listAllSystems, listResolvedOntologyRecords, getErrorInfo, getErrorTitle, formatErrorMessage, getSystem, compileOrganizationOntology, isAPIClientError, getResourceIcon, formatTimeAgo, PAGE_SIZE_DEFAULT, STALE_TIME_MONITORING, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, APIClientError, GC_TIME_MEDIUM, GC_TIME_SHORT, formatDateTime, LEAD_GEN_API_INTERFACE, computeInterfaceReadiness, getAllBuildTemplates, getLeadGenStageCatalog, formatDate, formatRelativeTime, getResourcesForSystem, ontologyGraphNodeId, parseOntologyId, getAllProspectingStages, getAllPipelines, getAllProjectStatuses, OAUTH_FLOW_TIMEOUT, devOnlyFor, requiresAdminFor, topLevel, parentOf, ancestorsOf, childrenOf, findById, findByPath, getSystemAncestors, resolveSystemConfig, defaultPathFor } from './chunk-XOPLS4S6.js';
16
16
  import { getTimeRangeLabel, getTimeRangeDates, formatBucketTime, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce } from './chunk-FVOMKZ7S.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, 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, 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';
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';
@@ -7070,6 +7070,7 @@ var activityTypeLabels = {
7070
7070
  credential_change: "Credential",
7071
7071
  credential_read: "Credential Read",
7072
7072
  api_key_change: "API Key",
7073
+ agent_access_grant_change: "Agent Grant",
7073
7074
  deployment_change: "Deployment",
7074
7075
  membership_change: "Membership"
7075
7076
  };
@@ -7139,6 +7140,7 @@ var activityTypeOptions = [
7139
7140
  { value: "credential_change", label: "Credential Changes" },
7140
7141
  { value: "credential_read", label: "Credential Reads" },
7141
7142
  { value: "api_key_change", label: "API Key Changes" },
7143
+ { value: "agent_access_grant_change", label: "Agent Grant Changes" },
7142
7144
  { value: "deployment_change", label: "Deployment Changes" },
7143
7145
  { value: "membership_change", label: "Membership Changes" }
7144
7146
  ];
@@ -9188,7 +9190,7 @@ function ElevasisCoreProvider({
9188
9190
  queryClient,
9189
9191
  apiUrl,
9190
9192
  onError,
9191
- notifications: notifications15,
9193
+ notifications: notifications16,
9192
9194
  crmActions,
9193
9195
  listActions,
9194
9196
  children
@@ -9201,14 +9203,14 @@ function ElevasisCoreProvider({
9201
9203
  const resolvedQueryClient = queryClient ?? getDefaultQueryClient();
9202
9204
  const resolvedCrmActions = crmActions ?? [];
9203
9205
  const resolvedListActions = listActions ?? EMPTY_LIST_ACTIONS;
9204
- const content = apiUrl ? /* @__PURE__ */ jsx(ServiceStack, { apiUrl, onError, notifications: notifications15, children }) : children;
9206
+ const content = apiUrl ? /* @__PURE__ */ jsx(ServiceStack, { apiUrl, onError, notifications: notifications16, children }) : children;
9205
9207
  const AuthInner = /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(LazyCoreAuthKitInner, { auth, children: content }) });
9206
9208
  return /* @__PURE__ */ jsx(QueryClientProvider, { client: resolvedQueryClient, children: /* @__PURE__ */ jsx(CrmActionsProvider, { actions: resolvedCrmActions, children: /* @__PURE__ */ jsx(ListActionsProvider, { registry: resolvedListActions, children: AuthInner }) }) });
9207
9209
  }
9208
9210
  function ServiceStack({
9209
9211
  apiUrl,
9210
9212
  onError,
9211
- notifications: notifications15,
9213
+ notifications: notifications16,
9212
9214
  children
9213
9215
  }) {
9214
9216
  const { getAccessToken } = useAuthContext();
@@ -9221,24 +9223,24 @@ function ServiceStack({
9221
9223
  getOrganizationId,
9222
9224
  isOrganizationReady: false,
9223
9225
  onError,
9224
- children: /* @__PURE__ */ jsx(ServiceStackInner, { apiUrl, orgIdRef, notifications: notifications15, children })
9226
+ children: /* @__PURE__ */ jsx(ServiceStackInner, { apiUrl, orgIdRef, notifications: notifications16, children })
9225
9227
  }
9226
9228
  );
9227
9229
  }
9228
9230
  function ServiceStackInner({
9229
9231
  apiUrl,
9230
9232
  orgIdRef,
9231
- notifications: notifications15,
9233
+ notifications: notifications16,
9232
9234
  children
9233
9235
  }) {
9234
9236
  const { apiRequest } = useApiClient(apiUrl);
9235
- const resolvedNotifications = notifications15 ?? consoleNotificationAdapter;
9237
+ const resolvedNotifications = notifications16 ?? consoleNotificationAdapter;
9236
9238
  return /* @__PURE__ */ jsx(ProfileProvider, { apiRequest, children: /* @__PURE__ */ jsx(OrganizationProvider, { apiRequest, children: /* @__PURE__ */ jsx(OrgServiceBridge, { orgIdRef, apiRequest, notifications: resolvedNotifications, children }) }) });
9237
9239
  }
9238
9240
  function OrgServiceBridge({
9239
9241
  orgIdRef,
9240
9242
  apiRequest,
9241
- notifications: notifications15,
9243
+ notifications: notifications16,
9242
9244
  children
9243
9245
  }) {
9244
9246
  const { currentWorkOSOrganizationId, isInitializing, isOrgRefreshing } = useOrganization();
@@ -9250,7 +9252,7 @@ function OrgServiceBridge({
9250
9252
  apiRequest,
9251
9253
  workOSOrganizationId: currentWorkOSOrganizationId,
9252
9254
  isReady,
9253
- children: /* @__PURE__ */ jsx(NotificationProvider, { adapter: notifications15, children: /* @__PURE__ */ jsx(InitializationProvider, { children }) })
9255
+ children: /* @__PURE__ */ jsx(NotificationProvider, { adapter: notifications16, children: /* @__PURE__ */ jsx(InitializationProvider, { children }) })
9254
9256
  }
9255
9257
  );
9256
9258
  }
@@ -10967,8 +10969,9 @@ function useSessionWebSocket(sessionId, apiUrl) {
10967
10969
  try {
10968
10970
  const data = JSON.parse(event.data);
10969
10971
  if (data.type && data.type !== "turn:complete" && data.type !== "error") {
10972
+ const liveIdentity = createLiveTempMessageIdentity();
10970
10973
  const tempMessage = {
10971
- id: `temp-${Date.now()}`,
10974
+ id: liveIdentity.id,
10972
10975
  role: data.type === "user_message" ? "user" : "assistant",
10973
10976
  messageType: data.type,
10974
10977
  text: formatMessageEvent(data),
@@ -10976,9 +10979,8 @@ function useSessionWebSocket(sessionId, apiUrl) {
10976
10979
  metadata: data.type.startsWith("agent:") ? data : void 0,
10977
10980
  turnNumber: 999999,
10978
10981
  // High placeholder so temp messages sort to bottom
10979
- messageIndex: Date.now(),
10980
- // Use timestamp for unique ordering
10981
- createdAt: /* @__PURE__ */ new Date()
10982
+ messageIndex: liveIdentity.messageIndex,
10983
+ createdAt: liveIdentity.createdAt
10982
10984
  };
10983
10985
  setMessages((prev) => [...prev, tempMessage]);
10984
10986
  } else if (data.type === "turn:complete") {
@@ -11066,16 +11068,16 @@ function useSessionWebSocket(sessionId, apiUrl) {
11066
11068
  }));
11067
11069
  return;
11068
11070
  }
11071
+ const liveIdentity = createLiveTempMessageIdentity();
11069
11072
  const userMessage = {
11070
- id: `temp-${Date.now()}`,
11073
+ id: liveIdentity.id,
11071
11074
  role: "user",
11072
11075
  messageType: "user_message",
11073
11076
  text: trimmed,
11074
11077
  turnNumber: 999999,
11075
11078
  // High placeholder so temp messages sort to bottom
11076
- messageIndex: Date.now(),
11077
- // Use timestamp for unique ordering
11078
- createdAt: /* @__PURE__ */ new Date()
11079
+ messageIndex: liveIdentity.messageIndex,
11080
+ createdAt: liveIdentity.createdAt
11079
11081
  };
11080
11082
  setMessages((prev) => [...prev, userMessage]);
11081
11083
  const input = { message: trimmed };
@@ -13938,18 +13940,18 @@ function NotificationItem({ notification, onClose, onNavigate }) {
13938
13940
  }
13939
13941
  );
13940
13942
  }
13941
- function NotificationList({ notifications: notifications15, isLoading, onClose, onNavigate }) {
13943
+ function NotificationList({ notifications: notifications16, isLoading, onClose, onNavigate }) {
13942
13944
  if (isLoading) {
13943
13945
  return /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, { size: "sm" }) });
13944
13946
  }
13945
- if (notifications15.length === 0) {
13947
+ if (notifications16.length === 0) {
13946
13948
  return /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No notifications" }) });
13947
13949
  }
13948
- return /* @__PURE__ */ jsx(Stack, { gap: 0, children: notifications15.map((notification) => /* @__PURE__ */ jsx(NotificationItem, { notification, onClose, onNavigate }, notification.id)) });
13950
+ return /* @__PURE__ */ jsx(Stack, { gap: 0, children: notifications16.map((notification) => /* @__PURE__ */ jsx(NotificationItem, { notification, onClose, onNavigate }, notification.id)) });
13949
13951
  }
13950
- function NotificationPanel({ notifications: notifications15, isLoading, onClose, onNavigate }) {
13952
+ function NotificationPanel({ notifications: notifications16, isLoading, onClose, onNavigate }) {
13951
13953
  const markAllAsRead = useMarkAllAsRead();
13952
- const hasUnread = notifications15.some((n) => !n.read);
13954
+ const hasUnread = notifications16.some((n) => !n.read);
13953
13955
  const handleMarkAllAsRead = async () => {
13954
13956
  await markAllAsRead.mutateAsync();
13955
13957
  };
@@ -13962,7 +13964,7 @@ function NotificationPanel({ notifications: notifications15, isLoading, onClose,
13962
13964
  /* @__PURE__ */ jsx(ScrollArea, { h: 400, type: "auto", children: /* @__PURE__ */ jsx(
13963
13965
  NotificationList,
13964
13966
  {
13965
- notifications: notifications15,
13967
+ notifications: notifications16,
13966
13968
  isLoading,
13967
13969
  onClose,
13968
13970
  onNavigate
@@ -13983,14 +13985,14 @@ function NotificationBell({ unreadCount, onNavigate }) {
13983
13985
  staleTime: 3e4
13984
13986
  });
13985
13987
  const { data, isLoading } = useNotifications({ limit: 20 });
13986
- const notifications15 = data?.notifications ?? [];
13988
+ const notifications16 = data?.notifications ?? [];
13987
13989
  const count = unreadCount ?? apiCount;
13988
13990
  return /* @__PURE__ */ jsxs(Popover, { opened, onChange: toggle, position: "bottom-end", width: 400, children: [
13989
13991
  /* @__PURE__ */ jsx(Tooltip, { label: "Notifications", disabled: opened, children: /* @__PURE__ */ jsx(Popover.Target, { children: /* @__PURE__ */ jsx(Indicator, { label: count > 99 ? "99+" : count, disabled: count === 0, size: 16, offset: 4, children: /* @__PURE__ */ jsx(ActionIcon, { variant: "subtle", size: "lg", onClick: toggle, children: /* @__PURE__ */ jsx(IconBell, { size: 20, color: "var(--color-text-subtle)" }) }) }) }) }),
13990
13992
  /* @__PURE__ */ jsx(Popover.Dropdown, { p: 0, children: /* @__PURE__ */ jsx(
13991
13993
  NotificationPanel,
13992
13994
  {
13993
- notifications: notifications15,
13995
+ notifications: notifications16,
13994
13996
  isLoading,
13995
13997
  onClose: close,
13996
13998
  onNavigate
@@ -16099,9 +16101,22 @@ var statusColorMap = {
16099
16101
  warning: "yellow"
16100
16102
  };
16101
16103
  var AgentIterationNode = memo(function AgentIterationNode2({ data, selected }) {
16102
- const { nodeType, label, iterationNumber, status, reasoningCount, actionCount, duration, isLive } = data;
16104
+ const {
16105
+ nodeType,
16106
+ label,
16107
+ iterationNumber,
16108
+ status,
16109
+ reasoningCount,
16110
+ actionCount,
16111
+ toolCallCount,
16112
+ failedToolCallCount,
16113
+ duration,
16114
+ isLive
16115
+ } = data;
16103
16116
  const colors = getStatusColors(status);
16104
16117
  const nodeColor = statusColorMap[status];
16118
+ const hasToolCalls = nodeType === "iteration" && toolCallCount !== void 0 && toolCallCount > 0;
16119
+ const hasFailedToolCalls = failedToolCallCount !== void 0 && failedToolCallCount > 0;
16105
16120
  return /* @__PURE__ */ jsxs(BaseNode, { color: nodeColor, selected, width: AGENT_CONSTANTS.NODE_WIDTH, children: [
16106
16121
  /* @__PURE__ */ jsxs(Box, { style: { display: "flex", flexDirection: "column", alignItems: "center" }, children: [
16107
16122
  /* @__PURE__ */ jsx(
@@ -16146,6 +16161,17 @@ var AgentIterationNode = memo(function AgentIterationNode2({ data, selected }) {
16146
16161
  " ",
16147
16162
  actionCount === 1 ? "action" : "actions"
16148
16163
  ] }),
16164
+ hasToolCalls && /* @__PURE__ */ jsxs(Group, { gap: 4, align: "center", wrap: "nowrap", children: [
16165
+ /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", style: { whiteSpace: "nowrap" }, children: [
16166
+ toolCallCount,
16167
+ " ",
16168
+ toolCallCount === 1 ? "tool" : "tools"
16169
+ ] }),
16170
+ hasFailedToolCalls && /* @__PURE__ */ jsxs(Badge, { size: "xs", variant: "light", color: "red", px: 4, children: [
16171
+ failedToolCallCount,
16172
+ " failed"
16173
+ ] })
16174
+ ] }),
16149
16175
  duration !== void 0 && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: formatDuration(duration) })
16150
16176
  ] })
16151
16177
  ] }),
@@ -16223,9 +16249,34 @@ var nodeTypes2 = {
16223
16249
  var edgeTypes2 = {
16224
16250
  agentIteration: AgentIterationEdge
16225
16251
  };
16252
+ var TERMINAL_STATUSES = /* @__PURE__ */ new Set(["completed", "failed", "warning"]);
16253
+ function hasAgentLifecycleLogs(execution) {
16254
+ return Boolean(
16255
+ execution?.executionLogs?.some((log) => {
16256
+ const context = log.context;
16257
+ return context?.type === "agent" && "lifecycle" in context;
16258
+ })
16259
+ );
16260
+ }
16261
+ function getUnavailableTraceMessage(execution, selectedExecutionId) {
16262
+ if (!selectedExecutionId) {
16263
+ return null;
16264
+ }
16265
+ if (execution?.isArchived) {
16266
+ return "Detailed trace unavailable for archived execution. Raw logs can be loaded below, but graph and detail rendering do not hydrate archived logs yet.";
16267
+ }
16268
+ if (execution && execution.executionLogs.length === 0 && TERMINAL_STATUSES.has(execution.status)) {
16269
+ return "Detailed trace unavailable. This terminal execution has no lifecycle logs available for graph rendering.";
16270
+ }
16271
+ if (execution && TERMINAL_STATUSES.has(execution.status) && !hasAgentLifecycleLogs(execution)) {
16272
+ return "Detailed trace unavailable. This run has no agent lifecycle context, so raw logs are shown below instead.";
16273
+ }
16274
+ return null;
16275
+ }
16226
16276
  function AgentExecutionVisualizer({
16227
16277
  resourceDefinition,
16228
16278
  iterationData,
16279
+ execution,
16229
16280
  selectedExecutionId,
16230
16281
  liveExecutions,
16231
16282
  selectedIterationId,
@@ -16259,6 +16310,10 @@ function AgentExecutionVisualizer({
16259
16310
  },
16260
16311
  [selectedIterationId, handleIterationSelect]
16261
16312
  );
16313
+ const unavailableTraceMessage = getUnavailableTraceMessage(execution, selectedExecutionId);
16314
+ if (unavailableTraceMessage) {
16315
+ return /* @__PURE__ */ jsx(EmptyVisualizer, { message: unavailableTraceMessage });
16316
+ }
16262
16317
  if (!iterationData || nodes.length === 0) {
16263
16318
  return /* @__PURE__ */ jsx(EmptyVisualizer, {});
16264
16319
  }
@@ -16292,6 +16347,21 @@ function AgentExecutionVisualizer({
16292
16347
  }
16293
16348
  ) }) });
16294
16349
  }
16350
+ function getSubActivityLabel(activity) {
16351
+ if (activity.type === "tool-call") {
16352
+ return "toolName" in activity.details && activity.details.toolName ? activity.details.toolName : activity.type;
16353
+ }
16354
+ if (activity.type === "action") {
16355
+ return "actionType" in activity.details && activity.details.actionType ? activity.details.actionType : activity.type;
16356
+ }
16357
+ return activity.type;
16358
+ }
16359
+ function getSubActivityStatus(activity) {
16360
+ if (activity.type === "tool-call" && "success" in activity.details) {
16361
+ return activity.details.success ? "completed" : "failed";
16362
+ }
16363
+ return "completed";
16364
+ }
16295
16365
  function AgentExecutionTimeline({ iterationData, selectedIterationId }) {
16296
16366
  const { initialization, iterations, completion } = iterationData;
16297
16367
  const executionStart = initialization.startTime;
@@ -16332,25 +16402,29 @@ function AgentExecutionTimeline({ iterationData, selectedIterationId }) {
16332
16402
  selectedNodeId: selectedIterationId
16333
16403
  }
16334
16404
  ),
16335
- iteration.subActivities.map((activity, activityIndex) => /* @__PURE__ */ jsx(
16336
- TimelineRow,
16337
- {
16338
- label: `${activity.type} (${formatDuration(activity.duration)})`,
16339
- bars: [
16340
- {
16341
- startTime: activity.startTime,
16342
- endTime: activity.endTime,
16343
- status: "completed",
16344
- nodeId: iteration.iterationNumber
16345
- }
16346
- ],
16347
- executionStart,
16348
- executionEnd,
16349
- indent: 1,
16350
- selectedNodeId: selectedIterationId
16351
- },
16352
- `${iteration.iterationNumber}-${activity.type}-${activity.startTime}-${activityIndex}`
16353
- ))
16405
+ iteration.subActivities.map((activity, activityIndex) => {
16406
+ const activityLabel = getSubActivityLabel(activity);
16407
+ const activityStatus = getSubActivityStatus(activity);
16408
+ return /* @__PURE__ */ jsx(
16409
+ TimelineRow,
16410
+ {
16411
+ label: `${activityLabel} (${formatDuration(activity.duration)})`,
16412
+ bars: [
16413
+ {
16414
+ startTime: activity.startTime,
16415
+ endTime: activity.endTime,
16416
+ status: activityStatus,
16417
+ nodeId: iteration.iterationNumber
16418
+ }
16419
+ ],
16420
+ executionStart,
16421
+ executionEnd,
16422
+ indent: 1,
16423
+ selectedNodeId: selectedIterationId
16424
+ },
16425
+ `${iteration.iterationNumber}-${activity.type}-${activity.startTime}-${activityIndex}`
16426
+ );
16427
+ })
16354
16428
  ] }, iteration.iterationNumber)),
16355
16429
  completion.startTime && completion.endTime && /* @__PURE__ */ jsx(
16356
16430
  TimelineRow,
@@ -16371,6 +16445,163 @@ function AgentExecutionTimeline({ iterationData, selectedIterationId }) {
16371
16445
  )
16372
16446
  ] });
16373
16447
  }
16448
+ function CollapsibleJsonSection({ title, data, defaultExpanded = false }) {
16449
+ const [isExpanded, setIsExpanded] = useState(defaultExpanded);
16450
+ const [isHovered, setIsHovered] = useState(false);
16451
+ return /* @__PURE__ */ jsxs(
16452
+ "div",
16453
+ {
16454
+ style: {
16455
+ borderRadius: "var(--mantine-radius-default)",
16456
+ backgroundColor: isHovered ? "var(--color-surface-hover, rgba(0,0,0,0.02))" : "transparent",
16457
+ transition: "background-color var(--duration-fast) var(--easing)"
16458
+ },
16459
+ children: [
16460
+ /* @__PURE__ */ jsxs(
16461
+ Group,
16462
+ {
16463
+ gap: 4,
16464
+ onClick: () => setIsExpanded(!isExpanded),
16465
+ onMouseEnter: () => setIsHovered(true),
16466
+ onMouseLeave: () => setIsHovered(false),
16467
+ style: {
16468
+ cursor: "pointer",
16469
+ padding: "0.375rem 0.5rem",
16470
+ userSelect: "none"
16471
+ },
16472
+ wrap: "nowrap",
16473
+ children: [
16474
+ /* @__PURE__ */ jsx(
16475
+ ActionIcon,
16476
+ {
16477
+ variant: "transparent",
16478
+ size: "xs",
16479
+ style: {
16480
+ transition: "transform var(--duration-fast) var(--easing)",
16481
+ transform: isExpanded ? "rotate(90deg)" : "rotate(0deg)"
16482
+ },
16483
+ children: /* @__PURE__ */ jsx(IconChevronRight, { size: 14 })
16484
+ }
16485
+ ),
16486
+ title
16487
+ ]
16488
+ }
16489
+ ),
16490
+ /* @__PURE__ */ jsx(Collapse, { in: isExpanded, children: /* @__PURE__ */ jsx(JsonViewer, { data }) })
16491
+ ]
16492
+ }
16493
+ );
16494
+ }
16495
+ function CollapsibleTextSection({ title, text }) {
16496
+ return /* @__PURE__ */ jsx(
16497
+ CollapsibleJsonSection,
16498
+ {
16499
+ title: /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, children: title }),
16500
+ data: text
16501
+ }
16502
+ );
16503
+ }
16504
+ function ActivityIcon({ activity }) {
16505
+ if (activity.type === "tool-call") {
16506
+ return /* @__PURE__ */ jsx(IconTool, { size: 16 });
16507
+ }
16508
+ if (activity.type === "action") {
16509
+ return /* @__PURE__ */ jsx(IconWand, { size: 16 });
16510
+ }
16511
+ return /* @__PURE__ */ jsx(IconBrain, { size: 16 });
16512
+ }
16513
+ function getActivityTitle(activity) {
16514
+ if (activity.type === "tool-call") {
16515
+ return "toolName" in activity.details && activity.details.toolName ? activity.details.toolName : "Tool call";
16516
+ }
16517
+ if (activity.type === "action") {
16518
+ return "actionType" in activity.details && activity.details.actionType ? activity.details.actionType : "Action";
16519
+ }
16520
+ return "Reasoning";
16521
+ }
16522
+ function ActivityBadge({ activity }) {
16523
+ if (activity.type !== "tool-call" || !("success" in activity.details)) {
16524
+ return /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: "gray", children: activity.type });
16525
+ }
16526
+ return activity.details.success ? /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: "green", leftSection: /* @__PURE__ */ jsx(IconCheck, { size: 12 }), children: "Success" }) : /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: "red", leftSection: /* @__PURE__ */ jsx(IconAlertCircle, { size: 12 }), children: "Error" });
16527
+ }
16528
+ function ActivityDetails({ activity }) {
16529
+ if (activity.type === "reasoning" && "output" in activity.details && typeof activity.details.output === "string" && activity.details.output) {
16530
+ return /* @__PURE__ */ jsx(CollapsibleTextSection, { title: "Reasoning", text: activity.details.output });
16531
+ }
16532
+ if (activity.type === "action" && "data" in activity.details && activity.details.data) {
16533
+ return /* @__PURE__ */ jsx(
16534
+ CollapsibleJsonSection,
16535
+ {
16536
+ title: /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, children: "Data" }),
16537
+ data: activity.details.data
16538
+ }
16539
+ );
16540
+ }
16541
+ if (activity.type !== "tool-call") {
16542
+ return null;
16543
+ }
16544
+ return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
16545
+ "error" in activity.details && activity.details.error && /* @__PURE__ */ jsx(Text, { size: "xs", c: "var(--color-error)", children: activity.details.error }),
16546
+ "input" in activity.details && activity.details.input !== void 0 && /* @__PURE__ */ jsx(
16547
+ CollapsibleJsonSection,
16548
+ {
16549
+ title: /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, children: "Input" }),
16550
+ data: activity.details.input
16551
+ }
16552
+ ),
16553
+ "output" in activity.details && activity.details.output !== void 0 && /* @__PURE__ */ jsx(
16554
+ CollapsibleJsonSection,
16555
+ {
16556
+ title: /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, children: "Output" }),
16557
+ data: activity.details.output
16558
+ }
16559
+ )
16560
+ ] });
16561
+ }
16562
+ function ActivityRow({ activity }) {
16563
+ return /* @__PURE__ */ jsx(Paper, { withBorder: true, p: "xs", bg: "none", children: /* @__PURE__ */ jsxs(Stack, { gap: 6, children: [
16564
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", gap: "xs", wrap: "nowrap", children: [
16565
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", style: { minWidth: 0 }, children: [
16566
+ /* @__PURE__ */ jsx(ActivityIcon, { activity }),
16567
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, truncate: true, children: getActivityTitle(activity) })
16568
+ ] }),
16569
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
16570
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: formatDuration(activity.duration) }),
16571
+ /* @__PURE__ */ jsx(ActivityBadge, { activity })
16572
+ ] })
16573
+ ] }),
16574
+ /* @__PURE__ */ jsx(ActivityDetails, { activity })
16575
+ ] }) });
16576
+ }
16577
+ function AgentIterationDetailPanel({ iteration, totals }) {
16578
+ return /* @__PURE__ */ jsx(Paper, { withBorder: true, bg: "none", p: "sm", children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
16579
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
16580
+ /* @__PURE__ */ jsxs("div", { children: [
16581
+ /* @__PURE__ */ jsx(Text, { fw: 600, children: iteration ? `Iteration ${iteration.iterationNumber} activity` : "Iteration activity" }),
16582
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: iteration ? `${iteration.subActivities.length} ordered sub-activities` : "Select an iteration to inspect activity" })
16583
+ ] }),
16584
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
16585
+ /* @__PURE__ */ jsxs(Badge, { variant: "light", color: "blue", children: [
16586
+ totals.totalToolCalls,
16587
+ " tools"
16588
+ ] }),
16589
+ /* @__PURE__ */ jsxs(Badge, { variant: "light", color: totals.toolErrorCount > 0 ? "red" : "green", children: [
16590
+ totals.toolErrorCount,
16591
+ " errors"
16592
+ ] }),
16593
+ totals.totalDuration !== void 0 && /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", children: formatDuration(totals.totalDuration) })
16594
+ ] })
16595
+ ] }),
16596
+ iteration ? iteration.subActivities.length > 0 ? /* @__PURE__ */ jsx(Stack, { gap: "xs", children: iteration.subActivities.map((activity, index) => /* @__PURE__ */ jsx(
16597
+ ActivityRow,
16598
+ {
16599
+ activity
16600
+ },
16601
+ `${activity.type}-${activity.startTime}-${activity.endTime}-${index}`
16602
+ )) }) : /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No reasoning, actions, or tool calls were captured for this iteration." }) : /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Select an iteration node to view reasoning, actions, and tool calls." })
16603
+ ] }) });
16604
+ }
16374
16605
  function FormFieldRenderer({ field, form, richTextRenderer }) {
16375
16606
  const commonProps = {
16376
16607
  label: field.label,
@@ -16837,53 +17068,6 @@ function ContentSections({ context, sections, titles }) {
16837
17068
  ] }, key);
16838
17069
  }) });
16839
17070
  }
16840
- function CollapsibleJsonSection({ title, data, defaultExpanded = false }) {
16841
- const [isExpanded, setIsExpanded] = useState(defaultExpanded);
16842
- const [isHovered, setIsHovered] = useState(false);
16843
- return /* @__PURE__ */ jsxs(
16844
- "div",
16845
- {
16846
- style: {
16847
- borderRadius: "var(--mantine-radius-default)",
16848
- backgroundColor: isHovered ? "var(--color-surface-hover, rgba(0,0,0,0.02))" : "transparent",
16849
- transition: "background-color var(--duration-fast) var(--easing)"
16850
- },
16851
- children: [
16852
- /* @__PURE__ */ jsxs(
16853
- Group,
16854
- {
16855
- gap: 4,
16856
- onClick: () => setIsExpanded(!isExpanded),
16857
- onMouseEnter: () => setIsHovered(true),
16858
- onMouseLeave: () => setIsHovered(false),
16859
- style: {
16860
- cursor: "pointer",
16861
- padding: "0.375rem 0.5rem",
16862
- userSelect: "none"
16863
- },
16864
- wrap: "nowrap",
16865
- children: [
16866
- /* @__PURE__ */ jsx(
16867
- ActionIcon,
16868
- {
16869
- variant: "transparent",
16870
- size: "xs",
16871
- style: {
16872
- transition: "transform var(--duration-fast) var(--easing)",
16873
- transform: isExpanded ? "rotate(90deg)" : "rotate(0deg)"
16874
- },
16875
- children: /* @__PURE__ */ jsx(IconChevronRight, { size: 14 })
16876
- }
16877
- ),
16878
- title
16879
- ]
16880
- }
16881
- ),
16882
- /* @__PURE__ */ jsx(Collapse, { in: isExpanded, children: /* @__PURE__ */ jsx(JsonViewer, { data }) })
16883
- ]
16884
- }
16885
- );
16886
- }
16887
17071
  function ContractDisplay({ contract, defaultExpanded = false }) {
16888
17072
  return /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
16889
17073
  /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, style: { fontFamily: "var(--mantine-font-family-headings)" }, children: "Contract" }),
@@ -19468,7 +19652,8 @@ function ResourceHeader({
19468
19652
  organizationName: organizationNameProp,
19469
19653
  onRun,
19470
19654
  onNavigateToResources,
19471
- onNavigateToSessions
19655
+ onNavigateToSessions,
19656
+ publicAccessControl
19472
19657
  }) {
19473
19658
  const { currentMembership } = useOrganization();
19474
19659
  const organizationName = organizationNameProp ?? currentMembership?.organization?.name;
@@ -19523,6 +19708,7 @@ function ResourceHeader({
19523
19708
  " running"
19524
19709
  ] }),
19525
19710
  onRun && /* @__PURE__ */ jsx(Button, { size: "xs", variant: "filled", leftSection: /* @__PURE__ */ jsx(IconPlayerPlay, { size: 16 }), onClick: onRun, children: "Run" }),
19711
+ publicAccessControl,
19526
19712
  type === "agent" && sessionCapable && /* @__PURE__ */ jsx(Button, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ jsx(IconMessage, { size: 16 }), onClick: handleGoToSessions, children: "Agent Sessions" }),
19527
19713
  /* @__PURE__ */ jsx(Button, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ jsx(IconArrowLeft, { size: 16 }), onClick: handleGoToResources, children: "Resources" })
19528
19714
  ] })
@@ -36075,6 +36261,77 @@ function ResourceNotFoundState2({ type, resourceId, onNavigateBack }) {
36075
36261
  /* @__PURE__ */ jsx(Button, { variant: "light", leftSection: /* @__PURE__ */ jsx(IconArrowLeft, { size: 16 }), onClick: handleBack, children: "Back to Operations" })
36076
36262
  ] }) }) });
36077
36263
  }
36264
+ function publicUrlForSlug(slug) {
36265
+ const path = `/public/agents/${encodeURIComponent(slug)}`;
36266
+ if (typeof window === "undefined") return path;
36267
+ return new URL(path, window.location.origin).toString();
36268
+ }
36269
+ function AgentPublicAccessControls({ resourceId }) {
36270
+ const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
36271
+ const queryClient = useQueryClient();
36272
+ const queryKey = ["operations", "agent-public-access", workOSOrganizationId, resourceId];
36273
+ const grantsQuery = useQuery({
36274
+ queryKey,
36275
+ queryFn: async () => apiRequest(
36276
+ `/agent-access-grants?resourceId=${encodeURIComponent(resourceId)}&includeDisabled=true`
36277
+ ),
36278
+ enabled: isReady
36279
+ });
36280
+ const activeGrant = useMemo(
36281
+ () => grantsQuery.data?.grants.find((grant) => !grant.isDisabled) ?? null,
36282
+ [grantsQuery.data?.grants]
36283
+ );
36284
+ const publicUrl = activeGrant ? publicUrlForSlug(activeGrant.slug) : null;
36285
+ const setPublicMutation = useMutation({
36286
+ mutationFn: (isPublic2) => apiRequest(
36287
+ `/agent-access-grants/resources/${encodeURIComponent(resourceId)}/public`,
36288
+ {
36289
+ method: "PUT",
36290
+ body: JSON.stringify({ public: isPublic2 })
36291
+ }
36292
+ ),
36293
+ onSuccess: async (_result, isPublic2) => {
36294
+ await queryClient.invalidateQueries({ queryKey });
36295
+ notifications.show({
36296
+ message: isPublic2 ? "Agent is public" : "Agent is private",
36297
+ color: isPublic2 ? "teal" : "gray"
36298
+ });
36299
+ },
36300
+ onError: (error) => {
36301
+ notifications.show({
36302
+ message: error instanceof Error ? error.message : "Unable to update public access",
36303
+ color: "red"
36304
+ });
36305
+ }
36306
+ });
36307
+ const isPending = grantsQuery.isLoading || setPublicMutation.isPending;
36308
+ const isPublic = Boolean(activeGrant);
36309
+ return /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
36310
+ /* @__PURE__ */ jsx(
36311
+ Switch,
36312
+ {
36313
+ size: "sm",
36314
+ label: isPublic ? "Public" : "Private",
36315
+ checked: isPublic,
36316
+ disabled: isPending,
36317
+ onChange: (event) => setPublicMutation.mutate(event.currentTarget.checked)
36318
+ }
36319
+ ),
36320
+ publicUrl && /* @__PURE__ */ jsx(
36321
+ Button,
36322
+ {
36323
+ component: "a",
36324
+ href: publicUrl,
36325
+ target: "_blank",
36326
+ rel: "noreferrer",
36327
+ size: "xs",
36328
+ variant: "light",
36329
+ leftSection: /* @__PURE__ */ jsx(IconExternalLink, { size: 16 }),
36330
+ children: "Public URL"
36331
+ }
36332
+ )
36333
+ ] });
36334
+ }
36078
36335
  function ResourceDetailPage({
36079
36336
  type,
36080
36337
  resourceId,
@@ -36134,7 +36391,8 @@ function ResourceDetailPage({
36134
36391
  sessionCapable,
36135
36392
  onRun: () => setRunOpened(true),
36136
36393
  onNavigateToResources,
36137
- onNavigateToSessions
36394
+ onNavigateToSessions,
36395
+ publicAccessControl: type === "agent" ? /* @__PURE__ */ jsx(AgentPublicAccessControls, { resourceId }) : null
36138
36396
  }
36139
36397
  ),
36140
36398
  /* @__PURE__ */ jsx(ResourceHealthPanel, { resourceId, resourceType: type, timeRange }),
@@ -43624,6 +43882,26 @@ function AgentExecutionPanel({
43624
43882
  const executionStreamingLogs = selectedId ? streamingLogs.get(selectedId) : void 0;
43625
43883
  const mergedExecution = useMergedExecution(selectedExecution, executionStreamingLogs);
43626
43884
  const iterationData = useAgentIterationData(mergedExecution, resourceDefinition);
43885
+ const selectedIteration = typeof selectedIterationId === "number" ? iterationData?.iterations.find((iteration) => iteration.iterationNumber === selectedIterationId) ?? null : null;
43886
+ const iterationTotals = useMemo(() => {
43887
+ const iterations = iterationData?.iterations ?? [];
43888
+ let totalToolCalls = 0;
43889
+ let toolErrorCount = 0;
43890
+ for (const iteration of iterations) {
43891
+ for (const activity of iteration.subActivities) {
43892
+ if (activity.type !== "tool-call") continue;
43893
+ totalToolCalls += 1;
43894
+ if ("success" in activity.details && !activity.details.success) {
43895
+ toolErrorCount += 1;
43896
+ }
43897
+ }
43898
+ }
43899
+ return {
43900
+ totalToolCalls,
43901
+ toolErrorCount,
43902
+ totalDuration: iterationData?.totalDuration
43903
+ };
43904
+ }, [iterationData]);
43627
43905
  if (isLoading) {
43628
43906
  return /* @__PURE__ */ jsx(Center, { h: "100%", p: "lg", children: /* @__PURE__ */ jsx(Loader, { size: "md" }) });
43629
43907
  }
@@ -43633,6 +43911,7 @@ function AgentExecutionPanel({
43633
43911
  {
43634
43912
  resourceDefinition,
43635
43913
  iterationData,
43914
+ execution: mergedExecution,
43636
43915
  selectedExecutionId: selectedId,
43637
43916
  liveExecutions,
43638
43917
  selectedIterationId,
@@ -43648,17 +43927,20 @@ function AgentExecutionPanel({
43648
43927
  overflow: "hidden",
43649
43928
  padding: theme.spacing.sm
43650
43929
  },
43651
- children: /* @__PURE__ */ jsx(
43652
- AgentExecutionLogs,
43653
- {
43654
- resourceId,
43655
- executionId: selectedId,
43656
- execution: mergedExecution,
43657
- selectedIterationId,
43658
- iterationData,
43659
- onExecutionDeleted: () => setSelectedId(void 0)
43660
- }
43661
- )
43930
+ children: /* @__PURE__ */ jsxs(Stack, { h: "100%", gap: "sm", children: [
43931
+ iterationData && /* @__PURE__ */ jsx(AgentIterationDetailPanel, { iteration: selectedIteration, totals: iterationTotals }),
43932
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, minHeight: 0 }, children: /* @__PURE__ */ jsx(
43933
+ AgentExecutionLogs,
43934
+ {
43935
+ resourceId,
43936
+ executionId: selectedId,
43937
+ execution: mergedExecution,
43938
+ selectedIterationId,
43939
+ iterationData,
43940
+ onExecutionDeleted: () => setSelectedId(void 0)
43941
+ }
43942
+ ) })
43943
+ ] })
43662
43944
  }
43663
43945
  )
43664
43946
  ] });
@@ -46023,15 +46305,15 @@ function ActivityFeed({
46023
46305
  function NotificationCenter({ pageSize = 20 }) {
46024
46306
  const { page, setPage, offset, totalPages } = usePaginationState(pageSize);
46025
46307
  const { data, isLoading } = useNotifications({ limit: pageSize, offset });
46026
- const notifications15 = data?.notifications ?? [];
46308
+ const notifications16 = data?.notifications ?? [];
46027
46309
  const markAllAsRead = useMarkAllAsRead();
46028
- const hasUnread = notifications15.some((n) => !n.read);
46310
+ const hasUnread = notifications16.some((n) => !n.read);
46029
46311
  const handleMarkAllAsRead = async () => {
46030
46312
  await markAllAsRead.mutateAsync();
46031
46313
  };
46032
46314
  return /* @__PURE__ */ jsxs(Fragment, { children: [
46033
46315
  hasUnread && /* @__PURE__ */ jsx(Group, { justify: "flex-end", children: /* @__PURE__ */ jsx(Button, { variant: "light", size: "sm", onClick: handleMarkAllAsRead, loading: markAllAsRead.isPending, children: "Mark all as read" }) }),
46034
- /* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsx(NotificationList, { notifications: notifications15, isLoading }) }),
46316
+ /* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsx(NotificationList, { notifications: notifications16, isLoading }) }),
46035
46317
  totalPages(data?.total ?? 0) > 1 && /* @__PURE__ */ jsx(Group, { justify: "flex-start", children: /* @__PURE__ */ jsx(Pagination, { value: page, onChange: setPage, total: totalPages(data?.total ?? 0), size: "sm", boundaries: 1 }) })
46036
46318
  ] });
46037
46319
  }
@@ -51038,4 +51320,4 @@ function useAccess(key) {
51038
51320
  };
51039
51321
  }
51040
51322
 
51041
- export { APIErrorAlert, AbsoluteScheduleForm, AccessGuard, AccessKeys, AccountSettings, ActionModal, ActivityCard, ActivityFeed, ActivityFeedWidget, ActivityFilters, ActivityLog, ActivityTable, ActivityTimeline, ActivityTrendChart, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionPanel, AgentExecutionTimeline, AgentExecutionVisualizer, 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, 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 };
51323
+ 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, 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 };