@agent-native/toolkit 0.217.0 → 0.218.0

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 (187) hide show
  1. package/agent-native.eject.json +21 -0
  2. package/dist/app/agent-page/AgentContextTab.d.ts.map +1 -1
  3. package/dist/app/agent-page/AgentContextTab.js +1 -0
  4. package/dist/app/agent-page/AgentContextTab.js.map +1 -1
  5. package/dist/app/agentkit/react/components.d.ts.map +1 -1
  6. package/dist/app/agentkit/react/components.js +1 -1
  7. package/dist/app/agentkit/react/components.js.map +1 -1
  8. package/dist/app/agentkit/react/context.d.ts +4 -1
  9. package/dist/app/agentkit/react/context.d.ts.map +1 -1
  10. package/dist/app/agentkit/react/context.js +3 -1
  11. package/dist/app/agentkit/react/context.js.map +1 -1
  12. package/dist/app/agentkit/react/data-chart-layout.d.ts +30 -0
  13. package/dist/app/agentkit/react/data-chart-layout.d.ts.map +1 -0
  14. package/dist/app/agentkit/react/data-chart-layout.js +2 -0
  15. package/dist/app/agentkit/react/data-chart-layout.js.map +1 -0
  16. package/dist/app/agentkit/react/index.d.ts +1 -0
  17. package/dist/app/agentkit/react/index.d.ts.map +1 -1
  18. package/dist/app/agentkit/react/index.js +1 -0
  19. package/dist/app/agentkit/react/index.js.map +1 -1
  20. package/dist/app/agentkit/react/root.d.ts +3 -1
  21. package/dist/app/agentkit/react/root.d.ts.map +1 -1
  22. package/dist/app/agentkit/react/root.js +2 -2
  23. package/dist/app/agentkit/react/root.js.map +1 -1
  24. package/dist/app/agentkit/react/styles.css +18 -0
  25. package/dist/app/agentkit/react/transcript-layout.d.ts +2 -0
  26. package/dist/app/agentkit/react/transcript-layout.d.ts.map +1 -1
  27. package/dist/app/agentkit/react/transcript-layout.js.map +1 -1
  28. package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
  29. package/dist/app/chat/AgentKitAssistantChat.js +2 -2
  30. package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
  31. package/dist/app/chat/MultiTabAssistantChat.d.ts.map +1 -1
  32. package/dist/app/chat/MultiTabAssistantChat.js +51 -93
  33. package/dist/app/chat/MultiTabAssistantChat.js.map +1 -1
  34. package/dist/app/chat/agentkit-chat/action-widget.d.ts.map +1 -1
  35. package/dist/app/chat/agentkit-chat/action-widget.js +3 -1
  36. package/dist/app/chat/agentkit-chat/action-widget.js.map +1 -1
  37. package/dist/app/chat/agentkit-chat/rail.d.ts +1 -1
  38. package/dist/app/chat/agentkit-chat/rail.d.ts.map +1 -1
  39. package/dist/app/chat/agentkit-chat/rail.js +1 -1
  40. package/dist/app/chat/agentkit-chat/rail.js.map +1 -1
  41. package/dist/app/chat/chat/index.d.ts +2 -1
  42. package/dist/app/chat/chat/index.d.ts.map +1 -1
  43. package/dist/app/chat/chat/index.js +1 -1
  44. package/dist/app/chat/chat/index.js.map +1 -1
  45. package/dist/app/chat/chat/surface-types.d.ts +3 -0
  46. package/dist/app/chat/chat/surface-types.d.ts.map +1 -1
  47. package/dist/app/chat/chat/surface-types.js.map +1 -1
  48. package/dist/app/chat/chat/tool-call-display.d.ts +3 -1
  49. package/dist/app/chat/chat/tool-call-display.d.ts.map +1 -1
  50. package/dist/app/chat/chat/tool-call-display.js +4 -3
  51. package/dist/app/chat/chat/tool-call-display.js.map +1 -1
  52. package/dist/app/chat/chat/tool-render-registry.d.ts +2 -0
  53. package/dist/app/chat/chat/tool-render-registry.d.ts.map +1 -1
  54. package/dist/app/chat/chat/tool-render-registry.js.map +1 -1
  55. package/dist/app/chat/chat/widgets/DataChartRenderer.d.ts +3 -1
  56. package/dist/app/chat/chat/widgets/DataChartRenderer.d.ts.map +1 -1
  57. package/dist/app/chat/chat/widgets/DataChartRenderer.js +116 -26
  58. package/dist/app/chat/chat/widgets/DataChartRenderer.js.map +1 -1
  59. package/dist/app/chat/chat/widgets/DataChartWidget.d.ts +3 -1
  60. package/dist/app/chat/chat/widgets/DataChartWidget.d.ts.map +1 -1
  61. package/dist/app/chat/chat/widgets/DataChartWidget.js +21 -2
  62. package/dist/app/chat/chat/widgets/DataChartWidget.js.map +1 -1
  63. package/dist/app/chat/chat/widgets/DataInsightsWidget.d.ts +3 -1
  64. package/dist/app/chat/chat/widgets/DataInsightsWidget.d.ts.map +1 -1
  65. package/dist/app/chat/chat/widgets/DataInsightsWidget.js +2 -2
  66. package/dist/app/chat/chat/widgets/DataInsightsWidget.js.map +1 -1
  67. package/dist/app/chat/chat/widgets/DataWidgetDisplayControls.d.ts +1 -1
  68. package/dist/app/chat/chat/widgets/DataWidgetDisplayControls.d.ts.map +1 -1
  69. package/dist/app/chat/chat/widgets/DataWidgetDisplayControls.js +3 -1
  70. package/dist/app/chat/chat/widgets/DataWidgetDisplayControls.js.map +1 -1
  71. package/dist/app/chat/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
  72. package/dist/app/chat/chat/widgets/builtin-tool-renderers.js +2 -2
  73. package/dist/app/chat/chat/widgets/builtin-tool-renderers.js.map +1 -1
  74. package/dist/app/chat/chat-first/chat-history.d.ts +13 -2
  75. package/dist/app/chat/chat-first/chat-history.d.ts.map +1 -1
  76. package/dist/app/chat/chat-first/chat-history.js +24 -3
  77. package/dist/app/chat/chat-first/chat-history.js.map +1 -1
  78. package/dist/app/chat/ownership-history/ChatOwnerAvatar.d.ts +6 -0
  79. package/dist/app/chat/ownership-history/ChatOwnerAvatar.d.ts.map +1 -0
  80. package/dist/app/chat/ownership-history/ChatOwnerAvatar.js +9 -0
  81. package/dist/app/chat/ownership-history/ChatOwnerAvatar.js.map +1 -0
  82. package/dist/app/chat/ownership-history/index.d.ts +11 -0
  83. package/dist/app/chat/ownership-history/index.d.ts.map +1 -0
  84. package/dist/app/chat/ownership-history/index.js +22 -0
  85. package/dist/app/chat/ownership-history/index.js.map +1 -0
  86. package/dist/app/chat/ownership-history/rows.d.ts +27 -0
  87. package/dist/app/chat/ownership-history/rows.d.ts.map +1 -0
  88. package/dist/app/chat/ownership-history/rows.js +101 -0
  89. package/dist/app/chat/ownership-history/rows.js.map +1 -0
  90. package/dist/app/chat/ownership-history/useOwnershipChatHistory.d.ts +52 -0
  91. package/dist/app/chat/ownership-history/useOwnershipChatHistory.d.ts.map +1 -0
  92. package/dist/app/chat/ownership-history/useOwnershipChatHistory.js +497 -0
  93. package/dist/app/chat/ownership-history/useOwnershipChatHistory.js.map +1 -0
  94. package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
  95. package/dist/app/i18n/catalogs/ar-SA.js +3 -0
  96. package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
  97. package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
  98. package/dist/app/i18n/catalogs/de-DE.js +3 -0
  99. package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
  100. package/dist/app/i18n/catalogs/en-US.d.ts +3 -0
  101. package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
  102. package/dist/app/i18n/catalogs/en-US.js +3 -0
  103. package/dist/app/i18n/catalogs/en-US.js.map +1 -1
  104. package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
  105. package/dist/app/i18n/catalogs/es-ES.js +3 -0
  106. package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
  107. package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
  108. package/dist/app/i18n/catalogs/fr-FR.js +3 -0
  109. package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
  110. package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
  111. package/dist/app/i18n/catalogs/hi-IN.js +3 -0
  112. package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
  113. package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
  114. package/dist/app/i18n/catalogs/ja-JP.js +3 -0
  115. package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
  116. package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
  117. package/dist/app/i18n/catalogs/ko-KR.js +3 -0
  118. package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
  119. package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
  120. package/dist/app/i18n/catalogs/pt-BR.js +3 -0
  121. package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
  122. package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
  123. package/dist/app/i18n/catalogs/zh-CN.js +3 -0
  124. package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
  125. package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
  126. package/dist/app/i18n/catalogs/zh-TW.js +3 -0
  127. package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
  128. package/dist/app/sharing/ShareButton.d.ts.map +1 -1
  129. package/dist/app/sharing/ShareButton.js +9 -8
  130. package/dist/app/sharing/ShareButton.js.map +1 -1
  131. package/dist/chat-history/ChatHistoryList.d.ts +16 -3
  132. package/dist/chat-history/ChatHistoryList.d.ts.map +1 -1
  133. package/dist/chat-history/ChatHistoryList.js +25 -15
  134. package/dist/chat-history/ChatHistoryList.js.map +1 -1
  135. package/dist/chat-history.css +109 -9
  136. package/package.json +10 -3
  137. package/src/app/agent-page/AgentContextTab.spec.ts +50 -2
  138. package/src/app/agent-page/AgentContextTab.tsx +1 -0
  139. package/src/app/agentkit/react/components.interaction.spec.tsx +2 -0
  140. package/src/app/agentkit/react/components.spec.tsx +4 -1
  141. package/src/app/agentkit/react/components.tsx +3 -0
  142. package/src/app/agentkit/react/context.tsx +6 -0
  143. package/src/app/agentkit/react/data-chart-layout.ts +25 -0
  144. package/src/app/agentkit/react/index.ts +1 -0
  145. package/src/app/agentkit/react/root.tsx +4 -0
  146. package/src/app/agentkit/react/styles.css +18 -0
  147. package/src/app/agentkit/react/transcript-layout.ts +2 -0
  148. package/src/app/chat/AgentKitAssistantChat.tsx +2 -0
  149. package/src/app/chat/MultiTabAssistantChat.spec.tsx +270 -3
  150. package/src/app/chat/MultiTabAssistantChat.tsx +79 -156
  151. package/src/app/chat/agentkit-chat/action-widget.tsx +3 -0
  152. package/src/app/chat/agentkit-chat/rail.ts +11 -0
  153. package/src/app/chat/chat/index.ts +10 -0
  154. package/src/app/chat/chat/surface-types.ts +3 -0
  155. package/src/app/chat/chat/tool-call-display.spec.tsx +29 -0
  156. package/src/app/chat/chat/tool-call-display.tsx +7 -0
  157. package/src/app/chat/chat/tool-render-registry.tsx +3 -0
  158. package/src/app/chat/chat/widgets/DataChartRenderer.spec.tsx +377 -17
  159. package/src/app/chat/chat/widgets/DataChartRenderer.tsx +232 -63
  160. package/src/app/chat/chat/widgets/DataChartWidget.spec.tsx +67 -0
  161. package/src/app/chat/chat/widgets/DataChartWidget.tsx +39 -5
  162. package/src/app/chat/chat/widgets/DataInsightsWidget.tsx +13 -2
  163. package/src/app/chat/chat/widgets/DataWidgetDisplayControls.tsx +6 -4
  164. package/src/app/chat/chat/widgets/builtin-tool-renderers.tsx +5 -1
  165. package/src/app/chat/chat-first/chat-history.spec.tsx +79 -0
  166. package/src/app/chat/chat-first/chat-history.tsx +75 -22
  167. package/src/app/chat/ownership-history/ChatOwnerAvatar.tsx +27 -0
  168. package/src/app/chat/ownership-history/index.tsx +67 -0
  169. package/src/app/chat/ownership-history/ownership-history.spec.tsx +3146 -0
  170. package/src/app/chat/ownership-history/rows.ts +156 -0
  171. package/src/app/chat/ownership-history/useOwnershipChatHistory.ts +709 -0
  172. package/src/app/i18n/catalogs/ar-SA.ts +3 -0
  173. package/src/app/i18n/catalogs/de-DE.ts +3 -0
  174. package/src/app/i18n/catalogs/en-US.ts +3 -0
  175. package/src/app/i18n/catalogs/es-ES.ts +3 -0
  176. package/src/app/i18n/catalogs/fr-FR.ts +3 -0
  177. package/src/app/i18n/catalogs/hi-IN.ts +3 -0
  178. package/src/app/i18n/catalogs/ja-JP.ts +3 -0
  179. package/src/app/i18n/catalogs/ko-KR.ts +3 -0
  180. package/src/app/i18n/catalogs/pt-BR.ts +3 -0
  181. package/src/app/i18n/catalogs/zh-CN.ts +3 -0
  182. package/src/app/i18n/catalogs/zh-TW.ts +3 -0
  183. package/src/app/sharing/ShareButton.tsx +12 -10
  184. package/src/chat-history/ChatHistoryList.spec.tsx +51 -0
  185. package/src/chat-history/ChatHistoryList.tsx +87 -26
  186. package/src/chat-history/ChatHistoryRailSections.spec.tsx +12 -4
  187. package/src/chat-history.css +109 -9
