conductor-remote 1.53.1 → 1.53.2
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/index.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<title>Conductor Remote</title>
|
|
14
14
|
<!-- Runs before the module bundle so it can catch a stale shell that fails to boot. -->
|
|
15
15
|
<script src="/self-heal.js"></script>
|
|
16
|
-
<script type="module" crossorigin src="/assets/index-
|
|
16
|
+
<script type="module" crossorigin src="/assets/index-CQuR_IG3.js"></script>
|
|
17
17
|
<link rel="stylesheet" crossorigin href="/assets/index-CNdG7lFR.css">
|
|
18
18
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
|
19
19
|
<body>
|
package/dist/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(s[o])return;let l={};const t=e=>i(e,o),c={module:{uri:o},exports:l,require:t};s[o]=Promise.all(n.map(e=>c[e]||t(e))).then(e=>(r(...e),l))}}define(["./workbox-9c191d2f"],function(e){"use strict";importScripts("/push-sw.js"),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.clientsClaim(),e.precacheAndRoute([{url:"self-heal.js",revision:"49bd63adb25a09341f8d2610e8bd3c76"},{url:"push-sw.js",revision:"e1e682e2e5e88fa03b7808ae9db8e098"},{url:"index.html",revision:"
|
|
1
|
+
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(s[o])return;let l={};const t=e=>i(e,o),c={module:{uri:o},exports:l,require:t};s[o]=Promise.all(n.map(e=>c[e]||t(e))).then(e=>(r(...e),l))}}define(["./workbox-9c191d2f"],function(e){"use strict";importScripts("/push-sw.js"),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.clientsClaim(),e.precacheAndRoute([{url:"self-heal.js",revision:"49bd63adb25a09341f8d2610e8bd3c76"},{url:"push-sw.js",revision:"e1e682e2e5e88fa03b7808ae9db8e098"},{url:"index.html",revision:"6fd3f4c8b836fbae3791d6d273888b16"},{url:"assets/workbox-window.prod.es5-BBnX5xw4.js",revision:null},{url:"assets/index-CQuR_IG3.js",revision:null},{url:"assets/index-CNdG7lFR.css",revision:null},{url:"apple-touch-icon.png",revision:"2b9301416b880d45d4bb655f2600d1f2"},{url:"icon-192.png",revision:"c5e01ac58768627e18ee7b8b6a9239ef"},{url:"icon-512.png",revision:"a40638c55e310312457a621c9a0002c8"},{url:"icon-maskable-512.png",revision:"a40638c55e310312457a621c9a0002c8"},{url:"icon.svg",revision:"c1aee186821798733dd477e69a0ef243"},{url:"manifest.webmanifest",revision:"cf88fbc5755108a7fe0616fa160a8a15"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api\//]}))});
|
package/dist-node/src/notify.js
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
* Accessibility, no AppleScript, no window has to exist. A Conductor update can
|
|
9
9
|
* rename every UI string and notifications keep working.
|
|
10
10
|
*
|
|
11
|
-
* What counts as news is deliberately narrow
|
|
12
|
-
* signal Conductor records
|
|
13
|
-
* - `working → idle`
|
|
14
|
-
* "asked you a question" and "
|
|
15
|
-
* three end the turn.
|
|
11
|
+
* What counts as news is deliberately narrow. `sessions.status` is the only
|
|
12
|
+
* signal Conductor records. A normal turn ends in one of three states:
|
|
13
|
+
* - `working → idle | needs_plan_response | needs_user_input` means the turn ended.
|
|
14
|
+
* This is *the* event: it covers "done", "asked you a question" and "plan ready"
|
|
15
|
+
* alike, because all three end the turn.
|
|
16
16
|
* - `→ error` — the agent stopped badly.
|
|
17
17
|
* There is no permission-request table to watch (verified against the schema), so
|
|
18
18
|
* don't go looking for a finer-grained trigger; there isn't one.
|
|
@@ -247,6 +247,10 @@ function askedBy(state) {
|
|
|
247
247
|
return '';
|
|
248
248
|
return `${state.turnStartedAt ?? ''}|${state.lastUserMessageAt ?? ''}`;
|
|
249
249
|
}
|
|
250
|
+
/** Statuses that keep a completed turn open until the person responds. */
|
|
251
|
+
function turnEnded(status) {
|
|
252
|
+
return status === 'idle' || status === 'needs_plan_response' || status === 'needs_user_input';
|
|
253
|
+
}
|
|
250
254
|
/**
|
|
251
255
|
* The status state machine, kept apart from the store and the network so it can be
|
|
252
256
|
* driven a tick at a time by `scripts/check-notify.ts`. Every rule in it is a rule
|
|
@@ -307,7 +311,7 @@ export class TurnWatcher {
|
|
|
307
311
|
if (pendingKind) {
|
|
308
312
|
this.armed.delete(state.sessionId);
|
|
309
313
|
// Confirmed only if the new status held for a second step; a flap just drops the arm.
|
|
310
|
-
const held = (pendingKind === 'done' && now
|
|
314
|
+
const held = (pendingKind === 'done' && turnEnded(now)) || (pendingKind === 'error' && now === 'error');
|
|
311
315
|
if (held && !(pendingKind === 'done' && this.selfScheduled(state))) {
|
|
312
316
|
const asked = askedBy(state);
|
|
313
317
|
if (pendingKind === 'done' && asked)
|
|
@@ -320,7 +324,7 @@ export class TurnWatcher {
|
|
|
320
324
|
// contributes its status to the snapshot but is never itself news.
|
|
321
325
|
if (before === undefined)
|
|
322
326
|
continue;
|
|
323
|
-
if (before === 'working' && now
|
|
327
|
+
if (before === 'working' && turnEnded(now))
|
|
324
328
|
this.armed.set(state.sessionId, 'done');
|
|
325
329
|
else if (before !== 'error' && now === 'error')
|
|
326
330
|
this.armed.set(state.sessionId, 'error');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "conductor-remote",
|
|
3
|
-
"version": "1.53.
|
|
3
|
+
"version": "1.53.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"packageManager": "yarn@4.15.0",
|
|
6
6
|
"description": "Phone control panel for local Conductor agents. Reads ride SQLite + git; prompts ride Conductor's own dispatch path.",
|