@agent-native/core 0.14.0 → 0.14.2

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 (50) hide show
  1. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  2. package/dist/agent/engine/builder-engine.js +5 -1
  3. package/dist/agent/engine/builder-engine.js.map +1 -1
  4. package/dist/agent/run-loop-with-resume.d.ts +45 -0
  5. package/dist/agent/run-loop-with-resume.d.ts.map +1 -0
  6. package/dist/agent/run-loop-with-resume.js +121 -0
  7. package/dist/agent/run-loop-with-resume.js.map +1 -0
  8. package/dist/agent/run-manager.d.ts.map +1 -1
  9. package/dist/agent/run-manager.js +11 -5
  10. package/dist/agent/run-manager.js.map +1 -1
  11. package/dist/agent/run-store.d.ts +18 -0
  12. package/dist/agent/run-store.d.ts.map +1 -1
  13. package/dist/agent/run-store.js +66 -8
  14. package/dist/agent/run-store.js.map +1 -1
  15. package/dist/client/AgentPanel.d.ts.map +1 -1
  16. package/dist/client/AgentPanel.js +10 -0
  17. package/dist/client/AgentPanel.js.map +1 -1
  18. package/dist/client/AssistantChat.d.ts.map +1 -1
  19. package/dist/client/AssistantChat.js +7 -44
  20. package/dist/client/AssistantChat.js.map +1 -1
  21. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  22. package/dist/client/MultiTabAssistantChat.js +19 -10
  23. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  24. package/dist/client/composer/PromptComposer.d.ts.map +1 -1
  25. package/dist/client/composer/PromptComposer.js +28 -3
  26. package/dist/client/composer/PromptComposer.js.map +1 -1
  27. package/dist/client/use-chat-threads.d.ts +0 -6
  28. package/dist/client/use-chat-threads.d.ts.map +1 -1
  29. package/dist/client/use-chat-threads.js +119 -89
  30. package/dist/client/use-chat-threads.js.map +1 -1
  31. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  32. package/dist/server/agent-chat-plugin.js +36 -95
  33. package/dist/server/agent-chat-plugin.js.map +1 -1
  34. package/dist/server/auth.d.ts.map +1 -1
  35. package/dist/server/auth.js +12 -1
  36. package/dist/server/auth.js.map +1 -1
  37. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  38. package/dist/server/google-auth-plugin.js +40 -1
  39. package/dist/server/google-auth-plugin.js.map +1 -1
  40. package/dist/server/google-oauth.d.ts.map +1 -1
  41. package/dist/server/google-oauth.js +8 -7
  42. package/dist/server/google-oauth.js.map +1 -1
  43. package/dist/server/oauth-return-url.d.ts +6 -0
  44. package/dist/server/oauth-return-url.d.ts.map +1 -0
  45. package/dist/server/oauth-return-url.js +78 -0
  46. package/dist/server/oauth-return-url.js.map +1 -0
  47. package/dist/server/onboarding-html.d.ts.map +1 -1
  48. package/dist/server/onboarding-html.js +40 -1
  49. package/dist/server/onboarding-html.js.map +1 -1
  50. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import React, { useState, useRef, useEffect, useLayoutEffect, useCallback, useMemo, forwardRef, useImperativeHandle, } from "react";
2
+ import React, { useState, useRef, useEffect, useCallback, useMemo, forwardRef, useImperativeHandle, } from "react";
3
3
  import { AssistantRuntimeProvider, useLocalRuntime, useThreadRuntime, useThread, useAui, useComposer, useMessageRuntime, ThreadPrimitive, ComposerPrimitive, MessagePrimitive, } from "@assistant-ui/react";
4
4
  import { SimpleImageAttachmentAdapter, CompositeAttachmentAdapter, } from "@assistant-ui/react";
5
5
  import { MarkdownTextPrimitive } from "@assistant-ui/react-markdown";
@@ -18,7 +18,6 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel,
18
18
  import { IframeEmbed, parseEmbedBody } from "./IframeEmbed.js";
19
19
  import { useDevMode } from "./use-dev-mode.js";
20
20
  import { agentNativePath } from "./api-path.js";