@@ -1 +1 @@
1
- {"version":3,"file":"MultiTabAssistantChat.d.ts","sourceRoot":"","sources":["../../../src/app/chat/MultiTabAssistantChat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiTabAssistantChat.d.ts","sourceRoot":"","sources":["../../../src/app/chat/MultiTabAssistantChat.tsx"],"names":[],"mappings":"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"}
@@ -17,10 +17,11 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@agen
17
17
  import { cn } from "@agent-native/toolkit/utils";
18
18
  import { IconPlus, IconHistory, IconX } from "@tabler/icons-react";
19
19
  import { useState, useRef, useEffect, useLayoutEffect, useCallback, } from "react";
20
+ import { toast } from "sonner";
20
21
  import { getAgentChatNavigationKey, } from "./agent-sidebar-events.js";
21
22
  import { AgentKitAssistantChat } from "./AgentKitAssistantChat.js";
22
- import { ChatHistoryList, } from "./chat/ChatHistoryList.js";
23
23
  import { fallbackChatTitle } from "./fallback-chat-title.js";
24
+ import { OwnershipChatHistoryRail, ownDraftRows, useOwnershipChatHistory, } from "./ownership-history/index.js";
24
25
  const PREFILL_CONTEXT_KEY = "agent-chat-prefill-context";
25
26
  const useBrowserLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
26
27
  /** The single path that hands a queued send to a mounted chat ref. */
@@ -277,109 +278,49 @@ function formatThreadTime(ts, locale, yesterdayLabel) {
277
278
  return d.toLocaleDateString(locale, { weekday: "short" });
278
279
  return d.toLocaleDateString(locale, { month: "short", day: "numeric" });
279
280
  }
280
- function HistoryPopover({ threads, openTabIds, activeThreadId, hasMoreThreads = false, isLoadingMoreThreads = false, loadError, onSelect, onClose, onLoadMore, onSearch, onTogglePin, onRename, popoverAlign = "end", }) {
281
+ function HistoryPopover({ apiUrl, scope, localMineRows, openTabIds, activeThreadId, onSelect, onNewChat, onClose, onTogglePin, onRename, getThreadUrl, popoverAlign = "end", }) {
281
282
  const t = useT();
282
283
  const locale = useOptionalLocale()?.locale ?? DEFAULT_LOCALE;
283
284
  const [search, setSearch] = useState("");
284
- const [searchResults, setSearchResults] = useState(null);
285
- const [isSearching, setIsSearching] = useState(false);
285
+ const [query, setQuery] = useState("");
286
286
  const inputRef = useRef(null);
287
- const debounceRef = useRef(undefined);
288
287
  useEffect(() => {
289
- inputRef.current?.focus();
290
- }, []);
291
- // Debounced server-side search
292
- const searchIdRef = useRef(0);
293
- useEffect(() => {
294
- if (debounceRef.current)
295
- clearTimeout(debounceRef.current);
296
- const q = search.trim();
297
- if (!q) {
298
- searchIdRef.current++;
299
- setSearchResults(null);
300
- setIsSearching(false);
301
- return;
302
- }
303
- setIsSearching(true);
304
- const id = ++searchIdRef.current;
305
- debounceRef.current = setTimeout(async () => {
306
- if (onSearch) {
307
- const results = await onSearch(q);
308
- if (id !== searchIdRef.current)
309
- return;
310
- setSearchResults(results);
311
- }
312
- else {
313
- // Fallback to client-side filtering
314
- setSearchResults(null);
315
- }
316
- setIsSearching(false);
317
- }, 250);
318
- return () => {
319
- if (debounceRef.current)
320
- clearTimeout(debounceRef.current);
321
- };
322
- }, [search, onSearch]);
323
- // Hide empty threads from the history list — except the currently-active
324
- // one. The active thread always belongs in the list so the user can see
325
- // they're in it (the previous filter dropped a brand-new chat the user
326
- // had just opened, making them think their chat had vanished).
327
- const visibleThreads = threads.filter((t) => t.messageCount > 0 || t.id === activeThreadId);
328
- const filtered = search.trim()
329
- ? (searchResults ?? visibleThreads).filter((t) => t.messageCount > 0 || t.id === activeThreadId)
330
- : visibleThreads;
331
- // Pinned threads always float to the top of `threads` already (see
332
- // `sortThreadSummaries` in use-chat-threads.ts and the matching server
333
- // ORDER BY), but pulling them into their own labeled section — instead of
334
- // just relying on sort order within "All chats" — makes the pin affordance
335
- // visible at a glance, matching common chat-history UX.
336
- const pinnedThreads = filtered.filter((t) => t.pinnedAt != null);
337
- const unpinnedThreads = filtered.filter((t) => t.pinnedAt == null);
338
- const toHistoryItem = (thread) => {
339
- const isActive = thread.id === activeThreadId;
340
- const hasTitle = Boolean(thread.title);
341
- const title = thread.title || t("agentChat.history.untitledChat");
342
- return {
343
- id: thread.id,
344
- title,
345
- titleText: title,
346
- subtitle: hasTitle && thread.preview && thread.title !== thread.preview
347
- ? thread.preview
288
+ const timer = setTimeout(() => setQuery(search.trim()), 250);
289
+ return () => clearTimeout(timer);
290
+ }, [search]);
291
+ // This component is mounted only while the popover is open.
292
+ const history = useOwnershipChatHistory({
293
+ apiUrl,
294
+ scope,
295
+ enabled: true,
296
+ query,
297
+ activeId: activeThreadId,
298
+ pinned: true,
299
+ localMineRows,
300
+ mutations: { pin: onTogglePin, rename: onRename },
301
+ getThreadUrl,
302
+ onMutationFailed: () => toast.error(t("agentChat.common.saveFailed")),
303
+ decorateItem: (item, row) => ({
304
+ ...item,
305
+ title: row.title || t("agentChat.history.untitledChat"),
306
+ titleText: row.title || t("agentChat.history.untitledChat"),
307
+ subtitle: row.title && row.preview && row.title !== row.preview
308
+ ? row.preview
348
309
  : undefined,
349
- timestamp: isActive
310
+ timestamp: row.id === activeThreadId
350
311
  ? t("agentChat.history.active")
351
- : openTabIds.has(thread.id)
312
+ : openTabIds.has(row.id)
352
313
  ? t("agentChat.history.open")
353
- : formatThreadTime(thread.updatedAt, locale, t("agentChat.history.yesterday")),
354
- pinned: thread.pinnedAt != null,
355
- };
356
- };
357
- const historySections = [
358
- ...(pinnedThreads.length > 0
359
- ? [
360
- {
361
- id: "pinned",
362
- label: t("agentChat.history.pinned"),
363
- items: pinnedThreads.map(toHistoryItem),
364
- },
365
- ]
366
- : []),
367
- { id: "all", items: unpinnedThreads.map(toHistoryItem) },
368
- ];
314
+ : formatThreadTime(row.updatedAt, locale, t("agentChat.history.yesterday")),
315
+ }),
316
+ });
369
317
  return (_jsxs(Popover, { open: true, onOpenChange: (open) => !open && onClose(), children: [_jsx(PopoverAnchor, { asChild: true, children: _jsx("span", { "aria-hidden": true, className: `absolute h-px w-px ${popoverAlign === "start" ? "top-12 start-2" : "top-0 end-2"}` }) }), _jsx(PopoverContent, { align: popoverAlign, side: "bottom", sideOffset: 0, onOpenAutoFocus: (event) => {
370
318
  event.preventDefault();
371
319
  inputRef.current?.focus();
372
- }, className: "w-72 rounded-lg p-0", children: _jsx(ChatHistoryList, { sections: historySections, activeId: activeThreadId, onSelect: (id) => {
320
+ }, className: "w-72 rounded-lg p-0", children: _jsx(OwnershipChatHistoryRail, { ...history, activeId: activeThreadId, onNewChat: onNewChat, showNewChat: false, onSelect: (id) => {
373
321
  onSelect(id);
374
322
  onClose();
375
- }, onTogglePin: onTogglePin
376
- ? (id) => {
377
- const isPinned = threads.find((t) => t.id === id)?.pinnedAt != null;
378
- onTogglePin(id, !isPinned);
379
- }
380
- : undefined, onRename: onRename, searchValue: search, onSearchChange: setSearch, searchPlaceholder: t("agentChat.history.search"), searchInputRef: inputRef, loading: isSearching, loadingLabel: t("agentChat.history.searching"), error: loadError && !search.trim() ? loadError : undefined, emptyLabel: t("agentChat.history.empty"), emptySearchLabel: t("agentChat.history.noMatches"), footer: !search.trim() && hasMoreThreads ? (_jsx("button", { type: "button", onClick: () => onLoadMore?.(), disabled: isLoadingMoreThreads, className: "mx-1 mt-1 flex w-[calc(100%-0.5rem)] items-center justify-center rounded-md px-3 py-2 text-xs text-muted-foreground hover:bg-accent hover:text-foreground disabled:cursor-default disabled:opacity-60", children: isLoadingMoreThreads
381
- ? t("agentChat.common.loading")
382
- : t("agentChat.history.loadOlder") })) : undefined }) })] }));
323
+ }, searchValue: search, onSearchChange: setSearch, searchPlaceholder: t("agentChat.history.search"), searchInputRef: inputRef, loadingLabel: t("agentChat.history.searching"), emptyLabel: t("agentChat.history.empty"), emptySearchLabel: t("agentChat.history.noMatches"), className: "an-chat-history--capped" }) })] }));
383
324
  }
