UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

27 lines (26 loc) • 1.21 kB
export function newDelegationProvenanceAggregate() { return { version: 1, coverageStartTurn: 0, sawExternal: false, incomplete: false }; } export function narrowContentSafety(parent, own) { if (parent === undefined) { return { trustedTools: new Set(own?.trustedTools ?? []), execIsExternalContent: own?.execIsExternalContent ?? false }; } const fromParent = new Set(parent.trustedTools); const trustedTools = own === undefined ? fromParent : new Set([...fromParent].filter((t) => own.trustedTools.has(t))); return { trustedTools, execIsExternalContent: parent.execIsExternalContent || (own?.execIsExternalContent ?? false) }; } export function reduceDelegationAttestation(agg, opts) { if (agg === undefined) return "unknown"; if (agg.sawExternal) return "external"; if (agg.incomplete || !opts.completed || agg.version !== 1 || agg.coverageStartTurn !== 0) return "unknown"; return "clean"; } export function readCardAttestation(details) { if (details === null || typeof details !== "object") return undefined; const v = details.attestation; return v === "clean" || v === "external" || v === "unknown" ? v : undefined; }