UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

17 lines (16 loc) • 833 B
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}`; }