@tutti-os/agent-gui 0.0.116 → 0.0.118

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.
package/README.md CHANGED
@@ -227,6 +227,11 @@ use `renderAgentsEmpty` for a host-specific loaded-empty state. Use
227
227
  `renderAgentReadinessState` for host-specific availability presentation, and
228
228
  handle install/login/refresh requests through `onAgentAvailabilityAction`.
229
229
 
230
+ Hosts that launch handoffs across session-runtime boundaries may also pass
231
+ `handoffAgentDirectory`. Its ready entries populate only the active-conversation
232
+ Handoff menu; the conversation rail, session queries, and empty composer remain
233
+ owned by `agentDirectory`. When omitted, Handoff uses `agentDirectory`.
234
+
230
235
  The old public `providerTargets`, `providerRailMode`, provider-target renderers,
231
236
  and `defaultProviderTargetId` contract is intentionally unsupported. Workbench
232
237
  state hydration performs a one-time read of legacy `providerTargetId` into
@@ -1006,6 +1006,9 @@ interface AgentGUINodeHostCapabilities {
1006
1006
  accountMenuState?: AgentGUIAccountMenuState | null;
1007
1007
  agentTargets?: readonly AgentGUIAgentTarget[];
1008
1008
  agentTargetsLoading?: boolean;
1009
+ /** Launch-only targets for active-conversation handoff. */
1010
+ handoffAgentTargets?: readonly AgentGUIAgentTarget[];
1011
+ handoffAgentTargetsLoading?: boolean;
1009
1012
  providerRailAllPresentation?: AgentGUIProviderRailAllPresentation | null;
1010
1013
  providerRailMode?: AgentGUIProviderRailMode;
1011
1014
  comingSoonProviders?: readonly AgentGUIProvider[];
@@ -1053,10 +1056,15 @@ interface AgentGUINodeProps {
1053
1056
  renderSlots: AgentGUINodeRenderSlots;
1054
1057
  }
1055
1058
 
1056
- type AgentGUIPublicHostCapabilities = Omit<AgentGUINodeProps["hostCapabilities"], "agentTargets" | "agentTargetsLoading" | "providerRailAllPresentation" | "providerRailMode" | "disabledHomeSuggestions">;
1059
+ type AgentGUIPublicHostCapabilities = Omit<AgentGUINodeProps["hostCapabilities"], "agentTargets" | "agentTargetsLoading" | "handoffAgentTargets" | "handoffAgentTargetsLoading" | "providerRailAllPresentation" | "providerRailMode" | "disabledHomeSuggestions">;
1057
1060
  type AgentGUIPublicRenderSlots = Omit<AgentGUINodeProps["renderSlots"], "providerRailEmpty">;
1058
1061
  interface AgentGUIProps extends Omit<AgentGUINodeProps, "hostCapabilities" | "renderSlots"> {
1059
1062
  agentDirectory: AgentGUIAgentDirectorySnapshot;
1063
+ /**
1064
+ * Host-owned launch catalog for conversation handoff. When omitted, handoff
1065
+ * uses `agentDirectory`, preserving the single-runtime host contract.
1066
+ */
1067
+ handoffAgentDirectory?: AgentGUIAgentDirectorySnapshot;
1060
1068
  allAgentsPresentation?: AgentGUIAllAgentsPresentation | null;
1061
1069
  renderAgentsEmpty?: AgentGUIAgentsEmptyRenderer;
1062
1070
  agentActivityRuntime: AgentActivityRuntime;
@@ -1,6 +1,6 @@
1
1
  import 'react';
2
2
  import '@tutti-os/ui-i18n-runtime';
3
- export { n as AgentGUI, w as AgentGUIProps } from './AgentGUI-Be6O5di1.js';
3
+ export { n as AgentGUI, w as AgentGUIProps } from './AgentGUI-B_K2lEDE.js';
4
4
  import './agentGuiNodeTypes-C_H3DbXt.js';
5
5
  export { l as AgentGUIHomeSuggestionId } from './types-COIp0SYP.js';
6
6
  import './runtime-BBNdWgDU.js';
package/dist/agent-gui.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AgentGUI
3
- } from "./chunk-IIQSQNS4.js";
3
+ } from "./chunk-AD7EVK67.js";
4
4
  import "./chunk-A4WCTHWS.js";
