mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 01:21:20 -04:00
30 lines
1.1 KiB
JavaScript
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 };
|
|
},
|
|
};
|