384
325
  // ─── Help Popover ────────────────────────────────────────────────────────────
385
326
  function HelpPopover({ onClose }) {
@@ -703,7 +644,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
703
644
  threadUrlSyncEnabled,
704
645
  writeThreadUrl,
705
646
  ]);
706
- const { threads, activeThreadId, isLoading, createThread, openThread, switchThread: switchThreadState, forkThread, saveThreadData, generateTitle, searchThreads, loadMoreThreads, refreshThreads, hasMoreThreads, isLoadingMoreThreads, threadsLoadError, restoredThreadIdOnListFailure, evictedThreadIds, isNewThread, isThreadPersisted, confirmThreadSnapshotPersisted, pinThread, renameThread, } = useChatThreads(apiUrl, storageKey, scope, {
647
+ const { threads, activeThreadId, isLoading, createThread, openThread, switchThread: switchThreadState, forkThread, saveThreadData, generateTitle, refreshThreads, restoredThreadIdOnListFailure, evictedThreadIds, isNewThread, isThreadPersisted, confirmThreadSnapshotPersisted, pinThread, renameThread, } = useChatThreads(apiUrl, storageKey, scope, {
707
648
  restoreActiveThread,
708
649
  browserTabId,
709
650
  routeThreadId: threadUrlSyncEnabled
@@ -731,6 +672,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
731
672
  const [showHistory, setShowHistory] = useState(false);
732
673
  const [pageOverlayScrolled, setPageOverlayScrolled] = useState(false);
733
674
  const newThreadIds = useRef(new Set());
675
+ const observedThreadStarts = useRef(new Map());
734
676
  const [, setThreadPersistenceVersion] = useState(0);
735
677
  const handleThreadSnapshotPersisted = useCallback((threadId, messageCount) => {
736
678
  confirmThreadSnapshotPersisted(threadId);
@@ -1933,6 +1875,8 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
1933
1875
  const { isRunning, tabId } = detail;
1934
1876
  if (!tabId)
1935
1877
  return;
1878
+ if (isRunning)
1879
+ observedThreadStarts.current.set(tabId, Date.now());
1936
1880
  setRunningThreads((prev) => {
1937
1881
  const next = new Set(prev);
1938
1882
  if (isRunning) {
@@ -2770,7 +2714,21 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
2770
2714
  background: "linear-gradient(to right, transparent, hsl(var(--accent)) 40%)",
2771
2715
  }, children: _jsx(IconX, { size: 12 }) })] }, tab.id)))] }) }))] }));
