20 lines
942 B
JavaScript
20 lines
942 B
JavaScript
// DevDesk "Claude needs you" (devdesk#28)
|
|||
|
|
// Receives: { session, message, url, host, text } from devdesk-notify-matrix on
|
||
|
|
// CT 126 when a Claude session waits for input and no browser tab or SSH client
|
||
|
|
// is attached to it.
|
||
|
|
var session = String(data.session || 'a session');
|
||
|
|
var message = String(data.message || 'Claude is waiting for your input');
|
||
|
|
var url = data.url ? String(data.url) : '';
|
||
|
|
function esc(t) {
|
||
|
|
return t.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
||
|
|
}
|
||
|
|
// m.text, not m.notice: notices are muted by default push rules, and this one
|
||
|
|
// exists to reach your phone.
|
||
|
|
result = {
|
||
|
|
version: 'v2',
|
||
|
|
plain: '🔔 Claude needs you in ' + session + ': ' + message + (url ? ' — ' + url : ''),
|
||
|
|
html: '🔔 <b>Claude needs you</b> in <code>' + esc(session) + '</code>: ' + esc(message)
|
||
|
|
+ (url ? ' — <a href="' + esc(url) + '">open in DevDesk</a>' : ''),
|
||
|
|
msgtype: 'm.text',
|
||
|
|
};
|