@agent-native/core 0.84.27 → 0.84.29
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/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +12 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +17 -2
- package/corpus/core/src/client/agent-chat.ts +118 -0
- package/corpus/core/src/client/index.ts +4 -0
- package/corpus/core/src/deploy/build.ts +5 -0
- package/corpus/core/src/server/analytics.ts +29 -7
- package/corpus/core/src/server/ssr-handler.ts +161 -25
- package/corpus/core/src/vite/client.ts +3 -0
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +324 -24
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +11 -0
- package/corpus/templates/analytics/app/i18n-data.ts +110 -0
- package/corpus/templates/design/app/components/layout/Header.tsx +16 -23
- package/corpus/templates/design/app/pages/DesignEditor.tsx +23 -9
- package/corpus/templates/design/changelog/2026-07-01-zoom-menus-in-the-design-editor-now-open-independently-from-.md +6 -0
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +14 -2
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +23 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +79 -0
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/deploy/build.js +3 -0
- package/dist/deploy/build.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/analytics.d.ts +10 -2
- package/dist/server/analytics.d.ts.map +1 -1
- package/dist/server/analytics.js +26 -5
- package/dist/server/analytics.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +103 -21
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +1 -0
- package/dist/vite/client.js.map +1 -1
- package/package.json +1 -1
|
@@ -15617,11 +15617,13 @@ ${serializedHtml}
|
|
|
15617
15617
|
);
|
|
15618
15618
|
|
|
15619
15619
|
const zoomLabel = `${Math.round(zoom)}%`;
|
|
15620
|
-
const [
|
|
15620
|
+
const [openZoomControl, setOpenZoomControl] = useState<
|
|
15621
|
+
"toolbar" | "inspector" | null
|
|
15622
|
+
>(null);
|
|
15621
15623
|
const [zoomInputValue, setZoomInputValue] = useState(zoomLabel);
|
|
15622
15624
|
useEffect(() => {
|
|
15623
|
-
if (!
|
|
15624
|
-
}, [zoomLabel,
|
|
15625
|
+
if (!openZoomControl) setZoomInputValue(zoomLabel);
|
|
15626
|
+
}, [zoomLabel, openZoomControl]);
|
|
15625
15627
|
const commitZoomInput = useCallback(() => {
|
|
15626
15628
|
const next = Number(zoomInputValue.replace("%", "").trim());
|
|
15627
15629
|
if (!Number.isFinite(next)) {
|
|
@@ -15629,7 +15631,7 @@ ${serializedHtml}
|
|
|
15629
15631
|
return;
|
|
15630
15632
|
}
|
|
15631
15633
|
setZoom(Math.max(10, Math.min(500, next)));
|
|
15632
|
-
|
|
15634
|
+
setOpenZoomControl(null);
|
|
15633
15635
|
}, [setZoom, zoomInputValue, zoomLabel]);
|
|
15634
15636
|
|
|
15635
15637
|
const handleTokensApplied = useCallback(
|
|
@@ -15970,8 +15972,20 @@ ${serializedHtml}
|
|
|
15970
15972
|
</span>
|
|
15971
15973
|
);
|
|
15972
15974
|
|
|
15973
|
-
const renderZoomControl = () => (
|
|
15974
|
-
<DropdownMenu
|
|
15975
|
+
const renderZoomControl = (controlId: "toolbar" | "inspector") => (
|
|
15976
|
+
<DropdownMenu
|
|
15977
|
+
open={openZoomControl === controlId}
|
|
15978
|
+
onOpenChange={(open) => {
|
|
15979
|
+
if (open) {
|
|
15980
|
+
setZoomInputValue(zoomLabel);
|
|
15981
|
+
setOpenZoomControl(controlId);
|
|
15982
|
+
return;
|
|
15983
|
+
}
|
|
15984
|
+
setOpenZoomControl((current) =>
|
|
15985
|
+
current === controlId ? null : current,
|
|
15986
|
+
);
|
|
15987
|
+
}}
|
|
15988
|
+
>
|
|
15975
15989
|
<Tooltip>
|
|
15976
15990
|
<TooltipTrigger asChild>
|
|
15977
15991
|
<DropdownMenuTrigger asChild>
|
|
@@ -16005,7 +16019,7 @@ ${serializedHtml}
|
|
|
16005
16019
|
} else if (event.key === "Escape") {
|
|
16006
16020
|
event.preventDefault();
|
|
16007
16021
|
setZoomInputValue(zoomLabel);
|
|
16008
|
-
|
|
16022
|
+
setOpenZoomControl(null);
|
|
16009
16023
|
}
|
|
16010
16024
|
}}
|
|
16011
16025
|
className="h-10 rounded-md border-[var(--design-editor-accent-color)] bg-[var(--design-editor-control-bg)] px-3 text-base font-medium tabular-nums text-foreground shadow-none focus-visible:ring-2 focus-visible:ring-[var(--design-editor-accent-color)]"
|
|
@@ -16563,7 +16577,7 @@ ${serializedHtml}
|
|
|
16563
16577
|
</DropdownMenuContent>
|
|
16564
16578
|
</DropdownMenu>
|
|
16565
16579
|
|
|
16566
|
-
{renderZoomControl()}
|
|
16580
|
+
{renderZoomControl("toolbar")}
|
|
16567
16581
|
|
|
16568
16582
|
<div className="mx-1 h-5 w-px bg-border" />
|
|
16569
16583
|
</>
|
|
@@ -17637,7 +17651,7 @@ ${serializedHtml}
|
|
|
17637
17651
|
selectedElements={selectedInspectorElements}
|
|
17638
17652
|
pageStyles={pageStyles}
|
|
17639
17653
|
zoom={zoom}
|
|
17640
|
-
headerTrailing={renderZoomControl()}
|
|
17654
|
+
headerTrailing={renderZoomControl("inspector")}
|
|
17641
17655
|
width={rightSidebarWidth}
|
|
17642
17656
|
activeTab={activeInspectorTab}
|
|
17643
17657
|
onActiveTabChange={setActiveInspectorTab}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiTabAssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/MultiTabAssistantChat.tsx"],"names":[],"mappings":"AASA,OAAO,KAMN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiTabAssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/MultiTabAssistantChat.tsx"],"names":[],"mappings":"AASA,OAAO,KAMN,MAAM,OAAO,CAAC;AAsBf,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAoB5B,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AA8mB/B,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IACzC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAsGD,MAAM,WAAW,wBAAwB;IACvC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACpE;AAyED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,kBAAkB,EAClB,OAAO,GAAG,UAAU,CACrB,GAAG;IACF,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5E,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC7E,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAC;IACnD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,UAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAqB,EACrB,MAAqD,EACrD,UAAU,EACV,mBAA0B,EAC1B,YAAY,EACZ,aAAqB,EACrB,KAAY,EACZ,cAAqB,EACrB,GAAG,KAAK,EACT,EAAE,0BAA0B,qBA6wD5B"}
|
|
@@ -3,7 +3,7 @@ import { IconX, IconPlus, IconHistory, IconSearch, IconLink, IconLinkOff, IconCh
|
|
|
3
3
|
import { useState, useRef, useEffect, useCallback, useMemo, } from "react";
|
|
4
4
|
import { DEFAULT_MODEL } from "../agent/default-model.js";
|
|
5
5
|
import { getReasoningEffortOptionsForModel, isReasoningEffort, } from "../shared/reasoning-effort.js";
|
|
6
|
-
import { AGENT_CHAT_CLEAR_CONTEXT_MESSAGE_TYPE, AGENT_CHAT_REMOVE_CONTEXT_MESSAGE_TYPE, AGENT_CHAT_SET_CONTEXT_MESSAGE_TYPE, appendAgentChatContextToMessage, claimAgentChatSubmit, drainBufferedAgentChatSubmits, normalizeAgentChatContextItem, parseSubmitChatMessage, } from "./agent-chat.js";
|
|
6
|
+
import { AGENT_CHAT_CLEAR_CONTEXT_MESSAGE_TYPE, AGENT_CHAT_REMOVE_CONTEXT_MESSAGE_TYPE, AGENT_CHAT_SET_CONTEXT_MESSAGE_TYPE, appendAgentChatContextToMessage, claimAgentChatOpenRequest, claimAgentChatSubmit, drainBufferedAgentChatOpenRequests, drainBufferedAgentChatSubmits, normalizeAgentChatContextItem, parseSubmitChatMessage, } from "./agent-chat.js";
|
|
7
7
|
import { agentNativePath, appPath } from "./api-path.js";
|
|
8
8
|
import { AssistantChat, } from "./AssistantChat.js";
|
|
9
9
|
import { buildChatModelGroups, } from "./chat-model-groups.js";
|
|
@@ -1402,7 +1402,9 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
|
|
|
1402
1402
|
const handleOpenThread = (event) => {
|
|
1403
1403
|
const detail = event.detail;
|
|
1404
1404
|
const threadId = typeof detail?.threadId === "string" ? detail.threadId : "";
|
|
1405
|
-
if (!threadId)
|
|
1405
|
+
if (!detail || !threadId)
|
|
1406
|
+
return;
|
|
1407
|
+
if (!claimAgentChatOpenRequest(detail.openRequestId))
|
|
1406
1408
|
return;
|
|
1407
1409
|
if (detail?.newThread === true) {
|
|
1408
1410
|
newThreadIds.current.add(threadId);
|
|
@@ -1445,6 +1447,8 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
|
|
|
1445
1447
|
const threadId = detail?.threadId;
|
|
1446
1448
|
if (!threadId)
|
|
1447
1449
|
return;
|
|
1450
|
+
if (!claimAgentChatOpenRequest(detail.openRequestId))
|
|
1451
|
+
return;
|
|
1448
1452
|
dismissedSubAgentTabsRef.current.delete(threadId);
|
|
1449
1453
|
// Prefer an explicit parent (RunsTray/background hydration knows it);
|
|
1450
1454
|
// inline task cards fall back to the active orchestrator thread.
|
|
@@ -1490,6 +1494,14 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
|
|
|
1490
1494
|
window.addEventListener("agent-task-open", handleOpenTask);
|
|
1491
1495
|
return () => window.removeEventListener("agent-task-open", handleOpenTask);
|
|
1492
1496
|
}, [openTabIds, switchThread, refreshThreads, parentMap]);
|
|
1497
|
+
// Replay thread/task opens requested before this lazy panel's listeners
|
|
1498
|
+
// attached. Live events claim their id; replay drains only unclaimed requests.
|
|
1499
|
+
useEffect(() => {
|
|
1500
|
+
const buffered = drainBufferedAgentChatOpenRequests();
|
|
1501
|
+
for (const request of buffered) {
|
|
1502
|
+
window.dispatchEvent(new CustomEvent(request.eventType, { detail: request.detail }));
|
|
1503
|
+
}
|
|
1504
|
+
}, []);
|
|
1493
1505
|
// Watch for agent-issued chat-command in application-state
|
|
1494
1506
|
const lastChatCommandRef = useRef(0);
|
|
1495
1507
|
useEffect(() => {
|