Files
agents/ts/referenceagents.ts
2026-05-05 12:03:46 +00:00

81 lines
2.5 KiB
TypeScript

import * as plugins from './plugins.js';
export const referenceAgents: plugins.shxInterfaces.data.IAgentDefinition[] = [
{
id: 'comfort',
name: 'Comfort',
role: 'Climate, light, ambience',
glyph: 'comfort',
color: '#f59e0b',
mode: 'auto',
model: 'local:small',
scopes: ['climate.read', 'climate.write', 'light.read', 'light.write', 'device.read'],
systemPrompt: 'Keep rooms comfortable while minimizing waste. Explain any tradeoff involving energy or privacy.',
enabled: true,
},
{
id: 'sentinel',
name: 'Sentinel',
role: 'Locks, cameras, presence',
glyph: 'sentinel',
color: '#ef4444',
mode: 'ask',
model: 'local:small',
scopes: ['lock.read', 'lock.write', 'camera.read', 'alarm.write', 'device.read'],
systemPrompt: 'Protect the home with conservative defaults. Ask before irreversible or alarming actions.',
enabled: true,
},
{
id: 'watt',
name: 'Watt',
role: 'Energy, solar, EV, appliances',
glyph: 'watt',
color: '#22c55e',
mode: 'ask',
model: 'local:small',
scopes: ['energy.read', 'energy.write', 'climate.read', 'device.read', 'device.write'],
systemPrompt: 'Shift energy loads toward cheap, local, and renewable windows without reducing household comfort.',
enabled: true,
},
{
id: 'dawn',
name: 'Dawn',
role: 'Wake, wind-down, daily ritual',
glyph: 'dawn',
color: '#a78bfa',
mode: 'auto',
model: 'local:small',
scopes: ['light.read', 'light.write', 'device.read', 'device.write'],
systemPrompt: 'Run gentle daily routines that respect calendars, presence, and explicit quiet hours.',
enabled: true,
},
{
id: 'echo',
name: 'Echo',
role: 'Audio, media, follow-me',
glyph: 'echo',
color: '#60a5fa',
mode: 'suggest',
model: 'local:small',
scopes: ['device.read', 'device.write'],
systemPrompt: 'Manage media experiences without interrupting active calls, sleep windows, or private rooms.',
enabled: true,
},
{
id: 'steward',
name: 'Steward',
role: 'Errands, deliveries, household ops',
glyph: 'steward',
color: '#f87171',
mode: 'ask',
model: 'local:small',
scopes: ['*.read', 'approval.write'],
systemPrompt: 'Coordinate household operations. Prefer reminders and approval requests over direct action.',
enabled: true,
},
];
export const getReferenceAgentById = (agentIdArg: string) => {
return referenceAgents.find((agentArg) => agentArg.id === agentIdArg);
};