@sema-agent/core
Version:
Stateless, task-oriented AI agent core
19 lines (18 loc) • 1.42 kB
JavaScript
export const BANDS = Object.freeze([
{ id: "role", policy: "overridable", ops: { center: ["replace", "append"], deploy: ["replace", "append", "add"], task: ["replace"] }, addRank: 99, modsEvent: "prompt.compose" },
{ id: "scenario", policy: "add-only", ops: { center: ["add"], deploy: ["add", "drop"], task: [] }, addRank: 350, modsEvent: "prompt.compose" },
{ id: "task-append", policy: "add-only", ops: { center: [], deploy: [], task: ["add"] }, addRank: 400, modsEvent: "prompt.compose" },
{ id: "behavior", policy: "add-only", ops: { center: ["add"], deploy: ["add", "drop"], task: [] }, addRank: 460, modsEvent: "prompt.compose" },
{ id: "core-behavior", policy: "overridable-restricted", ops: { center: ["replace", "append", "drop"], deploy: ["replace", "append", "drop"], task: [] }, modsEvent: "prompt.compose" },
{ id: "constitution", policy: "locked", ops: { center: [], deploy: [], task: [] } },
{ id: "discovery", policy: "fact", ops: { center: [], deploy: ["replace", "drop"], task: ["replace", "drop"] }, modsEvent: "prompt.section" },
{ id: "environment", policy: "fact", ops: { center: [], deploy: [], task: [] } },
{ id: "memory", policy: "fact", ops: { center: [], deploy: [], task: [] } },
]);
const BY_ID = new Map(BANDS.map((b) => [b.id, b]));
export function bandOf(id) {
return BY_ID.get(id);
}
export function isBandId(id) {
return BY_ID.has(id);
}