agentic-dev-loop 0.9.1__py3-none-any.whl → 0.9.2__py3-none-any.whl
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.
- agentic_dev_loop/viz/server.py +52 -15
- {agentic_dev_loop-0.9.1.dist-info → agentic_dev_loop-0.9.2.dist-info}/METADATA +1 -1
- {agentic_dev_loop-0.9.1.dist-info → agentic_dev_loop-0.9.2.dist-info}/RECORD +7 -7
- {agentic_dev_loop-0.9.1.dist-info → agentic_dev_loop-0.9.2.dist-info}/WHEEL +0 -0
- {agentic_dev_loop-0.9.1.dist-info → agentic_dev_loop-0.9.2.dist-info}/entry_points.txt +0 -0
- {agentic_dev_loop-0.9.1.dist-info → agentic_dev_loop-0.9.2.dist-info}/licenses/LICENSE +0 -0
- {agentic_dev_loop-0.9.1.dist-info → agentic_dev_loop-0.9.2.dist-info}/top_level.txt +0 -0
agentic_dev_loop/viz/server.py
CHANGED
|
@@ -456,6 +456,10 @@ PAGE = """<!doctype html>
|
|
|
456
456
|
border-radius: 6px; margin-top: 10px; display: none; }
|
|
457
457
|
.banner-success { background: #e8f5e9; color: #2e7d32; }
|
|
458
458
|
.banner-failure { background: #ffebee; color: #c62828; }
|
|
459
|
+
#stream-banner { display: none; position: fixed; top: 0; left: 0; right: 0;
|
|
460
|
+
z-index: 9999; background: #b26a00; color: #ffffff;
|
|
461
|
+
text-align: center; padding: 8px 12px; font-size: 14px;
|
|
462
|
+
font-weight: 700; }
|
|
459
463
|
#divider { flex: 0 0 6px; cursor: col-resize; background: #e0e0e0; }
|
|
460
464
|
#divider:hover, #divider.dragging { background: #9e9e9e; }
|
|
461
465
|
#sidebar { flex: 0 0 320px; border-left: 1px solid #e0e0e0; padding: 16px;
|
|
@@ -525,6 +529,7 @@ PAGE = """<!doctype html>
|
|
|
525
529
|
onerror="window.__mermaidFailed=true"></script>
|
|
526
530
|
</head>
|
|
527
531
|
<body>
|
|
532
|
+
<div id="stream-banner">connection lost, reconnecting...</div>
|
|
528
533
|
<div id="graph-panel">
|
|
529
534
|
<div id="mermaid-container"><p>Loading graph…</p></div>
|
|
530
535
|
<div id="run-banner"></div>
|
|
@@ -561,6 +566,9 @@ PAGE = """<!doctype html>
|
|
|
561
566
|
var liveElapsed = {};
|
|
562
567
|
var runStartWall = null;
|
|
563
568
|
var totalTimer = null;
|
|
569
|
+
var lastEventAt = 0;
|
|
570
|
+
var reconnectAttempts = 0;
|
|
571
|
+
var runActive = false;
|
|
564
572
|
var topologyReady = false;
|
|
565
573
|
var pendingEvents = [];
|
|
566
574
|
var MAX_CONSOLE = 500;
|
|
@@ -614,11 +622,12 @@ PAGE = """<!doctype html>
|
|
|
614
622
|
if (runStartWall === null) {
|
|
615
623
|
line.textContent = "";
|
|
616
624
|
line.style.display = "none";
|
|
617
|
-
|
|
625
|
+
} else {
|
|
626
|
+
line.textContent = "total " + mmss(Math.max(0,
|
|
627
|
+
Math.round(Date.now() / 1000 - runStartWall)));
|
|
628
|
+
line.style.display = "block";
|
|
618
629
|
}
|
|
619
|
-
|
|
620
|
-
Math.round(Date.now() / 1000 - runStartWall)));
|
|
621
|
-
line.style.display = "block";
|
|
630
|
+
if (runActive && Date.now() - lastEventAt > 10000) { recover(); }
|
|
622
631
|
}
|
|
623
632
|
|
|
624
633
|
function statusOf(n) {
|
|
@@ -1055,10 +1064,11 @@ PAGE = """<!doctype html>
|
|
|
1055
1064
|
flushPending();
|
|
1056
1065
|
stepTimes = {};
|
|
1057
1066
|
liveElapsed = {};
|
|
1067
|
+
runActive = true;
|
|
1058
1068
|
if (totalTimer !== null) { clearInterval(totalTimer); totalTimer = null; }
|
|
1059
1069
|
runStartWall = (typeof ev.started_at === "number")
|
|
1060
1070
|
? ev.started_at : null;
|
|
1061
|
-
|
|
1071
|
+
totalTimer = setInterval(renderTotal, 1000);
|
|
1062
1072
|
renderTotal();
|
|
1063
1073
|
clearConsoles();
|
|
1064
1074
|
resetVerdicts();
|
|
@@ -1137,6 +1147,7 @@ PAGE = """<!doctype html>
|
|
|
1137
1147
|
updateAttempt();
|
|
1138
1148
|
break;
|
|
1139
1149
|
case "run_finished":
|
|
1150
|
+
runActive = false;
|
|
1140
1151
|
if (totalTimer !== null) { clearInterval(totalTimer); totalTimer = null; }
|
|
1141
1152
|
if (ev.elapsed_seconds !== undefined) {
|
|
1142
1153
|
runStartWall = null;
|
|
@@ -1194,16 +1205,42 @@ PAGE = """<!doctype html>
|
|
|
1194
1205
|
}
|
|
1195
1206
|
}, 5000);
|
|
1196
1207
|
|
|
1197
|
-
var es =
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1208
|
+
var es = null;
|
|
1209
|
+
|
|
1210
|
+
function connectStream() {
|
|
1211
|
+
var stream = new EventSource("/events");
|
|
1212
|
+
stream.onmessage = function (e) {
|
|
1213
|
+
lastEventAt = Date.now();
|
|
1214
|
+
reconnectAttempts = 0;
|
|
1215
|
+
el("stream-banner").style.display = "none";
|
|
1216
|
+
var ev;
|
|
1217
|
+
try { ev = JSON.parse(e.data); }
|
|
1218
|
+
catch (err) { logLine("bad event: " + e.data); return; }
|
|
1219
|
+
if (!topologyReady) { pendingEvents.push(ev); return; }
|
|
1220
|
+
try { handle(ev); }
|
|
1221
|
+
catch (err) { logLine("bad event: " + e.data); }
|
|
1222
|
+
};
|
|
1223
|
+
stream.onerror = function () { logLine("event stream interrupted"); };
|
|
1224
|
+
return stream;
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
es = connectStream();
|
|
1228
|
+
|
|
1229
|
+
function recover() {
|
|
1230
|
+
el("stream-banner").style.display = "block";
|
|
1231
|
+
reconnectAttempts++;
|
|
1232
|
+
if (reconnectAttempts > 3) {
|
|
1233
|
+
location.reload();
|
|
1234
|
+
return;
|
|
1235
|
+
}
|
|
1236
|
+
es.close();
|
|
1237
|
+
es = connectStream();
|
|
1238
|
+
lastEventAt = Date.now();
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
document.addEventListener("visibilitychange", function () {
|
|
1242
|
+
if (runActive && Date.now() - lastEventAt > 10000) { recover(); }
|
|
1243
|
+
});
|
|
1207
1244
|
|
|
1208
1245
|
// Grab-handle between the graph and the sidebar: drag to resize the
|
|
1209
1246
|
// sidebar (and with it the console panels, which stretch with its width).
|
|
@@ -41,10 +41,10 @@ agentic_dev_loop/engine/seccomp/__init__.py,sha256=6U8K6rZ0Ha22F7Uk4i9bXrir5eyLv
|
|
|
41
41
|
agentic_dev_loop/engine/seccomp/chromium-userns.json,sha256=ahmqvWprLe_oG_oLXFMUnJdl8cqtG1IY_g48g36TUlQ,8472
|
|
42
42
|
agentic_dev_loop/viz/__init__.py,sha256=eoRfcUCC3-j7JhShft7Ruk8ruT5oFUoMKEKClO45B4I,520
|
|
43
43
|
agentic_dev_loop/viz/__main__.py,sha256=baycB1QwQtM-B2bXo4Du5lwvItcMgJwJlAzsHACxM-4,1409
|
|
44
|
-
agentic_dev_loop/viz/server.py,sha256
|
|
45
|
-
agentic_dev_loop-0.9.
|
|
46
|
-
agentic_dev_loop-0.9.
|
|
47
|
-
agentic_dev_loop-0.9.
|
|
48
|
-
agentic_dev_loop-0.9.
|
|
49
|
-
agentic_dev_loop-0.9.
|
|
50
|
-
agentic_dev_loop-0.9.
|
|
44
|
+
agentic_dev_loop/viz/server.py,sha256=-7lHiBCBQx3h0g-TfQyIaWG1tIfrWrqfLJco1-4GJOI,47637
|
|
45
|
+
agentic_dev_loop-0.9.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
46
|
+
agentic_dev_loop-0.9.2.dist-info/METADATA,sha256=s1Tql2vpok3i6dMdByJcLMkhgTH-yEBRgLrYe3NDwYI,41543
|
|
47
|
+
agentic_dev_loop-0.9.2.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
48
|
+
agentic_dev_loop-0.9.2.dist-info/entry_points.txt,sha256=Us59oHX6NBy-7ZN3LW5w3HAjnvOPJBfgNiv6ftnmHWw,70
|
|
49
|
+
agentic_dev_loop-0.9.2.dist-info/top_level.txt,sha256=n1ktP1gXxGN6DJAnACR0mt276GRJB9PVDezf9DVPwaw,17
|
|
50
|
+
agentic_dev_loop-0.9.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|