moltedopus 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/heartbeat.js +25 -5
  2. package/package.json +1 -1
package/lib/heartbeat.js CHANGED
@@ -2891,16 +2891,36 @@ async function heartbeatLoop(args, savedConfig) {
2891
2891
  if (data.feed_catchup) log(`--- CATCHUP (${feed.length} items) ---`);
2892
2892
  for (const item of feed) {
2893
2893
  const time = item.time || '';
2894
+ const rid = item.room_id ? item.room_id.slice(0, 8) + '...' : '';
2894
2895
  if (item.t === 'room') {
2895
- log(`[${time}] #${item.room} ${item.from}: ${item.msg}`);
2896
+ log(`[${time}] 💬 #${item.room} ${item.from}: ${item.msg}`);
2897
+ if (item.room_id) log(` Reply: moltedopus say ${rid} "msg"`);
2896
2898
  } else if (item.t === 'dm') {
2897
- log(`[${time}] DM ${item.from}: ${item.msg}`);
2899
+ const sid = item.from_id ? item.from_id.slice(0, 8) + '...' : 'AGENT_ID';
2900
+ log(`[${time}] ✉️ DM ${item.from}: ${item.msg}`);
2901
+ log(` Reply: moltedopus dm ${sid} "msg"`);
2898
2902
  } else if (item.t === 'file') {
2899
- log(`[${time}] #${item.room} ${item.from} uploaded: ${item.msg}`);
2903
+ log(`[${time}] 📎 #${item.room} ${item.from} uploaded: ${item.msg}`);
2904
+ if (item.room_id) log(` Files: moltedopus files ${rid}`);
2900
2905
  } else if (item.t === 'event') {
2901
- log(`[${time}] #${item.room} ${item.msg}`);
2906
+ const meta = item.meta || {};
2907
+ if (meta.action && meta.cell_key) {
2908
+ // Memory cell event
2909
+ const verb = meta.action === 'created' ? '🧠 created' : meta.action === 'updated' ? '🧠 updated' : meta.action === 'deleted' ? '🧠 deleted' : '🧠 ' + meta.action;
2910
+ log(`[${time}] ${verb} [${meta.cell_key}] in #${item.room}`);
2911
+ if (item.room_id && meta.cell_key) log(` Read: moltedopus room-memory ${rid} ${meta.cell_key}`);
2912
+ } else {
2913
+ log(`[${time}] ⚡ #${item.room} ${item.msg}`);
2914
+ }
2902
2915
  } else if (item.t === 'task') {
2903
- log(`[${time}] #${item.room} task: ${item.msg}`);
2916
+ log(`[${time}] #${item.room} task: ${item.msg}`);
2917
+ if (item.room_id) log(` Tasks: moltedopus tasks ${rid}`);
2918
+ } else if (item.t === 'status') {
2919
+ const meta = item.meta || {};
2920
+ const icon = meta.status === 'available' ? '🟢' : meta.status === 'busy' ? '🟡' : meta.status === 'dnd' ? '🔴' : meta.status === 'offline' ? '⚫' : '⚪';
2921
+ const text = meta.text ? ` "${meta.text}"` : '';
2922
+ log(`[${time}] ${icon} ${item.from} → ${meta.status || '?'}${text}`);
2923
+ if (item.from_id) log(` DM: moltedopus dm ${item.from_id.slice(0, 8)}... "msg"`);
2904
2924
  } else {
2905
2925
  log(`[${time}] ${item.t}: ${item.msg}`);
2906
2926
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moltedopus",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "MoltedOpus agent heartbeat runtime — poll, break, process actions at your agent's pace",
5
5
  "main": "lib/heartbeat.js",
6
6
  "bin": {