@tutti-os/agent-gui 0.0.96 → 0.0.97

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 (45) hide show
  1. package/dist/agent-conversation/index.js +6 -6
  2. package/dist/agent-gui.js +13 -13
  3. package/dist/agent-message-center/index.js +6 -6
  4. package/dist/app/renderer/agentactivity.css +0 -7
  5. package/dist/{chunk-E4HQUTM3.js → chunk-3EAANCKF.js} +2 -2
  6. package/dist/{chunk-AGT7MUTV.js → chunk-3RYZYA72.js} +4 -4
  7. package/dist/{chunk-3XXBDYAI.js → chunk-4VBKQY24.js} +3 -3
  8. package/dist/{chunk-O3Q5SIJH.js → chunk-4YVGHJIE.js} +7 -115
  9. package/dist/chunk-4YVGHJIE.js.map +1 -0
  10. package/dist/{chunk-QVBF5BN5.js → chunk-74CPYRWJ.js} +2 -2
  11. package/dist/{chunk-JKIZA7EJ.js → chunk-AAFTWZV7.js} +5 -5
  12. package/dist/{chunk-WMNS4MAQ.js → chunk-AO2FDYAL.js} +3 -3
  13. package/dist/{chunk-WKSFPJHZ.js → chunk-BIS4QRX7.js} +104 -71
  14. package/dist/chunk-BIS4QRX7.js.map +1 -0
  15. package/dist/{chunk-W6WAGPMD.js → chunk-K2NURZ7V.js} +5 -1
  16. package/dist/chunk-K2NURZ7V.js.map +1 -0
  17. package/dist/{chunk-3Y3F7CS5.js → chunk-NRJEKWLY.js} +2 -2
  18. package/dist/{chunk-XPFHJMZP.js → chunk-P2BCMPTX.js} +3 -3
  19. package/dist/{chunk-2HJEOO7W.js → chunk-SQTSLCMV.js} +10 -40
  20. package/dist/chunk-SQTSLCMV.js.map +1 -0
  21. package/dist/{chunk-4PQPJ5OY.js → chunk-XGGKHIQA.js} +2 -2
  22. package/dist/{chunk-H5F3QSCF.js → chunk-Y57VNTVM.js} +2 -2
  23. package/dist/context-mention-palette/index.js +8 -8
  24. package/dist/i18n/index.d.ts +4 -0
  25. package/dist/i18n/index.js +2 -2
  26. package/dist/index.js +13 -13
  27. package/dist/mention-search.js +6 -6
  28. package/dist/workbench/index.js +3 -3
  29. package/dist/workbench/sessionTitle.js +3 -3
  30. package/dist/workspace-agent-generated-files.js +4 -4
  31. package/package.json +14 -14
  32. package/dist/chunk-2HJEOO7W.js.map +0 -1
  33. package/dist/chunk-O3Q5SIJH.js.map +0 -1
  34. package/dist/chunk-W6WAGPMD.js.map +0 -1
  35. package/dist/chunk-WKSFPJHZ.js.map +0 -1
  36. /package/dist/{chunk-E4HQUTM3.js.map → chunk-3EAANCKF.js.map} +0 -0
  37. /package/dist/{chunk-AGT7MUTV.js.map → chunk-3RYZYA72.js.map} +0 -0
  38. /package/dist/{chunk-3XXBDYAI.js.map → chunk-4VBKQY24.js.map} +0 -0
  39. /package/dist/{chunk-QVBF5BN5.js.map → chunk-74CPYRWJ.js.map} +0 -0
  40. /package/dist/{chunk-JKIZA7EJ.js.map → chunk-AAFTWZV7.js.map} +0 -0
  41. /package/dist/{chunk-WMNS4MAQ.js.map → chunk-AO2FDYAL.js.map} +0 -0
  42. /package/dist/{chunk-3Y3F7CS5.js.map → chunk-NRJEKWLY.js.map} +0 -0
  43. /package/dist/{chunk-XPFHJMZP.js.map → chunk-P2BCMPTX.js.map} +0 -0
  44. /package/dist/{chunk-4PQPJ5OY.js.map → chunk-XGGKHIQA.js.map} +0 -0
  45. /package/dist/{chunk-H5F3QSCF.js.map → chunk-Y57VNTVM.js.map} +0 -0
