@agent-native/core 0.22.9 → 0.22.11
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/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +8 -12
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +7 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +106 -23
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/FeedbackButton.d.ts +5 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +20 -3
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts +10 -0
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +6 -19
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/analytics.d.ts +1 -1
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +2 -40
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/clipboard.d.ts +2 -0
- package/dist/client/clipboard.d.ts.map +1 -0
- package/dist/client/clipboard.js +51 -0
- package/dist/client/clipboard.js.map +1 -0
- package/dist/client/feedback-context.d.ts +11 -0
- package/dist/client/feedback-context.d.ts.map +1 -0
- package/dist/client/feedback-context.js +73 -0
- package/dist/client/feedback-context.js.map +1 -0
- package/dist/client/url-scrub.d.ts +2 -0
- package/dist/client/url-scrub.d.ts.map +1 -0
- package/dist/client/url-scrub.js +41 -0
- package/dist/client/url-scrub.js.map +1 -0
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +161 -17
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +5 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +74 -59
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/docs/content/actions.md +2 -2
- package/docs/content/external-agents.md +3 -1
- package/docs/content/mcp-protocol.md +5 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentPanel.d.ts","sourceRoot":"","sources":["../../src/client/AgentPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AAwCf,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentPanel.d.ts","sourceRoot":"","sources":["../../src/client/AgentPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ import { cn } from "./utils.js";
|
|
|
37
37
|
import { agentNativePath } from "./api-path.js";
|
|
38
38
|
import { trackEvent } from "./analytics.js";
|
|
39
39
|
import { withBuilderConnectTrackingParams } from "./settings/useBuilderStatus.js";
|
|
40
|
-
import { getFrameOrigin,
|
|
40
|
+
import { getFrameOrigin, isTrustedFrameMessage } from "./frame.js";
|
|
41
41
|
import { shouldParentFrameOwnAgentPanel } from "./builder-frame.js";
|
|
42
42
|
import { consumeAgentSidebarUrlOpenOverride, dispatchAgentSidebarStateChange, getInitialAgentSidebarOpen, SIDEBAR_OPEN_KEY, subscribeAgentSidebarUrlChanges, } from "./agent-sidebar-state.js";
|
|
43
43
|
// Lazy-load AgentTerminal to avoid bundling xterm.js when not needed
|
|
@@ -49,11 +49,6 @@ const AGENT_CHAT_RUNNING_EVENT = "agentNative.chatRunning";
|
|
|
49
49
|
function parentFrameTargetOrigin() {
|
|
50
50
|
return getFrameOrigin() ?? window.location.origin;
|
|
51
51
|
}
|
|
52
|
-
function isAgentNativeDesktop() {
|
|
53
|
-
if (typeof navigator === "undefined")
|
|
54
|
-
return false;
|
|
55
|
-
return /AgentNativeDesktop/i.test(navigator.userAgent);
|
|
56
|
-
}
|
|
57
52
|
// Lazy-load ResourcesPanel to avoid bundling when not needed
|
|
58
53
|
const ResourcesPanel = lazy(() => import("./resources/ResourcesPanel.js").then((m) => ({
|
|
59
54
|
default: m.ResourcesPanel,
|
|
@@ -396,7 +391,8 @@ function AgentPanelInner({ defaultMode = "chat", className, apiUrl, emptyStateTe
|
|
|
396
391
|
const [selectedCli, selectCli] = useCliSelection(keyPrefix);
|
|
397
392
|
const selectedLabel = availableClis.find((c) => c.command === selectedCli)?.label || selectedCli;
|
|
398
393
|
const { isDevMode, canToggle, setDevMode } = useDevMode(apiUrl);
|
|
399
|
-
const
|
|
394
|
+
const isDevFrameChatSurface = assistantChatProps.agentChatSurface === "dev-frame";
|
|
395
|
+
const inferredCodeAccessEnabled = !isDevMode || isDevFrameChatSurface;
|
|
400
396
|
const codeAccessEnabled = codeAccess?.enabled ?? inferredCodeAccessEnabled;
|
|
401
397
|
const codeUnavailableTitle = codeAccess?.unavailableTitle ?? "Open Desktop to edit code";
|
|
402
398
|
const codeUnavailableDescription = codeAccess?.unavailableDescription ??
|
|
@@ -405,11 +401,11 @@ function AgentPanelInner({ defaultMode = "chat", className, apiUrl, emptyStateTe
|
|
|
405
401
|
const codeUnavailableCtaHref = codeAccess?.unavailableCtaHref ?? "https://www.agent-native.com/download";
|
|
406
402
|
const codeUnavailableSecondaryCtaLabel = codeAccess?.unavailableSecondaryCtaLabel ?? "Use Builder";
|
|
407
403
|
const codeUnavailableSecondaryCtaHref = codeAccess?.unavailableSecondaryCtaHref;
|
|
408
|
-
const canUseCodeTools = isDevMode && codeAccessEnabled;
|
|
404
|
+
const canUseCodeTools = isDevMode && codeAccessEnabled && isDevFrameChatSurface;
|
|
409
405
|
// Hide the CLI tab when embedded in the Builder.io frame — code editing
|
|
410
406
|
// there happens via Builder, and the CLI panel only offers a Download
|
|
411
407
|
// Desktop CTA, which adds clutter without value.
|
|
412
|
-
const showCliMode = (isDevMode || !codeAccessEnabled) &&
|
|
408
|
+
const showCliMode = (isDevMode || !codeAccessEnabled) && isDevFrameChatSurface;
|
|
413
409
|
useEffect(() => {
|
|
414
410
|
if (mode === "cli" && !showCliMode)
|
|
415
411
|
switchMode("chat");
|
|
@@ -435,7 +431,7 @@ function AgentPanelInner({ defaultMode = "chat", className, apiUrl, emptyStateTe
|
|
|
435
431
|
(window.location.hostname === "localhost" ||
|
|
436
432
|
window.location.hostname === "127.0.0.1" ||
|
|
437
433
|
window.location.hostname === "::1");
|
|
438
|
-
const showDevToggle = canToggle && isLocalhost;
|
|
434
|
+
const showDevToggle = canToggle && isLocalhost && isDevFrameChatSurface;
|
|
439
435
|
const renderModeButtons = useCallback((activeMode) => (_jsx(TooltipProvider, { delayDuration: 200, children: _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { onClick: () => switchMode("chat"), "aria-label": "Chat mode", className: cn("flex items-center gap-1 rounded-md px-2 py-1 text-[12px] leading-none", activeMode === "chat"
|
|
440
436
|
? "bg-accent text-foreground"
|
|
441
437
|
: "text-muted-foreground hover:bg-accent/50 hover:text-foreground"), style: AGENT_PANEL_CONTROL_STYLE, children: [_jsx(IconMessageCircle, { size: 14 }), "Chat"] }) }), _jsx(TooltipContent, { children: "Chat mode" })] }), showCliMode && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { onClick: () => switchMode("cli"), "aria-label": "CLI terminal mode", className: cn("flex items-center gap-1 rounded-md px-2 py-1 text-[12px] leading-none", activeMode === "cli"
|
|
@@ -447,7 +443,7 @@ function AgentPanelInner({ defaultMode = "chat", className, apiUrl, emptyStateTe
|
|
|
447
443
|
: "text-muted-foreground hover:bg-accent/50 hover:text-foreground"), style: AGENT_PANEL_CONTROL_STYLE, children: [_jsx(IconLayoutGrid, { size: 14 }), "Workspace"] }) }), _jsx(TooltipContent, { children: "Workspace files, agents, skills, and tasks" })] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { onClick: () => switchMode("settings"), "aria-label": "Setup and configuration", className: cn("flex items-center justify-center rounded-md px-1.5 py-1", activeMode === "settings"
|
|
448
444
|
? "bg-accent text-foreground"
|
|
449
445
|
: "text-muted-foreground hover:bg-accent/50 hover:text-foreground"), children: _jsx(IconSettings, { size: 14 }) }) }), _jsx(TooltipContent, { children: "Setup and configuration" })] })] }) })), [codeAccessEnabled, codeUnavailableDescription, showCliMode]);
|
|
450
|
-
const renderHeaderActions = useCallback(() => (_jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [SHOW_ONBOARDING && canUseCodeTools && (_jsx(Suspense, { fallback: null, children: _jsx(SetupButton, {}) })), _jsx(FeedbackButton, { variant: "icon", side: "bottom", align: "end" }), onToggleFullscreen && (_jsx(IconTooltip, { content: isFullscreen ? "Exit fullscreen" : "Fullscreen", children: _jsx("button", { onClick: onToggleFullscreen, "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen", className: "flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/50", children: isFullscreen ? (_jsx(IconArrowsMinimize, { size: 14 })) : (_jsx(IconArrowsMaximize, { size: 14 })) }) })), onCollapse && (_jsx(IconTooltip, { content: "Collapse sidebar", children: _jsx("button", { onClick: onCollapse, "aria-label": "Collapse sidebar", className: "flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/50", children: _jsx(IconLayoutSidebarRightCollapse, { size: 14 }) }) }))] })), [onCollapse, canUseCodeTools, onToggleFullscreen, isFullscreen]);
|
|
446
|
+
const renderHeaderActions = useCallback((activeChatSessionId) => (_jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [SHOW_ONBOARDING && canUseCodeTools && (_jsx(Suspense, { fallback: null, children: _jsx(SetupButton, {}) })), _jsx(FeedbackButton, { variant: "icon", side: "bottom", align: "end", chatSessionId: activeChatSessionId, chatStorageKey: storageKey }), onToggleFullscreen && (_jsx(IconTooltip, { content: isFullscreen ? "Exit fullscreen" : "Fullscreen", children: _jsx("button", { onClick: onToggleFullscreen, "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen", className: "flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/50", children: isFullscreen ? (_jsx(IconArrowsMinimize, { size: 14 })) : (_jsx(IconArrowsMaximize, { size: 14 })) }) })), onCollapse && (_jsx(IconTooltip, { content: "Collapse sidebar", children: _jsx("button", { onClick: onCollapse, "aria-label": "Collapse sidebar", className: "flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/50", children: _jsx(IconLayoutSidebarRightCollapse, { size: 14 }) }) }))] })), [onCollapse, canUseCodeTools, onToggleFullscreen, isFullscreen]);
|
|
451
447
|
const [tabMenuOpen, setTabMenuOpen] = useState(null);
|
|
452
448
|
const [cliPickerOpen, setCliPickerOpen] = useState(false);
|
|
453
449
|
// Ref callback: scroll the active tab into view in the overflow container.
|
|
@@ -470,7 +466,7 @@ function AgentPanelInner({ defaultMode = "chat", className, apiUrl, emptyStateTe
|
|
|
470
466
|
}
|
|
471
467
|
});
|
|
472
468
|
}, []);
|
|
473
|
-
const renderChatHeader = useCallback(({ tabs, activeTabId, setActiveTabId, addTab, closeTab, closeOtherTabs, closeAllTabs, showHistory, toggleHistory, }) => (_jsxs("div", { className: "flex flex-col shrink-0", children: [_jsxs("div", { className: AGENT_PANEL_HEADER_CLASS, style: AGENT_PANEL_HEADER_STYLE, children: [_jsx("div", { className: "flex min-w-0 flex-1 items-center gap-1 overflow-hidden", children: renderModeButtons(mode) }), _jsx("div", { className: "flex items-center gap-0.5", children: renderHeaderActions() })] }), mode === "chat" && chatNotice ? (_jsx("div", { className: "border-b border-border", children: chatNotice })) : null, (mode === "chat" || (mode === "cli" && canUseCodeTools)) &&
|
|
469
|
+
const renderChatHeader = useCallback(({ tabs, activeTabId, setActiveTabId, addTab, closeTab, closeOtherTabs, closeAllTabs, showHistory, toggleHistory, }) => (_jsxs("div", { className: "flex flex-col shrink-0", children: [_jsxs("div", { className: AGENT_PANEL_HEADER_CLASS, style: AGENT_PANEL_HEADER_STYLE, children: [_jsx("div", { className: "flex min-w-0 flex-1 items-center gap-1 overflow-hidden", children: renderModeButtons(mode) }), _jsx("div", { className: "flex items-center gap-0.5", children: renderHeaderActions(activeTabId) })] }), mode === "chat" && chatNotice ? (_jsx("div", { className: "border-b border-border", children: chatNotice })) : null, (mode === "chat" || (mode === "cli" && canUseCodeTools)) &&
|
|
474
470
|
(() => {
|
|
475
471
|
// Compute parent/child tab groups for the sub-tab bar
|
|
476
472
|
const activeTab = tabs.find((t) => t.id === activeTabId);
|