Files
MultiRoombaRover/server/src/services/overseerControlService/tools/memoryWrite.js
T
2026-05-04 01:33:09 -04:00

30 lines
1.1 KiB
JavaScript

module.exports = {
id: 'memory_write',
signature: 'memory_write(slot, text)',
description: 'Write one of 3 scratchpad slots for short-term reminders.',
parameters: {
type: 'object',
properties: {
slot: { type: 'integer', minimum: 1, maximum: 3 },
text: { type: 'string', minLength: 1, maxLength: 180 },
},
required: ['slot', 'text'],
additionalProperties: false,
},
availability() {
return { available: true, reason: null };
},
async execute({ args = {}, memoryStore }) {
const slot = Math.max(1, Math.min(3, Number(args?.slot) || 0));
if (!slot) throw new Error('memory_write requires args.slot 1..3');
const text = String(args?.text || '').trim();
if (!text) throw new Error('memory_write requires args.text');
const next = memoryStore && typeof memoryStore === 'object' ? { ...memoryStore } : {};
const slots = Array.isArray(next.slots) ? [...next.slots] : ['', '', ''];
while (slots.length < 3) slots.push('');
slots[slot - 1] = text.slice(0, 180);
next.slots = slots.slice(0, 3);
return { ok: true, memory: next };
},
};