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.
- package/dist/gateway/terminalPage.js +11 -4
- package/package.json +1 -1
|
@@ -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
|
-
|
|
180
|
-
function
|
|
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(
|
|
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.
|
|
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",
|