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

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 (110) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +14 -6
  3. package/dist/AgentCodeSnippets-NZOFJE57.js +74 -0
  4. package/dist/AgentCodeSnippets-NZOFJE57.js.map +1 -0
  5. package/dist/AgentMetricChart-JPU3MFQ2.js +15 -0
  6. package/dist/AgentOverview-EEBHJC32.js +167 -0
  7. package/dist/AgentOverview-EEBHJC32.js.map +1 -0
  8. package/dist/AgentSessionEventTimeline-26Z6IB3B.js +79 -0
  9. package/dist/AgentSessionEventTimeline-26Z6IB3B.js.map +1 -0
  10. package/dist/AgentSessionEventTimelineChart-CGCU7WBK.js +504 -0
  11. package/dist/AgentSessionEventTimelineChart-CGCU7WBK.js.map +1 -0
  12. package/dist/AgentSessions-3MPDZASK.js +275 -0
  13. package/dist/AgentSessions-3MPDZASK.js.map +1 -0
  14. package/dist/{ConnectorSettings-FXQ5B7TN.js → ConnectorSettings-MXFRWWR6.js} +8 -6
  15. package/dist/{ConnectorSettings-FXQ5B7TN.js.map → ConnectorSettings-MXFRWWR6.js.map} +1 -1
  16. package/dist/{DockLayout-LBNQJZNF.js → DockLayout-LM4AFMFY.js} +11 -10
  17. package/dist/{DockLayout-LBNQJZNF.js.map → DockLayout-LM4AFMFY.js.map} +1 -1
  18. package/dist/DrawerLayout-JR3O6RRB.js +184 -0
  19. package/dist/DrawerLayout-JR3O6RRB.js.map +1 -0
  20. package/dist/{ModelSettings-4L4LOQJA.js → ModelSettings-G7IFNC2Y.js} +8 -6
  21. package/dist/{ModelSettings-4L4LOQJA.js.map → ModelSettings-G7IFNC2Y.js.map} +1 -1
  22. package/dist/OpenUiFenceBlock-2TV5TQ6P.js +9 -0
  23. package/dist/OpenUiFenceBlock-2TV5TQ6P.js.map +1 -0
  24. package/dist/{SandboxSettings-Z4ZG6ZX4.js → SandboxSettings-NXAANMAX.js} +8 -6
  25. package/dist/{SandboxSettings-Z4ZG6ZX4.js.map → SandboxSettings-NXAANMAX.js.map} +1 -1
  26. package/dist/SchedulesPage-KKLUDO6B.js +15 -0
  27. package/dist/SchedulesPage-KKLUDO6B.js.map +1 -0
  28. package/dist/{SettingsBuilder-WF7ZWKQW.js → SettingsBuilder-L34IQ56S.js} +26 -22
  29. package/dist/SettingsBuilder-L34IQ56S.js.map +1 -0
  30. package/dist/{ShellRouteSync-T4WLY57Q.js → ShellRouteSync-CEBETGEJ.js} +95 -22
  31. package/dist/ShellRouteSync-CEBETGEJ.js.map +1 -0
  32. package/dist/SidebarLayout-A2HJPPHS.js +308 -0
  33. package/dist/SidebarLayout-A2HJPPHS.js.map +1 -0
  34. package/dist/{SkillSettings-3EPPC3IT.js → SkillSettings-FGGMSUNO.js} +8 -6
  35. package/dist/{SkillSettings-3EPPC3IT.js.map → SkillSettings-FGGMSUNO.js.map} +1 -1
  36. package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js → TrueForgeUIWithRouter-MZVJWJMB.js} +14 -10
  37. package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js.map → TrueForgeUIWithRouter-MZVJWJMB.js.map} +1 -1
  38. package/dist/{WidgetLayout-3QZ357FL.js → WidgetLayout-6QM45OQQ.js} +17 -13
  39. package/dist/WidgetLayout-6QM45OQQ.js.map +1 -0
  40. package/dist/chunk-2XPPBEYF.js +74 -0
  41. package/dist/chunk-2XPPBEYF.js.map +1 -0
  42. package/dist/chunk-6O6FWUDW.js +1376 -0
  43. package/dist/chunk-6O6FWUDW.js.map +1 -0
  44. package/dist/chunk-7Z2C2K7F.js +578 -0
  45. package/dist/chunk-7Z2C2K7F.js.map +1 -0
  46. package/dist/{chunk-WREC7D54.js → chunk-CYHJDKFB.js} +115 -32
  47. package/dist/chunk-CYHJDKFB.js.map +1 -0
  48. package/dist/chunk-DJUFS2BW.js +27 -0
  49. package/dist/chunk-DJUFS2BW.js.map +1 -0
  50. package/dist/chunk-DMMZSZTN.js +252 -0
  51. package/dist/chunk-DMMZSZTN.js.map +1 -0
  52. package/dist/chunk-FJW36PD7.js +180 -0
  53. package/dist/chunk-FJW36PD7.js.map +1 -0
  54. package/dist/chunk-M62XY4NC.js +555 -0
  55. package/dist/chunk-M62XY4NC.js.map +1 -0
  56. package/dist/{chunk-B52K63AW.js → chunk-MPNSO7E6.js} +2 -2
  57. package/dist/{chunk-CFLVPV5M.js → chunk-QC42MLAK.js} +7 -2
  58. package/dist/chunk-QC42MLAK.js.map +1 -0
  59. package/dist/chunk-RDXBMTP5.js +32 -0
  60. package/dist/chunk-RDXBMTP5.js.map +1 -0
  61. package/dist/chunk-SFZNIO6U.js +18 -0
  62. package/dist/chunk-SFZNIO6U.js.map +1 -0
  63. package/dist/chunk-U7KURWW3.js +840 -0
  64. package/dist/chunk-U7KURWW3.js.map +1 -0
  65. package/dist/chunk-WVE3F724.js +200 -0
  66. package/dist/chunk-WVE3F724.js.map +1 -0
  67. package/dist/{chunk-FJ5RSSMA.js → chunk-XAU7QFG3.js} +178 -36
  68. package/dist/chunk-XAU7QFG3.js.map +1 -0
  69. package/dist/chunk-Y6S4OVVQ.js +16 -0
  70. package/dist/chunk-Y6S4OVVQ.js.map +1 -0
  71. package/dist/chunk-ZKNUMH2M.js +119 -0
  72. package/dist/chunk-ZKNUMH2M.js.map +1 -0
  73. package/dist/chunk-ZTMKFZQ3.js +13214 -0
  74. package/dist/chunk-ZTMKFZQ3.js.map +1 -0
  75. package/dist/{createTrueFoundryServer-B72bU-J7.d.ts → createTrueFoundryServer-CmZnBh_l.d.ts} +15 -4
  76. package/dist/index.d.ts +1002 -22
  77. package/dist/index.js +689 -67
  78. package/dist/index.js.map +1 -1
  79. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +552 -8
  80. package/dist/plugins/trueforge-agent-server-adapter/index.js +503 -188
  81. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  82. package/dist/styles.css +1 -1
  83. package/package.json +8 -7
  84. package/dist/DrawerLayout-Q6UK4VMI.js +0 -159
  85. package/dist/DrawerLayout-Q6UK4VMI.js.map +0 -1
  86. package/dist/OpenUiFenceBlock-6UIIAVBX.js +0 -9
  87. package/dist/SettingsBuilder-WF7ZWKQW.js.map +0 -1
  88. package/dist/ShellRouteSync-T4WLY57Q.js.map +0 -1
  89. package/dist/SidebarLayout-3WZ3CVON.js +0 -256
  90. package/dist/SidebarLayout-3WZ3CVON.js.map +0 -1
  91. package/dist/WidgetLayout-3QZ357FL.js.map +0 -1
  92. package/dist/chunk-36KOSC2J.js +0 -567
  93. package/dist/chunk-36KOSC2J.js.map +0 -1
  94. package/dist/chunk-3S6KHO7H.js +0 -2121
  95. package/dist/chunk-3S6KHO7H.js.map +0 -1
  96. package/dist/chunk-7L63OK3O.js +0 -91
  97. package/dist/chunk-7L63OK3O.js.map +0 -1
  98. package/dist/chunk-CFLVPV5M.js.map +0 -1
  99. package/dist/chunk-FJ5RSSMA.js.map +0 -1
  100. package/dist/chunk-OSV3HI5M.js +0 -6891
  101. package/dist/chunk-OSV3HI5M.js.map +0 -1
  102. package/dist/chunk-WQULF5AT.js +0 -460
  103. package/dist/chunk-WQULF5AT.js.map +0 -1
  104. package/dist/chunk-WREC7D54.js.map +0 -1
  105. package/dist/chunk-YIWUG6MC.js +0 -101
  106. package/dist/chunk-YIWUG6MC.js.map +0 -1
  107. package/dist/chunk-ZXOADNF3.js +0 -75
  108. package/dist/chunk-ZXOADNF3.js.map +0 -1
  109. /package/dist/{OpenUiFenceBlock-6UIIAVBX.js.map → AgentMetricChart-JPU3MFQ2.js.map} +0 -0
  110. /package/dist/{chunk-B52K63AW.js.map → chunk-MPNSO7E6.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { CSSProperties, ReactNode, FC, SVGProps, ComponentType, ComponentPropsWithRef, ComponentProps, HTMLAttributes, ComponentPropsWithoutRef, PropsWithChildren } from 'react';
3
3
  import { LucideIcon } from 'lucide-react';
4
+ import { SessionEventItem, AgentDetail, AgentMetricMeter, AgentMetricChartDefinition, AgentMetricGraph, CodeSnippet, AgentLibraryEntry, AgentSpec, ModelSelection, ConnectorState, AgentSkill, McpToolSelection, AgentRuntimeConfig, Schedule, ScheduleRun, ScheduleStatus, CatalogServer, AgentUIServer, AgentMetricsServer, AgentSessionsServer, ScheduleServer, AgentBuilderCapabilitiesResponse } from '@truefoundry/assistant-ui-runtime/server';
5
+ export { AgentBuilderCapabilitiesResponse, AgentBuilderServer, AgentChatServer, AgentDetail, AgentLibraryEntry, AgentMetricChartData, AgentMetricChartDataRequest, AgentMetricChartDefinition, AgentMetricChartType, AgentMetricGraph, AgentMetricGraphLine, AgentMetricMeter, AgentMetricPoint, AgentMetricRangeRequest, AgentMetricsServer, AgentSessionsServer, AgentSkill, AgentSpec, AgentUIServer, ApprovalDecision, AuthenticateConnectorRequest, CatalogServer, CodeSnippet, CodeSnippetSampleCode, ConnectorAuth, ConnectorAuthApiKey, ConnectorAuthNone, ConnectorAuthOAuth, ConnectorAuthPublic, ConnectorAuthPublicApiKey, ConnectorAuthPublicNone, ConnectorAuthPublicOAuth, ConnectorAuthType, ConnectorAuthenticationResult, ConnectorBase, ConnectorCatalogEntry, ConnectorCatalogServer, ConnectorConfigBase, ConnectorState, CreateConnectorRequest, CreateModelProviderRequest, CreateSandboxProviderRequest, CreateSessionRequest, CreateSkillRequest, CreateSkillRequestBase, DefinedSkill, GithubSkill, ImportGithubSkillRequest, ListResult, ListSessionEventsParams, ListSessionsOrder, ListSessionsParams, McpServerMount, Model, ModelCatalogServer, ModelEntry, ModelParams, ModelProperties, ModelProviderBase, ModelProviderCatalogEntry, ModelProviderConfigBase, ModelSelection, ModelSelectorEntry, PageParams, PreviousTurnIdInput, ProviderEntry, ProviderType, RegistrySkill, SandboxCatalogServer, SandboxProviderBase, SandboxProviderCatalogEntry, SandboxProviderConfig, SandboxProviderListEntry, SandboxSnapshotSyncStatus, SaveAgentRequest, SaveAgentResult, SearchAgentsParams, SelectRegistrySkillRequest, Session, SessionEventItem, SessionListEntry, SessionListMetrics, SkillBase, SkillCatalogEntry, SkillCatalogServer, SkillConfigBase, SkillMount, ToolBase, Turn, TurnDoneMetrics, TurnInputItem, TurnState, TurnStreamData, TurnStreamingEvent, UpdateConnectorRequest, UpdateModelProviderRequest, UpdateSandboxProviderRequest, UpdateSessionRequest, UserMessage, UserMessageContent, UserToolApprovalEvent, UserToolResponseEvent } from '@truefoundry/assistant-ui-runtime/server';
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
10
  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';
11
+ export { C as CreateTrueFoundryServerOptions, T as TrueFoundryServer, c as createTrueFoundryServer } from './createTrueFoundryServer-CmZnBh_l.js';
11
12
  import { PartState } from '@assistant-ui/core/react';
12
13
 
13
14
  type ThemeMode = 'light' | 'dark' | 'system';
@@ -394,24 +395,347 @@ declare module '../theme/SlotsProvider.js' {
394
395
  }
395
396
  }
