UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

21 lines (20 loc) • 1.05 kB
import { assembledRoleRefused, lockedTextIn } from "./overlay.js"; const SUGAR = { source: "task", by: "sugar" }; export function sugarOverlays(inputs) { const roleBase = inputs.spec.systemPrompt ?? inputs.resolvedRole.systemPrompt ?? inputs.internals?.defaultSystemPrompt; const append = inputs.spec.appendSystemPrompt; const out = []; if (roleBase !== undefined) { const hits = lockedTextIn(roleBase); if (hits.length > 0) throw assembledRoleRefused("the task's role text (systemPrompt)", hits); out.push({ overlay: Object.freeze({ id: "core/role.base", op: "replace", target: "core/role.base", text: roleBase }), origin: SUGAR }); } if (append !== undefined) { const hits = lockedTextIn(append); if (hits.length > 0) throw assembledRoleRefused("the task's appendSystemPrompt", hits); out.push({ overlay: Object.freeze({ id: "core/role.append", op: "add", target: "task-append", text: append }), origin: SUGAR }); } return Object.freeze(out); }