@hellcoder/companion 0.116.1-preview.20260814042234.2d329a2 → 0.117.0
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/assets/{AgentsPage-BAalV1v6.js → AgentsPage-DJIGGU86.js} +1 -1
- package/dist/assets/{CronManager-B2Vo1YmB.js → CronManager-D7aAMVgs.js} +1 -1
- package/dist/assets/{DashboardPage-BOvDiP1W.js → DashboardPage-Bporj7Vr.js} +1 -1
- package/dist/assets/{IntegrationsPage-kOXLH5KU.js → IntegrationsPage-BSY0-fsO.js} +1 -1
- package/dist/assets/{LinearOAuthSettingsPage-H-uUJ-ub.js → LinearOAuthSettingsPage-Cl5dP05g.js} +1 -1
- package/dist/assets/{LinearSettingsPage-CD_x4AGr.js → LinearSettingsPage-dwMpnpxL.js} +1 -1
- package/dist/assets/{MagicUIDashboard-9Jgiv4rb.js → MagicUIDashboard-Bpa4AupX.js} +90 -4
- package/dist/assets/{MagicUIView-BLEcS9XO.js → MagicUIView-BoHMBELi.js} +1 -1
- package/dist/assets/{Playground-QLrd9q16.js → Playground-By2aXWQF.js} +5 -5
- package/dist/assets/{PromptsPage-11eJ6ak7.js → PromptsPage-DVv0Qn3d.js} +1 -1
- package/dist/assets/{RunsPage-Bz3udIL2.js → RunsPage-bu3TZ6ai.js} +1 -1
- package/dist/assets/{SandboxManager-Dv47pbC6.js → SandboxManager-CDjGbD5N.js} +1 -1
- package/dist/assets/{SettingsPage-C_2ftG-C.js → SettingsPage-D0v_BZTU.js} +1 -1
- package/dist/assets/{TailscalePage-DzMX_7XA.js → TailscalePage-B8SJQpMF.js} +1 -1
- package/dist/assets/index-BqOdTpct.css +1 -0
- package/dist/assets/index-DqIZ_Ol5.js +140 -0
- package/dist/assets/{sw-register-CarYQEeI.js → sw-register-CvyRJNug.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/sw.js +1 -1
- package/package.json +1 -1
- package/server/linear-agent-bridge.ts +0 -1
- package/server/magic-ui-ops.test.ts +59 -0
- package/server/magic-ui-ops.ts +29 -0
- package/server/magic-ui-types.ts +26 -2
- package/server/magic-ui-watcher.test.ts +85 -0
- package/server/magic-ui-watcher.ts +10 -2
- package/server/routes/system-routes.test.ts +401 -0
- package/server/routes/system-routes.ts +10 -0
- package/server/system-disk.test.ts +48 -0
- package/server/system-disk.ts +55 -0
- package/server/system-memory.test.ts +32 -0
- package/server/system-memory.ts +32 -0
- package/dist/assets/index-DSCRqqpK.css +0 -1
- package/dist/assets/index-DspbwgSL.js +0 -140
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-
|
|
1
|
+
import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-DqIZ_Ol5.js";const A=`/* MagicUI iframe runtime.
|
|
2
2
|
*
|
|
3
3
|
* Plain dependency-free JS (Chart.js UMD is inlined separately by the host).
|
|
4
4
|
* Runs inside a sandboxed, opaque-origin iframe with a no-network CSP.
|
|
@@ -89,6 +89,13 @@ import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-DspbwgSL.js";const A=`/
|
|
|
89
89
|
}
|
|
90
90
|
function closeOverlay() {
|
|
91
91
|
document.getElementById("overlay").classList.remove("open");
|
|
92
|
+
// Destroy chart instances that live only inside the overlay.
|
|
93
|
+
charts.forEach(function (chart, key) {
|
|
94
|
+
if (key.indexOf("overlay:") === 0) {
|
|
95
|
+
chart.destroy();
|
|
96
|
+
charts.delete(key);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
92
99
|
}
|
|
93
100
|
|
|
94
101
|
function copyButton(getText) {
|
|
@@ -122,7 +129,9 @@ import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-DspbwgSL.js";const A=`/
|
|
|
122
129
|
}
|
|
123
130
|
|
|
124
131
|
// ── Slot cards ───────────────────────────────────────────────────────
|
|
125
|
-
|
|
132
|
+
// chartKey lets overlay renders (archived topics) keep their Chart.js
|
|
133
|
+
// instances separate from the live board's.
|
|
134
|
+
function buildCard(name, slot, chartKey) {
|
|
126
135
|
var card = el("div", "card");
|
|
127
136
|
card.dataset.slot = name;
|
|
128
137
|
var actions = el("div", "card-actions");
|
|
@@ -141,7 +150,7 @@ import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-DspbwgSL.js";const A=`/
|
|
|
141
150
|
canvas.setAttribute("role", "img");
|
|
142
151
|
canvas.setAttribute("aria-label", slot.title || slot.chart.title || "chart");
|
|
143
152
|
wrap.appendChild(canvas);
|
|
144
|
-
renderChart(name, canvas, slot.chart);
|
|
153
|
+
renderChart(chartKey || name, canvas, slot.chart);
|
|
145
154
|
} else if (slot.stat) {
|
|
146
155
|
var statBox = el("div");
|
|
147
156
|
var valueRow = el("div");
|
|
@@ -375,6 +384,46 @@ import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-DspbwgSL.js";const A=`/
|
|
|
375
384
|
}
|
|
376
385
|
}
|
|
377
386
|
|
|
387
|
+
// ── Archived topics (chips in the status strip) ──────────────────────
|
|
388
|
+
function openTopicOverlay(topic) {
|
|
389
|
+
openOverlay(topic.title, function (target) {
|
|
390
|
+
var grid = el("div", "overlay-grid");
|
|
391
|
+
target.appendChild(grid);
|
|
392
|
+
var names = Object.keys(topic.slots || {});
|
|
393
|
+
// Respect the topic's layout order where available.
|
|
394
|
+
names.sort(function (a, b) {
|
|
395
|
+
var la = (topic.layout || []).findIndex(function (l) { return l.slot === a; });
|
|
396
|
+
var lb = (topic.layout || []).findIndex(function (l) { return l.slot === b; });
|
|
397
|
+
if (la !== -1 && lb !== -1) return la - lb;
|
|
398
|
+
if (la !== -1) return -1;
|
|
399
|
+
if (lb !== -1) return 1;
|
|
400
|
+
return 0;
|
|
401
|
+
});
|
|
402
|
+
names.forEach(function (name) {
|
|
403
|
+
var card = buildCard(name, topic.slots[name], "overlay:" + topic.id + ":" + name);
|
|
404
|
+
grid.appendChild(card);
|
|
405
|
+
});
|
|
406
|
+
if (names.length === 0) {
|
|
407
|
+
target.appendChild(el("div", "panel-empty", "This topic had no content."));
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
function renderTopics(state) {
|
|
413
|
+
var host = document.getElementById("topic-chips");
|
|
414
|
+
clear(host);
|
|
415
|
+
var topics = state.topics || [];
|
|
416
|
+
if (state.currentTopicTitle && (topics.length > 0 || state.currentTopicTitle !== "Session")) {
|
|
417
|
+
host.appendChild(el("span", "topic-current", state.currentTopicTitle));
|
|
418
|
+
}
|
|
419
|
+
topics.forEach(function (topic) {
|
|
420
|
+
var chip = el("button", "topic-chip", topic.title);
|
|
421
|
+
chip.title = "Reopen archived topic: " + topic.title;
|
|
422
|
+
chip.addEventListener("click", function () { openTopicOverlay(topic); });
|
|
423
|
+
host.appendChild(chip);
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
|
|
378
427
|
var SRC_LABEL = { user: "You", ai_auto: "AI", agent: "Agent" };
|
|
379
428
|
|
|
380
429
|
function decisionRow(entry) {
|
|
@@ -590,6 +639,7 @@ import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-DspbwgSL.js";const A=`/
|
|
|
590
639
|
|
|
591
640
|
renderOpenItems(state.openItems || []);
|
|
592
641
|
renderDecisionLog(state.decisionLog || []);
|
|
642
|
+
renderTopics(state);
|
|
593
643
|
|
|
594
644
|
var dot = document.getElementById("status-dot");
|
|
595
645
|
dot.className = "status-dot" + (state.status !== "live" ? " " + state.status : "");
|
|
@@ -651,7 +701,8 @@ import{N as C,O as D,r,u as m,Q as P,j as O}from"./index-DspbwgSL.js";const A=`/
|
|
|
651
701
|
"</div>" +
|
|
652
702
|
'<div id="footer">' +
|
|
653
703
|
'<div id="decisions-live" aria-live="assertive"></div>' +
|
|
654
|
-
'<div id="status-strip"><span class="status-dot" id="status-dot"></span><span id="status-text">Connecting…</span
|
|
704
|
+
'<div id="status-strip"><span class="status-dot" id="status-dot"></span><span id="status-text">Connecting…</span>' +
|
|
705
|
+
'<span id="topic-chips" aria-label="Archived topics"></span></div>' +
|
|
655
706
|
"</div>";
|
|
656
707
|
document.body.appendChild(root);
|
|
657
708
|
|
|
@@ -1061,6 +1112,41 @@ body[data-theme="light"] .behavior.allow { color: #006300; }
|
|
|
1061
1112
|
.dp-question { margin-bottom: 8px; }
|
|
1062
1113
|
.dp-question .q-text { font-weight: 600; font-size: 12px; margin-bottom: 4px; }
|
|
1063
1114
|
|
|
1115
|
+
/* ── Topic chips (archived boards) ────────────────────────────────────── */
|
|
1116
|
+
|
|
1117
|
+
#topic-chips {
|
|
1118
|
+
display: inline-flex;
|
|
1119
|
+
align-items: center;
|
|
1120
|
+
gap: 6px;
|
|
1121
|
+
margin-left: 10px;
|
|
1122
|
+
overflow: hidden;
|
|
1123
|
+
}
|
|
1124
|
+
.topic-current {
|
|
1125
|
+
font-weight: 650;
|
|
1126
|
+
color: var(--ink-2);
|
|
1127
|
+
}
|
|
1128
|
+
.topic-current::before { content: "· "; color: var(--muted); font-weight: 400; }
|
|
1129
|
+
.topic-chip {
|
|
1130
|
+
border: 1px solid var(--ring);
|
|
1131
|
+
border-radius: 999px;
|
|
1132
|
+
background: var(--surface-1);
|
|
1133
|
+
color: var(--ink-2);
|
|
1134
|
+
font-size: 10px;
|
|
1135
|
+
font-weight: 600;
|
|
1136
|
+
padding: 2px 9px;
|
|
1137
|
+
cursor: pointer;
|
|
1138
|
+
white-space: nowrap;
|
|
1139
|
+
}
|
|
1140
|
+
.topic-chip:hover { color: var(--ink); border-color: var(--accent); }
|
|
1141
|
+
|
|
1142
|
+
.overlay-grid {
|
|
1143
|
+
display: grid;
|
|
1144
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1145
|
+
gap: 10px;
|
|
1146
|
+
}
|
|
1147
|
+
.overlay-grid .card { min-height: 110px; max-height: 320px; }
|
|
1148
|
+
.overlay-grid .card .chart-wrap { position: relative; height: 180px; }
|
|
1149
|
+
|
|
1064
1150
|
/* ── Overlay (expander target) ────────────────────────────────────────── */
|
|
1065
1151
|
|
|
1066
1152
|
#overlay {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as l,r as s,c as k,j as r,D as M,M as R,P as _,C}from"./index-
|
|
1
|
+
import{u as l,r as s,c as k,j as r,D as M,M as R,P as _,C}from"./index-DqIZ_Ol5.js";import{d as P,t as D,M as E}from"./MagicUIDashboard-Bpa4AupX.js";const N=4e3;function A({sessionId:t}){const u=l(e=>e.pendingPermissions.get(t)),h=l(e=>e.removePermission),m=l(e=>e.connectionStatus.get(t)??"disconnected"),x=l(e=>e.cliConnected.get(t)??!1),i=s.useMemo(()=>u?Array.from(u.values()):[],[u]),[a,g]=s.useState(new Set),f=s.useRef(new Set),c=s.useRef(new Map);s.useEffect(()=>{for(const e of i){const n=e.request_id;f.current.has(n)||a.has(n)||c.current.has(n)||c.current.set(n,setTimeout(()=>{c.current.delete(n),f.current.has(n)||g(o=>new Set(o).add(n))},N))}for(const[e,n]of c.current)i.some(o=>o.request_id===e)||(clearTimeout(n),c.current.delete(e))},[i,a]),s.useEffect(()=>()=>{for(const e of c.current.values())clearTimeout(e);c.current.clear()},[]);const b=s.useCallback(e=>{f.current.add(e);const n=c.current.get(e);n&&(clearTimeout(n),c.current.delete(e))},[]),v=s.useCallback((e,n)=>{var d;const o=(d=l.getState().pendingPermissions.get(t))==null?void 0:d.get(e);o&&(k(t,P(o,n)),h(t,e))},[t,h]),w=s.useCallback(()=>{g(e=>{var o;const n=new Set(e);for(const d of((o=l.getState().pendingPermissions.get(t))==null?void 0:o.values())??[])n.add(d.request_id);return n})},[t]),j=s.useMemo(()=>i.filter(e=>!a.has(e.request_id)).map(D),[i,a]),p=s.useMemo(()=>i.filter(e=>a.has(e.request_id)),[i,a]),S=m==="connected"&&!x;return r.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[(S||m==="disconnected")&&r.jsxs("div",{className:"px-4 py-1.5 bg-gradient-to-r from-cc-warning/8 to-cc-warning/4 border-b border-cc-warning/15 flex items-center justify-center gap-2",children:[r.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-cc-warning animate-[pulse-dot_1.5s_ease-in-out_infinite] shrink-0"}),r.jsx("span",{className:"text-xs text-cc-warning font-medium",children:m==="disconnected"?"Reconnecting to session…":"CLI disconnected — switch to Standard view to reconnect"})]}),r.jsx("div",{className:"h-36 shrink-0 border-b border-cc-border relative overflow-hidden","aria-label":"Raw session output",children:r.jsx(M,{value:"compact",children:r.jsx(R,{sessionId:t})})}),r.jsx("div",{className:"flex-1 min-h-0 relative bg-cc-bg",children:r.jsx(E,{sessionId:t,decisions:j,onDecisionAck:b,onDecisionResponse:v,onRuntimeError:w})}),p.length>0&&r.jsx("div",{className:"shrink-0 max-h-[50dvh] overflow-y-auto border-t border-cc-border bg-cc-card",children:p.map(e=>r.jsx(_,{permission:e,sessionId:t},e.request_id))}),r.jsx(C,{sessionId:t})]})}export{A as MagicUIView};
|