diff --git a/com.streamdock.ai-monitor.sdPlugin/plugin/index.js b/com.streamdock.ai-monitor.sdPlugin/plugin/index.js index 82b860d..1956f01 100644 --- a/com.streamdock.ai-monitor.sdPlugin/plugin/index.js +++ b/com.streamdock.ai-monitor.sdPlugin/plugin/index.js @@ -100,6 +100,20 @@ function T(key) { } var PRIORITY = ['error','working','typing','thinking','prompt','done','idle']; + +// Status icons +var STATUS_ICONS = {}; +(function loadIcons() { + var icons = {thinking:'thinking.gif',working:'working.gif',typing:'typing.gif',done:'done.gif',error:'error.gif'}; + Object.keys(icons).forEach(function(k) { + try { + var file = icons[k]; + var ext = file.split('.').pop().toLowerCase(); + var mime = ext === 'png' ? 'image/png' : ext === 'gif' ? 'image/gif' : 'image/svg+xml'; + STATUS_ICONS[k] = 'data:' + mime + ';base64,' + fs.readFileSync(path.join(__dirname, '..', 'static', 'img', file)).toString('base64'); + } catch(_) {} + }); +})(); var states = {}; // per-context state: { agent, currentState, lastActivity, offsets, timer, logoUri } function makeSvg(fill, label, blink, breathe) { @@ -112,18 +126,17 @@ function makeSvg(fill, label, blink, breathe) { function setDisplay(ctx, state) { var d = STATUS[state] || STATUS['idle']; var ss = states[ctx]; - if (state === 'idle' && ss && ss.agent) { - // Use relative PNG path for idle + if (state === 'idle' && ss && ss.agent && ss.agent.logoFile) { plugin.setTitle(ctx, ''); plugin.setImage(ctx, 'static/img/' + ss.agent.logoFile); } else { plugin.setTitle(ctx, d.title); - var svg = ''; - var anim = ''; - if (d.blink) anim = ''; - else if (d.breathe) anim = ''; - svg += '' + anim + ''; - plugin.setImage(ctx, 'data:image/svg+xml;charset=utf-8,' + svg); + var icon = STATUS_ICONS[state]; + if (icon) { + plugin.setImage(ctx, icon); + } else { + plugin.setImage(ctx, ''); + } } } diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/claude-icon.svg b/com.streamdock.ai-monitor.sdPlugin/static/img/claude-icon.svg deleted file mode 100644 index 5d8d746..0000000 --- a/com.streamdock.ai-monitor.sdPlugin/static/img/claude-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/codex-icon.svg b/com.streamdock.ai-monitor.sdPlugin/static/img/codex-icon.svg deleted file mode 100644 index 43695ae..0000000 --- a/com.streamdock.ai-monitor.sdPlugin/static/img/codex-icon.svg +++ /dev/null @@ -1,6 +0,0 @@ - - Codex - - CX - Codex - diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/done.gif b/com.streamdock.ai-monitor.sdPlugin/static/img/done.gif new file mode 100644 index 0000000..e9737a6 Binary files /dev/null and b/com.streamdock.ai-monitor.sdPlugin/static/img/done.gif differ diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/error.gif b/com.streamdock.ai-monitor.sdPlugin/static/img/error.gif new file mode 100644 index 0000000..7f7e2b1 Binary files /dev/null and b/com.streamdock.ai-monitor.sdPlugin/static/img/error.gif differ diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/opencode-icon.svg b/com.streamdock.ai-monitor.sdPlugin/static/img/opencode-icon.svg deleted file mode 100644 index 5bd33e1..0000000 --- a/com.streamdock.ai-monitor.sdPlugin/static/img/opencode-icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - opencode - - >_ - diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/thinking.gif b/com.streamdock.ai-monitor.sdPlugin/static/img/thinking.gif new file mode 100644 index 0000000..e0777b3 Binary files /dev/null and b/com.streamdock.ai-monitor.sdPlugin/static/img/thinking.gif differ diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/typing.gif b/com.streamdock.ai-monitor.sdPlugin/static/img/typing.gif new file mode 100644 index 0000000..b5e88f4 Binary files /dev/null and b/com.streamdock.ai-monitor.sdPlugin/static/img/typing.gif differ diff --git a/com.streamdock.ai-monitor.sdPlugin/static/img/working.gif b/com.streamdock.ai-monitor.sdPlugin/static/img/working.gif new file mode 100644 index 0000000..09433f0 Binary files /dev/null and b/com.streamdock.ai-monitor.sdPlugin/static/img/working.gif differ