@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.
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +5 -1
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/run-loop-with-resume.d.ts +45 -0
- package/dist/agent/run-loop-with-resume.d.ts.map +1 -0
- package/dist/agent/run-loop-with-resume.js +121 -0
- package/dist/agent/run-loop-with-resume.js.map +1 -0
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +11 -5
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +18 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +66 -8
- package/dist/agent/run-store.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +10 -0
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +7 -44
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +19 -10
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/composer/PromptComposer.d.ts.map +1 -1
- package/dist/client/composer/PromptComposer.js +28 -3
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts +0 -6
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +119 -89
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +36 -95
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +12 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/google-auth-plugin.d.ts.map +1 -1
- package/dist/server/google-auth-plugin.js +40 -1
- package/dist/server/google-auth-plugin.js.map +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +8 -7
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/oauth-return-url.d.ts +6 -0
- package/dist/server/oauth-return-url.d.ts.map +1 -0
- package/dist/server/oauth-return-url.js +78 -0
- package/dist/server/oauth-return-url.js.map +1 -0
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +40 -1
- package/dist/server/onboarding-html.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AA4Bf,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA2oFrE,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,6DAA6D;IAC7D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,4CAA4C;IAC5C,SAAS,IAAI,OAAO,CAAC;IACrB,+BAA+B;IAC/B,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wGAAwG;IACxG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,0CAA0C;IAC1C,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,8EAA8E;IAC9E,YAAY,CAAC,EAAE,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,KACE,IAAI,CAAC;IACV,+DAA+D;IAC/D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,+FAA+F;IAC/F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IACpD,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,uDAAuD;IACvD,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;IACH,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,kEAAkE;IAClE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,QAI9C;AAqCD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AA69C7B,eAAO,MAAM,aAAa,gGA4DxB,CAAC"}
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
//
|
|
1712
|
-
//
|
|
1713
|
-
//
|
|
1714
|
-
|
|
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
|
-
|
|
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
|