@enigmax/dashboard 0.1.54 → 0.1.56
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 +15 -13
- package/package.json +1 -1
package/assets/index.html
CHANGED
|
@@ -2644,7 +2644,11 @@ export {
|
|
|
2644
2644
|
}
|
|
2645
2645
|
|
|
2646
2646
|
function memoryRow(g) {
|
|
2647
|
-
|
|
2647
|
+
// Apps are shown as brand logos (see AGENT_ICONS), never text - the label is the tooltip.
|
|
2648
|
+
const apps = '<span class="aicons">' + (g.agents || []).map((a) => {
|
|
2649
|
+
const ic = agentSvg(a.name);
|
|
2650
|
+
return ic ? '<span class="aicon" title="' + esc(a.label) + '" aria-label="' + esc(a.label) + '">' + ic + "</span>" : esc(a.label);
|
|
2651
|
+
}).join("") + "</span>";
|
|
2648
2652
|
const state = !g.deployed ? '<span class="tag">not deployed</span>'
|
|
2649
2653
|
: g.edited ? '<span class="tag exp">edited</span>'
|
|
2650
2654
|
: g.managed ? '<span class="tag meas">managed</span>' : '<span class="tag">custom</span>';
|
|
@@ -2888,16 +2892,16 @@ export {
|
|
|
2888
2892
|
let skillScope = "global"; // "global" | "project" - the same rows render in both
|
|
2889
2893
|
function skillRow(s) {
|
|
2890
2894
|
const ver = s.version ? '<span class="tag">v' + esc(s.version) + "</span>" : "";
|
|
2891
|
-
// Project scope: same row, but the per-app chips
|
|
2892
|
-
//
|
|
2895
|
+
// Project scope: same row, but policy skills are managed globally - the per-app chips are
|
|
2896
|
+
// read-only here (show presence only) and the global-only controls are hidden.
|
|
2893
2897
|
if (skillScope === "project") {
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2898
|
+
// Policy (enigma) skills are managed at GLOBAL scope - deploying one per-project is
|
|
2899
|
+
// redundant (an agent reads both global and project skills). So in project scope the
|
|
2900
|
+
// per-app chips are READ-ONLY: they show where the skill is present but never toggle
|
|
2901
|
+
// (no data-pskill). Switch Scope to Global to enable/disable a policy skill.
|
|
2902
|
+
const chips = (s.agentStates || []).map((a) =>
|
|
2903
|
+
'<button type="button" class="achip' + (a.deployed ? " on" : "") + '" disabled aria-label="' + esc(a.label) + '" title="'
|
|
2904
|
+
+ esc(a.label) + (a.installed === false ? " - not installed" : " - policy skills are managed at Global scope") + '">' + (agentSvg(a.name) || esc(a.label)) + "</button>").join("");
|
|
2901
2905
|
return '<div class="set-row"><div class="set-meta"><div class="set-name">' + esc(s.name) + ver + "</div>"
|
|
2902
2906
|
+ '<div class="set-hint">' + esc(s.description || "") + "</div>"
|
|
2903
2907
|
+ '<div class="set-agents">' + (chips || '<span class="tag">no agents</span>') + "</div></div></div>";
|
|
@@ -2958,7 +2962,7 @@ export {
|
|
|
2958
2962
|
'<div class="panel"><div class="set-cat-h">Auto-detect skills by stack</div>'
|
|
2959
2963
|
+ '<div class="set-cat-b">Scan this project (packages, config files, gems) and install the matching community skills for its stack - hash-verified and kept separate from the policy skills below.</div>'
|
|
2960
2964
|
+ '<div class="ladd"><button type="button" class="toggle on with-icon" data-proj-autoskills><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></svg>Detect skills</button></div></div>'
|
|
2961
|
-
+ section("Policy skills", "
|
|
2965
|
+
+ section("Policy skills", "enigma's policy skills are managed at Global scope (an agent reads them in every project). Shown here read-only - a green app logo means the skill is also present in this project's folder. Switch Scope to Global to enable or disable a policy skill.", skills, "No skills.");
|
|
2962
2966
|
return;
|
|
2963
2967
|
}
|
|
2964
2968
|
const enigma = skills.filter((s) => s.source === "enigma");
|
|
@@ -3568,8 +3572,6 @@ export {
|
|
|
3568
3572
|
function onProjectControlClick(e) {
|
|
3569
3573
|
if (!isProjectScope()) return;
|
|
3570
3574
|
if (e.target.closest("[data-proj-autoskills]")) { autoskillsFlow(); return; }
|
|
3571
|
-
const chip = e.target.closest("[data-pskill]"); // per-app deploy chip in the Skills view
|
|
3572
|
-
if (chip) { projAction({ op: "skill", name: chip.dataset.pskill, agent: chip.dataset.pagent, on: chip.dataset.poff !== "1" }); return; }
|
|
3573
3575
|
const sk = e.target.closest("[data-proj-skill]");
|
|
3574
3576
|
if (sk) { projAction({ op: "skill", name: sk.dataset.projSkill, on: sk.dataset.on !== "1" }); return; }
|
|
3575
3577
|
const cb = e.target.closest("[data-proj-cfg-bool]");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enigmax/dashboard",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.56",
|
|
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": [
|