omni-notify-mcp 1.3.291 → 1.3.292

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.
@@ -176,15 +176,22 @@ function turnMirror(meta,turn){
176
176
  back.onclick=goBack;
177
177
  note.textContent="Turn "+turn+" is running — its live output is shown here, and this session's native CLI opens here the moment it ends.";
178
178
  var STYLE={thinking:"\\x1b[2;3m",doing:"\\x1b[36m⏺ ",turn:"\\x1b[1m",output:""};
179
- function draw(frame){term.write((STYLE[frame.kind]||"")+String(frame.text).replace(/\\r?\\n/g,"\\r\\n")+"\\x1b[0m\\r\\n");}
180
- function ends(frame){return frame.kind==="turn"&&frame.turn===turn&&(frame.event==="answer"||frame.event==="failed"||frame.event==="stopped");}
179
+ var kindOpen;
180
+ function draw(frame){
181
+ var delta=frame.kind==="thinking"||frame.kind==="output",text=String(frame.text).replace(/\\r?\\n/g,"\\r\\n");
182
+ if(delta&&frame.kind===kindOpen){term.write(text);return;}
183
+ term.write((kindOpen?"\\x1b[0m\\r\\n":"")+(STYLE[frame.kind]||"")+text+(delta?"":"\\x1b[0m\\r\\n"));
184
+ kindOpen=delta?frame.kind:undefined;
185
+ }
186
+ function ends(frame){return frame.kind==="turn"&&frame.turn===turn&&(frame.event==="answer"||frame.event==="failed");}
181
187
  (async function(){
182
188
  var response=await fetch("/v1/conversations/"+meta.id+"/stream",{headers:{authorization:"Bearer "+token},signal:reading.signal});
183
189
  if(!response.ok)throw Error((await response.json()).error||"The live output could not be read.");
184
190
  var reader=response.body.getReader(),decoder=new TextDecoder(),pending="";
185
191
  for(;;){
186
192
  var chunk=await reader.read();
187
- if(chunk.done||mine!==view)return;
193
+ if(mine!==view)return;
194
+ if(chunk.done){note.textContent="The live output ended before turn "+turn+" did — open this session again to continue.";return;}
188
195
  pending+=decoder.decode(chunk.value,{stream:true});
189
196
  var blocks=pending.split("\\n\\n");pending=blocks.pop();
190
197
  for(var block of blocks){
@@ -192,7 +199,7 @@ function turnMirror(meta,turn){
192
199
  var frame=JSON.parse(block.slice(6));draw(frame);
193
200
  if(!ends(frame))continue;
194
201
  var fresh=await api("GET","/v1/conversations/"+meta.id);
195
- if(mine===view)openCli(fresh);
202
+ if(mine===view)await openCli(fresh);
196
203
  return;
197
204
  }
198
205
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omni-notify-mcp",
3
- "version": "1.3.291",
3
+ "version": "1.3.292",
4
4
  "description": "Reach your AI agents from anywhere — and let them reach you. One stdio process serves the whole tool surface to Claude Code, GitHub Copilot Chat and Codex: desktop, Telegram, Slack, ntfy, Discord, Teams and SMS are configured in one file, and agents notify you when long work finishes or a decision is needed, ask you a question and wait for your answer, and receive and reply to the messages you send them — with Do Not Disturb and idle detection deciding what actually gets through.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",