@@ -15,7 +15,7 @@ import {
15
15
  formatAgentMentionMarkdown,
16
16
  mentionItemToAttrs,
17
17
  parseAgentMentionMarkdown
18
- } from "./chunk-O3Q5SIJH.js";
18
+ } from "./chunk-4YVGHJIE.js";
19
19
  import {
20
20
  fileChangeCountFromChanges,
21
21
  fileChangeEntriesFromChanges,
@@ -39,21 +39,21 @@ import {
39
39
  resolveWorkspaceFilePathCandidate,
40
40
  resolveWorkspaceLinkAction,
41
41
  useAgentTargetPresentations
42
- } from "./chunk-2HJEOO7W.js";
42
+ } from "./chunk-SQTSLCMV.js";
43
43
  import {
44
44
  useOptionalAgentActivityRuntime,
45
45
  useOptionalAgentHostApi
46
46
  } from "./chunk-MASXZENX.js";
47
47
  import {
48
48
  workspaceAgentProviderLabel
49
- } from "./chunk-H5F3QSCF.js";
49
+ } from "./chunk-Y57VNTVM.js";
50
50
  import {
51
51
  normalizeAgentTitleText
52
52
  } from "./chunk-GCBDIQDX.js";
53
53
  import {
54
54
  getActiveUiLanguage,
55
55
  translate
56
- } from "./chunk-E4HQUTM3.js";
56
+ } from "./chunk-3EAANCKF.js";
57
57
 
58
58
  // shared/imageGenerationTool.ts
59
59
  var KNOWN_IMAGE_GENERATION_TOOL_NAMES = /* @__PURE__ */ new Set([
@@ -15335,4 +15335,4 @@ export {
15335
15335
  AgentConversationFlow,
15336
15336
  useProjectedAgentConversation
15337
15337
  };
15338
- //# sourceMappingURL=chunk-JKIZA7EJ.js.map
15338
+ //# sourceMappingURL=chunk-AAFTWZV7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeAgentSessionMentionTitle
3
- } from "./chunk-O3Q5SIJH.js";
3
+ } from "./chunk-4YVGHJIE.js";
4
4
  import {
5
5
  resolveAgentMentionFileThumbnailUrl
6
6
  } from "./chunk-LUGELG5V.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-MASXZENX.js";
13
13
  import {
14
14
  translate
15
- } from "./chunk-E4HQUTM3.js";
15
+ } from "./chunk-3EAANCKF.js";
16
16
 
17
17
  // agent-gui/agentGuiNode/AgentMentionLabels.ts
18
18
  function agentMentionGroupLabel(groupId) {
@@ -1787,4 +1787,4 @@ export {
1787
1787
  AgentMentionSearchController,
1788
1788
  preloadAgentMentionBrowse
1789
1789
  };
1790
- //# sourceMappingURL=chunk-WMNS4MAQ.js.map
1790
+ //# sourceMappingURL=chunk-AO2FDYAL.js.map
@@ -20,7 +20,7 @@ import {
20
20
  resolveAgentGUIExplicitConversationTitle,
21
21
  resolveAgentGUIProviderDisplayLabel,
22
22
  resolveAgentGUIProviderIdentity
23
- } from "./chunk-4PQPJ5OY.js";
23
+ } from "./chunk-XGGKHIQA.js";
24
24
  import {
25
25
  resolveAgentGuiWorkbenchProviderLabel
26
26
  } from "./chunk-L3GMMGRS.js";
@@ -64,14 +64,14 @@ import {
64
64
  toLocalShortDateTime,
65
65
  updateAgentComposerDraft,
66
66
  useProjectedAgentConversation
67
- } from "./chunk-JKIZA7EJ.js";
67
+ } from "./chunk-AAFTWZV7.js";
68
68
  import {
69
69
  openAgentEnvPanel
70
70
  } from "./chunk-7BXWPI4F.js";
