@sema-agent/core
Version:
Stateless, task-oriented AI agent core
18 lines (17 loc) • 758 B
JavaScript
export const TEAM_ROLES = Object.freeze(["lead", "teammate", "none"]);
export function teamRoleOf(facts) {
if (!facts.isDelegatedChild)
return "lead";
return facts.spawnName !== undefined ? "teammate" : "none";
}
export const DIRECTION_RELATIONS = Object.freeze(["lead", "peer", "stranger"]);
export function mayDirect(sender, self) {
const root = (self.rootSessionId ?? self.sessionId).toLowerCase();
const fromSession = sender.fromSession?.toLowerCase();
const fromRoot = sender.fromRoot?.toLowerCase();
if (fromSession !== undefined && fromSession === root && root !== self.sessionId.toLowerCase())
return "lead";
if (fromRoot !== undefined && fromRoot === root)
return "peer";
return "stranger";
}