5
5
  import "./chunk-NNIXG27Q.js";
6
6
  import "./chunk-TUWQV2MC.js";
@@ -11310,8 +11310,20 @@ function useAgentGUIProviderHome(input) {
11310
11310
  const selectConversationFilterTarget = useCallback21(
11311
11311
  (selection) => {
11312
11312
  const current = inputRef.current;
11313
+ const agentTargetId = selection.agentTargetId.trim();
11314
+ if (!agentTargetId) {
11315
+ reportAgentGUIConversationFilterTargetUnresolved({
11316
+ provider: selection.provider,
11317
+ agentTargetId: null,
11318
+ providerTargetCount: current.normalizedProviderTargets.length,
11319
+ reason: "unresolved",
11320
+ runtime: current.agentActivityRuntime,
11321
+ workspaceId: current.workspaceId
11322
+ });
11323
+ return;
11324
+ }
11313
11325
  const nextTarget = resolveAgentGUIAgentTarget({
11314
- agentTargetId: selection.agentTargetId,
11326
+ agentTargetId,
11315
11327
  defaultAgentTargetId: current.defaultAgentTargetId,
11316
11328
  provider: selection.provider,
11317
11329
  agentTargets: current.normalizedProviderTargets,
@@ -11320,7 +11332,7 @@ function useAgentGUIProviderHome(input) {
11320
11332
  if (!nextTarget) {
11321
11333
  reportAgentGUIConversationFilterTargetUnresolved({
11322
11334
  provider: selection.provider,
11323
- agentTargetId: selection.agentTargetId ?? null,
11335
+ agentTargetId,
11324
11336
  providerTargetCount: current.normalizedProviderTargets.length,
11325
11337
  reason: "unresolved",
11326
11338
  runtime: current.agentActivityRuntime,
@@ -11329,8 +11341,7 @@ function useAgentGUIProviderHome(input) {
11329
11341
  return;
11330
11342
  }
11331
11343
  current.clearRailRevealRequest();
11332
- const agentTargetId = nextTarget.agentTargetId?.trim() ?? "";
11333
- const nextFilter = agentTargetId ? { kind: "agentTarget", agentTargetId } : { kind: "all" };
11344
+ const nextFilter = { kind: "agentTarget", agentTargetId };
11334
11345
  current.setConversationFilter(nextFilter);
11335
11346
  const activeId = current.activeConversationIdRef.current;
11336
11347
  const activeSummary = resolveConversationSummaryById(
@@ -11364,7 +11375,10 @@ function useAgentGUIProviderHome(input) {
11364
11375
  targetAgentTargetId: agentTargetId || null
11365
11376
  });
11366
11377
  if (rememberedSelection.kind === "restore") {
11367
- selectHomeComposerAgentTarget(selection);
11378
+ selectHomeComposerAgentTarget({
11379
+ provider: nextTarget.provider,
11380
+ agentTargetId
11381
+ });
11368
11382
  current.selectConversation(rememberedSelection.agentSessionId, {
11369
11383
  reloadConversations: false
11370
11384
  });
@@ -11380,7 +11394,10 @@ function useAgentGUIProviderHome(input) {
11380
11394
  staleIds
11381
11395
  );
11382
11396
  }
11383
- selectHomeComposerAgentTarget(selection);
11397
+ selectHomeComposerAgentTarget({
11398
+ provider: nextTarget.provider,
11399
+ agentTargetId
11400
+ });
11384
11401
  },
11385
11402
  [selectHomeComposerAgentTarget]
11386
11403
  );
@@ -11403,7 +11420,7 @@ function useAgentGUIProviderHome(input) {
11403
11420
  if (!target) return;
11404
11421
  selectHomeComposerAgentTarget({
11405
11422
  provider: target.provider,
11406
- agentTargetId: target.targetId
11423
+ agentTargetId: filterAgentTargetId
11407
11424
  });
11408
11425
  }, [
11409
11426
  input.activeConversationId,
@@ -11842,7 +11859,9 @@ function useAgentGUIProviderCatalogSelection(input) {
11842
11859
  providerRailMode,
11843
11860
  providerReadinessGates,
11844
11861
  agentTargets,
11845
- agentTargetsLoading
11862
+ agentTargetsLoading,
11863
+ handoffAgentTargets,
11864
+ handoffAgentTargetsLoading
11846
11865
  } = input;
11847
11866
  const normalizedComingSoonProviders = useMemo15(
11848
11867
  () => comingSoonProviders && comingSoonProviders.length > 0 ? [...comingSoonProviders] : emptyComingSoonProviders,
@@ -11878,11 +11897,23 @@ function useAgentGUIProviderCatalogSelection(input) {
11878
11897
  agentTargetsLoading
11879
11898
  ]);
11880
11899
  const shouldUseStaticProviderTargets = !isExactProviderRailMode && !agentTargetsLoading && (agentTargets === void 0 || normalizedExplicitProviderTargets.length === 0);
11881
- const handoffAgentTargets = useMemo15(
11882
- () => agentTargetsLoading ? [] : normalizedExplicitProviderTargets.filter(
11900
+ const normalizedHandoffAgentTargets = useMemo15(
11901
+ () => handoffAgentTargets === void 0 ? normalizedExplicitProviderTargets : normalizeAgentGUIAgentTargets(handoffAgentTargets, {
11902
+ includeDisabledPlaceholders: false,
11903
+ useStaticCatalog: false
11904
+ }),
11905
+ [handoffAgentTargets, normalizedExplicitProviderTargets]
11906
+ );
11907
+ const enabledHandoffAgentTargets = useMemo15(
11908
+ () => (handoffAgentTargets === void 0 ? agentTargetsLoading : handoffAgentTargetsLoading) ? [] : normalizedHandoffAgentTargets.filter(
11883
11909
  (target) => target.disabled !== true
11884
11910
  ),
11885
- [normalizedExplicitProviderTargets, agentTargetsLoading]
11911
+ [
11912
+ agentTargetsLoading,
11913
+ handoffAgentTargets,
11914
+ handoffAgentTargetsLoading,
11915
+ normalizedHandoffAgentTargets
11916
+ ]
11886
11917
  );
11887
11918
  const selectedAgentTarget = useMemo15(
11888
11919
  () => resolveAgentGUIAgentTarget({
@@ -11964,7 +11995,7 @@ function useAgentGUIProviderCatalogSelection(input) {
11964
11995
  return {
11965
11996
  effectiveSelectedProviderTarget,
11966
11997
  firstReadyHomeComposerProviderTarget,
11967
- handoffAgentTargets,
11998
+ handoffAgentTargets: enabledHandoffAgentTargets,
11968
11999
  homeComposerTargetOverride,
11969
12000
  homeComposerTargetOverrideIsExplicit,
11970
12001
  normalizedComingSoonProviders,
@@ -12626,6 +12657,8 @@ function useAgentGUINodeController({
12626
12657
  data,
12627
12658
  agentTargets,
12628
12659
  agentTargetsLoading = false,
12660
+ handoffAgentTargets,
12661
+ handoffAgentTargetsLoading = false,
12629
12662
  providerRailMode = "catalog",
12630
12663
  comingSoonProviders,
12631
12664
  providerReadinessGates = null,
@@ -12658,7 +12691,9 @@ function useAgentGUINodeController({
12658
12691
  providerRailMode,
12659
12692
  providerReadinessGates,
12660
12693
  agentTargets,
12661
- agentTargetsLoading
12694
+ agentTargetsLoading,
12695
+ handoffAgentTargets,
12696
+ handoffAgentTargetsLoading
12662
12697
  });
12663
12698
  const {
12664
12699
  effectiveSelectedProviderTarget,
@@ -27145,32 +27180,20 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27145
27180
  ),
27146
27181
  [effectiveHiddenTargetIds, providerTiles]
27147
27182
  );
27148
- const selectedAgentTargetIsPlaceholder = selectedAgentTarget?.disabled === true && selectedAgentTarget.targetId === `local:${selectedAgentTarget.provider}`;
27149
- const allTileSelected = conversationFilter.kind === "all" && !selectedAgentTargetIsPlaceholder;
27183
+ const allTileSelected = conversationFilter.kind === "all";
27150
27184
  const selectAllProviders = useCallback44(() => {
27151
27185
  onUpdateConversationFilter({ kind: "all" });
27152
- if (selectedAgentTargetIsPlaceholder) {
27153
- const fallbackTarget = railProviderTargets.find((target) => target.disabled !== true) ?? null;
27154
- if (fallbackTarget) {
27155
- onSelectConversationFilterTarget({
27156
- provider: fallbackTarget.provider,
27157
- agentTargetId: fallbackTarget.targetId
27158
- });
27159
- }
27160
- }
27161
27186
  onRequestComposerFocus();
27162
- }, [
27163
- onSelectConversationFilterTarget,
27164
- onRequestComposerFocus,
27165
- onUpdateConversationFilter,
27166
- railProviderTargets,
27167
- selectedAgentTargetIsPlaceholder
27168
- ]);
27187
+ }, [onRequestComposerFocus, onUpdateConversationFilter]);
27169
27188
  const selectAgentTargetTile = useCallback44(
27170
27189
  (target) => {
27190
+ const agentTargetId = target.agentTargetId?.trim() ?? "";
27191
+ if (!agentTargetId) {
27192
+ return;
27193
+ }
27171
27194
  onSelectConversationFilterTarget({
27172
27195
  provider: target.provider,
27173
- agentTargetId: target.targetId
27196
+ agentTargetId
27174
27197
  });
27175
27198
  onRequestComposerFocus();
27176
27199
  },
@@ -27338,10 +27361,13 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27338
27361
  );
27339
27362
  const fallbackTarget = fallbackTargets.find((target) => target.disabled !== true) ?? fallbackTargets[0];
27340
27363
  if (fallbackTarget && fallbackTarget.targetId !== targetId) {
27341
- onSelectHomeComposerAgentTarget({
27342
- provider: fallbackTarget.provider,
27343
- agentTargetId: fallbackTarget.targetId
27344
- });
27364
+ const fallbackAgentTargetId = fallbackTarget.agentTargetId?.trim() ?? "";
27365
+ if (fallbackAgentTargetId) {
27366
+ onSelectHomeComposerAgentTarget({
27367
+ provider: fallbackTarget.provider,
27368
+ agentTargetId: fallbackAgentTargetId
27369
+ });
27370
+ }
27345
27371
  }
27346
27372
  }
27347
27373
  if (!visible && providerTiles.some(
@@ -27481,7 +27507,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27481
27507
  `provider-target-loading-${index}`
27482
27508
  )) : null,
27483
27509
  visibleProviderTiles.map((target) => {
27484
- const providerSelected = target.disabled === true ? selectedAgentTargetIsPlaceholder && selectedAgentTarget?.provider === target.provider && selectedAgentTarget?.targetId === target.targetId : agentGUIProviderTargetMatchesConversationFilter(
27510
+ const providerSelected = agentGUIProviderTargetMatchesConversationFilter(
27485
27511
  target,
27486
27512
  conversationFilter
27487
27513
  );
@@ -35389,7 +35415,7 @@ function areAgentGUINodePropsEqual(previous, next) {
35389
35415
  const pc = previous.hostCapabilities, nc = next.hostCapabilities;
35390
35416
  const pa = previous.hostActions, na = next.hostActions;
35391
35417
  const ps = previous.renderSlots, ns = next.renderSlots;
35392
- return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveDroppedFileReferences === nw.resolveDroppedFileReferences && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentProbes === nr.agentProbes && pr.onProbeDemandChange === nr.onProbeDemandChange && pr.onProbeRefreshRequest === nr.onProbeRefreshRequest && pc.capabilityMenuState === nc.capabilityMenuState && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.contextMentionProviders === nc.contextMentionProviders && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
35418
+ return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveDroppedFileReferences === nw.resolveDroppedFileReferences && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentProbes === nr.agentProbes && pr.onProbeDemandChange === nr.onProbeDemandChange && pr.onProbeRefreshRequest === nr.onProbeRefreshRequest && pc.capabilityMenuState === nc.capabilityMenuState && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.contextMentionProviders === nc.contextMentionProviders && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
35393
35419
  }
35394
35420
 
35395
35421
  // agent-gui/agentGuiNode/AgentGUINode.labels.ts
@@ -36296,6 +36322,8 @@ var AgentGUINode = memo14(function AgentGUINode2({
36296
36322
  accountMenuState = null,
36297
36323
  agentTargets,
36298
36324
  agentTargetsLoading = false,
36325
+ handoffAgentTargets,
36326
+ handoffAgentTargetsLoading = false,
36299
36327
  providerRailAllPresentation = null,
36300
36328
  providerRailMode = "catalog",
36301
36329
  comingSoonProviders,
@@ -36471,6 +36499,8 @@ var AgentGUINode = memo14(function AgentGUINode2({
36471
36499
  prefillPromptRequest,
36472
36500
  agentTargets,
36473
36501
  agentTargetsLoading,
36502
+ handoffAgentTargets,
36503
+ handoffAgentTargetsLoading,
36474
36504
  providerRailMode,
36475
36505
  comingSoonProviders,
36476
36506
  providerReadinessGates,
@@ -36777,6 +36807,7 @@ var AgentGUI = memo15(function AgentGUI2({
36777
36807
  agentActivityRuntime,
36778
36808
  agentHostApi,
36779
36809
  agentDirectory,
36810
+ handoffAgentDirectory,
36780
36811
  allAgentsPresentation = null,
36781
36812
  renderAgentsEmpty,
36782
36813
  disabled,
@@ -36785,6 +36816,10 @@ var AgentGUI = memo15(function AgentGUI2({
36785
36816
  ...props
36786
36817
  }) {
36787
36818
  const normalizedAgents = normalizeAgentGUIAgents(agentDirectory.agents);
36819
+ const effectiveHandoffAgentDirectory = handoffAgentDirectory ?? agentDirectory;
36820
+ const normalizedHandoffAgents = normalizeAgentGUIAgents(
36821
+ effectiveHandoffAgentDirectory.agents
36822
+ );
36788
36823
  const hostCapabilities = props.hostCapabilities;
36789
36824
  const renderSlots = props.renderSlots;
36790
36825
  const nodeProps = {
@@ -36793,6 +36828,10 @@ var AgentGUI = memo15(function AgentGUI2({
36793
36828
  ...hostCapabilities,
36794
36829
  agentTargets: projectAgentGUIAgentsToInternalTargets(normalizedAgents),
36795
36830
  agentTargetsLoading: agentDirectory.agents.length === 0 && (agentDirectory.status === "idle" || agentDirectory.status === "loading"),
36831
+ handoffAgentTargets: projectAgentGUIAgentsToInternalTargets(
36832
+ normalizedHandoffAgents
36833
+ ),
36834
+ handoffAgentTargetsLoading: effectiveHandoffAgentDirectory.agents.length === 0 && (effectiveHandoffAgentDirectory.status === "idle" || effectiveHandoffAgentDirectory.status === "loading"),
36796
36835
  disabledHomeSuggestions: disabled,
36797
36836
  providerRailAllPresentation: allAgentsPresentation ?? null,
36798
36837
  providerRailMode: "exact"
@@ -36823,4 +36862,4 @@ export {
36823
36862
  resolveAgentGUIAgentTarget,
36824
36863
  AgentGUI
36825
36864
  };
36826
- //# sourceMappingURL=chunk-IIQSQNS4.js.map
36865
+ //# sourceMappingURL=chunk-AD7EVK67.js.map