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 = '';
- 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 @@
-
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 @@
-
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