396
397
 
398
+ type SessionEventType = 'system' | 'user' | 'model' | 'tool_call' | 'approval' | 'sub_agent' | 'waiting_on_human' | 'error';
399
+ /**
400
+ * One drawable interval on the timeline.
401
+ *
402
+ * Times are milliseconds relative to the session origin, not wall-clock
403
+ * timestamps. Equal start/end times are rendered as markers; intervals become
404
+ * horizontal bars. `turnIndex` groups intervals into turn backgrounds and
405
+ * `threadId` assigns sub-agent work to its lane.
406
+ */
407
+ type SessionEventTimelineSegment = {
408
+ id: string;
409
+ type: SessionEventType;
410
+ title: string;
411
+ description: string;
412
+ startMs: number;
413
+ endMs: number;
414
+ turnIndex: number;
415
+ threadId: string;
416
+ isMarker?: boolean;
417
+ };
418
+
419
+ type TurnCreatedEvent = Extract<SessionEventItem['event'], {
420
+ type: 'turn.created';
421
+ }>;
422
+ type TurnDoneEvent = Extract<SessionEventItem['event'], {
423
+ type: 'turn.done';
424
+ }>;
425
+ type TurnEvent = Exclude<SessionEventItem['event'], TurnCreatedEvent | TurnDoneEvent>;
426
+ type SessionTurnView = {
427
+ turnId: string;
428
+ turnNumber: number;
429
+ showHeader: boolean;
430
+ created: TurnCreatedEvent;
431
+ done?: TurnDoneEvent;
432
+ events: TurnEvent[];
433
+ totalTokens?: number;
434
+ inputTokens?: number;
435
+ outputTokens?: number;
436
+ cachedTokens?: number;
437
+ totalCostInUsd?: number;
438
+ durationMs?: number;
439
+ };
440
+
441
+ type SessionMetricBarDatum = {
442
+ label: string;
443
+ value: number;
444
+ color: string;
445
+ };
446
+ type SessionMetrics = {
447
+ totalTurns: number;
448
+ wallTimeMs: number;
449
+ totalCostUsd?: number;
450
+ totalTokens: number;
451
+ contextTokens: number;
452
+ toolCalls: number;
453
+ subAgents: number;
454
+ errors: number;
455
+ timeBreakdown: SessionMetricBarDatum[];
456
+ costPerTurn: SessionMetricBarDatum[];
457
+ tokenBreakdown: SessionMetricBarDatum[];
458
+ contextByTurn: SessionMetricBarDatum[];
459
+ toolCallFrequency: SessionMetricBarDatum[];
460
+ };
461
+
462
+ type LibraryAgentTab = 'overview' | 'sessions' | 'code' | 'metrics';
463
+ type SessionTimeRange = {
464
+ startTs: number;
465
+ endTs: number;
466
+ timeWindowMs?: number;
467
+ };
468
+
469
+ type AgentSessionsProps = {
470
+ /** Library tab locks the list to this agent. Omit on the all-user Sessions page. */
471
+ agentId?: string;
472
+ startTimestamp?: string;
473
+ endTimestamp?: string;
474
+ /** When `sessions`, selection writes `view=sessions` and pins `s_sts`/`s_ets`. */
475
+ shareView?: 'sessions' | null;
476
+ };
477
+ type AgentSessionListRowProps = {
478
+ title: string;
479
+ agentName?: string;
480
+ lastActivityAt: string;
481
+ metrics: {
482
+ totalTurns: number;
483
+ totalCostInUsd?: number;
484
+ totalDurationMs: number;
485
+ };
486
+ active: boolean;
487
+ onSelect: () => void;
488
+ };
489
+ type AgentSessionDetailHeaderProps = {
490
+ title: string;
491
+ sessionId: string;
492
+ agentId?: string;
493
+ createdAt?: string;
494
+ view?: 'sessions' | null;
495
+ onClose: () => void;
496
+ /**
497
+ * When set with `resumeLabel`, shows Resume Chat / Resume Agent building as a
498
+ * new-tab link (session deep link). Preferred over `onResume` when both are set.
499
+ */
500
+ resumeHref?: string;
501
+ /** In-shell resume fallback when no session deep link is available. */
502
+ onResume?: () => void;
503
+ /** Label for the resume action. */
504
+ resumeLabel?: string;
505
+ };
506
+ type AgentSessionTurnHeaderProps = {
507
+ turnNumber: number;
508
+ totalTokens?: number;
509
+ inputTokens?: number;
510
+ outputTokens?: number;
511
+ cachedTokens?: number;
512
+ durationMs?: number;
513
+ totalCostInUsd?: number;
514
+ };
515
+ type AgentSessionMetricsStripProps = {
516
+ metrics: SessionMetrics;
517
+ };
518
+ type AgentSessionEventTimelineProps = {
519
+ turns: SessionTurnView[];
520
+ segments: SessionEventTimelineSegment[];
521
+ onSelectTurn?: (index: number) => void;
522
+ };
523
+ type AgentSessionEventTimelineChartProps = {
524
+ turns: SessionTurnView[];
525
+ segments: SessionEventTimelineSegment[];
526
+ hiddenTypes: ReadonlySet<SessionEventType>;
527
+ onSelectTurn?: (index: number) => void;
528
+ };
529
+ type AgentDetailsTab = LibraryAgentTab;
530
+ type AgentDetailsPageProps = {
531
+ agentId: string;
532
+ };
533
+ type AgentDetailsHeaderProps = {
534
+ agentId: string;
535
+ detail?: AgentDetail;
536
+ onBack: () => void;
537
+ };
538
+ type AgentDetailsTabsProps = {
539
+ activeTab: AgentDetailsTab;
540
+ onTabChange: (tab: AgentDetailsTab) => void;
541
+ showMetrics?: boolean;
542
+ };
543
+ type AgentMetricsProps = {
544
+ agentId: string;
545
+ };
546
+ type AgentMetricChartResult = {
547
+ definition: AgentMetricChartDefinition;
548
+ graphs?: AgentMetricGraph[];
549
+ error?: string;
550
+ };
551
+ type AgentMetricsViewProps = {
552
+ meters?: AgentMetricMeter[];
553
+ meterError?: string;
554
+ charts: AgentMetricChartResult[];
555
+ chartsLoading: boolean;
556
+ chartsError?: string;
557
+ timeRange: SessionTimeRange;
558
+ onTimeRangeChange: (range: SessionTimeRange) => void;
559
+ };
560
+ type AgentMetricsTimeRangeFilterProps = {
561
+ timeRange: SessionTimeRange;
562
+ onTimeRangeChange: (range: SessionTimeRange) => void;
563
+ };
564
+ type AgentMetricCardProps = {
565
+ meter: AgentMetricMeter;
566
+ };
567
+ type AgentMetricChartProps = {
568
+ graph?: AgentMetricGraph;
569
+ definition: AgentMetricChartDefinition;
570
+ error?: string;
571
+ };
572
+ type AgentOverviewProps = {
573
+ detail: AgentDetail;
574
+ };
575
+ type AgentOverviewCardProps = {
576
+ title: string;
577
+ icon: string;
578
+ count?: number;
579
+ children: ReactNode;
580
+ };
581
+ type AgentCodeSnippetsProps = {
582
+ snippets: CodeSnippet[];
583
+ };
584
+ type AgentCodeBlockProps = {
585
+ code: string;
586
+ language: string;
587
+ };
588
+ type AgentDetailsUnavailableProps = {
589
+ onBack: () => void;
590
+ reason?: string;
591
+ };
592
+
593
+ declare function AgentCodeBlock({ code, language }: AgentCodeBlockProps): react.JSX.Element;
594
+ declare module '../../theme/SlotsProvider.js' {
595
+ interface AtomSlots {
596
+ AgentCodeBlock: typeof AgentCodeBlock;
597
+ }
598
+ }
599
+
600
+ declare function AgentDetailsHeader({ agentId, detail, onBack }: AgentDetailsHeaderProps): react.JSX.Element;
601
+ declare module '../../theme/SlotsProvider.js' {
602
+ interface AtomSlots {
603
+ AgentDetailsHeader: typeof AgentDetailsHeader;
604
+ }
605
+ }
606
+
607
+ declare function AgentDetailsPage({ agentId }: AgentDetailsPageProps): react.JSX.Element;
608
+ declare module '../../theme/SlotsProvider.js' {
609
+ interface AtomSlots {
610
+ AgentDetailsPage: typeof AgentDetailsPage;
611
+ }
612
+ }
613
+
614
+ declare function AgentDetailsTabs({ activeTab, onTabChange, showMetrics }: AgentDetailsTabsProps): react.JSX.Element;
615
+ declare module '../../theme/SlotsProvider.js' {
616
+ interface AtomSlots {
617
+ AgentDetailsTabs: typeof AgentDetailsTabs;
618
+ }
619
+ }
620
+
621
+ declare function AgentDetailsUnavailable({ onBack, reason }: AgentDetailsUnavailableProps): react.JSX.Element;
622
+ declare module '../../theme/SlotsProvider.js' {
623
+ interface AtomSlots {
624
+ AgentDetailsUnavailable: typeof AgentDetailsUnavailable;
625
+ }
626
+ }
627
+
628
+ declare function AgentMetricCard({ meter }: AgentMetricCardProps): react.JSX.Element;
629
+ declare module '../../theme/SlotsProvider.js' {
630
+ interface AtomSlots {
631
+ AgentMetricCard: ComponentType<AgentMetricCardProps>;
632
+ }
633
+ }
634
+
635
+ declare function AgentMetricsTimeRangeFilter({ timeRange, onTimeRangeChange }: AgentMetricsTimeRangeFilterProps): react.JSX.Element;
636
+ declare module '../../theme/SlotsProvider.js' {
637
+ interface AtomSlots {
638
+ AgentMetricsTimeRangeFilter: ComponentType<AgentMetricsTimeRangeFilterProps>;
639
+ }
640
+ }
641
+
642
+ declare function AgentMetricsView({ meters, meterError, charts, chartsLoading, chartsError, timeRange, onTimeRangeChange, }: AgentMetricsViewProps): react.JSX.Element;
643
+ declare module '../../theme/SlotsProvider.js' {
644
+ interface AtomSlots {
645
+ AgentMetricsView: ComponentType<AgentMetricsViewProps>;
646
+ }
647
+ }
648
+
649
+ declare function AgentOverviewCard({ title, icon, count, children }: AgentOverviewCardProps): react.JSX.Element;
650
+ declare module '../../theme/SlotsProvider.js' {
651
+ interface AtomSlots {
652
+ AgentOverviewCard: typeof AgentOverviewCard;
653
+ }
654
+ }
655
+
656
+ declare function AgentSessionDetailHeader({ title, sessionId, agentId, createdAt, view, onClose, resumeHref, onResume, resumeLabel, }: AgentSessionDetailHeaderProps): react.JSX.Element;
657
+ declare module '../../theme/SlotsProvider.js' {
658
+ interface AtomSlots {
659
+ AgentSessionDetailHeader: typeof AgentSessionDetailHeader;
660
+ }
661
+ }
662
+
663
+ declare function AgentSessionListRow({ title, agentName, lastActivityAt, metrics, active, onSelect, }: AgentSessionListRowProps): react.JSX.Element;
664
+ declare module '../../theme/SlotsProvider.js' {
665
+ interface AtomSlots {
666
+ AgentSessionListRow: typeof AgentSessionListRow;
667
+ }
668
+ }
669
+
670
+ declare function AgentSessionMetricsStrip({ metrics }: AgentSessionMetricsStripProps): react.JSX.Element;
671
+ declare module '../../theme/SlotsProvider.js' {
672
+ interface AtomSlots {
673
+ AgentSessionMetricsStrip: ComponentType<AgentSessionMetricsStripProps>;
674
+ }
675
+ }
676
+
677
+ type AgentSessionsFiltersProps = {
678
+ agentId: string | null;
679
+ timeRange: SessionTimeRange;
680
+ onAgentChange: (agentId: string | null) => void;
681
+ onTimeRangeChange: (range: SessionTimeRange) => void;
682
+ showAgentFilter?: boolean;
683
+ showCustomTimeRange?: boolean;
684
+ };
685
+ declare function AgentSessionsFilters({ agentId, timeRange, onAgentChange, onTimeRangeChange, showAgentFilter, showCustomTimeRange, }: AgentSessionsFiltersProps): react.JSX.Element;
686
+ declare module '../../theme/SlotsProvider.js' {
687
+ interface AtomSlots {
688
+ AgentSessionsFilters: typeof AgentSessionsFilters;
689
+ }
690
+ }
691
+
692
+ declare function AgentSessionTurnHeader({ turnNumber, totalTokens, inputTokens, outputTokens, cachedTokens, durationMs, totalCostInUsd, }: AgentSessionTurnHeaderProps): react.JSX.Element;
693
+ declare module '../../theme/SlotsProvider.js' {
694
+ interface AtomSlots {
695
+ AgentSessionTurnHeader: typeof AgentSessionTurnHeader;
696
+ }
697
+ }
698
+
699
+ declare function SessionsPage(): react.JSX.Element;
700
+ declare module '../../theme/SlotsProvider.js' {
701
+ interface AtomSlots {
702
+ SessionsPage: typeof SessionsPage;
703
+ }
704
+ }
705
+
397
706
  type AgentsLibraryProps = {
398
- open: boolean;
399
- onOpenChange: (open: boolean) => void;
400
707
  onSelectAgent?: (agentName: string) => void;
401
708
  };
