@sema-agent/core
Version:
Stateless, task-oriented AI agent core
17 lines (16 loc) • 833 B
JavaScript
const RULE_SOURCE_PHRASE = {
session: { bare: "a session rule", named: "session rule" },
permission: { bare: "a permission rule", named: "permission rule" },
narrowing: { bare: "a narrowing policy layer", named: "narrowing policy layer" },
};
export function ruleSourcePhrase(source) {
return RULE_SOURCE_PHRASE[source].bare;
}
export function ruleDenialSentence(spec) {
const phrase = RULE_SOURCE_PHRASE[spec.source];
const by = spec.rule === undefined ? phrase.bare : `${phrase.named} ${JSON.stringify(spec.rule)}`;
const head = spec.tool === undefined ? "" : `tool ${JSON.stringify(spec.tool)} is `;
const origin = spec.origin === undefined ? "" : ` (${spec.origin})`;
const detail = spec.detail === undefined ? "" : `: ${spec.detail}`;
return `${head}denied by ${by}${origin}${detail}`;
}