Files
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

29 lines
883 B
TypeScript

import type { BrowserNodeFeature } from "@tutti-os/browser-node";
export function createAgentToolBrowserPage(
feature: BrowserNodeFeature,
surfaceNodeId: string,
defaultUrl: string,
url?: string | null
): string {
const resolvedUrl = url?.trim() || "about:blank";
const state = feature.tabsStore.ensureSurface(surfaceNodeId, defaultUrl, {
materializeCold: true
});
const activeTab = state.tabs.find((tab) => tab.id === state.activeTabId);
const activeRuntime = activeTab
? feature.runtimeStore.getNodeState(activeTab.nodeId)
: null;
if (
state.tabs.length === 1 &&
activeTab?.defaultUrl === "about:blank" &&
!activeRuntime?.url
) {
feature.tabsStore.syncDefaultUrl(surfaceNodeId, resolvedUrl);
return activeTab.nodeId;
}
return feature.tabsStore.addTab(surfaceNodeId, resolvedUrl, {
materializeCold: true
}).nodeId;
}