@truefoundry/trueforge-ui 0.3.0-rc.0 → 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 (115) hide show
  1. package/CHANGELOG.md +191 -0
  2. package/README.md +35 -12
  3. package/dist/AgentCodeSnippets-RJBB4DDE.js +89 -0
  4. package/dist/AgentCodeSnippets-RJBB4DDE.js.map +1 -0
  5. package/dist/AgentMetricChart-UPGSJ2WP.js +15 -0
  6. package/dist/AgentOverview-U5WIQXZN.js +169 -0
  7. package/dist/AgentOverview-U5WIQXZN.js.map +1 -0
  8. package/dist/AgentSessionEventTimeline-GRGIQTRE.js +88 -0
  9. package/dist/AgentSessionEventTimeline-GRGIQTRE.js.map +1 -0
  10. package/dist/AgentSessionEventTimelineChart-GNF4VOUT.js +591 -0
  11. package/dist/AgentSessionEventTimelineChart-GNF4VOUT.js.map +1 -0
  12. package/dist/AgentSessions-5OTF2BUW.js +323 -0
  13. package/dist/AgentSessions-5OTF2BUW.js.map +1 -0
  14. package/dist/{ConnectorSettings-FXQ5B7TN.js → ConnectorSettings-HDKGLDCY.js} +163 -125
  15. package/dist/ConnectorSettings-HDKGLDCY.js.map +1 -0
  16. package/dist/{DockLayout-LBNQJZNF.js → DockLayout-D2FPQCAL.js} +11 -10
  17. package/dist/{DockLayout-LBNQJZNF.js.map → DockLayout-D2FPQCAL.js.map} +1 -1
  18. package/dist/DrawerLayout-HUV7RAWL.js +186 -0
  19. package/dist/DrawerLayout-HUV7RAWL.js.map +1 -0
  20. package/dist/{ModelSettings-4L4LOQJA.js → ModelSettings-VNQ7HPKH.js} +23 -27
  21. package/dist/ModelSettings-VNQ7HPKH.js.map +1 -0
  22. package/dist/OpenUiFenceBlock-KPZFLUSC.js +9 -0
  23. package/dist/OpenUiFenceBlock-KPZFLUSC.js.map +1 -0
  24. package/dist/{SandboxSettings-Z4ZG6ZX4.js → SandboxSettings-ZLXGMFBF.js} +18 -20
  25. package/dist/SandboxSettings-ZLXGMFBF.js.map +1 -0
  26. package/dist/SchedulesPage-QKYI2Z3A.js +15 -0
  27. package/dist/SchedulesPage-QKYI2Z3A.js.map +1 -0
  28. package/dist/{SettingsBuilder-WF7ZWKQW.js → SettingsBuilder-RVVYXOJW.js} +27 -23
  29. package/dist/SettingsBuilder-RVVYXOJW.js.map +1 -0
  30. package/dist/ShellRouteSync-SJXFKUAJ.js +390 -0
  31. package/dist/ShellRouteSync-SJXFKUAJ.js.map +1 -0
  32. package/dist/SidebarLayout-KYA76FQ7.js +330 -0
  33. package/dist/SidebarLayout-KYA76FQ7.js.map +1 -0
  34. package/dist/{SkillSettings-3EPPC3IT.js → SkillSettings-7OHT7FPI.js} +25 -21
  35. package/dist/SkillSettings-7OHT7FPI.js.map +1 -0
  36. package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js → TrueForgeUIWithRouter-LKG4XLW6.js} +14 -10
  37. package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js.map → TrueForgeUIWithRouter-LKG4XLW6.js.map} +1 -1
  38. package/dist/{WidgetLayout-3QZ357FL.js → WidgetLayout-W2RGGOQ3.js} +17 -13
  39. package/dist/WidgetLayout-W2RGGOQ3.js.map +1 -0
  40. package/dist/chunk-2GIZY3JJ.js +1062 -0
  41. package/dist/chunk-2GIZY3JJ.js.map +1 -0
  42. package/dist/chunk-2QTH6JHX.js +217 -0
  43. package/dist/chunk-2QTH6JHX.js.map +1 -0
  44. package/dist/{chunk-FJ5RSSMA.js → chunk-3ZW74FHC.js} +118 -164
  45. package/dist/chunk-3ZW74FHC.js.map +1 -0
  46. package/dist/chunk-67ZO7Z2W.js +184 -0
  47. package/dist/chunk-67ZO7Z2W.js.map +1 -0
  48. package/dist/{chunk-CFLVPV5M.js → chunk-7AAO4UDQ.js} +8 -2
  49. package/dist/chunk-7AAO4UDQ.js.map +1 -0
  50. package/dist/{chunk-B52K63AW.js → chunk-CG75X77Q.js} +2 -2
  51. package/dist/chunk-DJUFS2BW.js +27 -0
  52. package/dist/chunk-DJUFS2BW.js.map +1 -0
  53. package/dist/chunk-DPPOEFBD.js +517 -0
  54. package/dist/chunk-DPPOEFBD.js.map +1 -0
  55. package/dist/chunk-EPAL2HD5.js +1629 -0
  56. package/dist/chunk-EPAL2HD5.js.map +1 -0
  57. package/dist/chunk-GG23N2GW.js +15018 -0
  58. package/dist/chunk-GG23N2GW.js.map +1 -0
  59. package/dist/chunk-JCL3Q7RW.js +587 -0
  60. package/dist/chunk-JCL3Q7RW.js.map +1 -0
  61. package/dist/chunk-JKEBMGLH.js +682 -0
  62. package/dist/chunk-JKEBMGLH.js.map +1 -0
  63. package/dist/chunk-KSGNKS2D.js +296 -0
  64. package/dist/chunk-KSGNKS2D.js.map +1 -0
  65. package/dist/{chunk-WREC7D54.js → chunk-PCI6VMB5.js} +268 -48
  66. package/dist/chunk-PCI6VMB5.js.map +1 -0
  67. package/dist/chunk-PQ7VWBQQ.js +121 -0
  68. package/dist/chunk-PQ7VWBQQ.js.map +1 -0
  69. package/dist/chunk-RDXBMTP5.js +32 -0
  70. package/dist/chunk-RDXBMTP5.js.map +1 -0
  71. package/dist/chunk-T6QQV5LK.js +238 -0
  72. package/dist/chunk-T6QQV5LK.js.map +1 -0
  73. package/dist/chunk-Y6S4OVVQ.js +16 -0
  74. package/dist/chunk-Y6S4OVVQ.js.map +1 -0
  75. package/dist/{createTrueFoundryServer-B72bU-J7.d.ts → createTrueFoundryServer-B_FYhSdn.d.ts} +18 -4
  76. package/dist/index.d.ts +1287 -46
  77. package/dist/index.js +266 -63
  78. package/dist/index.js.map +1 -1
  79. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +590 -11
  80. package/dist/plugins/trueforge-agent-server-adapter/index.js +607 -204
  81. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  82. package/dist/styles.css +1 -1
  83. package/package.json +10 -8
  84. package/dist/ConnectorSettings-FXQ5B7TN.js.map +0 -1
  85. package/dist/DrawerLayout-Q6UK4VMI.js +0 -159
  86. package/dist/DrawerLayout-Q6UK4VMI.js.map +0 -1
  87. package/dist/ModelSettings-4L4LOQJA.js.map +0 -1
  88. package/dist/OpenUiFenceBlock-6UIIAVBX.js +0 -9
  89. package/dist/SandboxSettings-Z4ZG6ZX4.js.map +0 -1
  90. package/dist/SettingsBuilder-WF7ZWKQW.js.map +0 -1
  91. package/dist/ShellRouteSync-T4WLY57Q.js +0 -172
  92. package/dist/ShellRouteSync-T4WLY57Q.js.map +0 -1
  93. package/dist/SidebarLayout-3WZ3CVON.js +0 -256
  94. package/dist/SidebarLayout-3WZ3CVON.js.map +0 -1
  95. package/dist/SkillSettings-3EPPC3IT.js.map +0 -1
  96. package/dist/WidgetLayout-3QZ357FL.js.map +0 -1
  97. package/dist/chunk-36KOSC2J.js +0 -567
  98. package/dist/chunk-36KOSC2J.js.map +0 -1
  99. package/dist/chunk-3S6KHO7H.js +0 -2121
  100. package/dist/chunk-3S6KHO7H.js.map +0 -1
  101. package/dist/chunk-7L63OK3O.js +0 -91
  102. package/dist/chunk-7L63OK3O.js.map +0 -1
  103. package/dist/chunk-CFLVPV5M.js.map +0 -1
  104. package/dist/chunk-FJ5RSSMA.js.map +0 -1
  105. package/dist/chunk-OSV3HI5M.js +0 -6891
  106. package/dist/chunk-OSV3HI5M.js.map +0 -1
  107. package/dist/chunk-WQULF5AT.js +0 -460
  108. package/dist/chunk-WQULF5AT.js.map +0 -1
  109. package/dist/chunk-WREC7D54.js.map +0 -1
  110. package/dist/chunk-YIWUG6MC.js +0 -101
  111. package/dist/chunk-YIWUG6MC.js.map +0 -1
  112. package/dist/chunk-ZXOADNF3.js +0 -75
  113. package/dist/chunk-ZXOADNF3.js.map +0 -1
  114. /package/dist/{OpenUiFenceBlock-6UIIAVBX.js.map → AgentMetricChart-UPGSJ2WP.js.map} +0 -0
  115. /package/dist/{chunk-B52K63AW.js.map → chunk-CG75X77Q.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,19 +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, 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
+ import { TrueForgeApi } from '@truefoundry/trueforge-sdk';
4
7
  import { MessagePrimitive, ToolCallMessagePartComponent } from '@assistant-ui/react';
5
8
  export { AssistantState, useAui, useAuiState } from '@assistant-ui/react';
6
9
  import { UseTrueFoundryAgentRuntimeOptions, TrueFoundryAgentConfig } from '@truefoundry/assistant-ui-runtime';
7
- export { DraftAgentConfig, NamedAgentConfig, TrueFoundryAgentConfig, UseTrueFoundryAgentRuntimeOptions, mergeAgentSpec, trueFoundryAttachmentAdapter, useTrueFoundryAgentRuntime, useTrueFoundryAgentSpec, useTrueFoundryCancel, useTrueFoundryDownloadSandboxFile, useTrueFoundryHistoryPagination, useTrueFoundryMcpAuth, useTrueFoundryRespondToToolApproval, useTrueFoundryToolResponses, useTrueFoundryTurnId, useTrueFoundryUpdateAgentSpec } from '@truefoundry/assistant-ui-runtime';
8
- import { AgentSpec, AgentLibraryEntry, CatalogServer, AgentUIServer, AgentBuilderCapabilitiesResponse, ModelSelection, AgentSkill, ConnectorState } from '@truefoundry/assistant-ui-runtime/server';
9
- export { AgentBuilderCapabilitiesResponse, AgentBuilderServer, AgentChatServer, AgentLibraryEntry, AgentSkill, AgentSpec, AgentUIServer, ApprovalDecision, AuthenticateConnectorRequest, CatalogServer, 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, 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, SkillBase, SkillCatalogEntry, SkillCatalogServer, SkillConfigBase, SkillMount, ToolBase, Turn, TurnInputItem, TurnState, TurnStreamData, TurnStreamingEvent, UpdateConnectorRequest, UpdateModelProviderRequest, UpdateSandboxProviderRequest, UpdateSessionRequest, UserMessage, UserMessageContent, UserToolApprovalEvent, UserToolResponseEvent } from '@truefoundry/assistant-ui-runtime/server';
10
- export { C as CreateTrueFoundryServerOptions, T as TrueFoundryServer, c as createTrueFoundryServer } from './createTrueFoundryServer-B72bU-J7.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';
11
12
  import { PartState } from '@assistant-ui/core/react';
12
13
 
13
14
  type ThemeMode = 'light' | 'dark' | 'system';
14
15
  type ThemePreset = 'trueforge' | 'claude' | 'chatgpt' | 'gemini';
15
16
  type SemanticTokens = {
16
17
  sidebarBg: string;
18
+ sidebarText: string;
17
19
  topbarBg: string;
18
20
  primaryBg: string;
19
21
  secondaryBg: string;
@@ -394,30 +396,397 @@ declare module '../theme/SlotsProvider.js' {
394
396
  }
395
397
  }
396
398
 
399
+ type SessionEventType = 'system' | 'user' | 'model' | 'tool_call' | 'approval' | 'sub_agent' | 'waiting_on_human' | 'error';
400
+ /**
401
+ * One drawable interval on the timeline.
402
+ *
403
+ * Times are milliseconds relative to the session origin, not wall-clock
404
+ * timestamps. Equal start/end times are rendered as markers; intervals become
405
+ * horizontal bars. `turnIndex` groups intervals into turn backgrounds and
406
+ * `threadId` assigns sub-agent work to its lane.
407
+ */
408
+ type SessionEventTimelineSegment = {
409
+ id: string;
410
+ type: SessionEventType;
411
+ title: string;
412
+ description: string;
413
+ startMs: number;
414
+ endMs: number;
415
+ turnIndex: number;
416
+ threadId: string;
417
+ isMarker?: boolean;
418
+ };
419
+
420
+ type TurnCreatedEvent = Extract<SessionEventItem['event'], {
421
+ type: 'turn.created';
422
+ }>;
423
+ type TurnDoneEvent = Extract<SessionEventItem['event'], {
424
+ type: 'turn.done';
425
+ }>;
426
+ type TurnEvent = Exclude<SessionEventItem['event'], TurnCreatedEvent | TurnDoneEvent>;
427
+ type SessionTurnView = {
428
+ turnId: string;
429
+ turnNumber: number;
430
+ showHeader: boolean;
431
+ created: TurnCreatedEvent;
432
+ done?: TurnDoneEvent;
433
+ events: TurnEvent[];
434
+ totalTokens?: number;
435
+ inputTokens?: number;
436
+ outputTokens?: number;
437
+ cachedTokens?: number;
438
+ totalCostInUsd?: number;
439
+ durationMs?: number;
440
+ };
441
+
442
+ type SessionMetricBarDatum = {
443
+ label: string;
444
+ value: number;
445
+ color: string;
446
+ };
447
+ type SessionMetrics = {
448
+ totalTurns: number;
449
+ wallTimeMs: number;
450
+ totalCostUsd?: number;
451
+ totalTokens: number;
452
+ contextTokens: number;
453
+ toolCalls: number;
454
+ subAgents: number;
455
+ errors: number;
456
+ timeBreakdown: SessionMetricBarDatum[];
457
+ costPerTurn: SessionMetricBarDatum[];
458
+ tokenBreakdown: SessionMetricBarDatum[];
459
+ contextByTurn: SessionMetricBarDatum[];
460
+ toolCallFrequency: SessionMetricBarDatum[];
461
+ };
462
+
463
+ type LibraryAgentTab = 'overview' | 'sessions' | 'schedules' | 'code' | 'metrics';
464
+ type SessionTimeRange = {
465
+ startTs: number;
466
+ endTs: number;
467
+ timeWindowMs?: number;
468
+ };
469
+
470
+ type AgentSessionsProps = {
471
+ /** Library tab locks the list to this agent. Omit on the all-user Sessions page. */
472
+ agentId?: string;
473
+ startTimestamp?: string;
474
+ endTimestamp?: string;
475
+ /** When `sessions`, selection writes `view=sessions` and pins `s_sts`/`s_ets`. */
476
+ shareView?: 'sessions' | null;
477
+ };
478
+ type AgentSessionListRowProps = {
479
+ title: string;
480
+ agentName?: string;
481
+ sourceType?: 'schedule';
482
+ lastActivityAt: string;
483
+ metrics: {
484
+ totalTurns: number;
485
+ totalCostInUsd?: number;
486
+ totalDurationMs: number;
487
+ };
488
+ active: boolean;
489
+ onSelect: () => void;
490
+ };
491
+ type AgentSessionDetailHeaderProps = {
492
+ title: string;
493
+ sessionId: string;
494
+ agentId?: string;
495
+ createdAt?: string;
496
+ view?: 'sessions' | null;
497
+ onClose: () => void;
498
+ /**
499
+ * When set with `resumeLabel`, shows Resume Chat / Resume Agent building as a
500
+ * new-tab link (session deep link). Preferred over `onResume` when both are set.
501
+ */
502
+ resumeHref?: string;
503
+ /** In-shell resume fallback when no session deep link is available. */
504
+ onResume?: () => void;
505
+ /** Label for the resume action. */
506
+ resumeLabel?: string;
507
+ /** Whether the current user may resume this session. */
508
+ canResume?: boolean;
509
+ };
510
+ type AgentSessionTurnHeaderProps = {
511
+ turnNumber: number;
512
+ totalTokens?: number;
513
+ inputTokens?: number;
514
+ outputTokens?: number;
515
+ cachedTokens?: number;
516
+ durationMs?: number;
517
+ totalCostInUsd?: number;
518
+ };
519
+ type AgentSessionMetricsStripProps = {
520
+ metrics: SessionMetrics;
521
+ };
522
+ type AgentSessionEventTimelineProps = {
523
+ turns: SessionTurnView[];
524
+ segments: SessionEventTimelineSegment[];
525
+ onSelectTurn?: (index: number) => void;
526
+ };
527
+ type AgentSessionEventTimelineChartProps = {
528
+ turns: SessionTurnView[];
529
+ segments: SessionEventTimelineSegment[];
530
+ hiddenTypes: ReadonlySet<SessionEventType>;
531
+ onSelectTurn?: (index: number) => void;
532
+ };
533
+ type AgentDetailsTab = LibraryAgentTab;
534
+ type AgentDetailsPageProps = {
535
+ agentId: string;
536
+ };
537
+ type AgentDetailsHeaderProps = {
538
+ agentId: string;
539
+ detail?: AgentDetail;
540
+ onBack: () => void;
541
+ };
542
+ type AgentDetailsTabsProps = {
543
+ activeTab: AgentDetailsTab;
544
+ onTabChange: (tab: AgentDetailsTab) => void;
545
+ showMetrics?: boolean;
546
+ showSchedules?: boolean;
547
+ end?: ReactNode;
548
+ };
549
+ type AgentMetricsProps = {
550
+ agentId: string;
551
+ showTimeRangeFilter?: boolean;
552
+ } & ({
553
+ timeRange: SessionTimeRange;
554
+ onTimeRangeChange: (range: SessionTimeRange) => void;
555
+ } | {
556
+ timeRange?: undefined;
557
+ onTimeRangeChange?: undefined;
558
+ });
559
+ type AgentMetricChartResult = {
560
+ definition: AgentMetricChartDefinition;
561
+ graphs?: AgentMetricGraph[];
562
+ error?: string;
563
+ };
564
+ type AgentMetricsViewProps = {
565
+ meters?: AgentMetricMeter[];
566
+ meterError?: string;
567
+ charts: AgentMetricChartResult[];
568
+ chartsLoading: boolean;
569
+ chartsError?: string;
570
+ timeRange: SessionTimeRange;
571
+ onTimeRangeChange: (range: SessionTimeRange) => void;
572
+ showTimeRangeFilter?: boolean;
573
+ };
574
+ type AgentMetricStatisticsProps = {
575
+ meters: AgentMetricMeter[];
576
+ };
577
+ type AgentMetricsTimeRangeFilterProps = {
578
+ timeRange: SessionTimeRange;
579
+ onTimeRangeChange: (range: SessionTimeRange) => void;
580
+ };
581
+ type AgentMetricCardProps = {
582
+ meter: AgentMetricMeter;
583
+ };
584
+ type AgentMetricChartProps = {
585
+ graph?: AgentMetricGraph;
586
+ definition: AgentMetricChartDefinition;
587
+ error?: string;
588
+ colorIndex?: number;
589
+ };
590
+ type AgentOverviewProps = {
591
+ detail: AgentDetail;
592
+ };
593
+ type AgentOverviewCardProps = {
594
+ title: string;
595
+ icon?: string;
596
+ count?: number;
597
+ children: ReactNode;
598
+ };
599
+ type AgentCodeSnippetsProps = {
600
+ snippets: CodeSnippet[];
601
+ };
602
+ type AgentCodeBlockProps = {
603
+ code: string;
604
+ language: string;
605
+ };
606
+ type AgentDetailsUnavailableProps = {
607
+ onBack: () => void;
608
+ reason?: string;
609
+ };
610
+
611
+ declare function AgentCodeBlock({ code, language }: AgentCodeBlockProps): react.JSX.Element;
612
+ declare module '../../theme/SlotsProvider.js' {
613
+ interface AtomSlots {
614
+ AgentCodeBlock: typeof AgentCodeBlock;
615
+ }
616
+ }
617
+
618
+ declare function AgentDetailsHeader({ agentId, detail, onBack }: AgentDetailsHeaderProps): react.JSX.Element;
619
+ declare module '../../theme/SlotsProvider.js' {
620
+ interface AtomSlots {
621
+ AgentDetailsHeader: typeof AgentDetailsHeader;
622
+ }
623
+ }
624
+
625
+ declare function AgentDetailsPage({ agentId }: AgentDetailsPageProps): react.JSX.Element;
626
+ declare module '../../theme/SlotsProvider.js' {
627
+ interface AtomSlots {
628
+ AgentDetailsPage: typeof AgentDetailsPage;
629
+ }
630
+ }
631
+
632
+ declare function AgentDetailsTabs({ activeTab, onTabChange, showMetrics, showSchedules, end, }: AgentDetailsTabsProps): react.JSX.Element;
633
+ declare module '../../theme/SlotsProvider.js' {
634
+ interface AtomSlots {
635
+ AgentDetailsTabs: typeof AgentDetailsTabs;
636
+ }
637
+ }
638
+
639
+ declare function AgentDetailsUnavailable({ onBack, reason }: AgentDetailsUnavailableProps): react.JSX.Element;
640
+ declare module '../../theme/SlotsProvider.js' {
641
+ interface AtomSlots {
642
+ AgentDetailsUnavailable: typeof AgentDetailsUnavailable;
643
+ }
644
+ }
645
+
646
+ declare function AgentMetricCard({ meter }: AgentMetricCardProps): react.JSX.Element;
647
+ declare module '../../theme/SlotsProvider.js' {
648
+ interface AtomSlots {
649
+ AgentMetricCard: ComponentType<AgentMetricCardProps>;
650
+ }
651
+ }
652
+
653
+ declare function AgentMetricsTimeRangeFilter({ timeRange, onTimeRangeChange }: AgentMetricsTimeRangeFilterProps): react.JSX.Element;
654
+ declare module '../../theme/SlotsProvider.js' {
655
+ interface AtomSlots {
656
+ AgentMetricsTimeRangeFilter: ComponentType<AgentMetricsTimeRangeFilterProps>;
657
+ }
658
+ }
659
+
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;
662
+ declare module '../../theme/SlotsProvider.js' {
663
+ interface AtomSlots {
664
+ AgentMetricStatistics: ComponentType<AgentMetricStatisticsProps>;
665
+ AgentMetricsView: ComponentType<AgentMetricsViewProps>;
666
+ }
667
+ }
668
+
669
+ declare function AgentOverviewCard({ title, icon, count, children }: AgentOverviewCardProps): react.JSX.Element;
670
+ declare module '../../theme/SlotsProvider.js' {
671
+ interface AtomSlots {
672
+ AgentOverviewCard: typeof AgentOverviewCard;
673
+ }
674
+ }
675
+
676
+ declare function AgentSessionDetailHeader({ title, sessionId, agentId, createdAt, view, onClose, resumeHref, onResume, resumeLabel, canResume, }: AgentSessionDetailHeaderProps): react.JSX.Element;
677
+ declare module '../../theme/SlotsProvider.js' {
678
+ interface AtomSlots {
679
+ AgentSessionDetailHeader: typeof AgentSessionDetailHeader;
680
+ }
681
+ }
682
+
683
+ declare function AgentSessionListRow({ title, agentName, sourceType, lastActivityAt, metrics, active, onSelect, }: AgentSessionListRowProps): react.JSX.Element;
684
+ declare module '../../theme/SlotsProvider.js' {
685
+ interface AtomSlots {
686
+ AgentSessionListRow: typeof AgentSessionListRow;
687
+ }
688
+ }
689
+
690
+ declare function AgentSessionMetricsStrip({ metrics }: AgentSessionMetricsStripProps): react.JSX.Element;
691
+ declare module '../../theme/SlotsProvider.js' {
692
+ interface AtomSlots {
693
+ AgentSessionMetricsStrip: ComponentType<AgentSessionMetricsStripProps>;
694
+ }
695
+ }
696
+
697
+ type AgentSessionsFiltersProps = {
698
+ agentId: string | null;
699
+ timeRange: SessionTimeRange;
700
+ onAgentChange: (agentId: string | null) => void;
701
+ onTimeRangeChange: (range: SessionTimeRange) => void;
702
+ showAgentFilter?: boolean;
703
+ showCustomTimeRange?: boolean;
704
+ };
705
+ declare function AgentSessionsFilters({ agentId, timeRange, onAgentChange, onTimeRangeChange, showAgentFilter, showCustomTimeRange, }: AgentSessionsFiltersProps): react.JSX.Element;
706
+ declare module '../../theme/SlotsProvider.js' {
707
+ interface AtomSlots {
708
+ AgentSessionsFilters: typeof AgentSessionsFilters;
709
+ }
710
+ }
711
+
712
+ declare function AgentSessionTurnHeader({ turnNumber, totalTokens, inputTokens, outputTokens, cachedTokens, durationMs, totalCostInUsd, }: AgentSessionTurnHeaderProps): react.JSX.Element;
713
+ declare module '../../theme/SlotsProvider.js' {
714
+ interface AtomSlots {
715
+ AgentSessionTurnHeader: typeof AgentSessionTurnHeader;
716
+ }
717
+ }
718
+
719
+ declare function SessionsPage(): react.JSX.Element;
720
+ declare module '../../theme/SlotsProvider.js' {
721
+ interface AtomSlots {
722
+ SessionsPage: typeof SessionsPage;
723
+ }
724
+ }
725
+
397
726
  type AgentsLibraryProps = {
398
- open: boolean;
399
- onOpenChange: (open: boolean) => void;
400
727
  onSelectAgent?: (agentName: string) => void;
401
728
  };
402
- declare function AgentsLibrary({ open, onOpenChange, onSelectAgent }: AgentsLibraryProps): react.JSX.Element;
729
+ type AgentScheduleSummary = {
730
+ count: number;
731
+ pausedCount: number;
732
+ activeNames: string[];
733
+ pausedNames: string[];
734
+ };
735
+ type AgentLibraryRowProps = {
736
+ agent: AgentLibraryEntry;
737
+ canMutate: boolean;
738
+ canUseAgent?: boolean;
739
+ canManageAgent?: boolean;
740
+ canDeleteAgent?: boolean;
741
+ canManageSchedules: boolean;
742
+ showCreatedBy?: boolean;
743
+ scheduleSummary?: AgentScheduleSummary | null;
744
+ onOpenSchedules?: () => void;
745
+ onCreateSchedule?: () => void;
746
+ onOpen?: () => void;
747
+ onTry: () => void;
748
+ onEdit: () => void;
749
+ onManageSchedules?: () => void;
750
+ };
751
+ declare function AgentLibraryRow({ agent, canMutate, canUseAgent, canManageAgent, canDeleteAgent, canManageSchedules, showCreatedBy, scheduleSummary, onOpenSchedules, onCreateSchedule, onOpen, onTry, onEdit, onManageSchedules, }: AgentLibraryRowProps): react.JSX.Element;
752
+ declare function AgentsLibrary({ onSelectAgent }: AgentsLibraryProps): react.JSX.Element | null;
403
753
  declare module '../theme/SlotsProvider.js' {
404
754
  interface AtomSlots {
405
755
  AgentsLibrary: typeof AgentsLibrary;
756
+ AgentLibraryRow: typeof AgentLibraryRow;
406
757
  }
407
758
  }
408
759
 
409
760
  type AgentsLibraryButtonProps = {
410
761
  className?: string;
411
762
  compact?: boolean;
412
- onSelectAgent?: (agentName: string) => void;
413
763
  };
414
- declare function AgentsLibraryButton({ className, compact, onSelectAgent }: AgentsLibraryButtonProps): react.JSX.Element | null;
764
+ declare function AgentsLibraryButton({ className, compact }: AgentsLibraryButtonProps): react.JSX.Element | null;
415
765
  declare module '../theme/SlotsProvider.js' {
416
766
  interface AtomSlots {
417
767
  AgentsLibraryButton: typeof AgentsLibraryButton;
418
768
  }
419
769
  }
420
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
+
421
790
  type AssistantMessageBubbleProps = {
422
791
  children: ReactNode;
423
792
  error?: ReactNode;
@@ -481,8 +850,10 @@ type ChatFileDownloadProps = {
481
850
  fileDownloadBaseUrl?: string;
482
851
  onDownloadArtifact?: (path: string, filename: string) => Promise<void>;
483
852
  readOnly?: boolean;
853
+ /** Shown on hover when `readOnly` is true. */
854
+ readOnlyTooltip?: string;
484
855
  };
485
- declare function ChatFileDownload({ files, fileDownloadBaseUrl, onDownloadArtifact, readOnly }: ChatFileDownloadProps): react.JSX.Element;
856
+ declare function ChatFileDownload({ files, fileDownloadBaseUrl, onDownloadArtifact, readOnly, readOnlyTooltip, }: ChatFileDownloadProps): react.JSX.Element;
486
857
  declare module '../theme/SlotsProvider.js' {
487
858
  interface AtomSlots {
488
859
  ChatFileDownload: typeof ChatFileDownload;
@@ -590,6 +961,319 @@ declare module '../theme/SlotsProvider.js' {
590
961
  }
591
962
  }
592
963
 
964
+ type AgentInstructionsDraft = {
965
+ instructions: string;
966
+ messages: TrueForgeApi.InitialUserMessage[];
967
+ };
968
+ type AgentInstructionsDrawerProps = {
969
+ open: boolean;
970
+ instructions: string;
971
+ messages?: TrueForgeApi.InitialUserMessage[];
972
+ onSave: (draft: AgentInstructionsDraft) => void;
973
+ onClose: () => void;
974
+ };
975
+ declare function AgentInstructionsDrawer({ open, instructions, messages, onSave, onClose, }: AgentInstructionsDrawerProps): react.JSX.Element;
976
+ declare module '../../theme/SlotsProvider.js' {
977
+ interface AtomSlots {
978
+ AgentInstructionsDrawer: typeof AgentInstructionsDrawer;
979
+ }
980
+ }
981
+
982
+ type AgentConfigEditor = 'instructions' | 'model' | 'model-settings' | 'runtime' | 'mcp' | 'skills';
983
+ type AgentConfigEditorsProps = {
984
+ editor: AgentConfigEditor | null;
985
+ spec: AgentSpec;
986
+ models: ModelSelection[];
987
+ connectors: ConnectorState[];
988
+ skills: AgentSkill[];
989
+ loading: boolean;
990
+ error: string | null;
991
+ skillsDisabled?: boolean;
992
+ sandboxAvailable?: boolean;
993
+ instructions?: string;
994
+ onInstructionsSave?: (draft: AgentInstructionsDraft) => void;
995
+ loadMcpConnector?: (connectorId: string) => Promise<ConnectorState | undefined>;
996
+ loadMcpTools?: (connectorId: string) => Promise<McpToolSelection[]>;
997
+ onRefreshConnectors?: () => Promise<void>;
998
+ onChange: (spec: AgentSpec) => void;
999
+ onClose: () => void;
1000
+ };
1001
+ declare function AgentConfigEditors({ editor, spec, models, connectors, skills, loading, error, skillsDisabled, sandboxAvailable, instructions, onInstructionsSave, loadMcpConnector, loadMcpTools, onRefreshConnectors, onChange, onClose, }: AgentConfigEditorsProps): react.JSX.Element;
1002
+ declare module '../../theme/SlotsProvider.js' {
1003
+ interface AtomSlots {
1004
+ AgentConfigEditors: typeof AgentConfigEditors;
1005
+ }
1006
+ }
1007
+
1008
+ type AgentConfigPanelProps = {
1009
+ spec: AgentSpec;
1010
+ model?: ModelSelection;
1011
+ models: ModelSelection[];
1012
+ modelsLoading: boolean;
1013
+ modelsError: string | null;
1014
+ skills?: AgentSkill[];
1015
+ skillsAvailable: boolean;
1016
+ instructions: string;
1017
+ onOpenEditor: (editor: AgentConfigEditor) => void;
1018
+ onChange?: (spec: AgentSpec) => void;
1019
+ onClose?: () => void;
1020
+ disabled?: boolean;
1021
+ };
1022
+ declare function AgentConfigSection({ title, description, icon, actionIcon, actionLabel, onEdit, children, }: {
1023
+ title?: string;
1024
+ description?: string;
1025
+ icon?: string;
1026
+ actionIcon?: string;
1027
+ actionLabel?: string;
1028
+ onEdit?: () => void;
1029
+ children?: ReactNode;
1030
+ }): react.JSX.Element;
1031
+ declare function AgentConfigPanel({ spec, model, models, modelsLoading, modelsError, skills: catalogSkills, skillsAvailable, instructions, onOpenEditor, onChange, onClose, disabled, }: AgentConfigPanelProps): react.JSX.Element;
1032
+ declare module '../../theme/SlotsProvider.js' {
1033
+ interface AtomSlots {
1034
+ AgentConfigPanel: typeof AgentConfigPanel;
1035
+ AgentConfigSection: typeof AgentConfigSection;
1036
+ }
1037
+ }
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
+
1051
+ type AgentMcpEditorContentProps = {
1052
+ spec: AgentSpec;
1053
+ connectors: ConnectorState[];
1054
+ query: string;
1055
+ activeConnectorId: string | null;
1056
+ tools: McpToolSelection[];
1057
+ connectorLoading: boolean;
1058
+ connectorError: string | null;
1059
+ toolsLoading: boolean;
1060
+ toolsError: string | null;
1061
+ onQueryChange: (query: string) => void;
1062
+ onSelectConnector: (connectorId: string) => void;
1063
+ onRetryTools: () => void;
1064
+ onRefreshConnector?: () => void;
1065
+ onChange: (spec: AgentSpec) => void;
1066
+ };
1067
+ declare function AgentMcpEditorContent({ spec, connectors, query, activeConnectorId, tools, connectorLoading, connectorError, toolsLoading, toolsError, onQueryChange, onSelectConnector, onRetryTools, onRefreshConnector, onChange, }: AgentMcpEditorContentProps): react.JSX.Element;
1068
+ declare module '../../theme/SlotsProvider.js' {
1069
+ interface AtomSlots {
1070
+ AgentMcpEditorContent: typeof AgentMcpEditorContent;
1071
+ }
1072
+ }
1073
+
1074
+ type AgentModelConfigModalProps = {
1075
+ editor: 'model' | 'model-settings' | null;
1076
+ spec: AgentSpec;
1077
+ models: ModelSelection[];
1078
+ loading: boolean;
1079
+ error: string | null;
1080
+ query: string;
1081
+ onQueryChange: (query: string) => void;
1082
+ onChange: (spec: AgentSpec) => void;
1083
+ onClose: () => void;
1084
+ };
1085
+ declare function AgentModelConfigModal({ editor, spec, models, loading, error, query, onQueryChange, onChange, onClose, }: AgentModelConfigModalProps): react.JSX.Element;
1086
+ declare module '../../theme/SlotsProvider.js' {
1087
+ interface AtomSlots {
1088
+ AgentModelConfigModal: typeof AgentModelConfigModal;
1089
+ }
1090
+ }
1091
+
1092
+ type AgentModelEditorContentProps = {
1093
+ spec: AgentSpec;
1094
+ models: ModelSelection[];
1095
+ loading: boolean;
1096
+ error: string | null;
1097
+ query: string;
1098
+ onQueryChange: (query: string) => void;
1099
+ onChange: (spec: AgentSpec) => void;
1100
+ };
1101
+ declare function AgentModelEditorContent({ spec, models, loading, error, query, onQueryChange, onChange, }: AgentModelEditorContentProps): react.JSX.Element;
1102
+ declare module '../../theme/SlotsProvider.js' {
1103
+ interface AtomSlots {
1104
+ AgentModelEditorContent: typeof AgentModelEditorContent;
1105
+ }
1106
+ }
1107
+
1108
+ type AgentModelSettingsContentProps = {
1109
+ spec: AgentSpec;
1110
+ model?: ModelSelection;
1111
+ onChange: (spec: AgentSpec) => void;
1112
+ };
1113
+ declare function AgentModelSettingsContent({ spec, model, onChange }: AgentModelSettingsContentProps): react.JSX.Element;
1114
+ declare module '../../theme/SlotsProvider.js' {
1115
+ interface AtomSlots {
1116
+ AgentModelSettingsContent: typeof AgentModelSettingsContent;
1117
+ }
1118
+ }
1119
+
1120
+ type AgentResourceConfigModalProps = {
1121
+ editor: 'mcp' | 'skills' | null;
1122
+ spec: AgentSpec;
1123
+ connectors: ConnectorState[];
1124
+ skills: AgentSkill[];
1125
+ skillsDisabled: boolean;
1126
+ query: string;
1127
+ activeConnectorId: string | null;
1128
+ tools: McpToolSelection[];
1129
+ connectorLoading: boolean;
1130
+ connectorError: string | null;
1131
+ toolsLoading: boolean;
1132
+ toolsError: string | null;
1133
+ onQueryChange: (query: string) => void;
1134
+ onSelectConnector: (connectorId: string) => void;
1135
+ onRetryTools: () => void;
1136
+ onRefreshConnector?: () => void;
1137
+ onChange: (spec: AgentSpec) => void;
1138
+ onClose: () => void;
1139
+ };
1140
+ declare function AgentResourceConfigModal({ editor, onClose, ...contentProps }: AgentResourceConfigModalProps): react.JSX.Element;
1141
+ declare module '../../theme/SlotsProvider.js' {
1142
+ interface AtomSlots {
1143
+ AgentResourceConfigModal: typeof AgentResourceConfigModal;
1144
+ }
1145
+ }
1146
+
1147
+ type AgentResourceEditorContentProps = {
1148
+ editor: 'mcp' | 'skills';
1149
+ spec: AgentSpec;
1150
+ connectors: ConnectorState[];
1151
+ skills: AgentSkill[];
1152
+ skillsDisabled: boolean;
1153
+ query: string;
1154
+ activeConnectorId: string | null;
1155
+ tools: McpToolSelection[];
1156
+ connectorLoading: boolean;
1157
+ connectorError: string | null;
1158
+ toolsLoading: boolean;
1159
+ toolsError: string | null;
1160
+ onQueryChange: (query: string) => void;
1161
+ onSelectConnector: (connectorId: string) => void;
1162
+ onRetryTools: () => void;
1163
+ onRefreshConnector?: () => void;
1164
+ onChange: (spec: AgentSpec) => void;
1165
+ };
1166
+ declare function AgentResourceEditorContent(props: AgentResourceEditorContentProps): react.JSX.Element;
1167
+ declare module '../../theme/SlotsProvider.js' {
1168
+ interface AtomSlots {
1169
+ AgentResourceEditorContent: typeof AgentResourceEditorContent;
1170
+ }
1171
+ }
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
+
1187
+ type AgentRuntimeConfigFieldsProps = {
1188
+ value: AgentRuntimeConfig;
1189
+ sandboxAvailable: boolean;
1190
+ hasSkills: boolean;
1191
+ disabled?: boolean;
1192
+ showCapabilities?: boolean;
1193
+ layout?: 'compact' | 'detailed';
1194
+ onChange: (value: AgentRuntimeConfig) => void;
1195
+ };
1196
+ declare function AgentRuntimeConfigFields({ value, sandboxAvailable, hasSkills, disabled, showCapabilities, layout, onChange, }: AgentRuntimeConfigFieldsProps): react.JSX.Element;
1197
+ declare module '../../theme/SlotsProvider.js' {
1198
+ interface AtomSlots {
1199
+ AgentRuntimeConfigFields: typeof AgentRuntimeConfigFields;
1200
+ }
1201
+ }
1202
+
1203
+ type AgentRuntimeEditorContentProps = {
1204
+ spec: AgentSpec;
1205
+ sandboxAvailable: boolean;
1206
+ onChange: (spec: AgentSpec) => void;
1207
+ };
1208
+ declare function AgentRuntimeEditorContent({ spec, sandboxAvailable, onChange }: AgentRuntimeEditorContentProps): react.JSX.Element;
1209
+ declare module '../../theme/SlotsProvider.js' {
1210
+ interface AtomSlots {
1211
+ AgentRuntimeEditorContent: typeof AgentRuntimeEditorContent;
1212
+ }
1213
+ }
1214
+
1215
+ type AgentSkillsEditorContentProps = {
1216
+ spec: AgentSpec;
1217
+ skills: AgentSkill[];
1218
+ skillsDisabled: boolean;
1219
+ query: string;
1220
+ onQueryChange: (query: string) => void;
1221
+ onChange: (spec: AgentSpec) => void;
1222
+ };
1223
+ declare function AgentSkillsEditorContent({ spec, skills, skillsDisabled, query, onQueryChange, onChange, }: AgentSkillsEditorContentProps): react.JSX.Element;
1224
+ declare module '../../theme/SlotsProvider.js' {
1225
+ interface AtomSlots {
1226
+ AgentSkillsEditorContent: typeof AgentSkillsEditorContent;
1227
+ }
1228
+ }
1229
+
1230
+ type DraftAgentConfigTriggerProps = {
1231
+ disabled?: boolean;
1232
+ isRunning?: boolean;
1233
+ };
1234
+ declare function DraftAgentConfigTrigger({ disabled, isRunning }: DraftAgentConfigTriggerProps): react.JSX.Element;
1235
+ declare module '../../theme/SlotsProvider.js' {
1236
+ interface AtomSlots {
1237
+ DraftAgentConfigTrigger: typeof DraftAgentConfigTrigger;
1238
+ }
1239
+ }
1240
+
1241
+ type AgentCapabilityValues = {
1242
+ generativeUi: boolean;
1243
+ dynamicSubAgents: boolean;
1244
+ askUserQuestions: boolean;
1245
+ };
1246
+
1247
+ declare function DraftCapabilitiesPanel({ value, onChange, disabled, divided, layout, }: {
1248
+ value: AgentCapabilityValues;
1249
+ onChange: (value: AgentCapabilityValues) => void;
1250
+ disabled?: boolean;
1251
+ divided?: boolean;
1252
+ layout?: 'list' | 'cards';
1253
+ }): react.JSX.Element;
1254
+ declare module '../../theme/SlotsProvider.js' {
1255
+ interface AtomSlots {
1256
+ DraftCapabilitiesPanel: typeof DraftCapabilitiesPanel;
1257
+ }
1258
+ }
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
+
593
1277
  declare function DraftComposerLeftSection({ disabled, isRunning, onAttach }: ComposerLeftSectionProps): react.JSX.Element;
594
1278
  declare function DraftComposerRightSection({ disabled, isRunning }: ComposerRightSectionProps): react.JSX.Element;
595
1279
  declare module '../../theme/SlotsProvider.js' {
@@ -599,6 +1283,23 @@ declare module '../../theme/SlotsProvider.js' {
599
1283
  }
600
1284
  }
601
1285
 
1286
+ declare function CatalogRow({ title, description, badge, logo, fallbackIcon, checked, disabled, onToggle, onActivate, action, }: {
1287
+ title: string;
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;
1293
+ checked: boolean;
1294
+ disabled?: boolean;
1295
+ onToggle: () => void;
1296
+ onActivate?: () => void;
1297
+ action?: ReactNode;
1298
+ }): react.JSX.Element;
1299
+ declare function ConnectorConnectButton({ connector, onConnected, }: {
1300
+ connector: ConnectorState;
1301
+ onConnected: () => Promise<void>;
1302
+ }): react.JSX.Element;
602
1303
  type DraftCompositeSelectorProps = {
603
1304
  disabled?: boolean;
604
1305
  isRunning?: boolean;
@@ -607,6 +1308,8 @@ type DraftCompositeSelectorProps = {
607
1308
  declare function DraftCompositeSelector({ disabled, isRunning, onAttach }: DraftCompositeSelectorProps): react.JSX.Element;
608
1309
  declare module '../../theme/SlotsProvider.js' {
609
1310
  interface AtomSlots {
1311
+ CatalogRow: typeof CatalogRow;
1312
+ ConnectorConnectButton: typeof ConnectorConnectButton;
610
1313
  DraftCompositeSelector: typeof DraftCompositeSelector;
611
1314
  }
612
1315
  }
@@ -633,9 +1336,11 @@ type MarkdownProps = {
633
1336
  onDownloadArtifact?: (path: string, filename: string) => Promise<void>;
634
1337
  /** When true, download actions in sandbox artifact blocks are hidden/disabled. */
635
1338
  readOnly?: boolean;
1339
+ /** Shown on hover over sandbox artifact filenames when `readOnly` is true. */
1340
+ sandboxDownloadReadOnlyTooltip?: string;
636
1341
  className?: string;
637
1342
  };
638
- 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;
639
1344
  declare module '../theme/SlotsProvider.js' {
640
1345
  interface AtomSlots {
641
1346
  Markdown: typeof Markdown;
@@ -699,13 +1404,29 @@ declare module '../theme/SlotsProvider.js' {
699
1404
  }
700
1405
  }
701
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
+
702
1421
  type SandboxArtifactDownloadProps = {
703
1422
  code: string;
704
1423
  fileDownloadBaseUrl?: string;
705
1424
  onDownloadArtifact?: (path: string, filename: string) => Promise<void>;
706
1425
  readOnly?: boolean;
1426
+ /** Shown on hover when `readOnly` is true. */
1427
+ sandboxDownloadReadOnlyTooltip?: string;
707
1428
  };
708
- 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;
709
1430
  declare module '../theme/SlotsProvider.js' {
710
1431
  interface AtomSlots {
711
1432
  SandboxArtifactDownload: typeof SandboxArtifactDownload;
@@ -728,6 +1449,8 @@ type ToolCallCardProps = {
728
1449
  showResponseLine?: boolean;
729
1450
  responseIcon?: ReactNode;
730
1451
  approvalSlot?: ReactNode;
1452
+ /** When set, this card is the scroll/flash target for approval banner navigation. */
1453
+ approvalId?: string;
731
1454
  requestSlot?: ReactNode;
732
1455
  responseSlot?: ReactNode;
733
1456
  highlightCard?: boolean;
@@ -735,7 +1458,7 @@ type ToolCallCardProps = {
735
1458
  mcpServerName?: string;
736
1459
  dataTestPrefix?: string;
737
1460
  };
738
- 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;
739
1462
  declare module '../theme/SlotsProvider.js' {
740
1463
  interface AtomSlots {
741
1464
  ToolCallCard: typeof ToolCallCard;
@@ -757,10 +1480,13 @@ type SandboxToolCallCardProps = {
757
1480
  hasContent?: boolean;
758
1481
  onViewModeChange?: (viewMode: 'terminal' | 'code') => void;
759
1482
  durationText?: string;
1483
+ approvalSlot?: ReactNode;
1484
+ /** When set, this card is the scroll/flash target for approval banner navigation. */
1485
+ approvalId?: string;
760
1486
  dataTestPrefix?: string;
761
1487
  className?: string;
762
1488
  };
763
- 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;
764
1490
  declare module '../theme/SlotsProvider.js' {
765
1491
  interface AtomSlots {
766
1492
  SandboxToolCallCard: typeof SandboxToolCallCard;
@@ -771,14 +1497,57 @@ type SaveAgentButtonProps = {
771
1497
  disabled?: boolean;
772
1498
  className?: string;
773
1499
  children?: string;
1500
+ /** Unsynced drawer instructions to overlay onto the latest runtime spec. */
1501
+ instructionsOverride?: string;
774
1502
  };
775
- declare function SaveAgentButton({ disabled, className, children }: SaveAgentButtonProps): react.JSX.Element;
1503
+ declare function SaveAgentButton({ disabled, className, children, instructionsOverride, }: SaveAgentButtonProps): react.JSX.Element;
776
1504
  declare module '../theme/SlotsProvider.js' {
777
1505
  interface AtomSlots {
778
1506
  SaveAgentButton: typeof SaveAgentButton;
779
1507
  }
780
1508
  }
781
1509
 
1510
+ type SaveAgentFormProps = {
1511
+ intent: 'create' | 'update';
1512
+ name: string;
1513
+ description: string;
1514
+ spec: AgentSpec;
1515
+ saving: boolean;
1516
+ error: string | null;
1517
+ onNameChange: (name: string) => void;
1518
+ onDescriptionChange: (description: string) => void;
1519
+ onCancel: () => void;
1520
+ onSave: () => void;
1521
+ };
1522
+ declare function SaveAgentForm({ intent, name, description, spec, saving, error, onNameChange, onDescriptionChange, onCancel, onSave, }: SaveAgentFormProps): react.JSX.Element;
1523
+ declare module '../theme/SlotsProvider.js' {
1524
+ interface AtomSlots {
1525
+ SaveAgentForm: typeof SaveAgentForm;
1526
+ }
1527
+ }
1528
+
1529
+ type SchedulesPageProps = {
1530
+ /** Lock the page to one agent when embedded in Agent Details. */
1531
+ agentId?: string;
1532
+ };
1533
+ declare function SchedulesPage({ agentId }: SchedulesPageProps): react.JSX.Element;
1534
+ declare module '../../theme/SlotsProvider.js' {
1535
+ interface AtomSlots {
1536
+ SchedulesPage: ComponentType<SchedulesPageProps>;
1537
+ }
1538
+ }
1539
+
1540
+ type SchedulesButtonProps = {
1541
+ className?: string;
1542
+ compact?: boolean;
1543
+ };
1544
+ declare function SchedulesButton({ className, compact }: SchedulesButtonProps): react.JSX.Element | null;
1545
+ declare module '../theme/SlotsProvider.js' {
1546
+ interface AtomSlots {
1547
+ SchedulesButton: typeof SchedulesButton;
1548
+ }
1549
+ }
1550
+
782
1551
  /** Empty main pane when AgentLibrary has no agent selected yet. */
783
1552
  declare function SelectAgentEmptyState(): react.JSX.Element | null;
784
1553
  declare module '../theme/SlotsProvider.js' {
@@ -787,6 +1556,17 @@ declare module '../theme/SlotsProvider.js' {
787
1556
  }
788
1557
  }
789
1558
 
1559
+ type SessionsBrowserButtonProps = {
1560
+ className?: string;
1561
+ compact?: boolean;
1562
+ };
1563
+ declare function SessionsBrowserButton({ className, compact }: SessionsBrowserButtonProps): react.JSX.Element | null;
1564
+ declare module '../theme/SlotsProvider.js' {
1565
+ interface AtomSlots {
1566
+ SessionsBrowserButton: typeof SessionsBrowserButton;
1567
+ }
1568
+ }
1569
+
790
1570
  /**
791
1571
  * Optional host chrome (e.g. logout) to the right of theme + settings in {@link ShellActions}.
792
1572
  * Default is empty; override via `overrides.ShellActionsActionSlot`.
@@ -842,7 +1622,7 @@ type ThreadListEmptyStateProps = {
842
1622
  };
843
1623
  declare function ThreadListEmptyState({ message, className }: ThreadListEmptyStateProps): react.JSX.Element;
844
1624
  type ThreadListShellProps = {
845
- header: ReactNode;
1625
+ header?: ReactNode;
846
1626
  children: ReactNode;
847
1627
  className?: string;
848
1628
  };
@@ -973,16 +1753,28 @@ declare module '../theme/SlotsProvider.js' {
973
1753
  }
974
1754
  }
975
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
+
976
1767
  type UserMessageActionBarProps = {
977
1768
  isCopied: boolean;
978
1769
  editDisabled?: boolean;
1770
+ retryDisabled?: boolean;
979
1771
  createdAt?: Date | string;
980
1772
  onCopy: () => void;
981
1773
  onEdit: () => void;
982
1774
  onRetry: () => void;
983
1775
  className?: string;
984
1776
  };
985
- 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;
986
1778
  declare module '../theme/SlotsProvider.js' {
987
1779
  interface AtomSlots {
988
1780
  UserMessageActionBar: typeof UserMessageActionBar;
@@ -1014,6 +1806,29 @@ declare module '../theme/SlotsProvider.js' {
1014
1806
  }
1015
1807
  }
1016
1808
 
1809
+ declare function AgentMetricsContainer({ agentId, timeRange: controlledTimeRange, onTimeRangeChange, showTimeRangeFilter, }: AgentMetricsProps): react.JSX.Element;
1810
+ declare module '../theme/SlotsProvider.js' {
1811
+ interface AtomSlots {
1812
+ AgentMetrics: ComponentType<AgentMetricsProps>;
1813
+ }
1814
+ }
1815
+
1816
+ type AgentSessionTimelineContainerProps = {
1817
+ sessionId: string;
1818
+ events: SessionEventItem[];
1819
+ listMetrics?: {
1820
+ totalTurns: number;
1821
+ totalCostInUsd?: number;
1822
+ totalDurationMs: number;
1823
+ };
1824
+ };
1825
+ declare function AgentSessionTimelineContainer({ sessionId, events, listMetrics }: AgentSessionTimelineContainerProps): react.JSX.Element;
1826
+ declare module '../theme/SlotsProvider.js' {
1827
+ interface AtomSlots {
1828
+ AgentSessionTimelineContainer: typeof AgentSessionTimelineContainer;
1829
+ }
1830
+ }
1831
+
1017
1832
  /** Default slot implementations. Feature atoms + chrome; primitives via theme/CSS. */
1018
1833
  declare const defaultSlots: {
1019
1834
  Accordion: typeof Accordion;
@@ -1024,9 +1839,30 @@ declare const defaultSlots: {
1024
1839
  ComposerLeftSection: typeof ComposerLeftSection;
1025
1840
  ComposerRightSection: typeof ComposerRightSection;
1026
1841
  ComposerSendButton: typeof ComposerSendButton;
1842
+ PermissionGuard: typeof PermissionGuard;
1027
1843
  DraftComposerLeftSection: typeof DraftComposerLeftSection;
1028
1844
  DraftComposerRightSection: typeof DraftComposerRightSection;
1845
+ DraftAgentConfigTrigger: typeof DraftAgentConfigTrigger;
1846
+ DraftCapabilitiesPanel: typeof DraftCapabilitiesPanel;
1847
+ DraftComposerActionsMenu: typeof DraftComposerActionsMenu;
1848
+ AgentCustomParametersEditor: typeof AgentCustomParametersEditor;
1849
+ AgentConfigEditors: typeof AgentConfigEditors;
1850
+ AgentInstructionsDrawer: typeof AgentInstructionsDrawer;
1851
+ AgentModelEditorContent: typeof AgentModelEditorContent;
1852
+ AgentModelSettingsContent: typeof AgentModelSettingsContent;
1853
+ AgentMcpEditorContent: typeof AgentMcpEditorContent;
1854
+ AgentModelConfigModal: typeof AgentModelConfigModal;
1855
+ AgentResourceEditorContent: typeof AgentResourceEditorContent;
1856
+ AgentResourceConfigModal: typeof AgentResourceConfigModal;
1857
+ AgentSkillsEditorContent: typeof AgentSkillsEditorContent;
1858
+ AgentConfigPanel: typeof AgentConfigPanel;
1859
+ AgentConfigSection: typeof AgentConfigSection;
1860
+ AgentRuntimeConfigFields: typeof AgentRuntimeConfigFields;
1861
+ AgentRuntimeConfigDrawer: typeof AgentRuntimeConfigDrawer;
1862
+ AgentRuntimeEditorContent: typeof AgentRuntimeEditorContent;
1029
1863
  DraftCompositeSelector: typeof DraftCompositeSelector;
1864
+ CatalogRow: typeof CatalogRow;
1865
+ ConnectorConnectButton: typeof ConnectorConnectButton;
1030
1866
  DraftModelSelector: typeof DraftModelSelector;
1031
1867
  AssistantMessageBubble: typeof AssistantMessageBubble;
1032
1868
  UserMessageBubble: typeof UserMessageBubble;
@@ -1037,7 +1873,7 @@ declare const defaultSlots: {
1037
1873
  MessageIndicator: typeof MessageIndicator;
1038
1874
  MessageTimestamp: typeof MessageTimestamp;
1039
1875
  Markdown: typeof Markdown;
1040
- SyntaxHighlighter: react.ComponentType<SyntaxHighlighterProps>;
1876
+ SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
1041
1877
  OpenUiFenceBlock: typeof OpenUiFenceBlock;
1042
1878
  SandboxArtifactDownload: typeof SandboxArtifactDownload;
1043
1879
  ChatFileDownload: typeof ChatFileDownload;
@@ -1062,8 +1898,38 @@ declare const defaultSlots: {
1062
1898
  ThreadListRow: typeof ThreadListRow;
1063
1899
  ThreadListNewButton: typeof ThreadListNewButton;
1064
1900
  AgentsLibrary: typeof AgentsLibrary;
1901
+ AgentLibraryRow: typeof AgentLibraryRow;
1065
1902
  AgentsLibraryButton: typeof AgentsLibraryButton;
1903
+ ApprovalNavBanner: typeof ApprovalNavBanner;
1904
+ SessionsBrowserButton: typeof SessionsBrowserButton;
1905
+ AgentDetailsPage: typeof AgentDetailsPage;
1906
+ AgentDetailsHeader: typeof AgentDetailsHeader;
1907
+ AgentDetailsTabs: typeof AgentDetailsTabs;
1908
+ AgentDetailsUnavailable: typeof AgentDetailsUnavailable;
1909
+ AgentOverview: react.FunctionComponent<AgentOverviewProps>;
1910
+ AgentOverviewCard: typeof AgentOverviewCard;
1911
+ AgentMetrics: typeof AgentMetricsContainer;
1912
+ AgentMetricsView: typeof AgentMetricsView;
1913
+ AgentMetricsTimeRangeFilter: typeof AgentMetricsTimeRangeFilter;
1914
+ AgentMetricCard: typeof AgentMetricCard;
1915
+ AgentMetricStatistics: typeof AgentMetricStatistics;
1916
+ AgentMetricChart: react.FunctionComponent<AgentMetricChartProps>;
1917
+ AgentSessionDetailHeader: typeof AgentSessionDetailHeader;
1918
+ AgentSessionsFilters: typeof AgentSessionsFilters;
1919
+ SessionsPage: typeof SessionsPage;
1920
+ AgentSessionEventTimeline: react.FunctionComponent<AgentSessionEventTimelineProps>;
1921
+ AgentSessionEventTimelineChart: react.FunctionComponent<AgentSessionEventTimelineChartProps>;
1922
+ AgentSessionListRow: typeof AgentSessionListRow;
1923
+ AgentSessionMetricsStrip: typeof AgentSessionMetricsStrip;
1924
+ AgentSessionTimelineContainer: typeof AgentSessionTimelineContainer;
1925
+ AgentSessionTurnHeader: typeof AgentSessionTurnHeader;
1926
+ AgentSessions: react.FunctionComponent<AgentSessionsProps>;
1927
+ AgentCodeSnippets: react.FunctionComponent<AgentCodeSnippetsProps>;
1928
+ AgentCodeBlock: typeof AgentCodeBlock;
1929
+ SchedulesPage: react.FunctionComponent<SchedulesPageProps>;
1930
+ SchedulesButton: typeof SchedulesButton;
1066
1931
  SaveAgentButton: typeof SaveAgentButton;
1932
+ SaveAgentForm: typeof SaveAgentForm;
1067
1933
  SelectAgentEmptyState: typeof SelectAgentEmptyState;
1068
1934
  ClearChatButton: typeof ClearChatButton;
1069
1935
  ThreadListRowSkeleton: typeof ThreadListRowSkeleton;
@@ -1078,6 +1944,7 @@ declare const defaultSlots: {
1078
1944
  Toast: typeof Toast;
1079
1945
  ToastStack: typeof ToastStack;
1080
1946
  ShellActionsActionSlot: typeof ShellActionsActionSlot;
1947
+ UserAvatar: typeof UserAvatar;
1081
1948
  };
1082
1949
 
1083
1950
  type PresetTokens = {
@@ -1138,8 +2005,8 @@ type BottomSheetProps = {
1138
2005
  };
1139
2006
  declare function BottomSheet({ open, onOpenChange, children, className, id, 'aria-label': ariaLabel, }: BottomSheetProps): react.JSX.Element;
1140
2007
 
1141
- type AuiButtonVariant = 'default' | 'secondary' | 'ghost' | 'destructive' | 'outline';
1142
- type AuiButtonSize = 'default' | 'sm' | 'lg' | 'icon';
2008
+ type AuiButtonVariant = 'primary' | 'secondary' | 'ghost' | 'destructive';
2009
+ type AuiButtonSize = 'large' | 'small' | 'icon';
1143
2010
 
1144
2011
  type ButtonVariant = AuiButtonVariant;
1145
2012
  type ButtonSize = AuiButtonSize;
@@ -1148,6 +2015,17 @@ type ButtonProps = react__default.ButtonHTMLAttributes<HTMLButtonElement> & {
1148
2015
  size?: ButtonSize;
1149
2016
  asChild?: never;
1150
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
+ };
1151
2029
 
1152
2030
  type CenteredModalProps = {
1153
2031
  open: boolean;
@@ -1156,6 +2034,7 @@ type CenteredModalProps = {
1156
2034
  description?: string;
1157
2035
  headerIcon?: ReactNode;
1158
2036
  children: ReactNode;
2037
+ footer?: ReactNode;
1159
2038
  className?: string;
1160
2039
  contentSized?: boolean;
1161
2040
  'aria-label'?: string;
@@ -1164,7 +2043,7 @@ type CenteredModalProps = {
1164
2043
  * Responsive modal chrome: centered dialog on `md+`, bottom sheet below `md`.
1165
2044
  * One content tree for both breakpoints (native `<dialog>`).
1166
2045
  */
1167
- declare function CenteredModal({ open, onOpenChange, title, description, headerIcon, children, className, contentSized, 'aria-label': ariaLabel, }: CenteredModalProps): react.JSX.Element;
2046
+ declare function CenteredModal({ open, onOpenChange, title, description, headerIcon, children, footer, className, contentSized, 'aria-label': ariaLabel, }: CenteredModalProps): react.JSX.Element;
1168
2047
 
1169
2048
  type IconButtonProps = Omit<ButtonProps, 'size' | 'children'> & {
1170
2049
  'aria-label': string;
@@ -1172,6 +2051,92 @@ type IconButtonProps = Omit<ButtonProps, 'size' | 'children'> & {
1172
2051
  children: react__default.ReactNode;
1173
2052
  };
1174
2053
 
2054
+ type MenuPlacement = 'top' | 'bottom';
2055
+ type PopoverSelectOption<T extends string> = {
2056
+ value: T;
2057
+ label: string;
2058
+ disabled?: boolean;
2059
+ };
2060
+ type CommonPopoverSelectProps<T extends string> = {
2061
+ options: readonly PopoverSelectOption<T>[];
2062
+ placeholder?: string;
2063
+ disabled?: boolean;
2064
+ className?: string;
2065
+ menuClassName?: string;
2066
+ /** Preferred open edge; flips when that side lacks room. Default `bottom`. */
2067
+ menuPlacement?: MenuPlacement;
2068
+ /** When set, renders a labeled chip trigger (label | value chip + chevron). */
2069
+ prefix?: string;
2070
+ emptyContent?: ReactNode;
2071
+ footer?: ReactNode;
2072
+ 'aria-label': string;
2073
+ };
2074
+ type PopoverSelectProps<T extends string> = CommonPopoverSelectProps<T> & ({
2075
+ multiple?: false;
2076
+ value: T;
2077
+ onValueChange: (value: T) => void;
2078
+ } | {
2079
+ multiple: true;
2080
+ value: readonly T[];
2081
+ onValueChange: (value: T[]) => void;
2082
+ });
2083
+ declare function PopoverSelect<T extends string>(props: PopoverSelectProps<T>): react.JSX.Element;
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
+
2117
+ type SideDrawerAnchor = 'left' | 'right';
2118
+ type SideDrawerSize = 'sm' | 'md' | 'lg' | 'xl';
2119
+ type SideDrawerProps = {
2120
+ open: boolean;
2121
+ onOpenChange: (open: boolean) => void;
2122
+ title: string;
2123
+ description?: string;
2124
+ headerIcon?: ReactNode;
2125
+ children: ReactNode;
2126
+ footer?: ReactNode;
2127
+ /** Desktop side; ignored when compact / below `md` (falls back to bottom sheet). */
2128
+ anchor?: SideDrawerAnchor;
2129
+ /** Desktop width. Defaults to `md`. */
2130
+ size?: SideDrawerSize;
2131
+ className?: string;
2132
+ 'aria-label'?: string;
2133
+ };
2134
+ /**
2135
+ * Responsive overlay chrome: side drawer on `md+`, bottom sheet below `md`
2136
+ * (and always when compact dock/widget layout is active).
2137
+ */
2138
+ declare function SideDrawer({ open, onOpenChange, title, description, headerIcon, children, footer, anchor, size, className, 'aria-label': ariaLabel, }: SideDrawerProps): react.JSX.Element;
2139
+
1175
2140
  type SwitchSize = 'sm' | 'md';
1176
2141
  type SwitchProps = Omit<ComponentPropsWithoutRef<'button'>, 'aria-checked' | 'children' | 'onClick' | 'role'> & {
1177
2142
  checked: boolean;
@@ -1180,6 +2145,105 @@ type SwitchProps = Omit<ComponentPropsWithoutRef<'button'>, 'aria-checked' | 'ch
1180
2145
  };
1181
2146
  declare function Switch({ checked, onCheckedChange, size, disabled, className, ...props }: SwitchProps): react.JSX.Element;
1182
2147
 
2148
+ declare const DEFAULT_TABLE_PAGE_SIZE = 10;
2149
+ declare const TABLE_PAGE_SIZE_OPTIONS: readonly [10, 25, 50];
2150
+ type TableProps = react__default.HTMLAttributes<HTMLTableElement> & {
2151
+ /** Extra classes on the horizontal scroll wrapper. */
2152
+ containerClassName?: string;
2153
+ };
2154
+ declare function Table({ className, containerClassName, ...props }: TableProps): react__default.JSX.Element;
2155
+ type TableHeaderProps = react__default.HTMLAttributes<HTMLTableSectionElement>;
2156
+ declare function TableHeader({ className, ...props }: TableHeaderProps): react__default.JSX.Element;
2157
+ type TableBodyProps = react__default.HTMLAttributes<HTMLTableSectionElement>;
2158
+ declare function TableBody({ className, ...props }: TableBodyProps): react__default.JSX.Element;
2159
+ type TableRowProps = react__default.HTMLAttributes<HTMLTableRowElement>;
2160
+ declare function TableRow({ className, ...props }: TableRowProps): react__default.JSX.Element;
2161
+ type TableHeadProps = react__default.ThHTMLAttributes<HTMLTableCellElement>;
2162
+ declare function TableHead({ className, ...props }: TableHeadProps): react__default.JSX.Element;
2163
+ type TableCellProps = react__default.TdHTMLAttributes<HTMLTableCellElement>;
2164
+ declare function TableCell({ className, ...props }: TableCellProps): react__default.JSX.Element;
2165
+ type TablePaginationProps = {
2166
+ page: number;
2167
+ pageSize: number;
2168
+ total: number;
2169
+ onPageChange: (page: number) => void;
2170
+ onPageSizeChange: (pageSize: number) => void;
2171
+ pageSizeOptions?: readonly number[];
2172
+ className?: string;
2173
+ };
2174
+ declare function TablePagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizeOptions, className, }: TablePaginationProps): react__default.JSX.Element;
2175
+ /** Cursor / token pagination when the API has no total count. */
2176
+ type TableTokenPaginationProps = {
2177
+ pageSize: number;
2178
+ rowCount: number;
2179
+ canPrev: boolean;
2180
+ canNext: boolean;
2181
+ onPrev: () => void;
2182
+ onNext: () => void;
2183
+ onPageSizeChange: (pageSize: number) => void;
2184
+ pageSizeOptions?: readonly number[];
2185
+ className?: string;
2186
+ };
2187
+ declare function TableTokenPagination({ pageSize, rowCount, canPrev, canNext, onPrev, onNext, onPageSizeChange, pageSizeOptions, className, }: TableTokenPaginationProps): react__default.JSX.Element;
2188
+
2189
+ type ScheduleFormDrawerProps = {
2190
+ open: boolean;
2191
+ onOpenChange: (open: boolean) => void;
2192
+ mode: 'create' | 'edit';
2193
+ schedule?: Schedule;
2194
+ initialAgentId?: string;
2195
+ onSaved?: () => void;
2196
+ };
2197
+ declare function ScheduleFormDrawer(props: ScheduleFormDrawerProps): react.JSX.Element;
2198
+
2199
+ type RecurrenceKind = 'hourly' | 'daily' | 'weekly' | 'custom';
2200
+ type ScheduleFormValues = {
2201
+ name: string;
2202
+ task: string;
2203
+ recurrence: RecurrenceKind;
2204
+ hour: number;
2205
+ minute: number;
2206
+ /** Cron DOW: 0=Sun … 6=Sat. Used when recurrence is weekly. */
2207
+ weekdays: number[];
2208
+ customCron: string;
2209
+ timezone: string;
2210
+ };
2211
+
2212
+ type ScheduleFormFieldsProps = {
2213
+ values: ScheduleFormValues;
2214
+ onChange: (next: ScheduleFormValues) => void;
2215
+ agentId: string;
2216
+ agentLabel: string;
2217
+ onAgentIdChange?: (agentId: string) => void;
2218
+ onAgentPicked?: (agent: AgentLibraryEntry) => void;
2219
+ agentPickerDisabled?: boolean;
2220
+ onBuildAgent?: () => void;
2221
+ };
2222
+ declare function ScheduleFormFields({ values, onChange, agentId, agentLabel, onAgentIdChange, onAgentPicked, agentPickerDisabled, onBuildAgent, }: ScheduleFormFieldsProps): react.JSX.Element;
2223
+
2224
+ declare function ScheduleLastRunsCell({ runs }: {
2225
+ runs: readonly ScheduleRun[];
2226
+ }): react.JSX.Element;
2227
+
2228
+ declare function ScheduleRunChip({ run }: {
2229
+ run: ScheduleRun;
2230
+ }): react.JSX.Element;
2231
+
2232
+ declare function ScheduleStatusBadge({ status }: {
2233
+ status: ScheduleStatus;
2234
+ }): react.JSX.Element;
2235
+
2236
+ type ScheduleMcpMount = {
2237
+ name: string;
2238
+ };
2239
+ type TestScheduleScreenProps = {
2240
+ schedule: Schedule;
2241
+ agentName: string;
2242
+ mcpMounts: readonly ScheduleMcpMount[];
2243
+ onEditConfiguration: () => void;
2244
+ };
2245
+ declare function TestScheduleScreen({ schedule, agentName, mcpMounts, onEditConfiguration }: TestScheduleScreenProps): react.JSX.Element;
2246
+
1183
2247
  type IconProps = IconProps$1 & {
1184
2248
  name: string | readonly string[];
1185
2249
  };
@@ -1205,7 +2269,12 @@ interface AgentStepsContainerProps {
1205
2269
  */
1206
2270
  declare function AgentStepsContainer({ children, toolCount, thinkingCount, hasFinal, }: PropsWithChildren<AgentStepsContainerProps>): react.JSX.Element;
1207
2271
 
1208
- 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;
1209
2278
 
1210
2279
  declare function AssistantMessageContainer(): react.JSX.Element;
1211
2280
 
@@ -1221,7 +2290,9 @@ type ComposerContainerProps = {
1221
2290
  declare function ComposerContainer({ placeholder, }: ComposerContainerProps): react.JSX.Element;
1222
2291
 
1223
2292
  /** Host custom-action UI for a pending client-side tool response. */
1224
- declare function CustomActionContainer(): react.JSX.Element | null;
2293
+ declare function CustomActionContainer({ disabled }: {
2294
+ disabled?: boolean;
2295
+ }): react.JSX.Element | null;
1225
2296
 
1226
2297
  /**
1227
2298
  * Renders `HistoryLoader` at the top of the message list and fetches
@@ -1233,7 +2304,9 @@ declare function CustomActionContainer(): react.JSX.Element | null;
1233
2304
  */
1234
2305
  declare function HistoryLoaderContainer(): react.JSX.Element | null;
1235
2306
 
1236
- declare function McpAuthContainer(): react.JSX.Element | null;
2307
+ declare function McpAuthContainer({ disabled }: {
2308
+ disabled?: boolean;
2309
+ }): react.JSX.Element | null;
1237
2310
 
1238
2311
  declare const PostMcpOauthScreen: () => react.JSX.Element;
1239
2312
 
@@ -1267,8 +2340,10 @@ declare function ThreadContainer({ composer }: ThreadContainerProps): react.JSX.
1267
2340
  type ThreadListContainerProps = {
1268
2341
  /** Called after New chat or selecting a row — used by stack/drawer chrome. */
1269
2342
  onThreadOpen?: () => void;
2343
+ /** `recent-history` hides navigation and lists only persisted sessions. */
2344
+ variant?: 'default' | 'recent-history';
1270
2345
  };
1271
- declare function ThreadListContainer({ onThreadOpen }?: ThreadListContainerProps): react.JSX.Element;
2346
+ declare function ThreadListContainer({ onThreadOpen, variant }?: ThreadListContainerProps): react.JSX.Element;
1272
2347
 
1273
2348
  type ToastContent = {
1274
2349
  title: string;
@@ -1307,6 +2382,15 @@ declare const ToolCallContainer: ToolCallMessagePartComponent;
1307
2382
 
1308
2383
  declare function ToolCallContentBlockContainer(props: ToolCallContentBlockProps): react.JSX.Element;
1309
2384
 
2385
+ type CurrentUser = {
2386
+ displayName: string;
2387
+ };
2388
+ declare function useOptionalCurrentUser(): CurrentUser | undefined;
2389
+
2390
+ type HistoryAgentIntent = 'try-agent' | 'history';
2391
+
2392
+ type DraftPreferenceKind = 'chat' | 'agent';
2393
+
1310
2394
  /** Host-facing shell configuration for agent / library / composer chrome. */
1311
2395
  type AgentConfig = {
1312
2396
  mode: 'SingleAgent';
@@ -1322,35 +2406,52 @@ type AgentConfig = {
1322
2406
  };
1323
2407
  declare const DEFAULT_AGENT_CONFIG: AgentConfig;
1324
2408
  /**
1325
- * Active chat binding. Mutability (`isMutable`) decides composer / Save / updateSession —
1326
- * not a parallel draft|named shell type.
2409
+ * Active chat binding. Mutability (`isMutable`) decides draft vs named runtime.
2410
+ * `isCreateAgent` (mutable only) splits New Agent builder chrome from simple New Chat.
1327
2411
  */
1328
2412
  type ShellMode = {
1329
2413
  status: 'idle';
1330
2414
  } | {
1331
2415
  status: 'active';
1332
2416
  isMutable: boolean;
2417
+ /**
2418
+ * Mutable only: true = Agent builder (config drawer + Save); false = simple chat.
2419
+ * Always false when `isMutable` is false (Try / named).
2420
+ */
2421
+ isCreateAgent: boolean;
1333
2422
  /** Identity for immutable bind + history filter. */
1334
2423
  agentId?: string;
1335
2424
  /** Display / welcome label (often same as agentId). */
1336
2425
  agentName?: string;
2426
+ /** Published-agent description, kept outside the executable agent spec. */
2427
+ description?: string;
1337
2428
  /** Seed for mutable (draft) runtime. */
1338
2429
  agentSpec?: AgentSpec;
1339
2430
  locked: boolean;
1340
2431
  };
1341
- /** Library / New Chat create intent. */
2432
+ /** Library / New Chat / New Agent create intent. */
1342
2433
  type SelectLibraryAgentRequest = {
1343
2434
  isMutable: boolean;
2435
+ /**
2436
+ * Mutable only. When omitted: true if Edit identity is present, else false (New Chat).
2437
+ */
2438
+ isCreateAgent?: boolean;
1344
2439
  agentId?: string;
1345
2440
  agentName?: string;
2441
+ description?: string;
1346
2442
  agentSpec?: AgentSpec;
1347
2443
  };
1348
2444
  type SettingsSection = 'models' | 'connectors' | 'skills' | 'sandbox';
2445
+ type HistoryAgentFilter = {
2446
+ agentId?: string;
2447
+ agentName: string;
2448
+ intent: HistoryAgentIntent;
2449
+ };
1349
2450
  type ShellModeContextValue = {
1350
2451
  mode: ShellMode;
1351
2452
  /** Host agentConfig mode (capabilities source). */
1352
2453
  agentConfigMode: AgentConfig['mode'];
1353
- /** Agents Library chrome. */
2454
+ /** Agents chrome. */
1354
2455
  isLibraryEnabled: boolean;
1355
2456
  /** Mutable composer / Save Agent chrome (host capability). */
1356
2457
  isComposerEnabled: boolean;
@@ -1359,8 +2460,22 @@ type ShellModeContextValue = {
1359
2460
  settingsOpen: boolean;
1360
2461
  settingsSection: SettingsSection;
1361
2462
  setSettingsOpen: (open: boolean, section?: SettingsSection) => void;
2463
+ agentConfigOpen: boolean;
2464
+ setAgentConfigOpen: (open: boolean) => void;
2465
+ /** Agents main-pane overlay (sidebar layout). */
2466
+ libraryOpen: boolean;
2467
+ libraryAgentId: string | null;
2468
+ setLibraryAgentId: (id: string | null) => void;
2469
+ setLibraryOpen: (open: boolean) => void;
2470
+ /** All-user sessions browser (includes drafts). */
2471
+ sessionsOpen: boolean;
2472
+ setSessionsOpen: (open: boolean) => void;
2473
+ openLibraryAgent: (agentId: string) => void;
2474
+ closeLibraryAgent: () => void;
2475
+ schedulesOpen: boolean;
2476
+ setSchedulesOpen: (open: boolean) => void;
1362
2477
  /**
1363
- * Bind from the Agents Library (Try = immutable, Edit = mutable + agentSpec).
2478
+ * Bind from Agents (Try = immutable, Edit = mutable + agentSpec).
1364
2479
  * Prefer this over `selectAgent` / `openDraft` when both fields are available.
1365
2480
  */
1366
2481
  selectLibraryAgent: (req: SelectLibraryAgentRequest) => void;
@@ -1371,43 +2486,47 @@ type ShellModeContextValue = {
1371
2486
  bindMutableAgent: (req: {
1372
2487
  agentId: string;
1373
2488
  agentName: string;
2489
+ description?: string;
1374
2490
  agentSpec: AgentSpec;
1375
2491
  }) => void;
1376
2492
  /** @deprecated Prefer `selectLibraryAgent({ isMutable: false, agentName })`. */
1377
2493
  selectAgent: (agentName: string) => void;
1378
- /** @deprecated Prefer `selectLibraryAgent({ isMutable: true, agentSpec })`. */
2494
+ /** Open a simple New Chat (mutable, no agent-builder chrome). */
1379
2495
  openDraft: () => void;
1380
- /** Remember plain-draft composer choices as the seed for future new chats. */
1381
- rememberDraftSpec: (agentSpec: AgentSpec) => void;
2496
+ /** Open New Agent builder (mutable + Agent Config drawer). */
2497
+ openAgentBuilder: () => void;
2498
+ /** Remember plain-draft composer choices as the seed for future New Chat / New Agent. */
2499
+ rememberDraftSpec: (agentSpec: AgentSpec, kind?: DraftPreferenceKind) => void;
1382
2500
  /**
1383
- * Open a history session, remounting when mutability/identity changes.
1384
- * Prefer explicit `isMutable` from the session row; when omitted, agentName
1385
- * present → immutable and agentName absent → mutable. Immutable rows may omit
1386
- * `agentName` when the registry agent was deleted.
2501
+ * Open a history session without remounting the runtime.
2502
+ * Prefer explicit `isMutable`; otherwise agentName means immutable.
1387
2503
  */
1388
2504
  openHistorySession: (req: {
1389
2505
  sessionId: string;
1390
2506
  agentName?: string;
1391
2507
  isMutable?: boolean;
2508
+ isCreateAgent?: boolean;
1392
2509
  }) => void;
1393
2510
  /** Reset current chat; no-op when idle. */
1394
2511
  clearChat: () => void;
1395
- /** Return pure Agents Library to its idle landing; no-op in other modes. */
2512
+ /** Return library-only mode to its idle landing; no-op in other modes. */
1396
2513
  openLibraryHome: () => void;
1397
- /** Remount key for the chat runtime when binding changes. */
2514
+ /** Changes only when the chat runtime must reset. */
1398
2515
  runtimeKey: string;
1399
2516
  /**
1400
2517
  * History list filter forwarded as `listSessions({ agentId })`.
1401
2518
  * `null` = All chats. Only meaningful when `isLibraryEnabled`.
1402
2519
  */
1403
- historyAgentFilter: string | null;
1404
- setHistoryAgentFilter: (agentId: string | null) => void;
2520
+ historyAgentFilter: HistoryAgentFilter | null;
2521
+ setHistoryAgentFilter: (filter: HistoryAgentFilter | null) => void;
1405
2522
  /** Effective `listSessionsAgentId` for the runtime (SingleAgent locks to name). */
1406
2523
  listSessionsAgentId: string | undefined;
1407
- /** Session to open after a binding remount (history click across mutability). */
2524
+ /** Session selected from history. */
1408
2525
  pendingSessionId: string | undefined;
2526
+ /** Distinguishes repeated selections of the same session. */
2527
+ pendingSessionEpoch: number;
1409
2528
  /**
1410
- * Bumped when the Agents Library catalog may have changed (e.g. after saveAgent).
2529
+ * Bumped when the Agents catalog may have changed (e.g. after saveAgent).
1411
2530
  * Library chrome should re-fetch when this changes.
1412
2531
  */
1413
2532
  agentsListEpoch: number;
@@ -1424,6 +2543,8 @@ declare function useShellMode(): ShellModeContextValue;
1424
2543
  declare function useOptionalShellMode(): ShellModeContextValue | null;
1425
2544
  /** True when the shell is bound to a mutable (editable) agentSpec. */
1426
2545
  declare function shellIsMutable(mode: ShellMode): boolean;
2546
+ /** True when the shell is in New Agent / Edit builder chrome. */
2547
+ declare function shellIsCreateAgent(mode: ShellMode): boolean;
1427
2548
 
1428
2549
  /**
1429
2550
  * A navigable place in the chat shell. The router mirrors these to the URL;
@@ -1439,6 +2560,17 @@ type RoutePlace = {
1439
2560
  sessionId: string;
1440
2561
  } | {
1441
2562
  type: 'settings';
2563
+ } | {
2564
+ type: 'library';
2565
+ } | {
2566
+ type: 'libraryAgent';
2567
+ agentId: string;
2568
+ } | {
2569
+ type: 'sessionsBrowser';
2570
+ } | {
2571
+ type: 'schedules';
2572
+ } | {
2573
+ type: 'buildAgent';
1442
2574
  };
1443
2575
  /**
1444
2576
  * Host-facing route path customization. Only honored when `withRouter`.
@@ -1453,10 +2585,20 @@ type RoutesConfig = {
1453
2585
  root?: string;
1454
2586
  /** Settings overlay. `false` keeps settings overlay-only (no URL). Default `'/settings'`. */
1455
2587
  settings?: string | false;
2588
+ /** Agents overlay. `false` keeps library overlay-only (no URL). Default `'/library'`. */
2589
+ library?: string | false;
2590
+ /** Agent detail under the library. Default `'/library/:agentId'`. */
2591
+ libraryAgent?: string | false;
2592
+ /** Schedules page. `false` keeps schedules overlay-only (no URL). Default `'/schedules'`. */
2593
+ schedules?: string | false;
2594
+ /** Agent builder. `false` disables its dedicated URL. Default `'/build-agent'`. */
2595
+ buildAgent?: string | false;
1456
2596
  /** Immutable "Try" agent. `false` disables. Default `'/agents/:agentName'`. */
1457
2597
  agent?: string | false;
1458
2598
  /** Session deep link. `false` disables. Default `'/sessions/:sessionId'`. */
1459
2599
  session?: string | false;
2600
+ /** All-user sessions browser. `false` disables. Default `'/sessions'`. */
2601
+ sessionsBrowser?: string | false;
1460
2602
  };
1461
2603
  };
1462
2604
 
@@ -1478,7 +2620,7 @@ declare function useOptionalCustomActionRenderers(): CustomActionRenderers | und
1478
2620
 
1479
2621
  /**
1480
2622
  * Built-in backends init inside `<TrueForgeUI />`.
1481
- * Optional `catalog` is attached onto the resolved `AgentUIServer`.
2623
+ * Optional host ports are attached onto the resolved `AgentUIServer`.
1482
2624
  */
1483
2625
  type TrueForgeBuiltInServerConfig = {
1484
2626
  type: 'truefoundry';
@@ -1486,6 +2628,7 @@ type TrueForgeBuiltInServerConfig = {
1486
2628
  controlPlaneURL: string;
1487
2629
  gatewayPlaneURL?: string;
1488
2630
  catalog?: CatalogServer;
2631
+ permissions?: PermissionsServer;
1489
2632
  } | {
1490
2633
  type: 'trueforge';
1491
2634
  /** Harness API root. Defaults to `'/'` (same-origin / proxied). */
@@ -1495,6 +2638,7 @@ type TrueForgeBuiltInServerConfig = {
1495
2638
  /** Custom fetch (cookie sessions, auth interceptors). */
1496
2639
  fetch?: typeof fetch;
1497
2640
  catalog?: CatalogServer;
2641
+ permissions?: PermissionsServer;
1498
2642
  };
1499
2643
  /**
1500
2644
  * `server` prop for `<TrueForgeUI />`: a built-in config, or a ready
@@ -1534,6 +2678,8 @@ type TrueForgeUIProps = {
1534
2678
  withRouter?: boolean;
1535
2679
  /** URL path customization; only honored when `withRouter`. */
1536
2680
  routes?: RoutesConfig;
2681
+ /** Optional identity rendered by the default `UserAvatar` slot. */
2682
+ currentUser?: CurrentUser;
1537
2683
  };
1538
2684
 
1539
2685
  /**
@@ -1566,6 +2712,35 @@ declare function UserEditComposerContainer(): react.JSX.Element;
1566
2712
 
1567
2713
  declare function UserMessageContainer(): react.JSX.Element;
1568
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
+
1569
2744
  type ComposerBusyState = {
1570
2745
  /** True while submitting or while the turn stream is active. */
1571
2746
  isBusy: boolean;
@@ -1609,6 +2784,8 @@ type ComposerPauseView = {
1609
2784
  toolName: string;
1610
2785
  } | {
1611
2786
  kind: 'ask-user';
2787
+ } | {
2788
+ kind: 'approval';
1612
2789
  } | {
1613
2790
  kind: 'compose';
1614
2791
  };
@@ -1629,6 +2806,29 @@ declare const useMCPAuth: ({ callbackPath }?: UseMCPAuthOptions) => {
1629
2806
  isOAuthLoading: boolean;
1630
2807
  };
1631
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
+
2820
+ /** Session metadata key for New Chat vs New Agent builder intent (wire/jsonb snake_case). */
2821
+ declare const IS_CREATE_AGENT_METADATA_KEY = "is_create_agent";
2822
+ /** Wire metadata values are strings (`SessionMetadataSchema`). */
2823
+ declare function isCreateAgentMetadataValue(isCreateAgent: boolean): 'true' | 'false';
2824
+ /**
2825
+ * Read create-agent intent from session metadata.
2826
+ * Missing / undefined / anything other than `"true"` → false (legacy = Chat).
2827
+ */
2828
+ declare function readSessionIsCreateAgent(metadata: Record<string, string> | null | undefined): boolean;
2829
+ /** True when a UI session was stamped as agent-builder (own prop or metadata). */
2830
+ declare function sessionIsCreateAgent(session: object): boolean;
2831
+
1632
2832
  declare function ServerProvider({ server, children }: {
1633
2833
  server: AgentUIServer;
1634
2834
  children: ReactNode;
@@ -1638,6 +2838,20 @@ declare function useOptionalServer(): AgentUIServer | null;
1638
2838
  declare function useServerCapabilities(): AgentBuilderCapabilitiesResponse['data'] | null;
1639
2839
  declare function useCatalogServer(): CatalogServer;
1640
2840
  declare function useOptionalCatalogServer(): CatalogServer | null;
2841
+ declare function useAgentSessionsServer(): AgentSessionsServer;
2842
+ declare function useOptionalAgentSessionsServer(): AgentSessionsServer | null;
2843
+ declare function useAgentMetricsServer(): AgentMetricsServer;
2844
+ declare function useOptionalAgentMetricsServer(): AgentMetricsServer | null;
2845
+ declare function useScheduleServer(): ScheduleServer;
2846
+ declare function useOptionalScheduleServer(): ScheduleServer | null;
2847
+ declare function useOptionalPermissionsServer(): PermissionsServer | null;
2848
+
2849
+ declare function AgentMetricChart({ graph, definition, error, colorIndex }: AgentMetricChartProps): react.JSX.Element;
2850
+ declare module '../../theme/SlotsProvider.js' {
2851
+ interface AtomSlots {
2852
+ AgentMetricChart: ComponentType<AgentMetricChartProps>;
2853
+ }
2854
+ }
1641
2855
 
1642
2856
  type AgentStepPart = {
1643
2857
  type: PartState['type'];
@@ -1651,6 +2865,31 @@ interface AgentStepsSplitResult {
1651
2865
  }
1652
2866
  declare function computeAgentStepsSplit(parts: readonly AgentStepPart[], isRunning: boolean): AgentStepsSplitResult;
1653
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
+
1654
2893
  /**
1655
2894
  * User-facing error text. Prefers HTTP body `{ error: { message } }` when
1656
2895
  * present (e.g. TrueForgeError), then `error.message` / `error.error.message`,
@@ -1665,6 +2904,8 @@ type DraftCatalogValue = {
1665
2904
  models: ModelSelection[];
1666
2905
  skills: AgentSkill[];
1667
2906
  connectors: ConnectorState[];
2907
+ /** Connector logo URL keyed by connector name, sourced from the discovery catalog. */
2908
+ connectorLogos: Record<string, string>;
1668
2909
  loaded: boolean;
1669
2910
  loading: boolean;
1670
2911
  error: string | null;
@@ -1680,4 +2921,4 @@ declare function DraftCatalogProvider({ children }: {
1680
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;
1681
2922
  declare function useDraftCatalog(): DraftCatalogValue;
1682
2923
 
1683
- export { type AgentConfig, 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, DraftCatalogProvider, DraftComposerLeftSection, DraftComposerRightSection, DraftCompositeSelector, type DraftCompositeSelectorProps, DraftModelSelector, type DraftModelSelectorProps, HistoryLoader, HistoryLoaderContainer, type HistoryLoaderProps, 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, PostMcpOauthScreen, type ReasoningCardProps, ReasoningContainer, ResumeUnavailable, ResumeUnavailableContainer, type ResumeUnavailableProps, type RoutePlace, type RoutesConfig, SandboxArtifactDownload, type SandboxArtifactDownloadProps, SandboxToolCallCard, type SandboxToolCallCardProps, SaveAgentButton, ScrollToBottomButton, type ScrollToBottomButtonProps, SelectAgentEmptyState, type SelectLibraryAgentRequest, type SemanticTokens, ServerProvider, ShellActionsActionSlot, type ShellMode, ShellModeProvider, type SlotOverrides, SlotsProvider, SubAgentCard, type SubAgentCardProps, Switch, type SwitchProps, type SwitchSize, SyntaxHighlighter, type SyntaxHighlighterProps, 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, libraryAgentId, preloadMarkdownOpenUI, resolveBrandChrome, resolvePresetTokens, shellIsMutable, threadHasPendingMcpAuth, useBrand, useBrandName, useCatalogServer, useComposerBusyState, useComposerPauseView, useContentClassNames, useDraftCatalog, useMCPAuth, useOptionalCatalogServer, useOptionalContentClassNames, useOptionalCustomActionRenderers, useOptionalServer, useOptionalShellMode, 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 };