UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

22 lines (21 loc) • 1.15 kB
import { adjudicateDerivedRoute, fallbackToPrimaryNotice, sameRouteIdentity, unroutableSeatNotice } from "../../brain/route-adjudicator.js"; import { deliverEngineNotice } from "../types.js"; export async function derivedRouteFallsBack(args) { try { if (sameRouteIdentity(args.derived, args.primary)) return false; const verdict = await adjudicateDerivedRoute({ brain: args.brain, model: args.derived, getApiKeyAndHeaders: args.getApiKeyAndHeaders }); if (verdict === undefined || verdict.ok) return false; const shared = { seat: args.seat, from: args.derived.id, verdict, ...(args.sessionId !== undefined ? { sessionId: args.sessionId } : {}), ...(args.runId !== undefined ? { runId: args.runId } : {}) }; const refuse = args.onBrokenPairing === "refuse"; if (refuse) deliverEngineNotice(args.onNotice, unroutableSeatNotice({ ...shared, primary: args.primary.id })); else deliverEngineNotice(args.onNotice, fallbackToPrimaryNotice({ ...shared, to: args.primary.id })); return !refuse; } catch { return false; } }