402
- declare function AgentsLibrary({ open, onOpenChange, onSelectAgent }: AgentsLibraryProps): react.JSX.Element;
709
+ type AgentScheduleSummary = {
710
+ count: number;
711
+ hasPaused: boolean;
712
+ };
713
+ type AgentLibraryRowProps = {
714
+ agent: AgentLibraryEntry;
715
+ canMutate: boolean;
716
+ canManageSchedules: boolean;
717
+ scheduleSummary?: AgentScheduleSummary | null;
718
+ onOpenSchedules?: () => void;
719
+ onCreateSchedule?: () => void;
720
+ onOpen?: () => void;
721
+ onTry: () => void;
722
+ onEdit: () => void;
723
+ onManageSchedules?: () => void;
724
+ };
725
+ declare function AgentLibraryRow({ agent, canMutate, canManageSchedules, scheduleSummary, onOpenSchedules, onCreateSchedule, onOpen, onTry, onEdit, onManageSchedules, }: AgentLibraryRowProps): react.JSX.Element;
726
+ declare function AgentsLibrary({ onSelectAgent }: AgentsLibraryProps): react.JSX.Element | null;
403
727
  declare module '../theme/SlotsProvider.js' {
404
728
  interface AtomSlots {
405
729
  AgentsLibrary: typeof AgentsLibrary;
730
+ AgentLibraryRow: typeof AgentLibraryRow;
406
731
  }
407
732
  }
408
733
 
409
734
  type AgentsLibraryButtonProps = {
410
735
  className?: string;
411
736
  compact?: boolean;
412
- onSelectAgent?: (agentName: string) => void;
413
737
  };
