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
29 lines
883 B
TypeScript
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;
|
|
}
|