Files
tutti/packages/agent/gui/workbench/browser-element-context/registerBrowserElementMention.tsx
T
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

30 lines
1.1 KiB
TypeScript

import { Badge } from "@tutti-os/ui-system";
import { InspectIcon } from "@tutti-os/ui-system/icons";
import { registerAgentCustomMentionKind } from "../../custom-mention";
import {
browserElementMentionKind,
presentBrowserElementMention
} from "./browserElementMention";
/** Registers browser DOM references before the first AgentGUI surface mounts. */
export function registerBrowserElementMention(): void {
registerAgentCustomMentionKind({
kind: browserElementMentionKind,
materializePromptText: (mention) => {
const context = mention.scope?.context?.trim();
return context ? `\n${context}\n` : null;
},
present: presentBrowserElementMention,
renderChip: ({ name }) => (
<Badge
className="h-5 max-w-full gap-1.5 rounded-[6px] px-2 py-0 font-[var(--font-mono)] text-[13px] font-semibold leading-5"
data-agent-browser-element-chip="true"
variant="accent"
>
<InspectIcon aria-hidden="true" className="size-3.5 shrink-0" />
<span className="truncate">{name}</span>
</Badge>
)
});
}