414
- declare function AgentsLibraryButton({ className, compact, onSelectAgent }: AgentsLibraryButtonProps): react.JSX.Element | null;
738
+ declare function AgentsLibraryButton({ className, compact }: AgentsLibraryButtonProps): react.JSX.Element | null;
415
739
  declare module '../theme/SlotsProvider.js' {
416
740
  interface AtomSlots {
417
741
  AgentsLibraryButton: typeof AgentsLibraryButton;
@@ -590,6 +914,276 @@ declare module '../theme/SlotsProvider.js' {
590
914
  }
591
915
  }
592
916
 
917
+ type AgentInstructionsDraft = {
918
+ instructions: string;
919
+ messages: TrueForgeApi.InitialUserMessage[];
920
+ };
921
+ type AgentInstructionsDrawerProps = {
922
+ open: boolean;
923
+ instructions: string;
924
+ messages?: TrueForgeApi.InitialUserMessage[];
925
+ onSave: (draft: AgentInstructionsDraft) => void;
926
+ onClose: () => void;
927
+ };
928
+ declare function AgentInstructionsDrawer({ open, instructions, messages, onSave, onClose, }: AgentInstructionsDrawerProps): react.JSX.Element;
929
+ declare module '../../theme/SlotsProvider.js' {
930
+ interface AtomSlots {
931
+ AgentInstructionsDrawer: typeof AgentInstructionsDrawer;
932
+ }
933
+ }
934
+
935
+ type AgentConfigEditor = 'instructions' | 'model' | 'model-settings' | 'runtime' | 'mcp' | 'skills';
936
+ type AgentConfigEditorsProps = {
937
+ editor: AgentConfigEditor | null;
938
+ spec: AgentSpec;
939
+ models: ModelSelection[];
940
+ connectors: ConnectorState[];
941
+ skills: AgentSkill[];
942
+ loading: boolean;
943
+ error: string | null;
944
+ skillsDisabled?: boolean;
945
+ sandboxAvailable?: boolean;
946
+ instructions?: string;
947
+ onInstructionsSave?: (draft: AgentInstructionsDraft) => void;
948
+ loadMcpTools?: (connectorId: string) => Promise<McpToolSelection[]>;
949
+ onRefreshConnectors?: () => Promise<void>;
950
+ onChange: (spec: AgentSpec) => void;
951
+ onClose: () => void;
952
+ };
953
+ declare function AgentConfigEditors({ editor, spec, models, connectors, skills, loading, error, skillsDisabled, sandboxAvailable, instructions, onInstructionsSave, loadMcpTools, onRefreshConnectors, onChange, onClose, }: AgentConfigEditorsProps): react.JSX.Element;
954
+ declare module '../../theme/SlotsProvider.js' {
955
+ interface AtomSlots {
956
+ AgentConfigEditors: typeof AgentConfigEditors;
957
+ }
958
+ }
959
+
960
+ type AgentConfigPanelProps = {
961
+ spec: AgentSpec;
962
+ model?: ModelSelection;
963
+ skillsAvailable: boolean;
964
+ instructions: string;
965
+ onOpenEditor: (editor: AgentConfigEditor) => void;
966
+ onChange?: (spec: AgentSpec) => void;
967
+ onClose?: () => void;
968
+ };
969
+ declare function AgentConfigSection({ title, description, onEdit, children, }: {
970
+ title: string;
971
+ description?: string;
972
+ onEdit?: () => void;
973
+ children: ReactNode;
974
+ }): react.JSX.Element;
975
+ declare function AgentConfigPanel({ spec, model, skillsAvailable, instructions, onOpenEditor, onChange, onClose, }: AgentConfigPanelProps): react.JSX.Element;
976
+ declare module '../../theme/SlotsProvider.js' {
977
+ interface AtomSlots {
978
+ AgentConfigPanel: typeof AgentConfigPanel;
979
+ AgentConfigSection: typeof AgentConfigSection;
980
+ }
981
+ }
982
+
983
+ type AgentMcpEditorContentProps = {
984
+ spec: AgentSpec;
985
+ connectors: ConnectorState[];
986
+ query: string;
987
+ activeConnectorId: string | null;
988
+ tools: McpToolSelection[];
989
+ toolsLoading: boolean;
990
+ toolsError: string | null;
991
+ onQueryChange: (query: string) => void;
992
+ onSelectConnector: (connectorId: string) => void;
993
+ onRetryTools: () => void;
994
+ onRefreshConnectors?: () => Promise<void>;
995
+ onChange: (spec: AgentSpec) => void;
996
+ };
997
+ declare function AgentMcpEditorContent({ spec, connectors, query, activeConnectorId, tools, toolsLoading, toolsError, onQueryChange, onSelectConnector, onRetryTools, onRefreshConnectors, onChange, }: AgentMcpEditorContentProps): react.JSX.Element;
998
+ declare module '../../theme/SlotsProvider.js' {
999
+ interface AtomSlots {
1000
+ AgentMcpEditorContent: typeof AgentMcpEditorContent;
1001
+ }
1002
+ }
1003
+
1004
+ type AgentModelConfigModalProps = {
1005
+ editor: 'model' | 'model-settings' | null;
1006
+ spec: AgentSpec;
1007
+ models: ModelSelection[];
1008
+ loading: boolean;
1009
+ error: string | null;
1010
+ query: string;
1011
+ onQueryChange: (query: string) => void;
1012
+ onChange: (spec: AgentSpec) => void;
1013
+ onClose: () => void;
1014
+ };
1015
+ declare function AgentModelConfigModal({ editor, spec, models, loading, error, query, onQueryChange, onChange, onClose, }: AgentModelConfigModalProps): react.JSX.Element;
1016
+ declare module '../../theme/SlotsProvider.js' {
1017
+ interface AtomSlots {
1018
+ AgentModelConfigModal: typeof AgentModelConfigModal;
1019
+ }
1020
+ }
1021
+
1022
+ type AgentModelEditorContentProps = {
1023
+ editor: 'model' | 'model-settings';
1024
+ spec: AgentSpec;
1025
+ models: ModelSelection[];
1026
+ loading: boolean;
1027
+ error: string | null;
1028
+ query: string;
1029
+ onQueryChange: (query: string) => void;
1030
+ onChange: (spec: AgentSpec) => void;
1031
+ };
1032
+ declare function AgentModelEditorContent({ editor, spec, models, loading, error, query, onQueryChange, onChange, }: AgentModelEditorContentProps): react.JSX.Element;
1033
+ declare module '../../theme/SlotsProvider.js' {
1034
+ interface AtomSlots {
1035
+ AgentModelEditorContent: typeof AgentModelEditorContent;
1036
+ }
1037
+ }
1038
+
1039
+ type AgentModelSettingsContentProps = {
1040
+ spec: AgentSpec;
1041
+ model?: ModelSelection;
1042
+ onChange: (spec: AgentSpec) => void;
1043
+ };
1044
+ declare function AgentModelSettingsContent({ spec, model, onChange }: AgentModelSettingsContentProps): react.JSX.Element;
1045
+ declare module '../../theme/SlotsProvider.js' {
1046
+ interface AtomSlots {
1047
+ AgentModelSettingsContent: typeof AgentModelSettingsContent;
1048
+ }
1049
+ }
1050
+
1051
+ type AgentResourceConfigModalProps = {
1052
+ editor: 'mcp' | 'skills' | null;
1053
+ spec: AgentSpec;
1054
+ connectors: ConnectorState[];
1055
+ skills: AgentSkill[];
1056
+ skillsDisabled: boolean;
1057
+ query: string;
1058
+ activeConnectorId: string | null;
1059
+ tools: McpToolSelection[];
1060
+ toolsLoading: boolean;
1061
+ toolsError: string | null;
1062
+ onQueryChange: (query: string) => void;
1063
+ onSelectConnector: (connectorId: string) => void;
1064
+ onRetryTools: () => void;
1065
+ onRefreshConnectors?: () => Promise<void>;
1066
+ onChange: (spec: AgentSpec) => void;
1067
+ onClose: () => void;
1068
+ };
1069
+ declare function AgentResourceConfigModal({ editor, onClose, ...contentProps }: AgentResourceConfigModalProps): react.JSX.Element;
1070
+ declare module '../../theme/SlotsProvider.js' {
1071
+ interface AtomSlots {
1072
+ AgentResourceConfigModal: typeof AgentResourceConfigModal;
1073
+ }
1074
+ }
1075
+
1076
+ type AgentResourceEditorContentProps = {
1077
+ editor: 'mcp' | 'skills';
1078
+ spec: AgentSpec;
1079
+ connectors: ConnectorState[];
1080
+ skills: AgentSkill[];
1081
+ skillsDisabled: boolean;
1082
+ query: string;
1083
+ activeConnectorId: string | null;
1084
+ tools: McpToolSelection[];
1085
+ toolsLoading: boolean;
1086
+ toolsError: string | null;
1087
+ onQueryChange: (query: string) => void;
1088
+ onSelectConnector: (connectorId: string) => void;
1089
+ onRetryTools: () => void;
1090
+ onRefreshConnectors?: () => Promise<void>;
1091
+ onChange: (spec: AgentSpec) => void;
1092
+ };
1093
+ declare function AgentResourceEditorContent(props: AgentResourceEditorContentProps): react.JSX.Element;
1094
+ declare module '../../theme/SlotsProvider.js' {
1095
+ interface AtomSlots {
1096
+ AgentResourceEditorContent: typeof AgentResourceEditorContent;
1097
+ }
1098
+ }
1099
+
1100
+ type AgentRuntimeConfigFieldsProps = {
1101
+ value: AgentRuntimeConfig;
1102
+ sandboxAvailable: boolean;
1103
+ hasSkills: boolean;
1104
+ disabled?: boolean;
1105
+ showCapabilities?: boolean;
1106
+ layout?: 'compact' | 'detailed';
1107
+ onChange: (value: AgentRuntimeConfig) => void;
1108
+ };
1109
+ declare function AgentRuntimeConfigFields({ value, sandboxAvailable, hasSkills, disabled, showCapabilities, layout, onChange, }: AgentRuntimeConfigFieldsProps): react.JSX.Element;
1110
+ declare module '../../theme/SlotsProvider.js' {
1111
+ interface AtomSlots {
1112
+ AgentRuntimeConfigFields: typeof AgentRuntimeConfigFields;
1113
+ }
1114
+ }
1115
+
1116
+ type AgentRuntimeConfigModalProps = {
1117
+ open: boolean;
1118
+ spec: AgentSpec;
1119
+ sandboxAvailable: boolean;
1120
+ onChange: (spec: AgentSpec) => void;
1121
+ onClose: () => void;
1122
+ };
1123
+ declare function AgentRuntimeConfigModal({ open, spec, sandboxAvailable, onChange, onClose, }: AgentRuntimeConfigModalProps): react.JSX.Element;
1124
+ declare module '../../theme/SlotsProvider.js' {
1125
+ interface AtomSlots {
1126
+ AgentRuntimeConfigModal: typeof AgentRuntimeConfigModal;
1127
+ }
1128
+ }
1129
+
1130
+ type AgentRuntimeEditorContentProps = {
1131
+ spec: AgentSpec;
1132
+ sandboxAvailable: boolean;
1133
+ onChange: (spec: AgentSpec) => void;
1134
+ };
1135
+ declare function AgentRuntimeEditorContent({ spec, sandboxAvailable, onChange }: AgentRuntimeEditorContentProps): react.JSX.Element;
1136
+ declare module '../../theme/SlotsProvider.js' {
1137
+ interface AtomSlots {
1138
+ AgentRuntimeEditorContent: typeof AgentRuntimeEditorContent;
1139
+ }
1140
+ }
1141
+
1142
+ type AgentSkillsEditorContentProps = {
1143
+ spec: AgentSpec;
1144
+ skills: AgentSkill[];
1145
+ skillsDisabled: boolean;
1146
+ query: string;
1147
+ onQueryChange: (query: string) => void;
1148
+ onChange: (spec: AgentSpec) => void;
1149
+ };
1150
+ declare function AgentSkillsEditorContent({ spec, skills, skillsDisabled, query, onQueryChange, onChange, }: AgentSkillsEditorContentProps): react.JSX.Element;
1151
+ declare module '../../theme/SlotsProvider.js' {
1152
+ interface AtomSlots {
1153
+ AgentSkillsEditorContent: typeof AgentSkillsEditorContent;
1154
+ }
1155
+ }
1156
+
1157
+ type DraftAgentConfigTriggerProps = {
1158
+ disabled?: boolean;
1159
+ isRunning?: boolean;
1160
+ };
1161
+ declare function DraftAgentConfigTrigger({ disabled, isRunning }: DraftAgentConfigTriggerProps): react.JSX.Element;
1162
+ declare module '../../theme/SlotsProvider.js' {
1163
+ interface AtomSlots {
1164
+ DraftAgentConfigTrigger: typeof DraftAgentConfigTrigger;
1165
+ }
1166
+ }
1167
+
1168
+ type AgentCapabilityValues = {
1169
+ generativeUi: boolean;
1170
+ dynamicSubAgents: boolean;
1171
+ askUserQuestions: boolean;
1172
+ };
1173
+
1174
+ declare function DraftCapabilitiesPanel({ value, onChange, disabled, divided, layout, }: {
1175
+ value: AgentCapabilityValues;
1176
+ onChange: (value: AgentCapabilityValues) => void;
1177
+ disabled?: boolean;
1178
+ divided?: boolean;
1179
+ layout?: 'list' | 'cards';
1180
+ }): react.JSX.Element;
1181
+ declare module '../../theme/SlotsProvider.js' {
1182
+ interface AtomSlots {
1183
+ DraftCapabilitiesPanel: typeof DraftCapabilitiesPanel;
1184
+ }
1185
+ }
1186
+
593
1187
  declare function DraftComposerLeftSection({ disabled, isRunning, onAttach }: ComposerLeftSectionProps): react.JSX.Element;
594
1188
  declare function DraftComposerRightSection({ disabled, isRunning }: ComposerRightSectionProps): react.JSX.Element;
595
1189
  declare module '../../theme/SlotsProvider.js' {
@@ -599,6 +1193,19 @@ declare module '../../theme/SlotsProvider.js' {
599
1193
  }
600
1194
  }
601
1195
 
1196
+ declare function CatalogRow({ title, description, checked, disabled, onToggle, onActivate, action, }: {
1197
+ title: string;
1198
+ description?: string;
1199
+ checked: boolean;
1200
+ disabled?: boolean;
1201
+ onToggle: () => void;
1202
+ onActivate?: () => void;
1203
+ action?: ReactNode;
1204
+ }): react.JSX.Element;
1205
+ declare function ConnectorConnectButton({ connector, onConnected, }: {
1206
+ connector: ConnectorState;
1207
+ onConnected: () => Promise<void>;
1208
+ }): react.JSX.Element;
602
1209
  type DraftCompositeSelectorProps = {
603
1210
  disabled?: boolean;
604
1211
  isRunning?: boolean;
@@ -607,6 +1214,8 @@ type DraftCompositeSelectorProps = {
607
1214
  declare function DraftCompositeSelector({ disabled, isRunning, onAttach }: DraftCompositeSelectorProps): react.JSX.Element;
608
1215
  declare module '../../theme/SlotsProvider.js' {
609
1216
  interface AtomSlots {
1217
+ CatalogRow: typeof CatalogRow;
1218
+ ConnectorConnectButton: typeof ConnectorConnectButton;
610
1219
  DraftCompositeSelector: typeof DraftCompositeSelector;
611
1220
  }
612
1221
  }
@@ -771,14 +1380,74 @@ type SaveAgentButtonProps = {
771
1380
  disabled?: boolean;
772
1381
  className?: string;
773
1382
  children?: string;
1383
+ /** Unsynced drawer instructions to overlay onto the latest runtime spec. */
1384
+ instructionsOverride?: string;
774
1385
  };
775
- declare function SaveAgentButton({ disabled, className, children }: SaveAgentButtonProps): react.JSX.Element;
1386
+ declare function SaveAgentButton({ disabled, className, children, instructionsOverride, }: SaveAgentButtonProps): react.JSX.Element;
776
1387
  declare module '../theme/SlotsProvider.js' {
777
1388
  interface AtomSlots {
778
1389
  SaveAgentButton: typeof SaveAgentButton;
779
1390
  }
780
1391
  }
781
1392
 
1393
+ type EditableMount = {
1394
+ id: string;
1395
+ name: string;
1396
+ value: object;
1397
+ };
1398
+
1399
+ type SaveAgentFormProps = {
1400
+ intent: 'create' | 'update';
1401
+ name: string;
1402
+ spec: AgentSpec;
1403
+ modelEntry?: ModelSelection;
1404
+ mcpMounts: EditableMount[];
1405
+ skillMounts: EditableMount[];
1406
+ saving: boolean;
1407
+ error: string | null;
1408
+ onNameChange: (name: string) => void;
1409
+ onChange: (spec: AgentSpec) => void;
1410
+ onEdit: (editor: AgentConfigEditor) => void;
1411
+ onToggleMcpPreload: (id: string) => void;
1412
+ onRemoveMcp?: (id: string) => void;
1413
+ onCancel: () => void;
1414
+ onSave: () => void;
1415
+ };
1416
+ declare function SaveAgentForm({ intent, name, spec, modelEntry, mcpMounts, skillMounts, saving, error, onNameChange, onChange, onEdit, onToggleMcpPreload, onRemoveMcp, onCancel, onSave, }: SaveAgentFormProps): react.JSX.Element;
1417
+ declare module '../theme/SlotsProvider.js' {
1418
+ interface AtomSlots {
1419
+ SaveAgentForm: typeof SaveAgentForm;
1420
+ }
1421
+ }
1422
+
1423
+ type SaveAgentFormFieldsProps = {
1424
+ spec: AgentSpec;
1425
+ modelEntry?: ModelSelection;
1426
+ mcpMounts: EditableMount[];
1427
+ skillMounts: EditableMount[];
1428
+ disabled: boolean;
1429
+ onEdit: (editor: AgentConfigEditor) => void;
1430
+ onToggleMcpPreload: (id: string) => void;
1431
+ onRemoveMcp?: (id: string) => void;
1432
+ };
1433
+ declare function SaveAgentFormFields({ spec, modelEntry, mcpMounts, skillMounts, disabled, onEdit, onToggleMcpPreload, onRemoveMcp, }: SaveAgentFormFieldsProps): react.JSX.Element;
1434
+ declare module '../theme/SlotsProvider.js' {
1435
+ interface AtomSlots {
1436
+ SaveAgentFormFields: typeof SaveAgentFormFields;
1437
+ }
1438
+ }
1439
+
1440
+ type SchedulesButtonProps = {
1441
+ className?: string;
1442
+ compact?: boolean;
1443
+ };
1444
+ declare function SchedulesButton({ className, compact }: SchedulesButtonProps): react.JSX.Element | null;
1445
+ declare module '../theme/SlotsProvider.js' {
1446
+ interface AtomSlots {
1447
+ SchedulesButton: typeof SchedulesButton;
1448
+ }
1449
+ }
1450
+
782
1451
  /** Empty main pane when AgentLibrary has no agent selected yet. */
783
1452
  declare function SelectAgentEmptyState(): react.JSX.Element | null;
784
1453
  declare module '../theme/SlotsProvider.js' {
@@ -787,6 +1456,17 @@ declare module '../theme/SlotsProvider.js' {
787
1456
  }
788
1457
  }
789
1458
 
1459
+ type SessionsBrowserButtonProps = {
1460
+ className?: string;
1461
+ compact?: boolean;
1462
+ };
1463
+ declare function SessionsBrowserButton({ className, compact }: SessionsBrowserButtonProps): react.JSX.Element | null;
1464
+ declare module '../theme/SlotsProvider.js' {
1465
+ interface AtomSlots {
1466
+ SessionsBrowserButton: typeof SessionsBrowserButton;
1467
+ }
1468
+ }
1469
+
790
1470
  /**
791
1471
  * Optional host chrome (e.g. logout) to the right of theme + settings in {@link ShellActions}.
792
1472
  * Default is empty; override via `overrides.ShellActionsActionSlot`.
@@ -1014,6 +1694,29 @@ declare module '../theme/SlotsProvider.js' {
1014
1694
  }
1015
1695
  }
1016
1696
 
1697
+ declare function AgentMetricsContainer({ agentId }: AgentMetricsProps): react.JSX.Element;
1698
+ declare module '../theme/SlotsProvider.js' {
1699
+ interface AtomSlots {
1700
+ AgentMetrics: ComponentType<AgentMetricsProps>;
1701
+ }
1702
+ }
1703
+
1704
+ type AgentSessionTimelineContainerProps = {
1705
+ sessionId: string;
1706
+ events: SessionEventItem[];
1707
+ listMetrics?: {
1708
+ totalTurns: number;
1709
+ totalCostInUsd?: number;
1710
+ totalDurationMs: number;
1711
+ };
1712
+ };
1713
+ declare function AgentSessionTimelineContainer({ sessionId, events, listMetrics }: AgentSessionTimelineContainerProps): react.JSX.Element;
1714
+ declare module '../theme/SlotsProvider.js' {
1715
+ interface AtomSlots {
1716
+ AgentSessionTimelineContainer: typeof AgentSessionTimelineContainer;
1717
+ }
1718
+ }
1719
+
1017
1720
  /** Default slot implementations. Feature atoms + chrome; primitives via theme/CSS. */
1018
1721
  declare const defaultSlots: {
1019
1722
  Accordion: typeof Accordion;
@@ -1026,7 +1729,25 @@ declare const defaultSlots: {
1026
1729
  ComposerSendButton: typeof ComposerSendButton;
1027
1730
  DraftComposerLeftSection: typeof DraftComposerLeftSection;
1028
1731
  DraftComposerRightSection: typeof DraftComposerRightSection;
1732
+ DraftAgentConfigTrigger: typeof DraftAgentConfigTrigger;
1733
+ DraftCapabilitiesPanel: typeof DraftCapabilitiesPanel;
1734
+ AgentConfigEditors: typeof AgentConfigEditors;
1735
+ AgentInstructionsDrawer: typeof AgentInstructionsDrawer;
1736
+ AgentModelEditorContent: typeof AgentModelEditorContent;
1737
+ AgentModelSettingsContent: typeof AgentModelSettingsContent;
1738
+ AgentMcpEditorContent: typeof AgentMcpEditorContent;
1739
+ AgentModelConfigModal: typeof AgentModelConfigModal;
1740
+ AgentResourceEditorContent: typeof AgentResourceEditorContent;
1741
+ AgentResourceConfigModal: typeof AgentResourceConfigModal;
1742
+ AgentSkillsEditorContent: typeof AgentSkillsEditorContent;
1743
+ AgentConfigPanel: typeof AgentConfigPanel;
1744
+ AgentConfigSection: typeof AgentConfigSection;
1745
+ AgentRuntimeConfigFields: typeof AgentRuntimeConfigFields;
1746
+ AgentRuntimeConfigModal: typeof AgentRuntimeConfigModal;
1747
+ AgentRuntimeEditorContent: typeof AgentRuntimeEditorContent;
1029
1748
  DraftCompositeSelector: typeof DraftCompositeSelector;
1749
+ CatalogRow: typeof CatalogRow;
1750
+ ConnectorConnectButton: typeof ConnectorConnectButton;
1030
1751
  DraftModelSelector: typeof DraftModelSelector;
1031
1752
  AssistantMessageBubble: typeof AssistantMessageBubble;
1032
1753
  UserMessageBubble: typeof UserMessageBubble;
@@ -1037,7 +1758,7 @@ declare const defaultSlots: {
1037
1758
  MessageIndicator: typeof MessageIndicator;
1038
1759
  MessageTimestamp: typeof MessageTimestamp;
1039
1760
  Markdown: typeof Markdown;
1040
- SyntaxHighlighter: react.ComponentType<SyntaxHighlighterProps>;
1761
+ SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
1041
1762
  OpenUiFenceBlock: typeof OpenUiFenceBlock;
1042
1763
  SandboxArtifactDownload: typeof SandboxArtifactDownload;
1043
1764
  ChatFileDownload: typeof ChatFileDownload;
@@ -1062,8 +1783,36 @@ declare const defaultSlots: {
1062
1783
  ThreadListRow: typeof ThreadListRow;
1063
1784
  ThreadListNewButton: typeof ThreadListNewButton;
1064
1785
  AgentsLibrary: typeof AgentsLibrary;
1786
+ AgentLibraryRow: typeof AgentLibraryRow;
1065
1787
  AgentsLibraryButton: typeof AgentsLibraryButton;
1788
+ SessionsBrowserButton: typeof SessionsBrowserButton;
1789
+ AgentDetailsPage: typeof AgentDetailsPage;
1790
+ AgentDetailsHeader: typeof AgentDetailsHeader;
1791
+ AgentDetailsTabs: typeof AgentDetailsTabs;
1792
+ AgentDetailsUnavailable: typeof AgentDetailsUnavailable;
1793
+ AgentOverview: react.FunctionComponent<AgentOverviewProps>;
1794
+ AgentOverviewCard: typeof AgentOverviewCard;
1795
+ AgentMetrics: typeof AgentMetricsContainer;
1796
+ AgentMetricsView: typeof AgentMetricsView;
1797
+ AgentMetricsTimeRangeFilter: typeof AgentMetricsTimeRangeFilter;
1798
+ AgentMetricCard: typeof AgentMetricCard;
1799
+ AgentMetricChart: react.FunctionComponent<AgentMetricChartProps>;
1800
+ AgentSessionDetailHeader: typeof AgentSessionDetailHeader;
1801
+ AgentSessionsFilters: typeof AgentSessionsFilters;
1802
+ SessionsPage: typeof SessionsPage;
1803
+ AgentSessionEventTimeline: react.FunctionComponent<AgentSessionEventTimelineProps>;
1804
+ AgentSessionEventTimelineChart: react.FunctionComponent<AgentSessionEventTimelineChartProps>;
1805
+ AgentSessionListRow: typeof AgentSessionListRow;
1806
+ AgentSessionMetricsStrip: typeof AgentSessionMetricsStrip;
1807
+ AgentSessionTimelineContainer: typeof AgentSessionTimelineContainer;
1808
+ AgentSessionTurnHeader: typeof AgentSessionTurnHeader;
1809
+ AgentSessions: react.FunctionComponent<AgentSessionsProps>;
1810
+ AgentCodeSnippets: react.FunctionComponent<AgentCodeSnippetsProps>;
1811
+ AgentCodeBlock: typeof AgentCodeBlock;
1812
+ SchedulesButton: typeof SchedulesButton;
1066
1813
  SaveAgentButton: typeof SaveAgentButton;
1814
+ SaveAgentForm: typeof SaveAgentForm;
1815
+ SaveAgentFormFields: typeof SaveAgentFormFields;
1067
1816
  SelectAgentEmptyState: typeof SelectAgentEmptyState;
1068
1817
  ClearChatButton: typeof ClearChatButton;
1069
1818
  ThreadListRowSkeleton: typeof ThreadListRowSkeleton;
@@ -1156,6 +1905,7 @@ type CenteredModalProps = {
1156
1905
  description?: string;
1157
1906
  headerIcon?: ReactNode;
1158
1907
  children: ReactNode;
1908
+ footer?: ReactNode;
1159
1909
  className?: string;
1160
1910
  contentSized?: boolean;
1161
1911
  'aria-label'?: string;
@@ -1164,7 +1914,7 @@ type CenteredModalProps = {
1164
1914
  * Responsive modal chrome: centered dialog on `md+`, bottom sheet below `md`.
1165
1915
  * One content tree for both breakpoints (native `<dialog>`).
1166
1916
  */
1167
- declare function CenteredModal({ open, onOpenChange, title, description, headerIcon, children, className, contentSized, 'aria-label': ariaLabel, }: CenteredModalProps): react.JSX.Element;
1917
+ declare function CenteredModal({ open, onOpenChange, title, description, headerIcon, children, footer, className, contentSized, 'aria-label': ariaLabel, }: CenteredModalProps): react.JSX.Element;
1168
1918
 
1169
1919
  type IconButtonProps = Omit<ButtonProps, 'size' | 'children'> & {
1170
1920
  'aria-label': string;
@@ -1172,6 +1922,56 @@ type IconButtonProps = Omit<ButtonProps, 'size' | 'children'> & {
1172
1922
  children: react__default.ReactNode;
1173
1923
  };
1174
1924
 
1925
+ type PopoverSelectOption<T extends string> = {
1926
+ value: T;
1927
+ label: string;
1928
+ disabled?: boolean;
1929
+ };
1930
+ type CommonPopoverSelectProps<T extends string> = {
1931
+ options: readonly PopoverSelectOption<T>[];
1932
+ placeholder?: string;
1933
+ disabled?: boolean;
1934
+ className?: string;
1935
+ /** Which edge of the trigger the menu opens toward. Default `bottom`. */
1936
+ menuPlacement?: 'top' | 'bottom';
1937
+ /** When set, renders a labeled chip trigger (label | value chip + chevron). */
1938
+ prefix?: string;
1939
+ 'aria-label': string;
1940
+ };
1941
+ type PopoverSelectProps<T extends string> = CommonPopoverSelectProps<T> & ({
1942
+ multiple?: false;
1943
+ value: T;
1944
+ onValueChange: (value: T) => void;
1945
+ } | {
1946
+ multiple: true;
1947
+ value: readonly T[];
1948
+ onValueChange: (value: T[]) => void;
1949
+ });
1950
+ declare function PopoverSelect<T extends string>(props: PopoverSelectProps<T>): react.JSX.Element;
1951
+
1952
+ type SideDrawerAnchor = 'left' | 'right';
1953
+ type SideDrawerSize = 'sm' | 'md' | 'lg' | 'xl';
1954
+ type SideDrawerProps = {
1955
+ open: boolean;
1956
+ onOpenChange: (open: boolean) => void;
1957
+ title: string;
1958
+ description?: string;
1959
+ headerIcon?: ReactNode;
1960
+ children: ReactNode;
1961
+ footer?: ReactNode;
1962
+ /** Desktop side; ignored when compact / below `md` (falls back to bottom sheet). */
1963
+ anchor?: SideDrawerAnchor;
1964
+ /** Desktop width. Defaults to `md`. */
1965
+ size?: SideDrawerSize;
1966
+ className?: string;
1967
+ 'aria-label'?: string;
1968
+ };
1969
+ /**
1970
+ * Responsive overlay chrome: side drawer on `md+`, bottom sheet below `md`
1971
+ * (and always when compact dock/widget layout is active).
1972
+ */
1973
+ declare function SideDrawer({ open, onOpenChange, title, description, headerIcon, children, footer, anchor, size, className, 'aria-label': ariaLabel, }: SideDrawerProps): react.JSX.Element;
1974
+
1175
1975
  type SwitchSize = 'sm' | 'md';
1176
1976
  type SwitchProps = Omit<ComponentPropsWithoutRef<'button'>, 'aria-checked' | 'children' | 'onClick' | 'role'> & {
1177
1977
  checked: boolean;
@@ -1180,6 +1980,108 @@ type SwitchProps = Omit<ComponentPropsWithoutRef<'button'>, 'aria-checked' | 'ch
1180
1980
  };
1181
1981
  declare function Switch({ checked, onCheckedChange, size, disabled, className, ...props }: SwitchProps): react.JSX.Element;
1182
1982
 
1983
+ declare const DEFAULT_TABLE_PAGE_SIZE = 10;
1984
+ declare const TABLE_PAGE_SIZE_OPTIONS: readonly [10, 25, 50];
1985
+ type TableProps = react__default.HTMLAttributes<HTMLTableElement> & {
1986
+ /** Extra classes on the horizontal scroll wrapper. */
1987
+ containerClassName?: string;
1988
+ };
1989
+ declare function Table({ className, containerClassName, ...props }: TableProps): react__default.JSX.Element;
1990
+ type TableHeaderProps = react__default.HTMLAttributes<HTMLTableSectionElement>;
1991
+ declare function TableHeader({ className, ...props }: TableHeaderProps): react__default.JSX.Element;
1992
+ type TableBodyProps = react__default.HTMLAttributes<HTMLTableSectionElement>;
1993
+ declare function TableBody({ className, ...props }: TableBodyProps): react__default.JSX.Element;
1994
+ type TableRowProps = react__default.HTMLAttributes<HTMLTableRowElement>;
1995
+ declare function TableRow({ className, ...props }: TableRowProps): react__default.JSX.Element;
1996
+ type TableHeadProps = react__default.ThHTMLAttributes<HTMLTableCellElement>;
1997
+ declare function TableHead({ className, ...props }: TableHeadProps): react__default.JSX.Element;
1998
+ type TableCellProps = react__default.TdHTMLAttributes<HTMLTableCellElement>;
1999
+ declare function TableCell({ className, ...props }: TableCellProps): react__default.JSX.Element;
2000
+ type TablePaginationProps = {
2001
+ page: number;
2002
+ pageSize: number;
2003
+ total: number;
2004
+ onPageChange: (page: number) => void;
2005
+ onPageSizeChange: (pageSize: number) => void;
2006
+ pageSizeOptions?: readonly number[];
2007
+ className?: string;
2008
+ };
2009
+ declare function TablePagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizeOptions, className, }: TablePaginationProps): react__default.JSX.Element;
2010
+ /** Cursor / token pagination when the API has no total count. */
2011
+ type TableTokenPaginationProps = {
2012
+ pageSize: number;
2013
+ rowCount: number;
2014
+ canPrev: boolean;
2015
+ canNext: boolean;
2016
+ onPrev: () => void;
2017
+ onNext: () => void;
2018
+ onPageSizeChange: (pageSize: number) => void;
2019
+ pageSizeOptions?: readonly number[];
2020
+ className?: string;
2021
+ };
2022
+ declare function TableTokenPagination({ pageSize, rowCount, canPrev, canNext, onPrev, onNext, onPageSizeChange, pageSizeOptions, className, }: TableTokenPaginationProps): react__default.JSX.Element;
2023
+
2024
+ type ScheduleFormDrawerProps = {
2025
+ open: boolean;
2026
+ onOpenChange: (open: boolean) => void;
2027
+ mode: 'create' | 'edit';
2028
+ schedule?: Schedule;
2029
+ initialAgentId?: string;
2030
+ onSaved?: () => void;
2031
+ };
2032
+ declare function ScheduleFormDrawer(props: ScheduleFormDrawerProps): react.JSX.Element;
2033
+
2034
+ type RecurrenceKind = 'hourly' | 'daily' | 'weekly' | 'custom';
2035
+ type ScheduleFormValues = {
2036
+ name: string;
2037
+ task: string;
2038
+ recurrence: RecurrenceKind;
2039
+ hour: number;
2040
+ minute: number;
2041
+ /** Cron DOW: 0=Sun … 6=Sat. Used when recurrence is weekly. */
2042
+ weekdays: number[];
2043
+ customCron: string;
2044
+ timezone: string;
2045
+ };
2046
+
2047
+ type ScheduleFormFieldsProps = {
2048
+ values: ScheduleFormValues;
2049
+ onChange: (next: ScheduleFormValues) => void;
2050
+ agentId: string;
2051
+ onAgentIdChange?: (agentId: string) => void;
2052
+ agentOptions: Array<{
2053
+ agentId: string;
2054
+ name: string;
2055
+ }>;
2056
+ agentPickerDisabled?: boolean;
2057
+ };
2058
+ declare function ScheduleFormFields({ values, onChange, agentId, onAgentIdChange, agentOptions, agentPickerDisabled, }: ScheduleFormFieldsProps): react.JSX.Element;
2059
+
2060
+ declare function ScheduleLastRunsCell({ runs }: {
2061
+ runs: readonly ScheduleRun[];
2062
+ }): react.JSX.Element;
2063
+
2064
+ declare function ScheduleRunChip({ run }: {
2065
+ run: ScheduleRun;
2066
+ }): react.JSX.Element;
2067
+
2068
+ declare function SchedulesPage(): react.JSX.Element;
2069
+
2070
+ declare function ScheduleStatusBadge({ status }: {
2071
+ status: ScheduleStatus;
2072
+ }): react.JSX.Element;
2073
+
2074
+ type ScheduleMcpMount = {
2075
+ name: string;
2076
+ };
2077
+ type TestScheduleScreenProps = {
2078
+ schedule: Schedule;
2079
+ agentName: string;
2080
+ mcpMounts: readonly ScheduleMcpMount[];
2081
+ onEditConfiguration: () => void;
2082
+ };
2083
+ declare function TestScheduleScreen({ schedule, agentName, mcpMounts, onEditConfiguration }: TestScheduleScreenProps): react.JSX.Element;
2084
+
1183
2085
  type IconProps = IconProps$1 & {
1184
2086
  name: string | readonly string[];
1185
2087
  };
@@ -1307,6 +2209,8 @@ declare const ToolCallContainer: ToolCallMessagePartComponent;
1307
2209
 
1308
2210
  declare function ToolCallContentBlockContainer(props: ToolCallContentBlockProps): react.JSX.Element;
1309
2211
 
2212
+ type DraftPreferenceKind = 'chat' | 'agent';
2213
+
1310
2214
  /** Host-facing shell configuration for agent / library / composer chrome. */
1311
2215
  type AgentConfig = {
1312
2216
  mode: 'SingleAgent';
@@ -1322,14 +2226,19 @@ type AgentConfig = {
1322
2226
  };
1323
2227
  declare const DEFAULT_AGENT_CONFIG: AgentConfig;
1324
2228
  /**
1325
- * Active chat binding. Mutability (`isMutable`) decides composer / Save / updateSession —
1326
- * not a parallel draft|named shell type.
2229
+ * Active chat binding. Mutability (`isMutable`) decides draft vs named runtime.
2230
+ * `isCreateAgent` (mutable only) splits New Agent builder chrome from simple New Chat.
1327
2231
  */
1328
2232
  type ShellMode = {
1329
2233
  status: 'idle';
1330
2234
  } | {
1331
2235
  status: 'active';
1332
2236
  isMutable: boolean;
2237
+ /**
2238
+ * Mutable only: true = Agent builder (config drawer + Save); false = simple chat.
2239
+ * Always false when `isMutable` is false (Try / named).
2240
+ */
2241
+ isCreateAgent: boolean;
1333
2242
  /** Identity for immutable bind + history filter. */
1334
2243
  agentId?: string;
1335
2244
  /** Display / welcome label (often same as agentId). */
@@ -1338,9 +2247,13 @@ type ShellMode = {
1338
2247
  agentSpec?: AgentSpec;
1339
2248
  locked: boolean;
1340
2249
  };
1341
- /** Library / New Chat create intent. */
2250
+ /** Library / New Chat / New Agent create intent. */
1342
2251
  type SelectLibraryAgentRequest = {
1343
2252
  isMutable: boolean;
2253
+ /**
2254
+ * Mutable only. When omitted: true if Edit identity is present, else false (New Chat).
2255
+ */
2256
+ isCreateAgent?: boolean;
1344
2257
  agentId?: string;
1345
2258
  agentName?: string;
1346
2259
  agentSpec?: AgentSpec;
@@ -1350,7 +2263,7 @@ type ShellModeContextValue = {
1350
2263
  mode: ShellMode;
1351
2264
  /** Host agentConfig mode (capabilities source). */
1352
2265
  agentConfigMode: AgentConfig['mode'];
1353
- /** Agents Library chrome. */
2266
+ /** Agents chrome. */
1354
2267
  isLibraryEnabled: boolean;
1355
2268
  /** Mutable composer / Save Agent chrome (host capability). */
1356
2269
  isComposerEnabled: boolean;
@@ -1359,8 +2272,22 @@ type ShellModeContextValue = {
1359
2272
  settingsOpen: boolean;
1360
2273
  settingsSection: SettingsSection;
1361
2274
  setSettingsOpen: (open: boolean, section?: SettingsSection) => void;
2275
+ agentConfigOpen: boolean;
2276
+ setAgentConfigOpen: (open: boolean) => void;
2277
+ /** Agents main-pane overlay (sidebar layout). */
2278
+ libraryOpen: boolean;
2279
+ libraryAgentId: string | null;
2280
+ setLibraryAgentId: (id: string | null) => void;
2281
+ setLibraryOpen: (open: boolean) => void;
2282
+ /** All-user sessions browser (includes drafts). */
2283
+ sessionsOpen: boolean;
2284
+ setSessionsOpen: (open: boolean) => void;
2285
+ openLibraryAgent: (agentId: string) => void;
2286
+ closeLibraryAgent: () => void;
2287
+ schedulesOpen: boolean;
2288
+ setSchedulesOpen: (open: boolean) => void;
1362
2289
  /**
1363
- * Bind from the Agents Library (Try = immutable, Edit = mutable + agentSpec).
2290
+ * Bind from Agents (Try = immutable, Edit = mutable + agentSpec).
1364
2291
  * Prefer this over `selectAgent` / `openDraft` when both fields are available.
1365
2292
  */
1366
2293
  selectLibraryAgent: (req: SelectLibraryAgentRequest) => void;
@@ -1375,24 +2302,28 @@ type ShellModeContextValue = {
1375
2302
  }) => void;
1376
2303
  /** @deprecated Prefer `selectLibraryAgent({ isMutable: false, agentName })`. */
1377
2304
  selectAgent: (agentName: string) => void;
1378
- /** @deprecated Prefer `selectLibraryAgent({ isMutable: true, agentSpec })`. */
2305
+ /** Open a simple New Chat (mutable, no agent-builder chrome). */
1379
2306
  openDraft: () => void;
1380
- /** Remember plain-draft composer choices as the seed for future new chats. */
1381
- rememberDraftSpec: (agentSpec: AgentSpec) => void;
2307
+ /** Open New Agent builder (mutable + Agent Config drawer). */
2308
+ openAgentBuilder: () => void;
2309
+ /** Remember plain-draft composer choices as the seed for future New Chat / New Agent. */
2310
+ rememberDraftSpec: (agentSpec: AgentSpec, kind?: DraftPreferenceKind) => void;
1382
2311
  /**
1383
2312
  * Open a history session, remounting when mutability/identity changes.
1384
2313
  * Prefer explicit `isMutable` from the session row; when omitted, agentName
1385
2314
  * present → immutable and agentName absent → mutable. Immutable rows may omit
1386
2315
  * `agentName` when the registry agent was deleted.
2316
+ * `isCreateAgent` is only applied when mutable (default false when omitted).
1387
2317
  */
1388
2318
  openHistorySession: (req: {
1389
2319
  sessionId: string;
1390
2320
  agentName?: string;
1391
2321
  isMutable?: boolean;
2322
+ isCreateAgent?: boolean;
1392
2323
  }) => void;
1393
2324
  /** Reset current chat; no-op when idle. */
1394
2325
  clearChat: () => void;
1395
- /** Return pure Agents Library to its idle landing; no-op in other modes. */
2326
+ /** Return library-only mode to its idle landing; no-op in other modes. */
1396
2327
  openLibraryHome: () => void;
1397
2328
  /** Remount key for the chat runtime when binding changes. */
1398
2329
  runtimeKey: string;
@@ -1407,7 +2338,7 @@ type ShellModeContextValue = {
1407
2338
  /** Session to open after a binding remount (history click across mutability). */
1408
2339
  pendingSessionId: string | undefined;
1409
2340
  /**
1410
- * Bumped when the Agents Library catalog may have changed (e.g. after saveAgent).
2341
+ * Bumped when the Agents catalog may have changed (e.g. after saveAgent).
1411
2342
  * Library chrome should re-fetch when this changes.
1412
2343
  */
1413
2344
  agentsListEpoch: number;
@@ -1424,6 +2355,8 @@ declare function useShellMode(): ShellModeContextValue;
1424
2355
  declare function useOptionalShellMode(): ShellModeContextValue | null;
1425
2356
  /** True when the shell is bound to a mutable (editable) agentSpec. */
1426
2357
  declare function shellIsMutable(mode: ShellMode): boolean;
2358
+ /** True when the shell is in New Agent / Edit builder chrome. */
2359
+ declare function shellIsCreateAgent(mode: ShellMode): boolean;
1427
2360
 
1428
2361
  /**
1429
2362
  * A navigable place in the chat shell. The router mirrors these to the URL;
@@ -1439,6 +2372,15 @@ type RoutePlace = {
1439
2372
  sessionId: string;
1440
2373
  } | {
1441
2374
  type: 'settings';
2375
+ } | {
2376
+ type: 'library';
2377
+ } | {
2378
+ type: 'libraryAgent';
2379
+ agentId: string;
2380
+ } | {
2381
+ type: 'sessionsBrowser';
2382
+ } | {
2383
+ type: 'schedules';
1442
2384
  };
1443
2385
  /**
1444
2386
  * Host-facing route path customization. Only honored when `withRouter`.
@@ -1453,10 +2395,18 @@ type RoutesConfig = {
1453
2395
  root?: string;
1454
2396
  /** Settings overlay. `false` keeps settings overlay-only (no URL). Default `'/settings'`. */
1455
2397
  settings?: string | false;
2398
+ /** Agents overlay. `false` keeps library overlay-only (no URL). Default `'/library'`. */
2399
+ library?: string | false;
2400
+ /** Agent detail under the library. Default `'/library/:agentId'`. */
2401
+ libraryAgent?: string | false;
2402
+ /** Schedules page. `false` keeps schedules overlay-only (no URL). Default `'/schedules'`. */
2403
+ schedules?: string | false;
1456
2404
  /** Immutable "Try" agent. `false` disables. Default `'/agents/:agentName'`. */
1457
2405
  agent?: string | false;
1458
2406
  /** Session deep link. `false` disables. Default `'/sessions/:sessionId'`. */
1459
2407
  session?: string | false;
2408
+ /** All-user sessions browser. `false` disables. Default `'/sessions'`. */
2409
+ sessionsBrowser?: string | false;
1460
2410
  };
1461
2411
  };
1462
2412
 
@@ -1629,6 +2579,18 @@ declare const useMCPAuth: ({ callbackPath }?: UseMCPAuthOptions) => {
1629
2579
  isOAuthLoading: boolean;
1630
2580
  };
1631
2581
 
2582
+ /** Session metadata key for New Chat vs New Agent builder intent (wire/jsonb snake_case). */
2583
+ declare const IS_CREATE_AGENT_METADATA_KEY = "is_create_agent";
2584
+ /** Wire metadata values are strings (`SessionMetadataSchema`). */
2585
+ declare function isCreateAgentMetadataValue(isCreateAgent: boolean): 'true' | 'false';
2586
+ /**
2587
+ * Read create-agent intent from session metadata.
2588
+ * Missing / undefined / anything other than `"true"` → false (legacy = Chat).
2589
+ */
2590
+ declare function readSessionIsCreateAgent(metadata: Record<string, string> | null | undefined): boolean;
2591
+ /** True when a UI session was stamped as agent-builder (own prop or metadata). */
2592
+ declare function sessionIsCreateAgent(session: object): boolean;
2593
+
1632
2594
  declare function ServerProvider({ server, children }: {
1633
2595
  server: AgentUIServer;
1634
2596
  children: ReactNode;
@@ -1638,6 +2600,19 @@ declare function useOptionalServer(): AgentUIServer | null;
1638
2600
  declare function useServerCapabilities(): AgentBuilderCapabilitiesResponse['data'] | null;
1639
2601
  declare function useCatalogServer(): CatalogServer;
1640
2602
  declare function useOptionalCatalogServer(): CatalogServer | null;
2603
+ declare function useAgentSessionsServer(): AgentSessionsServer;
2604
+ declare function useOptionalAgentSessionsServer(): AgentSessionsServer | null;
2605
+ declare function useAgentMetricsServer(): AgentMetricsServer;
2606
+ declare function useOptionalAgentMetricsServer(): AgentMetricsServer | null;
2607
+ declare function useScheduleServer(): ScheduleServer;
2608
+ declare function useOptionalScheduleServer(): ScheduleServer | null;
2609
+
2610
+ declare function AgentMetricChart({ graph, definition, error }: AgentMetricChartProps): react.JSX.Element;
2611
+ declare module '../../theme/SlotsProvider.js' {
2612
+ interface AtomSlots {
2613
+ AgentMetricChart: ComponentType<AgentMetricChartProps>;
2614
+ }
2615
+ }
1641
2616
 
1642
2617
  type AgentStepPart = {
1643
2618
  type: PartState['type'];
@@ -1665,6 +2640,9 @@ type DraftCatalogValue = {
1665
2640
  models: ModelSelection[];
1666
2641
  skills: AgentSkill[];
1667
2642
  connectors: ConnectorState[];
2643
+ connectorsHasMore: boolean;
2644
+ connectorsLoadMoreFailed: boolean;
2645
+ connectorsLoadingMore: boolean;
1668
2646
  loaded: boolean;
1669
2647
  loading: boolean;
1670
2648
  error: string | null;
@@ -1674,10 +2652,12 @@ type DraftCatalogValue = {
1674
2652
  refresh: () => void;
1675
2653
  /** Refresh connector auth state without reloading unrelated catalogs. */
1676
2654
  refreshConnectors: () => Promise<void>;
2655
+ /** Append the next MCP page when `connectorsHasMore`. */
2656
+ loadMoreConnectors: () => void;
1677
2657
  };
1678
2658
  declare function DraftCatalogProvider({ children }: {
1679
2659
  children: ReactNode;
1680
2660
  }): 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
2661
  declare function useDraftCatalog(): DraftCatalogValue;
1682
2662
 
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 };
2663
+ export { AgentCodeBlock, type AgentCodeBlockProps, type AgentCodeSnippetsProps, type AgentConfig, type AgentConfigEditor, AgentConfigEditors, type AgentConfigEditorsProps, AgentConfigPanel, type AgentConfigPanelProps, AgentConfigSection, AgentDetailsHeader, type AgentDetailsHeaderProps, AgentDetailsPage, type AgentDetailsPageProps, type AgentDetailsTab, AgentDetailsTabs, type AgentDetailsTabsProps, AgentDetailsUnavailable, type AgentDetailsUnavailableProps, AgentInstructionsDrawer, type AgentInstructionsDrawerProps, AgentMcpEditorContent, type AgentMcpEditorContentProps, AgentMetricCard, type AgentMetricCardProps, AgentMetricChart, type AgentMetricChartProps, type AgentMetricChartResult, AgentMetricsContainer, type AgentMetricsProps, AgentMetricsTimeRangeFilter, type AgentMetricsTimeRangeFilterProps, AgentMetricsView, type AgentMetricsViewProps, AgentModelConfigModal, type AgentModelConfigModalProps, AgentModelEditorContent, type AgentModelEditorContentProps, AgentModelSettingsContent, type AgentModelSettingsContentProps, AgentOverviewCard, type AgentOverviewCardProps, type AgentOverviewProps, AgentResourceConfigModal, type AgentResourceConfigModalProps, AgentResourceEditorContent, type AgentResourceEditorContentProps, AgentRuntimeConfigFields, type AgentRuntimeConfigFieldsProps, AgentRuntimeConfigModal, type AgentRuntimeConfigModalProps, AgentRuntimeEditorContent, type AgentRuntimeEditorContentProps, type AgentSessionDetailHeaderProps, type AgentSessionEventTimelineChartProps, type AgentSessionEventTimelineProps, type AgentSessionListRowProps, type AgentSessionMetricsStripProps, type AgentSessionTurnHeaderProps, AgentSessionsFilters, type AgentSessionsFiltersProps, type AgentSessionsProps, AgentSkillsEditorContent, type AgentSkillsEditorContentProps, type AgentStepPart, AgentStepsCard, type AgentStepsCardProps, AgentStepsContainer, type AgentStepsContainerProps, type AgentStepsSplitResult, AgentsLibrary, AgentsLibraryButton, type AgentsLibraryButtonProps, type AgentsLibraryProps, type AskUserAnswerDraft, type AnsweredQuestion as AskUserAnsweredQuestion, AskUserContainer, type AskUserPromptProps, type Question as AskUserQuestion, type AskUserPromptProps as AskUserQuestionCardProps, AssistantMessageBubble, type AssistantMessageBubbleProps, AssistantMessageContainer, AssistantTextContainer, type PublicAtomSlots as AtomSlots, AttachmentCard, type AttachmentCardProps, type AttachmentCardSize, AttachmentPickerButton, type AttachmentPickerButtonProps, AttachmentPreviewDialog, type AttachmentPreviewDialogProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, BottomSheet, type BottomSheetProps, type BrandChrome, type BrandConfig, type BrandImage, BrandLogo, type BrandLogoConfig, type BrandMode, type ButtonProps, type ButtonSize, type ButtonVariant, CenteredModal, type CenteredModalProps, ChatFileDownload, type ChatFileDownloadFile, type ChatFileDownloadProps, type ChatLayout, ClearChatButton, CodeEditor, type CodeEditorProps, ComposerAttachmentPickerContainer, ComposerAttachmentsContainer, ComposerBusyProvider, type ComposerBusyState, ComposerContainer, type ComposerContainerProps, ComposerLeftSection, type ComposerLeftSectionProps, type ComposerPauseView, ComposerRightSection, type ComposerRightSectionProps, ComposerSendButton, type ComposerSendButtonProps, ComposerShell, type ComposerShellProps, type ContentClassNames, CustomActionContainer, type CustomActionRendererProps, type CustomActionRenderers, CustomActionRenderersProvider, DEFAULT_AGENT_CONFIG, DEFAULT_TABLE_PAGE_SIZE, DraftAgentConfigTrigger, type DraftAgentConfigTriggerProps, DraftCapabilitiesPanel, DraftCatalogProvider, DraftComposerLeftSection, DraftComposerRightSection, DraftCompositeSelector, type DraftCompositeSelectorProps, DraftModelSelector, type DraftModelSelectorProps, HistoryLoader, HistoryLoaderContainer, type HistoryLoaderProps, IS_CREATE_AGENT_METADATA_KEY, Icon, type IconButtonProps, type IconMap, type IconProps, type LayoutProp, MCP_AUTH_POPUP_CHANNEL, Markdown, type MarkdownProps, type McpAuthCallback, type McpAuthPromptProps as McpAuthCardProps, McpAuthContainer, type McpAuthPopupMessage, type McpAuthPromptProps, type McpServer as McpAuthServer, MessageActionBar, type MessageActionBarProps, MessageAttachmentsContainer, MessageErrorBanner, type MessageErrorBannerProps, MessageGroup, type MessageGroupProps, MessageIndicator, type MessageIndicatorProps, MessageListSkeleton, type MessageListSkeletonProps, MessageTimestamp, type MessageTimestampProps, MonacoEditorCore, type MonacoEditorCoreProps, OpenUiFenceBlock, type OpenUiFenceBlockProps, PRESETS, PopoverSelect, type PopoverSelectOption, type PopoverSelectProps, PostMcpOauthScreen, type ReasoningCardProps, ReasoningContainer, ResumeUnavailable, ResumeUnavailableContainer, type ResumeUnavailableProps, type RoutePlace, type RoutesConfig, SandboxArtifactDownload, type SandboxArtifactDownloadProps, SandboxToolCallCard, type SandboxToolCallCardProps, SaveAgentButton, type SaveAgentButtonProps, SaveAgentForm, SaveAgentFormFields, type SaveAgentFormFieldsProps, type SaveAgentFormProps, ScheduleFormDrawer, type ScheduleFormDrawerProps, ScheduleFormFields, type ScheduleFormFieldsProps, ScheduleLastRunsCell, type ScheduleMcpMount, ScheduleRunChip, ScheduleStatusBadge, SchedulesButton, type SchedulesButtonProps, SchedulesPage, ScrollToBottomButton, type ScrollToBottomButtonProps, SelectAgentEmptyState, type SelectLibraryAgentRequest, type SemanticTokens, ServerProvider, type SessionEventTimelineSegment, type SessionEventType, type SessionTurnView, SessionsBrowserButton, type SessionsBrowserButtonProps, SessionsPage, ShellActionsActionSlot, type ShellMode, ShellModeProvider, SideDrawer, type SideDrawerAnchor, type SideDrawerProps, type SideDrawerSize, type SlotOverrides, SlotsProvider, SubAgentCard, type SubAgentCardProps, Switch, type SwitchProps, type SwitchSize, SyntaxHighlighter, type SyntaxHighlighterProps, TABLE_PAGE_SIZE_OPTIONS, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TablePagination, type TablePaginationProps, type TableProps, TableRow, type TableRowProps, TableTokenPagination, type TableTokenPaginationProps, TestScheduleScreen, type TestScheduleScreenProps, type ThemeConfig, type IconProps$1 as ThemeIconProps, type ThemeMode, type ThemePreset, ThemeProvider, Thread, ThreadComposerAreaShell, type ThreadComposerAreaShellProps, ThreadContainer, type ThreadContainerProps, type ThreadGroupPart, ThreadListContainer, type ThreadListContainerProps, ThreadListEmptyState, type ThreadListEmptyStateProps, ThreadListNewButton, type ThreadListNewButtonProps, ThreadListRow, type ThreadListRowProps, ThreadListRowSkeleton, type ThreadListRowSkeletonProps, ThreadListShell, type ThreadListShellProps, type ThreadPauseState, ThreadRootShell, type ThreadRootShellProps, ThreadViewportShell, type ThreadViewportShellProps, Toast, type ToastProps, ToastStack, type ToastStackProps, ToasterProvider, ToolApprovalBar, type ToolApprovalBarProps, ToolApprovalContainer, type ToolApprovalOption, ToolCallCard, type ToolCallCardProps, ToolCallContainer, ToolCallContentBlock, ToolCallContentBlockContainer, type ToolCallContentBlockProps, type ToolCallStatus, ToolGroupCard, type ToolGroupCardProps, ToolGroupContainer, type TrueForgeBuiltInServerConfig, type TrueForgeServerConfig, TrueForgeUI, type TrueForgeUIProps, TrueFoundryChatProvider, type TrueFoundryChatProviderProps, USER_MESSAGE_ATTACHMENT_PREVIEW_REM, type UseMCPAuthOptions, UserEditComposerContainer, UserMessageActionBar, type UserMessageActionBarProps, UserMessageBubble, type UserMessageBubbleProps, UserMessageContainer, UserMessageEdit, type UserMessageEditProps, WelcomeScreen, type WelcomeScreenProps, computeAgentStepsSplit, defaultSlots, getErrorMessage, isCreateAgentMetadataValue, libraryAgentId, preloadMarkdownOpenUI, readSessionIsCreateAgent, resolveBrandChrome, resolvePresetTokens, sessionIsCreateAgent, shellIsCreateAgent, shellIsMutable, threadHasPendingMcpAuth, useAgentMetricsServer, useAgentSessionsServer, useBrand, useBrandName, useCatalogServer, useComposerBusyState, useComposerPauseView, useContentClassNames, useDraftCatalog, useMCPAuth, useOptionalAgentMetricsServer, useOptionalAgentSessionsServer, useOptionalCatalogServer, useOptionalContentClassNames, useOptionalCustomActionRenderers, useOptionalScheduleServer, useOptionalServer, useOptionalShellMode, useScheduleServer, useServer, useServerCapabilities, useShellMode, useSlot, useTheme, useThemeIcons, useThemeMode, useToaster, useToasterOptional };