@enigmax/dashboard 0.1.55 → 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.
Files changed (2) hide show
  1. package/assets/index.html +10 -12
  2. package/package.json +1 -1
package/assets/index.html CHANGED
@@ -2892,16 +2892,16 @@ export {
2892
2892
  let skillScope = "global"; // "global" | "project" - the same rows render in both
2893
2893
  function skillRow(s) {
2894
2894
  const ver = s.version ? '<span class="tag">v' + esc(s.version) + "</span>" : "";
2895
- // Project scope: same row, but the per-app chips toggle deployment INTO this project
2896
- // (data-pskill, handled by the scope delegate) and the global-only controls are hidden.
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.
2897
2897
  if (skillScope === "project") {
2898
- const chips = (s.agentStates || []).map((a) => {
2899
- // An app that is not installed on this machine can't be a deploy target - show
2900
- // its chip disabled rather than letting a click create a dir for an unused agent.
2901
- if (a.installed === false) return '<button type="button" class="achip" disabled aria-label="' + esc(a.label) + '" title="' + esc(a.label) + ' - not installed">' + (agentSvg(a.name) || esc(a.label)) + "</button>";
2902
- return '<button type="button" class="achip' + (a.deployed ? " on" : "") + '" data-pskill="' + esc(s.name) + '" data-pagent="' + esc(a.name) + '" data-poff="' + (a.deployed ? 1 : 0) + '" aria-label="' + esc(a.label) + '" title="'
2903
- + (a.deployed ? esc(a.label) + " - deployed, click to remove" : esc(a.label) + " - not deployed, click to deploy") + '">' + (agentSvg(a.name) || esc(a.label)) + "</button>";
2904
- }).join("");
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("");
2905
2905
  return '<div class="set-row"><div class="set-meta"><div class="set-name">' + esc(s.name) + ver + "</div>"
2906
2906
  + '<div class="set-hint">' + esc(s.description || "") + "</div>"
2907
2907
  + '<div class="set-agents">' + (chips || '<span class="tag">no agents</span>') + "</div></div></div>";
@@ -2962,7 +2962,7 @@ export {
2962
2962
  '<div class="panel"><div class="set-cat-h">Auto-detect skills by stack</div>'
2963
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>'
2964
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>'
2965
- + section("Policy skills", "Deploy enigma's policy skills into this project, per app. A green chip means the skill is in that app's project folder.", skills, "No 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.");
2966
2966
  return;
2967
2967
  }
2968
2968
  const enigma = skills.filter((s) => s.source === "enigma");
@@ -3572,8 +3572,6 @@ export {
3572
3572
  function onProjectControlClick(e) {
3573
3573
  if (!isProjectScope()) return;
3574
3574
  if (e.target.closest("[data-proj-autoskills]")) { autoskillsFlow(); return; }
3575
- const chip = e.target.closest("[data-pskill]"); // per-app deploy chip in the Skills view
3576
- if (chip) { projAction({ op: "skill", name: chip.dataset.pskill, agent: chip.dataset.pagent, on: chip.dataset.poff !== "1" }); return; }
3577
3575
  const sk = e.target.closest("[data-proj-skill]");
3578
3576
  if (sk) { projAction({ op: "skill", name: sk.dataset.projSkill, on: sk.dataset.on !== "1" }); return; }
3579
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.55",
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": [