mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 01:21:20 -04:00
promp
This commit is contained in:
@@ -22,6 +22,7 @@ Actions:
|
|||||||
|
|
||||||
Chat output:
|
Chat output:
|
||||||
- Always use English.
|
- Always use English.
|
||||||
|
- Not everyone is always talking to you. Sometimes people talk to themselves or others.
|
||||||
- If speaking, send one short in-character live-chat line.
|
- If speaking, send one short in-character live-chat line.
|
||||||
- Keep it concise and informal (roughly 3-14 words).
|
- Keep it concise and informal (roughly 3-14 words).
|
||||||
- Chat output must be spoken text only.
|
- Chat output must be spoken text only.
|
||||||
|
|||||||
@@ -17,9 +17,10 @@ function toStateUpdate({ mode, homeAssistantState, neatoState, liftState, roster
|
|||||||
}
|
}
|
||||||
const roverLines = (Array.isArray(roster) ? roster : []).slice(0, 6).map((rover) => {
|
const roverLines = (Array.isArray(roster) ? roster : []).slice(0, 6).map((rover) => {
|
||||||
const roverId = rover?.id || 'unknown';
|
const roverId = rover?.id || 'unknown';
|
||||||
const driver = rover?.driverNickname || 'none';
|
const drivers = Array.isArray(rover?.drivers) ? rover.drivers.filter(Boolean) : [];
|
||||||
|
const driver = drivers.length ? drivers.join(',') : 'none';
|
||||||
const status = rover?.statusTag || 'unknown';
|
const status = rover?.statusTag || 'unknown';
|
||||||
return `- ${roverId} status=${status} driver=${driver}`;
|
return `- ${roverId} status=${status} drivers=${driver}`;
|
||||||
});
|
});
|
||||||
if (roverLines.length) {
|
if (roverLines.length) {
|
||||||
lines.push('rovers:');
|
lines.push('rovers:');
|
||||||
|
|||||||
@@ -126,11 +126,34 @@ function buildRosterSummary() {
|
|||||||
return roverManager
|
return roverManager
|
||||||
.getRoster()
|
.getRoster()
|
||||||
.filter((rover) => roverManager.canReplayRoverId(rover?.id))
|
.filter((rover) => roverManager.canReplayRoverId(rover?.id))
|
||||||
.map((rover) => ({
|
.map((rover) => {
|
||||||
id: rover?.id || 'unknown',
|
const roverId = String(rover?.id || '');
|
||||||
statusTag: rover?.statusTag || 'unknown',
|
const record = roverManager.rovers.get(roverId);
|
||||||
driverNickname: rover?.driverNickname || null,
|
const driverSocketIds = record?.drivers ? Array.from(record.drivers) : [];
|
||||||
}));
|
const drivers = driverSocketIds
|
||||||
|
.map((socketId) => {
|
||||||
|
const socket = io.sockets.sockets.get(socketId);
|
||||||
|
const nickname = String(socket?.data?.nickname || socket?.data?.user?.username || '').trim();
|
||||||
|
return nickname || socketId;
|
||||||
|
})
|
||||||
|
.filter(Boolean);
|
||||||
|
const sensors = record?.lastSensor?.decoded || {};
|
||||||
|
const docked = Boolean(record?.docked || sensors?.chargingSources?.homeBase);
|
||||||
|
const oiMode = String(sensors?.oiMode?.label || '').toLowerCase();
|
||||||
|
let statusTag = 'docking';
|
||||||
|
if (docked) {
|
||||||
|
statusTag = 'docked';
|
||||||
|
} else if (oiMode === 'safe' || oiMode === 'full') {
|
||||||
|
statusTag = 'driving';
|
||||||
|
} else if (oiMode === 'passive' || oiMode === 'off' || oiMode === 'unknown' || !oiMode) {
|
||||||
|
statusTag = 'docking';
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
id: roverId || 'unknown',
|
||||||
|
statusTag,
|
||||||
|
drivers,
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function computeTriggerReason() {
|
function computeTriggerReason() {
|
||||||
|
|||||||
Reference in New Issue
Block a user