@sema-agent/core
Version:
Stateless, task-oriented AI agent core
21 lines (20 loc) • 1.05 kB
JavaScript
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);
}