@enigmax/dashboard 0.1.115 → 0.1.116
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/assets/index.html +12 -12
- package/package.json +1 -1
package/assets/index.html
CHANGED
|
@@ -841,7 +841,7 @@
|
|
|
841
841
|
</a>
|
|
842
842
|
<a href="#/packs" data-view="packs" class="tab">
|
|
843
843
|
<svg class="tab-ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m7.5 4.27 9 5.15"/><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"/><path d="m3.3 7 8.7 5 8.7-5"/><path d="M12 22V12"/></svg>
|
|
844
|
-
<span>
|
|
844
|
+
<span>Agents</span>
|
|
845
845
|
</a>
|
|
846
846
|
<a href="#/playground" data-view="playground" class="tab">
|
|
847
847
|
<svg class="tab-ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m4 17 6-6-6-6"/><path d="M12 19h8"/></svg>
|
|
@@ -1266,8 +1266,8 @@
|
|
|
1266
1266
|
<section id="view-packs" style="display:none">
|
|
1267
1267
|
<div class="page-head" style="display:flex;align-items:flex-start;gap:16px">
|
|
1268
1268
|
<div style="flex:1">
|
|
1269
|
-
<h1>
|
|
1270
|
-
<p>Optional
|
|
1269
|
+
<h1>Agents</h1>
|
|
1270
|
+
<p>Optional agents you can add on demand. Each runs in its own <strong>isolated agent context</strong>, so its skills, commands and MCP servers never load into your normal coding agent. Launch one from a terminal with <code>enigma <agent></code>.</p>
|
|
1271
1271
|
</div>
|
|
1272
1272
|
<button id="packsRefresh" type="button" class="iconbtn" title="Refresh" aria-label="Refresh"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M23 4v6h-6"/><path d="M1 20v-6h6"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg></button>
|
|
1273
1273
|
</div>
|
|
@@ -1452,7 +1452,7 @@
|
|
|
1452
1452
|
<label class="pg-field ad-fixed"><span>Default profile</span>
|
|
1453
1453
|
<select id="adProfile"><option value="">(none)</option></select>
|
|
1454
1454
|
</label>
|
|
1455
|
-
<label class="pg-field ad-fixed"><span>Default
|
|
1455
|
+
<label class="pg-field ad-fixed"><span>Default agent</span>
|
|
1456
1456
|
<select id="adPack"><option value="">(none)</option></select>
|
|
1457
1457
|
</label>
|
|
1458
1458
|
<label class="pg-field"><span>Port</span>
|
|
@@ -1503,7 +1503,7 @@
|
|
|
1503
1503
|
<label class="pg-field"><span>Profile <small>(optional)</small></span>
|
|
1504
1504
|
<select id="pgProfile"><option value="">(server default)</option></select>
|
|
1505
1505
|
</label>
|
|
1506
|
-
<label class="pg-field"><span>
|
|
1506
|
+
<label class="pg-field"><span>Agent <small>(optional)</small></span>
|
|
1507
1507
|
<select id="pgPack"><option value="">(server default)</option></select>
|
|
1508
1508
|
</label>
|
|
1509
1509
|
<div class="pg-field pg-tools"><span>Agent tools <small>(Read/Write/Bash...)</small></span>
|
|
@@ -5382,17 +5382,17 @@ export {
|
|
|
5382
5382
|
});
|
|
5383
5383
|
}
|
|
5384
5384
|
|
|
5385
|
-
// ---
|
|
5385
|
+
// --- agents subpage (optional isolated agents, formerly packs; marketplace) ---
|
|
5386
5386
|
function renderPacks(list) {
|
|
5387
5387
|
list = list || [];
|
|
5388
|
-
if (!list.length) { $("packsBody").innerHTML = '<div class="empty" style="padding:12px 0">No
|
|
5388
|
+
if (!list.length) { $("packsBody").innerHTML = '<div class="empty" style="padding:12px 0">No agents available.</div>'; return; }
|
|
5389
5389
|
$("packsBody").innerHTML = list.map((p) => {
|
|
5390
5390
|
const tags = (p.tags || []).map((t) => '<span class="tag">' + esc(t) + '</span>').join(" ");
|
|
5391
5391
|
const state = p.installed ? '<span class="tag">' + (p.version ? "installed " + esc(p.version) : "installed") + '</span>' : '<span class="tag">not installed</span>';
|
|
5392
5392
|
const added = p.enabled ? '<span class="tag" style="color:var(--ok)">added</span>' : "";
|
|
5393
5393
|
const actions = p.installed
|
|
5394
5394
|
? '<button type="button" class="toggle on" data-pack="launch" data-id="' + esc(p.id) + '">Launch command</button>'
|
|
5395
|
-
+ '<button type="button" class="toggle" data-pack="setup" data-id="' + esc(p.id) + '" title="Register the
|
|
5395
|
+
+ '<button type="button" class="toggle" data-pack="setup" data-id="' + esc(p.id) + '" title="Register the agent MCP servers">Setup MCP</button>'
|
|
5396
5396
|
+ '<button type="button" class="iconbtn" data-pack="update" data-id="' + esc(p.id) + '" title="Update" aria-label="Update ' + esc(p.label) + '">' + REFRESH_ICON + "</button>"
|
|
5397
5397
|
+ '<button type="button" class="btn-danger icon" data-pack="remove" data-id="' + esc(p.id) + '" title="Remove" aria-label="Remove ' + esc(p.label) + '">' + TRASH_ICON + "</button>"
|
|
5398
5398
|
: '<button type="button" class="toggle on" data-pack="install" data-id="' + esc(p.id) + '">Install</button>';
|
|
@@ -5400,10 +5400,10 @@ export {
|
|
|
5400
5400
|
const opts = '<option value="">follow active (' + esc(p.resolvedAccount || "default") + ")" + stTag(p.resolvedState) + "</option>"
|
|
5401
5401
|
+ (p.accounts || []).map((a) => '<option value="' + esc(a.name) + '"' + (p.defaultAccount === a.name ? " selected" : "") + ">" + esc(a.name) + (a.label && a.label !== a.name ? " - " + esc(a.label) : "") + stTag(a.state) + "</option>").join("");
|
|
5402
5402
|
const warn = (p.installed && !p.contextReady && (p.resolvedState === "expired" || p.resolvedState === "empty"))
|
|
5403
|
-
? '<div class="set-hint" style="margin-top:6px;color:var(--warn,#e0a020)">This login is ' + (p.resolvedState === "expired" ? "expired" : "not signed in") + ' - the
|
|
5403
|
+
? '<div class="set-hint" style="margin-top:6px;color:var(--warn,#e0a020)">This login is ' + (p.resolvedState === "expired" ? "expired" : "not signed in") + ' - the agent may ask you to log in. Refresh it (launch that account once) or pick another above.</div>'
|
|
5404
5404
|
: (p.installed && p.contextReady ? '<div class="set-hint" style="margin-top:6px;color:var(--ok)">Active session ready - launches without asking to log in.</div>' : "");
|
|
5405
5405
|
const accountSel = p.installed
|
|
5406
|
-
? '<label class="set-hint" style="display:flex;align-items:center;gap:8px;margin-top:10px">Account that seeds this
|
|
5406
|
+
? '<label class="set-hint" style="display:flex;align-items:center;gap:8px;margin-top:10px">Account that seeds this agent:'
|
|
5407
5407
|
+ '<select data-pack-account data-id="' + esc(p.id) + '">' + opts + "</select></label>" + warn
|
|
5408
5408
|
: "";
|
|
5409
5409
|
return '<div class="panel"><div class="set-row"><div class="set-meta">'
|
|
@@ -5417,10 +5417,10 @@ export {
|
|
|
5417
5417
|
async function loadPacks() {
|
|
5418
5418
|
$("packsNote").textContent = "";
|
|
5419
5419
|
try { renderPacks((await (await fetch("/api/packs", { cache: "no-store" })).json()).packs); }
|
|
5420
|
-
catch { $("packsBody").innerHTML = '<div class="empty" style="padding:12px 0">
|
|
5420
|
+
catch { $("packsBody").innerHTML = '<div class="empty" style="padding:12px 0">Agents unavailable.</div>'; }
|
|
5421
5421
|
}
|
|
5422
5422
|
async function packAction(id, action, value) {
|
|
5423
|
-
const confirmMsg = action === "remove" ? "Remove this
|
|
5423
|
+
const confirmMsg = action === "remove" ? "Remove this agent and its isolated context?" : null;
|
|
5424
5424
|
if (confirmMsg && !(await askConfirm("Confirm", confirmMsg, true))) return;
|
|
5425
5425
|
setNote("packsNote", action === "install" || action === "update" ? "Working..." : "Saving...");
|
|
5426
5426
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enigmax/dashboard",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.116",
|
|
4
4
|
"description": "Local browser dashboard UI for enigma: the static page and chart assets enigma serves on its loopback dashboard (savings, real tool usage, in-browser settings). Installed on demand by enigma-cli; not a runtime dependency.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|