@truefoundry/trueforge-ui 0.3.0-rc.1 → 0.3.0-rc.10

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 (111) hide show
  1. package/CHANGELOG.md +143 -0
  2. package/README.md +23 -8
  3. package/dist/{AgentCodeSnippets-NZOFJE57.js → AgentCodeSnippets-RJBB4DDE.js} +38 -23
  4. package/dist/AgentCodeSnippets-RJBB4DDE.js.map +1 -0
  5. package/dist/AgentMetricChart-UPGSJ2WP.js +15 -0
  6. package/dist/{AgentOverview-EEBHJC32.js → AgentOverview-U5WIQXZN.js} +11 -9
  7. package/dist/AgentOverview-U5WIQXZN.js.map +1 -0
  8. package/dist/{AgentSessionEventTimeline-26Z6IB3B.js → AgentSessionEventTimeline-GRGIQTRE.js} +19 -10
  9. package/dist/AgentSessionEventTimeline-GRGIQTRE.js.map +1 -0
  10. package/dist/{AgentSessionEventTimelineChart-CGCU7WBK.js → AgentSessionEventTimelineChart-GNF4VOUT.js} +144 -57
  11. package/dist/AgentSessionEventTimelineChart-GNF4VOUT.js.map +1 -0
  12. package/dist/{AgentSessions-3MPDZASK.js → AgentSessions-5OTF2BUW.js} +72 -24
  13. package/dist/AgentSessions-5OTF2BUW.js.map +1 -0
  14. package/dist/{ConnectorSettings-MXFRWWR6.js → ConnectorSettings-HDKGLDCY.js} +162 -126
  15. package/dist/ConnectorSettings-HDKGLDCY.js.map +1 -0
  16. package/dist/{DockLayout-LM4AFMFY.js → DockLayout-D2FPQCAL.js} +10 -10
  17. package/dist/{DrawerLayout-JR3O6RRB.js → DrawerLayout-HUV7RAWL.js} +14 -12
  18. package/dist/DrawerLayout-HUV7RAWL.js.map +1 -0
  19. package/dist/{ModelSettings-G7IFNC2Y.js → ModelSettings-VNQ7HPKH.js} +22 -28
  20. package/dist/ModelSettings-VNQ7HPKH.js.map +1 -0
  21. package/dist/OpenUiFenceBlock-KPZFLUSC.js +9 -0
  22. package/dist/{SandboxSettings-NXAANMAX.js → SandboxSettings-ZLXGMFBF.js} +17 -21
  23. package/dist/SandboxSettings-ZLXGMFBF.js.map +1 -0
  24. package/dist/SchedulesPage-QKYI2Z3A.js +15 -0
  25. package/dist/{SettingsBuilder-L34IQ56S.js → SettingsBuilder-RVVYXOJW.js} +9 -9
  26. package/dist/{SettingsBuilder-L34IQ56S.js.map → SettingsBuilder-RVVYXOJW.js.map} +1 -1
  27. package/dist/{ShellRouteSync-CEBETGEJ.js → ShellRouteSync-SJXFKUAJ.js} +171 -26
  28. package/dist/ShellRouteSync-SJXFKUAJ.js.map +1 -0
  29. package/dist/{SidebarLayout-A2HJPPHS.js → SidebarLayout-KYA76FQ7.js} +80 -58
  30. package/dist/SidebarLayout-KYA76FQ7.js.map +1 -0
  31. package/dist/{SkillSettings-FGGMSUNO.js → SkillSettings-7OHT7FPI.js} +24 -22
  32. package/dist/SkillSettings-7OHT7FPI.js.map +1 -0
  33. package/dist/{TrueForgeUIWithRouter-MZVJWJMB.js → TrueForgeUIWithRouter-LKG4XLW6.js} +9 -9
  34. package/dist/{WidgetLayout-6QM45OQQ.js → WidgetLayout-W2RGGOQ3.js} +10 -10
  35. package/dist/{chunk-U7KURWW3.js → chunk-2GIZY3JJ.js} +276 -54
  36. package/dist/chunk-2GIZY3JJ.js.map +1 -0
  37. package/dist/{chunk-WVE3F724.js → chunk-2QTH6JHX.js} +21 -4
  38. package/dist/chunk-2QTH6JHX.js.map +1 -0
  39. package/dist/{chunk-XAU7QFG3.js → chunk-3ZW74FHC.js} +68 -256
  40. package/dist/chunk-3ZW74FHC.js.map +1 -0
  41. package/dist/{chunk-FJW36PD7.js → chunk-67ZO7Z2W.js} +28 -24
  42. package/dist/chunk-67ZO7Z2W.js.map +1 -0
  43. package/dist/{chunk-QC42MLAK.js → chunk-7AAO4UDQ.js} +4 -3
  44. package/dist/chunk-7AAO4UDQ.js.map +1 -0
  45. package/dist/{chunk-MPNSO7E6.js → chunk-CG75X77Q.js} +2 -2
  46. package/dist/chunk-DPPOEFBD.js +517 -0
  47. package/dist/chunk-DPPOEFBD.js.map +1 -0
  48. package/dist/{chunk-6O6FWUDW.js → chunk-EPAL2HD5.js} +641 -388
  49. package/dist/chunk-EPAL2HD5.js.map +1 -0
  50. package/dist/{chunk-ZTMKFZQ3.js → chunk-GG23N2GW.js} +5099 -3295
  51. package/dist/chunk-GG23N2GW.js.map +1 -0
  52. package/dist/chunk-JCL3Q7RW.js +587 -0
  53. package/dist/chunk-JCL3Q7RW.js.map +1 -0
  54. package/dist/{chunk-M62XY4NC.js → chunk-JKEBMGLH.js} +235 -108
  55. package/dist/chunk-JKEBMGLH.js.map +1 -0
  56. package/dist/{chunk-DMMZSZTN.js → chunk-KSGNKS2D.js} +60 -16
  57. package/dist/chunk-KSGNKS2D.js.map +1 -0
  58. package/dist/{chunk-CYHJDKFB.js → chunk-PCI6VMB5.js} +189 -52
  59. package/dist/chunk-PCI6VMB5.js.map +1 -0
  60. package/dist/{chunk-ZKNUMH2M.js → chunk-PQ7VWBQQ.js} +13 -11
  61. package/dist/chunk-PQ7VWBQQ.js.map +1 -0
  62. package/dist/chunk-T6QQV5LK.js +238 -0
  63. package/dist/chunk-T6QQV5LK.js.map +1 -0
  64. package/dist/{createTrueFoundryServer-CmZnBh_l.d.ts → createTrueFoundryServer-B_FYhSdn.d.ts} +8 -5
  65. package/dist/index.d.ts +369 -108
  66. package/dist/index.js +69 -488
  67. package/dist/index.js.map +1 -1
  68. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +49 -14
  69. package/dist/plugins/trueforge-agent-server-adapter/index.js +138 -50
  70. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  71. package/dist/styles.css +1 -1
  72. package/package.json +5 -4
  73. package/dist/AgentCodeSnippets-NZOFJE57.js.map +0 -1
  74. package/dist/AgentMetricChart-JPU3MFQ2.js +0 -15
  75. package/dist/AgentOverview-EEBHJC32.js.map +0 -1
  76. package/dist/AgentSessionEventTimeline-26Z6IB3B.js.map +0 -1
  77. package/dist/AgentSessionEventTimelineChart-CGCU7WBK.js.map +0 -1
  78. package/dist/AgentSessions-3MPDZASK.js.map +0 -1
  79. package/dist/ConnectorSettings-MXFRWWR6.js.map +0 -1
  80. package/dist/DrawerLayout-JR3O6RRB.js.map +0 -1
  81. package/dist/ModelSettings-G7IFNC2Y.js.map +0 -1
  82. package/dist/OpenUiFenceBlock-2TV5TQ6P.js +0 -9
  83. package/dist/SandboxSettings-NXAANMAX.js.map +0 -1
  84. package/dist/SchedulesPage-KKLUDO6B.js +0 -15
  85. package/dist/ShellRouteSync-CEBETGEJ.js.map +0 -1
  86. package/dist/SidebarLayout-A2HJPPHS.js.map +0 -1
  87. package/dist/SkillSettings-FGGMSUNO.js.map +0 -1
  88. package/dist/chunk-2XPPBEYF.js +0 -74
  89. package/dist/chunk-2XPPBEYF.js.map +0 -1
  90. package/dist/chunk-6O6FWUDW.js.map +0 -1
  91. package/dist/chunk-7Z2C2K7F.js +0 -578
  92. package/dist/chunk-7Z2C2K7F.js.map +0 -1
  93. package/dist/chunk-CYHJDKFB.js.map +0 -1
  94. package/dist/chunk-DMMZSZTN.js.map +0 -1
  95. package/dist/chunk-FJW36PD7.js.map +0 -1
  96. package/dist/chunk-M62XY4NC.js.map +0 -1
  97. package/dist/chunk-QC42MLAK.js.map +0 -1
  98. package/dist/chunk-SFZNIO6U.js +0 -18
  99. package/dist/chunk-SFZNIO6U.js.map +0 -1
  100. package/dist/chunk-U7KURWW3.js.map +0 -1
  101. package/dist/chunk-WVE3F724.js.map +0 -1
  102. package/dist/chunk-XAU7QFG3.js.map +0 -1
  103. package/dist/chunk-ZKNUMH2M.js.map +0 -1
  104. package/dist/chunk-ZTMKFZQ3.js.map +0 -1
  105. /package/dist/{AgentMetricChart-JPU3MFQ2.js.map → AgentMetricChart-UPGSJ2WP.js.map} +0 -0
  106. /package/dist/{DockLayout-LM4AFMFY.js.map → DockLayout-D2FPQCAL.js.map} +0 -0
  107. /package/dist/{OpenUiFenceBlock-2TV5TQ6P.js.map → OpenUiFenceBlock-KPZFLUSC.js.map} +0 -0
  108. /package/dist/{SchedulesPage-KKLUDO6B.js.map → SchedulesPage-QKYI2Z3A.js.map} +0 -0
  109. /package/dist/{TrueForgeUIWithRouter-MZVJWJMB.js.map → TrueForgeUIWithRouter-LKG4XLW6.js.map} +0 -0
  110. /package/dist/{WidgetLayout-6QM45OQQ.js.map → WidgetLayout-W2RGGOQ3.js.map} +0 -0
  111. /package/dist/{chunk-MPNSO7E6.js.map → chunk-CG75X77Q.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,20 +1,21 @@
1
1
  import * as react from 'react';
2
- import react__default, { CSSProperties, ReactNode, FC, SVGProps, ComponentType, ComponentPropsWithRef, ComponentProps, HTMLAttributes, ComponentPropsWithoutRef, PropsWithChildren } from 'react';
2
+ import react__default, { CSSProperties, ReactNode, FC, SVGProps, ComponentType, ComponentPropsWithRef, ComponentProps, HTMLAttributes, ReactElement, MouseEventHandler, ComponentPropsWithoutRef, PropsWithChildren } from 'react';
3
3
  import { LucideIcon } from 'lucide-react';
4
- import { SessionEventItem, AgentDetail, AgentMetricMeter, AgentMetricChartDefinition, AgentMetricGraph, CodeSnippet, AgentLibraryEntry, AgentSpec, ModelSelection, ConnectorState, AgentSkill, McpToolSelection, AgentRuntimeConfig, Schedule, ScheduleRun, ScheduleStatus, CatalogServer, AgentUIServer, AgentMetricsServer, AgentSessionsServer, ScheduleServer, AgentBuilderCapabilitiesResponse } from '@truefoundry/assistant-ui-runtime/server';
5
- export { AgentBuilderCapabilitiesResponse, AgentBuilderServer, AgentChatServer, AgentDetail, AgentLibraryEntry, AgentMetricChartData, AgentMetricChartDataRequest, AgentMetricChartDefinition, AgentMetricChartType, AgentMetricGraph, AgentMetricGraphLine, AgentMetricMeter, AgentMetricPoint, AgentMetricRangeRequest, AgentMetricsServer, AgentSessionsServer, AgentSkill, AgentSpec, AgentUIServer, ApprovalDecision, AuthenticateConnectorRequest, CatalogServer, CodeSnippet, CodeSnippetSampleCode, ConnectorAuth, ConnectorAuthApiKey, ConnectorAuthNone, ConnectorAuthOAuth, ConnectorAuthPublic, ConnectorAuthPublicApiKey, ConnectorAuthPublicNone, ConnectorAuthPublicOAuth, ConnectorAuthType, ConnectorAuthenticationResult, ConnectorBase, ConnectorCatalogEntry, ConnectorCatalogServer, ConnectorConfigBase, ConnectorState, CreateConnectorRequest, CreateModelProviderRequest, CreateSandboxProviderRequest, CreateSessionRequest, CreateSkillRequest, CreateSkillRequestBase, DefinedSkill, GithubSkill, ImportGithubSkillRequest, ListResult, ListSessionEventsParams, ListSessionsOrder, ListSessionsParams, McpServerMount, Model, ModelCatalogServer, ModelEntry, ModelParams, ModelProperties, ModelProviderBase, ModelProviderCatalogEntry, ModelProviderConfigBase, ModelSelection, ModelSelectorEntry, PageParams, PreviousTurnIdInput, ProviderEntry, ProviderType, RegistrySkill, SandboxCatalogServer, SandboxProviderBase, SandboxProviderCatalogEntry, SandboxProviderConfig, SandboxProviderListEntry, SandboxSnapshotSyncStatus, SaveAgentRequest, SaveAgentResult, SearchAgentsParams, SelectRegistrySkillRequest, Session, SessionEventItem, SessionListEntry, SessionListMetrics, SkillBase, SkillCatalogEntry, SkillCatalogServer, SkillConfigBase, SkillMount, ToolBase, Turn, TurnDoneMetrics, TurnInputItem, TurnState, TurnStreamData, TurnStreamingEvent, UpdateConnectorRequest, UpdateModelProviderRequest, UpdateSandboxProviderRequest, UpdateSessionRequest, UserMessage, UserMessageContent, UserToolApprovalEvent, UserToolResponseEvent } from '@truefoundry/assistant-ui-runtime/server';
4
+ import { SessionEventItem, AgentDetail, AgentMetricMeter, AgentMetricChartDefinition, AgentMetricGraph, CodeSnippet, AgentLibraryEntry, AgentSpec, ModelSelection, ConnectorState, AgentSkill, McpToolSelection, AgentRuntimeConfig, Schedule, ScheduleRun, ScheduleStatus, CatalogServer, PermissionsServer, AgentUIServer, PermissionResourceType, ResourcePermission, AgentMetricsServer, AgentSessionsServer, ScheduleServer, AgentBuilderCapabilitiesResponse } from '@truefoundry/assistant-ui-runtime/server';
5
+ export { AgentBuilderCapabilitiesResponse, AgentBuilderServer, AgentChatServer, AgentDetail, AgentLibraryEntry, AgentMetricChartData, AgentMetricChartDataRequest, AgentMetricChartDefinition, AgentMetricChartType, AgentMetricGraph, AgentMetricGraphLine, AgentMetricMeter, AgentMetricPoint, AgentMetricRangeRequest, AgentMetricsServer, AgentSessionsServer, AgentSkill, AgentSpec, AgentUIServer, ApprovalDecision, AuthenticateConnectorRequest, CatalogServer, CodeSnippet, CodeSnippetSampleCode, ConnectorAuth, ConnectorAuthApiKey, ConnectorAuthNone, ConnectorAuthOAuth, ConnectorAuthPublic, ConnectorAuthPublicApiKey, ConnectorAuthPublicNone, ConnectorAuthPublicOAuth, ConnectorAuthType, ConnectorAuthenticationResult, ConnectorBase, ConnectorCatalogEntry, ConnectorCatalogServer, ConnectorConfigBase, ConnectorState, CreateConnectorRequest, CreateModelProviderRequest, CreateSandboxProviderRequest, CreateSessionRequest, CreateSkillRequest, CreateSkillRequestBase, CreatedBySubject, DefinedSkill, GithubSkill, ImportGithubSkillRequest, ListPermissionsRequest, ListPermissionsResponse, ListResult, ListSessionEventsParams, ListSessionsOrder, ListSessionsParams, McpServerMount, Model, ModelCatalogServer, ModelEntry, ModelParams, ModelProperties, ModelProviderBase, ModelProviderCatalogEntry, ModelProviderConfigBase, ModelSelection, ModelSelectorEntry, PageParams, PermissionResourceType, PermissionsServer, PreviousTurnIdInput, ProviderEntry, ProviderType, RegistrySkill, ResourcePermission, SandboxCatalogServer, SandboxProviderBase, SandboxProviderCatalogEntry, SandboxProviderConfig, SandboxProviderListEntry, SandboxSnapshotSyncStatus, SaveAgentRequest, SaveAgentResult, SearchAgentsParams, SelectRegistrySkillRequest, Session, SessionEventItem, SessionListEntry, SessionListMetrics, SkillBase, SkillCatalogEntry, SkillCatalogServer, SkillConfigBase, SkillMount, ToolBase, Turn, TurnDoneMetrics, TurnInputItem, TurnState, TurnStreamData, TurnStreamingEvent, UpdateConnectorRequest, UpdateModelProviderRequest, UpdateSandboxProviderRequest, UpdateSessionRequest, UserMessage, UserMessageContent, UserToolApprovalEvent, UserToolResponseEvent } from '@truefoundry/assistant-ui-runtime/server';
6
6
  import { TrueForgeApi } from '@truefoundry/trueforge-sdk';
7
7
  import { MessagePrimitive, ToolCallMessagePartComponent } from '@assistant-ui/react';
8
8
  export { AssistantState, useAui, useAuiState } from '@assistant-ui/react';
9
9
  import { UseTrueFoundryAgentRuntimeOptions, TrueFoundryAgentConfig } from '@truefoundry/assistant-ui-runtime';
10
- export { DraftAgentConfig, NamedAgentConfig, TrueFoundryAgentConfig, UseTrueFoundryAgentRuntimeOptions, mergeAgentSpec, trueFoundryAttachmentAdapter, useTrueFoundryAgentRuntime, useTrueFoundryAgentSpec, useTrueFoundryCancel, useTrueFoundryDownloadSandboxFile, useTrueFoundryHistoryPagination, useTrueFoundryMcpAuth, useTrueFoundryRespondToToolApproval, useTrueFoundryToolResponses, useTrueFoundryTurnId, useTrueFoundryUpdateAgentSpec } from '@truefoundry/assistant-ui-runtime';
11
- export { C as CreateTrueFoundryServerOptions, T as TrueFoundryServer, c as createTrueFoundryServer } from './createTrueFoundryServer-CmZnBh_l.js';
10
+ export { DraftAgentConfig, NamedAgentConfig, TrueFoundryAgentConfig, UseTrueFoundryAgentRuntimeOptions, mergeAgentSpec, trueFoundryAttachmentAdapter, useTrueFoundryAgentRuntime, useTrueFoundryAgentSpec, useTrueFoundryApprovals, useTrueFoundryCancel, useTrueFoundryDownloadSandboxFile, useTrueFoundryHistoryPagination, useTrueFoundryMcpAuth, useTrueFoundryRespondToToolApproval, useTrueFoundryToolResponses, useTrueFoundryTurnId, useTrueFoundryUpdateAgentSpec } from '@truefoundry/assistant-ui-runtime';
11
+ export { C as CreateTrueFoundryServerOptions, T as TrueFoundryServer, c as createTrueFoundryServer } from './createTrueFoundryServer-B_FYhSdn.js';
12
12
  import { PartState } from '@assistant-ui/core/react';
13
13
 
14
14
  type ThemeMode = 'light' | 'dark' | 'system';
15
15
  type ThemePreset = 'trueforge' | 'claude' | 'chatgpt' | 'gemini';
16
16
  type SemanticTokens = {
17
17
  sidebarBg: string;
18
+ sidebarText: string;
18
19
  topbarBg: string;
19
20
  primaryBg: string;
20
21
  secondaryBg: string;
@@ -459,7 +460,7 @@ type SessionMetrics = {
459
460
  toolCallFrequency: SessionMetricBarDatum[];
460
461
  };
461
462
 
462
- type LibraryAgentTab = 'overview' | 'sessions' | 'code' | 'metrics';
463
+ type LibraryAgentTab = 'overview' | 'sessions' | 'schedules' | 'code' | 'metrics';
463
464
  type SessionTimeRange = {
464
465
  startTs: number;
465
466
  endTs: number;
@@ -477,6 +478,7 @@ type AgentSessionsProps = {
477
478
  type AgentSessionListRowProps = {
478
479
  title: string;
479
480
  agentName?: string;
481
+ sourceType?: 'schedule';
480
482
  lastActivityAt: string;
481
483
  metrics: {
482
484
  totalTurns: number;
@@ -502,6 +504,8 @@ type AgentSessionDetailHeaderProps = {
502
504
  onResume?: () => void;
503
505
  /** Label for the resume action. */
504
506
  resumeLabel?: string;
507
+ /** Whether the current user may resume this session. */
508
+ canResume?: boolean;
505
509
  };
506
510
  type AgentSessionTurnHeaderProps = {
507
511
  turnNumber: number;
@@ -539,10 +543,19 @@ type AgentDetailsTabsProps = {
539
543
  activeTab: AgentDetailsTab;
540
544
  onTabChange: (tab: AgentDetailsTab) => void;
541
545
  showMetrics?: boolean;
546
+ showSchedules?: boolean;
547
+ end?: ReactNode;
542
548
  };
543
549
  type AgentMetricsProps = {
544
550
  agentId: string;
545
- };
551
+ showTimeRangeFilter?: boolean;
552
+ } & ({
553
+ timeRange: SessionTimeRange;
554
+ onTimeRangeChange: (range: SessionTimeRange) => void;
555
+ } | {
556
+ timeRange?: undefined;
557
+ onTimeRangeChange?: undefined;
558
+ });
546
559
  type AgentMetricChartResult = {
547
560
  definition: AgentMetricChartDefinition;
548
561
  graphs?: AgentMetricGraph[];
@@ -556,6 +569,10 @@ type AgentMetricsViewProps = {
556
569
  chartsError?: string;
557
570
  timeRange: SessionTimeRange;
558
571
  onTimeRangeChange: (range: SessionTimeRange) => void;
572
+ showTimeRangeFilter?: boolean;
573
+ };
574
+ type AgentMetricStatisticsProps = {
575
+ meters: AgentMetricMeter[];
559
576
  };
560
577
  type AgentMetricsTimeRangeFilterProps = {
561
578
  timeRange: SessionTimeRange;
@@ -568,13 +585,14 @@ type AgentMetricChartProps = {
568
585
  graph?: AgentMetricGraph;
569
586
  definition: AgentMetricChartDefinition;
570
587
  error?: string;
588
+ colorIndex?: number;
571
589
  };
572
590
  type AgentOverviewProps = {
573
591
  detail: AgentDetail;
574
592
  };
575
593
  type AgentOverviewCardProps = {
576
594
  title: string;
577
- icon: string;
595
+ icon?: string;
578
596
  count?: number;
579
597
  children: ReactNode;
580
598
  };
@@ -611,7 +629,7 @@ declare module '../../theme/SlotsProvider.js' {
611
629
  }
612
630
  }
613
631
 
614
- declare function AgentDetailsTabs({ activeTab, onTabChange, showMetrics }: AgentDetailsTabsProps): react.JSX.Element;
632
+ declare function AgentDetailsTabs({ activeTab, onTabChange, showMetrics, showSchedules, end, }: AgentDetailsTabsProps): react.JSX.Element;
615
633
  declare module '../../theme/SlotsProvider.js' {
616
634
  interface AtomSlots {
617
635
  AgentDetailsTabs: typeof AgentDetailsTabs;
@@ -639,9 +657,11 @@ declare module '../../theme/SlotsProvider.js' {
639
657
  }
640
658
  }
641
659
 
642
- declare function AgentMetricsView({ meters, meterError, charts, chartsLoading, chartsError, timeRange, onTimeRangeChange, }: AgentMetricsViewProps): react.JSX.Element;
660
+ declare function AgentMetricStatistics({ meters }: AgentMetricStatisticsProps): react.JSX.Element;
661
+ declare function AgentMetricsView({ meters, meterError, charts, chartsLoading, chartsError, timeRange, onTimeRangeChange, showTimeRangeFilter, }: AgentMetricsViewProps): react.JSX.Element;
643
662
  declare module '../../theme/SlotsProvider.js' {
644
663
  interface AtomSlots {
664
+ AgentMetricStatistics: ComponentType<AgentMetricStatisticsProps>;
645
665
  AgentMetricsView: ComponentType<AgentMetricsViewProps>;
646
666
  }
647
667
  }
@@ -653,14 +673,14 @@ declare module '../../theme/SlotsProvider.js' {
653
673
  }
654
674
  }
655
675
 
656
- declare function AgentSessionDetailHeader({ title, sessionId, agentId, createdAt, view, onClose, resumeHref, onResume, resumeLabel, }: AgentSessionDetailHeaderProps): react.JSX.Element;
676
+ declare function AgentSessionDetailHeader({ title, sessionId, agentId, createdAt, view, onClose, resumeHref, onResume, resumeLabel, canResume, }: AgentSessionDetailHeaderProps): react.JSX.Element;
657
677
  declare module '../../theme/SlotsProvider.js' {
658
678
  interface AtomSlots {
659
679
  AgentSessionDetailHeader: typeof AgentSessionDetailHeader;
660
680
  }
661
681
  }
662
682
 
663
- declare function AgentSessionListRow({ title, agentName, lastActivityAt, metrics, active, onSelect, }: AgentSessionListRowProps): react.JSX.Element;
683
+ declare function AgentSessionListRow({ title, agentName, sourceType, lastActivityAt, metrics, active, onSelect, }: AgentSessionListRowProps): react.JSX.Element;
664
684
  declare module '../../theme/SlotsProvider.js' {
665
685
  interface AtomSlots {
666
686
  AgentSessionListRow: typeof AgentSessionListRow;
@@ -708,12 +728,18 @@ type AgentsLibraryProps = {
708
728
  };
709
729
  type AgentScheduleSummary = {
710
730
  count: number;
711
- hasPaused: boolean;
731
+ pausedCount: number;
732
+ activeNames: string[];
733
+ pausedNames: string[];
712
734
  };
713
735
  type AgentLibraryRowProps = {
714
736
  agent: AgentLibraryEntry;
715
737
  canMutate: boolean;
738
+ canUseAgent?: boolean;
739
+ canManageAgent?: boolean;
740
+ canDeleteAgent?: boolean;
716
741
  canManageSchedules: boolean;
742
+ showCreatedBy?: boolean;
717
743
  scheduleSummary?: AgentScheduleSummary | null;
718
744
  onOpenSchedules?: () => void;
719
745
  onCreateSchedule?: () => void;
@@ -722,7 +748,7 @@ type AgentLibraryRowProps = {
722
748
  onEdit: () => void;
723
749
  onManageSchedules?: () => void;
724
750
  };
725
- declare function AgentLibraryRow({ agent, canMutate, canManageSchedules, scheduleSummary, onOpenSchedules, onCreateSchedule, onOpen, onTry, onEdit, onManageSchedules, }: AgentLibraryRowProps): react.JSX.Element;
751
+ declare function AgentLibraryRow({ agent, canMutate, canUseAgent, canManageAgent, canDeleteAgent, canManageSchedules, showCreatedBy, scheduleSummary, onOpenSchedules, onCreateSchedule, onOpen, onTry, onEdit, onManageSchedules, }: AgentLibraryRowProps): react.JSX.Element;
726
752
  declare function AgentsLibrary({ onSelectAgent }: AgentsLibraryProps): react.JSX.Element | null;
727
753
  declare module '../theme/SlotsProvider.js' {
728
754
  interface AtomSlots {
@@ -742,6 +768,25 @@ declare module '../theme/SlotsProvider.js' {
742
768
  }
743
769
  }
744
770
 
771
+ type ApprovalNavBannerProps = {
772
+ total: number;
773
+ /** 1-based index for display, e.g. 1 in "(1/4)". */
774
+ current: number;
775
+ canPrev: boolean;
776
+ canNext: boolean;
777
+ onPrev: () => void;
778
+ onNext: () => void;
779
+ /** Scroll the thread to the currently selected approval. */
780
+ onFocusCurrent: () => void;
781
+ className?: string;
782
+ };
783
+ declare function ApprovalNavBanner({ total, current, canPrev, canNext, onPrev, onNext, onFocusCurrent, className, }: ApprovalNavBannerProps): react.JSX.Element;
784
+ declare module '../theme/SlotsProvider.js' {
785
+ interface AtomSlots {
786
+ ApprovalNavBanner: typeof ApprovalNavBanner;
787
+ }
788
+ }
789
+
745
790
  type AssistantMessageBubbleProps = {
746
791
  children: ReactNode;
747
792
  error?: ReactNode;
@@ -805,8 +850,10 @@ type ChatFileDownloadProps = {
805
850
  fileDownloadBaseUrl?: string;
806
851
  onDownloadArtifact?: (path: string, filename: string) => Promise<void>;
807
852
  readOnly?: boolean;
853
+ /** Shown on hover when `readOnly` is true. */
854
+ readOnlyTooltip?: string;
808
855
  };
809
- declare function ChatFileDownload({ files, fileDownloadBaseUrl, onDownloadArtifact, readOnly }: ChatFileDownloadProps): react.JSX.Element;
856
+ declare function ChatFileDownload({ files, fileDownloadBaseUrl, onDownloadArtifact, readOnly, readOnlyTooltip, }: ChatFileDownloadProps): react.JSX.Element;
810
857
  declare module '../theme/SlotsProvider.js' {
811
858
  interface AtomSlots {
812
859
  ChatFileDownload: typeof ChatFileDownload;
@@ -945,12 +992,13 @@ type AgentConfigEditorsProps = {
945
992
  sandboxAvailable?: boolean;
946
993
  instructions?: string;
947
994
  onInstructionsSave?: (draft: AgentInstructionsDraft) => void;
995
+ loadMcpConnector?: (connectorId: string) => Promise<ConnectorState | undefined>;
948
996
  loadMcpTools?: (connectorId: string) => Promise<McpToolSelection[]>;
949
997
  onRefreshConnectors?: () => Promise<void>;
950
998
  onChange: (spec: AgentSpec) => void;
951
999
  onClose: () => void;
952
1000
  };
953
- declare function AgentConfigEditors({ editor, spec, models, connectors, skills, loading, error, skillsDisabled, sandboxAvailable, instructions, onInstructionsSave, loadMcpTools, onRefreshConnectors, onChange, onClose, }: AgentConfigEditorsProps): react.JSX.Element;
1001
+ declare function AgentConfigEditors({ editor, spec, models, connectors, skills, loading, error, skillsDisabled, sandboxAvailable, instructions, onInstructionsSave, loadMcpConnector, loadMcpTools, onRefreshConnectors, onChange, onClose, }: AgentConfigEditorsProps): react.JSX.Element;
954
1002
  declare module '../../theme/SlotsProvider.js' {
955
1003
  interface AtomSlots {
956
1004
  AgentConfigEditors: typeof AgentConfigEditors;
@@ -960,19 +1008,27 @@ declare module '../../theme/SlotsProvider.js' {
960
1008
  type AgentConfigPanelProps = {
961
1009
  spec: AgentSpec;
962
1010
  model?: ModelSelection;
1011
+ models: ModelSelection[];
1012
+ modelsLoading: boolean;
1013
+ modelsError: string | null;
1014
+ skills?: AgentSkill[];
963
1015
  skillsAvailable: boolean;
964
1016
  instructions: string;
965
1017
  onOpenEditor: (editor: AgentConfigEditor) => void;
966
1018
  onChange?: (spec: AgentSpec) => void;
967
1019
  onClose?: () => void;
1020
+ disabled?: boolean;
968
1021
  };
969
- declare function AgentConfigSection({ title, description, onEdit, children, }: {
970
- title: string;
1022
+ declare function AgentConfigSection({ title, description, icon, actionIcon, actionLabel, onEdit, children, }: {
1023
+ title?: string;
971
1024
  description?: string;
1025
+ icon?: string;
1026
+ actionIcon?: string;
1027
+ actionLabel?: string;
972
1028
  onEdit?: () => void;
973
- children: ReactNode;
1029
+ children?: ReactNode;
974
1030
  }): react.JSX.Element;
975
- declare function AgentConfigPanel({ spec, model, skillsAvailable, instructions, onOpenEditor, onChange, onClose, }: AgentConfigPanelProps): react.JSX.Element;
1031
+ declare function AgentConfigPanel({ spec, model, models, modelsLoading, modelsError, skills: catalogSkills, skillsAvailable, instructions, onOpenEditor, onChange, onClose, disabled, }: AgentConfigPanelProps): react.JSX.Element;
976
1032
  declare module '../../theme/SlotsProvider.js' {
977
1033
  interface AtomSlots {
978
1034
  AgentConfigPanel: typeof AgentConfigPanel;
@@ -980,21 +1036,35 @@ declare module '../../theme/SlotsProvider.js' {
980
1036
  }
981
1037
  }
982
1038
 
1039
+ type AgentCustomParametersEditorProps = {
1040
+ value: Record<string, unknown>;
1041
+ reservedKeys: ReadonlySet<string>;
1042
+ onChange: (value: Record<string, unknown>) => void;
1043
+ };
1044
+ declare function AgentCustomParametersEditor({ value, reservedKeys, onChange }: AgentCustomParametersEditorProps): react.JSX.Element;
1045
+ declare module '../../theme/SlotsProvider.js' {
1046
+ interface AtomSlots {
1047
+ AgentCustomParametersEditor: typeof AgentCustomParametersEditor;
1048
+ }
1049
+ }
1050
+
983
1051
  type AgentMcpEditorContentProps = {
984
1052
  spec: AgentSpec;
985
1053
  connectors: ConnectorState[];
986
1054
  query: string;
987
1055
  activeConnectorId: string | null;
988
1056
  tools: McpToolSelection[];
1057
+ connectorLoading: boolean;
1058
+ connectorError: string | null;
989
1059
  toolsLoading: boolean;
990
1060
  toolsError: string | null;
991
1061
  onQueryChange: (query: string) => void;
992
1062
  onSelectConnector: (connectorId: string) => void;
993
1063
  onRetryTools: () => void;
994
- onRefreshConnectors?: () => Promise<void>;
1064
+ onRefreshConnector?: () => void;
995
1065
  onChange: (spec: AgentSpec) => void;
996
1066
  };
997
- declare function AgentMcpEditorContent({ spec, connectors, query, activeConnectorId, tools, toolsLoading, toolsError, onQueryChange, onSelectConnector, onRetryTools, onRefreshConnectors, onChange, }: AgentMcpEditorContentProps): react.JSX.Element;
1067
+ declare function AgentMcpEditorContent({ spec, connectors, query, activeConnectorId, tools, connectorLoading, connectorError, toolsLoading, toolsError, onQueryChange, onSelectConnector, onRetryTools, onRefreshConnector, onChange, }: AgentMcpEditorContentProps): react.JSX.Element;
998
1068
  declare module '../../theme/SlotsProvider.js' {
999
1069
  interface AtomSlots {
1000
1070
  AgentMcpEditorContent: typeof AgentMcpEditorContent;
@@ -1020,7 +1090,6 @@ declare module '../../theme/SlotsProvider.js' {
1020
1090
  }
1021
1091
 
1022
1092
  type AgentModelEditorContentProps = {
1023
- editor: 'model' | 'model-settings';
1024
1093
  spec: AgentSpec;
1025
1094
  models: ModelSelection[];
1026
1095
  loading: boolean;
@@ -1029,7 +1098,7 @@ type AgentModelEditorContentProps = {
1029
1098
  onQueryChange: (query: string) => void;
1030
1099
  onChange: (spec: AgentSpec) => void;
1031
1100
  };
1032
- declare function AgentModelEditorContent({ editor, spec, models, loading, error, query, onQueryChange, onChange, }: AgentModelEditorContentProps): react.JSX.Element;
1101
+ declare function AgentModelEditorContent({ spec, models, loading, error, query, onQueryChange, onChange, }: AgentModelEditorContentProps): react.JSX.Element;
1033
1102
  declare module '../../theme/SlotsProvider.js' {
1034
1103
  interface AtomSlots {
1035
1104
  AgentModelEditorContent: typeof AgentModelEditorContent;
@@ -1057,12 +1126,14 @@ type AgentResourceConfigModalProps = {
1057
1126
  query: string;
1058
1127
  activeConnectorId: string | null;
1059
1128
  tools: McpToolSelection[];
1129
+ connectorLoading: boolean;
1130
+ connectorError: string | null;
1060
1131
  toolsLoading: boolean;
1061
1132
  toolsError: string | null;
1062
1133
  onQueryChange: (query: string) => void;
1063
1134
  onSelectConnector: (connectorId: string) => void;
1064
1135
  onRetryTools: () => void;
1065
- onRefreshConnectors?: () => Promise<void>;
1136
+ onRefreshConnector?: () => void;
1066
1137
  onChange: (spec: AgentSpec) => void;
1067
1138
  onClose: () => void;
1068
1139
  };
@@ -1082,12 +1153,14 @@ type AgentResourceEditorContentProps = {
1082
1153
  query: string;
1083
1154
  activeConnectorId: string | null;
1084
1155
  tools: McpToolSelection[];
1156
+ connectorLoading: boolean;
1157
+ connectorError: string | null;
1085
1158
  toolsLoading: boolean;
1086
1159
  toolsError: string | null;
1087
1160
  onQueryChange: (query: string) => void;
1088
1161
  onSelectConnector: (connectorId: string) => void;
1089
1162
  onRetryTools: () => void;
1090
- onRefreshConnectors?: () => Promise<void>;
1163
+ onRefreshConnector?: () => void;
1091
1164
  onChange: (spec: AgentSpec) => void;
1092
1165
  };
1093
1166
  declare function AgentResourceEditorContent(props: AgentResourceEditorContentProps): react.JSX.Element;
@@ -1097,6 +1170,20 @@ declare module '../../theme/SlotsProvider.js' {
1097
1170
  }
1098
1171
  }
1099
1172
 
1173
+ type AgentRuntimeConfigDrawerProps = {
1174
+ open: boolean;
1175
+ spec: AgentSpec;
1176
+ sandboxAvailable: boolean;
1177
+ onChange: (spec: AgentSpec) => void;
1178
+ onClose: () => void;
1179
+ };
1180
+ declare function AgentRuntimeConfigDrawer({ open, spec, sandboxAvailable, onChange, onClose, }: AgentRuntimeConfigDrawerProps): react.JSX.Element;
1181
+ declare module '../../theme/SlotsProvider.js' {
1182
+ interface AtomSlots {
1183
+ AgentRuntimeConfigDrawer: typeof AgentRuntimeConfigDrawer;
1184
+ }
1185
+ }
1186
+
1100
1187
  type AgentRuntimeConfigFieldsProps = {
1101
1188
  value: AgentRuntimeConfig;
1102
1189
  sandboxAvailable: boolean;
@@ -1113,20 +1200,6 @@ declare module '../../theme/SlotsProvider.js' {
1113
1200
  }
1114
1201
  }
1115
1202
 
1116
- type AgentRuntimeConfigModalProps = {
1117
- open: boolean;
1118
- spec: AgentSpec;
1119
- sandboxAvailable: boolean;
1120
- onChange: (spec: AgentSpec) => void;
1121
- onClose: () => void;
1122
- };
1123
- declare function AgentRuntimeConfigModal({ open, spec, sandboxAvailable, onChange, onClose, }: AgentRuntimeConfigModalProps): react.JSX.Element;
1124
- declare module '../../theme/SlotsProvider.js' {
1125
- interface AtomSlots {
1126
- AgentRuntimeConfigModal: typeof AgentRuntimeConfigModal;
1127
- }
1128
- }
1129
-
1130
1203
  type AgentRuntimeEditorContentProps = {
1131
1204
  spec: AgentSpec;
1132
1205
  sandboxAvailable: boolean;
@@ -1184,6 +1257,23 @@ declare module '../../theme/SlotsProvider.js' {
1184
1257
  }
1185
1258
  }
1186
1259
 
1260
+ type DraftComposerAction = {
1261
+ id: string;
1262
+ label: string;
1263
+ icon: string;
1264
+ onSelect: () => void;
1265
+ };
1266
+ type DraftComposerActionsMenuProps = {
1267
+ actions: DraftComposerAction[];
1268
+ disabled?: boolean;
1269
+ };
1270
+ declare function DraftComposerActionsMenu({ actions, disabled }: DraftComposerActionsMenuProps): react.JSX.Element | null;
1271
+ declare module '../../theme/SlotsProvider.js' {
1272
+ interface AtomSlots {
1273
+ DraftComposerActionsMenu: typeof DraftComposerActionsMenu;
1274
+ }
1275
+ }
1276
+
1187
1277
  declare function DraftComposerLeftSection({ disabled, isRunning, onAttach }: ComposerLeftSectionProps): react.JSX.Element;
1188
1278
  declare function DraftComposerRightSection({ disabled, isRunning }: ComposerRightSectionProps): react.JSX.Element;
1189
1279
  declare module '../../theme/SlotsProvider.js' {
@@ -1193,9 +1283,13 @@ declare module '../../theme/SlotsProvider.js' {
1193
1283
  }
1194
1284
  }
1195
1285
 
1196
- declare function CatalogRow({ title, description, checked, disabled, onToggle, onActivate, action, }: {
1286
+ declare function CatalogRow({ title, description, badge, logo, fallbackIcon, checked, disabled, onToggle, onActivate, action, }: {
1197
1287
  title: string;
1198
1288
  description?: string;
1289
+ badge?: ReactNode;
1290
+ /** Catalog logo URL; when absent, `fallbackIcon` (or the title initial) is shown. */
1291
+ logo?: string | undefined;
1292
+ fallbackIcon?: string;
1199
1293
  checked: boolean;
1200
1294
  disabled?: boolean;
1201
1295
  onToggle: () => void;
@@ -1242,9 +1336,11 @@ type MarkdownProps = {
1242
1336
  onDownloadArtifact?: (path: string, filename: string) => Promise<void>;
1243
1337
  /** When true, download actions in sandbox artifact blocks are hidden/disabled. */
1244
1338
  readOnly?: boolean;
1339
+ /** Shown on hover over sandbox artifact filenames when `readOnly` is true. */
1340
+ sandboxDownloadReadOnlyTooltip?: string;
1245
1341
  className?: string;
1246
1342
  };
1247
- declare function Markdown({ content, isStreaming, fileDownloadBaseUrl, onDownloadArtifact, readOnly, className, }: MarkdownProps): react.JSX.Element;
1343
+ declare function Markdown({ content, isStreaming, fileDownloadBaseUrl, onDownloadArtifact, readOnly, sandboxDownloadReadOnlyTooltip, className, }: MarkdownProps): react.JSX.Element;
1248
1344
  declare module '../theme/SlotsProvider.js' {
1249
1345
  interface AtomSlots {
1250
1346
  Markdown: typeof Markdown;
@@ -1308,13 +1404,29 @@ declare module '../theme/SlotsProvider.js' {
1308
1404
  }
1309
1405
  }
1310
1406
 
1407
+ type PermissionGuardProps = {
1408
+ allowed: boolean;
1409
+ children: ReactElement<{
1410
+ disabled?: boolean;
1411
+ }>;
1412
+ deniedMessage?: string;
1413
+ };
1414
+ declare function PermissionGuard({ allowed, children, deniedMessage, }: PermissionGuardProps): react.JSX.Element;
1415
+ declare module '../theme/SlotsProvider.js' {
1416
+ interface AtomSlots {
1417
+ PermissionGuard: typeof PermissionGuard;
1418
+ }
1419
+ }
1420
+
1311
1421
  type SandboxArtifactDownloadProps = {
1312
1422
  code: string;
1313
1423
  fileDownloadBaseUrl?: string;
1314
1424
  onDownloadArtifact?: (path: string, filename: string) => Promise<void>;
1315
1425
  readOnly?: boolean;
1426
+ /** Shown on hover when `readOnly` is true. */
1427
+ sandboxDownloadReadOnlyTooltip?: string;
1316
1428
  };
1317
- declare function SandboxArtifactDownload({ code, fileDownloadBaseUrl, onDownloadArtifact, readOnly, }: SandboxArtifactDownloadProps): react.JSX.Element | null;
1429
+ declare function SandboxArtifactDownload({ code, fileDownloadBaseUrl, onDownloadArtifact, readOnly, sandboxDownloadReadOnlyTooltip, }: SandboxArtifactDownloadProps): react.JSX.Element | null;
1318
1430
  declare module '../theme/SlotsProvider.js' {
1319
1431
  interface AtomSlots {
1320
1432
  SandboxArtifactDownload: typeof SandboxArtifactDownload;
@@ -1337,6 +1449,8 @@ type ToolCallCardProps = {
1337
1449
  showResponseLine?: boolean;
1338
1450
  responseIcon?: ReactNode;
1339
1451
  approvalSlot?: ReactNode;
1452
+ /** When set, this card is the scroll/flash target for approval banner navigation. */
1453
+ approvalId?: string;
1340
1454
  requestSlot?: ReactNode;
1341
1455
  responseSlot?: ReactNode;
1342
1456
  highlightCard?: boolean;
@@ -1344,7 +1458,7 @@ type ToolCallCardProps = {
1344
1458
  mcpServerName?: string;
1345
1459
  dataTestPrefix?: string;
1346
1460
  };
1347
- declare function ToolCallCard({ icon, iconClassName, iconVariant, toolName, expanded, onToggle, awaiting, awaitingText, status: explicitStatus, exitCode, showExpandChevron, showResponseLine, approvalSlot, requestSlot, responseSlot, highlightCard, className, mcpServerName: _mcpServerName, dataTestPrefix, }: ToolCallCardProps): react.JSX.Element;
1461
+ declare function ToolCallCard({ icon, iconClassName, iconVariant, toolName, expanded, onToggle, awaiting, awaitingText, status: explicitStatus, exitCode, showExpandChevron, showResponseLine, approvalSlot, approvalId, requestSlot, responseSlot, highlightCard, className, mcpServerName: _mcpServerName, dataTestPrefix, }: ToolCallCardProps): react.JSX.Element;
1348
1462
  declare module '../theme/SlotsProvider.js' {
1349
1463
  interface AtomSlots {
1350
1464
  ToolCallCard: typeof ToolCallCard;
@@ -1366,10 +1480,13 @@ type SandboxToolCallCardProps = {
1366
1480
  hasContent?: boolean;
1367
1481
  onViewModeChange?: (viewMode: 'terminal' | 'code') => void;
1368
1482
  durationText?: string;
1483
+ approvalSlot?: ReactNode;
1484
+ /** When set, this card is the scroll/flash target for approval banner navigation. */
1485
+ approvalId?: string;
1369
1486
  dataTestPrefix?: string;
1370
1487
  className?: string;
1371
1488
  };
1372
- declare function SandboxToolCallCard({ name, intent, status, expanded, onToggle, command, exitCode, argsJson, resultText, resultJson, viewMode, hasContent, onViewModeChange, durationText, dataTestPrefix, className, }: SandboxToolCallCardProps): react.JSX.Element;
1489
+ declare function SandboxToolCallCard({ name, intent, status, expanded, onToggle, command, exitCode, argsJson, resultText, resultJson, viewMode, hasContent, onViewModeChange, durationText, approvalSlot, approvalId, dataTestPrefix, className, }: SandboxToolCallCardProps): react.JSX.Element;
1373
1490
  declare module '../theme/SlotsProvider.js' {
1374
1491
  interface AtomSlots {
1375
1492
  SandboxToolCallCard: typeof SandboxToolCallCard;
@@ -1390,50 +1507,33 @@ declare module '../theme/SlotsProvider.js' {
1390
1507
  }
1391
1508
  }
1392
1509
 
1393
- type EditableMount = {
1394
- id: string;
1395
- name: string;
1396
- value: object;
1397
- };
1398
-
1399
1510
  type SaveAgentFormProps = {
1400
1511
  intent: 'create' | 'update';
1401
1512
  name: string;
1513
+ description: string;
1402
1514
  spec: AgentSpec;
1403
- modelEntry?: ModelSelection;
1404
- mcpMounts: EditableMount[];
1405
- skillMounts: EditableMount[];
1406
1515
  saving: boolean;
1407
1516
  error: string | null;
1408
1517
  onNameChange: (name: string) => void;
1409
- onChange: (spec: AgentSpec) => void;
1410
- onEdit: (editor: AgentConfigEditor) => void;
1411
- onToggleMcpPreload: (id: string) => void;
1412
- onRemoveMcp?: (id: string) => void;
1518
+ onDescriptionChange: (description: string) => void;
1413
1519
  onCancel: () => void;
1414
1520
  onSave: () => void;
1415
1521
  };
1416
- declare function SaveAgentForm({ intent, name, spec, modelEntry, mcpMounts, skillMounts, saving, error, onNameChange, onChange, onEdit, onToggleMcpPreload, onRemoveMcp, onCancel, onSave, }: SaveAgentFormProps): react.JSX.Element;
1522
+ declare function SaveAgentForm({ intent, name, description, spec, saving, error, onNameChange, onDescriptionChange, onCancel, onSave, }: SaveAgentFormProps): react.JSX.Element;
1417
1523
  declare module '../theme/SlotsProvider.js' {
1418
1524
  interface AtomSlots {
1419
1525
  SaveAgentForm: typeof SaveAgentForm;
1420
1526
  }
1421
1527
  }
1422
1528
 
1423
- type SaveAgentFormFieldsProps = {
1424
- spec: AgentSpec;
1425
- modelEntry?: ModelSelection;
1426
- mcpMounts: EditableMount[];
1427
- skillMounts: EditableMount[];
1428
- disabled: boolean;
1429
- onEdit: (editor: AgentConfigEditor) => void;
1430
- onToggleMcpPreload: (id: string) => void;
1431
- onRemoveMcp?: (id: string) => void;
1529
+ type SchedulesPageProps = {
1530
+ /** Lock the page to one agent when embedded in Agent Details. */
1531
+ agentId?: string;
1432
1532
  };
1433
- declare function SaveAgentFormFields({ spec, modelEntry, mcpMounts, skillMounts, disabled, onEdit, onToggleMcpPreload, onRemoveMcp, }: SaveAgentFormFieldsProps): react.JSX.Element;
1434
- declare module '../theme/SlotsProvider.js' {
1533
+ declare function SchedulesPage({ agentId }: SchedulesPageProps): react.JSX.Element;
1534
+ declare module '../../theme/SlotsProvider.js' {
1435
1535
  interface AtomSlots {
1436
- SaveAgentFormFields: typeof SaveAgentFormFields;
1536
+ SchedulesPage: ComponentType<SchedulesPageProps>;
1437
1537
  }
1438
1538
  }
1439
1539
 
@@ -1522,7 +1622,7 @@ type ThreadListEmptyStateProps = {
1522
1622
  };
1523
1623
  declare function ThreadListEmptyState({ message, className }: ThreadListEmptyStateProps): react.JSX.Element;
1524
1624
  type ThreadListShellProps = {
1525
- header: ReactNode;
1625
+ header?: ReactNode;
1526
1626
  children: ReactNode;
1527
1627
  className?: string;
1528
1628
  };
@@ -1653,16 +1753,28 @@ declare module '../theme/SlotsProvider.js' {
1653
1753
  }
1654
1754
  }
1655
1755
 
1756
+ type UserAvatarProps = {
1757
+ labeled?: boolean;
1758
+ className?: string;
1759
+ };
1760
+ declare function UserAvatar({ labeled, className }: UserAvatarProps): react.JSX.Element | null;
1761
+ declare module '../theme/SlotsProvider.js' {
1762
+ interface AtomSlots {
1763
+ UserAvatar: typeof UserAvatar;
1764
+ }
1765
+ }
1766
+
1656
1767
  type UserMessageActionBarProps = {
1657
1768
  isCopied: boolean;
1658
1769
  editDisabled?: boolean;
1770
+ retryDisabled?: boolean;
1659
1771
  createdAt?: Date | string;
1660
1772
  onCopy: () => void;
1661
1773
  onEdit: () => void;
1662
1774
  onRetry: () => void;
1663
1775
  className?: string;
1664
1776
  };
1665
- declare function UserMessageActionBar({ isCopied, editDisabled, createdAt, onCopy, onEdit, onRetry, className, }: UserMessageActionBarProps): react.JSX.Element;
1777
+ declare function UserMessageActionBar({ isCopied, editDisabled, retryDisabled, createdAt, onCopy, onEdit, onRetry, className, }: UserMessageActionBarProps): react.JSX.Element;
1666
1778
  declare module '../theme/SlotsProvider.js' {
1667
1779
  interface AtomSlots {
1668
1780
  UserMessageActionBar: typeof UserMessageActionBar;
@@ -1694,7 +1806,7 @@ declare module '../theme/SlotsProvider.js' {
1694
1806
  }
1695
1807
  }
1696
1808
 
1697
- declare function AgentMetricsContainer({ agentId }: AgentMetricsProps): react.JSX.Element;
1809
+ declare function AgentMetricsContainer({ agentId, timeRange: controlledTimeRange, onTimeRangeChange, showTimeRangeFilter, }: AgentMetricsProps): react.JSX.Element;
1698
1810
  declare module '../theme/SlotsProvider.js' {
1699
1811
  interface AtomSlots {
1700
1812
  AgentMetrics: ComponentType<AgentMetricsProps>;
@@ -1727,10 +1839,13 @@ declare const defaultSlots: {
1727
1839
  ComposerLeftSection: typeof ComposerLeftSection;
1728
1840
  ComposerRightSection: typeof ComposerRightSection;
1729
1841
  ComposerSendButton: typeof ComposerSendButton;
1842
+ PermissionGuard: typeof PermissionGuard;
1730
1843
  DraftComposerLeftSection: typeof DraftComposerLeftSection;
1731
1844
  DraftComposerRightSection: typeof DraftComposerRightSection;
1732
1845
  DraftAgentConfigTrigger: typeof DraftAgentConfigTrigger;
1733
1846
  DraftCapabilitiesPanel: typeof DraftCapabilitiesPanel;
1847
+ DraftComposerActionsMenu: typeof DraftComposerActionsMenu;
1848
+ AgentCustomParametersEditor: typeof AgentCustomParametersEditor;
1734
1849
  AgentConfigEditors: typeof AgentConfigEditors;
1735
1850
  AgentInstructionsDrawer: typeof AgentInstructionsDrawer;
1736
1851
  AgentModelEditorContent: typeof AgentModelEditorContent;
@@ -1743,7 +1858,7 @@ declare const defaultSlots: {
1743
1858
  AgentConfigPanel: typeof AgentConfigPanel;
1744
1859
  AgentConfigSection: typeof AgentConfigSection;
1745
1860
  AgentRuntimeConfigFields: typeof AgentRuntimeConfigFields;
1746
- AgentRuntimeConfigModal: typeof AgentRuntimeConfigModal;
1861
+ AgentRuntimeConfigDrawer: typeof AgentRuntimeConfigDrawer;
1747
1862
  AgentRuntimeEditorContent: typeof AgentRuntimeEditorContent;
1748
1863
  DraftCompositeSelector: typeof DraftCompositeSelector;
1749
1864
  CatalogRow: typeof CatalogRow;
@@ -1785,6 +1900,7 @@ declare const defaultSlots: {
1785
1900
  AgentsLibrary: typeof AgentsLibrary;
1786
1901
  AgentLibraryRow: typeof AgentLibraryRow;
1787
1902
  AgentsLibraryButton: typeof AgentsLibraryButton;
1903
+ ApprovalNavBanner: typeof ApprovalNavBanner;
1788
1904
  SessionsBrowserButton: typeof SessionsBrowserButton;
1789
1905
  AgentDetailsPage: typeof AgentDetailsPage;
1790
1906
  AgentDetailsHeader: typeof AgentDetailsHeader;
@@ -1796,6 +1912,7 @@ declare const defaultSlots: {
1796
1912
  AgentMetricsView: typeof AgentMetricsView;
1797
1913
  AgentMetricsTimeRangeFilter: typeof AgentMetricsTimeRangeFilter;
1798
1914
  AgentMetricCard: typeof AgentMetricCard;
1915
+ AgentMetricStatistics: typeof AgentMetricStatistics;
1799
1916
  AgentMetricChart: react.FunctionComponent<AgentMetricChartProps>;
1800
1917
  AgentSessionDetailHeader: typeof AgentSessionDetailHeader;
1801
1918
  AgentSessionsFilters: typeof AgentSessionsFilters;
@@ -1809,10 +1926,10 @@ declare const defaultSlots: {
1809
1926
  AgentSessions: react.FunctionComponent<AgentSessionsProps>;
1810
1927
  AgentCodeSnippets: react.FunctionComponent<AgentCodeSnippetsProps>;
1811
1928
  AgentCodeBlock: typeof AgentCodeBlock;
1929
+ SchedulesPage: react.FunctionComponent<SchedulesPageProps>;
1812
1930
  SchedulesButton: typeof SchedulesButton;
1813
1931
  SaveAgentButton: typeof SaveAgentButton;
1814
1932
  SaveAgentForm: typeof SaveAgentForm;
1815
- SaveAgentFormFields: typeof SaveAgentFormFields;
1816
1933
  SelectAgentEmptyState: typeof SelectAgentEmptyState;
1817
1934
  ClearChatButton: typeof ClearChatButton;
1818
1935
  ThreadListRowSkeleton: typeof ThreadListRowSkeleton;
@@ -1827,6 +1944,7 @@ declare const defaultSlots: {
1827
1944
  Toast: typeof Toast;
1828
1945
  ToastStack: typeof ToastStack;
1829
1946
  ShellActionsActionSlot: typeof ShellActionsActionSlot;
1947
+ UserAvatar: typeof UserAvatar;
1830
1948
  };
1831
1949
 
1832
1950
  type PresetTokens = {
@@ -1887,8 +2005,8 @@ type BottomSheetProps = {
1887
2005
  };
1888
2006
  declare function BottomSheet({ open, onOpenChange, children, className, id, 'aria-label': ariaLabel, }: BottomSheetProps): react.JSX.Element;
1889
2007
 
1890
- type AuiButtonVariant = 'default' | 'secondary' | 'ghost' | 'destructive' | 'outline';
1891
- type AuiButtonSize = 'default' | 'sm' | 'lg' | 'icon';
2008
+ type AuiButtonVariant = 'primary' | 'secondary' | 'ghost' | 'destructive';
2009
+ type AuiButtonSize = 'large' | 'small' | 'icon';
1892
2010
 
1893
2011
  type ButtonVariant = AuiButtonVariant;
1894
2012
  type ButtonSize = AuiButtonSize;
@@ -1897,6 +2015,17 @@ type ButtonProps = react__default.ButtonHTMLAttributes<HTMLButtonElement> & {
1897
2015
  size?: ButtonSize;
1898
2016
  asChild?: never;
1899
2017
  };
2018
+ type FixedVariantButtonProps = Omit<ButtonProps, 'variant'>;
2019
+ declare const Button: react__default.ForwardRefExoticComponent<react__default.ButtonHTMLAttributes<HTMLButtonElement> & {
2020
+ variant?: ButtonVariant;
2021
+ size?: ButtonSize;
2022
+ asChild?: never;
2023
+ } & react__default.RefAttributes<HTMLButtonElement>> & {
2024
+ Primary: react__default.ForwardRefExoticComponent<FixedVariantButtonProps & react__default.RefAttributes<HTMLButtonElement>>;
2025
+ Secondary: react__default.ForwardRefExoticComponent<FixedVariantButtonProps & react__default.RefAttributes<HTMLButtonElement>>;
2026
+ Ghost: react__default.ForwardRefExoticComponent<FixedVariantButtonProps & react__default.RefAttributes<HTMLButtonElement>>;
2027
+ Destructive: react__default.ForwardRefExoticComponent<FixedVariantButtonProps & react__default.RefAttributes<HTMLButtonElement>>;
2028
+ };
1900
2029
 
1901
2030
  type CenteredModalProps = {
1902
2031
  open: boolean;
@@ -1922,6 +2051,7 @@ type IconButtonProps = Omit<ButtonProps, 'size' | 'children'> & {
1922
2051
  children: react__default.ReactNode;
1923
2052
  };
1924
2053
 
2054
+ type MenuPlacement = 'top' | 'bottom';
1925
2055
  type PopoverSelectOption<T extends string> = {
1926
2056
  value: T;
1927
2057
  label: string;
@@ -1932,10 +2062,13 @@ type CommonPopoverSelectProps<T extends string> = {
1932
2062
  placeholder?: string;
1933
2063
  disabled?: boolean;
1934
2064
  className?: string;
1935
- /** Which edge of the trigger the menu opens toward. Default `bottom`. */
1936
- menuPlacement?: 'top' | 'bottom';
2065
+ menuClassName?: string;
2066
+ /** Preferred open edge; flips when that side lacks room. Default `bottom`. */
2067
+ menuPlacement?: MenuPlacement;
1937
2068
  /** When set, renders a labeled chip trigger (label | value chip + chevron). */
1938
2069
  prefix?: string;
2070
+ emptyContent?: ReactNode;
2071
+ footer?: ReactNode;
1939
2072
  'aria-label': string;
1940
2073
  };
1941
2074
  type PopoverSelectProps<T extends string> = CommonPopoverSelectProps<T> & ({
@@ -1949,6 +2082,38 @@ type PopoverSelectProps<T extends string> = CommonPopoverSelectProps<T> & ({
1949
2082
  });
1950
2083
  declare function PopoverSelect<T extends string>(props: PopoverSelectProps<T>): react.JSX.Element;
1951
2084
 
2085
+ type DropdownMenuProps = {
2086
+ trigger: react__default.ReactNode;
2087
+ children: react__default.ReactNode;
2088
+ align?: 'start' | 'end';
2089
+ side?: 'top' | 'bottom';
2090
+ className?: string;
2091
+ containerClassName?: string;
2092
+ open?: boolean;
2093
+ onOpenChange?: (open: boolean) => void;
2094
+ closeOnClick?: boolean;
2095
+ lockScroll?: boolean;
2096
+ };
2097
+
2098
+ type ResponsiveDropdownTriggerProps = {
2099
+ 'aria-controls'?: string;
2100
+ 'aria-expanded'?: boolean;
2101
+ 'aria-haspopup'?: 'dialog' | 'menu';
2102
+ onClick?: MouseEventHandler<HTMLElement>;
2103
+ };
2104
+ type ResponsiveDropdownMenuProps = Omit<DropdownMenuProps, 'children' | 'open' | 'onOpenChange' | 'trigger'> & {
2105
+ trigger: ReactElement<ResponsiveDropdownTriggerProps>;
2106
+ children: ReactNode;
2107
+ open?: boolean;
2108
+ onOpenChange?: (open: boolean) => void;
2109
+ sheetLabel: string;
2110
+ sheetClassName?: string;
2111
+ };
2112
+ /**
2113
+ * Uses dropdown chrome normally and a container-bound bottom sheet in compact layouts.
2114
+ */
2115
+ declare function ResponsiveDropdownMenu({ trigger, children, open: controlledOpen, onOpenChange, sheetLabel, sheetClassName, containerClassName, closeOnClick, ...dropdownProps }: ResponsiveDropdownMenuProps): react.JSX.Element;
2116
+
1952
2117
  type SideDrawerAnchor = 'left' | 'right';
1953
2118
  type SideDrawerSize = 'sm' | 'md' | 'lg' | 'xl';
1954
2119
  type SideDrawerProps = {
@@ -2048,14 +2213,13 @@ type ScheduleFormFieldsProps = {
2048
2213
  values: ScheduleFormValues;
2049
2214
  onChange: (next: ScheduleFormValues) => void;
2050
2215
  agentId: string;
2216
+ agentLabel: string;
2051
2217
  onAgentIdChange?: (agentId: string) => void;
2052
- agentOptions: Array<{
2053
- agentId: string;
2054
- name: string;
2055
- }>;
2218
+ onAgentPicked?: (agent: AgentLibraryEntry) => void;
2056
2219
  agentPickerDisabled?: boolean;
2220
+ onBuildAgent?: () => void;
2057
2221
  };
2058
- declare function ScheduleFormFields({ values, onChange, agentId, onAgentIdChange, agentOptions, agentPickerDisabled, }: ScheduleFormFieldsProps): react.JSX.Element;
2222
+ declare function ScheduleFormFields({ values, onChange, agentId, agentLabel, onAgentIdChange, onAgentPicked, agentPickerDisabled, onBuildAgent, }: ScheduleFormFieldsProps): react.JSX.Element;
2059
2223
 
2060
2224
  declare function ScheduleLastRunsCell({ runs }: {
2061
2225
  runs: readonly ScheduleRun[];
@@ -2065,8 +2229,6 @@ declare function ScheduleRunChip({ run }: {
2065
2229
  run: ScheduleRun;
2066
2230
  }): react.JSX.Element;
2067
2231
 
2068
- declare function SchedulesPage(): react.JSX.Element;
2069
-
2070
2232
  declare function ScheduleStatusBadge({ status }: {
2071
2233
  status: ScheduleStatus;
2072
2234
  }): react.JSX.Element;
@@ -2107,7 +2269,12 @@ interface AgentStepsContainerProps {
2107
2269
  */
2108
2270
  declare function AgentStepsContainer({ children, toolCount, thinkingCount, hasFinal, }: PropsWithChildren<AgentStepsContainerProps>): react.JSX.Element;
2109
2271
 
2110
- declare function AskUserContainer(): react.JSX.Element | null;
2272
+ /** Composer banner that navigates pending tool approvals. */
2273
+ declare function ApprovalNavContainer(): react.JSX.Element | null;
2274
+
2275
+ declare function AskUserContainer({ disabled }: {
2276
+ disabled?: boolean;
2277
+ }): react.JSX.Element | null;
2111
2278
 
2112
2279
  declare function AssistantMessageContainer(): react.JSX.Element;
2113
2280
 
@@ -2123,7 +2290,9 @@ type ComposerContainerProps = {
2123
2290
  declare function ComposerContainer({ placeholder, }: ComposerContainerProps): react.JSX.Element;
2124
2291
 
2125
2292
  /** Host custom-action UI for a pending client-side tool response. */
2126
- declare function CustomActionContainer(): react.JSX.Element | null;
2293
+ declare function CustomActionContainer({ disabled }: {
2294
+ disabled?: boolean;
2295
+ }): react.JSX.Element | null;
2127
2296
 
2128
2297
  /**
2129
2298
  * Renders `HistoryLoader` at the top of the message list and fetches
@@ -2135,7 +2304,9 @@ declare function CustomActionContainer(): react.JSX.Element | null;
2135
2304
  */
2136
2305
  declare function HistoryLoaderContainer(): react.JSX.Element | null;
2137
2306
 
2138
- declare function McpAuthContainer(): react.JSX.Element | null;
2307
+ declare function McpAuthContainer({ disabled }: {
2308
+ disabled?: boolean;
2309
+ }): react.JSX.Element | null;
2139
2310
 
2140
2311
  declare const PostMcpOauthScreen: () => react.JSX.Element;
2141
2312
 
@@ -2169,8 +2340,10 @@ declare function ThreadContainer({ composer }: ThreadContainerProps): react.JSX.
2169
2340
  type ThreadListContainerProps = {
2170
2341
  /** Called after New chat or selecting a row — used by stack/drawer chrome. */
2171
2342
  onThreadOpen?: () => void;
2343
+ /** `recent-history` hides navigation and lists only persisted sessions. */
2344
+ variant?: 'default' | 'recent-history';
2172
2345
  };
2173
- declare function ThreadListContainer({ onThreadOpen }?: ThreadListContainerProps): react.JSX.Element;
2346
+ declare function ThreadListContainer({ onThreadOpen, variant }?: ThreadListContainerProps): react.JSX.Element;
2174
2347
 
2175
2348
  type ToastContent = {
2176
2349
  title: string;
@@ -2209,6 +2382,13 @@ declare const ToolCallContainer: ToolCallMessagePartComponent;
2209
2382
 
2210
2383
  declare function ToolCallContentBlockContainer(props: ToolCallContentBlockProps): react.JSX.Element;
2211
2384
 
2385
+ type CurrentUser = {
2386
+ displayName: string;
2387
+ };
2388
+ declare function useOptionalCurrentUser(): CurrentUser | undefined;
2389
+
2390
+ type HistoryAgentIntent = 'try-agent' | 'history';
2391
+
2212
2392
  type DraftPreferenceKind = 'chat' | 'agent';
2213
2393
 
2214
2394
  /** Host-facing shell configuration for agent / library / composer chrome. */
@@ -2243,6 +2423,8 @@ type ShellMode = {
2243
2423
  agentId?: string;
2244
2424
  /** Display / welcome label (often same as agentId). */
2245
2425
  agentName?: string;
2426
+ /** Published-agent description, kept outside the executable agent spec. */
2427
+ description?: string;
2246
2428
  /** Seed for mutable (draft) runtime. */
2247
2429
  agentSpec?: AgentSpec;
2248
2430
  locked: boolean;
@@ -2256,9 +2438,15 @@ type SelectLibraryAgentRequest = {
2256
2438
  isCreateAgent?: boolean;
2257
2439
  agentId?: string;
2258
2440
  agentName?: string;
2441
+ description?: string;
2259
2442
  agentSpec?: AgentSpec;
2260
2443
  };
2261
2444
  type SettingsSection = 'models' | 'connectors' | 'skills' | 'sandbox';
2445
+ type HistoryAgentFilter = {
2446
+ agentId?: string;
2447
+ agentName: string;
2448
+ intent: HistoryAgentIntent;
2449
+ };
2262
2450
  type ShellModeContextValue = {
2263
2451
  mode: ShellMode;
2264
2452
  /** Host agentConfig mode (capabilities source). */
@@ -2298,6 +2486,7 @@ type ShellModeContextValue = {
2298
2486
  bindMutableAgent: (req: {
2299
2487
  agentId: string;
2300
2488
  agentName: string;
2489
+ description?: string;
2301
2490
  agentSpec: AgentSpec;
2302
2491
  }) => void;
2303
2492
  /** @deprecated Prefer `selectLibraryAgent({ isMutable: false, agentName })`. */
@@ -2309,11 +2498,8 @@ type ShellModeContextValue = {
2309
2498
  /** Remember plain-draft composer choices as the seed for future New Chat / New Agent. */
2310
2499
  rememberDraftSpec: (agentSpec: AgentSpec, kind?: DraftPreferenceKind) => void;
2311
2500
  /**
2312
- * Open a history session, remounting when mutability/identity changes.
2313
- * Prefer explicit `isMutable` from the session row; when omitted, agentName
2314
- * present → immutable and agentName absent → mutable. Immutable rows may omit
2315
- * `agentName` when the registry agent was deleted.
2316
- * `isCreateAgent` is only applied when mutable (default false when omitted).
2501
+ * Open a history session without remounting the runtime.
2502
+ * Prefer explicit `isMutable`; otherwise agentName means immutable.
2317
2503
  */
2318
2504
  openHistorySession: (req: {
2319
2505
  sessionId: string;
@@ -2325,18 +2511,20 @@ type ShellModeContextValue = {
2325
2511
  clearChat: () => void;
2326
2512
  /** Return library-only mode to its idle landing; no-op in other modes. */
2327
2513
  openLibraryHome: () => void;
2328
- /** Remount key for the chat runtime when binding changes. */
2514
+ /** Changes only when the chat runtime must reset. */
2329
2515
  runtimeKey: string;
2330
2516
  /**
2331
2517
  * History list filter forwarded as `listSessions({ agentId })`.
2332
2518
  * `null` = All chats. Only meaningful when `isLibraryEnabled`.
2333
2519
  */
2334
- historyAgentFilter: string | null;
2335
- setHistoryAgentFilter: (agentId: string | null) => void;
2520
+ historyAgentFilter: HistoryAgentFilter | null;
2521
+ setHistoryAgentFilter: (filter: HistoryAgentFilter | null) => void;
2336
2522
  /** Effective `listSessionsAgentId` for the runtime (SingleAgent locks to name). */
2337
2523
  listSessionsAgentId: string | undefined;
2338
- /** Session to open after a binding remount (history click across mutability). */
2524
+ /** Session selected from history. */
2339
2525
  pendingSessionId: string | undefined;
2526
+ /** Distinguishes repeated selections of the same session. */
2527
+ pendingSessionEpoch: number;
2340
2528
  /**
2341
2529
  * Bumped when the Agents catalog may have changed (e.g. after saveAgent).
2342
2530
  * Library chrome should re-fetch when this changes.
@@ -2381,6 +2569,8 @@ type RoutePlace = {
2381
2569
  type: 'sessionsBrowser';
2382
2570
  } | {
2383
2571
  type: 'schedules';
2572
+ } | {
2573
+ type: 'buildAgent';
2384
2574
  };
2385
2575
  /**
2386
2576
  * Host-facing route path customization. Only honored when `withRouter`.
@@ -2401,6 +2591,8 @@ type RoutesConfig = {
2401
2591
  libraryAgent?: string | false;
2402
2592
  /** Schedules page. `false` keeps schedules overlay-only (no URL). Default `'/schedules'`. */
2403
2593
  schedules?: string | false;
2594
+ /** Agent builder. `false` disables its dedicated URL. Default `'/build-agent'`. */
2595
+ buildAgent?: string | false;
2404
2596
  /** Immutable "Try" agent. `false` disables. Default `'/agents/:agentName'`. */
2405
2597
  agent?: string | false;
2406
2598
  /** Session deep link. `false` disables. Default `'/sessions/:sessionId'`. */
@@ -2428,7 +2620,7 @@ declare function useOptionalCustomActionRenderers(): CustomActionRenderers | und
2428
2620
 
2429
2621
  /**
2430
2622
  * Built-in backends init inside `<TrueForgeUI />`.
2431
- * Optional `catalog` is attached onto the resolved `AgentUIServer`.
2623
+ * Optional host ports are attached onto the resolved `AgentUIServer`.
2432
2624
  */
2433
2625
  type TrueForgeBuiltInServerConfig = {
2434
2626
  type: 'truefoundry';
@@ -2436,6 +2628,7 @@ type TrueForgeBuiltInServerConfig = {
2436
2628
  controlPlaneURL: string;
2437
2629
  gatewayPlaneURL?: string;
2438
2630
  catalog?: CatalogServer;
2631
+ permissions?: PermissionsServer;
2439
2632
  } | {
2440
2633
  type: 'trueforge';
2441
2634
  /** Harness API root. Defaults to `'/'` (same-origin / proxied). */
@@ -2445,6 +2638,7 @@ type TrueForgeBuiltInServerConfig = {
2445
2638
  /** Custom fetch (cookie sessions, auth interceptors). */
2446
2639
  fetch?: typeof fetch;
2447
2640
  catalog?: CatalogServer;
2641
+ permissions?: PermissionsServer;
2448
2642
  };
2449
2643
  /**
2450
2644
  * `server` prop for `<TrueForgeUI />`: a built-in config, or a ready
@@ -2484,6 +2678,8 @@ type TrueForgeUIProps = {
2484
2678
  withRouter?: boolean;
2485
2679
  /** URL path customization; only honored when `withRouter`. */
2486
2680
  routes?: RoutesConfig;
2681
+ /** Optional identity rendered by the default `UserAvatar` slot. */
2682
+ currentUser?: CurrentUser;
2487
2683
  };
2488
2684
 
2489
2685
  /**
@@ -2516,6 +2712,35 @@ declare function UserEditComposerContainer(): react.JSX.Element;
2516
2712
 
2517
2713
  declare function UserMessageContainer(): react.JSX.Element;
2518
2714
 
2715
+ type ApprovalNavState = {
2716
+ count: number;
2717
+ /** 0-based index into pending approvals. */
2718
+ index: number;
2719
+ canPrev: boolean;
2720
+ canNext: boolean;
2721
+ goPrev: () => void;
2722
+ goNext: () => void;
2723
+ /** Scroll to the currently selected approval (e.g. after the user scrolled away). */
2724
+ focusCurrent: () => void;
2725
+ };
2726
+ /**
2727
+ * Tracks the focused pending tool approval for the composer banner.
2728
+ * Auto-focuses #1 when approvals appear; after allow/deny, stays on the same
2729
+ * index so the next pending item fills the slot; chevrons do not wrap.
2730
+ */
2731
+ declare function useApprovalNav(): ApprovalNavState;
2732
+
2733
+ type UseCanCreateAgentResult = {
2734
+ loading: boolean;
2735
+ /** False while loading, on error, or when CREATE is not granted (fail-closed). */
2736
+ canCreateAgent: boolean;
2737
+ };
2738
+ /**
2739
+ * Tenant-scoped create-agent grant via `list-permissions` (`resource_type: tenant`).
2740
+ * When no permissions server is configured (standalone without port), allows create.
2741
+ */
2742
+ declare function useCanCreateAgent(): UseCanCreateAgentResult;
2743
+
2519
2744
  type ComposerBusyState = {
2520
2745
  /** True while submitting or while the turn stream is active. */
2521
2746
  isBusy: boolean;
@@ -2559,6 +2784,8 @@ type ComposerPauseView = {
2559
2784
  toolName: string;
2560
2785
  } | {
2561
2786
  kind: 'ask-user';
2787
+ } | {
2788
+ kind: 'approval';
2562
2789
  } | {
2563
2790
  kind: 'compose';
2564
2791
  };
@@ -2579,6 +2806,17 @@ declare const useMCPAuth: ({ callbackPath }?: UseMCPAuthOptions) => {
2579
2806
  isOAuthLoading: boolean;
2580
2807
  };
2581
2808
 
2809
+ type UseResourcePermissionsOptions = {
2810
+ resourceType: PermissionResourceType;
2811
+ resourceIds: readonly string[];
2812
+ };
2813
+ type UseResourcePermissionsResult = {
2814
+ loading: boolean;
2815
+ error: unknown | null;
2816
+ allows: (resourceId: string | null | undefined, permission: ResourcePermission) => boolean;
2817
+ };
2818
+ declare function useResourcePermissions({ resourceType, resourceIds, }: UseResourcePermissionsOptions): UseResourcePermissionsResult;
2819
+
2582
2820
  /** Session metadata key for New Chat vs New Agent builder intent (wire/jsonb snake_case). */
2583
2821
  declare const IS_CREATE_AGENT_METADATA_KEY = "is_create_agent";
2584
2822
  /** Wire metadata values are strings (`SessionMetadataSchema`). */
@@ -2606,8 +2844,9 @@ declare function useAgentMetricsServer(): AgentMetricsServer;
2606
2844
  declare function useOptionalAgentMetricsServer(): AgentMetricsServer | null;
2607
2845
  declare function useScheduleServer(): ScheduleServer;
2608
2846
  declare function useOptionalScheduleServer(): ScheduleServer | null;
2847
+ declare function useOptionalPermissionsServer(): PermissionsServer | null;
2609
2848
 
2610
- declare function AgentMetricChart({ graph, definition, error }: AgentMetricChartProps): react.JSX.Element;
2849
+ declare function AgentMetricChart({ graph, definition, error, colorIndex }: AgentMetricChartProps): react.JSX.Element;
2611
2850
  declare module '../../theme/SlotsProvider.js' {
2612
2851
  interface AtomSlots {
2613
2852
  AgentMetricChart: ComponentType<AgentMetricChartProps>;
@@ -2626,6 +2865,31 @@ interface AgentStepsSplitResult {
2626
2865
  }
2627
2866
  declare function computeAgentStepsSplit(parts: readonly AgentStepPart[], isRunning: boolean): AgentStepsSplitResult;
2628
2867
 
2868
+ type ApprovalRef = {
2869
+ id?: string;
2870
+ approved?: boolean;
2871
+ resolution?: string;
2872
+ };
2873
+ type ToolCallPart = {
2874
+ type: string;
2875
+ toolCallId?: string;
2876
+ toolName?: string;
2877
+ approval?: ApprovalRef;
2878
+ messages?: readonly {
2879
+ role: string;
2880
+ content: readonly ToolCallPart[];
2881
+ }[];
2882
+ };
2883
+ type ThreadMessageLike = {
2884
+ role: string;
2885
+ content: readonly ToolCallPart[];
2886
+ };
2887
+ /**
2888
+ * Returns `create_sub_agent` toolCallIds that must be expanded for `approvalId`
2889
+ * to mount in the DOM. Empty when the approval is on the root thread.
2890
+ */
2891
+ declare function findSubAgentAncestorsForApproval(messages: readonly ThreadMessageLike[], approvalId: string): string[];
2892
+
2629
2893
  /**
2630
2894
  * User-facing error text. Prefers HTTP body `{ error: { message } }` when
2631
2895
  * present (e.g. TrueForgeError), then `error.message` / `error.error.message`,
@@ -2640,9 +2904,8 @@ type DraftCatalogValue = {
2640
2904
  models: ModelSelection[];
2641
2905
  skills: AgentSkill[];
2642
2906
  connectors: ConnectorState[];
2643
- connectorsHasMore: boolean;
2644
- connectorsLoadMoreFailed: boolean;
2645
- connectorsLoadingMore: boolean;
2907
+ /** Connector logo URL keyed by connector name, sourced from the discovery catalog. */
2908
+ connectorLogos: Record<string, string>;
2646
2909
  loaded: boolean;
2647
2910
  loading: boolean;
2648
2911
  error: string | null;
@@ -2652,12 +2915,10 @@ type DraftCatalogValue = {
2652
2915
  refresh: () => void;
2653
2916
  /** Refresh connector auth state without reloading unrelated catalogs. */
2654
2917
  refreshConnectors: () => Promise<void>;
2655
- /** Append the next MCP page when `connectorsHasMore`. */
2656
- loadMoreConnectors: () => void;
2657
2918
  };
2658
2919
  declare function DraftCatalogProvider({ children }: {
2659
2920
  children: ReactNode;
2660
2921
  }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react.JSX.Element | null | undefined;
2661
2922
  declare function useDraftCatalog(): DraftCatalogValue;
2662
2923
 
2663
- export { AgentCodeBlock, type AgentCodeBlockProps, type AgentCodeSnippetsProps, type AgentConfig, type AgentConfigEditor, AgentConfigEditors, type AgentConfigEditorsProps, AgentConfigPanel, type AgentConfigPanelProps, AgentConfigSection, AgentDetailsHeader, type AgentDetailsHeaderProps, AgentDetailsPage, type AgentDetailsPageProps, type AgentDetailsTab, AgentDetailsTabs, type AgentDetailsTabsProps, AgentDetailsUnavailable, type AgentDetailsUnavailableProps, AgentInstructionsDrawer, type AgentInstructionsDrawerProps, AgentMcpEditorContent, type AgentMcpEditorContentProps, AgentMetricCard, type AgentMetricCardProps, AgentMetricChart, type AgentMetricChartProps, type AgentMetricChartResult, AgentMetricsContainer, type AgentMetricsProps, AgentMetricsTimeRangeFilter, type AgentMetricsTimeRangeFilterProps, AgentMetricsView, type AgentMetricsViewProps, AgentModelConfigModal, type AgentModelConfigModalProps, AgentModelEditorContent, type AgentModelEditorContentProps, AgentModelSettingsContent, type AgentModelSettingsContentProps, AgentOverviewCard, type AgentOverviewCardProps, type AgentOverviewProps, AgentResourceConfigModal, type AgentResourceConfigModalProps, AgentResourceEditorContent, type AgentResourceEditorContentProps, AgentRuntimeConfigFields, type AgentRuntimeConfigFieldsProps, AgentRuntimeConfigModal, type AgentRuntimeConfigModalProps, AgentRuntimeEditorContent, type AgentRuntimeEditorContentProps, type AgentSessionDetailHeaderProps, type AgentSessionEventTimelineChartProps, type AgentSessionEventTimelineProps, type AgentSessionListRowProps, type AgentSessionMetricsStripProps, type AgentSessionTurnHeaderProps, AgentSessionsFilters, type AgentSessionsFiltersProps, type AgentSessionsProps, AgentSkillsEditorContent, type AgentSkillsEditorContentProps, type AgentStepPart, AgentStepsCard, type AgentStepsCardProps, AgentStepsContainer, type AgentStepsContainerProps, type AgentStepsSplitResult, AgentsLibrary, AgentsLibraryButton, type AgentsLibraryButtonProps, type AgentsLibraryProps, type AskUserAnswerDraft, type AnsweredQuestion as AskUserAnsweredQuestion, AskUserContainer, type AskUserPromptProps, type Question as AskUserQuestion, type AskUserPromptProps as AskUserQuestionCardProps, AssistantMessageBubble, type AssistantMessageBubbleProps, AssistantMessageContainer, AssistantTextContainer, type PublicAtomSlots as AtomSlots, AttachmentCard, type AttachmentCardProps, type AttachmentCardSize, AttachmentPickerButton, type AttachmentPickerButtonProps, AttachmentPreviewDialog, type AttachmentPreviewDialogProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, BottomSheet, type BottomSheetProps, type BrandChrome, type BrandConfig, type BrandImage, BrandLogo, type BrandLogoConfig, type BrandMode, type ButtonProps, type ButtonSize, type ButtonVariant, CenteredModal, type CenteredModalProps, ChatFileDownload, type ChatFileDownloadFile, type ChatFileDownloadProps, type ChatLayout, ClearChatButton, CodeEditor, type CodeEditorProps, ComposerAttachmentPickerContainer, ComposerAttachmentsContainer, ComposerBusyProvider, type ComposerBusyState, ComposerContainer, type ComposerContainerProps, ComposerLeftSection, type ComposerLeftSectionProps, type ComposerPauseView, ComposerRightSection, type ComposerRightSectionProps, ComposerSendButton, type ComposerSendButtonProps, ComposerShell, type ComposerShellProps, type ContentClassNames, CustomActionContainer, type CustomActionRendererProps, type CustomActionRenderers, CustomActionRenderersProvider, DEFAULT_AGENT_CONFIG, DEFAULT_TABLE_PAGE_SIZE, DraftAgentConfigTrigger, type DraftAgentConfigTriggerProps, DraftCapabilitiesPanel, DraftCatalogProvider, DraftComposerLeftSection, DraftComposerRightSection, DraftCompositeSelector, type DraftCompositeSelectorProps, DraftModelSelector, type DraftModelSelectorProps, HistoryLoader, HistoryLoaderContainer, type HistoryLoaderProps, IS_CREATE_AGENT_METADATA_KEY, Icon, type IconButtonProps, type IconMap, type IconProps, type LayoutProp, MCP_AUTH_POPUP_CHANNEL, Markdown, type MarkdownProps, type McpAuthCallback, type McpAuthPromptProps as McpAuthCardProps, McpAuthContainer, type McpAuthPopupMessage, type McpAuthPromptProps, type McpServer as McpAuthServer, MessageActionBar, type MessageActionBarProps, MessageAttachmentsContainer, MessageErrorBanner, type MessageErrorBannerProps, MessageGroup, type MessageGroupProps, MessageIndicator, type MessageIndicatorProps, MessageListSkeleton, type MessageListSkeletonProps, MessageTimestamp, type MessageTimestampProps, MonacoEditorCore, type MonacoEditorCoreProps, OpenUiFenceBlock, type OpenUiFenceBlockProps, PRESETS, PopoverSelect, type PopoverSelectOption, type PopoverSelectProps, PostMcpOauthScreen, type ReasoningCardProps, ReasoningContainer, ResumeUnavailable, ResumeUnavailableContainer, type ResumeUnavailableProps, type RoutePlace, type RoutesConfig, SandboxArtifactDownload, type SandboxArtifactDownloadProps, SandboxToolCallCard, type SandboxToolCallCardProps, SaveAgentButton, type SaveAgentButtonProps, SaveAgentForm, SaveAgentFormFields, type SaveAgentFormFieldsProps, type SaveAgentFormProps, ScheduleFormDrawer, type ScheduleFormDrawerProps, ScheduleFormFields, type ScheduleFormFieldsProps, ScheduleLastRunsCell, type ScheduleMcpMount, ScheduleRunChip, ScheduleStatusBadge, SchedulesButton, type SchedulesButtonProps, SchedulesPage, ScrollToBottomButton, type ScrollToBottomButtonProps, SelectAgentEmptyState, type SelectLibraryAgentRequest, type SemanticTokens, ServerProvider, type SessionEventTimelineSegment, type SessionEventType, type SessionTurnView, SessionsBrowserButton, type SessionsBrowserButtonProps, SessionsPage, ShellActionsActionSlot, type ShellMode, ShellModeProvider, SideDrawer, type SideDrawerAnchor, type SideDrawerProps, type SideDrawerSize, type SlotOverrides, SlotsProvider, SubAgentCard, type SubAgentCardProps, Switch, type SwitchProps, type SwitchSize, SyntaxHighlighter, type SyntaxHighlighterProps, TABLE_PAGE_SIZE_OPTIONS, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TablePagination, type TablePaginationProps, type TableProps, TableRow, type TableRowProps, TableTokenPagination, type TableTokenPaginationProps, TestScheduleScreen, type TestScheduleScreenProps, type ThemeConfig, type IconProps$1 as ThemeIconProps, type ThemeMode, type ThemePreset, ThemeProvider, Thread, ThreadComposerAreaShell, type ThreadComposerAreaShellProps, ThreadContainer, type ThreadContainerProps, type ThreadGroupPart, ThreadListContainer, type ThreadListContainerProps, ThreadListEmptyState, type ThreadListEmptyStateProps, ThreadListNewButton, type ThreadListNewButtonProps, ThreadListRow, type ThreadListRowProps, ThreadListRowSkeleton, type ThreadListRowSkeletonProps, ThreadListShell, type ThreadListShellProps, type ThreadPauseState, ThreadRootShell, type ThreadRootShellProps, ThreadViewportShell, type ThreadViewportShellProps, Toast, type ToastProps, ToastStack, type ToastStackProps, ToasterProvider, ToolApprovalBar, type ToolApprovalBarProps, ToolApprovalContainer, type ToolApprovalOption, ToolCallCard, type ToolCallCardProps, ToolCallContainer, ToolCallContentBlock, ToolCallContentBlockContainer, type ToolCallContentBlockProps, type ToolCallStatus, ToolGroupCard, type ToolGroupCardProps, ToolGroupContainer, type TrueForgeBuiltInServerConfig, type TrueForgeServerConfig, TrueForgeUI, type TrueForgeUIProps, TrueFoundryChatProvider, type TrueFoundryChatProviderProps, USER_MESSAGE_ATTACHMENT_PREVIEW_REM, type UseMCPAuthOptions, UserEditComposerContainer, UserMessageActionBar, type UserMessageActionBarProps, UserMessageBubble, type UserMessageBubbleProps, UserMessageContainer, UserMessageEdit, type UserMessageEditProps, WelcomeScreen, type WelcomeScreenProps, computeAgentStepsSplit, defaultSlots, getErrorMessage, isCreateAgentMetadataValue, libraryAgentId, preloadMarkdownOpenUI, readSessionIsCreateAgent, resolveBrandChrome, resolvePresetTokens, sessionIsCreateAgent, shellIsCreateAgent, shellIsMutable, threadHasPendingMcpAuth, useAgentMetricsServer, useAgentSessionsServer, useBrand, useBrandName, useCatalogServer, useComposerBusyState, useComposerPauseView, useContentClassNames, useDraftCatalog, useMCPAuth, useOptionalAgentMetricsServer, useOptionalAgentSessionsServer, useOptionalCatalogServer, useOptionalContentClassNames, useOptionalCustomActionRenderers, useOptionalScheduleServer, useOptionalServer, useOptionalShellMode, useScheduleServer, useServer, useServerCapabilities, useShellMode, useSlot, useTheme, useThemeIcons, useThemeMode, useToaster, useToasterOptional };
2924
+ export { AgentCodeBlock, type AgentCodeBlockProps, type AgentCodeSnippetsProps, type AgentConfig, type AgentConfigEditor, AgentConfigEditors, type AgentConfigEditorsProps, AgentConfigPanel, type AgentConfigPanelProps, AgentConfigSection, AgentCustomParametersEditor, type AgentCustomParametersEditorProps, AgentDetailsHeader, type AgentDetailsHeaderProps, AgentDetailsPage, type AgentDetailsPageProps, type AgentDetailsTab, AgentDetailsTabs, type AgentDetailsTabsProps, AgentDetailsUnavailable, type AgentDetailsUnavailableProps, AgentInstructionsDrawer, type AgentInstructionsDrawerProps, AgentMcpEditorContent, type AgentMcpEditorContentProps, AgentMetricCard, type AgentMetricCardProps, AgentMetricChart, type AgentMetricChartProps, type AgentMetricChartResult, AgentMetricStatistics, type AgentMetricStatisticsProps, AgentMetricsContainer, type AgentMetricsProps, AgentMetricsTimeRangeFilter, type AgentMetricsTimeRangeFilterProps, AgentMetricsView, type AgentMetricsViewProps, AgentModelConfigModal, type AgentModelConfigModalProps, AgentModelEditorContent, type AgentModelEditorContentProps, AgentModelSettingsContent, type AgentModelSettingsContentProps, AgentOverviewCard, type AgentOverviewCardProps, type AgentOverviewProps, AgentResourceConfigModal, type AgentResourceConfigModalProps, AgentResourceEditorContent, type AgentResourceEditorContentProps, AgentRuntimeConfigDrawer, type AgentRuntimeConfigDrawerProps, AgentRuntimeConfigFields, type AgentRuntimeConfigFieldsProps, AgentRuntimeEditorContent, type AgentRuntimeEditorContentProps, type AgentSessionDetailHeaderProps, type AgentSessionEventTimelineChartProps, type AgentSessionEventTimelineProps, type AgentSessionListRowProps, type AgentSessionMetricsStripProps, type AgentSessionTurnHeaderProps, AgentSessionsFilters, type AgentSessionsFiltersProps, type AgentSessionsProps, AgentSkillsEditorContent, type AgentSkillsEditorContentProps, type AgentStepPart, AgentStepsCard, type AgentStepsCardProps, AgentStepsContainer, type AgentStepsContainerProps, type AgentStepsSplitResult, AgentsLibrary, AgentsLibraryButton, type AgentsLibraryButtonProps, type AgentsLibraryProps, ApprovalNavBanner, type ApprovalNavBannerProps, ApprovalNavContainer, type ApprovalNavState, type AskUserAnswerDraft, type AnsweredQuestion as AskUserAnsweredQuestion, AskUserContainer, type AskUserPromptProps, type Question as AskUserQuestion, type AskUserPromptProps as AskUserQuestionCardProps, AssistantMessageBubble, type AssistantMessageBubbleProps, AssistantMessageContainer, AssistantTextContainer, type PublicAtomSlots as AtomSlots, AttachmentCard, type AttachmentCardProps, type AttachmentCardSize, AttachmentPickerButton, type AttachmentPickerButtonProps, AttachmentPreviewDialog, type AttachmentPreviewDialogProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, BottomSheet, type BottomSheetProps, type BrandChrome, type BrandConfig, type BrandImage, BrandLogo, type BrandLogoConfig, type BrandMode, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CenteredModal, type CenteredModalProps, ChatFileDownload, type ChatFileDownloadFile, type ChatFileDownloadProps, type ChatLayout, ClearChatButton, CodeEditor, type CodeEditorProps, ComposerAttachmentPickerContainer, ComposerAttachmentsContainer, ComposerBusyProvider, type ComposerBusyState, ComposerContainer, type ComposerContainerProps, ComposerLeftSection, type ComposerLeftSectionProps, type ComposerPauseView, ComposerRightSection, type ComposerRightSectionProps, ComposerSendButton, type ComposerSendButtonProps, ComposerShell, type ComposerShellProps, type ContentClassNames, type CurrentUser, CustomActionContainer, type CustomActionRendererProps, type CustomActionRenderers, CustomActionRenderersProvider, DEFAULT_AGENT_CONFIG, DEFAULT_TABLE_PAGE_SIZE, DraftAgentConfigTrigger, type DraftAgentConfigTriggerProps, DraftCapabilitiesPanel, DraftCatalogProvider, type DraftComposerAction, DraftComposerActionsMenu, type DraftComposerActionsMenuProps, DraftComposerLeftSection, DraftComposerRightSection, DraftCompositeSelector, type DraftCompositeSelectorProps, DraftModelSelector, type DraftModelSelectorProps, type FixedVariantButtonProps, HistoryLoader, HistoryLoaderContainer, type HistoryLoaderProps, IS_CREATE_AGENT_METADATA_KEY, Icon, type IconButtonProps, type IconMap, type IconProps, type LayoutProp, MCP_AUTH_POPUP_CHANNEL, Markdown, type MarkdownProps, type McpAuthCallback, type McpAuthPromptProps as McpAuthCardProps, McpAuthContainer, type McpAuthPopupMessage, type McpAuthPromptProps, type McpServer as McpAuthServer, MessageActionBar, type MessageActionBarProps, MessageAttachmentsContainer, MessageErrorBanner, type MessageErrorBannerProps, MessageGroup, type MessageGroupProps, MessageIndicator, type MessageIndicatorProps, MessageListSkeleton, type MessageListSkeletonProps, MessageTimestamp, type MessageTimestampProps, MonacoEditorCore, type MonacoEditorCoreProps, OpenUiFenceBlock, type OpenUiFenceBlockProps, PRESETS, PermissionGuard, type PermissionGuardProps, PopoverSelect, type PopoverSelectOption, type PopoverSelectProps, PostMcpOauthScreen, type ReasoningCardProps, ReasoningContainer, ResponsiveDropdownMenu, type ResponsiveDropdownMenuProps, ResumeUnavailable, ResumeUnavailableContainer, type ResumeUnavailableProps, type RoutePlace, type RoutesConfig, SandboxArtifactDownload, type SandboxArtifactDownloadProps, SandboxToolCallCard, type SandboxToolCallCardProps, SaveAgentButton, type SaveAgentButtonProps, SaveAgentForm, type SaveAgentFormProps, ScheduleFormDrawer, type ScheduleFormDrawerProps, ScheduleFormFields, type ScheduleFormFieldsProps, ScheduleLastRunsCell, type ScheduleMcpMount, ScheduleRunChip, ScheduleStatusBadge, SchedulesButton, type SchedulesButtonProps, SchedulesPage, type SchedulesPageProps, ScrollToBottomButton, type ScrollToBottomButtonProps, SelectAgentEmptyState, type SelectLibraryAgentRequest, type SemanticTokens, ServerProvider, type SessionEventTimelineSegment, type SessionEventType, type SessionTurnView, SessionsBrowserButton, type SessionsBrowserButtonProps, SessionsPage, ShellActionsActionSlot, type ShellMode, ShellModeProvider, SideDrawer, type SideDrawerAnchor, type SideDrawerProps, type SideDrawerSize, type SlotOverrides, SlotsProvider, SubAgentCard, type SubAgentCardProps, Switch, type SwitchProps, type SwitchSize, SyntaxHighlighter, type SyntaxHighlighterProps, TABLE_PAGE_SIZE_OPTIONS, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TablePagination, type TablePaginationProps, type TableProps, TableRow, type TableRowProps, TableTokenPagination, type TableTokenPaginationProps, TestScheduleScreen, type TestScheduleScreenProps, type ThemeConfig, type IconProps$1 as ThemeIconProps, type ThemeMode, type ThemePreset, ThemeProvider, Thread, ThreadComposerAreaShell, type ThreadComposerAreaShellProps, ThreadContainer, type ThreadContainerProps, type ThreadGroupPart, ThreadListContainer, type ThreadListContainerProps, ThreadListEmptyState, type ThreadListEmptyStateProps, ThreadListNewButton, type ThreadListNewButtonProps, ThreadListRow, type ThreadListRowProps, ThreadListRowSkeleton, type ThreadListRowSkeletonProps, ThreadListShell, type ThreadListShellProps, type ThreadPauseState, ThreadRootShell, type ThreadRootShellProps, ThreadViewportShell, type ThreadViewportShellProps, Toast, type ToastProps, ToastStack, type ToastStackProps, ToasterProvider, ToolApprovalBar, type ToolApprovalBarProps, ToolApprovalContainer, type ToolApprovalOption, ToolCallCard, type ToolCallCardProps, ToolCallContainer, ToolCallContentBlock, ToolCallContentBlockContainer, type ToolCallContentBlockProps, type ToolCallStatus, ToolGroupCard, type ToolGroupCardProps, ToolGroupContainer, type TrueForgeBuiltInServerConfig, type TrueForgeServerConfig, TrueForgeUI, type TrueForgeUIProps, TrueFoundryChatProvider, type TrueFoundryChatProviderProps, USER_MESSAGE_ATTACHMENT_PREVIEW_REM, type UseCanCreateAgentResult, type UseMCPAuthOptions, type UseResourcePermissionsOptions, type UseResourcePermissionsResult, UserAvatar, type UserAvatarProps, UserEditComposerContainer, UserMessageActionBar, type UserMessageActionBarProps, UserMessageBubble, type UserMessageBubbleProps, UserMessageContainer, UserMessageEdit, type UserMessageEditProps, WelcomeScreen, type WelcomeScreenProps, computeAgentStepsSplit, defaultSlots, findSubAgentAncestorsForApproval, getErrorMessage, isCreateAgentMetadataValue, libraryAgentId, preloadMarkdownOpenUI, readSessionIsCreateAgent, resolveBrandChrome, resolvePresetTokens, sessionIsCreateAgent, shellIsCreateAgent, shellIsMutable, threadHasPendingMcpAuth, useAgentMetricsServer, useAgentSessionsServer, useApprovalNav, useBrand, useBrandName, useCanCreateAgent, useCatalogServer, useComposerBusyState, useComposerPauseView, useContentClassNames, useDraftCatalog, useMCPAuth, useOptionalAgentMetricsServer, useOptionalAgentSessionsServer, useOptionalCatalogServer, useOptionalContentClassNames, useOptionalCurrentUser, useOptionalCustomActionRenderers, useOptionalPermissionsServer, useOptionalScheduleServer, useOptionalServer, useOptionalShellMode, useResourcePermissions, useScheduleServer, useServer, useServerCapabilities, useShellMode, useSlot, useTheme, useThemeIcons, useThemeMode, useToaster, useToasterOptional };