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
This commit is contained in:
31
plugins/fusion-plugin-agent-browser/src/setup.ts
Normal file
31
plugins/fusion-plugin-agent-browser/src/setup.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
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,
|
||||
};
|
||||
Reference in New Issue
Block a user