71
71
  import {
72
72
  AgentFileMentionPalette,
73
73
  agentMentionItemKey
74
- } from "./chunk-AGT7MUTV.js";
74
+ } from "./chunk-3RYZYA72.js";
75
75
  import {
76
76
  normalizeAgentGUIAgents,
77
77
  projectAgentGUIAgentsToInternalTargets
@@ -80,10 +80,10 @@ import {
80
80
  AGENT_MENTION_FILTER_TAB_ORDER,
81
81
  AgentMentionSearchController,
82
82
  DEFAULT_AGENT_MENTION_FILTER
83
- } from "./chunk-WMNS4MAQ.js";
83
+ } from "./chunk-AO2FDYAL.js";
84
84
  import {
85
85
  buildWorkspaceAgentActivityListViewModel
86
- } from "./chunk-3XXBDYAI.js";
86
+ } from "./chunk-4VBKQY24.js";
87
87
  import {
88
88
  AGENT_RICH_TEXT_CARET_ANCHOR,
89
89
  createAgentSessionMarkdownLink,
@@ -93,7 +93,7 @@ import {
93
93
  mentionItemToAttrs,
94
94
  normalizeAgentSessionMentionTitle,
95
95
  parseMentionItemFromHref
96
- } from "./chunk-O3Q5SIJH.js";
96
+ } from "./chunk-4YVGHJIE.js";
97
97
  import {
98
98
  AgentInteractivePromptSurface,
99
99
  PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
@@ -104,7 +104,7 @@ import {
104
104
  latestPlanTurnId,
105
105
  planImplementationPromptFromPlanTurn,
106
106
  useEngineSelector
107
- } from "./chunk-XPFHJMZP.js";
107
+ } from "./chunk-P2BCMPTX.js";
108
108
  import {
109
109
  AgentMessageMarkdown,
110
110
  AgentTargetPresentationProvider,
@@ -113,7 +113,7 @@ import {
113
113
  resolveAgentTargetPresentation,
114
114
  resolveWorkspaceLinkAction,
115
115
  useAgentTargetPresentations
116
- } from "./chunk-2HJEOO7W.js";
116
+ } from "./chunk-SQTSLCMV.js";
117
117
  import {
118
118
  resolveWorkspaceAgentSessionSortTimeUnixMs
119
119
  } from "./chunk-YMXYBG7U.js";
