Files
fusion/plugins/fusion-plugin-agent-browser/src/setup.ts
Fusion 43261694fe feat(FN-3573): broaden runtime ignore list for live fusion app paths (+2 more)
Commits merged:
- chore(test-isolation): broaden runtime ignore list for live fusion app paths
- feat(FN-3573): complete Step 2 — add plugin setup API client helpers
- feat(FN-3573): complete Step 1 — backfill plugin setup routes

Files changed:
plugins/fusion-plugin-agent-browser/README.md      | 26 ++++++
 plugins/fusion-plugin-agent-browser/manifest.json  | 15 ++++
 plugins/fusion-plugin-agent-browser/package.json   | 25 ++++++
 .../src/__tests__/index.test.ts                    | 66 +++++++++++++++
 .../src/__tests__/prompts.test.ts                  | 21 +++++
 .../src/__tests__/setup.test.ts                    | 39 +++++++++
 .../src/__tests__/skills.test.ts                   |  9 ++
 .../src/__tests__/tools.test.ts                    | 55 ++++++++++++
 .../src/__tests__/types.test.ts                    | 16 ++++
 .../src/__tests__/workflow-steps.test.ts           | 10 +++
 plugins/fusion-plugin-agent-browser/src/index.ts   | 67 +++++++++++++++
 plugins/fusion-plugin-agent-browser/src/probe.ts   | 98 ++++++++++++++++++++++
 plugins/fusion-plugin-agent-browser/src/prompts.ts | 23 +++++
 plugins/fusion-plugin-agent-browser/src/setup.ts   | 31 +++++++
 plugins/fusion-plugin-agent-browser/src/skills.ts  | 12 +++
 plugins/fusion-plugin-agent-browser/src/tools.ts   | 34 ++++++++
 plugins/fusion-plugin-agent-browser/src/types.ts   | 56 +++++++++++++
 .../src/workflow-steps.ts                          | 15 ++++
 plugins/fusion-plugin-agent-browser/tsconfig.json  |  9 ++
 .../fusion-plugin-agent-browser/vitest.config.ts   | 22 +++++
 pnpm-lock.yaml                                     | 16 ++++
 pnpm-workspace.yaml                                |  1 +
 22 files changed, 666 insertions(+)

Fusion-Task-Id: FN-3573
2026-05-06 15:06:24 -07:00

32 lines
1.1 KiB
TypeScript

import type { PluginContext, PluginSetupCheckResult, PluginSetupHooks, PluginSetupManifest } from "@fusion/plugin-sdk";
import { probeAgentBrowserBinary } from "./probe.js";
import { resolveSettings } from "./types.js";
export const setupManifest: PluginSetupManifest = {
binaryName: "agent-browser",
description: "Headless browser runtime for web-enabled agents",
channel: "stable",
defaultTimeoutMs: 120000,
};
const MAX_PROBE_TIMEOUT_MS = 30_000;
export async function checkSetup(ctx: PluginContext): Promise<PluginSetupCheckResult> {
const settings = resolveSettings(ctx.settings);
const probe = await probeAgentBrowserBinary({ timeoutMs: Math.min(settings.commandTimeoutMs, MAX_PROBE_TIMEOUT_MS) });
if (probe.available) {
return { status: "installed", version: probe.version, binaryPath: probe.binaryPath };
}
const reason = probe.reason ?? "agent-browser probe failed";
if (probe.notFound === true) {
return { status: "not-installed", error: reason };
}
return { status: "error", error: reason };
}
export const setupHooks: PluginSetupHooks = {
checkSetup,
};