2772
2716
  })()
2773
- : null, _jsxs("div", { className: cn("relative flex-1 flex flex-col min-h-0", renderOverlay && "pt-12"), "data-agent-page-chat-topbar": renderOverlay ? "" : undefined, "data-agent-page-chat-scrolled": renderOverlay && pageOverlayScrolled ? "" : undefined, onScrollCapture: renderOverlay ? handlePageOverlayScroll : undefined, children: [renderOverlay ? renderOverlay(headerProps) : null, showHistory && (_jsx(HistoryPopover, { threads: threads, openTabIds: new Set(openTabIds), activeThreadId: activeThreadId, hasMoreThreads: hasMoreThreads, isLoadingMoreThreads: isLoadingMoreThreads, loadError: threadsLoadError, onSelect: openFromHistory, onClose: () => setShowHistory(false), onLoadMore: loadMoreThreads, onSearch: searchThreads, onTogglePin: pinThread, onRename: renameThread, popoverAlign: renderOverlay ? "start" : "end" })), helpVisible && _jsx(HelpPopover, { onClose: () => setHelpVisible(false) }), [...new Set(visibleOpenTabIds)]
2717
+ : null, _jsxs("div", { className: cn("relative flex-1 flex flex-col min-h-0", renderOverlay && "pt-12"), "data-agent-page-chat-topbar": renderOverlay ? "" : undefined, "data-agent-page-chat-scrolled": renderOverlay && pageOverlayScrolled ? "" : undefined, onScrollCapture: renderOverlay ? handlePageOverlayScroll : undefined, children: [renderOverlay ? renderOverlay(headerProps) : null, showHistory && (_jsx(HistoryPopover, { apiUrl: apiUrl, scope: isolateHistoryByScope ? (scope ?? undefined) : undefined, localMineRows: ownDraftRows({
2718
+ threads: threads.map((thread) => ({
2719
+ ...thread,
2720
+ messageCount: messageCounts[thread.id] ?? thread.messageCount,
2721
+ })),
2722
+ isNewThread,
2723
+ activeId: activeThreadId,
2724
+ observedThreadStarts: observedThreadStarts.current,
2725
+ }), openTabIds: new Set(openTabIds), activeThreadId: activeThreadId, onSelect: openFromHistory, onNewChat: addTab, onClose: () => setShowHistory(false), onTogglePin: pinThread, onRename: renameThread, getThreadUrl: (threadId) => {
2726
+ if (getThreadPath)
2727
+ return appPath(getThreadPath(threadId));
2728
+ const url = new URL(window.location.href);
2729
+ url.searchParams.set(threadUrlParamName, threadId);
2730
+ return url.toString();
2731
+ }, popoverAlign: renderOverlay ? "start" : "end" })), helpVisible && _jsx(HelpPopover, { onClose: () => setHelpVisible(false) }), [...new Set(visibleOpenTabIds)]
2774
2732
  .filter((tabId) => tabId === activeThreadId || mountedTabsRef.current.has(tabId))
2775
2733
  .map((tabId) => {
2776
2734
  const isKnownNewThread = newThreadIds.current.has(tabId) || isNewThread(tabId);