21
- import { getThreadCacheKey } from "./use-chat-threads.js";
22
21
  import { BUILDER_SPACE_SETTINGS_URL } from "./error-format.js";
23
22
  import { ThumbsFeedback } from "./observability/ThumbsFeedback.js";
24
23
  import { TiptapComposer, } from "./composer/TiptapComposer.js";
@@ -1492,22 +1491,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1492
1491
  }, [isRunning, tabId, threadId]);
1493
1492
  // ─── Chat persistence ──────────────────────────────────────────────
1494
1493
  const hasRestoredRef = useRef(false);
1495
- // Cached thread data from a prior session, read synchronously so existing
1496
- // chats can paint their messages on first commit instead of after the server
1497
- // round-trip. The server fetch still runs to refresh with the latest.
1498
- const [cachedThreadData] = useState(() => {
1499
- if (typeof window === "undefined")
1500
- return null;
1501
- if (!threadId || isNewThread)
1502
- return null;
1503
- try {
1504
- return localStorage.getItem(getThreadCacheKey(threadId));
1505
- }
1506
- catch {
1507
- return null;
1508
- }
1509
- });
1510
- const [isRestoring, setIsRestoring] = useState(!!threadId && !isNewThread && !cachedThreadData);
1494
+ const [isRestoring, setIsRestoring] = useState(!!threadId && !isNewThread);
1511
1495
  const onSaveThreadRef = useRef(onSaveThread);
1512
1496
  onSaveThreadRef.current = onSaveThread;
1513
1497
  const onGenerateTitleRef = useRef(onGenerateTitle);
@@ -1708,30 +1692,15 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1708
1692
  return false;
1709
1693
  }
1710
1694
  }, [apiUrl, refreshThreadFromServer, startReconnectToRun, threadId]);
1711
- // Hydrate from the localStorage cache synchronously so the message bubbles
1712
- // paint on the first commit instead of after the server round-trip. The
1713
- // server fetch below still runs to refresh with the latest content.
1714
- const hydratedFromCacheRef = useRef(false);
1715
- useLayoutEffect(() => {
1716
- if (hydratedFromCacheRef.current)
1717
- return;
1718
- if (!cachedThreadData)
1719
- return;
1720
- hydratedFromCacheRef.current = true;
1721
- try {
1722
- importThreadData(cachedThreadData, { markTitleGenerated: true });
1723
- }
1724
- catch {
1725
- // Corrupt cache entry — ignore and let the server fetch repopulate.
1726
- }
1727
- }, [cachedThreadData, importThreadData]);
1728
- // Restore messages from server on mount (when threadId is set)
1695
+ // Restore messages from server on mount (when threadId is set). The
1696
+ // server is the single source of truth we don't hydrate from localStorage
1697
+ // first, so what the user sees in the chat panel always matches what the
1698
+ // history list (and the agent) sees on disk.
1729
1699
  useEffect(() => {
1730
1700
  if (hasRestoredRef.current)
1731
1701
  return;
1732
1702
  hasRestoredRef.current = true;
1733
1703
  if (threadId) {
1734
- // Load from server
1735
1704
  (async () => {
1736
1705
  try {
1737
1706
  const res = await fetch(`${apiUrl}/threads/${encodeURIComponent(threadId)}`);
@@ -1739,12 +1708,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1739
1708
  return;
1740
1709
  const data = await res.json();
1741
1710
  if (data.threadData) {
1742
- // Skip the re-import if the server data matches what we already
1743
- // hydrated from cache — avoids a second runtime.import that would
1744
- // briefly flicker the message list.
1745
- if (data.threadData !== cachedThreadData) {
1746
- importThreadData(data.threadData, { markTitleGenerated: true });
1747
- }
1711
+ importThreadData(data.threadData, { markTitleGenerated: true });
1748
1712
  }
1749
1713
  // Also skip title generation if thread already has a title
1750
1714
  if (data.title) {
@@ -1784,7 +1748,6 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1784
1748
  threadRuntime,
1785
1749
  importThreadData,
1786
1750
  reconnectActiveRunForThread,
1787
- cachedThreadData,
1788
1751
  ]);
1789
1752
  // If assistant-ui stops the local runtime while the background server run is
1790
1753
  // still alive, immediately switch into the same reconnect path used after a