@@ -136,7 +136,7 @@ import {
136
136
  AgentGuiI18nProvider,
137
137
  translate,
138
138
  useTranslation
139
- } from "./chunk-E4HQUTM3.js";
139
+ } from "./chunk-3EAANCKF.js";
140
140
  import {
141
141
  migratedAgentGUIProviderIdentityCatalog,
142
142
  resolveAgentGUIProviderCatalogIdentity,
@@ -2568,13 +2568,6 @@ function resolveAgentGUIConversationSortTimeUnixMs(conversation) {
2568
2568
  }
2569
2569
 
2570
2570
  // agent-gui/agentGuiNode/model/agentGuiConversationModel.ts
2571
- function selectAgentGUIConversationId(conversations, preferredSessionId) {
2572
- const preferred = preferredSessionId?.trim();
2573
- if (preferred && conversations.some((conversation) => conversation.id === preferred)) {
2574
- return preferred;
2575
- }
2576
- return conversations[0]?.id ?? null;
2577
- }
2578
2571
  function mergeAgentGUITimelineItems(left, right) {
2579
2572
  return mergeTimelineItems(left, right);
2580
2573
  }
@@ -3562,7 +3555,7 @@ function sortAgentTargetRefValue(value) {
3562
3555
  var EMPTY_AGENT_GUI_MESSAGES = [];
3563
3556
  var GOAL_CLEAR_PROMPT = "/goal clear";
3564
3557
  function resolveAgentGUIProviderRailTargetSelection(input) {
3565
- return input.activeConversation && matchesAgentGUIConversationSummaryFilter(
3558
+ return input.nextFilter.kind === "agentTarget" && input.activeConversation && matchesAgentGUIConversationSummaryFilter(
3566
3559
  input.activeConversation,
3567
3560
  input.nextFilter
3568
3561
  ) ? "keep-active-conversation" : "open-home-composer";
@@ -5442,6 +5435,12 @@ var ACTIVATION_EXPIRY_MS = 45e3;
5442
5435
  function isPendingNewConversationActivation(activation) {
5443
5436
  return activation?.mode === "new" && (activation.status === "requested" || activation.status === "uncertain");
5444
5437
  }
5438
+ function isPendingNewConversationActivationForSession(activation, agentSessionId) {
5439
+ const normalizedSessionId = agentSessionId?.trim() ?? "";
5440
+ return Boolean(
5441
+ normalizedSessionId && activation?.agentSessionId.trim() === normalizedSessionId && isPendingNewConversationActivation(activation)
5442
+ );
5443
+ }
5445
5444
  function useAgentGUIActivation({
5446
5445
  engine,
5447
5446
  workspaceId,
@@ -5799,7 +5798,6 @@ function useAgentGUIConversationRouting(input) {
5799
5798
  selectConversation,
5800
5799
  sessionEngine,
5801
5800
  setIntent,
5802
- syncConversationListProjection,
5803
5801
  transientConversation,
5804
5802
  workspaceId
5805
5803
  } = input;
@@ -5875,21 +5873,6 @@ function useAgentGUIConversationRouting(input) {
5875
5873
  selectConversation(intent.id, { reloadConversations: false });
5876
5874
  ensureTransientOpenSessionConversation(intent.id);
5877
5875
  return;
5878
- case "resolving": {
5879
- if (resolveId(intent.id)) {
5880
- selectConversation(intent.id, { reloadConversations: false });
5881
- return;
5882
- }
5883
- const fallback = selectAgentGUIConversationId(
5884
- conversations,
5885
- activeConversationIdRef.current
5886
- );
5887
- if (fallback) {
5888
- selectConversation(fallback, { reloadConversations: false });
5889
- } else {
5890
- setIntent({ tag: "home" });
5891
- }
5892
- }
5893
5876
  }
5894
5877
  }, [
5895
5878
  conversationListQuery,
@@ -5900,7 +5883,6 @@ function useAgentGUIConversationRouting(input) {
5900
5883
  openSessionRequest,
5901
5884
  previewMode,
5902
5885
  selectConversation,
5903
- syncConversationListProjection,
5904
5886
  transientConversation
5905
5887
  ]);
5906
5888
  }
@@ -5910,6 +5892,9 @@ import {
5910
5892
  selectLatestActivationForSession
5911
5893
  } from "@tutti-os/agent-activity-core";
5912
5894
  import { useEffect as useEffect4 } from "react";
5895
+ function clearFailedAgentGUIActivationSelection(current, failedAgentSessionId) {
5896
+ return current.lastActiveAgentSessionId?.trim() === failedAgentSessionId.trim() ? { ...current, lastActiveAgentSessionId: null } : current;
5897
+ }
5913
5898
  function useAgentGUIConversationSelectionController(input) {
5914
5899
  const {
5915
5900
  activation,
@@ -5958,7 +5943,10 @@ function useAgentGUIConversationSelectionController(input) {
5958
5943
  setIsComposerHome(true);
5959
5944
  setIntent({ tag: "home" });
5960
5945
  onDataChangeRef.current(
5961
- (current) => current.lastActiveAgentSessionId === null ? current : { ...current, lastActiveAgentSessionId: null }
5946
+ (current) => clearFailedAgentGUIActivationSelection(
5947
+ current,
5948
+ activePendingActivation.agentSessionId
5949
+ )
5962
5950
  );
5963
5951
  setDetailError(
5964
5952
  activePendingActivation.errorMessage || translate("agentHost.agentGui.sessionActivationFailed")
@@ -5999,7 +5987,10 @@ function useAgentGUIConversationSelectionController(input) {
5999
5987
  runtime: agentActivityRuntime,
6000
5988
  workspaceId
6001
5989
  });
6002
- if (previous && !isPendingNewConversationActivation(activePendingActivation)) {
5990
+ if (previous && !isPendingNewConversationActivationForSession(
5991
+ activePendingActivation,
5992
+ previous
5993
+ )) {
6003
5994
  void activation.unactivate(previous);
6004
5995
  }
6005
5996
  setIntent({ tag: "home" });
@@ -6016,7 +6007,7 @@ function useAgentGUIConversationSelectionController(input) {
6016
6007
  if ((current.tag === "active" || current.tag === "requested") && current.id === externalId) {
6017
6008
  return current;
6018
6009
  }
6019
- if (current.tag === "requested" || current.tag === "resolving") {
6010
+ if (current.tag === "requested") {
6020
6011
  return current;
6021
6012
  }
6022
6013
  return { tag: "requested", id: externalId };
@@ -7136,7 +7127,10 @@ function useAgentGUIContinueConversation(input) {
7136
7127
  runtime: current.agentActivityRuntime,
7137
7128
  workspaceId: current.workspaceId
7138
7129
  });
7139
- if (!isPendingNewConversationActivation(current.activePendingActivation)) {
7130
+ if (!isPendingNewConversationActivationForSession(
7131
+ current.activePendingActivation,
7132
+ currentConversationId
7133
+ )) {
7140
7134
  void current.unactivate(currentConversationId);
7141
7135
  }
7142
7136
  current.setIntent({ tag: "home" });
@@ -7554,7 +7548,10 @@ function useAgentGUIConversationHome({
7554
7548
  runtime: agentActivityRuntime,
7555
7549
  workspaceId
7556
7550
  });
7557
- if (previous && !isPendingNewConversationActivation(activePendingActivation)) {
7551
+ if (previous && !isPendingNewConversationActivationForSession(
7552
+ activePendingActivation,
7553
+ previous
7554
+ )) {
7558
7555
  void unactivate(previous);
7559
7556
  }
7560
7557
  setIntent({ tag: "home" });
@@ -10133,8 +10130,9 @@ function useAgentGUIProviderHome(input) {
10133
10130
  );
10134
10131
  }
10135
10132
  const previous = currentInput.activeConversationIdRef.current;
10136
- if (previous && !isPendingNewConversationActivation(
10137
- currentInput.activePendingActivation
10133
+ if (previous && !isPendingNewConversationActivationForSession(
10134
+ currentInput.activePendingActivation,
10135
+ previous
10138
10136
  )) {
10139
10137
  void currentInput.unactivate(previous);
10140
10138
  }
@@ -11734,7 +11732,6 @@ function useAgentGUINodeController({
11734
11732
  selectConversation,
11735
11733
  sessionEngine,
11736
11734
  setIntent,
11737
- syncConversationListProjection,
11738
11735
  transientConversation,
11739
11736
  workspaceId
11740
11737
  });
@@ -25363,7 +25360,10 @@ import {
25363
25360
  useRef as useRef33,
25364
25361
  useState as useState27
25365
25362
  } from "react";
25366
- import { ConfirmationDialog } from "@tutti-os/ui-system";
25363
+ import {
25364
+ Button as SystemButton,
25365
+ ConfirmationDialog
25366
+ } from "@tutti-os/ui-system";
25367
25367
  import { ScrollArea } from "@tutti-os/ui-system/components";
25368
25368
  import { CreateChatIcon as CreateChatIcon2 } from "@tutti-os/ui-system/icons";
25369
25369
 
@@ -25674,15 +25674,12 @@ function resolveConversationProjectUpdatedAtUnixMs(project) {
25674
25674
  }
25675
25675
  return project.updatedAtUnixMs ?? project.lastUsedAtUnixMs ?? project.createdAtUnixMs ?? 0;
25676
25676
  }
25677
- function normalizeConversationProjectPath(path) {
25678
- return path.trim().replaceAll("\\", "/").replace(/\/+$/, "") || "/";
25679
- }
25680
25677
  function normalizeConversationProjectPathCached(path, normalizedPathByPath) {
25681
25678
  const cached = normalizedPathByPath.get(path);
25682
25679
  if (cached !== void 0) {
25683
25680
  return cached;
25684
25681
  }
25685
- const normalized = normalizeConversationProjectPath(path);
25682
+ const normalized = normalizeAgentGUIProjectPath(path);
25686
25683
  normalizedPathByPath.set(path, normalized);
25687
25684
  return normalized;
25688
25685
  }
@@ -25994,6 +25991,7 @@ function projectRuntimeSectionsToConversationRailMemberships(input) {
25994
25991
  label: section.userProject.label,
25995
25992
  lastUsedAtUnixMs: section.userProject.lastUsedAtUnixMs,
25996
25993
  path: section.userProject.path,
25994
+ sectionKey: section.userProject.sectionKey,
25997
25995
  updatedAtUnixMs: section.userProject.updatedAtUnixMs
25998
25996
  } : null;
25999
25997
  result.push({
@@ -26115,7 +26113,7 @@ function conversationSummariesRenderEqual2(left, right) {
26115
26113
  return left.id === right.id && left.agentTargetId === right.agentTargetId && left.provider === right.provider && left.title === right.title && left.titleFallback === right.titleFallback && left.status === right.status && left.cwd === right.cwd && left.pinnedAtUnixMs === right.pinnedAtUnixMs && left.sortTimeUnixMs === right.sortTimeUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.projectionSource === right.projectionSource && left.isImported === right.isImported && left.hasUnreadCompletion === right.hasUnreadCompletion && left.unreadCompletionKey === right.unreadCompletionKey && conversationProjectsRenderEqual2(left.project, right.project);
26116
26114
  }
26117
26115
  function conversationProjectsRenderEqual2(left, right) {
26118
- return left === right || (!left || !right ? !left && !right : left.id === right.id && left.path === right.path && left.label === right.label && left.createdAtUnixMs === right.createdAtUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.lastUsedAtUnixMs === right.lastUsedAtUnixMs);
26116
+ return left === right || (!left || !right ? !left && !right : left.id === right.id && left.path === right.path && left.label === right.label && left.createdAtUnixMs === right.createdAtUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.lastUsedAtUnixMs === right.lastUsedAtUnixMs && left.sectionKey === right.sectionKey);
26119
26117
  }
26120
26118
 
26121
26119
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailSection.tsx
@@ -26632,6 +26630,12 @@ var AgentGUIConversationRailSection = memo6(
26632
26630
  limit: AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE,
26633
26631
  scopeKey: paginationScopeKey
26634
26632
  }));
26633
+ if (visibleItemLimitState.scopeKey !== paginationScopeKey) {
26634
+ setVisibleItemLimitState({
26635
+ limit: AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE,
26636
+ scopeKey: paginationScopeKey
26637
+ });
26638
+ }
26635
26639
  const visibleItemLimit = visibleItemLimitState.scopeKey === paginationScopeKey ? visibleItemLimitState.limit : AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE;
26636
26640
  const pageableItems = section.items.filter(
26637
26641
  (item) => item.projectionSource !== "pending_activation"
@@ -27035,7 +27039,6 @@ var AgentGUIConversationRailPane = memo7(
27035
27039
  sectionAgentTargetFallbackId,
27036
27040
  conversationQuery,
27037
27041
  railQuery,
27038
- railSearch,
27039
27042
  onCreateConversation,
27040
27043
  onSelectConversation,
27041
27044
  onToggleConversationPinned,
@@ -27057,6 +27060,7 @@ var AgentGUIConversationRailPane = memo7(
27057
27060
  const [currentTimeMs, setCurrentTimeMs] = useState27(() => Date.now());
27058
27061
  const [pendingProjectAction, setPendingProjectAction] = useState27(null);
27059
27062
  const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState27(false);
27063
+ const { railSearch } = railQuery;
27060
27064
  const railElementRef = useRef33(null);
27061
27065
  const conversationListRef = useRef33(null);
27062
27066
  const conversationItemElementsRef = useRef33(
@@ -27200,7 +27204,7 @@ var AgentGUIConversationRailPane = memo7(
27200
27204
  userProjects
27201
27205
  ]);
27202
27206
  const groupedConversations = groupedConversationResult.groups;
27203
- const sectionPaginationScopeKey = `${conversationFilter.kind === "agentTarget" ? `${workspaceId}:agentTarget:${conversationFilter.agentTargetId.trim()}` : `${workspaceId}:all`}:search:${conversationQuery.trim()}`;
27207
+ const sectionPaginationScopeKey = `${conversationFilter.kind === "agentTarget" ? `${workspaceId}:agentTarget:${conversationFilter.agentTargetId.trim()}` : `${workspaceId}:all:${sectionAgentTargetFallbackId?.trim() ?? ""}`}:search:${conversationQuery.trim()}`;
27204
27208
  const toggleProjectSectionCollapsed = useCallback43((sectionId) => {
27205
27209
  setCollapsedProjectSectionIds((current) => {
27206
27210
  const next = new Set(current);
@@ -27254,6 +27258,7 @@ var AgentGUIConversationRailPane = memo7(
27254
27258
  300
27255
27259
  );
27256
27260
  const shouldShowConversationEmptyState = !isConversationRailListLoading && groupedConversations.length === 0;
27261
+ const shouldShowConversationSearchError = backendSearchActive && railSearch.failed && railSearch.sessionIds.length === 0;
27257
27262
  const registerConversationItemElement = useCallback43(
27258
27263
  (itemId, element) => {
27259
27264
  if (element) {
@@ -27330,7 +27335,19 @@ var AgentGUIConversationRailPane = memo7(
27330
27335
  {
27331
27336
  label: labels.loadingConversations
27332
27337
  }
27333
- ) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx48("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx48("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : groupedConversations.map((section, sectionIndex) => {
27338
+ ) : shouldShowConversationSearchError ? /* @__PURE__ */ jsxs35("div", { className: AgentGUINode_styles_default.emptyState, children: [
27339
+ /* @__PURE__ */ jsx48("span", { children: labels.searchFailed }),
27340
+ /* @__PURE__ */ jsx48(
27341
+ SystemButton,
27342
+ {
27343
+ type: "button",
27344
+ variant: "outline",
27345
+ size: "sm",
27346
+ onClick: railSearch.retry,
27347
+ children: labels.retrySearch
27348
+ }
27349
+ )
27350
+ ] }) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx48("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx48("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : groupedConversations.map((section, sectionIndex) => {
27334
27351
  const projectPath = section.kind === "project" ? section.project?.path ?? "" : "";
27335
27352
  const projectLabel = section.kind === "project" ? section.label : "";
27336
27353
  const isProjectSection = section.kind === "project";
@@ -27560,8 +27577,7 @@ var AgentGUIConversationRailQueryController = class {
27560
27577
  this.queryState = {
27561
27578
  ...this.queryState,
27562
27579
  pending: this.runtimeSectionsEnabled(),
27563
- reconcilingSessionIds: [],
27564
- resolvedScopeKey: nextScopeKey
27580
+ reconcilingSessionIds: []
27565
27581
  };
27566
27582
  this.emit();
27567
27583
  if (this.attached) this.refreshFirstPages();
@@ -27708,6 +27724,10 @@ var AgentGUIConversationRailQueryController = class {
27708
27724
  this.emit();
27709
27725
  });
27710
27726
  }
27727
+ retrySearchResults() {
27728
+ if (!this.searchQuery || !this.searchEnabled()) return;
27729
+ this.requestSearch();
27730
+ }
27711
27731
  handleEngineState(state) {
27712
27732
  const next = membershipRecords(state);
27713
27733
  if (this.ingestingSessions || !this.runtimeSectionsEnabled()) {
@@ -27742,13 +27762,13 @@ var AgentGUIConversationRailQueryController = class {
27742
27762
  }
27743
27763
  this.pagingRequestSequence += 1;
27744
27764
  const requestSequence = this.pagingRequestSequence;
27765
+ const wasResolvedForScope = this.queryState.resolvedScopeKey === scopeKey && this.queryState.sections !== null;
27745
27766
  this.cancelPagingRequests(false);
27746
27767
  const abortController = new AbortController();
27747
27768
  this.pagingAbortControllers.set("__first_pages__", abortController);
27748
27769
  this.queryState = {
27749
27770
  ...this.queryState,
27750
- pending: true,
27751
- resolvedScopeKey: scopeKey
27771
+ pending: true
27752
27772
  };
27753
27773
  this.emit();
27754
27774
  void listSections({
@@ -27787,9 +27807,13 @@ var AgentGUIConversationRailQueryController = class {
27787
27807
  if (abortController.signal.aborted || requestSequence !== this.pagingRequestSequence || scopeKey !== this.railSectionQueryKey) {
27788
27808
  return;
27789
27809
  }
27790
- this.queryState = {
27810
+ this.queryState = wasResolvedForScope ? {
27791
27811
  ...this.queryState,
27792
27812
  pending: false,
27813
+ reconcilingSessionIds: []
27814
+ } : {
27815
+ pending: false,
27816
+ reconcilingSessionIds: [],
27793
27817
  resolvedScopeKey: scopeKey,
27794
27818
  sectionPageStates: /* @__PURE__ */ new Map(),
27795
27819
  sections: []
@@ -28020,7 +28044,8 @@ function useAgentGUIConversationRailQuery({
28020
28044
  loadMoreSectionConversations: (section) => controller.loadMoreSectionConversations(section),
28021
28045
  railSearch: {
28022
28046
  ...querySnapshot.railSearch,
28023
- loadMore: () => controller.loadMoreSearchResults()
28047
+ loadMore: () => controller.loadMoreSearchResults(),
28048
+ retry: () => controller.retrySearchResults()
28024
28049
  },
28025
28050
  runtimeRailConversations
28026
28051
  }),
@@ -28051,7 +28076,6 @@ var AgentGUIConversationRailController = memo8(
28051
28076
  ...props,
28052
28077
  conversationQuery,
28053
28078
  railQuery,
28054
- railSearch: railQuery.railSearch,
28055
28079
  onConversationQueryChange: setConversationQuery
28056
28080
  }
28057
28081
  );
@@ -31630,6 +31654,26 @@ function buildAgentHomeSuggestions(t, workspaceId, workspaceAppIcons, disabled =
31630
31654
  return categories.filter((category) => !disabledIds.has(category.id));
31631
31655
  }
31632
31656
 
31657
+ // agent-gui/agentGuiNode/view/agentGUIConversationRailLabels.ts
31658
+ function agentGUIConversationRailLabels(t) {
31659
+ return {
31660
+ conversationUnavailable: t("agentHost.agentGui.conversationUnavailable"),
31661
+ emptyProjectConversations: t(
31662
+ "agentHost.agentGui.emptyProjectConversations"
31663
+ ),
31664
+ loadingConversations: t("agentHost.agentGui.loadingConversations"),
31665
+ noConversations: t("agentHost.agentGui.noConversations"),
31666
+ retrySearch: t("agentHost.agentGui.retrySearch"),
31667
+ searchFailed: t("agentHost.agentGui.searchFailed"),
31668
+ searchNoConversations: t("agentHost.agentGui.searchNoConversations"),
31669
+ searchPlaceholder: t("agentHost.agentGui.searchPlaceholder"),
31670
+ sectionConversations: t("agentHost.agentGui.sectionConversations"),
31671
+ sectionPinned: t("agentHost.agentGui.sectionPinned"),
31672
+ selectConversation: t("agentHost.agentGui.selectConversation"),
31673
+ startConversation: t("agentHost.agentGui.startConversation")
31674
+ };
31675
+ }
31676
+
31633
31677
  // agent-gui/agentGuiNode/view/agentGUIProviderManagerLabels.ts
31634
31678
  function agentGUIProviderManagerLabels(t) {
31635
31679
  return {
@@ -31942,10 +31986,7 @@ function useAgentGUIViewLabels(input) {
31942
31986
  agentSettingsMenu: t("agentHost.agentGui.agentSettingsMenu"),
31943
31987
  agentEnvSetup: t("agentHost.agentGui.agentEnvSetup"),
31944
31988
  ...agentGUIProviderManagerLabels(t),
31945
- noConversations: t("agentHost.agentGui.noConversations"),
31946
- emptyProjectConversations: t(
31947
- "agentHost.agentGui.emptyProjectConversations"
31948
- ),
31989
+ ...agentGUIConversationRailLabels(t),
31949
31990
  conversationFilterAll: t("agentHost.agentGui.conversationFilterAll"),
31950
31991
  conversationFilterCodex: t("agentHost.agentGui.conversationFilterCodex"),
31951
31992
  conversationFilterClaudeCode: t(
@@ -31953,17 +31994,9 @@ function useAgentGUIViewLabels(input) {
31953
31994
  ),
31954
31995
  conversationFilterTutti: t("agentHost.agentGui.conversationFilterTutti"),
31955
31996
  providerSwitchLabel: t("agentHost.agentGui.providerSwitchLabel"),
31956
- startConversation: t("agentHost.agentGui.startConversation"),
31957
- selectConversation: t("agentHost.agentGui.selectConversation"),
31958
- loadingConversations: t("agentHost.agentGui.loadingConversations"),
31959
31997
  loadingConversation: t("agentHost.agentGui.loadingConversation"),
31960
31998
  scrollToBottom: t("agentHost.agentGui.scrollToBottom"),
31961
- searchNoConversations: t("agentHost.agentGui.searchNoConversations"),
31962
- conversationUnavailable: t("agentHost.agentGui.conversationUnavailable"),
31963
31999
  fallbackAgentTitle,
31964
- searchPlaceholder: t("agentHost.agentGui.searchPlaceholder"),
31965
- sectionPinned: t("agentHost.agentGui.sectionPinned"),
31966
- sectionConversations: t("agentHost.agentGui.sectionConversations"),
31967
32000
  sectionToday: t("agentHost.agentGui.sectionToday"),
31968
32001
  sectionYesterday: t("agentHost.agentGui.sectionYesterday"),
31969
32002
  sectionEarlier: t("agentHost.agentGui.sectionEarlier"),
@@ -33051,4 +33084,4 @@ export {
33051
33084
  resolveAgentGUIAgentTarget,
33052
33085
  AgentGUI
33053
33086
  };
33054
- //# sourceMappingURL=chunk-WKSFPJHZ.js.map
33087
+ //# sourceMappingURL=chunk-BIS4QRX7.js.map