@tutti-os/agent-gui 0.0.76 → 0.0.78

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/dist/index.d.ts CHANGED
@@ -581,6 +581,7 @@ interface AgentSlashCommandCapability {
581
581
  kind: "capability";
582
582
  name: string;
583
583
  }
584
+ type AgentSlashCommandFallbackMode = "provider-default" | "none";
584
585
 
585
586
  interface AgentProjectPathChangeMetadata {
586
587
  action: WorkspaceUserProjectSelectChangeAction;
@@ -620,6 +621,7 @@ interface AgentComposerProps {
620
621
  usage?: AgentComposerUsage | null;
621
622
  draftContent: AgentComposerDraft;
622
623
  availableCommands: readonly AgentSessionCommand[];
624
+ slashCommandFallbackMode?: AgentSlashCommandFallbackMode;
623
625
  hasCompactableContext?: boolean;
624
626
  compactSupported?: boolean | null;
625
627
  availableSkills?: readonly AgentGUIProviderSkillOption[];
@@ -1009,6 +1011,11 @@ interface AgentGUINodeProps {
1009
1011
  providerTargets?: readonly AgentGUIProviderTarget[];
1010
1012
  providerTargetsLoading?: boolean;
1011
1013
  providerRailAllPresentation?: AgentGUIProviderRailAllPresentation | null;
1014
+ /**
1015
+ * Controls whether AgentGUI adds local provider-default slash commands when
1016
+ * the runtime advertises none. Defaults to "provider-default".
1017
+ */
1018
+ slashCommandFallbackMode?: AgentComposerProps["slashCommandFallbackMode"];
1012
1019
  /**
1013
1020
  * Controls how the provider rail composes its list. "catalog" (default) adds
1014
1021
  * the static local catalog + placeholders + coming-soon; "exact" renders only
@@ -1157,4 +1164,4 @@ interface AgentActivityHostProviderProps extends PropsWithChildren {
1157
1164
  }
1158
1165
  declare function AgentActivityHostProvider({ agentActivityRuntime, agentHostApi, children }: AgentActivityHostProviderProps): JSX.Element;
1159
1166
 
1160
- export { AgentActivityHostProvider, type AgentActivityHostProviderProps, type AgentActivityRuntime, type AgentActivityRuntimeCapabilities, type AgentActivityRuntimeCapabilityKey, type AgentActivityRuntimeListSessionMessagesInput, type AgentActivityRuntimePromptContentBlock, AgentActivityRuntimeProvider, type AgentActivityRuntimeProviderProps, type AgentActivityRuntimeRetainSessionEventsInput, type AgentActivityRuntimeSetSessionPinnedInput, type AgentActivityRuntimeUpdateSessionSettingsInput, type AgentActivityRuntimeUploadPromptContentInput, type AgentActivityRuntimeUploadPromptContentResult, type AgentActivityRuntimeWarmupOpenclawGatewayInput, type AgentActivitySnapshotProjection, AgentContextMentionProvider, type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, AgentGUI, type AgentGUIAccountMenuState, type AgentGUIProps, AgentGUIProvider, AgentGUIProviderRailAllPresentation, type AgentGUIProviderRailEmptyRenderer, AgentGUIProviderRailMode, AgentGUIProviderReadinessGate, type AgentGUIProviderReadinessGateStateContext, type AgentGUIProviderReadinessGateStateRenderer, AgentGUIProviderTarget, AgentGUIProviderTargetBadge, type AgentGUIProviderUnavailableStateContext, type AgentGUIProviderUnavailableStateRenderer, type AgentGUISidebarFooterContext, type AgentGUISidebarFooterRenderer, AgentGuiI18nLocale, AgentHostInputApi, AgentProbeSnapshot, AgentQueuedPromptQueueSnapshot, AgentQueuedPromptRuntime, AgentQueuedPromptRuntimeProvider, type AgentQueuedPromptRuntimeProviderProps, agentActivityRuntimeCapabilityEnabled, agentGUIDefaultTargetProviders, agentGuiDockIconUrl, agentGuiDockIconUrls, agentHostSnapshotFromAgentActivitySnapshot, buildAgentActivitySnapshotProjection, createLocalAgentGUIProviderTarget, createLocalAgentGUIProviderTargets, createSharedAgentGUIProviderTarget, getAgentActivityRuntime, getAgentCustomMentionKind, getOptionalAgentActivityRuntime, localAgentGUIAgentTargetId, localAgentGUIProviderTargetId, normalizeAgentGUIProviderTargets, projectCoreSessionStatus, registerAgentCustomMentionKind, resetAgentActivityRuntimeForTests, resetAgentCustomMentionKindsForTests, resetAgentQueuedPromptRuntimeForTests, resolveAgentGUIExpandedWindowFrame, resolveAgentGUIProviderTarget, setAgentActivityRuntimeForTests, setAgentQueuedPromptRuntimeForTests, shouldAutoCollapseAgentGUIConversationRail, useAgentActivityRuntime, useAgentActivitySnapshot, useAgentQueuedPromptRuntime, useAgentQueuedPromptSessionSnapshot, useOptionalAgentActivityRuntime };
1167
+ export { AgentActivityHostProvider, type AgentActivityHostProviderProps, type AgentActivityRuntime, type AgentActivityRuntimeCapabilities, type AgentActivityRuntimeCapabilityKey, type AgentActivityRuntimeListSessionMessagesInput, type AgentActivityRuntimePromptContentBlock, AgentActivityRuntimeProvider, type AgentActivityRuntimeProviderProps, type AgentActivityRuntimeRetainSessionEventsInput, type AgentActivityRuntimeSetSessionPinnedInput, type AgentActivityRuntimeUpdateSessionSettingsInput, type AgentActivityRuntimeUploadPromptContentInput, type AgentActivityRuntimeUploadPromptContentResult, type AgentActivityRuntimeWarmupOpenclawGatewayInput, type AgentActivitySnapshotProjection, AgentContextMentionProvider, type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, AgentGUI, type AgentGUIAccountMenuState, type AgentGUIProps, AgentGUIProvider, AgentGUIProviderRailAllPresentation, type AgentGUIProviderRailEmptyRenderer, AgentGUIProviderRailMode, AgentGUIProviderReadinessGate, type AgentGUIProviderReadinessGateStateContext, type AgentGUIProviderReadinessGateStateRenderer, AgentGUIProviderTarget, AgentGUIProviderTargetBadge, type AgentGUIProviderUnavailableStateContext, type AgentGUIProviderUnavailableStateRenderer, type AgentGUISidebarFooterContext, type AgentGUISidebarFooterRenderer, AgentGuiI18nLocale, AgentHostInputApi, AgentProbeSnapshot, AgentQueuedPromptQueueSnapshot, AgentQueuedPromptRuntime, AgentQueuedPromptRuntimeProvider, type AgentQueuedPromptRuntimeProviderProps, type AgentSlashCommandFallbackMode, agentActivityRuntimeCapabilityEnabled, agentGUIDefaultTargetProviders, agentGuiDockIconUrl, agentGuiDockIconUrls, agentHostSnapshotFromAgentActivitySnapshot, buildAgentActivitySnapshotProjection, createLocalAgentGUIProviderTarget, createLocalAgentGUIProviderTargets, createSharedAgentGUIProviderTarget, getAgentActivityRuntime, getAgentCustomMentionKind, getOptionalAgentActivityRuntime, localAgentGUIAgentTargetId, localAgentGUIProviderTargetId, normalizeAgentGUIProviderTargets, projectCoreSessionStatus, registerAgentCustomMentionKind, resetAgentActivityRuntimeForTests, resetAgentCustomMentionKindsForTests, resetAgentQueuedPromptRuntimeForTests, resolveAgentGUIExpandedWindowFrame, resolveAgentGUIProviderTarget, setAgentActivityRuntimeForTests, setAgentQueuedPromptRuntimeForTests, shouldAutoCollapseAgentGUIConversationRail, useAgentActivityRuntime, useAgentActivitySnapshot, useAgentQueuedPromptRuntime, useAgentQueuedPromptSessionSnapshot, useOptionalAgentActivityRuntime };
package/dist/index.js CHANGED
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  AgentInteractivePromptSurface,
34
34
  approvalOptionDisplayLabel
35
- } from "./chunk-U6EDUTUO.js";
35
+ } from "./chunk-3B3KPQ4Y.js";
36
36
  import {
37
37
  PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
38
38
  PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
@@ -88,14 +88,14 @@ import {
88
88
  textPromptContent,
89
89
  toLocalShortDateTime,
90
90
  useProjectedAgentConversation
91
- } from "./chunk-7GSBP5CN.js";
91
+ } from "./chunk-WIRYWLAI.js";
92
92
  import {
93
93
  AgentMessageMarkdown,
94
94
  AgentTargetPresentationProvider,
95
95
  ZoomableImage,
96
96
  cn,
97
97
  resolveWorkspaceLinkAction
98
- } from "./chunk-3FYA2K4P.js";
98
+ } from "./chunk-5CLGEUWK.js";
99
99
  import {
100
100
  openAgentEnvPanel
101
101
  } from "./chunk-PSLAWU25.js";
@@ -9146,6 +9146,7 @@ function useAgentGUINodeController({
9146
9146
  );
9147
9147
  const [draftBySessionId, setDraftBySessionId] = useState4({});
9148
9148
  const draftBySessionIdRef = useRef4(draftBySessionId);
9149
+ const pendingSubmittedHomeDraftRef = useRef4({});
9149
9150
  const [draftSettingsBySessionId, setDraftSettingsBySessionId] = useState4({});
9150
9151
  const hasLoadedConversations = conversationListState?.initialized ?? false;
9151
9152
  const isLoadingConversations = conversationListState?.isLoading ?? false;
@@ -11889,6 +11890,12 @@ function useAgentGUINodeController({
11889
11890
  targetData.agentTargetId
11890
11891
  );
11891
11892
  const submittedHomeDraft = draftBySessionIdRef.current[submittedHomeDraftKey] ?? EMPTY_AGENT_COMPOSER_DRAFT;
11893
+ if (agentComposerDraftHasContent(submittedHomeDraft)) {
11894
+ pendingSubmittedHomeDraftRef.current = {
11895
+ ...pendingSubmittedHomeDraftRef.current,
11896
+ [submittedHomeDraftKey]: submittedHomeDraft
11897
+ };
11898
+ }
11892
11899
  isCreatingConversationRef.current = true;
11893
11900
  setLocalIsCreatingConversation(true);
11894
11901
  setDetailError(null);
@@ -12336,6 +12343,11 @@ function useAgentGUINodeController({
12336
12343
  }).finally(() => {
12337
12344
  isCreatingConversationRef.current = false;
12338
12345
  setLocalIsCreatingConversation(false);
12346
+ if (pendingSubmittedHomeDraftRef.current[submittedHomeDraftKey]) {
12347
+ const nextPending = { ...pendingSubmittedHomeDraftRef.current };
12348
+ delete nextPending[submittedHomeDraftKey];
12349
+ pendingSubmittedHomeDraftRef.current = nextPending;
12350
+ }
12339
12351
  });
12340
12352
  },
12341
12353
  [
@@ -12430,10 +12442,15 @@ function useAgentGUINodeController({
12430
12442
  let next = null;
12431
12443
  for (const key of homeDraftKeysToClear) {
12432
12444
  const existing = current[key];
12433
- if (existing && agentComposerDraftHasContent(existing)) {
12434
- next = next ?? { ...current };
12435
- next[key] = emptyAgentComposerDraft();
12445
+ if (!existing || !agentComposerDraftHasContent(existing)) {
12446
+ continue;
12436
12447
  }
12448
+ const pendingSubmitted = pendingSubmittedHomeDraftRef.current[key];
12449
+ if (!pendingSubmitted || !areAgentComposerDraftsEqual(existing, pendingSubmitted)) {
12450
+ continue;
12451
+ }
12452
+ next = next ?? { ...current };
12453
+ next[key] = emptyAgentComposerDraft();
12437
12454
  }
12438
12455
  return next ?? current;
12439
12456
  };
@@ -16306,10 +16323,6 @@ import {
16306
16323
  TooltipContent as TooltipContent4,
16307
16324
  TooltipProvider as TooltipProvider3,
16308
16325
  TooltipTrigger as TooltipTrigger4,
16309
- Select as Select3,
16310
- SelectContent as SelectContent3,
16311
- SelectItem as SelectItem3,
16312
- SelectTrigger as SelectTrigger3,
16313
16326
  NewWorkspaceLinedIcon as NewWorkspaceLinedIcon2,
16314
16327
  ConfirmationDialog,
16315
16328
  ContextMenu,
@@ -17770,28 +17783,34 @@ function resolveSlashCommandsForProvider({
17770
17783
  planSupported = false,
17771
17784
  goalSupported = true,
17772
17785
  browserSupported = false,
17773
- computerSupported = false
17786
+ computerSupported = false,
17787
+ fallbackMode = "provider-default"
17774
17788
  }) {
17789
+ const useProviderDefaults = fallbackMode !== "none";
17790
+ const fallbackCommands = useProviderDefaults ? fallbackCommandsForProvider(provider) : [];
17775
17791
  const mergedEntries = mergeSlashCommands(
17776
17792
  filterUnavailableSlashCommands(commands, {
17777
17793
  compactSupported,
17778
17794
  hasCompactableContext
17779
17795
  }),
17780
- filterUnavailableSlashCommands(fallbackCommandsForProvider(provider), {
17796
+ filterUnavailableSlashCommands(fallbackCommands, {
17781
17797
  compactSupported,
17782
17798
  hasCompactableContext
17783
17799
  })
17784
17800
  );
17785
17801
  const commandEntries = mergedEntries.filter((entry) => {
17786
17802
  const commandName = normalizedCommandName(entry);
17803
+ if (!useProviderDefaults) {
17804
+ return goalSupported !== false || commandName !== "goal";
17805
+ }
17787
17806
  return commandName !== "plan" && (goalSupported !== false || commandName !== "goal") && isSlashPaletteCommandVisible(provider, commandName);
17788
17807
  });
17789
- const planEntries = planSupported && isACPProvider(provider) ? [PLAN_MODE_COMMAND] : [];
17808
+ const planEntries = useProviderDefaults && planSupported && isACPProvider(provider) ? [PLAN_MODE_COMMAND] : [];
17790
17809
  const capabilityEntries = [];
17791
- if (browserSupported) {
17810
+ if (useProviderDefaults && browserSupported) {
17792
17811
  capabilityEntries.push(BROWSER_USE_CAPABILITY_COMMAND);
17793
17812
  }
17794
- if (computerSupported) {
17813
+ if (useProviderDefaults && computerSupported) {
17795
17814
  capabilityEntries.push(COMPUTER_USE_CAPABILITY_COMMAND);
17796
17815
  }
17797
17816
  return [...commandEntries, ...planEntries, ...capabilityEntries];
@@ -22165,6 +22184,7 @@ function AgentComposer({
22165
22184
  usage = null,
22166
22185
  draftContent,
22167
22186
  availableCommands,
22187
+ slashCommandFallbackMode,
22168
22188
  hasCompactableContext = true,
22169
22189
  compactSupported = null,
22170
22190
  availableSkills = EMPTY_PROVIDER_SKILLS,
@@ -22314,7 +22334,8 @@ function AgentComposer({
22314
22334
  planSupported: composerSettings.supportsPlanMode,
22315
22335
  goalSupported: canGoalControl,
22316
22336
  browserSupported: Boolean(composerSettings.supportsBrowser),
22317
- computerSupported: Boolean(composerSettings.supportsComputerUse)
22337
+ computerSupported: Boolean(composerSettings.supportsComputerUse),
22338
+ fallbackMode: slashCommandFallbackMode
22318
22339
  }),
22319
22340
  [
22320
22341
  availableCommands,
@@ -22324,7 +22345,8 @@ function AgentComposer({
22324
22345
  composerSettings.supportsBrowser,
22325
22346
  composerSettings.supportsComputerUse,
22326
22347
  hasCompactableContext,
22327
- provider
22348
+ provider,
22349
+ slashCommandFallbackMode
22328
22350
  ]
22329
22351
  );
22330
22352
  const filteredCommands = useMemo9(
@@ -26039,6 +26061,7 @@ function AgentGUINodeView({
26039
26061
  slashStatusUsageAttempted = false,
26040
26062
  onAgentConfigMenuOpen,
26041
26063
  onAgentUsageRefresh,
26064
+ slashCommandFallbackMode,
26042
26065
  accountMenuState = null,
26043
26066
  previewMode = false,
26044
26067
  onAgentProviderLogin,
@@ -26706,6 +26729,7 @@ function AgentGUINodeView({
26706
26729
  isAgentProviderReady,
26707
26730
  slashStatusLimits,
26708
26731
  slashStatusLimitsLoading,
26732
+ slashCommandFallbackMode,
26709
26733
  onLinkAction,
26710
26734
  onHandoffConversation,
26711
26735
  capabilityMenuState,
@@ -26961,6 +26985,7 @@ var AgentGUIDetailPane = memo2(function AgentGUIDetailPane2({
26961
26985
  isAgentProviderReady,
26962
26986
  slashStatusLimits,
26963
26987
  slashStatusLimitsLoading,
26988
+ slashCommandFallbackMode,
26964
26989
  onLinkAction,
26965
26990
  onHandoffConversation,
26966
26991
  capabilityMenuState,
@@ -27576,6 +27601,7 @@ var AgentGUIDetailPane = memo2(function AgentGUIDetailPane2({
27576
27601
  usage: viewModel.usage,
27577
27602
  draftContent: viewModel.draftContent,
27578
27603
  availableCommands: viewModel.availableCommands,
27604
+ slashCommandFallbackMode,
27579
27605
  hasCompactableContext: viewModel.hasSentUserMessage,
27580
27606
  compactSupported: viewModel.compactSupported,
27581
27607
  availableSkills: viewModel.availableSkills,
@@ -27687,6 +27713,7 @@ var AgentGUIDetailPane = memo2(function AgentGUIDetailPane2({
27687
27713
  sendQueuedPromptNext,
27688
27714
  showPromptImagesUnsupported,
27689
27715
  showStopButton,
27716
+ slashCommandFallbackMode,
27690
27717
  slashStatus,
27691
27718
  submitDisabled,
27692
27719
  submitInteractivePrompt,
@@ -28736,13 +28763,13 @@ function EmptyHeroTitle({
28736
28763
  const providerName = label.slice(providerStart, providerEnd);
28737
28764
  return /* @__PURE__ */ jsxs21(Fragment9, { children: [
28738
28765
  label.slice(0, providerStart),
28739
- canSwitchProvider ? /* @__PURE__ */ jsxs21(
28740
- Select3,
28766
+ canSwitchProvider ? /* @__PURE__ */ jsx34(
28767
+ "select",
28741
28768
  {
28742
28769
  value: selectedProviderTargetId,
28743
- onValueChange: (nextTargetId) => {
28770
+ onChange: (event) => {
28744
28771
  const target = enabledProviderTargets.find(
28745
- (candidate) => candidate.targetId === nextTargetId
28772
+ (candidate) => candidate.targetId === event.currentTarget.value
28746
28773
  );
28747
28774
  if (!target) {
28748
28775
  return;
@@ -28752,48 +28779,17 @@ function EmptyHeroTitle({
28752
28779
  providerTargetId: target.targetId
28753
28780
  });
28754
28781
  },
28755
- children: [
28756
- /* @__PURE__ */ jsx34(
28757
- SelectTrigger3,
28758
- {
28759
- size: "sm",
28760
- "aria-label": providerSelectLabel,
28761
- title: providerSelectLabel,
28762
- className: AgentGUINode_styles_default.emptyHeroProviderSelect,
28763
- children: /* @__PURE__ */ jsx34("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: providerName })
28764
- }
28765
- ),
28766
- /* @__PURE__ */ jsx34(
28767
- SelectContent3,
28768
- {
28769
- align: "center",
28770
- className: cn3(AgentGUINode_styles_default.composerMenuContent, "min-w-[190px]"),
28771
- children: enabledProviderTargets.map((target) => /* @__PURE__ */ jsx34(
28772
- SelectItem3,
28773
- {
28774
- value: target.targetId,
28775
- className: cn3(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
28776
- children: /* @__PURE__ */ jsxs21("span", { className: "flex min-w-0 items-center gap-1.5", children: [
28777
- /* @__PURE__ */ jsx34(
28778
- "img",
28779
- {
28780
- alt: "",
28781
- "aria-hidden": "true",
28782
- className: "size-4 shrink-0 rounded-[4px]",
28783
- src: agentGUIProviderRailIconPresentation(
28784
- target.provider,
28785
- target.iconUrl
28786
- ).iconUrl
28787
- }
28788
- ),
28789
- /* @__PURE__ */ jsx34("span", { className: "min-w-0 truncate", children: target.label })
28790
- ] })
28791
- },
28792
- `${target.provider}:${target.targetId}`
28793
- ))
28794
- }
28795
- )
28796
- ]
28782
+ "aria-label": providerSelectLabel,
28783
+ title: providerSelectLabel,
28784
+ className: AgentGUINode_styles_default.emptyHeroProviderSelect,
28785
+ children: enabledProviderTargets.map((target) => /* @__PURE__ */ jsx34(
28786
+ "option",
28787
+ {
28788
+ value: target.targetId,
28789
+ children: target.label
28790
+ },
28791
+ `${target.provider}:${target.targetId}`
28792
+ ))
28797
28793
  }
28798
28794
  ) : /* @__PURE__ */ jsx34("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: providerName }),
28799
28795
  label.slice(providerEnd)
@@ -32619,7 +32615,7 @@ function composerOverridesByAgentTargetIdEqual(left, right) {
32619
32615
  return true;
32620
32616
  }
32621
32617
  function areAgentGUINodePropsEqual(previous, next) {
32622
- return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.resolveDroppedFileReferences === next.resolveDroppedFileReferences && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveWorkspaceReferenceEntryIconUrl === next.resolveWorkspaceReferenceEntryIconUrl && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onHandoffConversation === next.onHandoffConversation && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.accountMenuState === next.accountMenuState && previous.providerTargets === next.providerTargets && previous.providerTargetsLoading === next.providerTargetsLoading && previous.providerRailAllPresentation?.iconUrl === next.providerRailAllPresentation?.iconUrl && previous.renderSidebarFooter === next.renderSidebarFooter && previous.providerRailMode === next.providerRailMode && previous.renderProviderRailEmpty === next.renderProviderRailEmpty && previous.renderProviderUnavailableState === next.renderProviderUnavailableState && previous.renderProviderReadinessGateState === next.renderProviderReadinessGateState && previous.comingSoonProviders === next.comingSoonProviders && previous.providerReadinessGates === next.providerReadinessGates && previous.defaultProviderTargetId === next.defaultProviderTargetId && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onRememberComposerDefaults === next.onRememberComposerDefaults && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && previous.workspaceAgentProbes === next.workspaceAgentProbes && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.onAgentProbeRefreshRequest === next.onAgentProbeRefreshRequest && previous.providerAuthAccountLabels === next.providerAuthAccountLabels && previous.managedAgentsState === next.managedAgentsState && previous.contextMentionProviders === next.contextMentionProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.composerFocusRequestSequence === next.composerFocusRequestSequence && previous.newConversationRequestSequence === next.newConversationRequestSequence && previous.openSessionRequest === next.openSessionRequest && previous.prefillPromptRequest === next.prefillPromptRequest;
32618
+ return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.resolveDroppedFileReferences === next.resolveDroppedFileReferences && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveWorkspaceReferenceEntryIconUrl === next.resolveWorkspaceReferenceEntryIconUrl && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onHandoffConversation === next.onHandoffConversation && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.accountMenuState === next.accountMenuState && previous.providerTargets === next.providerTargets && previous.providerTargetsLoading === next.providerTargetsLoading && previous.providerRailAllPresentation?.iconUrl === next.providerRailAllPresentation?.iconUrl && previous.slashCommandFallbackMode === next.slashCommandFallbackMode && previous.renderSidebarFooter === next.renderSidebarFooter && previous.providerRailMode === next.providerRailMode && previous.renderProviderRailEmpty === next.renderProviderRailEmpty && previous.renderProviderUnavailableState === next.renderProviderUnavailableState && previous.renderProviderReadinessGateState === next.renderProviderReadinessGateState && previous.comingSoonProviders === next.comingSoonProviders && previous.providerReadinessGates === next.providerReadinessGates && previous.defaultProviderTargetId === next.defaultProviderTargetId && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onRememberComposerDefaults === next.onRememberComposerDefaults && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && previous.workspaceAgentProbes === next.workspaceAgentProbes && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.onAgentProbeRefreshRequest === next.onAgentProbeRefreshRequest && previous.providerAuthAccountLabels === next.providerAuthAccountLabels && previous.managedAgentsState === next.managedAgentsState && previous.contextMentionProviders === next.contextMentionProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.composerFocusRequestSequence === next.composerFocusRequestSequence && previous.newConversationRequestSequence === next.newConversationRequestSequence && previous.openSessionRequest === next.openSessionRequest && previous.prefillPromptRequest === next.prefillPromptRequest;
32623
32619
  }
32624
32620
  var AgentGUINode = memo3(function AgentGUINode2({
32625
32621
  nodeId,
@@ -32650,6 +32646,7 @@ var AgentGUINode = memo3(function AgentGUINode2({
32650
32646
  providerTargets,
32651
32647
  providerTargetsLoading = false,
32652
32648
  providerRailAllPresentation = null,
32649
+ slashCommandFallbackMode = "provider-default",
32653
32650
  providerRailMode = "catalog",
32654
32651
  renderProviderRailEmpty,
32655
32652
  renderProviderUnavailableState,
@@ -33708,6 +33705,7 @@ var AgentGUINode = memo3(function AgentGUINode2({
33708
33705
  renderProviderUnavailableState,
33709
33706
  renderProviderReadinessGateState,
33710
33707
  providerRailAllPresentation,
33708
+ slashCommandFallbackMode,
33711
33709
  actions: viewActions,
33712
33710
  isActive,
33713
33711
  composerFocusRequestSequence,